* 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:
@@ -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
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user