diff options
-rw-r--r-- | Changelog-Trunk.txt | 4 | ||||
-rw-r--r-- | src/map/mob.c | 2 | ||||
-rw-r--r-- | src/map/skill.c | 12 | ||||
-rw-r--r-- | src/map/storage.c | 5 |
4 files changed, 12 insertions, 11 deletions
diff --git a/Changelog-Trunk.txt b/Changelog-Trunk.txt index 36996c40e..7e9ed73a6 100644 --- a/Changelog-Trunk.txt +++ b/Changelog-Trunk.txt @@ -5,6 +5,10 @@ IF YOU HAVE A WORKING AND TESTED BUGFIX PUT IT INTO STABLE AS WELL AS TRUNK. EV GOES INTO TRUNK AND WILL BE MERGED INTO STABLE BY VALARIS AND WIZPUTER. -- VALARIS
2006/01/31
+ * Fixed skill_check_cloak to use the current skill level of the cloaking
+ skill and not pc_checkskill() to know if a cloaker away from a wall should
+ be uncloaked. [Skotlex]
+ * Likely fixed opening guild storage. [Skotlex]
* Removed no penelty mapflag for nifilheim. Confirmed on iRO. [Kayla]
* Changed default value of gm_cant_drop_max_lvl to 98. Also reworded the
comments for cant_drop_max and min. [Kayla]
diff --git a/src/map/mob.c b/src/map/mob.c index fb7b30bef..d07b420d2 100644 --- a/src/map/mob.c +++ b/src/map/mob.c @@ -565,7 +565,7 @@ static int mob_walk(struct mob_data *md,unsigned int tick,int data) map_foreachinmovearea(clif_mobinsight,md->bl.m,x-AREA_SIZE,y-AREA_SIZE,x+AREA_SIZE,y+AREA_SIZE,-dx,-dy,BL_PC,md);
md->state.state=MS_IDLE;
- if(md->option&4)
+ if(md->option&OPTION_CLOAK)
skill_check_cloaking(&md->bl);
}
if((i=calc_next_walk_step(md))>0){
diff --git a/src/map/skill.c b/src/map/skill.c index e1f6d6715..90c6a5f69 100644 --- a/src/map/skill.c +++ b/src/map/skill.c @@ -10030,15 +10030,15 @@ int skill_enchant_elemental_end (struct block_list *bl, int type) int skill_check_cloaking(struct block_list *bl)
{
struct map_session_data *sd = NULL;
+ struct status_change *sc_data;
static int dx[] = { 0, 1, 0, -1, -1, 1, 1, -1}; //optimized by Lupus
static int dy[] = {-1, 0, 1, 0, -1, -1, 1, 1};
int end = 1,i;
nullpo_retr(1, bl);
- if (bl->type == BL_PC) {
- nullpo_retr(1, sd = (struct map_session_data *)bl);
- }
+ if (bl->type == BL_PC)
+ sd = (struct map_session_data *)bl;
if ((bl->type == BL_PC && battle_config.pc_cloak_check_type&1) ||
(bl->type != BL_PC && battle_config.monster_cloak_check_type&1))
@@ -10053,10 +10053,10 @@ int skill_check_cloaking(struct block_list *bl) end = 0; //No wall check.
if(end){
- if ((sd && pc_checkskill(sd,AS_CLOAKING)<3) || bl->type == BL_MOB) {
+ sc_data = status_get_sc_data(bl);
+ if (sc_data && sc_data[SC_CLOAKING].timer != -1 && sc_data[SC_CLOAKING].val1 < 3) {
status_change_end(bl, SC_CLOAKING, -1);
- }
- else if (sd && sd->sc_data[SC_CLOAKING].val3 != 130) {
+ } else if (sd && sd->sc_data[SC_CLOAKING].val3 != 130) {
status_quick_recalc_speed (sd, AS_CLOAKING, 130, 1);
}
}
diff --git a/src/map/storage.c b/src/map/storage.c index b90d2d306..db5f097ee 100644 --- a/src/map/storage.c +++ b/src/map/storage.c @@ -464,11 +464,8 @@ int storage_guild_storageopen(struct map_session_data *sd) clif_updateguildstorageamount(sd,gstor);
return 0;
}
- else {
- gstor = guild2storage(sd->status.guild_id);
- gstor->storage_status = 1;
+ else
intif_request_guild_storage(sd->status.account_id,sd->status.guild_id);
- }
return 0;
}
|