* Adjusted new renewal changes and added missing bonus damage modifiers for several skills. (bugreport:9280)

* Put Gloomy Shyness into INF3_*.
This commit is contained in:
aleos89
2014-11-27 22:37:25 -05:00
parent 0877fed66c
commit 3be6f5a4f3
7 changed files with 201 additions and 172 deletions

View File

@@ -23,47 +23,48 @@
// 10 Cast interrupted when hit?
// 11 defense-reduction rate during cast.
// 12 inf2 (skill information 2):
// 0x00001- quest skill
// 0x00002- npc skill
// 0x00004- wedding skill
// 0x00008- spirit skill
// 0x00010- guild skill
// 0x00020- song/dance
// 0x00040- ensemble skill
// 0x00080- trap
// 0x00100- skill that damages/targets yourself
// 0x00200- cannot be casted on self (if inf = 4, auto-select target skill)
// 0x00400- usable only on party-members (and enemies if skill is offensive)
// 0x00800- usable only on guild-mates (and enemies if skill is offensive)
// 0x01000- disable usage on enemies (for non-offensive skills).
// 0x02000- free
// 0x04000- chorus skill
// 0x08000- skill that ignore bg reduction
// 0x10000- skill that ignore gvg reduction
// 0x20000- makes 'self'/'place' skill cannot be casted/placed when near NPC (see 'db/skill_nonearnpc_db.txt' for more options)
// 0x00001 - quest skill
// 0x00002 - npc skill
// 0x00004 - wedding skill
// 0x00008 - spirit skill
// 0x00010 - guild skill
// 0x00020 - song/dance
// 0x00040 - ensemble skill
// 0x00080 - trap
// 0x00100 - skill that damages/targets yourself
// 0x00200 - cannot be casted on self (if inf = 4, auto-select target skill)
// 0x00400 - usable only on party-members (and enemies if skill is offensive)
// 0x00800 - usable only on guild-mates (and enemies if skill is offensive)
// 0x01000 - disable usage on enemies (for non-offensive skills).
// 0x02000 - free
// 0x04000 - chorus skill
// 0x08000 - skill that ignore bg reduction
// 0x10000 - skill that ignore gvg reduction
// 0x20000 - makes 'self'/'place' skill cannot be casted/placed when near NPC (see 'db/skill_nonearnpc_db.txt' for more options)
// 13 maxcount: max amount of skill instances to place on the ground when
// player_land_skill_limit/monster_land_skill_limit is enabled. For skills
// that attack using a path, this is the path length to be used.
// 14 attack type (none, weapon, magic, misc)
// 15 Blowcount (amount of tiles skill knockbacks)
// 16 inf3 (skill information 3):
// 0x00001- skill ignores land protector (e.g. arrow shower)
// 0x00002- skill that doesn't end camouflage
// 0x00004- usable skills while hiding
// 0x00008- skill that can be use while in dancing state
// 0x00010- skill that could hit emperium
// 0x00020- skill blocked by statis
// 0x00040- skill blocked by kagehumi
// 0x00080- skill range affected by AC_VULTURE
// 0x00100- skill range affected by GS_SNAKEEYE
// 0x00200- skill range affected by NJ_SHADOWJUMP
// 0x00400- skill range affected by WL_RADIUS
// 0x00800- skill range affected by RA_RESEARCHTRAP
// 0x01000- skill that does not affect user that has NC_HOVERING active
// 0x02000- skill that can be using while riding warg
// 0x04000- skill that can't be used while in mado
// 0x08000- skill that can be used to target while under SC__MANHOLE effect
// 0x10000- skill that affects hidden targets
// 0x00001 - skill ignores land protector (e.g. arrow shower)
// 0x00002 - skill that doesn't end camouflage
// 0x00004 - usable skills while hiding
// 0x00008 - skill that can be use while in dancing state
// 0x00010 - skill that could hit emperium
// 0x00020 - skill blocked by statis
// 0x00040 - skill blocked by kagehumi
// 0x00080 - skill range affected by AC_VULTURE
// 0x00100 - skill range affected by GS_SNAKEEYE
// 0x00200 - skill range affected by NJ_SHADOWJUMP
// 0x00400 - skill range affected by WL_RADIUS
// 0x00800 - skill range affected by RA_RESEARCHTRAP
// 0x01000 - skill that does not affect user that has NC_HOVERING active
// 0x02000 - skill that can be using while riding warg
// 0x04000 - skill that can't be used while in mado
// 0x08000 - skill that can be used to target while under SC__MANHOLE effect
// 0x10000 - skill that affects hidden targets
// 0x20000 - skill that affects SC_GLOOMYDAY_SK
// 17 Name
// 18 Description

View File

