diff options
Diffstat (limited to 'npc')
-rw-r--r-- | npc/Changelog.txt | 1 | ||||
-rw-r--r-- | npc/merchants/ammo_dealer.txt | 187 |
2 files changed, 101 insertions, 87 deletions
diff --git a/npc/Changelog.txt b/npc/Changelog.txt index a1bd9808a..0d98f8276 100644 --- a/npc/Changelog.txt +++ b/npc/Changelog.txt @@ -8,6 +8,7 @@ Date Added * Updated Ammo Casing NPC Kenny to official version [SinSloth] * Fixed level requirement of Eye of Hellion quest [Playtester] * Some 11.1 field spawn updates [Playtester] + * Updated Bullet Merchant Tony (npc/merchants/ammo_dealer.txt) to Official One [Paradox924X] 2007/04/28 * Small Kiel warp fix [Playtester] * More Kiel quest fixes thanks to Toms and L0ne_W0lf [Playtester] diff --git a/npc/merchants/ammo_dealer.txt b/npc/merchants/ammo_dealer.txt index 2e45343d4..446f4a32a 100644 --- a/npc/merchants/ammo_dealer.txt +++ b/npc/merchants/ammo_dealer.txt @@ -1,100 +1,113 @@ -//===== eAthena Script ======================================= -//= Ammo Dealer -//===== By: ================================================== -//= Playtester -//===== Current Version: ===================================== -//= 1.0 -//===== Compatible With: ===================================== +//===== Athena Script ===================================== +//= Bullet Merchant Tony +//===== By ================================================ +//= Paradox924X +//===== Version =========================================== +//= 1.5 - Replaced @input with .@input +//= 1.4 - Fixed item id for Lightning Sphere from the id for a Lightning Sphere Pack +//= 1.3 - Minor Optimizations +//= 1.2 - Majorly reduced script length by using a function +//= 1.1 - Minor Optimizations +//= 1.0 - First Release +//===== Compatible With =================================== //= eAthena -//===== Description: ========================================= -//= trades items for spheres -//===== Additional Comments: ================================= -//= 1.0 first version [Playtester] -//============================================================ +//===== Description ======================================= +//= A simple bullet trader. +//===== Comments ========================================== +//= Converted from Aegis Script. +//========================================================= +que_ng.gat,187,156,3 script Bullet Merchant Tony 86,{ + if (BaseJob == JOB_GUNSLINGER) { + mes "[Tony]"; + mes "I'm Bullet-tooth Tony!"; + mes "Whenever your out of bullets,"; + mes "Visit me!!!"; + next; + mes "[Tony]"; + mes "Now~! Friend~Companion~ Buddy~"; + mes "What do you need?!"; + mes "Choose anything~!"; + mes "And pay money~!"; + next; + switch(select("Poison Sphere:Flare Sphere:Lighting Sphere:Blind Sphere:Freezing Sphere:Cancel")) { + case 1: + callfunc "Bullet_Trade",937,10,13205; + case 2: + callfunc "Bullet_Trade",7097,2,13203; + case 3: + callfunc "Bullet_Trade",7053,3,13204; + case 4: + callfunc "Bullet_Trade",1024,5,13206; + case 5: + callfunc "Bullet_Trade",7054,2,13207; + case 6: + mes "[Tony]"; + mes "Mmm~ Okay~"; + mes "Please visit again~"; + mes "I, Bullet-tooth Tony,"; + mes "Will always be here~!!!"; + close; + } + } else { + mes "[Tony]"; + mes "I'm a trader who supplies"; + mes "Gunslingers with trade items."; + mes "I am called Bullet-tooth Tony."; + next; + mes "[Tony]"; + mes "I don't think you are a Gunslinger"; + mes "So just look around"; + mes "and go."; + close; + } +} -// Ammo Dealer Tony -que_ng,187,156,3 script Tony 86,{ - mes "[Tony]"; - mes "I can make spheres for you."; - mes "Spheres are the ammunition for"; - mes "grenade launchers."; - next; - mes "[Tony]"; - mes "For 30 spheres, I need"; - mes "^FF00001 Phracon^000000"; - mes "and"; - mes "^FF00001 Emveretarcon^000000."; - next; - mes "[Tony]"; - mes "I also need another material,"; - mes "depending on which sphere type"; - mes "you want to create."; - next; +function script Bullet_Trade { mes "[Tony]"; - mes "Here's a list:"; - mes "Flare Sphere - ^FF00002 Burning Hearts^000000"; - mes "Lightning Sphere - ^FF00003 Cyfars^000000"; - mes "Poison Sphere - ^FF000010 Venom Canines^000000"; - mes "Blind Sphere - ^FF00005 Squid Inks^000000"; - mes "Freezing Sphere - ^FF00002 Brigans^000000"; + mes "Input the amount you wish to purchase."; next; mes "[Tony]"; - mes "So which ones do you want me"; - mes "to create?"; + mes "We trade 30 "+getitemname(getarg(2))+"s for"; + mes "1 Phracon,"; + mes "1 Emveretarcon,"; + mes "and "+getarg(1)+" "+getitemname(getarg(0))+"."; next; - menu "Flare Sphere",-,"Lightning Sphere",S2,"Poison Sphere",S3,"Blind Sphere",S4,"Freezing Sphere",S5; - - callsub sF_Make,13203,7097,2; -S2: - callsub sF_Make,13204,7053,3; -S3: - callsub sF_Make,13205,937,10; -S4: - callsub sF_Make,13206,1024,5; -S5: - callsub sF_Make,13207,7054,2; - -//Subfunction, getarg(0):created sphere, getarg(1):special material, getarg(2):number needed -sF_Make: - if( (countitem(1010)<1) || (countitem(1011)<1) || (countitem(getarg(1))<getarg(2)) ) goto L_NoMat; mes "[Tony]"; - mes "So how many ^0000FF30x packages^000000 do"; - mes "you want me to make?"; + mes "The maximum number you can trade is 500."; + mes "If you want to cancel, input 0."; next; - menu "-Exchange as many as possible.",M_0, "-Let me set the amount.",M_1, "-Cancel",M_End; - - M_0: - set @amount, 500; - if(countitem(1010) < @amount) set @amount,countitem(1010); - if(countitem(1011) < @amount) set @amount,countitem(1011); - if(countitem(getarg(1))/getarg(2) < @amount) set @amount,countitem(getarg(1))/getarg(2); - if(@amount > 0) goto L_Make; - mes "[Tony]"; - mes "Are you trying to make a fool of me...?"; - close; - - M_1: - input @amount; - if(@amount < 1 || @amount > 500) goto M_End; - if(countitem(1010) < @amount) goto L_NoMat; - if(countitem(1011) < @amount) goto L_NoMat; - if(countitem(getarg(1))/getarg(2) < @amount) goto L_NoMat; - - L_Make: - delitem 1010,@amount; - delitem 1011,@amount; - delitem getarg(1),@amount*getarg(2); - getitem getarg(0),@amount*30; - - M_End: + input .@input; + set @tony,.@input; + set @tony1,.@input; + set @tony2,.@input * getarg(1); + if (.@input < 1 || .@input > 500) { mes "[Tony]"; - mes "Come back anytime."; + mes "Invalid Amount!"; + mes "Enter again~!"; close; - - L_NoMat: + } else if ((countitem(1010) >= @tony) && (countitem(1011) >= @tony1) && (countitem(getarg(0)) >= @tony2)) { + if (checkweight(getarg(2),.@input * 30) == 0) { + mes "[Tony]"; + mes "I cannot give it to you because your inventory is full. Come back after your inventory has more space."; + close; + } else { + mes "[Tony]"; + mes "Oh~ Good!"; + mes "Trade number checked!"; + mes "I'll trade immediately."; + delitem 1010,@tony; + delitem 1011,@tony1; + delitem getarg(0),@tony2; + getitem getarg(2),.@input * 30; + close; + } + } else { mes "[Tony]"; - mes "I'm sorry but you don't have"; - mes "enough materials to create the"; - mes "spheres."; + mes "Tsk Tsk~"; + mes "You do not have"; + mes "enough items for the"; + mes "items you want to trade."; + mes "Prepare again and come back."; close; + } }
\ No newline at end of file |