###################
#****ItemShop*****#
#*****************#
#****by SeqSEE****#
#*****************#
-#******v0.1*******#
+#******v0.2*******#
###################
# TODO:===========#
#=add shops types=#
###################
ItemShop_Config:
type: yaml data
Shops:
Types:
Health:
1:
name: 'Potion of Healing'
item: 'potion,8197'
cost: 50
+ qty: 1
2:
name: 'Potion of Healing II'
item: 'potion,8229'
cost: 75
+ qty: 1
3:
name: 'Splash Potion of Healing'
item: 'potion,16389'
cost: 75
+ qty: 1
4:
name: 'Splash Potion of Healing II'
item: 'potion,16421'
cost: 125
+ qty: 1
5:
name: 'Potion of Regeneration'
item: 'potion,8193'
cost: 150
+ qty: 1
6:
name: 'Potion of Regeneration (extended)'
item: 'potion,8257'
cost: 200
+ qty: 1
7:
name: 'Potion of Regeneration II'
item: 'potion,8225'
cost: 225
+ qty: 1
8:
name: 'Splash Potion of Regeneration'
item: 'potion,16385'
cost: 175
+ qty: 1
9:
name: 'Splash Potion of Regeneration (extended)'
item: 'potion,16449'
cost: 200
+ qty: 1
10:
name: 'Splash Potion of Regeneration II'
item: 'potion,16417'
cost: 250
+ qty: 1
Weapons:
1:
name: 'Wooden Dagger'
item: 'wooden_sword'
cost: 25
+ qty: 1
2:
name: 'Stone Whip'
item: 'stone_sword'
cost: 50
+ qty: 1
3:
name: 'Crowbar'
item: 'iron_sword'
cost: 100
+ qty: 1
4:
name: 'Golden Axeblade'
item: 'golden_sword'
cost: 150
+ qty: 1
5:
name: 'Diamond Light Saber'
item: 'diamond_sword'
cost: 350
+ qty: 1
6:
name: 'Bow'
item: 'bow'
+ cost: 100
+ qty: 1
+ 7:
+ name: 'Arrows (16)'
+ item: 'arrow'
+ cost: 50
+ qty: 16
+ 8:
+ name: 'Arrows (32)'
+ item: 'arrow'
cost: 100
+ qty: 32
+ 9:
+ name: 'Arrows (64)'
+ item: 'arrow'
+ cost: 150
+ qty: 64
ItemShop:
type: assignment
debug: true
actions:
on assignment:
- trigger name:click state:true
- trigger name:chat state:true
- flag npc ItemShop.HasShop:!
- flag npc ItemShop.Type:!
- zap 1 s@Shop_Keeper
interact scripts:
- 1 Shop_Keeper
Shop_Keeper:
type: interact
debug: true
steps:
1:
click trigger:
script:
- if <npc.has_flag[ItemShop.HasShop]> {
- zap 2
- queue stop
}
- narrate "Please choose a shop type."
- foreach <s@ItemShop_Config.list_keys[Shops.Types]> {
- narrate "<&7>%value%"
- wait 1t
}
- narrate "<&e>(Shop Type/List)"
chat trigger:
1:
trigger: /List/
script:
- narrate "Please choose a shop type."
- foreach <s@ItemShop_Config.list_keys[Shops.Types]> {
- narrate "<&7>%value%"
- wait 1t
}
- narrate "<&e>(Shop Type/List)"
2:
trigger: /regex:([a-zA-Z])\w+/
script:
- if <s@ItemShop_Config.list_keys[Shops.Types].contains[<context.message>].not> {
- narrate "<npc.name><&co> <&c><context.message> is not a valid shop type!"
- queue stop
}
- flag npc ItemShop.HasShop:1
- flag npc ItemShop.Type:<context.message>
- execute as_server "denizen save"
- narrate "Set shop as <npc.flag[ItemShop.Type]> shop type."
- zap 2
2:
click trigger:
script:
- narrate "<npc.name><&co> Hello! What would you like to buy today?"
- narrate "<&e>(Cancel/Item Number/List)"
chat trigger:
1:
trigger: /Cancel/
script:
- narrate "<npc.name><&co> Okay."
- wait 1
- narrate "<npc.name><&co> I'll be here still if you change your mind!"
2:
trigger: /No/
script:
- narrate "<npc.name><&co> Okay."
- wait 1
- narrate "<npc.name><&co> I'll be here still if you change your mind!"
3:
trigger: /List/
script:
- flag npc ItemShop.CurrentNumber:0
- narrate ""
- foreach <s@ItemShop_Config.list_keys[Shops.Types.<npc.flag[ItemShop.Type]>]> {
- flag npc ItemShop.CurrentNumber:++
- narrate "<&8><npc.flag[ItemShop.CurrentNumber].as_int> <&7><s@ItemShop_Config.yaml_key[Shops.Types.<npc.flag[ItemShop.Type]>.<npc.flag[ItemShop.CurrentNumber].as_int>.name]> <&a>$<s@ItemShop_Config.yaml_key[Shops.Types.<npc.flag[ItemShop.Type]>.<npc.flag[ItemShop.CurrentNumber].as_int>.cost]>"
- wait 1t
}
- wait 1t
- narrate ""
- narrate "<npc.name><&co> See anything you want?"
- wait 1t
- narrate "<&e>(No/Item Number)"
4:
trigger: /regex:([0-9])+/
script:
- if <s@ItemShop_Config.list_keys[Shops.Types.<npc.flag[ItemShop.Type]>].contains[<context.message>].not> {
- narrate "<npc.name><&co> <&c><context.message> is not a valid item number!"
- queue stop
}
- if <player.money.is[LESS].than[<s@ItemShop_Config.yaml_key[Shops.Types.<npc.flag[ItemShop.Type]>.<context.message>.cost]>]||true> {
- narrate "<npc.name><&co><&c> Sorry, you don't have enough money."
- queue stop
}
- execute as_server "money take <player.name> <s@ItemShop_Config.yaml_key[Shops.Types.<npc.flag[ItemShop.Type]>.1.cost]>"
- - give i@<s@ItemShop_Config.yaml_key[Shops.Types.<npc.flag[ItemShop.Type]>.<context.message>.item]> quantity:1
+ - give i@<s@ItemShop_Config.yaml_key[Shops.Types.<npc.flag[ItemShop.Type]>.<context.message>.item]> quantity:<s@ItemShop_Config.yaml_key[Shops.Types.<npc.flag[ItemShop.Type]>.<context.message>.qty]>
- narrate "<npc.name><&co> Thanks for doing business with me!"
-