No Limit Texas Holdem Poker

By Hobo123 on May 04, 2010

No Limit Texas Holdem Poker. Found it somewhere, and am trying to automate the script so it can sit idle instead of me having to monitor it whenever someone wants to play.

I would like to limit it to 10 players max.

I am really, really n00b at all this, and so would like all feedback!

on *:EXIT:{
  unset %nlhe.#*
}

alias nlhe.msg {
  if (($me !ison $1) || (!$2)) return
  var %delay = $iif(%nlhe.msgdelay != $null,%nlhe.msgdelay,1000)
  inc %nlhe. [ $+ [ $1 ] $+ .msgtime ] %delay
  .timer -do $+ $iif(%delay < 300,h,m) 1 [ %nlhe. [ $+ [ $1 ] $+ .msgtime ] ] dec % $+ nlhe. $+ $1 $+ .msgtime %delay $chr(124) msg $1 $iif(c isincs $gettok($chan($1).mode,1,32),$!strip( $2- ),$2-)
}
alias nlhe.notice {
  if (($2 !ison $1) || (!$3)) return
  var %delay = $iif(%nlhe.msgdelay != $null,%nlhe.msgdelay,1000)
  inc %nlhe. [ $+ [ $1 ] $+ .msgtime ] %delay
  .timer -do $+ $iif(%delay < 300,h,m) 1 [ %nlhe. [ $+ [ $1 ] $+ .msgtime ] ] dec % $+ nlhe. $+ $1 $+ .msgtime %delay $chr(124) $iif($2 == $me,echo -act notice,.notice $2) $1 > $3-
}

menu channel {
  NLHE
  .$iif($nlhe.menutest($chan),$iif([ %nlhe. [ $+ [ $chan ] $+ .regging ] ] || [ %nlhe. [ $+ [ $chan ] $+ .running ] ],re) $+ start NLHE game registration in $chan):{ nlhe.start $chan }
  .$iif([ %nlhe. [ $+ [ $chan ] $+ .regging ] ],commence NLHE game in $chan):{ nlhe.begin $chan }
  .$iif([ %nlhe. [ $+ [ $chan ] $+ .regging ] ] || [ %nlhe. [ $+ [ $chan ] $+ .running ] ],stop NLHE game in $chan):{ nlhe.stop $chan }
  .-
  .$submenu($nlhe.setdefaults($1))
}
alias nlhe.menutest {
  if (([ %nlhe. [ $+ [ $1 ] $+ .regging ] ]) || ([ %nlhe. [ $+ [ $1 ] $+ .running ] ])) {
    if ([ %nlhe. [ $+ [ $1 ] $+ .cid ] ] == $cid) {
      return 1
    }
  }
  if (([ %nlhe. [ $+ [ $1 ] $+ .regging ] ] == $null) && ([ %nlhe. [ $+ [ $1 ] $+ .running ] ] == $null)) {
    return 1
  }
}
alias nlhe.setdefaults {
  if ((!%nlhe.startblind) || (%nlhe.startblind < 2) || (2 \\ %nlhe.startblind)) { set %nlhe.startblind 50 }
  if ((!%nlhe.startmoney) || (%nlhe.startmoney < 2) || (1 \\ %nlhe.startmoney)) { set %nlhe.startmoney 10000 }
  if ((!%nlhe.timeblinds) || (%nlhe.timeblinds < 1) || (1 \\ %nlhe.timeblinds)) { set %nlhe.timeblinds 5 }
  if ((!%nlhe.timetoact) || (%nlhe.timetoact < 15) || (1 \\ %nlhe.timetoact)) { set %nlhe.timetoact 60 }
  if ((%nlhe.msgdelay == $null) || (%nlhe.msgdelay < 0) || (%nlhe.msgdelay > 3000) || (1 \\ %nlhe.msgdelay)) { set %nlhe.msgdelay 1000 }
  var %p1 = starting money = %nlhe.startmoney
  var %p2 = starting big blind = %nlhe.startblind
  var %p3 = interval of raising the blinds = %nlhe.timeblinds mins
  var %p4 = players' time to act = %nlhe.timetoact secs
  var %p5 = message delay = %nlhe.msgdelay $+ ms
  if ($1 == begin) return %p1 :{ nlhe.setdefaults sm }
  if ($1 == 1) return %p2 :{ nlhe.setdefaults sb }
  if ($1 == 2) return %p3 :{ nlhe.setdefaults tb }
  if ($1 == 3) return %p4 :{ nlhe.setdefaults ta }
  if ($1 == 4) return %p5 :{ nlhe.setdefaults md }
  if ($1 == 5) return -
  if ($1 == end) return $style(2) v1.02 created by Dav, 2007:{ }
  if ($1 == sm) {
    var %q = $input($chr(32),eo,Enter the starting money,%nlhe.startmoney)
    if ((%q > 1) && (1 // %q)) set %nlhe.startmoney $calc(%q)
  }
  if ($1 == sb) {
    var %q = $input(Enter an even number:,eo,Enter the starting big blind,%nlhe.startblind)
    if ((%q > 1) && (2 // %q)) set %nlhe.startblind $calc(%q)
  }
  if ($1 == tb) {
    var %q = $input(Enter the number of minutes between 1 and 120:,eo,Enter the time between raising of the blinds,%nlhe.timeblinds)
    if ((%q > 0) && (1 // %q) && (%q <= 120)) {
      set %nlhe.timeblinds $calc(%q)
      var %tname = nlhe. $+ $active $+ .blinds
      if (($timer(%tname).type == offline) && ([ %nlhe. [ $+ [ $active ] $+ .cid ] ] == $cid)) {
        .timer $+ %tname off
        .timer $+ %tname -o 0 $calc(%nlhe.timeblinds * 60) nlhe.raiseblinds $active
      }
    }
  }
  if ($1 == ta) {
    var %q = $input(Enter the number of seconds between 15 and 300:,eo,Enter the time players have to act before they will automatically be sat out,%nlhe.timetoact)
    if ((%q > 14) && (1 // %q) && (%q <= 300)) set %nlhe.timetoact $calc(%q)
  }
  if ($1 == md) {
    var %q = $remove($input(Enter a number between 0 and 3000:,eo,Enter the message delay in ms,%nlhe.msgdelay $+ ms),ms,$chr(32))
    if ((%q >= 0) && (1 // %q) && (%q <= 3000)) set %nlhe.msgdelay $calc(%q)
  }
}

on *:INPUT:#:{
  if (([ %nlhe. [ $+ [ $chan ] $+ .regging ] ]) && ([ %nlhe. [ $+ [ $chan ] $+ .cid ] ] == $cid)) {
    if (($1 == add) && (!$2)) {
      nlhe.add $chan $nick
    }
    if ($1 == remove) {
      if (!$2) {
        nlhe.remove $chan $nick
      }
    }
  }
  if (([ %nlhe. [ $+ [ $chan ] $+ .running ] ]) && ([ %nlhe. [ $+ [ $chan ] $+ .turn ] ] == $nick) && ([ %nlhe. [ $+ [ $chan ] $+ .cid ] ] == $cid)) {
    if ([ %nlhe. [ $+ [ $chan ] $+ . $+ [ $nick ] $+ .sitout ] ]) { nlhe.sitout $chan $nick in }
    if (($1 == call) && (!$2)) {
      nlhe.action $chan $nick call
    }
    if (($1 == raise) && ($2)) {
      if (($iif($2 == to,$3,$2) < 1) || (1 \\ $iif($2 == to,$3,$2))) {
        nlhe.notice $chan $nick Illegal raise. Use whole numbers only.
        return
      }
      nlhe.action $chan $nick raise $2-
    }
    if (($1 == bet) && ($2)) {
      if (($2 < 1) || (1 \\ $2)) {
        nlhe.notice $chan $nick Illegal bet. Use whole numbers only.
        return
      }
      nlhe.action $chan $nick bet $2
    }
    if (($1 == fold) && (!$2)) {
      nlhe.action $chan $nick fold
    }
    if (($1 == check) && (!$2)) {
      nlhe.action $chan $nick check
    }
    if (($1- == allin) || ($1- == all in)) {
      nlhe.allin $chan $nick
    }
  }
  if (([ %nlhe. [ $+ [ $chan ] $+ .running ] ]) && ([ %nlhe. [ $+ [ $chan ] $+ .cid ] ] == $cid)) {
    if (($1 == remove) && ($2)) {
      nlhe.removequitter $chan $2
    }
    if (($1 == add) && ($3)) {
      nlhe.addnew $chan $2 $3
    }
    if (($1-2 == sit out) && (!$3)) {
      nlhe.sitout $chan $nick out
    }
    if (($1-2 == sit in) && (!$3)) {
      nlhe.sitout $chan $nick in
    }
    if (($1 == back) && (!$2)) {
      nlhe.sitout $chan $nick in
    }
  }
}
on *:TEXT:add:#:{
  if (([ %nlhe. [ $+ [ $chan ] $+ .regging ] ]) && ([ %nlhe. [ $+ [ $chan ] $+ .cid ] ] == $cid)) {
    nlhe.add $chan $nick
  }
}
on *:TEXT:remove*:#:{
  if ([ %nlhe. [ $+ [ $chan ] $+ .cid ] ] == $cid) {
    if ([ %nlhe. [ $+ [ $chan ] $+ .regging ] ]) {
      nlhe.remove $chan $nick
    }
    elseif ($2) {
      if ($2 !ison $chan) {
        nlhe.removequitter $chan $2
      }
    }
  }
}
on *:TEXT:nlhe start:#:{
  if (([ %nlhe. [ $+ [ $chan ] $+ .regging ] ] == $null) && ([ %nlhe. [ $+ [ $chan ] $+ .running ] ] == $null)) {
    nlhe.start $chan $nick
  }
}
on *:TEXT:nlhe stop:#:{
  if (([ %nlhe. [ $+ [ $chan ] $+ .regging ] ]) && ([ %nlhe. [ $+ [ $chan ] $+ .regging ] ] == $nick)) {
    nlhe.stop $chan
  }
}
on *:TEXT:begin:#:{
  if (([ %nlhe. [ $+ [ $chan ] $+ .regging ] ]) && ([ %nlhe. [ $+ [ $chan ] $+ .regging ] ] != 1) && ($istok([ %nlhe. [ $+ [ $chan ] $+ .players ] ],$nick,32)) && (!$istok([ %nlhe. [ $+ [ $chan ] $+ .regging.begin ] ],$nick,32)) && ($numtok([ %nlhe. [ $+ [ $chan ] $+ .players ] ],32) > 1)) {
    set %nlhe. [ $+ [ $chan ] $+ .regging.begin ] $addtok([ %nlhe. [ $+ [ $chan ] $+ .regging.begin ] ],$nick,32)
    var %nump = $numtok([ %nlhe. [ $+ [ $chan ] $+ .players ] ],32)
    var %numb = $numtok([ %nlhe. [ $+ [ $chan ] $+ .regging.begin ] ],32)
    if ($calc(%numb / %nump) > 0.5) {
      nlhe.begin $chan
    }
    else {
      nlhe.msg $chan The game will begin when more than half of the players agree to begin.
    }
  }
}
on *:TEXT:call:#:{
  if (([ %nlhe. [ $+ [ $chan ] $+ .running ] ]) && ([ %nlhe. [ $+ [ $chan ] $+ .turn ] ] == $nick) && ([ %nlhe. [ $+ [ $chan ] $+ .cid ] ] == $cid)) {
    if ([ %nlhe. [ $+ [ $chan ] $+ . $+ [ $nick ] $+ .sitout ] ]) { unset %nlhe. [ $+ [ $chan ] $+ . $+ [ $nick ] $+ .sitout ] }
    nlhe.action $chan $nick call
  }
}
on *:TEXT:raise *:#:{
  if (([ %nlhe. [ $+ [ $chan ] $+ .running ] ]) && ([ %nlhe. [ $+ [ $chan ] $+ .turn ] ] == $nick) && ([ %nlhe. [ $+ [ $chan ] $+ .cid ] ] == $cid)) {
    if (($iif($2 == to,$3,$2) < 1) || (1 \\ $iif($2 == to,$3,$2))) {
      nlhe.notice $chan $nick Illegal raise. Use whole numbers only.
      return
    }
    if ([ %nlhe. [ $+ [ $chan ] $+ . $+ [ $nick ] $+ .sitout ] ]) { unset %nlhe. [ $+ [ $chan ] $+ . $+ [ $nick ] $+ .sitout ] }
    nlhe.action $chan $nick raise $2-
  }
}
on *:TEXT:bet *:#:{
  if (([ %nlhe. [ $+ [ $chan ] $+ .running ] ]) && ([ %nlhe. [ $+ [ $chan ] $+ .turn ] ] == $nick) && ([ %nlhe. [ $+ [ $chan ] $+ .cid ] ] == $cid)) {
    if (($2 < 1) || (1 \\ $2)) {
      nlhe.notice $chan $nick Illegal bet. Use whole numbers only.
      return
    }
    if ([ %nlhe. [ $+ [ $chan ] $+ . $+ [ $nick ] $+ .sitout ] ]) { unset %nlhe. [ $+ [ $chan ] $+ . $+ [ $nick ] $+ .sitout ] }
    nlhe.action $chan $nick bet $2
  }
}