@@ -23,47 +23,48 @@
// 10 Cast interrupted when hit?
// 11 defense-reduction rate during cast.
// 12 inf2 (skill information 2):
// 0x00001- quest skill
// 0x00002- npc skill
// 0x00004- wedding skill
// 0x00008- spirit skill
// 0x00010- guild skill
// 0x00020- song/dance
// 0x00040- ensemble skill
// 0x00080- trap
// 0x00100- skill that damages/targets yourself
// 0x00200- cannot be casted on self (if inf = 4, auto-select target skill)
// 0x00400- usable only on party-members (and enemies if skill is offensive)
// 0x00800- usable only on guild-mates (and enemies if skill is offensive)
// 0x01000- disable usage on enemies (for non-offensive skills).
// 0x02000- available skill for SC_AUTOSHADOWSPELL
// 0x04000- chorus skill
// 0x08000- skill that ignore bg reduction
// 0x10000- skill that ignore gvg reduction
// 0x20000- makes 'self'/'place' skill cannot be casted/placed when near NPC (see 'db/skill_nonearnpc_db.txt' for more options)
// 0x00001 - quest skill
// 0x00002 - npc skill
// 0x00004 - wedding skill
// 0x00008 - spirit skill
// 0x00010 - guild skill
// 0x00020 - song/dance
// 0x00040 - ensemble skill
// 0x00080 - trap
// 0x00100 - skill that damages/targets yourself
// 0x00200 - cannot be casted on self (if inf = 4, auto-select target skill)
// 0x00400 - usable only on party-members (and enemies if skill is offensive)
// 0x00800 - usable only on guild-mates (and enemies if skill is offensive)
// 0x01000 - disable usage on enemies (for non-offensive skills).
// 0x02000 - available skill for SC_AUTOSHADOWSPELL
// 0x04000 - chorus skill
// 0x08000 - skill that ignore bg reduction
// 0x10000 - skill that ignore gvg reduction
// 0x20000 - makes 'self'/'place' skill cannot be casted/placed when near NPC (see 'db/skill_nonearnpc_db.txt' for more options)
// 13 maxcount: max amount of skill instances to place on the ground when
// player_land_skill_limit/monster_land_skill_limit is enabled. For skills
// that attack using a path, this is the path length to be used.
// 14 attack type (none, weapon, magic, misc)
// 15 Blowcount (amount of tiles skill knockbacks)
// 16 inf3 (skill information 3):
// 0x00001- skill ignores land protector (e.g. arrow shower)
// 0x00002- skill that doesn't end camouflage
// 0x00004- usable skills while hiding
// 0x00008- skill that can be use while in dancing state
// 0x00010- skill that could hit emperium
// 0x00020- skill blocked by statis
// 0x00040- skill blocked by kagehumi
// 0x00080- skill range affected by AC_VULTURE
// 0x00100- skill range affected by GS_SNAKEEYE
// 0x00200- skill range affected by NJ_SHADOWJUMP
// 0x00400- skill range affected by WL_RADIUS
// 0x00800- skill range affected by RA_RESEARCHTRAP
// 0x01000- skill that does not affect user that has NC_HOVERING active
// 0x02000- skill that can be using while riding warg
// 0x04000- skill that can't be used while in mado
// 0x08000- skill that can be used to target while under SC__MANHOLE effect
// 0x10000- skill that affects hidden targets
// 0x00001 - skill ignores land protector (e.g. arrow shower)
// 0x00002 - skill that doesn't end camouflage
// 0x00004 - usable skills while hiding
// 0x00008 - skill that can be use while in dancing state
// 0x00010 - skill that could hit emperium
// 0x00020 - skill blocked by statis
// 0x00040 - skill blocked by kagehumi
// 0x00080 - skill range affected by AC_VULTURE
// 0x00100 - skill range affected by GS_SNAKEEYE
// 0x00200 - skill range affected by NJ_SHADOWJUMP
// 0x00400 - skill range affected by WL_RADIUS
// 0x00800 - skill range affected by RA_RESEARCHTRAP
// 0x01000 - skill that does not affect user that has NC_HOVERING active
// 0x02000 - skill that can be using while riding warg
// 0x04000 - skill that can't be used while in mado
// 0x08000 - skill that can be used to target while under SC__MANHOLE effect
// 0x10000 - skill that affects hidden targets
// 0x20000 - skill that affects SC_GLOOMYDAY_SK
// 17 Name
// 18 Description
1,0,0,0,0,0,0,9,0,no,0,0,0,none,0,0x0, NV_BASIC,Basic Skill
@@ -144,7 +145,7 @@
// Knight
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,0,10,1,no,0,0,0,weapon,3,0x0, KN_BRANDISHSPEAR,Brandish Spear
57,-2,6,1,-1,0x1,0,10,1,no,0,0,0,weapon,3,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
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
@@ -367,7 +368,7 @@
248,0,0,0,0,0,0,10,0,no,0,0,0,none,0,0x0, CR_TRUST,Faith
249,0,6,4,0,0x1,0,10,1,no,0,0,0,weapon,0,0x0, CR_AUTOGUARD,Guard
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,0x0, CR_SHIELDBOOMERANG,Shield Boomerang
251,3:5:7:9:11,6,1,0,0,0,5,1,no,0,0,0,weapon,20000,0x0, CR_SHIELDBOOMERANG,Shield Boomerang
252,0,6,4,0,0,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
254,5,6,4,6,0x48,0,10,1,no,33,0x100,0,magic,0,0x0, CR_GRANDCROSS,Grand Cross
@@ -576,7 +577,7 @@
//****
// Lord Knight
397,5,8,1,-1,0x20,0,5,5,no,0,0,0,weapon,0,0x0, LK_SPIRALPIERCE,Spiral Pierce
397,5,8,1,-1,0x20,0,5,5,no,0,0,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
@@ -695,7 +696,7 @@
477,0,6,4,0,0x1,0,10,1,no,0,0,0,weapon,0,0x4000, WS_WEAPONREFINE,Upgrade Weapon
478,3,6,2,0,0x3,3,10,1,no,0,0,0,none,0,0x0, CR_SLIMPITCHER,Aid Condensed Potion
479,1,6,16,0,0x1,0,5,1,yes,0,0,0,weapon,0,0x0, CR_FULLPROTECTION,Full Protection
480,5,8,1,-1,0,0,5,5,no,0,0,0,weapon,0,0x0, PA_SHIELDCHAIN,Shield Chain
480,5,8,1,-1,0,0,5,5,no,0,0,0,weapon,0,0x20000, PA_SHIELDCHAIN,Shield Chain
481,0,0,0,0,0,0,5,0,no,0,0,0,none,0,0x0, HP_MANARECHARGE,Mana Recharge
482,0,6,4,0,0x1,0,5,1,no,0,0,0,magic,0,0x0, PF_DOUBLECASTING,Double Casting
483,16,6,2,0,0x1,1:2:3:4:5,1,1,no,0,0,0,none,0,0x20, HW_GANBANTEIN,Ganbantein
@@ -884,7 +885,7 @@
2001,0,6,4,0,0x1,0,5,1,yes,0,0,0,none,0,0x0, RK_ENCHANTBLADE,Enchant Blade
2002,7:8:9:10:11,6,1,-1,0,0,5,1,no,0,0,0,weapon,0,0x0, RK_SONICWAVE,Sonic Wave
2003,0,6,4,0,0x1,0,10,1,no,0,0,0,weapon,0,0x0, RK_DEATHBOUND,Death Bound
2004,5,8,1,-1,0,0,10,-5,no,0,0,0,weapon,0,0x0, RK_HUNDREDSPEAR,Hundred Spear
2004,5,8,1,-1,0,0,10,-5,no,0,0,0,weapon,0,0x20000, RK_HUNDREDSPEAR,Hundred Spear
2005,1,6,2,4,0x2,2,5,1,no,0,0,0,weapon,3,0x0, RK_WINDCUTTER,Wind Cutter
2006,0,6,4,-1,0x2,5,5,1,no,0,0,0,weapon,0,0x0, RK_IGNITIONBREAK,Ignition Break
2007,0,0,0,0,0,0,5,0,no,0,0,0,none,0,0x0, RK_DRAGONTRAINING,Dragon Training

