diff --git a/conf/battle/skill.conf b/conf/battle/skill.conf index 51f92a9fbb..971bbb394c 100644 --- a/conf/battle/skill.conf +++ b/conf/battle/skill.conf @@ -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 diff --git a/db/pre-re/skill_db.txt b/db/pre-re/skill_db.txt index 3f2a158397..629889e374 100644 --- a/db/pre-re/skill_db.txt +++ b/db/pre-re/skill_db.txt @@ -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 diff --git a/db/pre-re/skill_unit_db.txt b/db/pre-re/skill_unit_db.txt index 5621620794..a5cd72eaae 100644 --- a/db/pre-re/skill_unit_db.txt +++ b/db/pre-re/skill_unit_db.txt @@ -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 diff --git a/db/re/skill_db.txt b/db/re/skill_db.txt index db075bcb9d..dc007133d5 100644 --- a/db/re/skill_db.txt +++ b/db/re/skill_db.txt @@ -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 diff --git a/db/re/skill_unit_db.txt b/db/re/skill_unit_db.txt index 7ed194f87e..83bfab317f 100644 --- a/db/re/skill_unit_db.txt +++ b/db/re/skill_unit_db.txt @@ -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 diff --git a/src/map/battle.c b/src/map/battle.c index bcd68ab161..2ce07b7d8c 100644 --- a/src/map/battle.c +++ b/src/map/battle.c @@ -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 diff --git a/src/map/battle.h b/src/map/battle.h index f1205ceb66..aa07125e1b 100644 --- a/src/map/battle.h +++ b/src/map/battle.h @@ -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); diff --git a/src/map/skill.c b/src/map/skill.c index d923323ac9..704897548d 100755 --- a/src/map/skill.c +++ b/src/map/skill.c @@ -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); diff --git a/src/map/status.c b/src/map/status.c index d2bc85658a..aa6cedb874 100644 --- a/src/map/status.c +++ b/src/map/status.c @@ -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 )