//===== Hercules Script =======================================
//= Magazine Dealer Kenny
//===== By: ==================================================
//= rAthena dev team
//===== Current Version: =====================================
//= 1.5
//===== Description: =========================================
//= Turns bullets into magazines/packs.
//===== Additional Comments: =================================
//= 1.0 First version. [SinSloth]
//= 1.1 Optimized version - Reduced to only one function [SinSloth]
//= 1.2 Optimized^2, corrected npc's name [ultramage]
//= 1.2a Optimized. Please, ommit extra NPC names [Lupus]
//= 1.3 Updated to match AEGIS script. [Kisuka]
//= 1.4 Updated to match AEGIS script again. [Masao]
//= 1.5 Moved Izlude duplicate to pre-re/re paths. [Euphy]
//============================================================
alberta,118,157,3 script Magazine Dealer Tonny::mdk 83,{
set .n$, compare(strnpcinfo(1),"Tonny")?"[Tonny]":"[Kenny]";
if(BaseJob == Job_Gunslinger) {
mes .n$;
mes "Welcome to my Magazine Shop.";
mes "As you may know, large numbers";
mes "of bullets can be carried more";
mes "easily when they're in Magazines. Now, can I interest you in";
mes "anything in particular?";
next;
switch(select("Wind Sphere Pack:Shadow Sphere Pack:Poison Sphere Pack:Water Sphere Pack:Fire Sphere Pack:Cartridge:Blood Cartridge:Silver Cartridge:Cancel")) {
case 1: callfunc "Func_Casing",13204,12144; break;
case 2: callfunc "Func_Casing",13206,12145; break;
case 3: callfunc "Func_Casing",13205,12146; break;
case 4: callfunc "Func_Casing",13207,12147; break;
case 5: callfunc "Func_Casing",13203,12148; break;
case 6: callfunc "Func_Casing",13200,12149; break;
case 7: callfunc "Func_Casing",13202,12150; break;
case 8: callfunc "Func_Casing",13201,12151; break;
case 9:
mes .n$;
mes "Well, if you ever find";
mes "that you have too many";
mes "bullets, come and see me.";
mes "It's a smart idea to store";
mes "bullets with my Magazines.";
close;
}
}
mes .n$;
mes "Welcome to my shop.";
mes "Here, I provide Magazines";
mes "and Cartridges for Gunslingers.";
mes "Sorry, but it doesn't look like";
mes "my services would be of any";
mes "use to you, adventurer.";
next;
mes .n$;
mes "Eh, but if you happen to";
mes "know any Gunslingers, send";
mes "them my way. You can never";
mes "have too many bullets.";
close;
}
function script Func_Casing {
mes .n$;
mes "Now, you can trade";
mes "500 "+getitemname(getarg(0))+"s";
mes "and 500 zeny for 1 "+getitemname(getarg(1))+", so make sure";
mes "you have sufficient bullets";
mes "and zeny for this exchange.";
next;
mes .n$;
mes "You can exchange 500 "+getitemname(getarg(0))+"s and 500 zeny";
mes "with 1 "+getitemname(getarg(1))+".";
next;
mes .n$;
mes "Remember that I can't give";
mes "you more than 50 Magazines";
mes "at a time. Now please enter";
mes "the number of Magazines you";
mes "want to receive. If you want to cancel, then just enter ''0.''";
next;
input .@amount;
if(.@amount > 50 || .@amount == 0) {
mes .n$;
mes "Hey, I can't give you";
mes "that many Magazines.";
mes "Please try again, and";
mes "enter a number no";
mes "greater than 50.";
close;
}
if (countitem(getarg(0)) >= (500*.@amount)) {
if (Zeny >= (500*.@amount)) {
if (checkweight(getarg(1),.@amount) == 0) {
mes .n$;
mes "Hey, you've got a lot";
mes "of junk crammed in your";
mes "Inventory. Free up some";
mes "space, and then come back";
mes "and trade your bullets for";
mes "some Magazines later, okay?";
close;
}else{
mes .n$;
mes "Alright, here are";
mes "your Magazines. Thanks";
mes "for visiting my shop, and";
mes "I hope that you use all";
mes "of your ammo wisely.";
set Zeny,Zeny-500*.@amount;
delitem getarg(0),500*.@amount;
getitem getarg(1),.@amount;
close;
}
}else{
mes .n$;
mes "Sorry, but you don't";
mes "have enough zeny for";
mes "this Magazine exchange.";
mes "Come back to my shop";
mes "after you've saved up";
mes "some more money.";
close;
}
}else{
mes .n$;
mes "Sorry, but you don't";
mes "have enough bullets for";
mes "this Magazine exchange.";
mes "Maybe you should double";
mes "check your Inventory, and";
mes "then come back to me later.";
close;
}
}