Paste #38801: NPC Shop

Date: 2017/01/06 14:02:22 UTC-08:00
Type: Denizen Script

View Raw Paste Download This Paste
Copy Link


type: world
  debug: true
  events:
    on player right clicks npc:
    - choose <npc.id>:
      - case "166":  
        - inventory open d:in@Farmer
    on player clicks in Farmer:
    - determine passively cancelled
    - flag player GUIItem:<context.item.material.name>
    - if <player.flag[GUIItem]> != black_stained_glass_pane {
      - inventory open d:in@Money
      }
    on player clicks in Money:
    - determine passively cancelled
    - choose <context.item.display>:
      - case "<&c>Sell 1":
        - if !<player.inventory.contains[<player.flag[GUIItem]>]> {
          - narrate "<&c>You do not have enough of this item."
          - queue clear
          }
        - take <player.flag[GUIItem].as_item> from:<player.inventory>
        - take money quantity:<context.item.worth>
#### ONLY WORKS FOR SOME ITEMS????????
      - case "<&c>Sell 4":
        - inventory remove d:<player.inventory> o:i@<player.flag[GUIItem].as_item[quantity=1]>
      - case "<&c>Sell 8":
        - inventory remove d:<player.inventory> o:i@<player.flag[GUIItem].as_item[quantity=1]>
      - case "<&c>Sell 32":
        - inventory remove d:<player.inventory> o:i@<player.flag[GUIItem].as_item[quantity=1]>
      - case "<&c>Sell 64":
        - inventory remove d:<player.inventory> o:i@<player.flag[GUIItem].as_item[quantity=1]>
      - case "<&a>Buy 1":
        - inventory remove d:<player.inventory> o:i@<player.flag[GUIItem].as_item[quantity=1]>
      - case "<&a>Buy 4":
        - inventory remove d:<player.inventory> o:i@<player.flag[GUIItem].as_item[quantity=1]>
      - case "<&a>Buy 8":
        - inventory remove d:<player.inventory> o:i@<player.flag[GUIItem].as_item[quantity=1]>
      - case "<&a>Buy 32":
        - inventory remove d:<player.inventory> o:i@<player.flag[GUIItem].as_item[quantity=1]>
      - case "<&a>Buy 64":
        - inventory remove d:<player.inventory> o:i@<player.flag[GUIItem].as_item[quantity=1]>

Farmer:
  type: inventory
  title: <&9><&l>Available Items
  size: 45
  slots:
    - "[Filler] [Filler] [Filler] [Filler] [Filler] [Filler] [Filler] [Filler] [Filler]"
    - "[Filler] [WheatSeeds] [PumpkinSeeds] [MelonSeeds] [BeetrootSeeds] [Filler] [Potato] [Carrot] [Filler]"
    - "[Filler] [Filler] [Filler] [Filler] [Filler] [Filler] [Filler] [Filler] [Filler]"
    - "[Filler] [Egg] [Filler] [RedMush] [BrownMush] [NethWart] [Filler] [Reeds] [Filler]"
    - "[Filler] [Filler] [Filler] [Filler] [Filler] [Filler] [Filler] [Filler] [Filler]"
Money:
  type: inventory
  title: <&9><&l>Buy/Sell Goods
  size: 27
  slots:
    - "[Filler] [Filler] [Buy1] [Buy4] [Buy8] [Buy32] [Buy64] [Filler] [Filler]"
    - "[Filler] [Filler] [Filler] [Filler] [ClickedItem] [Filler] [Filler] [Filler] [Filler]"
    - "[Filler] [Filler] [Sell1] [Sell4] [Sell8] [Sell32] [Sell64] [Filler] [Filler]"

##### REUSABLE ITEMS #####
Filler:
  type: item
  material: black_stained_glass_pane
ClickedItem:
  type: item
  material: <player.flag[GUIItem].as_item>
  display name: <&9><&l><player.flag[GUIItem].as_item.material.name.replace[_].with[ ].replace[stalk].with[wart]>