summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Changelog-Trunk.txt3
-rw-r--r--src/map/clif.c3
-rw-r--r--src/map/skill.c18
3 files changed, 18 insertions, 6 deletions
diff --git a/Changelog-Trunk.txt b/Changelog-Trunk.txt
index 004ef00f7..9c57eb08d 100644
--- a/Changelog-Trunk.txt
+++ b/Changelog-Trunk.txt
@@ -4,6 +4,9 @@ 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/03/31
+ * Fixed an infinite recursion in the Wedding Recall skills. [Skotlex]
+ * UNT_ATTACK_SKILLS unit packets won't be sent to the client as they are
+ supposed to be invisible anyway. [Skotlex]
* Started work on commands for the IRC Bot, At the moment you can use !eakami <message>
to broadcast a message, edit ALLOWED_NICK in irc.c to change the nickname
of the person that is allowed to use it (Shitty authentication method, I know,
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;
}