diff --git a/db/pre-re/skill_cast_db.txt b/db/pre-re/skill_cast_db.txt index 4abf648ad1..1a35701f51 100644 --- a/db/pre-re/skill_cast_db.txt +++ b/db/pre-re/skill_cast_db.txt @@ -886,17 +886,17 @@ //-- NJ_KAENSIN 535,6000:5500:5000:4500:4000:3500:3000:2500:2000:1500,1000,0,20000,0,0 //-- NJ_BAKUENRYU -536,3000,2000,0,0,0,0 +536,3000,2000,0,500,0,0 //-- NJ_HYOUSENSOU 537,700:1400:2100:2800:3500:4200:4900:5600:6300:7000,0,0,0,0,0 //-- NJ_SUITON 538,3000,0,0,15000:20000:25000:30000:35000:40000:45000:50000:55000:60000,15000:20000:25000:30000:35000:40000:45000:50000:55000:60000,0 //-- NJ_HYOUSYOURAKU -539,2000:2500:3000:3500:4000,2000,0,0,10000:11000:12000:13000:14000:15000:16000:17000:18000:19000,0 +539,2000:2500:3000:3500:4000,2000,0,500,7500:12500:17500:22500:27500,0 //-- NJ_HUUJIN -540,1000:1500:2000:2500:3000:3500:4000:5000:5500:6000,1000,0,0,0,0 +540,1000:1500:2000:2500:3000:3500:4000:4500:5000:5500,1000,0,0,0,0 //-- NJ_RAIGEKISAI -541,4000,0,0,0,0,0 +541,4000,0,0,500,0,0 //-- NJ_KAMAITACHI 542,4000,0,0,0,0,0 //-- NJ_NEN diff --git a/db/pre-re/skill_db.txt b/db/pre-re/skill_db.txt index b0c78467ee..67c98a5e77 100644 --- a/db/pre-re/skill_db.txt +++ b/db/pre-re/skill_db.txt @@ -761,12 +761,12 @@ 533,0,0,0,0,0,0,10,0,no,0,0,0,none,0,0x0, NJ_NINPOU,Spirit of the Blade 534,9,8,1,3,0,0,10,1:2:3:4:5:6:7:8:9:10,yes,0,0,0,magic,0,0x0, NJ_KOUENKA,Crimson Fire Petal 535,0,8,4,3,0,0,10,1,yes,0,0,0,magic,0,0x0, NJ_KAENSIN,Crimson Fire Formation -536,9,8,1,3,0x2,2,5,3,yes,0,0,0,magic,0,0x0, NJ_BAKUENRYU,Raging Fire Dragon +536,9,8,1,3,0,0,5,-3,yes,0,0,0,magic,0,0x0, NJ_BAKUENRYU,Raging Fire Dragon 537,9,8,1,1,0,0,10,3:4:5:6:7:8:9:10:11:12,yes,0,0,0,magic,0,0x0, NJ_HYOUSENSOU,Spear of Ice 538,9,6,2,1,0x1,0,10,1,yes,0,0,0,magic,0,0x1000, NJ_SUITON,Hidden Water -539,0,6,4,1,0x2,3,5,1,yes,0,0,0,magic,0,0x0, NJ_HYOUSYOURAKU,Ice Meteor +539,0,6,4,1,0,0,5,1,yes,0,0,0,magic,0,0x0, NJ_HYOUSYOURAKU,Ice Meteor 540,9,8,1,4,0,0,10,1:2:2:3:3:4:4:5:5:6,yes,0,0,0,magic,0,0x0, NJ_HUUJIN,Wind Blade -541,9,6,4,4,0x2,2:2:3:3:4,5,1,yes,0,0,0,magic,0,0x0, NJ_RAIGEKISAI,Lightning Strike of Destruction +541,9,6,4,4,0,0,5,1,yes,0,0,0,magic,0,0x0, NJ_RAIGEKISAI,Lightning Strike of Destruction 542,5:6:7:8:9,8,1,4,0,1,5,1,yes,0,0,5:6:7:8:9,magic,0,0x0, NJ_KAMAITACHI,Kamaitachi 543,0,6,4,0,0x1,0,5,1,yes,0,0,0,none,0,0x0, NJ_NEN,Soul 544,-5,6,1,0,0x40,0,10,1,no,0,0,0,weapon,0,0x0, NJ_ISSEN,Final Strike diff --git a/db/pre-re/skill_unit_db.txt b/db/pre-re/skill_unit_db.txt index 0517b3e1c9..6c63760ce1 100644 --- a/db/pre-re/skill_unit_db.txt +++ b/db/pre-re/skill_unit_db.txt @@ -101,7 +101,10 @@ 521,0xbe, , 0, 1,1000,enemy, 0x000 //GS_GROUNDDRIFT 527,0xbc, , -1, 0,2000,enemy, 0x018 //NJ_TATAMIGAESHI 535,0xbd, , -1, 0, 100,enemy, 0x8010 //NJ_KAENSIN +536,0x86, , 2, 0,1000,enemy, 0x018 //NJ_BAKUENRYU 538,0xbb, , 1:1:1:2:2:2:3:3:3:4,0,-1,all,0x8010 //NJ_SUITON +539,0x86, , 3, 0,1000,enemy, 0x018 //NJ_HYOUSYOURAKU +541,0x86, , 2:2:3:3:4, 0,1000,enemy, 0x018 //NJ_RAIGEKISAI 670,0xc7, , 1, 5:5:5:5:5:5:5:5:5:13,1000,all,0x008 //NPC_EVILLAND //706,0xfd, , 0, 0,1000,all, 0x000 //NPC_VENOMFOG diff --git a/db/re/skill_cast_db.txt b/db/re/skill_cast_db.txt index ca7cd54927..09e0d46635 100644 --- a/db/re/skill_cast_db.txt +++ b/db/re/skill_cast_db.txt @@ -899,17 +899,17 @@ //-- NJ_KAENSIN 535,4800:4400:4000:3600:3200:2800:2400:2000:1600:1200,1000,0,20000,0,0,1200:1100:1000:900:800:700:600:500:400:300 //-- NJ_BAKUENRYU -536,2400,2000,0,0,0,0,600 +536,2400,2000,0,500,0,0,600 //-- NJ_HYOUSENSOU 537,560:1120:1680:2240:2800:3360:3840:4480:5040:5600,0,0,0,0,0,140:280:420:560:700:840:960:1120:1260:1400 //-- NJ_SUITON 538,2400,2000,0,15000:20000:25000:30000:35000:40000:45000:50000:55000:60000,15000:20000:25000:30000:35000:40000:45000:50000:55000:60000,0,600 //-- NJ_HYOUSYOURAKU -539,1600:2000:2400:2800:3200,2000,0,0,10000:11000:12000:13000:14000:15000:16000:17000:18000:19000,0,400:500:600:700:800 +539,1600:2000:2400:2800:3200,2000,0,500,7500:12500:17500:22500:27500,0,400:500:600:700:800 //-- NJ_HUUJIN 540,800:1200:1600:2000:2400:2800:3200:3600:4000:4400,1000,0,0,0,0,200:300:400:500:600:700:800:900:1000:1100 //-- NJ_RAIGEKISAI -541,3200,0,0,100,0,0,800 +541,3200,0,0,500,0,0,800 //-- NJ_KAMAITACHI 542,3200,0,0,0,0,0,800 //-- NJ_NEN diff --git a/db/re/skill_db.txt b/db/re/skill_db.txt index be110bcae1..082706c9a5 100644 --- a/db/re/skill_db.txt +++ b/db/re/skill_db.txt @@ -761,12 +761,12 @@ 533,0,0,0,0,0,0,10,0,no,0,0,0,none,0,0x0, NJ_NINPOU,Spirit of the Blade 534,9,8,1,3,0,0,10,1:2:3:4:5:6:7:8:9:10,yes,0,0,0,magic,0,0x0, NJ_KOUENKA,Crimson Fire Petal 535,0,8,4,3,0,0,10,1,yes,0,0,0,magic,0,0x0, NJ_KAENSIN,Crimson Fire Formation -536,9,8,1,3,0x2,2,5,3,yes,0,0,0,magic,0,0x0, NJ_BAKUENRYU,Raging Fire Dragon +536,9,8,1,3,0,0,5,-3,yes,0,0,0,magic,0,0x0, NJ_BAKUENRYU,Raging Fire Dragon 537,9,8,1,1,0,0,10,3:4:5:6:7:8:9:10:11:12,yes,0,0,0,magic,0,0x0, NJ_HYOUSENSOU,Spear of Ice 538,9,6,2,1,0x1,0,10,1,yes,0,0,0,magic,0,0x1000, NJ_SUITON,Hidden Water -539,0,6,4,1,0x2,3,5,1,yes,0,0,0,magic,0,0x0, NJ_HYOUSYOURAKU,Ice Meteor +539,0,6,4,1,0,0,5,1,yes,0,0,0,magic,0,0x0, NJ_HYOUSYOURAKU,Ice Meteor 540,9,8,1,4,0,0,10,1:2:2:3:3:4:4:5:5:6,yes,0,0,0,magic,0,0x0, NJ_HUUJIN,Wind Blade -541,9,6,2,4,0x2,2:2:3:3:4,5,1,yes,0,0,0,magic,0,0x0, NJ_RAIGEKISAI,Lightning Strike of Destruction +541,9,6,2,4,0,0,5,1,yes,0,0,0,magic,0,0x0, NJ_RAIGEKISAI,Lightning Strike of Destruction 542,5:6:7:8:9,8,1,4,0,1,5,1,yes,0,0,5:6:7:8:9,magic,0,0x0, NJ_KAMAITACHI,Kamaitachi 543,0,6,4,0,0x1,0,5,1,yes,0,0,0,none,0,0x0, NJ_NEN,Soul 544,-5,8,1,0,0x40,0,10,1,no,0,0,0,misc,0,0x0, NJ_ISSEN,Final Strike diff --git a/db/re/skill_unit_db.txt b/db/re/skill_unit_db.txt index b551b4e017..0bee4b7ccf 100644 --- a/db/re/skill_unit_db.txt +++ b/db/re/skill_unit_db.txt @@ -102,8 +102,10 @@ 525,0x86, , 0, 2,1000,enemy, 0x018 //NJ_HUUMA 527,0xbc, , -1, 0,2000,enemy, 0x018 //NJ_TATAMIGAESHI 535,0xbd, , -1, 0, 100,enemy, 0x8010 //NJ_KAENSIN +536,0x86, , 2, 0,1000,enemy, 0x018 //NJ_BAKUENRYU 538,0xbb, , 1:1:1:2:2:2:3:3:3:4,0,-1,all,0x8010 //NJ_SUITON -541,0x86, , 0, 3:3:4:4:5,1000,enemy, 0x018 //NJ_RAIGEKISAI +539,0x86, , 3, 0,1000,enemy, 0x018 //NJ_HYOUSYOURAKU +541,0x86, , 1:1:2:2:3, 0,1000,enemy, 0x018 //NJ_RAIGEKISAI 670,0xc7, , 1, 5:5:5:5:5:5:5:5:5:13,1000,all,0x008 //NPC_EVILLAND //706,0xfd, , 0, 0,1000,all, 0x000 //NPC_VENOMFOG diff --git a/src/map/battle.c b/src/map/battle.c index 4e8d3d22e2..6bf09cdb3b 100644 --- a/src/map/battle.c +++ b/src/map/battle.c @@ -5745,9 +5745,9 @@ struct Damage battle_calc_magic_attack(struct block_list *src,struct block_list skillratio += 10 * sd->spiritcharm; break; case NJ_BAKUENRYU: - skillratio += 50 * (skill_lv - 1); + skillratio += 50 + 150 * skill_lv; if(sd && sd->spiritcharm_type == CHARM_TYPE_FIRE && sd->spiritcharm > 0) - skillratio += 15 * sd->spiritcharm; + skillratio += 45 * sd->spiritcharm; break; case NJ_HYOUSENSOU: #ifdef RENEWAL diff --git a/src/map/skill.c b/src/map/skill.c index 3addce5881..6232f07411 100755 --- a/src/map/skill.c +++ b/src/map/skill.c @@ -4592,7 +4592,6 @@ int skill_castend_damage_id (struct block_list* src, struct block_list *bl, uint case RG_RAID: case HW_NAPALMVULCAN: case NJ_HUUMA: - case NJ_BAKUENRYU: case ASC_METEORASSAULT: case GS_DESPERADO: case GS_SPREADATTACK: @@ -4660,7 +4659,6 @@ int skill_castend_damage_id (struct block_list* src, struct block_list *bl, uint skill_area_temp[2] = 0; switch ( skill_id ) { - case NJ_BAKUENRYU: case LG_EARTHDRIVE: case GN_CARTCANNON: clif_skill_nodamage(src,bl,skill_id,skill_lv,1); @@ -4703,6 +4701,12 @@ int skill_castend_damage_id (struct block_list* src, struct block_list *bl, uint } break; + //Place units around target + case NJ_BAKUENRYU: + clif_skill_nodamage(src, bl, skill_id, skill_lv, 1); + skill_unitsetting(src, skill_id, skill_lv, bl->x, bl->y, 0); + break; + case WL_COMET: if(!map_getcell(bl->m, bl->x, bl->y, CELL_CHKLANDPROTECTOR)) // Nothing should happen if the target is on Land Protector skill_attack(skill_get_type(skill_id), src, src, bl, skill_id, skill_lv, tick, flag); @@ -6800,8 +6804,6 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, ui skill_castend_damage_id); break; - case NJ_HYOUSYOURAKU: - case NJ_RAIGEKISAI: case WZ_FROSTNOVA: clif_skill_nodamage(src,bl,skill_id,skill_lv,1); skill_area_temp[1] = 0; diff --git a/src/map/status.c b/src/map/status.c index 9d74116d95..896e14e6d9 100644 --- a/src/map/status.c +++ b/src/map/status.c @@ -8876,6 +8876,9 @@ int status_change_start(struct block_list* src, struct block_list* bl,enum sc_ty val3 = 50; val2 = 3*((val1+1)/3); if (val1 > 4) val2--; + //Suiton is a special case, stop effect is forced and only happens when target enters it + if (!unit_blown_immune(bl, 0x1)) + unit_stop_walking(bl, 9); break; case SC_ONEHAND: case SC_TWOHANDQUICKEN: diff --git a/src/map/unit.c b/src/map/unit.c index 67bccd440d..6e1ed15a73 100644 --- a/src/map/unit.c +++ b/src/map/unit.c @@ -1236,6 +1236,7 @@ int unit_warp(struct block_list *bl,short m,short x,short y,clr_type type) * &0x2: Force the unit to move one cell if it hasn't yet * &0x4: Enable moving to the next cell when unit was already half-way there * (may cause on-touch/place side-effects, such as a scripted map change) + * &0x8: Force stop moving, even if walktimer is currently INVALID_TIMER * @return Success(1); Failed(0); */ int unit_stop_walking(struct block_list *bl,int type) @@ -1248,15 +1249,17 @@ int unit_stop_walking(struct block_list *bl,int type) ud = unit_bl2ud(bl); - if(!ud || ud->walktimer == INVALID_TIMER) + if(!ud || (!(type&0x08) && ud->walktimer == INVALID_TIMER)) return 0; // NOTE: We are using timer data after deleting it because we know the // delete_timer function does not mess with it. If the function's // behaviour changes in the future, this code could break! - td = get_timer(ud->walktimer); - delete_timer(ud->walktimer, unit_walktoxy_timer); - ud->walktimer = INVALID_TIMER; + if (ud->walktimer != INVALID_TIMER) { + td = get_timer(ud->walktimer); + delete_timer(ud->walktimer, unit_walktoxy_timer); + ud->walktimer = INVALID_TIMER; + } ud->state.change_walk_target = 0; tick = gettick();