summaryrefslogtreecommitdiff
path: root/src/map
diff options
context:
space:
mode:
authorskotlex <skotlex@54d463be-8e91-2dee-dedb-b68131a5f0ec>2006-03-31 15:53:36 +0000
committerskotlex <skotlex@54d463be-8e91-2dee-dedb-b68131a5f0ec>2006-03-31 15:53:36 +0000
commit0521cef44f741f120f3ba0e8573653a2f018c048 (patch)
tree34de4e8c923c157726e19483e061433cb1e676cd /src/map
parenta8aadf64c9e04ac2572a22f94c89bf54aee0edf1 (diff)
downloadhercules-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/map')
-rw-r--r--src/map/clif.c3
-rw-r--r--src/map/skill.c18
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;
}