summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrei Karas <akaras@inbox.ru>2019-03-29 22:17:06 +0300
committerAndrei Karas <akaras@inbox.ru>2019-04-07 22:38:35 +0300
commit0a5ee140c74989d5fb2cbc9a22150ff66bbcfb07 (patch)
tree642ca0bab8388ed480c4e78e9ced7d631f6c10fc
parent83a26970a7e314872a360bac8d4c5408d5120c51 (diff)
downloadhercules-0a5ee140c74989d5fb2cbc9a22150ff66bbcfb07.tar.gz
hercules-0a5ee140c74989d5fb2cbc9a22150ff66bbcfb07.tar.bz2
hercules-0a5ee140c74989d5fb2cbc9a22150ff66bbcfb07.tar.xz
hercules-0a5ee140c74989d5fb2cbc9a22150ff66bbcfb07.zip
Add chat command /resetcooltime
Add packet CZ_COOLDOWN_RESET.
-rw-r--r--src/map/clif.c9
-rw-r--r--src/map/clif.h1
-rw-r--r--src/map/packets.h5
-rw-r--r--src/map/packets_struct.h7
4 files changed, 22 insertions, 0 deletions
diff --git a/src/map/clif.c b/src/map/clif.c
index 85e1a192b..605362fc5 100644
--- a/src/map/clif.c
+++ b/src/map/clif.c
@@ -22193,6 +22193,14 @@ static int clif_pingTimerSub(struct map_session_data *sd, va_list ap)
return 0;
}
+static void clif_parse_ResetCooldown(int fd, struct map_session_data *sd) __attribute__((nonnull (2)));
+static void clif_parse_ResetCooldown(int fd, struct map_session_data *sd)
+{
+ char cmd[15];
+ sprintf(cmd,"%ccddebug reset", atcommand->at_symbol);
+ atcommand->exec(fd, sd, cmd, true);
+}
+
/*==========================================
* Main client packet processing function
*------------------------------------------*/
@@ -23386,4 +23394,5 @@ void clif_defaults(void)
clif->ping = clif_ping;
clif->pingTimer = clif_pingTimer;
clif->pingTimerSub = clif_pingTimerSub;
+ clif->pResetCooldown = clif_parse_ResetCooldown;
}
diff --git a/src/map/clif.h b/src/map/clif.h
index a9413465b..241214e8b 100644
--- a/src/map/clif.h
+++ b/src/map/clif.h
@@ -1585,6 +1585,7 @@ struct clif_interface {
void (*ping) (struct map_session_data *sd);
int (*pingTimer) (int tid, int64 tick, int id, intptr_t data);
int (*pingTimerSub) (struct map_session_data *sd, va_list ap);
+ void (*pResetCooldown) (int fd, struct map_session_data *sd);
};
#ifdef HERCULES_CORE
diff --git a/src/map/packets.h b/src/map/packets.h
index 279c19d93..bf80d96c7 100644
--- a/src/map/packets.h
+++ b/src/map/packets.h
@@ -1798,6 +1798,11 @@ packet(0x96e,clif->ackmergeitems);
packet(0x0a77,clif->pCameraInfo); // CZ_CAMERA_INFO
#endif
+// all 20160622+
+#if PACKETVER >= 20160622
+ packet(0x0a88,clif->pResetCooldown);
+#endif
+
// 2017-02-28aRagexeRE
#if PACKETVER >= 20170228
// new packets
diff --git a/src/map/packets_struct.h b/src/map/packets_struct.h
index b12193997..109532c3e 100644
--- a/src/map/packets_struct.h
+++ b/src/map/packets_struct.h
@@ -3174,6 +3174,13 @@ struct PACKET_ZC_PING {
DEFINE_PACKET_HEADER(ZC_PING, 0x0b1d);
#endif
+#if PACKETVER >= 20160622
+struct PACKET_CZ_COOLDOWN_RESET {
+ int16 packetType;
+} __attribute__((packed));
+DEFINE_PACKET_HEADER(CZ_COOLDOWN_RESET, 0x0a88);
+#endif
+
#if !defined(sun) && (!defined(__NETBSD__) || __NetBSD_Version__ >= 600000000) // NetBSD 5 and Solaris don't like pragma pack but accept the packed attribute
#pragma pack(pop)
#endif // not NetBSD < 6 / Solaris