From 1be152193d607480252ea64d5058dfdda0f0d38d Mon Sep 17 00:00:00 2001 From: Lance Date: Mon, 17 Apr 2006 09:08:16 +0000 Subject: [PATCH] * Clearing the dummy npc after fooling the client. git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@6128 54d463be-8e91-2dee-dedb-b68131a5f0ec --- Changelog-Trunk.txt | 3 ++ src/map/clif.c | 68 +++++++++++++++++++++++++++++---------------- 2 files changed, 47 insertions(+), 24 deletions(-) diff --git a/Changelog-Trunk.txt b/Changelog-Trunk.txt index 6ceea49bc9..d490a60290 100644 --- a/Changelog-Trunk.txt +++ b/Changelog-Trunk.txt @@ -3,6 +3,9 @@ Date Added AS OF SVN REV. 5091, WE ARE NOW USING TRUNK. ALL UNTESTED BUGFIXES/FEATURES GO INTO TRUNK. IF YOU HAVE A WORKING AND TESTED BUGFIX PUT IT INTO STABLE AS WELL AS TRUNK. +2006/04/17 + * Clearing the dummy npc after fooling the client. [Lance] + 2006/04/16 * Fixed the first call to the walk timers having the tick interval halved, which made all walking timers be off by half cell with the actual position diff --git a/src/map/clif.c b/src/map/clif.c index c32274ff90..a295e68a9c 100644 --- a/src/map/clif.c +++ b/src/map/clif.c @@ -1734,15 +1734,23 @@ int clif_scriptmenu(struct map_session_data *sd, int npcid, char *mes) { nullpo_retr(0, sd); - if(map_id2bl(npcid)->m < 0) - send_fake_npc(sd, npcid); - fd=sd->fd; - WFIFOW(fd,0)=0xb7; - WFIFOW(fd,2)=slen; - WFIFOL(fd,4)=npcid; - strcpy((char*)WFIFOP(fd,8),mes); - WFIFOSET(fd,WFIFOW(fd,2)); + + if(map_id2bl(npcid)->m < 0){ + send_fake_npc(sd, npcid); + WFIFOW(fd,0)=0xb7; + WFIFOW(fd,2)=slen; + WFIFOL(fd,4)=npcid; + strcpy((char*)WFIFOP(fd,8),mes); + WFIFOSET(fd,WFIFOW(fd,2)); + clif_clearchar_id(npcid, 0, fd); + } else { + WFIFOW(fd,0)=0xb7; + WFIFOW(fd,2)=slen; + WFIFOL(fd,4)=npcid; + strcpy((char*)WFIFOP(fd,8),mes); + WFIFOSET(fd,WFIFOW(fd,2)); + } return 0; } @@ -1755,15 +1763,21 @@ int clif_scriptinput(struct map_session_data *sd, int npcid) { int fd; nullpo_retr(0, sd); - - if(map_id2bl(npcid)->m < 0) - send_fake_npc(sd, npcid); - fd=sd->fd; - WFIFOHEAD(fd, packet_len_table[0x142]); - WFIFOW(fd,0)=0x142; - WFIFOL(fd,2)=npcid; - WFIFOSET(fd,packet_len_table[0x142]); + + if(map_id2bl(npcid)->m < 0){ + send_fake_npc(sd, npcid); + WFIFOHEAD(fd, packet_len_table[0x142]); + WFIFOW(fd,0)=0x142; + WFIFOL(fd,2)=npcid; + WFIFOSET(fd,packet_len_table[0x142]); + clif_clearchar_id(npcid, 0, fd); + } else { + WFIFOHEAD(fd, packet_len_table[0x142]); + WFIFOW(fd,0)=0x142; + WFIFOL(fd,2)=npcid; + WFIFOSET(fd,packet_len_table[0x142]); + } return 0; } @@ -1776,15 +1790,21 @@ int clif_scriptinputstr(struct map_session_data *sd, int npcid) { int fd; nullpo_retr(0, sd); - - if(map_id2bl(npcid)->m < 0) - send_fake_npc(sd, npcid); - fd=sd->fd; - WFIFOHEAD(fd, packet_len_table[0x1d4]); - WFIFOW(fd,0)=0x1d4; - WFIFOL(fd,2)=npcid; - WFIFOSET(fd,packet_len_table[0x1d4]); + + if(map_id2bl(npcid)->m < 0){ + send_fake_npc(sd, npcid); + WFIFOHEAD(fd, packet_len_table[0x1d4]); + WFIFOW(fd,0)=0x1d4; + WFIFOL(fd,2)=npcid; + WFIFOSET(fd,packet_len_table[0x1d4]); + clif_clearchar_id(npcid, 0, fd); + } else { + WFIFOHEAD(fd, packet_len_table[0x1d4]); + WFIFOW(fd,0)=0x1d4; + WFIFOL(fd,2)=npcid; + WFIFOSET(fd,packet_len_table[0x1d4]); + } return 0; }