Date: 2016/02/27 17:47:34 UTC-08:00
Type: Denizen Script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
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 arguments to the command" targets:<player>
- queue clear
}
- define PlayerinProgress <context.args.get[1]>
- if <def[PlayerinProgress]as_player.has_flag[CoinFlipProgress]> {
- narrate "<&c>This player is already in a coin flip game!"
- 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>
}
- flag <def[winner]> CoinFlipProgress
- flag <def[loser]> CoinFlipProgress
- 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>
- define MoneyAmount <player.flag[CoinFlipMoney].mul[2]>
- give money qty:<def[MoneyAmount]> player:<def[Winner]>
- narrate "<&a>[LWCoinFlip] You won a coin flip against <def[loser].name> and won $%winnings%" targets:<def[winner]>
- playsound <def[winner]> sound:level_up pitch:1.5
- playsound <def[loser]> sound:fizz
- narrate "<&c>[LWCoinFlip] You lost a coin flip against <def[winner].name> and lost $<player.flag[CoinFlipMoney]>" targets:<def[loser]>
- flag <def[winner]> CoinFlip:!
- flag <def[loser]> CoinFlip:!
- flag <def[winner]> CoinFlipProgress:!
- flag <def[loser]> CoinFlipProgress:!
- 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 <player.flag[CoinFlip].expiration.formatted.replace[forever].with[0s]> seconds before coin flipping again!"
- queue clear
}
- define CoinFlipMoney <context.args.get[2]||none>
- if !<def[CoinFlipMoney]> matches double {
- narrate "<&c>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[opponent].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