//===== rAthena Script ======================================= //= Sample: Dynamic Shop //===== By: ================================================== //= Lance //===== Last Updated: ======================================== //= 20140208 //===== 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 123,{ 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] == 501){ delitem 501, @sold_quantity[.@i]; set $@rpotsleft, $@rpotsleft + @sold_quantity[.@i]; set Zeny, Zeny + @sold_quantity[.@i]*20; } else if (@sold_nameid[.@i] == 502){ delitem 502, @sold_quantity[.@i]; $@opotsleft += @sold_quantity[.@i]; set Zeny, 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] == 501){ 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]){ set Zeny, Zeny - 40*@bought_quantity[.@i]; getitem 501, @bought_quantity[.@i]; $@rpotsleft -= @bought_quantity[.@i]; } else { mes "You have insufficient cash."; close; } } else /*if (@bought_nameid[.@i] == 502)*/ { 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]){ set Zeny, Zeny - 200*@bought_quantity[.@i]; getitem 502, @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", 501,40,502,200; $@rpotsleft = 10; $@opotsleft = 10; end; }