on *:TEXT:fold:#:{
  if (([ %nlhe. [ $+ [ $chan ] $+ .running ] ]) && ([ %nlhe. [ $+ [ $chan ] $+ .turn ] ] == $nick) && ([ %nlhe. [ $+ [ $chan ] $+ .cid ] ] == $cid)) {
    if ([ %nlhe. [ $+ [ $chan ] $+ . $+ [ $nick ] $+ .sitout ] ]) { unset %nlhe. [ $+ [ $chan ] $+ . $+ [ $nick ] $+ .sitout ] }
    nlhe.action $chan $nick fold
  }
}

on *:TEXT:check:#:{
  if (([ %nlhe. [ $+ [ $chan ] $+ .running ] ]) && ([ %nlhe. [ $+ [ $chan ] $+ .turn ] ] == $nick) && ([ %nlhe. [ $+ [ $chan ] $+ .cid ] ] == $cid)) {
    if ([ %nlhe. [ $+ [ $chan ] $+ . $+ [ $nick ] $+ .sitout ] ]) { unset %nlhe. [ $+ [ $chan ] $+ . $+ [ $nick ] $+ .sitout ] }
    nlhe.action $chan $nick check
  }
}

on *:TEXT:all in:#:{
  if (([ %nlhe. [ $+ [ $chan ] $+ .running ] ]) && ([ %nlhe. [ $+ [ $chan ] $+ .turn ] ] == $nick) && ([ %nlhe. [ $+ [ $chan ] $+ .cid ] ] == $cid)) {
    if ([ %nlhe. [ $+ [ $chan ] $+ . $+ [ $nick ] $+ .sitout ] ]) { unset %nlhe. [ $+ [ $chan ] $+ . $+ [ $nick ] $+ .sitout ] }
    nlhe.allin $chan $nick
  }
}

on *:TEXT:allin:#:{
  if (([ %nlhe. [ $+ [ $chan ] $+ .running ] ]) && ([ %nlhe. [ $+ [ $chan ] $+ .turn ] ] == $nick) && ([ %nlhe. [ $+ [ $chan ] $+ .cid ] ] == $cid)) {
    if ([ %nlhe. [ $+ [ $chan ] $+ . $+ [ $nick ] $+ .sitout ] ]) { unset %nlhe. [ $+ [ $chan ] $+ . $+ [ $nick ] $+ .sitout ] }
    nlhe.allin $chan $nick
  }
}

on *:TEXT:sit out:#:{
  if (([ %nlhe. [ $+ [ $chan ] $+ .running ] ]) && ([ %nlhe. [ $+ [ $chan ] $+ .cid ] ] == $cid)) {
    nlhe.sitout $chan $nick out
  }
}

on *:TEXT:sit in:#:{
  if (([ %nlhe. [ $+ [ $chan ] $+ .running ] ]) && ([ %nlhe. [ $+ [ $chan ] $+ .cid ] ] == $cid)) {
    nlhe.sitout $chan $nick in
  }
}

on *:TEXT:back:#:{
  if (([ %nlhe. [ $+ [ $chan ] $+ .running ] ]) && ([ %nlhe. [ $+ [ $chan ] $+ .cid ] ] == $cid)) {
    nlhe.sitout $chan $nick in
  }
}

