Paste #30890: Edit of P#30871 - Untitled Paste

Date: 2016/02/27 12:34:25 UTC-08:00
Type: Denizen Script

View Raw Paste Download This Paste
Copy Link


CoinFlip:
  type: command
  name: Coinflip
  usage: /coinflip ([player] [amount])|(accept)
  description: Flip a coin and bet your money on the outcome!
  tab complete:
  - determine <server.list_players.parse[name].filter[starts_with[<context.args.last||>]]>
  script:
  - if <context.args.size> < 1 {
    - narrate "You have provided no arguements to the command" targets:<player>
    - queue clear
  }
  - define CoinFlipPlayer <player.name>
  - if <context.args.get[1]> == accept {
    - if <player.has_flag[CoinFlip]> {
      - flag <player.flag[CoinFlip]> CoinFlip:<player> duration:15s
      - take money qty:<player.flag[CoinFlipMoney]>
      - if <util.random.int[1].to[100]> <= 50 {
        - define winner <player>
        - define loser <player.flag[CoinFlip]>
      } else {
        - define winner <player.flag[CoinFlip]>
        - define loser <player>
      }
      - narrate "<&6>[LWCoinFlip] Coin flip accepted! Flipping the coin in..." targets:<def[winner]>|<def[loser]>
      - wait 1s
      - narrate "<&7>[LWCoinFlip] 3..." targets:<def[winner]>|<def[loser]>
      - wait 1s
      - narrate "<&7>[LWCoinFlip] 2..." targets:<def[winner]>|<def[loser]>
      - wait 1s
      - narrate "<&7>[LWCoinFlip] 1..." targets:<def[winner]>|<def[loser]>
      - wait 1s
      - define winnings <player.flag[CoinFlipMoney].mul[2].as_money>
      - give money qty:%winnings% to:<def[winner]> 
      - narrate "<&a>[LWCoinFlip] You won a coin flip against <def[loser].name> and won $%winnings%" targets:<def[winner]>
      - narrate "<&c>[LWCoinFlip] You lost a coin flip against <def[winner].name> and lost $%winnings%" targets:<def[loser]>
      - queue clear
    }
    - narrate "<&7>You have no pending coin flip requests!"
    - queue clear
  }
  - define opponent <server.match_player[<context.args.get[1]>]||none>
  - if <def[opponent]> == none { 
    - narrate "<&c>No player online found with that name!"   
    - queue clear   
  }   
  - if <player.has_flag[CoinFlip]> {
    - narrate "<&7>[LWCoinFlip] Please wait 15 seconds before coin flipping again!"
    - queue clear
  }
  - define CoinFlipMoney <context.args.get[2]||none>
  - if !<def[CoinFlipMoney]> matches double {
    - narrate "That's not a real number u doofus"
    - queue clear
  }
  - if <player.money> < <def[CoinFlipMoney]> || <def[opponent].money> < <def[CoinFlipMoney]> {
    - narrate "<&c>You or the targetted player do not have enough money to coin flip!"
    - queue clear 
  }
  - take money qty:<def[CoinFlipMoney]>
  - narrate "<&6>[LWCoinFlip] Sent Coinflip request to <&f><def[oponent].name> <&6>for $<def[CoinFlipMoney]>!"
  - narrate "<&a>[LWCoinFlip] They have 15 seconds to accept the coin flip by doing /coinflip accept"
  - narrate "<&6>[LWCoinFlip] Player <player.name> wants to flip-a-coin with you for $<def[CoinFlipMoney]>" targets:<def[opponent]>
  - narrate "<&7>[LWCoinFlip] Type /coinflip accept to accept the coinflip!" targets:<def[opponent]>
  - flag <def[opponent]> CoinFlip:<player> duration:15s
  - flag <def[opponent]> CoinFlipMoney:<def[CoinFlipMoney]> duration:15s
  - flag <player> CoinFlip:<def[opponent]> duration:15s
  - wait 15s
  - if <player.has_flag[CoinFlip].not> {
    - narrate "<&7>[LWCoinFlip] Coin Flip request got automatically declined."
  }