Paste #22758: Berufeng's Money System

Date: 2015/11/18 11:53:02 UTC-08:00
Type: Denizen Script

View Raw Paste Download This Paste
Copy Link


RefreshTablist:
    type: world
    events:
        # sets a header in the TAB LIST which displays the player's money and wallet type, updates when they log on and when their money changes
        on player join:
            - adjust <player> "tab_list_info:<&2><&o>Money:<&r><&a> $<player.flag[money].as_int||0> - <player.flag[wallet]>"
        on player flag money changed:
            - adjust <player> "tab_list_info:<&2><&o>Money:<&r><&a> $<player.flag[money].as_int||0> - <player.flag[wallet]>"


PayOutMining:
    type: world
    events:
        # pay players money when they mine certain blocks
        on player breaks IRON_ORE:
            # makes iron ore drop ingots and XP (in lieu of smelting), so that players can't repeatedly mine and earn money
            # this will require an achievement fix so players can still get "Acquire Hardware"
            - narrate "<&a>+2 Money <&9>for mining Iron Ore."
            - flag player money:+:2
            - determine passively i@iron_ingot
            - determine 1
        on player breaks GOLD_ORE:
            # makes gold ore drop ingots and XP (in lieu of smelting), so that players can't repeatedly mine and earn money
            - narrate "<&a>+20 Money <&9>for mining Gold Ore."
            - flag player money:+:20
            - determine passively i@gold_ingot
            - determine 1
        on player breaks OBSIDIAN:
            # exempt from the exploit rule, because payout isn't worth the time and durability damage anyway
            - narrate "<&a>+1 Money <&9>for mining Obsidian."
            - flag player money:++
        on player breaks REDSTONE_ORE:
            - narrate "<&a>+2 Money <&9>for mining Redstone Ore."
            - flag player money:+:2
        on player breaks LAPIS_ORE:
            - narrate "<&a>+8 Money <&9>for mining Lapis Lazuli."
            - flag player money:+:8
        on player breaks COAL_ORE:
            - narrate "<&a>+1 Money <&9>for mining Coal Ore."
            - flag player money:++
        on player breaks DIAMOND_ORE:
            - narrate "<&a>+100 Money <&9>for mining Diamond Ore."
            - flag player money:+:100
        on player breaks EMERALD_ORE:
            - narrate "<&a>+100 Money <&9>for mining Emerald Ore."
            - flag player money:+:100
        on player breaks QUARTZ_ORE:
            - narrate "<&a>+1 Money <&9>for mining Quartz Ore."
            - flag player money:++


PayOutKilling:
    type: world
    events:
        # pay players money when they kill certain creatures
        on player kills ZOMBIE:
            - narrate "<&a>+1 Money <&c>for killing a Zombie."
            - flag player money:++
        on player kills CREEPER:
            - narrate "<&a>+4 Money <&c>for killing a Creeper."
            - flag player money:+:4
        on player kills SPIDER:
            - narrate "<&a>+1 Money <&c>for killing a Spider."
            - flag player money:++
        on player kills CAVE_SPIDER:
            - narrate "<&a>+1 Money <&c>for killing a Spider."
            - flag player money:++
        on player kills WITCH:
            - narrate "<&a>+10 Money <&c>for killing a Witch."
            - flag player money:+:10
        on player kills GUARDIAN:
            - narrate "<&a>+5 Money <&c>for killing a Guardian."
            - flag player money:+:5
        on player kills ENDERMAN:
            - narrate "<&a>+10 Money <&c>for killing an Enderman."
            - flag player money:+:10
        on player kills WITHER:
            - narrate "<&6>+5,000 Money <&4>for killing a Wither!!!"
            - flag player money:+:5000
        on player kills SLIME:
            - narrate "<&a>+3 Money <&c>for killing a Slime."
            - flag player money:+:3
        on player kills SILVERFISH:
            - narrate "<&a>+3 Money <&c>for killing a Silverfish."
            - flag player money:+:3
        on player kills GHAST:
            - narrate "<&a>+25 Money <&c>for killing a Ghast."
            - flag player money:+:25
        on player kills PIG_ZOMBIE:
            - narrate "<&a>+1 Money <&c>for killing a Zombie Pigman."
            - flag player money:++
        on player kills BLAZE:
            - narrate "<&a>+10 Money <&c>for killing a Blaze."
            - flag player money:+:10
        on player kills MAGMA_CUBE:
            - narrate "<&a>+3 Money <&c>for killing a Magma Cube."
            - flag player money:+:3
        on player kills SKELETON:
            # differentiates between SKELETON and WITHER SKELETON
            - if <context.entity.skeleton_type.contains[wither]> {
                - narrate "<&a>+10 Money <&c>for killing a Wither Skeleton."
                - flag player money:+:10
            } else {
                - narrate "<&a>+2 Money <&c>for killing a Skeleton."
                - flag player money:+:2 
            }


PayoutOther:
    type: world
    events:
        # pay players for various other tasks
        on player fishes:
            # only pays the player if they successfully catch something. Also announces item name in chat
            - if <context.state.contains[CAUGHT]> {
                - narrate "<&a>+5 Money <&9>for catching <context.item.formatted>."
                - flag player money:+:5
            }
        # lump RABBIT, COW, PIG, CHICKEN into "livestock" and pay the player when they've killed any 5.
        # I personally don't like incentivizing the killing of SHEEP (sheer them instead), so they're not included.
        on player kills RABBIT:
            - flag player liveStockKills:++
            - if <player.flag[liveStockKills]> >= 5 {
                - flag player liveStockKills:0
                - narrate "<&a>+2 Money <&c>for killing 5 livestock."
                - flag player money:+:2
            }
        on player kills COW:
            - flag player liveStockKills:++
            - if <player.flag[liveStockKills]> >= 5 {
                - flag player liveStockKills:0
                - narrate "<&a>+2 Money <&c>for killing 5 livestock."
                - flag player money:+:2
            }
        on player kills PIG:
            - flag player liveStockKills:++
            - if <player.flag[liveStockKills]> >= 5 {
                - flag player liveStockKills:0
                - narrate "<&a>+2 Money <&c>for killing 5 livestock."
                - flag player money:+:2
            }
        on player kills CHICKEN:
            - flag player liveStockKills:++
            - if <player.flag[liveStockKills]> >= 5 {
                - flag player liveStockKills:0
                - narrate "<&a>+2 Money <&c>for killing 5 livestock."
                - flag player money:+:2
            }


WalletCaps:
    type: world
    events:
        # set maximum money caps based off wallet size
        on player flag money changed:
            #if player's wallet is Leather, cap their money at $5,000
            - if <player.flag[wallet]> == <&c><&n>Leather<&sp>Wallet<&r> {
                - if <player.flag[money]> > 5000 {
                    - flag player money:5000
                }
            }
            #if player's wallet is Iron, cap their money at $10,000
            - if <player.flag[wallet]> == <&7><&n>Iron<&sp>Wallet<&r> {
                - if <player.flag[money]> > 10000 {
                    - flag player money:10000
                }
            }
            #if player's wallet is Gold, cap their money at $30,000
            - if <player.flag[wallet]> == <&6><&n>Gold<&sp>Wallet<&r> {
                - if <player.flag[money]> > 30000 {
                    - flag player money:30000
                }
            }
            #if player's wallet is Diamond, cap their money at $100,000
            - if <player.flag[wallet]> == flag player wallet:<&b><&n>Diamond<&sp>Wallet<&r> {
                - if <player.flag[money]> > 100000 {
                    - flag player money:100000
                }
            }
            #if player's wallet is Nether Star, don't cap their money!