Skills vs Icewalls/Traps, Talkie Box, Feint Bomb

* Implemented official behavior when attacking icewalls and traps with skills (fixes #1056)
-- Skills hitting icewalls and traps: Arrow Shower, Cold Slower, Tornado Kick, Sightless Mind, Meteor Assault, Spread Attack, Throw Huuma, Sightrasher, Sight Blaster, Earth Shaker, Rampage Blaster, Feint Bomb, Magnum Break, Fire Trap, Ice Trap, Cart Revolution, Napalm Vulcan, Triple Attack, Occult Impaction, Throw Spirit Sphere, Asura Strike, Spear Stab, Spiral Pierce, Holy Cross
-- Can target icewalls and traps but have strange behavior: Bowling Bash, Focused Arrow Strike, First Wind
-- Can hit icewalls and traps, but not target traps: Grimtooth, Raging Thrust, Blitz Beat, Napalm Beat, Fireball, Vulcan Arm, Tiger Cannon
-- Can hit icewalls and traps ONLY in PVP: Dragon Breath, Suicidal Destruction, Axe Tornado, Sky Blow
-- Can hit icewalls only: All other single target skills, Counter Slash
-- Can target icewalls but have strange behavior: Brandish Spear, Wind Cutter, Cannon Spear, Flame Launcher
-- Can not hit icewalls and traps: All unit skills, Frost Nova, Comet, Arms Cannon, Fatal Menace, Lion Howling
-- Can destroy traps but not hit icewalls: Claymore Trap
* When monsters use skills, they hit icewalls and traps and the damage displays, but they will no longer deal actual damage to the icewall or trap
-- Added an option to skill.conf with which you can define which types can damage icewalls and traps, by default it's 1 (player only), if you want to revert to previous behavior, set it to 31 (all)
* Fixed an issue where traps could not hit icewalls and other traps in PVP
* Taekwon combos can now trigger on traps
* Fixed an issue that caused damage to be displayed twice when attacking a trap with certain skills
* Fixed Feint Bomb causing knock-back to the target (see #1070)
* Fixed Talkie Box being triggered by monsters (fixes #1074)
This commit is contained in:
Playtester 2016-03-20 17:44:47 +01:00
parent daa9e018f4
commit 989a2525ec
9 changed files with 190 additions and 135 deletions

View File

@ -345,3 +345,10 @@ default_fixed_castrate: 20
// You can adjust splash and maxcount in the skill_db to adjust the width and length of these skills.
// Note: Brandish Spear will always use this algorithm due to its special damage behavior.
skill_eightpath_algorithm: yes
// Can damage skill units like icewall and traps (Note 3)
// On official servers, players can damage icewalls and some traps with skills. When monsters use skills, damage
// will show on the icewalls and traps, but it is not actually substracted from the durability.
// The official setting makes it quite easy to trap MVPs, set this to 31 if you want all units to be able to
// damage skills (previous behavior).
can_damage_skill: 1

View File

@ -86,13 +86,13 @@
// Mage
9,0,0,0,0,0,0,10,0,no,0,0,0,none,0,0x0, MG_SRECOVERY,Increase SP Recovery
10,0,6,4,3,0x3,3,1,1,yes,0,0,0,magic,0,0x4000, MG_SIGHT,Sight
11,9,6,1,8,0x6,1,10,1,yes,0,0x2000,0,magic,0,0x0, MG_NAPALMBEAT,Napalm Beat
11,9,6,1,8,0x6,1,10,1,yes,0,0x42000,0,magic,0,0x0, MG_NAPALMBEAT,Napalm Beat
12,9,8,2,8,0x1,0,10,1,yes,0,0,0,magic,0,0x0, MG_SAFETYWALL,Safety Wall
13,9,8,1,8,0,0,10,1:1:2:2:3:3:4:4:5:5,yes,0,0x2000,0,magic,0,0x0, MG_SOULSTRIKE,Soul Strike
14,9,8,1,1,0,0,10,1:2:3:4:5:6:7:8:9:10,yes,0,0x2000,0,magic,0,0x0, MG_COLDBOLT,Cold Bolt
15,9,6,1,1,0,0,10,1,yes,0,0x2000,0,magic,0,0x0, MG_FROSTDIVER,Frost Diver
16,2,6,1,2,0x1,0,10,1,yes,0,0,0,magic,0,0x0, MG_STONECURSE,Stone Curse
17,9,6,1,3,0x2,2,10,1,yes,0,0x2000,0,magic,0,0x0, MG_FIREBALL,Fire Ball
17,9,6,1,3,0x2,2,10,1,yes,0,0x42000,0,magic,0,0x0, MG_FIREBALL,Fire Ball
18,9,6,2,3,0,0,10,1,yes,0,0x2000,3,magic,2,0x0, MG_FIREWALL,Fire Wall
19,9,8,1,3,0,0,10,1:2:3:4:5:6:7:8:9:10,yes,0,0x2000,0,magic,0,0x0, MG_FIREBOLT,Fire Bolt
20,9,8,1,4,0,0,10,1:2:3:4:5:6:7:8:9:10,yes,0,0x2000,0,magic,0,0x0, MG_LIGHTNINGBOLT,Lightning Bolt
@ -149,11 +149,11 @@
55,0,0,0,0,0,0,10,0,no,0,0,0,weapon,0,0x0, KN_SPEARMASTERY,Spear Mastery
56,-2,8,1,-1,0,0,10,3,no,0,0,0,weapon,0,0x0, KN_PIERCE,Pierce
57,-2,6,1,-1,0x1,2,10,1,no,0,0,5,weapon,2,0x20000, KN_BRANDISHSPEAR,Brandish Spear
58,-4,6,1,-1,0x2,0,10,1,no,0,0,0,weapon,6,0x0, KN_SPEARSTAB,Spear Stab
58,-4,6,1,-1,0x2,0,10,1,no,0,0x40000,0,weapon,6,0x0, KN_SPEARSTAB,Spear Stab
59,3:5:7:9:11,6,1,-1,0,0,5,1,no,0,0,0,weapon,0,0x0, KN_SPEARBOOMERANG,Spear Boomerang
60,0,6,4,0,0x1,0,10,1,no,0,0,0,weapon,0,0x0, KN_TWOHANDQUICKEN,Twohand Quicken
61,0,6,4,-1,0x20,0,5,1,no,0,0,0,weapon,0,0x0, KN_AUTOCOUNTER,Counter Attack
62,-2,6,1,-1,0x2,1,10,1,no,0,0,0,weapon,1,0x0, KN_BOWLINGBASH,Bowling Bash
62,-2,6,1,-1,0x2,1,10,1,no,0,0x40000,0,weapon,1,0x0, KN_BOWLINGBASH,Bowling Bash
63,0,0,0,0,0,0,1,0,no,0,0,0,weapon,0,0x0, KN_RIDING,Peco Peco Riding
64,0,0,0,0,0,0,5,0,no,0,0,0,weapon,0,0x0, KN_CAVALIERMASTERY,Cavalier Mastery
@ -225,13 +225,13 @@
120,3,6,2,0,0x3,1,5,1,no,0,0x80,0,misc,0,0x3000, HT_FLASHER,Flasher
121,3,6,2,1,0x42,1,5,1,no,0,0x80,0,weapon,0,0x3800, HT_FREEZINGTRAP,Freezing Trap
122,3,6,2,4,0xC2,1,5,1,no,0,0x80,0,misc,0,0x3800, HT_BLASTMINE,Blast Mine
123,3,6,2,3,0xC2,2,5,1,no,0,0x80,0,misc,0,0x3800, HT_CLAYMORETRAP,Claymore Trap
123,3,6,2,3,0xC2,2,5,1,no,0,0x40080,0,misc,0,0x3800, HT_CLAYMORETRAP,Claymore Trap
124,2,6,32,0,0x1,0,1,1,no,0,0x40000,0,misc,0,0x0, HT_REMOVETRAP,Remove Trap
125,3,6,2,0,0x1,0,1,1,no,0,0x80,0,misc,0,0x2000, HT_TALKIEBOX,Talkie Box
126,0,0,0,0,0,0,10,0,no,0,0,0,weapon,0,0x0, HT_BEASTBANE,Beast Bane
127,0,0,0,0,0,0,1,0,no,0,0,0,misc,0,0x0, HT_FALCON,Falconry Mastery
128,0,0,0,0,0,0,10,0,no,0,0,0,misc,0,0x0, HT_STEELCROW,Steel Crow
129,5,8,1,0,0x42,1,5,1:2:3:4:5,yes,0,0,0,misc,0,0x80, HT_BLITZBEAT,Blitz Beat
129,5,8,1,0,0x42,1,5,1:2:3:4:5,yes,0,0x40000,0,misc,0,0x80, HT_BLITZBEAT,Blitz Beat
130,3:5:7:9,6,2,0,0x3,3,4,1,no,0,0,0,misc,0,0x0, HT_DETECTING,Detect
131,4:5:6:7:8,6,32,0,0x1,0,5,1,no,0,0,0,misc,0,0x0, HT_SPRINGTRAP,Spring Trap
@ -242,7 +242,7 @@
134,0,0,0,0,0,0,10,0,no,0,0,0,weapon,0,0x0, AS_KATAR,Katar Mastery
135,0,6,4,0,0x1,0,10,1,no,0,0,0,weapon,0,0x80040, AS_CLOAKING,Cloaking
136,1,8,1,-1,0,0,10,-8,no,0,0,0,weapon,0,0x0, AS_SONICBLOW,Sonic Blow
137,3:4:5:6:7,6,1,-1,0x2,1,5,1,no,0,0,0,weapon,0,0x4, AS_GRIMTOOTH,Grimtooth
137,3:4:5:6:7,6,1,-1,0x2,1,5,1,no,0,0x40000,0,weapon,0,0x4, AS_GRIMTOOTH,Grimtooth
138,1,6,16,5,0x1,0,10,1,no,0,0x400,0,weapon,0,0x0, AS_ENCHANTPOISON,Enchant Poison
139,0,6,4,0,0,0,10,1,no,0,0,0,weapon,0,0x0, AS_POISONREACT,Poison React
140,2,6,2,5,0x1,0,10,1,no,0,0,0,weapon,0,0x0, AS_VENOMDUST,Venom Dust
@ -261,7 +261,7 @@
150,0,6,4,0,0x1,0,1,1,no,0,0x1,0,weapon,5,0x40, TF_BACKSLIDING,Back Slide
151,0,6,4,0,0x1,0,1,1,no,0,0x1,0,none,0,0x0, TF_PICKSTONE,Find Stone
152,7,6,1,0,0x40,0,1,1,no,0,0x1,0,misc,0,0x0, TF_THROWSTONE,Stone Fling
153,1,6,1,-1,0x2,1,1,1,no,0,0x1,0,weapon,2,0x0, MC_CARTREVOLUTION,Cart Revolution
153,1,6,1,-1,0x2,1,1,1,no,0,0x40001,0,weapon,2,0x0, MC_CARTREVOLUTION,Cart Revolution
154,0,6,4,0,0x1,0,1,1,no,0,0x1,0,none,0,0x0, MC_CHANGECART,Change Cart
155,0,6,4,0,0x1,0,1,1,no,0,0x1,0,weapon,0,0x0, MC_LOUD,Crazy Uproar
156,9,6,1,6,0,0,1,1,yes,0,0x1,0,magic,0,0x0, AL_HOLYLIGHT,Holy Light
@ -284,8 +284,8 @@
170,-9,6,1,-1,0x20,0,10,1,no,0,0x2,0,weapon,0,0x0, NPC_CRITICALSLASH,Defense disregard attack
171,-9,8,1,-1,0,0,10,-2:-3:-4:-5:-6:-7:-8:-9:-10:-11,no,0,0x2,0,weapon,0,0x0, NPC_COMBOATTACK,Multi-stage Attack
172,-9,6,1,-1,0x40,0,10,1,no,0,0x2,0,weapon,0,0x0, NPC_GUIDEDATTACK,Guided Attack
173,5,6,4,3,0xE2,5,10,1,no,0,0x2,0,misc,3,0x0, NPC_SELFDESTRUCTION,Suicide bombing
174,-9,6,1,-1,0x2,3,1,1,no,0,0x2,0,weapon,0,0x0, NPC_SPLASHATTACK,Splash attack
173,5,6,4,3,0xE2,5,10,1,no,0,0x40002,0,misc,3,0x0, NPC_SELFDESTRUCTION,Suicide bombing
174,-9,6,1,-1,0x2,3,1,1,no,0,0x40002,0,weapon,0,0x0, NPC_SPLASHATTACK,Splash attack
175,0,0,4,0,0x41,0,10,1,no,0,0x2,0,misc,0,0x0, NPC_SUICIDE,Suicide
176,-9,6,1,-1,0,0,5,1,no,0,0x2,0,weapon,0,0x0, NPC_POISON,Poison Attack
177,-9,6,1,-1,0,0,5,1,no,0,0x2,0,weapon,0,0x0, NPC_BLINDATTACK,Blind Attack
@ -328,7 +328,7 @@
211,1,6,1,0,0x1,0,10,1,no,0,0,0,weapon,0,0x0, RG_STEALCOIN,Mug
212,-1,6,1,-1,0x40,0,10,1,no,0,0,0,weapon,0,0x4, RG_BACKSTAP,Back Stab
213,0,0,0,0,0,0,5,0,no,0,0,0,none,0,0x0, RG_TUNNELDRIVE,Stalk
214,0,6,4,-1,0x2,1,5,1,no,0,0,0,weapon,0,0x4, RG_RAID,Sightless Mind
214,0,6,4,-1,0x2,1,5,1,no,0,0x40000,0,weapon,0,0x4, RG_RAID,Sightless Mind
215,1,6,1,0,0x1,0,5,1,no,0,0,0,weapon,0,0x0, RG_STRIPWEAPON,Divest Weapon
216,1,6,1,0,0x1,0,5,1,no,0,0,0,weapon,0,0x0, RG_STRIPSHIELD,Divest Shield
217,1,6,1,0,0x1,0,5,1,no,0,0,0,weapon,0,0x0, RG_STRIPARMOR,Divest Armor
@ -373,7 +373,7 @@
250,3,6,1,0,0,0,5,1,no,0,0,0,weapon,5:6:7:8:9,0x0, CR_SHIELDCHARGE,Smite
251,3:5:7:9:11,6,1,0,0,0,5,1,no,0,0,0,weapon,0,0x20000, CR_SHIELDBOOMERANG,Shield Boomerang
252,0,6,4,0,0x1,0,10,1,no,0,0,0,weapon,0,0x0, CR_REFLECTSHIELD,Shield Reflect
253,-2,8,1,6,0,0,10,-2,no,0,0,0,weapon,0,0x0, CR_HOLYCROSS,Holy Cross
253,-2,8,1,6,0,0,10,-2,no,0,0x40000,0,weapon,0,0x0, CR_HOLYCROSS,Holy Cross
254,5,6,4,6,0x48,0,10,1,no,33,0x100,0,magic,0,0x0, CR_GRANDCROSS,Grand Cross
255,7:8:9:10:11,6,16,0,0x1,0,5,1,yes,0,0x600,0,none,0,0x0, CR_DEVOTION,Sacrifice
256,9,6,16,0,0x1,0,5,1,yes,0,0x200,0,none,0,0x0, CR_PROVIDENCE,Resistant Souls
@ -386,17 +386,17 @@
260,0,0,0,0,0,0,5,0,no,0,0,0,weapon,0,0x0, MO_SPIRITSRECOVERY,Spiritual Cadence
261,0,6,4,0,0x1,0,5,1,no,0,0,0,none,0,0x0, MO_CALLSPIRITS,Summon Spirit Sphere
262,9,6,16,0,0x1,0,1,1,yes,0,0,0,weapon,0,0x0, MO_ABSORBSPIRITS,Absorb Spirit Sphere
263,-1,8,0,-1,0,0,10,-3,no,0,0,0,weapon,0,0x10, MO_TRIPLEATTACK,Raging Trifecta Blow
263,-1,8,0,-1,0,0,10,-3,no,0,0x40000,0,weapon,0,0x10, MO_TRIPLEATTACK,Raging Trifecta Blow
264,18,6,2,0,0x1,0,1,1,no,0,0,0,none,0,0x0, MO_BODYRELOCATION,Snap
265,0,0,0,0,0,0,10,0,no,0,0,0,weapon,0,0x0, MO_DODGE,Dodge
266,2,6,1,0,0x40,0,5,1,no,0,0,0,weapon,0,0x0, MO_INVESTIGATE,Occult Impaction
267,9,8,1,-1,0,0,5,1:2:3:4:5,no,0,0,0,weapon,0,0x0, MO_FINGEROFFENSIVE,Throw Spirit Sphere
266,2,6,1,0,0x40,0,5,1,no,0,0x40000,0,weapon,0,0x0, MO_INVESTIGATE,Occult Impaction
267,9,8,1,-1,0,0,5,1:2:3:4:5,no,0,0x40000,0,weapon,0,0x0, MO_FINGEROFFENSIVE,Throw Spirit Sphere
268,0,6,4,0,0x1,0,5,1,no,0,0,0,weapon,0,0x0, MO_STEELBODY,Mental Strength
269,0,6,4,0,0x1,0,5,1,no,0,0,0,weapon,0,0x0, MO_BLADESTOP,Root
270,0,6,4,0,0x1,0,5,0,no,0,0,0,weapon,0,0x0, MO_EXPLOSIONSPIRITS,Fury
271,-2,6,1,0,0x60,0,5,1,yes,0,0,0,weapon,0,0x0, MO_EXTREMITYFIST,Asura Strike
271,-2,6,1,0,0x60,0,5,1,yes,0,0x40000,0,weapon,0,0x0, MO_EXTREMITYFIST,Asura Strike
272,-2,8,4,-1,0,0,5,-4,no,0,0x200,0,weapon,0,0x0, MO_CHAINCOMBO,Raging Quadruple Blow
273,-2,6,4,-1,0x2,2,5,1,no,0,0x200,0,weapon,0,0x0, MO_COMBOFINISH,Raging Thrust
273,-2,6,4,-1,0x2,2,5,1,no,0,0x40200,0,weapon,0,0x0, MO_COMBOFINISH,Raging Thrust
//****
// Sage
@ -550,7 +550,7 @@
// Sniper
380,0,6,4,0,0x1,0,10,1,no,0,0,0,weapon,0,0x0, SN_SIGHT,Falcon Eyes
381,9,8,1,-3,0x40,0,5,1,yes,0,0,0,misc,0,0x0, SN_FALCONASSAULT,Falcon Assault
382,9,8,1,-1,0,1,5,1,yes,0,0,14,weapon,0,0x0, SN_SHARPSHOOTING,Focused Arrow Strike
382,9,8,1,-1,0,1,5,1,yes,0,0x40000,14,weapon,0,0x0, SN_SHARPSHOOTING,Focused Arrow Strike
383,0,6,4,0,0x3,-1,10,1,yes,0,0,0,weapon,0,0x0, SN_WINDWALK,Wind Walker
//****
@ -580,13 +580,13 @@
//****
// Lord Knight
397,5,8,1,-1,0x20,0,5,5,no,0,0,0,weapon,0,0x20000, LK_SPIRALPIERCE,Spiral Pierce
397,5,8,1,-1,0x20,0,5,5,no,0,0x40000,0,weapon,0,0x20000, LK_SPIRALPIERCE,Spiral Pierce
398,4,6,1,-1,0,0,5,1,no,0,0,0,weapon,0,0x0, LK_HEADCRUSH,Traumatic Blow
399,4,6,1,-1,0,0,10,1,no,0,0,0,weapon,0,0x0, LK_JOINTBEAT,Vital Strike
//****
// High Wizard
400,9,8,1,8,0x6,1,5,1:2:3:4:5,yes,0,0,0,magic,0,0x0, HW_NAPALMVULCAN,Napalm Vulcan
400,9,8,1,8,0x6,1,5,1:2:3:4:5,yes,0,0x40000,0,magic,0,0x0, HW_NAPALMVULCAN,Napalm Vulcan
//****
// Champion
@ -601,7 +601,7 @@
//****
// Assassin Cross
406,0,6,4,-1,0xA,2,10,1,no,0,0,0,weapon,0,0x0, ASC_METEORASSAULT,Meteor Assault
406,0,6,4,-1,0xA,2,10,1,no,0,0x40000,0,weapon,0,0x0, ASC_METEORASSAULT,Meteor Assault
407,0,6,4,0,0x1,0,1,0,no,0,0,0,none,0,0x0, ASC_CDP,Create Deadly Poison
//****
@ -614,7 +614,7 @@
// Taekwon
411,0,6,4,0,0x1,0,10,1,yes,0,0,0,misc,4,0x0, TK_RUN,Running
412,0,6,4,0,0x1,0,1,1,no,0,0,0,weapon,0,0x0, TK_READYSTORM,Tornado Stance
413,-2,8,4,-1,0x2,2,7,-3,no,0,0x200,0,weapon,0,0x0, TK_STORMKICK,Tornado Kick
413,-2,8,4,-1,0x2,2,7,-3,no,0,0x40200,0,weapon,0,0x0, TK_STORMKICK,Tornado Kick
414,0,6,4,0,0x1,0,1,1,no,0,0,0,weapon,0,0x0, TK_READYDOWN,Heel Drop Stance
415,-2,8,4,-1,0,0,7,-3,no,0,0x200,0,weapon,0,0x0, TK_DOWNKICK,Heel Drop
416,0,6,4,0,0x1,0,1,1,no,0,0,0,weapon,0,0x0, TK_READYTURN,Roundhouse Stance
@ -742,7 +742,7 @@
517,0,6,4,-1,0x1,0,10,1,no,0,0,0,weapon,0,0x0, GS_GATLINGFEVER,Gatling Fever
518,2,6,1,-1,0,0,10,1,no,0,0,0,weapon,5,0x0, GS_DUST,Dust
519,-9,6,1,-1,0,0,10,1,yes,0,0,0,weapon,0,0x100, GS_FULLBUSTER,Full Buster
520,-9,6,1,-1,0x2,1:1:1:2:2:2:3:3:3:4,10,1,no,0,0,0,weapon,0,0x100, GS_SPREADATTACK,Spread Attack
520,-9,6,1,-1,0x2,1:1:1:2:2:2:3:3:3:4,10,1,no,0,0x40000,0,weapon,0,0x100, GS_SPREADATTACK,Spread Attack
521,-9,6,2,-1,0x42,1,10,1,no,0,0,0,weapon,3,0x100, GS_GROUNDDRIFT,Ground Drift
//****
@ -750,7 +750,7 @@
522,0,0,0,0,0,0,10,1,no,0,0,0,weapon,0,0x0, NJ_TOBIDOUGU,Shuriken Training
523,9,6,1,-1,0x40,0,10,1,no,0,0,0,weapon,0,0x0, NJ_SYURIKEN,Throw Shuriken
524,9,8,1,-1,0x48,0,5,3,no,0,0,0,weapon,0,0x0, NJ_KUNAI,Throw Kunai
525,9,8,1,-1,0x6,1,5,-3:-3:-4:-4:-5,yes,0,0,0,weapon,0,0x0, NJ_HUUMA,Throw Huuma Shuriken
525,9,8,1,-1,0x6,1,5,-3:-3:-4:-4:-5,yes,0,0x40000,0,weapon,0,0x0, NJ_HUUMA,Throw Huuma Shuriken
526,9,6,1,0,0x50,0,10,1,no,0,0x18000,0,misc,0,0x0, NJ_ZENYNAGE,Throw Zeny
527,0,6,4,-1,0,0,5,1,no,0,0,0,weapon,3,0x0, NJ_TATAMIGAESHI,Improvised Defense
528,-1,6,1,-1,0,0,10,1,no,0,0,0,weapon,0,0x0, NJ_KASUMIKIRI,Vanishing Slash
@ -767,7 +767,7 @@
539,0,6,4,1,0,0,5,1,yes,0,0,0,magic,0,0x0, NJ_HYOUSYOURAKU,Ice Meteor
540,9,8,1,4,0,0,10,1:2:2:3:3:4:4:5:5:6,yes,0,0,0,magic,0,0x0, NJ_HUUJIN,Wind Blade
541,9,6,4,4,0,0,5,1,yes,0,0,0,magic,0,0x0, NJ_RAIGEKISAI,Lightning Strike of Destruction
542,5:6:7:8:9,8,1,4,0,1,5,1,yes,0,0,5:6:7:8:9,magic,0,0x0, NJ_KAMAITACHI,Kamaitachi
542,5:6:7:8:9,8,1,4,0,1,5,1,yes,0,0x40000,5:6:7:8:9,magic,0,0x0, NJ_KAMAITACHI,Kamaitachi
543,0,6,4,0,0x1,0,5,1,yes,0,0,0,none,0,0x0, NJ_NEN,Soul
544,-5,6,1,0,0x40,0,10,1,no,0,0,0,weapon,0,0x0, NJ_ISSEN,Final Strike
@ -778,7 +778,7 @@
//****
// Additional NPC Skills (Episode 11.3)
653,0,8,4,0,0x6,5:7:9:11:13:5:7:9:11:13,10,1,no,0,0x2,0,magic,0,0x0, NPC_EARTHQUAKE,Earthquake
653,0,8,4,0,0x6,5:7:9:11:13:5:7:9:11:13,10,1,no,0,0x40002,0,magic,0,0x0, NPC_EARTHQUAKE,Earthquake
654,6,6,1,3,0,3,10,1,no,0,0x2,14,weapon,0,0x0, NPC_FIREBREATH,Fire Breath
655,6,6,1,1,0,3,10,1,no,0,0x2,14,weapon,0,0x0, NPC_ICEBREATH,Ice Breath
656,6,6,1,4,0,3,10,1,no,0,0x2,14,weapon,0,0x0, NPC_THUNDERBREATH,Thunder Breath
@ -786,8 +786,8 @@
658,6,6,1,7,0,3,10,1,no,0,0x2,14,weapon,0,0x0, NPC_DARKNESSBREATH,Darkness Breath
659,0,6,4,0,0x3,2:5:8:11:14,5,1,no,0,0x2,0,none,0,0x0, NPC_DRAGONFEAR,Dragon Fear
660,-9,6,1,-1,0,0,5,1,no,0,0x2,0,weapon,0,0x0, NPC_BLEEDING,Bleeding
661,0,6,4,0,0x2,7,5,1,no,0,0x2,0,weapon,7,0x0, NPC_PULSESTRIKE,Pulse Strike
662,0,6,4,0,0x2,14,10,1,no,0,0x2,0,weapon,0,0x0, NPC_HELLJUDGEMENT,Hell's Judgement
661,0,6,4,0,0x2,7,5,1,no,0,0x40002,0,weapon,7,0x0, NPC_PULSESTRIKE,Pulse Strike
662,0,6,4,0,0x2,14,10,1,no,0,0x40002,0,weapon,0,0x0, NPC_HELLJUDGEMENT,Hell's Judgement
663,0,6,4,0,0x3,2:5:8:11:14,5,1,no,0,0x2,0,none,0,0x0, NPC_WIDESILENCE,Wide Silence
664,0,6,4,0,0x3,2:5:8:11:14,5,1,no,0,0x2,0,none,0,0x0, NPC_WIDEFREEZE,Wide Freeze
665,0,6,4,0,0x3,2:5:8:11:14,5,1,no,0,0x2,0,none,0,0x0, NPC_WIDEBLEEDING,Wide Bleeding
@ -1014,15 +1014,15 @@
2250,3,6,2,1,0x43,2,1,1,no,0,0x80,1,misc,0,0x2000, RA_COBALTTRAP,Cobalt Trap
2251,3,6,2,2,0x43,2,1,1,no,0,0x80,1,misc,0,0x2000, RA_MAIZETRAP,Maize Trap
2252,3,6,2,4,0x43,2,1,1,no,0,0x80,1,misc,0,0x2000, RA_VERDURETRAP,Verdure Trap
2253,3,6,2,3,0x42,2,5,1,no,0,0x80,2,misc,0,0x2800, RA_FIRINGTRAP,Firing Trap
2254,3,6,2,1,0x42,2,5,1,no,0,0x80,2,misc,0,0x2800, RA_ICEBOUNDTRAP,Icebound Trap
2253,3,6,2,3,0x42,2,5,1,no,0,0x40080,2,misc,0,0x2800, RA_FIRINGTRAP,Firing Trap
2254,3,6,2,1,0x42,2,5,1,no,0,0x40080,2,misc,0,0x2800, RA_ICEBOUNDTRAP,Icebound Trap
//****
// NC Mechanic
2255,0,0,0,0,0,0,5,0,no,0,0,0,none,0,0x0, NC_MADOLICENCE,Mado License
2256,11,6,1,-1,0,0,5,1,no,0,0,0,weapon,0,0x0, NC_BOOSTKNUCKLE,Boost Knuckle
2257,3,6,1,-1,0,0,3,1,no,0,0,0,weapon,0,0x0, NC_PILEBUNKER,Pile Bunker
2258,13,6,1,-1,0x2,1,3,1,no,0,0,0,weapon,0,0x0, NC_VULCANARM,Vulcan Arm
2258,13,6,1,-1,0x2,1,3,1,no,0,0x40000,0,weapon,0,0x0, NC_VULCANARM,Vulcan Arm
2259,5,6,1,3,0,1,3,1,no,0,0,5,weapon,0,0x0, NC_FLAMELAUNCHER,Flame Launcher
2260,7,6,2,1,0x2,2:3:4,3,1,no,0,0x40000,0,weapon,0,0x0, NC_COLDSLOWER,Cold Slower
2261,9:11:13,6,1,-1,0x42,3:2:1,3,1,no,0,0,0,weapon,0,0x0, NC_ARMSCANNON,Arm Cannon
@ -1044,7 +1044,7 @@
2277,0,0,0,0,0,0,5,0,no,0,0,0,none,0,0x0, NC_RESEARCHFE,Research Fire/Earth
2278,5:6:7:8:9,6,1,-1,0,0,5,1,no,0,0,0,weapon,2:3:4:5:6,0x0, NC_AXEBOOMERANG,Axe Boomerang
2279,1,6,1,-1,0,0,5,1,no,0,0,0,weapon,0,0x0, NC_POWERSWING,Power Swing
2280,0,8,4,-1,0x2,2:2:3:3:3,5,-6,no,0,0,0,weapon,0,0x0, NC_AXETORNADO,Axe Tornado
2280,0,8,4,-1,0x2,2:2:3:3:3,5,-6,no,0,0x40000,0,weapon,0,0x0, NC_AXETORNADO,Axe Tornado
2281,2,6,2,0,0x1,0,5,1,yes,0,0,2,none,0,0x0, NC_SILVERSNIPER,FAW - Silver Sniper
2282,2,6,2,0,0x1,0,5,1,yes,0,0,2,none,0,0x0, NC_MAGICDECOY,FAW - Magic Decoy
2283,5,6,1,0,0x1,0,1,1,no,0,0,0,none,0,0x0, NC_DISJOINT,FAW Removal
@ -1071,7 +1071,7 @@
2301,7,6,2,0,0x1,0,3,1,yes,0,0x20000,0,magic,0,0x0, SC_CHAOSPANIC,Chaos Panic
2302,7,6,2,0,0x1,0,3,1,yes,0,0x20000,1,magic,0,0x0, SC_MAELSTROM,Maelstrom
2303,7,6,2,0,0x1,0,3,1,yes,0,0,0,none,0,0x0, SC_BLOODYLUST,Bloody Lust
2304,0,6,4,-1,0,0,3,1,no,0,0,0,weapon,3:6:9,0x0, SC_FEINTBOMB,Feint Bomb
2304,0,6,4,-1,0,0,3,1,no,0,0x40000,0,weapon,3:6:9,0x0, SC_FEINTBOMB,Feint Bomb
//****
// LG Royal Guard
@ -1100,10 +1100,10 @@
//****
// SR Sura
2326,1,8,1,-1,0,0,10,-2,no,0,0,0,weapon,0,0x0, SR_DRAGONCOMBO,Dragon Combo
2327,0,8,4,-1,0x2,2,5,-3,no,0,0,0,weapon,3,0x0, SR_SKYNETBLOW,Sky Net Blow
2328,0,6,4,-1,0x2,1:2:3:4:5,5,1,no,0,0,0,weapon,0,0x0, SR_EARTHSHAKER,Earth Shaker
2327,0,8,4,-1,0x2,2,5,-3,no,0,0x40000,0,weapon,3,0x0, SR_SKYNETBLOW,Sky Net Blow
2328,0,6,4,-1,0x2,1:2:3:4:5,5,1,no,0,0x40000,0,weapon,0,0x0, SR_EARTHSHAKER,Earth Shaker
2329,1,8,4,-1,0,0,5,-2,no,0,0x200,0,weapon,0,0x0, SR_FALLENEMPIRE,Fallen Empire
2330,1,6,1,-1,0x42,1:1:1:1:1:2:2:2:2:2,10,1,yes,0,0,0,weapon,0,0x0, SR_TIGERCANNON,Tiger Cannon
2330,1,6,1,-1,0x42,1:1:1:1:1:2:2:2:2:2,10,1,yes,0,0x40000,0,weapon,0,0x0, SR_TIGERCANNON,Tiger Cannon
2331,0,0,0,0,0,0,10,0,no,0,0,0,none,0,0x0, SR_HELLGATE,Hell Gate
2332,0,6,4,-1,0x2,3,5,1,no,0,0x40000,0,weapon,0,0x0, SR_RAMPAGEBLASTER,Rampage Blaster
2333,0,6,4,0,0x1,0,5,1,no,0,0,0,none,0,0x0, SR_CRESCENTELBOW,Crescent Elbow
@ -1374,7 +1374,7 @@
// Mercenary Skill Place holders
8201,-1,6,1,-1,0,0,10,1,no,0,0,0,weapon,0,0x0, MS_BASH,Bash
8202,0,6,4,3,0x2,2,10,1,no,0,0x40000,0,weapon,2,0x0, MS_MAGNUM,Magnum_Break
8203,-2,6,1,-1,0x2,1,10,1,no,0,0,0,weapon,1,0x0, MS_BOWLINGBASH,Bowling_Bash
8203,-2,6,1,-1,0x2,1,10,1,no,0,0x40000,0,weapon,1,0x0, MS_BOWLINGBASH,Bowling_Bash
8204,0,6,4,0,0x1,0,10,1,no,0,0,0,weapon,0,0x0, MS_PARRYING,Parry
8205,0,6,4,0,0x1,0,10,1,no,0,0,0,weapon,0,0x0, MS_REFLECTSHIELD,Shield_Reflect
8206,0,6,4,0,0x1,0,1,1,no,0,0,0,weapon,0,0x0, MS_BERSERK,Frenzy
@ -1386,10 +1386,10 @@
8212,3,6,2,1,0x42,1,5,1,no,0,0x80,0,weapon,0,0x3800, MA_FREEZINGTRAP,Freezing_Trap
8213,2,6,32,0,0x1,0,1,1,no,0,0x40000,0,misc,0,0x0, MA_REMOVETRAP,Remove_Trap
8214,-9,6,1,-1,0x2,0,1,1,no,0,0x1,0,weapon,6,0x80, MA_CHARGEARROW,Arrow_Repel
8215,9,8,1,-1,0,1,5,1,yes,0,0,14,weapon,0,0x0, MA_SHARPSHOOTING,Focused_Arrow_Strike
8215,9,8,1,-1,0,1,5,1,yes,0,0x40000,14,weapon,0,0x0, MA_SHARPSHOOTING,Focused_Arrow_Strike
8216,-2,8,1,-1,0,0,10,3,no,0,0,0,weapon,0,0x0, ML_PIERCE,Pierce
8217,-2,6,1,-1,0x1,2,10,1,no,0,0,5,weapon,2,0x20000, ML_BRANDISH,Brandish_Spear
8218,5,8,1,-1,0x20,0,5,5,no,0,0,0,weapon,0,0x20000, ML_SPIRALPIERCE,Spiral_Pierce
8218,5,8,1,-1,0x20,0,5,5,no,0,0x40000,0,weapon,0,0x20000, ML_SPIRALPIERCE,Spiral_Pierce
8219,0,6,4,0,0x1,0,5,1,no,0,0,0,weapon,0,0x0, ML_DEFENDER,Defending_Aura
8220,0,6,4,0,0x1,0,10,1,no,0,0,0,weapon,0,0x0, ML_AUTOGUARD,Guard
8221,7:8:9:10:11,6,16,0,0x1,0,5,1,yes,0,0x600,0,none,0,0x0, ML_DEVOTION,Sacrifice

View File

@ -56,7 +56,7 @@
121,0x97, , 0, 1,1000,enemy, 0x8006 //HT_FREEZINGTRAP
122,0x8f, , 0, 1,1000,enemy, 0x8006 //HT_BLASTMINE
123,0x98, , 0, 1,1000,enemy, 0x8006 //HT_CLAYMORETRAP
125,0x99, , 0, 1,1000,all, 0x8000 //HT_TALKIEBOX
125,0x99, , 0, 1,1000,all, 0x8040 //HT_TALKIEBOX
140,0x92, , -1, 1,1000,enemy, 0x8000 //AS_VENOMDUST
220,0xb0, , 0, 0, -1,all, 0x8002 //RG_GRAFFITI
229,0xb1, , 0, 1,1000,enemy, 0x006 //AM_DEMONSTRATION

View File

@ -86,13 +86,13 @@
// Mage
9,0,0,0,0,0,0,10,0,no,0,0,0,none,0,0x0, MG_SRECOVERY,Increase SP Recovery
10,0,6,4,3,0x3,3,1,1,yes,0,0,0,magic,0,0x4000, MG_SIGHT,Sight
11,9,6,1,8,0x6,1,10,1,yes,0,0x2000,0,magic,0,0x0, MG_NAPALMBEAT,Napalm Beat
11,9,6,1,8,0x6,1,10,1,yes,0,0x42000,0,magic,0,0x0, MG_NAPALMBEAT,Napalm Beat
12,9,8,2,8,0x1,0,10,1,yes,0,0,0,magic,0,0x0, MG_SAFETYWALL,Safety Wall
13,9,8,1,8,0,0,10,1:1:2:2:3:3:4:4:5:5,yes,0,0x2000,0,magic,0,0x0, MG_SOULSTRIKE,Soul Strike
14,9,8,1,1,0,0,10,1:2:3:4:5:6:7:8:9:10,yes,0,0x2000,0,magic,0,0x0, MG_COLDBOLT,Cold Bolt
15,9,6,1,1,0,0,10,1,yes,0,0x2000,0,magic,0,0x0, MG_FROSTDIVER,Frost Diver
16,2,6,1,2,0x1,0,10,1,yes,0,0,0,magic,0,0x0, MG_STONECURSE,Stone Curse
17,9,6,1,3,0x2,2,10,1,yes,0,0x2000,0,magic,0,0x0, MG_FIREBALL,Fire Ball
17,9,6,1,3,0x2,2,10,1,yes,0,0x42000,0,magic,0,0x0, MG_FIREBALL,Fire Ball
18,9,6,2,3,0,0,10,1,yes,0,0x2000,3,magic,2,0x0, MG_FIREWALL,Fire Wall
19,9,8,1,3,0,0,10,1:2:3:4:5:6:7:8:9:10,yes,0,0x2000,0,magic,0,0x0, MG_FIREBOLT,Fire Bolt
20,9,8,1,4,0,0,10,1:2:3:4:5:6:7:8:9:10,yes,0,0x2000,0,magic,0,0x0, MG_LIGHTNINGBOLT,Lightning Bolt
@ -231,7 +231,7 @@
126,0,0,0,0,0,0,10,0,no,0,0,0,weapon,0,0x0, HT_BEASTBANE,Beast Bane
127,0,0,0,0,0,0,1,0,no,0,0,0,misc,0,0x0, HT_FALCON,Falconry Mastery
128,0,0,0,0,0,0,10,0,no,0,0,0,misc,0,0x0, HT_STEELCROW,Steel Crow
129,5,8,1,0,0x42,1,5,1:2:3:4:5,yes,0,0,0,misc,0,0x80, HT_BLITZBEAT,Blitz Beat
129,5,8,1,0,0x42,1,5,1:2:3:4:5,yes,0,0x40000,0,misc,0,0x80, HT_BLITZBEAT,Blitz Beat
130,3:5:7:9,6,2,0,0x3,3,4,1,no,0,0,0,misc,0,0x0, HT_DETECTING,Detect
131,4:5:6:7:8,6,32,0,0x1,0,5,1,no,0,0,0,misc,0,0x0, HT_SPRINGTRAP,Spring Trap
@ -242,7 +242,7 @@
134,0,0,0,0,0,0,10,0,no,0,0,0,weapon,0,0x0, AS_KATAR,Katar Mastery
135,0,6,4,0,0x1,0,10,1,no,0,0,0,weapon,0,0x80040, AS_CLOAKING,Cloaking
136,1,8,1,-1,0,0,10,-8,no,0,0,0,weapon,0,0x0, AS_SONICBLOW,Sonic Blow
137,3:4:5:6:7,6,1,-1,0x2,1,5,1,no,0,0,0,weapon,0,0x4, AS_GRIMTOOTH,Grimtooth
137,3:4:5:6:7,6,1,-1,0x2,1,5,1,no,0,0x40000,0,weapon,0,0x4, AS_GRIMTOOTH,Grimtooth
138,1,6,16,5,0x1,0,10,1,no,0,0x400,0,weapon,0,0x0, AS_ENCHANTPOISON,Enchant Poison
139,0,6,4,0,0,0,10,1,no,0,0,0,weapon,0,0x0, AS_POISONREACT,Poison React
140,2,6,2,5,0x1,0,10,1,no,0,0,0,weapon,0,0x0, AS_VENOMDUST,Venom Dust
@ -284,8 +284,8 @@
170,-9,6,1,-1,0x20,0,10,1,no,0,0x2,0,weapon,0,0x0, NPC_CRITICALSLASH,Defense disregard attack
171,-9,8,1,-1,0,0,10,-2:-3:-4:-5:-6:-7:-8:-9:-10:-11,no,0,0x2,0,weapon,0,0x0, NPC_COMBOATTACK,Multi-stage Attack
172,-9,6,1,-1,0x40,0,10,1,no,0,0x2,0,weapon,0,0x0, NPC_GUIDEDATTACK,Guided Attack
173,5,6,4,3,0xE2,5,10,1,no,0,0x2,0,misc,3,0x0, NPC_SELFDESTRUCTION,Suicide bombing
174,-9,6,1,-1,0x2,3,1,1,no,0,0x2,0,weapon,0,0x0, NPC_SPLASHATTACK,Splash attack
173,5,6,4,3,0xE2,5,10,1,no,0,0x40002,0,misc,3,0x0, NPC_SELFDESTRUCTION,Suicide bombing
174,-9,6,1,-1,0x2,3,1,1,no,0,0x40002,0,weapon,0,0x0, NPC_SPLASHATTACK,Splash attack
175,0,0,4,0,0x41,0,10,1,no,0,0x2,0,misc,0,0x0, NPC_SUICIDE,Suicide
176,-9,6,1,-1,0,0,5,1,no,0,0x2,0,weapon,0,0x0, NPC_POISON,Poison Attack
177,-9,6,1,-1,0,0,5,1,no,0,0x2,0,weapon,0,0x0, NPC_BLINDATTACK,Blind Attack
@ -396,7 +396,7 @@
270,0,6,4,0,0x1,0,5,0,no,0,0,0,weapon,0,0x0, MO_EXPLOSIONSPIRITS,Fury
271,-2,6,1,0,0x60,0,5,1,yes,0,0x40000,0,weapon,0,0x0, MO_EXTREMITYFIST,Asura Strike
272,-2,8,4,-1,0,0,5,-4,no,0,0x200,0,weapon,0,0x0, MO_CHAINCOMBO,Raging Quadruple Blow
273,-2,6,4,-1,0x2,2,5,1,no,0,0x200,0,weapon,0,0x0, MO_COMBOFINISH,Raging Thrust
273,-2,6,4,-1,0x2,2,5,1,no,0,0x40200,0,weapon,0,0x0, MO_COMBOFINISH,Raging Thrust
//****
// Sage
@ -550,7 +550,7 @@
// Sniper
380,0,6,4,0,0x1,0,10,1,no,0,0,0,weapon,0,0x0, SN_SIGHT,Falcon Eyes
381,9,8,1,-3,0x40,0,5,1,yes,0,0,0,misc,0,0x0, SN_FALCONASSAULT,Falcon Assault
382,9,8,1,-1,0,1,5,1,yes,0,0,14,weapon,0,0x0, SN_SHARPSHOOTING,Focused Arrow Strike
382,9,8,1,-1,0,1,5,1,yes,0,0x40000,14,weapon,0,0x0, SN_SHARPSHOOTING,Focused Arrow Strike
383,0,6,4,0,0x3,-1,10,1,yes,0,0,0,weapon,0,0x0, SN_WINDWALK,Wind Walker
//****
@ -586,7 +586,7 @@
//****
// High Wizard
400,9,8,1,8,0x6,1,5,1:2:3:4:5,yes,0,0,0,magic,0,0x0, HW_NAPALMVULCAN,Napalm Vulcan
400,9,8,1,8,0x6,1,5,1:2:3:4:5,yes,0,0x40000,0,magic,0,0x0, HW_NAPALMVULCAN,Napalm Vulcan
//****
// Champion
@ -614,7 +614,7 @@
// Taekwon
411,0,6,4,0,0x1,0,10,1,yes,0,0,0,misc,4,0x0, TK_RUN,Running
412,0,6,4,0,0x1,0,1,1,no,0,0,0,weapon,0,0x0, TK_READYSTORM,Tornado Stance
413,-2,8,4,-1,0x2,2,7,-3,no,0,0x200,0,weapon,0,0x0, TK_STORMKICK,Tornado Kick
413,-2,8,4,-1,0x2,2,7,-3,no,0,0x40200,0,weapon,0,0x0, TK_STORMKICK,Tornado Kick
414,0,6,4,0,0x1,0,1,1,no,0,0,0,weapon,0,0x0, TK_READYDOWN,Heel Drop Stance
415,-2,8,4,-1,0,0,7,-3,no,0,0x200,0,weapon,0,0x0, TK_DOWNKICK,Heel Drop
416,0,6,4,0,0x1,0,1,1,no,0,0,0,weapon,0,0x0, TK_READYTURN,Roundhouse Stance
@ -742,7 +742,7 @@
517,0,6,4,-1,0x1,0,10,1,no,0,0,0,weapon,0,0x0, GS_GATLINGFEVER,Gatling Fever
518,2,6,1,-1,0,0,10,1,no,0,0,0,weapon,5,0x0, GS_DUST,Dust
519,-9,6,1,-1,0,0,10,1,yes,0,0,0,weapon,0,0x100, GS_FULLBUSTER,Full Buster
520,-9,6,1,-1,0x2,1:1:1:2:2:2:3:3:3:4,10,1,no,0,0,0,weapon,0,0x100, GS_SPREADATTACK,Spread Attack
520,-9,6,1,-1,0x2,1:1:1:2:2:2:3:3:3:4,10,1,no,0,0x40000,0,weapon,0,0x100, GS_SPREADATTACK,Spread Attack
521,-9,6,2,-1,0x2,1,10,1,no,0,0,0,weapon,3,0x100, GS_GROUNDDRIFT,Ground Drift
//****
@ -750,7 +750,7 @@
522,0,0,0,0,0,0,10,1,no,0,0,0,weapon,0,0x0, NJ_TOBIDOUGU,Shuriken Training
523,9,6,1,-1,0x40,0,10,1,no,0,0,0,weapon,0,0x0, NJ_SYURIKEN,Throw Shuriken
524,9,8,1,-1,0x40,0,5,3,no,0,0,0,weapon,0,0x0, NJ_KUNAI,Throw Kunai
525,9,8,2,-1,0x2,0,5,-3:-3:-4:-4:-5,no,0,0,0,weapon,0,0x0, NJ_HUUMA,Throw Huuma Shuriken
525,9,8,2,-1,0x2,0,5,-3:-3:-4:-4:-5,no,0,0x40000,0,weapon,0,0x0, NJ_HUUMA,Throw Huuma Shuriken
526,9,6,1,0,0x50,0,10,1,no,0,0x18000,0,misc,0,0x0, NJ_ZENYNAGE,Throw Zeny
527,0,6,4,-1,0,0,5,1,no,0,0,0,weapon,4,0x0, NJ_TATAMIGAESHI,Improvised Defense
528,-1,6,1,-1,0,0,10,1,no,0,0,0,weapon,0,0x0, NJ_KASUMIKIRI,Vanishing Slash
@ -767,7 +767,7 @@
539,0,6,4,1,0,0,5,1,yes,0,0,0,magic,0,0x0, NJ_HYOUSYOURAKU,Ice Meteor
540,9,8,1,4,0,0,10,1:2:2:3:3:4:4:5:5:6,yes,0,0,0,magic,0,0x0, NJ_HUUJIN,Wind Blade
541,9,6,2,4,0,0,5,1,yes,0,0,0,magic,0,0x0, NJ_RAIGEKISAI,Lightning Strike of Destruction
542,5:6:7:8:9,8,1,4,0,1,5,1,yes,0,0,5:6:7:8:9,magic,0,0x0, NJ_KAMAITACHI,Kamaitachi
542,5:6:7:8:9,8,1,4,0,1,5,1,yes,0,0x40000,5:6:7:8:9,magic,0,0x0, NJ_KAMAITACHI,Kamaitachi
543,0,6,4,0,0x1,0,5,1,yes,0,0,0,none,0,0x0, NJ_NEN,Soul
544,-5,8,1,0,0x40,0,10,1,no,0,0,0,misc,0,0x0, NJ_ISSEN,Final Strike
@ -778,7 +778,7 @@
//****
// Additional NPC Skills (Episode 11.3)
653,0,8,4,0,0x6,5:7:9:11:13:5:7:9:11:13,10,1,no,0,0x2,0,magic,0,0x0, NPC_EARTHQUAKE,Earthquake
653,0,8,4,0,0x6,5:7:9:11:13:5:7:9:11:13,10,1,no,0,0x40002,0,magic,0,0x0, NPC_EARTHQUAKE,Earthquake
654,6,6,1,3,0,3,10,1,no,0,0x2,14,weapon,0,0x0, NPC_FIREBREATH,Fire Breath
655,6,6,1,1,0,3,10,1,no,0,0x2,14,weapon,0,0x0, NPC_ICEBREATH,Ice Breath
656,6,6,1,4,0,3,10,1,no,0,0x2,14,weapon,0,0x0, NPC_THUNDERBREATH,Thunder Breath
@ -786,8 +786,8 @@
658,6,6,1,7,0,3,10,1,no,0,0x2,14,weapon,0,0x0, NPC_DARKNESSBREATH,Darkness Breath
659,0,6,4,0,0x3,2:5:8:11:14,5,1,no,0,0x2,0,none,0,0x0, NPC_DRAGONFEAR,Dragon Fear
660,-9,6,1,-1,0,0,5,1,no,0,0x2,0,weapon,0,0x0, NPC_BLEEDING,Bleeding
661,0,6,4,0,0x2,7,5,1,no,0,0x2,0,weapon,7,0x0, NPC_PULSESTRIKE,Pulse Strike
662,0,6,4,0,0x2,14,10,1,no,0,0x2,0,weapon,0,0x0, NPC_HELLJUDGEMENT,Hell's Judgement
661,0,6,4,0,0x2,7,5,1,no,0,0x40002,0,weapon,7,0x0, NPC_PULSESTRIKE,Pulse Strike
662,0,6,4,0,0x2,14,10,1,no,0,0x40002,0,weapon,0,0x0, NPC_HELLJUDGEMENT,Hell's Judgement
663,0,6,4,0,0x3,2:5:8:11:14,5,1,no,0,0x2,0,none,0,0x0, NPC_WIDESILENCE,Wide Silence
664,0,6,4,0,0x3,2:5:8:11:14,5,1,no,0,0x2,0,none,0,0x0, NPC_WIDEFREEZE,Wide Freeze
665,0,6,4,0,0x3,2:5:8:11:14,5,1,no,0,0x2,0,none,0,0x0, NPC_WIDEBLEEDING,Wide Bleeding
@ -1022,7 +1022,7 @@
2255,0,0,0,0,0,0,5,0,no,0,0,0,none,0,0x0, NC_MADOLICENCE,Mado License
2256,11,6,1,-1,0,0,5,1,no,0,0,0,weapon,0,0x0, NC_BOOSTKNUCKLE,Boost Knuckle
2257,3,6,1,-1,0,0,3,1,no,0,0,0,weapon,0,0x0, NC_PILEBUNKER,Pile Bunker
2258,13,6,1,-1,0x2,1,3,1,no,0,0,0,weapon,0,0x0, NC_VULCANARM,Vulcan Arm
2258,13,6,1,-1,0x2,1,3,1,no,0,0x40000,0,weapon,0,0x0, NC_VULCANARM,Vulcan Arm
2259,5,6,1,3,0,1,3,1,no,0,0,5,weapon,0,0x0, NC_FLAMELAUNCHER,Flame Launcher
2260,7,6,2,1,0x2,2:3:4,3,1,no,0,0x40000,0,weapon,0,0x0, NC_COLDSLOWER,Cold Slower
2261,9:11:13,6,1,-1,0x42,3:2:1,3,1,no,0,0,0,weapon,0,0x0, NC_ARMSCANNON,Arm Cannon
@ -1044,7 +1044,7 @@
2277,0,0,0,0,0,0,5,0,no,0,0,0,none,0,0x0, NC_RESEARCHFE,Research Fire/Earth
2278,5:6:7:8:9,6,1,-1,0,0,5,1,no,0,0,0,weapon,2:3:4:5:6,0x0, NC_AXEBOOMERANG,Axe Boomerang
2279,1,6,1,-1,0,0,5,1,no,0,0,0,weapon,0,0x0, NC_POWERSWING,Power Swing
2280,0,8,4,-1,0x2,2:2:3:3:3,5,-6,no,0,0,0,weapon,0,0x0, NC_AXETORNADO,Axe Tornado
2280,0,8,4,-1,0x2,2:2:3:3:3,5,-6,no,0,0x40000,0,weapon,0,0x0, NC_AXETORNADO,Axe Tornado
2281,2,6,2,0,0x1,0,5,1,yes,0,0,2,none,0,0x0, NC_SILVERSNIPER,FAW - Silver Sniper
2282,2,6,2,0,0x1,0,5,1,yes,0,0,2,none,0,0x0, NC_MAGICDECOY,FAW - Magic Decoy
2283,5,6,1,0,0x1,0,1,1,no,0,0,0,none,0,0x0, NC_DISJOINT,FAW Removal
@ -1071,7 +1071,7 @@
2301,7,6,2,0,0x1,0,3,1,yes,0,0x20000,0,magic,0,0x0, SC_CHAOSPANIC,Chaos Panic
2302,7,6,2,0,0x1,0,3,1,yes,0,0x20000,1,magic,0,0x0, SC_MAELSTROM,Maelstrom
2303,7,6,2,0,0x1,0,3,1,yes,0,0,0,none,0,0x0, SC_BLOODYLUST,Bloody Lust
2304,0,6,4,-1,0,0,3,1,no,0,0,0,weapon,3:6:9,0x0, SC_FEINTBOMB,Feint Bomb
2304,0,6,4,-1,0,0,3,1,no,0,0x40000,0,weapon,3:6:9,0x0, SC_FEINTBOMB,Feint Bomb
//****
// LG Royal Guard
@ -1100,10 +1100,10 @@
//****
// SR Sura
2326,1,8,1,-1,0,0,10,-2,no,0,0,0,weapon,0,0x0, SR_DRAGONCOMBO,Dragon Combo
2327,0,8,4,-1,0x2,2,5,-3,no,0,0,0,weapon,3,0x0, SR_SKYNETBLOW,Sky Net Blow
2328,0,6,4,-1,0x2,1:2:3:4:5,5,1,no,0,0,0,weapon,0,0x0, SR_EARTHSHAKER,Earth Shaker
2327,0,8,4,-1,0x2,2,5,-3,no,0,0x40000,0,weapon,3,0x0, SR_SKYNETBLOW,Sky Net Blow
2328,0,6,4,-1,0x2,1:2:3:4:5,5,1,no,0,0x40000,0,weapon,0,0x0, SR_EARTHSHAKER,Earth Shaker
2329,1,8,4,-1,0,0,5,-2,no,0,0x200,0,weapon,0,0x0, SR_FALLENEMPIRE,Fallen Empire
2330,1,6,1,-1,0x42,1:1:1:1:1:2:2:2:2:2,10,1,yes,0,0,0,weapon,0,0x0, SR_TIGERCANNON,Tiger Cannon
2330,1,6,1,-1,0x42,1:1:1:1:1:2:2:2:2:2,10,1,yes,0,0x40000,0,weapon,0,0x0, SR_TIGERCANNON,Tiger Cannon
2331,0,0,0,0,0,0,10,0,no,0,0,0,none,0,0x0, SR_HELLGATE,Hell Gate
2332,0,6,4,-1,0x2,3,5,1,no,0,0x40000,0,weapon,0,0x0, SR_RAMPAGEBLASTER,Rampage Blaster
2333,0,6,4,0,0x1,0,5,1,no,0,0,0,none,0,0x0, SR_CRESCENTELBOW,Crescent Elbow
@ -1407,7 +1407,7 @@
// Mercenary Skill Place holders
8201,-1,6,1,-1,0,0,10,1,no,0,0,0,weapon,0,0x0, MS_BASH,Bash
8202,0,6,4,3,0x2,2,10,1,no,0,0x40000,0,weapon,2,0x0, MS_MAGNUM,Magnum_Break
8203,-2,6,1,-1,0x2,1,10,1,no,0,0,0,weapon,1,0x0, MS_BOWLINGBASH,Bowling_Bash
8203,-2,6,1,-1,0x2,1,10,1,no,0,0x40000,0,weapon,1,0x0, MS_BOWLINGBASH,Bowling_Bash
8204,0,6,4,0,0x1,0,10,1,no,0,0,0,weapon,0,0x0, MS_PARRYING,Parry
8205,0,6,4,0,0x1,0,10,1,no,0,0,0,weapon,0,0x0, MS_REFLECTSHIELD,Shield_Reflect
8206,0,6,4,0,0x1,0,1,1,no,0,0,0,weapon,0,0x0, MS_BERSERK,Frenzy
@ -1419,7 +1419,7 @@
8212,3,6,2,1,0x42,1,5,1,no,0,0x80,0,weapon,0,0x3800, MA_FREEZINGTRAP,Freezing_Trap
8213,2,6,32,0,0x1,0,1,1,no,0,0x40000,0,misc,0,0x0, MA_REMOVETRAP,Remove_Trap
8214,-9,6,1,-1,0x2,0,1,1,no,0,0x1,0,weapon,6,0x80, MA_CHARGEARROW,Arrow_Repel
8215,9,8,1,-1,0,1,5,1,yes,0,0,14,weapon,0,0x0, MA_SHARPSHOOTING,Focused_Arrow_Strike
8215,9,8,1,-1,0,1,5,1,yes,0,0x40000,14,weapon,0,0x0, MA_SHARPSHOOTING,Focused_Arrow_Strike
8216,-2,8,1,-1,0,0,10,3,no,0,0,0,weapon,0,0x0, ML_PIERCE,Pierce
8217,-2,6,1,-1,0x1,2,10,1,no,0,0,5,weapon,2,0x20000, ML_BRANDISH,Brandish_Spear
8218,5,8,1,-1,0,0,5,5,no,0,0x40000,0,weapon,0,0x20000, ML_SPIRALPIERCE,Spiral_Pierce

View File

@ -56,7 +56,7 @@
121,0x97, , 0, 1,1000,enemy, 0x28006 //HT_FREEZINGTRAP
122,0x8f, , 0, 1,1000,enemy, 0x8006 //HT_BLASTMINE
123,0x98, , 0, 1,1000,enemy, 0x8006 //HT_CLAYMORETRAP
125,0x99, , 0, 1,1000,all, 0x28000 //HT_TALKIEBOX
125,0x99, , 0, 1,1000,all, 0x28040 //HT_TALKIEBOX
140,0x92, , -1, 1,1000,enemy, 0x8000 //AS_VENOMDUST
220,0xb0, , 0, 0, -1,all, 0x8002 //RG_GRAFFITI
229,0xb1, , 0, 1, 500,enemy, 0x006 //AM_DEMONSTRATION

View File

@ -7480,11 +7480,10 @@ int battle_check_target( struct block_list *src, struct block_list *target,int f
case BL_SKILL:
{
TBL_SKILL *su = (TBL_SKILL*)target;
uint16 skill_id = battle_getcurrentskill(src);
if( !su || !su->group)
return 0;
if( skill_get_inf2(su->group->skill_id)&INF2_TRAP && su->group->unit_id != UNT_USED_TRAPS) {
uint16 skill_id = battle_getcurrentskill(src);
if (!skill_id || su->group->skill_id == WM_REVERBERATION || su->group->skill_id == WM_POEMOFNETHERWORLD) {
;
}
@ -7492,16 +7491,38 @@ int battle_check_target( struct block_list *src, struct block_list *target,int f
switch (skill_id) {
case RK_DRAGONBREATH:
case RK_DRAGONBREATH_WATER:
case NC_SELFDESTRUCTION:
case NC_AXETORNADO:
case SR_SKYNETBLOW:
// Can only hit traps in PVP/GVG maps
if( !map[m].flag.pvp && !map[m].flag.gvg )
if (!map[m].flag.pvp && !map[m].flag.gvg)
return 0;
break;
}
}
else
return 0;
state |= BCT_ENEMY;
strip_enemy = 0;
} else if (su->group->skill_id == WZ_ICEWALL || (su->group->skill_id == GN_WALLOFTHORN && battle_getcurrentskill(src) != GN_CARTCANNON)) {
} else if (su->group->skill_id == WZ_ICEWALL || (su->group->skill_id == GN_WALLOFTHORN && skill_id != GN_CARTCANNON)) {
switch (skill_id) {
case RK_DRAGONBREATH:
case RK_DRAGONBREATH_WATER:
case NC_SELFDESTRUCTION:
case NC_AXETORNADO:
case SR_SKYNETBLOW:
// Can only hit icewall in PVP/GVG maps
if (!map[m].flag.pvp && !map[m].flag.gvg)
return 0;
break;
case HT_CLAYMORETRAP:
// Can't hit icewall
return 0;
default:
// Usually BCT_ALL stands for only hitting chars, but skills specifically set to hit traps also hit icewall
if ((flag&BCT_ALL) == BCT_ALL && !skill_get_inf2(skill_id)&INF2_HIT_TRAP)
return -1;
}
state |= BCT_ENEMY;
strip_enemy = 0;
} else //Excepting traps, Icewall, and Wall of Thorns, you should not be able to target skills.
@ -7640,8 +7661,8 @@ int battle_check_target( struct block_list *src, struct block_list *target,int f
} //end switch on src master
if( (flag&BCT_ALL) == BCT_ALL )
{ //All actually stands for all attackable chars
if( target->type&BL_CHAR )
{ //All actually stands for all attackable chars, icewall and traps
if(target->type&(BL_CHAR|BL_SKILL))
return 1;
else
return -1;
@ -8242,7 +8263,8 @@ static const struct _battle_data {
{ "exp_cost_redemptio", &battle_config.exp_cost_redemptio, 1, 0, 100, },
{ "exp_cost_redemptio_limit", &battle_config.exp_cost_redemptio_limit, 5, 0, MAX_PARTY, },
{ "exp_cost_inspiration", &battle_config.exp_cost_inspiration, 1, 0, 100, },
{ "mvp_exp_reward_message", &battle_config.mvp_exp_reward_message, 0, 0, 1, },
{ "mvp_exp_reward_message", &battle_config.mvp_exp_reward_message, 0, 0, 1, },
{ "can_damage_skill", &battle_config.can_damage_skill, 1, 0, BL_ALL, },
};
#ifndef STATS_OPT_OUT

View File

@ -607,6 +607,7 @@ extern struct Battle_Config
int exp_cost_redemptio_limit;
int exp_cost_inspiration;
int mvp_exp_reward_message;
int can_damage_skill; //Which BL types can damage traps
} battle_config;
void do_init_battle(void);

View File

@ -135,13 +135,9 @@ static int skill_check_condition_mob_master_sub (struct block_list *bl, va_list
static bool skill_check_condition_sc_required(struct map_session_data *sd, unsigned short skill_id, struct skill_condition *require);
static bool skill_check_unit_movepos(uint8 check_flag, struct block_list *bl, short dst_x, short dst_y, int easy, bool checkpath);
// Since only mob-casted splash skills can hit ice-walls
// Use this function for splash skills that can't hit icewall when cast by players
static inline int splash_target(struct block_list* bl) {
#ifndef RENEWAL
return ( bl->type == BL_MOB ) ? BL_SKILL|BL_CHAR : BL_CHAR;
#else // Some skills can now hit ground skills(traps, ice wall & etc.)
return BL_SKILL|BL_CHAR;
#endif
}
uint16 SKILL_MAX_DB(void) {
@ -961,6 +957,40 @@ int skill_additional_effect(struct block_list* src, struct block_list *bl, uint1
tsc = status_get_sc(bl);
sstatus = status_get_status_data(src);
tstatus = status_get_status_data(bl);
// Taekwon combos activate on traps, so we need to check them even for targets that don't have status
if (sd && skill_id == 0 && !(attack_type&BF_SKILL)) {
// Chance to trigger Taekwon kicks [Dralnu]
if (sc && !sc->data[SC_COMBO]) {
if (sc->data[SC_READYSTORM] &&
sc_start4(src, src, SC_COMBO, 15, TK_STORMKICK,
bl->id, 2, 0,
(2000 - 4 * sstatus->agi - 2 * sstatus->dex)))
; //Stance triggered
else if (sc->data[SC_READYDOWN] &&
sc_start4(src, src, SC_COMBO, 15, TK_DOWNKICK,
bl->id, 2, 0,
(2000 - 4 * sstatus->agi - 2 * sstatus->dex)))
; //Stance triggered
else if (sc->data[SC_READYTURN] &&
sc_start4(src, src, SC_COMBO, 15, TK_TURNKICK,
bl->id, 2, 0,
(2000 - 4 * sstatus->agi - 2 * sstatus->dex)))
; //Stance triggered
else if (sc->data[SC_READYCOUNTER]) { //additional chance from SG_FRIEND [Komurka]
rate = 20;
if (sc->data[SC_SKILLRATE_UP] && sc->data[SC_SKILLRATE_UP]->val1 == TK_COUNTER) {
rate += rate*sc->data[SC_SKILLRATE_UP]->val2 / 100;
status_change_end(src, SC_SKILLRATE_UP, INVALID_TIMER);
}
sc_start4(src, src, SC_COMBO, rate, TK_COUNTER,
bl->id, 2, 0,
(2000 - 4 * sstatus->agi - 2 * sstatus->dex))
; //Stance triggered
}
}
}
if (!tsc) //skill additional effect is about adding effects to the target...
//So if the target can't be inflicted with statuses, this is pointless.
return 0;
@ -1069,35 +1099,6 @@ int skill_additional_effect(struct block_list* src, struct block_list *bl, uint1
else
clif_skill_fail(sd,RG_SNATCHER,USESKILL_FAIL_LEVEL,0);
}
// Chance to trigger Taekwon kicks [Dralnu]
if(sc && !sc->data[SC_COMBO]) {
if(sc->data[SC_READYSTORM] &&
sc_start4(src,src,SC_COMBO, 15, TK_STORMKICK,
bl->id, 2, 0,
(2000 - 4*sstatus->agi - 2*sstatus->dex)))
; //Stance triggered
else if(sc->data[SC_READYDOWN] &&
sc_start4(src,src,SC_COMBO, 15, TK_DOWNKICK,
bl->id, 2, 0,
(2000 - 4*sstatus->agi - 2*sstatus->dex)))
; //Stance triggered
else if(sc->data[SC_READYTURN] &&
sc_start4(src,src,SC_COMBO, 15, TK_TURNKICK,
bl->id, 2, 0,
(2000 - 4*sstatus->agi - 2*sstatus->dex)))
; //Stance triggered
else if (sc->data[SC_READYCOUNTER]) { //additional chance from SG_FRIEND [Komurka]
rate = 20;
if (sc->data[SC_SKILLRATE_UP] && sc->data[SC_SKILLRATE_UP]->val1 == TK_COUNTER) {
rate += rate*sc->data[SC_SKILLRATE_UP]->val2/100;
status_change_end(src, SC_SKILLRATE_UP, INVALID_TIMER);
}
sc_start4(src,src, SC_COMBO, rate, TK_COUNTER,
bl->id, 2, 0,
(2000 - 4*sstatus->agi - 2*sstatus->dex))
; //Stance triggered
}
}
if(sc && sc->data[SC_PYROCLASTIC] && ((rnd()%100)<=sc->data[SC_PYROCLASTIC]->val3) )
skill_castend_pos2(src, bl->x, bl->y, BS_HAMMERFALL,sc->data[SC_PYROCLASTIC]->val1, tick, 0);
}
@ -3343,10 +3344,12 @@ int64 skill_attack (int attack_type, struct block_list* src, struct block_list *
default:
if( flag&SD_ANIMATION && dmg.div_ < 2 ) //Disabling skill animation doesn't works on multi-hit.
type = 5;
if( bl->type == BL_SKILL ){
TBL_SKILL *su = (TBL_SKILL*)bl;
if( su->group && skill_get_inf2(su->group->skill_id)&INF2_TRAP )// show damage on trap targets
clif_skill_damage(src,bl,tick, dmg.amotion, dmg.dmotion, damage, dmg.div_, skill_id, flag&SD_LEVEL?-1:skill_lv, 5);
if (src->type == BL_SKILL) {
TBL_SKILL *su = (TBL_SKILL*)src;
if (su->group && skill_get_inf2(su->group->skill_id)&INF2_TRAP) { // show damage on trap targets
clif_skill_damage(src, bl, tick, dmg.amotion, dmg.dmotion, damage, dmg.div_, skill_id, flag&SD_LEVEL ? -1 : skill_lv, 5);
break;
}
}
dmg.dmotion = clif_skill_damage(dsrc,bl,tick, dmg.amotion, dmg.dmotion, damage, dmg.div_, skill_id, flag&SD_LEVEL?-1:skill_lv, type);
break;
@ -3887,7 +3890,7 @@ static int skill_timerskill(int tid, unsigned int tick, int id, intptr_t data)
if (skl->skill_id == SR_SKYNETBLOW) {
clif_skill_damage(src,src,tick,status_get_amotion(src),0,-30000,1,skl->skill_id,skl->skill_lv,DMG_SKILL);
skill_area_temp[1] = 0;
map_foreachinrange(skill_area_sub,src,skill_get_splash(skl->skill_id,skl->skill_lv),splash_target(src),src,
map_foreachinrange(skill_area_sub,src,skill_get_splash(skl->skill_id,skl->skill_lv),BL_CHAR|BL_SKILL,src,
skl->skill_id,skl->skill_lv,tick,skl->flag|BCT_ENEMY|SD_SPLASH|1,skill_castend_damage_id);
break;
}
@ -4480,7 +4483,7 @@ int skill_castend_damage_id (struct block_list* src, struct block_list *bl, uint
if (!(flag&1) && sc && sc->data[SC_SPIRIT] && sc->data[SC_SPIRIT]->val2 == SL_MONK)
{ //Becomes a splash attack when Soul Linked.
map_foreachinshootrange(skill_area_sub, bl,
skill_get_splash(skill_id, skill_lv),splash_target(src),
skill_get_splash(skill_id, skill_lv),BL_CHAR|BL_SKILL,
src,skill_id,skill_lv,tick, flag|BCT_ENEMY|1,
skill_castend_damage_id);
} else
@ -4491,7 +4494,7 @@ int skill_castend_damage_id (struct block_list* src, struct block_list *bl, uint
clif_skill_nodamage(src,bl,skill_id,skill_lv,1);
skill_area_temp[1] = 0;
map_foreachinshootrange(skill_attack_area, src,
skill_get_splash(skill_id, skill_lv), splash_target(src),
skill_get_splash(skill_id, skill_lv), BL_CHAR|BL_SKILL,
BF_WEAPON, src, src, skill_id, skill_lv, tick, flag, BCT_ENEMY);
break;
@ -4668,7 +4671,6 @@ int skill_castend_damage_id (struct block_list* src, struct block_list *bl, uint
case HW_NAPALMVULCAN:
case NJ_HUUMA:
case ASC_METEORASSAULT:
case GS_DESPERADO:
case GS_SPREADATTACK:
case NPC_EARTHQUAKE:
case NPC_PULSESTRIKE:
@ -4731,7 +4733,7 @@ int skill_castend_damage_id (struct block_list* src, struct block_list *bl, uint
if (skill_id == SU_SCRATCH && status_get_lv(src) >= 30 && (rnd() % 100 < (int)(status_get_lv(src) / 30) + 10)) // TODO: Need activation chance.
skill_addtimerskill(src, tick + skill_get_delay(skill_id, skill_lv), bl->id, 0, 0, skill_id, skill_lv, BF_WEAPON, flag);
} else {
int starget = splash_target(src);
int starget = BL_CHAR|BL_SKILL;
skill_area_temp[0] = 0;
skill_area_temp[1] = bl->id;
@ -4755,14 +4757,14 @@ int skill_castend_damage_id (struct block_list* src, struct block_list *bl, uint
case WM_REVERBERATION_MELEE:
case WM_REVERBERATION_MAGIC:
skill_area_temp[1] = 0;
starget = BL_CHAR;
starget = splash_target(src);
break;
case WL_CRIMSONROCK:
skill_area_temp[4] = bl->x;
skill_area_temp[5] = bl->y;
break;
case NC_ARMSCANNON:
starget = BL_CHAR;
starget = splash_target(src);
case NC_VULCANARM:
if (sd)
pc_overheat(sd, 1);
@ -5525,7 +5527,7 @@ int skill_castend_damage_id (struct block_list* src, struct block_list *bl, uint
if (tsc && tsc->data[SC__SHADOWFORM] && rnd() % 100 < 100 - tsc->data[SC__SHADOWFORM]->val1 * 10) // [100 - (Skill Level x 10)] %
status_change_end(bl, SC__SHADOWFORM, INVALID_TIMER);
} else {
map_foreachinrange(skill_area_sub, bl, skill_get_splash(skill_id, skill_lv), splash_target(src), src, skill_id, skill_lv, tick, flag|BCT_ENEMY|SD_SPLASH|1, skill_castend_damage_id);
map_foreachinrange(skill_area_sub, bl, skill_get_splash(skill_id, skill_lv), BL_CHAR|BL_SKILL, src, skill_id, skill_lv, tick, flag|BCT_ENEMY|SD_SPLASH|1, skill_castend_damage_id);
clif_skill_damage(src, src, tick, status_get_amotion(src), 0, -30000, 1, skill_id, skill_lv, 6);
}
break;
@ -5540,7 +5542,7 @@ int skill_castend_damage_id (struct block_list* src, struct block_list *bl, uint
skill_area_temp[1] = bl->id;
skill_area_temp[3] = skill_id;
skill_attack(BF_WEAPON, src, src, bl, skill_id, skill_lv, tick, flag|8); // Only do attack calculation once
map_foreachinrange(skill_area_sub, bl, skill_get_splash(skill_id, skill_lv), splash_target(src), src, skill_id, skill_lv, tick, flag|BCT_ENEMY|SD_SPLASH|1, skill_castend_damage_id);
map_foreachinrange(skill_area_sub, bl, skill_get_splash(skill_id, skill_lv), BL_CHAR|BL_SKILL, src, skill_id, skill_lv, tick, flag|BCT_ENEMY|SD_SPLASH|1, skill_castend_damage_id);
}
break;
@ -5675,7 +5677,7 @@ int skill_castend_damage_id (struct block_list* src, struct block_list *bl, uint
skill_attack(skill_get_type(skill_id), src, src, bl, skill_id, skill_lv, tick, flag);
}
else
map_foreachinrange(skill_area_sub, bl, skill_get_splash(skill_id, skill_lv), splash_target(src), src, skill_id, skill_lv, tick, flag | BCT_ENEMY | SD_SPLASH | 1, skill_castend_damage_id);
map_foreachinrange(skill_area_sub, bl, skill_get_splash(skill_id, skill_lv), BL_CHAR|BL_SKILL, src, skill_id, skill_lv, tick, flag | BCT_ENEMY | SD_SPLASH | 1, skill_castend_damage_id);
break;
case MH_STAHL_HORN:
@ -5721,7 +5723,7 @@ int skill_castend_damage_id (struct block_list* src, struct block_list *bl, uint
// Triggered by RL_FLICKER
if (sd && sd->flicker && tsc && tsc->data[SC_H_MINE] && tsc->data[SC_H_MINE]->val2 == src->id) {
// Splash damage around it!
map_foreachinrange(skill_area_sub, bl, skill_get_splash(skill_id, skill_lv), splash_target(src),
map_foreachinrange(skill_area_sub, bl, skill_get_splash(skill_id, skill_lv), BL_CHAR|BL_SKILL,
src, skill_id, skill_lv, tick, flag|BCT_ENEMY|1, skill_castend_damage_id);
flag |= 1; // Don't consume requirement
tsc->data[SC_H_MINE]->val3 = 1; // Mark the SC end because not expired
@ -5744,7 +5746,7 @@ int skill_castend_damage_id (struct block_list* src, struct block_list *bl, uint
// First attack. If target is marked by SC_C_MARKER, do another splash damage!
if (tsc && tsc->data[SC_C_MARKER] && tsc->data[SC_C_MARKER]->val2 == src->id) {
map_foreachinrange(skill_area_sub, bl, skill_get_splash(skill_id, skill_lv), splash_target(src),
map_foreachinrange(skill_area_sub, bl, skill_get_splash(skill_id, skill_lv), BL_CHAR|BL_SKILL,
src, skill_id, skill_lv, tick, flag|BCT_ENEMY|1, skill_castend_damage_id);
status_change_end(bl, SC_C_MARKER, INVALID_TIMER);
}
@ -6809,7 +6811,7 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, ui
skill_area_temp[1] = 0;
clif_skill_nodamage(src,bl,skill_id,skill_lv,1);
map_foreachinrange(skill_area_sub, bl,
skill_get_splash(skill_id, skill_lv), splash_target(src),
skill_get_splash(skill_id, skill_lv), BL_CHAR|BL_SKILL,
src,skill_id,skill_lv,tick, flag|BCT_ENEMY|1,
skill_castend_damage_id);
status_change_end(src, SC_HIDING, INVALID_TIMER);
@ -6827,16 +6829,21 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, ui
case KO_HAPPOKUNAI:
case RL_FIREDANCE:
case RL_R_TRIP:
{
int starget = BL_CHAR|BL_SKILL;
if (skill_id == SR_HOWLINGOFLION)
starget = splash_target(src);
skill_area_temp[1] = 0;
clif_skill_nodamage(src,bl,skill_id,skill_lv,1);
if (battle_config.skill_wall_check)
i = map_foreachinshootrange(skill_area_sub, bl, skill_get_splash(skill_id, skill_lv), splash_target(src),
i = map_foreachinshootrange(skill_area_sub, bl, skill_get_splash(skill_id, skill_lv), starget,
src, skill_id, skill_lv, tick, flag|BCT_ENEMY|SD_SPLASH|1, skill_castend_damage_id);
else
i = map_foreachinrange(skill_area_sub, bl, skill_get_splash(skill_id, skill_lv), splash_target(src),
i = map_foreachinrange(skill_area_sub, bl, skill_get_splash(skill_id, skill_lv), starget,
src, skill_id, skill_lv, tick, flag|BCT_ENEMY|SD_SPLASH|1, skill_castend_damage_id);
if( !i && ( skill_id == NC_AXETORNADO || skill_id == SR_SKYNETBLOW || skill_id == KO_HAPPOKUNAI ) )
clif_skill_damage(src,src,tick, status_get_amotion(src), 0, -30000, 1, skill_id, skill_lv, 6);
}
break;
case NC_EMERGENCYCOOL:
@ -6911,7 +6918,7 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, ui
clif_skill_nodamage(src, src, skill_id, -1, 1);
map_delblock(src); //Required to prevent chain-self-destructions hitting back.
map_foreachinshootrange(skill_area_sub, bl,
skill_get_splash(skill_id, skill_lv), splash_target(src),
skill_get_splash(skill_id, skill_lv), BL_CHAR|BL_SKILL,
src, skill_id, skill_lv, tick, flag|i,
skill_castend_damage_id);
if(map_addblock(src))
@ -9456,7 +9463,7 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, ui
pc_setmadogear(sd, 0);
skill_area_temp[1] = 0;
clif_skill_nodamage(src, bl, skill_id, skill_lv, 1);
map_foreachinrange(skill_area_sub, bl, skill_get_splash(skill_id, skill_lv), splash_target(src), src, skill_id, skill_lv, tick, flag|BCT_ENEMY|SD_SPLASH|1, skill_castend_damage_id);
map_foreachinrange(skill_area_sub, bl, skill_get_splash(skill_id, skill_lv), BL_CHAR|BL_SKILL, src, skill_id, skill_lv, tick, flag|BCT_ENEMY|SD_SPLASH|1, skill_castend_damage_id);
status_set_sp(src, 0, 0);
skill_clear_unitgroup(src);
}
@ -10564,9 +10571,9 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, ui
}else{
skill_area_temp[2] = 0;
if (battle_config.skill_wall_check)
map_foreachinshootrange(skill_area_sub, bl, skill_get_splash(skill_id, skill_lv), splash_target(src), src, skill_id, skill_lv, tick, flag|BCT_ENEMY|SD_SPLASH|1, skill_castend_nodamage_id);
map_foreachinshootrange(skill_area_sub, bl, skill_get_splash(skill_id, skill_lv), BL_CHAR|BL_SKILL, src, skill_id, skill_lv, tick, flag|BCT_ENEMY|SD_SPLASH|1, skill_castend_nodamage_id);
else
map_foreachinrange(skill_area_sub, bl, skill_get_splash(skill_id, skill_lv), splash_target(src), src, skill_id, skill_lv, tick, flag|BCT_ENEMY|SD_SPLASH|1, skill_castend_nodamage_id);
map_foreachinrange(skill_area_sub, bl, skill_get_splash(skill_id, skill_lv), BL_CHAR|BL_SKILL, src, skill_id, skill_lv, tick, flag|BCT_ENEMY|SD_SPLASH|1, skill_castend_nodamage_id);
}
break;
@ -10909,12 +10916,27 @@ static int8 skill_castend_id_check(struct block_list *src, struct block_list *ta
}
}
break;
// Check if path can be reached
case RA_WUGSTRIKE:
// Check if path can be reached
if (!path_search(NULL,src->m,src->x,src->y,target->x,target->y,1,CELL_CHKNOREACH))
return USESKILL_FAIL_MAX;
break;
case MG_NAPALMBEAT:
case MG_FIREBALL:
case HT_BLITZBEAT:
case AS_GRIMTOOTH:
case MO_COMBOFINISH:
case NC_VULCANARM:
case SR_TIGERCANNON:
// These can damage traps, but can't target traps directly
if (target->type == BL_SKILL) {
TBL_SKILL *su = (TBL_SKILL*)target;
if (!su || !su->group)
return USESKILL_FAIL_MAX;
if (skill_get_inf2(su->group->skill_id)&INF2_TRAP)
return USESKILL_FAIL_MAX;
}
break;
}
if (inf&INF_ATTACK_SKILL ||
@ -12040,7 +12062,7 @@ int skill_castend_pos2(struct block_list* src, int x, int y, uint16 skill_id, ui
case LG_RAYOFGENESIS:
if( status_charge(src,status_get_max_hp(src)*3*skill_lv / 100,0) ) {
i = skill_get_splash(skill_id,skill_lv);
map_foreachinarea(skill_area_sub,src->m,x-i,y-i,x+i,y+i,splash_target(src),
map_foreachinarea(skill_area_sub,src->m,x-i,y-i,x+i,y+i,BL_CHAR|BL_SKILL,
src,skill_id,skill_lv,tick,flag|BCT_ENEMY|1,skill_castend_damage_id);
} else if( sd )
clif_skill_fail(sd,skill_id,USESKILL_FAIL,0);
@ -18116,7 +18138,7 @@ static int skill_unit_timer_sub(DBKey key, DBData *data, va_list ap)
struct block_list *src = map_id2bl(group->src_id);
struct status_change *sc;
if (src && (sc = status_get_sc(src)) != NULL && sc->data[SC__FEINTBOMB]) { // Copycat explodes if caster is still hidden.
map_foreachinrange(skill_area_sub, &unit->bl, unit->range, splash_target(src), src, SC_FEINTBOMB, group->skill_lv, tick, BCT_ENEMY|SD_ANIMATION|1, skill_castend_damage_id);
map_foreachinrange(skill_area_sub, &unit->bl, unit->range, BL_CHAR|BL_SKILL, src, SC_FEINTBOMB, group->skill_lv, tick, BCT_ENEMY|SD_ANIMATION|5, skill_castend_damage_id);
status_change_end(bl, SC__FEINTBOMB, INVALID_TIMER);
}
skill_delunit(unit);

View File

@ -1503,8 +1503,11 @@ int status_damage(struct block_list *src,struct block_list *target,int64 dhp, in
sp = 0;
}
if (target->type == BL_SKILL)
return (int)skill_unit_ondamaged((struct skill_unit *)target, hp);
if (target->type == BL_SKILL) {
if (!src || src->type&battle_config.can_damage_skill)
return (int)skill_unit_ondamaged((struct skill_unit *)target, hp);
return 0;
}
status = status_get_status_data(target);
if(!status || status == &dummy_status )