From 0d24db22f0c4aeef985588da3b852078045cdda2 Mon Sep 17 00:00:00 2001 From: skotlex Date: Tue, 8 Aug 2006 17:55:37 +0000 Subject: - Casting Kaensin will clear out Suiton and viceversa now. - Fixed drop-rates (@whodrops) getting duplicates when you use @reloadmobdb - Fixed unjailing not sending characters to Prontera. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@8188 54d463be-8e91-2dee-dedb-b68131a5f0ec --- Changelog-Trunk.txt | 4 ++++ db/skill_cast_db.txt | 2 +- db/skill_unit_db.txt | 2 +- src/map/atcommand.c | 7 +++---- src/map/mob.c | 7 ++++--- src/map/pc.c | 2 +- src/map/skill.c | 14 ++++---------- 7 files changed, 18 insertions(+), 20 deletions(-) diff --git a/Changelog-Trunk.txt b/Changelog-Trunk.txt index bd193d8c2..7a92f52c1 100644 --- a/Changelog-Trunk.txt +++ b/Changelog-Trunk.txt @@ -4,6 +4,10 @@ AS OF SVN REV. 5091, WE ARE NOW USING TRUNK. ALL UNTESTED BUGFIXES/FEATURES GO IF YOU HAVE A WORKING AND TESTED BUGFIX PUT IT INTO STABLE AS WELL AS TRUNK. 2006/08/08 + * Casting Kaensin will clear out Suiton and viceversa now. [Skotlex] + * Fixed drop-rates (@whodrops) getting duplicates when you use @reloadmobdb + [Skotlex] + * Fixed unjailing not sending characters to Prontera. [Skotlex] * Fixed yet again AS_SPLASHER doing full damage on all characters. Now you can use the NK split damage value in the skill_db if you want damage divided by the amount of targets rather than by 2. [Skotlex] diff --git a/db/skill_cast_db.txt b/db/skill_cast_db.txt index 4540481ce..a08c358ab 100644 --- a/db/skill_cast_db.txt +++ b/db/skill_cast_db.txt @@ -886,7 +886,7 @@ //-- NJ_ZENYNAGE 526,0,5000,0,0,0 //-- NJ_TATAMIGAESHI // Duration1 is land-effect. Duration2 is the range-inmunity effect -527,0,3000,0,500,3000 +527,0,3000,0,1000,3000 //-- NJ_KASUMIKIRI // Delay unknown (if there is one) 528,0,0,0,30000:60000:90000:120000:150000:180000:210000:240000:270000:300000,0 //-- NJ_SHADOWJUMP // Delay unknown (if there is one) diff --git a/db/skill_unit_db.txt b/db/skill_unit_db.txt index 78b9eddb1..abfaa482e 100644 --- a/db/skill_unit_db.txt +++ b/db/skill_unit_db.txt @@ -89,6 +89,6 @@ 488,0xb9, , 3, 0, -1,all, 0x200 //CG_HERMODE 516,0xba, , 0, 3, 100,enemy, 0x000 //GS_DESPERADO 521,0xc2, , 0, 1,1000,enemy, 0x006 //GS_GROUNDDRIFT -527,0xbc, , -1, 0,1000,enemy, 0x000 //NJ_TATAMIGAESHI +527,0xbc, , -1, 0,2000,enemy, 0x000 //NJ_TATAMIGAESHI 535,0xbd, , -1, 0, 200,enemy, 0x008 //NJ_KAENSIN 538,0xbb,,1:1:1:2:2:2:3:3:3:4,0,-1,all,0x000 //NJ_SUITON diff --git a/src/map/atcommand.c b/src/map/atcommand.c index 76e5cd9db..1da8be43b 100644 --- a/src/map/atcommand.c +++ b/src/map/atcommand.c @@ -6523,9 +6523,7 @@ int atcommand_unjail( return -1; } - m_index = mapindex_name2id(MAP_JAIL); - - if (pl_sd->mapindex != m_index) { + if (pl_sd->mapindex != mapindex_name2id(MAP_JAIL)) { clif_displaymessage(fd, msg_table[119]); // This player is not in jails. return -1; } @@ -6536,7 +6534,8 @@ int atcommand_unjail( x = pl_sd->sc.data[SC_JAILED].val4&0xFFFF; y = pl_sd->sc.data[SC_JAILED].val4>>16; status_change_end(&pl_sd->bl,SC_JAILED,-1); - } + } else + m_index = mapindex_name2id(MAP_PRONTERA); if (pc_setpos(pl_sd, m_index, x, y, 3) == 0 || pc_setpos(pl_sd, mapindex_name2id(MAP_PRONTERA), 0, 0, 3) == 0 diff --git a/src/map/mob.c b/src/map/mob.c index cea8b388a..eea96d008 100644 --- a/src/map/mob.c +++ b/src/map/mob.c @@ -3359,7 +3359,8 @@ static int mob_readdb(void) if (k == MAX_SEARCH) continue; - memmove(&id->mob[k+1], &id->mob[k], (MAX_SEARCH-k-1)*sizeof(id->mob[0])); + if (id->mob[k].id != class_) + memmove(&id->mob[k+1], &id->mob[k], (MAX_SEARCH-k-1)*sizeof(id->mob[0])); id->mob[k].chance = mob_db_data[class_]->dropitem[i].p; id->mob[k].id = class_; } @@ -4028,8 +4029,8 @@ static int mob_read_sqldb(void) } if (k == MAX_SEARCH) continue; - - memmove(&id->mob[k+1], &id->mob[k], (MAX_SEARCH-k-1)*sizeof(id->mob[0])); + if (id->mob[k].id != class_) + memmove(&id->mob[k+1], &id->mob[k], (MAX_SEARCH-k-1)*sizeof(id->mob[0])); id->mob[k].chance = mob_db_data[class_]->dropitem[i].p; id->mob[k].id = class_; } diff --git a/src/map/pc.c b/src/map/pc.c index dc9134fa8..4c5046b4d 100644 --- a/src/map/pc.c +++ b/src/map/pc.c @@ -3267,7 +3267,7 @@ int pc_setpos(struct map_session_data *sd,unsigned short mapindex,int x,int y,in { //Misc map-changing settings party_send_dot_remove(sd); //minimap dot fix [Kevin] guild_send_dot_remove(sd); - skill_clear_group(&sd->bl, 1|4|(battle_config.traps_setting&2)); + skill_clear_group(&sd->bl, 1|(battle_config.traps_setting&2)); if (sd->sc.count) { //Cancel some map related stuff. if (sd->sc.data[SC_WARM].timer != -1) diff --git a/src/map/skill.c b/src/map/skill.c index 530d0ee99..2b3301547 100644 --- a/src/map/skill.c +++ b/src/map/skill.c @@ -2732,8 +2732,7 @@ int skill_castend_damage_id (struct block_list* src, struct block_list *bl, int break; case TK_JUMPKICK: - if (skillid == TK_JUMPKICK) - skill_attack(BF_WEAPON,src,src,bl,skillid,skilllv,tick,flag); + skill_attack(BF_WEAPON,src,src,bl,skillid,skilllv,tick,flag); if (unit_movepos(src, bl->x, bl->y, 0, 0)) clif_slide(src,bl->x,bl->y); break; @@ -6661,7 +6660,7 @@ struct skill_unit_group *skill_unitsetting (struct block_list *src, int skillid, if (sd) val1 = sd->status.child; break; case NJ_KAENSIN: - skill_clear_group(src, 4); //Delete previous Kaensins + skill_clear_group(src, 1); //Delete previous Kaensins/Suitons val2 = (skilllv+1)/2 + 4; break; @@ -9162,11 +9161,8 @@ int skill_clear_group (struct block_list *bl, int flag) case SA_VIOLENTGALE: case SA_LANDPROTECTOR: case NJ_SUITON: - if (flag&1) - group[count++]= ud->skillunit[i]; - break; case NJ_KAENSIN: - if (flag&4) + if (flag&1) group[count++]= ud->skillunit[i]; break; default: @@ -9876,9 +9872,7 @@ int skill_unit_timer_sub (struct block_list *bl, va_list ap) struct skill_unit_group *group; unsigned int tick; - nullpo_retr(0, bl); - nullpo_retr(0, ap); - nullpo_retr(0, unit=(struct skill_unit *)bl); + unit=(struct skill_unit *)bl; tick=va_arg(ap,unsigned int); if(!unit->alive) -- cgit v1.2.3-60-g2f50