Paste #17242: MerchantV1.4

Date: 2015/07/01 10:04:31 UTC-07:00
Type: Denizen Script

View Raw Paste Download This Paste
Copy Link


# NPC Merchant
# Citizens 2 (build #992)
# Denizen 0.9.3 (build #1352)
#
# @author M0R_Gaming
#
# FOR EASY SETUP
# 1) Select the NPC and type /npc assign --set “sell”

# Assignment script for merchant.
“Merchant”:
   type: assignment

    default constants:
        BuyDiamond: 400
        BuyIronIngot: 100
        BuyBlazeRod: 100

    interact scripts:
    # Priority starts from 10
    - 10 “Sell”

    actions:
        on assignment:
        # Enable/disable triggers with NPC via chatting, clicking and entering proximity.
        - trigger name:chat toggle:true
        - trigger name:click toggle:true
        - trigger name:proximity toggle:true radius:5

        on enter proximity:
        - random 2
        - chat ”<dark_gray>Welcome to my store.”
        - chat ”<dark_gray>Please take your time”

        on exit proximity:
        - zap ’s@Sell’ step:default

“Sell”:
    type: interact
    steps:
        default:
            click trigger:
                script:
                - chat “<dark_gray>Do you wish to buy something?”
                - narrate "Type <gold>Yes<white> or <gold>No<white>"
                - zap BuyMenu

        BuyMenu:
            chat trigger:
                'Yes':
                    trigger: '/Yes/.'
                    script:
                        - chat <dark_gray>Well, we have <Gold>Diamonds, Iron Ingots, and Blaze Rods <dark_gray>in stock.
                        - chat <dark_gray>What would you like to buy?
                        - zap Buy

                'No':
                    trigger: ‘/No/, I do not wish to buy anything.’
                    script:
                        - chat “<dark_gray>Come back later if you want anything.”
                        - zap default

        Buy:
            chat trigger:
                ‘Diamond’:
                    trigger: ‘/Diamond/s please.’
                    script:
                        - chat <dark_gray>Sure thing! How much do you want?
                        - narrate “Type in your amount in integers”
                        - zap BuyDiamond

                ‘Iron’:
                    trigger: ‘/Iron/ Ingots please.’
                    script:
                        - chat <dark_gray>Sure thing! How much do you want?
                        - narrate “Type in your amount in integers”
                        - zap BuyDiamond

                ‘Blaze’:
                    trigger: ‘/Blaze/ Rods please.’
                    script:
                        - chat <dark_gray>Sure thing! How much do you want?
                        - narrate “Type in your amount in integers”
                        - zap BuyDiamond

        BuyDiamond:
            chat trigger:
                ‘’:
                    trigger: ’//I would like <player.chat_history>’
                    script:
                        - narrate “This has not been completed yet”
                        - zap default

“ShopCost":
    type: task
    script:
        # Check for enchantments and the state of durability used.
        - if <player.item_in_hand.enchantments> != null {
            - flag player enchantlvl:0
            - foreach <player.item_in_hand.enchantments.levels> {
                - flag player enchantlvl:++:%value%
              }
          }
          else {
              - flag player enchantlvl:0
          }
        - flag player duralvl:<player.item_in_hand.durability>

        # Calculates repair cost based on enchant level & durability.
        - flag player enchantcost:<flag.p:enchantlvl>
        - flag player enchantcost:**:<cons:repairenchant>

        - flag player duracost:<flag.p:duralvl>
        - flag player duracost:**:<cons:repairdurability>

        - flag player repaircost:<flag.p:enchantcost>
        - flag player repaircost:++:<flag.p:duracost>