All pastes #482522 Raw Edit

Pascat

public text v1 · immutable
·published 2007-05-11 09:25 UTC
rendered paste body
'Params: <no parameters>
Dim FirstWord
Dim Multi
dim TextNow
dim BaseNum
dim BaseValue
dim TextToSend
dim Twips
dim BaseNumCount
dim Multicount
Twips = 0
Multi = Null
FirstWord = StrUtils.NParam(1, Msg) 'extract first string
if strutils.CharCount(FirstWord, "d") = 1 then 'check that it contains 1 d
Multi = 1
	if strutils.CharCount(FirstWord, "x") = 1 then 'check thatit contains 1 x
		TextNow = strutils.leftstr(FirstWord, strutils.pos("x",FirstWord,1)-1) 'extract Multi
		if strutils.isnumeric(TextNow) then 'check that multi is numeric
            if Textnow > 100 then   'check if we break the dice number's limit
				Multi = 100
			elseif TextNow < 1 then 'check if the dice number is less then one.
				Multi = 1
			else
				Multi = TextNow
			end if 'end of the value check
		end if 'end of the IsNumeric check
		FirstWord = StrUtils.DeleteLeft(FirstWord, 1, strutils.CharCount(FirstWord, "x")+1) 'Ensure that FirstWord is stripped of the Multiplier Values.
	end if 'end of the x check
		TextNow = strutils.leftstr(FirstWord, strutils.pos("d",FirstWord,1)-1) 'extract Number
		if strutils.isnumeric(TextNow) then 'check that Number is numeric
            if Textnow > 100 then   'check if we break the dice number's limit
				BaseNum = 100
			elseif TextNow < 1 then 'check if the dice number is less then one.
				BaseNum = 1
			else
				BaseNum = TextNow
			end if 'end of the value check
		end if 'end of the IsNumeric check
        	if BaseNum = "" or BaseNum = Null then
Exit sub
			end if
        FirstWord = StrUtils.DeleteLeft(FirstWord, 1, strutils.CharCount(FirstWord, "d")+1)
		channel.command "say First:" & FIrstWord
		if strutils.CharCount(FirstWord, "+") = 1 then
			TextNow = strutils.leftstr(FirstWord, strutils.pos("+",FirstWord, 1)-1)
			If strutils.isnumeric(TextNow) then
            	BaseValue = TextNow
            End if
			if BaseValue > 9 then
			Twips = StrUtils.DeleteLeft(FirstWord, 1, strutils.CharCount(FirstWord, "+")+3)
			else
            Twips = StrUtils.DeleteLeft(FirstWord, 1, strutils.CharCount(FirstWord, "+")+1)
			end if
		elseif strutils.Charcount(FirstWord, "-") = 1 then
            TextNow = strutils.leftstr(FirstWord, strutils.pos("-",FirstWord, 1)-1)
			If strutils.isnumeric(TextNow) then
            	BaseValue = TextNow
            End if
			if BaseValue > 9 then
			Twips = "-" & StrUtils.DeleteLeft(FirstWord, 1, strutils.CharCount(FirstWord, "-")+3)
			else
            Twips = "-" & StrUtils.DeleteLeft(FirstWord, 1, strutils.CharCount(FirstWord, "-")+1)
			End If
		else
		BaseValue = FirstWord
		end if
     channel.command "say " & Twips & ":" & FirstWord & ":" & strutils.pos("+",FirstWord, 1) & ":" & BaseValue
     BaseNum = int(BaseNum)
	 Multi = int(Multi)
	 MultiCount = 0
     TextTosend = ""
     if Multi > 1 then
	 	do while MultiCount < Multi
     		MultiCount = MultiCount + 1
			TextToSend = TextToSend & "[ "
        	if BaseNum = 1 then
        		Randomized = int(BaseValue * rnd())
        		TextToSend = TextToSend & Randomized & "(" & Randomized + Twips & ") "
			else
				BaseNumCount = 0
        		do while BaseNumCount < BaseNum
					BaseNumCount = BaseNumCount + 1
        			Randomized = int(BaseValue * rnd())
        			TextToSend = TextToSend & Randomized & "(" & Randomized + Twips & ") "
				Loop
			end if
			TextToSend = TextToSend & " ] "
		Loop
	 else
     	if BaseNum = 1 then
        	Randomized = int(BaseValue * rnd())
        	TextToSend = TextToSend & Randomized & "(" & int(Randomized + Twips) & ") "
		else
			BaseNumCount = 0
        	do while BaseNumCount < BaseNum
				BaseNumCount = BaseNumCount + 1
        		Randomized = int(BaseValue * rnd())
        		TextToSend = TextToSend & Randomized & "(" & int(Randomized + Twips) & ") "
			Loop
		end if
	end if
			channel.command "say Multi: " & Multi & "BaseNum: " & BaseNum
			channel.command "say <" & sender.nick & "> rolled " & Multi & "x" & BaseNum & "d" & BaseValue & ": " & TextToSend
end if 'end of the D check