summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrei Karas <akaras@inbox.ru>2018-12-01 20:03:46 +0300
committerAndrei Karas <akaras@inbox.ru>2018-12-12 23:24:46 +0300
commitd50e10c533cb43d94abf27c7fbb8b5e6c73ce01f (patch)
tree3943e7cd5ea6c528726430df2295ebd90399aa1c
parent22c267cd1256902d24417cbc0cd5689bc7bad60d (diff)
downloadhercules-d50e10c533cb43d94abf27c7fbb8b5e6c73ce01f.tar.gz
hercules-d50e10c533cb43d94abf27c7fbb8b5e6c73ce01f.tar.bz2
hercules-d50e10c533cb43d94abf27c7fbb8b5e6c73ce01f.tar.xz
hercules-d50e10c533cb43d94abf27c7fbb8b5e6c73ce01f.zip
Add packet CZ_STOP_USE_SKILL
-rw-r--r--src/map/clif.c12
-rw-r--r--src/map/clif.h1
-rw-r--r--src/map/packets.h1
-rw-r--r--src/map/packets_struct.h6
4 files changed, 20 insertions, 0 deletions
diff --git a/src/map/clif.c b/src/map/clif.c
index a01b9f7c1..362264226 100644
--- a/src/map/clif.c
+++ b/src/map/clif.c
@@ -12126,6 +12126,17 @@ static void clif_parse_startUseSkillToId(int fd, struct map_session_data *sd)
#endif
}
+static void clif_parse_stopUseSkillToId(int fd, struct map_session_data *sd) __attribute__((nonnull (2)));
+static void clif_parse_stopUseSkillToId(int fd, struct map_session_data *sd)
+{
+#if PACKETVER_MAIN_NUM >= 20181002 || PACKETVER_RE_NUM >= 20181002 || PACKETVER_ZERO_NUM >= 20181010
+ const struct PACKET_CZ_STOP_USE_SKILL *p = RFIFOP(fd, 0);
+ if (p->skillId != GC_ROLLINGCUTTER) {
+ ShowWarning("Packet CZ_STOP_USE_SKILL usage for unknown skill: %d\n", p->skillId);
+ }
+#endif
+}
+
/*==========================================
* Client tells server he'd like to use AoE skill id 'skill_id' of level 'skill_lv' on 'x','y' location
*------------------------------------------*/
@@ -22963,6 +22974,7 @@ void clif_defaults(void)
clif->pUseSkillToId_homun = clif_parse_UseSkillToId_homun;
clif->pUseSkillToId_mercenary = clif_parse_UseSkillToId_mercenary;
clif->pStartUseSkillToId = clif_parse_startUseSkillToId;
+ clif->pStopUseSkillToId = clif_parse_stopUseSkillToId;
clif->useSkillToIdReal = clif_useSkillToIdReal;
clif->pUseSkillToPos = clif_parse_UseSkillToPos;
clif->pUseSkillToPosSub = clif_parse_UseSkillToPosSub;
diff --git a/src/map/clif.h b/src/map/clif.h
index faf752528..147dcfee3 100644
--- a/src/map/clif.h
+++ b/src/map/clif.h
@@ -1293,6 +1293,7 @@ struct clif_interface {
void (*useSkillToIdReal) (int fd, struct map_session_data *sd, int skill_id, int skill_lv, int target_id);
void (*pUseSkillToId) (int fd, struct map_session_data *sd);
void (*pStartUseSkillToId) (int fd, struct map_session_data *sd);
+ void (*pStopUseSkillToId) (int fd, struct map_session_data *sd);
void (*pUseSkillToId_homun) (struct homun_data *hd, struct map_session_data *sd, int64 tick, uint16 skill_id, uint16 skill_lv, int target_id);
void (*pUseSkillToId_mercenary) (struct mercenary_data *md, struct map_session_data *sd, int64 tick, uint16 skill_id, uint16 skill_lv, int target_id);
void (*pUseSkillToPos) (int fd, struct map_session_data *sd);
diff --git a/src/map/packets.h b/src/map/packets.h
index 4fcb263a2..507c8362d 100644
--- a/src/map/packets.h
+++ b/src/map/packets.h
@@ -1907,6 +1907,7 @@ packet(0x96e,clif->ackmergeitems);
#if PACKETVER_MAIN_NUM >= 20181002 || PACKETVER_RE_NUM >= 20181002 || PACKETVER_ZERO_NUM >= 20181010
packet(0x0b10,clif->pStartUseSkillToId);
+ packet(0x0b11,clif->pStopUseSkillToId);
#endif
#endif /* MAP_PACKETS_H */
diff --git a/src/map/packets_struct.h b/src/map/packets_struct.h
index 69df71791..f6b1a61fb 100644
--- a/src/map/packets_struct.h
+++ b/src/map/packets_struct.h
@@ -2973,6 +2973,12 @@ struct PACKET_CZ_START_USE_SKILL {
uint32 targetId;
} __attribute__((packed));
DEFINE_PACKET_HEADER(CZ_START_USE_SKILL, 0x0b10);
+
+struct PACKET_CZ_STOP_USE_SKILL {
+ int16 packetType;
+ int16 skillId;
+} __attribute__((packed));
+DEFINE_PACKET_HEADER(CZ_STOP_USE_SKILL, 0x0b11);
#endif
#if !defined(sun) && (!defined(__NETBSD__) || __NetBSD_Version__ >= 600000000) // NetBSD 5 and Solaris don't like pragma pack but accept the packed attribute