Bug Fixes
* Dragon Breath (Fire and Water) are no longer reduced by DEF or Flee. (bugreport:8378) * Crush Strike no longer ignores caster's % damage cards. * Phantom Thrust is now single enemy targetable. * Fixed Gates of Hell SP cost, range, and sphere cost. (bugreport:7898) * Cleaned up Tiger Cannon splash damage and remaining HP/SP consumption. (bugreport:8538) * Fixed Rising Dragon HP/SP regen to work with Spiritual Cadence. * Corrected Magic Decoy item requirement define not checking for PTS. * Poem of Netherworld now targets everyone except party members. (bugreport:7741) * Adjusted a couple skills that have infinite timers to not displays negative time to the client. (bugreport:8549) * Fixed Sorcerer's Spirit max HP formula. (bugreport:8315) * Fixed Banding not giving the Overawe effect. (bugreport:7641) * Fixed Weapon Crush not casting at all. (bugreport:8583) * Fixed Demonic Fire damage formulas from Fire Expansion. * Fixed Fire Expansion - Smoke Powder not giving ranged and melee damage reduction. (bugreport:7841) * Fixed Fire Expansion - Tear Gas not draining HP and not displaying the /cry emoticon. (bugreport:7841) * Fixed Issen (Killing Stroke) damage formula for pre-renewal. (bugreport:4071) * Adjusted Warg Strike to be a misc type attack and ignore target's Flee. (bugreport:7599) * Updated Throw Kunai damage formulas for renewal and pre-renewal. (bugreport:7119) * Severe Rainstorm is no longer castable on Land Protector. (bugreport:7097) * Fixed Tropic, Chilly Air, Wild Storm, and Upheaval options not casting their specific autocast skills. * Updated Fire Cloak, Water Drop, Wind Curtain, and Stone Shield to 100% property resistance and damage. * Updated Heater, Cooler, Blast, and Cursed Soil damage formulas. * Increased SP cost of Psychic Wave when Heater, Cooler, Blast, or Cursed Soil are active. * Updated Zephyr Flee increase bonus. * Fixed Elemental HP and ATK2 formulas. * Fixed Sienna Execrate not consuming 2 Red Gemstones. (bugreport:7494) * Fixed Shadow Chaser's Masquerade skills success rate formula. (bugreport:7436) * Fixed Exceed Break to restore walk speed when cast is cancelled. (bugreport:7681) * Vacuum Extreme no longer affects users who are in Hallucination Walk. * Fixed Hallucination Walk missing magic avoidance. * Adjusted Lif's Mental Change skill duration to 1 minute, 3 minutes, and 5 minutes respectively per level. * Hovering will now specifically ignore Skid Trap, Land Mine, Ankle Snare, Flasher, Shockwave Trap, Sandman, Freezing Trap, Blast Mine, Claymore Trap , Quagmire, Gravitation Field, Volcano, Deluge, Whirlwind, Watery Evasion, Electric Walk, Fire Walk, Vacuum Extreme, Windmill, and Moon Slasher. (bugreport:7179) * Raging Trifecta will now display an animation on usage. (bugreport:1307) * Cleaned up Auto Shadow Spell check for the specific skills it can cast. (bugreport:8582)
This commit is contained in:
parent
899f3c117c
commit
4019fb4531
@ -1737,7 +1737,8 @@ SC_QUEST_BUFF1 589
|
|||||||
SC_QUEST_BUFF2 590
|
SC_QUEST_BUFF2 590
|
||||||
SC_QUEST_BUFF3 591
|
SC_QUEST_BUFF3 591
|
||||||
SC_ALL_RIDING 592
|
SC_ALL_RIDING 592
|
||||||
SC_EXTREMITYFIST2 593
|
SC_TEARGAS_SOB 593
|
||||||
|
SC_EXTREMITYFIST2 594
|
||||||
|
|
||||||
//Status Icon
|
//Status Icon
|
||||||
SI_BLANK -1
|
SI_BLANK -1
|
||||||
|
@ -1464,7 +1464,7 @@
|
|||||||
//-- WM_DOMINION_IMPULSE
|
//-- WM_DOMINION_IMPULSE
|
||||||
2417,0,1000,0,0,0,0
|
2417,0,1000,0,0,0,0
|
||||||
//-- WM_SEVERE_RAINSTORM
|
//-- WM_SEVERE_RAINSTORM
|
||||||
2418,1500:2000:2500:3000:3500,1000,0,900:1500:2100:2700:3000,0,5000:5500:6000:6500:7000
|
2418,1500:2000:2500:3000:3500,1000,0,3300,0,5000:5500:6000:6500:7000
|
||||||
//-- WM_POEMOFNETHERWORLD
|
//-- WM_POEMOFNETHERWORLD
|
||||||
2419,3000,0,0,9000:11000:13000:15000:17000,8000:10000:12000:14000:16000,0
|
2419,3000,0,0,9000:11000:13000:15000:17000,8000:10000:12000:14000:16000,0
|
||||||
//-- WM_VOICEOFSIREN
|
//-- WM_VOICEOFSIREN
|
||||||
@ -1572,7 +1572,7 @@
|
|||||||
//-- GN_CRAZYWEED_ATK
|
//-- GN_CRAZYWEED_ATK
|
||||||
2484,0,0,0,100,0,0
|
2484,0,0,0,100,0,0
|
||||||
//-- GN_DEMONIC_FIRE
|
//-- GN_DEMONIC_FIRE
|
||||||
2485,3000:3500:4000:4500:5000,500,0,10000:12000:14000:16000:18000,8000:16000:24000:32000:40000,5000
|
2485,3000:3500:4000:4500:5000,500,0,10000:0:16000:25000:0,8000:16000:24000:32000:40000,5000
|
||||||
//-- GN_FIRE_EXPANSION
|
//-- GN_FIRE_EXPANSION
|
||||||
2486,2000,500,0,0,0,0
|
2486,2000,500,0,0,0,0
|
||||||
//-- GN_FIRE_EXPANSION_SMOKE_POWDER
|
//-- GN_FIRE_EXPANSION_SMOKE_POWDER
|
||||||
@ -1723,7 +1723,7 @@
|
|||||||
//-- HLIF_AVOID
|
//-- HLIF_AVOID
|
||||||
8002,0,35000,0,40000:35000:30000:25000:20000,0,0
|
8002,0,35000,0,40000:35000:30000:25000:20000,0,0
|
||||||
//-- HLIF_CHANGE
|
//-- HLIF_CHANGE
|
||||||
8004,0,600000:900000:1200000,0,60000:120000:180000,0,0
|
8004,0,600000:900000:1200000,0,60000:180000:300000,0,0
|
||||||
//-- HAMI_CASTLE
|
//-- HAMI_CASTLE
|
||||||
8005,0,0,0,0,60000:70000:80000:90000:129000,0
|
8005,0,0,0,0,60000:70000:80000:90000:129000,0
|
||||||
//-- HAMI_DEFENCE
|
//-- HAMI_DEFENCE
|
||||||
|
@ -59,7 +59,7 @@
|
|||||||
// 0x0200- spell range affected by NJ_SHADOWJUMP
|
// 0x0200- spell range affected by NJ_SHADOWJUMP
|
||||||
// 0x0400- spell range affected by WL_RADIUS
|
// 0x0400- spell range affected by WL_RADIUS
|
||||||
// 0x0800- spell range affected by RA_RESEARCHTRAP
|
// 0x0800- spell range affected by RA_RESEARCHTRAP
|
||||||
// 0x1000- spell that can't be copied
|
// 0x1000- Spell that does not affect user that has NC_HOVERING active
|
||||||
// 0x2000- spell that can be using while riding warg
|
// 0x2000- spell that can be using while riding warg
|
||||||
// 0x4000- spell that can't be used while in mado
|
// 0x4000- spell that can't be used while in mado
|
||||||
// 17 Name
|
// 17 Name
|
||||||
@ -182,7 +182,7 @@
|
|||||||
89,9,6,2,1,0,0,10,1,yes,0,0x2000,0,magic,2,0x20, WZ_STORMGUST,Storm Gust
|
89,9,6,2,1,0,0,10,1,yes,0,0x2000,0,magic,2,0x20, WZ_STORMGUST,Storm Gust
|
||||||
90,9,8,1,2,0,0,5,1:2:3:4:5,yes,0,0x2000,0,magic,0,0x20, WZ_EARTHSPIKE,Earth Spike
|
90,9,8,1,2,0,0,5,1:2:3:4:5,yes,0,0x2000,0,magic,0,0x20, WZ_EARTHSPIKE,Earth Spike
|
||||||
91,9,8,2,2,0,0,5,1:2:3:4:5,yes,0,0x2000,0,magic,0,0x20, WZ_HEAVENDRIVE,Heaven's Drive
|
91,9,8,2,2,0,0,5,1:2:3:4:5,yes,0,0x2000,0,magic,0,0x20, WZ_HEAVENDRIVE,Heaven's Drive
|
||||||
92,9,6,2,2,0x1,0,5,1,yes,0,0,3,magic,0,0x20, WZ_QUAGMIRE,Quagmire
|
92,9,6,2,2,0x1,0,5,1,yes,0,0,3,magic,0,0x1020, WZ_QUAGMIRE,Quagmire
|
||||||
93,9,6,1,0,0x1,0,1,1,yes,0,0,0,magic,0,0x0, WZ_ESTIMATION,Sense
|
93,9,6,1,0,0x1,0,1,1,yes,0,0,0,magic,0,0x0, WZ_ESTIMATION,Sense
|
||||||
|
|
||||||
//****
|
//****
|
||||||
@ -211,15 +211,15 @@
|
|||||||
|
|
||||||
//****
|
//****
|
||||||
// Hunter
|
// Hunter
|
||||||
115,3,6,2,0,0x1,0,5,1,no,0,0x80,0,misc,6:7:8:9:10,0x2000, HT_SKIDTRAP,Skid Trap
|
115,3,6,2,0,0x1,0,5,1,no,0,0x80,0,misc,6:7:8:9:10,0x3000, HT_SKIDTRAP,Skid Trap
|
||||||
116,3,6,2,2,0x42,1,5,1,no,0,0x80,0,misc,0,0x2800, HT_LANDMINE,Land Mine
|
116,3,6,2,2,0x42,1,5,1,no,0,0x80,0,misc,0,0x3800, HT_LANDMINE,Land Mine
|
||||||
117,3,6,2,0,0x1,0,5,1,no,0,0x80,0,misc,0,0x2000, HT_ANKLESNARE,Ankle Snare
|
117,3,6,2,0,0x1,0,5,1,no,0,0x80,0,misc,0,0x3000, HT_ANKLESNARE,Ankle Snare
|
||||||
118,3,6,2,0,0x2,1,5,1,no,0,0x80,0,misc,0,0x2000, HT_SHOCKWAVE,Shockwave Trap
|
118,3,6,2,0,0x2,1,5,1,no,0,0x80,0,misc,0,0x3000, HT_SHOCKWAVE,Shockwave Trap
|
||||||
119,3,6,2,0,0x3,2,5,1,no,0,0x80,0,misc,0,0x2000, HT_SANDMAN,Sandman
|
119,3,6,2,0,0x3,2,5,1,no,0,0x80,0,misc,0,0x3000, HT_SANDMAN,Sandman
|
||||||
120,3,6,2,0,0x3,1,5,1,no,0,0x80,0,misc,0,0x2000, HT_FLASHER,Flasher
|
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,0x2800, HT_FREEZINGTRAP,Freezing Trap
|
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,0x42,1,5,1,no,0,0x80,0,misc,0,0x2800, HT_BLASTMINE,Blast Mine
|
122,3,6,2,4,0x42,1,5,1,no,0,0x80,0,misc,0,0x3800, HT_BLASTMINE,Blast Mine
|
||||||
123,3,6,2,3,0x42,2,5,1,no,0,0x80,0,misc,0,0x2800, HT_CLAYMORETRAP,Claymore Trap
|
123,3,6,2,3,0x42,2,5,1,no,0,0x80,0,misc,0,0x3800, HT_CLAYMORETRAP,Claymore Trap
|
||||||
124,2,6,32,0,0x1,0,1,1,no,0,0,0,misc,0,0x0, HT_REMOVETRAP,Remove Trap
|
124,2,6,32,0,0x1,0,1,1,no,0,0,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
|
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
|
126,0,0,0,0,0,0,10,0,no,0,0,0,weapon,0,0x0, HT_BEASTBANE,Beast Bane
|
||||||
@ -361,7 +361,7 @@
|
|||||||
247,9,6,4,0,0x1,1,5,0,no,0,0,0,none,0,0x0, AM_RESURRECTHOMUN,Homunculus Resurrection
|
247,9,6,4,0,0x1,1,5,0,no,0,0,0,none,0,0x0, AM_RESURRECTHOMUN,Homunculus Resurrection
|
||||||
|
|
||||||
//****
|
//****
|
||||||
// Creator
|
// Crusader
|
||||||
248,0,0,0,0,0,0,10,0,no,0,0,0,none,0,0x0, CR_TRUST,Faith
|
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
|
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
|
250,3,6,1,0,0,0,5,1,no,0,0,0,weapon,5:6:7:8:9,0x0, CR_SHIELDCHARGE,Smite
|
||||||
@ -405,9 +405,9 @@
|
|||||||
282,9,6,16,4,0x1,0,5,1,yes,0,0xC00,0,magic,0,0x20, SA_LIGHTNINGLOADER,Endow Tornado
|
282,9,6,16,4,0x1,0,5,1,yes,0,0xC00,0,magic,0,0x20, SA_LIGHTNINGLOADER,Endow Tornado
|
||||||
283,9,6,16,2,0x1,0,5,1,yes,0,0xC00,0,magic,0,0x20, SA_SEISMICWEAPON,Endow Quake
|
283,9,6,16,2,0x1,0,5,1,yes,0,0xC00,0,magic,0,0x20, SA_SEISMICWEAPON,Endow Quake
|
||||||
284,0,0,0,0,0,0,5,0,no,0,0,0,weapon,0,0x0, SA_DRAGONOLOGY,Dragonology
|
284,0,0,0,0,0,0,5,0,no,0,0,0,weapon,0,0x0, SA_DRAGONOLOGY,Dragonology
|
||||||
285,2,6,2,3,0x1,0,5,1,yes,0,0,0,magic,0,0x20, SA_VOLCANO,Volcano
|
285,2,6,2,3,0x1,0,5,1,yes,0,0,0,magic,0,0x1020, SA_VOLCANO,Volcano
|
||||||
286,2,6,2,1,0x1,0,5,1,yes,0,0,0,magic,0,0x20, SA_DELUGE,Deluge
|
286,2,6,2,1,0x1,0,5,1,yes,0,0,0,magic,0,0x1020, SA_DELUGE,Deluge
|
||||||
287,2,6,2,4,0x1,0,5,1,yes,0,0,0,magic,0,0x20, SA_VIOLENTGALE,Whirlwind
|
287,2,6,2,4,0x1,0,5,1,yes,0,0,0,magic,0,0x1020, SA_VIOLENTGALE,Whirlwind
|
||||||
288,2,6,2,0,0x1,0,5,1,yes,0,0,0,magic,0,0x20, SA_LANDPROTECTOR,Magnetic Earth
|
288,2,6,2,0,0x1,0,5,1,yes,0,0,0,magic,0,0x20, SA_LANDPROTECTOR,Magnetic Earth
|
||||||
289,9,6,1,0,0x1,0:0:0:0:0:-1,5,1,yes,0,0xE00,0,magic,0,0x20, SA_DISPELL,Dispell
|
289,9,6,1,0,0x1,0:0:0:0:0:-1,5,1,yes,0,0xE00,0,magic,0,0x20, SA_DISPELL,Dispell
|
||||||
290,0,6,4,0,0x1,0,10,1,yes,0,0,0,magic,0,0x0, SA_ABRACADABRA,Hocus-pocus
|
290,0,6,4,0,0x1,0,10,1,yes,0,0,0,magic,0,0x0, SA_ABRACADABRA,Hocus-pocus
|
||||||
@ -697,7 +697,7 @@
|
|||||||
481,0,0,0,0,0,0,5,0,no,0,0,0,none,0,0x0, HP_MANARECHARGE,Mana Recharge
|
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
|
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
|
483,16,6,2,0,0x1,1:2:3:4:5,1,1,no,0,0,0,none,0,0x20, HW_GANBANTEIN,Ganbantein
|
||||||
484,9,6,2,2,0x91,0,5,1,yes,0,0x18000,0,misc,0,0x30, HW_GRAVITATION,Gravitation Field
|
484,9,6,2,2,0x91,0,5,1,yes,0,0x18000,0,misc,0,0x1030, HW_GRAVITATION,Gravitation Field
|
||||||
485,-2,6,1,-1,0x8,0,10,1,no,0,0,0,weapon,0,0x4000, WS_CARTTERMINATION,Cart Termination
|
485,-2,6,1,-1,0x8,0,10,1,no,0,0,0,weapon,0,0x4000, WS_CARTTERMINATION,Cart Termination
|
||||||
486,0,6,4,0,0x1,0,5,1,no,0,0,0,weapon,0,0x4000, WS_OVERTHRUSTMAX,Maximum Power Thrust
|
486,0,6,4,0,0x1,0,5,1,no,0,0,0,weapon,0,0x4000, WS_OVERTHRUSTMAX,Maximum Power Thrust
|
||||||
487,0,6,4,0,0x1,0,5,1,no,0,0,0,none,0,0x8, CG_LONGINGFREEDOM,Longing for Freedom
|
487,0,6,4,0,0x1,0,5,1,no,0,0,0,none,0,0x8, CG_LONGINGFREEDOM,Longing for Freedom
|
||||||
@ -743,7 +743,7 @@
|
|||||||
// Ninja
|
// Ninja
|
||||||
522,0,0,0,0,0,0,10,1,no,0,0,0,weapon,0,0x0, NJ_TOBIDOUGU,Shuriken Training
|
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
|
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
|
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,0,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
|
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
|
527,0,6,4,-1,0,0,5,1,no,0,0,0,weapon,3,0x0, NJ_TATAMIGAESHI,Improvised Defense
|
||||||
@ -757,7 +757,7 @@
|
|||||||
535,0,8,4,3,0,0,10,1,yes,0,0,0,magic,1,0x0, NJ_KAENSIN,Crimson Fire Formation
|
535,0,8,4,3,0,0,10,1,yes,0,0,0,magic,1,0x0, NJ_KAENSIN,Crimson Fire Formation
|
||||||
536,9,8,1,3,0x2,2,5,3,yes,0,0,0,magic,0,0x0, NJ_BAKUENRYU,Raging Fire Dragon
|
536,9,8,1,3,0x2,2,5,3,yes,0,0,0,magic,0,0x0, NJ_BAKUENRYU,Raging Fire Dragon
|
||||||
537,9,8,1,1,0,0,10,3:4:5:6:7:8:9:10:11:12,yes,0,0,0,magic,0,0x0, NJ_HYOUSENSOU,Spear of Ice
|
537,9,8,1,1,0,0,10,3:4:5:6:7:8:9:10:11:12,yes,0,0,0,magic,0,0x0, NJ_HYOUSENSOU,Spear of Ice
|
||||||
538,9,6,2,1,0x1,0,10,1,yes,0,0,0,magic,0,0x0, NJ_SUITON,Hidden Water
|
538,9,6,2,1,0x1,0,10,1,yes,0,0,0,magic,0,0x1000, NJ_SUITON,Hidden Water
|
||||||
539,0,6,4,1,0x2,3,5,1,yes,0,0,0,magic,0,0x0, NJ_HYOUSYOURAKU,Ice Meteor
|
539,0,6,4,1,0x2,3,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
|
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,0x2,2:2:3:3:4,5,1,yes,0,0,0,magic,0,0x0, NJ_RAIGEKISAI,Lightning Strike of Destruction
|
541,9,6,4,4,0x2,2:2:3:3:4,5,1,yes,0,0,0,magic,0,0x0, NJ_RAIGEKISAI,Lightning Strike of Destruction
|
||||||
@ -886,11 +886,11 @@
|
|||||||
2005,1,6,2,4,0x2,2,5,1,no,0,0,0,weapon,3,0x0, RK_WINDCUTTER,Wind Cutter
|
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
|
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,weapon,0,0x0, RK_DRAGONTRAINING,Dragon Training
|
2007,0,0,0,0,0,0,5,0,no,0,0,0,weapon,0,0x0, RK_DRAGONTRAINING,Dragon Training
|
||||||
2008,9,6,2,3,0xC2,1:1:1:2:2:2:3:3:4:4,10,1,no,0,0,0,misc,0,0x0, RK_DRAGONBREATH,Dragon Breath
|
2008,9,6,2,3,0x2,1:1:1:2:2:2:3:3:4:4,10,1,no,0,0,0,misc,0,0x0, RK_DRAGONBREATH,Dragon Breath
|
||||||
2009,0,6,4,0,0x3,3:4:5:6:7,5,1,no,0,0,0,none,0,0x0, RK_DRAGONHOWLING,Dragon Howling
|
2009,0,6,4,0,0x3,3:4:5:6:7,5,1,no,0,0,0,none,0,0x0, RK_DRAGONHOWLING,Dragon Howling
|
||||||
2010,0,0,0,0,0,0,10,0,no,0,0,0,none,0,0x0, RK_RUNEMASTERY,Rune Mastery
|
2010,0,0,0,0,0,0,10,0,no,0,0,0,none,0,0x0, RK_RUNEMASTERY,Rune Mastery
|
||||||
2011,0,6,4,0,0x1,0,1,1,no,0,0,0,none,0,0x0, RK_MILLENNIUMSHIELD,Millenium Shield
|
2011,0,6,4,0,0x1,0,1,1,no,0,0,0,none,0,0x0, RK_MILLENNIUMSHIELD,Millenium Shield
|
||||||
2012,1,6,4,-1,0,0x8,1,1,yes,0,0,0,weapon,0,0x0, RK_CRUSHSTRIKE,Crush Strike
|
2012,1,6,4,-1,0,0,1,1,yes,0,0,0,weapon,0,0x0, RK_CRUSHSTRIKE,Crush Strike
|
||||||
2013,0,6,4,0,0x1,0,1,1,yes,0,0,0,none,0,0x0, RK_REFRESH,Refresh
|
2013,0,6,4,0,0x1,0,1,1,yes,0,0,0,none,0,0x0, RK_REFRESH,Refresh
|
||||||
2014,0,6,4,0,0x1,0,1,1,yes,0,0,0,none,0,0x0, RK_GIANTGROWTH,Giant Growth
|
2014,0,6,4,0,0x1,0,1,1,yes,0,0,0,none,0,0x0, RK_GIANTGROWTH,Giant Growth
|
||||||
2015,0,6,4,0,0x1,0,1,1,yes,0,0,0,none,0,0x0, RK_STONEHARDSKIN,Stone Hard Skin
|
2015,0,6,4,0,0x1,0,1,1,yes,0,0,0,none,0,0x0, RK_STONEHARDSKIN,Stone Hard Skin
|
||||||
@ -898,7 +898,7 @@
|
|||||||
2017,0,6,4,-1,0x2,3,1,1,no,0,0,0,weapon,7,0x0, RK_STORMBLAST,Storm Blast
|
2017,0,6,4,-1,0x2,3,1,1,no,0,0,0,weapon,7,0x0, RK_STORMBLAST,Storm Blast
|
||||||
2018,0,6,4,0,0x3,-1,1,1,yes,0,0,0,none,0,0x0, RK_FIGHTINGSPIRIT,Fighting Spirit //CHECK Is this splash needed?
|
2018,0,6,4,0,0x3,-1,1,1,yes,0,0,0,none,0,0x0, RK_FIGHTINGSPIRIT,Fighting Spirit //CHECK Is this splash needed?
|
||||||
2019,9,6,4,6,0x1,0,1,1,yes,0,0,0,none,0,0x0, RK_ABUNDANCE,Abundance
|
2019,9,6,4,6,0x1,0,1,1,yes,0,0,0,none,0,0x0, RK_ABUNDANCE,Abundance
|
||||||
2020,5:6:7:8:9,6,16,-1,0,0,5,1,no,0,0,0,weapon,0,0x0, RK_PHANTOMTHRUST,Phantom Thrust
|
2020,5:6:7:8:9,6,1,-1,0,0,5,1,no,0,0,0,weapon,0,0x0, RK_PHANTOMTHRUST,Phantom Thrust
|
||||||
|
|
||||||
//****
|
//****
|
||||||
// WL Warlock
|
// WL Warlock
|
||||||
@ -947,7 +947,7 @@
|
|||||||
2027,0,6,4,0,0x1,0,5,1,no,0,0,0,none,0,0x0, GC_POISONINGWEAPON,Poisoning Weapon
|
2027,0,6,4,0,0x1,0,5,1,no,0,0,0,none,0,0x0, GC_POISONINGWEAPON,Poisoning Weapon
|
||||||
2028,0,6,4,0,0x1,0,5,1,no,0,0,0,none,0,0x0, GC_WEAPONBLOCKING,Weapon Blocking
|
2028,0,6,4,0,0x1,0,5,1,no,0,0,0,none,0,0x0, GC_WEAPONBLOCKING,Weapon Blocking
|
||||||
2029,0,6,4,-1,0x22,1,5,1,no,0,0,0,weapon,3,0x0, GC_COUNTERSLASH,Counter Slash
|
2029,0,6,4,-1,0x22,1,5,1,no,0,0,0,weapon,3,0x0, GC_COUNTERSLASH,Counter Slash
|
||||||
2030,-2,6,4,-1,0x1,0,5,1,no,0,0x200,0,weapon,0,0x0, GC_WEAPONCRUSH,Weapon Crush
|
2030,-2,6,4,-1,0,0,5,1,no,0,0x200,0,weapon,0,0x0, GC_WEAPONCRUSH,Weapon Crush
|
||||||
2031,1,6,1,-1,0,0,5,1,no,0,0,0,weapon,0,0x0, GC_VENOMPRESSURE,Venom Pressure
|
2031,1,6,1,-1,0,0,5,1,no,0,0,0,weapon,0,0x0, GC_VENOMPRESSURE,Venom Pressure
|
||||||
2032,5,6,2,0,0x1,0,5,1,yes,0,0,1,none,0,0x0, GC_POISONSMOKE,Poison Smoke
|
2032,5,6,2,0,0x1,0,5,1,yes,0,0,1,none,0,0x0, GC_POISONSMOKE,Poison Smoke
|
||||||
2033,0,6,4,0,0x1,0,5,1,no,0,0,0,weapon,0,0x40, GC_CLOAKINGEXCEED,Cloaking Exceed
|
2033,0,6,4,0,0x1,0,5,1,no,0,0,0,weapon,0,0x40, GC_CLOAKINGEXCEED,Cloaking Exceed
|
||||||
@ -993,7 +993,7 @@
|
|||||||
2240,0,6,4,0,0,0,1,1,no,0,0,0,none,0,0x0, RA_WUGMASTERY,Warg Mastery
|
2240,0,6,4,0,0,0,1,1,no,0,0,0,none,0,0x0, RA_WUGMASTERY,Warg Mastery
|
||||||
2241,0,6,4,0,0,0,3,1,no,0,0,0,none,0,0x2000, RA_WUGRIDER,Warg Rider
|
2241,0,6,4,0,0,0,3,1,no,0,0,0,none,0,0x2000, RA_WUGRIDER,Warg Rider
|
||||||
2242,0,6,4,-1,0x2,1,1,0,no,0,0,0,weapon,0,0x2000, RA_WUGDASH,Warg Dash
|
2242,0,6,4,-1,0x2,1,1,0,no,0,0,0,weapon,0,0x2000, RA_WUGDASH,Warg Dash
|
||||||
2243,9,6,1,-1,0,0,5,1,no,0,0,0,weapon,0,0x2000, RA_WUGSTRIKE,Warg Strike
|
2243,9,6,1,-1,0x40,0,5,1,no,0,0,0,weapon,0,0x2000, RA_WUGSTRIKE,Warg Strike
|
||||||
2244,9,6,1,-1,0,0,5,1,no,0,0,0,weapon,0,0x80, RA_WUGBITE,Warg Bite
|
2244,9,6,1,-1,0,0,5,1,no,0,0,0,weapon,0,0x80, RA_WUGBITE,Warg Bite
|
||||||
2245,0,0,0,0,0,0,10,0,no,0,0,0,none,0,0x0, RA_TOOTHOFWUG,Tooth of Warg
|
2245,0,0,0,0,0,0,10,0,no,0,0,0,none,0,0x0, RA_TOOTHOFWUG,Tooth of Warg
|
||||||
2246,0,6,4,0,0x2,3:4:5:6:7,5,1,no,0,0,0,weapon,0,0x0, RA_SENSITIVEKEEN,Sensitive Keen
|
2246,0,6,4,0,0x2,3:4:5:6:7,5,1,no,0,0,0,weapon,0,0x0, RA_SENSITIVEKEEN,Sensitive Keen
|
||||||
@ -1077,7 +1077,7 @@
|
|||||||
2317,1,6,2,-1,0x2,5,5,1,yes,0,0,0,none,3:4:5:6:7,0x0, LG_OVERBRAND,Over Brand
|
2317,1,6,2,-1,0x2,5,5,1,yes,0,0,0,none,3:4:5:6:7,0x0, LG_OVERBRAND,Over Brand
|
||||||
2318,0,6,4,0,0x1,0,5,1,yes,0,0,0,none,0,0x0, LG_PRESTIGE,Prestige
|
2318,0,6,4,0,0x1,0,5,1,yes,0,0,0,none,0,0x0, LG_PRESTIGE,Prestige
|
||||||
2319,0,6,4,0,0x3,3,5,1,no,0,0,0,weapon,0,0x0, LG_BANDING,Banding //CHECK Splash isnt needed right? Banding has its own UNIT ID.
|
2319,0,6,4,0,0x3,3,5,1,no,0,0,0,weapon,0,0x0, LG_BANDING,Banding //CHECK Splash isnt needed right? Banding has its own UNIT ID.
|
||||||
2320,0,6,4,-1,0x2,3,5,1,yes,0,0,0,weapon,0,0x0, LG_MOONSLASHER,Moon Slasher
|
2320,0,6,4,-1,0x2,3,5,1,yes,0,0,0,weapon,0,0x1000, LG_MOONSLASHER,Moon Slasher
|
||||||
2321,1,8,2,6,0x2,5,5,-7,yes,0,0,0,weapon,0,0x0, LG_RAYOFGENESIS,Ray of Genesis
|
2321,1,8,2,6,0x2,5,5,-7,yes,0,0,0,weapon,0,0x0, LG_RAYOFGENESIS,Ray of Genesis
|
||||||
2322,0,6,16,0,0x3,1,5,1,yes,0,0,0,none,0,0x0, LG_PIETY,Piety
|
2322,0,6,16,0,0x3,1,5,1,yes,0,0,0,none,0,0x0, LG_PIETY,Piety
|
||||||
2323,0,8,4,2,0x2,1:1:2:2:3,5,-5,yes,0,0,0,weapon,0,0x0, LG_EARTHDRIVE,Earth Drive
|
2323,0,8,4,2,0x2,1:1:2:2:3,5,-5,yes,0,0,0,weapon,0,0x0, LG_EARTHDRIVE,Earth Drive
|
||||||
@ -1090,14 +1090,14 @@
|
|||||||
2327,0,8,4,-1,0x2,2,5,-3,no,0,0,0,weapon,3,0x0, SR_SKYNETBLOW,Sky Net Blow
|
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
|
2328,0,6,4,-1,0x2,1:2:3:4:5,5,1,no,0,0,0,weapon,0,0x0, SR_EARTHSHAKER,Earth Shaker
|
||||||
2329,-2,8,4,-1,0,0,5,-2,no,0,0x200,0,weapon,0,0x0, SR_FALLENEMPIRE,Fallen Empire
|
2329,-2,8,4,-1,0,0,5,-2,no,0,0x200,0,weapon,0,0x0, SR_FALLENEMPIRE,Fallen Empire
|
||||||
2330,-2,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 //CHECK Need to fix to be enemy targeted and also combo after Fallen Empire.
|
2330,-2,6,1,-1,0x2,1:1:1:1:1:2:2:2:2:2,10,1,yes,0,0,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
|
2331,1:2:3:3:4:4:5:5:6:7,6,1,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,0,0,weapon,0,0x0, SR_RAMPAGEBLASTER,Rampage Blaster
|
2332,0,6,4,-1,0x2,3,5,1,no,0,0,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 //CHECK Check the autospell ID.
|
2333,0,6,4,0,0x1,0,5,1,no,0,0,0,none,0,0x0, SR_CRESCENTELBOW,Crescent Elbow //CHECK Check the autospell ID.
|
||||||
2334,0,6,4,0,0x3,1:1:2:2:3,5,1,no,0,0,0,none,0,0x0, SR_CURSEDCIRCLE,Cursed Circle
|
2334,0,6,4,0,0x3,1:1:2:2:3,5,1,no,0,0,0,none,0,0x0, SR_CURSEDCIRCLE,Cursed Circle
|
||||||
2335,0,6,4,0,0x1,0,5,1,no,0,0,0,none,0,0x0, SR_LIGHTNINGWALK,Lightning Walk
|
2335,0,6,4,0,0x1,0,5,1,no,0,0,0,none,0,0x0, SR_LIGHTNINGWALK,Lightning Walk
|
||||||
2336,7:8:9:10:11,6,1,-1,0,0,5,1,no,0,0,0,weapon,2:3:4:5:6,0x0, SR_KNUCKLEARROW,Knuckle Arrow
|
2336,7:8:9:10:11,6,1,-1,0,0,5,1,no,0,0,0,weapon,2:3:4:5:6,0x0, SR_KNUCKLEARROW,Knuckle Arrow
|
||||||
2337,0,6,4,-1,0x2,2,1,1,yes,0,0,0,weapon,0,0x0, SR_WINDMILL,Windmill
|
2337,0,6,4,-1,0x2,2,1,1,yes,0,0,0,weapon,0,0x1000, SR_WINDMILL,Windmill
|
||||||
2338,0,6,4,0,0x1,0,10,1,no,0,0,0,none,0,0x0, SR_RAISINGDRAGON,Raising Dragon
|
2338,0,6,4,0,0x1,0,10,1,no,0,0,0,none,0,0x0, SR_RAISINGDRAGON,Raising Dragon
|
||||||
2339,0,0,0,0,0,0,5,1,no,0,0,0,none,0,0x0, SR_GENTLETOUCH,Gentle Touch
|
2339,0,0,0,0,0,0,5,1,no,0,0,0,none,0,0x0, SR_GENTLETOUCH,Gentle Touch
|
||||||
2340,0,6,4,0,0x3,2,1,1,no,0,0,0,none,0,0x0, SR_ASSIMILATEPOWER,Assimilate Power
|
2340,0,6,4,0,0x3,2,1,1,no,0,0,0,none,0,0x0, SR_ASSIMILATEPOWER,Assimilate Power
|
||||||
@ -1154,8 +1154,8 @@
|
|||||||
|
|
||||||
//****
|
//****
|
||||||
// SO Sorcerer (statis blocking need to be confirmed)
|
// SO Sorcerer (statis blocking need to be confirmed)
|
||||||
2443,0,6,4,3,0,0,5,1,yes,0,0,8:10:12:14:16,magic,0,0x20, SO_FIREWALK,Fire Walk //CHECK Video and data shows each cell only hits once.
|
2443,0,6,4,3,0,0,5,1,yes,0,0,8:10:12:14:16,magic,0,0x1020, SO_FIREWALK,Fire Walk //CHECK Video and data shows each cell only hits once.
|
||||||
2444,0,6,4,4,0,0,5,1,yes,0,0,8:10:12:14:16,magic,0,0x20, SO_ELECTRICWALK,Electric Walk
|
2444,0,6,4,4,0,0,5,1,yes,0,0,8:10:12:14:16,magic,0,0x1020, SO_ELECTRICWALK,Electric Walk
|
||||||
2445,0,6,4,0,0x1,0,5,1,no,0,0,0,none,0,0x20, SO_SPELLFIST,Spell Fist
|
2445,0,6,4,0,0x1,0,5,1,no,0,0,0,none,0,0x20, SO_SPELLFIST,Spell Fist
|
||||||
2446,9,6,2,2,0,0,5,-3,yes,0,0,0,magic,0,0x20, SO_EARTHGRAVE,Earth Grave
|
2446,9,6,2,2,0,0,5,-3,yes,0,0,0,magic,0,0x20, SO_EARTHGRAVE,Earth Grave
|
||||||
2447,9,6,2,1,0,0,5,-5,yes,0,0,0,magic,0,0x20, SO_DIAMONDDUST,Diamond Dust
|
2447,9,6,2,1,0,0,5,-5,yes,0,0,0,magic,0,0x20, SO_DIAMONDDUST,Diamond Dust
|
||||||
@ -1164,7 +1164,7 @@
|
|||||||
2450,9,6,2,5,0,0,5,1,yes,0,0,0,magic,0,0x20, SO_CLOUD_KILL,Cloud Kill
|
2450,9,6,2,5,0,0,5,1,yes,0,0,0,magic,0,0x20, SO_CLOUD_KILL,Cloud Kill
|
||||||
2451,9,6,16,0,0x1,0,5,1,yes,0,0,0,none,0,0x20, SO_STRIKING,Striking //CHECK Data shows a % for increased successful refine rate. Is this true?
|
2451,9,6,16,0,0x1,0,5,1,yes,0,0,0,none,0,0x20, SO_STRIKING,Striking //CHECK Data shows a % for increased successful refine rate. Is this true?
|
||||||
2452,9,6,2,3,0x1,0,5,1,yes,0,0,0,magic,0,0x20, SO_WARMER,Warmer
|
2452,9,6,2,3,0x1,0,5,1,yes,0,0,0,magic,0,0x20, SO_WARMER,Warmer
|
||||||
2453,9,6,2,0,0x1,0,5,1,yes,0,0,0,magic,0,0x20, SO_VACUUM_EXTREME,Vacuum Extreme
|
2453,9,6,2,0,0x1,0,5,1,yes,0,0,0,magic,0,0x1020, SO_VACUUM_EXTREME,Vacuum Extreme
|
||||||
2454,9,6,1,4,0x2,1:1:2:2:3,5,1,yes,0,0,0,magic,0,0x20, SO_VARETYR_SPEAR,Varetyr Spear
|
2454,9,6,1,4,0x2,1:1:2:2:3,5,1,yes,0,0,0,magic,0,0x20, SO_VARETYR_SPEAR,Varetyr Spear
|
||||||
2455,7:7:7:7:9,6,2,0,0x3,1:1:2:2:3,5,1,yes,0,0,0,magic,0,0x20, SO_ARRULLO,Arrullo
|
2455,7:7:7:7:9,6,2,0,0x3,1:1:2:2:3,5,1,yes,0,0,0,magic,0,0x20, SO_ARRULLO,Arrullo
|
||||||
2456,0,6,4,0,0x1,0,4,1,yes,0,0,0,none,0,0x0, SO_EL_CONTROL,Spirit Control
|
2456,0,6,4,0,0x1,0,4,1,yes,0,0,0,none,0,0x0, SO_EL_CONTROL,Spirit Control
|
||||||
@ -1195,7 +1195,7 @@
|
|||||||
2483,11,6,2,0,0x3,4,10,1,yes,0,0x2000,0,weapon,0,0x0, GN_CRAZYWEED,Crazy Weed
|
2483,11,6,2,0,0x3,4,10,1,yes,0,0x2000,0,weapon,0,0x0, GN_CRAZYWEED,Crazy Weed
|
||||||
2484,0,6,2,2,0x2,2,10,1,no,0,0x2000,0,weapon,0,0x0, GN_CRAZYWEED_ATK,Crazy Weed Attack
|
2484,0,6,2,2,0x2,2,10,1,no,0,0x2000,0,weapon,0,0x0, GN_CRAZYWEED_ATK,Crazy Weed Attack
|
||||||
2485,9,6,2,3,0,0,5,1,yes,0,0,0,magic,0,0x0, GN_DEMONIC_FIRE,Demonic Fire
|
2485,9,6,2,3,0,0,5,1,yes,0,0,0,magic,0,0x0, GN_DEMONIC_FIRE,Demonic Fire
|
||||||
2486,9,6,2,0,0,0,5,1,yes,0,0,0,none,0,0x0, GN_FIRE_EXPANSION,Fire Expansion //CHECK FIX ME!!!! Level 1 is reducing the damage. Should increase it by 50%
|
2486,9,6,2,0,0,0,5,1,yes,0,0,0,none,0,0x0, GN_FIRE_EXPANSION,Fire Expansion
|
||||||
2487,9,6,2,0,0,0,1,1,no,0,0,0,none,0,0x0, GN_FIRE_EXPANSION_SMOKE_POWDER,Fire Expansion Smoke Powder
|
2487,9,6,2,0,0,0,1,1,no,0,0,0,none,0,0x0, GN_FIRE_EXPANSION_SMOKE_POWDER,Fire Expansion Smoke Powder
|
||||||
2488,9,6,2,0,0,0,1,1,no,0,0,0,none,0,0x0, GN_FIRE_EXPANSION_TEAR_GAS,Fire Expansion Tear Gas
|
2488,9,6,2,0,0,0,1,1,no,0,0,0,none,0,0x0, GN_FIRE_EXPANSION_TEAR_GAS,Fire Expansion Tear Gas
|
||||||
2489,11,6,1,0,0,0,10,1:2:3:4:5:6:7:8:9:10,no,0,0,0,weapon,0,0x0, GN_FIRE_EXPANSION_ACID,Fire Expansion Acid
|
2489,11,6,1,0,0,0,10,1:2:3:4:5:6:7:8:9:10,no,0,0,0,weapon,0,0x0, GN_FIRE_EXPANSION_ACID,Fire Expansion Acid
|
||||||
|
@ -599,7 +599,7 @@
|
|||||||
2204,0,0,50:60:70:80:90,0,0,0,99,0,0,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //WL_JACKFROST#Jack Frost#
|
2204,0,0,50:60:70:80:90,0,0,0,99,0,0,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //WL_JACKFROST#Jack Frost#
|
||||||
2205,0,0,40:42:44:46:48,0,0,0,99,0,0,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //WL_MARSHOFABYSS#Marsh of Abyss#
|
2205,0,0,40:42:44:46:48,0,0,0,99,0,0,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //WL_MARSHOFABYSS#Marsh of Abyss#
|
||||||
2206,0,0,100:120:140:160:180,0,0,0,99,0,0,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //WL_RECOGNIZEDSPELL#Recognized Spell#
|
2206,0,0,100:120:140:160:180,0,0,0,99,0,0,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //WL_RECOGNIZEDSPELL#Recognized Spell#
|
||||||
2207,0,0,32:34:36:38:40,0,0,0,99,0,0,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //WL_SIENNAEXECRATE#Sienna Execrate#
|
2207,0,0,32:34:36:38:40,0,0,0,99,0,0,none,0,716,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //WL_SIENNAEXECRATE#Sienna Execrate#
|
||||||
|
|
||||||
2209,0,0,50:60:70:80:90,0,0,0,99,0,0,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //WL_STASIS#Stasis#
|
2209,0,0,50:60:70:80:90,0,0,0,99,0,0,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //WL_STASIS#Stasis#
|
||||||
2210,0,0,20:24:28:32:36,0,0,0,99,0,0,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //WL_DRAINLIFE#Drain Life#
|
2210,0,0,20:24:28:32:36,0,0,0,99,0,0,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //WL_DRAINLIFE#Drain Life#
|
||||||
@ -758,8 +758,8 @@
|
|||||||
2327,0,0,8:9:10:11:12,0,0,0,99,0,0,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //SR_SKYNETBLOW#Sky Net Blow#
|
2327,0,0,8:9:10:11:12,0,0,0,99,0,0,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //SR_SKYNETBLOW#Sky Net Blow#
|
||||||
2328,0,0,36:40:44:48:52,0,0,0,99,0,0,none,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //SR_EARTHSHAKER#Earth Shaker#
|
2328,0,0,36:40:44:48:52,0,0,0,99,0,0,none,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //SR_EARTHSHAKER#Earth Shaker#
|
||||||
2329,0,0,20:30:40:50:60,0,0,0,99,0,0,none,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //SR_FALLENEMPIRE#Fallen Empire#
|
2329,0,0,20:30:40:50:60,0,0,0,99,0,0,none,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //SR_FALLENEMPIRE#Fallen Empire#
|
||||||
2330,0,0,1:2:3:4:5:6:7:8:9:10,-12:-14:-16:-18:-20:-22:-24:-26:-28:-30,-6:-7:-8:-9:-10:-11:-12:-13:-14:-15,0,99,0,0,none,SC_EXPLOSIONSPIRITS,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //SR_TIGERCANNON#Tiger Cannon#
|
2330,0,0,1:2:3:4:5:6:7:8:9:10,0,0,0,99,0,0,none,SC_EXPLOSIONSPIRITS,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //SR_TIGERCANNON#Tiger Cannon#
|
||||||
2331,0,0,1,0,0,0,99,0,0,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //SR_HELLGATE#Hell Gate#
|
2331,0,0,1,0,-11:-12:-13:-14:-15:-16:-17:-18:-19:-20,0,99,0,0,none,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //SR_HELLGATE#Hell Gate#
|
||||||
2332,0,0,150,0,0,0,99,0,0,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //SR_RAMPAGEBLASTER#Rampage Blaster#
|
2332,0,0,150,0,0,0,99,0,0,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //SR_RAMPAGEBLASTER#Rampage Blaster#
|
||||||
2333,0,0,80,0,0,0,99,0,0,none,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //SR_CRESCENTELBOW#Crescent Elbow#
|
2333,0,0,80,0,0,0,99,0,0,none,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //SR_CRESCENTELBOW#Crescent Elbow#
|
||||||
2334,0,0,40:60:80:100:120,-1:-2:-3:-4:-5,0,0,99,0,0,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //SR_CURSEDCIRCLE#Cursed Circle#
|
2334,0,0,40:60:80:100:120,-1:-2:-3:-4:-5,0,0,99,0,0,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //SR_CURSEDCIRCLE#Cursed Circle#
|
||||||
|
@ -1482,7 +1482,7 @@
|
|||||||
//-- WM_DOMINION_IMPULSE
|
//-- WM_DOMINION_IMPULSE
|
||||||
2417,0,1000,0,0,0,0,-1
|
2417,0,1000,0,0,0,0,-1
|
||||||
//-- WM_SEVERE_RAINSTORM
|
//-- WM_SEVERE_RAINSTORM
|
||||||
2418,1500:2000:2500:3000:3500,1000,0,900:1500:2100:2700:3000,0,5000:5500:6000:6500:7000,500
|
2418,1500:2000:2500:3000:3500,1000,0,3300,0,5000:5500:6000:6500:7000,500
|
||||||
//-- WM_POEMOFNETHERWORLD
|
//-- WM_POEMOFNETHERWORLD
|
||||||
2419,3000,0,0,9000:11000:13000:15000:17000,8000:10000:12000:14000:16000,0,-1
|
2419,3000,0,0,9000:11000:13000:15000:17000,8000:10000:12000:14000:16000,0,-1
|
||||||
//-- WM_VOICEOFSIREN
|
//-- WM_VOICEOFSIREN
|
||||||
@ -1594,7 +1594,7 @@
|
|||||||
//-- GN_CRAZYWEED_ATK
|
//-- GN_CRAZYWEED_ATK
|
||||||
2484,0,0,0,100,0,0,-1
|
2484,0,0,0,100,0,0,-1
|
||||||
//-- GN_DEMONIC_FIRE
|
//-- GN_DEMONIC_FIRE
|
||||||
2485,3000:3500:4000:4500:5000,500,0,10000:12000:14000:16000:18000,8000:16000:24000:32000:40000,5000,-1
|
2485,3000:3500:4000:4500:5000,500,0,10000:0:16000:25000:0,8000:16000:24000:32000:40000,5000,-1
|
||||||
//-- GN_FIRE_EXPANSION
|
//-- GN_FIRE_EXPANSION
|
||||||
2486,2000,500,0,0,0,0,-1
|
2486,2000,500,0,0,0,0,-1
|
||||||
//-- GN_FIRE_EXPANSION_SMOKE_POWDER
|
//-- GN_FIRE_EXPANSION_SMOKE_POWDER
|
||||||
@ -1763,7 +1763,7 @@
|
|||||||
//-- HLIF_AVOID
|
//-- HLIF_AVOID
|
||||||
8002,0,35000,0,40000:35000:30000:25000:20000,0,0,-1
|
8002,0,35000,0,40000:35000:30000:25000:20000,0,0,-1
|
||||||
//-- HLIF_CHANGE
|
//-- HLIF_CHANGE
|
||||||
8004,0,600000:900000:1200000,0,60000:120000:180000,0,0,-1
|
8004,0,600000:900000:1200000,0,60000:180000:300000,0,0,-1
|
||||||
//-- HAMI_CASTLE
|
//-- HAMI_CASTLE
|
||||||
8005,0,0,0,0,60000:70000:80000:90000:129000,0,-1
|
8005,0,0,0,0,60000:70000:80000:90000:129000,0,-1
|
||||||
//-- HAMI_DEFENCE
|
//-- HAMI_DEFENCE
|
||||||
|
@ -59,7 +59,7 @@
|
|||||||
// 0x0200- spell range affected by NJ_SHADOWJUMP
|
// 0x0200- spell range affected by NJ_SHADOWJUMP
|
||||||
// 0x0400- spell range affected by WL_RADIUS
|
// 0x0400- spell range affected by WL_RADIUS
|
||||||
// 0x0800- spell range affected by RA_RESEARCHTRAP
|
// 0x0800- spell range affected by RA_RESEARCHTRAP
|
||||||
// 0x1000- free
|
// 0x1000- Spell that does not affect user that has NC_HOVERING active
|
||||||
// 0x2000- spell that can be using while riding warg
|
// 0x2000- spell that can be using while riding warg
|
||||||
// 0x4000- spell that can't be used while in mado
|
// 0x4000- spell that can't be used while in mado
|
||||||
// 17 Name
|
// 17 Name
|
||||||
@ -182,7 +182,7 @@
|
|||||||
89,9,6,2,1,0,0,10,1,yes,0,0x2000,0,magic,2,0x20, WZ_STORMGUST,Storm Gust
|
89,9,6,2,1,0,0,10,1,yes,0,0x2000,0,magic,2,0x20, WZ_STORMGUST,Storm Gust
|
||||||
90,9,8,1,2,0,0,5,1:2:3:4:5,yes,0,0x2000,0,magic,0,0x20, WZ_EARTHSPIKE,Earth Spike
|
90,9,8,1,2,0,0,5,1:2:3:4:5,yes,0,0x2000,0,magic,0,0x20, WZ_EARTHSPIKE,Earth Spike
|
||||||
91,9,8,2,2,0,0,5,1:2:3:4:5,yes,0,0x2000,0,magic,0,0x20, WZ_HEAVENDRIVE,Heaven's Drive
|
91,9,8,2,2,0,0,5,1:2:3:4:5,yes,0,0x2000,0,magic,0,0x20, WZ_HEAVENDRIVE,Heaven's Drive
|
||||||
92,9,6,2,2,0x1,0,5,1,yes,0,0,3,magic,0,0x20, WZ_QUAGMIRE,Quagmire
|
92,9,6,2,2,0x1,0,5,1,yes,0,0,3,magic,0,0x1020, WZ_QUAGMIRE,Quagmire
|
||||||
93,9,6,1,0,0x1,0,1,1,yes,0,0,0,magic,0,0x0, WZ_ESTIMATION,Sense
|
93,9,6,1,0,0x1,0,1,1,yes,0,0,0,magic,0,0x0, WZ_ESTIMATION,Sense
|
||||||
|
|
||||||
//****
|
//****
|
||||||
@ -211,15 +211,15 @@
|
|||||||
|
|
||||||
//****
|
//****
|
||||||
// Hunter
|
// Hunter
|
||||||
115,3,6,2,0,0x1,0,5,1,no,0,0x80,0,misc,6:7:8:9:10,0x2000, HT_SKIDTRAP,Skid Trap
|
115,3,6,2,0,0x1,0,5,1,no,0,0x80,0,misc,6:7:8:9:10,0x3000, HT_SKIDTRAP,Skid Trap
|
||||||
116,3,6,2,2,0x42,1,5,1,no,0,0x80,0,misc,0,0x2800, HT_LANDMINE,Land Mine
|
116,3,6,2,2,0x42,1,5,1,no,0,0x80,0,misc,0,0x3800, HT_LANDMINE,Land Mine
|
||||||
117,3,6,2,0,0x1,0,5,1,no,0,0x80,0,misc,0,0x2000, HT_ANKLESNARE,Ankle Snare
|
117,3,6,2,0,0x1,0,5,1,no,0,0x80,0,misc,0,0x3000, HT_ANKLESNARE,Ankle Snare
|
||||||
118,3,6,2,0,0x2,1,5,1,no,0,0x80,0,misc,0,0x2000, HT_SHOCKWAVE,Shockwave Trap
|
118,3,6,2,0,0x2,1,5,1,no,0,0x80,0,misc,0,0x3000, HT_SHOCKWAVE,Shockwave Trap
|
||||||
119,3,6,2,0,0x3,2,5,1,no,0,0x80,0,misc,0,0x2000, HT_SANDMAN,Sandman
|
119,3,6,2,0,0x3,2,5,1,no,0,0x80,0,misc,0,0x3000, HT_SANDMAN,Sandman
|
||||||
120,3,6,2,0,0x3,1,5,1,no,0,0x80,0,misc,0,0x2000, HT_FLASHER,Flasher
|
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,0x2800, HT_FREEZINGTRAP,Freezing Trap
|
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,0x42,1,5,1,no,0,0x80,0,misc,0,0x2800, HT_BLASTMINE,Blast Mine
|
122,3,6,2,4,0x42,1,5,1,no,0,0x80,0,misc,0,0x3800, HT_BLASTMINE,Blast Mine
|
||||||
123,3,6,2,3,0x42,2,5,1,no,0,0x80,0,misc,0,0x2800, HT_CLAYMORETRAP,Claymore Trap
|
123,3,6,2,3,0x42,2,5,1,no,0,0x80,0,misc,0,0x3800, HT_CLAYMORETRAP,Claymore Trap
|
||||||
124,2,6,32,0,0x1,0,1,1,no,0,0,0,misc,0,0x0, HT_REMOVETRAP,Remove Trap
|
124,2,6,32,0,0x1,0,1,1,no,0,0,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
|
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
|
126,0,0,0,0,0,0,10,0,no,0,0,0,weapon,0,0x0, HT_BEASTBANE,Beast Bane
|
||||||
@ -361,7 +361,7 @@
|
|||||||
247,9,6,4,0,0x1,1,5,0,no,0,0,0,none,0,0x0, AM_RESURRECTHOMUN,Homunculus Resurrection
|
247,9,6,4,0,0x1,1,5,0,no,0,0,0,none,0,0x0, AM_RESURRECTHOMUN,Homunculus Resurrection
|
||||||
|
|
||||||
//****
|
//****
|
||||||
// Creator
|
// Crusader
|
||||||
248,0,0,0,0,0,0,10,0,no,0,0,0,none,0,0x0, CR_TRUST,Faith
|
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
|
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
|
250,3,6,1,0,0,0,5,1,no,0,0,0,weapon,5:6:7:8:9,0x0, CR_SHIELDCHARGE,Smite
|
||||||
@ -405,9 +405,9 @@
|
|||||||
282,9,6,16,4,0x1,0,5,1,yes,0,0xC00,0,magic,0,0x20, SA_LIGHTNINGLOADER,Endow Tornado
|
282,9,6,16,4,0x1,0,5,1,yes,0,0xC00,0,magic,0,0x20, SA_LIGHTNINGLOADER,Endow Tornado
|
||||||
283,9,6,16,2,0x1,0,5,1,yes,0,0xC00,0,magic,0,0x20, SA_SEISMICWEAPON,Endow Quake
|
283,9,6,16,2,0x1,0,5,1,yes,0,0xC00,0,magic,0,0x20, SA_SEISMICWEAPON,Endow Quake
|
||||||
284,0,0,0,0,0,0,5,0,no,0,0,0,weapon,0,0x0, SA_DRAGONOLOGY,Dragonology
|
284,0,0,0,0,0,0,5,0,no,0,0,0,weapon,0,0x0, SA_DRAGONOLOGY,Dragonology
|
||||||
285,2,6,2,3,0x1,0,5,1,yes,0,0,0,magic,0,0x20, SA_VOLCANO,Volcano
|
285,2,6,2,3,0x1,0,5,1,yes,0,0,0,magic,0,0x1020, SA_VOLCANO,Volcano
|
||||||
286,2,6,2,1,0x1,0,5,1,yes,0,0,0,magic,0,0x20, SA_DELUGE,Deluge
|
286,2,6,2,1,0x1,0,5,1,yes,0,0,0,magic,0,0x1020, SA_DELUGE,Deluge
|
||||||
287,2,6,2,4,0x1,0,5,1,yes,0,0,0,magic,0,0x20, SA_VIOLENTGALE,Whirlwind
|
287,2,6,2,4,0x1,0,5,1,yes,0,0,0,magic,0,0x1020, SA_VIOLENTGALE,Whirlwind
|
||||||
288,2,6,2,0,0x1,0,5,1,yes,0,0,0,magic,0,0x20, SA_LANDPROTECTOR,Magnetic Earth
|
288,2,6,2,0,0x1,0,5,1,yes,0,0,0,magic,0,0x20, SA_LANDPROTECTOR,Magnetic Earth
|
||||||
289,9,6,1,0,0x1,0:0:0:0:0:-1,5,1,yes,0,0xE00,0,magic,0,0x20, SA_DISPELL,Dispell
|
289,9,6,1,0,0x1,0:0:0:0:0:-1,5,1,yes,0,0xE00,0,magic,0,0x20, SA_DISPELL,Dispell
|
||||||
290,0,6,4,0,0x1,0,10,1,yes,0,0,0,magic,0,0x0, SA_ABRACADABRA,Hocus-pocus
|
290,0,6,4,0,0x1,0,10,1,yes,0,0,0,magic,0,0x0, SA_ABRACADABRA,Hocus-pocus
|
||||||
@ -697,7 +697,7 @@
|
|||||||
481,0,0,0,0,0,0,5,0,no,0,0,0,none,0,0x0, HP_MANARECHARGE,Mana Recharge
|
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
|
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
|
483,16,6,2,0,0x1,1:2:3:4:5,1,1,no,0,0,0,none,0,0x20, HW_GANBANTEIN,Ganbantein
|
||||||
484,9,6,2,2,0x91,0,5,1,yes,0,0x18000,0,misc,0,0x30, HW_GRAVITATION,Gravitation Field
|
484,9,6,2,2,0x91,0,5,1,yes,0,0x18000,0,misc,0,0x1030, HW_GRAVITATION,Gravitation Field
|
||||||
485,-2,6,1,-1,0x8,0,10,1,no,0,0,0,weapon,0,0x4000, WS_CARTTERMINATION,Cart Termination
|
485,-2,6,1,-1,0x8,0,10,1,no,0,0,0,weapon,0,0x4000, WS_CARTTERMINATION,Cart Termination
|
||||||
486,0,6,4,0,0x1,0,5,1,no,0,0,0,weapon,0,0x4000, WS_OVERTHRUSTMAX,Maximum Power Thrust
|
486,0,6,4,0,0x1,0,5,1,no,0,0,0,weapon,0,0x4000, WS_OVERTHRUSTMAX,Maximum Power Thrust
|
||||||
487,0,6,4,0,0x1,0,5,1,no,0,0,0,none,0,0x8, CG_LONGINGFREEDOM,Longing for Freedom
|
487,0,6,4,0,0x1,0,5,1,no,0,0,0,none,0,0x8, CG_LONGINGFREEDOM,Longing for Freedom
|
||||||
@ -757,7 +757,7 @@
|
|||||||
535,0,8,4,3,0,0,10,1,yes,0,0,0,magic,1,0x0, NJ_KAENSIN,Crimson Fire Formation
|
535,0,8,4,3,0,0,10,1,yes,0,0,0,magic,1,0x0, NJ_KAENSIN,Crimson Fire Formation
|
||||||
536,9,8,1,3,0x2,2,5,3,yes,0,0,0,magic,0,0x0, NJ_BAKUENRYU,Raging Fire Dragon
|
536,9,8,1,3,0x2,2,5,3,yes,0,0,0,magic,0,0x0, NJ_BAKUENRYU,Raging Fire Dragon
|
||||||
537,9,8,1,1,0,0,10,3:4:5:6:7:8:9:10:11:12,yes,0,0,0,magic,0,0x0, NJ_HYOUSENSOU,Spear of Ice
|
537,9,8,1,1,0,0,10,3:4:5:6:7:8:9:10:11:12,yes,0,0,0,magic,0,0x0, NJ_HYOUSENSOU,Spear of Ice
|
||||||
538,9,6,2,1,0x1,0,10,1,yes,0,0,0,magic,0,0x0, NJ_SUITON,Hidden Water
|
538,9,6,2,1,0x1,0,10,1,yes,0,0,0,magic,0,0x1000, NJ_SUITON,Hidden Water
|
||||||
539,0,6,4,1,0x2,3,5,1,yes,0,0,0,magic,0,0x0, NJ_HYOUSYOURAKU,Ice Meteor
|
539,0,6,4,1,0x2,3,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
|
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,0x2,2:2:3:3:4,5,1,yes,0,0,0,magic,0,0x0, NJ_RAIGEKISAI,Lightning Strike of Destruction
|
541,9,6,2,4,0x2,2:2:3:3:4,5,1,yes,0,0,0,magic,0,0x0, NJ_RAIGEKISAI,Lightning Strike of Destruction
|
||||||
@ -886,11 +886,11 @@
|
|||||||
2005,1,6,2,4,0x2,2,5,1,no,0,0,0,weapon,3,0x0, RK_WINDCUTTER,Wind Cutter
|
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
|
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,weapon,0,0x0, RK_DRAGONTRAINING,Dragon Training
|
2007,0,0,0,0,0,0,5,0,no,0,0,0,weapon,0,0x0, RK_DRAGONTRAINING,Dragon Training
|
||||||
2008,9,6,2,3,0xC2,1:1:1:2:2:2:3:3:4:4,10,1,no,0,0,0,misc,0,0x0, RK_DRAGONBREATH,Dragon Breath
|
2008,9,6,2,3,0x2,1:1:1:2:2:2:3:3:4:4,10,1,no,0,0,0,misc,0,0x0, RK_DRAGONBREATH,Dragon Breath
|
||||||
2009,0,6,4,0,0x3,3:4:5:6:7,5,1,no,0,0,0,none,0,0x0, RK_DRAGONHOWLING,Dragon Howling
|
2009,0,6,4,0,0x3,3:4:5:6:7,5,1,no,0,0,0,none,0,0x0, RK_DRAGONHOWLING,Dragon Howling
|
||||||
2010,0,0,0,0,0,0,10,0,no,0,0,0,none,0,0x0, RK_RUNEMASTERY,Rune Mastery
|
2010,0,0,0,0,0,0,10,0,no,0,0,0,none,0,0x0, RK_RUNEMASTERY,Rune Mastery
|
||||||
2011,0,6,4,0,0x1,0,1,1,no,0,0,0,none,0,0x0, RK_MILLENNIUMSHIELD,Millenium Shield
|
2011,0,6,4,0,0x1,0,1,1,no,0,0,0,none,0,0x0, RK_MILLENNIUMSHIELD,Millenium Shield
|
||||||
2012,1,6,4,-1,0,0x8,1,1,yes,0,0,0,weapon,0,0x0, RK_CRUSHSTRIKE,Crush Strike
|
2012,1,6,4,-1,0,0,1,1,yes,0,0,0,weapon,0,0x0, RK_CRUSHSTRIKE,Crush Strike
|
||||||
2013,0,6,4,0,0x1,0,1,1,yes,0,0,0,none,0,0x0, RK_REFRESH,Refresh
|
2013,0,6,4,0,0x1,0,1,1,yes,0,0,0,none,0,0x0, RK_REFRESH,Refresh
|
||||||
2014,0,6,4,0,0x1,0,1,1,yes,0,0,0,none,0,0x0, RK_GIANTGROWTH,Giant Growth
|
2014,0,6,4,0,0x1,0,1,1,yes,0,0,0,none,0,0x0, RK_GIANTGROWTH,Giant Growth
|
||||||
2015,0,6,4,0,0x1,0,1,1,yes,0,0,0,none,0,0x0, RK_STONEHARDSKIN,Stone Hard Skin
|
2015,0,6,4,0,0x1,0,1,1,yes,0,0,0,none,0,0x0, RK_STONEHARDSKIN,Stone Hard Skin
|
||||||
@ -898,7 +898,7 @@
|
|||||||
2017,0,6,4,-1,0x2,3,1,1,no,0,0,0,weapon,7,0x0, RK_STORMBLAST,Storm Blast
|
2017,0,6,4,-1,0x2,3,1,1,no,0,0,0,weapon,7,0x0, RK_STORMBLAST,Storm Blast
|
||||||
2018,0,6,4,0,0x3,-1,1,1,yes,0,0,0,none,0,0x0, RK_FIGHTINGSPIRIT,Fighting Spirit //CHECK Is this splash needed?
|
2018,0,6,4,0,0x3,-1,1,1,yes,0,0,0,none,0,0x0, RK_FIGHTINGSPIRIT,Fighting Spirit //CHECK Is this splash needed?
|
||||||
2019,9,6,4,6,0x1,0,1,1,yes,0,0,0,none,0,0x0, RK_ABUNDANCE,Abundance
|
2019,9,6,4,6,0x1,0,1,1,yes,0,0,0,none,0,0x0, RK_ABUNDANCE,Abundance
|
||||||
2020,5:6:7:8:9,6,16,-1,0,0,5,1,no,0,0,0,weapon,0,0x0, RK_PHANTOMTHRUST,Phantom Thrust
|
2020,5:6:7:8:9,6,1,-1,0,0,5,1,no,0,0,0,weapon,0,0x0, RK_PHANTOMTHRUST,Phantom Thrust
|
||||||
|
|
||||||
//****
|
//****
|
||||||
// WL Warlock
|
// WL Warlock
|
||||||
@ -947,7 +947,7 @@
|
|||||||
2027,0,6,4,0,0x1,0,5,1,no,0,0,0,none,0,0x0, GC_POISONINGWEAPON,Poisoning Weapon
|
2027,0,6,4,0,0x1,0,5,1,no,0,0,0,none,0,0x0, GC_POISONINGWEAPON,Poisoning Weapon
|
||||||
2028,0,6,4,0,0x1,0,5,1,no,0,0,0,none,0,0x0, GC_WEAPONBLOCKING,Weapon Blocking
|
2028,0,6,4,0,0x1,0,5,1,no,0,0,0,none,0,0x0, GC_WEAPONBLOCKING,Weapon Blocking
|
||||||
2029,0,6,4,-1,0x22,1,5,1,no,0,0,0,weapon,3,0x0, GC_COUNTERSLASH,Counter Slash
|
2029,0,6,4,-1,0x22,1,5,1,no,0,0,0,weapon,3,0x0, GC_COUNTERSLASH,Counter Slash
|
||||||
2030,-2,6,4,-1,0x1,0,5,1,no,0,0x200,0,weapon,0,0x0, GC_WEAPONCRUSH,Weapon Crush
|
2030,-2,6,4,-1,0,0,5,1,no,0,0x200,0,weapon,0,0x0, GC_WEAPONCRUSH,Weapon Crush
|
||||||
2031,1,6,1,-1,0,0,5,1,no,0,0,0,weapon,0,0x0, GC_VENOMPRESSURE,Venom Pressure
|
2031,1,6,1,-1,0,0,5,1,no,0,0,0,weapon,0,0x0, GC_VENOMPRESSURE,Venom Pressure
|
||||||
2032,5,6,2,0,0x1,0,5,1,yes,0,0,1,none,0,0x0, GC_POISONSMOKE,Poison Smoke
|
2032,5,6,2,0,0x1,0,5,1,yes,0,0,1,none,0,0x0, GC_POISONSMOKE,Poison Smoke
|
||||||
2033,0,6,4,0,0x1,0,5,1,no,0,0,0,weapon,0,0x40, GC_CLOAKINGEXCEED,Cloaking Exceed
|
2033,0,6,4,0,0x1,0,5,1,no,0,0,0,weapon,0,0x40, GC_CLOAKINGEXCEED,Cloaking Exceed
|
||||||
@ -993,7 +993,7 @@
|
|||||||
2240,0,6,4,0,0,0,1,1,no,0,0,0,none,0,0x0, RA_WUGMASTERY,Warg Mastery
|
2240,0,6,4,0,0,0,1,1,no,0,0,0,none,0,0x0, RA_WUGMASTERY,Warg Mastery
|
||||||
2241,0,6,4,0,0,0,3,1,no,0,0,0,none,0,0x2000, RA_WUGRIDER,Warg Rider
|
2241,0,6,4,0,0,0,3,1,no,0,0,0,none,0,0x2000, RA_WUGRIDER,Warg Rider
|
||||||
2242,0,6,4,-1,0x2,1,1,0,no,0,0,0,weapon,0,0x2000, RA_WUGDASH,Warg Dash
|
2242,0,6,4,-1,0x2,1,1,0,no,0,0,0,weapon,0,0x2000, RA_WUGDASH,Warg Dash
|
||||||
2243,9,6,1,-1,0,0,5,1,no,0,0,0,weapon,0,0x2000, RA_WUGSTRIKE,Warg Strike
|
2243,9,6,1,-1,0x40,0,5,1,no,0,0,0,misc,0,0x2000, RA_WUGSTRIKE,Warg Strike
|
||||||
2244,9,6,1,-1,0,0,5,1,no,0,0,0,weapon,0,0x80, RA_WUGBITE,Warg Bite
|
2244,9,6,1,-1,0,0,5,1,no,0,0,0,weapon,0,0x80, RA_WUGBITE,Warg Bite
|
||||||
2245,0,0,0,0,0,0,10,0,no,0,0,0,none,0,0x0, RA_TOOTHOFWUG,Tooth of Warg
|
2245,0,0,0,0,0,0,10,0,no,0,0,0,none,0,0x0, RA_TOOTHOFWUG,Tooth of Warg
|
||||||
2246,0,6,4,0,0x2,3:4:5:6:7,5,1,no,0,0,0,weapon,0,0x0, RA_SENSITIVEKEEN,Sensitive Keen
|
2246,0,6,4,0,0x2,3:4:5:6:7,5,1,no,0,0,0,weapon,0,0x0, RA_SENSITIVEKEEN,Sensitive Keen
|
||||||
@ -1077,7 +1077,7 @@
|
|||||||
2317,1,6,2,-1,0x2,5,5,1,yes,0,0,0,none,3:4:5:6:7,0x0, LG_OVERBRAND,Over Brand
|
2317,1,6,2,-1,0x2,5,5,1,yes,0,0,0,none,3:4:5:6:7,0x0, LG_OVERBRAND,Over Brand
|
||||||
2318,0,6,4,0,0x1,0,5,1,yes,0,0,0,none,0,0x0, LG_PRESTIGE,Prestige
|
2318,0,6,4,0,0x1,0,5,1,yes,0,0,0,none,0,0x0, LG_PRESTIGE,Prestige
|
||||||
2319,0,6,4,0,0x3,3,5,1,no,0,0,0,weapon,0,0x0, LG_BANDING,Banding //CHECK Splash isnt needed right? Banding has its own UNIT ID.
|
2319,0,6,4,0,0x3,3,5,1,no,0,0,0,weapon,0,0x0, LG_BANDING,Banding //CHECK Splash isnt needed right? Banding has its own UNIT ID.
|
||||||
2320,0,6,4,-1,0x2,3,5,1,yes,0,0,0,weapon,0,0x0, LG_MOONSLASHER,Moon Slasher
|
2320,0,6,4,-1,0x2,3,5,1,yes,0,0,0,weapon,0,0x1000, LG_MOONSLASHER,Moon Slasher
|
||||||
2321,1,8,2,6,0x2,5,5,-7,yes,0,0,0,weapon,0,0x0, LG_RAYOFGENESIS,Ray of Genesis
|
2321,1,8,2,6,0x2,5,5,-7,yes,0,0,0,weapon,0,0x0, LG_RAYOFGENESIS,Ray of Genesis
|
||||||
2322,0,6,16,0,0x3,1,5,1,yes,0,0,0,none,0,0x0, LG_PIETY,Piety
|
2322,0,6,16,0,0x3,1,5,1,yes,0,0,0,none,0,0x0, LG_PIETY,Piety
|
||||||
2323,0,8,4,2,0x2,1:1:2:2:3,5,-5,yes,0,0,0,weapon,0,0x0, LG_EARTHDRIVE,Earth Drive
|
2323,0,8,4,2,0x2,1:1:2:2:3,5,-5,yes,0,0,0,weapon,0,0x0, LG_EARTHDRIVE,Earth Drive
|
||||||
@ -1090,14 +1090,14 @@
|
|||||||
2327,0,8,4,-1,0x2,2,5,-3,no,0,0,0,weapon,3,0x0, SR_SKYNETBLOW,Sky Net Blow
|
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
|
2328,0,6,4,-1,0x2,1:2:3:4:5,5,1,no,0,0,0,weapon,0,0x0, SR_EARTHSHAKER,Earth Shaker
|
||||||
2329,-2,8,4,-1,0,0,5,-2,no,0,0x200,0,weapon,0,0x0, SR_FALLENEMPIRE,Fallen Empire
|
2329,-2,8,4,-1,0,0,5,-2,no,0,0x200,0,weapon,0,0x0, SR_FALLENEMPIRE,Fallen Empire
|
||||||
2330,-2,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 //CHECK Need to fix to be enemy targeted and also combo after Fallen Empire.
|
2330,-2,6,1,-1,0x2,1:1:1:1:1:2:2:2:2:2,10,1,yes,0,0,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
|
2331,1:2:3:3:4:4:5:5:6:7,6,1,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,0,0,weapon,0,0x0, SR_RAMPAGEBLASTER,Rampage Blaster
|
2332,0,6,4,-1,0x2,3,5,1,no,0,0,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 //CHECK Check the autospell ID.
|
2333,0,6,4,0,0x1,0,5,1,no,0,0,0,none,0,0x0, SR_CRESCENTELBOW,Crescent Elbow //CHECK Check the autospell ID.
|
||||||
2334,0,6,4,0,0x3,1:1:2:2:3,5,1,no,0,0,0,none,0,0x0, SR_CURSEDCIRCLE,Cursed Circle
|
2334,0,6,4,0,0x3,1:1:2:2:3,5,1,no,0,0,0,none,0,0x0, SR_CURSEDCIRCLE,Cursed Circle
|
||||||
2335,0,6,4,0,0x1,0,5,1,no,0,0,0,none,0,0x0, SR_LIGHTNINGWALK,Lightning Walk
|
2335,0,6,4,0,0x1,0,5,1,no,0,0,0,none,0,0x0, SR_LIGHTNINGWALK,Lightning Walk
|
||||||
2336,7:8:9:10:11,6,1,-1,0,0,5,1,no,0,0,0,weapon,2:3:4:5:6,0x0, SR_KNUCKLEARROW,Knuckle Arrow
|
2336,7:8:9:10:11,6,1,-1,0,0,5,1,no,0,0,0,weapon,2:3:4:5:6,0x0, SR_KNUCKLEARROW,Knuckle Arrow
|
||||||
2337,0,6,4,-1,0x2,2,1,1,yes,0,0,0,weapon,0,0x0, SR_WINDMILL,Windmill
|
2337,0,6,4,-1,0x2,2,1,1,yes,0,0,0,weapon,0,0x1000, SR_WINDMILL,Windmill
|
||||||
2338,0,6,4,0,0x1,0,10,1,no,0,0,0,none,0,0x0, SR_RAISINGDRAGON,Raising Dragon
|
2338,0,6,4,0,0x1,0,10,1,no,0,0,0,none,0,0x0, SR_RAISINGDRAGON,Raising Dragon
|
||||||
2339,0,0,0,0,0,0,5,1,no,0,0,0,none,0,0x0, SR_GENTLETOUCH,Gentle Touch
|
2339,0,0,0,0,0,0,5,1,no,0,0,0,none,0,0x0, SR_GENTLETOUCH,Gentle Touch
|
||||||
2340,0,6,4,0,0x3,2,1,1,no,0,0,0,none,0,0x0, SR_ASSIMILATEPOWER,Assimilate Power
|
2340,0,6,4,0,0x3,2,1,1,no,0,0,0,none,0,0x0, SR_ASSIMILATEPOWER,Assimilate Power
|
||||||
@ -1154,8 +1154,8 @@
|
|||||||
|
|
||||||
//****
|
//****
|
||||||
// SO Sorcerer (statis blocking need to be confirmed)
|
// SO Sorcerer (statis blocking need to be confirmed)
|
||||||
2443,0,6,4,3,0,0,5,1,yes,0,0,8:10:12:14:16,magic,0,0x20, SO_FIREWALK,Fire Walk //CHECK Video and data shows each cell only hits once.
|
2443,0,6,4,3,0,0,5,1,yes,0,0,8:10:12:14:16,magic,0,0x1020, SO_FIREWALK,Fire Walk //CHECK Video and data shows each cell only hits once.
|
||||||
2444,0,6,4,4,0,0,5,1,yes,0,0,8:10:12:14:16,magic,0,0x20, SO_ELECTRICWALK,Electric Walk
|
2444,0,6,4,4,0,0,5,1,yes,0,0,8:10:12:14:16,magic,0,0x1020, SO_ELECTRICWALK,Electric Walk
|
||||||
2445,0,6,4,0,0x1,0,5,1,no,0,0,0,none,0,0x20, SO_SPELLFIST,Spell Fist
|
2445,0,6,4,0,0x1,0,5,1,no,0,0,0,none,0,0x20, SO_SPELLFIST,Spell Fist
|
||||||
2446,9,6,2,2,0,0,5,-3,yes,0,0,0,magic,0,0x20, SO_EARTHGRAVE,Earth Grave
|
2446,9,6,2,2,0,0,5,-3,yes,0,0,0,magic,0,0x20, SO_EARTHGRAVE,Earth Grave
|
||||||
2447,9,6,2,1,0,0,5,-5,yes,0,0,0,magic,0,0x20, SO_DIAMONDDUST,Diamond Dust
|
2447,9,6,2,1,0,0,5,-5,yes,0,0,0,magic,0,0x20, SO_DIAMONDDUST,Diamond Dust
|
||||||
@ -1164,7 +1164,7 @@
|
|||||||
2450,9,6,2,5,0,0,5,1,yes,0,0,0,magic,0,0x20, SO_CLOUD_KILL,Cloud Kill
|
2450,9,6,2,5,0,0,5,1,yes,0,0,0,magic,0,0x20, SO_CLOUD_KILL,Cloud Kill
|
||||||
2451,9,6,16,0,0x1,0,5,1,yes,0,0,0,none,0,0x20, SO_STRIKING,Striking //CHECK Data shows a % for increased successful refine rate. Is this true?
|
2451,9,6,16,0,0x1,0,5,1,yes,0,0,0,none,0,0x20, SO_STRIKING,Striking //CHECK Data shows a % for increased successful refine rate. Is this true?
|
||||||
2452,9,6,2,3,0x1,0,5,1,yes,0,0,0,magic,0,0x20, SO_WARMER,Warmer
|
2452,9,6,2,3,0x1,0,5,1,yes,0,0,0,magic,0,0x20, SO_WARMER,Warmer
|
||||||
2453,9,6,2,0,0x1,0,5,1,yes,0,0,0,magic,0,0x20, SO_VACUUM_EXTREME,Vacuum Extreme
|
2453,9,6,2,0,0x1,0,5,1,yes,0,0,0,magic,0,0x1020, SO_VACUUM_EXTREME,Vacuum Extreme
|
||||||
2454,9,6,1,4,0x2,1:1:2:2:3,5,1,yes,0,0,0,magic,0,0x20, SO_VARETYR_SPEAR,Varetyr Spear
|
2454,9,6,1,4,0x2,1:1:2:2:3,5,1,yes,0,0,0,magic,0,0x20, SO_VARETYR_SPEAR,Varetyr Spear
|
||||||
2455,7:7:7:7:9,6,2,0,0x3,1:1:2:2:3,5,1,yes,0,0,0,magic,0,0x20, SO_ARRULLO,Arrullo
|
2455,7:7:7:7:9,6,2,0,0x3,1:1:2:2:3,5,1,yes,0,0,0,magic,0,0x20, SO_ARRULLO,Arrullo
|
||||||
2456,0,6,4,0,0x1,0,4,1,yes,0,0,0,none,0,0x0, SO_EL_CONTROL,Spirit Control
|
2456,0,6,4,0,0x1,0,4,1,yes,0,0,0,none,0,0x0, SO_EL_CONTROL,Spirit Control
|
||||||
@ -1195,7 +1195,7 @@
|
|||||||
2483,11,6,2,0,0x3,4,10,1,yes,0,0x0,0,weapon,0,0x1, GN_CRAZYWEED,Crazy Weed
|
2483,11,6,2,0,0x3,4,10,1,yes,0,0x0,0,weapon,0,0x1, GN_CRAZYWEED,Crazy Weed
|
||||||
2484,0,6,2,2,0x2,2,10,1,no,0,0x0,0,weapon,0,0x1, GN_CRAZYWEED_ATK,Crazy Weed Attack
|
2484,0,6,2,2,0x2,2,10,1,no,0,0x0,0,weapon,0,0x1, GN_CRAZYWEED_ATK,Crazy Weed Attack
|
||||||
2485,9,6,2,3,0,0,5,1,yes,0,0,0,magic,0,0x0, GN_DEMONIC_FIRE,Demonic Fire
|
2485,9,6,2,3,0,0,5,1,yes,0,0,0,magic,0,0x0, GN_DEMONIC_FIRE,Demonic Fire
|
||||||
2486,9,6,2,0,0,0,5,1,yes,0,0,0,none,0,0x0, GN_FIRE_EXPANSION,Fire Expansion //CHECK FIX ME!!!! Level 1 is reducing the damage. Should increase it by 50%
|
2486,9,6,2,0,0,0,5,1,yes,0,0,0,none,0,0x0, GN_FIRE_EXPANSION,Fire Expansion
|
||||||
2487,9,6,2,0,0,0,1,1,no,0,0,0,none,0,0x0, GN_FIRE_EXPANSION_SMOKE_POWDER,Fire Expansion Smoke Powder
|
2487,9,6,2,0,0,0,1,1,no,0,0,0,none,0,0x0, GN_FIRE_EXPANSION_SMOKE_POWDER,Fire Expansion Smoke Powder
|
||||||
2488,9,6,2,0,0,0,1,1,no,0,0,0,none,0,0x0, GN_FIRE_EXPANSION_TEAR_GAS,Fire Expansion Tear Gas
|
2488,9,6,2,0,0,0,1,1,no,0,0,0,none,0,0x0, GN_FIRE_EXPANSION_TEAR_GAS,Fire Expansion Tear Gas
|
||||||
2489,11,6,1,0,0,0,10,1:2:3:4:5:6:7:8:9:10,no,0,0,0,weapon,0,0x0, GN_FIRE_EXPANSION_ACID,Fire Expansion Acid
|
2489,11,6,1,0,0,0,10,1:2:3:4:5:6:7:8:9:10,no,0,0,0,weapon,0,0x0, GN_FIRE_EXPANSION_ACID,Fire Expansion Acid
|
||||||
@ -1303,7 +1303,7 @@
|
|||||||
5001,1,8,1,-1,0,0,5,3,no,0,0,0,weapon,0,0x0, GC_DARKCROW,Dark Claw
|
5001,1,8,1,-1,0,0,5,3,no,0,0,0,weapon,0,0x0, GC_DARKCROW,Dark Claw
|
||||||
5002,0,6,4,0,0x1,0,5,1,no,0,0,0,none,0,0x0, RA_UNLIMIT,Unlimited
|
5002,0,6,4,0,0x1,0,5,1,no,0,0,0,none,0,0x0, RA_UNLIMIT,Unlimited
|
||||||
5003,7,6,1,-1,0x2,4:5:6:7:8,5,1,no,0,0,0,weapon,0,0x0, GN_ILLUSIONDOPING,Illusion Doping
|
5003,7,6,1,-1,0x2,4:5:6:7:8,5,1,no,0,0,0,weapon,0,0x0, GN_ILLUSIONDOPING,Illusion Doping
|
||||||
5004,9,6,2,1,0x42,1:1:1:2:2:2:3:3:4:4,10,1,no,0,0,0,weapon,0,0x0, RK_DRAGONBREATH_WATER,Dragon Breath - Water
|
5004,9,6,2,1,0x2,1:1:1:2:2:2:3:3:4:4,10,1,no,0,0,0,weapon,0,0x0, RK_DRAGONBREATH_WATER,Dragon Breath - Water
|
||||||
5005,0,6,4,0,0x3,3,1,1,no,0,0,0,none,0,0x0, RK_LUXANIMA,Lux Anima
|
5005,0,6,4,0,0x3,3,1,1,no,0,0,0,none,0,0x0, RK_LUXANIMA,Lux Anima
|
||||||
5006,1,6,2,3,0,0,5,1,no,0,0,3,misc,0,0x0, NC_MAGMA_ERUPTION,Magma Eruption
|
5006,1,6,2,3,0,0,5,1,no,0,0,3,misc,0,0x0, NC_MAGMA_ERUPTION,Magma Eruption
|
||||||
5007,0,6,4,0,0x3,5:6:7:8:9,5,1,no,0,0,0,none,0,0x0, WM_FRIGG_SONG,Frigg's Song
|
5007,0,6,4,0,0x3,5:6:7:8:9,5,1,no,0,0,0,none,0,0x0, WM_FRIGG_SONG,Frigg's Song
|
||||||
|
@ -599,7 +599,7 @@
|
|||||||
2204,0,0,50:60:70:80:90,0,0,0,99,0,0,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //WL_JACKFROST#Jack Frost#
|
2204,0,0,50:60:70:80:90,0,0,0,99,0,0,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //WL_JACKFROST#Jack Frost#
|
||||||
2205,0,0,40:42:44:46:48,0,0,0,99,0,0,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //WL_MARSHOFABYSS#Marsh of Abyss#
|
2205,0,0,40:42:44:46:48,0,0,0,99,0,0,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //WL_MARSHOFABYSS#Marsh of Abyss#
|
||||||
2206,0,0,100:120:140:160:180,0,0,0,99,0,0,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //WL_RECOGNIZEDSPELL#Recognized Spell#
|
2206,0,0,100:120:140:160:180,0,0,0,99,0,0,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //WL_RECOGNIZEDSPELL#Recognized Spell#
|
||||||
2207,0,0,32:34:36:38:40,0,0,0,99,0,0,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //WL_SIENNAEXECRATE#Sienna Execrate#
|
2207,0,0,32:34:36:38:40,0,0,0,99,0,0,none,0,716,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //WL_SIENNAEXECRATE#Sienna Execrate#
|
||||||
|
|
||||||
2209,0,0,50:60:70:80:90,0,0,0,99,0,0,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //WL_STASIS#Stasis#
|
2209,0,0,50:60:70:80:90,0,0,0,99,0,0,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //WL_STASIS#Stasis#
|
||||||
2210,0,0,20:24:28:32:36,0,0,0,99,0,0,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //WL_DRAINLIFE#Drain Life#
|
2210,0,0,20:24:28:32:36,0,0,0,99,0,0,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //WL_DRAINLIFE#Drain Life#
|
||||||
@ -758,8 +758,8 @@
|
|||||||
2327,0,0,8:9:10:11:12,0,0,0,99,0,0,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //SR_SKYNETBLOW#Sky Net Blow#
|
2327,0,0,8:9:10:11:12,0,0,0,99,0,0,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //SR_SKYNETBLOW#Sky Net Blow#
|
||||||
2328,0,0,36:40:44:48:52,0,0,0,99,0,0,none,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //SR_EARTHSHAKER#Earth Shaker#
|
2328,0,0,36:40:44:48:52,0,0,0,99,0,0,none,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //SR_EARTHSHAKER#Earth Shaker#
|
||||||
2329,0,0,20:30:40:50:60,0,0,0,99,0,0,none,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //SR_FALLENEMPIRE#Fallen Empire#
|
2329,0,0,20:30:40:50:60,0,0,0,99,0,0,none,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //SR_FALLENEMPIRE#Fallen Empire#
|
||||||
2330,0,0,1:2:3:4:5:6:7:8:9:10,-12:-14:-16:-18:-20:-22:-24:-26:-28:-30,-6:-7:-8:-9:-10:-11:-12:-13:-14:-15,0,99,0,0,none,SC_EXPLOSIONSPIRITS,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //SR_TIGERCANNON#Tiger Cannon#
|
2330,0,0,1:2:3:4:5:6:7:8:9:10,0,0,0,99,0,0,none,SC_EXPLOSIONSPIRITS,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //SR_TIGERCANNON#Tiger Cannon#
|
||||||
2331,0,0,1,0,0,0,99,0,0,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //SR_HELLGATE#Hell Gate#
|
2331,0,0,1,0,-11:-12:-13:-14:-15:-16:-17:-18:-19:-20,0,99,0,0,none,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //SR_HELLGATE#Hell Gate#
|
||||||
2332,0,0,150,0,0,0,99,0,0,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //SR_RAMPAGEBLASTER#Rampage Blaster#
|
2332,0,0,150,0,0,0,99,0,0,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //SR_RAMPAGEBLASTER#Rampage Blaster#
|
||||||
2333,0,0,80,0,0,0,99,0,0,none,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //SR_CRESCENTELBOW#Crescent Elbow#
|
2333,0,0,80,0,0,0,99,0,0,none,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //SR_CRESCENTELBOW#Crescent Elbow#
|
||||||
2334,0,0,40:60:80:100:120,-1:-2:-3:-4:-5,0,0,99,0,0,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //SR_CURSEDCIRCLE#Cursed Circle#
|
2334,0,0,40:60:80:100:120,-1:-2:-3:-4:-5,0,0,99,0,0,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //SR_CURSEDCIRCLE#Cursed Circle#
|
||||||
|
@ -1039,6 +1039,13 @@ int64 battle_calc_damage(struct block_list *src,struct block_list *bl,struct Dam
|
|||||||
damage >>= 2; //75% reduction
|
damage >>= 2; //75% reduction
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if( sc->data[SC_SMOKEPOWDER] ) {
|
||||||
|
if( (flag&(BF_SHORT|BF_WEAPON)) == (BF_SHORT|BF_WEAPON) )
|
||||||
|
damage -= 15 * damage / 100; // 15% reduction to physical melee attacks
|
||||||
|
else if( (flag&(BF_LONG|BF_WEAPON)) == (BF_LONG|BF_WEAPON) )
|
||||||
|
damage -= 50 * damage / 100; // 50% reduction to physical ranged attacks
|
||||||
|
}
|
||||||
|
|
||||||
// Compressed code, fixed by map.h [Epoque]
|
// Compressed code, fixed by map.h [Epoque]
|
||||||
if (src->type == BL_MOB) {
|
if (src->type == BL_MOB) {
|
||||||
int i;
|
int i;
|
||||||
@ -2605,7 +2612,7 @@ struct Damage battle_calc_skill_base_damage(struct Damage wd, struct block_list
|
|||||||
}
|
}
|
||||||
#else
|
#else
|
||||||
case NJ_ISSEN:
|
case NJ_ISSEN:
|
||||||
wd.damage = 40*sstatus->str +skill_lv*(sstatus->hp/10 + 35);
|
wd.damage = 40 * sstatus->str + (8 / 100) * skill_lv * sstatus->hp;
|
||||||
wd.damage2 = 0;
|
wd.damage2 = 0;
|
||||||
break;
|
break;
|
||||||
case LK_SPIRALPIERCE:
|
case LK_SPIRALPIERCE:
|
||||||
@ -3137,6 +3144,11 @@ static int battle_calc_attack_skill_ratio(struct Damage wd, struct block_list *s
|
|||||||
skillratio += 20*(skill_lv-1);
|
skillratio += 20*(skill_lv-1);
|
||||||
#endif
|
#endif
|
||||||
break;
|
break;
|
||||||
|
#ifdef RENEWAL
|
||||||
|
case NJ_KUNAI:
|
||||||
|
skillratio *= 3; // 3x300% ATK
|
||||||
|
break;
|
||||||
|
#endif
|
||||||
case NJ_HUUMA:
|
case NJ_HUUMA:
|
||||||
skillratio += 50 + 150*skill_lv;
|
skillratio += 50 + 150*skill_lv;
|
||||||
break;
|
break;
|
||||||
@ -3458,10 +3470,10 @@ static int battle_calc_attack_skill_ratio(struct Damage wd, struct block_list *s
|
|||||||
case SR_TIGERCANNON:// ATK [((Caster consumed HP + SP) / 4) x Caster Base Level / 100] %
|
case SR_TIGERCANNON:// ATK [((Caster consumed HP + SP) / 4) x Caster Base Level / 100] %
|
||||||
{
|
{
|
||||||
int hp = (int64)status_get_max_hp(src) * (10 + 2 * skill_lv) / 100,
|
int hp = (int64)status_get_max_hp(src) * (10 + 2 * skill_lv) / 100,
|
||||||
sp = (int64)status_get_max_sp(src) * (6 + skill_lv) / 100;
|
sp = (int64)status_get_max_sp(src) * (5 + 1 * skill_lv) / 100;
|
||||||
skillratio = ((int64)hp+sp) / 4;
|
skillratio = ((int64)hp+sp) / 4;
|
||||||
if( sc && sc->data[SC_COMBO] && sc->data[SC_COMBO]->val1 == SR_FALLENEMPIRE ) // ATK [((Caster consumed HP + SP) / 2) x Caster Base Level / 100] %
|
if( sc && sc->data[SC_COMBO] && sc->data[SC_COMBO]->val1 == SR_FALLENEMPIRE ) // ATK [((Caster consumed HP + SP) / 2) x Caster Base Level / 100] %
|
||||||
skillratio = (int64)hp+sp / 2;
|
skillratio = ((int64)hp+sp) / 2;
|
||||||
RE_LVL_DMOD(100);
|
RE_LVL_DMOD(100);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
@ -4851,10 +4863,10 @@ struct Damage battle_calc_magic_attack(struct block_list *src,struct block_list
|
|||||||
|
|
||||||
if( skill_id == SO_PSYCHIC_WAVE ) {
|
if( skill_id == SO_PSYCHIC_WAVE ) {
|
||||||
if( sc && sc->count ) {
|
if( sc && sc->count ) {
|
||||||
if( sc->data[SC_HEATER_OPTION] ) s_ele = sc->data[SC_HEATER_OPTION]->val4;
|
if( sc->data[SC_HEATER_OPTION] ) s_ele = sc->data[SC_HEATER_OPTION]->val3;
|
||||||
else if( sc->data[SC_COOLER_OPTION] ) s_ele = sc->data[SC_COOLER_OPTION]->val4;
|
else if( sc->data[SC_COOLER_OPTION] ) s_ele = sc->data[SC_COOLER_OPTION]->val3;
|
||||||
else if( sc->data[SC_BLAST_OPTION] ) s_ele = sc->data[SC_BLAST_OPTION]->val3;
|
else if( sc->data[SC_BLAST_OPTION] ) s_ele = sc->data[SC_BLAST_OPTION]->val3;
|
||||||
else if( sc->data[SC_CURSED_SOIL_OPTION] ) s_ele = sc->data[SC_CURSED_SOIL_OPTION]->val4;
|
else if( sc->data[SC_CURSED_SOIL_OPTION] ) s_ele = sc->data[SC_CURSED_SOIL_OPTION]->val3;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -5219,7 +5231,7 @@ struct Damage battle_calc_magic_attack(struct block_list *src,struct block_list
|
|||||||
skillratio = 60 * skill_lv;
|
skillratio = 60 * skill_lv;
|
||||||
RE_LVL_DMOD(100);
|
RE_LVL_DMOD(100);
|
||||||
if( sc && sc->data[SC_HEATER_OPTION] )
|
if( sc && sc->data[SC_HEATER_OPTION] )
|
||||||
skillratio += sc->data[SC_HEATER_OPTION]->val3;
|
skillratio += sd ? sd->status.job_level / 2 : 0;
|
||||||
break;
|
break;
|
||||||
case SO_ELECTRICWALK:
|
case SO_ELECTRICWALK:
|
||||||
skillratio = 60 * skill_lv;
|
skillratio = 60 * skill_lv;
|
||||||
@ -5231,33 +5243,23 @@ struct Damage battle_calc_magic_attack(struct block_list *src,struct block_list
|
|||||||
skillratio = ( 200 * ((sd) ? pc_checkskill(sd, SA_SEISMICWEAPON) : skill_get_max(SA_SEISMICWEAPON)) + sstatus->int_ * skill_lv );
|
skillratio = ( 200 * ((sd) ? pc_checkskill(sd, SA_SEISMICWEAPON) : skill_get_max(SA_SEISMICWEAPON)) + sstatus->int_ * skill_lv );
|
||||||
RE_LVL_DMOD(100);
|
RE_LVL_DMOD(100);
|
||||||
if( sc && sc->data[SC_CURSED_SOIL_OPTION] )
|
if( sc && sc->data[SC_CURSED_SOIL_OPTION] )
|
||||||
skillratio += sc->data[SC_CURSED_SOIL_OPTION]->val2;
|
skillratio += sd ? sd->status.job_level * 5 : 0;
|
||||||
break;
|
break;
|
||||||
case SO_DIAMONDDUST:
|
case SO_DIAMONDDUST:
|
||||||
skillratio = ( 200 * ((sd) ? pc_checkskill(sd, SA_FROSTWEAPON) : skill_get_max(SA_FROSTWEAPON)) + sstatus->int_ * skill_lv );
|
skillratio = ( 200 * ((sd) ? pc_checkskill(sd, SA_FROSTWEAPON) : skill_get_max(SA_FROSTWEAPON)) + sstatus->int_ * skill_lv );
|
||||||
RE_LVL_DMOD(100);
|
RE_LVL_DMOD(100);
|
||||||
if( sc && sc->data[SC_COOLER_OPTION] )
|
if( sc && sc->data[SC_COOLER_OPTION] )
|
||||||
skillratio += sc->data[SC_COOLER_OPTION]->val3;
|
skillratio += sd ? sd->status.job_level * 5 : 0;
|
||||||
break;
|
break;
|
||||||
case SO_POISON_BUSTER:
|
case SO_POISON_BUSTER:
|
||||||
skillratio += 900 + 300 * skill_lv;
|
skillratio += 900 + 300 * skill_lv;
|
||||||
RE_LVL_DMOD(120);
|
RE_LVL_DMOD(120);
|
||||||
if( sc && sc->data[SC_CURSED_SOIL_OPTION] )
|
if( sc && sc->data[SC_CURSED_SOIL_OPTION] )
|
||||||
skillratio += sc->data[SC_CURSED_SOIL_OPTION]->val2;
|
skillratio += sd ? sd->status.job_level * 5 : 0;
|
||||||
break;
|
break;
|
||||||
case SO_PSYCHIC_WAVE:
|
case SO_PSYCHIC_WAVE:
|
||||||
skillratio = skill_lv * 70 + (sstatus->int_ * 3);
|
skillratio = skill_lv * 70 + (sstatus->int_ * 3);
|
||||||
RE_LVL_DMOD(100);
|
RE_LVL_DMOD(100);
|
||||||
if( sc ){
|
|
||||||
if( sc->data[SC_HEATER_OPTION] )
|
|
||||||
skillratio += sc->data[SC_HEATER_OPTION]->val3;
|
|
||||||
else if(sc->data[SC_COOLER_OPTION] )
|
|
||||||
skillratio += sc->data[SC_COOLER_OPTION]->val3;
|
|
||||||
else if(sc->data[SC_BLAST_OPTION] )
|
|
||||||
skillratio += sc->data[SC_BLAST_OPTION]->val2;
|
|
||||||
else if(sc->data[SC_CURSED_SOIL_OPTION] )
|
|
||||||
skillratio += sc->data[SC_CURSED_SOIL_OPTION]->val3;
|
|
||||||
}
|
|
||||||
break;
|
break;
|
||||||
case SO_VARETYR_SPEAR: //MATK [{( Endow Tornado skill level x 50 ) + ( Caster INT x Varetyr Spear Skill level )} x Caster Base Level / 100 ] %
|
case SO_VARETYR_SPEAR: //MATK [{( Endow Tornado skill level x 50 ) + ( Caster INT x Varetyr Spear Skill level )} x Caster Base Level / 100 ] %
|
||||||
skillratio = status_get_int(src) * skill_lv + ((sd) ? pc_checkskill(sd, SA_LIGHTNINGLOADER) * 50 : skill_get_max(SA_LIGHTNINGLOADER));
|
skillratio = status_get_int(src) * skill_lv + ((sd) ? pc_checkskill(sd, SA_LIGHTNINGLOADER) * 50 : skill_get_max(SA_LIGHTNINGLOADER));
|
||||||
@ -5269,13 +5271,13 @@ struct Damage battle_calc_magic_attack(struct block_list *src,struct block_list
|
|||||||
skillratio = skill_lv * 40;
|
skillratio = skill_lv * 40;
|
||||||
RE_LVL_DMOD(100);
|
RE_LVL_DMOD(100);
|
||||||
if( sc && sc->data[SC_CURSED_SOIL_OPTION] )
|
if( sc && sc->data[SC_CURSED_SOIL_OPTION] )
|
||||||
skillratio += sc->data[SC_CURSED_SOIL_OPTION]->val2;
|
skillratio += sd ? sd->status.job_level : 0;
|
||||||
break;
|
break;
|
||||||
case GN_DEMONIC_FIRE:
|
case GN_DEMONIC_FIRE:
|
||||||
if( skill_lv > 20) // Fire expansion Lv.2
|
if( skill_lv > 20) // Fire expansion Lv.2
|
||||||
skillratio += 110 + 20 * (skill_lv - 20) + status_get_int(src) * 3; // Need official INT bonus. [LimitLine]
|
skillratio += 110 + 20 * (skill_lv - 20) + status_get_int(src) * 10;
|
||||||
else if( skill_lv > 10 ) // Fire expansion Lv.1
|
else if( skill_lv > 10 ) // Fire expansion Lv.1
|
||||||
skillratio += 110 + 20 * (skill_lv - 10) / 2;
|
skillratio += 110 + 20 * (skill_lv - 10) + status_get_int(src) + ((sd) ? sd->status.job_level : 50);
|
||||||
else
|
else
|
||||||
skillratio += 110 + 20 * skill_lv;
|
skillratio += 110 + 20 * skill_lv;
|
||||||
break;
|
break;
|
||||||
@ -5390,9 +5392,8 @@ struct Damage battle_calc_magic_attack(struct block_list *src,struct block_list
|
|||||||
|
|
||||||
if(ad.damage<1)
|
if(ad.damage<1)
|
||||||
ad.damage=1;
|
ad.damage=1;
|
||||||
else if(sc){//only applies when hit
|
else if(sc) { //only applies when hit
|
||||||
// TODO: there is another factor that contribute with the damage and need to be formulated. [malufett]
|
switch(skill_id) {
|
||||||
switch(skill_id){
|
|
||||||
case MG_LIGHTNINGBOLT:
|
case MG_LIGHTNINGBOLT:
|
||||||
case MG_THUNDERSTORM:
|
case MG_THUNDERSTORM:
|
||||||
case MG_FIREBOLT:
|
case MG_FIREBOLT:
|
||||||
@ -5401,8 +5402,7 @@ struct Damage battle_calc_magic_attack(struct block_list *src,struct block_list
|
|||||||
case MG_FROSTDIVER:
|
case MG_FROSTDIVER:
|
||||||
case WZ_EARTHSPIKE:
|
case WZ_EARTHSPIKE:
|
||||||
case WZ_HEAVENDRIVE:
|
case WZ_HEAVENDRIVE:
|
||||||
if(sc->data[SC_GUST_OPTION] || sc->data[SC_PETROLOGY_OPTION]
|
if(sc->data[SC_GUST_OPTION] || sc->data[SC_PETROLOGY_OPTION] || sc->data[SC_PYROTECHNIC_OPTION] || sc->data[SC_AQUAPLAY_OPTION])
|
||||||
|| sc->data[SC_PYROTECHNIC_OPTION] || sc->data[SC_AQUAPLAY_OPTION])
|
|
||||||
ad.damage += (6 + sstatus->int_/4) + max(sstatus->dex-10,0)/30;
|
ad.damage += (6 + sstatus->int_/4) + max(sstatus->dex-10,0)/30;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -5613,6 +5613,11 @@ struct Damage battle_calc_misc_attack(struct block_list *src,struct block_list *
|
|||||||
if (tsd) md.damage>>=1;
|
if (tsd) md.damage>>=1;
|
||||||
#endif
|
#endif
|
||||||
break;
|
break;
|
||||||
|
#ifndef RENEWAL
|
||||||
|
case NJ_KUNAI:
|
||||||
|
md.damage = 90; // 3x90 unreducable, unavoidable, and neutral damage.
|
||||||
|
break;
|
||||||
|
#endif
|
||||||
case NJ_ZENYNAGE:
|
case NJ_ZENYNAGE:
|
||||||
case KO_MUCHANAGE:
|
case KO_MUCHANAGE:
|
||||||
md.damage = skill_get_zeny(skill_id ,skill_lv);
|
md.damage = skill_get_zeny(skill_id ,skill_lv);
|
||||||
@ -6448,6 +6453,20 @@ enum damage_lv battle_weapon_attack(struct block_list* src, struct block_list* t
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if( sd && sc && (sc->data[SC_TROPIC_OPTION] || sc->data[SC_CHILLY_AIR_OPTION] || sc->data[SC_WILD_STORM_OPTION] || sc->data[SC_UPHEAVAL_OPTION]) )
|
||||||
|
{ // Autocast one Bolt depending on status change.
|
||||||
|
int skill_id = 0;
|
||||||
|
if( sc->data[SC_TROPIC_OPTION] ) skill_id = sc->data[SC_TROPIC_OPTION]->val3;
|
||||||
|
else if( sc->data[SC_CHILLY_AIR_OPTION] ) skill_id = sc->data[SC_CHILLY_AIR_OPTION]->val3;
|
||||||
|
else if( sc->data[SC_WILD_STORM_OPTION] ) skill_id = sc->data[SC_WILD_STORM_OPTION]->val2;
|
||||||
|
else if( sc->data[SC_UPHEAVAL_OPTION] ) skill_id = sc->data[SC_UPHEAVAL_OPTION]->val2;
|
||||||
|
|
||||||
|
sd->state.autocast = 1;
|
||||||
|
if( skill_id && rand()%100 < (sd->status.job_level / 2) )
|
||||||
|
skill_castend_damage_id(src, target, skill_id, (int)floor(sd->status.job_level / 10), tick, flag);
|
||||||
|
sd->state.autocast = 0;
|
||||||
|
}
|
||||||
|
|
||||||
if (wd.flag & BF_WEAPON && src != target && damage > 0) {
|
if (wd.flag & BF_WEAPON && src != target && damage > 0) {
|
||||||
if (battle_config.left_cardfix_to_right)
|
if (battle_config.left_cardfix_to_right)
|
||||||
battle_drain(sd, target, wd.damage, wd.damage, tstatus->race, tstatus->class_);
|
battle_drain(sd, target, wd.damage, wd.damage, tstatus->race, tstatus->class_);
|
||||||
|
@ -77,13 +77,13 @@ int elemental_create(struct map_session_data *sd, int class_, unsigned int lifet
|
|||||||
i = db->status.size+1; // summon level
|
i = db->status.size+1; // summon level
|
||||||
|
|
||||||
//[(Caster's Max HP/ 3 ) + (Caster's INT x 10 )+ (Caster's Job Level x 20 )] x [(Elemental Summon Level + 2) / 3]
|
//[(Caster's Max HP/ 3 ) + (Caster's INT x 10 )+ (Caster's Job Level x 20 )] x [(Elemental Summon Level + 2) / 3]
|
||||||
ele.hp = ele.max_hp = (sd->battle_status.max_hp/3 + sd->battle_status.int_*10 + sd->status.job_level) * ((i + 2) / 3);
|
ele.hp = ele.max_hp = (sd->battle_status.max_hp/3 + sd->battle_status.int_*10 + sd->status.job_level*20) * ((i + 2) / 3);
|
||||||
//Caster's Max SP /4
|
//Caster's Max SP /4
|
||||||
ele.sp = ele.max_sp = sd->battle_status.max_sp/4;
|
ele.sp = ele.max_sp = sd->battle_status.max_sp/4;
|
||||||
//Caster's [ Max SP / (18 / Elemental Summon Skill Level) 1- 100 ]
|
//Caster's [ Max SP / (18 / Elemental Summon Skill Level) 1- 100 ]
|
||||||
ele.atk = (sd->battle_status.max_sp / (18 / i) * 1 - 100);
|
ele.atk = (sd->battle_status.max_sp / (18 / i) * 1 - 100);
|
||||||
//Caster's [ Max SP / (18 / Elemental Summon Skill Level) ]
|
//Caster's [ Max SP / (18 / Elemental Summon Skill Level) ]
|
||||||
ele.atk2 = sd->battle_status.max_sp / 18;
|
ele.atk2 = sd->battle_status.max_sp / (18 / i);
|
||||||
//Caster's HIT + (Caster's Base Level)
|
//Caster's HIT + (Caster's Base Level)
|
||||||
ele.hit = sd->battle_status.hit + sd->status.base_level;
|
ele.hit = sd->battle_status.hit + sd->status.base_level;
|
||||||
//[Elemental Summon Skill Level x (Caster's INT / 2 + Caster's DEX / 4)]
|
//[Elemental Summon Skill Level x (Caster's INT / 2 + Caster's DEX / 4)]
|
||||||
|
@ -428,7 +428,7 @@ struct item_data* itemdb_exists(int nameid);
|
|||||||
#define itemdb_viewid(n) (itemdb_search(n)->view_id)
|
#define itemdb_viewid(n) (itemdb_search(n)->view_id)
|
||||||
#define itemdb_autoequip(n) (itemdb_search(n)->flag.autoequip)
|
#define itemdb_autoequip(n) (itemdb_search(n)->flag.autoequip)
|
||||||
#define itemdb_is_rune(n) ((n >= ITEMID_NAUTHIZ && n <= ITEMID_HAGALAZ) || n == ITEMID_LUX_ANIMA)
|
#define itemdb_is_rune(n) ((n >= ITEMID_NAUTHIZ && n <= ITEMID_HAGALAZ) || n == ITEMID_LUX_ANIMA)
|
||||||
#define itemdb_is_element(n) (n >= ITEMID_CRYSTAL_BLUE && n <= ITEMID_YELLOW_LIVE)
|
#define itemdb_is_element(n) (n >= ITEMID_SCARLET_PTS && n <= ITEMID_SCARLET_PTS)
|
||||||
#define itemdb_is_spellbook(n) (n >= ITEMID_MAGIC_BOOK_FB && n <= ITEMID_MAGIC_BOOK_DL)
|
#define itemdb_is_spellbook(n) (n >= ITEMID_MAGIC_BOOK_FB && n <= ITEMID_MAGIC_BOOK_DL)
|
||||||
#define itemdb_is_poison(n) (n >= ITEMID_PARALYSE && n <= ITEMID_VENOMBLEED)
|
#define itemdb_is_poison(n) (n >= ITEMID_PARALYSE && n <= ITEMID_VENOMBLEED)
|
||||||
#define itemid_isgemstone(id) ( (id) >= ITEMID_YELLOW_GEMSTONE && (id) <= ITEMID_BLUE_GEMSTONE )
|
#define itemid_isgemstone(id) ( (id) >= ITEMID_YELLOW_GEMSTONE && (id) <= ITEMID_BLUE_GEMSTONE )
|
||||||
|
109
src/map/skill.c
109
src/map/skill.c
@ -1465,7 +1465,7 @@ int skill_additional_effect (struct block_list* src, struct block_list *bl, uint
|
|||||||
case SO_DIAMONDDUST:
|
case SO_DIAMONDDUST:
|
||||||
rate = 5 + 5 * skill_lv;
|
rate = 5 + 5 * skill_lv;
|
||||||
if( sc && sc->data[SC_COOLER_OPTION] )
|
if( sc && sc->data[SC_COOLER_OPTION] )
|
||||||
rate += rate * sc->data[SC_COOLER_OPTION]->val2 / 100;
|
rate += sd ? sd->status.job_level / 5 : 0;
|
||||||
sc_start(src,bl, SC_CRYSTALIZE, rate, skill_lv, skill_get_time2(skill_id, skill_lv));
|
sc_start(src,bl, SC_CRYSTALIZE, rate, skill_lv, skill_get_time2(skill_id, skill_lv));
|
||||||
break;
|
break;
|
||||||
case SO_VARETYR_SPEAR:
|
case SO_VARETYR_SPEAR:
|
||||||
@ -2740,6 +2740,10 @@ int64 skill_attack (int attack_type, struct block_list* src, struct block_list *
|
|||||||
sp = sp/((skill_lv|1)*(skill_lv|1)); //Estimate SP cost of a single water-ball
|
sp = sp/((skill_lv|1)*(skill_lv|1)); //Estimate SP cost of a single water-ball
|
||||||
status_heal(bl, 0, sp, 2);
|
status_heal(bl, 0, sp, 2);
|
||||||
}
|
}
|
||||||
|
if( (dmg.damage || dmg.damage2) && tsc && tsc->data[SC_HALLUCINATIONWALK] && rand()%100 < tsc->data[SC_HALLUCINATIONWALK]->val3 ) {
|
||||||
|
dmg.damage = dmg.damage2 = 0;
|
||||||
|
dmg.dmg_lv = ATK_MISS;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
damage = dmg.damage + dmg.damage2;
|
damage = dmg.damage + dmg.damage2;
|
||||||
@ -3900,7 +3904,6 @@ int skill_castend_damage_id (struct block_list* src, struct block_list *bl, uint
|
|||||||
case CG_ARROWVULCAN:
|
case CG_ARROWVULCAN:
|
||||||
case HW_MAGICCRASHER:
|
case HW_MAGICCRASHER:
|
||||||
case ITM_TOMAHAWK:
|
case ITM_TOMAHAWK:
|
||||||
case MO_TRIPLEATTACK:
|
|
||||||
case CH_CHAINCRUSH:
|
case CH_CHAINCRUSH:
|
||||||
case CH_TIGERFIST:
|
case CH_TIGERFIST:
|
||||||
case PA_SHIELDCHAIN: // Shield Chain
|
case PA_SHIELDCHAIN: // Shield Chain
|
||||||
@ -3968,7 +3971,8 @@ int skill_castend_damage_id (struct block_list* src, struct block_list *bl, uint
|
|||||||
case NC_PILEBUNKER:
|
case NC_PILEBUNKER:
|
||||||
case NC_COLDSLOWER:
|
case NC_COLDSLOWER:
|
||||||
case NC_ARMSCANNON:
|
case NC_ARMSCANNON:
|
||||||
if (sd) pc_overheat(sd,1);
|
if (sd) pc_overheat(sd, 1);
|
||||||
|
case MO_TRIPLEATTACK:
|
||||||
case RK_WINDCUTTER:
|
case RK_WINDCUTTER:
|
||||||
skill_attack(BF_WEAPON,src,src,bl,skill_id,skill_lv,tick,flag|SD_ANIMATION);
|
skill_attack(BF_WEAPON,src,src,bl,skill_id,skill_lv,tick,flag|SD_ANIMATION);
|
||||||
break;
|
break;
|
||||||
@ -5029,7 +5033,7 @@ int skill_castend_damage_id (struct block_list* src, struct block_list *bl, uint
|
|||||||
clif_skill_fail(sd, skill_id, USESKILL_FAIL_LEVEL, 0);
|
clif_skill_fail(sd, skill_id, USESKILL_FAIL_LEVEL, 0);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
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), splash_target(src), src, skill_id, skill_lv, tick, flag|BCT_ENEMY|1, skill_castend_damage_id);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
@ -8910,10 +8914,9 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, ui
|
|||||||
case SC_UNLUCKY:
|
case SC_UNLUCKY:
|
||||||
case SC_WEAKNESS:
|
case SC_WEAKNESS:
|
||||||
if( !(tsc && tsc->data[type]) ) {
|
if( !(tsc && tsc->data[type]) ) {
|
||||||
//((rand(myDEX / 12, myDEX / 4) + myJobLevel + 10 * skLevel) + myLevel / 10) - (targetLevel / 10 + targetLUK / 10 + (targetMaxWeight - targetWeight) / 1000 + rand(targetAGI / 6, targetAGI / 3))
|
int rate = status_get_lv(src) / 10 + rnd_value(sstatus->dex / 12, sstatus->dex / 4) + ( sd ? sd->status.job_level : 50 ) + 10 * skill_lv
|
||||||
int rate = rnd_value(sstatus->dex/12,sstatus->dex/4) + 10*skill_lv + (sd?sd->status.job_level:0) + status_get_lv(src)/10
|
- (status_get_lv(bl) / 10 + rnd_value(tstatus->agi / 6, tstatus->agi / 3) + tstatus->luk / 10 + ( dstsd ? (dstsd->max_weight / 10 - dstsd->weight / 10 ) / 100 : 0));
|
||||||
- status_get_lv(bl)/10 - tstatus->luk/10 - (dstsd?(dstsd->max_weight-dstsd->weight)/10000:0) - rnd_value(tstatus->agi/6,tstatus->agi/3);
|
rate = cap_value(rate, skill_lv + sstatus->dex / 20, 100);
|
||||||
rate = cap_value(rate, skill_lv+sstatus->dex/20, 100);
|
|
||||||
clif_skill_nodamage(src,bl,skill_id,0,sc_start(src,bl,type,rate,skill_lv,skill_get_time(skill_id,skill_lv)));
|
clif_skill_nodamage(src,bl,skill_id,0,sc_start(src,bl,type,rate,skill_lv,skill_get_time(skill_id,skill_lv)));
|
||||||
} else if( sd )
|
} else if( sd )
|
||||||
clif_skill_fail(sd,skill_id,USESKILL_FAIL_LEVEL,0);
|
clif_skill_fail(sd,skill_id,USESKILL_FAIL_LEVEL,0);
|
||||||
@ -8921,9 +8924,9 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, ui
|
|||||||
|
|
||||||
case SC_IGNORANCE:
|
case SC_IGNORANCE:
|
||||||
if( !(tsc && tsc->data[type]) ) {
|
if( !(tsc && tsc->data[type]) ) {
|
||||||
int rate = rnd_value(sstatus->dex/12,sstatus->dex/4) + 10*skill_lv + (sd?sd->status.job_level:0) + status_get_lv(src)/10
|
int rate = status_get_lv(src) / 10 + rnd_value(sstatus->dex / 12, sstatus->dex / 4) + ( sd ? sd->status.job_level : 50 ) + 10 * skill_lv
|
||||||
- status_get_lv(bl)/10 - tstatus->luk/10 - (dstsd?(dstsd->max_weight-dstsd->weight)/10000:0) - rnd_value(tstatus->agi/6,tstatus->agi/3);
|
- (status_get_lv(bl) / 10 + rnd_value(tstatus->agi / 6, tstatus->agi / 3) + tstatus->luk / 10 + ( dstsd ? (dstsd->max_weight / 10 - dstsd->weight / 10 ) / 100 : 0));
|
||||||
rate = cap_value(rate, skill_lv+sstatus->dex/20, 100);
|
rate = cap_value(rate, skill_lv + sstatus->dex / 20, 100);
|
||||||
if (clif_skill_nodamage(src,bl,skill_id,0,sc_start(src,bl,type,rate,skill_lv,skill_get_time(skill_id,skill_lv)))) {
|
if (clif_skill_nodamage(src,bl,skill_id,0,sc_start(src,bl,type,rate,skill_lv,skill_get_time(skill_id,skill_lv)))) {
|
||||||
int sp = 100 * skill_lv;
|
int sp = 100 * skill_lv;
|
||||||
if( dstmd ) sp = dstmd->level * 2;
|
if( dstmd ) sp = dstmd->level * 2;
|
||||||
@ -11778,6 +11781,7 @@ struct skill_unit_group* skill_unitsetting (struct block_list *src, uint16 skill
|
|||||||
interval = limit;
|
interval = limit;
|
||||||
val2 = 1;
|
val2 = 1;
|
||||||
case WM_POEMOFNETHERWORLD: // Can't be placed on top of Land Protector.
|
case WM_POEMOFNETHERWORLD: // Can't be placed on top of Land Protector.
|
||||||
|
case WM_SEVERE_RAINSTORM:
|
||||||
if( map_getcell(src->m, x, y, CELL_CHKLANDPROTECTOR) )
|
if( map_getcell(src->m, x, y, CELL_CHKLANDPROTECTOR) )
|
||||||
return NULL;
|
return NULL;
|
||||||
break;
|
break;
|
||||||
@ -11789,7 +11793,6 @@ struct skill_unit_group* skill_unitsetting (struct block_list *src, uint16 skill
|
|||||||
break;
|
break;
|
||||||
case SO_VACUUM_EXTREME:
|
case SO_VACUUM_EXTREME:
|
||||||
range++;
|
range++;
|
||||||
|
|
||||||
break;
|
break;
|
||||||
case GN_WALLOFTHORN:
|
case GN_WALLOFTHORN:
|
||||||
if( flag&1 )
|
if( flag&1 )
|
||||||
@ -11999,11 +12002,11 @@ static int skill_unit_onplace (struct skill_unit *src, struct block_list *bl, un
|
|||||||
|
|
||||||
sc = status_get_sc(bl);
|
sc = status_get_sc(bl);
|
||||||
|
|
||||||
if (sc && (sc->data[SC_HOVERING]
|
if (sc && sc->option&OPTION_HIDE && sg->skill_id != WZ_HEAVENDRIVE && sg->skill_id != WL_EARTHSTRAIN)
|
||||||
|| (sc->option&OPTION_HIDE && sg->skill_id != WZ_HEAVENDRIVE && sg->skill_id != WL_EARTHSTRAIN )
|
|
||||||
))
|
|
||||||
return 0; //Hidden characters are immune to AoE skills except to these. [Skotlex]
|
return 0; //Hidden characters are immune to AoE skills except to these. [Skotlex]
|
||||||
//Under hovering characters are immune to trap and ground target skills.
|
|
||||||
|
if (sc && sc->data[SC_HOVERING] && skill_get_inf3(sg->skill_id)&INF3_NO_EFF_HOVERING)
|
||||||
|
return 0; // Under Hovering characters are immune to trap and ground target skills.
|
||||||
|
|
||||||
type = status_skill2sc(sg->skill_id);
|
type = status_skill2sc(sg->skill_id);
|
||||||
sce = (sc && type != -1)?sc->data[type]:NULL;
|
sce = (sc && type != -1)?sc->data[type]:NULL;
|
||||||
@ -12215,13 +12218,13 @@ int skill_unit_onplace_timer (struct skill_unit *src, struct block_list *bl, uns
|
|||||||
tsd = BL_CAST(BL_PC, bl);
|
tsd = BL_CAST(BL_PC, bl);
|
||||||
tsc = status_get_sc(bl);
|
tsc = status_get_sc(bl);
|
||||||
|
|
||||||
if ( tsc && tsc->data[SC_HOVERING] )
|
|
||||||
return 0; //Under hovering characters are immune to trap and ground target skills.
|
|
||||||
|
|
||||||
tstatus = status_get_status_data(bl);
|
tstatus = status_get_status_data(bl);
|
||||||
type = status_skill2sc(sg->skill_id);
|
type = status_skill2sc(sg->skill_id);
|
||||||
skill_id = sg->skill_id;
|
skill_id = sg->skill_id;
|
||||||
|
|
||||||
|
if (tsc && tsc->data[SC_HOVERING] && skill_get_inf3(skill_id)&INF3_NO_EFF_HOVERING)
|
||||||
|
return 0; // Under Hovering characters are immune to trap and ground target skills.
|
||||||
|
|
||||||
if (sg->interval == -1) {
|
if (sg->interval == -1) {
|
||||||
switch (sg->unit_id) {
|
switch (sg->unit_id) {
|
||||||
case UNT_ANKLESNARE: //These happen when a trap is splash-triggered by multiple targets on the same cell.
|
case UNT_ANKLESNARE: //These happen when a trap is splash-triggered by multiple targets on the same cell.
|
||||||
@ -12711,7 +12714,7 @@ int skill_unit_onplace_timer (struct skill_unit *src, struct block_list *bl, uns
|
|||||||
skill_attack(BF_WEAPON,ss,&src->bl,bl,WM_SEVERE_RAINSTORM_MELEE,sg->skill_lv,tick,0);
|
skill_attack(BF_WEAPON,ss,&src->bl,bl,WM_SEVERE_RAINSTORM_MELEE,sg->skill_lv,tick,0);
|
||||||
break;
|
break;
|
||||||
case UNT_NETHERWORLD:
|
case UNT_NETHERWORLD:
|
||||||
if( !(status_get_mode(bl)&MD_BOSS) && ss != bl && battle_check_target(&src->bl, bl, BCT_PARTY) > 0 ) {
|
if( !(status_get_mode(bl)&MD_BOSS) && ss != bl && battle_check_target(&src->bl, bl, BCT_NOPARTY) > 0 ) {
|
||||||
if( !(tsc && tsc->data[type]) ){
|
if( !(tsc && tsc->data[type]) ){
|
||||||
sc_start(ss, bl, type, 100, sg->skill_lv, skill_get_time2(sg->skill_id,sg->skill_lv));
|
sc_start(ss, bl, type, 100, sg->skill_lv, skill_get_time2(sg->skill_id,sg->skill_lv));
|
||||||
sg->limit = DIFF_TICK(tick,sg->tick);
|
sg->limit = DIFF_TICK(tick,sg->tick);
|
||||||
@ -12744,25 +12747,22 @@ int skill_unit_onplace_timer (struct skill_unit *src, struct block_list *bl, uns
|
|||||||
case 1:
|
case 1:
|
||||||
case 2:
|
case 2:
|
||||||
default:
|
default:
|
||||||
sc_start(ss, bl, SC_BURNING, 4 + 4 * sg->skill_lv, sg->skill_lv,
|
sc_start(ss, bl, SC_BURNING, 4 + 4 * sg->skill_lv, sg->skill_lv, skill_get_time2(sg->skill_id, sg->skill_lv));
|
||||||
skill_get_time2(sg->skill_id, sg->skill_lv));
|
skill_attack(skill_get_type(sg->skill_id), ss, &src->bl, bl, sg->skill_id, sg->skill_lv + 10 * sg->val2, tick, 0);
|
||||||
skill_attack(skill_get_type(sg->skill_id), ss, &src->bl, bl,
|
|
||||||
sg->skill_id, sg->skill_lv + 10 * sg->val2, tick, 0);
|
|
||||||
break;
|
break;
|
||||||
case 3:
|
case 3:
|
||||||
skill_attack(skill_get_type(CR_ACIDDEMONSTRATION), ss, &src->bl, bl,
|
skill_attack(skill_get_type(CR_ACIDDEMONSTRATION), ss, &src->bl, bl, CR_ACIDDEMONSTRATION, ((sd) ? pc_checkskill(sd, CR_ACIDDEMONSTRATION) : skill_get_max(CR_ACIDDEMONSTRATION)), tick, 0);
|
||||||
CR_ACIDDEMONSTRATION, ((sd) ? pc_checkskill(sd, CR_ACIDDEMONSTRATION) : skill_get_max(CR_ACIDDEMONSTRATION)), tick, 0);
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case UNT_FIRE_EXPANSION_SMOKE_POWDER:
|
case UNT_FIRE_EXPANSION_SMOKE_POWDER:
|
||||||
sc_start(ss, bl, status_skill2sc(GN_FIRE_EXPANSION_SMOKE_POWDER), 100, sg->skill_lv, 1000);
|
sc_start(ss, bl, status_skill2sc(GN_FIRE_EXPANSION_SMOKE_POWDER), 100, sg->skill_lv, skill_get_time2(sg->skill_id, sg->skill_lv));
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case UNT_FIRE_EXPANSION_TEAR_GAS:
|
case UNT_FIRE_EXPANSION_TEAR_GAS:
|
||||||
sc_start(ss, bl, status_skill2sc(GN_FIRE_EXPANSION_TEAR_GAS), 100, sg->skill_lv, 1000);
|
sc_start(ss, bl, status_skill2sc(GN_FIRE_EXPANSION_TEAR_GAS), 100, sg->skill_lv, skill_get_time2(sg->skill_id, sg->skill_lv));
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case UNT_HELLS_PLANT:
|
case UNT_HELLS_PLANT:
|
||||||
@ -12818,15 +12818,18 @@ int skill_unit_onplace_timer (struct skill_unit *src, struct block_list *bl, uns
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case UNT_VACUUM_EXTREME:
|
case UNT_VACUUM_EXTREME:
|
||||||
{// TODO: official behavior in gvg area. [malufett]
|
{
|
||||||
int sec = sg->limit - DIFF_TICK(tick, sg->tick);
|
int sec = sg->limit - DIFF_TICK(tick, sg->tick);
|
||||||
int range = skill_get_unit_range(sg->skill_id, sg->skill_lv);
|
int range = skill_get_unit_range(sg->skill_id, sg->skill_lv);
|
||||||
|
|
||||||
|
if( tsc && tsc->data[SC_HALLUCINATIONWALK] ) // Don't affect the target if Hallucination Walk is active
|
||||||
|
break;
|
||||||
|
|
||||||
if( tsc && !tsc->data[type] &&
|
if( tsc && !tsc->data[type] &&
|
||||||
distance_xy(src->bl.x, src->bl.y, bl->x, bl->y) <= range)// don't consider outer bounderies
|
distance_xy(src->bl.x, src->bl.y, bl->x, bl->y) <= range) // Don't consider outer boundaries
|
||||||
sc_start(ss, bl, type, 100, sg->skill_lv, sec);
|
sc_start(ss, bl, type, 100, sg->skill_lv, sec);
|
||||||
|
|
||||||
if( unit_is_walking(bl) && // wait until target stop walking
|
if( unit_is_walking(bl) && // Wait until the target has stopped walking
|
||||||
( tsc && tsc->data[type] && tsc->data[type]->val4 >= tsc->data[type]->val3-range ))
|
( tsc && tsc->data[type] && tsc->data[type]->val4 >= tsc->data[type]->val3-range ))
|
||||||
break;
|
break;
|
||||||
|
|
||||||
@ -12834,18 +12837,23 @@ int skill_unit_onplace_timer (struct skill_unit *src, struct block_list *bl, uns
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
if( unit_is_walking(bl) &&
|
if( unit_is_walking(bl) &&
|
||||||
distance_xy(src->bl.x, src->bl.y, bl->x, bl->y) > range )// going outside of boundaries? then force it to stop
|
distance_xy(src->bl.x, src->bl.y, bl->x, bl->y) > range ) // Going outside of boundary? Then force target to stop
|
||||||
unit_stop_walking(bl,1);
|
unit_stop_walking(bl,1);
|
||||||
|
|
||||||
if( !unit_is_walking(bl) &&
|
if( !unit_is_walking(bl) &&
|
||||||
distance_xy(src->bl.x, src->bl.y, bl->x, bl->y) <= range && // only snap if the target is inside the range or
|
distance_xy(src->bl.x, src->bl.y, bl->x, bl->y) <= range && // Only snap if the target is inside the range or
|
||||||
src->bl.x != bl->x && src->bl.y != bl->y){// diagonal position parallel to VE's center
|
src->bl.x != bl->x && src->bl.y != bl->y) { // at a diagonal position parallel to Vacuum Extreme's center
|
||||||
unit_movepos(bl, src->bl.x, src->bl.y, 0, 0);
|
unit_movepos(bl, src->bl.x, src->bl.y, 0, 0);
|
||||||
clif_fixpos(bl);
|
clif_fixpos(bl);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case UNT_BANDING:
|
||||||
|
if( battle_check_target(&src->bl, bl, BCT_ENEMY) > 0 && !(status_get_mode(bl)&MD_BOSS) && !(tsc && tsc->data[SC_BANDING_DEFENCE]) )
|
||||||
|
sc_start(ss, bl, SC_BANDING_DEFENCE, (status_get_lv(src) / 5) + (sg->skill_lv * 5) - (status_get_agi(bl) / 10), 90, skill_get_time2(sg->skill_id, sg->skill_lv));
|
||||||
|
break;
|
||||||
|
|
||||||
case UNT_FIRE_MANTLE:
|
case UNT_FIRE_MANTLE:
|
||||||
if( battle_check_target(&src->bl, bl, BCT_ENEMY) > 0 )
|
if( battle_check_target(&src->bl, bl, BCT_ENEMY) > 0 )
|
||||||
skill_attack(BF_MAGIC,ss,&src->bl,bl,sg->skill_id,sg->skill_lv,tick,0);
|
skill_attack(BF_MAGIC,ss,&src->bl,bl,sg->skill_id,sg->skill_lv,tick,0);
|
||||||
@ -13900,7 +13908,7 @@ bool skill_check_condition_castbegin(struct map_session_data* sd, uint16 skill_i
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
/**
|
/**
|
||||||
* Guilotine Cross
|
* Guillotine Cross
|
||||||
**/
|
**/
|
||||||
case GC_HALLUCINATIONWALK:
|
case GC_HALLUCINATIONWALK:
|
||||||
if( sc && (sc->data[SC_HALLUCINATIONWALK] || sc->data[SC_HALLUCINATIONWALK_POSTDELAY]) ) {
|
if( sc && (sc->data[SC_HALLUCINATIONWALK] || sc->data[SC_HALLUCINATIONWALK_POSTDELAY]) ) {
|
||||||
@ -14198,7 +14206,7 @@ bool skill_check_condition_castbegin(struct map_session_data* sd, uint16 skill_i
|
|||||||
if (!pc_checkequip2(sd,reqeqit,EQI_ACC_L,EQI_MAX)) {
|
if (!pc_checkequip2(sd,reqeqit,EQI_ACC_L,EQI_MAX)) {
|
||||||
char output[128];
|
char output[128];
|
||||||
//clif_skill_fail(sd, skill_id, USESKILL_FAIL_NEED_EQUIPMENT, reqeqit);
|
//clif_skill_fail(sd, skill_id, USESKILL_FAIL_NEED_EQUIPMENT, reqeqit);
|
||||||
sprintf(output,"need to put on [%d] in order to use.",reqeqit);
|
sprintf(output,"Please equip with a %d.",reqeqit); // Officially, some Mechanic skills failure message displays this rather than just "Skill has failed."
|
||||||
clif_colormes(sd,color_table[COLOR_RED],output);
|
clif_colormes(sd,color_table[COLOR_RED],output);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@ -14302,7 +14310,7 @@ bool skill_check_condition_castend(struct map_session_data* sd, uint16 skill_id,
|
|||||||
int maxcount = (skill_id==AM_CANNIBALIZE)? 6-skill_lv : skill_get_maxcount(skill_id,skill_lv);
|
int maxcount = (skill_id==AM_CANNIBALIZE)? 6-skill_lv : skill_get_maxcount(skill_id,skill_lv);
|
||||||
int mob_class = (skill_id==AM_CANNIBALIZE)? summons[skill_lv-1] :MOBID_MARINE_SPHERE;
|
int mob_class = (skill_id==AM_CANNIBALIZE)? summons[skill_lv-1] :MOBID_MARINE_SPHERE;
|
||||||
if(battle_config.land_skill_limit && maxcount>0 && (battle_config.land_skill_limit&BL_PC)) {
|
if(battle_config.land_skill_limit && maxcount>0 && (battle_config.land_skill_limit&BL_PC)) {
|
||||||
i = map_foreachinmap(skill_check_condition_mob_master_sub ,sd->bl.m, BL_MOB, sd->bl.id, mob_class, skill_id, &c);
|
i = map_foreachinmap(skill_check_condition_mob_master_sub, sd->bl.m, BL_MOB, sd->bl.id, mob_class, skill_id, &c);
|
||||||
if(c >= maxcount ||
|
if(c >= maxcount ||
|
||||||
(skill_id==AM_CANNIBALIZE && c != i && battle_config.summon_flora&2))
|
(skill_id==AM_CANNIBALIZE && c != i && battle_config.summon_flora&2))
|
||||||
{ //Fails when: exceed max limit. There are other plant types already out.
|
{ //Fails when: exceed max limit. There are other plant types already out.
|
||||||
@ -14784,8 +14792,8 @@ struct skill_condition skill_get_requirement(struct map_session_data* sd, uint16
|
|||||||
req.sp -= req.sp * (5 + 5 * pc_checkskill(sd,SO_EL_SYMPATHY)) / 100;
|
req.sp -= req.sp * (5 + 5 * pc_checkskill(sd,SO_EL_SYMPATHY)) / 100;
|
||||||
break;
|
break;
|
||||||
case SO_PSYCHIC_WAVE:
|
case SO_PSYCHIC_WAVE:
|
||||||
if( sc && sc->data[SC_BLAST_OPTION] )
|
if( sc && (sc->data[SC_HEATER_OPTION] || sc->data[SC_COOLER_OPTION] || sc->data[SC_CURSED_SOIL_OPTION] || sc->data[SC_BLAST_OPTION]) )
|
||||||
req.sp += req.sp * 150 / 100;
|
req.sp += req.sp * 50 / 100;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -16766,9 +16774,12 @@ static int skill_unit_timer_sub(DBKey key, DBData *data, va_list ap)
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case UNT_FEINTBOMB: {
|
case UNT_FEINTBOMB: {
|
||||||
struct block_list *src = map_id2bl(group->src_id);
|
struct block_list *src = map_id2bl(group->src_id);
|
||||||
if( src )
|
struct status_change *sc;
|
||||||
|
if (src && (sc = status_get_sc(src)) != NULL && sc->data[SC_HIDING]) { // Copycat explodes if caster is still hidden.
|
||||||
map_foreachinrange(skill_area_sub, &group->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, &group->unit->bl, unit->range, splash_target(src), src, SC_FEINTBOMB, group->skill_lv, tick, BCT_ENEMY|SD_ANIMATION|1, skill_castend_damage_id);
|
||||||
|
status_change_end(src, SC_HIDING, INVALID_TIMER);
|
||||||
|
}
|
||||||
skill_delunit(unit);
|
skill_delunit(unit);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -16777,8 +16788,7 @@ static int skill_unit_timer_sub(DBKey key, DBData *data, va_list ap)
|
|||||||
{
|
{
|
||||||
struct block_list *src = map_id2bl(group->src_id);
|
struct block_list *src = map_id2bl(group->src_id);
|
||||||
struct status_change *sc;
|
struct status_change *sc;
|
||||||
if( !src || (sc = status_get_sc(src)) == NULL || !sc->data[SC_BANDING] )
|
if( !src || (sc = status_get_sc(src)) == NULL || !sc->data[SC_BANDING] ) {
|
||||||
{
|
|
||||||
skill_delunit(unit);
|
skill_delunit(unit);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -17874,7 +17884,7 @@ int skill_magicdecoy(struct map_session_data *sd, int nameid) {
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
md = mob_once_spawn_sub(&sd->bl, sd->bl.m, x, y, sd->status.name, class_, "", SZ_SMALL, AI_NONE);
|
md = mob_once_spawn_sub(&sd->bl, sd->bl.m, x, y, sd->status.name, class_, "", SZ_SMALL, AI_NONE);
|
||||||
if( md ) {
|
if( md ) {
|
||||||
struct unit_data *ud = unit_bl2ud(&md->bl);
|
struct unit_data *ud = unit_bl2ud(&md->bl);
|
||||||
md->master_id = sd->bl.id;
|
md->master_id = sd->bl.id;
|
||||||
@ -17939,6 +17949,7 @@ int skill_spellbook (struct map_session_data *sd, int nameid) {
|
|||||||
|
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
int skill_select_menu(struct map_session_data *sd,uint16 skill_id) {
|
int skill_select_menu(struct map_session_data *sd,uint16 skill_id) {
|
||||||
int id, lv, prob, aslvl = 0;
|
int id, lv, prob, aslvl = 0;
|
||||||
nullpo_ret(sd);
|
nullpo_ret(sd);
|
||||||
@ -17948,18 +17959,18 @@ int skill_select_menu(struct map_session_data *sd,uint16 skill_id) {
|
|||||||
status_change_end(&sd->bl,SC_STOP,INVALID_TIMER);
|
status_change_end(&sd->bl,SC_STOP,INVALID_TIMER);
|
||||||
}
|
}
|
||||||
|
|
||||||
if( skill_id >= GS_GLITTERING || skill_get_type(skill_id) != BF_MAGIC ||
|
if( !(skill_get_inf2(sd->status.skill[skill_id].id)&INF2_AUTOSHADOWSPELL) || (id = sd->status.skill[skill_id].id) == 0 || sd->status.skill[skill_id].flag != SKILL_FLAG_PLAGIARIZED ) {
|
||||||
(id = sd->status.skill[skill_id].id) == 0 || sd->status.skill[skill_id].flag != SKILL_FLAG_PLAGIARIZED ) {
|
|
||||||
clif_skill_fail(sd,SC_AUTOSHADOWSPELL,0,0);
|
clif_skill_fail(sd,SC_AUTOSHADOWSPELL,0,0);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
lv = (aslvl + 1) / 2; // The level the skill will be autocasted
|
lv = (aslvl + 1) / 2; // The level the skill will be autocasted
|
||||||
lv = min(lv,sd->status.skill[skill_id].lv);
|
lv = min(lv,sd->status.skill[skill_id].lv);
|
||||||
prob = (aslvl == 10) ? 15 : (30 - 2 * aslvl); // Probability at level 10 was increased to 15.
|
prob = (aslvl >= 10) ? 15 : (30 - 2 * aslvl); // Probability at level 10 was increased to 15.
|
||||||
sc_start4(&sd->bl,&sd->bl,SC__AUTOSHADOWSPELL,100,id,lv,prob,0,skill_get_time(SC_AUTOSHADOWSPELL,aslvl));
|
sc_start4(&sd->bl,&sd->bl,SC__AUTOSHADOWSPELL,100,id,lv,prob,0,skill_get_time(SC_AUTOSHADOWSPELL,aslvl));
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
int skill_elementalanalysis(struct map_session_data* sd, int n, uint16 skill_lv, unsigned short* item_list) {
|
int skill_elementalanalysis(struct map_session_data* sd, int n, uint16 skill_lv, unsigned short* item_list) {
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
|
@ -86,7 +86,7 @@ enum e_skill_inf3 {
|
|||||||
INF3_EFF_SHADOWJUMP = 0x0200, // spell range affected by NJ_SHADOWJUMP
|
INF3_EFF_SHADOWJUMP = 0x0200, // spell range affected by NJ_SHADOWJUMP
|
||||||
INF3_EFF_RADIUS = 0x0400, // spell range affected by WL_RADIUS
|
INF3_EFF_RADIUS = 0x0400, // spell range affected by WL_RADIUS
|
||||||
INF3_EFF_RESEARCHTRAP = 0x0800, // spell range affected by RA_RESEARCHTRAP
|
INF3_EFF_RESEARCHTRAP = 0x0800, // spell range affected by RA_RESEARCHTRAP
|
||||||
//INF3_ = 0x1000, // free
|
INF3_NO_EFF_HOVERING = 0x1000, // Spell that does not affect user that has SC_HOVERING active
|
||||||
INF3_USABLE_WARG = 0x2000, // spell that can be use while riding warg
|
INF3_USABLE_WARG = 0x2000, // spell that can be use while riding warg
|
||||||
INF3_DIS_MADO = 0x4000, // spell that can't be used while in mado
|
INF3_DIS_MADO = 0x4000, // spell that can't be used while in mado
|
||||||
//... add other spell list option here
|
//... add other spell list option here
|
||||||
|
@ -2644,8 +2644,6 @@ static int status_get_spbonus(struct block_list *bl, enum e_status_bonus type) {
|
|||||||
bonus += sc->data[SC_SERVICE4U]->val2;
|
bonus += sc->data[SC_SERVICE4U]->val2;
|
||||||
if(sc->data[SC_MERC_SPUP])
|
if(sc->data[SC_MERC_SPUP])
|
||||||
bonus += sc->data[SC_MERC_SPUP]->val2;
|
bonus += sc->data[SC_MERC_SPUP]->val2;
|
||||||
if(sc->data[SC_RAISINGDRAGON])
|
|
||||||
bonus += (2 + sc->data[SC_RAISINGDRAGON]->val1);
|
|
||||||
if(sc->data[SC_LIFE_FORCE_F])
|
if(sc->data[SC_LIFE_FORCE_F])
|
||||||
bonus += sc->data[SC_LIFE_FORCE_F]->val1;
|
bonus += sc->data[SC_LIFE_FORCE_F]->val1;
|
||||||
}
|
}
|
||||||
@ -3886,7 +3884,6 @@ void status_calc_regen_rate(struct block_list *bl, struct regen_data *regen, str
|
|||||||
|| sc->data[SC_TRICKDEAD]
|
|| sc->data[SC_TRICKDEAD]
|
||||||
|| sc->data[SC_BLEEDING]
|
|| sc->data[SC_BLEEDING]
|
||||||
|| sc->data[SC_MAGICMUSHROOM]
|
|| sc->data[SC_MAGICMUSHROOM]
|
||||||
|| sc->data[SC_RAISINGDRAGON]
|
|
||||||
|| sc->data[SC_SATURDAYNIGHTFEVER]
|
|| sc->data[SC_SATURDAYNIGHTFEVER]
|
||||||
) // No regen
|
) // No regen
|
||||||
regen->flag = 0;
|
regen->flag = 0;
|
||||||
@ -3897,7 +3894,7 @@ void status_calc_regen_rate(struct block_list *bl, struct regen_data *regen, str
|
|||||||
sc->data[SC_MAXIMIZEPOWER] ||
|
sc->data[SC_MAXIMIZEPOWER] ||
|
||||||
#endif
|
#endif
|
||||||
( (bl->type == BL_PC && ((TBL_PC*)bl)->class_&MAPID_UPPERMASK) == MAPID_MONK &&
|
( (bl->type == BL_PC && ((TBL_PC*)bl)->class_&MAPID_UPPERMASK) == MAPID_MONK &&
|
||||||
(sc->data[SC_EXTREMITYFIST] || (sc->data[SC_EXPLOSIONSPIRITS] && (!sc->data[SC_SPIRIT] || sc->data[SC_SPIRIT]->val2 != SL_MONK)))
|
(sc->data[SC_EXTREMITYFIST] || ((sc->data[SC_EXPLOSIONSPIRITS] || sc->data[SC_RAISINGDRAGON]) && (!sc->data[SC_SPIRIT] || sc->data[SC_SPIRIT]->val2 != SL_MONK)))
|
||||||
)
|
)
|
||||||
) // No natural SP regen
|
) // No natural SP regen
|
||||||
regen->flag &=~RGN_SP;
|
regen->flag &=~RGN_SP;
|
||||||
@ -5199,6 +5196,8 @@ static unsigned short status_calc_ematk(struct block_list *bl, struct status_cha
|
|||||||
matk += sc->data[SC_MATKFOOD]->val1;
|
matk += sc->data[SC_MATKFOOD]->val1;
|
||||||
if(sc->data[SC_MANA_PLUS])
|
if(sc->data[SC_MANA_PLUS])
|
||||||
matk += sc->data[SC_MANA_PLUS]->val1;
|
matk += sc->data[SC_MANA_PLUS]->val1;
|
||||||
|
if(sc->data[SC_COOLER_OPTION])
|
||||||
|
matk += sc->data[SC_COOLER_OPTION]->val2;
|
||||||
if(sc->data[SC_AQUAPLAY_OPTION])
|
if(sc->data[SC_AQUAPLAY_OPTION])
|
||||||
matk += sc->data[SC_AQUAPLAY_OPTION]->val2;
|
matk += sc->data[SC_AQUAPLAY_OPTION]->val2;
|
||||||
if(sc->data[SC_CHILLY_AIR_OPTION])
|
if(sc->data[SC_CHILLY_AIR_OPTION])
|
||||||
@ -8397,9 +8396,10 @@ int status_change_start(struct block_list* src, struct block_list* bl,enum sc_ty
|
|||||||
else
|
else
|
||||||
val4 |= battle_config.monster_cloak_check_type&7;
|
val4 |= battle_config.monster_cloak_check_type&7;
|
||||||
break;
|
break;
|
||||||
|
case SC_SIGHTBLASTER:
|
||||||
|
tick = -1; // Duration sent to the client should be infinite
|
||||||
case SC_SIGHT: /* splash status */
|
case SC_SIGHT: /* splash status */
|
||||||
case SC_RUWACH:
|
case SC_RUWACH:
|
||||||
case SC_SIGHTBLASTER:
|
|
||||||
val3 = skill_get_splash(val2, val1); // Val2 should bring the skill-id.
|
val3 = skill_get_splash(val2, val1); // Val2 should bring the skill-id.
|
||||||
val2 = tick/250;
|
val2 = tick/250;
|
||||||
tick_time = 10; // [GodLesZ] tick time
|
tick_time = 10; // [GodLesZ] tick time
|
||||||
@ -8936,6 +8936,7 @@ int status_change_start(struct block_list* src, struct block_list* bl,enum sc_ty
|
|||||||
/* Arch Bishop */
|
/* Arch Bishop */
|
||||||
case SC_RENOVATIO:
|
case SC_RENOVATIO:
|
||||||
val4 = tick / 5000;
|
val4 = tick / 5000;
|
||||||
|
tick = -1; // Duration sent to the client should be infinite
|
||||||
tick_time = 5000;
|
tick_time = 5000;
|
||||||
break;
|
break;
|
||||||
case SC_SECRAMENT:
|
case SC_SECRAMENT:
|
||||||
@ -8947,6 +8948,7 @@ int status_change_start(struct block_list* src, struct block_list* bl,enum sc_ty
|
|||||||
case SC_WEAPONBLOCKING:
|
case SC_WEAPONBLOCKING:
|
||||||
val2 = 10 + 2 * val1; // Chance
|
val2 = 10 + 2 * val1; // Chance
|
||||||
val4 = tick / 3000;
|
val4 = tick / 3000;
|
||||||
|
tick = -1; // Duration sent to the client should be infinite
|
||||||
tick_time = 3000; // [GodLesZ] tick time
|
tick_time = 3000; // [GodLesZ] tick time
|
||||||
break;
|
break;
|
||||||
case SC_TOXIN:
|
case SC_TOXIN:
|
||||||
@ -9047,6 +9049,7 @@ int status_change_start(struct block_list* src, struct block_list* bl,enum sc_ty
|
|||||||
val2 = 50 - 10 * val1; // ASPD
|
val2 = 50 - 10 * val1; // ASPD
|
||||||
val3 = 20 * val1; // CRITICAL
|
val3 = 20 * val1; // CRITICAL
|
||||||
val4 = tick / 1000;
|
val4 = tick / 1000;
|
||||||
|
tick = -1; // Duration sent to the client should be infinite
|
||||||
tick_time = 1000; // [GodLesZ] tick time
|
tick_time = 1000; // [GodLesZ] tick time
|
||||||
break;
|
break;
|
||||||
case SC__ENERVATION:
|
case SC__ENERVATION:
|
||||||
@ -9205,6 +9208,7 @@ int status_change_start(struct block_list* src, struct block_list* bl,enum sc_ty
|
|||||||
val2 = 15 + 5 * val1; // Reflect amount
|
val2 = 15 + 5 * val1; // Reflect amount
|
||||||
val3 = val1*5 + 25; // Number of reflects
|
val3 = val1*5 + 25; // Number of reflects
|
||||||
val4 = tick/1000; // Number of SP cycles (duration)
|
val4 = tick/1000; // Number of SP cycles (duration)
|
||||||
|
tick = -1; // Duration sent to the client should be infinite
|
||||||
tick_time = 1000; // [GodLesZ] tick time
|
tick_time = 1000; // [GodLesZ] tick time
|
||||||
break;
|
break;
|
||||||
case SC_FORCEOFVANGUARD: // This is not the official way to handle it but I think we should use it. [pakpil]
|
case SC_FORCEOFVANGUARD: // This is not the official way to handle it but I think we should use it. [pakpil]
|
||||||
@ -9229,6 +9233,7 @@ int status_change_start(struct block_list* src, struct block_list* bl,enum sc_ty
|
|||||||
val1 += (10 * pc_checkskill(sd,CR_DEFENDER)) * (status_get_lv(bl) / 100);
|
val1 += (10 * pc_checkskill(sd,CR_DEFENDER)) * (status_get_lv(bl) / 100);
|
||||||
break;
|
break;
|
||||||
case SC_BANDING:
|
case SC_BANDING:
|
||||||
|
tick = -1; // Duration sent to the client should be infinite
|
||||||
tick_time = 5000; // [GodLesZ] tick time
|
tick_time = 5000; // [GodLesZ] tick time
|
||||||
break;
|
break;
|
||||||
case SC_MAGNETICFIELD:
|
case SC_MAGNETICFIELD:
|
||||||
@ -9241,6 +9246,7 @@ int status_change_start(struct block_list* src, struct block_list* bl,enum sc_ty
|
|||||||
val3 = (sd?sd->status.job_level:50);
|
val3 = (sd?sd->status.job_level:50);
|
||||||
}
|
}
|
||||||
val4 = tick / 5000;
|
val4 = tick / 5000;
|
||||||
|
tick = -1; // Duration sent to the client should be infinite
|
||||||
tick_time = 5000; // [GodLesZ] tick time
|
tick_time = 5000; // [GodLesZ] tick time
|
||||||
status_change_clear_buffs(bl,3); // Remove buffs/debuffs
|
status_change_clear_buffs(bl,3); // Remove buffs/debuffs
|
||||||
break;
|
break;
|
||||||
@ -9274,25 +9280,26 @@ int status_change_start(struct block_list* src, struct block_list* bl,enum sc_ty
|
|||||||
val4 = ( status_get_vit(src)/4 ) * val1; // STAT DEF increase: [(Caster VIT / 4) x Skill Level]
|
val4 = ( status_get_vit(src)/4 ) * val1; // STAT DEF increase: [(Caster VIT / 4) x Skill Level]
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
case SC_PYROTECHNIC_OPTION:
|
||||||
|
val2 = 60;
|
||||||
|
break;
|
||||||
case SC_HEATER_OPTION:
|
case SC_HEATER_OPTION:
|
||||||
val2 = 120; // !TODO: Watk. Renewal (Atk2)
|
val2 = 120; // Watk. Renewal (Atk2)
|
||||||
val3 = 33; // % Increase effects.
|
val3 = ELE_FIRE; // Change into fire element.
|
||||||
val4 = 3; // Change into fire element.
|
|
||||||
break;
|
break;
|
||||||
case SC_TROPIC_OPTION:
|
case SC_TROPIC_OPTION:
|
||||||
val2 = 180; // !TODO: Watk. Renewal (Atk2)
|
val2 = 180; // Watk. Renewal (Atk2)
|
||||||
val3 = MG_FIREBOLT;
|
val3 = MG_FIREBOLT;
|
||||||
break;
|
break;
|
||||||
case SC_AQUAPLAY_OPTION:
|
case SC_AQUAPLAY_OPTION:
|
||||||
val2 = 40;
|
val2 = 40;
|
||||||
break;
|
break;
|
||||||
case SC_COOLER_OPTION:
|
case SC_COOLER_OPTION:
|
||||||
val2 = 80; // % Freezing chance
|
val2 = 80;
|
||||||
val3 = 33; // % increased damage
|
val3 = ELE_WATER; // Change into water element.
|
||||||
val4 = 1; // Change into water elemet
|
|
||||||
break;
|
break;
|
||||||
case SC_CHILLY_AIR_OPTION:
|
case SC_CHILLY_AIR_OPTION:
|
||||||
val2 = 120; // !TODO: Matk. Renewal (Matk1)
|
val2 = 120; // Matk. Renewal (Matk1)
|
||||||
val3 = MG_COLDBOLT;
|
val3 = MG_COLDBOLT;
|
||||||
break;
|
break;
|
||||||
case SC_WIND_STEP_OPTION:
|
case SC_WIND_STEP_OPTION:
|
||||||
@ -9300,7 +9307,7 @@ int status_change_start(struct block_list* src, struct block_list* bl,enum sc_ty
|
|||||||
break;
|
break;
|
||||||
case SC_BLAST_OPTION:
|
case SC_BLAST_OPTION:
|
||||||
val2 = 20;
|
val2 = 20;
|
||||||
val3 = ELE_WIND;
|
val3 = ELE_WIND; // Change into wind element.
|
||||||
break;
|
break;
|
||||||
case SC_WILD_STORM_OPTION:
|
case SC_WILD_STORM_OPTION:
|
||||||
val2 = MG_LIGHTNINGBOLT;
|
val2 = MG_LIGHTNINGBOLT;
|
||||||
@ -9311,8 +9318,7 @@ int status_change_start(struct block_list* src, struct block_list* bl,enum sc_ty
|
|||||||
break;
|
break;
|
||||||
case SC_CURSED_SOIL_OPTION:
|
case SC_CURSED_SOIL_OPTION:
|
||||||
val2 = 10; //HP rate bonus
|
val2 = 10; //HP rate bonus
|
||||||
val3 = 33;
|
val3 = ELE_EARTH; // Change into earth element.
|
||||||
val4 = 2;
|
|
||||||
break;
|
break;
|
||||||
case SC_UPHEAVAL_OPTION:
|
case SC_UPHEAVAL_OPTION:
|
||||||
val2 = WZ_EARTHSPIKE;
|
val2 = WZ_EARTHSPIKE;
|
||||||
@ -9324,7 +9330,7 @@ int status_change_start(struct block_list* src, struct block_list* bl,enum sc_ty
|
|||||||
case SC_WATER_DROP_OPTION:
|
case SC_WATER_DROP_OPTION:
|
||||||
case SC_WIND_CURTAIN_OPTION:
|
case SC_WIND_CURTAIN_OPTION:
|
||||||
case SC_STONE_SHIELD_OPTION:
|
case SC_STONE_SHIELD_OPTION:
|
||||||
val2 = 20; // Elemental modifier. Not confirmed.
|
val2 = 100; // Elemental modifier.
|
||||||
break;
|
break;
|
||||||
case SC_CIRCLE_OF_FIRE:
|
case SC_CIRCLE_OF_FIRE:
|
||||||
case SC_FIRE_CLOAK:
|
case SC_FIRE_CLOAK:
|
||||||
@ -9342,7 +9348,7 @@ int status_change_start(struct block_list* src, struct block_list* bl,enum sc_ty
|
|||||||
val3 = 20; // Reductions. Atk2, Flee1, Matk1 ????
|
val3 = 20; // Reductions. Atk2, Flee1, Matk1 ????
|
||||||
break;
|
break;
|
||||||
case SC_ZEPHYR:
|
case SC_ZEPHYR:
|
||||||
val2 = 22; // Flee.
|
val2 = 25; // Flee.
|
||||||
break;
|
break;
|
||||||
case SC_TIDAL_WEAPON:
|
case SC_TIDAL_WEAPON:
|
||||||
val2 = 20; // Increase Elemental's attack.
|
val2 = 20; // Increase Elemental's attack.
|
||||||
@ -9354,6 +9360,16 @@ int status_change_start(struct block_list* src, struct block_list* bl,enum sc_ty
|
|||||||
case SC_POWER_OF_GAIA:
|
case SC_POWER_OF_GAIA:
|
||||||
val2 = 20; //HP rate bonus
|
val2 = 20; //HP rate bonus
|
||||||
break;
|
break;
|
||||||
|
case SC_TEARGAS:
|
||||||
|
val3 = status_get_max_hp(bl) * 5 / 100; // Drain 5% HP
|
||||||
|
val4 = tick / 2000;
|
||||||
|
tick_time = 2000;
|
||||||
|
sc_start(src, bl, SC_TEARGAS_SOB, 100, 0, 1|2|8); // Sob Emoticon
|
||||||
|
break;
|
||||||
|
case SC_TEARGAS_SOB:
|
||||||
|
val4 = tick / 3000;
|
||||||
|
tick_time = 3000;
|
||||||
|
break;
|
||||||
case SC_MELON_BOMB:
|
case SC_MELON_BOMB:
|
||||||
case SC_BANANA_BOMB:
|
case SC_BANANA_BOMB:
|
||||||
val1 = 15;
|
val1 = 15;
|
||||||
@ -9371,6 +9387,8 @@ int status_change_start(struct block_list* src, struct block_list* bl,enum sc_ty
|
|||||||
val3 = val1 * 2;
|
val3 = val1 * 2;
|
||||||
case SC_IZAYOI:
|
case SC_IZAYOI:
|
||||||
val2 = tick/1000;
|
val2 = tick/1000;
|
||||||
|
if( type == SC_IZAYOI )
|
||||||
|
tick = -1; // Duration sent to the client should be infinite
|
||||||
tick_time = 1000;
|
tick_time = 1000;
|
||||||
break;
|
break;
|
||||||
case SC_ZANGETSU:
|
case SC_ZANGETSU:
|
||||||
@ -9465,11 +9483,13 @@ int status_change_start(struct block_list* src, struct block_list* bl,enum sc_ty
|
|||||||
val2 = 6 - val1;
|
val2 = 6 - val1;
|
||||||
tick_time = 1000;
|
tick_time = 1000;
|
||||||
val4 = tick / tick_time;
|
val4 = tick / tick_time;
|
||||||
|
tick = -1; // Duration sent to the client should be infinite
|
||||||
break;
|
break;
|
||||||
case SC_KINGS_GRACE:
|
case SC_KINGS_GRACE:
|
||||||
val2 = 3 + val1; //HP Recover rate
|
val2 = 3 + val1; //HP Recover rate
|
||||||
tick_time = 1000;
|
tick_time = 1000;
|
||||||
val4 = tick / tick_time;
|
val4 = tick / tick_time;
|
||||||
|
tick = -1; // Duration sent to the client should be infinite
|
||||||
break;
|
break;
|
||||||
case SC_TELEKINESIS_INTENSE:
|
case SC_TELEKINESIS_INTENSE:
|
||||||
val2 = 10 * val1; // sp consum / casttime reduc %
|
val2 = 10 * val1; // sp consum / casttime reduc %
|
||||||
@ -9484,6 +9504,7 @@ int status_change_start(struct block_list* src, struct block_list* bl,enum sc_ty
|
|||||||
val3 = 1000 + 100 * val1; // healing
|
val3 = 1000 + 100 * val1; // healing
|
||||||
tick_time = 10000;
|
tick_time = 10000;
|
||||||
val4 = tick / tick_time;
|
val4 = tick / tick_time;
|
||||||
|
tick = -1; // Duration sent to the client should be infinite
|
||||||
break;
|
break;
|
||||||
case SC_FLASHCOMBO:
|
case SC_FLASHCOMBO:
|
||||||
val2 = (20 * val1) + 20; // atk bonus
|
val2 = (20 * val1) + 20; // atk bonus
|
||||||
@ -11589,6 +11610,18 @@ int status_change_timer(int tid, unsigned int tick, int id, intptr_t data)
|
|||||||
sc_timer_next(2000 + tick, status_change_timer, bl->id, data);
|
sc_timer_next(2000 + tick, status_change_timer, bl->id, data);
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
|
case SC_TEARGAS:
|
||||||
|
if(!status_charge(bl, 0, sce->val3))
|
||||||
|
break; // Not enough HP to continue.
|
||||||
|
sc_timer_next(2000 + tick, status_change_timer, bl->id, data);
|
||||||
|
break;
|
||||||
|
case SC_TEARGAS_SOB:
|
||||||
|
if( --(sce->val4) >= 0 ) {
|
||||||
|
clif_emotion(bl, E_SOB);
|
||||||
|
sc_timer_next(3000 + tick, status_change_timer, bl->id, data);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
break;
|
||||||
case SC_STOMACHACHE:
|
case SC_STOMACHACHE:
|
||||||
if( --(sce->val4) > 0 ) {
|
if( --(sce->val4) > 0 ) {
|
||||||
status_charge(bl,0,sce->val2); // Reduce 8 every 10 seconds.
|
status_charge(bl,0,sce->val2); // Reduce 8 every 10 seconds.
|
||||||
|
@ -697,6 +697,8 @@ typedef enum sc_type {
|
|||||||
|
|
||||||
SC_ALL_RIDING,
|
SC_ALL_RIDING,
|
||||||
|
|
||||||
|
SC_TEARGAS_SOB,
|
||||||
|
|
||||||
#ifdef RENEWAL
|
#ifdef RENEWAL
|
||||||
SC_EXTREMITYFIST2, //! NOTE: This SC should be right before SC_MAX, so it doesn't disturb if RENEWAL is disabled
|
SC_EXTREMITYFIST2, //! NOTE: This SC should be right before SC_MAX, so it doesn't disturb if RENEWAL is disabled
|
||||||
#endif
|
#endif
|
||||||
|
@ -2194,7 +2194,7 @@ static int unit_attack_timer(int tid, unsigned int tick, int id, intptr_t data)
|
|||||||
* &2: Cancel only if skill is cancellable
|
* &2: Cancel only if skill is cancellable
|
||||||
* @return Success(1); Fail(0);
|
* @return Success(1); Fail(0);
|
||||||
*/
|
*/
|
||||||
int unit_skillcastcancel(struct block_list *bl,int type)
|
int unit_skillcastcancel(struct block_list *bl, char type)
|
||||||
{
|
{
|
||||||
struct map_session_data *sd = NULL;
|
struct map_session_data *sd = NULL;
|
||||||
struct unit_data *ud = unit_bl2ud( bl);
|
struct unit_data *ud = unit_bl2ud( bl);
|
||||||
@ -2232,7 +2232,7 @@ int unit_skillcastcancel(struct block_list *bl,int type)
|
|||||||
|
|
||||||
ud->skilltimer = INVALID_TIMER;
|
ud->skilltimer = INVALID_TIMER;
|
||||||
|
|
||||||
if( sd && pc_checkskill(sd,SA_FREECAST) > 0 )
|
if( sd && (pc_checkskill(sd,SA_FREECAST) > 0 || skill_id == LG_EXEEDBREAK) )
|
||||||
status_calc_bl(&sd->bl, SCB_SPEED);
|
status_calc_bl(&sd->bl, SCB_SPEED);
|
||||||
|
|
||||||
if( sd ) {
|
if( sd ) {
|
||||||
|
@ -115,7 +115,7 @@ int unit_skilluse_id2(struct block_list *src, int target_id, uint16 skill_id, ui
|
|||||||
int unit_skilluse_pos2( struct block_list *src, short skill_x, short skill_y, uint16 skill_id, uint16 skill_lv, int casttime, int castcancel);
|
int unit_skilluse_pos2( struct block_list *src, short skill_x, short skill_y, uint16 skill_id, uint16 skill_lv, int casttime, int castcancel);
|
||||||
|
|
||||||
// Cancel unit cast
|
// Cancel unit cast
|
||||||
int unit_skillcastcancel(struct block_list *bl,int type);
|
int unit_skillcastcancel(struct block_list *bl, char type);
|
||||||
|
|
||||||
int unit_counttargeted(struct block_list *bl);
|
int unit_counttargeted(struct block_list *bl);
|
||||||
int unit_set_target(struct unit_data* ud, int target_id);
|
int unit_set_target(struct unit_data* ud, int target_id);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user