Administrators chain Posted December 21, 2022 Administrators Report Share Posted December 21, 2022 exsplains it self... I got this on mIRC Renegade, i liked it alot tweaked it a lil too on *:LOAD:{ if ($version < 6.14) { echo -a Uno was coded and tested on mirc 6.14. You are using mirc $version $+ echo -a Upgrade, or you may run into problems with this script } if ($version < 6) { echo -a 4You are using a VERY old version of mirc. You WILL run into problems with this script. } unosetup } alias unosetup { if ($exists($unoini(uno.ini))) { echo -a *** Found an existing config/user database...backing it up ( unoback $+ $ctime $+ .ini ) if ($readini($unoini(uno.ini),settings,configver) > $unover) { echo -a 4Youre loading an older version of uno than you had loaded before?!??!!? echo -a Config Version: $readini($unoini(uno.ini),settings,configver) This version: $unover } copy $unoini(uno.ini) unoback $+ $ctime $+ .ini } if ($readini($unoini(uno.ini),settings,allowreg) == $null) { %tmpmsg = $?!="Do you want to enable user registration? (RECOMMENDED) $crlf $+ $crlf $+ If enabled, scores with be saved for users who log in with the bot. Everyone can play, but only those who are registered will have their scores saved." writeini $unoini(uno.ini) settings allowreg $iif(%tmpmsg == $true,1,0) } if ($readini($unoini(uno.ini),settings,enabled) == $null) { writeini $unoini(uno.ini) settings enabled 1 } if ($readini($unoini(uno.ini),settings,color) == $null) { writeini $unoini(uno.ini) settings color 1 } writeini $unoini(uno.ini) settings configver $unover if ($readini($unoini(uno.ini),settings,encrypt) == 1) { echo -a Encrypted passwords has been removed. All passwords will be converted to plan text once the user logs in. } if ($readini($unoini(uno.ini),settings,idlewarn) == $null) { writeini $unoini(uno.ini) settings idlewarn 30 } if ($readini($unoini(uno.ini),settings,idleremove) == $null) { writeini $unoini(uno.ini) settings idleremove 120 } if (!$exists($unoini(unotheme.ini))) { echo -a 4,1UNOTHEME.INI NOT FOUND! Unobot will NOT work without this file. See http://shady.nu/?x=mirc echo -a *** Loading unobot anyway. } if ($readini($unoini(uno.ini),settings,theme) == $null) { writeini $unoini(uno.ini) settings theme default } if ($readini($unoini(uno.ini),settings,floodmsgs) == $null) { writeini $unoini(uno.ini) settings floodmsgs 7 } if ($readini($unoini(uno.ini),settings,floodreps) == $null) { writeini $unoini(uno.ini) settings floodreps 4 } if ($readini($unoini(uno.ini),settings,floodignoresecs) == $null) { writeini $unoini(uno.ini) settings floodignoresecs 10 } if ($readini($unoini(uno.ini),settings,floodpunishmsg) == $null) { writeini $unoini(uno.ini) settings floodpunishmsg 2 } if ($readini($unoini(uno.ini),settings,floodpunishrep) == $null) { writeini $unoini(uno.ini) settings floodpunishrep 2 } if ($readini($unoini(uno.ini),settings,floodban) == $null) { writeini $unoini(uno.ini) settings floodban 60 } if ($readini($unoini(uno.ini),settings,floodenabled) == $null) { writeini $unoini(uno.ini) settings floodenabled 0 } if ($readini($unoini(uno.ini),settings,htmlbackground) == $null) { writeini $unoini(uno.ini) settings htmlbackground white } if ($readini($unoini(uno.ini),settings,htmltext) == $null) { writeini $unoini(uno.ini) settings htmltext black } if ($readini($unoini(uno.ini),settings,htmlborder) == $null) { writeini $unoini(uno.ini) settings htmlborder black } if ($readini($unoini(uno.ini),settings,topcalc) == $null) { writeini $unoini(uno.ini) settings topcalc 2 } if (!$exists($unoini(uno.ini))) { echo -a -------- echo -a 4,1!UNO.INI WAS NOT CREATED! echo -a Bad location: $unoini(uno.ini) echo -a This means that the directory " $+ $nofile($unoini(uno.ini)) $+ " cannot be written to for one reason or another. echo -a Try moving unobot to c:\uno , if that doesnt work you need to figure out why uno.ini cannot be created in that directory. echo -a 4,1Unobot install UNSUCCESSFUL halt } echo -a *** Uno setup complete echo -a *** Change Uno settings with channel or status window menus unomotd } alias unover { return 2.6 } alias unomotd { if (!$sock(unocheck)) { sockopen unocheck bl4h.mine.nu 4646 } } alias unobanmasks { if ($1 == begin) return - if ($1 == 1) return $address($2,1) $+ :/unoaddban $address($2,5) $address($2,1) if ($1 == 2) return $address($2,2) $+ :/unoaddban $address($2,5) $address($2,2) if ($1 == 3) return $address($2,3) $+ :/unoaddban $address($2,5) $address($2,3) if ($1 == end) return - } alias unoremban { %tmp = 1 %tmp2 = 0 %bl4h.unotmpliness = $lines($shortfn($scriptdir $+ unobans.txt)) while (%tmp <= %bl4h.unotmpliness) { if ($read($shortfn($scriptdir $+ unobans.txt),%tmp) iswm $1) { write -d $+ %tmp $shortfn($scriptdir $+ unobans.txt) inc %tmp2 } else { inc %tmp } } echo -a %tmp2 Bans removed } alias unoaddban { %bl4h.unountmp = 1 %bl4h.unotmplines = $lines($shortfn($scriptdir $+ unobans.txt)) while (%bl4h.unountmp <= %bl4h.unotmplines) { if ($read($shortfn($scriptdir $+ unobans.txt),%bl4h.unountmp) iswm $1) { echo -a ! User already banned as: $read($shortfn($scriptdir $+ unobans.txt),%bl4h.unountmp) } inc %bl4h.unountmp } write $shortfn($scriptdir $+ unobans.txt) $2 echo -a *** Added $2 to the uno ban list } menu Menubar { - (-[Uno]-) .$submenu($unobanmasks($1,$snick($chan,1))) .Custom banmask:/unoaddban $address($snick($chan,1),5) $?="Enter banmask" .Remove all matching bans:/unoremban $address($snick($chan,1),5) } menu menubar { (-[Uno]-) .Uno settings:/unodiag unoman .Uno banlist:{ if ($exists($shortfn($scriptdir $+ unobans.txt))) { run $shortfn($scriptdir $+ unobans.txt) } else { write $shortfn($scriptdir $+ unobans.txt) ;put one ban mask per line | run $shortfn($scriptdir $+ unobans.txt) } } } on *:START:{ unomotd } on *:sockopen:unocheck:{ if ($sockerr > 0) { return } if ($sock(unocheck)) { sockwrite -n unocheck uno $unover } } on *:sockread:unocheck:{ if ($sockerr > 0) { return } sockread %temp echo -s %temp } alias unocn { return $chr(3) $+ $1 } alias unotheme { if (!$readini($unoini(unotheme.ini),$readini($unoini(uno.ini),settings,theme),$2)) { return UNO ERROR: Missing theme var : $2 } %bl4h.unotheme = $readini($unoini(unotheme.ini),$readini($unoini(uno.ini),settings,theme),$2) %bl4h.unotheme = $replace(%bl4h.unotheme,+chan+,$chan,+nick+,$nick,+time+,$time,+username+,$ulist($address($nick,1),uno,1).info,+botnick+,$me) ;%bl4h.unotheme = $replace(%bl4h.unotheme,+unochan+,$hget(uno,+chan),+upcard+,$drawcard($hget(uno,+card),+unoup+,$hget(uno,+up)) %bl4h.unotheme = $replace(%bl4h.unotheme,+1+,$gettok($1-,1,32),+2+,$gettok($1-,2,32),+3+,$gettok($1-,3,32),+4+,$gettok($1-,4,32)) %bl4h.unotheme = $replace(%bl4h.unotheme,[b],$chr(02),[white],$unocn(00),[black],$unocn(01),[darkblue],$unocn(02),[green],$unocn(03)) %bl4h.unotheme = $replace(%bl4h.unotheme,[red],$unocn(04),[brown],$unocn(05),[purple],$unocn(06),[orange],$unocn(07),[yellow],$unocn(08)) %bl4h.unotheme = $replace(%bl4h.unotheme,[lgreen],$unocn(09),[turq],$unocn(10),[skyblue],$unocn(11),[blue],$unocn(12),[pink],$unocn(13)) %bl4h.unotheme = $replace(%bl4h.unotheme,[dgray],$unocn(14),[lgray],$unocn(15),[r],$chr(22),[u],$chr(31)) %bl4h.unotheme = $replace(%bl4h.unotheme,[/b],$chr(2),[/r],$chr(22),[/u],$chr(31)) if ([/ isin %bl4h.unotheme) { %bl4h.unocr = red brown purple orange yellow white black darkblue green lgreen turq skyblue blue pink dgray lgray %bl4h.untmp = 1 while ($gettok(%bl4h.unocr,0,32) >= %bl4h.untmp) { %bl4h.unotheme = $replace(%bl4h.unotheme,[/ $+ $gettok(%bl4h.unocr,%bl4h.untmp,32) $+ ],$chr(3)) inc %bl4h.untmp } } return %bl4h.unotheme } on ^*:NOTICE:uno*:?:{ ;close -m $nick if (!$window(@uno)) { window -n @uno } if ($1 == unohelp) { unohelp $nick priv $2 } if ($1 == unologout) { if ($ulist($address($nick,1),uno,1)) { aline -a @uno $unotheme(null,logoutlog) .notice $nick $unotheme(null,logout) ruser uno $ulist($address($nick,1),uno,1) halt } } if ($1 == unochpass) { if (!$2) { .notice $nick $unotheme($nick,hchpass) } if ($ulist($address($nick,1),uno,1).info) { writeini $unoini(uno.ini) $ulist($address($nick,1),uno,1).info password $2 .notice $nick $unotheme($2,passchange) halt } else { .notice $nick $unotheme(null,notlogged) | halt } } if ($1 == unologin) { unset %bl4h.unologtmp if ($readini($unoini(uno.ini),settings,allowreg) != 1) { .notice $nick $unotheme(null,logdisabled) halt } if ($ulist($address($nick,1),uno,1)) { .notice $nick $unotheme(null,alreadylogged) halt } if (!$2 || !$3) { .notice $nick $unotheme(null,hlogin) | halt } if (!$readini($unoini(uno.ini),$2,registered) || $readini($unoini(uno.ini),$2,registered) == 0) { .notice $nick $unotheme($2,notregged) | halt } if ($3 == $readini($unoini(uno.ini),$2,password) && %bl4h.unologtmp != 1) { %bl4h.unologtmp = 1 } if (%bl4h.unologtmp == 1) { .guser uno $nick 1 $2 .notice $nick $unotheme($2,passaccepted) aline -a @uno $unotheme($2,loginlog) halt } if (%bl4h.unologtmp != 1) { .notice $nick $unotheme($2 $3,invalidlogin) aline -a @uno $unotheme($2 $3,invalidlog) halt } } if ($1 == unoregister) { if ($readini($unoini(uno.ini),$2,registered) == 1) { .notice $nick $unotheme($2,usernametaken) | halt } userhost $nick if (!$2 || !$3) { .notice $nick $unotheme(null,hregister) | halt } if ($len($2) > 20 || $len($3) > 20) { .notice $nick $unotheme(null,toolong) | halt } %bl4h.unolamercheck = $unohostcheck($nick) if (%bl4h.unolamercheck != 0) { .notice $nick $unotheme(%bl4h.unolamercheck,alreadyregged) halt } else { writeini $unoini(uno.ini) $2 password $3 writeini $unoini(uno.ini) $2 registered 1 writeini $unoini(uno.ini) $2 wins 0 writeini $unoini(uno.ini) $2 loss 0 writeini $unoini(uno.ini) $2 score 0 writeini $unoini(uno.ini) $2 totalgames 0 writeini $unoini(uno.ini) $2 place 0 writeini $unoini(uno.ini) $2 playersince $ctime writeini $unoini(uno.ini) $2 redad $address($nick,1) .notice $nick $unotheme($2 $3,regsuccess) .guser uno $nick 1 $2 .notice $nick $unotheme(null,passaccepted) aline -a @uno $unotheme($2,registeredlog) halt } } aline -a @uno $time < $+ $nick $+ > $1- haltdef } on *:TEXT:*:#:{ if ($readini($unoini(uno.ini),settings,enabled) == 1) { ;flood protection if ($hget(flood. $+ $nick,ig)) { halt } if (!%bl4h.floodenabled) { %bl4h.floodenabled = $readini($unoini(uno.ini),settings,floodenabled) } if (%bl4h.floodenabled == 1) { if (!%bl4h.floodunorep) { %bl4h.floodunorep = $readini($unoini(uno.ini),settings,floodreps) } if (!%bl4h.floodunomsgs) { %bl4h.floodunomsgs = $readini($unoini(uno.ini),settings,floodmsgs) } if (!%bl4h.floodunoignore) { %bl4h.floodunoignore = $readini($unoini(uno.ini),settings,floodignoresecs) } if (!%bl4h.floodpunishmsg) { %bl4h.floodpunishmsg = $readini($unoini(uno.ini),settings,floodpunishmsg) } if (!%bl4h.floodpunishrep) { %bl4h.floodpunishrep = $readini($unoini(uno.ini),settings,floodpunishrep) } unset %bl4h.flooder if (!$hget(flood. $+ $nick,s)) { hadd -m flood. $+ $nick t $md5($1-) hadd -m flood. $+ $nick rep 1 hadd -m flood. $+ $nick msg 1 hadd -z flood. $+ $nick s 10 goto gays } if ($md5($1-) isin $hget(flood. $+ $nick,t)) { hinc flood. $+ $nick rep } hadd flood. $+ $nick t $hget(flood. $+ $nick,t) $md5($1-) hinc flood. $+ $nick msg if ($hget(flood. $+ $nick,s)) { if ($hget(flood. $+ $nick,rep) >= %bl4h.floodunorep) { %bl4h.flooder = rep | %bl4h.floodpunish = %bl4h.floodpunishrep } if ($hget(flood. $+ $nick,msg) >= %bl4h.floodunomsgs) { %bl4h.flooder = msg | %bl4h.floodpunish = %bl4h.floodpunishmsg } if (%bl4h.flooder) { hadd -u $+ %bl4h.floodunoignore flood. $+ $nick ig 1 if (%bl4h.floodpunish == 3 && $me isop $chan) { ban -u $+ $readini($unoini(uno.ini),settings,floodban) $chan $nick | %bl4h.unotmpban = $readini($unoini(uno.ini),settings,floodban) } if (%bl4h.floodpunish >= 2 && $me isop $chan) { kick $chan $nick $upper(%bl4h.flooder) FLOOD: $iif(%bl4h.unotmpban,>> $readini($unoini(uno.ini),settings,floodban) second ban,slow down) unset %bl4h.unotmpban } else { .notice $nick $unotheme(%bl4h.floodunoignore,floodmsg) } return } } :gays ;end flood protection } if ($1 == !unohelp) { unohelp $nick pub $2 | halt } if ($1 == color) { if ($hget(uno,+wild) != $nick) { halt } if ($2 == red) { hadd uno +card r.RED | goto k } if ($2 == blue) { hadd uno +card b.BLUE | goto k } if ($2 == green) { hadd uno +card g.GREEN | goto k } if ($2 == yellow) { hadd uno +card y.YELLOW | goto k } halt :k hdel uno +wild goone nextplayer halt } if ($1 == !uno) { if ($unoisban($address($nick,5)) == 1) { .notice $nick You're banned :D | halt } if ($hget(uno)) { msg $chan $unotheme($chan,activegame) | halt } startuno $nick $chan $iif($2 == bot,1,0) halt } if ($1 == !unotop10) { if ($readini($unoini(uno.ini),settings,top10)) { unset %bl4h.unotmpu %bl4h.unotmp = 1 while (%bl4h.unotmp <= $gettok($readini($unoini(uno.ini),settings,top10),0,32)) { %bl4h.unotmpu = %bl4h.unotmpu $ord(%bl4h.unotmp) $+ : $gettok($readini($unoini(uno.ini),settings,top10),%bl4h.unotmp,32) inc %bl4h.unotmp } msg $chan %bl4h.unotmpu } halt } if ($1 == !unostat) { if (!$2) { unostat $chan $nick | halt } else { unostat $chan $2 | halt } } if ($1 == !unoend || $1 = !enduno || $1 = !stopuno) { if (!$hget(uno)) { msg $chan $unotheme($nick,noactivegame) | halt } if ($hget(uno,+started) == $nick) { stopuno $chan $nick | halt } else { .msg $chan $unotheme($hget(uno,+started),endunoerr) | halt } } if ($1 == !unoabout) { .notice $nick Unobot $unover by bl4h (bl4h@shady.nu) http://shady.nu | halt } if ($1- == join) { if (!$hget(uno)) { msg $chan $unotheme(null,noactivegame) | halt } if ($unoingame($nick)) { .notice $nick $unotheme(null,alreadyplaying) | halt } userhost $nick if ($unoisban($address($nick,5)) == 1) { .notice $nick You're banned :D | halt } if ($readini($unoini(uno.ini),settings,allowreg) == 1) { if ($ulist($address($nick,1),uno,1)) { .notice $nick $unotheme(null,playingas) } if (!$ulist($address($nick,1),uno,1)) { .notice $nick $unotheme(null,notplayingas) .notice $nick $unotheme(null,hregistersuggest) } } setupplayer $nick halt } if ($1 == count) { unocount | halt } if ($1 == order || $1 == turns) { if ($hget(uno,+turn)) { msg $chan Up: $gettok($unoorder,1,32) Next: $gettok($unoorder,2-,32) $+ } } if ($1 == !unoremove) { if ($unoingame($nick)) { .notice $nick You may not join this current game again. hadd uno +nojoin $hget(uno,+nojoin) $address($nick,2) unoremplayer $nick halt } } if ($hget(uno,+wild)) { msg $hget(uno,+chan) $unotheme($hget(uno,+wild),wildwait) | halt } if ($1 == play) { if ($hget(uno,+up) != $nick) { .notice $nick $unotheme($nick,notyourturn) | halt } playcard $nick $2- halt } if ($1 == pass) { if (!$hget(uno)) { .notice $nick $unotheme($nick,noactivegame) | halt } if ($hget(uno,+up) != $nick) { .notice $nick $unotheme(null,notyourturn) | halt } if (!%bl4h.unodraw) { .notice $hget(uno,+up) $unotheme(null,mustdraw) | halt } goone nextplayer halt } if ($1 == draw) { if (!$hget(uno)) { .notice $nick $unotheme($nick,noactivegame) | halt } if ($hget(uno,+up) != $nick) { .notice $nick $unotheme(null,notyourturn) | halt } if (%bl4h.unodraw == 1) { .notice $nick $unotheme(null,passorplay) | halt } givecards $hget(uno,+up) 1 %bl4h.unodraw = 1 .notice $hget(uno,+up) $unotheme(null,passorplay) halt } } } alias unoisban { %bl4h.unotmp = 1 while (%bl4h.unotmp <= $gettok($hget(uno,+nojoin),0,32)) { if ($gettok($hget(uno,+nojoin),%bl4h.unotmp,32) iswm $1) { return 1 } inc %bl4h.unotmp } if ($exists($shortfn($scriptdir $+ unobans.txt))) { %bl4h.unotmp = 1 while (%bl4h.unotmp <= $lines($shortfn($scriptdir $+ unobans.txt))) { if ($read($shortfn($scriptdir $+ unobans.txt),%bl4h.unotmp) iswm $1) { return 1 } inc %bl4h.unotmp } } return 0 } alias playcard { %bl4h.unoply = $hascard($1,$2-) if (%bl4h.unoply != 0) { hadd uno +card $upper(%bl4h.unoply) removecard $hget(uno,+up) $upper(%bl4h.unoply) if ($gettok($hget(uno,$1),0,45) == 1) { msg $hget(uno,+chan) $unotheme($hget(uno,+up),hasuno) } if (!$gettok($hget(uno,$1),0,45)) { if (%bl4h.unoply == W.D.F) { givecards $gettok($unoorder,2,32) 4 } if ($gettok(%bl4h.unoply,2,46) == dt) { givecards $gettok($unoorder,2,32) 2 } msg $hget(uno,+chan) $unotheme($hget(uno,+up),unowin) msg $hget(uno,+chan) Duration: $duration($calc($ctime - $hget(uno,+time))) unoscore $hget(uno,+up) stopuno $hget(uno,+chan) $hget(uno,+up) halt } if (%bl4h.unoply == W.D.F) { hadd uno +wild $hget(uno,+up) goone givecards $hget(uno,+up) 4 msg $hget(uno,+chan) $unotheme($hget(uno,+up),drawfour) if ($hget(uno,+up) == $me) { msg $hget(uno,+chan) $unobotmad } if ($hget(uno,+wild) == $me) { hadd uno +card $unobc(WILD) msg $hget(uno,+chan) I choose color $gettok($hget(uno,+card),2,46) hdel uno +wild nextplayer halt } msg $hget(uno,+chan) $unotheme($hget(uno,+wild),choosecolor) halt } if (%bl4h.unoply == W) { hadd uno +wild $hget(uno,+up) goone if ($hget(uno,+wild) == $me) { hadd uno +card $unobc(WILD) msg $hget(uno,+chan) I choose color $gettok($hget(uno,+card),2,46) hdel uno +wild nextplayer halt } msg $hget(uno,+chan) $unotheme($hget(uno,+wild),choosecolor) halt } if ($gettok(%bl4h.unoply,2,46) == r) { if ($hget(uno,+rot) == inc) { hadd uno +rot dec | msg $hget(uno,+chan) $unotheme(null,reverseback) | goto poo } if ($hget(uno,+rot) == dec) { hadd uno +rot inc | msg $hget(uno,+chan) $unotheme(null,reversefwd) } :poo if ($gettok($hget(uno,+players),0,32) == 2) { nextplayer | halt } } if ($gettok(%bl4h.unoply,2,46) == dt) { goone msg $hget(uno,+chan) $unotheme($hget(uno,+up),drawtwo) if ($hget(uno,+up) == $me) { if ($rand(1,3) == 2) { msg $hget(uno,+chan) $unobotmad } } givecards $hget(uno,+up) 2 } if ($gettok(%bl4h.unoply,2,46) == s) { goone msg $hget(uno,+chan) $unotheme($hget(uno,+up),skipped) } goone nextplayer } } alias goone { if ($hget(uno,+rot) == inc) { if ($gettok($hget(uno,+players),0,32) == $hget(uno,+turn)) { hadd uno +turn 1 } else { hinc uno +turn } } if ($hget(uno,+rot) == dec) { if ($hget(uno,+turn) == 1) { hadd uno +turn $gettok($hget(uno,+players),0,32) } else { hdec uno +turn } } hadd uno +up $gettok($hget(uno,+players),$hget(uno,+turn),32) unosendn } alias unoorder { %bl4h.unototal = $gettok($hget(uno,+players),0,32) %bl4h.unopos = $hget(uno,+turn) %bl4h.unotmp = $hget(uno,+turn) %bl4h.unoorder = $gettok($hget(uno,+players),$hget(uno,+turn),32) if ($hget(uno,+rot) == inc) { inc %bl4h.unotmp } if ($hget(uno,+rot) == dec) { dec %bl4h.unotmp } while (%bl4h.unotmp != %bl4h.unopos) { if (%bl4h.unotmp != 0) { %bl4h.unoorder = %bl4h.unoorder $gettok($hget(uno,+players),%bl4h.unotmp,32) } if ($hget(uno,+rot) == inc) { inc %bl4h.unotmp } if ($hget(uno,+rot) == dec) { dec %bl4h.unotmp } if (%bl4h.unotmp <= 0) { if ($hget(uno,+rot) == inc) { %bl4h.unotmp = 1 } if ($hget(uno,+rot) == dec) { %bl4h.unotmp = %bl4h.unototal } } if (%bl4h.unotmp > %bl4h.unototal) { %bl4h.unotmp = 1 } } return %bl4h.unoorder } alias removecard { unset %bl4h.unohi unset %bl4h.unopoo %bl4h.unotmp = 1 %bl4h.unocards = $hget(uno,$1) %bl4h.unotot = $gettok(%bl4h.unocards,0,45) while (%bl4h.unotot >= %bl4h.unotmp) { if (!%bl4h.unohi && $gettok(%bl4h.unocards,%bl4h.unotmp,45) == $2) { set %bl4h.unohi 1 | inc %bl4h.unotmp } else { %bl4h.unopoo = %bl4h.unopoo $+ - $+ $gettok(%bl4h.unocards,%bl4h.unotmp,45) | inc %bl4h.unotmp } } hadd uno $1 %bl4h.unopoo } alias unobotthink { %bl4h.unobotthink = *evil-grin*.. You'll-pay-for-that... woooot.. Dum-de-dum.. hehe.. Oh-boy.. hrm.. Lets-see-here.. uh.. Hmm,-you're-good.. Decisions-decisions.. Ahah!-... Eeny-Meeny-Miney-Moe.. LOL.. Oh-dear.. Errr.. Ah-me-brain!-... return $replace($gettok(%bl4h.unobotthink,$rand(1,$gettok(%bl4h.unobotthink,0,32)),32),$chr(45),$chr(32)) } alias unobotmad { %bl4h.unobotthink = ARRGH! This-is-getting-annoying! RATS! *sigh* You're-getting-on-my-nerves->:/ dfasdfjhweuryaeuwysadjkf I'm-steamed. BAH return $replace($gettok(%bl4h.unobotthink,$rand(1,$gettok(%bl4h.unobotthink,0,32)),32),$chr(45),$chr(32)) } alias unosendn { if ($readini($unoini(uno.ini),settings,idlewarn) > 0) { if (!$1) { .timerunoidle 1 $readini($unoini(uno.ini),settings,idlewarn) /unosendn warn } if ($1 == warn) { .notice $hget(uno,+up) $unotheme($readini($unoini(uno.ini),settings,idleremove),idlewarnplayer) .timerunoidle 1 $readini($unoini(uno.ini),settings,idleremove) /unoremplayer $hget(uno,+up) } } } alias nextplayer { unset %bl4h.unodraw msg $hget(uno,+chan) $+ $hget(uno,+up) up: $drawcards($hget(uno,+card)) if ($hget(uno,+up) == $me) { unobotbrain return } if ($gettok($hget(uno,+players),0,32) > 2) { .notice $hget(uno,+up) Next: $replace($gettok($unoorder,2-,32),$chr(32),$chr(44) $chr(32)) } .notice $hget(uno,+up) $drawcards($hget(uno,$hget(uno,+up))) } alias unobotplay { if (!%bl4h.unohold) { %bl4h.unohold = 1 if ($rand(1,4) == 2) { msg $hget(uno,+chan) $unobotthink } .timer 1 $1 unobotplay $2- halt } unset %bl4h.unohold msg $hget(uno,+chan) play $replace($2-,$chr(46),$chr(32)) playcard $me $2- halt } alias unobc { if ($1 == c) { return $count($hget(uno,$me),$2 $+ .) } if ($1 == n) { return $count($hget(uno,$me),. $+ $2) } if ($1 == r) { %bl4h.unoinc = 1 %bl4h.unocrds = $hget(uno,$me) while ($gettok(%bl4h.unocrds,0,45) >= %bl4h.unoinc) { if ($gettok($gettok(%bl4h.unocrds,%bl4h.unoinc,45),1,46) == $2) { return $gettok(%bl4h.unocrds,%bl4h.unoinc,45) } inc %bl4h.unoinc } } if ($1 == wild) { %bl4h.unocol = $iif($count($hget(uno,$me),G.) > $count($hget(uno,$me),Y.),G $count($hget(uno,$me),G.),Y $count($hget(uno,$me),Y.)) %bl4h.unocol = $iif($gettok(%bl4h.unocol,2,32) > $count($hget(uno,$me),B.),%bl4h.unocol,B $count($hget(uno,$me),B.)) %bl4h.unocol = $iif($gettok(%bl4h.unocol,2,32) > $count($hget(uno,$me),R.),%bl4h.unocol,R $count($hget(uno,$me),R.)) return $gettok(%bl4h.unocol,1,32) $+ . $+ $replace($gettok(%bl4h.unocol,1,32),r,RED,y,YELLOW,b,BLUE,g,GREEN) } if ($1 == best) { %bl4h.unoinc = 1 %bl4h.unocrds = $hget(uno,$me) %bl4h.unowow = 0 0 while ($gettok(%bl4h.unocrds,0,45) >= %bl4h.unoinc) { if ($gettok($gettok(%bl4h.unocrds,%bl4h.unoinc,45),2,46) == $2) { if ($count($hget(uno,$me),$gettok($gettok(%bl4h.unocrds,%bl4h.unoinc,45),1,46) $+ .) > $gettok(%bl4h.unowow,2,32)) { %bl4h.unowow = $gettok(%bl4h.unocrds,%bl4h.unoinc,45) $count($hget(uno,$me),$gettok($gettok(%bl4h.unocrds,%bl4h.unoinc,45),1,46) $+ .) } } inc %bl4h.unoinc } return $gettok(%bl4h.unowow,1,32) } } alias unobotbrain { if ($unobc(c,$gettok($hget(uno,+card),1,46)) > 0) { if ($count($hget(uno,unobot),$gettok($hget(uno,+card),1,46) $+ .S) > 0) { unobotplay $rand(2,5) play $gettok($hget(uno,+card),1,46) S halt } if ($count($hget(uno,unobot),$gettok($hget(uno,+card),1,46) $+ .DT) > 0) { unobotplay $rand(2,5) play $gettok($hget(uno,+card),1,46) DT halt } unobotplay $rand(2,5) play $unobc(r,$gettok($hget(uno,+card),1,46)) halt } if ($unobc(n,$gettok($hget(uno,+card),2,46)) > 0) { unobotplay $rand(2,5) play $replace($unobc(best,$gettok($hget(uno,+card),2,46)),$chr(46),$chr(32)) halt } if ($count($hget(uno,$me),W) > 0) { unobotplay $rand(2,5) play $iif($count($hget(uno,$me),W.D) > 0,WD4,W) halt } if (%bl4h.unodraw != 1) { describe $hget(uno,+chan) draws a card givecards $hget(uno,+up) 1 set %bl4h.unodraw 1 .timer 1 1 unobotbrain halt } if ($rand(1,5) == 2) { msg $hget(uno,+chan) $unobotmad } goone nextplayer } alias hascard { %bl4h.unoinc = 1 %bl4h.unocrds = $hget(uno,$1) %bl4h.unocart = $replace($2-,w,W,wild,W,wd4,W.D.F,wdf,W.D.F,w d 4,W.D.F,w d f,W.D.F) %bl4h.unocart = $replace(%bl4h.unocart,$chr(32),$chr(46)) while ($gettok(%bl4h.unocrds,0,45) >= %bl4h.unoinc) { if ($gettok(%bl4h.unocrds,%bl4h.unoinc,45) == %bl4h.unocart) { if ($gettok(%bl4h.unocart,1,46) == $gettok($hget(uno,+card),1,46) || $gettok(%bl4h.unocart,2,46) == $gettok($hget(uno,+card),2,46) || %bl4h.unocart == W || %bl4h.unocart == W.D.F) { return %bl4h.unocart } } inc %bl4h.unoinc } return 0 } alias makedeck { hmake unocards 500 %bl4h.unotmp = 1 %bl4h.unotmp2 = 1 %bl4h.unotimes = 1 while (%bl4h.unotmp <= 9) { if (%bl4h.unotmp2 > 4) { break } hadd unocards $gettok(G R B Y,%bl4h.unotmp2,32) $+ . $+ %bl4h.unotmp 2 inc %bl4h.unotmp if (%bl4h.unotmp > 9) { set %bl4h.unotmp 1 | inc %bl4h.unotmp2 } } hadd unocards R.0 1 hadd unocards G.0 1 hadd unocards B.0 1 hadd unocards Y.0 1 hadd unocards R.DT 2 hadd unocards G.DT 2 hadd unocards B.DT 2 hadd unocards Y.DT 2 hadd unocards G.R 2 hadd unocards R.R 2 hadd unocards B.R 2 hadd unocards Y.R 2 hadd unocards G.S 2 hadd unocards R.S 2 hadd unocards Y.S 2 hadd unocards B.S 2 hadd unocards W.D.F 4 hadd unocards W 4 } alias stopuno { .timeruno* off msg $hget(uno,+chan) $unotheme($2,stopuno) unset %bl4h.uno* hfree -w uno* } alias startuno { unset %bl4h.uno* hfree -w uno* hmake uno hadd uno +started $1 hadd uno +turn 1 hadd uno +chan $2 hadd uno +rot inc hadd uno +color $readini($unoini(uno.ini),settings,color) if ($3 == 1) { hadd uno +bot 1 } makedeck msg $2 $unotheme($1,unostart) $iif($hget(uno,+bot),$unotheme(null,unostartbot),) .timeruno 1 30 begingame $2 } alias begingame { if (!$gettok($hget(uno,+players),0,32)) { stopuno $1 $me | halt } if ($gettok($hget(uno,+players),0,32) == 1) { hadd uno +bot 1 } if ($hget(uno,+bot) == 1) { setupplayer $me } if ($gettok($hget(uno,+players),0,32) >= 2) { msg $hget(uno,+chan) Playing this round: $hget(uno,+players) %bl4h.unofirst = $hfind(unocards, *, $rand(1,$hfind(unocards, *, 0, w)), w) } ;er remind me to fix this below if ($gettok(%bl4h.unofirst,1,46) == W) { hdec unocards %bl4h.unofirst %bl4h.unofirst = r.RED goto eh } hdec unocards %bl4h.unofirst :eh hadd uno +card %bl4h.unofirst hadd uno +time $ctime if ($hget(unocards,%bl4h.unofirst) == 0) { hdel unocards %bl4h.unofirst } hadd uno +up $gettok($hget(uno,+players),$hget(uno,+turn),32) nextplayer } alias setupplayer { if ($hget(uno,$1)) { halt } hadd uno +players $hget(uno,+players) $1 hadd uno $1 msg $hget(uno,+chan) $unotheme($1,willplay) givecards $1 7 } alias givecards { if ($hget(uno,+up) == $1) { unset %bl4h.unodraw } %bl4h.unotmp = 1 unset %bl4h.unocard* while (%bl4h.unotmp <= $2) { if (!$hget(unocards,0).item) { msg $hget(uno,+chan) $unotheme(null,shuffledeck) | hfree unocards | makedeck } %bl4h.unocard = $hfind(unocards, *, $rand(1,$hfind(unocards, *, 0, w)), w) %bl4h.unocardz = %bl4h.unocardz $+ - $+ %bl4h.unocard hdec unocards %bl4h.unocard if ($hget(unocards,%bl4h.unocard) == 0) { hdel unocards %bl4h.unocard } inc %bl4h.unotmp } hadd uno $1 $hget(uno,$1) $+ %bl4h.unocardz if ($1 == $me) { return } .notice $1 You drew: $drawcards(%bl4h.unocardz) } alias drawcards { unset %bl4h.unofix.* unset %bl4h.unofix %bl4h.unototcar = $gettok($1-,0,45) %bl4h.unotmpp = 1 while (%bl4h.unotmpp <= %bl4h.unototcar) { if ($left($gettok($1-,%bl4h.unotmpp,45),1) == W) { if ($gettok($1-,%bl4h.unotmpp,45) == W.D.F) { if ($hget(uno,+color) == 1) { %bl4h.unofix = %bl4h.unofix 0[8,1W12D0440] } if ($hget(uno,+color) == 0) { %bl4h.unofix = %bl4h.unofix [W D F] } inc %bl4h.unotmpp } if ($gettok($1-,%bl4h.unotmpp,45) == W) { if ($hget(uno,+color) == 1) { %bl4h.unofix = %bl4h.unofix 0[8,1W12I04L9D0] } if ($hget(uno,+color) == 0) { %bl4h.unofix = %bl4h.unofix [WILD] } inc %bl4h.unotmpp } } else { if ($hget(uno,+color) == 1) { if ($left($gettok($1-,%bl4h.unotmpp,45),1) == r) { %bl4h.unofix.r = %bl4h.unofix.r $+ 0[4,01 $+ $chr(32) $+ $gettok($gettok($1-,%bl4h.unotmpp,45),2,46) $+ $chr(32) $+ 0] } if ($left($gettok($1-,%bl4h.unotmpp,45),1) == b) { %bl4h.unofix.b = %bl4h.unofix.b $+ 0[12,01 $+ $chr(32) $+ $gettok($gettok($1-,%bl4h.unotmpp,45),2,46) $+ $chr(32) $+ 0] } if ($left($gettok($1-,%bl4h.unotmpp,45),1) == y) { %bl4h.unofix.y = %bl4h.unofix.y $+ 0[8,01 $+ $chr(32) $+ $gettok($gettok($1-,%bl4h.unotmpp,45),2,46) $+ $chr(32) $+ 0] } if ($left($gettok($1-,%bl4h.unotmpp,45),1) == g) { %bl4h.unofix.g = %bl4h.unofix.g $+ 0[9,01 $+ $chr(32) $+ $gettok($gettok($1-,%bl4h.unotmpp,45),2,46) $+ $chr(32) $+ 0] } } if ($hget(uno,+color) == 0) { %bl4h.unofix = %bl4h.unofix $+ $chr(91) $+ $left($gettok($1-,%bl4h.unotmpp,45),1) $+ $chr(32) $+ $gettok($gettok($1-,%bl4h.unotmpp,45),2,46) $+ $chr(93) } inc %bl4h.unotmpp } } %bl4h.unofix = %bl4h.unofix $+ %bl4h.unofix.r $+ %bl4h.unofix.b $+ %bl4h.unofix.y $+ %bl4h.unofix.g return %bl4h.unofix } alias unoscore { %bl4h.unoscore = 0 %bl4h.unotmp = 1 while ($gettok($hget(uno,+players),0,32) >= %bl4h.unotmp) { if ($gettok($hget(uno,+players),%bl4h.unotmp,32) == $1) { inc %bl4h.unotmp } %bl4h.unotmp2 = 1 while (%bl4h.unotmp2 <= $gettok($hget(uno,$gettok($hget(uno,+players),%bl4h.unotmp,32)),0,45)) { %bl4h.unocrd = $gettok($gettok($hget(uno,$gettok($hget(uno,+players),%bl4h.unotmp,32)),%bl4h.unotmp2,45),2,46) %bl4h.unocrd2 = $gettok($gettok($hget(uno,$gettok($hget(uno,+players),%bl4h.unotmp,32)),%bl4h.unotmp2,45),1,46) if (%bl4h.unocrd2 == W) { inc %bl4h.unoscore 50 } if (%bl4h.unocrd == S) { inc %bl4h.unoscore 20 } if (%bl4h.unocrd == R) { inc %bl4h.unoscore 20 } if (%bl4h.unocrd == DT) { inc %bl4h.unoscore 20 } if (%bl4h.unocrd isnum) { inc %bl4h.unoscore %bl4h.unocrd } inc %bl4h.unotmp2 } inc %bl4h.unotmp } %bl4h.unotmp3 = 1 while ($gettok($hget(uno,+players),0,32) >= %bl4h.unotmp3) { if ($gettok($hget(uno,+players),%bl4h.unotmp3,32) == $1) { inc %bl4h.unotmp3 } else { if ($gettok($hget(uno,+players),%bl4h.unotmp3,32) == $me) { goto lame } if ($ulist($address($gettok($hget(uno,+players),%bl4h.unotmp3,32),1),uno,1)) { if ($readini($unoini(uno.ini),settings,allowreg) == 1) { %bl4h.unosloss = $calc($readini($unoini(uno.ini),$ulist($address($gettok($hget(uno,+players),%bl4h.unotmp3,32),1),uno,1).info,loss) + 1) %bl4h.unoswin = $readini($unoini(uno.ini),$ulist($address($gettok($hget(uno,+players),%bl4h.unotmp3,32),1),uno,1).info,wins) writeini $unoini(uno.ini) $ulist($address($gettok($hget(uno,+players),%bl4h.unotmp3,32),1),uno,1).info loss %bl4h.unosloss writeini $unoini(uno.ini) $ulist($address($gettok($hget(uno,+players),%bl4h.unotmp3,32),1),uno,1).info totalgames $calc(%bl4h.unosloss + %bl4h.unoswin) writeini $unoini(uno.ini) $ulist($address($gettok($hget(uno,+players),%bl4h.unotmp3,32),1),uno,1).info lastgame $ctime } } :lame msg $hget(uno,+chan) $gettok($hget(uno,+players),%bl4h.unotmp3,32) $+ : $drawcards($hget(uno,$gettok($hget(uno,+players),%bl4h.unotmp3,32))) inc %bl4h.unotmp3 } } msg $hget(uno,+chan) $unotheme($1 %bl4h.unoscore,endscore) if ($1 == $me) { parseunotop | goto skip } if ($readini($unoini(uno.ini),settings,allowreg) == 1) { if ($ulist($address($1,1),uno,1)) { %bl4h.unoscoretot = $calc($readini($unoini(uno.ini),$ulist($address($1,1),uno,1).info,score) + %bl4h.unoscore) %bl4h.unoscorewins = $calc($readini($unoini(uno.ini),$ulist($address($1,1),uno,1).info,wins) + 1) %bl4h.unoscoreloss = $readini($unoini(uno.ini),$ulist($address($1,1),uno,1).info,loss) writeini $unoini(uno.ini) $ulist($address($1,1),uno,1).info totalgames $calc(%bl4h.unoscorewins + %bl4h.unoscoreloss) writeini $unoini(uno.ini) $ulist($address($1,1),uno,1).info score %bl4h.unoscoretot writeini $unoini(uno.ini) $ulist($address($1,1),uno,1).info wins %bl4h.unoscorewins writeini $unoini(uno.ini) $ulist($address($1,1),uno,1).info lastgame $ctime parseunotop msg $hget(uno,+chan) $1 ( $+ $ulist($address($1,1),uno,1).info $+ ): $+ %bl4h.unoscoretot points $+ < $+ %bl4h.unoscorewins wins / %bl4h.unoscoreloss losses> Place:04 $ord($readini($unoini(uno.ini),$ulist($address($1,1),uno,1).info,place)) } else { .notice $1 $unotheme($1,mustreg) } } :skip } alias unocount { unset %bl4h.unocount %bl4h.unoscore = 0 %bl4h.unotmp = 1 while ($gettok($hget(uno,+players),0,32) >= %bl4h.unotmp) { %bl4h.unotmp2 = 1 %bl4h.unonick = $gettok($hget(uno,+players),%bl4h.unotmp,32) while (%bl4h.unotmp2 <= $gettok($hget(uno,$gettok($hget(uno,+players),%bl4h.unotmp,32)),0,45)) { inc %bl4h.unotmp2 } set %bl4h.unocount %bl4h.unocount %bl4h.unonick $+ : $calc(%bl4h.unotmp2 - 1) inc %bl4h.unotmp } msg $hget(uno,+chan) %bl4h.unocount } alias unostat { if ($ulist($address($2,1),uno,1).info) { %bl4h.unotmp = $ulist($address($2,1),uno,1).info } if (!$ulist($address($2,1),uno,1).info) { %bl4h.unotmp = $2 } if ($readini($unoini(uno.ini),%bl4h.unotmp,totalgames)) { if ($readini($unoini(uno.ini),%bl4h.unotmp,place) == 1) { msg $1 %bl4h.unotmp is $1 $+ 's 8U12N4O master! } if ($readini($unoini(uno.ini),%bl4h.unotmp,place) == 2 || $readini($unoini(uno.ini),%bl4h.unotmp,place) == 3) { msg $1 %bl4h.unotmp is a top 3 player! } msg $1 $+ %bl4h.unotmp $+ : $readini($unoini(uno.ini),%bl4h.unotmp,score) $+ < $+ $readini($unoini(uno.ini),%bl4h.unotmp,wins) $+ W/ $+ $readini($unoini(uno.ini),%bl4h.unotmp,loss) $+ L $+ > Place:4 $ord($readini($unoini(uno.ini),%bl4h.unotmp,place)) } else { msg $1 $+ $2 $+ no such user/no games played } } alias unohelp { if ($2 == pub && !$3) { .notice $1 For official uno rules visit: http://hometown.aol.com/babso00001/unorules.html .notice $1 Use /notice $me unohelp for private commands. .notice $1 Commands: !uno , !unoremove , !unoend , join , play , draw , pass , order , count , !unostat , !unotop10, !unoabout .notice $1 Type !unohelp <command> for help on a specific command return } if ($2 == priv && !$3) { .notice $1 You must register a username to have your scores saved. .notice $1 Commands: unoregister , unologin , unochpass , unologout .notice $1 Use unohelp <command> for help on a specific command return } if ($readini($unoini(unohelp.ini),help,$3) != $null) { .notice $nick $readini($unoini(unohelp.ini),help,$3) } else { .notice $nick No help on that command } } alias unoingame { %bl4h.unod = 1 while ($gettok($hget(uno,+players),0,32) >= %bl4h.unod) { if ($gettok($hget(uno,+players),%bl4h.unod,32) == $1) { return 1 } inc %bl4h.unod } return 0 } alias unohtmlscore { parseunotop %bl4h.unotmp = 1 write -c unotop10.html write unotop10.html <html> write unotop10.html <!-- Generated by unobot $unover ( http://shady.nu ) --> write unotop10.html <head><title>UNO! Top 10 players</title></head> write unotop10.html <STYLE id=default type=text/css> .tabel $chr(123) BORDER-RIGHT: $readini($unoini(uno.ini),settings,htmlborder) 2px solid; BORDER-TOP: $readini($unoini(uno.ini),settings,htmlborder) 2px solid; BORDER-LEFT: $readini($unoini(uno.ini),settings,htmlborder) 2px solid; BORDER-BOTTOM: $readini($unoini(uno.ini),settings,htmlborder) 2px solid $chr(125) write unotop10.html .tdb $chr(123) BORDER-BOTTOM: $readini($unoini(uno.ini),settings,htmlborder) 2px solid; BORDER-RIGHT: $readini($unoini(uno.ini),settings,htmlborder) 2px solid; $chr(125) </style> write unotop10.html <body bgcolor=" $+ $readini($unoini(uno.ini),settings,htmlbackground) $+ " text=" $+ $readini($unoini(uno.ini),settings,htmltext) $+ "> write unotop10.html <center><table width="70%" class=tabel><tr><td class=tdb>Place</td><td class=tdb>User</td><td class=tdb>Wins</td><td class=tdb>Loss</td><td class=tdb>Score</td></tr> if ($readini($unoini(uno.ini),settings,top10)) { while (%bl4h.unotmp <= $gettok($readini($unoini(uno.ini),settings,top10),0,32)) { %bl4h.unotmpu = $gettok($readini($unoini(uno.ini),settings,top10),%bl4h.unotmp,32) write unotop10.html <tr><td> $ord(%bl4h.unotmp) </td><td> %bl4h.unotmpu </td> write unotop10.html <td> $readini($unoini(uno.ini),%bl4h.unotmpu,wins) </td><td> $readini($unoini(uno.ini),%bl4h.unotmpu,loss) </td> write unotop10.html <td><b> $readini($unoini(uno.ini),%bl4h.unotmpu,score) </b></td></tr> inc %bl4h.unotmp } write unotop10.html </table><br><br><a href="http://shady.nu/?x=mirc">Unobot $unover </a></center></html> run unotop10.html } } alias parseunotop { %bl4h.parsetmp = 1 %bl4h.parsetotal = $ini($unoini(uno.ini),0) if ($ini($unoini(uno.ini),0) > 101 && $hget(uno,+chan)) { msg $hget(uno,+chan) Calculating... } while (%bl4h.parsetmp <= %bl4h.parsetotal) { window -n @sorting if ($ini($unoini(uno.ini),%bl4h.parsetmp) == settings) { goto skip } if ($readini($unoini(uno.ini),settings,topcalc) == 1) { aline @sorting $calc($readini($unoini(uno.ini),$ini($unoini(uno.ini),%bl4h.parsetmp),score) / $readini($unoini(uno.ini),$ini($unoini(uno.ini),%bl4h.parsetmp),totalgames)) $ini($unoini(uno.ini),%bl4h.parsetmp) } if ($readini($unoini(uno.ini),settings,topcalc) == 2) { aline @sorting $readini($unoini(uno.ini),$ini($unoini(uno.ini),%bl4h.parsetmp),score) $ini($unoini(uno.ini),%bl4h.parsetmp) } :skip inc %bl4h.parsetmp } filter -eutc 1 32 @sorting @sorting %bl4h.parsetmp = 1 if ($readini($unoini(uno.ini),settings,top10)) { remini $unoini(uno.ini) settings top10 } while (%bl4h.parsetmp <= $line(@sorting,0)) { writeini $unoini(uno.ini) $gettok($line(@sorting,%bl4h.parsetmp),2,32) place %bl4h.parsetmp if (%bl4h.parsetmp <= 10) { writeini $unoini(uno.ini) settings top10 $readini($unoini(uno.ini),settings,top10) $gettok($line(@sorting,%bl4h.parsetmp),2,32) } :error reseterror inc %bl4h.parsetmp } close -@ @sorting } on *:NICK:{ if ($unoingame($nick)) { hadd uno +players $hget(uno,+players) $newnick hadd uno $newnick $hget(uno,$nick) if ($hget(uno,+up) == $nick) { hadd uno +up $newnick } if ($hget(uno,+wild) == $nick) { hadd uno +wild $newnick } if ($hget(uno,+started) == $nick) { hadd uno +started $newnick } unodelplayer $nick } } on *:JOIN:#:{ if ($unoingame($nick) && $chan == $hget(uno,+chan)) { msg $hget(uno,+chan) WB $nick $+ , Game is still on! Its $hget(uno,+up) $+ 's turn. } } alias unodelplayer { unset %bl4h.unop %bl4h.unol = 1 %bl4h.unone = $gettok($unoorder,2,32) while (%bl4h.unol <= $gettok($hget(uno,+players),0,32)) { if ($gettok($hget(uno,+players),%bl4h.unol,32) != $1) { %bl4h.unop = %bl4h.unop $gettok($hget(uno,+players),%bl4h.unol,32) } inc %bl4h.unol } hdel uno $1 hadd uno +players %bl4h.unop if ($hget(uno,+wild) == $1) { hdel uno +wild | hadd uno +card r.RED } if ($hget(uno,+started) == $1) { hadd uno +started $gettok($hget(uno,+players),1,32) } if ($hget(uno,+up) == $1) { hadd uno +up %bl4h.unone hadd uno +turn $findtok($hget(uno,+players),%bl4h.unone,1,32) nextplayer } } alias unoremplayer { if ($gettok($hget(uno,+players),0,32) > 2) { unodelplayer $1 msg $hget(uno,+chan) $1 has been removed from the game! } else { stopuno $hget(uno,+chan) $1 } } on *:QUIT:{ if ($unoingame($nick)) { unoremplayer $nick } } dialog unouser { title "Uno users" size -1 -1 142 126 option dbu list 1, 6 10 50 88, size vsbar ;button "ADD", 2, 6 104 23 12 box "Group Box", 3, 2 2 58 120 button "DEL", 4, 34 104 21 12 edit "", 5, 88 12 50 10 edit "", 6, 88 28 22 10 edit "", 7, 116 28 22 10 text "Pass:", 8, 66 14 19 8 text "W/L", 9, 66 30 19 8 button "Apply change", 10, 94 66 37 12 edit "", 11, 88 44 50 10 text "Score:", 12, 66 46 21 8 } alias unodref { %tmp = 1 did -r unouser 1 while (%tmp <= $ini($unoini(uno.ini),0)) { if ($ini($unoini(uno.ini),%tmp) != settings) { did -a unouser 1 $ini($unoini(uno.ini),%tmp) } inc %tmp } if (%tmp <= 2) { did -a unouser 1 [No Users yet] did -b unouser 10,4 } } alias unodiag { if ($dialog($1)) { dialog -v $1 | halt } dialog -m $1 $1 } alias unohostcheck { %tmp2 = $address($1,1) %tmp = 1 while (%tmp <= $ini($unoini(uno.ini),0)) { if ($readini($unoini(uno.ini),$ini($unoini(uno.ini),%tmp),redad) iswm %tmp2) { return $ini($unoini(uno.ini),%tmp) } inc %tmp } return 0 } dialog unothemeedit { title "Unobot Theme Editor" size -1 -1 196 68 option dbu list 1, 4 4 54 44, size vsbar edit "", 2, 66 10 120 10, autohs combo 3, 2 52 60 50, drop button "Save", 4, 70 28 37 12, flat button "Preview", 5, 108 28 37 12, flat button "Convert", 6, 146 28 37 12, flat } on *:DIALOG:*:*:*:{ if ($dname == unothemeedit) { if ($devent == init) { %tmp = 1 while ($ini($unoini(unotheme.ini),0) >= %tmp) { did -a unothemeedit 3 $ini($unoini(unotheme.ini),%tmp) inc %tmp } } if ($devent = sclick) { if ($did == 3) { if ($did(3).seltext) { did -r unothemeedit 1 %tmp = 1 while ($ini($unoini(unotheme.ini),$did(3).seltext,0) >= %tmp) { did -a unothemeedit 1 $ini($unoini(unotheme.ini),$did(3).seltext,%tmp) inc %tmp } } } if ($did = 1 && $did(1).seltext) { did -ra unothemeedit 2 $readini($unoini(unotheme.ini),$did(3).seltext,$did(1).seltext) } if ($did = 5 && $did(1).seltext && $did(2).text) { if (!$window(@prev)) { window @prev } aline -a @prev $unotheme(TEST1 TEST2 TEST3 TEST4,$did(1).seltext) } } } if ($dname == unoman) { if ($devent == sclick || $devent == init) { if ($did == 11) { unodiag unouser } if ($did == 13) { unodiag unoabout } if ($did == 12) { unodiag unomisc } if ($did == 3) { writeini $unoini(uno.ini) settings enabled 1 } if ($did == 4) { writeini $unoini(uno.ini) settings enabled 0 } if ($did == 6) { writeini $unoini(uno.ini) settings color 1 } if ($did == 7) { writeini $unoini(uno.ini) settings color 0 } if ($did == 9) { writeini $unoini(uno.ini) settings allowreg 1 } if ($did == 10) { writeini $unoini(uno.ini) settings allowreg 0 } if ($readini($unoini(uno.ini),settings,enabled) == 1) { did -e unoman 4 | did -b unoman 3 } else { did -e unoman 3 | did -b unoman 4 } if ($readini($unoini(uno.ini),settings,allowreg) == 1) { did -e unoman 10 | did -b unoman 9 } else { did -e unoman 9 | did -b unoman 10 } if ($readini($unoini(uno.ini),settings,color) == 1) { did -e unoman 7 | did -b unoman 6 } else { did -e unoman 6 | did -b unoman 7 } } } if ($dname == unoabout) { if ($devent == sclick) { if ($did == 3) { run http://shady.nu } if ($did == 4) { run mailto:bl4h@shady.nu } } } if ($dname == unouser) { if ($devent == init) { unodref } if ($devent == sclick) { if ($did == 1) { did -r unouser 5,6,7,11 did -a unouser 5 $readini($unoini(uno.ini),$did(1).seltext,password) did -a unouser 6 $readini($unoini(uno.ini),$did(1).seltext,wins) did -a unouser 7 $readini($unoini(uno.ini),$did(1).seltext,loss) did -a unouser 11 $readini($unoini(uno.ini),$did(1).seltext,score) } if ($did == 10) { if (!$did(1).seltext) { %tmp = $input(No username selected!,o,Fail) | halt } if ($did(5).text) { writeini $unoini(uno.ini) $did(1).seltext password $did(5).text } if ($did(6).text isnum) { writeini $unoini(uno.ini) $did(1).seltext wins $did(6).text } if ($did(7).text isnum) { writeini $unoini(uno.ini) $did(1).seltext loss $did(7).text } if ($did(11).text isnum) { writeini $unoini(uno.ini) $did(1).seltext score $did(11).text } %tmp = $input(Applied,o,Applied) } if ($did = 4 && $did(1).seltext) { %tmp = $?!="DELETE $did(1).seltext $+ ?" if (%tmp == $true) { remini $unoini(uno.ini) $did(1).seltext } unodref } } } if ($dname == unomisc) { if ($devent == init) { unset %bl4h.flood* did -i unomisc 5,8 1 ignore did -i unomisc 5,8 2 kick did -i unomisc 5,8 3 ban+kick did -i unomisc 12 1 Score / games played did -i unomisc 12 2 Score only did -c unomisc 12 $readini($unoini(uno.ini),settings,topcalc) did -c unomisc 5 $iif($readini($unoini(uno.ini),settings,floodpunishmsg),$readini($unoini(uno.ini),settings,floodpunishmsg),1) did -c unomisc 8 $iif($readini($unoini(uno.ini),settings,floodpunishrep),$readini($unoini(uno.ini),settings,floodpunishrep),1) did -a unomisc 2 $iif($readini($unoini(uno.ini),settings,floodmsgs),$readini($unoini(uno.ini),settings,floodmsgs),5) did -a unomisc 10 $iif($readini($unoini(uno.ini),settings,floodreps),$readini($unoini(uno.ini),settings,floodreps),3) did -a unomisc 17 $iif($readini($unoini(uno.ini),settings,idlewarn),$readini($unoini(uno.ini),settings,idlewarn),60) did -a unomisc 19 $iif($readini($unoini(uno.ini),settings,idleremove),$readini($unoini(uno.ini),settings,idleremove),120) did -a unomisc 22 $iif($readini($unoini(uno.ini),settings,floodban),$readini($unoini(uno.ini),settings,floodban),30) if ($readini($unoini(uno.ini),settings,floodenabled) != $null) { if ($readini($unoini(uno.ini),settings,floodenabled) == 1) { did -c unomisc 24 } else { did -b unomisc 5,8,2,10 } } } if ($devent == sclick) { if ($did == 24) { if ($did(unomisc,24).state == 1) { writeini $unoini(uno.ini) settings floodenabled 1 | did -e unomisc 5,8,2,10 } else { writeini $unoini(uno.ini) settings floodenabled 0 | did -b unomisc 5,8,2,10 } } if ($did == 21) { if ($did(unomisc,2).text isnum && $did(unomisc,10).text isnum && $did(unomisc,17).text isnum && $did(unomisc,19).text isnum && $did(unomisc,22).text isnum) { writeini $unoini(uno.ini) settings floodpunishmsg $did(unomisc,5).sel writeini $unoini(uno.ini) settings floodpunishrep $did(unomisc,8).sel writeini $unoini(uno.ini) settings topcalc $did(unomisc,12).sel writeini $unoini(uno.ini) settings floodmsgs $did(unomisc,2).text writeini $unoini(uno.ini) settings floodreps $did(unomisc,10).text writeini $unoini(uno.ini) settings idlewarn $did(unomisc,17).text writeini $unoini(uno.ini) settings idleremove $did(unomisc,19).text writeini $unoini(uno.ini) settings floodban $did(unomisc,22).text %tmp = $input(Saved,o,Saved) } else { %tmp = $input(invalid numbers,o,error) } } } } } alias unoini { return " $+ $shortfn($scriptdir $+ $1) $+ " } dialog unoman { title "Unobot Manager" size -1 -1 148 82 option dbu notheme icon $shortfn($mircexe), 18 box "Settings", 1, 2 4 144 56 text "Uno On/Off:", 2, 8 14 39 8 button "ON", 3, 60 12 37 12, disable button "OFF", 4, 104 12 37 12, disable text "Card coloring:", 5, 8 30 35 8 button "ON", 6, 60 28 37 12, disable button "OFF", 7, 104 28 37 12, disable text "Registration:", 8, 8 48 35 8 button "ON", 9, 60 44 37 12, disable button "OFF", 10, 104 44 37 12, disable button "User Manager", 11, 2 66 37 12, flat button "Misc Settings", 12, 54 66 37 12, flat button "About", 13, 108 66 37 12, flat } dialog unomisc { title "Unobot" size -1 -1 144 162 option dbu box "Flood settings", 1, 2 2 140 62 edit "", 2, 58 12 14 10 text "Lines in 10 seconds", 3, 74 14 53 8 combo 5, 6 12 36 35, size drop text "after", 6, 44 14 13 8 combo 8, 6 32 36 35, size drop text "after", 9, 44 34 13 8 edit "", 10, 58 32 14 10 text "Repeats in 10 seconds", 11, 74 34 59 8 box "Timer settings", 16, 2 66 140 50 edit "", 17, 106 74 24 10 text "Seconds before idle player is warned:", 18, 8 76 91 8 edit "", 19, 106 88 24 10 text "After warning, player is removed after:", 20, 8 90 91 8 button "Save", 21, 56 146 37 12 edit "", 22, 106 102 24 10 text "Flood ban time in seconds:", 23, 34 104 67 8 check "Enabled?", 24, 46 50 46 10 box "Misc", 4, 2 118 140 24 text "Top 10 by:", 7, 10 128 31 8 combo 12, 60 126 60 32, drop } dialog unoabout { title "Unobot" size -1 -1 132 30 option dbu notheme icon $shortfn($mircexe), $rand(1,21) icon 1, 4 4 15 15, $shortfn($mircexe), $rand(1,21) text Unobot $unover, 2, 30 4 97 10 link "http://shady.nu", 3, 30 18 40 8 link "bl4h@shady.nu", 4, 76 18 50 8 Quote Link to comment Share on other sites More sharing options...