View File

@@ -23,47 +23,48 @@
// 10 Cast interrupted when hit?
// 11 defense-reduction rate during cast.
// 12 inf2 (skill information 2):
// 0x00001- quest skill
// 0x00002- npc skill
// 0x00004- wedding skill
// 0x00008- spirit skill
// 0x00010- guild skill
// 0x00020- song/dance
// 0x00040- ensemble skill
// 0x00080- trap
// 0x00100- skill that damages/targets yourself
// 0x00200- cannot be casted on self (if inf = 4, auto-select target skill)
// 0x00400- usable only on party-members (and enemies if skill is offensive)
// 0x00800- usable only on guild-mates (and enemies if skill is offensive)
// 0x01000- disable usage on enemies (for non-offensive skills).
// 0x02000- available skill for SC_AUTOSHADOWSPELL
// 0x04000- chorus skill
// 0x08000- skill that ignore bg reduction
// 0x10000- skill that ignore gvg reduction
// 0x20000- makes 'self'/'place' skill cannot be casted/placed when near NPC (see 'db/skill_nonearnpc_db.txt' for more options)
// 0x00001 - quest skill
// 0x00002 - npc skill
// 0x00004 - wedding skill
// 0x00008 - spirit skill
// 0x00010 - guild skill
// 0x00020 - song/dance
// 0x00040 - ensemble skill
// 0x00080 - trap
// 0x00100 - skill that damages/targets yourself
// 0x00200 - cannot be casted on self (if inf = 4, auto-select target skill)
// 0x00400 - usable only on party-members (and enemies if skill is offensive)
// 0x00800 - usable only on guild-mates (and enemies if skill is offensive)
// 0x01000 - disable usage on enemies (for non-offensive skills).
// 0x02000 - available skill for SC_AUTOSHADOWSPELL
// 0x04000 - chorus skill
// 0x08000 - skill that ignore bg reduction
// 0x10000 - skill that ignore gvg reduction
// 0x20000 - makes 'self'/'place' skill cannot be casted/placed when near NPC (see 'db/skill_nonearnpc_db.txt' for more options)
// 13 maxcount: max amount of skill instances to place on the ground when
// player_land_skill_limit/monster_land_skill_limit is enabled. For skills
// that attack using a path, this is the path length to be used.
// 14 attack type (none, weapon, magic, misc)
// 15 Blowcount (amount of tiles skill knockbacks)
// 16 inf3 (skill information 3):
// 0x00001- skill ignores land protector (e.g. arrow shower)
// 0x00002- skill that doesn't end camouflage
// 0x00004- usable skills while hiding
// 0x00008- skill that can be use while in dancing state
// 0x00010- skill that could hit emperium
// 0x00020- skill blocked by statis
// 0x00040- skill blocked by kagehumi
// 0x00080- skill range affected by AC_VULTURE
// 0x00100- skill range affected by GS_SNAKEEYE
// 0x00200- skill range affected by NJ_SHADOWJUMP
// 0x00400- skill range affected by WL_RADIUS
// 0x00800- skill range affected by RA_RESEARCHTRAP
// 0x01000- skill that does not affect user that has NC_HOVERING active
// 0x02000- skill that can be using while riding warg
// 0x04000- skill that can't be used while in mado
// 0x08000- skill that can be used to target while under SC__MANHOLE effect
// 0x10000- skill that affects hidden targets
// 0x00001 - skill ignores land protector (e.g. arrow shower)
// 0x00002 - skill that doesn't end camouflage
// 0x00004 - usable skills while hiding
// 0x00008 - skill that can be use while in dancing state
// 0x00010 - skill that could hit emperium
// 0x00020 - skill blocked by statis
// 0x00040 - skill blocked by kagehumi
// 0x00080 - skill range affected by AC_VULTURE
// 0x00100 - skill range affected by GS_SNAKEEYE
// 0x00200 - skill range affected by NJ_SHADOWJUMP
// 0x00400 - skill range affected by WL_RADIUS
// 0x00800 - skill range affected by RA_RESEARCHTRAP
// 0x01000 - skill that does not affect user that has NC_HOVERING active
// 0x02000 - skill that can be using while riding warg
// 0x04000 - skill that can't be used while in mado
// 0x08000 - skill that can be used to target while under SC__MANHOLE effect
// 0x10000 - skill that affects hidden targets
// 0x20000 - skill that affects SC_GLOOMYDAY_SK
// 17 Name
// 18 Description
1,0,0,0,0,0,0,9,0,no,0,0,0,none,0,0x0, NV_BASIC,Basic Skill
@@ -144,7 +145,7 @@
// Knight
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,0,10,1,no,0,0,0,weapon,3,0x0, KN_BRANDISHSPEAR,Brandish Spear
57,-2,6,1,-1,0x1,0,10,1,no,0,0,0,weapon,3,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
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
@@ -367,7 +368,7 @@
248,0,0,0,0,0,0,10,0,no,0,0,0,none,0,0x0, CR_TRUST,Faith
249,0,6,4,0,0x1,0,10,1,no,0,0,0,weapon,0,0x0, CR_AUTOGUARD,Guard
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,0x0, CR_SHIELDBOOMERANG,Shield Boomerang
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,0,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
254,5,6,4,6,0x48,0,10,1,no,33,0x100,0,magic,0,0x0, CR_GRANDCROSS,Grand Cross
@@ -576,7 +577,7 @@
//****
// Lord Knight
397,5,8,1,-1,0,0,5,5,no,0,0,0,weapon,0,0x0, LK_SPIRALPIERCE,Spiral Pierce
397,5,8,1,-1,0,0,5,5,no,0,0,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
@@ -695,7 +696,7 @@
477,0,6,4,0,0x1,0,10,1,no,0,0,0,weapon,0,0x4000, WS_WEAPONREFINE,Upgrade Weapon
478,3,6,2,0,0x3,3,10,1,no,0,0,0,none,0,0x0, CR_SLIMPITCHER,Aid Condensed Potion
479,1,6,16,0,0x1,0,5,1,yes,0,0,0,weapon,0,0x0, CR_FULLPROTECTION,Full Protection
480,5,8,1,-1,0,0,5,5,no,0,0,0,weapon,0,0x0, PA_SHIELDCHAIN,Shield Chain
480,5,8,1,-1,0,0,5,5,no,0,0,0,weapon,0,0x20000, PA_SHIELDCHAIN,Shield Chain
481,0,0,0,0,0,0,5,0,no,0,0,0,none,0,0x0, HP_MANARECHARGE,Mana Recharge
482,0,6,4,0,0x1,0,5,1,no,0,0,0,magic,0,0x0, PF_DOUBLECASTING,Double Casting
483,16,6,2,0,0x1,1:2:3:4:5,1,1,no,0,0,0,none,0,0x20, HW_GANBANTEIN,Ganbantein
@@ -884,7 +885,7 @@
2001,0,6,4,0,0x1,0,5,1,yes,0,0,0,none,0,0x0, RK_ENCHANTBLADE,Enchant Blade
2002,7:8:9:10:11,6,1,-1,0,0,5,1,no,0,0,0,weapon,0,0x0, RK_SONICWAVE,Sonic Wave
2003,0,6,4,0,0x1,0,10,1,no,0,0,0,weapon,0,0x0, RK_DEATHBOUND,Death Bound
2004,5,8,1,-1,0,0,10,-5,no,0,0,0,weapon,0,0x0, RK_HUNDREDSPEAR,Hundred Spear
2004,5,8,1,-1,0,0,10,-5,no,0,0,0,weapon,0,0x20000, RK_HUNDREDSPEAR,Hundred Spear
2005,1,6,2,4,0x2,2,5,1,no,0,0,0,weapon,3,0x0, RK_WINDCUTTER,Wind Cutter
2006,0,6,4,-1,0x2,5,5,1,no,0,0,0,weapon,0,0x0, RK_IGNITIONBREAK,Ignition Break
2007,0,0,0,0,0,0,5,0,no,0,0,0,none,0,0x0, RK_DRAGONTRAINING,Dragon Training
@@ -1069,7 +1070,7 @@
2307,11,8,1,-1,0,2,5,1,no,0,0,10,weapon,0,0x0, LG_CANNONSPEAR,Cannon Spear
2308,7,6,1,-1,0,0,10,1,no,0,0,0,weapon,0,0x0, LG_BANISHINGPOINT,Banishing Point
2309,0,6,4,0,0x3,2,3,1,no,0,0,0,none,0,0x0, LG_TRAMPLE,Trample
2310,1,6,1,0,0,0,5,1,no,0,0,0,weapon,0,0x0, LG_SHIELDPRESS,Shield Press
2310,1,6,1,0,0,0,5,1,no,0,0,0,weapon,0,0x20000, LG_SHIELDPRESS,Shield Press
2311,0,6,4,0,0x3,3,5,1,no,0,0,0,none,0,0x0, LG_REFLECTDAMAGE,Reflect Damage
2312,5,6,1,-1,0,0,5,1,no,0,0,0,weapon,0,0x0, LG_PINPOINTATTACK,Pinpoint Attack
2313,0,6,4,0,0x1,0,5,1,yes,0,0,0,none,0,0x0, LG_FORCEOFVANGUARD,Force of Vanguard

