summaryrefslogtreecommitdiff
path: root/src/map
diff options
context:
space:
mode:
authorskotlex <skotlex@54d463be-8e91-2dee-dedb-b68131a5f0ec>2006-06-05 18:35:41 +0000
committerskotlex <skotlex@54d463be-8e91-2dee-dedb-b68131a5f0ec>2006-06-05 18:35:41 +0000
commitbe333fef8f4e91bebd76d0fb1c6ca714915d5dbb (patch)
tree6d563cc846d8611af820f1b86c7367b2e09e4091 /src/map
parentf97561eb2ee94d591170e1f578c0cf736669b210 (diff)
downloadhercules-be333fef8f4e91bebd76d0fb1c6ca714915d5dbb.tar.gz
hercules-be333fef8f4e91bebd76d0fb1c6ca714915d5dbb.tar.bz2
hercules-be333fef8f4e91bebd76d0fb1c6ca714915d5dbb.tar.xz
hercules-be333fef8f4e91bebd76d0fb1c6ca714915d5dbb.zip
- Fog of Wall won't affect the caster now in any way.
- Added a missing status_calc_mob on mob_spawn_guardian_sub - Added clif_fixpos packets before attacking for the first time to clear any position sync issues with the client. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@6985 54d463be-8e91-2dee-dedb-b68131a5f0ec
Diffstat (limited to 'src/map')
-rw-r--r--src/map/mob.c2
-rw-r--r--src/map/skill.c5
-rw-r--r--src/map/unit.c11
3 files changed, 13 insertions, 5 deletions
diff --git a/src/map/mob.c b/src/map/mob.c
index 55bc02af9..8968136dd 100644
--- a/src/map/mob.c
+++ b/src/map/mob.c
@@ -421,6 +421,8 @@ static int mob_spawn_guardian_sub(int tid,unsigned int tick,int id,int data)
md->guardian_data->emblem_id = g->emblem_id;
memcpy (md->guardian_data->guild_name, g->name, NAME_LENGTH);
md->guardian_data->guardup_lv = guild_checkskill(g,GD_GUARDUP);
+ if(md->guardian_data->guardup_lv)
+ status_calc_mob(md, 0); //Give bonuses.
return 0;
}
diff --git a/src/map/skill.c b/src/map/skill.c
index 25601dc56..b057f256b 100644
--- a/src/map/skill.c
+++ b/src/map/skill.c
@@ -6570,8 +6570,7 @@ int skill_unit_onplace(struct skill_unit *src,struct block_list *bl,unsigned int
case UNT_SERVICEFORYOU:
if (sg->src_id==bl->id && (!sc || sc->data[SC_SPIRIT].timer == -1 || sc->data[SC_SPIRIT].val2 != SL_BARDDANCER))
return 0;
- if (!sc)
- break;
+ if (!sc) return 0;
if (sc->data[type].timer==-1)
sc_start4(bl,type,100,sg->skill_lv,sg->val1,sg->val2,0,sg->limit);
else if (sc->data[type].val4 == 1) {
@@ -6582,6 +6581,8 @@ int skill_unit_onplace(struct skill_unit *src,struct block_list *bl,unsigned int
}
break;
case UNT_FOGWALL:
+ if (sg->src_id==bl->id)
+ return 0;
if (sc && sc->data[type].timer==-1)
{
sc_start4(bl, type, 100, sg->skill_lv, sg->val1, sg->val2, sg->group_id, sg->limit);
diff --git a/src/map/unit.c b/src/map/unit.c
index d8ef113e7..4703820cc 100644
--- a/src/map/unit.c
+++ b/src/map/unit.c
@@ -229,8 +229,11 @@ static int unit_walktoxy_timer(int tid,unsigned int tick,int id,int data)
}
if (tbl->m == bl->m && check_distance_bl(bl, tbl, ud->chaserange))
{ //Reached destination.
- if (ud->state.attack_continue)
+ if (ud->state.attack_continue) {
+ clif_fixpos(bl); //Aegis uses one before every attack, we should
+ //only need this one for syncing purposes. [Skotlex]
unit_attack(bl, tbl->id, ud->state.attack_continue);
+ }
} else { //Update chase-path
unit_walktobl(bl, tbl, ud->chaserange, ud->state.walk_easy|(ud->state.attack_continue?2:0));
return 0;
@@ -238,8 +241,6 @@ static int unit_walktoxy_timer(int tid,unsigned int tick,int id,int data)
} else { //Stopped walking. Update to_x and to_y to current location [Skotlex]
ud->to_x = bl->x;
ud->to_y = bl->y;
-// if (bl->type == BL_NPC) //Original eA code had this one only for BL_NPCs
-// clif_fixpos(bl);
}
return 0;
}
@@ -1247,6 +1248,10 @@ static int unit_attack_timer_sub(struct block_list* src, int tid, unsigned int t
return 1;
}
+ //Sync packet only for players.
+ //Non-players use the sync packet on the walk timer. [Skotlex]
+ if (tid == -1 && sd) clif_fixpos(src);
+
if(DIFF_TICK(ud->attackabletime,tick) <= 0) {
if (battle_config.attack_direction_change &&
(src->type&battle_config.attack_direction_change)) {