Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ;### Betting script by Sakana.
- on *:text:!match:#:{
- if ($servertarget != irc.twitch.tv) halt
- if (%bet. [ $+ [ $chan ] ]) halt
- if ($nick !isop #) halt
- if ($hget(bets. [ $+ [ $chan ] ]) != $null) {
- msg # $remove(#,$chr(35)) $+ , it seems like you forgot to report the result of the last match. | return
- }
- set -u74 %haltscripts. [ $+ [ $chan ] ] On
- set -u74 %bet. [ $+ [ $chan ] ] On
- if ($readini(BettingStats.ini, n, #,WinsCounter) == $null) writeini -n BettingStats.ini # WinsCounter 0
- if ($readini(BettingStats.ini, n, #,LossCounter) == $null) writeini -n BettingStats.ini # LossCounter 0
- if ($readini(BettingStats.ini, n, #,WinsCounter == 0)) || ($readini(BettingStats.ini, n, #,LossCounter == 0)) { var %odds = 2 }
- else {
- var %a = $calc($readini(BettingStats.ini, n, #,WinsCounter))
- var %b = $calc($readini(BettingStats.ini, n, #,LossCounter))
- var %winrate = $calc((%a)/(%b + %a))
- var %odds = $round($calc(1/%winrate),2)
- }
- writeini -n BettingStats.ini # OddsW %odds
- if ($calc(4 - $readini(BettingStats.ini, n, #,OddsW)) < 0.50 ) { writeini -n BettingStats.ini # OddsL 0.50 }
- else { writeini -n BettingStats.ini # OddsL $calc(4 - %odds) }
- msg # Betting on the match has started! $remove(#,$chr(35)) $+ 's current wins and losses: $chr(91) $+ $readini(BettingStats.ini, n, #,WinsCounter) - $readini(BettingStats.ini, n, #,LossCounter) $+ $chr(93)
- .timer70 1 3 msg # Odds for betting: $chr(91) $+ Win $+ $chr(93) : $readini(BettingStats.ini, n, #,OddsW) returned. $chr(91) $+ Loss $+ $chr(93) : $readini(BettingStats.ini, n, #,OddsL) returned.
- .timer89 1 6 msg # Type !w or !l followed by number of points you want to bet. Every viewer starts with 2500 points and 100 are added each day.
- .timer891 1 9 msg # You can't bet more than 20% of your total points. If you bet more, your bet will be set to 20% of your total.
- .timer11 1 12 msg # -- BETS ARE NOW OPEN FOR 60 SECONDS --
- .timer1 1 31 msg # -- 40 SECONDS LEFT --
- .timer2 1 51 msg # -- 20 SECONDS LEFT --
- .timer3 1 61 msg # -- 10 SECONDS LEFT --
- .timer4 1 71 msg # -- BETS ARE CLOSED --
- .timer5 1 74 endofbetting #
- }
- alias endofbetting {
- if ($readini(BettingStats.ini, n, $1,WinsTemp) == $null) { writeini -n BettingStats.ini $1 WinsTemp 0 }
- if ($readini(BettingStats.ini, n, $1,LossTemp) == $null) { writeini -n BettingStats.ini $1 LossTemp 0 }
- var %temp.l = $readini(BettingStats.ini, n, $1,LossTemp)
- var %temp.w = $readini(BettingStats.ini, n, $1,WinsTemp)
- var %percent.win = $calc((%temp.w)/(%temp.l + %temp.w))
- msg $1 $calc(%temp.l + %temp.w) bets have been placed on this match! $round($calc(%percent.win * 100),2) $+ $chr(37) of all bettors think $remove($1,$chr(35)) will win.
- }
- on $*:text:/^(!w|!l) [1-9][0-9]*$/:#:{
- if (!%bet. [ $+ [ $chan ] ]) halt
- if ($servertarget != irc.twitch.tv) halt
- if ($2 !isnum) return
- if ($2 < 0) {
- msg # $nick $+ , you can't bet negative amounts. | return
- }
- if ($readini(Bettingpoints.ini, n, Points, $nick) == 0) return
- if ($readini(Bettingpoints.ini, n, Points, $nick) == $null) { writeini -n BettingPoints.ini Points $nick 2500 }
- if ($nick == $remove(#,$chr(35))) {
- msg # $nick $+ , you can't bet on your own matches... silly goose ;) | halt
- }
- if ($hget(bets. [ $+ [ $chan ] ]) == $null) { hmake bets. [ $+ [ $chan ] ] }
- if ($hget(bets. [ $+ [ $chan ] ] , $nick)) {
- msg # $nick $+ , you have already placed a bet | halt
- }
- if ($1 == !w) && ($readini(BettingStats.ini, n, #,WinsTemp) == $null) { writeini -n BettingStats.ini # WinsTemp 0 }
- if ($1 == !w) writeini -n BettingStats.ini # WinsTemp $calc($readini(BettingStats.ini, n, #,WinsTemp) + 1)
- if ($1 == !l) && ($readini(BettingStats.ini, n, #,LossTemp) == $null) { writeini -n BettingStats.ini # LossTemp 0 }
- if ($1 == !l) writeini -n BettingStats.ini # LossTemp $calc($readini(BettingStats.ini, n, #,LossTemp) + 1)
- if ($2 > $calc($readini(Bettingpoints.ini, n, Points, $nick)*0.20)) { hadd bets. [ $+ [ $chan ] ] $nick $remove($1,$chr(33)) $+ $chr(44) $+ $calc($readini(Bettingpoints.ini, n, Points, $nick)*0.20) }
- ;//Old if statement before 20% limit if ($2 > $readini(Bettingpoints.ini, n, Points, $nick)) { hadd bets. [ $+ [ $chan ] ] $nick $remove($1,$chr(33)) $+ . $+ $readini(Bettingpoints.ini, n, Points, $nick) }
- else { hadd bets. [ $+ [ $chan ] ] $nick $remove($1,$chr(33)) $+ $chr(44) $+ $2 }
- }
- on $*:TEXT:/^(!win|!loss|!void)$/:#: {
- if ($nick !isop #) { halt }
- if (%bet. [ $+ [ $chan ] ]) halt
- if ($servertarget != irc.twitch.tv) halt
- if ($hget(bets. [ $+ [ $chan ] ]) == $null) {
- msg # No match seems to be going on, there are no bets. | return
- }
- if ($1 == !void) {
- msg # Bets for this match have been voided.
- hfree bets. [ $+ [ $chan ] ]
- halt
- }
- if ($readini(BettingStats.ini, n, #,WinsTemp) == $null) writeini -n BettingStats.ini # WinsTemp 0
- if ($readini(BettingStats.ini, n, #,LossTemp) == $null) writeini -n BettingStats.ini # LossTemp 0
- var %temp.l = $readini(BettingStats.ini, n, #,LossTemp)
- var %temp.w = $readini(BettingStats.ini, n, #,WinsTemp)
- var %percent.win = $calc((%temp.w)/(%temp.l + %temp.w))
- if ($1 == !win) {
- if ($readini(BettingStats.ini, n, #,WinsCounter) == $null) writeini -n BettingStats.ini # WinsCounter 0
- writeini -n BettingStats.ini # WinsCounter $calc($readini(BettingStats.ini, n, #,WinsCounter) + 1)
- msg # The match has ended with a win! :) $calc(%temp.l + %temp.w) bets were placed on this match. $round($calc(%percent.win * 100),2) $+ $chr(37) of all betters thought $remove(#,$chr(35)) would win. Updating points scores shortly.. Command !points displays your points
- var %i = 1
- while ($hget(bets. [ $+ [ $chan ] ], %i).item) {
- var %name = $v1
- var %value = $hget(bets. [ $+ [ $chan ] ], %name)
- writeini -n BettingPoints.ini Points %name $calc($readini(Bettingpoints.ini, n, Points, %name) - $gettok(%value,2,44))
- if ($gettok($hget(bets. [ $+ [ $chan ] ], $v1),1,44) == w ) {
- var %calc1 = $readini(Bettingpoints.ini, n, Points, %name)
- var %calc2 = $calc($readini(BettingStats.ini, n, #,OddsW) * $gettok(%value,2,44))
- writeini -n BettingPoints.ini Points %name $calc(%calc1 + %calc2)
- }
- if ($gettok($hget(bets. [ $+ [ $chan ] ], %name),1,44) == l ) {
- ;echo -a 8 %name has lost points: %value
- ;echo -a 8 $readini(Bettingpoints.ini, n, Points, %name)
- }
- inc %i
- }
- }
- if ($1 == !loss) {
- if ($readini(BettingStats.ini, n, #,LossCounter) == $null) writeini -n BettingStats.ini # LossCounter 0
- writeini -n BettingStats.ini # LossCounter $calc($readini(BettingStats.ini, n, #,LossCounter) + 1)
- msg # The match has ended with a loss. :( $calc(%temp.l + %temp.w) bets were placed on this match. $round($calc(%percent.win * 100),2) $+ $chr(37) of all betters thought $remove(#,$chr(35)) would win. Updating points scores shortly.. Command !points displays your points
- var %i = 1
- while ($hget(bets. [ $+ [ $chan ] ], %i).item) {
- echo -a $v1 $hget(bets. [ $+ [ $chan ] ], $v1)
- var %name = $v1
- var %value = $hget(bets. [ $+ [ $chan ] ], %name)
- writeini -n BettingPoints.ini Points %name $calc($readini(Bettingpoints.ini, n, Points, %name) - $gettok(%value,2,44))
- if ($gettok($hget(bets. [ $+ [ $chan ] ], $v1),1,44) == w ) {
- ;echo -a 4 %name has won points: %value
- ;echo -a 4 $readini(Bettingpoints.ini, n, Points, %name)
- }
- if ($gettok($hget(bets. [ $+ [ $chan ] ], %name),1,44) == l ) {
- var %calc3 = $readini(Bettingpoints.ini, n, Points, %name)
- var %calc4 = $calc($readini(BettingStats.ini, n, #,OddsL) * $gettok(%value,2,44))
- writeini -n BettingPoints.ini Points %name $calc(%calc3 + %calc4)
- ;echo -a 8 %name has lost points: %value
- ;echo -a 8 $readini(Bettingpoints.ini, n, Points, %name)
- }
- inc %i
- }
- }
- hfree bets. [ $+ [ $chan ] ]
- writeini -n BettingStats.ini # WinsTemp 0
- writeini -n BettingStats.ini # LossTemp 0
- }
- on *:text:!points:#:{
- if ($servertarget != irc.twitch.tv) halt
- if (%pointsspam. [ $+ [ $nick ] ]) return
- if (%pointsspam. [ $+ [ $chan ] ]) return
- set -u20 %pointsspam. $+ $nick On
- set -u3 %pointsspam. $+ $chan On
- if ($readini(Bettingpoints.ini, n, Points, $nick) == $null) { writeini -n BettingPoints.ini Points $nick 2500 }
- msg # $nick $+ , you have $round($readini(Bettingpoints.ini, n, Points, $nick),0) points
- }
- alias addpoints {
- var %i = 1
- while ($ini(Bettingpoints.ini,Points,%i)) {
- var %name = $v1
- echo -a $v1
- writeini -n BettingPoints.ini Points %name $calc($readini(Bettingpoints.ini, n, Points, %name) + 100)
- inc %i
- }
- echo -a 4 Added points
- }
- on *:text:!top5:#: {
- if ($servertarget != irc.twitch.tv) halt
- if (%pointsspam. [ $+ [ $nick ] ]) return
- if (%pointsspam. [ $+ [ $chan ] ]) return
- set -u20 %pointsspam. $+ $nick On
- set -u3 %pointsspam. $+ $chan On
- top5 #
- }
- alias top5 {
- var %i 1
- window -h @lol
- while ($ini(Bettingpoints.ini,Points,%i)) {
- echo @lol $v1 $readini(Bettingpoints.ini,Points,$v1)
- inc %i
- }
- filter -cetuww 2 32 @lol @lol
- var %y 1, %top
- while (%y <= 5) {
- set %top $addtok(%top,$gettok($line(@lol,%y),1,32) $round($gettok($line(@lol,%y),2,32),0),46)
- inc %y
- }
- msg $1 TOP 5: $replace(%top,$chr(46),$chr(44) $chr(32))
- window -c @lol
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement