Updated Gunslinger/Rebellion Bullet behavior (#3459)
* Fixes #2745. * Disabled the ability to equip old spheres and old slugs. * Corrected some of the newer bullets name, weight, price, and effects. * Updated the ASPD for Gunslinger/Rebellion when equipping guns. * Spread Attack and Ground Drift now only use bullets. * Adjusted Slug Shot skill item requirement to the new Slug Bullet. * Separated pre-renewal and renewal ammo NPC (Kenny and Tony). -- Renewal no longer has Tony. -- Kenny can now trade in the Sphere bullets for new bullets. -- Kenny can now trade in the old Slugs for Slug Bullet. -- Added new bullets into Kenny. Thanks to @cydh and @exneval!
This commit is contained in:
parent
7066cac9a4
commit
87032fc95a
@ -7394,38 +7394,38 @@
|
||||
//===================================================================
|
||||
// Bullets
|
||||
//===================================================================
|
||||
13200,Bullet,Bullet,10,1,,2,10,,,,0x41000000,63,2,32768,,1,,3,{},{},{}
|
||||
13200,Bullet,Bullet,10,1,,1,25,,,,0x41000000,63,2,32768,,1,,3,{},{},{}
|
||||
13201,Silver_Bullet,Silver Bullet,10,15,,2,15,,,,0x41000000,63,2,32768,,1,,3,{ bonus bAtkEle,Ele_Holy; },{},{}
|
||||
13202,Shell_Of_Blood,Bloody Shell,10,30,,2,30,,,,0x41000000,63,2,32768,,1,,3,{ bonus2 bAddEff,Eff_Bleeding,100; },{},{}
|
||||
13203,Flare_Sphere,Flare Sphere,10,80,,5,50,,,,0x41000000,63,2,32768,,1,,5,{ bonus bAtkEle,Ele_Fire; },{},{}
|
||||
13204,Lighting_Sphere,Lightning Sphere,10,80,,5,50,,,,0x41000000,63,2,32768,,1,,5,{ bonus bAtkEle,Ele_Wind; },{},{}
|
||||
13205,Poison_Sphere,Poison Sphere,10,80,,5,50,,,,0x41000000,63,2,32768,,1,,5,{ bonus bAtkEle,Ele_Poison; bonus2 bAddEff,Eff_Poison,500; },{},{}
|
||||
13206,Blind_Sphere,Blind Sphere,10,80,,5,50,,,,0x41000000,63,2,32768,,1,,5,{ bonus bAtkEle,Ele_Dark; bonus2 bAddEff,Eff_Blind,500; },{},{}
|
||||
13207,Freezing_Sphere,Freezing Sphere,10,80,,5,50,,,,0x41000000,63,2,32768,,1,,5,{ bonus bAtkEle,Ele_Water; },{},{}
|
||||
13203,Flare_Sphere,Flare Sphere,10,80,,5,50,,,,,,,32768,,,,5,{ bonus bAtkEle,Ele_Fire; },{},{}
|
||||
13204,Lighting_Sphere,Lightning Sphere,10,80,,5,50,,,,,,,32768,,,,5,{ bonus bAtkEle,Ele_Wind; },{},{}
|
||||
13205,Poison_Sphere,Poison Sphere,10,80,,5,50,,,,,,,32768,,,,5,{ bonus bAtkEle,Ele_Poison; bonus2 bAddEff,Eff_Poison,500; },{},{}
|
||||
13206,Blind_Sphere,Blind Sphere,10,80,,5,50,,,,,,,32768,,,,5,{ bonus bAtkEle,Ele_Dark; bonus2 bAddEff,Eff_Blind,500; },{},{}
|
||||
13207,Freezing_Sphere,Freezing Sphere,10,80,,5,50,,,,,,,32768,,,,5,{ bonus bAtkEle,Ele_Water; },{},{}
|
||||
13208,Gong_Bug,Sow Bug,10,0,,5,50,,,,0x41000000,63,2,32768,,50,,3,{ bonus2 bAddEff,Eff_Stun,1000; },{},{}
|
||||
13210,Slug_Bullet_1,Slug Ammunition L,10,250,,250,30,,,,0x41000000,63,2,32768,,1,,3,{},{},{}
|
||||
13211,Slug_Bullet_2,Slug Ammunition M,10,500,,500,30,,,,0x41000000,63,2,32768,,1,,3,{},{},{}
|
||||
13212,Slug_Bullet_3,Slug Ammunition H,10,750,,750,30,,,,0x41000000,63,2,32768,,1,,3,{},{},{}
|
||||
13213,Slug_Bullet_4,Slug Ammunition SH,10,1000,,1000,30,,,,0x41000000,63,2,32768,,1,,3,{},{},{}
|
||||
13214,Slug_Bullet_5,Slug Ammunition XH,10,1200,,1200,30,,,,0x41000000,63,2,32768,,1,,3,{},{},{}
|
||||
13215,AP_Ammo,Armor Burnt,10,10,,2,50,,,0,0xFFFFFFFF,63,2,32768,,100,,3,{ bonus bAtkEle,Ele_Neutral; },{},{}
|
||||
13216,Blaze_Bullet,Incandescence Shot,10,10,,2,40,,,0,0xFFFFFFFF,63,2,32768,,100,,3,{ bonus bAtkEle,Ele_Fire; },{},{}
|
||||
13217,Freezing_Bullet,Glaciation Shot,10,10,,2,40,,,0,0xFFFFFFFF,63,2,32768,,100,,3,{ bonus bAtkEle,Ele_Water; },{},{}
|
||||
13218,Electric_Shock_Bullet,Dengeki Shot,10,10,,2,40,,,0,0xFFFFFFFF,63,2,32768,,100,,3,{ bonus bAtkEle,Ele_Wind; },{},{}
|
||||
13219,Magical_Stone_Bullet,Hearthstone Shot,10,10,,2,40,,,0,0xFFFFFFFF,63,2,32768,,100,,3,{ bonus bAtkEle,Ele_Earth; },{},{}
|
||||
13220,Sanctified_Bullet,Purification Shot,10,10,,2,40,,,0,0xFFFFFFFF,63,2,32768,,100,,3,{ bonus bAtkEle,Ele_Holy; },{},{}
|
||||
13221,Silver_Bullet_,Silver Bullet,10,10,,2,15,,,0,0xFFFFFFFF,63,2,32768,,1,,3,{ bonus bAtkEle,Ele_Holy; },{},{}
|
||||
13222,Shell_Of_Blood_,Bloody Shell,10,10,,2,30,,,0,0xFFFFFFFF,63,2,32768,,1,,3,{ bonus bAtkEle,Ele_Neutral; },{},{}
|
||||
13223,Flare_Sphere_,Flare Sphere,10,10,,5,50,,,0,0xFFFFFFFF,63,2,32768,,1,,5,{ bonus bAtkEle,Ele_Fire; },{},{}
|
||||
13224,Lighting_Sphere_,Lightning Sphere,10,10,,5,50,,,0,0xFFFFFFFF,63,2,32768,,1,,5,{ bonus bAtkEle,Ele_Wind; },{},{}
|
||||
13225,Poison_Sphere_,Poison Sphere,10,10,,5,50,,,0,0xFFFFFFFF,63,2,32768,,1,,5,{ bonus bAtkEle,Ele_Poison; },{},{}
|
||||
13226,Blind_Sphere_,Blind Sphere,10,10,,5,50,,,0,0xFFFFFFFF,63,2,32768,,1,,5,{ bonus bAtkEle,Ele_Dark; },{},{}
|
||||
13227,Freezing_Sphere_,Freezing Sphere,10,10,,5,50,,,0,0xFFFFFFFF,63,2,32768,,1,,5,{ bonus bAtkEle,Ele_Water; },{},{}
|
||||
13210,Slug_Bullet_1,Slug Ammunition L,10,250,,250,30,,,,,,,32768,,,,3,{},{},{}
|
||||
13211,Slug_Bullet_2,Slug Ammunition M,10,500,,500,30,,,,,,,32768,,,,3,{},{},{}
|
||||
13212,Slug_Bullet_3,Slug Ammunition H,10,750,,750,30,,,,,,,32768,,,,3,{},{},{}
|
||||
13213,Slug_Bullet_4,Slug Ammunition SH,10,1000,,1000,30,,,,,,,32768,,,,3,{},{},{}
|
||||
13214,Slug_Bullet_5,Slug Ammunition XH,10,1200,,1200,30,,,,,,,32768,,,,3,{},{},{}
|
||||
13215,AP_Ammo,Armor-Piercing Bullet,10,15,,2,50,,,0,0x41000000,63,2,32768,,100,,3,{ bonus bAtkEle,Ele_Neutral; },{},{}
|
||||
13216,Blaze_Bullet,Blazing Bullet,10,10,,2,40,,,,0x41000000,63,2,32768,,100,,3,{ bonus bAtkEle,Ele_Fire; },{},{}
|
||||
13217,Freezing_Bullet,Freezing Bullet,10,10,,2,40,,,,0x41000000,63,2,32768,,100,,3,{ bonus bAtkEle,Ele_Water; },{},{}
|
||||
13218,Electric_Shock_Bullet,Lightning Bullet,10,10,,2,40,,,,0x41000000,63,2,32768,,100,,3,{ bonus bAtkEle,Ele_Wind; },{},{}
|
||||
13219,Magical_Stone_Bullet,Magic Stone Bullet,10,10,,2,40,,,,0x41000000,63,2,32768,,100,,3,{ bonus bAtkEle,Ele_Earth; },{},{}
|
||||
13220,Sanctified_Bullet,Purifying Bullet,10,10,,2,40,,,,0x41000000,63,2,32768,,100,,3,{ bonus bAtkEle,Ele_Holy; },{},{}
|
||||
13221,Silver_Bullet_,Silver Bullet,10,5,,2,15,,,,0x41000000,63,2,32768,,1,,3,{ bonus bAtkEle,Ele_Holy; },{},{}
|
||||
13222,Shell_Of_Blood_,Bloody Shell,10,10,,2,30,,,,0x41000000,63,2,32768,,1,,3,{ bonus2 bAddEff,Eff_Bleeding,100; },{},{}
|
||||
13223,Flare_Sphere_,Flare Sphere,10,15,,5,50,,,,,,,32768,,,,5,{ bonus bAtkEle,Ele_Fire; },{},{}
|
||||
13224,Lighting_Sphere_,Lightning Sphere,10,15,,5,50,,,,,,,32768,,,,5,{ bonus bAtkEle,Ele_Wind; },{},{}
|
||||
13225,Poison_Sphere_,Poison Sphere,10,15,,5,50,,,,,,,32768,,,,5,{ bonus bAtkEle,Ele_Poison; },{},{}
|
||||
13226,Blind_Sphere_,Blind Sphere,10,15,,5,50,,,,,,,32768,,,,5,{ bonus bAtkEle,Ele_Dark; },{},{}
|
||||
13227,Freezing_Sphere_,Freezing Sphere,10,15,,5,50,,,,,,,32768,,,,5,{ bonus bAtkEle,Ele_Water; },{},{}
|
||||
13228,Flare_Bullet,Flare Bullet,10,10,,2,20,,,,0x41000000,63,2,32768,,1,,3,{ bonus bAtkEle,Ele_Fire; },{},{}
|
||||
13229,Lightning_Bullet,Lightning Bullet,10,10,,2,20,,,,0x41000000,63,2,32768,,1,,3,{ bonus bAtkEle,Ele_Wind; },{},{}
|
||||
13230,Ice_Bullet,Ice Bullet,10,10,,2,20,,,,0x41000000,63,2,32768,,1,,3,{ bonus bAtkEle,Ele_Water; },{},{}
|
||||
13231,Poison_Bullet,Poison Bullet,10,10,,2,20,,,,0x41000000,63,2,32768,,1,,3,{ bonus bAtkEle,Ele_Poison; },{},{}
|
||||
13232,Blind_Bullet,Blind Bullet,10,10,,2,20,,,,0x41000000,63,2,32768,,1,,3,{ bonus bAtkEle,Ele_Dark; },{},{}
|
||||
13231,Poison_Bullet,Poison Bullet,10,10,,2,20,,,,0x41000000,63,2,32768,,1,,3,{ bonus bAtkEle,Ele_Poison; bonus2 bAddEff,Eff_Poison,500; },{},{}
|
||||
13232,Blind_Bullet,Blind Bullet,10,10,,2,20,,,,0x41000000,63,2,32768,,1,,3,{ bonus bAtkEle,Ele_Dark; bonus2 bAddEff,Eff_Blind,500; },{},{}
|
||||
//===================================================================
|
||||
// Shurikens & Kunais
|
||||
//===================================================================
|
||||
@ -11609,6 +11609,7 @@
|
||||
25183,Decorated_Archer's_Thimble,Decorated Archer's Thimble,3,0,,0,,,,,,,,,,,,,{},{},{}
|
||||
25184,Portable_Sewingbox,Portable Sewingbox,3,0,,0,,,,,,,,,,,,,{},{},{}
|
||||
25185,Locket_Pendant,Locket Pendant,3,0,,0,,,,,,,,,,,,,{},{},{}
|
||||
25187,Slug_Bullet,Slug Bullet,3,1200,,1200,,,,,,,,,,,,,{},{},{}
|
||||
25223,Para_Team_Coin,Eden Group Coin,3,0,,0,,,,,,,,,,,,,{},{},{}
|
||||
25238,New_Normal_Lubricant,New Normal Lubricant,3,0,,0,,,,,,,,,,,,,{},{},{}
|
||||
25239,New_Advanced_Lubricant,New Advanced Lubricant,3,0,,0,,,,,,,,,,,,,{},{},{}
|
||||
|
@ -52,7 +52,7 @@
|
||||
// Super Novice
|
||||
23, 20000,0 ,500 ,100 ,40 ,55 ,57 ,200 ,200 ,200 ,50 ,200 ,50 ,55 ,65 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,65 ,10
|
||||
// Gunslinger
|
||||
24, 28000,90 ,650 ,469 ,50 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,45 ,55 ,50 ,90 ,100 ,200 ,200 ,6
|
||||
24, 28000,90 ,650 ,469 ,54 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,49 ,59 ,54 ,94 ,104 ,200 ,200 ,6
|
||||
// Ninja
|
||||
25, 26000,75 ,500 ,540 ,40 ,43 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,55 ,200 ,6
|
||||
// Novice High
|
||||
@ -270,7 +270,7 @@
|
||||
// Oboro
|
||||
4212, 26000,75 ,500 ,540 ,40 ,45 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,50 ,200 ,3
|
||||
// Rebellion
|
||||
4215, 28000,90 ,650 ,469 ,50 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,45 ,55 ,50 ,90 ,100 ,200 ,200 ,6
|
||||
4215, 28000,90 ,650 ,469 ,54 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,49 ,59 ,54 ,94 ,104 ,200 ,200 ,6
|
||||
// Summoner
|
||||
4218, 20000,70 ,500 ,500 ,45 ,55 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,55 ,200 ,200 ,200 ,200 ,43 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,55 ,5
|
||||
// Baby Summoner
|
||||
@ -288,9 +288,9 @@
|
||||
// Baby Soul Linker
|
||||
4227, 24000,75 ,500 ,900 ,50 ,50 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,53 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,55 ,8
|
||||
// Baby Gunslinger
|
||||
4228, 28000,90 ,650 ,469 ,50 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,45 ,55 ,50 ,90 ,100 ,200 ,200 ,6
|
||||
4228, 28000,90 ,650 ,469 ,54 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,49 ,59 ,54 ,94 ,104 ,200 ,200 ,6
|
||||
// Baby Rebellion
|
||||
4229, 28000,90 ,650 ,469 ,50 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,45 ,55 ,50 ,90 ,100 ,200 ,200 ,6
|
||||
4229, 28000,90 ,650 ,469 ,54 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,49 ,59 ,54 ,94 ,104 ,200 ,200 ,6
|
||||
// Baby Star Gladiator (Union)
|
||||
4238, 28000,90 ,650 ,470 ,40 ,50 ,50 ,50 ,50 ,50 ,50 ,50 ,50 ,50 ,50 ,50 ,50 ,50 ,50 ,50 ,50 ,50 ,50 ,50 ,50 ,50 ,50 ,50 ,6
|
||||
// Star Emperor
|
||||
|
@ -502,8 +502,8 @@
|
||||
517,0,0,30:32:34:36:38:40:42:44:46:48,0,0,0,19,0,0,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //GS_GATLINGFEVER
|
||||
518,0,0,3:6:9:12:15:18:21:24:27:30,0,0,0,20,3,1,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //GS_DUST
|
||||
519,0,0,20:25:30:35:40:45:50:55:60:65,0,0,0,20,3,2,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //GS_FULLBUSTER
|
||||
520,0,0,13:16:19:22:25:28:31:34:37:40,0,0,0,20:21,3:5,5,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0//GS_SPREADATTACK
|
||||
521,0,0,3:6:9:12:15:18:21:24:27:30,0,0,0,21,5,1,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //GS_GROUNDDRIFT
|
||||
520,0,0,13:16:19:22:25:28:31:34:37:40,0,0,0,20:21,3,5,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0//GS_SPREADATTACK
|
||||
521,0,0,3:6:9:12:15:18:21:24:27:30,0,0,0,21,3,1,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //GS_GROUNDDRIFT
|
||||
|
||||
//****
|
||||
// NJ Ninja
|
||||
@ -909,7 +909,7 @@
|
||||
2567,0,0,70,0,0,0,19,3,10,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //RL_FIRE_RAIN
|
||||
2568,0,0,30,0,0,0,99,0,0,none,0,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //RL_HEAT_BARREL
|
||||
2569,0,0,80:84:88:92:96,0,0,0,18,0,0,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //RL_AM_BLAST
|
||||
2570,0,0,80:84:88:92:96,0,0,0,20,0,0,none,0,0,13214,1,13213,1,13212,1,13211,1,13210,1,0,0,0,0,0,0,0,0,0,0,0 //RL_SLUGSHOT
|
||||
2570,0,0,80:84:88:92:96,0,0,0,20,0,0,none,0,0,25187,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //RL_SLUGSHOT
|
||||
2571,0,0,35:40:45:50:55,0,0,0,18,0,0,none,0,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //RL_HAMMER_OF_GOD
|
||||
2572,0,0,1,0,0,0,99,0,0,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //RL_R_TRIP_PLUSATK
|
||||
//2573,0,0,1,0,0,0,99,0,0,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //RL_B_FLICKER_ATK
|
||||
|
@ -1,132 +0,0 @@
|
||||
//===== rAthena Script =======================================
|
||||
//= Magazine Dealers
|
||||
//===== By: ==================================================
|
||||
//= rAthena Dev Team
|
||||
//===== Current Version: =====================================
|
||||
//= 2.1
|
||||
//===== Compatible With: =====================================
|
||||
//= rAthena Project
|
||||
//===== 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]
|
||||
//= 2.0 Clean-up. [Capuche]
|
||||
//= 2.1 Fixes Issue #1482, where Rebellion jobs cannot use this npc. [Limestone]
|
||||
//============================================================
|
||||
|
||||
alberta,118,157,3 script Magazine Dealer Kenny::mdk 4_M_01,{
|
||||
mes "[Kenny]";
|
||||
if (BaseClass == Job_Gunslinger) {
|
||||
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: callsub S_Casing,13204,12144;// <bullet id>, <pack id>
|
||||
case 2: callsub S_Casing,13206,12145;
|
||||
case 3: callsub S_Casing,13205,12146;
|
||||
case 4: callsub S_Casing,13207,12147;
|
||||
case 5: callsub S_Casing,13203,12148;
|
||||
case 6: callsub S_Casing,13200,12149;
|
||||
case 7: callsub S_Casing,13202,12150;
|
||||
case 8: callsub S_Casing,13201,12151;
|
||||
case 9:
|
||||
mes "[Kenny]";
|
||||
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 "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 "[Kenny]";
|
||||
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;
|
||||
|
||||
S_Casing:
|
||||
.@bullet_id = getarg(0);
|
||||
.@pack_id = getarg(1);
|
||||
|
||||
mes "[Kenny]";
|
||||
mes "Now, you can trade";
|
||||
mes callfunc("F_InsertPlural",500,getitemname(.@bullet_id));
|
||||
mes "and 500 zeny for 1 "+getitemname(.@pack_id)+", so make sure";
|
||||
mes "you have sufficient bullets";
|
||||
mes "and zeny for this exchange.";
|
||||
next;
|
||||
mes "[Kenny]";
|
||||
mes "You can exchange "+callfunc("F_InsertPlural",500,getitemname(.@bullet_id))+" and 500 zeny";
|
||||
mes "with 1 "+getitemname(.@pack_id)+".";
|
||||
next;
|
||||
mes "[Kenny]";
|
||||
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;
|
||||
mes "[Kenny]";
|
||||
if (.@amount > 50 || .@amount == 0) {
|
||||
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.";
|
||||
}
|
||||
else if (countitem(.@bullet_id) >= (500*.@amount)) {
|
||||
if (Zeny >= (500*.@amount)) {
|
||||
if (checkweight(.@pack_id,.@amount) == 0) {
|
||||
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?";
|
||||
} else {
|
||||
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.";
|
||||
Zeny = Zeny -500*.@amount;
|
||||
delitem .@bullet_id,(500*.@amount);
|
||||
getitem .@pack_id,.@amount;
|
||||
}
|
||||
} else {
|
||||
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.";
|
||||
}
|
||||
} else {
|
||||
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;
|
||||
}
|
@ -1,123 +0,0 @@
|
||||
//===== rAthena Script =======================================
|
||||
//= Bullet Dealers
|
||||
//===== By ===================================================
|
||||
//= Playtester, Paradox924X
|
||||
//===== Version ==============================================
|
||||
//= 2.1
|
||||
//===== Compatible With ======================================
|
||||
//= rAthena Project
|
||||
//===== Description ==========================================
|
||||
//= Bullet trader.
|
||||
//===== Comments =============================================
|
||||
//= 1.0 First version [Playtester]
|
||||
//= 1.1 Converted from Aegis [Paradox924X]
|
||||
//= 1.2 More optimized conversion [Legionaire]
|
||||
//= 1.2a Removed .GATs [Lupus]
|
||||
//= 1.3 Fixed [Playtester] Optimized. Got rid of @vars [Lupus]
|
||||
//= 1.4 Updated to match AEGIS script. [Kisuka]
|
||||
//= 1.5 Updated to match AEGIS script again. [Masao]
|
||||
//= 1.6 Moved Izlude duplicate to pre-re/re paths. [Euphy]
|
||||
//= 2.0 Clean-up. [Capuche]
|
||||
//= 2.1 Fixes Issue #1482, where Rebellion jobs cannot use this npc. [Limestone]
|
||||
//============================================================
|
||||
|
||||
alberta,118,160,3 script Bullet Dealer Tony#alb::bdt 4_M_04,{
|
||||
mes "[Tony]";
|
||||
if (BaseClass == Job_Gunslinger) {
|
||||
mes "I'm Tony, the Bullet Dealer.";
|
||||
mes "Come to me whenever you're";
|
||||
mes "short on ammo. Just bring me";
|
||||
mes "the materials, and I'll make";
|
||||
mes "you the bullets you need.";
|
||||
next;
|
||||
switch(select("Poison Sphere:Flare Sphere:Lighting Sphere:Blind Sphere:Freezing Sphere:Cancel")) {
|
||||
case 1: callsub S_BulletTrade,937,10,13205;// <item required>, <amount req>, <bullet id>
|
||||
case 2: callsub S_BulletTrade,7097,2,13203;
|
||||
case 3: callsub S_BulletTrade,7053,3,13204;
|
||||
case 4: callsub S_BulletTrade,1024,5,13206;
|
||||
case 5: callsub S_BulletTrade,7054,2,13207;
|
||||
case 6:
|
||||
mes "[Tony]";
|
||||
mes "Changed your mind?";
|
||||
mes "Well, if you ever need";
|
||||
mes "any bullets, I'll be right";
|
||||
mes "here. Come back whenever";
|
||||
mes "you think you'll need more";
|
||||
mes "ammunition, Gunslinger.";
|
||||
close;
|
||||
}
|
||||
}
|
||||
mes "Hey, I'm Tony. I'm in";
|
||||
mes "charge of distributing";
|
||||
mes "and making bullets for";
|
||||
mes "Gunslingers. It's just";
|
||||
mes "how our guild likes";
|
||||
mes "to do things.";
|
||||
next;
|
||||
mes "[Tony]";
|
||||
mes "I'm sorry if you came";
|
||||
mes "here to buy some bullets.";
|
||||
mes "I can only do business with";
|
||||
mes "fully fledged Gunslingers.";
|
||||
close;
|
||||
|
||||
S_BulletTrade:
|
||||
.@required_id = getarg(0);
|
||||
.@required_amount = getarg(1);
|
||||
.@bullet_id = getarg(2);
|
||||
|
||||
mes "[Tony]";
|
||||
mes "For every set of";
|
||||
mes callfunc("F_InsertPlural",30,getitemname(.@bullet_id))+",";
|
||||
mes "you must give me";
|
||||
mes "1 Emveretarcon,";
|
||||
mes "1 Phracon, and";
|
||||
mes callfunc("F_InsertPlural",.@required_amount,getitemname(.@required_id))+".";
|
||||
next;
|
||||
mes "[Tony]";
|
||||
mes "Remember that I can give";
|
||||
mes "a maximum of 500 sets of";
|
||||
mes "30 bullets at a time. Please";
|
||||
mes "enter the number of bullet sets";
|
||||
mes "that you'd like. If you want to";
|
||||
mes "cancel, then just enter ''0.''";
|
||||
next;
|
||||
input .@amount;
|
||||
mes "[Tony]";
|
||||
if (.@amount < 1 || .@amount > 500) {
|
||||
mes "Hey, I can't give you";
|
||||
mes "that many bullets. Don't";
|
||||
mes "forget to enter a number";
|
||||
mes "that's no higher than 500";
|
||||
mes "if you want to trade your";
|
||||
mes "items for some bullets.";
|
||||
}
|
||||
else if (countitem(1010) >= .@amount && countitem(1011) >= .@amount && countitem(.@required_id) >= (.@amount*.@required_amount)) {
|
||||
if (checkweight(.@bullet_id,.@amount * 30) == 0) {
|
||||
mes "Eh? Your Inventory doesn't";
|
||||
mes "have enough space for this";
|
||||
mes "many bullets. Come back later";
|
||||
mes "after you make more space";
|
||||
mes "available. Try putting some of";
|
||||
mes "your things into Kafra Storage.";
|
||||
} else {
|
||||
mes "Great, everything seems";
|
||||
mes "to be in order. Let me take";
|
||||
mes "these materials, and here are";
|
||||
mes "your bullets. It's a pleasure";
|
||||
mes "to do business with you~";
|
||||
delitem 1010,.@amount; //Phracon
|
||||
delitem 1011,.@amount; //Emveretarcon
|
||||
delitem .@required_id,.@amount * .@required_amount;
|
||||
getitem .@bullet_id,.@amount * 30;
|
||||
}
|
||||
} else {
|
||||
mes "Huh. It looks like you";
|
||||
mes "don't have enough materials";
|
||||
mes "for that many bullets. Well,";
|
||||
mes "it's no problem. Just come";
|
||||
mes "back after gathering everything";
|
||||
mes "that you need, okay?";
|
||||
}
|
||||
close;
|
||||
}
|
@ -1,15 +1,128 @@
|
||||
//===== rAthena Script =======================================
|
||||
//= Magazine Dealers
|
||||
//===== By: ==================================================
|
||||
//= Euphy
|
||||
//===== Current Version: =====================================
|
||||
//= 1.0
|
||||
//===== Compatible With: =====================================
|
||||
//= rAthena Project
|
||||
//===== Description: =========================================
|
||||
//= Turns bullets into magazines/packs.
|
||||
//===== Additional Comments: =================================
|
||||
//= 1.0 First version, Pre-Renewal duplicates.
|
||||
//===== Changelogs: ==========================================
|
||||
//= 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]
|
||||
//= 2.0 Clean-up. [Capuche]
|
||||
//= 2.1 Fixes Issue #1482, where Rebellion jobs cannot use this npc. [Limestone]
|
||||
//============================================================
|
||||
|
||||
alberta,118,157,3 script Magazine Dealer Kenny::mdk 4_M_01,{
|
||||
mes "[Kenny]";
|
||||
if (BaseClass == Job_Gunslinger) {
|
||||
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: callsub S_Casing,13204,12144;// <bullet id>, <pack id>
|
||||
case 2: callsub S_Casing,13206,12145;
|
||||
case 3: callsub S_Casing,13205,12146;
|
||||
case 4: callsub S_Casing,13207,12147;
|
||||
case 5: callsub S_Casing,13203,12148;
|
||||
case 6: callsub S_Casing,13200,12149;
|
||||
case 7: callsub S_Casing,13202,12150;
|
||||
case 8: callsub S_Casing,13201,12151;
|
||||
case 9:
|
||||
mes "[Kenny]";
|
||||
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 "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 "[Kenny]";
|
||||
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;
|
||||
|
||||
S_Casing:
|
||||
.@bullet_id = getarg(0);
|
||||
.@pack_id = getarg(1);
|
||||
|
||||
mes "[Kenny]";
|
||||
mes "Now, you can trade";
|
||||
mes callfunc("F_InsertPlural",500,getitemname(.@bullet_id));
|
||||
mes "and 500 zeny for 1 "+getitemname(.@pack_id)+", so make sure";
|
||||
mes "you have sufficient bullets";
|
||||
mes "and zeny for this exchange.";
|
||||
next;
|
||||
mes "[Kenny]";
|
||||
mes "You can exchange "+callfunc("F_InsertPlural",500,getitemname(.@bullet_id))+" and 500 zeny";
|
||||
mes "with 1 "+getitemname(.@pack_id)+".";
|
||||
next;
|
||||
mes "[Kenny]";
|
||||
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;
|
||||
mes "[Kenny]";
|
||||
if (.@amount > 50 || .@amount == 0) {
|
||||
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.";
|
||||
}
|
||||
else if (countitem(.@bullet_id) >= (500*.@amount)) {
|
||||
if (Zeny >= (500*.@amount)) {
|
||||
if (checkweight(.@pack_id,.@amount) == 0) {
|
||||
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?";
|
||||
} else {
|
||||
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.";
|
||||
Zeny = Zeny -500*.@amount;
|
||||
delitem .@bullet_id,(500*.@amount);
|
||||
getitem .@pack_id,.@amount;
|
||||
}
|
||||
} else {
|
||||
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.";
|
||||
}
|
||||
} else {
|
||||
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;
|
||||
}
|
||||
|
||||
izlude,171,127,3 duplicate(mdk) Magazine Dealer Kenny#iz 83
|
||||
|
@ -1,15 +1,120 @@
|
||||
//===== rAthena Script =======================================
|
||||
//= Bullet Dealers
|
||||
//===== By ===================================================
|
||||
//= Euphy
|
||||
//===== Version ==============================================
|
||||
//= 1.0
|
||||
//===== Compatible With ======================================
|
||||
//= rAthena Project
|
||||
//===== Description ==========================================
|
||||
//===== Description: =========================================
|
||||
//= Bullet trader.
|
||||
//===== Comments =============================================
|
||||
//= 1.0 First version, Pre-Renewal duplicates.
|
||||
//===== Changelogs: ==========================================
|
||||
//= 1.0 First version [Playtester]
|
||||
//= 1.1 Converted from Aegis [Paradox924X]
|
||||
//= 1.2 More optimized conversion [Legionaire]
|
||||
//= 1.2a Removed .GATs [Lupus]
|
||||
//= 1.3 Fixed [Playtester] Optimized. Got rid of @vars [Lupus]
|
||||
//= 1.4 Updated to match AEGIS script. [Kisuka]
|
||||
//= 1.5 Updated to match AEGIS script again. [Masao]
|
||||
//= 1.6 Moved Izlude duplicate to pre-re/re paths. [Euphy]
|
||||
//= 2.0 Clean-up. [Capuche]
|
||||
//= 2.1 Fixes Issue #1482, where Rebellion jobs cannot use this npc. [Limestone]
|
||||
//============================================================
|
||||
|
||||
alberta,118,160,3 script Bullet Dealer Tony#alb::bdt 4_M_04,{
|
||||
mes "[Tony]";
|
||||
if (BaseClass == Job_Gunslinger) {
|
||||
mes "I'm Tony, the Bullet Dealer.";
|
||||
mes "Come to me whenever you're";
|
||||
mes "short on ammo. Just bring me";
|
||||
mes "the materials, and I'll make";
|
||||
mes "you the bullets you need.";
|
||||
next;
|
||||
switch(select("Poison Sphere:Flare Sphere:Lighting Sphere:Blind Sphere:Freezing Sphere:Cancel")) {
|
||||
case 1: callsub S_BulletTrade,937,10,13205;// <item required>, <amount req>, <bullet id>
|
||||
case 2: callsub S_BulletTrade,7097,2,13203;
|
||||
case 3: callsub S_BulletTrade,7053,3,13204;
|
||||
case 4: callsub S_BulletTrade,1024,5,13206;
|
||||
case 5: callsub S_BulletTrade,7054,2,13207;
|
||||
case 6:
|
||||
mes "[Tony]";
|
||||
mes "Changed your mind?";
|
||||
mes "Well, if you ever need";
|
||||
mes "any bullets, I'll be right";
|
||||
mes "here. Come back whenever";
|
||||
mes "you think you'll need more";
|
||||
mes "ammunition, Gunslinger.";
|
||||
close;
|
||||
}
|
||||
}
|
||||
mes "Hey, I'm Tony. I'm in";
|
||||
mes "charge of distributing";
|
||||
mes "and making bullets for";
|
||||
mes "Gunslingers. It's just";
|
||||
mes "how our guild likes";
|
||||
mes "to do things.";
|
||||
next;
|
||||
mes "[Tony]";
|
||||
mes "I'm sorry if you came";
|
||||
mes "here to buy some bullets.";
|
||||
mes "I can only do business with";
|
||||
mes "fully fledged Gunslingers.";
|
||||
close;
|
||||
|
||||
S_BulletTrade:
|
||||
.@required_id = getarg(0);
|
||||
.@required_amount = getarg(1);
|
||||
.@bullet_id = getarg(2);
|
||||
|
||||
mes "[Tony]";
|
||||
mes "For every set of";
|
||||
mes callfunc("F_InsertPlural",30,getitemname(.@bullet_id))+",";
|
||||
mes "you must give me";
|
||||
mes "1 Emveretarcon,";
|
||||
mes "1 Phracon, and";
|
||||
mes callfunc("F_InsertPlural",.@required_amount,getitemname(.@required_id))+".";
|
||||
next;
|
||||
mes "[Tony]";
|
||||
mes "Remember that I can give";
|
||||
mes "a maximum of 500 sets of";
|
||||
mes "30 bullets at a time. Please";
|
||||
mes "enter the number of bullet sets";
|
||||
mes "that you'd like. If you want to";
|
||||
mes "cancel, then just enter ''0.''";
|
||||
next;
|
||||
input .@amount;
|
||||
mes "[Tony]";
|
||||
if (.@amount < 1 || .@amount > 500) {
|
||||
mes "Hey, I can't give you";
|
||||
mes "that many bullets. Don't";
|
||||
mes "forget to enter a number";
|
||||
mes "that's no higher than 500";
|
||||
mes "if you want to trade your";
|
||||
mes "items for some bullets.";
|
||||
}
|
||||
else if (countitem(1010) >= .@amount && countitem(1011) >= .@amount && countitem(.@required_id) >= (.@amount*.@required_amount)) {
|
||||
if (checkweight(.@bullet_id,.@amount * 30) == 0) {
|
||||
mes "Eh? Your Inventory doesn't";
|
||||
mes "have enough space for this";
|
||||
mes "many bullets. Come back later";
|
||||
mes "after you make more space";
|
||||
mes "available. Try putting some of";
|
||||
mes "your things into Kafra Storage.";
|
||||
} else {
|
||||
mes "Great, everything seems";
|
||||
mes "to be in order. Let me take";
|
||||
mes "these materials, and here are";
|
||||
mes "your bullets. It's a pleasure";
|
||||
mes "to do business with you~";
|
||||
delitem 1010,.@amount; //Phracon
|
||||
delitem 1011,.@amount; //Emveretarcon
|
||||
delitem .@required_id,.@amount * .@required_amount;
|
||||
getitem .@bullet_id,.@amount * 30;
|
||||
}
|
||||
} else {
|
||||
mes "Huh. It looks like you";
|
||||
mes "don't have enough materials";
|
||||
mes "for that many bullets. Well,";
|
||||
mes "it's no problem. Just come";
|
||||
mes "back after gathering everything";
|
||||
mes "that you need, okay?";
|
||||
}
|
||||
close;
|
||||
}
|
||||
|
||||
que_ng,187,156,3 duplicate(bdt) Bullet Dealer Tony#ng 86
|
||||
izlude,171,133,3 duplicate(bdt) Bullet Dealer Tony#iz 86
|
||||
|
@ -1,22 +1,290 @@
|
||||
//===== rAthena Script =======================================
|
||||
//= Magazine Dealers
|
||||
//===== By: ==================================================
|
||||
//= Euphy
|
||||
//===== Current Version: =====================================
|
||||
//= 1.1
|
||||
//===== Compatible With: =====================================
|
||||
//= rAthena Project
|
||||
//===== Description: =========================================
|
||||
//= Turns bullets into magazines/packs.
|
||||
//===== Additional Comments: =================================
|
||||
//= 1.0 First version, Renewal duplicates.
|
||||
//= 1.1 Added Izlude duplicates. [Euphy]
|
||||
//= 1.2 Updated Izlude coordinates. [Euphy]
|
||||
//===== Changelogs: ==========================================
|
||||
//= 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]
|
||||
//= 2.0 Clean-up. [Capuche]
|
||||
//= 2.1 Fixes Issue #1482, where Rebellion jobs cannot use this npc. [Limestone]
|
||||
//= 2.2 Updated to new bullets. [Aleos]
|
||||
//============================================================
|
||||
|
||||
alberta,118,157,3 script Magazine Dealer Kenny::mdk 4_M_01,{
|
||||
mes "[Kenny]";
|
||||
mes "Bullet bags will help you carry bullets much more easily.";
|
||||
mes "Come take a look~";
|
||||
next;
|
||||
switch(select("Various Bullet Cases:Sphere Exchange:Old Sphere Exchange:Slug Exchange:Cancel")) {
|
||||
case 1:
|
||||
switch(select("Bullet Case:Bloody Bullet Case:Silver Bullet Case:Ammo AP Bullet Case:Ammo Blazing Bullet Case:Ammo Freezing Bullet Case:Ammo Lightning Bullet Case:Ammo Magic Stone Bullet Case:Ammo Purifying Bullet Case:Flare Bullet Case:Lightning Bullet Case:Ice Bullet Case:Poison Bullet Case:Blind Bullet Case:Cancel")) {
|
||||
case 1: callsub S_Casing,13200,12149;
|
||||
case 2: callsub S_Casing,13222,22737;
|
||||
case 3: callsub S_Casing,13221,22738;
|
||||
case 4: callsub S_Casing,13215,22744;
|
||||
case 5: callsub S_Casing,13216,22745;
|
||||
case 6: callsub S_Casing,13217,22746;
|
||||
case 7: callsub S_Casing,13218,22747;
|
||||
case 8: callsub S_Casing,13219,22748;
|
||||
case 9: callsub S_Casing,13220,22749;
|
||||
case 10: callsub S_Casing,13228,23123;
|
||||
case 11: callsub S_Casing,13229,23124;
|
||||
case 12: callsub S_Casing,13230,23125;
|
||||
case 13: callsub S_Casing,13231,23126;
|
||||
case 14: callsub S_Casing,13232,23127;
|
||||
case 15: callsub S_Close;
|
||||
}
|
||||
case 2:
|
||||
switch(select("Fire Bullet:Wind Bullet:Freezing Bullet:Poison Bullet:Blind Bullet:Cancel")) {
|
||||
case 1: callsub S_Sphere_Exchange,13223,13228;
|
||||
case 2: callsub S_Sphere_Exchange,13224,13229;
|
||||
case 3: callsub S_Sphere_Exchange,13227,13230;
|
||||
case 4: callsub S_Sphere_Exchange,13225,13231;
|
||||
case 5: callsub S_Sphere_Exchange,13226,13232;
|
||||
case 6: callsub S_Close;
|
||||
}
|
||||
case 3:
|
||||
switch(select("Fire Sphere:Wind Sphere:Freezing Sphere:Poison Sphere:Blind Sphere:Cancel")) {
|
||||
case 1: callsub S_Old_Sphere_Exchange,13203,13228;
|
||||
case 2: callsub S_Old_Sphere_Exchange,13204,13229;
|
||||
case 3: callsub S_Old_Sphere_Exchange,13207,13230;
|
||||
case 4: callsub S_Old_Sphere_Exchange,13205,13231;
|
||||
case 5: callsub S_Old_Sphere_Exchange,13206,13232;
|
||||
case 6: callsub S_Close;
|
||||
}
|
||||
case 4:
|
||||
switch(select("Slug Ammunition L:Slug Ammunition M:Slug Ammunition H:Slug Ammunition SH:Slug Ammunition XH:Cancel")) {
|
||||
case 1: callsub S_Slug_Exchange,13210,24;
|
||||
case 2: callsub S_Slug_Exchange,13211,12;
|
||||
case 3: callsub S_Slug_Exchange,13212,8;
|
||||
case 4: callsub S_Slug_Exchange,13213,6;
|
||||
case 5: callsub S_Slug_Exchange,13214,5;
|
||||
case 6: callsub S_Close;
|
||||
}
|
||||
case 5:
|
||||
callsub S_Close;
|
||||
}
|
||||
|
||||
S_Casing:
|
||||
.@bullet_id = getarg(0);
|
||||
.@pack_id = getarg(1);
|
||||
.@bullet_str$ = getitemname(.@bullet_id);
|
||||
.@pack_str$ = getitemname(.@pack_id);
|
||||
.@bullet_count = countitem(.@bullet_id);
|
||||
.@pack_count = .@bullet_count / 500;
|
||||
|
||||
if (.@bullet_count < 500 || getequipid(EQI_AMMO) != -1 || BaseClass != Job_Gunslinger) {
|
||||
mes "[Kenny]";
|
||||
mes "Hey~ You need the exact amount of items to exchange. Go get some more.";
|
||||
mes "You must have 500 or more of ^FF0000" + .@bullet_str$ + "^000000, ok? Also, make sure not to ^FF0000wear^000000 them if you want to exchange.";
|
||||
close;
|
||||
}
|
||||
|
||||
mes "[Kenny]";
|
||||
mes "You've chosen ^FF0000" + .@pack_str$ + "^000000.";
|
||||
mes "You need 500 ^3131FF" + .@bullet_str$ + "^000000 to make 1 ^3131FF" + .@bullet_str$ + "^000000 item, and it will cost ^3131FF500^000000 zeny.";
|
||||
mes "How many do you want to exchange?";
|
||||
next;
|
||||
switch(select("Exchange all:Make only 1:Cancel")) {
|
||||
case 1:
|
||||
mes "[Kenny]";
|
||||
mes "Bullet count: ^3131FF" + .@bullet_count;
|
||||
mes "Combination of bullet bags: ^3131FF" + .@pack_count;
|
||||
mes "Zeny required: ^3131FF" + .@pack_count * 500;
|
||||
next;
|
||||
mes "Do you want to exchange?";
|
||||
next;
|
||||
switch(select("Exchange:Cancel")) {
|
||||
case 1:
|
||||
if (Zeny < .@pack_count * 500) {
|
||||
mes "[Kenny]";
|
||||
mes "Hey~ You need the exact amount of Zeny to exchange. Go get some more.";
|
||||
mes "You must have ^FF0000" + .@pack_count * 500 + "^000000, ok?";
|
||||
close;
|
||||
}
|
||||
mes "[Kenny]";
|
||||
mes "All done.";
|
||||
mes "The bag is useless when the weight of inventory gets over 70%. Please be careful.";
|
||||
Zeny -= .@pack_count * 500;
|
||||
delitem .@bullet_id, .@pack_count * 500;
|
||||
getitem .@pack_id, .@pack_count;
|
||||
close;
|
||||
case 2:
|
||||
close;
|
||||
}
|
||||
case 2:
|
||||
if (Zeny < 500) {
|
||||
mes "[Kenny]";
|
||||
mes "Hey~ You need the exact amount of Zeny to exchange. Go get some more.";
|
||||
mes "You must have ^FF0000500^000000, ok?";
|
||||
close;
|
||||
}
|
||||
mes "[Kenny]";
|
||||
mes "All done.";
|
||||
mes "The bag is useless when the weight of inventory gets over 70%. Please be careful.";
|
||||
Zeny -= 500;
|
||||
delitem .@bullet_id, 500;
|
||||
getitem .@pack_id, 1;
|
||||
close;
|
||||
case 3:
|
||||
callsub S_Close;
|
||||
}
|
||||
|
||||
S_Sphere_Exchange:
|
||||
.@old_id = getarg(0);
|
||||
.@new_id = getarg(1);
|
||||
.@old_str$ = getitemname(.@old_id);
|
||||
.@new_str$ = getitemname(.@new_id);
|
||||
.@old_count = countitem(.@old_id);
|
||||
.@new_count = .@old_count / 10;
|
||||
|
||||
if (.@old_count < 10 || getequipid(EQI_AMMO) != -1 || BaseClass != Job_Gunslinger) {
|
||||
mes "[Kenny]";
|
||||
mes "Hey~ You need the exact amount of items to exchange. Go get some more.";
|
||||
mes "You must have 10 or more of ^FF0000" + .@old_str$ + "^000000, ok? Also, make sure not to ^FF0000wear^000000 them if you want to exchange.";
|
||||
close;
|
||||
}
|
||||
|
||||
mes "[Kenny]";
|
||||
mes "You've chosen ^FF0000" + .@old_str$ + "^000000.";
|
||||
mes "You need 10 ^3131FF" + .@old_str$ + "^000000 to make 1 ^3131FF" + .@new_str$ + "^000000 item.";
|
||||
mes "How many do you want to exchange?";
|
||||
next;
|
||||
switch(select("Exchange all:Make only 1:Cancel")) {
|
||||
case 1:
|
||||
mes "[Kenny]";
|
||||
mes .@old_str$ + " count: ^3131FF" + .@old_count;
|
||||
mes .@new_str$ + " count: ^3131FF" + .@new_count;
|
||||
next;
|
||||
mes "Do you want to exchange?";
|
||||
next;
|
||||
switch(select("Exchange:Cancel")) {
|
||||
case 1:
|
||||
mes "[Kenny]";
|
||||
mes "All done.";
|
||||
delitem .@slug_id, .@new_count * 10;
|
||||
getitem .@new_slug_id, .@old_count;
|
||||
close;
|
||||
case 2:
|
||||
close;
|
||||
}
|
||||
case 2:
|
||||
mes "[Kenny]";
|
||||
mes "All done.";
|
||||
delitem .@old_id, 10;
|
||||
getitem .@new_id, 1;
|
||||
close;
|
||||
case 3:
|
||||
callsub S_Close;
|
||||
}
|
||||
|
||||
S_Old_Sphere_Exchange:
|
||||
.@old_id = getarg(0);
|
||||
.@new_id = getarg(1);
|
||||
.@old_str$ = getitemname(.@old_id);
|
||||
.@new_str$ = getitemname(.@new_id);
|
||||
.@old_count = countitem(.@old_id);
|
||||
|
||||
if (.@old_count < 1 || getequipid(EQI_AMMO) != -1 || BaseClass != Job_Gunslinger) {
|
||||
mes "[Kenny]";
|
||||
mes "Hey~ You need the exact amount of items to exchange. Go get some more.";
|
||||
mes "You must have 1 or more of ^FF0000" + .@old_str$ + "^000000, ok? Also, make sure not to ^FF0000wear^000000 them if you want to exchange.";
|
||||
close;
|
||||
}
|
||||
|
||||
mes "[Kenny]";
|
||||
mes "You've chosen ^FF0000" + .@old_str$ + "^000000.";
|
||||
mes "You need 1 ^3131FF" + .@old_str$ + "^000000 to make 1 ^3131FF" + .@new_str$ + "^000000 item.";
|
||||
mes "How many do you want to exchange?";
|
||||
next;
|
||||
switch(select("Exchange all:Make only 1:Cancel")) {
|
||||
case 1:
|
||||
mes "[Kenny]";
|
||||
mes .@old_str$ + " count: ^3131FF" + .@old_count;
|
||||
mes .@new_str$ + " count: ^3131FF" + .@old_count;
|
||||
next;
|
||||
mes "Do you want to exchange?";
|
||||
next;
|
||||
switch(select("Exchange:Cancel")) {
|
||||
case 1:
|
||||
mes "[Kenny]";
|
||||
mes "All done.";
|
||||
delitem .@slug_id, .@old_count;
|
||||
getitem .@new_slug_id, .@old_count;
|
||||
close;
|
||||
case 2:
|
||||
close;
|
||||
}
|
||||
case 2:
|
||||
mes "[Kenny]";
|
||||
mes "All done.";
|
||||
delitem .@old_id, 1;
|
||||
getitem .@new_id, 1;
|
||||
close;
|
||||
case 3:
|
||||
callsub S_Close;
|
||||
}
|
||||
|
||||
S_Slug_Exchange:
|
||||
.@slug_id = getarg(0);
|
||||
.@req_count = getarg(1);
|
||||
.@slug_str$ = getitemname(.@slug_id);
|
||||
.@new_slug_str$ = getitemname(25187);
|
||||
.@count = countitem(.@slug_id);
|
||||
.@new_count = .@count / .@req_count;
|
||||
|
||||
if (.@count < .@req_count || getequipid(EQI_AMMO) != -1 || BaseClass != Job_Gunslinger) {
|
||||
mes "[Kenny]";
|
||||
mes "Hey~ You need the exact amount of items to exchange. Go get some more.";
|
||||
mes "You must have " + .@req_count + " or more of ^FF0000" + .@slug_str$ + "^000000, ok? Also, make sure not to ^FF0000wear^000000 them if you want to exchange.";
|
||||
close;
|
||||
}
|
||||
|
||||
mes "[Kenny]";
|
||||
mes "You've chosen ^FF0000" + .@slug_str$ + "^000000.";
|
||||
mes "You need " + .@req_count + " ^3131FF" + .@slug_str$ + "^000000 to make 1 ^3131FF" + .@new_slug_str$ + "^000000 item.";
|
||||
mes "How many do you want to exchange?";
|
||||
next;
|
||||
switch(select("Exchange all:Make only 1:Cancel")) {
|
||||
case 1:
|
||||
mes "[Kenny]";
|
||||
mes .@slug_str$ + " count: ^3131FF" + .@count;
|
||||
mes .@new_slug_str$ + " count: ^3131FF" + .@new_count;
|
||||
next;
|
||||
mes "Do you want to exchange?";
|
||||
next;
|
||||
switch(select("Exchange:Cancel")) {
|
||||
case 1:
|
||||
mes "[Kenny]";
|
||||
mes "All done.";
|
||||
delitem .@slug_id, .@new_count * 500;
|
||||
getitem 25187, .@new_count;
|
||||
close;
|
||||
case 2:
|
||||
close;
|
||||
}
|
||||
case 2:
|
||||
mes "[Kenny]";
|
||||
mes "All done.";
|
||||
delitem .@slug_id, .@req_count;
|
||||
getitem 25187, 1;
|
||||
close;
|
||||
case 3:
|
||||
callsub S_Close;
|
||||
}
|
||||
|
||||
S_Close:
|
||||
mes "[Kenny]";
|
||||
mes "Okay.";
|
||||
mes "If you need anything";
|
||||
mes "please come back.";
|
||||
close;
|
||||
}
|
||||
|
||||
que_ng,187,149,3 duplicate(mdk) Magazine Dealer Kenny#ng 83
|
||||
izlude,155,135,3 duplicate(mdk) Magazine Dealer Kenny#iz 83
|
||||
izlude_a,155,135,3 duplicate(mdk) Magazine Dealer Kenny#a 83
|
||||
izlude_b,155,135,3 duplicate(mdk) Magazine Dealer Kenny#b 83
|
||||
izlude_c,155,135,3 duplicate(mdk) Magazine Dealer Kenny#c 83
|
||||
izlude_d,155,135,3 duplicate(mdk) Magazine Dealer Kenny#d 83
|
||||
izlude_in,74,104,5 duplicate(mdk) Magazine Dealer Kenny#iz 83
|
||||
|
@ -1,22 +0,0 @@
|
||||
//===== rAthena Script =======================================
|
||||
//= Bullet Dealers
|
||||
//===== By ===================================================
|
||||
//= Euphy
|
||||
//===== Version ==============================================
|
||||
//= 1.2
|
||||
//===== Compatible With ======================================
|
||||
//= rAthena Project
|
||||
//===== Description ==========================================
|
||||
//= Bullet trader.
|
||||
//===== Comments =============================================
|
||||
//= 1.0 First version, Renewal duplicates.
|
||||
//= 1.1 Added Izlude duplicates. [Euphy]
|
||||
//= 1.2 Updated Izlude coordinates. [Euphy]
|
||||
//============================================================
|
||||
|
||||
que_ng,187,156,3 duplicate(bdt) Bullet Dealer Tony#ng 86
|
||||
izlude,152,135,3 duplicate(bdt) Bullet Dealer Tony#iz 86
|
||||
izlude_a,152,135,3 duplicate(bdt) Bullet Dealer Tony#a 86
|
||||
izlude_b,152,135,3 duplicate(bdt) Bullet Dealer Tony#b 86
|
||||
izlude_c,152,135,3 duplicate(bdt) Bullet Dealer Tony#c 86
|
||||
izlude_d,152,135,3 duplicate(bdt) Bullet Dealer Tony#d 86
|
@ -88,7 +88,6 @@ npc: npc/re/merchants/3rd_trader.txt
|
||||
npc: npc/re/merchants/advanced_refiner.txt
|
||||
npc: npc/re/merchants/alchemist.txt
|
||||
npc: npc/re/merchants/ammo_boxes.txt
|
||||
npc: npc/re/merchants/ammo_dealer.txt
|
||||
npc: npc/re/merchants/bio4_reward.txt
|
||||
//npc: npc/re/merchants/blessed_refiner.txt
|
||||
//npc: npc/re/merchants/card_exchange.txt
|
||||
|
@ -130,8 +130,6 @@ npc: npc/kafras/kafras.txt
|
||||
// -------------------------- Merchant --------------------------
|
||||
npc: npc/merchants/advanced_refiner.txt
|
||||
npc: npc/merchants/alchemist.txt
|
||||
npc: npc/merchants/ammo_boxes.txt
|
||||
npc: npc/merchants/ammo_dealer.txt
|
||||
npc: npc/merchants/buying_shops.txt
|
||||
//npc: npc/merchants/clothes_dyer.txt
|
||||
npc: npc/merchants/coin_exchange.txt
|
||||
|
@ -4309,30 +4309,12 @@ static int battle_calc_attack_skill_ratio(struct Damage wd, struct block_list *s
|
||||
case RL_S_STORM:
|
||||
skillratio += -100 + 1700 + 200 * skill_lv;
|
||||
break;
|
||||
case RL_SLUGSHOT: {
|
||||
uint16 w = 0;
|
||||
|
||||
if (sd) {
|
||||
unsigned short slug[] = { ITEMID_SLUG_AMMUNITION_XH, ITEMID_SLUG_AMMUNITION_SH, ITEMID_SLUG_AMMUNITION_H, ITEMID_SLUG_AMMUNITION_M, ITEMID_SLUG_AMMUNITION_L }; // In order of priority
|
||||
int16 index = -1;
|
||||
|
||||
for (i = 0; i < ARRAYLENGTH(slug); i++) {
|
||||
if ((index = pc_search_inventory(sd, slug[i])) >= 0) {
|
||||
w = (sd->inventory_data[index]->weight / 10) * 32;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (target->type != BL_PC) // Monster
|
||||
skillratio += -100 + 1200 * skill_lv;
|
||||
else // Player
|
||||
skillratio += -100 + 2000 * skill_lv;
|
||||
switch(tstatus->size) {
|
||||
case SZ_SMALL: skillratio += w * 2; break;
|
||||
case SZ_MEDIUM: skillratio += w * 3; break;
|
||||
case SZ_BIG: skillratio += w * 4; break;
|
||||
}
|
||||
}
|
||||
case RL_SLUGSHOT:
|
||||
if (target->type == BL_PC)
|
||||
skillratio += -100 + 1200 * skill_lv;
|
||||
else
|
||||
skillratio += -100 + 2000 * skill_lv;
|
||||
skillratio *= 2 + tstatus->size;
|
||||
break;
|
||||
case RL_D_TAIL:
|
||||
skillratio += -100 + 4000 + 1000 * skill_lv;
|
||||
|
@ -106,11 +106,6 @@ enum item_itemid
|
||||
ITEMID_REINS_OF_MOUNT = 12622,
|
||||
ITEMID_NOBLE_NAMEPLATE = 12705,
|
||||
ITEMID_SILVER_BULLET = 13201,
|
||||
ITEMID_SLUG_AMMUNITION_L = 13210,
|
||||
ITEMID_SLUG_AMMUNITION_M = 13211,
|
||||
ITEMID_SLUG_AMMUNITION_H = 13212,
|
||||
ITEMID_SLUG_AMMUNITION_SH = 13213,
|
||||
ITEMID_SLUG_AMMUNITION_XH = 13214,
|
||||
ITEMID_PURIFICATION_BULLET = 13220,
|
||||
ITEMID_SILVER_BULLET_ = 13221,
|
||||
ITEMID_DUN_TELE_SCROLL1 = 14527,
|
||||
|
@ -16064,17 +16064,10 @@ bool skill_check_condition_castend(struct map_session_data* sd, uint16 skill_id,
|
||||
clif_skill_fail(sd,skill_id,USESKILL_FAIL_PAINTBRUSH,0); //Paint brush is required.
|
||||
else if( require.itemid[i] == ITEMID_ANCILLA )
|
||||
clif_skill_fail(sd,skill_id,USESKILL_FAIL_ANCILLA,0); //Ancilla is required.
|
||||
else if(skill_id == RL_SLUGSHOT) {
|
||||
if (i < MAX_SKILL_ITEM_REQUIRE - 1) // Check all Slug types
|
||||
continue;
|
||||
else
|
||||
clif_skill_fail(sd, RL_SLUGSHOT, USESKILL_FAIL_NEED_MORE_BULLET, 0); // Bullet is required.
|
||||
} else {
|
||||
else
|
||||
clif_skill_fail( sd, skill_id, USESKILL_FAIL_NEED_ITEM, ( require.itemid[i] << 16 ) | require.amount[i] ); // [%s] required '%d' amount.
|
||||
}
|
||||
return false;
|
||||
} else if (skill_id == RL_SLUGSHOT) // Slug found - simulate priority and cancel the loop
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
/* check the status required */
|
||||
@ -16182,9 +16175,6 @@ void skill_consume_requirement(struct map_session_data *sd, uint16 skill_id, uin
|
||||
|
||||
if( (n = pc_search_inventory(sd,require.itemid[i])) >= 0 )
|
||||
pc_delitem(sd,n,require.amount[i],0,1,LOG_TYPE_CONSUME);
|
||||
|
||||
if (skill_id == RL_SLUGSHOT && n > -1) // Slug found - simulate priority and cancel the loop
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user