View File

@@ -2706,6 +2706,11 @@ static struct Damage battle_calc_attack_masteries(struct Damage wd, struct block
if (sc) { // Status change considered as masteries
uint8 i;
#ifdef RENEWAL
if (sc->data[SC_NIBELUNGEN]) // With renewal, the level 4 weapon limitation has been removed
ATK_ADD(wd.masteryAtk, wd.masteryAtk2, sc->data[SC_NIBELUNGEN]->val2);
#endif
if (sc->data[SC_MIRACLE])
i = 2; //Star anger
else
@@ -4141,18 +4146,22 @@ static int battle_calc_skill_constant_addition(struct Damage wd, struct block_li
* Initial refactoring by Baalberith
* Refined and optimized by helvetica
*/
struct Damage battle_attack_sc_bonus(struct Damage wd, struct block_list *src, uint16 skill_id)
struct Damage battle_attack_sc_bonus(struct Damage wd, struct block_list *src, struct block_list *target, uint16 skill_id)
{
struct map_session_data *sd = BL_CAST(BL_PC, src);
struct status_change *sc = status_get_sc(src);
struct status_data *sstatus = status_get_status_data(src);
#ifdef RENEWAL
struct status_data *tstatus = status_get_status_data(target);
#endif
int inf3 = skill_get_inf3(skill_id);
if( sd ) {
if (sd) {
int type;
// Kagerou/Oboro Earth Charm effect +15% wATK
ARR_FIND(1, 6, type, sd->talisman[type] > 0);
if( type == 2 ) {
if (type == 2) { //KO Earth Charm effect +15% wATK
ATK_ADDRATE(wd.damage, wd.damage2, 15 * sd->talisman[type]);
#ifdef RENEWAL
ATK_ADDRATE(wd.weaponAtk, wd.weaponAtk2, 15 * sd->talisman[type]);
@@ -4163,36 +4172,42 @@ struct Damage battle_attack_sc_bonus(struct Damage wd, struct block_list *src, u
//The following are applied on top of current damage and are stackable.
if (sc) {
#ifdef RENEWAL
if (sc->data[SC_WATK_ELEMENT])
if (skill_id != ASC_METEORASSAULT)
ATK_ADDRATE(wd.weaponAtk, wd.weaponAtk2, sc->data[SC_WATK_ELEMENT]->val2);
#else
if( sc->data[SC_TRUESIGHT] )
ATK_ADDRATE(wd.damage, wd.damage2, 2*sc->data[SC_TRUESIGHT]->val1);
#endif
if( sc->data[SC_GLOOMYDAY_SK] &&
( skill_id == LK_SPIRALPIERCE || skill_id == KN_BRANDISHSPEAR ||
skill_id == CR_SHIELDBOOMERANG || skill_id == PA_SHIELDCHAIN ||
skill_id == RK_HUNDREDSPEAR || skill_id == LG_SHIELDPRESS ) ) {
ATK_ADDRATE(wd.damage, wd.damage2, sc->data[SC_GLOOMYDAY_SK]->val2);
#ifdef RENEWAL
ATK_ADDRATE(wd.weaponAtk, wd.weaponAtk2, sc->data[SC_GLOOMYDAY_SK]->val2);
#endif
if (sc->data[SC_WATK_ELEMENT] && skill_id != ASC_METEORASSAULT)
ATK_ADDRATE(wd.weaponAtk, wd.weaponAtk2, sc->data[SC_WATK_ELEMENT]->val2);
if (sc->data[SC_IMPOSITIO])
ATK_ADD(wd.equipAtk, wd.equipAtk2, sc->data[SC_IMPOSITIO]->val2);
if (sc->data[SC_VOLCANO])
ATK_ADD(wd.equipAtk, wd.equipAtk2, sc->data[SC_VOLCANO]->val2);
if (sc->data[SC_DRUMBATTLE]) {
if (tstatus->size == SZ_SMALL) {
ATK_ADD(wd.equipAtk, wd.equipAtk2, sc->data[SC_DRUMBATTLE]->val2);
} else if (tstatus->size == SZ_MEDIUM)
ATK_ADD(wd.equipAtk, wd.equipAtk2, 10 * sc->data[SC_DRUMBATTLE]->val1);
}
if (sc->data[SC_MADNESSCANCEL])
ATK_ADD(wd.equipAtk, wd.equipAtk2, 100);
if (sc->data[SC_GATLINGFEVER]) {
if (tstatus->size == SZ_SMALL) {
ATK_ADD(wd.equipAtk, wd.equipAtk2, 10 * sc->data[SC_GATLINGFEVER]->val1);
} else if (tstatus->size == SZ_MEDIUM) {
ATK_ADD(wd.equipAtk, wd.equipAtk2, 5 * sc->data[SC_GATLINGFEVER]->val1);
} else if (tstatus->size == SZ_BIG)
ATK_ADD(wd.equipAtk, wd.equipAtk2, sc->data[SC_GATLINGFEVER]->val1);
}
#else
if (sc->data[SC_TRUESIGHT])
ATK_ADDRATE(wd.damage, wd.damage2, 2 * sc->data[SC_TRUESIGHT]->val1);
#endif
if (sc->data[SC_SPIRIT]) {
if(skill_id == AS_SONICBLOW && sc->data[SC_SPIRIT]->val2 == SL_ASSASIN){
ATK_ADDRATE(wd.damage, wd.damage2, map_flag_gvg(src->m)?25:100); //+25% dmg on woe/+100% dmg on nonwoe
#ifdef RENEWAL
ATK_ADDRATE(wd.weaponAtk, wd.weaponAtk2, map_flag_gvg(src->m)?25:100); //+25% dmg on woe/+100% dmg on nonwoe
#endif
} else if (skill_id == CR_SHIELDBOOMERANG && (sc->data[SC_SPIRIT]->val2 == SL_CRUSADER)) {
if (skill_id == AS_SONICBLOW && sc->data[SC_SPIRIT]->val2 == SL_ASSASIN) {
ATK_ADDRATE(wd.damage, wd.damage2, map_flag_gvg(src->m) ? 25 : 100); //+25% dmg on woe/+100% dmg on nonwoe
RE_ALLATK_ADDRATE(wd, map_flag_gvg(src->m) ? 25 : 100); //+25% dmg on woe/+100% dmg on nonwoe
} else if (skill_id == CR_SHIELDBOOMERANG && sc->data[SC_SPIRIT]->val2 == SL_CRUSADER) {
ATK_ADDRATE(wd.damage, wd.damage2, 100);
#ifdef RENEWAL
ATK_ADDRATE(wd.weaponAtk, wd.weaponAtk2, 100);
#endif
RE_ALLATK_ADDRATE(wd, 100);
}
}
if( sc->data[SC_EDP] ) {
if (sc->data[SC_EDP]) {
switch(skill_id) {
case AS_SPLASHER:
// Pre-Renewal only: Soul Breaker and Meteor Assault ignores EDP
@@ -4234,6 +4249,10 @@ struct Damage battle_attack_sc_bonus(struct Damage wd, struct block_list *src, u
#endif
}
}
if (sc->data[SC_GLOOMYDAY_SK] && (inf3&INF3_SC_GLOOMYDAY_SK)) {
ATK_ADDRATE(wd.damage, wd.damage2, sc->data[SC_GLOOMYDAY_SK]->val2);
RE_ALLATK_ADDRATE(wd, sc->data[SC_GLOOMYDAY_SK]->val2);
}
if(sc->data[SC_ZENKAI] && sstatus->rhw.ele == sc->data[SC_ZENKAI]->val2) {
ATK_ADD(wd.damage, wd.damage2, 200);
@@ -4461,14 +4480,13 @@ struct Damage battle_calc_attack_post_defense(struct Damage wd, struct block_lis
struct status_change *sc = status_get_sc(src);
struct status_data *sstatus = status_get_status_data(src);
//Post skill/vit reduction damage increases
if( sc )
{ //SC skill damages
// Post skill/vit reduction damage increases
if( sc ) { // SC skill damages
if(sc->data[SC_AURABLADE]
#ifndef RENEWAL
&& skill_id != LK_SPIRALPIERCE && skill_id != ML_SPIRALPIERCE
#endif
){
) {
int lv = sc->data[SC_AURABLADE]->val1;
#ifdef RENEWAL
lv *= ((skill_id == LK_SPIRALPIERCE || skill_id == ML_SPIRALPIERCE)?wd.div_:1); // +100 per hit in lv 5
@@ -4481,14 +4499,11 @@ struct Damage battle_calc_attack_post_defense(struct Damage wd, struct block_lis
wd = battle_calc_attack_masteries(wd, src, target, skill_id, skill_lv);
//Refine bonus
if( sd && battle_skill_stacks_masteries_vvs(skill_id) && skill_id != MO_INVESTIGATE && skill_id != MO_EXTREMITYFIST )
{ // Counts refine bonus multiple times
if( sd && battle_skill_stacks_masteries_vvs(skill_id) && skill_id != MO_INVESTIGATE && skill_id != MO_EXTREMITYFIST ) { // Counts refine bonus multiple times
if( skill_id == MO_FINGEROFFENSIVE )
{
ATK_ADD2(wd.damage, wd.damage2, wd.div_*sstatus->rhw.atk2, wd.div_*sstatus->lhw.atk2);
} else {
else
ATK_ADD2(wd.damage, wd.damage2, sstatus->rhw.atk2, sstatus->lhw.atk2);
}
}
#endif
//Set to min of 1
@@ -4496,7 +4511,6 @@ struct Damage battle_calc_attack_post_defense(struct Damage wd, struct block_lis
if (is_attack_left_handed(src, skill_id) && wd.damage2 < 1) wd.damage2 = 1;
switch (skill_id) {
case AS_SONICBLOW:
if(sd && pc_checkskill(sd,AS_SONICACCEL)>0)
ATK_ADDRATE(wd.damage, wd.damage2, 10);
@@ -5029,7 +5043,7 @@ static struct Damage battle_calc_weapon_attack(struct block_list *src, struct bl
}
// final attack bonuses that aren't affected by cards
wd = battle_attack_sc_bonus(wd, src, skill_id);
wd = battle_attack_sc_bonus(wd, src, target, skill_id);
if (sd) { //monsters, homuns and pets have their damage computed directly
wd.damage = wd.statusAtk + wd.weaponAtk + wd.equipAtk + wd.masteryAtk;
@@ -5041,7 +5055,7 @@ static struct Damage battle_calc_weapon_attack(struct block_list *src, struct bl
}
#else
// final attack bonuses that aren't affected by cards
wd = battle_attack_sc_bonus(wd, src, skill_id);
wd = battle_attack_sc_bonus(wd, src, target, skill_id);
#endif
if (wd.damage + wd.damage2) { //Check if attack ignores DEF

View File

@@ -93,6 +93,7 @@ enum e_skill_inf3 {
INF3_DIS_MADO = 0x04000, // Skill that can't be used while in mado
INF3_USABLE_MANHOLE = 0x08000, // Skill that can be used to target while under SC__MANHOLE effect
INF3_HIT_HIDING = 0x10000, // Skill that affects hidden targets
INF3_SC_GLOOMYDAY_SK = 0x20000, // Skill that affects SC_GLOOMYDAY_SK
};
/// Walk intervals at which chase-skills are attempted to be triggered.

View File

@@ -359,7 +359,12 @@ void initChangeTables(void)
#else
SCB_DEF );
#endif
set_sc( BD_RINGNIBELUNGEN , SC_NIBELUNGEN , SI_RINGNIBELUNGEN , SCB_WATK );
set_sc( BD_RINGNIBELUNGEN , SC_NIBELUNGEN , SI_RINGNIBELUNGEN ,
#ifndef RENEWAL
SCB_WATK );
#else
SCB_NONE );
#endif
set_sc( BD_ROKISWEIL , SC_ROKISWEIL , SI_ROKISWEIL , SCB_NONE );
set_sc( BD_INTOABYSS , SC_INTOABYSS , SI_INTOABYSS , SCB_NONE );
set_sc( BD_SIEGFRIED , SC_SIEGFRIED , SI_SIEGFRIED , SCB_ALL );
@@ -384,7 +389,12 @@ void initChangeTables(void)
add_sc( NPC_INVISIBLE , SC_CLOAKING );
set_sc( LK_AURABLADE , SC_AURABLADE , SI_AURABLADE , SCB_NONE );
set_sc( LK_PARRYING , SC_PARRYING , SI_PARRYING , SCB_NONE );
set_sc( LK_CONCENTRATION , SC_CONCENTRATION , SI_CONCENTRATION , SCB_BATK|SCB_WATK|SCB_HIT|SCB_DEF|SCB_DEF2 );
set_sc( LK_CONCENTRATION , SC_CONCENTRATION , SI_CONCENTRATION ,
#ifndef RENEWAL
SCB_BATK|SCB_WATK|SCB_HIT|SCB_DEF|SCB_DEF2 );
#else
SCB_HIT|SCB_DEF );
#endif
set_sc( LK_TENSIONRELAX , SC_TENSIONRELAX , SI_TENSIONRELAX , SCB_REGEN );
set_sc( LK_BERSERK , SC_BERSERK , SI_BERSERK , SCB_DEF|SCB_DEF2|SCB_MDEF|SCB_MDEF2|SCB_FLEE|SCB_SPEED|SCB_ASPD|SCB_MAXHP|SCB_REGEN );
set_sc( HP_ASSUMPTIO , SC_ASSUMPTIO ,
@@ -3530,8 +3540,8 @@ int status_calc_pc_(struct map_session_data* sd, enum e_status_calc_opt opt)
if(sc->count) {
if(sc->data[SC_CONCENTRATE]) { // Update the card-bonus data
sc->data[SC_CONCENTRATE]->val3 = sd->param_bonus[1]; // Agi
sc->data[SC_CONCENTRATE]->val4 = sd->param_bonus[4]; // Dex
sc->data[SC_CONCENTRATE]->val3 = sd->param_bonus[1]; // Agi
sc->data[SC_CONCENTRATE]->val4 = sd->param_bonus[4]; // Dex
}
if(sc->data[SC_SIEGFRIED]) {
i = sc->data[SC_SIEGFRIED]->val2;
@@ -5169,8 +5179,10 @@ static unsigned short status_calc_batk(struct block_list *bl, struct status_chan
batk += batk * sc->data[SC_INCATKRATE]->val1/100;
if(sc->data[SC_PROVOKE])
batk += batk * sc->data[SC_PROVOKE]->val3/100;
#ifndef RENEWAL
if(sc->data[SC_CONCENTRATION])
batk += batk * sc->data[SC_CONCENTRATION]->val2/100;
#endif
if(sc->data[SC_SKE])
batk += batk * 3;
if(sc->data[SC_BLOODLUST])
@@ -5228,10 +5240,10 @@ static unsigned short status_calc_watk(struct block_list *bl, struct status_chan
watk += sc->data[SC_MERC_ATKUP]->val2;
if(sc->data[SC_WATER_BARRIER])
watk -= sc->data[SC_WATER_BARRIER]->val3;
#ifndef RENEWAL
if(sc->data[SC_NIBELUNGEN]) {
if (bl->type != BL_PC)
watk += sc->data[SC_NIBELUNGEN]->val2;
#ifndef RENEWAL
else {
TBL_PC *sd = (TBL_PC*)bl;
short index = sd->equip_index[sd->state.lr_flag?EQI_HAND_L:EQI_HAND_R];
@@ -5239,14 +5251,14 @@ static unsigned short status_calc_watk(struct block_list *bl, struct status_chan
if(index >= 0 && sd->inventory_data[index] && sd->inventory_data[index]->wlv == 4)
watk += sc->data[SC_NIBELUNGEN]->val2;
}
#endif
}
if(sc->data[SC_CONCENTRATION])
watk += watk * sc->data[SC_CONCENTRATION]->val2 / 100;
#endif
if(sc->data[SC_INCATKRATE])
watk += watk * sc->data[SC_INCATKRATE]->val1/100;
if(sc->data[SC_PROVOKE])
watk += watk * sc->data[SC_PROVOKE]->val3/100;
if(sc->data[SC_CONCENTRATION])
watk += watk * sc->data[SC_CONCENTRATION]->val2/100;
if(sc->data[SC_SKE])
watk += watk * 3;
if(sc->data[SC_FLEET])
@@ -5739,9 +5751,9 @@ static signed short status_calc_def2(struct block_list *bl, struct status_change
def2 += status_get_vit(bl) / 2 * sc->data[SC_ANGELUS]->val2/100;
#else
def2 += def2 * sc->data[SC_ANGELUS]->val2/100;
#endif
if(sc->data[SC_CONCENTRATION])
def2 -= def2 * sc->data[SC_CONCENTRATION]->val4/100;
#endif
if(sc->data[SC_POISON])
def2 -= def2 * 25/100;
if(sc->data[SC_DPOISON])
@@ -9023,9 +9035,7 @@ int status_change_start(struct block_list* src, struct block_list* bl,enum sc_ty
val2 = 5*val1; // def increase
break;
case SC_IMPOSITIO:
#ifndef RENEWAL
val2 = 5*val1; // Watk increase
#endif
break;
case SC_MELTDOWN:
val2 = 100*val1; // Chance to break weapon

View File

@@ -499,7 +499,7 @@ static int unit_walktoxy_timer(int tid, unsigned int tick, int id, intptr_t data
if( md && DIFF_TICK(tick,md->dmgtick) < 3000 ) // Not required not damaged recently
clif_move(ud);
} else if(ud->state.running) { // Keep trying to run.
if ( !(unit_run(bl, NULL, SC_RUN) || unit_run(bl, sd, SC_WUGDASH)) )
if (!(unit_run(bl, NULL, SC_RUN) || unit_run(bl, sd, SC_WUGDASH)) )
ud->state.running = 0;
} else if (!ud->stepaction && ud->target_to) {
// Update target trajectory.
@@ -792,7 +792,8 @@ int unit_walktobl(struct block_list *bl, struct block_list *tbl, int range, unsi
* Called by unit_run when an object is hit.
* @param sd Required only when using SC_WUGDASH
*/
void unit_run_hit(struct block_list *bl, struct status_change *sc, struct map_session_data *sd, enum sc_type type) {
void unit_run_hit(struct block_list *bl, struct status_change *sc, struct map_session_data *sd, enum sc_type type)
{
int lv = sc->data[type]->val1;
// If you can't run forward, you must be next to a wall, so bounce back. [Skotlex]
@@ -819,7 +820,8 @@ void unit_run_hit(struct block_list *bl, struct status_change *sc, struct map_se
* @param sd: Required only when using SC_WUGDASH
* @return true: Success (Finished running) false: Fail (Hit an object/Couldn't run)
*/
bool unit_run(struct block_list *bl, struct map_session_data *sd, enum sc_type type) {
bool unit_run(struct block_list *bl, struct map_session_data *sd, enum sc_type type)
{
struct status_change *sc;
short to_x, to_y, dir_x, dir_y;
int i;
@@ -857,7 +859,7 @@ bool unit_run(struct block_list *bl, struct map_session_data *sd, enum sc_type t
}
// Can't run forward.
if( (to_x == bl->x && to_y == bl->y ) || (to_x == (bl->x + 1) || to_y == (bl->y + 1)) || (to_x == (bl->x - 1) || to_y == (bl->y - 1))) {
if( (to_x == bl->x && to_y == bl->y) || (to_x == (bl->x + 1) || to_y == (bl->y + 1)) || (to_x == (bl->x - 1) || to_y == (bl->y - 1))) {
unit_run_hit(bl, sc, sd, type);
return false;
}
@@ -1402,7 +1404,6 @@ int unit_can_move(struct block_list *bl) {
*/
int unit_resume_running(int tid, unsigned int tick, int id, intptr_t data)
{
struct unit_data *ud = (struct unit_data *)data;
TBL_PC *sd = map_id2sd(id);