Advertisement
Guest User

Untitled

a guest
Apr 26th, 2015
280
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 9.46 KB | None | 0 0
  1. ;### Betting script by Sakana.
  2.  
  3. on *:text:!match:#:{
  4. if ($servertarget != irc.twitch.tv) halt
  5. if (%bet. [ $+ [ $chan ] ]) halt
  6. if ($nick !isop #) halt
  7. if ($hget(bets. [ $+ [ $chan ] ]) != $null) {
  8. msg # $remove(#,$chr(35)) $+ , it seems like you forgot to report the result of the last match. | return
  9. }
  10. set -u74 %haltscripts. [ $+ [ $chan ] ] On
  11. set -u74 %bet. [ $+ [ $chan ] ] On
  12. if ($readini(BettingStats.ini, n, #,WinsCounter) == $null) writeini -n BettingStats.ini # WinsCounter 0
  13. if ($readini(BettingStats.ini, n, #,LossCounter) == $null) writeini -n BettingStats.ini # LossCounter 0
  14. if ($readini(BettingStats.ini, n, #,WinsCounter == 0)) || ($readini(BettingStats.ini, n, #,LossCounter == 0)) { var %odds = 2 }
  15.  
  16. else {
  17. var %a = $calc($readini(BettingStats.ini, n, #,WinsCounter))
  18. var %b = $calc($readini(BettingStats.ini, n, #,LossCounter))
  19. var %winrate = $calc((%a)/(%b + %a))
  20. var %odds = $round($calc(1/%winrate),2)
  21.  
  22. }
  23.  
  24. writeini -n BettingStats.ini # OddsW %odds
  25.  
  26. if ($calc(4 - $readini(BettingStats.ini, n, #,OddsW)) < 0.50 ) { writeini -n BettingStats.ini # OddsL 0.50 }
  27. else { writeini -n BettingStats.ini # OddsL $calc(4 - %odds) }
  28.  
  29. 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)
  30. .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.
  31. .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.
  32. .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.
  33. .timer11 1 12 msg # -- BETS ARE NOW OPEN FOR 60 SECONDS --
  34. .timer1 1 31 msg # -- 40 SECONDS LEFT --
  35. .timer2 1 51 msg # -- 20 SECONDS LEFT --
  36. .timer3 1 61 msg # -- 10 SECONDS LEFT --
  37. .timer4 1 71 msg # -- BETS ARE CLOSED --
  38. .timer5 1 74 endofbetting #
  39. }
  40.  
  41. alias endofbetting {
  42.  
  43. if ($readini(BettingStats.ini, n, $1,WinsTemp) == $null) { writeini -n BettingStats.ini $1 WinsTemp 0 }
  44. if ($readini(BettingStats.ini, n, $1,LossTemp) == $null) { writeini -n BettingStats.ini $1 LossTemp 0 }
  45.  
  46. var %temp.l = $readini(BettingStats.ini, n, $1,LossTemp)
  47. var %temp.w = $readini(BettingStats.ini, n, $1,WinsTemp)
  48.  
  49. var %percent.win = $calc((%temp.w)/(%temp.l + %temp.w))
  50. 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.
  51. }
  52.  
  53. on $*:text:/^(!w|!l) [1-9][0-9]*$/:#:{
  54. if (!%bet. [ $+ [ $chan ] ]) halt
  55. if ($servertarget != irc.twitch.tv) halt
  56. if ($2 !isnum) return
  57. if ($2 < 0) {
  58. msg # $nick $+ , you can't bet negative amounts. | return
  59. }
  60.  
  61. if ($readini(Bettingpoints.ini, n, Points, $nick) == 0) return
  62. if ($readini(Bettingpoints.ini, n, Points, $nick) == $null) { writeini -n BettingPoints.ini Points $nick 2500 }
  63.  
  64.  
  65. if ($nick == $remove(#,$chr(35))) {
  66. msg # $nick $+ , you can't bet on your own matches... silly goose ;) | halt
  67. }
  68.  
  69. if ($hget(bets. [ $+ [ $chan ] ]) == $null) { hmake bets. [ $+ [ $chan ] ] }
  70.  
  71. if ($hget(bets. [ $+ [ $chan ] ] , $nick)) {
  72. msg # $nick $+ , you have already placed a bet | halt
  73. }
  74.  
  75. if ($1 == !w) && ($readini(BettingStats.ini, n, #,WinsTemp) == $null) { writeini -n BettingStats.ini # WinsTemp 0 }
  76. if ($1 == !w) writeini -n BettingStats.ini # WinsTemp $calc($readini(BettingStats.ini, n, #,WinsTemp) + 1)
  77.  
  78. if ($1 == !l) && ($readini(BettingStats.ini, n, #,LossTemp) == $null) { writeini -n BettingStats.ini # LossTemp 0 }
  79. if ($1 == !l) writeini -n BettingStats.ini # LossTemp $calc($readini(BettingStats.ini, n, #,LossTemp) + 1)
  80.  
  81. 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) }
  82. ;//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) }
  83. else { hadd bets. [ $+ [ $chan ] ] $nick $remove($1,$chr(33)) $+ $chr(44) $+ $2 }
  84.  
  85. }
  86.  
  87. on $*:TEXT:/^(!win|!loss|!void)$/:#: {
  88. if ($nick !isop #) { halt }
  89. if (%bet. [ $+ [ $chan ] ]) halt
  90. if ($servertarget != irc.twitch.tv) halt
  91. if ($hget(bets. [ $+ [ $chan ] ]) == $null) {
  92. msg # No match seems to be going on, there are no bets. | return
  93. }
  94.  
  95. if ($1 == !void) {
  96. msg # Bets for this match have been voided.
  97. hfree bets. [ $+ [ $chan ] ]
  98. halt
  99. }
  100.  
  101. if ($readini(BettingStats.ini, n, #,WinsTemp) == $null) writeini -n BettingStats.ini # WinsTemp 0
  102. if ($readini(BettingStats.ini, n, #,LossTemp) == $null) writeini -n BettingStats.ini # LossTemp 0
  103.  
  104. var %temp.l = $readini(BettingStats.ini, n, #,LossTemp)
  105. var %temp.w = $readini(BettingStats.ini, n, #,WinsTemp)
  106. var %percent.win = $calc((%temp.w)/(%temp.l + %temp.w))
  107.  
  108. if ($1 == !win) {
  109. if ($readini(BettingStats.ini, n, #,WinsCounter) == $null) writeini -n BettingStats.ini # WinsCounter 0
  110. writeini -n BettingStats.ini # WinsCounter $calc($readini(BettingStats.ini, n, #,WinsCounter) + 1)
  111.  
  112.  
  113.  
  114. 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
  115. var %i = 1
  116. while ($hget(bets. [ $+ [ $chan ] ], %i).item) {
  117. var %name = $v1
  118. var %value = $hget(bets. [ $+ [ $chan ] ], %name)
  119. writeini -n BettingPoints.ini Points %name $calc($readini(Bettingpoints.ini, n, Points, %name) - $gettok(%value,2,44))
  120. if ($gettok($hget(bets. [ $+ [ $chan ] ], $v1),1,44) == w ) {
  121. var %calc1 = $readini(Bettingpoints.ini, n, Points, %name)
  122. var %calc2 = $calc($readini(BettingStats.ini, n, #,OddsW) * $gettok(%value,2,44))
  123. writeini -n BettingPoints.ini Points %name $calc(%calc1 + %calc2)
  124. }
  125. if ($gettok($hget(bets. [ $+ [ $chan ] ], %name),1,44) == l ) {
  126. ;echo -a 8 %name has lost points: %value
  127. ;echo -a 8 $readini(Bettingpoints.ini, n, Points, %name)
  128.  
  129. }
  130. inc %i
  131. }
  132. }
  133.  
  134. if ($1 == !loss) {
  135. if ($readini(BettingStats.ini, n, #,LossCounter) == $null) writeini -n BettingStats.ini # LossCounter 0
  136. writeini -n BettingStats.ini # LossCounter $calc($readini(BettingStats.ini, n, #,LossCounter) + 1)
  137.  
  138. 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
  139. var %i = 1
  140. while ($hget(bets. [ $+ [ $chan ] ], %i).item) {
  141. echo -a $v1 $hget(bets. [ $+ [ $chan ] ], $v1)
  142. var %name = $v1
  143. var %value = $hget(bets. [ $+ [ $chan ] ], %name)
  144. writeini -n BettingPoints.ini Points %name $calc($readini(Bettingpoints.ini, n, Points, %name) - $gettok(%value,2,44))
  145. if ($gettok($hget(bets. [ $+ [ $chan ] ], $v1),1,44) == w ) {
  146. ;echo -a 4 %name has won points: %value
  147. ;echo -a 4 $readini(Bettingpoints.ini, n, Points, %name)
  148. }
  149. if ($gettok($hget(bets. [ $+ [ $chan ] ], %name),1,44) == l ) {
  150. var %calc3 = $readini(Bettingpoints.ini, n, Points, %name)
  151. var %calc4 = $calc($readini(BettingStats.ini, n, #,OddsL) * $gettok(%value,2,44))
  152.  
  153. writeini -n BettingPoints.ini Points %name $calc(%calc3 + %calc4)
  154. ;echo -a 8 %name has lost points: %value
  155. ;echo -a 8 $readini(Bettingpoints.ini, n, Points, %name)
  156.  
  157. }
  158. inc %i
  159. }
  160. }
  161.  
  162. hfree bets. [ $+ [ $chan ] ]
  163. writeini -n BettingStats.ini # WinsTemp 0
  164. writeini -n BettingStats.ini # LossTemp 0
  165.  
  166. }
  167.  
  168.  
  169. on *:text:!points:#:{
  170. if ($servertarget != irc.twitch.tv) halt
  171. if (%pointsspam. [ $+ [ $nick ] ]) return
  172. if (%pointsspam. [ $+ [ $chan ] ]) return
  173. set -u20 %pointsspam. $+ $nick On
  174. set -u3 %pointsspam. $+ $chan On
  175. if ($readini(Bettingpoints.ini, n, Points, $nick) == $null) { writeini -n BettingPoints.ini Points $nick 2500 }
  176. msg # $nick $+ , you have $round($readini(Bettingpoints.ini, n, Points, $nick),0) points
  177.  
  178. }
  179.  
  180. alias addpoints {
  181. var %i = 1
  182. while ($ini(Bettingpoints.ini,Points,%i)) {
  183. var %name = $v1
  184. echo -a $v1
  185. writeini -n BettingPoints.ini Points %name $calc($readini(Bettingpoints.ini, n, Points, %name) + 100)
  186. inc %i
  187. }
  188. echo -a 4 Added points
  189. }
  190.  
  191. on *:text:!top5:#: {
  192. if ($servertarget != irc.twitch.tv) halt
  193. if (%pointsspam. [ $+ [ $nick ] ]) return
  194. if (%pointsspam. [ $+ [ $chan ] ]) return
  195. set -u20 %pointsspam. $+ $nick On
  196. set -u3 %pointsspam. $+ $chan On
  197. top5 #
  198. }
  199.  
  200. alias top5 {
  201. var %i 1
  202. window -h @lol
  203. while ($ini(Bettingpoints.ini,Points,%i)) {
  204. echo @lol $v1 $readini(Bettingpoints.ini,Points,$v1)
  205. inc %i
  206. }
  207. filter -cetuww 2 32 @lol @lol
  208. var %y 1, %top
  209. while (%y <= 5) {
  210. set %top $addtok(%top,$gettok($line(@lol,%y),1,32) $round($gettok($line(@lol,%y),2,32),0),46)
  211. inc %y
  212. }
  213. msg $1 TOP 5: $replace(%top,$chr(46),$chr(44) $chr(32))
  214. window -c @lol
  215. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement