You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
94 lines
2.6 KiB
Plaintext
94 lines
2.6 KiB
Plaintext
4 months ago
|
//===== 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;
|
||
|
}
|