diff --git a/db/pre-re/item_db.txt b/db/pre-re/item_db.txt index 5ed83e78e3..45e0eb19ef 100644 --- a/db/pre-re/item_db.txt +++ b/db/pre-re/item_db.txt @@ -4929,7 +4929,7 @@ 12380,Desert_Wolf_Babe_Scroll,Job Change Flute,2,10,,10,,,,,0xFFFFFFFF,7,2,,,,,,{ mercenary_create 2034,1800000; },{},{} 12381,ValkyrieA_Scroll,Ancient Languages Scroll,2,10,,10,,,,,0xFFFFFFFF,7,2,,,,,,{ if(strcharinfo(3)=="job3_arch02") { mercenary_create 2037,1800000; } },{},{} 12382,ValkyrieB_Scroll,Ancient Languages Scroll,2,10,,10,,,,,0xFFFFFFFF,7,2,,,,,,{ if(strcharinfo(3)=="job3_arch02") { mercenary_create 2038,1800000; } },{},{} -12383,Vulcan_Bullet_Magazine,Vulcan Bullet Magazine,2,11000,,500,,,,,0xFFFFFFFF,7,2,,,,,,{},{},{} +12383,Vulcan_Bullet_Magazine,Vulcan Bullet Magazine,2,11000,,500,,,,,0xFFFFFFFF,7,2,,,,,,{ getitem 6145,1000; },{},{} 12384,Rainbow_Ruby_Water,Rainbow Ruby,11,0,,50,,,,,0xFFFFFFFF,7,2,,,,,,{ /* if(strcharinfo(3)=="job3_war02") { itemskill "WL_FROSTMISTY",5; } */ },{},{} 12385,Rainbow_Ruby_Fire,Rainbow Ruby,11,0,,50,,,,,0xFFFFFFFF,7,2,,,,,,{ /* if(strcharinfo(3)=="job3_war02") { itemskill "WL_CRIMSONROCK",5; } */ },{},{} 12386,Rainbow_Ruby_Wind,Rainbow Ruby,11,0,,50,,,,,0xFFFFFFFF,7,2,,,,,,{ /* if(strcharinfo(3)=="job3_war02") { itemskill "WL_CHAINLIGHTNING",5; } */ },{},{} @@ -4938,9 +4938,9 @@ 12389,Runstone_Storm,Pertz Runestone For Apprentice,11,0,,10,,,,,0xFFFFFFFF,7,2,,,,,,{ /* if(strcharinfo(3)=="job3_rune02") { itemskill "RK_STORMBLAST",1; } */ },{},{} 12390,Runstone_Millennium,Verkana Runestone For Apprentice,11,0,,10,,,,,0xFFFFFFFF,7,2,,,,,,{ /* if(strcharinfo(3)=="job3_rune02") { itemskill "RK_MILLENNIUMSHIELD",1; } */ },{},{} 12391,Lucky_Egg_C,Lucky Egg,2,0,,10,,,,,0xFFFFFFFF,7,2,,,,,,{},{},{} -12392,Repair_A,Repair A,0,220,,70,,,,,0x00000400,8,2,,,,,,{/* madoheal rand(200,300),0; */},{},{} -12393,Repair_B,Repair B,0,500,,70,,,,,0x00000400,8,2,,,,,,{/* madoheal rand(300,400),0; */},{},{} -12394,Repair_C,Repair C,0,1100,,70,,,,,0x00000400,8,2,,,,,,{/* madoheal rand(400,500),0; */},{},{} +12392,Repair_A,Repair A,2,220,,100,,,,,0x00000400,8,2,,,,,,{ if ( checkmadogear() ) { itemheal rand(200,300),0; } },{},{} +12393,Repair_B,Repair B,2,500,,140,,,,,0x00000400,8,2,,,,,,{ if ( checkmadogear() ) { itemheal rand(300,400),0; } },{},{} +12394,Repair_C,Repair C,2,1100,,180,,,,,0x00000400,8,2,,,,,,{ if ( checkmadogear() ) { itemheal rand(400,500),0; } },{},{} 12395,Tantanmen,Tantan Noodle,2,20,,50,,,,,0xFFFFFFFF,7,2,,,,,,{ pet 1519; },{},{} 12396,Fools_Day_Box,Gift Box?,11,20,,10,,,,,0xFFFFFFFF,7,2,,,,,,{ if(rand(1,10)==1) itemskill "AL_TELEPORT",1; else if(rand(1,10)==2) itemskill "AL_TELEPORT",3; else if(rand(1,10)==3) percentheal 50,0; else if(rand(1,10)==4) percentheal 0,50; else if(rand(1,10)==5) end; else if(rand(1,10)==6) getitem 512,1; else if(rand(1,10)==7) itemskill "ALL_REVERSEORCISH",1; else if(rand(1,10)==8) specialeffect2 247; else if(rand(1,10)==9) specialeffect2 338; else specialeffect2 10; },{},{} 12397,Fools_Day_Box2,Gift Box?,11,20,,10,,,,,0xFFFFFFFF,7,2,,,,,,{ if(rand(1,10)==1) itemskill "TF_DETOXIFY",1; else if(rand(1,10)==2) itemskill "TF_PICKSTONE",1; else if(rand(1,10)==3) itemskill "BA_FROSTJOKER",1; else if(rand(1,10)==4) itemskill "DC_SCREAM",1; else if(rand(1,10)==5) end; else if(rand(1,10)==6) getitem 909,1; else if(rand(1,10)==7) itemskill "AL_RUWACH",1; else if(rand(1,10)==8) specialeffect2 328; else if(rand(1,10)==9) specialeffect2 68; else specialeffect2 196; },{},{} @@ -4963,11 +4963,11 @@ 12414,Guarana_Candy,Guarana Candy,2,20,,10,,,,,0xFFFFFFFF,7,2,,,,,,{ sc_start SC_ASPDPOTION0,1800000,0; sc_start SC_INCREASEAGI,140000,5; skilleffect "AL_INCAGI",0; },{},{} 12415,Siege_Teleport_Scroll2,Siege Teleport Scroll Silver,2,0,,10,,,,,0xFFFFFFFF,7,2,,,,,,{},{},{} 12416,Lucky_Egg_C3,Lucky Egg C3,2,20,,10,,,,,0xFFFFFFFF,7,2,,,,,,{},{},{} -12417,Boost500,Boost500,2,100,,50,,,,,0xFFFFFFFF,7,2,,,,,,{},{},{} -12418,Full_SwingK,Full SwingK,2,100,,50,,,,,0xFFFFFFFF,7,2,,,,,,{},{},{} -12419,Mana_Plus,Mana Plus,2,100,,50,,,,,0xFFFFFFFF,7,2,,,,,,{},{},{} -12420,Stamina_Up_M,Stamina Up M,2,100,,50,,,,,0xFFFFFFFF,7,2,,,,,,{},{},{} -12421,Falmons_F,Falmons F,3,10,,10,,,,,,,,,,,,,{},{},{} +12417,Boost500,Boost500,2,100,,50,,,,,0xFFFFFFFF,7,2,,,,,,{ sc_start SC_BOOST500,500000,10; },{},{} +12418,Full_SwingK,Full SwingK,2,100,,50,,,,,0xFFFFFFFF,7,2,,,,,,{ sc_start SC_FULL_SWING_K,500000,50; },{},{} +12419,Mana_Plus,Mana Plus,2,100,,50,,,,,0xFFFFFFFF,7,2,,,,,,{ sc_start SC_MANA_PLUS,500000,50; },{},{} +12420,Stamina_Up_M,Stamina Up M,2,100,,50,,,,,0xFFFFFFFF,7,2,,,,,,{ sc_start SC_MUSTLE_M,500000,5; },{},{} +12421,Falmons_F,Falmons F,3,10,,10,,,,,0xFFFFFFFF,7,2,,,,,,{ sc_start SC_LIFE_FORCE_F,500000,5; },{},{} 12422,HP_Increase_Potion_(Small),HP Increase Potion (Small),0,10,,10,,,,,0xFFFFFFFF,63,2,,,,,,{ sc_start SC_INCMHP,500000,(500+(BaseLevel*10/3)); percentheal 1,0; },{},{} 12423,HP_Increase_Potion_(Medium),HP Increase Potion (Medium),0,10,,10,,,,,0xFFFFFFFF,63,2,,,,,,{ sc_start SC_INCMHP,500000,(1500+(BaseLevel*10/3)); percentheal 2,0; },{},{} 12424,HP_Increase_Potion_(Large),HP Increase Potion (Large),0,10,,10,,,,,0xFFFFFFFF,63,2,,,,,,{ sc_start SC_INCMHP,500000,(2500+(BaseLevel*10/3)); percentheal 5,0; },{},{} diff --git a/db/pre-re/skill_cast_db.txt b/db/pre-re/skill_cast_db.txt index 9112c81877..bc9b90e9bc 100644 --- a/db/pre-re/skill_cast_db.txt +++ b/db/pre-re/skill_cast_db.txt @@ -1083,12 +1083,10 @@ 2005,0,0,0,15000,0,2000 //-- RK_IGNITIONBREAK 2006,1000,0,0,0,0,2000 - //-- RK_DRAGONBREATH 2008,0:0:0:1000:1000:1000:1500:1500:2000:2000,2000,0,10000,0,0 //-- RK_DRAGONHOWLING 2009,0,0,0,15000,0,10000 - //-- RK_MILLENNIUMSHIELD 2011,0,1000,0,180000,0,60000 //-- RK_CRUSHSTRIKE @@ -1116,11 +1114,8 @@ 2022,0,2500:2000:1500:1000:500,0,0,0,0 //-- GC_DARKILLUSION 2023,0,1500,0,0,0,0 - //-- GC_CREATENEWPOISON 2025,0,500,0,0,0,0 -//-- GC_ANTIDOTE -2026,0,0,0,0,0,0 //-- GC_POISONINGWEAPON 2027,0,1000,0,60000:120000:180000:240000:300000,300000,0 //-- GC_WEAPONBLOCKING @@ -1128,11 +1123,11 @@ //-- GC_COUNTERSLASH 2029,0,2000,0,0,0,0 //-- GC_WEAPONCRUSH -2030,0,1000,0,60000,0,0 +2030,0,1000,0,75000:90000:105000:120000:135000,0,0 //-- GC_VENOMPRESSURE 2031,0,1000,0,0,0,0 //-- GC_POISONSMOKE -2032,0,2000,0,6000:8000:10000:12000:14000,0,0 +2032,0,2000,0,10000:12000:14000:16000:18000,0,0 //-- GC_CLOAKINGEXCEED 2033,0,2000,0,0,0,0 //-- GC_PHANTOMMENACE @@ -1168,7 +1163,6 @@ 2047,1000,0,0,60000,0,3000 //-- AB_LAUDARAMUS 2048,1000,0,0,60000,0,3000 - //-- AB_RENOVATIO 2050,3000,0,0,90000,0,0 //-- AB_HIGHNESSHEAL @@ -1179,7 +1173,6 @@ 2053,1000,0,0,150000:180000:210000:240000:270000,0,0 //-- AB_DUPLELIGHT 2054,2000,1000,0,90000:120000:150000:180000:210000:240000:270000:300000:330000:360000,0,0 - //-- AB_SILENTIUM 2057,4000,0,0,20000:30000:40000:50000:60000,0,15000 //========================================== @@ -1199,7 +1192,6 @@ 2206,1000,1000,0,60000:90000:120000:150000:180000,0,50000:80000:110000:140000:170000 //-- WL_SIENNAEXECRATE 2207,2000,2000,0,10000:12000:14000:16000:18000,0,0 - //-- WL_STASIS 2209,3000,1000,0,10000:15000:20000:25000:30000,0,300000 //-- WL_DRAINLIFE @@ -1212,12 +1204,10 @@ 2213,10000:11000:12000:13000:14000,0,0,15000,0,60000 //-- WL_CHAINLIGHTNING 2214,3500:4000:4500:5000:5500,0,0,100,0,3000 - //-- WL_EARTHSTRAIN 2216,2000:3000:4000:5000:6000,1000,0,150,75000:90000:105000:120000:135000,10000 //-- WL_TETRAVORTEX 2217,5000:6000:7000:8000:9000,2000,0,20000,0,15000 - //-- WL_SUMMONFB 2222,2000,0,0,120000:160000:200000:240000:280000,0,0 //-- WL_SUMMONBL @@ -1226,38 +1216,33 @@ 2224,2000,0,0,120000:160000:200000:240000:280000,0,0 //-- WL_SUMMONSTONE 2229,2000,0,0,120000:160000:200000:240000:280000,0,0 - //-- WL_READING_SB 2231,5000,500,0,0,0,0 //========================================== //===== Ranger ============================= //-- RA_ARROWSTORM -2233,2000:2200:2400:2600:2800,0,0,0,0,5400:5600:5800:6000:6400 +2233,2000:2200:2400:2600:2800:3000:3200:3400:3600:3800,0,0,0,0,5000:4800:4600:4400:4200:4000:3800:3600:3400:3200 //-- RA_FEARBREEZE 2234,2000,0,0,60000:90000:120000:150000:180000,0,0 - //-- RA_AIMEDBOLT 2236,4000,1000,0,0,0,0 //-- RA_DETONATOR 2237,0,0,0,1000,0,0 //-- RA_ELECTRICSHOCKER -2238,0,0,0,15000,20000:22000:24000:26000,0 +2238,0,0,0,15000,20000:22000:24000:26000:28000,0 //-- RA_CLUSTERBOMB 2239,0,0,0,15000,0,0 //-- RA_WUGMASTERY 2240,0,1000,0,0,0,0 //-- RA_WUGRIDER 2241,0,500,0,0,0,0 - //-- RA_WUGBITE 2244,0,2000,0,1000:2000:3000:4000:5000,0,4000:6000:8000:10000:12000 - //-- RA_SENSITIVEKEEN 2246,0,3000,0,0,0,0 //-- RA_CAMOUFLAGE 2247,0,0,0,10000,0,0 - //-- RA_MAGENTATRAP 2249,0,2000,0,15000,10000,0 //-- RA_COBALTTRAP @@ -1280,20 +1265,19 @@ //-- NC_VULCANARM 2258,0,300:200:100,0,0,0,0 //-- NC_FLAMELAUNCHER -2259,1000:1500:2000,1500:1000:500,0,7000:14000:21000,0,0 +2259,500:1000:1500,1500:1000:500,0,7000:14000:21000,0,0 //-- NC_COLDSLOWER 2260,1000,1000:2000:3000,0,7000:14000:21000,0,0 // -- NC_ARMSCANNON 2261,1400:1600:1800,500:1000:2000,0,0,0,0 //-- NC_ACCELERATION -2262,0,0,0,30000:60000:90000,0,0 +2262,0,0,0,60000:90000:120000,0,0 //-- NC_HOVERING 2263,0,0,0,90000,0,0 //-- NC_F_SIDESLIDE 2264,0,500,0,0,0,0 //-- NC_B_SIDESLIDE 2265,0,500,0,0,0,0 - //-- NC_SELFDESTRUCTION 2267,2000:1500:1000,0,0,0,0,300000 //-- NC_SHAPESHIFT @@ -1305,14 +1289,13 @@ //-- NC_ANALYZE 2271,0,1000,0,20000,0,0 //-- NC_MAGNETICFIELD -2272,500:1000:1500,0,0,15000,0,20000:15000:10000 +2272,0,0,0,4000:6000:8000,0,20000:15000:10000 //-- NC_NEUTRALBARRIER -2273,500:1000:1500,0,0,30000:45000:60000,0,20000:15000:10000 +2273,0,0,0,30000:45000:60000,0,20000:15000:10000 //-- NC_STEALTHFIELD -2274,500:1000:1500,0,0,15000:20000:25000,0,20000:15000:10000 +2274,0,0,0,15000:20000:25000,0,20000:15000:10000 //-- NC_REPAIR 2275,200:300:400:500:600,1000,0,0,0,0 - //-- NC_AXEBOOMERANG 2278,0,0,0,0,0,5000:4500:4000:3500:3000 //-- NC_POWERSWING @@ -1341,7 +1324,7 @@ //-- SC_BODYPAINT 2289,0,1000,0,5000:7000:9000:11000:13000,0,2000 //-- SC_INVISIBILITY -2290,1000,1000,0,20000,0,20000:30000:40000:50000:60000 +2290,1000,1000,0,0,0,20000:30000:40000:50000:60000 //-- SC_DEADLYINFECT 2291,0,1000,0,10000:15000:20000:25000:30000,0,2000 //-- SC_ENERVATION @@ -1375,7 +1358,6 @@ //==== Royal Guard skills ================== //-- LG_CANNONSPEAR 2307,0,0,0,0,0,2000 - //-- LG_TRAMPLE 2309,0,0,0,0,0,1000 //-- LG_SHIELDPRESS @@ -1423,7 +1405,6 @@ 2329,0,0,0,500:1000:1500:2000:2500,0,0 //-- SR_TIGERCANNON 2330,1100:1200:1300:1400:1500:1600:1700:1800:1900:2000,1000,0,0,0,5000 - //-- SR_RAMPAGEBLASTER 2332,0,1000,0,0,0,10000 //-- SR_CRESCENTELBOW @@ -1438,12 +1419,10 @@ 2337,1000,500,0,0,0,3000 //-- SR_RAISINGDRAGON 2338,0,1000,0,30000:45000:60000:75000:90000:105000:120000:135000:150000:165000,0,30000 - //-- SR_ASSIMILATEPOWER 2340,0,1000,0,0,0,5000 //-- SR_POWERVELOCITY 2341,1500,0,0,0,0,0 - //-- SR_GATEOFHELL 2343,1000:1200:1400:1600:1800:2000:2200:2400:2600:2800,100:200:300:400:500:600:700:800:900:1000,0,0,0,0 //-- SR_GENTLETOUCH_QUIET @@ -1485,7 +1464,7 @@ //-- WM_DOMINION_IMPULSE 2417,0,1000,0,0,0,0 //-- WM_SEVERE_RAINSTORM -2418,1000:1500:2000:2500:3000,1000,0,900:1500:2100:2700:3000,0,5000:5500:6000:6500:7000 +2418,1500:2000:2500:3000:3500,1000,0,900:1500:2100:2700:3000,0,5000:5500:6000:6500:7000 //-- WM_POEMOFNETHERWORLD 2419,3000,0,0,9000:11000:13000:15000:17000,8000:10000:12000:14000:16000,0 //-- WM_VOICEOFSIREN @@ -1507,13 +1486,13 @@ //-- WM_DANCE_WITH_WUG 2428,1500:2000:2500:3000:3500,1000,0,30000:60000:90000:120000:150000,0,90000 //-- WM_SOUND_OF_DESTRUCTION -2429,0:500:1000:1500:2000,1000,0,0,0,20000 +2429,0:500:1000:1500:2000,1000,0,0,0,6000:7000:8000:9000:10000 //-- WM_SATURDAY_NIGHT_FEVER 2430,1000:2000:3000:4000:5000,1000,0,10000:15000:20000:25000:30000,10000:8000:6000:4000:2000,180000 //-- WM_LERADS_DEW 2431,1000,1000,0,20000:30000:40000:50000:60000,0,180000 //-- WM_MELODYOFSINK -2432,100,1000,0,20000:30000:40000:50000:60000,0,180000 +2432,1000,1000,0,20000:30000:40000:50000:60000,0,180000 //-- WM_BEYOND_OF_WARCRY 2433,1000,1000,0,20000:30000:40000:50000:60000,0,180000 //-- WM_UNLIMITED_HUMMING_VOICE @@ -1561,7 +1540,6 @@ 2461,0,0,0,0,0,5000 //-- SO_EL_ANALYSIS 2462,0,0,0,0,0,0 - //-- SO_EL_CURE 2464,2000,1000,0,0,0,0 //-- SO_FIRE_INSIGNIA @@ -1593,16 +1571,14 @@ 2483,3000:3500:4000:4500:5000:5500:6000:6500:7000:7500,500,0,0,0,5000 //-- GN_CRAZYWEED_ATK 2484,0,0,0,100,0,0 - //-- GN_DEMONIC_FIRE -2485,3000:3500:4000:4500:5000,500,0,10000:12000:14000:16000:18000,15000,5000 +2485,3000:3500:4000:4500:5000,500,0,10000:12000:14000:16000:18000,8000:16000:24000:32000:40000,5000 //-- GN_FIRE_EXPANSION 2486,2000,500,0,0,0,0 //-- GN_FIRE_EXPANSION_SMOKE_POWDER 2487,0,0,0,10000:12000:14000:16000:18000,0,0 //-- GN_FIRE_EXPANSION_TEAR_GAS 2488,0,0,0,10000:12000:14000:16000:18000,0,0 - //-- GN_HELLS_PLANT 2490,3000:3500:4000:4500:5000,500,0,14000:21000:28000:35000:42000,0,0 //-- GN_HELLS_PLANT_ATK @@ -1610,20 +1586,18 @@ //-- GN_MANDRAGORA 2492,1000,500,0,10000:15000:20000:25000:30000,0,15000 //-- GN_SLINGITEM -2493,0,0,0,77000,10000,1000 - +2493,0,0,0,0,0,1000 //-- GN_SLINGITEM_RANGEMELEEATK -2498,0,0,0,3000,0,0 +2498,0,0,0,5000:10000:60000:60000:3000,0,0 //========================================== //===== Extra 3rd Class Skills ============= //-- AB_SECRAMENT 2515,1000,500,0,60000:90000:120000:150000:180000,0,0 - //-- SR_HOWLINGOFLION 2517,1000,0,0,12000:14000:16000:18000:20000,0,10000 //-- SR_RIDEINLIGHTNING -2518,1000:2000:3000:4000:5000,200,0,0,0,1000 +2518,1000:2000:3000:4000:5000,0,0,0,0,1000 //========================================== //===== Misc. Skills ======================= diff --git a/db/pre-re/skill_castnodex_db.txt b/db/pre-re/skill_castnodex_db.txt index 91917968e3..7ca53b4d83 100644 --- a/db/pre-re/skill_castnodex_db.txt +++ b/db/pre-re/skill_castnodex_db.txt @@ -36,6 +36,22 @@ 512,3 //GS_TRACKING 1014,1 //PR_REDEMPTIO +2012,7 //RK_CRUSHSTRIKE +2013,7 //RK_REFRESH +2014,7 //RK_GIANTGROWTH +2015,7 //RK_STONEHARDSKIN +2022,0,2 //GC_CROSSIMPACT +2032,7 //GC_POISONSMOKE +2234,7 //RA_FEARBREEZE +//2267,7 //NC_SELFDESTRUCTION +2268,7 //NC_SHAPESHIFT +//2270,7 //NC_INFRAREDSCAN +2271,7 //NC_ANALYZE +2281,7 //NC_SILVERSNIPER +2282,7 //NC_MAGICDECOY +2313,7 //LG_FORCEOFVANGUARD +2462,7 //SO_EL_ANALYSIS + 2534,7,7 //RETURN_TO_ELDICASTES 2536,7,7 //ALL_GUARDIAN_RECALL 2537,0,7 //ALL_ODINS_POWER diff --git a/db/pre-re/skill_db.txt b/db/pre-re/skill_db.txt index f547f95048..25a8262012 100644 --- a/db/pre-re/skill_db.txt +++ b/db/pre-re/skill_db.txt @@ -1,4 +1,4 @@ -//id,range,hit,inf,element,nk,splash,max,list_num,castcancel,cast_defence_rate,inf2,maxcount,skill_type,blow_count,name,description +//id,range,hit,inf,element,nk,splash,max,list_num,castcancel,cast_defence_rate,inf2,maxcount,skill_type,blow_count,inf3,name,description // 01 ID // 02 range (combo skills do not check for range when used, // if range is < 5, the skill is considered melee-range) @@ -135,7 +135,6 @@ 51,1,6,4,0,1,0,10,1,no,0,0,0,none,0,0x64, TF_HIDING,Hiding 52,-2,6,1,5,0,0,10,1,no,0,0,0,weapon,0,0x0, TF_POISON,Envenom 53,9,6,16,5,0x1,0,1,1,no,0,0,0,weapon,0,0x0, TF_DETOXIFY,Detoxify - // 54,9,6,16,6,0x1,0,4,1,yes,0,0,0,magic,0,0x20, ALL_RESURRECTION,Resurrection @@ -870,7 +869,7 @@ 1010,9,6,1,0,0x1,0,1,0,no,0,0x1,0,misc,0,0x0, BA_PANGVOICE,Pang Voice 1011,9,6,1,0,0x1,0,1,0,no,0,0x1,0,misc,0,0x0, DC_WINKCHARM,Wink of Charm 1012,0,0,0,0,0,0,1,0,no,0,0x1,0,weapon,0,0x4000, BS_UNFAIRLYTRICK,Unfair Trick -1013,0,6,4,0,0x3,2,1,0,no,0,0x1,0,weapon,0,0x4000, BS_GREED,Greed +1013,0,6,4,0,0x3,2,1,0,no,0,0x1,0,weapon,0,0x0, BS_GREED,Greed 1014,0,6,4,6,0x3,14,1,0,yes,0,0x1,0,magic,0,0x0, PR_REDEMPTIO,Redemptio 1015,9,6,16,0,0x1,0,1,1,no,0,0x401,0,weapon,0,0x0, MO_KITRANSLATION,Ki Translation 1016,-1,6,1,-1,0x2,1,1,1,no,0,0x1,0,weapon,5,0x0, MO_BALKYOUNG,Ki Explosion @@ -905,8 +904,8 @@ // WL Warlock 2201,11,6,16,0,0,0,5,1,yes,0,0,0,magic,0,0x420, WL_WHITEIMPRISON,White Imprison 2202,11,8,1,8,0x2,1:1:1:2:2,5,-2,yes,0,0,0,magic,0,0x420, WL_SOULEXPANSION,Soul Expansion -2203,0,8,4,1,0x2,13,5,-3:-4:-5:-6:-7,yes,0,0,0,magic,0,0x400, WL_FROSTMISTY,Frosty Misty -2204,0,8,4,1,0x2,13,5,-5,yes,0,0,0,magic,0,0x0, WL_JACKFROST,Jack Frost +2203,0,8,4,1,0x2,9,5,-3:-4:-5:-6:-7,yes,0,0,0,magic,0,0x400, WL_FROSTMISTY,Frosty Misty +2204,0,8,4,1,0x2,5:6:7:8:9,5,-5,yes,0,0,0,magic,0,0x0, WL_JACKFROST,Jack Frost 2205,11,6,1,0,0x1,0,5,1,yes,0,0,0,magic,0,0x400, WL_MARSHOFABYSS,Marsh of Abyss 2206,0,6,4,0,0x1,0,5,1,yes,0,0,0,magic,0,0x20, WL_RECOGNIZEDSPELL,Recognized Spell 2207,7,6,1,2,0x3,1:2:2:3:3,5,1,yes,0,0,0,magic,0,0x420, WL_SIENNAEXECRATE,Sienna Execrate @@ -915,10 +914,10 @@ 2210,11,6,1,0,0,0,5,1,yes,0,0,0,magic,0,0x420, WL_DRAINLIFE,Drain Life 2211,11,8,1,3,0x2,3,5,-7,yes,0,0,0,magic,3,0x400, WL_CRIMSONROCK,Crimson Rock 2212,11,6,1,3,0,0,5,1,yes,0,0,0,magic,0,0x400, WL_HELLINFERNO,Hell Inferno -2213,11,8,2,0,0x2,7,5,-20,yes,0,0,0,magic,2,0x400, WL_COMET,Comet -2214,11,6,1,0,0,3,5,1,yes,0,0,0,magic,0,0x400, WL_CHAINLIGHTNING,Chain Lightning //CHECK Is the splash being used for the target search? +2213,11,8,2,0,0x2,9,5,-20,yes,0,0,0,magic,2,0x400, WL_COMET,Comet +2214,11,6,1,0,0x2,3,5,1,yes,0,0,0,magic,0,0x400, WL_CHAINLIGHTNING,Chain Lightning //CHECK Is the splash being used for the target search? 2215,11,6,1,4,0,0,5,1,no,0,0,0,magic,0,0x0, WL_CHAINLIGHTNING_ATK,Chain Lightning Attack -2216,3,8,2,2,0,0,5,-6:-7:-8:-9:-10,yes,0,0,0,magic,0,0x20, WL_EARTHSTRAIN,Earth Strain +2216,6,8,2,2,0,0,5,-6:-7:-8:-9:-10,yes,0,0,0,magic,0,0x20, WL_EARTHSTRAIN,Earth Strain 2217,11,6,1,0,0,0,5,1,yes,0,0,0,magic,0,0x400, WL_TETRAVORTEX,Tetra Vortex 2218,11,6,1,3,0,0,5,1,no,0,0,0,magic,0,0x0, WL_TETRAVORTEX_FIRE,Tetra Vortex Fire 2219,11,6,1,1,0,0,5,1,no,0,0,0,magic,0,0x0, WL_TETRAVORTEX_WATER,Tetra Vortex Water @@ -939,19 +938,19 @@ //**** // GC Guillotine Cross -2021,10,6,1,0,0x1,0,5,1,no,0,0,0,none,0,0x0, GC_VENOMIMPRESS,Venom Impress -2022,3,8,1,-1,0,0,5,-7,no,0,0,0,weapon,0,0x0, GC_CROSSIMPACT,Cross Impact -2023,3:4:5:6:7,6,1,-1,0,0,5,1,no,0,0,0,weapon,0,0x0, GC_DARKILLUSION,Dark Illusion +2021,10,6,1,0,0x1,0,5,1,no,0,0,0,none,0,0x0, GC_VENOMIMPRESS,Venom Impress +2022,3,8,1,-1,0,0,5,-7,no,0,0,0,weapon,0,0x0, GC_CROSSIMPACT,Cross Impact +2023,5:6:7:8:9,6,1,-1,0,0,5,1,no,0,0,0,weapon,0,0x0, GC_DARKILLUSION,Dark Illusion 2024,0,0,0,0,0,0,10,0,no,0,0,0,none,0,0x0, GC_RESEARCHNEWPOISON,Research New Poison 2025,0,6,4,0,0x1,0,1,1,no,0,0,0,none,0,0x0, GC_CREATENEWPOISON,Create New Poison 2026,5,6,16,0,0x1,0,1,1,no,0,0,0,none,0,0x0, GC_ANTIDOTE,Antidote 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 -2029,-2,6,4,-1,0x2,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 //CHECK SHould this and the above skill have INF2 0x200? +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 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 -2033,0,6,4,0,0x1,0,5,1,no,0,0,0,none,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 2034,0,6,4,-1,0x2,3,1,1,no,0,0,0,weapon,0,0x0, GC_PHANTOMMENACE,Phantom Menace 2035,0,6,4,0,0x1,0,5,1,no,0,0,0,none,0,0x0, GC_HALLUCINATIONWALK,Hallucination Walk 2036,0,6,4,-1,0x2,1:1:1:1:2,5,1,no,0,0,0,weapon,0,0x0, GC_ROLLINGCUTTER,Rolling Cutter @@ -984,7 +983,7 @@ //**** // RA Ranger -2233,9,8,1,-1,0x2,3:3:3:3:3:4:4:4:4:5,10,-3,yes,0,0,0,weapon,0,0x80, RA_ARROWSTORM,Arrow Storm +2233,9,8,1,-1,0x2,3:3:3:3:3:4:4:4:4:5,10,-3,yes,0,0,0,weapon,0,0x80, RA_ARROWSTORM,Arrow Storm 2234,0,6,4,0,0,0,5,1,yes,0,0,0,none,0,0x0, RA_FEARBREEZE,Fear Breeze 2235,0,0,0,0,0,0,10,0,no,0,0,0,none,0,0x0, RA_RANGERMAIN,Ranger Main 2236,9,8,1,-1,0,0,10,1,yes,0,0,0,weapon,0,0x80, RA_AIMEDBOLT,Aimed Bolt @@ -994,8 +993,8 @@ 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 2242,0,6,4,-1,0x2,1,1,0,no,0,0,0,weapon,0,0x2000, RA_WUGDASH,Warg Dash -2243,9,6,1,0,0,0,5,1,no,0,0,0,weapon,0,0x2000, RA_WUGSTRIKE,Warg Strike -2244,9,6,1,0,0,0,5,1,no,0,0,0,weapon,0,0x80, RA_WUGBITE,Warg Bite +2243,9,6,1,-1,0,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 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 2247,0,6,4,0,0x1,0,5,1,no,0,0,0,none,0,0x42, RA_CAMOUFLAGE,Camouflage @@ -1012,32 +1011,32 @@ 2255,0,0,0,0,0,0,5,0,no,0,0,0,none,0,0x0, NC_MADOLICENCE,Mado License 2256,11,6,1,-1,0,0,5,1,no,0,0,0,weapon,0,0x0, NC_BOOSTKNUCKLE,Boost Knuckle 2257,3,6,1,-1,0,0,3,1,no,0,0,0,weapon,0,0x0, NC_PILEBUNKER,Pile Bunker -2258,13,6,1,-1,0,0,3,1,no,0,0,0,weapon,0,0x0, NC_VULCANARM,Vulcan Arm -2259,5,6,1,3,0,2,3,1,no,0,0,5,weapon,0,0x0, NC_FLAMELAUNCHER,Flame Launcher +2258,13,6,1,-1,0x2,1,3,1,no,0,0,0,weapon,0,0x0, NC_VULCANARM,Vulcan Arm +2259,7,6,1,3,0,2,3,1,no,0,0,5,weapon,0,0x0, NC_FLAMELAUNCHER,Flame Launcher 2260,7,6,2,1,0x2,2:3:4,3,1,no,0,0,0,weapon,0,0x0, NC_COLDSLOWER,Cold Slower -2261,7,6,2,-1,0x42,3:2:1,3,1,no,0,0,0,weapon,0,0x0, NC_ARMSCANNON,Arm Cannon +2261,9:11:13,6,1,-1,0x42,3:2:1,3,1,no,0,0,0,weapon,0,0x0, NC_ARMSCANNON,Arm Cannon 2262,0,6,4,0,0x1,0,3,1,no,0,0,0,none,0,0x0, NC_ACCELERATION,Acceleration 2263,0,6,4,0,0x1,0,1,1,no,0,0,0,none,0,0x0, NC_HOVERING,Hovering 2264,0,6,4,0,0x1,0,1,1,no,0,0,0,none,7,0x0, NC_F_SIDESLIDE,Front-Side Slide 2265,0,6,4,0,0x1,0,1,1,no,0,0,0,none,7,0x0, NC_B_SIDESLIDE,Back-Side Slide 2266,0,0,0,0,0,0,4,0,no,0,0,0,none,0,0x0, NC_MAINFRAME,Mainframe Restructure // Check me. Part of the code notes translated to "The amount of fuel have". -2267,0,6,4,-1,0x42,2:3:4,3,1,no,0,0,0,misc,5,0x0, NC_SELFDESTRUCTION,Self Destruction +2267,0,6,4,-1,0x4A,2:3:4,3,1,no,0,0,0,misc,5,0x0, NC_SELFDESTRUCTION,Self Destruction 2268,0,6,4,0,0x1,0,4,1,yes,0,0,0,none,0,0x0, NC_SHAPESHIFT,Shape Shift 2269,0,6,4,0,0x1,0,1,1,no,0,0,0,none,0,0x0, NC_EMERGENCYCOOL,Emergency Cool 2270,0,6,4,0,0x3,7,1,1,yes,0,0,0,none,0,0x0, NC_INFRAREDSCAN,Infrared Scan 2271,9,6,1,0,0x1,0,3,1,yes,0,0,0,none,0,0x0, NC_ANALYZE,Analyze -2272,0,6,4,0,0x3,1:2:3,3,1,yes,0,0,0,none,0,0x0, NC_MAGNETICFIELD,Magnetic Field -2273,0,6,4,0,0x1,0,3,1,yes,0,0,0,none,0,0x0, NC_NEUTRALBARRIER,Neutral Barrier -2274,0,6,4,0,0x1,0,3,1,yes,0,0,0,none,0,0x0, NC_STEALTHFIELD,Stealth Field -2275,5,6,16,0,0x1,0,5,1,yes,0,0,0,magic,0,0x0, NC_REPAIR,Repair +2272,0,6,4,0,0x3,2,3,1,no,0,0,0,none,0,0x0, NC_MAGNETICFIELD,Magnetic Field +2273,0,6,4,0,0x1,0,3,1,no,0,0,0,none,0,0x0, NC_NEUTRALBARRIER,Neutral Barrier +2274,0,6,4,0,0x1,0,3,1,no,0,0,0,none,0,0x0, NC_STEALTHFIELD,Stealth Field +2275,5:6:7:8:9,6,16,0,0x1,0,5,1,yes,0,0,0,magic,0,0x0, NC_REPAIR,Repair 2276,0,0,0,0,0,0,10,0,no,0,0,0,none,0,0x0, NC_TRAININGAXE,Axe Training 2277,0,0,0,0,0,0,5,0,no,0,0,0,none,0,0x0, NC_RESEARCHFE,Research Fire/Earth -2278,4:5:6:7:8,6,1,-1,0,0,5,1,no,0,0,0,weapon,2:3:4:5:6,0x0, NC_AXEBOOMERANG,Axe Boomerang +2278,5:6:7:8:9,6,1,-1,0,0,5,1,no,0,0,0,weapon,2:3:4:5:6,0x0, NC_AXEBOOMERANG,Axe Boomerang 2279,1,6,1,-1,0,0,5,1,no,0,0,0,weapon,0,0x0, NC_POWERSWING,Power Swing 2280,0,8,4,-1,0x2,2:2:3:3:3,5,-6,no,0,0,0,weapon,0,0x0, NC_AXETORNADO,Axe Tornado // Check me. Takes 20 * Skill LV amount of HP each use. 2281,2,6,2,0,0x1,0,5,1,yes,0,0,2,none,0,0x0, NC_SILVERSNIPER,FAW - Silver Sniper 2282,2,6,2,0,0x1,0,5,1,yes,0,0,2,none,0,0x0, NC_MAGICDECOY,FAW - Magic Decoy //CHECK FIX ME!!!! Wind and Earth stones spawning opposite decoys. -2283,2,6,1,0,0x1,0,1,1,no,0,0,0,none,0,0x0, NC_DISJOINT,FAW Removal +2283,5,6,1,0,0x1,0,1,1,no,0,0,0,none,0,0x0, NC_DISJOINT,FAW Removal //**** // SC Shadow Chaser @@ -1060,7 +1059,7 @@ 2300,7,6,2,0,0x1,0,3,1,yes,0,0,1,none,0,0x0, SC_DIMENSIONDOOR,Dimension Door 2301,7,6,2,0,0x1,0,3,1,yes,0,0x20000,0,none,0,0x0, SC_CHAOSPANIC,Chaos Panic 2302,7,6,2,0,0x1,0,3,1,yes,0,0x20000,0,none,0,0x0, SC_MAELSTROM,Maelstrom -2303,7,6,2,0,0x1,0,3,1,yes,0,0,0,none,0,0x0, SC_BLOODYLUST,Bloody Lust +2303,7,6,2,0,0x1,3,3,1,yes,0,0,1,none,0,0x0, SC_BLOODYLUST,Bloody Lust 2304,0,6,4,-1,0,0,3,1,no,0,0,0,weapon,0,0x0, SC_FEINTBOMB,Feint Bomb //**** @@ -1073,11 +1072,11 @@ 2312,5,6,1,-1,0,0,5,1,no,0,0,0,weapon,0,0x0, LG_PINPOINTATTACK,Pinpoint Attack 2313,0,6,4,0,0x1,0,5,1,yes,0,0,0,none,0,0x0, LG_FORCEOFVANGUARD,Force of Vanguard 2314,1,6,1,-1,0,0,1,1,no,0,0,0,weapon,0,0x0, LG_RAGEBURST,Rage Burst -2315,0,6,4,0,0x2,3,3,1,yes,0,0,0,none,2,0x0, LG_SHIELDSPELL,Shield Spell +2315,0,6,4,0:6:0,0x2,0,3,1,yes,0,0,0,none,2:0:0,0x0, LG_SHIELDSPELL,Shield Spell 2316,0,6,4,0,0x1,0,5,1,yes,0,0,0,none,0,0x0, LG_EXEEDBREAK,Exceed Break -2317,1,6,2,-1,0x2,5,5,1,yes,0,0,0,none,3:4:5:6:7,0x0, LG_OVERBRAND,Over Brand //CHECK I know the splash is needed somehow for the strange AoE it gives. +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 -2319,0,6,4,0,0x1,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 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 @@ -1087,15 +1086,15 @@ //**** // SR Sura -2326,-2,8,1,-1,0,0,10,2,no,0,0,0,weapon,0,0x0, SR_DRAGONCOMBO,Dragon Combo //CHECK Is this 2 regular hits or sub hits? Yes its 2 sub hits. -2327,0,8,4,-1,0x2,2,5,-3,no,0,0,0,weapon,3,0x0, SR_SKYNETBLOW,Sky Net Blow //CHECK Video shows 3 hits. Its sub hits right? Data check shows no sub, one source shows 3 hits, another shows 5. -2328,0,6,4,-1,0x2,1:2:3:4:5,5,1,no,0,0,0,weapon,0,0x0, SR_EARTHSHAKER,Earth Shaker //CHECK Must add a check in battle.c to triple damage if hitting a hidden target. -2329,-2,8,4,-1,0,0,5,-2,no,0,0x200,0,weapon,0,0x0, SR_FALLENEMPIRE,Fallen Empire //CHECK Video shows 2 hits. Is it sub hits? Yes its divided between 2 hits. +2326,-2,8,1,-1,0,0,10,-2,no,0,0,0,weapon,0,0x0, SR_DRAGONCOMBO,Dragon Combo +2327,0,8,4,-1,0x2,2,5,-3,no,0,0,0,weapon,3,0x0, SR_SKYNETBLOW,Sky Net Blow +2328,0,6,4,-1,0x2,1:2:3:4:5,5,1,no,0,0,0,weapon,0,0x0, SR_EARTHSHAKER,Earth Shaker +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. 2331,0,0,0,0,0,0,10,0,no,0,0,0,none,0,0x0, SR_HELLGATE,Hell Gate -2332,5,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. -2334,0,6,4,0,0x3,1:1:2:2:3,5,1,no,0,0,0,none,0,0x0, SR_CURSEDCIRCLE,Cursed Circle //CHECK Code shows it takes up to 5% of your HP upon use? +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 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 @@ -1106,13 +1105,13 @@ 2342,1,6,1,-1,0x20,0,5,1,no,0,0,0,weapon,3,0x0, SR_CRESCENTELBOW_AUTOSPELL,Crescent Elbow Autospell //CHECK Does this ignore defense? 2343,1:2:3:3:4:4:5:5:6:7,8,1,0,0,0,10,-7,yes,0,0,0,weapon,0,0x0, SR_GATEOFHELL,Gate of Hell //CHECK Need to fix to be enemy targeted and also combo after Fallen Empire 2344,2,6,1,-1,0,0,5,1,no,0,0,0,weapon,0,0x0, SR_GENTLETOUCH_QUIET,Gentle Touch - Quiet -2345,2,6,16,0,0x1,0,5,1,no,0,0,0,magic,0,0x0, SR_GENTLETOUCH_CURE,Gentle Touch - Cure //CHECK Its a healing skill. Guessing it has to be magic type? Healing isnt working. +2345,2,6,16,0,0x1,0,5,1,no,0,0,0,none,0,0x0, SR_GENTLETOUCH_CURE,Gentle Touch - Cure 2346,0,6,4,0,0x1,0,5,1,yes,0,0,0,none,0,0x0, SR_GENTLETOUCH_ENERGYGAIN,Gentle Touch - Energy Gain 2347,2,6,16,0,0x1,0,5,1,yes,0,0,0,none,0,0x0, SR_GENTLETOUCH_CHANGE,Gentle Touch - Change 2348,2,6,16,0,0x1,0,5,1,yes,0,0,0,none,0,0x0, SR_GENTLETOUCH_REVITALIZE,Gentle Touch - Revitalize //More from Sura but not following ID order 2517,0,6,4,-1,0x2,3:4:5:6:7,5,1,no,0,0,0,weapon,0,0x0, SR_HOWLINGOFLION,Howling of Lion -2518,11,6,2,-1,0x2,2:2:3:3:4,5,1,no,0,0,0,weapon,0,0x0, SR_RIDEINLIGHTNING,Ride In Lightening +2518,11,6,2,-1,0x2,1:1:2:2:3,5,1,no,0,0,0,weapon,0,0x0, SR_RIDEINLIGHTNING,Ride In Lightening //**** // WA Wanderer @@ -1131,26 +1130,26 @@ 2412,0,0,0,0,0,0,10,0,no,0,0,0,none,0,0x0, WM_LESSON,Lesson 2413,9,8,1,-1,0,0,5,-2:-2:-3:-3:-4,yes,0,0,0,magic,0,0x0, WM_METALICSOUND,Metallic Sound 2414,9,6,2,-1,0x3,1,5,1,yes,0,0x80,3,none,0,0x0, WM_REVERBERATION,Reverberation -2415,0,6,1,-1,0x6,1,5,1,no,0,0,0,weapon,0,0x0, WM_REVERBERATION_MELEE,Reverberation Melee -2416,0,6,1,0,0x6,1,5,1,no,0,0,0,magic,0,0x0, WM_REVERBERATION_MAGIC,Reverberation Magic +2415,0,6,1,-1,0,0,5,1,no,0,0,0,weapon,0,0x0, WM_REVERBERATION_MELEE,Reverberation Melee +2416,0,6,1,-1,0,0,5,1,no,0,0,0,magic,0,0x0, WM_REVERBERATION_MAGIC,Reverberation Magic 2417,11,6,2,0,0x3,5,1,1,no,0,0,0,none,0,0x0, WM_DOMINION_IMPULSE,Dominion Impulse -2418,9,6,2,-1,0x1,0,5,1,yes,0,0,0,none,0,0x0, WM_SEVERE_RAINSTORM,Severe Rainstorm +2418,9,6,2,0,0x1,0,5,1,yes,0,0,0,none,0,0x0, WM_SEVERE_RAINSTORM,Severe Rainstorm 2419,9,6,2,0,0x3,1,5,1,yes,0,0x80,5,none,0,0x0, WM_POEMOFNETHERWORLD,Poem of The Netherworld //CHECK May need to recode too. 2420,0,6,4,0,0x2,2:3:4:5:6,5,1,yes,0,0,0,none,0,0x0, WM_VOICEOFSIREN,Voice of Siren 2421,7,6,16,0,0x1,0,5,1,yes,0,0,0,none,0,0x0, WM_DEADHILLHERE,Valley of Death -2422,7,6,4,0,0x3,5:6:7:8:9,5,1,yes,0,0,0,none,0,0x0, WM_LULLABY_DEEPSLEEP,Deep Sleep Lullaby +2422,0,6,4,0,0x3,5:6:7:8:9,5,1,yes,0,0,0,none,0,0x0, WM_LULLABY_DEEPSLEEP,Deep Sleep Lullaby 2423,0,6,4,0,0x3,3:4:5:6:7,5,1,yes,0,0,0,none,0,0x0, WM_SIRCLEOFNATURE,Circle of Nature's Sound 2424,9,6,4,0,0x1,0,5,1,yes,0,0,0,magic,0,0x0, WM_RANDOMIZESPELL,Improvised Song 2425,9,6,16,0,0x1,0,5,1,yes,0,0,0,none,0,0x0, WM_GLOOMYDAY,Gloomy Day 2426,9,6,2,0,0x2,2:3:3:4:4,5,1,yes,0,0x4000,0,weapon,0,0x0, WM_GREAT_ECHO,Great Echo 2427,0,6,4,0,0x3,5:6:7:8:9,5,1,yes,0,0x4000,0,none,0,0x0, WM_SONG_OF_MANA,Song of Mana 2428,0,6,4,0,0x3,5:6:7:8:9,5,1,yes,0,0x4000,0,none,0,0x0, WM_DANCE_WITH_WUG,Dance With A Warg -2429,9,6,1,0,0x2,2:2:3:3:4,5,1,yes,0,0x4000,0,weapon,0,0x0, WM_SOUND_OF_DESTRUCTION,Sound of Destruction //CHECK Source shows its magic attack. Need to confirm before changing. +2429,9,6,1,0,0x42,4:4:5:5:6,5,1,yes,0,0x4000,0,weapon,0,0x0, WM_SOUND_OF_DESTRUCTION,Sound of Destruction //CHECK Source shows its magic attack. Need to confirm before changing. 2430,0,6,4,0,0x3,3:4:5:6:7,5,1,yes,0,0x4000,0,none,0,0x0, WM_SATURDAY_NIGHT_FEVER,Saturday Night Fever -2431,0,6,4,0,0x3,5,5,1,yes,0,0x4000,0,magic,0,0x0, WM_LERADS_DEW,Lerad's Dew -2432,0,6,4,0,0x3,5,5,1,yes,0,0x4000,0,none,0,0x0, WM_MELODYOFSINK,Melody of Sink -2433,0,6,4,0,0x3,5,5,1,yes,0,0x4000,0,none,0,0x0, WM_BEYOND_OF_WARCRY,Warcry of Beyond -2434,0,6,4,0,0x3,5,5,1,yes,0,0x4000,0,none,0,0x0, WM_UNLIMITED_HUMMING_VOICE,Unlimited Humming Voice +2431,0,6,4,0,0x3,5:5:6:6:7,5,1,yes,0,0x4000,0,magic,0,0x0, WM_LERADS_DEW,Lerad's Dew +2432,0,6,4,0,0x3,5:5:6:6:7,5,1,yes,0,0x4000,0,none,0,0x0, WM_MELODYOFSINK,Melody of Sink +2433,0,6,4,0,0x3,5:5:6:6:7,5,1,yes,0,0x4000,0,none,0,0x0, WM_BEYOND_OF_WARCRY,Warcry of Beyond +2434,0,6,4,0,0x3,5:5:6:6:7,5,1,yes,0,0x4000,0,none,0,0x0, WM_UNLIMITED_HUMMING_VOICE,Unlimited Humming Voice 2516,11,6,1,-1,0x2,5,5,1,no,0,0,0,weapon,0,0x0, WM_SEVERE_RAINSTORM_MELEE,Severe Rainstorm Melee //**** @@ -1167,7 +1166,7 @@ 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 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,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 2457,0,6,4,3,0x1,0,3,1,yes,0,0,0,none,0,0x0, SO_SUMMON_AGNI,Summon Fire Spirit Agni 2458,0,6,4,1,0x1,0,3,1,yes,0,0,0,none,0,0x0, SO_SUMMON_AQUA,Summon Water Spirit Aqua @@ -1194,16 +1193,16 @@ 2481,11,6,1,-1,0x2,1:2:3:4:5,5,1,yes,0,0,0,weapon,0,0x0, GN_SPORE_EXPLOSION,Spore Explosion //CHECK Data says its element is set to neutral. Need to confirm. 2482,11,6,16,0,0,0,5,1,yes,0,0,1,weapon,2,0x0, GN_WALLOFTHORN,Wall of Thorns 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,3,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 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% 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 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 2490,9,6,2,0,0x3,1,5,1,yes,0,0x80,2:3:4:5:6,none,0,0x0, GN_HELLS_PLANT,Hell's Plant -2491,0,6,1,0,0xC0,0,5,1,no,0,0,0,misc,0,0x0, GN_HELLS_PLANT_ATK,Hell's Plant Attack -2492,0,6,4,0,0x3,6:7:8:9:10,5,1,yes,0,0,0,none,0,0x0, GN_MANDRAGORA,Howling of Mandragora -2493,11,6,16,0,0x1,0,1,1,yes,0,0,0,none,0,0x0, GN_SLINGITEM,Sling Item +2491,0,6,1,0,0x90,0,5,1,no,0,0,0,misc,0,0x0, GN_HELLS_PLANT_ATK,Hell's Plant Attack +2492,0,6,4,0,0x3,5:6:6:7:7,5,1,yes,0,0,0,none,0,0x0, GN_MANDRAGORA,Howling of Mandragora +2493,11,6,16,0,0x1,0,1,1,no,0,0,0,none,0,0x0, GN_SLINGITEM,Sling Item 2494,0,6,4,0,0x1,0,1,1,no,0,0,0,none,0,0x0, GN_CHANGEMATERIAL,Change Material 2495,0,6,4,0,0x1,0,2,1,no,0,0,0,none,0,0x0, GN_MIX_COOKING,Mix Cooking 2496,0,6,4,0,0x1,0,2,1,no,0,0,0,none,0,0x0, GN_MAKEBOMB,Create Bomb diff --git a/db/pre-re/skill_require_db.txt b/db/pre-re/skill_require_db.txt index cc20007293..5de7621f2a 100644 --- a/db/pre-re/skill_require_db.txt +++ b/db/pre-re/skill_require_db.txt @@ -598,14 +598,14 @@ 2203,0,0,40:48:56:64:72,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_FROSTMISTY#Frosty Misty# 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# -2206,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_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# 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# 2211,0,0,60:70:80:90:100,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_CRIMSONROCK#Crimson Rock# 2212,0,0,35:40:45:50:55,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_HELLINFERNO#Hell Inferno# -2213,0,0,240:280:320:360:400,0,0,0,99,0,0,none,0,0,716,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //WL_COMET#Comet# +2213,0,0,480:560:640:720:800,0,0,0,99,0,0,none,0,0,716,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //WL_COMET#Comet# 2214,0,0,80:90:100:110:120,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_CHAINLIGHTNING#Chain Lightning# 2215,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 //WL_CHAINLIGHTNING_ATK#Chain Lightning Attack# 2216,0,0,70:78:86:94:102,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_EARTHSTRAIN#Earth Strain# @@ -654,25 +654,25 @@ //**** // RA Ranger 2233,0,0,30:32:34:36:38:40:42:44:46:48,0,0,0,11,1,10,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //RA_ARROWSTORM#Arrow Storm# -2234,0,0,36:40:44:48:52,0,0,0,11,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 //RA_FEARBREEZE#Fear Breeze# +2234,0,0,55:60:65:70:75,0,0,0,11,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 //RA_FEARBREEZE#Fear Breeze# 2236,0,0,30:32:34:36:38:40:42:44:46:48,0,0,0,11,1,1,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //RA_AIMEDBOLT#Aimed Bolt# //How many arrows does it require??? 2237,0,0,15,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 //RA_DETONATOR#Detonator# 2238,0,0,35,0,0,0,99,0,0,none,0,0,7940,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //RA_ELECTRICSHOCKER#Electric Shocker# 2239,0,0,20,0,0,0,99,0,0,none,0,0,7940,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //RA_CLUSTERBOMB#Cluster Bomb# 2240,0,0,5,0,0,0,99,0,0,none,0,0,6124,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //RA_WUGMASTERY#Warg Mastery# -2241,0,0,20,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 //RA_WUGRIDER#Warg Rider# -2242,0,0,40,0,0,0,99,0,0,move_enable,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //RA_WUGDASH#Warg Dash# -2243,0,0,20:22:24:26:28,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 //RA_WUGSTRIKE#Warg Strike# -2244,0,0,42:44:46:48:50,0,0,0,99,0,0,warg,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //RA_WUGBITE#Warg Bite# +2241,0,0,2,0,0,0,99,0,0,ridingwarg,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //RA_WUGRIDER#Warg Rider# +2242,0,0,4,0,0,0,99,0,0,move_enable,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //RA_WUGDASH#Warg Dash# +2243,0,0,20:22:24:26:28,0,0,0,99,0,0,ridingwarg,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //RA_WUGSTRIKE#Warg Strike# +2244,0,0,40:42:44:46:48,0,0,0,99,0,0,warg,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //RA_WUGBITE#Warg Bite# 2246,0,0,12,0,0,0,99,0,0,warg,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //RA_SENSITIVEKEEN#Sensitive Keen# 2247,0,0,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 //RA_CAMOUFLAGE#Camouflage# -2249,0,0,10,0,0,0,99,0,0,none,0,0,7940,1,990,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //RA_MAGENTATRAP#Magenta Trap# -2250,0,0,10,0,0,0,99,0,0,none,0,0,7940,1,991,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //RA_COBALTTRAP#Cobalt Trap# -2251,0,0,10,0,0,0,99,0,0,none,0,0,7940,1,993,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //RA_MAIZETRAP#Maize Trap# -2252,0,0,10,0,0,0,99,0,0,none,0,0,7940,1,992,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //RA_VERDURETRAP#Verdure Trap# +2249,0,0,10,0,0,0,99,0,0,none,0,0,7940,1,6360,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //RA_MAGENTATRAP#Magenta Trap# +2250,0,0,10,0,0,0,99,0,0,none,0,0,7940,1,6361,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //RA_COBALTTRAP#Cobalt Trap# +2251,0,0,10,0,0,0,99,0,0,none,0,0,7940,1,6363,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //RA_MAIZETRAP#Maize Trap# +2252,0,0,10,0,0,0,99,0,0,none,0,0,7940,1,6362,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //RA_VERDURETRAP#Verdure Trap# 2253,0,0,10,0,0,0,99,0,0,none,0,0,7940,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //RA_FIRINGTRAP#Firing Trap# 2254,0,0,10,0,0,0,99,0,0,none,0,0,7940,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //RA_ICEBOUNDTRAP#Icebound Trap# @@ -680,35 +680,35 @@ // NC Mechanic 2256,0,0,3:6:9:12:15,0,0,0,99,0,0,mado,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //NC_BOOSTKNUCKLE#Boost Knuckle# 2257,0,0,50,0,0,0,99,0,0,mado,0,0,1549,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //NC_PILEBUNKER#Pile Bunker# -2258,0,0,2,0,0,0,99,0,0,mado,0,0,6145,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //NC_VULCANARM#Vulcan Arm# -2259,0,0,20,0,0,0,99,0,0,mado,0,0,2139,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //NC_FLAMELAUNCHER#Flame Launcher# -2260,0,0,20,0,0,0,99,0,0,mado,0,0,6147,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //NC_COLDSLOWER#Cold Slower# -2261,0,0,30:45:60,0,0,0,99,8,1,mado,0,0,6146,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //NC_ARMSCANNON#Arm Cannon# -2262,0,0,20:40:60,0,0,0,99,0,0,mado,0,0,6146,1,2800,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //NC_ACCELERATION#Acceleration# -2263,0,0,25,0,0,0,99,0,0,mado,0,0,6146,1,2801,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //NC_HOVERING#Hovering# +2258,0,0,2:4:6,0,0,0,99,0,0,mado,0,0,6145,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //NC_VULCANARM#Vulcan Arm# +2259,0,0,20,0,0,0,99,0,0,mado,0,0,2139,0,6146,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //NC_FLAMELAUNCHER#Flame Launcher# +2260,0,0,20,0,0,0,99,0,0,mado,0,0,6146,1,6147,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //NC_COLDSLOWER#Cold Slower# +2261,0,0,40:45:50,0,0,0,99,8,1,mado,0,0,6146,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //NC_ARMSCANNON#Arm Cannon# +2262,0,0,20:40:60,0,0,0,99,0,0,mado,0,0,6146,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2800 //NC_ACCELERATION#Acceleration# +2263,0,0,25,0,0,0,99,0,0,mado,0,0,6146,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2801 //NC_HOVERING#Hovering# 2264,0,0,5,0,0,0,99,0,0,mado,0,0,6146,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //NC_F_SIDESLIDE#Front - Side Slide# 2265,0,0,5,0,0,0,99,0,0,mado,0,0,6146,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //NC_B_SIDESLIDE#Back - Side Slide# -2267,0,0,200,0,0,0,99,0,0,mado,0,0,6146,5,2802,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //NC_SELFDESTRUCTION#Self Destruction# -2268,0,0,100,0,0,0,99,0,0,mado,0,0,994,1,997,1,996,1,995,1,6146,2,2803,0,0,0,0,0,0,0,0,0,0 //NC_SHAPESHIFT#Shape Shift# //CHECK Shouldnt the different stones all be in the same slot? -2269,0,0,20,0,0,0,99,0,0,mado,0,0,6146,2,2804,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //NC_EMERGENCYCOOL#Emergency Cool# +2267,0,0,1,0,0,0,99,0,0,mado,0,0,6146,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2802 //NC_SELFDESTRUCTION#Self Destruction# +2268,0,0,100,0,0,0,99,0,0,mado,0,0,6360,1,6363,1,6362,1,6361,1,6146,2,0,0,0,0,0,0,0,0,0,0,2803 //NC_SHAPESHIFT#Shape Shift# +2269,0,0,20,0,0,0,99,0,0,mado,0,0,6146,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2804 //NC_EMERGENCYCOOL#Emergency Cool# 2270,0,0,45,0,0,0,99,0,0,mado,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //NC_INFRAREDSCAN#Infrared Scan# 2271,0,0,30,0,0,0,99,0,0,mado,0,0,6146,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //NC_ANALYZE#Analyze# -2272,0,0,90,0,0,0,99,0,0,mado,0,0,6146,3,2805,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //NC_MAGNETICFIELD#Magnetic Field# -2273,0,0,90,0,0,0,99,0,0,mado,0,0,6146,1,2806,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //NC_NEUTRALBARRIER#Neutral Barrier# -2274,0,0,100:150:200,0,0,0,99,0,0,mado,0,0,6146,2,2808,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //NC_STEALTHFIELD#Stealth Field# -2275,0,0,25:30:35:40:45,0,0,0,99,0,0,mado,0,0,2807,0,6146,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //NC_REPAIR#Repair# +2272,0,0,90,0,0,0,99,0,0,mado,0,0,2805,0,6146,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2805 //NC_MAGNETICFIELD#Magnetic Field# +2273,0,0,90,0,0,0,99,0,0,mado,0,0,2806,0,6146,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2806 //NC_NEUTRALBARRIER#Neutral Barrier# +2274,0,0,100:150:200,0,0,0,99,0,0,mado,0,0,6146,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2808 //NC_STEALTHFIELD#Stealth Field# +2275,0,0,25:30:35:40:45,0,0,0,99,0,0,mado,0,0,6146,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2807 //NC_REPAIR#Repair# 2278,0,0,20:22:24:26:28,0,0,0,6:7,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 //NC_AXEBOOMERANG#Axe Boomerang# -2279,0,0,10:12:14:16:18,0,0,0,6:7,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 //NC_POWERSWING#Power Swing# -2280,0,0,18:20:22:24:26,0,0,0,6:7,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 //NC_AXETORNADO#Axe Tornado# -2281,0,0,25:30:35:40:45,0,0,0,99,0,0,none,0,0,998,1,999,2,612,0,615,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //NC_SILVERSNIPER#FAW - Silver Sniper# -2282,0,0,40:45:50:55:60,0,0,0,99,0,0,none,0,0,998,2,7054,1,612,0,615,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //NC_MAGICDECOY#FAW - Magic Decoy# +2279,0,0,20:22:24:26:28,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 //NC_POWERSWING#Power Swing# +2280,20:40:60:80:100,0,18:20:22:24:26,0,0,0,6:7,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 //NC_AXETORNADO#Axe Tornado# +2281,0,0,25:30:35:40:45,0,0,0,99,0,0,none,0,0,612,0,615,0,998,1,999,5,0,0,0,0,0,0,0,0,0,0,0,0,0 //NC_SILVERSNIPER#FAW - Silver Sniper# +2282,0,0,40:45:50:55:60,0,0,0,99,0,0,none,0,0,612,0,615,0,998,2,7054,1,0,0,0,0,0,0,0,0,0,0,0,0,0 //NC_MAGICDECOY#FAW - Magic Decoy# 2283,0,0,15,0,0,0,99,0,0,none,0,0,6186,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //NC_DISJOINT#FAW Removal# //**** // SC Shadow Chaser -2284,0,0,40:45:50:55:60,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 //SC_FATALMENACE#Fatal Menace# +2284,0,0,20:25:30:35: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 //SC_FATALMENACE#Fatal Menace# 2285,0,0,40:45:50:55:60:65:70:75:80:85,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 //SC_REPRODUCE#Reproduce# 2286,0,0,40:45:50:55:60:65:70:75:80:85,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 //SC_AUTOSHADOWSPELL#Auto Shadow Spell# 2287,0,0,40:50:60:70:80,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 //SC_SHADOWFORM#Shadow Form# @@ -736,21 +736,22 @@ 2308,0,0,20:20:20:20:20:25:25:25:25:25,0,0,0,4:5,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 //LG_BANISHINGPOINT#Banishing Point# 2309,0,0,30:45:60,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 //LG_TRAMPLE#Trample# 2310,0,0,10:12:14:16:18,0,0,0,99,0,0,shield,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //LG_SHIELDPRESS#Shield Press# -2311,0,0,40:50:60:70:80,0,0,0,99,0,0,shield,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //LG_REFLECTDAMAGE#Reflect Damage# -2312,0,0,30,0,0,0,4:5,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 //LG_PINPOINTATTACK#Pinpoint Attack# +2311,0,0,60:80:100:120:140,0,0,0,99,0,0,shield,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //LG_REFLECTDAMAGE#Reflect Damage# +2312,0,0,50,0,0,0,4:5,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 //LG_PINPOINTATTACK#Pinpoint Attack# 2313,0,0,30,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 //LG_FORCEOFVANGUARD#Force of Vanguard# 2314,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 //LG_RAGEBURST#Rage Burst# 2315,0,0,50,0,0,0,99,0,0,shield,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //LG_SHIELDSPELL#Shield Spell# -2316,0,0,24:28:32:36: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 //LG_EXEEDBREAK#Exceed Break# -2317,0,0,42:44:46:48:50,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 //LG_OVERBRAND#Over Brand# +2316,0,0,20:32:44:56:68,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 //LG_EXEEDBREAK#Exceed Break# +2317,0,0,20:30:40:50:60,0,0,0,4:5,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 //LG_OVERBRAND#Over Brand# 2318,0,0,75:80:85:90:95,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 //LG_PRESTIGE#Prestige# 2319,0,0,30:36:42:48:54,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 //LG_BANDING#Banding# -2320,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 //LG_MOONSLASHER#Moon Slasher# -2321,0,0,60,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 //LG_RAYOFGENESIS#Ray of Genesis# +2320,0,0,20:24:28:32:36,0,0,0,4:5,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 //LG_MOONSLASHER#Moon Slasher# +2321,0,0,60:65:70:75:80,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 //LG_RAYOFGENESIS#Ray of Genesis# 2322,0,0,40:45:50:55:60,0,0,0,99,0,0,none,0,0,523,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //LG_PIETY#Piety# 2323,0,0,52:60:68:76:84,0,0,0,99,0,0,shield,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //LG_EARTHDRIVE#Earth Drive# -2324,0,0,80:90:100:110:120,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 //LG_HESPERUSLIT#Hesperus Lit# -2325,0,0,100,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 //LG_INSPIRATION#Inspiration# +2324,0,0,80:90:100:110:120,0,0,0,4:5,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 //LG_HESPERUSLIT#Hesperus Lit# +2325,0,0,80:90:100:110:120,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 //LG_INSPIRATION#Inspiration# + //**** // SR Sura 2326,0,0,3:4:5:6:7: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_DRAGONCOMBO#Dragon Combo# @@ -759,7 +760,7 @@ 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# 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# -2332,0,0,110:120:130:140: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# 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# 2335,0,0,80:70:60:50:40,-5:-4:-3:-2:-1,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_LIGHTNINGWALK#Lightning Walk# @@ -777,8 +778,8 @@ 2347,0,0,40:50:60:70:80,-2:-4:-6:-8:-10,0,0,99,0,0,none,0,1:2:3:4:5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //SR_GENTLETOUCH_CHANGE#Gentle Touch - Change# 2348,0,0,40:50:60:70:80,0,0,0,99,0,0,none,0,1:2:3:4:5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //SR_GENTLETOUCH_REVITALIZE#Gentle Touch - Revitalize# //More from SR Sura (but not following ID order) -2517,0,0,40:45:50:55:60,0,0,0,99,0,0,none,0,1:2:3:4:5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //SR_HOWLINGOFLION#Howling of Lion# -2518,0,0,40:50:60:70:80,0,0,0,99,0,0,none,0,1:2:3:4:5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //SR_RIDEINLIGHTNING#Ride In Lightening# +2517,0,0,80:90:100:110:120,0,0,0,99,0,0,none,0,1:2:3:4:5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //SR_HOWLINGOFLION#Howling of Lion# +2518,0,0,22:24:26:28:30,0,0,0,99,0,0,none,0,1:2:3:4:5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //SR_RIDEINLIGHTNING#Ride In Lightening# //**** // WA Wanderer @@ -800,22 +801,22 @@ 2416,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 //WM_REVERBERATION_MAGIC#Reverberation Magic# 2417,0,0,10,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 //WM_DOMINION_IMPULSE#Dominion Impulse# 2418,0,0,80:90:100:110:120,0,0,0,11,1,20,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //WM_SEVERE_RAINSTORM#Severe Rainstorm# -2419,0,0,12:16:20:24:28,0,0,0,99,0,0,none,0,0,11513,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //WM_POEMOFNETHERWORLD#Poem of Netherworld# +2419,0,0,12:16:20:24:28,0,0,0,13:14,0,0,none,0,0,11513,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //WM_POEMOFNETHERWORLD#Poem of Netherworld# 2420,0,0,48:56:64:72:80,0,0,0,13:14,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 //WM_VOICEOFSIREN#Voice of Siren# -2421,0,0,50:53:56:59:62,0,0,0,99,0,0,none,0,0,6144,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //WM_DEADHILLHERE#Valley of Death# +2421,0,0,50:53:56:59:62,0,0,0,13:14,0,0,none,0,0,6144,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //WM_DEADHILLHERE#Valley of Death# 2422,0,0,80:90:100:110:120,0,0,0,13:14,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 //WM_LULLABY_DEEPSLEEP#Deep Sleep Lullaby# 2423,0,0,42:46:50:54:58,0,0,0,13:14,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 //WM_SIRCLEOFNATURE#Circle of Nature's Sound# 2424,0,0,40:45:50:55:60,0,0,0,13:14,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 //WM_RANDOMIZESPELL#Improvised Song# -2425,0,0,60,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 //MW_GLOOMYDAY#Gloomy Day# +2425,0,0,60:75:90:105:120,0,0,0,13:14,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 //MW_GLOOMYDAY#Gloomy Day# 2426,0,0,80:90:100:110:120,0,0,0,99,0,0,none,0,0,11513,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //WM_GREAT_ECHO#Great Echo# - Missing 1 Lozange. Need item ID. -2427,0,0,120:140:160:180:200,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 //WM_SONG_OF_MANA#Song of Mana# -2428,0,0,120:140:160:180:200,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 //WM_DANCE_WITH_WUG#Dance With Warg# -2429,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 //WM_SOUND_OF_DESTRUCTION#Sound of Destruction# -2430,0,0,150:160:170:180:190,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 //WM_SATURDAY_NIGHT_FEVER#Saturday Night Fever# -2431,0,0,120:130:140:150:160,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 //WM_LERADS_DEW#Lerad's Dew# -2432,0,0,120:130:140:150:160,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 //WM_MELODYOFSINK#Melody of Sink# -2433,0,0,120:130:140:150:160,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 //WM_WARCRY_OF_BEYOND#Warcry of Beyond# -2434,0,0,120:130:140:150:160,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 //WM_UNLIMITED_HUMMING_VOICE#Unlimited Humming Voice# +2427,0,0,120:140:160:180:200,0,0,0,13:14,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 //WM_SONG_OF_MANA#Song of Mana# +2428,0,0,120:140:160:180:200,0,0,0,13:14,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 //WM_DANCE_WITH_WUG#Dance With Warg# +2429,0,0,50:60:70:80:90,0,0,0,13:14,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 //WM_SOUND_OF_DESTRUCTION#Sound of Destruction# +2430,0,0,150:160:170:180:190,0,0,0,13:14,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 //WM_SATURDAY_NIGHT_FEVER#Saturday Night Fever# +2431,0,0,120:130:140:150:160,0,0,0,13:14,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 //WM_LERADS_DEW#Lerad's Dew# +2432,0,0,120:130:140:150:160,0,0,0,13:14,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 //WM_MELODYOFSINK#Melody of Sink# +2433,0,0,120:130:140:150:160,0,0,0,13:14,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 //WM_WARCRY_OF_BEYOND#Warcry of Beyond# +2434,0,0,120:130:140:150:160,0,0,0,13:14,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 //WM_UNLIMITED_HUMMING_VOICE#Unlimited Humming Voice# //**** // SO Sorcerer @@ -883,7 +884,7 @@ //2543,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 //ALL_RAY_OF_PROTECTION#Ray of Protection# //2544,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 //MC_CARTDECORATE#Cart Decorate# -//*** +//**** // Rebellion 2551,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 //RL_GLITTERING_GREED#Flip The Coin Greed# 2552,0,0,10,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 //RL_RICHS_COIN#Rich's Coin# diff --git a/db/pre-re/skill_unit_db.txt b/db/pre-re/skill_unit_db.txt index db1bee6478..0e454e47e8 100644 --- a/db/pre-re/skill_unit_db.txt +++ b/db/pre-re/skill_unit_db.txt @@ -101,12 +101,13 @@ //706,0xfd, , 0, 0,1000,all, 0x000 //NPC_VENOMFOG -2044,0xca, , 0, 2,1000,all, 0x018 //AB_EPICLESIS +2044,0xca, , 0, 2,3000,all, 0x018 //AB_EPICLESIS 2032,0xe1, , 2, 0,1000,enemy, 0x018 //GC_POISONSMOKE +2213,0x86, , 0, 9,1000,enemy, 0x018 //WL_COMET 2214,0x86, , 0, 5, 100,enemy, 0x080 //WL_CHAINLIGHTNING -2216,0xcb, , -1, 0, 150,enemy, 0x018 //WL_EARTHSTRAIN +2216,0xcb, , -1, 2,2000,enemy, 0x018 //WL_EARTHSTRAIN 2238,0xd8, , 0, 1,1000,enemy, 0x006 //RA_ELECTRICSHOCKER 2239,0xd9, , 0, 1,1000,enemy, 0x006 //RA_CLUSTERBOMB @@ -117,19 +118,20 @@ 2253,0xd6, , 0, 1,1000,enemy, 0x002 //RA_FIRINGTRAP 2254,0xd7, , 0, 1,1000,enemy, 0x002 //RA_ICEBOUNDTRAP -2273,0xe2, , 1, 0, 500,friend,0x000 //NC_NEUTRALBARRIER -2274,0xe3, , 1, 0, 500,all, 0x000 //NC_STEALTHFIELD +2273,0xe2, , 2, 0, 500,friend,0x000 //NC_NEUTRALBARRIER +2274,0xe3, , 2, 0, 500,all, 0x000 //NC_STEALTHFIELD 2299,0xcc, , 0, 1,1000,all, 0x006 //SC_MANHOLE 2300,0xcd, , 0, 1,1000,all, 0x006 //SC_DIMENSIONDOOR -2301,0xce, , 2, 0, -1,all, 0x200E //SC_CHAOSPANIC -2302,0xcf, , 0, 2, -1,enemy, 0x002 //SC_MAELSTROM -2303,0xd0, , 3, 0, -1,all, 0x2018 //SC_BLOODYLUST -2304,0xd1, , 0, 2, -1,enemy, 0x000 //SC_FEINTBOMB +2301,0xce, , 0, 2, -1,all, 0x200E //SC_CHAOSPANIC +2302,0xcf, , 0, 2, -1,enemy, 0x002 //SC_MAELSTROM +2303,0xd0, , 0, 2, -1,all, 0x2018 //SC_BLOODYLUST +2304,0xd1, , 0, 2,1000,enemy, 0x018 //SC_FEINTBOMB +2317,0x86, , -1, 0, -1,enemy, 0x010 //LG_OVERBRAND 2319,0xec, , 0, 3,5000,all, 0x000 //LG_BANDING -2414,0xda, , 0, 0,1000,enemy, 0x008 //WM_REVERBERATION +2414,0xda, , 0, 1,1000,enemy, 0x008 //WM_REVERBERATION 2418,0xdb, , 0, 5, 300,enemy, 0x800 //WM_SEVERE_RAINSTORM 2419,0xde, , 0, 1,1000,all, 0x014 //WM_POEMOFNETHERWORLD @@ -138,20 +140,20 @@ 2446,0x86, , 0, 3:3:3:4:4,1000,enemy, 0x018 //SO_EARTHGRAVE 2447,0x86, , 0, 3:3:3:4:4,1000,enemy, 0x018 //SO_DIAMONDDUST 2449,0xdf, , 0, 3:3:4:4:5,500,enemy, 0x018 //SO_PSYCHIC_WAVE -2450,0xe0, , 0, 3, 500,enemy, 0x010 //SO_CLOUD_KILL +2450,0xe0, , 3, 0, 500,enemy, 0x010 //SO_CLOUD_KILL 2452,0xe4, , 0, 3,3000,all, 0x010 //SO_WARMER -2453,0xeb, , 0, 1:1:2:2:3,1000,enemy,0x010 //SO_VACUUM_EXTREME +2453,0xeb, , 0, 1:1:2:2:3,500,enemy,0x010 //SO_VACUUM_EXTREME 2465,0xf1, , 0, 1,1000,all, 0x010 //SO_FIRE_INSIGNIA 2466,0xf2, , 0, 1,1000,all, 0x010 //SO_WATER_INSIGNIA 2467,0xf3, , 0, 1,1000,all, 0x010 //SO_WIND_INSIGNIA 2468,0xf4, , 0, 1,1000,all, 0x010 //SO_EARTH_INSIGNIA 2479,0xe5, , 0, 1,1000,enemy, 0x006 //GN_THORNS_TRAP -2482,0xe6,0x7f, -1, 1, -1,all, 0x000 //GN_WALLOFTHORN +2482,0xe6,0x7f, -1, 1, 100,all, 0x000 //GN_WALLOFTHORN 2484,0x86, , 0, 1, 100,enemy, 0x080 //GN_CRAZYWEED_ATK -2485,0xe7, , 0, 3,1000,enemy, 0x098 //GN_DEMONIC_FIRE -2487,0xe8, , 0, 3,1000,enemy, 0x000 //GN_FIRE_EXPANSION_SMOKE_POWDER -2488,0xe9, , 0, 3,1000,enemy, 0x000 //GN_FIRE_EXPANSION_TEAR_GAS +2485,0xe7, , 0, 2,2000,enemy, 0x098 //GN_DEMONIC_FIRE +2487,0xe8, , 0, 2, 500,enemy, 0x000 //GN_FIRE_EXPANSION_SMOKE_POWDER +2488,0xe9, , 0, 2, 500,enemy, 0x000 //GN_FIRE_EXPANSION_TEAR_GAS 2490,0xea, , 0, 1,1000,enemy, 0x002 //GN_HELLS_PLANT 2555,0x104, , 0, 1:2:2:3:3,500,enemy,0x006 //RL_B_TRAP diff --git a/db/re/item_db.txt b/db/re/item_db.txt index 98bcbeeaeb..8b9be08883 100644 --- a/db/re/item_db.txt +++ b/db/re/item_db.txt @@ -5859,7 +5859,7 @@ 12380,Desert_Wolf_Babe_Scroll,Job Change Flute,2,10,,10,,,,,0xFFFFFFFF,63,2,,,,,,{ mercenary_create 2034,1800000; },{},{} 12381,ValkyrieA_Scroll,Ancient Languages Scroll,2,10,,10,,,,,0xFFFFFFFF,63,2,,,,,,{ if(strcharinfo(3)=="job3_arch02") { mercenary_create 2037,1800000; } },{},{} 12382,ValkyrieB_Scroll,Ancient Languages Scroll,2,10,,10,,,,,0xFFFFFFFF,63,2,,,,,,{ if(strcharinfo(3)=="job3_arch02") { mercenary_create 2038,1800000; } },{},{} -12383,Vulcan_Bullet_Magazine,Vulcan Bullet Magazine,2,11000,,500,,,,,0xFFFFFFFF,63,2,,,,,,{},{},{} +12383,Vulcan_Bullet_Magazine,Vulcan Bullet Magazine,2,11000,,500,,,,,0xFFFFFFFF,63,2,,,,,,{ getitem 6145,1000; },{},{} 12384,Rainbow_Ruby_Water,Rainbow Ruby,11,0,,50,,,,,0xFFFFFFFF,63,2,,,,,,{ if(strcharinfo(3)=="job3_war02") { itemskill "WL_FROSTMISTY",5; } },{},{} 12385,Rainbow_Ruby_Fire,Rainbow Ruby,11,0,,50,,,,,0xFFFFFFFF,63,2,,,,,,{ if(strcharinfo(3)=="job3_war02") { itemskill "WL_CRIMSONROCK",5; } },{},{} 12386,Rainbow_Ruby_Wind,Rainbow Ruby,11,0,,50,,,,,0xFFFFFFFF,63,2,,,,,,{ if(strcharinfo(3)=="job3_war02") { itemskill "WL_CHAINLIGHTNING",5; } },{},{} @@ -5868,9 +5868,9 @@ 12389,Runstone_Storm,Pertz Runestone For Apprentice,11,0,,10,,,,,0xFFFFFFFF,63,2,,,,,,{ if(strcharinfo(3)=="job3_rune02") { itemskill "RK_STORMBLAST",1; } },{},{} 12390,Runstone_Millennium,Verkana Runestone For Apprentice,11,0,,10,,,,,0xFFFFFFFF,63,2,,,,,,{ if(strcharinfo(3)=="job3_rune02") { itemskill "RK_MILLENNIUMSHIELD",1; } },{},{} 12391,Lucky_Egg_C,Lucky Egg C,2,0,,10,,,,,0xFFFFFFFF,63,2,,,,,,{ getgroupitem(IG_Lucky_Egg_C); },{},{} -12392,Repair_A,Repair A,0,220,,70,,,,,0x00000400,56,2,,,,,,{/*madoheal rand(200,300),0; */},{},{} -12393,Repair_B,Repair B,0,500,,70,,,,,0x00000400,56,2,,,,,,{/*madoheal rand(300,400),0; */},{},{} -12394,Repair_C,Repair C,0,1100,,70,,,,,0x00000400,56,2,,,,,,{/*madoheal rand(400,500),0; */},{},{} +12392,Repair_A,Repair A,2,220,,100,,,,,0x00000400,56,2,,,,,,{ if ( checkmadogear() ) { itemheal rand(200,300),0; } },{},{} +12393,Repair_B,Repair B,2,500,,140,,,,,0x00000400,56,2,,,,,,{ if ( checkmadogear() ) { itemheal rand(300,400),0; } },{},{} +12394,Repair_C,Repair C,2,1100,,180,,,,,0x00000400,56,2,,,,,,{ if ( checkmadogear() ) { itemheal rand(400,500),0; } },{},{} 12395,Tantanmen,Tantan Noodle,2,20,,50,,,,,0xFFFFFFFF,63,2,,,,,,{ pet 1519; },{},{} 12396,Fools_Day_Box,Gift Box?,11,20,,10,,,,,0xFFFFFFFF,63,2,,,,,,{ if(rand(1,10)==1) itemskill "AL_TELEPORT",1; else if(rand(1,10)==2) itemskill "AL_TELEPORT",3; else if(rand(1,10)==3) percentheal 50,0; else if(rand(1,10)==4) percentheal 0,50; else if(rand(1,10)==5) end; else if(rand(1,10)==6) getitem 512,1; else if(rand(1,10)==7) itemskill "ALL_REVERSEORCISH",1; else if(rand(1,10)==8) specialeffect2 247; else if(rand(1,10)==9) specialeffect2 338; else specialeffect2 10; },{},{} 12397,Fools_Day_Box2,Gift Box?,11,20,,10,,,,,0xFFFFFFFF,63,2,,,,,,{ if(rand(1,10)==1) itemskill "TF_DETOXIFY",1; else if(rand(1,10)==2) itemskill "TF_PICKSTONE",1; else if(rand(1,10)==3) itemskill "BA_FROSTJOKER",1; else if(rand(1,10)==4) itemskill "DC_SCREAM",1; else if(rand(1,10)==5) end; else if(rand(1,10)==6) getitem 909,1; else if(rand(1,10)==7) itemskill "AL_RUWACH",1; else if(rand(1,10)==8) specialeffect2 328; else if(rand(1,10)==9) specialeffect2 68; else specialeffect2 196; },{},{} @@ -5893,11 +5893,11 @@ 12414,Guarana_Candy,Guarana Candy,2,20,,10,,,,,0xFFFFFFFF,63,2,,,,,,{ sc_start SC_ASPDPOTION0,1800000,0; sc_start SC_INCREASEAGI,140000,5; skilleffect "AL_INCAGI",0; },{},{} 12415,Siege_Teleport_Scroll2,Siege Teleport Scroll Silver,2,0,,10,,,,,0xFFFFFFFF,63,2,,,,,,{},{},{} 12416,Lucky_Egg_C3,Lucky Egg C3,2,20,,10,,,,,0xFFFFFFFF,63,2,,,,,,{ getgroupitem(IG_Lucky_Egg_C3); },{},{} -12417,Boost500,Boost500,2,100,,50,,,,,0xFFFFFFFF,63,2,,,,,,{},{},{} -12418,Full_SwingK,Full SwingK,2,100,,50,,,,,0xFFFFFFFF,63,2,,,,,,{},{},{} -12419,Mana_Plus,Mana Plus,2,100,,50,,,,,0xFFFFFFFF,63,2,,,,,,{},{},{} -12420,Stamina_Up_M,Stamina Up M,2,100,,50,,,,,0xFFFFFFFF,63,2,,,,,,{},{},{} -12421,Falmons_F,Falmons F,3,10,,10,,,,,,,,,,,,,{},{},{} +12417,Boost500,Boost500,2,100,,50,,,,,0xFFFFFFFF,63,2,,,,,,{ sc_start SC_BOOST500,500000,10; },{},{} +12418,Full_SwingK,Full SwingK,2,100,,50,,,,,0xFFFFFFFF,63,2,,,,,,{ sc_start SC_FULL_SWING_K,500000,50; },{},{} +12419,Mana_Plus,Mana Plus,2,100,,50,,,,,0xFFFFFFFF,63,2,,,,,,{ sc_start SC_MANA_PLUS,500000,50; },{},{} +12420,Stamina_Up_M,Stamina Up M,2,100,,50,,,,,0xFFFFFFFF,63,2,,,,,,{ sc_start SC_MUSTLE_M,500000,5; },{},{} +12421,Falmons_F,Falmons F,3,10,,10,,,,,0xFFFFFFFF,63,2,,,,,,{ sc_start SC_LIFE_FORCE_F,500000,5; },{},{} 12422,HP_Increase_Potion_(Small),HP Increase Potion (Small),0,10,,10,,,,,0xFFFFFFFF,63,2,,,,,,{ sc_start SC_INCMHP,500000,(500+(BaseLevel*10/3)); percentheal 1,0; },{},{} 12423,HP_Increase_Potion_(Medium),HP Increase Potion (Medium),0,10,,10,,,,,0xFFFFFFFF,63,2,,,,,,{ sc_start SC_INCMHP,500000,(1500+(BaseLevel*10/3)); percentheal 2,0; },{},{} 12424,HP_Increase_Potion_(Large),HP Increase Potion (Large),0,10,,10,,,,,0xFFFFFFFF,63,2,,,,,,{ sc_start SC_INCMHP,500000,(2500+(BaseLevel*10/3)); percentheal 5,0; },{},{} diff --git a/db/re/skill_cast_db.txt b/db/re/skill_cast_db.txt index 87f40be5ad..8eb560b75e 100644 --- a/db/re/skill_cast_db.txt +++ b/db/re/skill_cast_db.txt @@ -1082,14 +1082,12 @@ 2005,0,0,0,15000,0,2000,-1 //-- RK_IGNITIONBREAK 2006,1000,0,0,0,0,2000,-1 - //-- RK_DRAGONBREATH 2008,0:0:0:1000:1000:1000:1500:1500:2000:2000,2000,0,10000,0,0,500 //-- RK_DRAGONHOWLING 2009,0,0,0,15000,0,10000,-1 - //-- RK_MILLENNIUMSHIELD -2011,0,1000,0,180000,0,60000,-1 +2011,0,1000,0,180000,1000,60000,-1 //-- RK_CRUSHSTRIKE 2012,0,0,0,30000,0,30000,1000 //-- RK_REFRESH @@ -1119,7 +1117,6 @@ 2022,0,2500:2000:1500:1000:500,0,0,0,0,-1 //-- GC_DARKILLUSION 2023,0,1500,0,0,0,0,-1 - //-- GC_CREATENEWPOISON 2025,0,500,0,0,0,0,-1 //-- GC_POISONINGWEAPON @@ -1129,11 +1126,11 @@ //-- GC_COUNTERSLASH 2029,0,2000,0,0,0,0,-1 //-- GC_WEAPONCRUSH -2030,0,1000,0,60000,0,0,-1 +2030,0,1000,0,75000:90000:105000:120000:135000,0,0,-1 //-- GC_VENOMPRESSURE 2031,0,1000,0,0,0,0,-1 //-- GC_POISONSMOKE -2032,0,2000,0,6000:8000:10000:12000:14000,0,0,2000 +2032,0,2000,0,10000:12000:14000:16000:18000,0,0,2000 //-- GC_CLOAKINGEXCEED 2033,0,2000,0,0,0,0,-1 //-- GC_PHANTOMMENACE @@ -1171,7 +1168,6 @@ 2047,1000,0,0,60000,0,3000,-1 //-- AB_LAUDARAMUS 2048,1000,0,0,60000,0,3000,-1 - //-- AB_RENOVATIO 2050,3000,0,0,90000,0,0,2000 //-- AB_HIGHNESSHEAL @@ -1182,7 +1178,6 @@ 2053,1000,0,0,150000:180000:210000:240000:270000,0,0,1000 //-- AB_DUPLELIGHT 2054,2000,1000,0,90000:120000:150000:180000:210000:240000:270000:300000:330000:360000,0,0,2000 - //-- AB_SILENTIUM 2057,4000,0,0,20000:30000:40000:50000:60000,0,15000,-1 //-- AB_OFFERTORIUM @@ -1204,7 +1199,6 @@ 2206,1000,1000,0,60000:90000:120000:150000:180000,0,50000:80000:110000:140000:170000,1000 //-- WL_SIENNAEXECRATE 2207,2000,2000,0,10000:12000:14000:16000:18000,0,0,-1 - //-- WL_STASIS 2209,3000,1000,0,10000:15000:20000:25000:30000,0,300000,1000 //-- WL_DRAINLIFE @@ -1217,12 +1211,10 @@ 2213,10000:11000:12000:13000:14000,0,0,15000,0,60000,1000:1500:2000:2500:3000 //-- WL_CHAINLIGHTNING 2214,3500:4000:4500:5000:5500,0,0,100,0,3000,1000 - //-- WL_EARTHSTRAIN 2216,2000:3000:4000:5000:6000,1000,0,150,75000:90000:105000:120000:135000,10000,2000 //-- WL_TETRAVORTEX 2217,5000:6000:7000:8000:9000,2000,0,20000,0,15000,2000 - //-- WL_SUMMONFB 2222,2000,0,0,120000:160000:200000:240000:280000,0,0,-1 //-- WL_SUMMONBL @@ -1231,7 +1223,6 @@ 2224,2000,0,0,120000:160000:200000:240000:280000,0,0,-1 //-- WL_SUMMONSTONE 2229,2000,0,0,120000:160000:200000:240000:280000,0,0,-1 - //-- WL_READING_SB 2231,5000,500,0,0,0,0,1000 //-- WL_TELEKINESIS_INTENSE @@ -1243,28 +1234,24 @@ 2233,2000:2200:2400:2600:2800:3000:3200:3400:3600:3800,0,0,0,0,5000:4800:4600:4400:4200:4000:3800:3600:3400:3200,-1 //-- RA_FEARBREEZE 2234,2000,0,0,60000:90000:120000:150000:180000,0,0,0 - //-- RA_AIMEDBOLT 2236,4000,1000,0,0,0,0,500 //-- RA_DETONATOR 2237,0,0,0,1000,0,0,-1 //-- RA_ELECTRICSHOCKER -2238,0,0,0,15000,20000:22000:24000:26000,0,-1 +2238,0,0,0,15000,20000:22000:24000:26000:28000,0,-1 //-- RA_CLUSTERBOMB 2239,0,0,0,15000,0,0,-1 //-- RA_WUGMASTERY 2240,0,1000,0,0,0,0,-1 //-- RA_WUGRIDER 2241,0,500,0,0,0,0,-1 - //-- RA_WUGBITE 2244,0,2000,0,1000:2000:3000:4000:5000,0,4000:6000:8000:10000:12000,-1 - //-- RA_SENSITIVEKEEN 2246,0,3000,0,0,0,0,-1 //-- RA_CAMOUFLAGE 2247,0,0,0,10000,0,0,-1 - //-- RA_MAGENTATRAP 2249,0,2000,0,15000,10000,0,-1 //-- RA_COBALTTRAP @@ -1274,7 +1261,7 @@ //-- RA_VERDURETRAP 2252,0,2000,0,15000,10000,0,-1 //-- RA_FIRINGTRAP -2253,0,0,0,20000,15000,0,-1 +2253,0,0,0,15000,15000,0,-1 //-- RA_ICEBOUNDTRAP 2254,0,0,0,20000,15000,0,-1 //-- RA_UNLIMIT @@ -1289,20 +1276,19 @@ //-- NC_VULCANARM 2258,0,300:200:100,0,0,0,0,-1 //-- NC_FLAMELAUNCHER -2259,1000:1500:2000,1500:1000:500,0,7000:14000:21000,0,0,500 +2259,500:1000:1500,1500:1000:500,0,7000:14000:21000,0,0,500 //-- NC_COLDSLOWER 2260,1000,1000:2000:3000,0,7000:14000:21000,0,0,-1 // -- NC_ARMSCANNON 2261,1400:1600:1800,500:1000:2000,0,0,0,0,600:400:200 //-- NC_ACCELERATION -2262,0,0,0,30000:60000:90000,0,0,-1 +2262,0,0,0,60000:90000:120000,0,0,-1 //-- NC_HOVERING 2263,0,0,0,90000,0,0,-1 //-- NC_F_SIDESLIDE 2264,0,500,0,0,0,0,-1 //-- NC_B_SIDESLIDE 2265,0,500,0,0,0,0,-1 - //-- NC_SELFDESTRUCTION 2267,2000:1500:1000,0,0,0,0,300000,500 //-- NC_SHAPESHIFT @@ -1314,14 +1300,13 @@ //-- NC_ANALYZE 2271,0,1000,0,20000,0,0,-1 //-- NC_MAGNETICFIELD -2272,500:1000:1500,0,0,15000,0,20000:15000:10000,-1 +2272,0,0,0,4000:6000:8000,0,20000:15000:10000,-1 //-- NC_NEUTRALBARRIER -2273,0,0,0,30000:45000:60000,0,20000:15000:10000,500:1000:1500 +2273,0,0,0,30000:45000:60000,0,20000:15000:10000,-1 //-- NC_STEALTHFIELD -2274,0,0,0,15000:20000:25000,0,20000:15000:10000,500:1000:1500 +2274,0,0,0,15000:20000:25000,0,20000:15000:10000,-1 //-- NC_REPAIR 2275,200:300:400:500:600,1000,0,0,0,0,-1 - //-- NC_AXEBOOMERANG 2278,0,0,0,0,0,5000:4500:4000:3500:3000,-1 //-- NC_POWERSWING @@ -1342,7 +1327,7 @@ //-- SC_FATALMENACE 2284,0,500,0,0,0,0,-1 //-- SC_REPRODUCE -2285,0,1000,0,60000,0,0,-1 +2285,0,1000,0,300000,0,0,-1 //-- SC_AUTOSHADOWSPELL 2286,4000:3600:3200:2800:2400:2000:1600:1200:800:400,0,0,60000:80000:100000:120000:140000:160000:180000:200000:220000:300000,0,0,2000 //-- SC_SHADOWFORM @@ -1388,7 +1373,6 @@ //==== Royal Guard skills ================== //-- LG_CANNONSPEAR 2307,0,0,0,0,0,2000,-1 - //-- LG_TRAMPLE 2309,0,0,0,0,0,1000,-1 //-- LG_SHIELDPRESS @@ -1429,7 +1413,7 @@ //===== Sura Skills ======================== //-- SR_DRAGONCOMBO -2326,0,0,0,3000,0,0,-1 +2326,0,0,0,5000,0,0,-1 //-- SR_SKYNETBLOW 2327,0,500,0,0,0,0,-1 //-- SR_EARTHSHAKER @@ -1438,7 +1422,6 @@ 2329,0,0,0,500:1000:1500:2000:2500,0,0,-1 //-- SR_TIGERCANNON 2330,1100:1200:1300:1400:1500:1600:1700:1800:1900:2000,1000,0,0,0,5000,-1 - //-- SR_RAMPAGEBLASTER 2332,0,1000,0,0,0,10000,-1 //-- SR_CRESCENTELBOW @@ -1453,12 +1436,10 @@ 2337,1000,500,0,0,0,3000,-1 //-- SR_RAISINGDRAGON 2338,0,1000,0,30000:45000:60000:75000:90000:105000:120000:135000:150000:165000,0,30000,-1 - //-- SR_ASSIMILATEPOWER 2340,0,1000,0,0,0,5000,-1 //-- SR_POWERVELOCITY 2341,1500,0,0,0,0,0,500 - //-- SR_GATEOFHELL 2343,1000:1200:1400:1600:1800:2000:2200:2400:2600:2800,100:200:300:400:500:600:700:800:900:1000,0,0,0,0,-1 //-- SR_GENTLETOUCH_QUIET @@ -1498,11 +1479,10 @@ 2413,1000:1500:2000:2500:3000,1000,0,0,0,2000:2500:3000:3500:4000,-1 //-- WM_REVERBERATION 2414,1100:1200:1300:1400:1500,1000,0,9000:10000:11000:12000:13000,0,0,-1 - //-- WM_DOMINION_IMPULSE 2417,0,1000,0,0,0,0,-1 //-- WM_SEVERE_RAINSTORM -2418,1000:1500:2000:2500:3000,1000,0,900:1500:2100:2700:3000,0,5000:5500:6000:6500:7000,500 +2418,1500:2000:2500:3000:3500,1000,0,900:1500:2100:2700:3000,0,5000:5500:6000:6500:7000,500 //-- WM_POEMOFNETHERWORLD 2419,3000,0,0,9000:11000:13000:15000:17000,8000:10000:12000:14000:16000,0,-1 //-- WM_VOICEOFSIREN @@ -1524,13 +1504,13 @@ //-- WM_DANCE_WITH_WUG 2428,1500:2000:2500:3000:3500,1000,0,30000:60000:90000:120000:150000,0,90000,500 //-- WM_SOUND_OF_DESTRUCTION -2429,0:500:1000:1500:2000,1000,0,0,0,20000,500 +2429,0:500:1000:1500:2000,1000,0,0,0,6000:7000:8000:9000:10000,500 //-- WM_SATURDAY_NIGHT_FEVER 2430,1000:2000:3000:4000:5000,1000,0,10000:15000:20000:25000:30000,10000:8000:6000:4000:2000,180000,1000 //-- WM_LERADS_DEW 2431,1000,1000,0,20000:30000:40000:50000:60000,0,180000,500 //-- WM_MELODYOFSINK -2432,100,1000,0,20000:30000:40000:50000:60000,0,180000,500 +2432,1000,1000,0,20000:30000:40000:50000:60000,0,180000,500 //-- WM_BEYOND_OF_WARCRY 2433,1000,1000,0,20000:30000:40000:50000:60000,0,180000,500 //-- WM_UNLIMITED_HUMMING_VOICE @@ -1580,7 +1560,6 @@ 2461,0,0,0,0,0,5000,0 //-- SO_EL_ANALYSIS 2462,0,0,0,0,0,0,2000 - //-- SO_EL_CURE 2464,2000,1000,0,0,0,0,-1 //-- SO_FIRE_INSIGNIA @@ -1614,16 +1593,14 @@ 2483,3000:3500:4000:4500:5000:5500:6000:6500:7000:7500,500,0,0,0,5000,-1 //-- GN_CRAZYWEED_ATK 2484,0,0,0,100,0,0,-1 - //-- GN_DEMONIC_FIRE -2485,3000:3500:4000:4500:5000,500,0,10000:12000:14000:16000:18000,15000,5000,-1 +2485,3000:3500:4000:4500:5000,500,0,10000:12000:14000:16000:18000,8000:16000:24000:32000:40000,5000,-1 //-- GN_FIRE_EXPANSION 2486,2000,500,0,0,0,0,-1 //-- GN_FIRE_EXPANSION_SMOKE_POWDER 2487,0,0,0,10000:12000:14000:16000:18000,0,0,-1 //-- GN_FIRE_EXPANSION_TEAR_GAS 2488,0,0,0,10000:12000:14000:16000:18000,0,0,-1 - //-- GN_HELLS_PLANT 2490,3000:3500:4000:4500:5000,500,0,14000:21000:28000:35000:42000,0,0,-1 //-- GN_HELLS_PLANT_ATK @@ -1631,8 +1608,7 @@ //-- GN_MANDRAGORA 2492,1000,500,0,10000:15000:20000:25000:30000,0,15000,-1 //-- GN_SLINGITEM -2493,0,0,0,77000,10000,1000,-1 - +2493,0,0,0,0,0,1000,-1 //-- GN_SLINGITEM_RANGEMELEEATK 2498,0,0,0,5000:10000:60000:60000:3000,0,0,-1 //-- GN_ILLUSIONDOPING @@ -1642,11 +1618,10 @@ //===== Extra 3rd Class Skills ============= //-- AB_SECRAMENT 2515,1000,500,0,60000:90000:120000:150000:180000,0,0,1000 - //-- SR_HOWLINGOFLION 2517,1000,0,0,12000:14000:16000:18000:20000,0,10000,500 //-- SR_RIDEINLIGHTNING -2518,1000:2000:3000:4000:5000,200,0,0,0,1000,-1 +2518,1000:2000:3000:4000:5000,0,0,0,0,1000,-1 //========================================== //===== Misc. Skills ======================= diff --git a/db/re/skill_castnodex_db.txt b/db/re/skill_castnodex_db.txt index 07c756bd5c..7c5af99627 100644 --- a/db/re/skill_castnodex_db.txt +++ b/db/re/skill_castnodex_db.txt @@ -36,6 +36,22 @@ 512,3 //GS_TRACKING 1014,1 //PR_REDEMPTIO +2012,7 //RK_CRUSHSTRIKE +2013,7 //RK_REFRESH +2014,7 //RK_GIANTGROWTH +2015,7 //RK_STONEHARDSKIN +2022,0,2 //GC_CROSSIMPACT +2032,7 //GC_POISONSMOKE +2234,7 //RA_FEARBREEZE +//2267,7 //NC_SELFDESTRUCTION +2268,7 //NC_SHAPESHIFT +//2270,7 //NC_INFRAREDSCAN +2271,7 //NC_ANALYZE +2281,7 //NC_SILVERSNIPER +2282,7 //NC_MAGICDECOY +2313,7 //LG_FORCEOFVANGUARD +2462,7 //SO_EL_ANALYSIS + 2534,7,7 //RETURN_TO_ELDICASTES 2536,7,7 //ALL_GUARDIAN_RECALL 2537,0,7 //ALL_ODINS_POWER diff --git a/db/re/skill_db.txt b/db/re/skill_db.txt index f857b82714..7ffd6c85fd 100644 --- a/db/re/skill_db.txt +++ b/db/re/skill_db.txt @@ -869,7 +869,7 @@ 1010,9,6,1,0,0x1,0,1,0,no,0,0x1,0,misc,0,0x0, BA_PANGVOICE,Pang Voice 1011,9,6,1,0,0x1,0,1,0,no,0,0x1,0,misc,0,0x0, DC_WINKCHARM,Wink of Charm 1012,0,0,0,0,0,0,1,0,no,0,0x1,0,weapon,0,0x4000, BS_UNFAIRLYTRICK,Unfair Trick -1013,0,6,4,0,0x3,2,1,0,no,0,0x1,0,weapon,0,0x4000, BS_GREED,Greed +1013,0,6,4,0,0x3,2,1,0,no,0,0x1,0,weapon,0,0x0, BS_GREED,Greed 1014,0,6,4,6,0x3,14,1,0,yes,0,0x1,0,magic,0,0x0, PR_REDEMPTIO,Redemptio 1015,9,6,16,0,0x1,0,1,1,no,0,0x401,0,weapon,0,0x0, MO_KITRANSLATION,Ki Translation 1016,-1,6,1,-1,0x2,1,1,1,no,0,0x1,0,weapon,5,0x0, MO_BALKYOUNG,Ki Explosion @@ -904,8 +904,8 @@ // WL Warlock 2201,11,6,16,0,0,0,5,1,yes,0,0,0,magic,0,0x420, WL_WHITEIMPRISON,White Imprison 2202,11,8,1,8,0x2,1:1:1:2:2,5,-2,yes,0,0,0,magic,0,0x420, WL_SOULEXPANSION,Soul Expansion -2203,0,8,4,1,0x2,13,5,-3:-4:-5:-6:-7,yes,0,0,0,magic,0,0x400, WL_FROSTMISTY,Frosty Misty -2204,0,8,4,1,0x2,13,5,-5,yes,0,0,0,magic,0,0x0, WL_JACKFROST,Jack Frost +2203,0,8,4,1,0x2,9,5,-3:-4:-5:-6:-7,yes,0,0,0,magic,0,0x400, WL_FROSTMISTY,Frosty Misty +2204,0,8,4,1,0x2,5:6:7:8:9,5,-5,yes,0,0,0,magic,0,0x0, WL_JACKFROST,Jack Frost 2205,11,6,1,0,0x1,0,5,1,yes,0,0,0,magic,0,0x400, WL_MARSHOFABYSS,Marsh of Abyss 2206,0,6,4,0,0x1,0,5,1,yes,0,0,0,magic,0,0x20, WL_RECOGNIZEDSPELL,Recognized Spell 2207,7,6,1,2,0x3,1:2:2:3:3,5,1,yes,0,0,0,magic,0,0x420, WL_SIENNAEXECRATE,Sienna Execrate @@ -914,10 +914,10 @@ 2210,11,6,1,0,0,0,5,1,yes,0,0,0,magic,0,0x420, WL_DRAINLIFE,Drain Life 2211,11,8,1,3,0x2,3,5,-7,yes,0,0,0,magic,3,0x400, WL_CRIMSONROCK,Crimson Rock 2212,11,6,1,3,0,0,5,1,yes,0,0,0,magic,0,0x400, WL_HELLINFERNO,Hell Inferno -2213,11,8,2,0,0x2,7,5,-20,yes,0,0,0,magic,2,0x400, WL_COMET,Comet -2214,11,6,1,0,0,3,5,1,yes,0,0,0,magic,0,0x400, WL_CHAINLIGHTNING,Chain Lightning //CHECK Is the splash being used for the target search? +2213,11,8,2,0,0x2,9,5,-20,yes,0,0,0,magic,2,0x400, WL_COMET,Comet +2214,11,6,1,0,0x2,3,5,1,yes,0,0,0,magic,0,0x400, WL_CHAINLIGHTNING,Chain Lightning //CHECK Is the splash being used for the target search? 2215,11,6,1,4,0,0,5,1,no,0,0,0,magic,0,0x0, WL_CHAINLIGHTNING_ATK,Chain Lightning Attack -2216,3,8,2,2,0,0,5,-6:-7:-8:-9:-10,yes,0,0,0,magic,0,0x20, WL_EARTHSTRAIN,Earth Strain +2216,6,8,2,2,0,0,5,-6:-7:-8:-9:-10,yes,0,0,0,magic,0,0x20, WL_EARTHSTRAIN,Earth Strain 2217,11,6,1,0,0,0,5,1,yes,0,0,0,magic,0,0x400, WL_TETRAVORTEX,Tetra Vortex 2218,11,6,1,3,0,0,5,1,no,0,0,0,magic,0,0x0, WL_TETRAVORTEX_FIRE,Tetra Vortex Fire 2219,11,6,1,1,0,0,5,1,no,0,0,0,magic,0,0x0, WL_TETRAVORTEX_WATER,Tetra Vortex Water @@ -940,14 +940,14 @@ // GC Guillotine Cross 2021,10,6,1,0,0x1,0,5,1,no,0,0,0,none,0,0x0, GC_VENOMIMPRESS,Venom Impress 2022,3,8,1,-1,0,0,5,-7,no,0,0,0,weapon,0,0x0, GC_CROSSIMPACT,Cross Impact -2023,3:4:5:6:7,6,1,-1,0,0,5,1,no,0,0,0,weapon,0,0x0, GC_DARKILLUSION,Dark Illusion +2023,5:6:7:8:9,6,1,-1,0,0,5,1,no,0,0,0,weapon,0,0x0, GC_DARKILLUSION,Dark Illusion 2024,0,0,0,0,0,0,10,0,no,0,0,0,none,0,0x0, GC_RESEARCHNEWPOISON,Research New Poison 2025,0,6,4,0,0x1,0,1,1,no,0,0,0,none,0,0x0, GC_CREATENEWPOISON,Create New Poison 2026,5,6,16,0,0x1,0,1,1,no,0,0,0,none,0,0x0, GC_ANTIDOTE,Antidote 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 -2029,-2,6,4,-1,0x2,1,5,1,no,0,0,0,weapon,3,0x0, GC_COUNTERSLASH,Counter Slash -2030,-2,6,4,-1,0,0,5,1,no,0,0x200,0,weapon,0,0x0, GC_WEAPONCRUSH,Weapon Crush +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 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 2033,0,6,4,0,0x1,0,5,1,no,0,0,0,weapon,0,0x40, GC_CLOAKINGEXCEED,Cloaking Exceed @@ -993,8 +993,8 @@ 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 2242,0,6,4,-1,0x2,1,1,0,no,0,0,0,weapon,0,0x2000, RA_WUGDASH,Warg Dash -2243,9,6,1,0,0,0,5,1,no,0,0,0,weapon,0,0x2000, RA_WUGSTRIKE,Warg Strike -2244,9,6,1,0,0,0,5,1,no,0,0,0,weapon,0,0x80, RA_WUGBITE,Warg Bite +2243,9,6,1,-1,0,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 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 2247,0,6,4,0,0x1,0,5,1,no,0,0,0,none,0,0x42, RA_CAMOUFLAGE,Camouflage @@ -1011,32 +1011,32 @@ 2255,0,0,0,0,0,0,5,0,no,0,0,0,none,0,0x0, NC_MADOLICENCE,Mado License 2256,11,6,1,-1,0,0,5,1,no,0,0,0,weapon,0,0x0, NC_BOOSTKNUCKLE,Boost Knuckle 2257,3,6,1,-1,0,0,3,1,no,0,0,0,weapon,0,0x0, NC_PILEBUNKER,Pile Bunker -2258,13,6,1,-1,0,0,3,1,no,0,0,0,weapon,0,0x0, NC_VULCANARM,Vulcan Arm -2259,5,6,1,3,0,2,3,1,no,0,0,5,weapon,0,0x0, NC_FLAMELAUNCHER,Flame Launcher +2258,13,6,1,-1,0x2,1,3,1,no,0,0,0,weapon,0,0x0, NC_VULCANARM,Vulcan Arm +2259,7,6,1,3,0,2,3,1,no,0,0,5,weapon,0,0x0, NC_FLAMELAUNCHER,Flame Launcher 2260,7,6,2,1,0x2,2:3:4,3,1,no,0,0,0,weapon,0,0x0, NC_COLDSLOWER,Cold Slower -2261,7,6,2,-1,0x42,3:2:1,3,1,no,0,0,0,weapon,0,0x0, NC_ARMSCANNON,Arm Cannon +2261,9:11:13,6,1,-1,0x42,3:2:1,3,1,no,0,0,0,weapon,0,0x0, NC_ARMSCANNON,Arm Cannon 2262,0,6,4,0,0x1,0,3,1,no,0,0,0,none,0,0x0, NC_ACCELERATION,Acceleration 2263,0,6,4,0,0x1,0,1,1,no,0,0,0,none,0,0x0, NC_HOVERING,Hovering 2264,0,6,4,0,0x1,0,1,1,no,0,0,0,none,7,0x0, NC_F_SIDESLIDE,Front-Side Slide 2265,0,6,4,0,0x1,0,1,1,no,0,0,0,none,7,0x0, NC_B_SIDESLIDE,Back-Side Slide 2266,0,0,0,0,0,0,4,0,no,0,0,0,none,0,0x0, NC_MAINFRAME,Mainframe Restructure // Check me. Part of the code notes translated to "The amount of fuel have". -2267,0,6,4,-1,0x42,2:3:4,3,1,no,0,0,0,misc,5,0x0, NC_SELFDESTRUCTION,Self Destruction +2267,0,6,4,-1,0x4A,2:3:4,3,1,no,0,0,0,misc,5,0x0, NC_SELFDESTRUCTION,Self Destruction 2268,0,6,4,0,0x1,0,4,1,yes,0,0,0,none,0,0x0, NC_SHAPESHIFT,Shape Shift 2269,0,6,4,0,0x1,0,1,1,no,0,0,0,none,0,0x0, NC_EMERGENCYCOOL,Emergency Cool 2270,0,6,4,0,0x3,7,1,1,yes,0,0,0,none,0,0x0, NC_INFRAREDSCAN,Infrared Scan 2271,9,6,1,0,0x1,0,3,1,yes,0,0,0,none,0,0x0, NC_ANALYZE,Analyze -2272,0,6,4,0,0x3,1:2:3,3,1,yes,0,0,0,none,0,0x0, NC_MAGNETICFIELD,Magnetic Field -2273,0,6,4,0,0x1,0,3,1,yes,0,0,0,none,0,0x0, NC_NEUTRALBARRIER,Neutral Barrier -2274,0,6,4,0,0x1,0,3,1,yes,0,0,0,none,0,0x0, NC_STEALTHFIELD,Stealth Field -2275,5,6,16,0,0x1,0,5,1,yes,0,0,0,magic,0,0x0, NC_REPAIR,Repair +2272,0,6,4,0,0x3,2,3,1,no,0,0,0,none,0,0x0, NC_MAGNETICFIELD,Magnetic Field +2273,0,6,4,0,0x1,0,3,1,no,0,0,0,none,0,0x0, NC_NEUTRALBARRIER,Neutral Barrier +2274,0,6,4,0,0x1,0,3,1,no,0,0,0,none,0,0x0, NC_STEALTHFIELD,Stealth Field +2275,5:6:7:8:9,6,16,0,0x1,0,5,1,yes,0,0,0,magic,0,0x0, NC_REPAIR,Repair 2276,0,0,0,0,0,0,10,0,no,0,0,0,none,0,0x0, NC_TRAININGAXE,Axe Training 2277,0,0,0,0,0,0,5,0,no,0,0,0,none,0,0x0, NC_RESEARCHFE,Research Fire/Earth -2278,4:5:6:7:8,6,1,-1,0,0,5,1,no,0,0,0,weapon,2:3:4:5:6,0x0, NC_AXEBOOMERANG,Axe Boomerang +2278,5:6:7:8:9,6,1,-1,0,0,5,1,no,0,0,0,weapon,2:3:4:5:6,0x0, NC_AXEBOOMERANG,Axe Boomerang 2279,1,6,1,-1,0,0,5,1,no,0,0,0,weapon,0,0x0, NC_POWERSWING,Power Swing 2280,0,8,4,-1,0x2,2:2:3:3:3,5,-6,no,0,0,0,weapon,0,0x0, NC_AXETORNADO,Axe Tornado // Check me. Takes 20 * Skill LV amount of HP each use. 2281,2,6,2,0,0x1,0,5,1,yes,0,0,2,none,0,0x0, NC_SILVERSNIPER,FAW - Silver Sniper -2282,2,6,2,0,0x1,0,5,1,yes,0,0,2,none,0,0x0, NC_MAGICDECOY,FAW - Magic Decoy //CHECK FIX ME!!!! Wind and Earth stones spawning opposite decoys. -2283,2,6,1,0,0x1,0,1,1,no,0,0,0,none,0,0x0, NC_DISJOINT,FAW Removal +2282,2,6,2,0,0x1,0,5,1,yes,0,0,2,none,0,0x0, NC_MAGICDECOY,FAW - Magic Decoy +2283,5,6,1,0,0x1,0,1,1,no,0,0,0,none,0,0x0, NC_DISJOINT,FAW Removal //**** // SC Shadow Chaser @@ -1072,11 +1072,11 @@ 2312,5,6,1,-1,0,0,5,1,no,0,0,0,weapon,0,0x0, LG_PINPOINTATTACK,Pinpoint Attack 2313,0,6,4,0,0x1,0,5,1,yes,0,0,0,none,0,0x0, LG_FORCEOFVANGUARD,Force of Vanguard 2314,1,6,1,-1,0,0,1,1,no,0,0,0,weapon,0,0x0, LG_RAGEBURST,Rage Burst -2315,0,6,4,0:6:0,0x2,3,3,1,yes,0,0,0,none,2,0x0, LG_SHIELDSPELL,Shield Spell +2315,0,6,4,0:6:0,0x2,0,3,1,yes,0,0,0,none,2:0:0,0x0, LG_SHIELDSPELL,Shield Spell 2316,0,6,4,0,0x1,0,5,1,yes,0,0,0,none,0,0x0, LG_EXEEDBREAK,Exceed Break -2317,0,6,2,-1,0x2,0,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 -2319,0,6,4,0,0x1,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 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 @@ -1086,15 +1086,15 @@ //**** // SR Sura -2326,-2,8,1,-1,0,0,10,2,no,0,0,0,weapon,0,0x0, SR_DRAGONCOMBO,Dragon Combo //CHECK Is this 2 regular hits or sub hits? Yes its 2 sub hits. -2327,0,8,4,-1,0x2,2,5,-3,no,0,0,0,weapon,3,0x0, SR_SKYNETBLOW,Sky Net Blow //CHECK Video shows 3 hits. Its sub hits right? Data check shows no sub, one source shows 3 hits, another shows 5. -2328,0,6,4,-1,0x2,1:2:3:4:5,5,1,no,0,0,0,weapon,0,0x0, SR_EARTHSHAKER,Earth Shaker //CHECK Must add a check in battle.c to triple damage if hitting a hidden target. -2329,-2,8,4,-1,0,0,5,-2,no,0,0x200,0,weapon,0,0x0, SR_FALLENEMPIRE,Fallen Empire //CHECK Video shows 2 hits. Is it sub hits? Yes its divided between 2 hits. +2326,-2,8,1,-1,0,0,10,-2,no,0,0,0,weapon,0,0x0, SR_DRAGONCOMBO,Dragon Combo +2327,0,8,4,-1,0x2,2,5,-3,no,0,0,0,weapon,3,0x0, SR_SKYNETBLOW,Sky Net Blow +2328,0,6,4,-1,0x2,1:2:3:4:5,5,1,no,0,0,0,weapon,0,0x0, SR_EARTHSHAKER,Earth Shaker +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. 2331,0,0,0,0,0,0,10,0,no,0,0,0,none,0,0x0, SR_HELLGATE,Hell Gate -2332,5,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. -2334,0,6,4,0,0x3,1:1:2:2:3,5,1,no,0,0,0,none,0,0x0, SR_CURSEDCIRCLE,Cursed Circle //CHECK Code shows it takes up to 5% of your HP upon use? +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 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 @@ -1105,13 +1105,13 @@ 2342,1,6,1,-1,0x20,0,5,1,no,0,0,0,weapon,3,0x0, SR_CRESCENTELBOW_AUTOSPELL,Crescent Elbow Autospell //CHECK Does this ignore defense? 2343,1:2:3:3:4:4:5:5:6:7,8,1,0,0,0,10,-7,yes,0,0,0,weapon,0,0x0, SR_GATEOFHELL,Gate of Hell //CHECK Need to fix to be enemy targeted and also combo after Fallen Empire 2344,2,6,1,-1,0,0,5,1,no,0,0,0,weapon,0,0x0, SR_GENTLETOUCH_QUIET,Gentle Touch - Quiet -2345,2,6,16,0,0x1,0,5,1,no,0,0,0,magic,0,0x0, SR_GENTLETOUCH_CURE,Gentle Touch - Cure //CHECK Its a healing skill. Guessing it has to be magic type? Healing isnt working. +2345,2,6,16,0,0x1,0,5,1,no,0,0,0,none,0,0x0, SR_GENTLETOUCH_CURE,Gentle Touch - Cure 2346,0,6,4,0,0x1,0,5,1,yes,0,0,0,none,0,0x0, SR_GENTLETOUCH_ENERGYGAIN,Gentle Touch - Energy Gain 2347,2,6,16,0,0x1,0,5,1,yes,0,0,0,none,0,0x0, SR_GENTLETOUCH_CHANGE,Gentle Touch - Change 2348,2,6,16,0,0x1,0,5,1,yes,0,0,0,none,0,0x0, SR_GENTLETOUCH_REVITALIZE,Gentle Touch - Revitalize //More from Sura but not following ID order 2517,0,6,4,-1,0x2,3:4:5:6:7,5,1,no,0,0,0,weapon,0,0x0, SR_HOWLINGOFLION,Howling of Lion -2518,11,6,2,-1,0x2,2:2:3:3:4,5,1,no,0,0,0,weapon,0,0x0, SR_RIDEINLIGHTNING,Ride In Lightening +2518,11,6,2,-1,0x2,1:1:2:2:3,5,1,no,0,0,0,weapon,0,0x0, SR_RIDEINLIGHTNING,Ride In Lightening //**** // WA Wanderer @@ -1130,26 +1130,26 @@ 2412,0,0,0,0,0,0,10,0,no,0,0,0,none,0,0x0, WM_LESSON,Lesson 2413,9,8,1,-1,0,0,5,-2:-2:-3:-3:-4,yes,0,0,0,magic,0,0x0, WM_METALICSOUND,Metallic Sound 2414,9,6,2,-1,0x3,1,5,1,yes,0,0x80,3,none,0,0x0, WM_REVERBERATION,Reverberation -2415,0,6,1,-1,0x6,1,5,1,no,0,0,0,weapon,0,0x0, WM_REVERBERATION_MELEE,Reverberation Melee -2416,0,6,1,0,0x6,1,5,1,no,0,0,0,magic,0,0x0, WM_REVERBERATION_MAGIC,Reverberation Magic +2415,0,6,1,-1,0,0,5,1,no,0,0,0,weapon,0,0x0, WM_REVERBERATION_MELEE,Reverberation Melee +2416,0,6,1,-1,0,0,5,1,no,0,0,0,magic,0,0x0, WM_REVERBERATION_MAGIC,Reverberation Magic 2417,11,6,2,0,0x3,5,1,1,no,0,0,0,none,0,0x0, WM_DOMINION_IMPULSE,Dominion Impulse -2418,9,6,2,-1,0x1,0,5,1,yes,0,0,0,none,0,0x0, WM_SEVERE_RAINSTORM,Severe Rainstorm +2418,9,6,2,0,0x1,0,5,1,yes,0,0,0,none,0,0x0, WM_SEVERE_RAINSTORM,Severe Rainstorm 2419,9,6,2,0,0x3,1,5,1,yes,0,0x80,5,none,0,0x0, WM_POEMOFNETHERWORLD,Poem of The Netherworld //CHECK May need to recode too. 2420,0,6,4,0,0x2,2:3:4:5:6,5,1,yes,0,0,0,none,0,0x0, WM_VOICEOFSIREN,Voice of Siren 2421,7,6,16,0,0x1,0,5,1,yes,0,0,0,none,0,0x0, WM_DEADHILLHERE,Valley of Death -2422,7,6,4,0,0x3,5:6:7:8:9,5,1,yes,0,0,0,none,0,0x0, WM_LULLABY_DEEPSLEEP,Deep Sleep Lullaby +2422,0,6,4,0,0x3,5:6:7:8:9,5,1,yes,0,0,0,none,0,0x0, WM_LULLABY_DEEPSLEEP,Deep Sleep Lullaby 2423,0,6,4,0,0x3,3:4:5:6:7,5,1,yes,0,0,0,none,0,0x0, WM_SIRCLEOFNATURE,Circle of Nature's Sound 2424,9,6,4,0,0x1,0,5,1,yes,0,0,0,magic,0,0x0, WM_RANDOMIZESPELL,Improvised Song 2425,9,6,16,0,0x1,0,5,1,yes,0,0,0,none,0,0x0, WM_GLOOMYDAY,Gloomy Day 2426,9,6,2,0,0x2,2:3:3:4:4,5,1,yes,0,0x4000,0,weapon,0,0x0, WM_GREAT_ECHO,Great Echo 2427,0,6,4,0,0x3,5:6:7:8:9,5,1,yes,0,0x4000,0,none,0,0x0, WM_SONG_OF_MANA,Song of Mana 2428,0,6,4,0,0x3,5:6:7:8:9,5,1,yes,0,0x4000,0,none,0,0x0, WM_DANCE_WITH_WUG,Dance With A Warg -2429,9,6,1,0,0x2,2:2:3:3:4,5,1,yes,0,0x4000,0,weapon,0,0x0, WM_SOUND_OF_DESTRUCTION,Sound of Destruction //CHECK Source shows its magic attack. Need to confirm before changing. +2429,9,6,1,0,0x42,4:4:5:5:6,5,1,yes,0,0x4000,0,weapon,0,0x0, WM_SOUND_OF_DESTRUCTION,Sound of Destruction //CHECK Source shows its magic attack. Need to confirm before changing. 2430,0,6,4,0,0x3,3:4:5:6:7,5,1,yes,0,0x4000,0,none,0,0x0, WM_SATURDAY_NIGHT_FEVER,Saturday Night Fever -2431,0,6,4,0,0x3,5,5,1,yes,0,0x4000,0,magic,0,0x0, WM_LERADS_DEW,Lerad's Dew -2432,0,6,4,0,0x3,5,5,1,yes,0,0x4000,0,none,0,0x0, WM_MELODYOFSINK,Melody of Sink -2433,0,6,4,0,0x3,5,5,1,yes,0,0x4000,0,none,0,0x0, WM_BEYOND_OF_WARCRY,Warcry of Beyond -2434,0,6,4,0,0x3,5,5,1,yes,0,0x4000,0,none,0,0x0, WM_UNLIMITED_HUMMING_VOICE,Unlimited Humming Voice +2431,0,6,4,0,0x3,5:5:6:6:7,5,1,yes,0,0x4000,0,magic,0,0x0, WM_LERADS_DEW,Lerad's Dew +2432,0,6,4,0,0x3,5:5:6:6:7,5,1,yes,0,0x4000,0,none,0,0x0, WM_MELODYOFSINK,Melody of Sink +2433,0,6,4,0,0x3,5:5:6:6:7,5,1,yes,0,0x4000,0,none,0,0x0, WM_BEYOND_OF_WARCRY,Warcry of Beyond +2434,0,6,4,0,0x3,5:5:6:6:7,5,1,yes,0,0x4000,0,none,0,0x0, WM_UNLIMITED_HUMMING_VOICE,Unlimited Humming Voice 2516,11,6,1,-1,0x2,5,5,1,no,0,0,0,weapon,0,0x0, WM_SEVERE_RAINSTORM_MELEE,Severe Rainstorm Melee //**** @@ -1166,7 +1166,7 @@ 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 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,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 2457,0,6,4,3,0x1,0,3,1,yes,0,0,0,none,0,0x0, SO_SUMMON_AGNI,Summon Fire Spirit Agni 2458,0,6,4,1,0x1,0,3,1,yes,0,0,0,none,0,0x0, SO_SUMMON_AQUA,Summon Water Spirit Aqua @@ -1193,16 +1193,16 @@ 2481,11,6,1,-1,0x2,1:2:3:4:5,5,1,yes,0,0,0,weapon,0,0x0, GN_SPORE_EXPLOSION,Spore Explosion //CHECK Data says its element is set to neutral. Need to confirm. 2482,11,6,16,0,0,0,5,1,yes,0,0,1,weapon,2,0x0, GN_WALLOFTHORN,Wall of Thorns 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,3,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 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% 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 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 2490,9,6,2,0,0x3,1,5,1,yes,0,0x80,2:3:4:5:6,none,0,0x0, GN_HELLS_PLANT,Hell's Plant -2491,0,6,1,0,0xC0,0,5,1,no,0,0,0,misc,0,0x0, GN_HELLS_PLANT_ATK,Hell's Plant Attack -2492,0,6,4,0,0x3,6:7:8:9:10,5,1,yes,0,0,0,none,0,0x0, GN_MANDRAGORA,Howling of Mandragora -2493,11,6,16,0,0x1,0,1,1,yes,0,0,0,none,0,0x0, GN_SLINGITEM,Sling Item +2491,0,6,1,0,0x90,0,5,1,no,0,0,0,misc,0,0x0, GN_HELLS_PLANT_ATK,Hell's Plant Attack +2492,0,6,4,0,0x3,5:6:6:7:7,5,1,yes,0,0,0,none,0,0x0, GN_MANDRAGORA,Howling of Mandragora +2493,11,6,16,0,0x1,0,1,1,no,0,0,0,none,0,0x0, GN_SLINGITEM,Sling Item 2494,0,6,4,0,0x1,0,1,1,no,0,0,0,none,0,0x0, GN_CHANGEMATERIAL,Change Material 2495,0,6,4,0,0x1,0,2,1,no,0,0,0,none,0,0x0, GN_MIX_COOKING,Mix Cooking 2496,0,6,4,0,0x1,0,2,1,no,0,0,0,none,0,0x0, GN_MAKEBOMB,Create Bomb diff --git a/db/re/skill_require_db.txt b/db/re/skill_require_db.txt index e1f11ebe49..9bb2dc192a 100644 --- a/db/re/skill_require_db.txt +++ b/db/re/skill_require_db.txt @@ -598,14 +598,14 @@ 2203,0,0,40:48:56:64:72,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_FROSTMISTY#Frosty Misty# 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# -2206,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_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# 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# 2211,0,0,60:70:80:90:100,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_CRIMSONROCK#Crimson Rock# 2212,0,0,35:40:45:50:55,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_HELLINFERNO#Hell Inferno# -2213,0,0,240:280:320:360:400,0,0,0,99,0,0,none,0,0,716,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //WL_COMET#Comet# +2213,0,0,480:560:640:720:800,0,0,0,99,0,0,none,0,0,716,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //WL_COMET#Comet# 2214,0,0,80:90:100:110:120,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_CHAINLIGHTNING#Chain Lightning# 2215,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 //WL_CHAINLIGHTNING_ATK#Chain Lightning Attack# 2216,0,0,70:78:86:94:102,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_EARTHSTRAIN#Earth Strain# @@ -626,7 +626,6 @@ 2231,0,0,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_READING_SB#Reading Spellbook# //2232,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 //WL_FREEZE_SP#Freeze Spell# (Passive Skill) - //**** // AB Arch Bishop 2038,0,0,20:23:26:29:32,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 //AB_JUDEX#Judex# @@ -655,25 +654,25 @@ //**** // RA Ranger 2233,0,0,30:32:34:36:38:40:42:44:46:48,0,0,0,11,1,10,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //RA_ARROWSTORM#Arrow Storm# -2234,0,0,36:40:44:48:52,0,0,0,11,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 //RA_FEARBREEZE#Fear Breeze# +2234,0,0,55:60:65:70:75,0,0,0,11,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 //RA_FEARBREEZE#Fear Breeze# 2236,0,0,30:32:34:36:38:40:42:44:46:48,0,0,0,11,1,1,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //RA_AIMEDBOLT#Aimed Bolt# //How many arrows does it require??? 2237,0,0,15,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 //RA_DETONATOR#Detonator# 2238,0,0,35,0,0,0,99,0,0,none,0,0,7940,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //RA_ELECTRICSHOCKER#Electric Shocker# 2239,0,0,20,0,0,0,99,0,0,none,0,0,7940,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //RA_CLUSTERBOMB#Cluster Bomb# 2240,0,0,5,0,0,0,99,0,0,none,0,0,6124,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //RA_WUGMASTERY#Warg Mastery# -2241,0,0,20,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 //RA_WUGRIDER#Warg Rider# -2242,0,0,40,0,0,0,99,0,0,move_enable,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //RA_WUGDASH#Warg Dash# -2243,0,0,20:22:24:26:28,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 //RA_WUGSTRIKE#Warg Strike# +2241,0,0,2,0,0,0,99,0,0,ridingwarg,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //RA_WUGRIDER#Warg Rider# +2242,0,0,4,0,0,0,99,0,0,move_enable,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //RA_WUGDASH#Warg Dash# +2243,0,0,20:22:24:26:28,0,0,0,99,0,0,ridingwarg,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //RA_WUGSTRIKE#Warg Strike# 2244,0,0,40:42:44:46:48,0,0,0,99,0,0,warg,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //RA_WUGBITE#Warg Bite# 2246,0,0,12,0,0,0,99,0,0,warg,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //RA_SENSITIVEKEEN#Sensitive Keen# 2247,0,0,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 //RA_CAMOUFLAGE#Camouflage# -2249,0,0,10,0,0,0,99,0,0,none,0,0,7940,1,990,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //RA_MAGENTATRAP#Magenta Trap# -2250,0,0,10,0,0,0,99,0,0,none,0,0,7940,1,991,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //RA_COBALTTRAP#Cobalt Trap# -2251,0,0,10,0,0,0,99,0,0,none,0,0,7940,1,993,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //RA_MAIZETRAP#Maize Trap# -2252,0,0,10,0,0,0,99,0,0,none,0,0,7940,1,992,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //RA_VERDURETRAP#Verdure Trap# +2249,0,0,10,0,0,0,99,0,0,none,0,0,7940,1,6360,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //RA_MAGENTATRAP#Magenta Trap# +2250,0,0,10,0,0,0,99,0,0,none,0,0,7940,1,6361,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //RA_COBALTTRAP#Cobalt Trap# +2251,0,0,10,0,0,0,99,0,0,none,0,0,7940,1,6363,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //RA_MAIZETRAP#Maize Trap# +2252,0,0,10,0,0,0,99,0,0,none,0,0,7940,1,6362,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //RA_VERDURETRAP#Verdure Trap# 2253,0,0,10,0,0,0,99,0,0,none,0,0,7940,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //RA_FIRINGTRAP#Firing Trap# 2254,0,0,10,0,0,0,99,0,0,none,0,0,7940,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //RA_ICEBOUNDTRAP#Icebound Trap# @@ -681,35 +680,35 @@ // NC Mechanic 2256,0,0,3:6:9:12:15,0,0,0,99,0,0,mado,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //NC_BOOSTKNUCKLE#Boost Knuckle# 2257,0,0,50,0,0,0,99,0,0,mado,0,0,1549,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //NC_PILEBUNKER#Pile Bunker# -2258,0,0,2,0,0,0,99,0,0,mado,0,0,6145,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //NC_VULCANARM#Vulcan Arm# -2259,0,0,20,0,0,0,99,0,0,mado,0,0,2139,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //NC_FLAMELAUNCHER#Flame Launcher# -2260,0,0,20,0,0,0,99,0,0,mado,0,0,6147,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //NC_COLDSLOWER#Cold Slower# -2261,0,0,30:45:60,0,0,0,99,8,1,mado,0,0,6146,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //NC_ARMSCANNON#Arm Cannon# -2262,0,0,20:40:60,0,0,0,99,0,0,mado,0,0,6146,1,2800,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2800 //NC_ACCELERATION#Acceleration# -2263,0,0,25,0,0,0,99,0,0,mado,0,0,6146,1,2801,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2801 //NC_HOVERING#Hovering# +2258,0,0,2:4:6,0,0,0,99,0,0,mado,0,0,6145,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //NC_VULCANARM#Vulcan Arm# +2259,0,0,20,0,0,0,99,0,0,mado,0,0,2139,0,6146,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //NC_FLAMELAUNCHER#Flame Launcher# +2260,0,0,20,0,0,0,99,0,0,mado,0,0,6146,1,6147,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //NC_COLDSLOWER#Cold Slower# +2261,0,0,40:45:50,0,0,0,99,8,1,mado,0,0,6146,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //NC_ARMSCANNON#Arm Cannon# +2262,0,0,20:40:60,0,0,0,99,0,0,mado,0,0,6146,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2800 //NC_ACCELERATION#Acceleration# +2263,0,0,25,0,0,0,99,0,0,mado,0,0,6146,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2801 //NC_HOVERING#Hovering# 2264,0,0,5,0,0,0,99,0,0,mado,0,0,6146,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //NC_F_SIDESLIDE#Front - Side Slide# 2265,0,0,5,0,0,0,99,0,0,mado,0,0,6146,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //NC_B_SIDESLIDE#Back - Side Slide# -2267,0,0,200,0,0,0,99,0,0,mado,0,0,6146,5,2802,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2802 //NC_SELFDESTRUCTION#Self Destruction# -2268,0,0,100,0,0,0,99,0,0,mado,0,0,6360,1,6363,1,6362,1,6361,1,6146,2,2803,0,0,0,0,0,0,0,0,0,2803 //NC_SHAPESHIFT#Shape Shift# //CHECK Shouldnt the different stones all be in the same slot? -2269,0,0,20,0,0,0,99,0,0,mado,0,0,6146,2,2804,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2804 //NC_EMERGENCYCOOL#Emergency Cool# +2267,0,0,1,0,0,0,99,0,0,mado,0,0,6146,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2802 //NC_SELFDESTRUCTION#Self Destruction# +2268,0,0,100,0,0,0,99,0,0,mado,0,0,6360,1,6363,1,6362,1,6361,1,6146,2,0,0,0,0,0,0,0,0,0,0,2803 //NC_SHAPESHIFT#Shape Shift# +2269,0,0,20,0,0,0,99,0,0,mado,0,0,6146,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2804 //NC_EMERGENCYCOOL#Emergency Cool# 2270,0,0,45,0,0,0,99,0,0,mado,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //NC_INFRAREDSCAN#Infrared Scan# 2271,0,0,30,0,0,0,99,0,0,mado,0,0,6146,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //NC_ANALYZE#Analyze# -2272,0,0,90,0,0,0,99,0,0,mado,0,0,6146,3,2805,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2805 //NC_MAGNETICFIELD#Magnetic Field# -2273,0,0,90,0,0,0,99,0,0,mado,0,0,6146,1,2806,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2806 //NC_NEUTRALBARRIER#Neutral Barrier# -2274,0,0,100:150:200,0,0,0,99,0,0,mado,0,0,6146,2,2808,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2808 //NC_STEALTHFIELD#Stealth Field# -2275,0,0,25:30:35:40:45,0,0,0,99,0,0,mado,0,0,2807,0,6146,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2807 //NC_REPAIR#Repair# +2272,0,0,90,0,0,0,99,0,0,mado,0,0,2805,0,6146,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2805 //NC_MAGNETICFIELD#Magnetic Field# +2273,0,0,90,0,0,0,99,0,0,mado,0,0,2806,0,6146,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2806 //NC_NEUTRALBARRIER#Neutral Barrier# +2274,0,0,100:150:200,0,0,0,99,0,0,mado,0,0,6146,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2808 //NC_STEALTHFIELD#Stealth Field# +2275,0,0,25:30:35:40:45,0,0,0,99,0,0,mado,0,0,6146,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2807 //NC_REPAIR#Repair# 2278,0,0,20:22:24:26:28,0,0,0,6:7,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 //NC_AXEBOOMERANG#Axe Boomerang# -2279,0,0,10:12:14:16:18,0,0,0,6:7,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 //NC_POWERSWING#Power Swing# -2280,0,0,18:20:22:24:26,0,0,0,6:7,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 //NC_AXETORNADO#Axe Tornado# -2281,0,0,25:30:35:40:45,0,0,0,99,0,0,none,0,0,998,1,999,2,612,0,615,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //NC_SILVERSNIPER#FAW - Silver Sniper# -2282,0,0,40:45:50:55:60,0,0,0,99,0,0,none,0,0,998,2,7054,1,612,0,615,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //NC_MAGICDECOY#FAW - Magic Decoy# +2279,0,0,20:22:24:26:28,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 //NC_POWERSWING#Power Swing# +2280,20:40:60:80:100,0,18:20:22:24:26,0,0,0,6:7,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 //NC_AXETORNADO#Axe Tornado# +2281,0,0,25:30:35:40:45,0,0,0,99,0,0,none,0,0,612,0,615,0,998,1,999,5,0,0,0,0,0,0,0,0,0,0,0,0,0 //NC_SILVERSNIPER#FAW - Silver Sniper# +2282,0,0,40:45:50:55:60,0,0,0,99,0,0,none,0,0,612,0,615,0,998,2,7054,1,0,0,0,0,0,0,0,0,0,0,0,0,0 //NC_MAGICDECOY#FAW - Magic Decoy# 2283,0,0,15,0,0,0,99,0,0,none,0,0,6186,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //NC_DISJOINT#FAW Removal# //**** // SC Shadow Chaser -2284,0,0,40:45:50:55:60,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 //SC_FATALMENACE#Fatal Menace# +2284,0,0,20:25:30:35: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 //SC_FATALMENACE#Fatal Menace# 2285,0,0,40:45:50:55:60:65:70:75:80:85,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 //SC_REPRODUCE#Reproduce# 2286,0,0,40:45:50:55:60:65:70:75:80:85,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 //SC_AUTOSHADOWSPELL#Auto Shadow Spell# 2287,0,0,40:50:60:70:80,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 //SC_SHADOWFORM#Shadow Form# @@ -737,21 +736,21 @@ 2308,0,0,20:20:20:20:20:25:25:25:25:25,0,0,0,4:5,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 //LG_BANISHINGPOINT#Banishing Point# 2309,0,0,30:45:60,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 //LG_TRAMPLE#Trample# 2310,0,0,10:12:14:16:18,0,0,0,99,0,0,shield,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //LG_SHIELDPRESS#Shield Press# -2311,0,0,40:50:60:70:80,0,0,0,99,0,0,shield,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //LG_REFLECTDAMAGE#Reflect Damage# -2312,0,0,30,0,0,0,4:5,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 //LG_PINPOINTATTACK#Pinpoint Attack# +2311,0,0,60:80:100:120:140,0,0,0,99,0,0,shield,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //LG_REFLECTDAMAGE#Reflect Damage# +2312,0,0,50,0,0,0,4:5,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 //LG_PINPOINTATTACK#Pinpoint Attack# 2313,0,0,30,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 //LG_FORCEOFVANGUARD#Force of Vanguard# 2314,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 //LG_RAGEBURST#Rage Burst# 2315,0,0,50,0,0,0,99,0,0,shield,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //LG_SHIELDSPELL#Shield Spell# -2316,0,0,24:28:32:36: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 //LG_EXEEDBREAK#Exceed Break# -2317,0,0,42:44:46:48:50,0,0,0,4:5,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 //LG_OVERBRAND#Over Brand# +2316,0,0,20:32:44:56:68,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 //LG_EXEEDBREAK#Exceed Break# +2317,0,0,20:30:40:50:60,0,0,0,4:5,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 //LG_OVERBRAND#Over Brand# 2318,0,0,75:80:85:90:95,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 //LG_PRESTIGE#Prestige# 2319,0,0,30:36:42:48:54,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 //LG_BANDING#Banding# -2320,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 //LG_MOONSLASHER#Moon Slasher# -2321,0,0,60,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 //LG_RAYOFGENESIS#Ray of Genesis# +2320,0,0,20:24:28:32:36,0,0,0,4:5,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 //LG_MOONSLASHER#Moon Slasher# +2321,0,0,60:65:70:75:80,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 //LG_RAYOFGENESIS#Ray of Genesis# 2322,0,0,40:45:50:55:60,0,0,0,99,0,0,none,0,0,523,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //LG_PIETY#Piety# 2323,0,0,52:60:68:76:84,0,0,0,99,0,0,shield,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //LG_EARTHDRIVE#Earth Drive# -2324,0,0,80:90:100:110:120,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 //LG_HESPERUSLIT#Hesperus Lit# -2325,0,0,100,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 //LG_INSPIRATION#Inspiration# +2324,0,0,80:90:100:110:120,0,0,0,4:5,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 //LG_HESPERUSLIT#Hesperus Lit# +2325,0,0,80:90:100:110:120,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 //LG_INSPIRATION#Inspiration# //**** // SR Sura @@ -761,7 +760,7 @@ 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# 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# -2332,0,0,110:120:130:140: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# 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# 2335,0,0,80:70:60:50:40,-5:-4:-3:-2:-1,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_LIGHTNINGWALK#Lightning Walk# @@ -779,8 +778,8 @@ 2347,0,0,40:50:60:70:80,-2:-4:-6:-8:-10,0,0,99,0,0,none,0,1:2:3:4:5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //SR_GENTLETOUCH_CHANGE#Gentle Touch - Change# 2348,0,0,40:50:60:70:80,0,0,0,99,0,0,none,0,1:2:3:4:5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //SR_GENTLETOUCH_REVITALIZE#Gentle Touch - Revitalize# //More from SR Sura (but not following ID order) -2517,0,0,40:45:50:55:60,0,0,0,99,0,0,none,0,1:2:3:4:5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //SR_HOWLINGOFLION#Howling of Lion# -2518,0,0,40:50:60:70:80,0,0,0,99,0,0,none,0,1:2:3:4:5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //SR_RIDEINLIGHTNING#Ride In Lightening# +2517,0,0,80:90:100:110:120,0,0,0,99,0,0,none,0,1:2:3:4:5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //SR_HOWLINGOFLION#Howling of Lion# +2518,0,0,22:24:26:28:30,0,0,0,99,0,0,none,0,1:2:3:4:5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //SR_RIDEINLIGHTNING#Ride In Lightening# //**** // WA Wanderer @@ -802,22 +801,22 @@ 2416,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 //WM_REVERBERATION_MAGIC#Reverberation Magic# 2417,0,0,10,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 //WM_DOMINION_IMPULSE#Dominion Impulse# 2418,0,0,80:90:100:110:120,0,0,0,11,1,20,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //WM_SEVERE_RAINSTORM#Severe Rainstorm# -2419,0,0,12:16:20:24:28,0,0,0,99,0,0,none,0,0,11513,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //WM_POEMOFNETHERWORLD#Poem of Netherworld# +2419,0,0,12:16:20:24:28,0,0,0,13:14,0,0,none,0,0,11513,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //WM_POEMOFNETHERWORLD#Poem of Netherworld# 2420,0,0,48:56:64:72:80,0,0,0,13:14,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 //WM_VOICEOFSIREN#Voice of Siren# -2421,0,0,50:53:56:59:62,0,0,0,99,0,0,none,0,0,6144,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //WM_DEADHILLHERE#Valley of Death# +2421,0,0,50:53:56:59:62,0,0,0,13:14,0,0,none,0,0,6144,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //WM_DEADHILLHERE#Valley of Death# 2422,0,0,80:90:100:110:120,0,0,0,13:14,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 //WM_LULLABY_DEEPSLEEP#Deep Sleep Lullaby# 2423,0,0,42:46:50:54:58,0,0,0,13:14,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 //WM_SIRCLEOFNATURE#Circle of Nature's Sound# 2424,0,0,40:45:50:55:60,0,0,0,13:14,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 //WM_RANDOMIZESPELL#Improvised Song# -2425,0,0,60,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 //MW_GLOOMYDAY#Gloomy Day# +2425,0,0,60:75:90:105:120,0,0,0,13:14,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 //MW_GLOOMYDAY#Gloomy Day# 2426,0,0,80:90:100:110:120,0,0,0,99,0,0,none,0,0,11513,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //WM_GREAT_ECHO#Great Echo# - Missing 1 Lozange. Need item ID. -2427,0,0,120:140:160:180:200,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 //WM_SONG_OF_MANA#Song of Mana# -2428,0,0,120:140:160:180:200,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 //WM_DANCE_WITH_WUG#Dance With Warg# -2429,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 //WM_SOUND_OF_DESTRUCTION#Sound of Destruction# -2430,0,0,150:160:170:180:190,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 //WM_SATURDAY_NIGHT_FEVER#Saturday Night Fever# -2431,0,0,120:130:140:150:160,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 //WM_LERADS_DEW#Lerad's Dew# -2432,0,0,120:130:140:150:160,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 //WM_MELODYOFSINK#Melody of Sink# -2433,0,0,120:130:140:150:160,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 //WM_WARCRY_OF_BEYOND#Warcry of Beyond# -2434,0,0,120:130:140:150:160,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 //WM_UNLIMITED_HUMMING_VOICE#Unlimited Humming Voice# +2427,0,0,120:140:160:180:200,0,0,0,13:14,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 //WM_SONG_OF_MANA#Song of Mana# +2428,0,0,120:140:160:180:200,0,0,0,13:14,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 //WM_DANCE_WITH_WUG#Dance With Warg# +2429,0,0,50:60:70:80:90,0,0,0,13:14,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 //WM_SOUND_OF_DESTRUCTION#Sound of Destruction# +2430,0,0,150:160:170:180:190,0,0,0,13:14,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 //WM_SATURDAY_NIGHT_FEVER#Saturday Night Fever# +2431,0,0,120:130:140:150:160,0,0,0,13:14,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 //WM_LERADS_DEW#Lerad's Dew# +2432,0,0,120:130:140:150:160,0,0,0,13:14,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 //WM_MELODYOFSINK#Melody of Sink# +2433,0,0,120:130:140:150:160,0,0,0,13:14,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 //WM_WARCRY_OF_BEYOND#Warcry of Beyond# +2434,0,0,120:130:140:150:160,0,0,0,13:14,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 //WM_UNLIMITED_HUMMING_VOICE#Unlimited Humming Voice# //**** // SO Sorcerer diff --git a/db/re/skill_unit_db.txt b/db/re/skill_unit_db.txt index 71ebf2e542..b82c8e3239 100644 --- a/db/re/skill_unit_db.txt +++ b/db/re/skill_unit_db.txt @@ -103,12 +103,13 @@ //706,0xfd, , 0, 0,1000,all, 0x000 //NPC_VENOMFOG -2044,0xca, , 0, 2,1000,all, 0x018 //AB_EPICLESIS +2044,0xca, , 0, 2,3000,all, 0x018 //AB_EPICLESIS 2032,0xe1, , 2, 0,1000,enemy, 0x018 //GC_POISONSMOKE +2213,0x86, , 0, 9,1000,enemy, 0x018 //WL_COMET 2214,0x86, , 0, 5, 100,enemy, 0x080 //WL_CHAINLIGHTNING -2216,0xcb, , -1, 0, 150,enemy, 0x018 //WL_EARTHSTRAIN +2216,0xcb, , -1, 2,2000,enemy, 0x018 //WL_EARTHSTRAIN 2238,0xd8, , 0, 1,1000,enemy, 0x006 //RA_ELECTRICSHOCKER 2239,0xd9, , 0, 1,1000,enemy, 0x006 //RA_CLUSTERBOMB @@ -124,15 +125,15 @@ 2299,0xcc, , 0, 1,1000,all, 0x006 //SC_MANHOLE 2300,0xcd, , 0, 1,1000,all, 0x006 //SC_DIMENSIONDOOR -2301,0xce, , 2, 0, -1,all, 0x200E //SC_CHAOSPANIC -2302,0xcf, , 0, 2, -1,enemy, 0x002 //SC_MAELSTROM -2303,0xd0, , 3, 0, -1,all, 0x2018 //SC_BLOODYLUST -2304,0xd1, , 0, 2, -1,enemy, 0x000 //SC_FEINTBOMB +2301,0xce, , 0, 2, -1,all, 0x200E //SC_CHAOSPANIC +2302,0xcf, , 0, 2, -1,enemy, 0x002 //SC_MAELSTROM +2303,0xd0, , 0, 2, -1,all, 0x2018 //SC_BLOODYLUST +2304,0xd1, , 0, 2,1000,enemy, 0x018 //SC_FEINTBOMB 2317,0x86, , -1, 0, -1,enemy, 0x010 //LG_OVERBRAND 2319,0xec, , 0, 3,5000,all, 0x000 //LG_BANDING -2414,0xda, , 0, 0,1000,enemy, 0x008 //WM_REVERBERATION +2414,0xda, , 0, 1,1000,enemy, 0x008 //WM_REVERBERATION 2418,0xdb, , 0, 5, 300,enemy, 0x800 //WM_SEVERE_RAINSTORM 2419,0xde, , 0, 1,1000,all, 0x014 //WM_POEMOFNETHERWORLD @@ -141,20 +142,20 @@ 2446,0x86, , 0, 3:3:3:4:4,1000,enemy, 0x018 //SO_EARTHGRAVE 2447,0x86, , 0, 3:3:3:4:4,1000,enemy, 0x018 //SO_DIAMONDDUST 2449,0xdf, , 0, 3:3:4:4:5,500,enemy, 0x018 //SO_PSYCHIC_WAVE -2450,0xe0, , 0, 3, 500,enemy, 0x010 //SO_CLOUD_KILL +2450,0xe0, , 3, 0, 500,enemy, 0x010 //SO_CLOUD_KILL 2452,0xe4, , 0, 3,3000,all, 0x010 //SO_WARMER -2453,0xeb, , 0, 1:1:2:2:3,1000,enemy,0x010 //SO_VACUUM_EXTREME +2453,0xeb, , 0, 1:1:2:2:3,500,enemy,0x010 //SO_VACUUM_EXTREME 2465,0xf1, , 0, 1,1000,all, 0x010 //SO_FIRE_INSIGNIA 2466,0xf2, , 0, 1,1000,all, 0x010 //SO_WATER_INSIGNIA 2467,0xf3, , 0, 1,1000,all, 0x010 //SO_WIND_INSIGNIA 2468,0xf4, , 0, 1,1000,all, 0x010 //SO_EARTH_INSIGNIA 2479,0xe5, , 0, 1,1000,enemy, 0x006 //GN_THORNS_TRAP -2482,0xe6,0x7f, -1, 1, -1,all, 0x000 //GN_WALLOFTHORN +2482,0xe6,0x7f, -1, 1, 100,all, 0x000 //GN_WALLOFTHORN 2484,0x86, , 0, 1, 100,enemy, 0x080 //GN_CRAZYWEED_ATK -2485,0xe7, , 0, 3,1000,enemy, 0x098 //GN_DEMONIC_FIRE -2487,0xe8, , 0, 3,1000,enemy, 0x000 //GN_FIRE_EXPANSION_SMOKE_POWDER -2488,0xe9, , 0, 3,1000,enemy, 0x000 //GN_FIRE_EXPANSION_TEAR_GAS +2485,0xe7, , 0, 2,2000,enemy, 0x098 //GN_DEMONIC_FIRE +2487,0xe8, , 0, 2, 500,enemy, 0x000 //GN_FIRE_EXPANSION_SMOKE_POWDER +2488,0xe9, , 0, 2, 500,enemy, 0x000 //GN_FIRE_EXPANSION_TEAR_GAS 2490,0xea, , 0, 1,1000,enemy, 0x002 //GN_HELLS_PLANT 2555,0x104, , 0, 1:2:2:3:3,500,enemy,0x006 //RL_B_TRAP diff --git a/sql-files/item_db.sql b/sql-files/item_db.sql index e3f20f3895..e35a717876 100644 --- a/sql-files/item_db.sql +++ b/sql-files/item_db.sql @@ -4960,7 +4960,7 @@ REPLACE INTO `item_db` VALUES (12379,'Pope\'s_Cookie','Pope Cookie',2,10,NULL,10 REPLACE INTO `item_db` VALUES (12380,'Desert_Wolf_Babe_Scroll','Job Change Flute',2,10,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'mercenary_create 2034,1800000;',NULL,NULL); REPLACE INTO `item_db` VALUES (12381,'ValkyrieA_Scroll','Ancient Languages Scroll',2,10,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'if(strcharinfo(3)=="job3_arch02") { mercenary_create 2037,1800000; }',NULL,NULL); REPLACE INTO `item_db` VALUES (12382,'ValkyrieB_Scroll','Ancient Languages Scroll',2,10,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'if(strcharinfo(3)=="job3_arch02") { mercenary_create 2038,1800000; }',NULL,NULL); -REPLACE INTO `item_db` VALUES (12383,'Vulcan_Bullet_Magazine','Vulcan Bullet Magazine',2,11000,NULL,500,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `item_db` VALUES (12383,'Vulcan_Bullet_Magazine','Vulcan Bullet Magazine',2,11000,NULL,500,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 6145,1000;',NULL,NULL); REPLACE INTO `item_db` VALUES (12384,'Rainbow_Ruby_Water','Rainbow Ruby',11,0,NULL,50,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'/* if(strcharinfo(3)=="job3_war02") { itemskill "WL_FROSTMISTY",5; } */',NULL,NULL); REPLACE INTO `item_db` VALUES (12385,'Rainbow_Ruby_Fire','Rainbow Ruby',11,0,NULL,50,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'/* if(strcharinfo(3)=="job3_war02") { itemskill "WL_CRIMSONROCK",5; } */',NULL,NULL); REPLACE INTO `item_db` VALUES (12386,'Rainbow_Ruby_Wind','Rainbow Ruby',11,0,NULL,50,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'/* if(strcharinfo(3)=="job3_war02") { itemskill "WL_CHAINLIGHTNING",5; } */',NULL,NULL); @@ -4969,9 +4969,9 @@ REPLACE INTO `item_db` VALUES (12388,'Runstone_Crush','Rhydo Runestone For Appre REPLACE INTO `item_db` VALUES (12389,'Runstone_Storm','Pertz Runestone For Apprentice',11,0,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'/* if(strcharinfo(3)=="job3_rune02") { itemskill "RK_STORMBLAST",1; } */',NULL,NULL); REPLACE INTO `item_db` VALUES (12390,'Runstone_Millennium','Verkana Runestone For Apprentice',11,0,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'/* if(strcharinfo(3)=="job3_rune02") { itemskill "RK_MILLENNIUMSHIELD",1; } */',NULL,NULL); REPLACE INTO `item_db` VALUES (12391,'Lucky_Egg_C','Lucky Egg',2,0,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); -REPLACE INTO `item_db` VALUES (12392,'Repair_A','Repair A',0,220,NULL,70,NULL,NULL,NULL,NULL,0x00000400,8,2,NULL,NULL,NULL,NULL,NULL,'/* madoheal rand(200,300),0; */',NULL,NULL); -REPLACE INTO `item_db` VALUES (12393,'Repair_B','Repair B',0,500,NULL,70,NULL,NULL,NULL,NULL,0x00000400,8,2,NULL,NULL,NULL,NULL,NULL,'/* madoheal rand(300,400),0; */',NULL,NULL); -REPLACE INTO `item_db` VALUES (12394,'Repair_C','Repair C',0,1100,NULL,70,NULL,NULL,NULL,NULL,0x00000400,8,2,NULL,NULL,NULL,NULL,NULL,'/* madoheal rand(400,500),0; */',NULL,NULL); +REPLACE INTO `item_db` VALUES (12392,'Repair_A','Repair A',0,220,NULL,100,NULL,NULL,NULL,NULL,0x00000400,8,2,NULL,NULL,NULL,NULL,NULL,'if ( checkmadogear() ) { itemheal rand(200,300),0;',NULL,NULL); +REPLACE INTO `item_db` VALUES (12393,'Repair_B','Repair B',0,500,NULL,140,NULL,NULL,NULL,NULL,0x00000400,8,2,NULL,NULL,NULL,NULL,NULL,'if ( checkmadogear() ) { itemheal rand(300,400),0;',NULL,NULL); +REPLACE INTO `item_db` VALUES (12394,'Repair_C','Repair C',0,1100,NULL,180,NULL,NULL,NULL,NULL,0x00000400,8,2,NULL,NULL,NULL,NULL,NULL,'if ( checkmadogear() ) { itemheal rand(400,500),0;',NULL,NULL); REPLACE INTO `item_db` VALUES (12395,'Tantanmen','Tantan Noodle',2,20,NULL,50,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'pet 1519;',NULL,NULL); REPLACE INTO `item_db` VALUES (12396,'Fools_Day_Box','Gift Box?',11,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'if(rand(1,10)==1) itemskill "AL_TELEPORT",1; else if(rand(1,10)==2) itemskill "AL_TELEPORT",3; else if(rand(1,10)==3) percentheal 50,0; else if(rand(1,10)==4) percentheal 0,50; else if(rand(1,10)==5) end; else if(rand(1,10)==6) getitem 512,1; else if(rand(1,10)==7) itemskill "ALL_REVERSEORCISH",1; else if(rand(1,10)==8) specialeffect2 247; else if(rand(1,10)==9) specialeffect2 338; else specialeffect2 10;',NULL,NULL); REPLACE INTO `item_db` VALUES (12397,'Fools_Day_Box2','Gift Box?',11,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'if(rand(1,10)==1) itemskill "TF_DETOXIFY",1; else if(rand(1,10)==2) itemskill "TF_PICKSTONE",1; else if(rand(1,10)==3) itemskill "BA_FROSTJOKER",1; else if(rand(1,10)==4) itemskill "DC_SCREAM",1; else if(rand(1,10)==5) end; else if(rand(1,10)==6) getitem 909,1; else if(rand(1,10)==7) itemskill "AL_RUWACH",1; else if(rand(1,10)==8) specialeffect2 328; else if(rand(1,10)==9) specialeffect2 68; else specialeffect2 196;',NULL,NULL); @@ -4994,11 +4994,11 @@ REPLACE INTO `item_db` VALUES (12413,'PCBang_Coupon_Box2','PCBang Coupon Box2',2 REPLACE INTO `item_db` VALUES (12414,'Guarana_Candy','Guarana Candy',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_ASPDPOTION0,1800000,0; sc_start SC_INCREASEAGI,140000,5; skilleffect "AL_INCAGI",0;',NULL,NULL); REPLACE INTO `item_db` VALUES (12415,'Siege_Teleport_Scroll2','Siege Teleport Scroll Silver',2,0,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (12416,'Lucky_Egg_C3','Lucky Egg C3',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); -REPLACE INTO `item_db` VALUES (12417,'Boost500','Boost500',2,100,NULL,50,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); -REPLACE INTO `item_db` VALUES (12418,'Full_SwingK','Full SwingK',2,100,NULL,50,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); -REPLACE INTO `item_db` VALUES (12419,'Mana_Plus','Mana Plus',2,100,NULL,50,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); -REPLACE INTO `item_db` VALUES (12420,'Stamina_Up_M','Stamina Up M',2,100,NULL,50,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); -REPLACE INTO `item_db` VALUES (12421,'Falmons_F','Falmons F',3,10,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `item_db` VALUES (12417,'Boost500','Boost500',2,100,NULL,50,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_BOOST500,500000,10;',NULL,NULL); +REPLACE INTO `item_db` VALUES (12418,'Full_SwingK','Full SwingK',2,100,NULL,50,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_FULL_SWING_K,500000,50;',NULL,NULL); +REPLACE INTO `item_db` VALUES (12419,'Mana_Plus','Mana Plus',2,100,NULL,50,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_MANA_PLUS,500000,50;',NULL,NULL); +REPLACE INTO `item_db` VALUES (12420,'Stamina_Up_M','Stamina Up M',2,100,NULL,50,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_MUSTLE_M,500000,5;',NULL,NULL); +REPLACE INTO `item_db` VALUES (12421,'Falmons_F','Falmons F',3,10,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_LIFE_FORCE_F,500000,5;',NULL,NULL); REPLACE INTO `item_db` VALUES (12422,'HP_Increase_Potion_(Small)','HP Increase Potion (Small)',0,10,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,63,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_INCMHP,500000,(500+(BaseLevel*10/3)); percentheal 1,0;',NULL,NULL); REPLACE INTO `item_db` VALUES (12423,'HP_Increase_Potion_(Medium)','HP Increase Potion (Medium)',0,10,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,63,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_INCMHP,500000,(1500+(BaseLevel*10/3)); percentheal 2,0;',NULL,NULL); REPLACE INTO `item_db` VALUES (12424,'HP_Increase_Potion_(Large)','HP Increase Potion (Large)',0,10,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,63,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_INCMHP,500000,(2500+(BaseLevel*10/3)); percentheal 5,0;',NULL,NULL); diff --git a/sql-files/item_db_re.sql b/sql-files/item_db_re.sql index 10ed07306d..d4de9137d6 100644 --- a/sql-files/item_db_re.sql +++ b/sql-files/item_db_re.sql @@ -5890,7 +5890,7 @@ REPLACE INTO `item_db_re` VALUES (12379,'Pope\'s_Cookie','Pope Cookie',2,10,NULL REPLACE INTO `item_db_re` VALUES (12380,'Desert_Wolf_Babe_Scroll','Job Change Flute',2,10,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,63,2,NULL,NULL,NULL,NULL,NULL,'mercenary_create 2034,1800000;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (12381,'ValkyrieA_Scroll','Ancient Languages Scroll',2,10,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,63,2,NULL,NULL,NULL,NULL,NULL,'if(strcharinfo(3)=="job3_arch02") { mercenary_create 2037,1800000; }',NULL,NULL); REPLACE INTO `item_db_re` VALUES (12382,'ValkyrieB_Scroll','Ancient Languages Scroll',2,10,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,63,2,NULL,NULL,NULL,NULL,NULL,'if(strcharinfo(3)=="job3_arch02") { mercenary_create 2038,1800000; }',NULL,NULL); -REPLACE INTO `item_db_re` VALUES (12383,'Vulcan_Bullet_Magazine','Vulcan Bullet Magazine',2,11000,NULL,500,NULL,NULL,NULL,NULL,0xFFFFFFFF,63,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `item_db_re` VALUES (12383,'Vulcan_Bullet_Magazine','Vulcan Bullet Magazine',2,11000,NULL,500,NULL,NULL,NULL,NULL,0xFFFFFFFF,63,2,NULL,NULL,NULL,NULL,NULL,'getitem 6145,1000;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (12384,'Rainbow_Ruby_Water','Rainbow Ruby',11,0,NULL,50,NULL,NULL,NULL,NULL,0xFFFFFFFF,63,2,NULL,NULL,NULL,NULL,NULL,'if(strcharinfo(3)=="job3_war02") { itemskill "WL_FROSTMISTY",5; }',NULL,NULL); REPLACE INTO `item_db_re` VALUES (12385,'Rainbow_Ruby_Fire','Rainbow Ruby',11,0,NULL,50,NULL,NULL,NULL,NULL,0xFFFFFFFF,63,2,NULL,NULL,NULL,NULL,NULL,'if(strcharinfo(3)=="job3_war02") { itemskill "WL_CRIMSONROCK",5; }',NULL,NULL); REPLACE INTO `item_db_re` VALUES (12386,'Rainbow_Ruby_Wind','Rainbow Ruby',11,0,NULL,50,NULL,NULL,NULL,NULL,0xFFFFFFFF,63,2,NULL,NULL,NULL,NULL,NULL,'if(strcharinfo(3)=="job3_war02") { itemskill "WL_CHAINLIGHTNING",5; }',NULL,NULL); @@ -5899,9 +5899,9 @@ REPLACE INTO `item_db_re` VALUES (12388,'Runstone_Crush','Rhydo Runestone For Ap REPLACE INTO `item_db_re` VALUES (12389,'Runstone_Storm','Pertz Runestone For Apprentice',11,0,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,63,2,NULL,NULL,NULL,NULL,NULL,'if(strcharinfo(3)=="job3_rune02") { itemskill "RK_STORMBLAST",1; }',NULL,NULL); REPLACE INTO `item_db_re` VALUES (12390,'Runstone_Millennium','Verkana Runestone For Apprentice',11,0,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,63,2,NULL,NULL,NULL,NULL,NULL,'if(strcharinfo(3)=="job3_rune02") { itemskill "RK_MILLENNIUMSHIELD",1; }',NULL,NULL); REPLACE INTO `item_db_re` VALUES (12391,'Lucky_Egg_C','Lucky Egg C',2,0,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,63,2,NULL,NULL,NULL,NULL,NULL,'getgroupitem(IG_Lucky_Egg_C);',NULL,NULL); -REPLACE INTO `item_db_re` VALUES (12392,'Repair_A','Repair A',0,220,NULL,70,NULL,NULL,NULL,NULL,0x00000400,56,2,NULL,NULL,NULL,NULL,NULL,'/*madoheal rand(200,300),0; */',NULL,NULL); -REPLACE INTO `item_db_re` VALUES (12393,'Repair_B','Repair B',0,500,NULL,70,NULL,NULL,NULL,NULL,0x00000400,56,2,NULL,NULL,NULL,NULL,NULL,'/*madoheal rand(300,400),0; */',NULL,NULL); -REPLACE INTO `item_db_re` VALUES (12394,'Repair_C','Repair C',0,1100,NULL,70,NULL,NULL,NULL,NULL,0x00000400,56,2,NULL,NULL,NULL,NULL,NULL,'/*madoheal rand(400,500),0; */',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (12392,'Repair_A','Repair A',0,220,NULL,100,NULL,NULL,NULL,NULL,0x00000400,56,2,NULL,NULL,NULL,NULL,NULL,'if ( checkmadogear() ) { itemheal rand(200,300),0;',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (12393,'Repair_B','Repair B',0,500,NULL,140,NULL,NULL,NULL,NULL,0x00000400,56,2,NULL,NULL,NULL,NULL,NULL,'if ( checkmadogear() ) { itemheal rand(300,400),0;',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (12394,'Repair_C','Repair C',0,1100,NULL,180,NULL,NULL,NULL,NULL,0x00000400,56,2,NULL,NULL,NULL,NULL,NULL,'if ( checkmadogear() ) { itemheal rand(400,500),0;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (12395,'Tantanmen','Tantan Noodle',2,20,NULL,50,NULL,NULL,NULL,NULL,0xFFFFFFFF,63,2,NULL,NULL,NULL,NULL,NULL,'pet 1519;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (12396,'Fools_Day_Box','Gift Box?',11,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,63,2,NULL,NULL,NULL,NULL,NULL,'if(rand(1,10)==1) itemskill "AL_TELEPORT",1; else if(rand(1,10)==2) itemskill "AL_TELEPORT",3; else if(rand(1,10)==3) percentheal 50,0; else if(rand(1,10)==4) percentheal 0,50; else if(rand(1,10)==5) end; else if(rand(1,10)==6) getitem 512,1; else if(rand(1,10)==7) itemskill "ALL_REVERSEORCISH",1; else if(rand(1,10)==8) specialeffect2 247; else if(rand(1,10)==9) specialeffect2 338; else specialeffect2 10;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (12397,'Fools_Day_Box2','Gift Box?',11,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,63,2,NULL,NULL,NULL,NULL,NULL,'if(rand(1,10)==1) itemskill "TF_DETOXIFY",1; else if(rand(1,10)==2) itemskill "TF_PICKSTONE",1; else if(rand(1,10)==3) itemskill "BA_FROSTJOKER",1; else if(rand(1,10)==4) itemskill "DC_SCREAM",1; else if(rand(1,10)==5) end; else if(rand(1,10)==6) getitem 909,1; else if(rand(1,10)==7) itemskill "AL_RUWACH",1; else if(rand(1,10)==8) specialeffect2 328; else if(rand(1,10)==9) specialeffect2 68; else specialeffect2 196;',NULL,NULL); @@ -5924,11 +5924,11 @@ REPLACE INTO `item_db_re` VALUES (12413,'PCBang_Coupon_Box2','PC Cafe Coupon Box REPLACE INTO `item_db_re` VALUES (12414,'Guarana_Candy','Guarana Candy',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,63,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_ASPDPOTION0,1800000,0; sc_start SC_INCREASEAGI,140000,5; skilleffect "AL_INCAGI",0;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (12415,'Siege_Teleport_Scroll2','Siege Teleport Scroll Silver',2,0,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,63,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db_re` VALUES (12416,'Lucky_Egg_C3','Lucky Egg C3',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,63,2,NULL,NULL,NULL,NULL,NULL,'getgroupitem(IG_Lucky_Egg_C3);',NULL,NULL); -REPLACE INTO `item_db_re` VALUES (12417,'Boost500','Boost500',2,100,NULL,50,NULL,NULL,NULL,NULL,0xFFFFFFFF,63,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (12418,'Full_SwingK','Full SwingK',2,100,NULL,50,NULL,NULL,NULL,NULL,0xFFFFFFFF,63,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (12419,'Mana_Plus','Mana Plus',2,100,NULL,50,NULL,NULL,NULL,NULL,0xFFFFFFFF,63,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (12420,'Stamina_Up_M','Stamina Up M',2,100,NULL,50,NULL,NULL,NULL,NULL,0xFFFFFFFF,63,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (12421,'Falmons_F','Falmons F',3,10,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `item_db_re` VALUES (12417,'Boost500','Boost500',2,100,NULL,50,NULL,NULL,NULL,NULL,0xFFFFFFFF,63,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_BOOST500,500000,10;',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (12418,'Full_SwingK','Full SwingK',2,100,NULL,50,NULL,NULL,NULL,NULL,0xFFFFFFFF,63,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_FULL_SWING_K,500000,50;',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (12419,'Mana_Plus','Mana Plus',2,100,NULL,50,NULL,NULL,NULL,NULL,0xFFFFFFFF,63,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_MANA_PLUS,500000,50;',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (12420,'Stamina_Up_M','Stamina Up M',2,100,NULL,50,NULL,NULL,NULL,NULL,0xFFFFFFFF,63,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_MUSTLE_M,500000,5;',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (12421,'Falmons_F','Falmons F',3,10,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,63,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_LIFE_FORCE_F,500000,5;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (12422,'HP_Increase_Potion_(Small)','HP Increase Potion (Small)',0,10,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,63,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_INCMHP,500000,(500+(BaseLevel*10/3)); percentheal 1,0;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (12423,'HP_Increase_Potion_(Medium)','HP Increase Potion (Medium)',0,10,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,63,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_INCMHP,500000,(1500+(BaseLevel*10/3)); percentheal 2,0;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (12424,'HP_Increase_Potion_(Large)','HP Increase Potion (Large)',0,10,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,63,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_INCMHP,500000,(2500+(BaseLevel*10/3)); percentheal 5,0;',NULL,NULL); diff --git a/src/char/char.c b/src/char/char.c index 74d746a5d1..549786d57a 100644 --- a/src/char/char.c +++ b/src/char/char.c @@ -4531,7 +4531,7 @@ int parse_char(int fd) strcmp("a@a.com", sd->email) || //it is not default email, or (strcmp("a@a.com", email) && strcmp("", email)) //email sent does not matches default )) - || !char_del_option&1 + || !(char_del_option&1) ) { //Fail WFIFOHEAD(fd,3); WFIFOW(fd,0) = 0x70; diff --git a/src/map/battle.c b/src/map/battle.c index c0fcda1a05..2e450ef639 100644 --- a/src/map/battle.c +++ b/src/map/battle.c @@ -1156,29 +1156,9 @@ int64 battle_calc_damage(struct block_list *src,struct block_list *bl,struct Dam if (hd && (rnd()%100<50) ) hom_addspiritball(hd, 10); // According to WarpPortal, this is a flat 50% chance } - if( sc->data[SC__DEADLYINFECT] && damage > 0 && rnd()%100 < 65 + 5 * sc->data[SC__DEADLYINFECT]->val1 ) + if( sc->data[SC__DEADLYINFECT] && damage > 0 && rnd()%100 < 30 + 10 * sc->data[SC__DEADLYINFECT]->val1 ) status_change_spread(bl, src); // Deadly infect attacked side - if( sc && sc->data[SC__SHADOWFORM] ) { - struct block_list *s_bl = map_id2bl(sc->data[SC__SHADOWFORM]->val2); - if( !s_bl || s_bl->m != bl->m ) { // If the shadow form target is not present remove the sc. - status_change_end(bl, SC__SHADOWFORM, INVALID_TIMER); - } else if( status_isdead(s_bl) || !battle_check_target(src,s_bl,BCT_ENEMY)) { // If the shadow form target is dead or not your enemy remove the sc in both. - status_change_end(bl, SC__SHADOWFORM, INVALID_TIMER); - if( s_bl->type == BL_PC ) - ((TBL_PC*)s_bl)->shadowform_id = 0; - } else { - if( (--sc->data[SC__SHADOWFORM]->val3) < 0 ) { // If you have exceded max hits supported, remove the sc in both. - status_change_end(bl, SC__SHADOWFORM, INVALID_TIMER); - if( s_bl->type == BL_PC ) - ((TBL_PC*)s_bl)->shadowform_id = 0; - } else { - status_damage(bl, s_bl, damage, 0, clif_damage(s_bl, s_bl, gettick(), 500, 500, damage, -1, 0, 0), 0); - return ATK_NONE; - } - } - } - } //End of target SC_ check //SC effects from caster side. @@ -1217,7 +1197,7 @@ int64 battle_calc_damage(struct block_list *src,struct block_list *bl,struct Dam && ((flag&BF_WEAPON) && (!skill_id || skill_id == GC_VENOMPRESSURE)) //chk skill type poison_smoke is a unit && (damage > 0 && rnd()%100 < sc->data[SC_POISONINGWEAPON]->val3 )) //did some dammage and chance ok (why no additional effect ?? sc_start(src,bl,(enum sc_type)sc->data[SC_POISONINGWEAPON]->val2,100,sc->data[SC_POISONINGWEAPON]->val1,skill_get_time2(GC_POISONINGWEAPON, 1)); - if( sc->data[SC__DEADLYINFECT] && damage > 0 && rnd()%100 < 65 + 5 * sc->data[SC__DEADLYINFECT]->val1 ) + if( sc->data[SC__DEADLYINFECT] && damage > 0 && rnd()%100 < 30 + 10 * sc->data[SC__DEADLYINFECT]->val1 ) status_change_spread(src, bl); if (sc->data[SC_STYLE_CHANGE] && sc->data[SC_STYLE_CHANGE]->val1 == MH_MD_FIGHTING) { TBL_HOM *hd = BL_CAST(BL_HOM,src); //when attacking @@ -1422,7 +1402,7 @@ int64 battle_addmastery(struct map_session_data *sd,struct block_list *target,in if( (skill = pc_checkskill(sd,NC_RESEARCHFE)) > 0 && (status->def_ele == ELE_FIRE || status->def_ele == ELE_EARTH) ) damage += (skill * 10); if( pc_ismadogear(sd) ) - damage += 20 + 20 * pc_checkskill(sd, NC_MADOLICENCE); + damage += 15 + pc_checkskill(sd, NC_MADOLICENCE); if((skill = pc_checkskill(sd,HT_BEASTBANE)) > 0 && (status->race==RC_BRUTE || status->race==RC_INSECT) ) { damage += (skill * 4); @@ -3240,7 +3220,7 @@ static int battle_calc_attack_skill_ratio(struct Damage wd, struct block_list *s } break; case RK_STORMBLAST: - skillratio = ((sd ? pc_checkskill(sd,RK_RUNEMASTERY) : 1) + (sstatus->int_ / 8)) * 100; // ATK = [{Rune Mastery Skill Level + (Caster's INT / 8)} x 100] % + skillratio = (((sd) ? pc_checkskill(sd,RK_RUNEMASTERY) : skill_get_max(RK_RUNEMASTERY)) + (status_get_int(src) / 8)) * 100; // ATK = [{Rune Mastery Skill Level + (Caster's INT / 8)} x 100] % break; case RK_PHANTOMTHRUST: // ATK = [{(Skill Level x 50) + (Spear Master Level x 10)} x Caster's Base Level / 150] % skillratio = 50 * skill_lv + 10 * (sd ? pc_checkskill(sd,KN_SPEARMASTERY) : 5); @@ -3260,7 +3240,7 @@ static int battle_calc_attack_skill_ratio(struct Damage wd, struct block_list *s //ATK [{(Skill Level x 100) + 300} x Caster's Base Level / 120]% + ATK [(AGI x 2) + (Caster's Job Level x 4)]% skillratio += 200 + (100 * skill_lv); RE_LVL_DMOD(120); - skillratio += sstatus->agi + (sd?sd->status.job_level:0) * 4; + skillratio += status_get_agi(src) * 2 + (sd?sd->status.job_level:0) * 4; break; case GC_ROLLINGCUTTER: skillratio += -50 + 50 * skill_lv; @@ -3270,7 +3250,7 @@ static int battle_calc_attack_skill_ratio(struct Damage wd, struct block_list *s skillratio += 300 + 80 * skill_lv; RE_LVL_DMOD(100); if( sc && sc->data[SC_ROLLINGCUTTER] ) - skillratio += sc->data[SC_ROLLINGCUTTER]->val1 * sstatus->agi; + skillratio += sc->data[SC_ROLLINGCUTTER]->val1 * status_get_agi(src); break; /** * Arch Bishop @@ -3309,29 +3289,29 @@ static int battle_calc_attack_skill_ratio(struct Damage wd, struct block_list *s * Mechanic **/ case NC_BOOSTKNUCKLE: - skillratio += 100 + 100 * skill_lv + sstatus->dex; - RE_LVL_DMOD(100); + skillratio += 100 + 100 * skill_lv + status_get_dex(src); + RE_LVL_DMOD(120); break; case NC_PILEBUNKER: - skillratio += 200 + 100 * skill_lv + sstatus->str; + skillratio += 200 + 100 * skill_lv + status_get_str(src); RE_LVL_DMOD(100); break; case NC_VULCANARM: - skillratio = 70 * skill_lv + sstatus->dex; - RE_LVL_DMOD(100); + skillratio = 70 * skill_lv + status_get_dex(src); + RE_LVL_DMOD(120); break; case NC_FLAMELAUNCHER: case NC_COLDSLOWER: skillratio += 200 + 300 * skill_lv; - RE_LVL_DMOD(100); + RE_LVL_DMOD(150); break; case NC_ARMSCANNON: switch( tstatus->size ) { - case SZ_SMALL: skillratio += 100 + 500 * skill_lv; break;// Small - case SZ_MEDIUM: skillratio += 100 + 400 * skill_lv; break;// Medium - case SZ_BIG: skillratio += 100 + 300 * skill_lv; break;// Large + case SZ_SMALL: skillratio += 200 + 400 * skill_lv; break;// Small + case SZ_MEDIUM: skillratio += 200 + 350 * skill_lv; break;// Medium + case SZ_BIG: skillratio += 200 + 300 * skill_lv; break;// Large } - RE_LVL_DMOD(100); + RE_LVL_DMOD(120); //NOTE: Their's some other factors that affects damage, but not sure how exactly. Will recheck one day. [Rytech] break; case NC_AXEBOOMERANG: @@ -3344,60 +3324,63 @@ static int battle_calc_attack_skill_ratio(struct Damage wd, struct block_list *s RE_LVL_DMOD(100); break; case NC_POWERSWING: // According to current sources, only the str + dex gets modified by level [Akinari] - skillratio = sstatus->str + sstatus->dex; + skillratio = status_get_str(src) + status_get_dex(src); RE_LVL_DMOD(100); skillratio += 200 + 100 * skill_lv; break; case NC_AXETORNADO: - skillratio += 100 + 100 * skill_lv + sstatus->vit; + skillratio += 100 + 100 * skill_lv + status_get_vit(src); RE_LVL_DMOD(100); break; case SC_FATALMENACE: skillratio += 100 * skill_lv; break; case SC_TRIANGLESHOT: - skillratio += ((skill_lv - 1) * (sstatus->agi / 2)) + 200; + skillratio += ((skill_lv - 1) * (status_get_agi(src) / 2)) + 200; RE_LVL_DMOD(120); break; case SC_FEINTBOMB: - skillratio = (skill_lv + 1) * (sstatus->dex / 2) * (sd?(sd->status.job_level / 10):5); + skillratio = (skill_lv + 1) * (status_get_dex(src) / 2) * (sd?(sd->status.job_level / 10):5); RE_LVL_DMOD(120); break; - case LG_CANNONSPEAR:// Stimated formula. Still need confirm it. - skillratio += -100 + (50 + sstatus->str) * skill_lv; + case LG_CANNONSPEAR: + skillratio = (50 * skill_lv) + (status_get_str(src) * skill_lv); RE_LVL_DMOD(100); break; case LG_BANISHINGPOINT: - skillratio += -100 + ((50 * skill_lv) + (30 * ((sd)?pc_checkskill(sd,SM_BASH):1))); + skillratio = (50 * skill_lv) + (30 * ((sd) ? pc_checkskill(sd,SM_BASH) : skill_get_max(SM_BASH))); RE_LVL_DMOD(100); break; case LG_SHIELDPRESS: - skillratio = 150 * skill_lv + sstatus->str; + skillratio = 150 * skill_lv + status_get_str(src); if( sd ) { short index = sd->equip_index[EQI_HAND_L]; if( index >= 0 && sd->inventory_data[index] && sd->inventory_data[index]->type == IT_ARMOR ) { skillratio += sd->inventory_data[index]->weight / 10; RE_LVL_DMOD(100); - skillratio += sstatus->vit * sd->status.inventory[index].refine; + skillratio += status_get_vit(src) * sd->status.inventory[index].refine; } } else { RE_LVL_DMOD(100); } break; case LG_PINPOINTATTACK: - skillratio = ((100 * skill_lv) + (10 * status_get_agi(src)) ); - RE_LVL_DMOD(100); + skillratio = (100 * skill_lv) + (5 * status_get_agi(src)); + RE_LVL_DMOD(120); break; case LG_RAGEBURST: if( sd && sd->spiritball_old ) - skillratio += -100 + (sd->spiritball_old * 200); + skillratio = sd->spiritball_old * 200 + (status_get_max_hp(src) - status_get_hp(src)) / 100; else - skillratio += -100 + 15 * 200; + skillratio = 15 * 200; RE_LVL_DMOD(100); break; case LG_SHIELDSPELL:// [(Casters Base Level x 4) + (Shield DEF x 10) + (Casters VIT x 2)] % if( sd ) { - struct item_data *shield_data = sd->inventory_data[sd->equip_index[EQI_HAND_L]]; + int index = sd->equip_index[EQI_HAND_L]; + struct item_data *shield_data; + if( index >= 0 && sd->inventory_data[index] && sd->inventory_data[index]->type == IT_ARMOR ) + shield_data = sd->inventory_data[index]; skillratio = status_get_lv(src) * 4 + status_get_vit(src) * 2; if( shield_data ) skillratio += shield_data->def * 10; @@ -3405,15 +3388,15 @@ static int battle_calc_attack_skill_ratio(struct Damage wd, struct block_list *s skillratio = 0; // Prevent damage since level 2 is MATK. [Aleos] break; case LG_MOONSLASHER: - skillratio += -100 + (120 * skill_lv + ((sd) ? pc_checkskill(sd,LG_OVERBRAND) : 5) * 80); + skillratio = 120 * skill_lv + ((sd) ? pc_checkskill(sd,LG_OVERBRAND) : skill_get_max(LG_OVERBRAND)) * 80; RE_LVL_DMOD(100); break; case LG_OVERBRAND: - skillratio = 200 * skill_lv + (pc_checkskill(sd,CR_SPEARQUICKEN) * 50); + skillratio = 200 * skill_lv + ((sd) ? pc_checkskill(sd,CR_SPEARQUICKEN) : skill_get_max(CR_SPEARQUICKEN)) * 50; RE_LVL_DMOD(100); break; case LG_OVERBRAND_BRANDISH: - skillratio = 100 * skill_lv + (sstatus->str + sstatus->dex); + skillratio = 100 * skill_lv + (status_get_str(src) + status_get_dex(src)); RE_LVL_DMOD(100); break; case LG_OVERBRAND_PLUSATK: // Only Piercing and Swing damage get RE_LVL_DMOD bonus damage @@ -3424,11 +3407,18 @@ static int battle_calc_attack_skill_ratio(struct Damage wd, struct block_list *s RE_LVL_DMOD(100); break; case LG_EARTHDRIVE: - skillratio = (skillratio + 100) * skill_lv; + skillratio += skill_lv; RE_LVL_DMOD(100); break; case LG_HESPERUSLIT: - skillratio += 120 * skill_lv - 100; + skillratio = 120 * skill_lv; + if( sc && sc->data[SC_BANDING] ) + skillratio += 200 * sc->data[SC_BANDING]->val2; + if( sc && sc->data[SC_BANDING] && sc->data[SC_BANDING]->val2 > 5 ) + skillratio = skillratio * 150 / 100; + if( sc && sc->data[SC_INSPIRATION] ) + skillratio += 600; + RE_LVL_DMOD(100); break; case SR_DRAGONCOMBO: skillratio += 40 * skill_lv; @@ -3436,9 +3426,9 @@ static int battle_calc_attack_skill_ratio(struct Damage wd, struct block_list *s break; case SR_SKYNETBLOW: //ATK [{(Skill Level x 80) + (Caster AGI)} x Caster Base Level / 100] % - skillratio = 80 * skill_lv + sstatus->agi; + skillratio = 80 * skill_lv + status_get_agi(src); if( sc && sc->data[SC_COMBO] && sc->data[SC_COMBO]->val1 == SR_DRAGONCOMBO )//ATK [{(Skill Level x 100) + (Caster AGI) + 150} x Caster Base Level / 100] % - skillratio = 100 * skill_lv + sstatus->agi + 150; + skillratio = 100 * skill_lv + status_get_agi(src) + 150; RE_LVL_DMOD(100); break; case SR_EARTHSHAKER: @@ -3446,11 +3436,11 @@ static int battle_calc_attack_skill_ratio(struct Damage wd, struct block_list *s tsc->data[SC_CHASEWALK] || tsc->data[SC_CLOAKINGEXCEED] || tsc->data[SC__INVISIBILITY]) ){ skillratio = 150 * skill_lv; RE_LVL_DMOD(100); - skillratio += sstatus->int_ * 3; + skillratio += status_get_int(src) * 3; }else{ //[(Skill Level x 50) x (Caster Base Level / 100) + (Caster INT x 2)] % - skillratio += 50 * (skill_lv-2); + skillratio = 50 * skill_lv; RE_LVL_DMOD(100); - skillratio += sstatus->int_ * 2; + skillratio += status_get_int(src) * 2; } break; case SR_FALLENEMPIRE:// ATK [(Skill Level x 150 + 100) x Caster Base Level / 150] % @@ -3459,8 +3449,8 @@ static int battle_calc_attack_skill_ratio(struct Damage wd, struct block_list *s break; case SR_TIGERCANNON:// ATK [((Caster consumed HP + SP) / 4) x Caster Base Level / 100] % { - int hp = (int64)sstatus->max_hp * (10 + 2 * skill_lv) / 100, - sp = (int64)sstatus->max_sp * (6 + 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; 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] % skillratio = (int64)hp+sp / 2; @@ -3468,7 +3458,7 @@ static int battle_calc_attack_skill_ratio(struct Damage wd, struct block_list *s } break; case SR_RAMPAGEBLASTER: - skillratio += 20 * skill_lv * (sd?sd->spiritball_old:5) - 100; + skillratio = 20 * skill_lv * (sd?sd->spiritball_old:5); if( sc && sc->data[SC_EXPLOSIONSPIRITS] ){ skillratio += sc->data[SC_EXPLOSIONSPIRITS]->val1 * 20; RE_LVL_DMOD(120); @@ -3477,74 +3467,75 @@ static int battle_calc_attack_skill_ratio(struct Damage wd, struct block_list *s break; case SR_KNUCKLEARROW: if( wd.miscflag&4 ){ // ATK [(Skill Level x 150) + (1000 x Target current weight / Maximum weight) + (Target Base Level x 5) x (Caster Base Level / 150)] % - skillratio = 150 * skill_lv + status_get_lv(target) * 5 * (status_get_lv(src) / 100) ; + skillratio = 150 * skill_lv + status_get_lv(target) * 5; if( tsd && tsd->weight ) skillratio += 100 * (tsd->weight / tsd->max_weight); - }else // ATK [(Skill Level x 100 + 500) x Caster Base Level / 100] % + RE_LVL_DMOD(150); + } else { // ATK [(Skill Level x 100 + 500) x Caster Base Level / 100] % skillratio += 400 + (100 * skill_lv); - RE_LVL_DMOD(100); + RE_LVL_DMOD(100); + } break; case SR_WINDMILL: // ATK [(Caster Base Level + Caster DEX) x Caster Base Level / 100] % - skillratio = status_get_lv(src) + sstatus->dex; + skillratio = status_get_lv(src) + status_get_dex(src); RE_LVL_DMOD(100); break; case SR_GATEOFHELL: if( sc && sc->data[SC_COMBO] && sc->data[SC_COMBO]->val1 == SR_FALLENEMPIRE ) - skillratio += 800 * skill_lv -100; + skillratio += 700 * skill_lv; else - skillratio += 500 * skill_lv -100; + skillratio += 400 * skill_lv; RE_LVL_DMOD(100); break; case SR_GENTLETOUCH_QUIET: - skillratio += 100 * skill_lv - 100 + sstatus->dex; + skillratio = 100 * skill_lv + status_get_dex(src); RE_LVL_DMOD(100); break; case SR_HOWLINGOFLION: - skillratio += 300 * skill_lv - 100; + skillratio += 200 * skill_lv; RE_LVL_DMOD(150); break; case SR_RIDEINLIGHTNING: // ATK [{(Skill Level x 200) + Additional Damage} x Caster Base Level / 100] % if( (sstatus->rhw.ele) == ELE_WIND || (sstatus->lhw.ele) == ELE_WIND ) - skillratio += skill_lv * 50; - skillratio += -100 + 200 * skill_lv; + skillratio = skill_lv * 50; + skillratio = 200 * skill_lv; RE_LVL_DMOD(100); break; case WM_REVERBERATION_MELEE: // ATK [{(Skill Level x 100) + 300} x Caster Base Level / 100] - skillratio += 200 + 100 * pc_checkskill(sd, WM_REVERBERATION); + skillratio += 200 + 100 * ((sd) ? pc_checkskill(sd, WM_REVERBERATION) : skill_get_max(WM_REVERBERATION)); RE_LVL_DMOD(100); break; case WM_SEVERE_RAINSTORM_MELEE: //ATK [{(Caster DEX + AGI) x (Skill Level / 5)} x Caster Base Level / 100] % - skillratio = (sstatus->dex + sstatus->agi) * (skill_lv * 2); + skillratio = (status_get_dex(src) + status_get_agi(src)) * (skill_lv / 5); RE_LVL_DMOD(100); - skillratio /= 10; break; case WM_GREAT_ECHO: - skillratio += 800 + 100 * skill_lv; - if( sd ) { // Still need official value [pakpil] + skillratio += 300 + 200 * skill_lv; + if( sd ) { uint16 lv = skill_lv; skillratio += 100 * skill_check_pc_partner(sd,skill_id,&lv,skill_get_splash(skill_id,skill_lv),0); } break; case WM_SOUND_OF_DESTRUCTION: - skillratio += 400; + skillratio = (1000 * skill_lv) + (((sd) ? pc_checkskill(sd, WM_LESSON) : skill_get_max(WM_LESSON)) * status_get_int(src)); break; case GN_CART_TORNADO: { // ATK [( Skill Level x 50 ) + ( Cart Weight / ( 150 - Caster Base STR ))] + ( Cart Remodeling Skill Level x 50 )] % - int str = status_get_base_status(src)->str; //only using base str - skillratio += -100 + 50 * skill_lv; + skillratio = 50 * skill_lv; if( sd && sd->cart_weight) - skillratio += sd->cart_weight/10 / (150-str) + pc_checkskill(sd, GN_REMODELING_CART) * 50; + skillratio += sd->cart_weight/10 / max((150-status_get_base_status(src)->str),1) + pc_checkskill(sd, GN_REMODELING_CART) * 50; } break; case GN_CARTCANNON: // ATK [{( Cart Remodeling Skill Level x 50 ) x ( INT / 40 )} + ( Cart Cannon Skill Level x 60 )] % skillratio = 60 * skill_lv; - if( sd ) skillratio += pc_checkskill(sd, GN_REMODELING_CART) * 50 * (sstatus->int_ / 40); + if( sd ) skillratio += (pc_checkskill(sd, GN_REMODELING_CART) * 50) * (status_get_int(src) / 40); break; case GN_SPORE_EXPLOSION: - skillratio += 200 + 100 * skill_lv; + skillratio = (100 * skill_lv) + (200 + status_get_int(src)); + RE_LVL_DMOD(100); break; case GN_CRAZYWEED_ATK: skillratio += 400 + 100 * skill_lv; @@ -3552,24 +3543,32 @@ static int battle_calc_attack_skill_ratio(struct Damage wd, struct block_list *s case GN_SLINGITEM_RANGEMELEEATK: if( sd ) { switch( sd->itemid ) { - case 13260: // Apple Bomob - case 13261: // Coconut Bomb - case 13262: // Melon Bomb - case 13263: // Pinapple Bomb - skillratio += 400; // Unconfirded + case ITEMID_APPLE_BOMB: + skillratio = status_get_str(src) + status_get_dex(src) + 300; break; - case 13264: // Banana Bomb 2000% - skillratio += 1900; + case ITEMID_MELON_BOMB: + skillratio = status_get_str(src) + status_get_dex(src) + 500; + case ITEMID_COCONUT_BOMB: + case ITEMID_PINEAPPLE_BOMB: + case ITEMID_BANANA_BOMB: + skillratio = status_get_str(src) + status_get_dex(src) + 800; break; - case 13265: skillratio -= 75; break; // Black Lump 25% - case 13266: skillratio -= 25; break; // Hard Black Lump 75% - case 13267: skillratio += 100; break; // Extremely Hard Black Lump 200% + case ITEMID_BLACK_LUMP: + skillratio = (status_get_str(src) + status_get_agi(src) + status_get_dex(src)) / 3; + break; + case ITEMID_BLACK_HARD_LUMP: + skillratio = (status_get_str(src) + status_get_agi(src) + status_get_dex(src)) / 2; + break; + case ITEMID_VERY_HARD_LUMP: + skillratio = status_get_str(src) + status_get_agi(src) + status_get_dex(src); + break; } } else skillratio += 300; // Bombs break; case SO_VARETYR_SPEAR://ATK [{( Striking Level x 50 ) + ( Varetyr Spear Skill Level x 50 )} x Caster Base Level / 100 ] % - skillratio = 50 * skill_lv + ( sd ? pc_checkskill(sd, SO_STRIKING) * 50 : 0 ); + skillratio = 50 * skill_lv + ((sd) ? pc_checkskill(sd, SO_STRIKING) * 50 : skill_get_max(SO_STRIKING)); + RE_LVL_DMOD(100); if( sc && sc->data[SC_BLAST_OPTION] ) skillratio += sd ? sd->status.job_level * 5 : 0; break; @@ -3713,7 +3712,17 @@ static int battle_calc_skill_constant_addition(struct Damage wd, struct block_li struct status_change *tsc = status_get_sc(target); struct status_data *sstatus = status_get_status_data(src); struct status_data *tstatus = status_get_status_data(target); - int atk = 0; + int atk = 0, chorusbonus = 0; + + // Minstrel/Wanderer number check for chorus skills. + // Bonus remains 0 unless 3 or more Minstrels/Wanderers are in the party. + if( sd && sd->status.party_id ) { + chorusbonus = party_foreachsamemap(party_sub_count_class, sd, MAPID_THIRDMASK, MAPID_MINSTRELWANDERER); + if( chorusbonus > 7 ) + chorusbonus = 5; // Maximum effect possible from 7 or more Minstrels/Wanderers + else if( chorusbonus > 2 ) + chorusbonus = chorusbonus - 2; // Effect bonus from additional Minstrels/Wanderers if not above the max possible. + } //Constant/misc additions from skills switch (skill_id) { @@ -3750,13 +3759,15 @@ static int battle_calc_skill_constant_addition(struct Damage wd, struct block_li case RA_WUGBITE: if(sd) atk = (30*pc_checkskill(sd, RA_TOOTHOFWUG)); + if( sc && sc->data[SC_DANCEWITHWUG] ) + atk += skill_lv * 10 * chorusbonus; // Dance With Wug Bonus. ATK = [(Skill Level x 10) x Number of Maestro/Wanderer in party(Maximum of 7)] % break; case SR_GATEOFHELL: - atk = (sstatus->max_hp - status_get_hp(src)); + atk = (status_get_max_hp(src) - status_get_hp(src)); if(sc && sc->data[SC_COMBO] && sc->data[SC_COMBO]->val1 == SR_FALLENEMPIRE) { - atk += ( ((int64)sstatus->max_sp * (1 + skill_lv * 2 / 10)) + 40 * status_get_lv(src) ); + atk += ( ((int64)status_get_max_sp(src) * (1 + skill_lv * 2 / 10)) + 40 * status_get_lv(src) ); } else { - atk += ( ((int64)sstatus->sp * (1 + skill_lv * 2 / 10)) + 10 * status_get_lv(src) ); + atk += ( ((int64)status_get_sp(src) * (1 + skill_lv * 2 / 10)) + 10 * status_get_lv(src) ); } break; case SR_TIGERCANNON: // (Tiger Cannon skill level x 240) + (Target Base Level x 40) @@ -3766,11 +3777,11 @@ static int battle_calc_skill_constant_addition(struct Damage wd, struct block_li atk = ( skill_lv * 500 + status_get_lv(target) * 40 ); break; case SR_FALLENEMPIRE:// [(Target Size value + Skill Level - 1) x Caster STR] + [(Target current weight x Caster DEX / 120)] - atk = ( ((tstatus->size+1)*2 + skill_lv - 1) * sstatus->str); + atk = ( ((tstatus->size+1)*2 + skill_lv - 1) * status_get_str(src)); if( tsd && tsd->weight ){ - atk = ( (tsd->weight/10) * sstatus->dex / 120 ); + atk += ( (tsd->weight/10) * status_get_dex(src) / 120 ); }else{ - atk = ( status_get_lv(target) * 50 ); //mobs + atk += ( status_get_lv(target) * 50 ); //mobs } break; case KO_SETSUDAN: @@ -4113,7 +4124,7 @@ struct Damage battle_calc_attack_post_defense(struct Damage wd, struct block_lis case NC_AXETORNADO: if( (sstatus->rhw.ele) == ELE_WIND || (sstatus->lhw.ele) == ELE_WIND ) - ATK_ADDRATE(wd.damage, wd.damage2, 50); + ATK_ADDRATE(wd.damage, wd.damage2, 25); break; } @@ -4377,6 +4388,7 @@ static struct Damage initialize_weapon_data(struct block_list *src, struct block { struct status_data *sstatus = status_get_status_data(src); struct status_data *tstatus = status_get_status_data(target); + struct status_change *sc = status_get_sc(src); struct map_session_data *sd = BL_CAST(BL_PC, src); struct Damage wd; @@ -4446,6 +4458,13 @@ static struct Damage initialize_weapon_data(struct block_list *src, struct block case LK_SPIRALPIERCE: if (!sd) wd.flag=(wd.flag&~(BF_RANGEMASK|BF_WEAPONMASK))|BF_LONG|BF_MISC; break; + + // The number of hits is set to 3 by default for use in Inspiration status. + // When in Banding, the number of hits is equal to the number of Royal Guards in Banding. + case LG_HESPERUSLIT: + if( sc && sc->data[SC_BANDING] && sc->data[SC_BANDING]->val2 > 3 ) + wd.div_ = sc->data[SC_BANDING]->val2; + break; } } else { wd.flag |= is_skill_using_arrow(src, skill_id)?BF_LONG:BF_SHORT; @@ -4506,14 +4525,6 @@ void battle_do_reflect(int attack_type, struct Damage *wd, struct block_list* sr if (ssc && ssc->data[SC_DEVOTION] && (d_bl = map_id2bl(ssc->data[SC_DEVOTION]->val1))) isDevotRdamage = true; } - //if(tsc->data[SC__SHADOWFORM]) { - // struct block_list *s_bl = map_id2bl(tsc->data[SC__SHADOWFORM]->val2); - // if(s_bl) - // status_damage(src, s_bl, rdamage, 0, clif_damage(src, s_bl, gettick(), 500, 500, rdamage, -1, 0, 0), 0); - // wd->damage = wd->damage2 = 0; - // wd->dmg_lv = ATK_BLOCK; - //} - if(attack_type == BF_WEAPON && tsc->data[SC_REFLECTDAMAGE] ) // Don't reflect your own damage (Grand Cross) map_foreachinshootrange(battle_damage_area,target,skill_get_splash(LG_REFLECTDAMAGE,1),BL_CHAR,tick,target,wd->amotion,sstatus->dmotion,rdamage,tstatus->race); else if(attack_type == BF_WEAPON || attack_type == BF_MISC) { @@ -4968,7 +4979,7 @@ struct Damage battle_calc_magic_attack(struct block_list *src,struct block_list case MG_COLDBOLT: case MG_LIGHTNINGBOLT: if ( sc && sc->data[SC_SPELLFIST] && mflag&BF_SHORT ) { - skillratio += (sc->data[SC_SPELLFIST]->val4 * 100) + (sc->data[SC_SPELLFIST]->val2 * 100) - 100;// val4 = used bolt level, val2 = used spellfist level. [Rytech] + skillratio += (sc->data[SC_SPELLFIST]->val4 * 100) + (sc->data[SC_SPELLFIST]->val2 * 50) - 100;// val4 = used bolt level, val2 = used spellfist level. [Rytech] ad.div_ = 1;// ad mods, to make it work similar to regular hits [Xazax] ad.flag = BF_WEAPON|BF_SHORT; ad.type = 0; @@ -5088,7 +5099,7 @@ struct Damage battle_calc_magic_attack(struct block_list *src,struct block_list * Warlock **/ case WL_SOULEXPANSION: - skillratio += 300 + 100 * skill_lv + sstatus->int_; + skillratio += 300 + 100 * skill_lv + status_get_int(src); RE_LVL_DMOD(100); break; case WL_FROSTMISTY: @@ -5105,7 +5116,7 @@ struct Damage battle_calc_magic_attack(struct block_list *src,struct block_list } break; case WL_DRAINLIFE: - skillratio = 200 * skill_lv + sstatus->int_; + skillratio = 200 * skill_lv + status_get_int(src); RE_LVL_DMOD(100); break; case WL_CRIMSONROCK: @@ -5149,8 +5160,10 @@ struct Damage battle_calc_magic_attack(struct block_list *src,struct block_list } break; case WL_CHAINLIGHTNING_ATK: - skillratio += 100 + 300 * skill_lv; + skillratio += 400 + 100 * skill_lv; RE_LVL_DMOD(100); + if (mflag > 0) + skillratio += 100 * mflag; break; case WL_EARTHSTRAIN: skillratio += 1900 + 100 * skill_lv; @@ -5185,51 +5198,46 @@ struct Damage battle_calc_magic_attack(struct block_list *src,struct block_list skillratio += 1900; //2000% break; case WM_METALICSOUND: - skillratio += 120 * skill_lv + 60 * ( sd? pc_checkskill(sd, WM_LESSON) : 10 ) - 100; + skillratio = 120 * skill_lv + 60 * ((sd) ? pc_checkskill(sd, WM_LESSON) : skill_get_max(WM_LESSON)); + RE_LVL_DMOD(100); break; - /*case WM_SEVERE_RAINSTORM: - skillratio += 50 * skill_lv; - break; - - WM_SEVERE_RAINSTORM just set a unit place, - refer to WM_SEVERE_RAINSTORM_MELEE to set the formula. - */ case WM_REVERBERATION_MAGIC: // MATK [{(Skill Level x 100) + 100} x Casters Base Level / 100] % - skillratio += 100 * (sd ? pc_checkskill(sd, WM_REVERBERATION) : 1); + skillratio += 100 * ((sd) ? pc_checkskill(sd, WM_REVERBERATION) : skill_get_max(WM_REVERBERATION)); RE_LVL_DMOD(100); break; case SO_FIREWALK: - skillratio = 300; + skillratio = 60 * skill_lv; RE_LVL_DMOD(100); if( sc && sc->data[SC_HEATER_OPTION] ) skillratio += sc->data[SC_HEATER_OPTION]->val3; break; case SO_ELECTRICWALK: - skillratio = 300; + skillratio = 60 * skill_lv; RE_LVL_DMOD(100); if( sc && sc->data[SC_BLAST_OPTION] ) skillratio += sd ? sd->status.job_level / 2 : 0; break; case SO_EARTHGRAVE: - skillratio = ( 200 * ( sd ? pc_checkskill(sd, SA_SEISMICWEAPON) : 10 ) + 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); if( sc && sc->data[SC_CURSED_SOIL_OPTION] ) skillratio += sc->data[SC_CURSED_SOIL_OPTION]->val2; break; case SO_DIAMONDDUST: - skillratio = ( 200 * ( sd ? pc_checkskill(sd, SA_FROSTWEAPON) : 10 ) + 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); if( sc && sc->data[SC_COOLER_OPTION] ) skillratio += sc->data[SC_COOLER_OPTION]->val3; break; case SO_POISON_BUSTER: - skillratio += 1100 + 300 * skill_lv; + skillratio += 900 + 300 * skill_lv; + RE_LVL_DMOD(120); if( sc && sc->data[SC_CURSED_SOIL_OPTION] ) skillratio += sc->data[SC_CURSED_SOIL_OPTION]->val2; break; case SO_PSYCHIC_WAVE: - skillratio += -100 + skill_lv * 70 + (sstatus->int_ * 3); + skillratio = skill_lv * 70 + (sstatus->int_ * 3); RE_LVL_DMOD(100); if( sc ){ if( sc->data[SC_HEATER_OPTION] ) @@ -5243,26 +5251,22 @@ struct Damage battle_calc_magic_attack(struct block_list *src,struct block_list } break; 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 : 0 ); + skillratio = status_get_int(src) * skill_lv + ((sd) ? pc_checkskill(sd, SA_LIGHTNINGLOADER) * 50 : skill_get_max(SA_LIGHTNINGLOADER)); RE_LVL_DMOD(100); if( sc && sc->data[SC_BLAST_OPTION] ) skillratio += sd ? sd->status.job_level * 5 : 0; break; case SO_CLOUD_KILL: - skillratio += -100 + skill_lv * 40; + skillratio = skill_lv * 40; RE_LVL_DMOD(100); if( sc && sc->data[SC_CURSED_SOIL_OPTION] ) skillratio += sc->data[SC_CURSED_SOIL_OPTION]->val2; break; 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] - } - 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; - } else skillratio += 110 + 20 * skill_lv; break; @@ -5521,7 +5525,7 @@ struct Damage battle_calc_misc_attack(struct block_list *src,struct block_list * case HT_CLAYMORETRAP: md.damage = skill_lv * sstatus->dex * (3+status_get_lv(src)/100) * (1+sstatus->int_/35); md.damage += md.damage * (rnd()%20-10) / 100; - md.damage += 40 * (sd?pc_checkskill(sd,RA_RESEARCHTRAP):0); + md.damage += 40 * ((sd) ? pc_checkskill(sd,RA_RESEARCHTRAP) : skill_get_max(RA_RESEARCHTRAP)); break; #else case HT_LANDMINE: @@ -5690,7 +5694,7 @@ struct Damage battle_calc_misc_attack(struct block_list *src,struct block_list * case RA_CLUSTERBOMB: case RA_FIRINGTRAP: case RA_ICEBOUNDTRAP: - md.damage = skill_lv * sstatus->dex + sstatus->int_ * 5 ; + md.damage = skill_lv * status_get_dex(src) + status_get_int(src) * 5 ; RE_LVL_TMDMOD(); if(sd) { @@ -5705,18 +5709,18 @@ struct Damage battle_calc_misc_attack(struct block_list *src,struct block_list * break; case NC_SELFDESTRUCTION: { - short totaldef = tstatus->def2 + (short)status_get_def(target); - md.damage = ( (sd?pc_checkskill(sd,NC_MAINFRAME):10) + 8 ) * ( skill_lv + 1 ) * ( status_get_sp(src) + sstatus->vit ); + short totaldef = status_get_def2(target) + (short)status_get_def(target); + md.damage = ( ((sd) ? pc_checkskill(sd,NC_MAINFRAME) : skill_get_max(NC_MAINFRAME)) + 8 ) * ( skill_lv + 1 ) * ( status_get_sp(src) + status_get_vit(src) ); RE_LVL_MDMOD(100); md.damage += status_get_hp(src) - totaldef; } break; case GN_THORNS_TRAP: - md.damage = 100 + 200 * skill_lv + sstatus->int_; + md.damage = 100 + 200 * skill_lv + status_get_int(src); break; case GN_HELLS_PLANT_ATK: //[{( Hell Plant Skill Level x Casters Base Level ) x 10 } + {( Casters INT x 7 ) / 2 } x { 18 + ( Casters Job Level / 4 )] x ( 5 / ( 10 - Summon Flora Skill Level )) - md.damage = ( skill_lv * status_get_lv(src) * 10 ) + ( sstatus->int_ * 7 / 2 ) * ( 18 + (sd?sd->status.job_level:0) / 4 ) * ( 5 / (10 - (sd?pc_checkskill(sd,AM_CANNIBALIZE):0)) ); + md.damage = ( skill_lv * status_get_lv(src) * 10 ) + ( status_get_int(src) * 7 / 2 ) * ( 18 + (sd?sd->status.job_level:0) / 4 ) * ( 5 / (10 - ((sd) ? pc_checkskill(sd,AM_CANNIBALIZE) : skill_get_max(AM_CANNIBALIZE))) ); break; case KO_HAPPOKUNAI: { @@ -6308,7 +6312,13 @@ enum damage_lv battle_weapon_attack(struct block_list* src, struct block_list* t } map_freeblock_lock(); - battle_delay_damage(tick, wd.amotion, src, target, wd.flag, 0, 0, damage, wd.dmg_lv, wd.dmotion, true); + if( skill_check_shadowform(target, damage, wd.div_) ) { + if( !status_isdead(target) ) + skill_additional_effect(src, target, 0, 0, wd.flag, wd.dmg_lv, tick); + if( wd.dmg_lv > ATK_BLOCK ) + skill_counter_additional_effect(src, target, 0, 0, wd.flag, tick); + } else + battle_delay_damage(tick, wd.amotion, src, target, wd.flag, 0, 0, damage, wd.dmg_lv, wd.dmotion, true); if( tsc ) { if( tsc->data[SC_DEVOTION] ) { struct status_change_entry *sce = tsc->data[SC_DEVOTION]; diff --git a/src/map/itemdb.h b/src/map/itemdb.h index 2f42957284..1011d39c06 100644 --- a/src/map/itemdb.h +++ b/src/map/itemdb.h @@ -176,7 +176,7 @@ enum rune_item_list { * Mechanic */ enum mechanic_item_list { - ITEMID_ACCELERATOR = 2800, + ITEMID_ACCELERATOR = 2800, ITEMID_HOVERING_BOOSTER, ITEMID_SUICIDAL_DEVICE, ITEMID_SHAPE_SHIFTER, @@ -187,6 +187,10 @@ enum mechanic_item_list { ITEMID_CAMOUFLAGE_GENERATOR, ITEMID_HIGH_QUALITY_COOLER, ITEMID_SPECIAL_COOLER, + ITEMID_SCARLET_PTS = 6360, + ITEMID_INDIGO_PTS, + ITEMID_YELLOW_WISH_PTS, + ITEMID_LIME_GREEN_PTS, }; /** diff --git a/src/map/map.h b/src/map/map.h index d97eb03f71..ea74e637e6 100644 --- a/src/map/map.h +++ b/src/map/map.h @@ -53,35 +53,48 @@ void map_msg_reload(void); /** Added definitions for WoESE objects and other [L0ne_W0lf], [aleos] */ enum MOBID { - MOBID_PORING = 1002, - MOBID_A_GUARDIAN = 1285, - MOBID_K_GUARDIAN, - MOBID_S_GUARDIAN, - MOBID_EMPERIUM, - MOBID_TREAS01 = 1324, - MOBID_TREAS40 = 1363, - MOBID_S_GUARDIAN_ = 1899, - MOBID_A_GUARDIAN_, - MOBID_BARRICADE1 = 1905, - MOBID_BARRICADE2, - MOBID_GUARIDAN_STONE1, - MOBID_GUARIDAN_STONE2, - MOBID_FOOD_STOR, - MOBID_BLUE_CRYST = 1914, - MOBID_PINK_CRYST, - MOBID_TREAS41 = 1938, - MOBID_TREAS49 = 1946, - MOBID_SILVERSNIPER = 2042, - MOBID_MAGICDECOY_FIRE, - MOBID_MAGICDECOY_WATER, - MOBID_MAGICDECOY_EARTH, - MOBID_MAGICDECOY_WIND, + MOBID_PORING = 1002, MOBID_MARINE_SPHERE = 1142, + MOBID_A_GUARDIAN = 1285, + MOBID_K_GUARDIAN, + MOBID_S_GUARDIAN, + MOBID_EMPERIUM, + MOBID_TREAS01 = 1324, + MOBID_TREAS40 = 1363, MOBID_G_PARASITE = 1555, MOBID_G_FLORA = 1575, MOBID_G_HYDRA = 1579, MOBID_G_MANDRAGORA = 1589, MOBID_G_GEOGRAPHER = 1590, + MOBID_S_GUARDIAN_ = 1899, + MOBID_A_GUARDIAN_, + MOBID_BARRICADE1 = 1905, + MOBID_BARRICADE2, + MOBID_GUARIDAN_STONE1, + MOBID_GUARIDAN_STONE2, + MOBID_FOOD_STOR, + MOBID_BLUE_CRYST = 1914, + MOBID_PINK_CRYST, + MOBID_TREAS41 = 1938, + MOBID_TREAS49 = 1946, + MOBID_TATACHO = 1986, + MOBID_CENTIPEDE, + MOBID_NEPENTHES, + MOBID_HILLSRION, + MOBID_HARDROCK_MOMMOTH, + MOBID_TENDRILRION, + MOBID_CORNUS, + MOBID_NAGA, + MOBID_LUCIOLA_VESPA, + MOBID_PINGUICULA, + MOBID_G_TATACHO = 1997, + MOBID_G_HILLSRION, + MOBID_CENTIPEDE_LARVA, + MOBID_SILVERSNIPER = 2042, + MOBID_MAGICDECOY_FIRE, + MOBID_MAGICDECOY_WATER, + MOBID_MAGICDECOY_EARTH, + MOBID_MAGICDECOY_WIND, MOBID_S_HORNET = 2158, MOBID_S_GIANT_HORNET, MOBID_S_LUCIOLA_VESPA, diff --git a/src/map/mob.c b/src/map/mob.c index 2bc3412f5f..d84223ee82 100644 --- a/src/map/mob.c +++ b/src/map/mob.c @@ -82,8 +82,8 @@ static struct { } summon[MAX_RANDOMMONSTER]; //Defines the Manuk/Splendide mob groups for the status reductions [Epoque] -const int mob_manuk[8] = { 1986, 1987, 1988, 1989, 1990, 1997, 1998, 1999 }; -const int mob_splendide[5] = { 1991, 1992, 1993, 1994, 1995 }; +const int mob_manuk[8] = { MOBID_TATACHO, MOBID_CENTIPEDE, MOBID_NEPENTHES, MOBID_HILLSRION, MOBID_HARDROCK_MOMMOTH, MOBID_G_TATACHO, MOBID_G_HILLSRION, MOBID_CENTIPEDE_LARVA }; +const int mob_splendide[5] = { MOBID_TENDRILRION, MOBID_CORNUS, MOBID_NAGA, MOBID_LUCIOLA_VESPA, MOBID_PINGUICULA }; /*========================================== * Local prototype declaration (only required thing) diff --git a/src/map/party.c b/src/map/party.c index 3005748e2b..56e656d42b 100644 --- a/src/map/party.c +++ b/src/map/party.c @@ -1130,6 +1130,22 @@ int party_sub_count(struct block_list *bl, va_list ap) return 1; } +// To use for counting classes in a party. +int party_sub_count_class(struct block_list *bl, va_list ap) +{ + struct map_session_data *sd = (TBL_PC *)bl; + unsigned int mask = va_arg(ap, unsigned int); + unsigned int mapid_class = va_arg(ap, unsigned int); + + if( !party_sub_count(bl, ap) ) + return 0; + + if( (sd->class_&mask) != mapid_class ) + return 0; + + return 1; +} + /// Executes 'func' for each party member on the same map and in range (0:whole map) int party_foreachsamemap(int (*func)(struct block_list*,va_list),struct map_session_data *sd,int range,...) { diff --git a/src/map/party.h b/src/map/party.h index 00ac4d1cc2..68dbadf718 100644 --- a/src/map/party.h +++ b/src/map/party.h @@ -87,6 +87,7 @@ int party_exp_share(struct party_data *p,struct block_list *src,unsigned int bas int party_share_loot(struct party_data* p, struct map_session_data* sd, struct item* item_data, int first_charid); int party_send_dot_remove(struct map_session_data *sd); int party_sub_count(struct block_list *bl, va_list ap); +int party_sub_count_class(struct block_list *bl, va_list ap); int party_foreachsamemap(int (*func)(struct block_list *,va_list),struct map_session_data *sd,int range,...); /*========================================== diff --git a/src/map/skill.c b/src/map/skill.c index fba5e426de..0ec010ce8e 100755 --- a/src/map/skill.c +++ b/src/map/skill.c @@ -369,9 +369,9 @@ int skill_calc_heal(struct block_list *src, struct block_list *target, uint16 sk * Renewal Heal Formula * Formula: ( [(Base Level + INT) / 5] x 30 ) x (Heal Level / 10) x (Modifiers) + MATK **/ - hp = (status_get_lv(src) + status_get_int(src)) / 5 * 30 * (skill_id == AB_HIGHNESSHEAL ? (sd ? pc_checkskill(sd,AL_HEAL) : 10 ) : skill_lv) / 10; + hp = (status_get_lv(src) + status_get_int(src)) / 5 * 30 * (skill_id == AB_HIGHNESSHEAL ? ((sd) ? pc_checkskill(sd,AL_HEAL) : skill_get_max(AL_HEAL)) : skill_lv) / 10; #else - hp = (status_get_lv(src) + status_get_int(src)) / 8 * (4 + ( (skill_id == AB_HIGHNESSHEAL ? (sd ? pc_checkskill(sd,AL_HEAL) : 10 ) : skill_lv) * 8)); + hp = (status_get_lv(src) + status_get_int(src)) / 8 * (4 + ( (skill_id == AB_HIGHNESSHEAL ? ((sd) ? pc_checkskill(sd,AL_HEAL) : skill_get_max(AL_HEAL)) : skill_lv) * 8)); #endif if (skill_id == AB_HIGHNESSHEAL) hp = hp * ( 17 + 3 * skill_lv ) / 10; @@ -618,7 +618,6 @@ bool skill_isNotOk(uint16 skill_id, struct map_session_data *sd) return true; } break; - case BS_GREED: case WS_CARTBOOST: case BS_HAMMERFALL: case BS_ADRENALINE: @@ -782,6 +781,7 @@ int skill_additional_effect (struct block_list* src, struct block_list *bl, uint enum sc_type status; int skill; int rate; + int chorusbonus = 0; nullpo_ret(src); nullpo_ret(bl); @@ -804,6 +804,16 @@ int skill_additional_effect (struct block_list* src, struct block_list *bl, uint //So if the target can't be inflicted with statuses, this is pointless. return 0; + // Minstrel/Wanderer number check for chorus skills. + // Bonus remains 0 unless 3 or more Minstrels/Wanderers are in the party. + if( sd && sd->status.party_id ) { + chorusbonus = party_foreachsamemap(party_sub_count_class, sd, MAPID_THIRDMASK, MAPID_MINSTRELWANDERER); + if( chorusbonus > 7 ) + chorusbonus = 5; // Maximum effect possible from 7 or more Minstrels/Wanderers + else if( chorusbonus > 2 ) + chorusbonus = chorusbonus - 2; // Effect bonus from additional Minstrels/Wanderers if not above the max possible. + } + if( sd ) { // These statuses would be applied anyway even if the damage was blocked by some skills. [Inkfish] if( skill_id != WS_CARTTERMINATION && skill_id != AM_DEMONSTRATION && skill_id != CR_REFLECTSHIELD && skill_id != MS_REFLECTSHIELD && skill_id != ASC_BREAKER ) { @@ -1284,47 +1294,56 @@ int skill_additional_effect (struct block_list* src, struct block_list *bl, uint case WL_JACKFROST: sc_start(src,bl,SC_FREEZE,100,skill_lv,skill_get_time(skill_id,skill_lv)); break; - case RA_WUGBITE: - sc_start(src,bl, SC_BITE, (sd ? pc_checkskill(sd,RA_TOOTHOFWUG)*2 : 0), skill_lv, (skill_get_time(skill_id,skill_lv) + (sd ? pc_checkskill(sd,RA_TOOTHOFWUG)*500 : 0)) ); + case RA_WUGBITE: { + int rate = (50 + 10 * skill_lv) + 2 * ((sd) ? pc_checkskill(sd,RA_TOOTHOFWUG)*2 : skill_get_max(RA_TOOTHOFWUG)) - (status_get_agi(bl) / 4); + if (rate < 50) + rate = 50; + sc_start(src,bl, SC_BITE, rate, skill_lv, (skill_get_time(skill_id,skill_lv) + ((sd) ? pc_checkskill(sd,RA_TOOTHOFWUG)*500 : skill_get_max(RA_TOOTHOFWUG))) ); + } break; case RA_SENSITIVEKEEN: if( rnd()%100 < 8 * skill_lv ) - skill_castend_damage_id(src, bl, RA_WUGBITE, sd ? pc_checkskill(sd, RA_WUGBITE):skill_lv, tick, SD_ANIMATION); + skill_castend_damage_id(src, bl, RA_WUGBITE, ((sd) ? pc_checkskill(sd, RA_WUGBITE) : skill_get_max(RA_WUGBITE)), tick, SD_ANIMATION); break; case RA_FIRINGTRAP: case RA_ICEBOUNDTRAP: sc_start(src,bl, (skill_id == RA_FIRINGTRAP) ? SC_BURNING:SC_FREEZING, 40 + 10 * skill_lv, skill_lv, skill_get_time2(skill_id, skill_lv)); break; case NC_PILEBUNKER: - //Deactivatable Statuses: Kyrie Eleison, Auto Guard, Steel Body, Assumptio, and Millennium Shield - if( rnd()%100 < 5 + 15*skill_lv ) { + if( rnd()%100 < 25 + 15*skill_lv ) { status_change_end(bl, SC_KYRIE, INVALID_TIMER); - status_change_end(bl, SC_AUTOGUARD, INVALID_TIMER); - status_change_end(bl, SC_STEELBODY, INVALID_TIMER); status_change_end(bl, SC_ASSUMPTIO, INVALID_TIMER); + status_change_end(bl, SC_STEELBODY, INVALID_TIMER); + status_change_end(bl, SC_GT_CHANGE, INVALID_TIMER); + status_change_end(bl, SC_GT_REVITALIZE, INVALID_TIMER); + status_change_end(bl, SC_AUTOGUARD, INVALID_TIMER); + status_change_end(bl, SC_REFLECTDAMAGE, INVALID_TIMER); + status_change_end(bl, SC_DEFENDER, INVALID_TIMER); + status_change_end(bl, SC_PRESTIGE, INVALID_TIMER); + status_change_end(bl, SC_BANDING, INVALID_TIMER); status_change_end(bl, SC_MILLENNIUMSHIELD, INVALID_TIMER); } break; case NC_FLAMELAUNCHER: - sc_start4(src,bl, SC_BURNING, 50 + 10 * skill_lv, skill_lv, 1000, src->id, 0, skill_get_time2(skill_id, skill_lv)); + sc_start4(src,bl, SC_BURNING, 20 + 10 * skill_lv, skill_lv, 1000, src->id, 0, skill_get_time2(skill_id, skill_lv)); break; case NC_COLDSLOWER: sc_start(src,bl, SC_FREEZE, 10 * skill_lv, skill_lv, skill_get_time(skill_id, skill_lv)); sc_start(src,bl, SC_FREEZING, 20 + 10 * skill_lv, skill_lv, skill_get_time(skill_id, skill_lv)); break; case NC_POWERSWING: - status_change_start(src,bl,SC_STUN,1000,skill_lv,0,0,0,skill_get_time(skill_id, skill_lv),10); + sc_start(src,bl, SC_STUN, 10, skill_lv, skill_get_time(skill_id, skill_lv)); if( rnd()%100 < 5*skill_lv ) - skill_castend_damage_id(src, bl, NC_AXEBOOMERANG, sd?pc_checkskill(sd, NC_AXEBOOMERANG):1, tick, 1); + skill_castend_damage_id(src, bl, NC_AXEBOOMERANG, ((sd) ? pc_checkskill(sd, NC_AXEBOOMERANG) : skill_get_max(NC_AXEBOOMERANG)), tick, 1); break; case GC_WEAPONCRUSH: skill_castend_nodamage_id(src,bl,skill_id,skill_lv,tick,BCT_ENEMY); break; case LG_SHIELDPRESS: - sc_start(src,bl, SC_STUN, 30 + 8 * skill_lv, skill_lv, skill_get_time(skill_id,skill_lv)); + sc_start(src,bl, SC_STUN, 30 + 8 * skill_lv + (status_get_dex(src) / 10) + (status_get_lv(src) / 4), skill_lv, skill_get_time(skill_id,skill_lv)); break; case LG_PINPOINTATTACK: - rate = 30 + (((5 * (sd?pc_checkskill(sd,LG_PINPOINTATTACK):skill_lv)) + (sstatus->agi + status_get_lv(src))) / 10); + rate = 30 + (((5 * ((sd) ? pc_checkskill(sd,LG_PINPOINTATTACK) : skill_lv)) + (status_get_agi(src) + status_get_lv(src))) / 10); switch( skill_lv ) { case 1: sc_start2(src,bl,SC_BLEEDING,rate,skill_lv,src->id,skill_get_time(skill_id,skill_lv)); @@ -1346,13 +1365,19 @@ int skill_additional_effect (struct block_list* src, struct block_list *bl, uint sc_start(src,bl,SC_STOP,100,skill_lv,skill_get_time(skill_id,skill_lv)); break; case LG_RAYOFGENESIS: // 50% chance to cause Blind on Undead and Demon monsters. - if ( battle_check_undead(tstatus->race, tstatus->def_ele) || tstatus->race == RC_DEMON ) - sc_start(src,bl, SC_BLIND,50, skill_lv, skill_get_time(skill_id,skill_lv)); + if ( battle_check_undead(status_get_race(bl), status_get_element(bl)) || status_get_race(bl) == RC_DEMON ) + sc_start(src,bl, SC_BLIND, 50, skill_lv, skill_get_time(skill_id,skill_lv)); break; case LG_EARTHDRIVE: - skill_break_equip(src,src, EQP_SHIELD, 500, BCT_SELF); + skill_break_equip(src,src, EQP_SHIELD, 100 * skill_lv, BCT_SELF); sc_start(src,bl, SC_EARTHDRIVE, 100, skill_lv, skill_get_time(skill_id, skill_lv)); break; + case LG_HESPERUSLIT: + if( sc && sc->data[SC_BANDING] && sc->data[SC_BANDING]->val2 > 3 ) + status_change_start(src,bl, SC_STUN, 10000, skill_lv, 0, 0, 0, rnd_value(4000, 8000), 2); + if( pc_checkskill(sd,LG_PINPOINTATTACK) > 0 && sc && sc->data[SC_BANDING] && sc->data[SC_BANDING]->val2 > 5 ) + skill_castend_damage_id(src,bl,LG_PINPOINTATTACK,rnd_value(1, pc_checkskill(sd,LG_PINPOINTATTACK)),tick,0); + break; case SR_DRAGONCOMBO: sc_start(src,bl, SC_STUN, 1 + skill_lv, skill_lv, skill_get_time(skill_id, skill_lv)); break; @@ -1366,7 +1391,7 @@ int skill_additional_effect (struct block_list* src, struct block_list *bl, uint sc_start(src,bl, SC_STUN, 100, skill_lv, 1000 + 1000 * (rnd() %3)); break; case SR_GENTLETOUCH_QUIET: // [(Skill Level x 5) + (Caster?s DEX + Caster?s Base Level) / 10] - sc_start(src,bl, SC_SILENCE, 5 * skill_lv + (sstatus->dex + status_get_lv(src)) / 10, skill_lv, skill_get_time(skill_id, skill_lv)); + sc_start(src,bl, SC_SILENCE, 5 * skill_lv + (status_get_dex(src) + status_get_lv(src)) / 10, skill_lv, skill_get_time(skill_id, skill_lv)); break; case SR_EARTHSHAKER: sc_start(src,bl,SC_STUN, 25 + 5 * skill_lv,skill_lv,skill_get_time(skill_id,skill_lv)); @@ -1375,7 +1400,13 @@ int skill_additional_effect (struct block_list* src, struct block_list *bl, uint sc_start(src,bl, SC_FEAR, 5 + 5 * skill_lv, skill_lv, skill_get_time(skill_id, skill_lv)); break; case WM_SOUND_OF_DESTRUCTION: - if( rnd()%100 < 5 + 5 * skill_lv ) { // Temporarly Check Until We Get the Official Formula + if( tsc && ( tsc->data[SC_SWINGDANCE] || tsc->data[SC_SYMPHONYOFLOVER] || tsc->data[SC_MOONLITSERENADE] || + tsc->data[SC_RUSHWINDMILL] || tsc->data[SC_ECHOSONG] || tsc->data[SC_HARMONIZE] || + tsc->data[SC_VOICEOFSIREN] || tsc->data[SC_DEEPSLEEP] || tsc->data[SC_SIRCLEOFNATURE] || + tsc->data[SC_GLOOMYDAY] || tsc->data[SC_GLOOMYDAY_SK] || tsc->data[SC_SONGOFMANA] || + tsc->data[SC_DANCEWITHWUG] || tsc->data[SC_SATURDAYNIGHTFEVER] || tsc->data[SC_LERADSDEW] || + tsc->data[SC_MELODYOFSINK] || tsc->data[SC_BEYONDOFWARCRY] || tsc->data[SC_UNLIMITEDHUMMINGVOICE] ) && + rnd()%100 < 4 * skill_lv + 2 * ((sd) ? pc_checkskill(sd, WM_LESSON) : skill_get_max(WM_LESSON)) + 10 * chorusbonus) { status_change_end(bl, SC_DANCING, INVALID_TIMER); status_change_end(bl, SC_RICHMANKIM, INVALID_TIMER); status_change_end(bl, SC_ETERNALCHAOS, INVALID_TIMER); @@ -1416,29 +1447,29 @@ int skill_additional_effect (struct block_list* src, struct block_list *bl, uint sc_start(src,bl, SC_CRYSTALIZE, rate, skill_lv, skill_get_time2(skill_id, skill_lv)); break; case SO_VARETYR_SPEAR: - sc_start(src,bl, SC_STUN, 5 + 5 * skill_lv, skill_lv, skill_get_time2(skill_id, skill_lv)); + sc_start(src,bl, SC_STUN, 5 * skill_lv, skill_lv, skill_get_time2(skill_id, skill_lv)); break; case GN_SLINGITEM_RANGEMELEEATK: if( sd ) { switch( sd->itemid ) { // Starting SCs here instead of do it in skill_additional_effect to simplify the code. - case 13261: + case ITEMID_COCONUT_BOMB: sc_start(src,bl, SC_STUN, 100, skill_lv, skill_get_time2(GN_SLINGITEM, skill_lv)); sc_start2(src,bl, SC_BLEEDING, 100, skill_lv, src->id, skill_get_time2(GN_SLINGITEM, skill_lv)); break; - case 13262: - sc_start(src,bl, SC_MELON_BOMB, 100, skill_lv, skill_get_time(GN_SLINGITEM, skill_lv)); // Reduces ASPD and moviment speed + case ITEMID_MELON_BOMB: + sc_start(src,bl, SC_MELON_BOMB, 100, skill_lv, skill_get_time(GN_SLINGITEM, skill_lv)); break; - case 13264: - sc_start(src,bl, SC_BANANA_BOMB, 100, skill_lv, skill_get_time(GN_SLINGITEM, skill_lv)); // Reduces LUK ??Needed confirm it, may be it's bugged in kRORE? - sc_start(src,bl, SC_BANANA_BOMB_SITDOWN, 75, skill_lv, skill_get_time(GN_SLINGITEM_RANGEMELEEATK,skill_lv)); // Sitdown for 3 seconds. + case ITEMID_BANANA_BOMB: + sc_start(src,bl, SC_BANANA_BOMB, 100, skill_lv, skill_get_time(GN_SLINGITEM, skill_lv)); + sc_start(src,bl, SC_BANANA_BOMB_SITDOWN, 75, skill_lv, skill_get_time(GN_SLINGITEM_RANGEMELEEATK,skill_lv)); break; } sd->itemid = -1; } break; case GN_HELLS_PLANT_ATK: - sc_start(src,bl, SC_STUN, 5 + 5 * skill_lv, skill_lv, skill_get_time2(skill_id, skill_lv)); - sc_start2(src,bl, SC_BLEEDING, 20 + 10 * skill_lv, skill_lv, src->id,skill_get_time2(skill_id, skill_lv)); + sc_start(src,bl, SC_STUN, 20 + 10 * skill_lv, skill_lv, skill_get_time2(skill_id, skill_lv)); + sc_start2(src,bl, SC_BLEEDING, 5 + 5 * skill_lv, skill_lv, src->id,skill_get_time2(skill_id, skill_lv)); break; case EL_WIND_SLASH: // Non confirmed rate. sc_start2(src,bl, SC_BLEEDING, 25, skill_lv, src->id, skill_get_time(skill_id,skill_lv)); @@ -1937,6 +1968,16 @@ int skill_counter_additional_effect (struct block_list* src, struct block_list * case NPC_GRANDDARKNESS: attack_type |= BF_WEAPON; break; + case LG_HESPERUSLIT: + { + struct status_change *sc = status_get_sc(src); + if( sc && sc->data[SC_FORCEOFVANGUARD] && sc->data[SC_BANDING] && sc->data[SC_BANDING]->val2 > 6 ) { + char i; + for( i = 0; i < sc->data[SC_FORCEOFVANGUARD]->val3; i++ ) + pc_addspiritball(sd, skill_get_time(LG_FORCEOFVANGUARD,1),sc->data[SC_FORCEOFVANGUARD]->val3); + } + } + break; } if(sd && (sd->class_&MAPID_UPPERMASK) == MAPID_STAR_GLADIATOR && @@ -2543,7 +2584,7 @@ int64 skill_attack (int attack_type, struct block_list* src, struct block_list * struct map_session_data *sd, *tsd; int64 damage; int8 rmdamage=0;//magic reflected - int type; + int type, shadow_flag = 0; bool additional_effects = true; if(skill_id > 0 && !skill_lv) return 0; @@ -2850,9 +2891,11 @@ int64 skill_attack (int attack_type, struct block_list* src, struct block_list * ud->attackabletime = tick + type; } + shadow_flag = skill_check_shadowform(bl, damage, dmg.div_); + if( !dmg.amotion ) { //Instant damage - if( !tsc || (!tsc->data[SC_DEVOTION] && skill_id != CR_REFLECTSHIELD) ) + if( (!tsc || (!tsc->data[SC_DEVOTION] && skill_id != CR_REFLECTSHIELD)) && !shadow_flag ) status_fix_damage(src,bl,damage,dmg.dmotion); //Deal damage before knockback to allow stuff like firewall+storm gust combo. if( !status_isdead(bl) && additional_effects ) skill_additional_effect(src,bl,skill_id,skill_lv,dmg.flag,dmg.dmg_lv,tick); @@ -2921,8 +2964,15 @@ int64 skill_attack (int attack_type, struct block_list* src, struct block_list * } //Delayed damage must be dealt after the knockback (it needs to know actual position of target) - if (dmg.amotion) - battle_delay_damage(tick, dmg.amotion,src,bl,dmg.flag,skill_id,skill_lv,damage,dmg.dmg_lv,dmg.dmotion, additional_effects); + if (dmg.amotion) { + if( shadow_flag ) { + if( !status_isdead(bl) && additional_effects ) + skill_additional_effect(src, bl, skill_id, skill_lv, dmg.flag, dmg.dmg_lv, tick); + if( dmg.flag > ATK_BLOCK ) + skill_counter_additional_effect(src, bl, skill_id, skill_lv, dmg.flag, tick); + } else + battle_delay_damage(tick, dmg.amotion,src,bl,dmg.flag,skill_id,skill_lv,damage,dmg.dmg_lv,dmg.dmotion, additional_effects); + } if( tsc && tsc->data[SC_DEVOTION] && skill_id != PA_PRESSURE ) { struct status_change_entry *sce = tsc->data[SC_DEVOTION]; @@ -2990,10 +3040,7 @@ int64 skill_attack (int attack_type, struct block_list* src, struct block_list * } break; case WM_METALICSOUND: - status_zap(bl, 0, damage*100/(100*(110-pc_checkskill(sd,WM_LESSON)*10))); - break; - case SR_TIGERCANNON: - status_zap(bl, 0, damage/10); // 10% of damage dealt + status_zap(bl, 0, damage*100/(100*(110-((sd) ? pc_checkskill(sd,WM_LESSON) : skill_get_max(WM_LESSON))*10))); break; } if( sd ) @@ -3377,8 +3424,22 @@ static int skill_timerskill(int tid, unsigned int tick, int id, intptr_t data) break; // Target not on Map if(src->m != target->m) break; // Different Maps - if(status_isdead(src)) - break; // Caster is Dead + if(status_isdead(src)) { + switch(skl->skill_id) { + case WL_CHAINLIGHTNING_ATK: + case WL_TETRAVORTEX_FIRE: + case WL_TETRAVORTEX_WATER: + case WL_TETRAVORTEX_WIND: + case WL_TETRAVORTEX_GROUND: + case SR_FLASHCOMBO_ATK_STEP1: + case SR_FLASHCOMBO_ATK_STEP2: + case SR_FLASHCOMBO_ATK_STEP3: + case SR_FLASHCOMBO_ATK_STEP4: + break; // Exceptions + default: + continue; // Caster is Dead + } + } if(status_isdead(target) && skl->skill_id != RG_INTIMIDATE && skl->skill_id != WZ_WATERBALL) break; @@ -3430,19 +3491,17 @@ static int skill_timerskill(int tid, unsigned int tick, int id, intptr_t data) struct block_list *nbl = NULL; // Next Target of Chain skill_attack(BF_MAGIC,src,src,target,skl->skill_id,skl->skill_lv,tick,skl->flag); // Hit a Lightning on the current Target skill_toggle_magicpower(src, skl->skill_id); // only the first hit will be amplify - if( skl->type > 1 ) + if( skl->type < (4 + skl->skill_lv - 1) && skl->x < 3 ) { // Remaining Chains Hit - nbl = battle_getenemyarea(src,target->x,target->y,2,BL_CHAR|BL_SKILL,target->id); // Search for a new Target around current one... - if( nbl == NULL && skl->x > 1 ) - { - nbl = target; - skl->x--; - } - else skl->x = 3; + nbl = battle_getenemyarea(src, target->x, target->y, (skl->type>2)?2:3, // After 2 bounces, it will bounce to other targets in 7x7 range. + BL_CHAR|BL_SKILL, target->id); // Search for a new Target around current one... + if( nbl == NULL ) + skl->x++; + else + skl->x = 0; + + skill_addtimerskill(src, tick + 651, (nbl?nbl:target)->id, skl->x, 0, WL_CHAINLIGHTNING_ATK, skl->skill_lv, skl->type + 1, skl->flag); } - - if( nbl ) - skill_addtimerskill(src,tick+status_get_adelay(src),nbl->id,skl->x,0,WL_CHAINLIGHTNING_ATK,skl->skill_lv,skl->type-1,skl->flag); } break; case WL_TETRAVORTEX_FIRE: @@ -3473,7 +3532,7 @@ static int skill_timerskill(int tid, unsigned int tick, int id, intptr_t data) status_change_start(src,target, i, 10000, skl->skill_lv, (i == SC_BURNING ? 1000 : (i == SC_BLEEDING ? src->id : 0)), (i == SC_BURNING ? src->id : 0), - 0, skill_get_time(WL_TETRAVORTEX,skl->skill_lv), 0); + 0, skill_get_time(WL_TETRAVORTEX,skl->skill_lv)+1, 0); } } } @@ -3625,6 +3684,17 @@ int skill_cleartimerskill (struct block_list *src) for(i=0;iskilltimerskill[i]) { + switch(ud->skilltimerskill[i]->skill_id) { + case WL_TETRAVORTEX_FIRE: + case WL_TETRAVORTEX_WATER: + case WL_TETRAVORTEX_WIND: + case WL_TETRAVORTEX_GROUND: + case SR_FLASHCOMBO_ATK_STEP1: + case SR_FLASHCOMBO_ATK_STEP2: + case SR_FLASHCOMBO_ATK_STEP3: + case SR_FLASHCOMBO_ATK_STEP4: + continue; + } delete_timer(ud->skilltimerskill[i]->timer, skill_timerskill); ers_free(skill_timer_ers, ud->skilltimerskill[i]); ud->skilltimerskill[i]=NULL; @@ -3855,7 +3925,6 @@ int skill_castend_damage_id (struct block_list* src, struct block_list *bl, uint **/ case NC_BOOSTKNUCKLE: case NC_PILEBUNKER: - case NC_VULCANARM: case NC_COLDSLOWER: case NC_ARMSCANNON: if (sd) pc_overheat(sd,1); @@ -4059,13 +4128,13 @@ int skill_castend_damage_id (struct block_list* src, struct block_list *bl, uint case WL_JACKFROST: case RA_ARROWSTORM: case RA_WUGDASH: + case NC_VULCANARM: case NC_SELFDESTRUCTION: case NC_AXETORNADO: case GC_ROLLINGCUTTER: case GC_COUNTERSLASH: case LG_MOONSLASHER: case LG_EARTHDRIVE: - case SR_TIGERCANNON: case SR_RAMPAGEBLASTER: case SR_SKYNETBLOW: case SR_WINDMILL: @@ -4146,6 +4215,10 @@ int skill_castend_damage_id (struct block_list* src, struct block_list *bl, uint } if( skill_id == WM_REVERBERATION_MELEE || skill_id == WM_REVERBERATION_MAGIC ) skill_area_temp[1] = 0; + + if( skill_id == NC_VULCANARM ) + if (sd) pc_overheat(sd,1); + // if skill damage should be split among targets, count them //SD_LEVEL -> Forced splash damage for Auto Blitz-Beat -> count targets //special case: Venom Splasher uses a different range for searching than for splashing @@ -4510,7 +4583,7 @@ int skill_castend_damage_id (struct block_list* src, struct block_list *bl, uint case RK_HUNDREDSPEAR: skill_attack(BF_WEAPON,src,src,bl,skill_id,skill_lv,tick,flag); if(rnd()%100 < (10 + 3*skill_lv)) { - int skill_req = sd?pc_checkskill(sd,KN_SPEARBOOMERANG):1; + int skill_req = ((sd) ? pc_checkskill(sd,KN_SPEARBOOMERANG) : skill_get_max(KN_SPEARBOOMERANG)); if( !skill_req ) break; // Spear Boomerang auto cast chance only works if you have Spear Boomerang. skill_blown(src,bl,6,-1,0); @@ -4585,19 +4658,19 @@ int skill_castend_damage_id (struct block_list* src, struct block_list *bl, uint break; case WL_CHAINLIGHTNING: clif_skill_nodamage(src,bl,skill_id,skill_lv,1); - skill_addtimerskill(src,tick + 150,bl->id,3,0,WL_CHAINLIGHTNING_ATK,skill_lv,4+skill_lv,flag); + skill_addtimerskill(src,tick + status_get_amotion(src),bl->id,0,0,WL_CHAINLIGHTNING_ATK,skill_lv,0,flag); break; case WL_DRAINLIFE: { - int heal = (int)skill_attack(skill_get_type(skill_id), src, src, bl, skill_id, skill_lv, tick, flag); - int rate = 70 + 5 * skill_lv; + int heal = (int)skill_attack(skill_get_type(skill_id), src, src, bl, skill_id, skill_lv, tick, flag); + int rate = 70 + 5 * skill_lv; - heal = heal * (5 + 5 * skill_lv) / 100; + heal = heal * (5 + 5 * skill_lv) / 100; - if( bl->type == BL_SKILL ) + if( bl->type == BL_SKILL ) heal = 0; // Don't absorb heal from Ice Walls or other skill units. - if( heal && rnd()%100 < rate ) + if( heal && rnd()%100 < rate ) { status_heal(src, heal, 0, 0); clif_skill_nodamage(NULL, src, AL_HEAL, heal, 1); @@ -4806,8 +4879,7 @@ int skill_castend_damage_id (struct block_list* src, struct block_list *bl, uint case NC_INFRAREDSCAN: if( flag&1 ) { //TODO: Need a confirmation if the other type of hidden status is included to be scanned. [Jobbie] - if( rnd()%100 < 50 ) - sc_start(src,bl, SC_INFRAREDSCAN, 10000, skill_lv, skill_get_time(skill_id, skill_lv)); + sc_start(src,bl, SC_INFRAREDSCAN, 10000, skill_lv, skill_get_time(skill_id, skill_lv)); status_change_end(bl, SC_HIDING, INVALID_TIMER); status_change_end(bl, SC_CLOAKING, INVALID_TIMER); status_change_end(bl, SC_CLOAKINGEXCEED, INVALID_TIMER); // Need confirm it. @@ -4879,9 +4951,14 @@ int skill_castend_damage_id (struct block_list* src, struct block_list *bl, uint status_change_end(bl, SC_RUSHWINDMILL, INVALID_TIMER); status_change_end(bl, SC_ECHOSONG, INVALID_TIMER); status_change_end(bl, SC_HARMONIZE, INVALID_TIMER); + status_change_end(bl, SC_VOICEOFSIREN, INVALID_TIMER); + status_change_end(bl, SC_DEEPSLEEP, INVALID_TIMER); status_change_end(bl, SC_SIRCLEOFNATURE, INVALID_TIMER); - status_change_end(bl, SC_SATURDAYNIGHTFEVER, INVALID_TIMER); + status_change_end(bl, SC_GLOOMYDAY, INVALID_TIMER); + status_change_end(bl, SC_GLOOMYDAY_SK, INVALID_TIMER); + status_change_end(bl, SC_SONGOFMANA, INVALID_TIMER); status_change_end(bl, SC_DANCEWITHWUG, INVALID_TIMER); + status_change_end(bl, SC_SATURDAYNIGHTFEVER, INVALID_TIMER); status_change_end(bl, SC_LERADSDEW, INVALID_TIMER); status_change_end(bl, SC_MELODYOFSINK, INVALID_TIMER); status_change_end(bl, SC_BEYONDOFWARCRY, INVALID_TIMER); @@ -4900,6 +4977,22 @@ int skill_castend_damage_id (struct block_list* src, struct block_list *bl, uint } break; + case SR_TIGERCANNON: + if ( flag&1 ) { + skill_attack(BF_WEAPON, src, src, bl, skill_id, skill_lv, tick, flag); + status_zap(bl, 0, status_get_max_sp(bl) * 10 / 100); + } else if ( sd ) { + int hpcost = 10 + 2 * skill_lv, spcost = 5 + 1 * skill_lv; + if (!status_charge(src, status_get_max_hp(src) * hpcost / 100, status_get_max_sp(src) * spcost / 100)) { + if (sd) + clif_skill_fail(sd, skill_id, USESKILL_FAIL_LEVEL, 0); + 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); + status_zap(src, hpcost, spcost); + } + break; + case SO_POISON_BUSTER: { struct status_change *tsc = status_get_sc(bl); if( tsc && tsc->data[SC_POISON] ) { @@ -5119,6 +5212,7 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, ui struct status_data *sstatus, *tstatus; struct status_change *tsc; struct status_change_entry *tsce; + int chorusbonus = 0; int i = 0; enum sc_type type; @@ -5162,6 +5256,16 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, ui tstatus = status_get_status_data(bl); sstatus = status_get_status_data(src); + // Minstrel/Wanderer number check for chorus skills. + // Bonus remains 0 unless 3 or more Minstrels/Wanderers are in the party. + if( sd && sd->status.party_id ) { + chorusbonus = party_foreachsamemap(party_sub_count_class, sd, MAPID_THIRDMASK, MAPID_MINSTRELWANDERER); + if( chorusbonus > 7 ) + chorusbonus = 5; // Maximum effect possible from 7 or more Minstrels/Wanderers + else if( chorusbonus > 2 ) + chorusbonus = chorusbonus - 2; // Effect bonus from additional Minstrels/Wanderers if not above the max possible. + } + //Check for undead skills that convert a no-damage skill into a damage one. [Skotlex] switch (skill_id) { case HLIF_HEAL: //[orn] @@ -5744,7 +5848,7 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, ui case SO_STRIKING: if (sd) { - int bonus = 25 + 10 * skill_lv; + int bonus = 8 + 2 * skill_lv; bonus += (pc_checkskill(sd, SA_FLAMELAUNCHER)+pc_checkskill(sd, SA_FROSTWEAPON)+pc_checkskill(sd, SA_LIGHTNINGLOADER)+pc_checkskill(sd, SA_SEISMICWEAPON))*5; clif_skill_nodamage( src, bl, skill_id, skill_lv, @@ -8070,14 +8174,14 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, ui int atkbonus = 7 * party_foreachsamemap(skill_area_sub,sd,skill_get_splash(skill_id,skill_lv),src,skill_id,skill_lv,tick,BCT_PARTY,skill_area_sub_count); if( flag&1 ) { if( src == bl ) - sc_start2(src,bl,type,100,atkbonus,10*(sd?pc_checkskill(sd,RK_RUNEMASTERY):10),skill_get_time(skill_id,skill_lv)); + sc_start2(src,bl,type,100,atkbonus,10*((sd) ? pc_checkskill(sd,RK_RUNEMASTERY) : skill_get_max(RK_RUNEMASTERY)),skill_get_time(skill_id,skill_lv)); else sc_start(src,bl,type,100,atkbonus / 4,skill_get_time(skill_id,skill_lv)); } else if( sd && pc_checkskill(sd,RK_RUNEMASTERY) >= 5 ) { if( sd->status.party_id ) party_foreachsamemap(skill_area_sub,sd,skill_get_splash(skill_id,skill_lv),src,skill_id,skill_lv,tick,flag|BCT_PARTY|1,skill_castend_nodamage_id); else - sc_start2(src,bl,type,100,7,10*(sd?pc_checkskill(sd,RK_RUNEMASTERY):10),skill_get_time(skill_id,skill_lv)); + sc_start2(src,bl,type,100,7,10*((sd) ? pc_checkskill(sd,RK_RUNEMASTERY) : skill_get_max(RK_RUNEMASTERY)),skill_get_time(skill_id,skill_lv)); clif_skill_nodamage(src,bl,skill_id,1,1); } } @@ -8238,8 +8342,8 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, ui case AB_CLEMENTIA: case AB_CANTO: { - int bless_lv = pc_checkskill(sd,AL_BLESSING) + ((sd ? sd->status.job_level : 50) / 10); - int agi_lv = pc_checkskill(sd,AL_INCAGI) + ((sd ? sd->status.job_level : 50) / 10); + int bless_lv = ((sd) ? pc_checkskill(sd,AL_BLESSING) : skill_get_max(AL_BLESSING)) + (((sd) ? sd->status.job_level : 50) / 10); + int agi_lv = ((sd) ? pc_checkskill(sd,AL_INCAGI) : skill_get_max(AL_INCAGI)) + (((sd) ? sd->status.job_level : 50) / 10); if( sd == NULL || sd->status.party_id == 0 || flag&1 ) clif_skill_nodamage(bl, bl, skill_id, skill_lv, sc_start(src,bl,type,100, (skill_id == AB_CLEMENTIA)? bless_lv : (skill_id == AB_CANTO)? agi_lv : skill_lv, skill_get_time(skill_id,skill_lv))); @@ -8507,7 +8611,6 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, ui break; case WL_MARSHOFABYSS: - // Should marsh of abyss still apply half reduction to players after the 28/10 patch? [LimitLine] clif_skill_nodamage(src, bl, skill_id, skill_lv, sc_start4(src,bl, type, 100, skill_lv, status_get_int(src), sd ? sd->status.job_level : 50, 0, skill_get_time(skill_id, skill_lv))); @@ -8526,7 +8629,7 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, ui else status_change_start(src,bl,SC_STONE,10000,skill_lv,0,0,1000,skill_get_time(skill_id, skill_lv),2); } else { - int rate = 40 + 8 * skill_lv + ( sd? sd->status.job_level : 50 ) / 4; + int rate = 45 + 5 * skill_lv + ( sd? sd->status.job_level : 50 ) / 4; // IroWiki says Rate should be reduced by target stats, but currently unknown if( rnd()%100 < rate ) { // Success on First Target if( !tsc->data[SC_STONE] ) @@ -8694,13 +8797,12 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, ui case NC_REPAIR: if( sd ) { - int heal; - if( dstsd && pc_ismadogear(dstsd) ) - { - heal = dstsd->status.max_hp * (3+3*skill_lv) / 100; + int heal = (skill_lv == 5 ? 23 : skill_lv == 4 ? 17 : skill_lv == 3 ? 13:skill_lv == 2 ? 7 : 4) / 100; + if( dstsd && pc_ismadogear(dstsd) ) { + heal *= dstsd->status.max_hp; status_heal(bl,heal,0,2); } else { - heal = sd->status.max_hp * (3+3*skill_lv) / 100; + heal *= sd->status.max_hp; status_heal(src,heal,0,2); } @@ -8793,7 +8895,8 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, ui case LG_TRAMPLE: clif_skill_damage(src,bl,tick, status_get_amotion(src), 0, -30000, 1, skill_id, skill_lv, 6); - map_foreachinrange(skill_destroy_trap,bl,skill_get_splash(skill_id,skill_lv),BL_SKILL,tick); + if (rnd()%100 < (25 + 25 * skill_lv)) + map_foreachinrange(skill_destroy_trap,bl,skill_get_splash(skill_id,skill_lv),BL_SKILL,tick); break; case LG_REFLECTDAMAGE: @@ -8810,7 +8913,10 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, ui else if( sd ) { int opt = rnd()%3 + 1; int val = 0, splash = 0; - struct item_data *shield_data = sd->inventory_data[sd->equip_index[EQI_HAND_L]]; + int index = sd->equip_index[EQI_HAND_L]; + struct item_data *shield_data; + if( index >= 0 && sd->inventory_data[index] && sd->inventory_data[index]->type == IT_ARMOR ) + shield_data = sd->inventory_data[index]; if( !shield_data || shield_data->type != IT_ARMOR ) { // No shield? clif_skill_fail(sd, skill_id, USESKILL_FAIL_LEVEL, 0); break; @@ -8999,7 +9105,7 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, ui break; } - heal = 120 * skill_lv + status_get_max_hp(bl) * (2 + skill_lv) / 100; + heal = 120 * skill_lv + status_get_max_hp(bl); status_heal(bl, heal, 0, 0); if( (tsc && tsc->opt1) && (rnd()%100 < ((skill_lv * 5) + (status_get_dex(src) + status_get_lv(src)) / 4) - (1 + (rnd() % 10))) ) @@ -9011,8 +9117,6 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, ui status_change_end(bl, SC_SILENCE, INVALID_TIMER); status_change_end(bl, SC_BLIND, INVALID_TIMER); status_change_end(bl, SC_HALLUCINATION, INVALID_TIMER); - status_change_end(bl, SC_BURNING, INVALID_TIMER); - status_change_end(bl, SC_FREEZING, INVALID_TIMER); } clif_skill_nodamage(src,bl,skill_id,skill_lv,1); @@ -9023,15 +9127,6 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, ui clif_skill_nodamage(src,bl,skill_id,skill_lv, sc_start2(src,bl,type,100,skill_lv,src->id,skill_get_time(skill_id,skill_lv))); break; - case WA_SWING_DANCE: - case WA_MOONLIT_SERENADE: - if( sd == NULL || sd->status.party_id == 0 || (flag & 1) ) - sc_start(src,bl,type,100,skill_lv,skill_get_time(skill_id,skill_lv)); - else if( sd ) { // Only shows effects on caster. - clif_skill_nodamage(src,bl,skill_id,skill_lv,1); - party_foreachsamemap(skill_area_sub, sd, skill_get_splash(skill_id, skill_lv), src, skill_id, skill_lv, tick, flag|BCT_PARTY|1, skill_castend_nodamage_id); - } - break; case SR_FLASHCOMBO: if( sd ) sd->ud.attackabletime = sd->canuseitem_tick = sd->ud.canact_tick; @@ -9041,13 +9136,16 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, ui skill_addtimerskill(src,tick + 500 * (i - SR_FLASHCOMBO_ATK_STEP1),bl->id,0,0,i,skill_lv,BF_WEAPON,flag|SD_LEVEL); break; + case WA_SWING_DANCE: + case WA_MOONLIT_SERENADE: case WA_SYMPHONY_OF_LOVER: case MI_RUSH_WINDMILL: case MI_ECHOSONG: if( sd == NULL || sd->status.party_id == 0 || (flag & 1) ) - sc_start4(src,bl,type,100,skill_lv,6*skill_lv,(sd?pc_checkskill(sd,WM_LESSON):0),(sd?sd->status.job_level:0),skill_get_time(skill_id,skill_lv)); + sc_start2(src,bl,type,100,skill_lv,((sd) ? pc_checkskill(sd,WM_LESSON) : skill_get_max(WM_LESSON)),skill_get_time(skill_id,skill_lv)); else if( sd ) { // Only shows effects on caster. clif_skill_nodamage(src,bl,skill_id,skill_lv,1); + sc_start2(src,bl,type,100,skill_lv,pc_checkskill(sd,WM_LESSON),skill_get_time(skill_id,skill_lv)); party_foreachsamemap(skill_area_sub, sd, skill_get_splash(skill_id, skill_lv), src, skill_id, skill_lv, tick, flag|BCT_PARTY|1, skill_castend_nodamage_id); } break; @@ -9068,7 +9166,7 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, ui if( heal <= 0 ) heal = 1; tstatus->hp = heal; - tstatus->sp -= tstatus->sp * ( 120 - 20 * skill_lv ) / 100; + tstatus->sp -= tstatus->sp * ( 60 - 10 * skill_lv ) / 100; clif_skill_nodamage(src,bl,skill_id,skill_lv,1); pc_revive((TBL_PC*)bl,heal,0); clif_resurrection(bl,1); @@ -9082,7 +9180,7 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, ui { int rate = 100; if( skill_id != WM_SIRCLEOFNATURE ) { - rate = 6 * skill_lv + (sd ? pc_checkskill(sd,WM_LESSON)*2 + sd->status.job_level/2 : 0 ); + rate = 6 * skill_lv + ((sd) ? pc_checkskill(sd,WM_LESSON)*2 + sd->status.job_level/2 : skill_get_max(WM_LESSON)); flag &= ~BCT_SELF; } if( flag&1 ) { @@ -9133,15 +9231,14 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, ui case WM_SONG_OF_MANA: case WM_DANCE_WITH_WUG: case WM_LERADS_DEW: + case WM_UNLIMITED_HUMMING_VOICE: if( flag&1 ) { // These affect to to all party members near the caster. struct status_change *sc = status_get_sc(src); if( sc && sc->data[type] ) { - sc_start2(src,bl,type,100,skill_lv,sc->data[type]->val2,skill_get_time(skill_id,skill_lv)); + sc_start2(src,bl,type,100,skill_lv,chorusbonus,skill_get_time(skill_id,skill_lv)); } } else if( sd ) { - uint16 lv = skill_lv; - int count = skill_check_pc_partner(sd,skill_id,&lv,skill_get_splash(skill_id,skill_lv),1); - if( sc_start2(src,bl,type,100,skill_lv,count,skill_get_time(skill_id,skill_lv)) ) + if( sc_start2(src,bl,type,100,skill_lv,chorusbonus,skill_get_time(skill_id,skill_lv)) ) party_foreachsamemap(skill_area_sub,sd,skill_get_splash(skill_id,skill_lv),src,skill_id,skill_lv,tick,flag|BCT_PARTY|1,skill_castend_nodamage_id); clif_skill_nodamage(src,bl,skill_id,skill_lv,1); } @@ -9149,14 +9246,13 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, ui case WM_MELODYOFSINK: case WM_BEYOND_OF_WARCRY: - case WM_UNLIMITED_HUMMING_VOICE: if( flag&1 ) { - sc_start2(src,bl,type,100,skill_lv,skill_area_temp[0],skill_get_time(skill_id,skill_lv)); + sc_start2(src,bl,type,100,skill_lv,chorusbonus,skill_get_time(skill_id,skill_lv)); } else { // These affect to all targets arround the caster. - uint16 lv = skill_lv; - skill_area_temp[0] = (sd) ? skill_check_pc_partner(sd,skill_id,&lv,skill_get_splash(skill_id,skill_lv),1) : 50; // 50% chance in non BL_PC (clones). - map_foreachinrange(skill_area_sub, src, skill_get_splash(skill_id,skill_lv),BL_PC, src, skill_id, skill_lv, tick, flag|BCT_ENEMY|1, skill_castend_nodamage_id); - clif_skill_nodamage(src,bl,skill_id,skill_lv,1); + if( rnd()%100 < 15 + 5 * skill_lv * 5 * chorusbonus ) { + map_foreachinrange(skill_area_sub, src, skill_get_splash(skill_id,skill_lv),BL_PC, src, skill_id, skill_lv, tick, flag|BCT_ENEMY|1, skill_castend_nodamage_id); + clif_skill_nodamage(src,bl,skill_id,skill_lv,1); + } } break; @@ -9298,7 +9394,7 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, ui case WM_LULLABY_DEEPSLEEP: if( flag&1 ){ //[(Skill Level x 4) + (Voice Lessons Skill Level x 2) + (Caster's Base Level / 15) + (Caster's Job Level / 5)] % - int rate = (4 * skill_lv) + ( (sd) ? pc_checkskill(sd,WM_LESSON)*2 + sd->status.job_level/5 : 0 ) + status_get_lv(src) / 15; + int rate = (4 * skill_lv) + ((sd) ? pc_checkskill(sd,WM_LESSON)*2 + sd->status.job_level/5 : skill_get_max(WM_LESSON)) + status_get_lv(src) / 15; if( bl != src ) sc_start(src,bl,type,rate,skill_lv,skill_get_time(skill_id,skill_lv)); }else { @@ -9419,8 +9515,11 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, ui break; case GN_MANDRAGORA: if( flag&1 ) { + int rate = (25 + 10 * skill_lv) - ((tstatus->vit + tstatus->luk) / 5); + if (rate < 10) + rate = 10; if ( clif_skill_nodamage(bl, src, skill_id, skill_lv, - sc_start(src,bl, type, 25 + 10 * skill_lv, skill_lv, skill_get_time(skill_id, skill_lv))) ) + sc_start(src,bl, type, rate, skill_lv, skill_get_time(skill_id, skill_lv))) ) status_zap(bl, 0, status_get_max_sp(bl) * (25 + 5 * skill_lv) / 100); } else map_foreachinrange(skill_area_sub, bl, skill_get_splash(skill_id, skill_lv), BL_CHAR, @@ -9438,7 +9537,7 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, ui sd->itemid = ammo_id; if( itemdb_is_GNbomb(ammo_id) ) { if(battle_check_target(src,bl,BCT_ENEMY) > 0) {// Only attack if the target is an enemy. - if( ammo_id == 13263 ) + if( ammo_id == ITEMID_PINEAPPLE_BOMB ) map_foreachincell(skill_area_sub,bl->m,bl->x,bl->y,BL_CHAR,src,GN_SLINGITEM_RANGEMELEEATK,skill_lv,tick,flag|BCT_ENEMY|1,skill_castend_damage_id); else skill_attack(BF_WEAPON,src,src,bl,GN_SLINGITEM_RANGEMELEEATK,skill_lv,tick,flag); @@ -10857,7 +10956,6 @@ int skill_castend_pos2(struct block_list* src, int x, int y, uint16 skill_id, ui } clif_skill_damage(src,src,tick,status_get_amotion(src),0,-30000,1,skill_id,skill_lv,6); skill_unitsetting(src, skill_id, skill_lv, x, y, flag); - //status_change_end(src,SC_POISONINGWEAPON,INVALID_TIMER); // 08/31/2011 - When using poison smoke, you no longer lose the poisoning weapon effect. break; /** * Arch Bishop @@ -10923,7 +11021,7 @@ int skill_castend_pos2(struct block_list* src, int x, int y, uint16 skill_id, ui case NC_SILVERSNIPER: { - int class_ = 2042; + int class_ = MOBID_SILVERSNIPER; struct mob_data *md; md = mob_once_spawn_sub(src, src->m, x, y, status_get_name(src), class_, "", SZ_SMALL, AI_NONE); @@ -11020,7 +11118,7 @@ int skill_castend_pos2(struct block_list* src, int x, int y, uint16 skill_id, ui map_foreachinarea(skill_area_sub, src->m, ud->skillunit[i]->unit->bl.x - 3, ud->skillunit[i]->unit->bl.y - 3, ud->skillunit[i]->unit->bl.x + 3, ud->skillunit[i]->unit->bl.y + 3, BL_CHAR, - src, CR_ACIDDEMONSTRATION, sd ? pc_checkskill(sd, CR_ACIDDEMONSTRATION) : skill_lv, tick, flag|BCT_ENEMY|1|SD_LEVEL, skill_castend_damage_id); + src, CR_ACIDDEMONSTRATION, ((sd) ? pc_checkskill(sd, CR_ACIDDEMONSTRATION) : skill_get_max(CR_ACIDDEMONSTRATION)), tick, flag|BCT_ENEMY|1|SD_LEVEL, skill_castend_damage_id); skill_delunit(ud->skillunit[i]->unit); break; default: @@ -11781,7 +11879,7 @@ struct skill_unit_group* skill_unitsetting (struct block_list *src, uint16 skill val1 = 1 + skill_lv; break; case GN_WALLOFTHORN: - val1 = 1000 * skill_lv; // Need official value. [LimitLine] + val1 = 2000 + 2000 * skill_lv; break; default: if (group->state.song_dance&0x1) @@ -12288,12 +12386,9 @@ int skill_unit_onplace_timer (struct skill_unit *src, struct block_list *bl, uns if( status_get_mode(bl)&MD_BOSS ) break; if( status_change_start(ss, bl,type,10000,sg->skill_lv,sg->group_id,0,0,skill_get_time2(sg->skill_id, sg->skill_lv), 8) ) { - map_moveblock(bl, src->bl.x, src->bl.y, tick); clif_fixpos(bl); - } - map_foreachinrange(skill_trap_splash, &src->bl, skill_get_splash(sg->skill_id, sg->skill_lv), sg->bl_flag, &src->bl, tick); sg->unit_id = UNT_USED_TRAPS; //Changed ID so it does not invoke a for each in area again. } @@ -12619,9 +12714,8 @@ int skill_unit_onplace_timer (struct skill_unit *src, struct block_list *bl, uns break; case 3: skill_attack(skill_get_type(CR_ACIDDEMONSTRATION), ss, &src->bl, bl, - CR_ACIDDEMONSTRATION, sd ? pc_checkskill(sd, CR_ACIDDEMONSTRATION) : sg->skill_lv, tick, 0); + CR_ACIDDEMONSTRATION, ((sd) ? pc_checkskill(sd, CR_ACIDDEMONSTRATION) : skill_get_max(CR_ACIDDEMONSTRATION)), tick, 0); break; - } } break; @@ -12649,10 +12743,10 @@ int skill_unit_onplace_timer (struct skill_unit *src, struct block_list *bl, uns case UNT_WARMER: if( bl->type == BL_PC && !battle_check_undead(tstatus->race, tstatus->def_ele) && tstatus->race != RC_DEMON ) { - int hp = 125 * sg->skill_lv; // Officially is 125 * skill_lv. + int hp = tstatus->max_hp * sg->skill_lv / 100; struct status_change *ssc = status_get_sc(ss); if( ssc && ssc->data[SC_HEATER_OPTION] ) - hp += hp * ssc->data[SC_HEATER_OPTION]->val3 / 100; + hp *= 3 / 100; if( tstatus->hp != tstatus->max_hp ) clif_skill_nodamage(&src->bl, bl, AL_HEAL, hp, 0); if( tsc && tsc->data[SC_AKAITSUKI] && hp ) @@ -14419,7 +14513,7 @@ struct skill_condition skill_get_requirement(struct map_session_data* sd, uint16 if( sc->data[SC__LAZINESS] ) req.sp += req.sp + sc->data[SC__LAZINESS]->val1 * 10; if (sc->data[SC_UNLIMITEDHUMMINGVOICE]) - req.sp += req.sp * sc->data[SC_UNLIMITEDHUMMINGVOICE]->val2 / 100; + req.sp += req.sp * sc->data[SC_UNLIMITEDHUMMINGVOICE]->val3 / 100; if( sc->data[SC_RECOGNIZEDSPELL] ) req.sp += req.sp / 4; if( sc->data[SC_OFFERTORIUM]) @@ -14833,6 +14927,8 @@ int skill_vfcastfix (struct block_list *bl, double time, uint16 skill_id, uint16 fixed = 0; if( sc->data[SC_GUST_OPTION] || sc->data[SC_BLAST_OPTION] || sc->data[SC_WILD_STORM_OPTION] ) fixed -= 1000; + if (sc->data[SC_DANCEWITHWUG]) + fixed -= fixed * sc->data[SC_DANCEWITHWUG]->val4 / 100; } if( sd && !(skill_get_castnodex(skill_id, skill_lv)&4) ){ @@ -15980,6 +16076,41 @@ bool skill_check_cloaking(struct block_list *bl, struct status_change_entry *sce return wall; } + +int skill_check_shadowform(struct block_list *bl, int64 damage, int hit) { + struct status_change *sc; + struct block_list *src; + + nullpo_retr(0, bl); + + sc = status_get_sc(bl); + + if( sc && sc->data[SC__SHADOWFORM] && damage ) { + src = map_id2bl(sc->data[SC__SHADOWFORM]->val2); + + if( !src || src->m != bl->m ) { + status_change_end(bl, SC__SHADOWFORM, INVALID_TIMER); + return 0; + } + + if( src && (status_isdead(src) || !battle_check_target(bl,src,BCT_ENEMY)) ) { + if( src->type == BL_PC ) + ((TBL_PC*)src)->shadowform_id = 0; + status_change_end(bl, SC__SHADOWFORM, INVALID_TIMER); + return 0; + } + + status_damage(bl, src, damage, 0, clif_damage(src, src, gettick(), 500, 500, damage, hit, (hit > 1 ? 8 : 0), 0), 0); + if( (--sc->data[SC__SHADOWFORM]->val3) <= 0 ) { + status_change_end(bl, SC__SHADOWFORM, INVALID_TIMER); + if( src->type == BL_PC ) + ((TBL_PC*)src)->shadowform_id = 0; + } + return 1; + } + return 0; +} + bool skill_check_camouflage(struct block_list *bl, struct status_change_entry *sce) { bool wall = true; @@ -17596,8 +17727,7 @@ int skill_poisoningweapon( struct map_session_data *sd, int nameid) { clif_skill_fail(sd,GC_POISONINGWEAPON,USESKILL_FAIL_LEVEL,0); return 0; } - switch( nameid ) - { // t_lv used to take duration from skill_get_time2 + switch( nameid ) { // t_lv used to take duration from skill_get_time2 case ITEMID_PARALYSE: type = SC_PARALYSE; break; case ITEMID_PYREXIA: type = SC_PYREXIA; break; case ITEMID_DEATHHURT: type = SC_DEATHHURT; break; @@ -17649,8 +17779,7 @@ int skill_magicdecoy(struct map_session_data *sd, int nameid) { nullpo_ret(sd); skill = sd->menuskill_val; - if( nameid <= 0 || !itemdb_is_element(nameid) || (i = pc_search_inventory(sd,nameid)) < 0 || !skill || pc_delitem(sd,i,1,0,0,LOG_TYPE_CONSUME) ) - { + if( nameid <= 0 || !itemdb_is_element(nameid) || (i = pc_search_inventory(sd,nameid)) < 0 || !skill || pc_delitem(sd,i,1,0,0,LOG_TYPE_CONSUME) ) { clif_skill_fail(sd,NC_MAGICDECOY,USESKILL_FAIL_LEVEL,0); return 0; } @@ -17663,10 +17792,13 @@ int skill_magicdecoy(struct map_session_data *sd, int nameid) { // Item picked decides the mob class switch(nameid) { - case ITEMID_BLOODY_RED: class_ = 2043; break; - case ITEMID_CRYSTAL_BLUE: class_ = 2044; break; - case ITEMID_WIND_OF_VERDURE: class_ = 2046; break; - default: class_ = 2045; break; + case ITEMID_SCARLET_PTS: class_ = MOBID_MAGICDECOY_FIRE; break; + case ITEMID_INDIGO_PTS: class_ = MOBID_MAGICDECOY_WATER; break; + case ITEMID_YELLOW_WISH_PTS: class_ = MOBID_MAGICDECOY_WIND; break; + case ITEMID_LIME_GREEN_PTS: class_ = MOBID_MAGICDECOY_EARTH; break; + default: + clif_skill_fail(sd,NC_MAGICDECOY,USESKILL_FAIL_LEVEL,0); + return 0; } md = mob_once_spawn_sub(&sd->bl, sd->bl.m, x, y, sd->status.name, class_, "", SZ_SMALL, AI_NONE); @@ -17698,8 +17830,7 @@ int skill_spellbook (struct map_session_data *sd, int nameid) { status_change_end(&sd->bl, SC_STOP, INVALID_TIMER); for(i=SC_SPELLBOOK1; i <= SC_MAXSPELLBOOK; i++) if( sc && !sc->data[i] ) break; - if( i > SC_MAXSPELLBOOK ) - { + if( i > SC_MAXSPELLBOOK ) { clif_skill_fail(sd, WL_READING_SB, USESKILL_FAIL_SPELLBOOK_READING, 0); return 0; } @@ -17707,8 +17838,7 @@ int skill_spellbook (struct map_session_data *sd, int nameid) { ARR_FIND(0,MAX_SKILL_SPELLBOOK_DB,i,skill_spellbook_db[i].nameid == nameid); // Search for information of this item if( i == MAX_SKILL_SPELLBOOK_DB ) return 0; - if( !pc_checkskill(sd, (skill_id = skill_spellbook_db[i].skill_id)) ) - { // User don't know the skill + if( !pc_checkskill(sd, (skill_id = skill_spellbook_db[i].skill_id)) ) { // User don't know the skill sc_start(&sd->bl,&sd->bl, SC_SLEEP, 100, 1, skill_get_time(WL_READING_SB, pc_checkskill(sd,WL_READING_SB))); clif_skill_fail(sd, WL_READING_SB, USESKILL_FAIL_SPELLBOOK_DIFFICULT_SLEEP, 0); return 0; @@ -17717,9 +17847,8 @@ int skill_spellbook (struct map_session_data *sd, int nameid) { max_preserve = 4 * pc_checkskill(sd, WL_FREEZE_SP) + status_get_int(&sd->bl) / 10 + sd->status.base_level / 10; point = skill_spellbook_db[i].point; - if( sc && sc->data[SC_READING_SB] ){ - if( (sc->data[SC_READING_SB]->val2 + point) > max_preserve ) - { + if( sc && sc->data[SC_READING_SB] ) { + if( (sc->data[SC_READING_SB]->val2 + point) > max_preserve ) { clif_skill_fail(sd, WL_READING_SB, USESKILL_FAIL_SPELLBOOK_PRESERVATION_POINT, 0); return 0; } @@ -17730,7 +17859,7 @@ int skill_spellbook (struct map_session_data *sd, int nameid) { break; } } - }else{ + } else { sc_start2(&sd->bl,&sd->bl, SC_READING_SB, 100, 0, point, INVALID_TIMER); sc_start4(&sd->bl,&sd->bl, SC_MAXSPELLBOOK, 100, skill_id, pc_checkskill(sd,skill_id), point, 0, INVALID_TIMER); } @@ -17754,7 +17883,7 @@ int skill_select_menu(struct map_session_data *sd,uint16 skill_id) { lv = (aslvl + 1) / 2; // The level the skill will be autocasted lv = min(lv,sd->status.skill[skill_id].lv); - prob = (aslvl == 10) ? 15 : (32 - 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)); return 0; } @@ -17784,12 +17913,12 @@ int skill_elementalanalysis(struct map_session_data* sd, int n, uint16 skill_lv, } switch( nameid ) { - // Level 1 + // Level 1 case ITEMID_FLAME_HEART: product = ITEMID_BLOODY_RED; break; case ITEMID_MISTIC_FROZEN: product = ITEMID_CRYSTAL_BLUE; break; case ITEMID_ROUGH_WIND: product = ITEMID_WIND_OF_VERDURE; break; case ITEMID_GREAT_NATURE: product = ITEMID_YELLOW_LIVE; break; - // Level 2 + // Level 2 case ITEMID_BLOODY_RED: product = ITEMID_FLAME_HEART; break; case ITEMID_CRYSTAL_BLUE: product = ITEMID_MISTIC_FROZEN; break; case ITEMID_WIND_OF_VERDURE: product = ITEMID_ROUGH_WIND; break; @@ -17809,7 +17938,6 @@ int skill_elementalanalysis(struct map_session_data* sd, int n, uint16 skill_lv, return 1; } - memset(&tmp_item,0,sizeof(tmp_item)); tmp_item.nameid = product; tmp_item.amount = add_amount; diff --git a/src/map/skill.h b/src/map/skill.h index f26b571bca..ada0ee56a8 100644 --- a/src/map/skill.h +++ b/src/map/skill.h @@ -1966,6 +1966,7 @@ struct s_skill_magicmushroom_db { }; extern struct s_skill_magicmushroom_db skill_magicmushroom_db[MAX_SKILL_MAGICMUSHROOM_DB]; int skill_maelstrom_suction(struct block_list *bl, va_list ap); +int skill_check_shadowform(struct block_list *bl, int64 damage, int hit); /** * Ranger **/ diff --git a/src/map/status.c b/src/map/status.c index 65f8b184f0..b3e1377d2a 100644 --- a/src/map/status.c +++ b/src/map/status.c @@ -609,8 +609,8 @@ void initChangeTables(void) /* Warlock */ add_sc( WL_WHITEIMPRISON , SC_WHITEIMPRISON ); set_sc_with_vfx( WL_FROSTMISTY , SC_FREEZING , SI_FROSTMISTY , SCB_ASPD|SCB_SPEED|SCB_DEF|SCB_DEF2 ); - set_sc( WL_MARSHOFABYSS , SC_MARSHOFABYSS , SI_MARSHOFABYSS , SCB_SPEED|SCB_FLEE|SCB_DEF|SCB_MDEF ); - set_sc(WL_RECOGNIZEDSPELL , SC_RECOGNIZEDSPELL , SI_RECOGNIZEDSPELL , SCB_MATK); + set_sc( WL_MARSHOFABYSS , SC_MARSHOFABYSS , SI_MARSHOFABYSS , SCB_AGI|SCB_DEX|SCB_SPEED ); + set_sc( WL_RECOGNIZEDSPELL , SC_RECOGNIZEDSPELL , SI_RECOGNIZEDSPELL , SCB_MATK); set_sc( WL_STASIS , SC_STASIS , SI_STASIS , SCB_NONE ); set_sc( WL_TELEKINESIS_INTENSE , SC_TELEKINESIS_INTENSE, SI_TELEKINESIS_INTENSE, SCB_MATK ); @@ -618,7 +618,7 @@ void initChangeTables(void) set_sc( RA_FEARBREEZE , SC_FEARBREEZE , SI_FEARBREEZE , SCB_NONE ); set_sc( RA_ELECTRICSHOCKER , SC_ELECTRICSHOCKER , SI_ELECTRICSHOCKER , SCB_NONE ); set_sc( RA_WUGDASH , SC_WUGDASH , SI_WUGDASH , SCB_SPEED ); - set_sc( RA_CAMOUFLAGE , SC_CAMOUFLAGE , SI_CAMOUFLAGE , SCB_SPEED ); + set_sc( RA_CAMOUFLAGE , SC_CAMOUFLAGE , SI_CAMOUFLAGE , SCB_WATK|SCB_CRI|SCB_DEF|SCB_SPEED ); add_sc( RA_MAGENTATRAP , SC_ELEMENTALCHANGE ); add_sc( RA_COBALTTRAP , SC_ELEMENTALCHANGE ); add_sc( RA_MAIZETRAP , SC_ELEMENTALCHANGE ); @@ -658,7 +658,7 @@ void initChangeTables(void) set_sc( SC_INVISIBILITY , SC__INVISIBILITY , SI_INVISIBILITY , SCB_ASPD|SCB_CRI|SCB_ATK_ELE ); set_sc( SC_DEADLYINFECT , SC__DEADLYINFECT , SI_DEADLYINFECT , SCB_NONE ); set_sc( SC_ENERVATION , SC__ENERVATION , SI_ENERVATION , SCB_BATK ); - set_sc( SC_GROOMY , SC__GROOMY , SI_GROOMY , SCB_ASPD|SCB_HIT|SCB_SPEED ); + set_sc( SC_GROOMY , SC__GROOMY , SI_GROOMY , SCB_ASPD|SCB_HIT ); set_sc( SC_IGNORANCE , SC__IGNORANCE , SI_IGNORANCE , SCB_NONE ); set_sc( SC_LAZINESS , SC__LAZINESS , SI_LAZINESS , SCB_FLEE ); set_sc( SC_UNLUCKY , SC__UNLUCKY , SI_UNLUCKY , SCB_CRI|SCB_FLEE2 ); @@ -666,7 +666,7 @@ void initChangeTables(void) set_sc( SC_STRIPACCESSARY , SC__STRIPACCESSORY , SI_STRIPACCESSARY , SCB_DEX|SCB_INT|SCB_LUK ); set_sc_with_vfx( SC_MANHOLE , SC__MANHOLE , SI_MANHOLE , SCB_NONE ); add_sc( SC_CHAOSPANIC , SC_CONFUSION ); - add_sc( SC_BLOODYLUST , SC_BERSERK ); + set_sc( SC_BLOODYLUST , SC_BERSERK , SI_BLOODYLUST , SCB_DEF|SCB_DEF2|SCB_BATK|SCB_WATK); /* Sura */ add_sc( SR_DRAGONCOMBO , SC_STUN ); @@ -676,7 +676,7 @@ void initChangeTables(void) set_sc( SR_LIGHTNINGWALK , SC_LIGHTNINGWALK , SI_LIGHTNINGWALK , SCB_NONE ); set_sc( SR_RAISINGDRAGON , SC_RAISINGDRAGON , SI_RAISINGDRAGON , SCB_REGEN|SCB_MAXHP|SCB_MAXSP ); set_sc( SR_GENTLETOUCH_ENERGYGAIN , SC_GT_ENERGYGAIN , SI_GENTLETOUCH_ENERGYGAIN , SCB_NONE ); - set_sc( SR_GENTLETOUCH_CHANGE , SC_GT_CHANGE , SI_GENTLETOUCH_CHANGE , SCB_ASPD|SCB_MDEF|SCB_MAXHP ); + set_sc( SR_GENTLETOUCH_CHANGE , SC_GT_CHANGE , SI_GENTLETOUCH_CHANGE , SCB_WATK|SCB_MDEF|SCB_ASPD|SCB_MAXHP ); set_sc( SR_GENTLETOUCH_REVITALIZE , SC_GT_REVITALIZE , SI_GENTLETOUCH_REVITALIZE , SCB_MAXHP|SCB_REGEN ); add_sc( SR_FLASHCOMBO , SC_FLASHCOMBO ); @@ -696,8 +696,8 @@ void initChangeTables(void) set_sc( WM_DANCE_WITH_WUG , SC_DANCEWITHWUG , SI_DANCEWITHWUG , SCB_ASPD ); set_sc( WM_SATURDAY_NIGHT_FEVER , SC_SATURDAYNIGHTFEVER , SI_SATURDAYNIGHTFEVER , SCB_BATK|SCB_DEF|SCB_FLEE|SCB_REGEN ); set_sc( WM_LERADS_DEW , SC_LERADSDEW , SI_LERADSDEW , SCB_MAXHP ); - set_sc( WM_MELODYOFSINK , SC_MELODYOFSINK , SI_MELODYOFSINK , SCB_BATK|SCB_MATK ); - set_sc( WM_BEYOND_OF_WARCRY , SC_BEYONDOFWARCRY , SI_WARCRYOFBEYOND , SCB_BATK|SCB_MATK ); + set_sc( WM_MELODYOFSINK , SC_MELODYOFSINK , SI_MELODYOFSINK , SCB_INT ); + set_sc( WM_BEYOND_OF_WARCRY , SC_BEYONDOFWARCRY , SI_WARCRYOFBEYOND , SCB_STR|SCB_CRI|SCB_MAXHP ); set_sc( WM_UNLIMITED_HUMMING_VOICE , SC_UNLIMITEDHUMMINGVOICE , SI_UNLIMITEDHUMMINGVOICE , SCB_NONE ); set_sc( WM_FRIGG_SONG , SC_FRIGG_SONG , SI_FRIGG_SONG , SCB_MAXHP ); @@ -721,8 +721,8 @@ void initChangeTables(void) set_sc( GN_THORNS_TRAP , SC_THORNSTRAP , SI_THORNTRAP , SCB_NONE ); set_sc_with_vfx( GN_BLOOD_SUCKER , SC_BLOODSUCKER , SI_BLOODSUCKER , SCB_NONE ); add_sc( GN_WALLOFTHORN , SC_STOP ); - set_sc( GN_FIRE_EXPANSION_SMOKE_POWDER , SC_SMOKEPOWDER , SI_FIRE_EXPANSION_SMOKE_POWDER, SCB_NONE ); - set_sc( GN_FIRE_EXPANSION_TEAR_GAS , SC_TEARGAS , SI_FIRE_EXPANSION_TEAR_GAS , SCB_NONE ); + set_sc( GN_FIRE_EXPANSION_SMOKE_POWDER , SC_SMOKEPOWDER , SI_FIRE_EXPANSION_SMOKE_POWDER, SCB_FLEE ); + set_sc( GN_FIRE_EXPANSION_TEAR_GAS , SC_TEARGAS , SI_FIRE_EXPANSION_TEAR_GAS , SCB_HIT|SCB_FLEE ); set_sc( GN_MANDRAGORA , SC_MANDRAGORA , SI_MANDRAGORA , SCB_INT ); set_sc_with_vfx( GN_ILLUSIONDOPING , SC_ILLUSIONDOPING , SI_ILLUSIONDOPING , SCB_HIT ); @@ -2547,6 +2547,8 @@ static int status_get_hpbonus(struct block_list *bl, enum e_status_bonus type) { //Decreasing if(sc->data[SC_VENOMBLEED]) bonus -= 15; + if(sc->data[SC_BEYONDOFWARCRY]) + bonus -= sc->data[SC_BEYONDOFWARCRY]->val4; if(sc->data[SC__WEAKNESS]) bonus -= sc->data[SC__WEAKNESS]->val2; if(sc->data[SC_MYSTERIOUS_POWDER]) @@ -4666,10 +4668,12 @@ static unsigned short status_calc_str(struct block_list *bl, struct status_chang str += ((sc->data[SC_MARIONETTE2]->val3)>>16)&0xFF; if(sc->data[SC_GIANTGROWTH]) str += 30; + if(sc->data[SC_BEYONDOFWARCRY]) + str -= sc->data[SC_BEYONDOFWARCRY]->val3; if(sc->data[SC_SAVAGE_STEAK]) str += sc->data[SC_SAVAGE_STEAK]->val1; if(sc->data[SC_INSPIRATION]) - str += sc->data[SC_INSPIRATION]->val3; + str += sc->data[SC_INSPIRATION]->val2; if(sc->data[SC_STOMACHACHE]) str -= sc->data[SC_STOMACHACHE]->val1; if(sc->data[SC_KYOUGAKU]) @@ -4728,10 +4732,12 @@ static unsigned short status_calc_agi(struct block_list *bl, struct status_chang agi += ((sc->data[SC_MARIONETTE2]->val3)>>8)&0xFF; if(sc->data[SC_ADORAMUS]) agi -= sc->data[SC_ADORAMUS]->val2; + if(sc->data[SC_MARSHOFABYSS]) + agi -= agi * sc->data[SC_MARSHOFABYSS]->val2 / 100; if(sc->data[SC_DROCERA_HERB_STEAMED]) agi += sc->data[SC_DROCERA_HERB_STEAMED]->val1; if(sc->data[SC_INSPIRATION]) - agi += sc->data[SC_INSPIRATION]->val3; + agi += sc->data[SC_INSPIRATION]->val2; if(sc->data[SC_STOMACHACHE]) agi -= sc->data[SC_STOMACHACHE]->val1; if(sc->data[SC_KYOUGAKU]) @@ -4783,7 +4789,7 @@ static unsigned short status_calc_vit(struct block_list *bl, struct status_chang if(sc->data[SC_MINOR_BBQ]) vit += sc->data[SC_MINOR_BBQ]->val1; if(sc->data[SC_INSPIRATION]) - vit += sc->data[SC_INSPIRATION]->val3; + vit += sc->data[SC_INSPIRATION]->val2; if(sc->data[SC_STOMACHACHE]) vit -= sc->data[SC_STOMACHACHE]->val1; if(sc->data[SC_KYOUGAKU]) @@ -4844,12 +4850,14 @@ static unsigned short status_calc_int(struct block_list *bl, struct status_chang int_ -= ((sc->data[SC_MARIONETTE]->val4)>>16)&0xFF; if(sc->data[SC_MARIONETTE2]) int_ += ((sc->data[SC_MARIONETTE2]->val4)>>16)&0xFF; + if(sc->data[SC_MELODYOFSINK]) + int_ -= sc->data[SC_MELODYOFSINK]->val3; if(sc->data[SC_MANDRAGORA]) - int_ -= 5 + 5 * sc->data[SC_MANDRAGORA]->val1; + int_ -= 4 * sc->data[SC_MANDRAGORA]->val1; if(sc->data[SC_COCKTAIL_WARG_BLOOD]) int_ += sc->data[SC_COCKTAIL_WARG_BLOOD]->val1; if(sc->data[SC_INSPIRATION]) - int_ += sc->data[SC_INSPIRATION]->val3; + int_ += sc->data[SC_INSPIRATION]->val2; if(sc->data[SC_STOMACHACHE]) int_ -= sc->data[SC_STOMACHACHE]->val1; if(sc->data[SC_KYOUGAKU]) @@ -4918,7 +4926,7 @@ static unsigned short status_calc_dex(struct block_list *bl, struct status_chang if(sc->data[SC_SIROMA_ICE_TEA]) dex += sc->data[SC_SIROMA_ICE_TEA]->val1; if(sc->data[SC_INSPIRATION]) - dex += sc->data[SC_INSPIRATION]->val3; + dex += sc->data[SC_INSPIRATION]->val2; if(sc->data[SC_STOMACHACHE]) dex -= sc->data[SC_STOMACHACHE]->val1; if(sc->data[SC_KYOUGAKU]) @@ -4926,6 +4934,8 @@ static unsigned short status_calc_dex(struct block_list *bl, struct status_chang if(sc->data[SC__STRIPACCESSORY] && bl->type != BL_PC) dex -= dex * sc->data[SC__STRIPACCESSORY]->val2 / 100; + if(sc->data[SC_MARSHOFABYSS]) + dex -= dex * sc->data[SC_MARSHOFABYSS]->val2 / 100; if(sc->data[SC_FULL_THROTTLE]) dex += dex * 20 / 100; @@ -4971,7 +4981,7 @@ static unsigned short status_calc_luk(struct block_list *bl, struct status_chang if(sc->data[SC_PUTTI_TAILS_NOODLES]) luk += sc->data[SC_PUTTI_TAILS_NOODLES]->val1; if(sc->data[SC_INSPIRATION]) - luk += sc->data[SC_INSPIRATION]->val3; + luk += sc->data[SC_INSPIRATION]->val2; if(sc->data[SC_STOMACHACHE]) luk -= sc->data[SC_STOMACHACHE]->val1; if(sc->data[SC_KYOUGAKU]) @@ -5047,14 +5057,12 @@ static unsigned short status_calc_batk(struct block_list *bl, struct status_chan batk += batk * sc->data[SC_FLEET]->val3/100; if(sc->data[SC__ENERVATION]) batk -= batk * sc->data[SC__ENERVATION]->val2 / 100; + if(sc->data[SC__BLOODYLUST]) + batk += batk * 32 / 100; if(sc->data[SC_RUSHWINDMILL]) - batk += batk * sc->data[SC_RUSHWINDMILL]->val2/100; + batk += batk * sc->data[SC_RUSHWINDMILL]->val3/100; if(sc->data[SC_SATURDAYNIGHTFEVER]) batk += 100 * sc->data[SC_SATURDAYNIGHTFEVER]->val1; - if(sc->data[SC_MELODYOFSINK]) - batk -= batk * sc->data[SC_MELODYOFSINK]->val3/100; - if(sc->data[SC_BEYONDOFWARCRY]) - batk += batk * sc->data[SC_BEYONDOFWARCRY]->val3/100; if( sc->data[SC_ZANGETSU] ) batk += batk * sc->data[SC_ZANGETSU]->val2 / 100; if(sc->data[SC_EQC]) @@ -5092,9 +5100,15 @@ static unsigned short status_calc_watk(struct block_list *bl, struct status_chan if(sc->data[SC_SHIELDSPELL_DEF] && sc->data[SC_SHIELDSPELL_DEF]->val1 == 3) watk += sc->data[SC_SHIELDSPELL_DEF]->val2; if(sc->data[SC_INSPIRATION]) - watk += sc->data[SC_INSPIRATION]->val2; + watk += (sc->data[SC_INSPIRATION]->val1 * 40) + (sc->data[SC_INSPIRATION]->val2 * 3); if( sc->data[SC_BANDING] && sc->data[SC_BANDING]->val2 > 0 ) watk += (10 + 10 * sc->data[SC_BANDING]->val1) * (sc->data[SC_BANDING]->val2); + if( sc->data[SC_GT_CHANGE] ) + watk += sc->data[SC_GT_CHANGE]->val2; + if( sc->data[SC_CAMOUFLAGE] ) + watk += 30 * sc->data[SC_CAMOUFLAGE]->val2; + if(sc->data[SC__BLOODYLUST]) + watk += watk * 32 / 100; if( sc->data[SC_TROPIC_OPTION] ) watk += sc->data[SC_TROPIC_OPTION]->val2; if( sc->data[SC_HEATER_OPTION] ) @@ -5217,11 +5231,7 @@ static unsigned short status_calc_matk(struct block_list *bl, struct status_chan if (sc->data[SC_INCMATKRATE]) matk += matk * sc->data[SC_INCMATKRATE]->val1/100; if (sc->data[SC_MOONLITSERENADE]) - matk += matk * sc->data[SC_MOONLITSERENADE]->val2/100; - if (sc->data[SC_MELODYOFSINK]) - matk += matk * sc->data[SC_MELODYOFSINK]->val3/100; - if (sc->data[SC_BEYONDOFWARCRY]) - matk -= matk * sc->data[SC_BEYONDOFWARCRY]->val3/100; + matk += matk * sc->data[SC_MOONLITSERENADE]->val3; if (sc->data[SC_ZANGETSU]) matk += matk * sc->data[SC_ZANGETSU]->val2 / 100; if (sc->data[SC_MTF_MATK]) @@ -5253,16 +5263,19 @@ static signed short status_calc_critical(struct block_list *bl, struct status_ch if (sc->data[SC_CLOAKING]) critical += critical; if (sc->data[SC_STRIKING]) - critical += sc->data[SC_STRIKING]->val1*10; + critical += critical * sc->data[SC_STRIKING]->val1 / 100; #ifdef RENEWAL if (sc->data[SC_SPEARQUICKEN]) critical += 3*sc->data[SC_SPEARQUICKEN]->val1*10; #endif - + if(sc->data[SC_CAMOUFLAGE]) + critical += critical * ( 10 * sc->data[SC_CAMOUFLAGE]->val2 ) / 100; if (sc->data[SC__INVISIBILITY]) critical += critical * sc->data[SC__INVISIBILITY]->val3 / 100; if (sc->data[SC__UNLUCKY]) critical -= critical * sc->data[SC__UNLUCKY]->val2 / 100; + if(sc->data[SC_BEYONDOFWARCRY]) + critical -= sc->data[SC_BEYONDOFWARCRY]->val3; return (short)cap_value(critical,10,SHRT_MAX); } @@ -5290,7 +5303,7 @@ static signed short status_calc_hit(struct block_list *bl, struct status_change if(sc->data[SC_CONCENTRATION]) hit += sc->data[SC_CONCENTRATION]->val3; if(sc->data[SC_INSPIRATION]) - hit += 5 * sc->data[SC_INSPIRATION]->val1; + hit += (5 * sc->data[SC_INSPIRATION]->val1) + (sc->data[SC_INSPIRATION]->val3 / 2); if(sc->data[SC_ADJUSTMENT]) hit -= 30; if(sc->data[SC_INCREASING]) @@ -5308,6 +5321,8 @@ static signed short status_calc_hit(struct block_list *bl, struct status_change hit -= hit * 20 / 100; if (sc->data[SC_ASH]) hit -= (hit * sc->data[SC_ASH]->val2) / 100; + if (sc->data[SC_TEARGAS]) + hit -= hit * 50 / 100; if(sc->data[SC_ILLUSIONDOPING]) hit -= hit * (5 + sc->data[SC_ILLUSIONDOPING]->val1) / 100; // Custom if(sc->data[SC_HEAT_BARREL]) @@ -5371,8 +5386,6 @@ static signed short status_calc_flee(struct block_list *bl, struct status_change flee += sc->data[SC_HALLUCINATIONWALK]->val2; if( sc->data[SC_WATER_BARRIER] ) flee -= sc->data[SC_WATER_BARRIER]->val3; - if( sc->data[SC_MARSHOFABYSS] ) - flee -= (9 * sc->data[SC_MARSHOFABYSS]->val3 / 10 + sc->data[SC_MARSHOFABYSS]->val2 / 10) * (bl->type == BL_MOB ? 2 : 1); #ifdef RENEWAL if( sc->data[SC_SPEARQUICKEN] ) flee += 2 * sc->data[SC_SPEARQUICKEN]->val1; @@ -5395,7 +5408,7 @@ static signed short status_calc_flee(struct block_list *bl, struct status_change if( sc->data[SC__LAZINESS] ) flee -= flee * sc->data[SC__LAZINESS]->val3 / 100; if( sc->data[SC_GLOOMYDAY] ) - flee -= flee * sc->data[SC_GLOOMYDAY]->val2 / 100; + flee -= sc->data[SC_GLOOMYDAY]->val2; if( sc->data[SC_SATURDAYNIGHTFEVER] ) flee -= flee * (40 + 10 * sc->data[SC_SATURDAYNIGHTFEVER]->val1) / 100; if( sc->data[SC_WIND_STEP_OPTION] ) @@ -5406,6 +5419,10 @@ static signed short status_calc_flee(struct block_list *bl, struct status_change flee -= flee * sc->data[SC_ASH]->val4 / 100; if (sc->data[SC_GOLDENE_FERSE]) flee += flee * sc->data[SC_GOLDENE_FERSE]->val2 / 100; + if (sc->data[SC_SMOKEPOWDER]) + flee += flee * 20 / 100; + if (sc->data[SC_TEARGAS]) + flee -= flee * 50 / 100; return (short)cap_value(flee,1,SHRT_MAX); } @@ -5495,14 +5512,16 @@ static defType status_calc_def(struct block_list *bl, struct status_change *sc, def -= def * (sc->data[SC_FLING]->val2)/100; if( sc->data[SC_FREEZING] ) def -= def * 10 / 100; - if( sc->data[SC_MARSHOFABYSS] ) - def -= def * ( 6 + 6 * sc->data[SC_MARSHOFABYSS]->val3/10 + (bl->type == BL_MOB ? 5 : 3) * sc->data[SC_MARSHOFABYSS]->val2/36 ) / 100; + if(sc->data[SC_CAMOUFLAGE]) + def -= def * ( 5 * sc->data[SC_CAMOUFLAGE]->val2 ) / 100; if( sc->data[SC_ANALYZE] ) def -= def * ( 14 * sc->data[SC_ANALYZE]->val1 ) / 100; if( sc->data[SC_FORCEOFVANGUARD] ) def += def * 2 * sc->data[SC_FORCEOFVANGUARD]->val1 / 100; if( sc->data[SC_NEUTRALBARRIER] ) def += def * (10 + sc->data[SC_NEUTRALBARRIER]->val1 * 5) / 100; + if( sc->data[SC__BLOODYLUST] ) + def -= def * 55 / 100; if(sc->data[SC_SATURDAYNIGHTFEVER]) def -= def * (10 + 10 * sc->data[SC_SATURDAYNIGHTFEVER]->val1) / 100; if(sc->data[SC_EARTHDRIVE]) @@ -5512,7 +5531,7 @@ static defType status_calc_def(struct block_list *bl, struct status_change *sc, if( sc->data[SC_POWER_OF_GAIA] ) def += def * sc->data[SC_POWER_OF_GAIA]->val2 / 100; if( sc->data[SC_PRESTIGE] ) - def += def * sc->data[SC_PRESTIGE]->val1 / 100; + def += sc->data[SC_PRESTIGE]->val1; if(sc->data[SC_ASH]) def -= def * sc->data[SC_ASH]->val3/100; if( sc->data[SC_OVERED_BOOST] ) @@ -5570,11 +5589,11 @@ static signed short status_calc_def2(struct block_list *bl, struct status_change if(sc->data[SC_FLING]) def2 -= def2 * (sc->data[SC_FLING]->val3)/100; if( sc->data[SC_FREEZING] ) - def2 -= def2 * 3 / 10; + def2 -= def2 * 10 / 100; if(sc->data[SC_ANALYZE]) def2 -= def2 * ( 14 * sc->data[SC_ANALYZE]->val1 ) / 100; if( sc->data[SC_ECHOSONG] ) - def2 += def2 * sc->data[SC_ECHOSONG]->val2/100; + def2 += def2 * sc->data[SC_ECHOSONG]->val3 / 100; if(sc->data[SC_ASH]) def2 -= def2 * sc->data[SC_ASH]->val3/100; if (sc->data[SC_PARALYSIS]) @@ -5631,14 +5650,12 @@ static defType status_calc_mdef(struct block_list *bl, struct status_change *sc, mdef += 25*mdef/100; if( sc->data[SC_NEUTRALBARRIER] ) mdef += mdef * (10 + sc->data[SC_NEUTRALBARRIER]->val1 * 5) / 100; - if( sc->data[SC_MARSHOFABYSS] ) - mdef -= mdef * ( 6 + 6 * sc->data[SC_MARSHOFABYSS]->val3/10 + (bl->type == BL_MOB ? 5 : 3) * sc->data[SC_MARSHOFABYSS]->val2/36 ) / 100; if(sc->data[SC_ANALYZE]) mdef -= mdef * ( 14 * sc->data[SC_ANALYZE]->val1 ) / 100; if(sc->data[SC_SYMPHONYOFLOVER]) - mdef += mdef * sc->data[SC_SYMPHONYOFLOVER]->val2 / 100; + mdef += mdef * sc->data[SC_SYMPHONYOFLOVER]->val3 / 100; if(sc->data[SC_GT_CHANGE] && sc->data[SC_GT_CHANGE]->val4) - mdef -= mdef * sc->data[SC_GT_CHANGE]->val4 / 100; + mdef -= sc->data[SC_GT_CHANGE]->val4; if (sc->data[SC_ODINS_POWER]) mdef -= 20; @@ -5698,7 +5715,7 @@ static unsigned short status_calc_speed(struct block_list *bl, struct status_cha if( sd && sd->ud.skilltimer != INVALID_TIMER && (pc_checkskill(sd,SA_FREECAST) > 0 || sd->ud.skill_id == LG_EXEEDBREAK) ) { if( sd->ud.skill_id == LG_EXEEDBREAK ) - speed_rate = 100 + 60 - (sd->ud.skill_lv * 10); + speed_rate = 160 - 10 * sd->ud.skill_lv; else speed_rate = 175 - 5 * pc_checkskill(sd,SA_FREECAST); } else { @@ -5713,7 +5730,7 @@ static unsigned short status_calc_speed(struct block_list *bl, struct status_cha else if( pc_isridingwug(sd) ) val = 15 + 5 * pc_checkskill(sd, RA_WUGRIDER); else if( pc_ismadogear(sd) ) { - val = (- 10 * (5 - pc_checkskill(sd,NC_MADOLICENCE))); + val = -(50 - 10 * pc_checkskill(sd,NC_MADOLICENCE)); if( sc->data[SC_ACCELERATION] ) val += 25; } @@ -5761,13 +5778,11 @@ static unsigned short status_calc_speed(struct block_list *bl, struct status_cha if( sc->data[SC_SWOO] ) val = max( val, 300 ); if( sc->data[SC_FREEZING] ) - val = max( val, 70 ); + val = max( val, 50 ); if( sc->data[SC_MARSHOFABYSS] ) - val = max( val, 40 + 10 * sc->data[SC_MARSHOFABYSS]->val1 ); + val = max( val, sc->data[SC_MARSHOFABYSS]->val3 ); if( sc->data[SC_CAMOUFLAGE] ) - val = max( val, sc->data[SC_CAMOUFLAGE]->val1 < 3 ? 0 : 25 * (5 - sc->data[SC_CAMOUFLAGE]->val1) ); - if( sc->data[SC__GROOMY] ) - val = max( val, sc->data[SC__GROOMY]->val2); + val = max( val, sc->data[SC_CAMOUFLAGE]->val1 < 3 ? 0 : 25 * sc->data[SC_CAMOUFLAGE]->val1 ); if( sc->data[SC_STEALTHFIELD_MASTER] ) val = max( val, 30 ); if( sc->data[SC_BANDING_DEFENCE] ) @@ -5817,7 +5832,7 @@ static unsigned short status_calc_speed(struct block_list *bl, struct status_cha if( sc->data[SC_GN_CARTBOOST] ) val = max( val, sc->data[SC_GN_CARTBOOST]->val2 ); if( sc->data[SC_SWINGDANCE] ) - val = max( val, sc->data[SC_SWINGDANCE]->val2 ); + val = max( val, sc->data[SC_SWINGDANCE]->val3 ); if( sc->data[SC_WIND_STEP_OPTION] ) val = max( val, sc->data[SC_WIND_STEP_OPTION]->val2 ); if( sc->data[SC_FULL_THROTTLE] ) @@ -5957,8 +5972,6 @@ static short status_calc_aspd(struct block_list *bl, struct status_change *sc, s skills2 -= 2 + 5 * sc->data[SC__BODYPAINT]->val1; if( sc->data[SC__INVISIBILITY] ) skills2 -= sc->data[SC__INVISIBILITY]->val2 ; - if( sc->data[SC__GROOMY] ) - skills2 -= sc->data[SC__GROOMY]->val2; if( sc->data[SC_SWINGDANCE] ) skills2 += sc->data[SC_SWINGDANCE]->val2; if( sc->data[SC_DANCEWITHWUG] ) @@ -7051,7 +7064,7 @@ int status_get_sc_def(struct block_list *src, struct block_list *bl, enum sc_typ tick_def2 = status->agi*100; break; case SC_CRYSTALIZE: - tick_def2 = status->vit*100 + status_get_lv(bl)*20; + tick_def2 = status->vit*100; break; case SC_MANDRAGORA: sc_def = (status->vit + status->luk)*20; @@ -7063,7 +7076,7 @@ int status_get_sc_def(struct block_list *src, struct block_list *bl, enum sc_typ tick_def2 = (status->vit + status->luk)*50; break; case SC_VOICEOFSIREN: - tick_def2 = (status_get_lv(bl) * 100) + ((bl->type == BL_PC)?((TBL_PC*)bl)->status.job_level : 0); + tick_def2 = (status_get_lv(bl) * 100) + ((bl->type == BL_PC)?((TBL_PC*)bl)->status.job_level * 20 : 0); break; default: // Effect that cannot be reduced? Likely a buff. @@ -8920,6 +8933,13 @@ int status_change_start(struct block_list* src, struct block_list* bl,enum sc_ty val2 = 50 * val1; // Evasion rate of physical attacks. Flee val3 = 10 * val1; // Evasion rate of magical attacks. break; + case SC_MARSHOFABYSS: + if( bl->type == BL_PC ) + val2 = 3 * val1; // AGI and DEX Reduction + else // BL_MOB + val2 = 6 * val1; // AGI and DEX Reduction + val3 = 10 * val1; // Movement Speed Reduction + break; case SC_READING_SB: // val2 = sp reduction per second tick_time = 5000; // [GodLesZ] tick time @@ -8984,7 +9004,7 @@ int status_change_start(struct block_list* src, struct block_list* bl,enum sc_ty if( sd ) pc_delspiritball(sd,sd->spiritball,0); break; case SC__GROOMY: - val2 = 20 + 10 * val1; // ASPD. Need to confirm if Movement Speed reduction is the same. [Jobbie] + val2 = 20 + 10 * val1; // ASPD val3 = 20 * val1; // HIT if( sd ) { // Removes Animals if( pc_isriding(sd) ) pc_setriding(sd, 0); @@ -8994,7 +9014,7 @@ int status_change_start(struct block_list* src, struct block_list* bl,enum sc_ty if( pc_isfalcon(sd) ) pc_setoption(sd, sd->sc.option&~OPTION_FALCON); if( sd->status.pet_id > 0 ) pet_menu(sd, 3); if( merc_is_hom_active(sd->hd) ) merc_hom_vaporize(sd,HOM_ST_REST); - if( sd->md ) merc_delete(sd->md,3); + //if( sd->md ) merc_delete(sd->md,3); // Are Mercenaries removed? [aleos] } break; case SC__LAZINESS: @@ -9046,17 +9066,17 @@ int status_change_start(struct block_list* src, struct block_list* bl,enum sc_ty tick_time = 100; // [GodLesZ] tick time break; case SC_SWINGDANCE: - val2 = 4 * val1; // Walk speed and aspd reduction. + val3 = (5 * val1) + val2; // Walk speed and aspd reduction. break; case SC_SYMPHONYOFLOVER: - case SC_RUSHWINDMILL: - case SC_ECHOSONG: - val2 = 6 * val1; - val2 += val3; // Adding 1% * Lesson Bonus - val2 += (int)(val4*2/10); // Adding 0.2% per JobLevel + val3 = (12 * val1) + val2 + ((sd?sd->status.job_level:50) / 4); // MDEF Increase in % break; - case SC_MOONLITSERENADE: - val2 = 10 * val1; + case SC_MOONLITSERENADE: // MATK Increase + case SC_RUSHWINDMILL: // ATK Increase + val3 = (6 * val1) + val2 + ((sd?sd->status.job_level:50) / 5); + break; + case SC_ECHOSONG: + val3 = (6 * val1) + val2 + ((sd?sd->status.job_level:50) / 4); // DEF Increase in % break; case SC_HARMONIZE: val2 = 5 + 5 * val1; @@ -9070,15 +9090,15 @@ int status_change_start(struct block_list* src, struct block_list* bl,enum sc_ty tick_time = 2000; // [GodLesZ] tick time break; case SC_SIRCLEOFNATURE: - val2 = 1 + val1; // SP consume + val2 = 4 + val1; // SP consume val3 = 40 * val1; // HP recovery val4 = tick / 1000; tick_time = 1000; // [GodLesZ] tick time break; case SC_SONGOFMANA: - val3 = 10 + (2 * val2); - val4 = tick/3000; - tick_time = 3000; // [GodLesZ] tick time + val3 = 10 + (5 * val2); + val4 = tick/5000; + tick_time = 5000; // [GodLesZ] tick time break; case SC_SATURDAYNIGHTFEVER: if (!val4) val4 = skill_get_time2(status_sc2skill(type),val1); @@ -9108,23 +9128,27 @@ int status_change_start(struct block_list* src, struct block_list* bl,enum sc_ty } break; case SC_DANCEWITHWUG: - val3 = (5 * val1) + (1 * val2); // Still need official value. + val3 = 5 + 5 * val2; // ASPD Increase + val4 = 20 + 10 * val2; // Fixed Cast Time Reduction break; case SC_LERADSDEW: - val3 = (5 * val1) + (1 * val2); + val3 = 200 * val1 + 300 * val2; // MaxHP Increase break; case SC_MELODYOFSINK: - val3 = (5 * val1) + (1 * val2); + val3 = val1 * 2 + val2; // INT Reduction. + val4 = tick/1000; + tick_time = 1000; break; case SC_BEYONDOFWARCRY: - val3 = (5 * val1) + (1 * val2); + val3 = val1 * (2 + val2); // STR and CRIT Reduction + val4 = 4 * val1 + 4 * val2; // MaxHP Reduction break; case SC_UNLIMITEDHUMMINGVOICE: { struct unit_data *ud = unit_bl2ud(bl); if( ud == NULL ) return 0; ud->state.skillcastcancel = 0; - val3 = 15 - (2 * val2); + val3 = 15 - (3 * val2); } break; case SC_REFLECTDAMAGE: @@ -9137,22 +9161,22 @@ int status_change_start(struct block_list* src, struct block_list* bl,enum sc_ty val2 = 8 + (12 * val1); // Chance val3 = 5 + (2 * val1); // Max rage counters tick = -1; // Endless duration in the client - tick_time = 6000; // [GodLesZ] tick time + tick_time = 10000; // [GodLesZ] tick time break; case SC_EXEEDBREAK: - val1 *= 150; // 150 * skill_lv + val1 *= 100; // 100 * skill_lv if( sd && sd->inventory_data[sd->equip_index[EQI_HAND_R]] ) { // Chars. val1 += (sd->inventory_data[sd->equip_index[EQI_HAND_R]]->weight/10 * sd->inventory_data[sd->equip_index[EQI_HAND_R]]->wlv * status_get_lv(bl) / 100); - val1 += 15 * (sd ? sd->status.job_level:50) + 100; + val1 += 10 * sd->status.job_level; } else // Mobs - val1 += (400 * status_get_lv(bl) / 100) + (15 * (status_get_lv(bl) / 2)); // About 1138% at mob_lvl 99. Is an aproximation to a standard weapon. [pakpil] + val1 += 500; break; - case SC_PRESTIGE: // Bassed on suggested formula in iRO Wiki and some test, still need more test. [pakpil] - val2 = ((status->int_ + status->luk) / 6) + 5; // Chance to evade magic damage. + case SC_PRESTIGE: + val2 = (status->int_ + status->luk) * (val1 / 20) * (status_get_lv(bl) / 200) + val1; // Chance to evade magic damage. val1 *= 15; // Defence added if( sd ) - val1 += 10 * pc_checkskill(sd,CR_DEFENDER); + val1 += (10 * pc_checkskill(sd,CR_DEFENDER)) * (status_get_lv(bl) / 100); break; case SC_BANDING: tick_time = 5000; // [GodLesZ] tick time @@ -9163,11 +9187,11 @@ int status_change_start(struct block_list* src, struct block_list* bl,enum sc_ty break; case SC_INSPIRATION: if( sd ) { - val2 = (40 * val1) + (3 * sd->status.job_level); // ATK bonus - val3 = (sd->status.job_level / 10) * 2 + 12; // All stat bonus + val2 = (status_get_lv(bl) / 10) + ((sd?sd->status.job_level:50) / 5); // All stat bonus + val3 = (sd?sd->status.job_level:50); } - val4 = tick / 1000; - tick_time = 1000; // [GodLesZ] tick time + val4 = tick / 5000; + tick_time = 5000; // [GodLesZ] tick time status_change_clear_buffs(bl,3); // Remove buffs/debuffs break; case SC_CRESCENTELBOW: @@ -9184,15 +9208,18 @@ int status_change_start(struct block_list* src, struct block_list* bl,enum sc_ty case SC_GT_CHANGE: { // Take note there is no def increase as skill desc says. [malufett] struct block_list * src; + val2 = (status->str / 2 + status->dex / 4) * val1 / 5; // Fixed amount of weapon attack increase. val3 = status->agi * val1 / 60; // ASPD increase: [(Target AGI x Skill Level) / 60] % if( (src = map_id2bl(val2)) ) val4 = ( 200/status_get_int(src) ) * val1; // MDEF decrease: MDEF [(200 / Caster INT) x Skill Level] + if( val4 < 0 ) + val4 = 0; } break; case SC_GT_REVITALIZE: { // Take note there is no vit,aspd,speed increase as skill desc says. [malufett] struct block_list * src; - val3 = val1 * 30 + 150; // Natural HP recovery increase: [(Skill Level x 30) + 50] % + val3 = val1 * 30 + 50; // Natural HP recovery increase: [(Skill Level x 30) + 50] % if( (src = map_id2bl(val2)) ) // The stat def is not shown in the status window and it is process differently val4 = ( status_get_vit(src)/4 ) * val1; // STAT DEF increase: [(Caster VIT / 4) x Skill Level] } @@ -11349,8 +11376,8 @@ int status_change_timer(int tid, unsigned int tick, int id, intptr_t data) break; case SC_DEEPSLEEP: - if( --(sce->val4) >= 0 ) { // Recovers 1% HP/SP every 2 seconds. - status_heal(bl, status->max_hp / 100, status->max_sp / 100, 2); + if( --(sce->val4) >= 0 ) { // Recovers 3% HP/SP every 2 seconds. + status_heal(bl, status->max_hp * 3 / 100, status->max_sp * 3 / 100, 2); sc_timer_next(2000 + tick, status_change_timer, bl->id, data); return 0; } @@ -11358,9 +11385,9 @@ int status_change_timer(int tid, unsigned int tick, int id, intptr_t data) case SC_SIRCLEOFNATURE: if( --(sce->val4) >= 0 ) { - if( !status_charge(bl,0,sce->val2) ) + if( !status_charge(bl,0,sce->val3) ) break; - status_heal(bl, sce->val3, 0, 1); + status_heal(bl, sce->val2, 0, 1); sc_timer_next(1000 + tick, status_change_timer, bl->id, data); return 0; } @@ -11369,7 +11396,7 @@ int status_change_timer(int tid, unsigned int tick, int id, intptr_t data) case SC_SONGOFMANA: if( --(sce->val4) >= 0 ) { status_heal(bl,0,sce->val3,3); - sc_timer_next(3000 + tick, status_change_timer, bl->id, data); + sc_timer_next(5000 + tick, status_change_timer, bl->id, data); return 0; } break; @@ -11378,15 +11405,21 @@ int status_change_timer(int tid, unsigned int tick, int id, intptr_t data) case SC_SATURDAYNIGHTFEVER: // 1% HP/SP drain every val4 seconds [Jobbie] if( --(sce->val3) >= 0 ) { - int hp = status->hp / 100; - int sp = status->sp / 100; - if( !status_charge(bl, hp, sp) ) + if( !status_charge(bl, status->hp / 100, status->sp / 100) ) break; sc_timer_next(sce->val4+tick, status_change_timer, bl->id, data); return 0; } break; + case SC_MELODYOFSINK: + if( --(sce->val4) >= 0 ) { + status_charge(bl, 0, status->max_sp * ( 2 * sce->val1 + 2 * sce->val2 ) / 100); + sc_timer_next(1000+tick, status_change_timer, bl->id, data); + return 0; + } + break; + case SC_CRYSTALIZE: if( --(sce->val4) >= 0 ) { // Drains 2% of HP and 1% of SP every seconds. if( bl->type != BL_MOB) // Doesn't work on mobs @@ -11397,7 +11430,7 @@ int status_change_timer(int tid, unsigned int tick, int id, intptr_t data) break; case SC_FORCEOFVANGUARD: - if( !status_charge(bl,0,24 - (4 * sce->val1)) ) + if( !status_charge(bl,0,24 - 4 * sce->val1) ) break; sc_timer_next(10000 + tick, status_change_timer, bl->id, data); return 0; @@ -11457,12 +11490,12 @@ int status_change_timer(int tid, unsigned int tick, int id, intptr_t data) case SC_INSPIRATION: if(--(sce->val4) >= 0) { - int hp = status->max_hp * (7-sce->val1) / 100; - int sp = status->max_sp * (9-sce->val1) / 100; + int hp = status->max_hp * (35 - 5 * sce->val1) / 1000; + int sp = status->max_sp * (45 - 5 * sce->val1) / 1000; if( !status_charge(bl,hp,sp) ) break; - sc_timer_next(1000+tick,status_change_timer,bl->id, data); + sc_timer_next(5000+tick,status_change_timer,bl->id, data); return 0; } break;