alias nlhe.start {
  if (($me ison $1) && (%nlhe.startmoney > 1) && (%nlhe.startblind > 1) && (1 // %nlhe.startmoney) && (2 // %nlhe.startblind)) {
    var %msgt = [ %nlhe. [ $+ [ $1 ] $+ .msgtime ] ]
    unset %nlhe. [ $+ [ $1 ] $+ .* ]
    hfree -w nlhe. $+ $1
    .timernlhe. $+ $1 $+ .blinds off
    .timernlhe. $+ $1 $+ .turn* off
    if (%msgt) { set %nlhe. [ $+ [ $1 ] $+ .msgtime ] %msgt }
    set %nlhe. [ $+ [ $1 ] $+ .regging ] $iif($2,$2,1)
    unset %nlhe. [ $+ [ $1 ] $+ .regging.begin ]
    set %nlhe. [ $+ [ $1 ] $+ .cid ] $cid
    nlhe.msg $chan A No Limit Hold'em poker game has been started in this chan. Type 'add' or 'remove' to register.
  }
}
alias nlhe.stop {
  if (($me ison $1) && (([ %nlhe. [ $+ [ $1 ] $+ .regging ] ]) || ([ %nlhe. [ $+ [ $1 ] $+ .running ] ]))) {
    var %msgt = [ %nlhe. [ $+ [ $1 ] $+ .msgtime ] ]
    unset %nlhe. [ $+ [ $1 ] $+ .* ]
    hfree -w nlhe. $+ $1
    .timernlhe. $+ $1 $+ .blinds off
    .timernlhe. $+ $1 $+ .turn* off
    if (%msgt) { set %nlhe. [ $+ [ $1 ] $+ .msgtime ] %msgt }
    nlhe.msg $chan The No Limit Hold'em poker game has been stopped.
  }
}
alias nlhe.begin {
  if (($me ison $1) && ([ %nlhe. [ $+ [ $1 ] $+ .cid ] ] == $cid) && ([ %nlhe. [ $+ [ $1 ] $+ .regging ] ]) && ($numtok([ %nlhe. [ $+ [ $1 ] $+ .players ] ],32) > 1)) {
    unset %nlhe. [ $+ [ $1 ] $+ .regging ]
    unset %nlhe. [ $+ [ $1 ] $+ .regging.begin ]
    set %nlhe. [ $+ [ $1 ] $+ .running ] 1
    set %nlhe. [ $+ [ $1 ] $+ .blind ] %nlhe.startblind
    var %i = 1
    while ($gettok([ %nlhe. [ $+ [ $1 ] $+ .players ] ],%i,32)) {
      set %nlhe. [ $+ [ $1 ] $+ . $+ [ $ifmatch ] ] %nlhe.startmoney
      inc %i
    }
    .timernlhe. $+ $1 $+ .blinds -o 0 $calc($iif(1 // %nlhe.timeblinds && %nlhe.timeblinds > 0,%nlhe.timeblinds,10) * 60) nlhe.raiseblinds $1
    nlhe.msg $chan The No Limit Hold'em poker game has commenced.
    set %nlhe. [ $+ [ $1 ] $+ .button ] $gettok([ %nlhe. [ $+ [ $1 ] $+ .players ] ],-1,32)
    nlhe.nextround $1
  }
}
alias nlhe.add {
  if (($2 ison $1) && (!$istok([ %nlhe. [ $+ [ $1 ] $+ .players ] ],$2,32)) && ([ %nlhe. [ $+ [ $1 ] $+ .regging ] ])) {
    if (($2 == blind) || ($2 == nextblind) || (allin*pot* iswm $2) || (playerspot* iswm $2) || (betpot* iswm $2) || ($2 == bb) || ($2 == allallin) || ($2 == cid) || ($2 == deck) || ($2 == msgtime) || ($2 == sb) || ($2 == raiser) || ($2 == bet) || ($2 == players) || ($2 == running) || ($2 == regging) || ($2 == stage) || ($2 == turn) || ($2 == button)) {
      nlhe.msg $1  $+ $2 $+ : illegal nickname.
    }
    elseif ($numtok([ %nlhe. [ $+ [ $1 ] $+ .players ] ],32) > 9) {
      nlhe.notice $1 $2 Player limit has already been reached
    }
    else {
      set %nlhe. [ $+ [ $1 ] $+ .players ] [ %nlhe. [ $+ [ $1 ] $+ .players ] ] $2
      nlhe.notice $1 $2 Added. $iif([ %nlhe. [ $+ [ $1 ] $+ .regging ] ] != 1,Wait for other players to join and if you want to start the game type: 'begin'.)
      nlhe.msg $1 Current players:  $+ [ %nlhe. [ $+ [ $1 ] $+ .players ] ] $+ .
    }
  }
}
alias nlhe.addnew {
  if (($2 ison $1) && (1 // $3) && ($3 > 1) && (!$istok([ %nlhe. [ $+ [ $1 ] $+ .players ] ],$2,32)) && ([ %nlhe. [ $+ [ $1 ] $+ .running ] ])) {
    if (($2 == blind) || ($2 == nextblind) || (allin*pot* iswm $2) || (playerspot* iswm $2) || (betpot* iswm $2) || ($2 == bb) || ($2 == allallin) || ($2 == cid) || ($2 == deck) || ($2 == msgtime) || ($2 == sb) || ($2 == raiser) || ($2 == bet) || ($2 == players) || ($2 == running) || ($2 == regging) || ($2 == stage) || ($2 == turn) || ($2 == button)) {
      return
    }
    elseif ($numtok([ %nlhe. [ $+ [ $1 ] $+ .players ] ],32) > 9) {
      return
    }
    else {
      set %nlhe. [ $+ [ $1 ] $+ .players ] [ %nlhe. [ $+ [ $1 ] $+ .players ] ] $2
      set %nlhe. [ $+ [ $1 ] $+ . $+ [ $2 ] ] $3
      nlhe.notice $1 $2 Added you with $ $+ $3 $+ .
      nlhe.msg $1  $+ $2 $+  has been manually added to the game by the host with $ $+ $3 $+ .
    }
  }
}
alias nlhe.remove {
  if (($2 ison $1) && ($istok([ %nlhe. [ $+ [ $1 ] $+ .players ] ],$2,32)) && ([ %nlhe. [ $+ [ $1 ] $+ .regging ] ])) {
    set %nlhe. [ $+ [ $1 ] $+ .players ] $remtok([ %nlhe. [ $+ [ $1 ] $+ .players ] ],$2,1,32)
    nlhe.notice $1 $2 Removed.
    nlhe.msg $1 Current players:  $+ $iif([ %nlhe. [ $+ [ $1 ] $+ .players ] ],[ %nlhe. [ $+ [ $1 ] $+ .players ] ],(none)) $+ .
  }
}
alias nlhe.removequitter {
  if (($istok([ %nlhe. [ $+ [ $1 ] $+ .players ] ],$2,32)) && ([ %nlhe. [ $+ [ $1 ] $+ .running ] ])) {
    if ([ %nlhe. [ $+ [ $1 ] $+ .turn ] ] != $2) {
      var %i = ""
      while ((%i < 10) || (!%i)) {
        var %cp = [ %nlhe. [ $+ [ $1 ] $+ .playerspot $+ [ %i ] ] ]
        if (%cp) {
          set %nlhe. [ $+ [ $1 ] $+ .playerspot $+ [ %i ] ] $remtok(%cp,$2,1,32)
        }
        inc %i
      }
      unset %nlhe. [ $+ [ $1 ] $+ . $+ [ $2 ] $+ .action ]
      set %nlhe. [ $+ [ $1 ] $+ . $+ [ $2 ] ] 0
      nlhe.msg $1  $+ $2 $+  has been forcibly removed from the game.
    }
  }
}
alias nlhe.sitout {
  if ($3) {
    if (($istok([ %nlhe. [ $+ [ $1 ] $+ .players ] ],$2,32)) && ([ %nlhe. [ $+ [ $1 ] $+ .running ] ])) {
      var %curr = [ %nlhe. [ $+ [ $1 ] $+ . $+ [ $2 ] $+ .sitout ] ]
      if (($3 == out) && (!%curr)) {
        set %nlhe. [ $+ [ $1 ] $+ . $+ [ $2 ] $+ .sitout ] 1
        if ([ %nlhe. [ $+ [ $1 ] $+ .turn ] ] == $2) {
          nlhe.action $1 $2 fold
        }
        nlhe.msg $1  $+ $2 is sitting out. $+ 
        nlhe.notice $1 $2 04You are sitting out. Type 'back' if you have returned.
      }
      if (($3 == in) && (%curr)) {
        nlhe.msg $1  $+ $2 is back in the game. $+ 
        nlhe.notice $1 $2 04You are back in the game.
        unset %nlhe. [ $+ [ $1 ] $+ . $+ [ $2 ] $+ .sitout ]
      }
    }
  }
}
alias nlhe.nxtblind {
  if ($1 isnum 2-) {
    var %o = $1, %osb = $round($calc(%o / 2),0), %n
    if (%o >= 1000) {
      var %div = 1 $+ $str(0,$calc($len(%o) - 3))
      %o = %o / %div
      %osb = %osb / %div
    }
    if (%o isnum 2-8) {
      %n = $round($calc((%o + %osb) / 2),0)
    }
    elseif (%o isnum 10-108) {
      %n = $calc($round($calc((%o + %osb) / 10),0) * 5)
    }
    elseif (%o isnum 110-282) {
      %n = $calc($round($calc((%o + %osb) / 50),0) * 25)
    }
    elseif (%o isnum 284-) {
      %n = $calc($round($calc((%o + %osb) / 200),0) * 100)
    }
    if (%div) {
      %n = %n * %div
    }
    if (%n) {
      var %nbb = %n * 2
    }
    return %nbb
  }
}
alias nlhe.raiseblinds {
  if ($1) {
    if (([ %nlhe. [ $+ [ $1 ] $+ .running ] ]) && ($me ison $1)) {
      var %cb = [ %nlhe. [ $+ [ $1 ] $+ .blind ] ]
      set %nlhe. [ $+ [ $1 ] $+ .nextblind ] $nlhe.nxtblind(%cb)
    }
    else {
      .timernlhe. $+ $1 $+ .blinds off
    }
  }
}
alias nlhe.nextp {
  if ($3) {
    var %allplist = [ %nlhe. [ $+ [ $1 ] $+ .players ] ], %plist = [ %nlhe. [ $+ [ $1 ] $+ .players $+ [ $2 ] ] ], %nump = $numtok(%allplist,32), %i = $findtok(%allplist,$3,1,32)
    if ((%nump < 2) || (!%i)) { return $3 }
    inc %i
    if (%i > %nump) { %i = 1 }
    while (%i != $findtok(%allplist,$3,1,32)) {
      var %c = $gettok(%allplist,%i,32)
      if (([ %nlhe. [ $+ [ $1 ] $+ . $+ [ %c ] ] ] <= 0) || (!$findtok(%plist,%c,1,32))) {
        goto inc
      }
      return %c
      :inc
      inc %i
      if (%i > %nump) { %i = 1 }
    }
    return $3
  }
}
alias nlhe.prevp {
  if ($3) {
    var %allplist = [ %nlhe. [ $+ [ $1 ] $+ .players ] ], %plist = [ %nlhe. [ $+ [ $1 ] $+ .players $+ [ $2 ] ] ], %nump = $numtok(%allplist,32), %i = $findtok(%allplist,$3,1,32)
    if ((%nump < 2) || (!%i)) { return $3 }
    dec %i
    if (%i < 1) { %i = %nump }
    while (%i != $findtok(%allplist,$3,1,32)) {
      var %c = $gettok(%allplist,%i,32)
      if (([ %nlhe. [ $+ [ $1 ] $+ . $+ [ %c ] ] ] <= 0) || (!$findtok(%plist,%c,1,32))) {
        goto dec
      }
      return %c
      :dec
      dec %i
      if (%i < 1) { %i = %nump }
    }
    return $3
  }
}
alias nlhe.cindex {
  return $mid(23456789TJQKA,$1,1)
}
alias nlhe.rcindex {
  return $pos(23456789TJQKA,$left($1,1),1)
}
alias nlhe.wordindex {
  var %c = $left($1,1)
  if (($len($1) > 1) && ($left($1,1) == $right($1,1))) { var %plur = 1 }
  if (%c == 2) { return Deuce $+ $iif(%plur,s) }
  if (%c == 3) { return Three $+ $iif(%plur,s) }
  if (%c == 4) { return Four $+ $iif(%plur,s) }
  if (%c == 5) { return Five $+ $iif(%plur,s) }
  if (%c == 6) { return Six $+ $iif(%plur,es) }
  if (%c == 7) { return Seven $+ $iif(%plur,s) }
  if (%c == 8) { return Eight $+ $iif(%plur,s) }
  if (%c == 9) { return Nine $+ $iif(%plur,s) }
  if (%c == T) { return Ten $+ $iif(%plur,s) }
  if (%c == J) { return Jack $+ $iif(%plur,s) }
  if (%c == Q) { return Queen $+ $iif(%plur,s) }
  if (%c == K) { return King $+ $iif(%plur,s) }
  if (%c == A) { return Ace $+ $iif(%plur,s) }
}
alias nlhe.sortrank {
  tokenize 32 $1-
  var %k = 13, %1 = $left($1,1), %2 = $left($2,1), %3 = $left($3,1), %4 = $left($4,1), %5 = $left($5,1), %6 = $left($6,1), %7 = $left($7,1), %cards = %1 %2 %3 %4 %5 %6 %7, %remaining = %cards, %count = 1
  while (%k > 0) {
    if ($matchtok(%remaining,$nlhe.cindex(%k),0,32)) {
      var %result = %result $gettok($1-,$findtok(%cards,$nlhe.cindex(%k),%count,32),32)
      %remaining = $remtok(%remaining,$nlhe.cindex(%k),1,32)
      if ($prop == single) dec %k
      else inc %count
    }
    else {
      dec %k
      var %count = 1
    }
  }
  return %result
}

alias nlhe.ranking {
  tokenize 32 $1-
  var %1 = $left($1,1), %2 = $left($2,1), %3 = $left($3,1), %4 = $left($4,1), %5 = $left($5,1), %6 = $left($6,1), %7 = $left($7,1)
  var %suits = $right($1,1) $+ $right($2,1) $+ $right($3,1) $+ $right($4,1) $+ $right($5,1) $+ $right($6,1) $+ $right($7,1)
  var %cards = %1 %2 %3 %4 %5 %6 %7, %hand
  ;
  ; STRAIGHT FLUSH
  ;
  var %sorted = $nlhe.sortrank($1-)
  if ($count(%suits,c) >= 5) { var %flushsuit = c }
  if ($count(%suits,d) >= 5) { var %flushsuit = d }
  if ($count(%suits,h) >= 5) { var %flushsuit = h }
  if ($count(%suits,s) >= 5) { var %flushsuit = s }
  if (%flushsuit) {
    var %flushcards
    if ($right($gettok(%sorted,1,32),1) = %flushsuit) { %flushcards = %flushcards $left($gettok(%sorted,1,32),1) }
    if ($right($gettok(%sorted,2,32),1) = %flushsuit) { %flushcards = %flushcards $left($gettok(%sorted,2,32),1) }
    if ($right($gettok(%sorted,3,32),1) = %flushsuit) { %flushcards = %flushcards $left($gettok(%sorted,3,32),1) }
    if ($right($gettok(%sorted,4,32),1) = %flushsuit) { %flushcards = %flushcards $left($gettok(%sorted,4,32),1) }
    if ($right($gettok(%sorted,5,32),1) = %flushsuit) { %flushcards = %flushcards $left($gettok(%sorted,5,32),1) }
    if ($right($gettok(%sorted,6,32),1) = %flushsuit) { %flushcards = %flushcards $left($gettok(%sorted,6,32),1) }
    if ($right($gettok(%sorted,7,32),1) = %flushsuit) { %flushcards = %flushcards $left($gettok(%sorted,7,32),1) }
    %sorted = $nlhe.sortrank(%flushcards).single
    if ((A K Q J T isin %sorted) || (K Q J T 9 isin %sorted) || (Q J T 9 8 isin %sorted) || (J T 9 8 7 isin %sorted) || (T 9 8 7 6 isin %sorted) || (9 8 7 6 5 isin %sorted) || (8 7 6 5 4 isin %sorted) || (7 6 5 4 3 isin %sorted) || (6 5 4 3 2 isin %sorted) || ((A isin %sorted) && (5 4 3 2 isin %sorted))) {
      var %hand.strenght = 9, %kicker = $left($ifmatch,1)
      goto vl
    }
    else {
      %flushcards = ""
    }
  }
  %sorted = ""
  ;
  ; QUADS
  ;
  var %i = 0
  while (%i <= 13) {
    inc %i
    if ($matchtok(%cards,$nlhe.cindex(%i),0,32) == 4) {
      var %hand = $str($nlhe.cindex(%i),4), %hand.strenght = 8, %remaining = $1-
      if (%1 = $nlhe.cindex(%i)) { %remaining = $remtok(%remaining,$1,1,32) }
      if (%2 = $nlhe.cindex(%i)) { %remaining = $remtok(%remaining,$2,1,32) }
      if (%3 = $nlhe.cindex(%i)) { %remaining = $remtok(%remaining,$3,1,32) }
      if (%4 = $nlhe.cindex(%i)) { %remaining = $remtok(%remaining,$4,1,32) }
      if (%5 = $nlhe.cindex(%i)) { %remaining = $remtok(%remaining,$5,1,32) }
      if (%6 = $nlhe.cindex(%i)) { %remaining = $remtok(%remaining,$6,1,32) }
      if (%7 = $nlhe.cindex(%i)) { %remaining = $remtok(%remaining,$7,1,32) }
      var %j = 13
      while (%j > 0) {
        if ($matchtok(%remaining,$nlhe.cindex(%j),0,32)) {
          var %kicker = $nlhe.cindex(%j)
          goto vl
        }
        dec %j
      }
    }
  }
  ;
  ; FULL HOUSE
  ;
  var %sorted = $nlhe.sortrank(%cards), %i = 13
  while (%i > 0) {
    if ($matchtok(%sorted,$nlhe.cindex(%i),0,32) == 3) {
      var %hand = $str($nlhe.cindex(%i),3), %remaining = %sorted
      while ($findtok(%remaining,$nlhe.cindex(%i),0,32)) { %remaining = $remtok(%remaining,$nlhe.cindex(%i),1,32) }
      var %j = 13
      while (%j > 0) {
        if ($matchtok(%remaining,$nlhe.cindex(%j),0,32) >= 2) {
          var %kicker = $str($nlhe.cindex(%j),2), %hand.strenght = 7
          goto vl
        }
        dec %j
      }
      if (!%hand.strenght) {
        var %sorted = "", %hand = ""
      }
    }
    dec %i
  }
  ;
  ; FLUSH
  ;
  if ($count(%suits,c) >= 5) { var %flushsuit = c }
  if ($count(%suits,d) >= 5) { var %flushsuit = d }
  if ($count(%suits,h) >= 5) { var %flushsuit = h }
  if ($count(%suits,s) >= 5) { var %flushsuit = s }
  if (%flushsuit) {
    var %hand.strenght = 6, %flushcards
    if ($right($1,1) = %flushsuit) { %flushcards = %flushcards %1 }
    if ($right($2,1) = %flushsuit) { %flushcards = %flushcards %2 }
    if ($right($3,1) = %flushsuit) { %flushcards = %flushcards %3 }
    if ($right($4,1) = %flushsuit) { %flushcards = %flushcards %4 }
    if ($right($5,1) = %flushsuit) { %flushcards = %flushcards %5 }
    if ($right($6,1) = %flushsuit) { %flushcards = %flushcards %6 }
    if ($right($7,1) = %flushsuit) { %flushcards = %flushcards %7 }
    %hand = $remove($gettok($nlhe.sortrank(%flushcards),1-5,32),$chr(32))
    goto vl
  }
  ;
  ; STRAIGHT
  ;
  var %sorted = $nlhe.sortrank(%cards).single
  if ((A K Q J T isin %sorted) || (K Q J T 9 isin %sorted) || (Q J T 9 8 isin %sorted) || (J T 9 8 7 isin %sorted) || (T 9 8 7 6 isin %sorted) || (9 8 7 6 5 isin %sorted) || (8 7 6 5 4 isin %sorted) || (7 6 5 4 3 isin %sorted) || (6 5 4 3 2 isin %sorted) || ((A isin %sorted) && (5 4 3 2 isin %sorted))) {
    var %hand.strenght = 5, %kicker = $left($ifmatch,1)
    goto vl
  }
  ;
  ; TRIPS
  ;
  var %sorted = $nlhe.sortrank(%cards), %i = 13
  while (%i > 0) {
    if ($matchtok(%sorted,$nlhe.cindex(%i),0,32) == 3) {
      var %hand = $str($nlhe.cindex(%i),3), %hand.strenght = 4, %remaining = %sorted
      while ($findtok(%remaining,$nlhe.cindex(%i),0,32)) { %remaining = $remtok(%remaining,$nlhe.cindex(%i),1,32) }
      var %kicker = $gettok(%remaining,1,32) $+ $gettok(%remaining,2,32)
      goto vl
    }
    dec %i
  }
  ;
  ; TWO PAIR
  ;
  var %i = 13, %remaining = %sorted
  while (%i > 0) {
    if ($matchtok(%sorted,$nlhe.cindex(%i),0,32) == 2) {
      var %hand = $str($nlhe.cindex(%i),2)
      while ($findtok(%remaining,$nlhe.cindex(%i),0,32)) { %remaining = $remtok(%remaining,$nlhe.cindex(%i),1,32) }
      var %j = 13
      while (%j > 0) {
        if ($matchtok(%remaining,$nlhe.cindex(%j),0,32) == 2) {
          var %hand = %hand $+ $str($nlhe.cindex(%j),2), %hand.strenght = 3
          while ($findtok(%remaining,$nlhe.cindex(%j),0,32)) { %remaining = $remtok(%remaining,$nlhe.cindex(%j),1,32) }
          var %kicker = $gettok(%remaining,1,32)
          goto vl
        }
        dec %j
      }
      ;
      ; PAIR
      ;
      var %hand.strenght = 2, %kicker = $gettok(%remaining,1,32) $+ $gettok(%remaining,2,32) $+ $gettok(%remaining,3,32)
      goto vl
    }
    dec %i
  }
  ;
  ; HIGH CARD
  ;
  var %hand.strenght = 1, %kicker = $remove($gettok(%sorted,1-5,32),$chr(32))
  :vl
  var %ret = %hand.strenght
  if (%hand) { %ret = $instok(%ret,%hand,2,46) }
  if (%kicker) { %ret = $instok(%ret,%kicker,3,46) }
  return %ret
}

alias nlhe.showdown {
  tokenize 32 $1-
  var %i = 0, %winner
  while (%i < $0) {
    inc %i
    var %p [ $+ [ %i ] ] [ $ $+ [ %i ] ]
    var %pp [ $+ [ %i ] ] 0
  }
  var %j = 10, %k = 9
  while (%j > 0) {
    if (%p [ $+ [ %j ] ]) {
      while (%k > 0) {
        if ($nlhe.value(%p [ $+ [ %j ] ],%p [ $+ [ %k ] ]) == 1) dec %pp [ $+ [ %k ] ]
        elseif ($nlhe.value(%p [ $+ [ %j ] ],%p [ $+ [ %k ] ]) == 2) dec %pp [ $+ [ %j ] ]
        dec %k
      }
    }
    dec %j
    %k = %j - 1
  }
  var %j = 10
  while (%j > 0) {
    if (%pp [ $+ [ %j ] ] == 0) {
      %winner = %j %winner
    }
    dec %j
  }
  return %winner
}

alias nlhe.value {
  var %1.rank = $gettok($1,1,46), %2.rank = $gettok($2,1,46), %1.hand = $gettok($1,2,46), %2.hand = $gettok($2,2,46), %1.kicker = $gettok($1,$iif($gettok($1,3,46),3,2),46), %2.kicker = $gettok($2,$iif($gettok($2,3,46),3,2),46)
  if (%1.rank > %2.rank) return 1
  elseif (%1.rank == %2.rank) {
    if (%1.rank == 9) {
      if ($nlhe.rcindex(%1.kicker) > $nlhe.rcindex(%2.kicker)) return 1
      elseif ($nlhe.rcindex(%1.kicker) == $nlhe.rcindex(%2.kicker)) return 3
      else return 2
    }
    if ((%1.rank == 8) || (%1.rank == 7)) {
      if ($nlhe.rcindex(%1.hand) > $nlhe.rcindex(%2.hand)) return 1
      elseif ($nlhe.rcindex(%1.hand) == $nlhe.rcindex(%2.hand)) {
        if ($nlhe.rcindex(%1.kicker) > $nlhe.rcindex(%2.kicker)) return 1
        elseif ($nlhe.rcindex(%1.kicker) == $nlhe.rcindex(%2.kicker)) return 3
        else return 2
      }
      else return 2
    }
    if ((%1.rank == 6) || (%1.rank == 1)) {
      if ($nlhe.rcindex($mid(%1.hand,1,1)) == $nlhe.rcindex($mid(%2.hand,1,1))) {
        if ($nlhe.rcindex($mid(%1.hand,2,1)) == $nlhe.rcindex($mid(%2.hand,2,1))) {
          if ($nlhe.rcindex($mid(%1.hand,3,1)) == $nlhe.rcindex($mid(%2.hand,3,1))) {
            if ($nlhe.rcindex($mid(%1.hand,4,1)) == $nlhe.rcindex($mid(%2.hand,4,1))) {
              if ($nlhe.rcindex($mid(%1.hand,5,1)) == $nlhe.rcindex($mid(%2.hand,5,1))) {
                return 3
              }
              elseif ($nlhe.rcindex($mid(%1.hand,5,1)) > $nlhe.rcindex($mid(%2.hand,5,1))) return 1
              else return 2
            }
            elseif ($nlhe.rcindex($mid(%1.hand,4,1)) > $nlhe.rcindex($mid(%2.hand,4,1))) return 1
            else return 2
          }
          elseif ($nlhe.rcindex($mid(%1.hand,3,1)) > $nlhe.rcindex($mid(%2.hand,3,1))) return 1
          else return 2
        }
        elseif ($nlhe.rcindex($mid(%1.hand,2,1)) > $nlhe.rcindex($mid(%2.hand,2,1))) return 1
        else return 2
      }
      elseif ($nlhe.rcindex($mid(%1.hand,1,1)) > $nlhe.rcindex($mid(%2.hand,1,1))) return 1
      else return 2
    }
    if (%1.rank == 5) {
      if ($nlhe.rcindex(%1.kicker) > $nlhe.rcindex(%2.kicker)) return 1
      elseif ($nlhe.rcindex(%1.kicker) == $nlhe.rcindex(%2.kicker)) return 3
      else return 2
    }
    if (%1.rank == 4) {
      if ($nlhe.rcindex(%1.hand) > $nlhe.rcindex(%2.hand)) return 1
      elseif ($nlhe.rcindex(%1.hand) == $nlhe.rcindex(%2.hand)) {
        if ($nlhe.rcindex(%1.kicker) > $nlhe.rcindex(%2.kicker)) return 1
        elseif ($nlhe.rcindex(%1.kicker) == $nlhe.rcindex(%2.kicker)) {
          if ($nlhe.rcindex($mid(%1.kicker,2,1)) > $nlhe.rcindex($mid(%2.kicker,2,1))) return 1
          elseif ($nlhe.rcindex($mid(%1.kicker,2,1)) == $nlhe.rcindex($mid(%2.kicker,2,1))) {
            return 3
          }
          else return 2
        }
        else return 2
      }
      else return 2
    }
    if (%1.rank == 3) {
      if ($nlhe.rcindex(%1.hand) > $nlhe.rcindex(%2.hand)) return 1
      elseif ($nlhe.rcindex(%1.hand) == $nlhe.rcindex(%2.hand)) {
        if ($nlhe.rcindex($mid(%1.hand,3,1)) > $nlhe.rcindex($mid(%2.hand,3,1))) return 1
        elseif ($nlhe.rcindex($mid(%1.hand,3,1)) == $nlhe.rcindex($mid(%2.hand,3,1))) {
          if ($nlhe.rcindex(%1.kicker) > $nlhe.rcindex(%2.kicker)) return 1
          elseif ($nlhe.rcindex(%1.kicker) == $nlhe.rcindex(%2.kicker)) {
            return 3
          }
          else return 2
        }
        else return 2
      }
      else return 2
    }
    if (%1.rank == 2) {
      if ($nlhe.rcindex(%1.hand) > $nlhe.rcindex(%2.hand)) return 1
      elseif ($nlhe.rcindex(%1.hand) == $nlhe.rcindex(%2.hand)) {
        if ($nlhe.rcindex(%1.kicker) > $nlhe.rcindex(%2.kicker)) return 1
        elseif ($nlhe.rcindex(%1.kicker) == $nlhe.rcindex(%2.kicker)) {
          if ($nlhe.rcindex($mid(%1.kicker,2,1)) > $nlhe.rcindex($mid(%2.kicker,2,1))) return 1
          elseif ($nlhe.rcindex($mid(%1.kicker,2,1)) == $nlhe.rcindex($mid(%2.kicker,2,1))) {
            if ($nlhe.rcindex($mid(%1.kicker,3,1)) > $nlhe.rcindex($mid(%2.kicker,3,1))) return 1
            elseif ($nlhe.rcindex($mid(%1.kicker,3,1)) == $nlhe.rcindex($mid(%2.kicker,3,1))) {
              return 3
            }
            else return 2
          }
          else return 2
        }
        else return 2
      }
      else return 2
    }
  }
  else return 2
}
alias nlhe.valuewords {
  var %rank = $gettok($1,1,46), %hand = $gettok($1,2,46), %kicker = $gettok($1,$iif($gettok($1,3,46),3,2),46), %line
  if (!%hand) return
  if ((%rank == 9) || (%rank == 5)) {
    %line = Straight $+ $iif(%rank == 9,$chr(32) $+ Flush) $+ $chr(44)
    var %to = $nlhe.wordindex(%kicker)
    if (%kicker == 5) {
      var %from = Ace
    }
    else {
      var %from = $nlhe.wordindex($nlhe.cindex($calc($nlhe.rcindex(%kicker) - 4)))
    }
    if ((%rank == 9) && (%kicker == A)) {
      return Royal Flush
    }
    return %line %from to %to
  }
  if (%rank == 8) {
    return Four Of A Kind $+ $chr(44) $nlhe.wordindex(%hand) + %kicker kicker
  }
  if (%rank == 7) {
    return Full House $+ $chr(44) $nlhe.wordindex(%hand) full of $nlhe.wordindex(%kicker)
  }
  if (%rank == 6) {
    return Flush $+ $chr(44) $nlhe.wordindex($left(%kicker,1)) high ( $+ %kicker $+ )
  }
  if (%rank == 4) {
    return Three Of A Kind $+ $chr(44) $nlhe.wordindex(%hand) + %kicker kickers
  }
  if (%rank == 3) {
    return Two Pair $+ $chr(44) $nlhe.wordindex($left(%hand,2)) over $nlhe.wordindex($right(%hand,2)) + %kicker kicker
  }
  if (%rank == 2) {
    return Pair of $nlhe.wordindex(%hand) $+  + %kicker kickers
  }
  if (%rank == 1) {
    return  $+ $nlhe.wordindex($left(%kicker,1)) High ( $+ %kicker $+ )
  }
}
alias nlhe.action {
  if ([ %nlhe. [ $+ [ $1 ] $+ .running ] ]) {
    var %amount, %currentmoney = [ %nlhe. [ $+ [ $1 ] $+ . $+ [ $2 ] ] ]

    if (([ %nlhe. [ $+ [ $1 ] $+ .allinpot ] ]) && ([ %nlhe. [ $+ [ $1 ] $+ . $+ [ $2 ] $+ .investedpot ] ] >= [ %nlhe. [ $+ [ $1 ] $+ .allinamountpot ] ])) {
      var %i = 0
      while (%i < 10) {
        inc %i
        var %cinvv = [ %nlhe. [ $+ [ $1 ] $+ . $+ [ $2 ] $+ .investedpot $+ [ %i ] ] ]
        var %cbett = $iif([ %nlhe. [ $+ [ $1 ] $+ .allinpot $+ [ %i ] ] ],[ %nlhe. [ $+ [ $1 ] $+ .allinamountpot $+ [ %i ] ] ],[ %nlhe. [ $+ [ $1 ] $+ .betpot $+ [ %i ] ] ])
        if (%cinvv < %cbett) {
          var %currentpot = pot $+ %i
          goto foundpot
        }
        elseif ((!%cbett) && (!%currentpot)) {
          var %currentpot = pot $+ %i
          goto foundpot
        }
        elseif ((%cinvv == %cbett) && (%cbett) && ([ %nlhe. [ $+ [ $1 ] $+ .allinpot $+ [ %i ] ] ] == $null)) {
          var %currentpot = pot $+ %i
        }
      }
    }

    if (!%currentpot) { var %currentpot = pot }

    :foundpot

    var %i = $iif($remove(%currentpot,pot),$remove(%currentpot,pot),0)
    while (%i < 10) {
      inc %i
      if ([ %nlhe. [ $+ [ $1 ] $+ .playerspot $+ [ %i ] ] ] == $null) {
        var %nextpot = pot $+ %i
        goto foundnextpot
      }
    }
    :foundnextpot

    if ($3 == sb) {
      %amount = [ %nlhe. [ $+ [ $1 ] $+ .blind ] ]
      %amount = $round($calc(%amount / 2),0)
      if (%currentmoney < %amount) {
        var %tp = %currentmoney
      }
      else {
        var %tp = %amount
      }
      set %nlhe. [ $+ [ $1 ] $+ .pot ] %tp
      set %nlhe. [ $+ [ $1 ] $+ . $+ [ $2 ] $+ .investedpot ] %tp
      dec %nlhe. [ $+ [ $1 ] $+ . $+ [ $2 ] ] %tp

      .timer -m 1 1 nlhe.action $1 [ %nlhe. [ $+ [ $1 ] $+ .bb ] ] bb

      if (%tp == %currentmoney) {
        set %nlhe. [ $+ [ $1 ] $+ .betpot ] %tp
        set %nlhe. [ $+ [ $1 ] $+ . $+ [ $2 ] $+ .action ] raise
        set %nlhe. [ $+ [ $1 ] $+ .raiser ] $2

        set %nlhe. [ $+ [ $1 ] $+ .allinamountpot ] %tp
        set %nlhe. [ $+ [ $1 ] $+ .allinpot ] $2

        nlhe.msg $1  $+ $2 $+  goes all in in the small blind for $ $+ %tp $+ .
        return
      }
      else {
        nlhe.msg $1  $+ $2 $+  posts the small blind of $ $+ %tp $+ .
      }
    }
    if ($3 == bb) {
      if ([ %nlhe. [ $+ [ $1 ] $+ .allinamountpot ] ]) {
        var %sbamount = $ifmatch, %amount = [ %nlhe. [ $+ [ $1 ] $+ .blind ] ], %tp = $calc(%amount - %sbamount)
        if (%tp) {
          set %nlhe. [ $+ [ $1 ] $+ .betpot1 ] %tp
        }
        if (%currentmoney < %amount) {
          nlhe.msg $1  $+ $2 $+  posts $ $+ %currentmoney $+  of the big blind.
        }
        else {
          nlhe.msg $1  $+ $2 $+  posts the big blind of $ $+ %amount $+ .
        }
        .timer -m 1 1 nlhe.action $1 $2 call silent
        return
      }
      %amount = [ %nlhe. [ $+ [ $1 ] $+ .blind ] ]
      if (%currentmoney < %amount) {
        var %tp = %currentmoney
      }
      else {
        var %tp = %amount
      }

      if (%tp == %currentmoney) {
        var %mpot = [ %nlhe. [ $+ [ $1 ] $+ .pot ] ], %sblind = [ %nlhe. [ $+ [ $1 ] $+ .sb ] ]
        if ((%mpot > %tp) && ($nlhe.nextp($1,pot,%sblind) != %sblind)) {
          set %nlhe. [ $+ [ $1 ] $+ .pot ] $calc(%tp * 2)
          set %nlhe. [ $+ [ $1 ] $+ .pot1 ] $calc(%mpot - %tp)
          set %nlhe. [ $+ [ $1 ] $+ . $+ [ $2 ] $+ .investedpot ] %tp
          set %nlhe. [ $+ [ $1 ] $+ . $+ [ %sblind ] $+ .investedpot ] %tp
          set %nlhe. [ $+ [ $1 ] $+ . $+ [ %sblind ] $+ .investedpot1 ] $calc(%mpot - %tp)
          set %nlhe. [ $+ [ $1 ] $+ .playerspot1 ] [ %nlhe. [ $+ [ $1 ] $+ .sb ] ]
          dec %nlhe. [ $+ [ $1 ] $+ . $+ [ $2 ] ] %tp
        }
        else {
          inc %nlhe. [ $+ [ $1 ] $+ .pot ] %tp
          set %nlhe. [ $+ [ $1 ] $+ . $+ [ $2 ] $+ .investedpot ] %tp
          dec %nlhe. [ $+ [ $1 ] $+ . $+ [ $2 ] ] %tp
        }
        set %nlhe. [ $+ [ $1 ] $+ .betpot ] %tp
        if ($nlhe.nextp($1,pot,%sblind) != %sblind) {
          var %betnewpot = $calc(%nlhe. [ $+ [ $1 ] $+ .blind ] - %tp)
          if (%betnewpot) { set %nlhe. [ $+ [ $1 ] $+ .betpot1 ] %betnewpot }
        }
        set %nlhe. [ $+ [ $1 ] $+ . $+ [ $2 ] $+ .action ] raise
        set %nlhe. [ $+ [ $1 ] $+ .raiser ] $2

        set %nlhe. [ $+ [ $1 ] $+ .allinamountpot ] %tp
        set %nlhe. [ $+ [ $1 ] $+ .allinpot ] $2

        nlhe.msg $1  $+ $2 $+  goes all in in the big blind for $ $+ %tp $+ .
        .timer -m 1 1 nlhe.nextturn $1
        return
      }
      else {
        inc %nlhe. [ $+ [ $1 ] $+ .pot ] %tp
        set %nlhe. [ $+ [ $1 ] $+ . $+ [ $2 ] $+ .investedpot ] %tp
        dec %nlhe. [ $+ [ $1 ] $+ . $+ [ $2 ] ] %tp
        set %nlhe. [ $+ [ $1 ] $+ .betpot ] %amount
        nlhe.msg $1  $+ $2 $+  posts the big blind of $ $+ %amount $+ .
        .timer -m 1 1 nlhe.nextturn $1
      }
    }
    if ($3 == call) {
      if ($5 != $null) {
        var %currentpot = $4, %tb = [ %nlhe. [ $+ [ $1 ] $+ .bet $+ [ %currentpot ] ] ], %ti = [ %nlhe. [ $+ [ $1 ] $+ . $+ [ $2 ] $+ .invested $+ [ %currentpot ] ] ]
        %tb = $iif([ %nlhe. [ $+ [ $1 ] $+ .allin $+ [ %currentpot ] ] ],[ %nlhe. [ $+ [ $1 ] $+ .allinamount $+ [ %currentpot ] ] ],[ %nlhe. [ $+ [ $1 ] $+ .bet $+ [ %currentpot ] ] ])
        if (%currentmoney < $5) {
          var %tp = %currentmoney
        }
        else {
          var %tp = $5
        }
        var %tx = $calc(%tp + %ti)
        if (%tp != $5) {
          ; TO CALL ALL IN
          var %i = 1, %plist = [ %nlhe. [ $+ [ $1 ] $+ .players $+ [ %currentpot ] ] ], %allinamount = %tx
          while ($gettok(%plist,%i,32)) {
            var %c = $ifmatch, %invv = [ %nlhe. [ $+ [ $1 ] $+ . $+ [ %c ] $+ .invested $+ [ %currentpot ] ] ]
            if ((%c != $2) && (%invv >= %tx)) {
              var %split = $calc(%split + (%invv - %tx))
              set %nlhe. [ $+ [ $1 ] $+ . $+ [ %c ] $+ .invested $+ [ %currentpot ] ] %tx
              if (%c != $2) {
                set %nlhe. [ $+ [ $1 ] $+ . $+ [ %c ] $+ .invested $+ [ %nextpot ] ] $calc(%invv - %allinamount)
                set %nlhe. [ $+ [ $1 ] $+ .players $+ [ %nextpot ] ] $addtok([ %nlhe. [ $+ [ $1 ] $+ .players $+ [ %nextpot ] ] ],%c,32)
              }
            }
            inc %i
          }
          var %cpamount = [ %nlhe. [ $+ [ $1 ] $+ . $+ [ %currentpot ] ] ]
          set %nlhe. [ $+ [ $1 ] $+ .players $+ [ %currentpot ] ] $addtok([ %nlhe. [ $+ [ $1 ] $+ .players $+ [ %currentpot ] ] ],$2,32)
          set %nlhe. [ $+ [ $1 ] $+ . $+ [ %currentpot ] ] $calc(%cpamount + %tp - %split)
          set %nlhe. [ $+ [ $1 ] $+ . $+ [ %nextpot ] ] %split
          if ([ %nlhe. [ $+ [ $1 ] $+ .allinamount $+ [ %currentpot ] ] ]) {
            set %nlhe. [ $+ [ $1 ] $+ .allinamount $+ [ %nextpot ] ] $calc(%tb - %tx)
          }
          if ([ %nlhe. [ $+ [ $1 ] $+ .allin $+ [ %currentpot ] ] ]) {
            set %nlhe. [ $+ [ $1 ] $+ .allin $+ [ %nextpot ] ] $ifmatch
          }
          set %nlhe. [ $+ [ $1 ] $+ .allinamount $+ [ %currentpot ] ] %tx
          set %nlhe. [ $+ [ $1 ] $+ .bet $+ [ %currentpot ] ] %tx
          set %nlhe. [ $+ [ $1 ] $+ .bet $+ [ %nextpot ] ] $calc(%tb - %tx)
        }
        else {
          set %nlhe. [ $+ [ $1 ] $+ .players $+ [ %currentpot ] ] $addtok([ %nlhe. [ $+ [ $1 ] $+ .players $+ [ %currentpot ] ] ],$2,32)
          inc %nlhe. [ $+ [ $1 ] $+ . $+ [ %currentpot ] ] %tp
        }

        inc %nlhe. [ $+ [ $1 ] $+ . $+ [ $2 ] $+ .invested $+ [ %currentpot ] ] %tp
        dec %nlhe. [ $+ [ $1 ] $+ . $+ [ $2 ] ] %tp
        set %nlhe. [ $+ [ $1 ] $+ . $+ [ $2 ] $+ .action ] call
        if (([ %nlhe. [ $+ [ $1 ] $+ .raiser ] ] != $2) && ($7 != silent)) {
          nlhe.msg $1  $+ $2 $+  calls +$ $+ %tp $+  $+ $iif($4 != pot,$chr(32) $+ into side pot $remove($4,pot) $+ .,.)
        }
        if ($6) {
          if ([ %nlhe. [ $+ [ $1 ] $+ .raiser ] ] != $2) {
            .timer -m 1 1 nlhe.nextturn $1
          }
          else {
            .timer -m 1 1 nlhe.action $1 $2 bet [ %nlhe. [ $+ [ $1 ] $+ . $+ [ $2 ] $+ .raiseamount ] ]
          }
        }
      }
      else {
        var %xbet = [ %nlhe. [ $+ [ $1 ] $+ .bet $+ [ %currentpot ] ] ], %xinv = [ %nlhe. [ $+ [ $1 ] $+ . $+ [ $2 ] $+ .invested $+ [ %currentpot ] ] ]
        if (%xinv == $null) { %xinv = 0 }
        if ((%xbet != $null) && (%xinv < %xbet)) {
          var %i = $remove(%currentpot,pot), %amount = 0
          if (!%i) { %i = "" } 
          while ((%i < 10) || (!%i)) {
            var %cinvv = [ %nlhe. [ $+ [ $1 ] $+ . $+ [ $2 ] $+ .investedpot $+ [ %i ] ] ]
            var %cbett = $iif([ %nlhe. [ $+ [ $1 ] $+ .allinpot $+ [ %i ] ] ],[ %nlhe. [ $+ [ $1 ] $+ .allinamountpot $+ [ %i ] ] ],[ %nlhe. [ $+ [ $1 ] $+ .betpot $+ [ %i ] ] ])
            if (%cinvv < %cbett) {
              var %amount = $calc(%amount + %cbett - %cinvv)
              var %lastamount = %i
              if (%amount >= %currentmoney) { %i = 11 }
            }
            inc %i
          }
          var %i = $remove(%currentpot,pot), %amount = 0
          if (!%i) { %i = "" } 
          while ((%i < 10) || (!%i)) {
            var %cinvv = [ %nlhe. [ $+ [ $1 ] $+ . $+ [ $2 ] $+ .investedpot $+ [ %i ] ] ]
            var %cbett = $iif([ %nlhe. [ $+ [ $1 ] $+ .allinpot $+ [ %i ] ] ],[ %nlhe. [ $+ [ $1 ] $+ .allinamountpot $+ [ %i ] ] ],[ %nlhe. [ $+ [ $1 ] $+ .betpot $+ [ %i ] ] ])
            if (%cinvv < %cbett) {
              var %amount = $calc(%amount + %cbett - %cinvv)
              .timer -h 1 $calc(10 * %i + 1) nlhe.action $1 $2 call pot $+ %i $calc(%cbett - %cinvv) $iif(%lastamount = %i,1,0) $iif($4 == silent,silent)
              if (%amount >= %currentmoney) { %i = 11 }
            }
            inc %i
          }
          if (!%amount) {
            var %amount = $calc(%xbet - %xinv)
            .timer -m 1 1 nlhe.action $1 $2 call %currentpot %amount 1
          }
        }
        elseif ([ %nlhe. [ $+ [ $1 ] $+ .raiser ] ] == $2) {
          .timer -m 1 1 nlhe.action $1 $2 bet [ %nlhe. [ $+ [ $1 ] $+ . $+ [ $2 ] $+ .raiseamount ] ]
        }
        else {
          nlhe.notice $1 $2 There is nothing to call.
        }
      }
    }
    if ($3 == bet) {
      if (([ %nlhe. [ $+ [ $1 ] $+ .bet $+ [ %currentpot ] ] ]) && ([ %nlhe. [ $+ [ $1 ] $+ .raiser ] ] != $2)) {
        nlhe.notice $1 $2 You can't bet here.
        return
      }
      elseif ([ %nlhe. [ $+ [ $1 ] $+ .raiser ] ] == $null) {
        if (($4 < [ %nlhe. [ $+ [ $1 ] $+ .blind ] ]) && ($4 < %currentmoney)) {
          nlhe.notice $1 $2 You must at bet at least the big blind: $ $+ [ %nlhe. [ $+ [ $1 ] $+ .blind ] ] $+ .
          return
        }
      }
      if (%currentmoney < $4) {
        var %tp = %currentmoney
      }
      else {
        var %tp = $4
      }
      set %nlhe. [ $+ [ $1 ] $+ .players $+ [ %currentpot ] ] $addtok([ %nlhe. [ $+ [ $1 ] $+ .players $+ [ %currentpot ] ] ],$2,32)
      inc %nlhe. [ $+ [ $1 ] $+ . $+ [ %currentpot ] ] %tp
      inc %nlhe. [ $+ [ $1 ] $+ .bet $+ [ %currentpot ] ] %tp
      inc %nlhe. [ $+ [ $1 ] $+ . $+ [ $2 ] $+ .invested $+ [ %currentpot ] ] %tp
      dec %nlhe. [ $+ [ $1 ] $+ . $+ [ $2 ] ] %tp
      unset %nlhe. [ $+ [ $1 ] $+ .*.action ]
      set %nlhe. [ $+ [ $1 ] $+ . $+ [ $2 ] $+ .action ] raise

      if ([ %nlhe. [ $+ [ $1 ] $+ .raiser ] ] != $2) {
        nlhe.msg $1  $+ $2 $+  bets $ $+ %tp $+  $+ $iif(%currentpot != pot,$chr(32) $+ into side pot $remove(%currentpot,pot) $+ .,.)
      }
      set %nlhe. [ $+ [ $1 ] $+ .raiser ] $2
      .timer -m 1 1 nlhe.nextturn $1
    }
    if ($3 == raise) {
      var %xbet = [ %nlhe. [ $+ [ $1 ] $+ .bet $+ [ %currentpot ] ] ], %xmoney = [ %nlhe. [ $+ [ $1 ] $+ . $+ [ $2 ] ] ], %xinv = [ %nlhe. [ $+ [ $1 ] $+ . $+ [ $2 ] $+ .invested $+ [ %currentpot ] ] ]
      if (%xinv == $null) { %xinv = 0 }
      var %i = $remove(%currentpot,pot), %amount = 0
      if (!%i) { %i = "" } 
      while ((%i < 10) || (!%i)) {
        var %cinvv = [ %nlhe. [ $+ [ $1 ] $+ . $+ [ $2 ] $+ .investedpot $+ [ %i ] ] ]
        var %cbett = $iif([ %nlhe. [ $+ [ $1 ] $+ .allinpot $+ [ %i ] ] ],[ %nlhe. [ $+ [ $1 ] $+ .allinamountpot $+ [ %i ] ] ],[ %nlhe. [ $+ [ $1 ] $+ .betpot $+ [ %i ] ] ])
        if (%cinvv < %cbett) {
          var %totalbet = $calc(%totalbet + %cbett)
          var %totalinv = $calc(%totalinv + %cinvv)
          var %amount = $calc(%amount + %cbett - %cinvv)
          if (%amount >= %currentmoney) { %i = 11 }
        }
        inc %i
      }
      if (!%amount) {
        var %amount = $calc(%xbet - %xinv)
        var %totalbet = %xbet
        var %totalinv = %xinv
      }
      if (!%totalbet) {
        nlhe.notice $1 $2 You can't raise here.
        return
      }
      var %xraise = $iif($4 == to,$5,$calc($4 + %totalbet))
      if (%xraise) {
        if ($calc(%xmoney + %totalinv) < %xraise) {
          var %xraise = $calc(%xmoney + %totalinv)
        }
        var %prevraiser = [ %nlhe. [ $+ [ $1 ] $+ .raiser ] ]
        if (%prevraiser != $2) {
          var %prevraise = [ %nlhe. [ $+ [ $1 ] $+ . $+ [ %prevraiser ] $+ .raiseamount ] ]
        }
        if (%amount >= %xmoney) {
          nlhe.notice $1 $2 You don't have enough money to raise.
          return
        }
        if (($calc(%xraise - %totalbet) < $calc($iif(%prevraise,%prevraise,%totalbet))) && ($calc(%xraise - %totalinv) < %xmoney)) {
          nlhe.notice $1 $2 Illegal raise. You must at least double the bet.
          return
        }
        unset %nlhe. [ $+ [ $1 ] $+ .*.action ]
        set %nlhe. [ $+ [ $1 ] $+ . $+ [ $2 ] $+ .action ] raise
        set %nlhe. [ $+ [ $1 ] $+ . $+ [ $2 ] $+ .raiseamount ] $calc(%xraise - %totalbet)
        set %nlhe. [ $+ [ $1 ] $+ .raiser ] $2
        nlhe.msg $1  $+ $2 $+  raises $iif(%currentpot != pot,the side pot $remove(%currentpot,pot) bet) from $ $+ %totalbet $+  to $ $+ %xraise $+ .
        .timer -m 1 1 nlhe.action $1 $2 call
      }
    }
    if ($3 == fold) {
      var %i = ""
      while ((%i < 10) || (!%i)) {
        var %cp = [ %nlhe. [ $+ [ $1 ] $+ .playerspot $+ [ %i ] ] ]
        if (%cp) {
          set %nlhe. [ $+ [ $1 ] $+ .playerspot $+ [ %i ] ] $remtok(%cp,$2,1,32)
        }
        inc %i
      }
      unset %nlhe. [ $+ [ $1 ] $+ . $+ [ $2 ] $+ .action ]
      nlhe.msg $1  $+ $2 $+  folds.
      .timer -m 1 1 nlhe.nextturn $1
    }
    if ($3 == check) {
      var %inv = [ %nlhe. [ $+ [ $1 ] $+ . $+ [ $2 ] $+ .invested $+ [ %currentpot ] ] ], %bet = [ %nlhe. [ $+ [ $1 ] $+ .bet $+ [ %currentpot ] ] ]
      if ((%inv != $null) && (%bet != $null) && (%inv == %bet) && ([ %nlhe. [ $+ [ $1 ] $+ .stage ] ] == preflop) && ([ %nlhe. [ $+ [ $1 ] $+ .bb ] ] == $2)) {
        nlhe.msg $1  $+ $2 $+  checks.
        set %nlhe. [ $+ [ $1 ] $+ . $+ [ $2 ] $+ .action ] check
        .timer -m 1 1 nlhe.nextturn $1
      }
      elseif (!%bet) {
        nlhe.msg $1  $+ $2 $+  checks.
        set %nlhe. [ $+ [ $1 ] $+ . $+ [ $2 ] $+ .action ] check
        .timer -m 1 1 nlhe.nextturn $1
      }
      else {
        nlhe.notice $1 $2 You can't check here.
      }
    }
    if ([ %nlhe. [ $+ [ $1 ] $+ . $+ [ $2 ] ] ] <= 0) {
      if ([ %nlhe. [ $+ [ $1 ] $+ .allinamount $+ [ %currentpot ] ] ] == $null) {
        set %nlhe. [ $+ [ $1 ] $+ .allinamount $+ [ %currentpot ] ] $iif(%tx,%tx,[ %nlhe. [ $+ [ $1 ] $+ .bet $+ [ %currentpot ] ] ])
      }
      set %nlhe. [ $+ [ $1 ] $+ .allin $+ [ %currentpot ] ] $addtok([ %nlhe. [ $+ [ $1 ] $+ .allin $+ [ %currentpot ] ] ],$2,32)
      nlhe.msg $1  $+ $2 $+  is all in.
    }
  }
}

alias nlhe.allin {
  if ([ %nlhe. [ $+ [ $1 ] $+ .running ] ]) {
    var %amount, %currentmoney = [ %nlhe. [ $+ [ $1 ] $+ . $+ [ $2 ] ] ]
    if (([ %nlhe. [ $+ [ $1 ] $+ .allinpot ] ]) && ([ %nlhe. [ $+ [ $1 ] $+ . $+ [ $2 ] $+ .investedpot ] ] >= [ %nlhe. [ $+ [ $1 ] $+ .allinamountpot ] ])) {
      var %i = 0
      while (%i < 10) {
        inc %i
        var %cinvv = [ %nlhe. [ $+ [ $1 ] $+ . $+ [ $2 ] $+ .investedpot $+ [ %i ] ] ]
        var %cbett = $iif([ %nlhe. [ $+ [ $1 ] $+ .allinpot $+ [ %i ] ] ],[ %nlhe. [ $+ [ $1 ] $+ .allinamountpot $+ [ %i ] ] ],[ %nlhe. [ $+ [ $1 ] $+ .betpot $+ [ %i ] ] ])
        if (%cinvv < %cbett) {
          var %currentpot = pot $+ %i
          goto foundpot
        }
        elseif ((!%cbett) && (!%currentpot)) {
          var %currentpot = pot $+ %i
          goto foundpot
        }
        elseif ((%cinvv == %cbett) && (%cbett) && ([ %nlhe. [ $+ [ $1 ] $+ .allinpot $+ [ %i ] ] ] == $null)) {
          var %currentpot = pot $+ %i
        }
      }
    }
    if (!%currentpot) { var %currentpot = pot }
    :foundpot
    var %i = $iif($remove(%currentpot,pot),$remove(%currentpot,pot),0)
    while (%i < 10) {
      inc %i
      if ([ %nlhe. [ $+ [ $1 ] $+ .playerspot $+ [ %i ] ] ] == $null) {
        var %nextpot = pot $+ %i
        goto foundnextpot
      }
    }
    :foundnextpot

    if (([ %nlhe. [ $+ [ $1 ] $+ .bet $+ [ %currentpot ] ] ]) && ([ %nlhe. [ $+ [ $1 ] $+ .raiser ] ] != $2)) {

    }
    else {
      nlhe.action $1 $2 bet %currentmoney
      return
    }

    var %xbet = [ %nlhe. [ $+ [ $1 ] $+ .bet $+ [ %currentpot ] ] ], %xmoney = [ %nlhe. [ $+ [ $1 ] $+ . $+ [ $2 ] ] ], %xinv = [ %nlhe. [ $+ [ $1 ] $+ . $+ [ $2 ] $+ .invested $+ [ %currentpot ] ] ]
    if (%xinv == $null) { %xinv = 0 }
    var %i = $remove(%currentpot,pot), %amount = 0
    if (!%i) { %i = "" } 
    while ((%i < 10) || (!%i)) {
      var %cinvv = [ %nlhe. [ $+ [ $1 ] $+ . $+ [ $2 ] $+ .investedpot $+ [ %i ] ] ]
      var %cbett = $iif([ %nlhe. [ $+ [ $1 ] $+ .allinpot $+ [ %i ] ] ],[ %nlhe. [ $+ [ $1 ] $+ .allinamountpot $+ [ %i ] ] ],[ %nlhe. [ $+ [ $1 ] $+ .betpot $+ [ %i ] ] ])
      if (%cinvv < %cbett) {
        var %totalbet = $calc(%totalbet + %cbett)
        var %totalinv = $calc(%totalinv + %cinvv)
        var %amount = $calc(%amount + %cbett - %cinvv)
        if (%amount >= %currentmoney) { %i = 11 }
      }
      inc %i
    }
    if (!%amount) {
      var %amount = $calc(%xbet - %xinv)
      var %totalbet = %xbet
      var %totalinv = %xinv
    }
    if (!%totalbet) {
      nlhe.action $1 $2 bet %currentmoney
      return
    }
    elseif (%amount >= %currentmoney) {
      nlhe.action $1 $2 call
      return
    }
    else {
      nlhe.action $1 $2 raise %currentmoney
      return
    }
    nlhe.action $1 $2 call
  }
}

alias nlhe.takecard {
  var %deck = $hget(nlhe. $+ $1,deck)
  if (%deck) {
    ;    var %r = $rand(1,$numtok(%deck,32))
    var %r = 1
    hadd nlhe. $+ $1 deck $deltok(%deck,%r,32)
    return $gettok(%deck,%r,32)
  }
}

alias nlhe.colorcards {
  var %j = 1
  while ($gettok($1-,%j,32)) {
    var %ccard = $ifmatch, %color
    if ($right(%ccard,1) == c) { %color = 03 }
    if ($right(%ccard,1) == d) { %color = 12 }
    if ($right(%ccard,1) == h) { %color = 04 }
    if ($right(%ccard,1) == s) { %color = "" }

    var %output = %output %color $+  $+ $left(%ccard,1) $+  $+ $right(%ccard,1) $+ $iif(%color,)
    inc %j
  }
  return %output
}

alias nlhe.nextround {
  if ([ %nlhe. [ $+ [ $1 ] $+ .running ] ]) {
    unset %nlhe. [ $+ [ $1 ] $+ .allinpot* ]
    unset %nlhe. [ $+ [ $1 ] $+ .allinamountpot* ]
    unset %nlhe. [ $+ [ $1 ] $+ .board ]
    unset %nlhe. [ $+ [ $1 ] $+ .pot* ]
    unset %nlhe. [ $+ [ $1 ] $+ .playerspot* ]
    unset %nlhe. [ $+ [ $1 ] $+ .allallin ]
    var %cb = [ %nlhe. [ $+ [ $1 ] $+ .blind ] ], %nb = [ %nlhe. [ $+ [ $1 ] $+ .nextblind ] ]
    if (%nb > %cb) {
      set %nlhe. [ $+ [ $1 ] $+ .blind ] %nb
      nlhe.msg $1 The blinds are going up. They are now at:  $+ $round($calc(%nb / 2),0) $+ / $+ %nb $+ .
      var %allplist = [ %nlhe. [ $+ [ $1 ] $+ .players ] ], %nump = $numtok(%allplist,32), %i = 1, %totalm = 0
      while ($gettok(%allplist,%i,32)) {
        var %c = $ifmatch
        inc %totalm [ %nlhe. [ $+ [ $1 ] $+ . $+ [ %c ] ] ]
        inc %i
      }
      var %avg = $round($calc(%totalm / %nump),0)
      var %tnb = $nlhe.nxtblind(%nb)
      if ($calc(%avg / %tnb) < 10) {
        nlhe.msg $1 The blinds have reached their maximum.
        .timernlhe. $+ $1 $+ .blinds off
      }
      else {
        %tnb = $nlhe.nxtblind(%tnb)
        if ($calc(%avg / %tnb) < 10) {
          var %tname = nlhe. $+ $1 $+ .blinds
          if ($timer(%tname)) {
            var %cdelay = $round($calc($timer(%tname).delay / 60),0)
            var %cstat = $timer(%tname).type
            if (%cstat == offline) {
              .timer $+ %tname off
              .timer $+ %tname 0 $calc(%cdelay * 120) nlhe.raiseblinds $1
              nlhe.msg $1  $+ $calc(%cdelay * 2) minutes remain until the blinds reach their maximum.
            }
            else {
              nlhe.msg $1 The blinds will be raised once more, because the number of players has decreased.
              nlhe.msg $1  $+ %cdelay minutes remain until the blinds reach their maximum.
            }
          }
        }
      }
    }
    set %nlhe. [ $+ [ $1 ] $+ .playerspot ] [ %nlhe. [ $+ [ $1 ] $+ .players ] ]
    set %nlhe. [ $+ [ $1 ] $+ .button ] $nlhe.nextp($1,pot,[ %nlhe. [ $+ [ $1 ] $+ .button ] ])
    if ($numtok([ %nlhe. [ $+ [ $1 ] $+ .players ] ],32) == 2) {
      set %nlhe. [ $+ [ $1 ] $+ .sb ] [ %nlhe. [ $+ [ $1 ] $+ .button ] ]
      set %nlhe. [ $+ [ $1 ] $+ .bb ] $nlhe.nextp($1,pot,[ %nlhe. [ $+ [ $1 ] $+ .sb ] ])
    }
    else {
      set %nlhe. [ $+ [ $1 ] $+ .sb ] $nlhe.nextp($1,pot,[ %nlhe. [ $+ [ $1 ] $+ .button ] ])
      set %nlhe. [ $+ [ $1 ] $+ .bb ] $nlhe.nextp($1,pot,[ %nlhe. [ $+ [ $1 ] $+ .sb ] ])
    }

    var %dck = 2c 3c 4c 5c 6c 7c 8c 9c Tc Jc Qc Kc Ac 2d 3d 4d 5d 6d 7d 8d 9d Td Jd Qd Kd Ad 2h 3h 4h 5h 6h 7h 8h 9h Th Jh Qh Kh Ah 2s 3s 4s 5s 6s 7s 8s 9s Ts Js Qs Ks As
    while (%dck) {
      var %rd = $rand(1,$numtok(%dck,32))
      var %sdck = %sdck $gettok(%dck,%rd,32)
      var %dck = $deltok(%dck,%rd,32)
    }
    hadd -m nlhe. $+ $1 deck %sdck

    var %oldmsgdelay = %nlhe.msgdelay
    set %nlhe.msgdelay 5000
    nlhe.msg $1 Players
    set %nlhe.msgdelay %oldmsgdelay

    var %i = 0
    while (%i < $numtok([ %nlhe. [ $+ [ $1 ] $+ .players ] ],32)) {
      inc %i
      var %c = $gettok([ %nlhe. [ $+ [ $1 ] $+ .players ] ],%i,32), %prefix = ___
      var %clist = %clist [ %nlhe. [ $+ [ $1 ] $+ . $+ [ %c ] ] ]
      hadd nlhe. $+ $1 %c $nlhe.takecard($1) $nlhe.takecard($1)
      set %nlhe. [ $+ [ $1 ] $+ . $+ [ %c ] $+ .investedpot ] 0
      set %nlhe. [ $+ [ $1 ] $+ . $+ [ %c ] $+ .investedpot1 ] 0
      set %nlhe. [ $+ [ $1 ] $+ . $+ [ %c ] $+ .investedpot2 ] 0
      set %nlhe. [ $+ [ $1 ] $+ . $+ [ %c ] $+ .investedpot3 ] 0
      set %nlhe. [ $+ [ $1 ] $+ . $+ [ %c ] $+ .investedpot4 ] 0
      set %nlhe. [ $+ [ $1 ] $+ . $+ [ %c ] $+ .investedpot5 ] 0
      set %nlhe. [ $+ [ $1 ] $+ . $+ [ %c ] $+ .investedpot6 ] 0
      set %nlhe. [ $+ [ $1 ] $+ . $+ [ %c ] $+ .investedpot7 ] 0
      set %nlhe. [ $+ [ $1 ] $+ . $+ [ %c ] $+ .investedpot8 ] 0
      set %nlhe. [ $+ [ $1 ] $+ . $+ [ %c ] $+ .investedpot9 ] 0
      if (%c == [ %nlhe. [ $+ [ $1 ] $+ .sb ] ]) { %prefix = SB: }
      if (%c == [ %nlhe. [ $+ [ $1 ] $+ .bb ] ]) { %prefix = BB: }
      if (%c == [ %nlhe. [ $+ [ $1 ] $+ .button ] ]) { %prefix = DB: }
      nlhe.msg $1  $+ %prefix $chr(36) $+ ! $+ [ %nlhe. [ $+ [ $1 ] $+ . $+ [ %c ] ] ] %c $+ $iif([ %nlhe. [ $+ [ $1 ] $+ . $+ [ %c ] $+ .sitout ] ],$chr(32) $+ - sitting out) $+ 
      nlhe.notice $1 %c Your cards are: $nlhe.colorcards($hget(nlhe. $+ $1,%c))
    }
    set %nlhe. [ $+ [ $1 ] $+ .turn ] [ %nlhe. [ $+ [ $1 ] $+ .bb ] ]
    set %nlhe. [ $+ [ $1 ] $+ .stage ] preflop
    nlhe.action $1 [ %nlhe. [ $+ [ $1 ] $+ .sb ] ] sb
  }
}

alias nlhe.nextturn {
  if ([ %nlhe. [ $+ [ $1 ] $+ .running ] ]) {
    .timernlhe. $+ $1 $+ .turn* off
    var %current = [ %nlhe. [ $+ [ $1 ] $+ .turn ] ], %next = $nlhe.nextp($1,pot,%current)
    set %nlhe. [ $+ [ $1 ] $+ .turn ] %next
    if ($numtok([ %nlhe. [ $+ [ $1 ] $+ .playerspot ] ],32) < 2) {
      unset %nlhe. [ $+ [ $1 ] $+ .turn ]
      nlhe.nextstage $1
      return
    }
    if (%current == %next) {
      unset %nlhe. [ $+ [ $1 ] $+ .turn ]
      nlhe.nextstage $1
      return
    }
    if ($nlhe.nextp($1,pot,%next) == %next) {
      var %xbet = [ %nlhe. [ $+ [ $1 ] $+ .betpot ] ], %xmoney = [ %nlhe. [ $+ [ $1 ] $+ . $+ [ %next ] ] ], %xinv = [ %nlhe. [ $+ [ $1 ] $+ . $+ [ %next ] $+ .investedpot ] ]
      if (%xinv == $null) { %xinv = 0 }
      var %i = ""
      while ((%i < 10) || (!%i)) {
        var %cinvv = [ %nlhe. [ $+ [ $1 ] $+ . $+ [ %next ] $+ .investedpot $+ [ %i ] ] ]
        var %cbett = $iif([ %nlhe. [ $+ [ $1 ] $+ .allinpot $+ [ %i ] ] ],[ %nlhe. [ $+ [ $1 ] $+ .allinamountpot $+ [ %i ] ] ],[ %nlhe. [ $+ [ $1 ] $+ .betpot $+ [ %i ] ] ])
        if (%cinvv < %cbett) {
          var %totalbet = $calc(%totalbet + %cbett)
          var %totalinv = $calc(%totalinv + %cinvv)
          var %amount = $calc(%amount + %cbett - %cinvv)
        }
        inc %i
      }
      if (!%amount) {
        var %amount = $calc(%xbet - %xinv)
      }
      if (!%amount) {
        unset %nlhe. [ $+ [ $1 ] $+ .turn ]
        nlhe.nextstage $1
        return
      }
    }
    if ([ %nlhe. [ $+ [ $1 ] $+ . $+ [ %next ] $+ .action ] ] == raise) {
      var %loopcheck = $nlhe.nextp($1,pot,%next), %nextst = 1
      while (%loopcheck != %next) {
        if ([ %nlhe. [ $+ [ $1 ] $+ . $+ [ %loopcheck ] $+ .action ] ] == call) {
          var %nextst = 1
        }
        else {
          var %nextst = 0
          goto loopout
        }
        %loopcheck = $nlhe.nextp($1,pot,%loopcheck)
      }
      if (%nextst) {
        unset %nlhe. [ $+ [ $1 ] $+ .turn ]
        nlhe.nextstage $1
        return
      }
    }
    if ([ %nlhe. [ $+ [ $1 ] $+ . $+ [ %next ] $+ .action ] ] == call) {
      var %loopcheck = $nlhe.nextp($1,pot,%next), %nextst = 1
      while (%loopcheck != %next) {
        if (([ %nlhe. [ $+ [ $1 ] $+ . $+ [ %loopcheck ] $+ .action ] ] == call) || ([ %nlhe. [ $+ [ $1 ] $+ . $+ [ %loopcheck ] $+ .action ] ] == raise)) {
          var %nextst = 1
        }
        else {
          var %nextst = 0
          goto loopout
        }
        %loopcheck = $nlhe.nextp($1,pot,%loopcheck)
      }
      if (%nextst) {
        unset %nlhe. [ $+ [ $1 ] $+ .turn ]
        nlhe.nextstage $1
        return
      }
    }
    if ([ %nlhe. [ $+ [ $1 ] $+ . $+ [ %next ] $+ .action ] ] == check) {
      var %loopcheck = $nlhe.nextp($1,pot,%next), %nextst = 1
      while (%loopcheck != %next) {
        if ([ %nlhe. [ $+ [ $1 ] $+ . $+ [ %loopcheck ] $+ .action ] ] == check) {
          var %nextst = 1
        }
        else {
          var %nextst = 0
          goto loopout
        }
        %loopcheck = $nlhe.nextp($1,pot,%loopcheck)
      }
      if (%nextst) {
        unset %nlhe. [ $+ [ $1 ] $+ .turn ]
        nlhe.nextstage $1
        return
      }
    }
    :loopout
    if ([ %nlhe. [ $+ [ $1 ] $+ .stage ] ] == preflop) {
      if ([ %nlhe. [ $+ [ $1 ] $+ . $+ [ %current ] $+ .action ] ] == check) {
        unset %nlhe. [ $+ [ $1 ] $+ .turn ]
        nlhe.nextstage $1
        return
      }
    }
    var %sitout = [ %nlhe. [ $+ [ $1 ] $+ . $+ [ %next ] $+ .sitout ] ]
    if (%sitout) {
      var %allplayers = [ %nlhe. [ $+ [ $1 ] $+ .players ] ], %p = 1, %sit = 0
      while ($gettok(%allplayers,%p,32)) {
        var %player = $ifmatch
        if ([ %nlhe. [ $+ [ $1 ] $+ . $+ [ %player ] $+ .sitout ] ]) { inc %sit }
        inc %p
      }
      if (%sit == $numtok(%allplayers,32)) {
        nlhe.msg $1 Everyone's sitting out...
        nlhe.notice $1 %next It's your turn.
      }
      else {
        .timer -dom 1 [ %nlhe. [ $+ [ $1 ] $+ .msgtime ] ] nlhe.action $1 %next fold
      }
    }
    else {
      var %msgt = [ %nlhe. [ $+ [ $1 ] $+ .msgtime ] ]
      %msgt = $round($calc(%msgt / 1000),0)
      var %tta = $calc($iif(1 // %nlhe.timetoact && %nlhe.timetoact > 9,%nlhe.timetoact,60) + %msgt)
      if (([ %nlhe. [ $+ [ $1 ] $+ . $+ [ $nlhe.nextp($1,pot,%next) ] $+ .sitout ] ]) && ($numtok([ %nlhe. [ $+ [ $1 ] $+ .players ] ],32) == 2)) {
        nlhe.msg $1 Waiting for $nlhe.nextp($1,pot,%next) to return...
      }
      else {
        .timernlhe. $+ $1 $+ .turn2 -do 1 $calc(%tta -12) nlhe.notice $1 %next 04You have 10 seconds left to act. $chr(124) nlhe.msg $1  $+ %next has 10 seconds left to act...
        .timernlhe. $+ $1 $+ .turn -do 1 %tta nlhe.msg $1  $+ %next took longer than $calc(%tta - %msgt) seconds to act. $chr(124) nlhe.sitout $1 %next out
        nlhe.notice $1 %next It's your turn.
      }
    }
  }
}

alias nlhe.nextstage {
  unset %nlhe. [ $+ [ $1 ] $+ .raiser ]
  unset %nlhe. [ $+ [ $1 ] $+ .betpot* ]
  unset %nlhe. [ $+ [ $1 ] $+ .*.action ]
  unset %nlhe. [ $+ [ $1 ] $+ .*.raiseamount ]
  var %i = ""
  while ((%i < 10) || (!%i)) {
    var %allplayers = [ %nlhe. [ $+ [ $1 ] $+ .playerspot $+ [ %i ] ] ]
    if (([ %nlhe. [ $+ [ $1 ] $+ .allinpot $+ [ %i ] ] ] == $null) && (%allplayers)) {
      var %j = 1
      while ($gettok(%allplayers,%j,32)) {
        set %nlhe. [ $+ [ $1 ] $+ . $+ [ $ifmatch ] $+ .investedpot $+ [ %i ] ] 0
        inc %j
      }
    }
    inc %i
  }
  if ($numtok([ %nlhe. [ $+ [ $1 ] $+ .playerspot ] ],32) < 2) {
    nlhe.distributepots $1
  }
  else {
    set %nlhe. [ $+ [ $1 ] $+ .turn ] $nlhe.prevp($1,pot,$nlhe.nextp($1,pot,[ %nlhe. [ $+ [ $1 ] $+ .button ] ]))
    var %current = [ %nlhe. [ $+ [ $1 ] $+ .turn ] ], %next = $nlhe.nextp($1,pot,%current)
    var %cstage = [ %nlhe. [ $+ [ $1 ] $+ .stage ] ]
    if (%cstage == preflop) {
      set %nlhe. [ $+ [ $1 ] $+ .stage ] flop
      set %nlhe. [ $+ [ $1 ] $+ .board ] $nlhe.takecard($1) $nlhe.takecard($1) $nlhe.takecard($1)
    }
    if (%cstage == flop) {
      set %nlhe. [ $+ [ $1 ] $+ .stage ] turn
      set %nlhe. [ $+ [ $1 ] $+ .board ] [ %nlhe. [ $+ [ $1 ] $+ .board ] ] $nlhe.takecard($1)
    }
    if (%cstage == turn) {
      set %nlhe. [ $+ [ $1 ] $+ .stage ] river
      set %nlhe. [ $+ [ $1 ] $+ .board ] [ %nlhe. [ $+ [ $1 ] $+ .board ] ] $nlhe.takecard($1)
    }
    if (%cstage == river) {
      nlhe.distributepots $1
      return
    }
    var %ai = [ %nlhe. [ $+ [ $1 ] $+ .allallin ] ]
    if ((%current == %next) && (!%ai)) {
      set %nlhe. [ $+ [ $1 ] $+ .allallin ] 1
      %ai = 1
      var %allplayers = [ %nlhe. [ $+ [ $1 ] $+ .playerspot ] ], %p = 1
      while ($gettok(%allplayers,%p,32)) {
        var %player = $ifmatch, %cards = $hget(nlhe. $+ $1,%player)
        nlhe.msg $1  $+ %player $+  shows: $nlhe.colorcards(%cards) $+ .
        inc %p
      }
      nlhe.msg $1 Here we go...
    }
    if (!%ai) {
      var %i = ""
      while ((%i < 10) || (!%i)) {
        var %pot = pot $+ %i
        if ([ %nlhe. [ $+ [ $1 ] $+ . $+ [ %pot ] ] ]) {
          nlhe.msg $1 The $iif(%i,side pot %i,pot) contains: $ $+ [ %nlhe. [ $+ [ $1 ] $+ . $+ [ %pot ] ] ] $+ . Players in the pot:  $+ $sorttok([ %nlhe. [ $+ [ $1 ] $+ .players $+ [ %pot ] ] ],32) $+ .
        }
        inc %i
      }
    }
    else {
      var %oldmsgdelay = %nlhe.msgdelay
      set %nlhe.msgdelay 10000
    }
    nlhe.msg $1 The board is: $nlhe.colorcards([ %nlhe. [ $+ [ $1 ] $+ .board ] ])
    if (%oldmsgdelay != $null) {
      set %nlhe.msgdelay %oldmsgdelay
    }
    .timer -m 1 1 nlhe.nextturn $1
  }
}

alias nlhe.distributepots {
  var %i = "", %board = [ %nlhe. [ $+ [ $1 ] $+ .board ] ], %p = 1
  var %allplayers = [ %nlhe. [ $+ [ $1 ] $+ .playerspot ] ]
  if ($numtok(%allplayers,32) == 1) {
    while ((%i < 10) || (!%i)) {
      var %pot = pot $+ %i
      if ([ %nlhe. [ $+ [ $1 ] $+ . $+ [ %pot ] ] ]) {
        var %cpotamount = $ifmatch
        nlhe.msg $1  $+ %allplayers $+  wins the $iif($remove(%pot,pot),side pot $remove(%pot,pot),pot) of $ $+ %cpotamount $+ .
        inc %nlhe. [ $+ [ $1 ] $+ . $+ [ %allplayers ] ] %cpotamount
      }
      inc %i
    }
  }
  else {
    while ($gettok(%allplayers,%p,32)) {
      var %player = $ifmatch, %cards = $hget(nlhe. $+ $1,%player)
      var %value. [ $+ [ %player ] ] $nlhe.ranking(%board %cards)
      if (($gettok([ %value. [ $+ [ %player ] ] ],1,46) > 3) || ($gettok([ %value. [ $+ [ %player ] ] ],1,46) == 2)) {
        var %fora = 1
      }
      else {
        var %fora = 0
      }
      nlhe.msg $1  $+ %player $+  has $nlhe.colorcards(%cards) for $+ $iif(%fora,$chr(32) $+ a) $+ : $nlhe.valuewords([ %value. [ $+ [ %player ] ] ]) $+ .
      inc %p
    }
    while ((%i < 10) || (!%i)) {
      var %pot = pot $+ %i
      var %decced = 0
      if ([ %nlhe. [ $+ [ $1 ] $+ . $+ [ %pot ] ] ]) {
        var %cpotamount = $ifmatch, %cplayers = [ %nlhe. [ $+ [ $1 ] $+ .players $+ [ %pot ] ] ]
        var %j = 1
        while ($gettok(%cplayers,%j,32)) {
          var %cplayer = $ifmatch
          var %values = %values [ %value. [ $+ [ %cplayer ] ] ]
          inc %j
        }
        var %winners = $nlhe.showdown(%values)
        if ($numtok(%winners,32) > 1) {
          var %w = 1
          while ($gettok(%winners,%w,32)) {
            var %cwinner = $gettok(%cplayers,$ifmatch,32)
            var %winamount = $calc(%cpotamount / $numtok(%winners,32))
            if (!%decced) {
              var %dec = $round($calc((%winamount - $int(%winamount)) * $numtok(%winners,32)),0)
              if (%dec) {
                var %winamount = $calc($int(%winamount) + %dec)
              }
              %decced = 1
            }
            else {
              var %winamount = $int(%winamount)
            }
            nlhe.msg $1  $+ %cwinner $+  ties for the $iif($remove(%pot,pot),side pot $remove(%pot,pot),pot) and wins $ $+ %winamount $+ .
            inc %nlhe. [ $+ [ $1 ] $+ . $+ [ %cwinner ] ] %winamount
            inc %w
          }
        }
        else {
          var %cwinner = $gettok(%cplayers,%winners,32)
          nlhe.msg $1  $+ %cwinner $+  wins the $iif($remove(%pot,pot),side pot $remove(%pot,pot),pot) of $ $+ %cpotamount $+ .
          inc %nlhe. [ $+ [ $1 ] $+ . $+ [ %cwinner ] ] %cpotamount
        }
        var %values = ""
      }
      inc %i
    }
  }
  var %b = 1, %allp = [ %nlhe. [ $+ [ $1 ] $+ .players ] ]
  while ($gettok(%allp,%b,32)) {
    var %player = $ifmatch
    if ([ %nlhe. [ $+ [ $1 ] $+ . $+ [ %player ] ] ] < 1) {
      nlhe.msg $1  $+ %player $+  has gone busted! Bye bye.
      if ([ %nlhe. [ $+ [ $1 ] $+ .button ] ] == %player) {
        set %nlhe. [ $+ [ $1 ] $+ .button ] $nlhe.prevp($1,pot,%player)
      }
      set %nlhe. [ $+ [ $1 ] $+ .players ] $remtok([ %nlhe. [ $+ [ $1 ] $+ .players ] ],%player,1,32)
      unset %nlhe. [ $+ [ $1 ] $+ . $+ [ %player ] $+ * ]
    }
    inc %b
  }
  if ($numtok([ %nlhe. [ $+ [ $1 ] $+ .players ] ],32) < 2) {
    nlhe.msg $1  $+ [ %nlhe. [ $+ [ $1 ] $+ .players ] ] $+  has won the game!
    var %msgt = [ %nlhe. [ $+ [ $1 ] $+ .msgtime ] ]
    unset %nlhe. [ $+ [ $1 ] $+ .* ]
    hfree -w nlhe. $+ $1
    .timernlhe. $+ $1 $+ .blinds off
    .timernlhe. $+ $1 $+ .turn* off
    if (%msgt) { set %nlhe. [ $+ [ $1 ] $+ .msgtime ] %msgt }
    return
  }
  nlhe.nextround $1
}

Comments

Sign in to comment.
dma   -  Dec 06, 2015

sounds good but what are the triggers to play the game?

 Respond  
manuelavdl   -  Sep 23, 2011

hoi

I have this script in my irc programm loaded, but I can only with right click start the game, I can only add , but there is happenng nothing. how can i start the game, or with how many people can you play at last...

 Respond  
silent.nahid   -  Jun 14, 2010

the only problem i sorted out with this script is...it doesn't save the records of the players!if we could save the records it'd be a real fun!cuz then the players wud realize the importance of their chips!

 Respond  
silent.nahid   -  Jun 13, 2010

It's nice man!you can even run it on a bot!bt yeh a !help function wud definitely help the players!

 Respond  
Hobo123   -  May 07, 2010

Thanks, now any tips as to how to automate it?

 Respond  
FordLawnmower   -  May 07, 2010

Found it somewhere It was posted here in 2007 -->> http://www.mircscripts.org/comments.php?cid=3686

 Respond  
Hobo123   -  May 05, 2010

Yeah, if someone's talented enough to automate it, it will be a cool gambling bot ont he internet.

I can put in a help function. Give me a couple of days.

 Respond  
henbone11   -  May 05, 2010

this is actually pretty cool, but it would be nice if there was a !help function for those that dont know how to play or dont know the commands. it works fine for me though.

 Respond  
Hobo123   -  May 04, 2010

I guess this is finished, I am just trying to tweak it so it's less complicated at being automated?

 Respond  
H0LLYWOOD   -  May 04, 2010

its been my experience that this site is for finished scripts, not for help, thats what forums are for...

 Respond  
Are you sure you want to unfollow this person?
Are you sure you want to delete this?
Click "Unsubscribe" to stop receiving notices pertaining to this post.
Click "Subscribe" to resume notices pertaining to this post.