summaryrefslogtreecommitdiff
path: root/doc/sample/npc_dynamic_shop.txt
diff options
context:
space:
mode:
Diffstat (limited to 'doc/sample/npc_dynamic_shop.txt')
-rw-r--r--doc/sample/npc_dynamic_shop.txt93
1 files changed, 93 insertions, 0 deletions
diff --git a/doc/sample/npc_dynamic_shop.txt b/doc/sample/npc_dynamic_shop.txt
new file mode 100644
index 00000000..1e4ac77e
--- /dev/null
+++ b/doc/sample/npc_dynamic_shop.txt
@@ -0,0 +1,93 @@
+//===== Hercules Script ======================================
+//= Sample: Dynamic Shop
+//===== By: ==================================================
+//= Hercules Dev Team
+//===== Current Version: =====================================
+//= 20131225
+//===== Description: =========================================
+//= Contains commands needed for a dynamic shop.
+//============================================================
+
+// Dummy shop to insert items into:
+- shop dyn_shop1 -1,501:50.
+
+prontera,181,200,4 script Dynamic Shop 2_F_MAGICMASTER,{
+ callshop "dyn_shop1",0;
+ npcshopattach "dyn_shop1";
+ end;
+
+OnSellItem:
+ for (.@i = 0; .@i < getarraysize(@sold_nameid); ++.@i) {
+ if(countitem(@sold_nameid[.@i]) < @sold_quantity[.@i] || @sold_quantity[.@i] <= 0) {
+ mes "omgh4x!";
+ close;
+ } else if (@sold_nameid[.@i] == Red_Potion) {
+ delitem Red_Potion, @sold_quantity[.@i];
+ $@rpotsleft += @sold_quantity[.@i];
+ Zeny += @sold_quantity[.@i]*20;
+ } else if (@sold_nameid[.@i] == Orange_Potion){
+ delitem Orange_Potion, @sold_quantity[.@i];
+ $@opotsleft += @sold_quantity[.@i];
+ Zeny += @sold_quantity[.@i]*100;
+ } else {
+ mes "Sorry, I don't need your items.";
+ close;
+ }
+ }
+ deletearray @sold_quantity, getarraysize(@sold_quantity);
+ deletearray @sold_nameid, getarraysize(@sold_nameid);
+ mes "Deal completed.";
+ close;
+
+OnBuyItem:
+ for (.@i = 0; .@i < getarraysize(@bought_nameid); ++.@i) {
+ if (@bought_quantity[.@i] <= 0) {
+ mes "omgh4x!";
+ close;
+ } else if (@bought_nameid[.@i] == Red_Potion) {
+ if (@bought_quantity[.@i] > $@rpotsleft) {
+ if($@rpotsleft > 0) {
+ @bought_quantity[.@i] = $@rpotsleft;
+ } else {
+ mes "We are out of red potions!";
+ close;
+ }
+ }
+ if(Zeny >= 40*@bought_quantity[.@i]) {
+ Zeny -= 40*@bought_quantity[.@i];
+ getitem Red_Potion, @bought_quantity[.@i];
+ $@rpotsleft -= @bought_quantity[.@i];
+ } else {
+ mes "You have insufficient cash.";
+ close;
+ }
+ } else /*if (@bought_nameid[.@i] == Orange_Potion)*/ {
+ if(@bought_quantity[.@i] > $@opotsleft) {
+ if($@opotsleft > 0) {
+ @bought_quantity[.@i] = $@opotsleft;
+ } else {
+ mes "We are out of orange potions!";
+ close;
+ }
+ }
+ if(Zeny >= 200*@bought_quantity[.@i]) {
+ Zeny -= 200*@bought_quantity[.@i];
+ getitem Orange_Potion, @bought_quantity[.@i];
+ $@opotsleft -= @bought_quantity[.@i];
+ } else {
+ mes "You have insufficient cash.";
+ close;
+ }
+ }
+ }
+ deletearray @bought_quantity, getarraysize(@bought_quantity);
+ deletearray @bought_nameid, getarraysize(@bought_nameid);
+ mes "Trade done.";
+ close;
+
+OnInit:
+ npcshopitem "dyn_shop1", Red_Potion, 40, Orange_Potion, 200;
+ $@rpotsleft = 10;
+ $@opotsleft = 10;
+ end;
+}