Please bear with my incredible lack of experience. I've tried searching for an answer to this, and I've tried muscling through tutorials on tcl, but I have a long way to go before I even begin to understand what I'm doing.
I've recently started up my very first private irc server to run a game (Chronicles of Darkness) with some friends, which is great fun and a total adventure in learning technical things I've never thought I'd be able to do. That said, I have a few dice scripts coded in mIRC that I would very much like to port over to my Eggdrop bot, but I simply don't have the experience with tcl required to do so.
If anyone could possibly help me out, I'd be most appreciative.
Here's the code for my three current scripts in mIRC...
Code: Select all
on *:text:!roll*:#: {
if ($2 !isnum) { msg # (( Sorry, but you need to tell me how many dice to roll! The correct syntax is !draw #pool #reroll explanation. )) | return }
if ($3 !isnum) { msg # (( Sorry, but you need to tell me on what number to reroll. 10? 9? 8? The correct syntax is !draw #pool #reroll explanation. )) | return }
if ($4 == $null) { msg # (( Sorry, but you need to tell me what you're trying to do. The correct syntax is !draw #pool #reroll explanation. )) | return }
var %totsucs = 0
var %c = $2
if (%c > 100) {
msg # No way, That's too many dice!
halt
}
:reroll
var %dice = %blank
var %rers = %blank
var %s10s = %blank
var %s9s = %blank
var %s8s = %blank
var %sucs = %blank
while (%c > 0) {
var %roll = $rand(1,10)
if (%roll = 1) { var %roll = $+ %roll }
elseif (%roll isnum 2-7) { var %roll = $+ %roll }
elseif (%roll isnum 8-9) { var %roll = $+ %roll }
else { var %roll = $+ %roll }
var %dice = %dice $+ $iif(%dice, $+ $chr(44)) %roll
dec %c
}
var %s10 = 10
var %s9 = 9
var %s8 = 8
var %s10s = $count(%dice,%s10)
var %s9s = $count(%dice,%s9)
var %s8s = $count(%dice,%s8)
var %sucs = $calc(%s10s + %s9s + %s8s)
var %8rr = $calc(%s10s + %s9s + %s8s)
var %9rr = $calc(%s10s + %s9s)
var %10rr = $count(%dice,%s10)
if ($3 = 8) { var %c = %8rr }
elseif ($3 = 9) { var %c = %9rr }
else { var %c = %10rr }
msg # $nick -( %sucs )- $replace(%dice,$chr(46), $+ $chr(44) $+ $chr(32))
var %temp = %sucs
var %runtot = $calc(%runtot + %sucs)
var %sucs = %blank
var %temp = %blank
if (%c > 0) {
goto reroll }
msg # $nick :: Grand Total Successes: %runtot ( $4- )
if (%runtot > 4) { msg # $nick :: EXCEPTIONAL SUCCESS!! }
}
Code: Select all
on *:text:!rote*:#: {
if ($2 !isnum) { msg # (( Sorry, but you need to tell me how many dice to roll! The correct syntax is !draw #pool #reroll explanation. )) | return }
if ($3 !isnum) { msg # (( Sorry, but you need to tell me on what number to reroll. 10? 9? 8? The correct syntax is !draw #pool #reroll explanation. )) | return }
if ($4 == $null) { msg # (( Sorry, but you need to tell me what you're trying to do. The correct syntax is !draw #pool #reroll explanation. )) | return }
var %totsucs = 0
var %c = $2
var %rote = 0
if (%c > 100) {
msg # No way, That's too many dice!
halt
}
:rotereroll
while (%c > 0) {
var %roll = $rand(1,10)
if (%roll = 1) { var %roll = $+ %roll }
elseif (%roll isnum 2-7) { var %roll = $+ %roll }
elseif (%roll isnum 8-9) { var %roll = $+ %roll }
else { var %roll = $+ %roll }
var %dice = %dice $+ $iif(%dice, $+ $chr(44)) %roll
dec %c
}
var %s10 = 10
var %s9 = 9
var %s8 = 8
var %s10s = $count(%dice,%s10)
var %s9s = $count(%dice,%s9)
var %s8s = $count(%dice,%s8)
var %sucs = $calc(%s10s + %s9s + %s8s)
msg # $nick -( %sucs )- $replace(%dice,$chr(46), $+ $chr(44) $+ $chr(32))
var %c = $calc($2 - %sucs)
inc %rote
var %temp = %sucs
var %runtot = $calc(%runtot + %sucs)
var %sucs = %blank
var %temp = %blank
var %dice = %blank
var %rers = %blank
var %s10s = %blank
var %s9s = %blank
var %s8s = %blank
var %sucs = %blank
if (%rote < 2) { goto rotereroll }
else { var %c = %runtot }
:reroll
var %dice = %blank
var %rers = %blank
var %s10s = %blank
var %s9s = %blank
var %s8s = %blank
var %sucs = %blank
while (%c > 0) {
var %roll = $rand(1,10)
if (%roll = 1) { var %roll = $+ %roll }
elseif (%roll isnum 2-7) { var %roll = $+ %roll }
elseif (%roll isnum 8-9) { var %roll = $+ %roll }
else { var %roll = $+ %roll }
var %dice = %dice $+ $iif(%dice, $+ $chr(44)) %roll
dec %c
}
var %s10 = 10
var %s9 = 9
var %s8 = 8
var %s10s = $count(%dice,%s10)
var %s9s = $count(%dice,%s9)
var %s8s = $count(%dice,%s8)
var %sucs = $calc(%s10s + %s9s + %s8s)
var %8rr = $calc(%s10s + %s9s + %s8s)
var %9rr = $calc(%s10s + %s9s)
var %10rr = $count(%dice,%s10)
if ($3 = 8) { var %c = %8rr }
elseif ($3 = 9) { var %c = %9rr }
else { var %c = %10rr }
msg # $nick -( %sucs )- $replace(%dice,$chr(46), $+ $chr(44) $+ $chr(32))
var %temp = %sucs
var %runtot = $calc(%runtot + %sucs)
var %sucs = %blank
var %temp = %blank
if (%c > 0) {
goto reroll }
msg # $nick :: Grand Total Successes: %runtot ( $4- )
if (%runtot > 4) { msg # $nick :: EXCEPTIONAL SUCCESS!! }
}
Code: Select all
on *:text:!chance*:#: {
if ($2 == $null) { msg # (( Sorry, but you need to tell me what you're trying to do. The correct syntax is !chance explanation. )) | return }
var %totsucs = 0
var %totsucs = 0
var %c = 1
:reroll
var %dice = %blank
var %rers = %blank
var %s10s = 0
var %s9s = %blank
var %s8s = %blank
var %s1s = %blank
var %sucs = %blank
while (%c > 0) {
var %roll = $rand(1,10)
if (%roll = 1) { var %roll = $+ %roll }
elseif (%roll isnum 2-7) { var %roll = $+ %roll }
elseif (%roll isnum 8-9) { var %roll = $+ %roll }
else { var %roll = $+ %roll }
var %dice = %dice $+ $iif(%dice, $+ $chr(44)) %roll
dec %c
}
var %s10 = 10
var %s1 = 1
var %s10s = $count(%dice,%s10)
var %s1s = $count(%dice,%s1)
var %sucs = %s10s
var %botch = %s1s
var %10rr = $count(%dice,%s10)
var %c = %10rr
msg # $nick -( %sucs )- $replace(%dice,$chr(46), $+ $chr(44) $+ $chr(32))
if (%s1s > 0) { if (%s10s = 0) { msg # $nick -( !! DRAMATIC FAILURE !! )- } }
var %temp = %sucs
var %runtot = $calc(%runtot + %sucs)
var %sucs = %blank
var %temp = %blank
if (%c > 0) {
goto reroll }
msg # $nick :: Grand Total Successes: %runtot ( $2- )
if (%runtot > 4) { msg # $nick :: EXCEPTIONAL SUCCESS!! }
}