diff options
author | skotlex <skotlex@54d463be-8e91-2dee-dedb-b68131a5f0ec> | 2006-03-31 15:53:36 +0000 |
---|---|---|
committer | skotlex <skotlex@54d463be-8e91-2dee-dedb-b68131a5f0ec> | 2006-03-31 15:53:36 +0000 |
commit | 0521cef44f741f120f3ba0e8573653a2f018c048 (patch) | |
tree | 34de4e8c923c157726e19483e061433cb1e676cd /src | |
parent | a8aadf64c9e04ac2572a22f94c89bf54aee0edf1 (diff) | |
download | hercules-0521cef44f741f120f3ba0e8573653a2f018c048.tar.gz hercules-0521cef44f741f120f3ba0e8573653a2f018c048.tar.bz2 hercules-0521cef44f741f120f3ba0e8573653a2f018c048.tar.xz hercules-0521cef44f741f120f3ba0e8573653a2f018c048.zip |
- Fixed an infinite recursion in the Wedding Recall skills.
- UNT_ATTACK_SKILLS unit packets won't be sent to the client as they are supposed to be invisible anyway.
git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@5828 54d463be-8e91-2dee-dedb-b68131a5f0ec
Diffstat (limited to 'src')
-rw-r--r-- | src/map/clif.c | 3 | ||||
-rw-r--r-- | src/map/skill.c | 18 |
2 files changed, 15 insertions, 6 deletions
diff --git a/src/map/clif.c b/src/map/clif.c index 8e09d81d3..676f7c707 100644 --- a/src/map/clif.c +++ b/src/map/clif.c @@ -5311,6 +5311,9 @@ int clif_skill_setunit(struct skill_unit *unit) bl=map_id2bl(unit->group->src_id);
+ if (unit->group->unit_id == UNT_ATTACK_SKILLS)
+ return 0; //These are invisible client-side. [Skotlex]
+
#if PACKETVER < 3
memset(WBUFP(buf, 0),0,packet_len_table[0x11f]);
WBUFW(buf, 0)=0x11f;
diff --git a/src/map/skill.c b/src/map/skill.c index 84ba770df..43c575e75 100644 --- a/src/map/skill.c +++ b/src/map/skill.c @@ -7300,12 +7300,18 @@ int skill_unit_onlimit(struct skill_unit *src,unsigned int tick) case UNT_CALLFAMILY: /* ‚ ‚È‚½‚É?‚¢‚½‚¢ */
{
struct map_session_data *sd = NULL;
- if(sg->val1 && (sd = map_charid2sd(sg->val1))
- && !map[sd->bl.m].flag.nowarp)
- pc_setpos(sd,map[src->bl.m].index,src->bl.x,src->bl.y,3);
- if(sg->val2 && (sd = map_charid2sd(sg->val2))
- && !map[sd->bl.m].flag.nowarp)
- pc_setpos(sd,map[src->bl.m].index,src->bl.x,src->bl.y,3);
+ if(sg->val1) {
+ sd = map_charid2sd(sg->val1);
+ sg->val1 = 0;
+ if (sd && !map[sd->bl.m].flag.nowarp)
+ pc_setpos(sd,map[src->bl.m].index,src->bl.x,src->bl.y,3);
+ }
+ if(sg->val2) {
+ sd = map_charid2sd(sg->val2);
+ sg->val2 = 0;
+ if (sd && !map[sd->bl.m].flag.nowarp)
+ pc_setpos(sd,map[src->bl.m].index,src->bl.x,src->bl.y,3);
+ }
}
break;
}
|