summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Changelog-Trunk.txt4
-rw-r--r--db/skill_cast_db.txt2
-rw-r--r--db/skill_unit_db.txt2
-rw-r--r--src/map/atcommand.c7
-rw-r--r--src/map/mob.c7
-rw-r--r--src/map/pc.c2
-rw-r--r--src/map/skill.c14
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)