DR-LD

By DarthReven on Nov 19, 2004

this is my version of a dice game you have a 4 in 10 chance to win and as always i have a hash table in it to store player information. the commands are -join (this gives the user an account in the game) -placebet <Number 1-12> (this is to place a bet on a roll of the dice) -takebet (gives anouther player the ablity to take the bet) -luckydice (rolls the dice) -account (gives that player his or her account information) by default all players are given $500 to play and can use -loan to get more money from you you can let then have the money they want or deny them it right to their faces, Have fun. Any problems come find me on irc.icq.com #Newbies

On *:Load: {
  hmake DRLDbank 100
  if ($isfile(DRLDbank.dat)) { hload DRLDbank DRLDbank.dat }
}
On *:Start: {
  hmake DRLDbank 100
  if ($isfile(DRLDbank.dat)) { hload DRLDbank DRLDbank.dat }
}
On *:Exit: {
  if ($hget(DRLDbank)) { hsave -o DRLDbank DRLDbank.dat }
}
#drld off
On *:text:*:#: {
  if ($1 == -join) {
    if (!$hget(DRLDbank,$remove($address($nick,2),*!*@))) {
      msg $chan Welcome to the lucky dice game. The banker, $me $+ , has provided you with $500 dice dollars. Bet and use them wisely
      hadd DRLDbank $remove($address($nick,2),*!*@)) Level 500 0 0
    }
    else {
      var %drld.playerinfo $hget(DRLDbank,$remove($address($nick,2),*!*@))
      tokenize 32 %drld.playerinfo
      msg $chan ( $+ $nick $+ ) you are already registered as a $remove($1,$chr(95)) player
    }
  }
  elseif ($1 == -placebet) && ($hget(DRLDbank,$remove($address($nick,2),*!*@))) {
    if (%drld.bl != 0) {
      if ($2) && ($3) {
        set %drld.better $nick
        set %drld.bet $2
        set %drld.diceroll $3
        var %drld.money $hget(DRLDbank,$remove($address($nick,2),*!*@))
        tokenize 32 %drld.money
        if ($2 > 0) {
          msg $chan ( $+ $nick $+ ) has placed a bet of ( $+ $ $+ %drld.bet $+ ) on ( $+ %drld.diceroll $+ )
          msg $chan to take this bet type -takebet
          set %drld.bl 0
        }
        else {
          .notice $nick Sorry you can't make that bet you only have $iif($2 > 0,$ $+ $2,-$ $+ $remove($2,-))
        }
      }
      else {
        msg $chan ( $+ $nick $+ ) you need to place a bet amount and the number you wish to roll
      }
    }
    else {
      msg $chan ( $+ $nick $+ ) a bet has already been placed by ( $+ %drld.better0 $+ ) for ( $+ $ $+ %drld.bet $+ ) on ( $+ %drld.diceroll $+ )
    }
  }
  elseif (-takebet == $1) && ($hget(DRLDbank,$remove($address($nick,2),*!*@))) {
    if (%drld.bl == 0) && (!%drld.taker) && ($nick != %drld.better) {
      set %drld.taker $nick
      var %drld.money.taker $hget(DRLDbank,$remove($address($nick,2),*!*@))
      tokenize 32 %drld.money.taker
      if ($2 > 0) { 
        msg $chan ( $+ $nick $+ ) has taken ( $+ %drld.better $+ 's) bet
        .notice %drld.better $nick has taken your bet type -luckydice to roll the dice
      }
      else {
        .notice $nick you cannot take this bet you only have $iif($2 > 0,$ $+ $2,-$ $+ $remove($2,-))
      }
    }
    else {
      msg $chan ( $+ $nick $+ ) bet was placed by ( $+ %drld.better $+ ) for ( $+ $ $+ %drld.bet $+ ) on ( $+ %drld.diceroll $+ ) but has been taken by ( $+ %drld.taker $+ )
    }
  }
  elseif ($1 == -luckydice) && ($nick == %drld.better) {
    var %drld.dice1 $r(1,6)
    var %drld.dice2 $r(1,6)
    var %drld.dicet $calc(%drld.dice1 + %drld.dice2)
    msg $chan %drld.better rolled a ( $+ %drld.dicet $+ ) and wanted ( $+ %drld.diceroll $+ )
    if (%drld.dicet == %drld.diceroll) {
      msg $chan Congratulations, ( $+ %drld.better $+ ) you won $ $+ %drld.bet from ( $+ %drld.taker $+ )
      var %drld.winner $hget(DRLDbank,$remove($address(%drld.better,2),*!*@))
      tokenize 32 %drld.winner
      var %drld.moneyw $calc($2 + %drld.bet)
      var %drld.winsw $3
      inc %drld.winsw 
      var %drld.lossw $4
      if (%drld.winsw > 5) {
        hadd DRLDbank $remove($address(%drld.better,2),*!*@) Level %drld.moneyw %drld.winsw %drld.lossw
        unset %drld.better
        unset %drld.diceroll
        goto loser
      }
      elseif (%drld.winsw > 10) {
        hadd DRLDbank $remove($address(%drld.better,2),*!*@) Level %drld.moneyw %drld.winsw %drld.lossw
        unset %drld.better
        unset %drld.diceroll
        goto loser
      }
      else {
        hadd DRLDbank $remove($address(%drld.better,2),*!*@) Level %drld.moneyw %drld.winsw %drld.lossw
        unset %drld.better
        unset %drld.diceroll
        goto loser
      }
      :loser
      var %drld.loser $hget(DRLDbank,$remove($address(%drld.taker,2),*!*@))
      tokenize 32 %drld.loser
      var %drld.level $1
      var %drld.moneyl $calc($2 - %drld.bet)
      var %drld.winsl $3 
      var %drld.lossl $4
      inc %drld.lossl
      hadd DRLDbank $remove($address(%drld.taker,2),*!*@) %drld.level %drld.moneyl %drld.winsl %drld.lossl
      unset %drld.bet
      unset %drld.taker
      set %drld.bl 1
      haltdef
    }
    else {
      msg $chan Congratulations, ( $+ %drld.taker $+ ) you won $ $+ %drld.bet from ( $+ %drld.better $+ )
      var %drld.winner $hget(DRLDbank,$remove($address(%drld.taker,2),*!*@))
      tokenize 32 %drld.winner
      var %drld.moneyw $calc($2 + %drld.bet)
      var %drld.winsw $3
      inc %drld.winsw 
      var %drld.lossw $4
      if (%drld.winsw > 5) {
        hadd DRLDbank $remove($address(%drld.taker,2),*!*@) Level %drld.moneyw %drld.winsw %drld.lossw
        unset %drld.taker
        unset %drld.diceroll
        goto sap
      }
      elseif (%drld.winsw > 10) {
        hadd DRLDbank $remove($address(%drld.taker,2),*!*@) Level %drld.moneyw %drld.winsw %drld.lossw
        unset %drld.taker
        unset %drld.diceroll
        goto sap
      }
      else {
        hadd DRLDbank $remove($address(%drld.taker,2),*!*@) Level %drld.moneyw %drld.winsw %drld.lossw
        unset %drld.taker
        unset %drld.diceroll
        goto sap
      }
      :sap
      var %drld.loser $hget(DRLDbank,$remove($address($nick,2),*!*@))
      tokenize 32 %drld.loser
      echo -ai2 ( $ $+ $2 )
      var %drld.moneyl $calc($2 - %drld.bet)
      var %drld.winsl $iif($3 == 0,0,$3) 
      var %drld.lossl $iif($4 != 0,$calc($4 + 1),1)
      hadd DRLDbank $remove($address($nick,2),*!*@) Level %drld.moneyl %drld.winsl %drld.lossl
      unset %drld.better
      unset %drld.bet
      set %drld.bl 1
      haltdef
    }
  }
  elseif ($1 == -account) {
    if ($hget(DRLDbank,$remove($address($nick,2),*!*@))) {
      var %drld.account $hget(DRLDbank,$remove($address($nick,2),*!*@))
      tokenize 32 %drld.account
      .notice $nick your current account and status is: Funds ( $+  $iif($2 > 0,$ $+ $2,-$ $+ $remove($2,-)) $+ ) Wins ( $+ $3 $+ ) Loses ( $+ $4 $+ )
    }
  }
  elseif ($1 == -loan) {
    if ($hget(DRLDbank,$remove($address($nick,2),*!*@))) {
      if ($2) {
        set %drld.loan $2
        .notice $nick The bank will notify you if your loan is approved
        set %drld.m $nick
        var %drld.member $hget(DRLDbank,$remove($address($nick,2),*!*@))
        tokenize 32 %drld.member 
        set %drld.member.amount $2
        drld.loan 
      }
    }
  }
}
dialog loan {
  title "Loan Approval."
  size 100 100 120 60
  option dbu
  text "Account Holder:" 1, 5 6 40 10
  edit "" 2, 49 5 66 10, read, multi, center
  text "Current Holdings:" 3, 5 20 43 10
  edit "" 4, 49 19 66 10, read, multi, center
  text "Desired Loan:" 5,5 34 40 10
  edit "" 6, 49 33 66 10, read, multi, center
  button "approve" 7, 3 45 55 10, ok
  button "deny" 8, 62 45 55 10, cancel
}
on *:dialog:loan:sclick:7: {
  .notice %drld.m Your loan for $ $+ %drld.loan has been approved
  var %drld.addloan $hget(DRLDbank,$remove($address(%drld.m,2),*!*@))
  tokenize 32 %drld.addloan
  hadd DRLDbank $remove($address(%drld.m,2),*!*@) $1 $calc($2 + %drld.loan) $3 $4
  unset %drld.m
  unset %drld.member.amount
  unset %drld.loan
}
on *:dialog:loan:sclick:8: {
  .notice %drld.m Your loan for $ $+ %drld.loan has been denyed 
  unset %drld.m
  unset %drld.member.amount
  unset %drld.loan
}
alias drld.loan {
  dialog -m loan loan
  did -ra loan 2 [ [ %drld.m ] ]
  did -ra loan 4 [ [ %drld.member.amount ] ]
  did -ra loan 6 [ [ %drld.loan ] ]
}
#drld end
menu nicklist {
  -
  Darth Reven Lucky Dice 
  .On/Off ( $group(#drld) ) {
    If ($group(#drld) == off) {
      If ($hget(DRLDbank)) { 
        .enable #drld
      }
      Else {
        hmake DRLDbank 100
        .enable #drld
      }
    }
    else { 
      .disable #drld
    }
  }
  .Check $1 $+ 's Account {
    .enable #accountcheck
    who $1
  }
  -
}
menu menubar,channel {
  -
  Darth Reven Lucky Dice 
  .On/Off ( $group(#drld) ) {
    If ($group(#drld) == off) {
      If ($hget(DRLDbank)) { 
        .enable #drld
      }
      Else {
        hmake DRLDbank 100
        .enable #drld
      }
    }
    else { 
      .disable #drld 
    }
  }
}
#accountcheck off
raw 352:*: {
  var %drld.nick $6
  if ($hget(DRLDbank,$4)) {
    var %ac.info $hget(DRLDbank,$4)
    tokenize 32 %ac.info
    echo -ai2 ( $+ %drld.nick $+ 's) account is set at: Funds ( $+ $iif($2 > 0,$ $+ $2,-$ $+ $remove($2,-)) $+ ) Wins ( $+ $3 $+ ) Losses ( $+ $4 $+ )
  }
  else {
    echo -ai2 ( $+ %drld.nick $+ ) does not have an account
  }
}
raw 315:*: {
  clear -s
  .disable #accountcheck
}
#accountcheck end

Comments

Sign in to comment.
ReQueST   -  Dec 14, 2004

A nice help line/msg would come in handy. Cause its pretty unclear of what people should do, to play this game.

 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.