From 26457909e94c910489077ce2643beb08cab33807 Mon Sep 17 00:00:00 2001
From: Andrei Karas <akaras@inbox.ru>
Date: Wed, 28 Aug 2019 21:33:38 +0300
Subject: Update packets table up to 2019-09-18

---
 src/common/packets/packets2019_len_main.h | 52 ++++++++++++++++++++++++++++
 src/common/packets/packets2019_len_re.h   | 52 ++++++++++++++++++++++++++++
 src/common/packets/packets2019_len_zero.h | 57 +++++++++++++++++++++++++++++++
 3 files changed, 161 insertions(+)

diff --git a/src/common/packets/packets2019_len_main.h b/src/common/packets/packets2019_len_main.h
index 949aae804..424abe14f 100644
--- a/src/common/packets/packets2019_len_main.h
+++ b/src/common/packets/packets2019_len_main.h
@@ -103,7 +103,11 @@ packetLen(0x007c, 44)  // ZC_NOTIFY_STANDENTRY_NPC
 packetLen(0x007d, 2)  // CZ_NOTIFY_ACTORINIT
 
 // Packet: 0x007e
+#if PACKETVER >= 20190904
+packetLen(0x007e, 46)  // CZ_REQUEST_TIME
+#elif PACKETVER >= 20190109
 packetLen(0x007e, 105)  // CZ_REQUEST_TIME
+#endif
 
 // Packet: 0x007f
 packetLen(0x007f, 6)  // ZC_NOTIFY_TIME
@@ -916,7 +920,11 @@ packetLen(0x018f, 8)  // ZC_ACK_REQMAKINGITEM
 packetLen(0x0190, 23)  // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
 
 // Packet: 0x0191
+#if PACKETVER >= 20190904
+packetLen(0x0191, 27)  // ZC_TALKBOX_CHATCONTENTS
+#elif PACKETVER >= 20190109
 packetLen(0x0191, 86)  // ZC_TALKBOX_CHATCONTENTS
+#endif
 
 // Packet: 0x0192
 packetLen(0x0192, 24)  // ZC_UPDATE_MAPINFO
@@ -1966,7 +1974,11 @@ packetLen(0x0365, 8)  // CZ_MOVE_ITEM_FROM_STORE_TO_BODY2
 packetLen(0x0366, 10)  // CZ_USE_SKILL_TOGROUND2
 
 // Packet: 0x0367
+#if PACKETVER >= 20190904
+packetLen(0x0367, 31)  // CZ_USE_SKILL_TOGROUND_WITHTALKBOX2
+#elif PACKETVER >= 20190109
 packetLen(0x0367, 90)  // CZ_USE_SKILL_TOGROUND_WITHTALKBOX2
+#endif
 
 // Packet: 0x0368
 packetLen(0x0368, 6)  // CZ_REQNAME2
@@ -4710,5 +4722,45 @@ packetLen(0x0b54, 8)
 packetLen(0x0b55, -1)
 #endif
 
+// Packet: 0x0b56
+#if PACKETVER >= 20190904
+packetLen(0x0b56, -1)
+#endif
+
+// Packet: 0x0b57
+#if PACKETVER >= 20190904
+packetLen(0x0b57, -1)
+#endif
+
+// Packet: 0x0b58
+#if PACKETVER >= 20190904
+packetLen(0x0b58, 2)
+#endif
+
+// Packet: 0x0b59
+#if PACKETVER >= 20190918
+packetLen(0x0b59, 2)
+#endif
+
+// Packet: 0x0b5a
+#if PACKETVER >= 20190918
+packetLen(0x0b5a, 4)
+#endif
+
+// Packet: 0x0b5b
+#if PACKETVER >= 20190918
+packetLen(0x0b5b, -1)
+#endif
+
+// Packet: 0x0b5c
+#if PACKETVER >= 20190918
+packetLen(0x0b5c, 10)
+#endif
+
+// Packet: 0x0b5d
+#if PACKETVER >= 20190918
+packetLen(0x0b5d, 2)
+#endif
+
 
 #endif /* COMMON_PACKETS2019_LEN_MAIN_H */
diff --git a/src/common/packets/packets2019_len_re.h b/src/common/packets/packets2019_len_re.h
index c31a10191..32c14775d 100644
--- a/src/common/packets/packets2019_len_re.h
+++ b/src/common/packets/packets2019_len_re.h
@@ -103,7 +103,11 @@ packetLen(0x007c, 44)  // ZC_NOTIFY_STANDENTRY_NPC
 packetLen(0x007d, 2)  // CZ_NOTIFY_ACTORINIT
 
 // Packet: 0x007e
+#if PACKETVER >= 20190904
+packetLen(0x007e, 46)  // CZ_REQUEST_TIME
+#elif PACKETVER >= 20190109
 packetLen(0x007e, 105)  // CZ_REQUEST_TIME
+#endif
 
 // Packet: 0x007f
 packetLen(0x007f, 6)  // ZC_NOTIFY_TIME
@@ -916,7 +920,11 @@ packetLen(0x018f, 8)  // ZC_ACK_REQMAKINGITEM
 packetLen(0x0190, 23)  // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
 
 // Packet: 0x0191
+#if PACKETVER >= 20190904
+packetLen(0x0191, 27)  // ZC_TALKBOX_CHATCONTENTS
+#elif PACKETVER >= 20190109
 packetLen(0x0191, 86)  // ZC_TALKBOX_CHATCONTENTS
+#endif
 
 // Packet: 0x0192
 packetLen(0x0192, 24)  // ZC_UPDATE_MAPINFO
@@ -1972,7 +1980,11 @@ packetLen(0x0365, 8)  // CZ_MOVE_ITEM_FROM_STORE_TO_BODY2
 packetLen(0x0366, 10)  // CZ_USE_SKILL_TOGROUND2
 
 // Packet: 0x0367
+#if PACKETVER >= 20190904
+packetLen(0x0367, 31)  // CZ_USE_SKILL_TOGROUND_WITHTALKBOX2
+#elif PACKETVER >= 20190109
 packetLen(0x0367, 90)  // CZ_USE_SKILL_TOGROUND_WITHTALKBOX2
+#endif
 
 // Packet: 0x0368
 packetLen(0x0368, 6)  // CZ_REQNAME2
@@ -4722,5 +4734,45 @@ packetLen(0x0b54, 8)
 packetLen(0x0b55, -1)
 #endif
 
+// Packet: 0x0b56
+#if PACKETVER >= 20190904
+packetLen(0x0b56, -1)
+#endif
+
+// Packet: 0x0b57
+#if PACKETVER >= 20190904
+packetLen(0x0b57, -1)
+#endif
+
+// Packet: 0x0b58
+#if PACKETVER >= 20190904
+packetLen(0x0b58, 2)
+#endif
+
+// Packet: 0x0b59
+#if PACKETVER >= 20190918
+packetLen(0x0b59, 2)
+#endif
+
+// Packet: 0x0b5a
+#if PACKETVER >= 20190918
+packetLen(0x0b5a, 4)
+#endif
+
+// Packet: 0x0b5b
+#if PACKETVER >= 20190918
+packetLen(0x0b5b, -1)
+#endif
+
+// Packet: 0x0b5c
+#if PACKETVER >= 20190918
+packetLen(0x0b5c, 10)
+#endif
+
+// Packet: 0x0b5d
+#if PACKETVER >= 20190918
+packetLen(0x0b5d, 2)
+#endif
+
 
 #endif /* COMMON_PACKETS2019_LEN_RE_H */
diff --git a/src/common/packets/packets2019_len_zero.h b/src/common/packets/packets2019_len_zero.h
index abe81796c..9cdc9db05 100644
--- a/src/common/packets/packets2019_len_zero.h
+++ b/src/common/packets/packets2019_len_zero.h
@@ -103,7 +103,11 @@ packetLen(0x007c, 44)  // ZC_NOTIFY_STANDENTRY_NPC
 packetLen(0x007d, 2)  // CZ_NOTIFY_ACTORINIT
 
 // Packet: 0x007e
+#if PACKETVER >= 20190828
+packetLen(0x007e, 46)  // CZ_REQUEST_TIME
+#elif PACKETVER >= 20190116
 packetLen(0x007e, 105)  // CZ_REQUEST_TIME
+#endif
 
 // Packet: 0x007f
 packetLen(0x007f, 6)  // ZC_NOTIFY_TIME
@@ -916,7 +920,11 @@ packetLen(0x018f, 8)  // ZC_ACK_REQMAKINGITEM
 packetLen(0x0190, 23)  // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
 
 // Packet: 0x0191
+#if PACKETVER >= 20190828
+packetLen(0x0191, 27)  // ZC_TALKBOX_CHATCONTENTS
+#elif PACKETVER >= 20190116
 packetLen(0x0191, 86)  // ZC_TALKBOX_CHATCONTENTS
+#endif
 
 // Packet: 0x0192
 packetLen(0x0192, 24)  // ZC_UPDATE_MAPINFO
@@ -1966,7 +1974,11 @@ packetLen(0x0365, 8)  // CZ_MOVE_ITEM_FROM_STORE_TO_BODY2
 packetLen(0x0366, 10)  // CZ_USE_SKILL_TOGROUND2
 
 // Packet: 0x0367
+#if PACKETVER >= 20190828
+packetLen(0x0367, 31)  // CZ_USE_SKILL_TOGROUND_WITHTALKBOX2
+#elif PACKETVER >= 20190116
 packetLen(0x0367, 90)  // CZ_USE_SKILL_TOGROUND_WITHTALKBOX2
+#endif
 
 // Packet: 0x0368
 packetLen(0x0368, 6)  // CZ_REQNAME2
@@ -4697,5 +4709,50 @@ packetLen(0x0b53, 52)
 packetLen(0x0b54, 8)
 #endif
 
+// Packet: 0x0b55
+#if PACKETVER >= 20190828
+packetLen(0x0b55, -1)
+#endif
+
+// Packet: 0x0b56
+#if PACKETVER >= 20190828
+packetLen(0x0b56, -1)
+#endif
+
+// Packet: 0x0b57
+#if PACKETVER >= 20190828
+packetLen(0x0b57, -1)
+#endif
+
+// Packet: 0x0b58
+#if PACKETVER >= 20190828
+packetLen(0x0b58, 2)
+#endif
+
+// Packet: 0x0b59
+#if PACKETVER >= 20190918
+packetLen(0x0b59, 2)
+#endif
+
+// Packet: 0x0b5a
+#if PACKETVER >= 20190918
+packetLen(0x0b5a, 4)
+#endif
+
+// Packet: 0x0b5b
+#if PACKETVER >= 20190918
+packetLen(0x0b5b, -1)
+#endif
+
+// Packet: 0x0b5c
+#if PACKETVER >= 20190918
+packetLen(0x0b5c, 10)
+#endif
+
+// Packet: 0x0b5d
+#if PACKETVER >= 20190918
+packetLen(0x0b5d, 2)
+#endif
+
 
 #endif /* COMMON_PACKETS2019_LEN_ZERO_H */
-- 
cgit v1.2.3-70-g09d2


From 9162979a14e59f0f8ece00020859ca06f639a6b1 Mon Sep 17 00:00:00 2001
From: Andrei Karas <akaras@inbox.ru>
Date: Wed, 28 Aug 2019 21:34:52 +0300
Subject: Update messages up to 2019-09-18

---
 src/map/messages_main.h |  88 ++++++++++++++++++++++++++++++++++++++++-
 src/map/messages_re.h   |  88 ++++++++++++++++++++++++++++++++++++++++-
 src/map/messages_zero.h | 102 +++++++++++++++++++++++++++++++++++++++++++++++-
 3 files changed, 274 insertions(+), 4 deletions(-)

diff --git a/src/map/messages_main.h b/src/map/messages_main.h
index bc5bcf55d..1ef24d6ab 100644
--- a/src/map/messages_main.h
+++ b/src/map/messages_main.h
@@ -24,7 +24,7 @@
 
 /* This file is autogenerated, please do not commit manual changes
 
-Latest version: 20190821
+Latest version: 20190918
 */
 
 enum clif_messages {
@@ -21875,6 +21875,92 @@ Sold Out
 */
 	MSG_ID_E50 = 0xe50,
 #endif
+#if PACKETVER >= 20190828
+/*20190828 to latest
+장착 중인 아이템은 교환할 수 없습니다. 장착을 해제한 뒤 시도해 주시길 바랍니다.
+*/
+	MSG_ID_E51 = 0xe51,
+#endif
+#if PACKETVER >= 20190904
+/*20190904 to latest
+길드 창고 이용 중엔 캐릭터 선택창으로 이동 할 수 없습니다.
+*/
+	MSG_ID_E52 = 0xe52,
+/*20190904 to latest
+아이템 태그가 포함되어 있어 사용할 수 없습니다.
+*/
+	MSG_ID_E53 = 0xe53,
+/*20190904 to latest
+Monster
+*/
+	MSG_ID_E54 = 0xe54,
+/*20190904 to latest
+Unknown
+*/
+	MSG_ID_E55 = 0xe55,
+/*20190904 to latest
+Undead
+*/
+	MSG_ID_E56 = 0xe56,
+/*20190904 to latest
+Animal
+*/
+	MSG_ID_E57 = 0xe57,
+/*20190904 to latest
+Plant
+*/
+	MSG_ID_E58 = 0xe58,
+/*20190904 to latest
+Insect
+*/
+	MSG_ID_E59 = 0xe59,
+/*20190904 to latest
+Marine
+*/
+	MSG_ID_E5A = 0xe5a,
+/*20190904 to latest
+Devil
+*/
+	MSG_ID_E5B = 0xe5b,
+/*20190904 to latest
+Human
+*/
+	MSG_ID_E5C = 0xe5c,
+/*20190904 to latest
+Angel
+*/
+	MSG_ID_E5D = 0xe5d,
+/*20190904 to latest
+Dragon
+*/
+	MSG_ID_E5E = 0xe5e,
+#endif
+#if PACKETVER >= 20190918
+/*20190918 to latest
+Balance: %s %c
+*/
+	MSG_ID_E5F = 0xe5f,
+/*20190918 to latest
+ ^ff0000본 아이템을 구매 후 7일 이내에는 청약 철회가 가능합니다. 다만, 7일이 지났거나 아이템을 개봉하시면 청약 철회 대상에서 제외 됩니다.또한 구매시 사용된 무료캐시는 청약철회시 반환되지 않습니다.^000000 정말로 아이템을 구매하시겠습니까? 구매하실 경우 %s캐시가 차감됩니다.
+*/
+	MSG_ID_E60 = 0xe60,
+/*20190918 to latest
+ ^ff0000본 아이템을 구매 후 7일 이내에는 청약 철회가 가능합니다. 다만, 7일이 지났거나 아이템을 개봉하시면 청약 철회 대상에서 제외 됩니다.또한 구매시 사용된 무료캐시는 청약철회시 반환되지 않습니다.^000000 정말로 아이템을 구매하시겠습니까? 구매하실 경우 일반 %s캐시, 무료 %s캐시가 차감됩니다.
+*/
+	MSG_ID_E61 = 0xe61,
+/*20190918 to latest
+[%s]의 호출이 거부되었습니다.
+*/
+	MSG_ID_E62 = 0xe62,
+/*20190918 to latest
+구매 한도액은 소지액을 초과할 수 없습니다.
+*/
+	MSG_ID_E63 = 0xe63,
+/*20190918 to latest
+노점을 여는데 실패하였습니다. 구매노점 개설을 닫아주시기 바랍니다.
+*/
+	MSG_ID_E64 = 0xe64,
+#endif
 
 };
 #endif /* MAP_MESSAGES_MAIN_H */
diff --git a/src/map/messages_re.h b/src/map/messages_re.h
index efebecdb2..4ae3dee1d 100644
--- a/src/map/messages_re.h
+++ b/src/map/messages_re.h
@@ -24,7 +24,7 @@
 
 /* This file is autogenerated, please do not commit manual changes
 
-Latest version: 20190821
+Latest version: 20190918
 */
 
 enum clif_messages {
@@ -21354,6 +21354,92 @@ Sold Out
 */
 	MSG_ID_E50 = 0xe50,
 #endif
+#if PACKETVER >= 20190828
+/*20190828 to latest
+장착 중인 아이템은 교환할 수 없습니다. 장착을 해제한 뒤 시도해 주시길 바랍니다.
+*/
+	MSG_ID_E51 = 0xe51,
+#endif
+#if PACKETVER >= 20190904
+/*20190904 to latest
+길드 창고 이용 중엔 캐릭터 선택창으로 이동 할 수 없습니다.
+*/
+	MSG_ID_E52 = 0xe52,
+/*20190904 to latest
+아이템 태그가 포함되어 있어 사용할 수 없습니다.
+*/
+	MSG_ID_E53 = 0xe53,
+/*20190904 to latest
+Monster
+*/
+	MSG_ID_E54 = 0xe54,
+/*20190904 to latest
+Unknown
+*/
+	MSG_ID_E55 = 0xe55,
+/*20190904 to latest
+Undead
+*/
+	MSG_ID_E56 = 0xe56,
+/*20190904 to latest
+Animal
+*/
+	MSG_ID_E57 = 0xe57,
+/*20190904 to latest
+Plant
+*/
+	MSG_ID_E58 = 0xe58,
+/*20190904 to latest
+Insect
+*/
+	MSG_ID_E59 = 0xe59,
+/*20190904 to latest
+Marine
+*/
+	MSG_ID_E5A = 0xe5a,
+/*20190904 to latest
+Devil
+*/
+	MSG_ID_E5B = 0xe5b,
+/*20190904 to latest
+Human
+*/
+	MSG_ID_E5C = 0xe5c,
+/*20190904 to latest
+Angel
+*/
+	MSG_ID_E5D = 0xe5d,
+/*20190904 to latest
+Dragon
+*/
+	MSG_ID_E5E = 0xe5e,
+#endif
+#if PACKETVER >= 20190918
+/*20190918 to latest
+Balance: %s %c
+*/
+	MSG_ID_E5F = 0xe5f,
+/*20190918 to latest
+ ^ff0000본 아이템을 구매 후 7일 이내에는 청약 철회가 가능합니다. 다만, 7일이 지났거나 아이템을 개봉하시면 청약 철회 대상에서 제외 됩니다.또한 구매시 사용된 무료캐시는 청약철회시 반환되지 않습니다.^000000 정말로 아이템을 구매하시겠습니까? 구매하실 경우 %s캐시가 차감됩니다.
+*/
+	MSG_ID_E60 = 0xe60,
+/*20190918 to latest
+ ^ff0000본 아이템을 구매 후 7일 이내에는 청약 철회가 가능합니다. 다만, 7일이 지났거나 아이템을 개봉하시면 청약 철회 대상에서 제외 됩니다.또한 구매시 사용된 무료캐시는 청약철회시 반환되지 않습니다.^000000 정말로 아이템을 구매하시겠습니까? 구매하실 경우 일반 %s캐시, 무료 %s캐시가 차감됩니다.
+*/
+	MSG_ID_E61 = 0xe61,
+/*20190918 to latest
+호출이 거부되었습니다.
+*/
+	MSG_ID_E62 = 0xe62,
+/*20190918 to latest
+구매 한도액은 소지액을 초과할 수 없습니다.
+*/
+	MSG_ID_E63 = 0xe63,
+/*20190918 to latest
+노점을 여는데 실패하였습니다. 구매노점 개설을 닫아주시기 바랍니다.
+*/
+	MSG_ID_E64 = 0xe64,
+#endif
 
 };
 #endif /* MAP_MESSAGES_RE_H */
diff --git a/src/map/messages_zero.h b/src/map/messages_zero.h
index 344dbb29e..039d215ac 100644
--- a/src/map/messages_zero.h
+++ b/src/map/messages_zero.h
@@ -24,7 +24,7 @@
 
 /* This file is autogenerated, please do not commit manual changes
 
-Latest version: 20190814
+Latest version: 20190918
 */
 
 enum clif_messages {
@@ -17922,8 +17922,10 @@ Sale Start Time
 계정 한정
 */
 	MSG_ID_E48 = 0xe48,
-/*20190814 to latest
+/*20190814 to 20190814
 판매기간 : %d월 %d일 ~ %d월 %d일
+20190828 to latest
+판매기간 : %d월 %d일 %d시 %d분
 */
 	MSG_ID_E49 = 0xe49,
 /*20190814 to latest
@@ -17947,6 +17949,102 @@ Sold Out
 */
 	MSG_ID_E4E = 0xe4e,
 #endif
+#if PACKETVER >= 20190828
+/*20190828 to latest
+~ %d월 %d일 %d시 %d분
+*/
+	MSG_ID_E4F = 0xe4f,
+/*20190828 to latest
+상품을 더이상 추가할 수 없습니다
+*/
+	MSG_ID_E50 = 0xe50,
+/*20190828 to latest
+장착 중인 아이템은 교환할 수 없습니다. 장착을 해제한 뒤 시도해 주시길 바랍니다.
+*/
+	MSG_ID_E51 = 0xe51,
+#endif
+#if PACKETVER >= 20190911
+/*20190911 to latest
+길드 창고 이용 중엔 캐릭터 선택창으로 이동 할 수 없습니다.
+*/
+	MSG_ID_E52 = 0xe52,
+/*20190911 to latest
+아이템 태그가 포함되어 있어 사용할 수 없습니다.
+*/
+	MSG_ID_E53 = 0xe53,
+/*20190911 to latest
+Monster
+*/
+	MSG_ID_E54 = 0xe54,
+/*20190911 to latest
+Unknown
+*/
+	MSG_ID_E55 = 0xe55,
+/*20190911 to latest
+Undead
+*/
+	MSG_ID_E56 = 0xe56,
+/*20190911 to latest
+Animal
+*/
+	MSG_ID_E57 = 0xe57,
+/*20190911 to latest
+Plant
+*/
+	MSG_ID_E58 = 0xe58,
+/*20190911 to latest
+Insect
+*/
+	MSG_ID_E59 = 0xe59,
+/*20190911 to latest
+Marine
+*/
+	MSG_ID_E5A = 0xe5a,
+/*20190911 to latest
+Devil
+*/
+	MSG_ID_E5B = 0xe5b,
+/*20190911 to latest
+Human
+*/
+	MSG_ID_E5C = 0xe5c,
+/*20190911 to latest
+Angel
+*/
+	MSG_ID_E5D = 0xe5d,
+/*20190911 to latest
+Dragon
+*/
+	MSG_ID_E5E = 0xe5e,
+/*20190911 to latest
+Balance: %s %c
+*/
+	MSG_ID_E5F = 0xe5f,
+/*20190911 to latest
+ ^ff0000본 아이템을 구매 후 7일 이내에는 청약 철회가 가능합니다. 다만, 7일이 지났거나 아이템을 개봉하시면 청약 철회 대상에서 제외 됩니다.또한 구매시 사용된 무료캐시는 청약철회시 반환되지 않습니다.^000000 정말로 아이템을 구매하시겠습니까? 구매하실 경우 %s캐시가 차감됩니다.
+*/
+	MSG_ID_E60 = 0xe60,
+/*20190911 to latest
+ ^ff0000본 아이템을 구매 후 7일 이내에는 청약 철회가 가능합니다. 다만, 7일이 지났거나 아이템을 개봉하시면 청약 철회 대상에서 제외 됩니다.또한 구매시 사용된 무료캐시는 청약철회시 반환되지 않습니다.^000000 정말로 아이템을 구매하시겠습니까? 구매하실 경우 일반 %s캐시, 무료 %s캐시가 차감됩니다.
+*/
+	MSG_ID_E61 = 0xe61,
+/*20190911 to 20190911
+호출이 거부되었습니다.
+20190918 to latest
+[%s]의 호출이 거부되었습니다.
+*/
+	MSG_ID_E62 = 0xe62,
+#endif
+#if PACKETVER >= 20190918
+/*20190918 to latest
+구매 한도액은 소지액을 초과할 수 없습니다.
+*/
+	MSG_ID_E63 = 0xe63,
+/*20190918 to latest
+노점을 여는데 실패하였습니다. 구매노점 개설을 닫아주시기 바랍니다.
+*/
+	MSG_ID_E64 = 0xe64,
+#endif
 
 };
 #endif /* MAP_MESSAGES_ZERO_H */
-- 
cgit v1.2.3-70-g09d2


From f54c43c073f92d7264dfa819632dd10bf0575f98 Mon Sep 17 00:00:00 2001
From: Andrei Karas <akaras@inbox.ru>
Date: Wed, 28 Aug 2019 21:36:31 +0300
Subject: Update keys up to 2019-09-18

---
 src/map/packets_keys_main.h | 7 +++++--
 src/map/packets_keys_zero.h | 7 +++++--
 2 files changed, 10 insertions(+), 4 deletions(-)

diff --git a/src/map/packets_keys_main.h b/src/map/packets_keys_main.h
index 565835cd7..b7f25a83d 100644
--- a/src/map/packets_keys_main.h
+++ b/src/map/packets_keys_main.h
@@ -37,7 +37,7 @@
 	packetKeys(0x49357d72,0x22c370a1,0x5f836591);
 #endif
 
-// 2010-11-23aRagexeRE, 2010-11-24aRagexeRE, 2010-11-24bRagexeRE, 2010-11-25aRagexeRE, 2010-11-26aRagexeRE, 2010-11-30aRagexeRE, 2010-12-07aRagexeRE, 2010-12-14aRagexeRE, 2010-12-21aRagexeRE, 2010-12-23aRagexeRE, 2010-12-28aRagexeRE, 2011-01-04aRagexeRE, 2011-01-05aRagexeRE, 2011-01-11aRagexeRE, 2011-01-18aRagexeRE, 2011-01-25aRagexeRE, 2011-01-26aRagexeRE, 2011-01-26bRagexeRE, 2011-01-31aRagexeRE, 2011-01-31bRagexeRE, 2011-01-31cRagexeRE, 2011-02-08aRagexeRE, 2011-02-15aRagexeRE, 2011-02-22aRagexeRE, 2011-02-23aRagexeRE, 2011-02-23bRagexeRE, 2011-02-24aRagexeRE, 2011-02-25aRagexeRE, 2011-02-28aRagexeRE, 2011-03-08aRagexeRE, 2011-03-09aRagexeRE, 2011-03-09bRagexeRE, 2011-03-09cRagexeRE, 2011-03-09dRagexeRE, 2011-03-15aRagexeRE, 2011-03-22aRagexeRE, 2011-03-29aRagexeRE, 2011-03-30aRagexeRE, 2011-03-30cRagexeRE, 2011-04-05aRagexeRE, 2011-04-12aRagexeRE, 2011-04-19aRagexeRE, 2011-04-20aRagexeRE, 2011-04-26aRagexeRE, 2011-04-27aRagexeRE, 2011-05-03aRagexeRE, 2011-05-11aRagexeRE, 2011-05-17bRagexeRE, 2011-05-24aRagexeRE, 2011-05-26aRagexeRE, 2011-05-31aRagexeRE, 2011-06-07aRagexeRE, 2011-06-08aRagexeRE, 2011-06-08bRagexeRE, 2011-06-08cRagexeRE, 2011-06-09aRagexeRE, 2011-06-14bRagexeRE, 2011-06-22aRagexeRE, 2011-06-28aRagexeRE, 2011-07-06aRagexeRE, 2011-07-13aRagexeRE, 2011-07-13bRagexeRE, 2011-07-13cRagexeRE, 2011-07-19aRagexeRE, 2011-07-26aRagexeRE, 2011-08-03aRagexeRE, 2011-08-03bRagexeRE, 2011-08-10aRagexeRE, 2013-12-23aRagexeRE, 2014-05-08aRagexe, 2014-05-08aRagexeRE, 2014-06-11eRagexe, 2015-02-25hRagexe, 2018-03-15aRagexe, 2018-03-21aRagexe, 2018-03-21aRagexeRE, 2018-03-28bRagexe, 2018-03-28bRagexeRE, 2018-04-04bRagexe, 2018-04-04cRagexeRE, 2018-04-18aRagexe, 2018-04-18bRagexeRE, 2018-04-25cRagexe, 2018-04-25cRagexeRE, 2018-05-02bRagexe, 2018-05-02bRagexeRE, 2018-05-02dRagexeRE, 2018-05-09aRagexe, 2018-05-16cRagexe, 2018-05-16cRagexeRE, 2018-05-23aRagexe, 2018-05-23aRagexeRE, 2018-05-30aRagexe, 2018-05-30bRagexeRE, 2018-05-30cRagexeRE, 2018-06-05bRagexe, 2018-06-05bRagexeRE, 2018-06-12aRagexeRE, 2018-06-12bRagexeRE, 2018-06-20cRagexe, 2018-06-20dRagexeRE, 2018-06-20eRagexe, 2018-06-20eRagexeRE, 2018-06-21aRagexe, 2018-06-21aRagexeRE, 2018-07-04aRagexe, 2018-07-04aRagexeRE, 2018-07-11aRagexeRE, 2018-07-18bRagexe, 2018-07-18bRagexeRE, 2018-07-18bRagexeRE1, 2018-07-18cRagexe, 2018-07-18cRagexeRE, 2018-08-01cRagexe, 2018-08-01cRagexeRE, 2018-08-08bRagexe, 2018-08-08bRagexeRE, 2018-08-22cRagexe, 2018-08-22cRagexeRE, 2018-08-29aRagexe, 2018-08-29aRagexeRE, 2018-08-29bRagexeRE, 2018-08-31aRagexe, 2018-09-12dRagexe, 2018-09-12dRagexeRE, 2018-09-19aRagexe, 2018-09-19aRagexeRE, 2018-10-02aRagexe, 2018-10-02aRagexeRE, 2018-10-02bRagexe, 2018-10-02bRagexeRE, 2018-10-17_02aRagexe, 2018-10-17_02aRagexeRE, 2018-10-17_03aRagexe, 2018-10-17_03aRagexeRE, 2018-10-17bRagexe, 2018-10-17bRagexeRE, 2018-10-24bRagexe, 2018-10-31aRagexe, 2018-10-31bRagexe, 2018-10-31cRagexeRE, 2018-11-07aRagexe, 2018-11-07aRagexeRE, 2018-11-14cRagexe, 2018-11-14cRagexeRE, 2018-11-14dRagexe, 2018-11-14dRagexeRE, 2018-11-21bRagexe, 2018-11-21cRagexeRE, 2018-11-28aRagexe, 2018-11-28aRagexeRE, 2018-11-28bRagexe, 2018-11-28cRagexe, 2018-12-05aRagexe, 2018-12-05bRagexeRE, 2018-12-12aRagexe, 2018-12-12aRagexeRE, 2018-12-12bRagexe, 2018-12-12bRagexeRE, 2018-12-19bRagexe, 2018-12-19bRagexeRE, 2018-12-26aRagexe, 2018-12-26aRagexeRE, 2019-01-09aRagexe, 2019-01-09bRagexeRE, 2019-01-16bRagexe, 2019-01-16bRagexeRE, 2019-01-16cRagexe, 2019-01-16cRagexeRE, 2019-01-23dRagexe, 2019-01-23dRagexeRE, 2019-02-13IRagexeRE, 2019-02-13bRagexe, 2019-02-13eRagexe, 2019-02-20aRagexeRE, 2019-02-27aRagexe, 2019-02-27bRagexeRE, 2019-02-28aRagexe, 2019-02-28aRagexeRE, 2019-03-06bRagexe, 2019-03-06bRagexeRE, 2019-03-06cRagexe, 2019-03-06cRagexeRE, 2019-03-13aRagexe, 2019-03-20aRagexe, 2019-03-20aRagexeRE, 2019-03-22aRagexe, 2019-03-22aRagexeRE, 2019-03-27bRagexe, 2019-03-27bRagexeRE, 2019-04-03aRagexe, 2019-04-03bRagexeRE, 2019-04-03cRagexeRE, 2019-04-17aRagexe, 2019-04-17cRagexeRE, 2019-04-18aRagexe, 2019-04-18aRagexeRE, 2019-05-08cRagexe, 2019-05-08dRagexeRE, 2019-05-08eRagexeRE, 2019-05-22bRagexe, 2019-05-22bRagexeRE, 2019-05-22cRagexe, 2019-05-22cRagexeRE, 2019-05-23aRagexe, 2019-05-29aRagexe, 2019-05-29bRagexeRE, 2019-05-29cRagexe, 2019-05-29cRagexeRE, 2019-05-30aRagexe, 2019-05-30aRagexeRE, 2019-06-05JRagexeRE, 2019-06-05KRagexe, 2019-06-05LRagexeRE, 2019-06-05fRagexe, 2019-06-05hRagexeRE, 2019-06-19bRagexe, 2019-06-19cRagexeRE, 2019-06-19eRagexe, 2019-06-19hRagexe, 2019-06-26bRagexeRE, 2019-07-03aRagexe, 2019-07-03bRagexeRE, 2019-07-17aRagexe, 2019-07-17cRagexeRE, 2019-07-17dRagexe, 2019-07-17dRagexeRE, 2019-07-24aRagexe, 2019-07-24bRagexeRE, 2019-07-31bRagexe, 2019-07-31bRagexeRE, 2019-08-02aRagexe, 2019-08-02aRagexeRE, 2019-08-07aRagexe, 2019-08-07dRagexeRE, 2019-08-21aRagexe, 2019-08-21cRagexeRE, 2019-08-21dRagexeRE
+// 2010-11-23aRagexeRE, 2010-11-24aRagexeRE, 2010-11-24bRagexeRE, 2010-11-25aRagexeRE, 2010-11-26aRagexeRE, 2010-11-30aRagexeRE, 2010-12-07aRagexeRE, 2010-12-14aRagexeRE, 2010-12-21aRagexeRE, 2010-12-23aRagexeRE, 2010-12-28aRagexeRE, 2011-01-04aRagexeRE, 2011-01-05aRagexeRE, 2011-01-11aRagexeRE, 2011-01-18aRagexeRE, 2011-01-25aRagexeRE, 2011-01-26aRagexeRE, 2011-01-26bRagexeRE, 2011-01-31aRagexeRE, 2011-01-31bRagexeRE, 2011-01-31cRagexeRE, 2011-02-08aRagexeRE, 2011-02-15aRagexeRE, 2011-02-22aRagexeRE, 2011-02-23aRagexeRE, 2011-02-23bRagexeRE, 2011-02-24aRagexeRE, 2011-02-25aRagexeRE, 2011-02-28aRagexeRE, 2011-03-08aRagexeRE, 2011-03-09aRagexeRE, 2011-03-09bRagexeRE, 2011-03-09cRagexeRE, 2011-03-09dRagexeRE, 2011-03-15aRagexeRE, 2011-03-22aRagexeRE, 2011-03-29aRagexeRE, 2011-03-30aRagexeRE, 2011-03-30cRagexeRE, 2011-04-05aRagexeRE, 2011-04-12aRagexeRE, 2011-04-19aRagexeRE, 2011-04-20aRagexeRE, 2011-04-26aRagexeRE, 2011-04-27aRagexeRE, 2011-05-03aRagexeRE, 2011-05-11aRagexeRE, 2011-05-17bRagexeRE, 2011-05-24aRagexeRE, 2011-05-26aRagexeRE, 2011-05-31aRagexeRE, 2011-06-07aRagexeRE, 2011-06-08aRagexeRE, 2011-06-08bRagexeRE, 2011-06-08cRagexeRE, 2011-06-09aRagexeRE, 2011-06-14bRagexeRE, 2011-06-22aRagexeRE, 2011-06-28aRagexeRE, 2011-07-06aRagexeRE, 2011-07-13aRagexeRE, 2011-07-13bRagexeRE, 2011-07-13cRagexeRE, 2011-07-19aRagexeRE, 2011-07-26aRagexeRE, 2011-08-03aRagexeRE, 2011-08-03bRagexeRE, 2011-08-10aRagexeRE, 2013-12-23aRagexeRE, 2014-05-08aRagexe, 2014-05-08aRagexeRE, 2014-06-11eRagexe, 2015-02-25hRagexe, 2018-03-15aRagexe, 2018-03-21aRagexe, 2018-03-21aRagexeRE, 2018-03-28bRagexe, 2018-03-28bRagexeRE, 2018-04-04bRagexe, 2018-04-04cRagexeRE, 2018-04-18aRagexe, 2018-04-18bRagexeRE, 2018-04-25cRagexe, 2018-04-25cRagexeRE, 2018-05-02bRagexe, 2018-05-02bRagexeRE, 2018-05-02dRagexeRE, 2018-05-09aRagexe, 2018-05-16cRagexe, 2018-05-16cRagexeRE, 2018-05-23aRagexe, 2018-05-23aRagexeRE, 2018-05-30aRagexe, 2018-05-30bRagexeRE, 2018-05-30cRagexeRE, 2018-06-05bRagexe, 2018-06-05bRagexeRE, 2018-06-12aRagexeRE, 2018-06-12bRagexeRE, 2018-06-20cRagexe, 2018-06-20dRagexeRE, 2018-06-20eRagexe, 2018-06-20eRagexeRE, 2018-06-21aRagexe, 2018-06-21aRagexeRE, 2018-07-04aRagexe, 2018-07-04aRagexeRE, 2018-07-11aRagexeRE, 2018-07-18bRagexe, 2018-07-18bRagexeRE, 2018-07-18bRagexeRE1, 2018-07-18cRagexe, 2018-07-18cRagexeRE, 2018-08-01cRagexe, 2018-08-01cRagexeRE, 2018-08-08bRagexe, 2018-08-08bRagexeRE, 2018-08-22cRagexe, 2018-08-22cRagexeRE, 2018-08-29aRagexe, 2018-08-29aRagexeRE, 2018-08-29bRagexeRE, 2018-08-31aRagexe, 2018-09-12dRagexe, 2018-09-12dRagexeRE, 2018-09-19aRagexe, 2018-09-19aRagexeRE, 2018-10-02aRagexe, 2018-10-02aRagexeRE, 2018-10-02bRagexe, 2018-10-02bRagexeRE, 2018-10-17_02aRagexe, 2018-10-17_02aRagexeRE, 2018-10-17_03aRagexe, 2018-10-17_03aRagexeRE, 2018-10-17bRagexe, 2018-10-17bRagexeRE, 2018-10-24bRagexe, 2018-10-31aRagexe, 2018-10-31bRagexe, 2018-10-31cRagexeRE, 2018-11-07aRagexe, 2018-11-07aRagexeRE, 2018-11-14cRagexe, 2018-11-14cRagexeRE, 2018-11-14dRagexe, 2018-11-14dRagexeRE, 2018-11-21bRagexe, 2018-11-21cRagexeRE, 2018-11-28aRagexe, 2018-11-28aRagexeRE, 2018-11-28bRagexe, 2018-11-28cRagexe, 2018-12-05aRagexe, 2018-12-05bRagexeRE, 2018-12-12aRagexe, 2018-12-12aRagexeRE, 2018-12-12bRagexe, 2018-12-12bRagexeRE, 2018-12-19bRagexe, 2018-12-19bRagexeRE, 2018-12-26aRagexe, 2018-12-26aRagexeRE, 2019-01-09aRagexe, 2019-01-09bRagexeRE, 2019-01-16bRagexe, 2019-01-16bRagexeRE, 2019-01-16cRagexe, 2019-01-16cRagexeRE, 2019-01-23dRagexe, 2019-01-23dRagexeRE, 2019-02-13IRagexeRE, 2019-02-13bRagexe, 2019-02-13eRagexe, 2019-02-20aRagexeRE, 2019-02-27aRagexe, 2019-02-27bRagexeRE, 2019-02-28aRagexe, 2019-02-28aRagexeRE, 2019-03-06bRagexe, 2019-03-06bRagexeRE, 2019-03-06cRagexe, 2019-03-06cRagexeRE, 2019-03-13aRagexe, 2019-03-20aRagexe, 2019-03-20aRagexeRE, 2019-03-22aRagexe, 2019-03-22aRagexeRE, 2019-03-27bRagexe, 2019-03-27bRagexeRE, 2019-04-03aRagexe, 2019-04-03bRagexeRE, 2019-04-03cRagexeRE, 2019-04-17aRagexe, 2019-04-17cRagexeRE, 2019-04-18aRagexe, 2019-04-18aRagexeRE, 2019-05-08cRagexe, 2019-05-08dRagexeRE, 2019-05-08eRagexeRE, 2019-05-22bRagexe, 2019-05-22bRagexeRE, 2019-05-22cRagexe, 2019-05-22cRagexeRE, 2019-05-23aRagexe, 2019-05-29aRagexe, 2019-05-29bRagexeRE, 2019-05-29cRagexe, 2019-05-29cRagexeRE, 2019-05-30aRagexe, 2019-05-30aRagexeRE, 2019-06-05JRagexeRE, 2019-06-05KRagexe, 2019-06-05LRagexeRE, 2019-06-05fRagexe, 2019-06-05hRagexeRE, 2019-06-19bRagexe, 2019-06-19cRagexeRE, 2019-06-19eRagexe, 2019-06-19hRagexe, 2019-06-26bRagexeRE, 2019-07-03aRagexe, 2019-07-03bRagexeRE, 2019-07-17aRagexe, 2019-07-17cRagexeRE, 2019-07-17dRagexe, 2019-07-17dRagexeRE, 2019-07-24aRagexe, 2019-07-24bRagexeRE, 2019-07-31bRagexe, 2019-07-31bRagexeRE, 2019-08-02aRagexe, 2019-08-02aRagexeRE, 2019-08-07aRagexe, 2019-08-07dRagexeRE, 2019-08-21aRagexe, 2019-08-21cRagexeRE, 2019-08-21dRagexeRE, 2019-08-28aRagexe, 2019-08-28aRagexeRE, 2019-09-04aRagexe, 2019-09-04bRagexe, 2019-09-04bRagexeRE, 2019-09-18bRagexe, 2019-09-18cRagexeRE
 #if PACKETVER == 20101123 || \
     PACKETVER == 20101124 || \
     PACKETVER == 20101125 || \
@@ -162,7 +162,10 @@
     PACKETVER == 20190731 || \
     PACKETVER == 20190802 || \
     PACKETVER == 20190807 || \
-    PACKETVER >= 20190821
+    PACKETVER == 20190821 || \
+    PACKETVER == 20190828 || \
+    PACKETVER == 20190904 || \
+    PACKETVER >= 20190918
 	packetKeys(0x00000000,0x00000000,0x00000000);
 #endif
 
diff --git a/src/map/packets_keys_zero.h b/src/map/packets_keys_zero.h
index 0e70ef641..2708d11e1 100644
--- a/src/map/packets_keys_zero.h
+++ b/src/map/packets_keys_zero.h
@@ -30,7 +30,7 @@
 
 /* This file is autogenerated, please do not commit manual changes */
 
-// 2017-10-18aRagexe_zero, 2017-10-19aRagexe_zero, 2017-10-23aRagexe_zero, 2017-10-23bRagexe_zero, 2017-10-23cRagexe_zero, 2017-10-24aRagexe_2_zero, 2017-10-24aRagexe_zero, 2017-10-25bRagexe_zero, 2017-10-27aRagexe_zero, 2017-10-27bRagexe_zero, 2017-10-30aRagexe_zero, 2017-10-31aRagexe_zero, 2017-11-09aRagexe_zero, 2017-11-13aRagexe_zero, 2017-11-13bRagexe_zero, 2018-03-15aRagexe_zero, 2018-03-21aRagexe_zero, 2018-03-21bRagexe_zero, 2018-03-28_1aRagexe_zero, 2018-03-28cRagexe_zero, 2018-04-11aRagexe_zero, 2018-04-25_3aRagexe_zero, 2018-05-09_3aRagexe_zero, 2018-05-23aRagexe_zero, 2018-06-05bRagexe_zero, 2018-06-05cRagexe_zero, 2018-06-27aRagexe_zero, 2018-07-03aRagexe_zero, 2018-07-11_2aRagexe_zero, 2018-07-25_2aRagexe_zero, 2018-08-01aRagexe_zero, 2018-08-08_2aRagexe_zero, 2018-08-22aRagexe_zero, 2018-08-29aRagexe_zero, 2018-09-05aRagexe_zero, 2018-09-12aRagexe_zero, 2018-09-19aRagexe_zero, 2018-09-28aRagexe_zero, 2018-10-10_2aRagexe_zero, 2018-10-24_2aRagexe_zero, 2018-11-14aRagexe_zero, 2018-11-20aRagexe_zero, 2018-11-28aRagexe_zero, 2018-12-12aRagexe_zero, 2018-12-19aRagexe_zero, 2018-12-26_2aRagexe_zero, 2019-01-16_2aRagexe_zero, 2019-01-17_1aRagexe_zero, 2019-01-30_2aRagexe_zero, 2019-02-13aRagexe_zero, 2019-02-20aRagexe_zero, 2019-02-27aRagexe_zero, 2019-03-13aRagexe_zero, 2019-03-27_2aRagexe_zero, 2019-03-27_3aRagexe_zero, 2019-04-03aRagexe_zero, 2019-04-10bRagexe_zero, 2019-04-24aRagexe_zero, 2019-05-02aRagexe_zero, 2019-05-08_2aRagexe_zero, 2019-05-08aRagexe_zero, 2019-05-15aRagexe_zero, 2019-05-29aRagexe_zero, 2019-05-30aRagexe_zero, 2019-06-05_2aRagexe_zero, 2019-06-26_2aRagexe_zero, 2019-06-26_3aRagexe_zero, 2019-07-09aRagexe_zero, 2019-07-10_3aRagexe_zero, 2019-07-17aRagexe_zero, 2019-07-24aRagexe_zero, 2019-08-14_3aRagexe_zero
+// 2017-10-18aRagexe_zero, 2017-10-19aRagexe_zero, 2017-10-23aRagexe_zero, 2017-10-23bRagexe_zero, 2017-10-23cRagexe_zero, 2017-10-24aRagexe_2_zero, 2017-10-24aRagexe_zero, 2017-10-25bRagexe_zero, 2017-10-27aRagexe_zero, 2017-10-27bRagexe_zero, 2017-10-30aRagexe_zero, 2017-10-31aRagexe_zero, 2017-11-09aRagexe_zero, 2017-11-13aRagexe_zero, 2017-11-13bRagexe_zero, 2018-03-15aRagexe_zero, 2018-03-21aRagexe_zero, 2018-03-21bRagexe_zero, 2018-03-28_1aRagexe_zero, 2018-03-28cRagexe_zero, 2018-04-11aRagexe_zero, 2018-04-25_3aRagexe_zero, 2018-05-09_3aRagexe_zero, 2018-05-23aRagexe_zero, 2018-06-05bRagexe_zero, 2018-06-05cRagexe_zero, 2018-06-27aRagexe_zero, 2018-07-03aRagexe_zero, 2018-07-11_2aRagexe_zero, 2018-07-25_2aRagexe_zero, 2018-08-01aRagexe_zero, 2018-08-08_2aRagexe_zero, 2018-08-22aRagexe_zero, 2018-08-29aRagexe_zero, 2018-09-05aRagexe_zero, 2018-09-12aRagexe_zero, 2018-09-19aRagexe_zero, 2018-09-28aRagexe_zero, 2018-10-10_2aRagexe_zero, 2018-10-24_2aRagexe_zero, 2018-11-14aRagexe_zero, 2018-11-20aRagexe_zero, 2018-11-28aRagexe_zero, 2018-12-12aRagexe_zero, 2018-12-19aRagexe_zero, 2018-12-26_2aRagexe_zero, 2019-01-16_2aRagexe_zero, 2019-01-17_1aRagexe_zero, 2019-01-30_2aRagexe_zero, 2019-02-13aRagexe_zero, 2019-02-20aRagexe_zero, 2019-02-27aRagexe_zero, 2019-03-13aRagexe_zero, 2019-03-27_2aRagexe_zero, 2019-03-27_3aRagexe_zero, 2019-04-03aRagexe_zero, 2019-04-10bRagexe_zero, 2019-04-24aRagexe_zero, 2019-05-02aRagexe_zero, 2019-05-08_2aRagexe_zero, 2019-05-08aRagexe_zero, 2019-05-15aRagexe_zero, 2019-05-29aRagexe_zero, 2019-05-30aRagexe_zero, 2019-06-05_2aRagexe_zero, 2019-06-26_2aRagexe_zero, 2019-06-26_3aRagexe_zero, 2019-07-09aRagexe_zero, 2019-07-10_3aRagexe_zero, 2019-07-17aRagexe_zero, 2019-07-24aRagexe_zero, 2019-08-14_3aRagexe_zero, 2019-08-28_2aRagexe_zero, 2019-08-28_3aRagexe_zero, 2019-09-11aRagexe_zero, 2019-09-18_2aRagexe_zero, 2019-09-18aRagexe_zero
 #if PACKETVER == 20171018 || \
     PACKETVER == 20171019 || \
     PACKETVER == 20171023 || \
@@ -91,7 +91,10 @@
     PACKETVER == 20190710 || \
     PACKETVER == 20190717 || \
     PACKETVER == 20190724 || \
-    PACKETVER >= 20190814
+    PACKETVER == 20190814 || \
+    PACKETVER == 20190828 || \
+    PACKETVER == 20190911 || \
+    PACKETVER >= 20190918
 	packetKeys(0x00000000,0x00000000,0x00000000);
 #endif
 
-- 
cgit v1.2.3-70-g09d2


From 3f798f5fd33672ab0bd9f61399be49138d1ed22d Mon Sep 17 00:00:00 2001
From: Andrei Karas <akaras@inbox.ru>
Date: Wed, 28 Aug 2019 21:40:28 +0300
Subject: Update shuffle packets up tp 2019-09-18

---
 src/map/packets_shuffle_main.h | 39 +++++++++++++++++++++++++++++++++++++--
 src/map/packets_shuffle_re.h   | 39 +++++++++++++++++++++++++++++++++++++--
 src/map/packets_shuffle_zero.h | 35 +++++++++++++++++++++++++++++++++++
 3 files changed, 109 insertions(+), 4 deletions(-)

diff --git a/src/map/packets_shuffle_main.h b/src/map/packets_shuffle_main.h
index 082c940c9..e3e798dd1 100644
--- a/src/map/packets_shuffle_main.h
+++ b/src/map/packets_shuffle_main.h
@@ -9727,7 +9727,7 @@
 	packet(0x0967,clif->pSolveCharName,2);  // CZ_REQNAME_BYGID // 6
 #endif
 
-// 2018-11-21bRagexe, 2018-11-28aRagexe, 2018-11-28bRagexe, 2018-11-28cRagexe, 2018-12-05aRagexe, 2018-12-12aRagexe, 2018-12-12bRagexe, 2018-12-19bRagexe, 2018-12-26aRagexe, 2019-01-09aRagexe, 2019-01-16bRagexe, 2019-01-16cRagexe, 2019-01-23dRagexe, 2019-02-13bRagexe, 2019-02-13eRagexe, 2019-02-27aRagexe, 2019-02-28aRagexe, 2019-03-06bRagexe, 2019-03-06cRagexe, 2019-03-13aRagexe, 2019-03-20aRagexe, 2019-03-22aRagexe, 2019-03-27bRagexe, 2019-04-03aRagexe, 2019-04-17aRagexe, 2019-04-18aRagexe, 2019-05-08cRagexe, 2019-05-22bRagexe, 2019-05-22cRagexe, 2019-05-23aRagexe, 2019-05-29aRagexe, 2019-05-29cRagexe, 2019-05-30aRagexe, 2019-06-05fRagexe, 2019-06-05KRagexe, 2019-06-19bRagexe, 2019-06-19eRagexe, 2019-06-19hRagexe, 2019-07-03aRagexe, 2019-07-17aRagexe, 2019-07-17dRagexe, 2019-07-24aRagexe, 2019-07-31bRagexe, 2019-08-02aRagexe, 2019-08-07aRagexe, 2019-08-21aRagexe
+// 2018-11-21bRagexe, 2018-11-28aRagexe, 2018-11-28bRagexe, 2018-11-28cRagexe, 2018-12-05aRagexe, 2018-12-12aRagexe, 2018-12-12bRagexe, 2018-12-19bRagexe, 2018-12-26aRagexe, 2019-01-09aRagexe, 2019-01-16bRagexe, 2019-01-16cRagexe, 2019-01-23dRagexe, 2019-02-13bRagexe, 2019-02-13eRagexe, 2019-02-27aRagexe, 2019-02-28aRagexe, 2019-03-06bRagexe, 2019-03-06cRagexe, 2019-03-13aRagexe, 2019-03-20aRagexe, 2019-03-22aRagexe, 2019-03-27bRagexe, 2019-04-03aRagexe, 2019-04-17aRagexe, 2019-04-18aRagexe, 2019-05-08cRagexe, 2019-05-22bRagexe, 2019-05-22cRagexe, 2019-05-23aRagexe, 2019-05-29aRagexe, 2019-05-29cRagexe, 2019-05-30aRagexe, 2019-06-05fRagexe, 2019-06-05KRagexe, 2019-06-19bRagexe, 2019-06-19eRagexe, 2019-06-19hRagexe, 2019-07-03aRagexe, 2019-07-17aRagexe, 2019-07-17dRagexe, 2019-07-24aRagexe, 2019-07-31bRagexe, 2019-08-02aRagexe, 2019-08-07aRagexe, 2019-08-21aRagexe, 2019-08-28aRagexe
 #if PACKETVER == 20181121 || \
     PACKETVER == 20181128 || \
     PACKETVER == 20181205 || \
@@ -9761,7 +9761,8 @@
     PACKETVER == 20190731 || \
     PACKETVER == 20190802 || \
     PACKETVER == 20190807 || \
-    PACKETVER >= 20190821
+    PACKETVER == 20190821 || \
+    PACKETVER >= 20190828
 	packet(0x0202,clif->pFriendsListAdd,2);  // CZ_ADD_FRIENDS // 26
 	packet(0x022d,clif->pHomMenu,2,4);  // CZ_COMMAND_MER // 5
 	packet(0x023b,clif->pStoragePassword,0);  // CZ_ACK_STORE_PASSWORD // 36
@@ -9793,5 +9794,39 @@
 	packet(0x083c,clif->pSearchStoreInfoListItemClick,2,6,10);  // CZ_SSILIST_ITEM_CLICK // 14
 #endif
 
+// 2019-09-04aRagexe, 2019-09-04bRagexe, 2019-09-18bRagexe
+#if PACKETVER == 20190904 || \
+    PACKETVER == 20190918
+	packet(0x0202,clif->pFriendsListAdd,2);  // CZ_ADD_FRIENDS // 26
+	packet(0x022d,clif->pHomMenu,2,4);  // CZ_COMMAND_MER // 5
+	packet(0x023b,clif->pStoragePassword,0);  // CZ_ACK_STORE_PASSWORD // 36
+	packet(0x0281,clif->pDull/*,XXX*/);  // CZ_GANGSI_RANK // 4
+	packet(0x02c4,clif->pPartyInvite2,2);  // CZ_PARTY_JOIN_REQ // 26
+	packet(0x035f,clif->pWalkToXY,2);  // CZ_REQUEST_MOVE // 5
+	packet(0x0360,clif->pTickSend,2);  // CZ_REQUEST_TIME // 6
+	packet(0x0361,clif->pChangeDir,2,4);  // CZ_CHANGE_DIRECTION // 5
+	packet(0x0362,clif->pTakeItem,2);  // CZ_ITEM_PICKUP // 6
+	packet(0x0363,clif->pDropItem,2,4);  // CZ_ITEM_THROW // 6
+	packet(0x0364,clif->pMoveToKafra,2,4);  // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8
+	packet(0x0365,clif->pMoveFromKafra,2,4);  // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8
+	packet(0x0366,clif->pUseSkillToPos,2,4,6,8);  // CZ_USE_SKILL_TOGROUND // 10
+	packet(0x0367,clif->pUseSkillToPosMoreInfo,2,4,6,8,10);  // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 31
+	packet(0x0368,clif->pGetCharNameRequest,2);  // CZ_REQNAME // 6
+	packet(0x0369,clif->pSolveCharName,2);  // CZ_REQNAME_BYGID // 6
+	packet(0x0436,clif->pWantToConnection,2,6,10,14,18);  // CZ_ENTER // 19
+	packet(0x0437,clif->pActionRequest,2,6);  // CZ_REQUEST_ACT // 7
+	packet(0x0438,clif->pUseSkillToId,2,4,6);  // CZ_USE_SKILL // 10
+	packet(0x07e4,clif->pItemListWindowSelected,2,4,8);  // CZ_ITEMLISTWIN_RES // -1
+	packet(0x07ec,clif->pDull/*,XXX*/);  // CZ_JOIN_BATTLE_FIELD // 8
+	packet(0x0802,clif->pPartyBookingRegisterReq,2,4);  // CZ_PARTY_BOOKING_REQ_REGISTER // 18
+	packet(0x0811,clif->pReqOpenBuyingStore,2,4,8,9,89);  // CZ_REQ_OPEN_BUYING_STORE // -1
+	packet(0x0815,clif->pReqCloseBuyingStore,0);  // CZ_REQ_CLOSE_BUYING_STORE // 2
+	packet(0x0817,clif->pReqClickBuyingStore,2);  // CZ_REQ_CLICK_TO_BUYING_STORE // 6
+	packet(0x0819,clif->pReqTradeBuyingStore,2,4,8,12);  // CZ_REQ_TRADE_BUYING_STORE // -1
+	packet(0x0835,clif->pSearchStoreInfo,2,4,5,9,13,14,15);  // CZ_SEARCH_STORE_INFO // -1
+	packet(0x0838,clif->pSearchStoreInfoNextPage,0);  // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2
+	packet(0x083c,clif->pSearchStoreInfoListItemClick,2,6,10);  // CZ_SSILIST_ITEM_CLICK // 14
+#endif
+
 
 #endif /* MAP_PACKETS_SHUFFLE_MAIN_H */
diff --git a/src/map/packets_shuffle_re.h b/src/map/packets_shuffle_re.h
index 044788301..f2a1b96ad 100644
--- a/src/map/packets_shuffle_re.h
+++ b/src/map/packets_shuffle_re.h
@@ -9663,7 +9663,7 @@
 	packet(0x083c,clif->pSearchStoreInfoListItemClick,2,6,10);  // CZ_SSILIST_ITEM_CLICK // 12
 #endif
 
-// 2018-07-04aRagexeRE, 2018-07-11aRagexeRE, 2018-07-18bRagexeRE, 2018-07-18bRagexeRE1, 2018-07-18cRagexeRE, 2018-08-01cRagexeRE, 2018-08-08bRagexeRE, 2018-08-22cRagexeRE, 2018-08-29aRagexeRE, 2018-08-29bRagexeRE, 2018-09-12dRagexeRE, 2018-09-19aRagexeRE, 2018-10-02aRagexeRE, 2018-10-02bRagexeRE, 2018-10-17_02aRagexeRE, 2018-10-17_03aRagexeRE, 2018-10-17bRagexeRE, 2018-10-31cRagexeRE, 2018-11-07aRagexeRE, 2018-11-14cRagexeRE, 2018-11-14dRagexeRE, 2018-11-21cRagexeRE, 2018-11-28aRagexeRE, 2018-12-05bRagexeRE, 2018-12-12aRagexeRE, 2018-12-12bRagexeRE, 2018-12-19bRagexeRE, 2018-12-26aRagexeRE, 2019-01-09bRagexeRE, 2019-01-16bRagexeRE, 2019-01-16cRagexeRE, 2019-01-23dRagexeRE, 2019-02-13IRagexeRE, 2019-02-20aRagexeRE, 2019-02-27bRagexeRE, 2019-02-28aRagexeRE, 2019-03-06bRagexeRE, 2019-03-06cRagexeRE, 2019-03-20aRagexeRE, 2019-03-22aRagexeRE, 2019-03-27bRagexeRE, 2019-04-03bRagexeRE, 2019-04-03cRagexeRE, 2019-04-17cRagexeRE, 2019-04-18aRagexeRE, 2019-05-08dRagexeRE, 2019-05-08eRagexeRE, 2019-05-22bRagexeRE, 2019-05-22cRagexeRE, 2019-05-29bRagexeRE, 2019-05-29cRagexeRE, 2019-05-30aRagexeRE, 2019-06-05hRagexeRE, 2019-06-05JRagexeRE, 2019-06-05LRagexeRE, 2019-06-19cRagexeRE, 2019-06-26bRagexeRE, 2019-07-03bRagexeRE, 2019-07-17cRagexeRE, 2019-07-17dRagexeRE, 2019-07-24bRagexeRE, 2019-07-31bRagexeRE, 2019-08-02aRagexeRE, 2019-08-07dRagexeRE, 2019-08-21cRagexeRE, 2019-08-21dRagexeRE
+// 2018-07-04aRagexeRE, 2018-07-11aRagexeRE, 2018-07-18bRagexeRE, 2018-07-18bRagexeRE1, 2018-07-18cRagexeRE, 2018-08-01cRagexeRE, 2018-08-08bRagexeRE, 2018-08-22cRagexeRE, 2018-08-29aRagexeRE, 2018-08-29bRagexeRE, 2018-09-12dRagexeRE, 2018-09-19aRagexeRE, 2018-10-02aRagexeRE, 2018-10-02bRagexeRE, 2018-10-17_02aRagexeRE, 2018-10-17_03aRagexeRE, 2018-10-17bRagexeRE, 2018-10-31cRagexeRE, 2018-11-07aRagexeRE, 2018-11-14cRagexeRE, 2018-11-14dRagexeRE, 2018-11-21cRagexeRE, 2018-11-28aRagexeRE, 2018-12-05bRagexeRE, 2018-12-12aRagexeRE, 2018-12-12bRagexeRE, 2018-12-19bRagexeRE, 2018-12-26aRagexeRE, 2019-01-09bRagexeRE, 2019-01-16bRagexeRE, 2019-01-16cRagexeRE, 2019-01-23dRagexeRE, 2019-02-13IRagexeRE, 2019-02-20aRagexeRE, 2019-02-27bRagexeRE, 2019-02-28aRagexeRE, 2019-03-06bRagexeRE, 2019-03-06cRagexeRE, 2019-03-20aRagexeRE, 2019-03-22aRagexeRE, 2019-03-27bRagexeRE, 2019-04-03bRagexeRE, 2019-04-03cRagexeRE, 2019-04-17cRagexeRE, 2019-04-18aRagexeRE, 2019-05-08dRagexeRE, 2019-05-08eRagexeRE, 2019-05-22bRagexeRE, 2019-05-22cRagexeRE, 2019-05-29bRagexeRE, 2019-05-29cRagexeRE, 2019-05-30aRagexeRE, 2019-06-05hRagexeRE, 2019-06-05JRagexeRE, 2019-06-05LRagexeRE, 2019-06-19cRagexeRE, 2019-06-26bRagexeRE, 2019-07-03bRagexeRE, 2019-07-17cRagexeRE, 2019-07-17dRagexeRE, 2019-07-24bRagexeRE, 2019-07-31bRagexeRE, 2019-08-02aRagexeRE, 2019-08-07dRagexeRE, 2019-08-21cRagexeRE, 2019-08-21dRagexeRE, 2019-08-28aRagexeRE
 #if PACKETVER == 20180704 || \
     PACKETVER == 20180711 || \
     PACKETVER == 20180718 || \
@@ -9711,7 +9711,8 @@
     PACKETVER == 20190731 || \
     PACKETVER == 20190802 || \
     PACKETVER == 20190807 || \
-    PACKETVER >= 20190821
+    PACKETVER == 20190821 || \
+    PACKETVER >= 20190828
 	packet(0x0202,clif->pFriendsListAdd,2);  // CZ_ADD_FRIENDS // 26
 	packet(0x022d,clif->pHomMenu,2,4);  // CZ_COMMAND_MER // 5
 	packet(0x023b,clif->pStoragePassword,0);  // CZ_ACK_STORE_PASSWORD // 36
@@ -9743,5 +9744,39 @@
 	packet(0x083c,clif->pSearchStoreInfoListItemClick,2,6,10);  // CZ_SSILIST_ITEM_CLICK // 14
 #endif
 
+// 2019-09-04bRagexeRE, 2019-09-18cRagexeRE
+#if PACKETVER == 20190904 || \
+    PACKETVER == 20190918
+	packet(0x0202,clif->pFriendsListAdd,2);  // CZ_ADD_FRIENDS // 26
+	packet(0x022d,clif->pHomMenu,2,4);  // CZ_COMMAND_MER // 5
+	packet(0x023b,clif->pStoragePassword,0);  // CZ_ACK_STORE_PASSWORD // 36
+	packet(0x0281,clif->pDull/*,XXX*/);  // CZ_GANGSI_RANK // 4
+	packet(0x02c4,clif->pPartyInvite2,2);  // CZ_PARTY_JOIN_REQ // 26
+	packet(0x035f,clif->pWalkToXY,2);  // CZ_REQUEST_MOVE // 5
+	packet(0x0360,clif->pTickSend,2);  // CZ_REQUEST_TIME // 6
+	packet(0x0361,clif->pChangeDir,2,4);  // CZ_CHANGE_DIRECTION // 5
+	packet(0x0362,clif->pTakeItem,2);  // CZ_ITEM_PICKUP // 6
+	packet(0x0363,clif->pDropItem,2,4);  // CZ_ITEM_THROW // 6
+	packet(0x0364,clif->pMoveToKafra,2,4);  // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8
+	packet(0x0365,clif->pMoveFromKafra,2,4);  // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8
+	packet(0x0366,clif->pUseSkillToPos,2,4,6,8);  // CZ_USE_SKILL_TOGROUND // 10
+	packet(0x0367,clif->pUseSkillToPosMoreInfo,2,4,6,8,10);  // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 31
+	packet(0x0368,clif->pGetCharNameRequest,2);  // CZ_REQNAME // 6
+	packet(0x0369,clif->pSolveCharName,2);  // CZ_REQNAME_BYGID // 6
+	packet(0x0436,clif->pWantToConnection,2,6,10,14,18);  // CZ_ENTER // 19
+	packet(0x0437,clif->pActionRequest,2,6);  // CZ_REQUEST_ACT // 7
+	packet(0x0438,clif->pUseSkillToId,2,4,6);  // CZ_USE_SKILL // 10
+	packet(0x07e4,clif->pItemListWindowSelected,2,4,8);  // CZ_ITEMLISTWIN_RES // -1
+	packet(0x07ec,clif->pDull/*,XXX*/);  // CZ_JOIN_BATTLE_FIELD // 8
+	packet(0x0802,clif->pPartyBookingRegisterReq,2,4);  // CZ_PARTY_BOOKING_REQ_REGISTER // 18
+	packet(0x0811,clif->pReqOpenBuyingStore,2,4,8,9,89);  // CZ_REQ_OPEN_BUYING_STORE // -1
+	packet(0x0815,clif->pReqCloseBuyingStore,0);  // CZ_REQ_CLOSE_BUYING_STORE // 2
+	packet(0x0817,clif->pReqClickBuyingStore,2);  // CZ_REQ_CLICK_TO_BUYING_STORE // 6
+	packet(0x0819,clif->pReqTradeBuyingStore,2,4,8,12);  // CZ_REQ_TRADE_BUYING_STORE // -1
+	packet(0x0835,clif->pSearchStoreInfo,2,4,5,9,13,14,15);  // CZ_SEARCH_STORE_INFO // -1
+	packet(0x0838,clif->pSearchStoreInfoNextPage,0);  // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2
+	packet(0x083c,clif->pSearchStoreInfoListItemClick,2,6,10);  // CZ_SSILIST_ITEM_CLICK // 14
+#endif
+
 
 #endif /* MAP_PACKETS_SHUFFLE_RE_H */
diff --git a/src/map/packets_shuffle_zero.h b/src/map/packets_shuffle_zero.h
index 109dadaba..4d6da7a8a 100644
--- a/src/map/packets_shuffle_zero.h
+++ b/src/map/packets_shuffle_zero.h
@@ -803,5 +803,40 @@
 	packet(0x083c,clif->pSearchStoreInfoListItemClick,2,6,10);  // CZ_SSILIST_ITEM_CLICK // 14
 #endif
 
+// 2019-08-28_2aRagexe_zero, 2019-08-28_3aRagexe_zero, 2019-09-11aRagexe_zero, 2019-09-18_2aRagexe_zero, 2019-09-18aRagexe_zero
+#if PACKETVER == 20190828 || \
+    PACKETVER == 20190911 || \
+    PACKETVER == 20190918
+	packet(0x0202,clif->pFriendsListAdd,2);  // CZ_ADD_FRIENDS // 26
+	packet(0x022d,clif->pHomMenu,2,4);  // CZ_COMMAND_MER // 5
+	packet(0x023b,clif->pStoragePassword,0);  // CZ_ACK_STORE_PASSWORD // 36
+	packet(0x0281,clif->pDull/*,XXX*/);  // CZ_GANGSI_RANK // 4
+	packet(0x02c4,clif->pPartyInvite2,2);  // CZ_PARTY_JOIN_REQ // 26
+	packet(0x035f,clif->pWalkToXY,2);  // CZ_REQUEST_MOVE // 5
+	packet(0x0360,clif->pTickSend,2);  // CZ_REQUEST_TIME // 6
+	packet(0x0361,clif->pChangeDir,2,4);  // CZ_CHANGE_DIRECTION // 5
+	packet(0x0362,clif->pTakeItem,2);  // CZ_ITEM_PICKUP // 6
+	packet(0x0363,clif->pDropItem,2,4);  // CZ_ITEM_THROW // 6
+	packet(0x0364,clif->pMoveToKafra,2,4);  // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8
+	packet(0x0365,clif->pMoveFromKafra,2,4);  // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8
+	packet(0x0366,clif->pUseSkillToPos,2,4,6,8);  // CZ_USE_SKILL_TOGROUND // 10
+	packet(0x0367,clif->pUseSkillToPosMoreInfo,2,4,6,8,10);  // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 31
+	packet(0x0368,clif->pGetCharNameRequest,2);  // CZ_REQNAME // 6
+	packet(0x0369,clif->pSolveCharName,2);  // CZ_REQNAME_BYGID // 6
+	packet(0x0436,clif->pWantToConnection,2,6,10,14,18);  // CZ_ENTER // 19
+	packet(0x0437,clif->pActionRequest,2,6);  // CZ_REQUEST_ACT // 7
+	packet(0x0438,clif->pUseSkillToId,2,4,6);  // CZ_USE_SKILL // 10
+	packet(0x07e4,clif->pItemListWindowSelected,2,4,8);  // CZ_ITEMLISTWIN_RES // -1
+	packet(0x07ec,clif->pDull/*,XXX*/);  // CZ_JOIN_BATTLE_FIELD // 8
+	packet(0x0802,clif->pPartyBookingRegisterReq,2,4);  // CZ_PARTY_BOOKING_REQ_REGISTER // 18
+	packet(0x0811,clif->pReqOpenBuyingStore,2,4,8,9,89);  // CZ_REQ_OPEN_BUYING_STORE // -1
+	packet(0x0815,clif->pReqCloseBuyingStore,0);  // CZ_REQ_CLOSE_BUYING_STORE // 2
+	packet(0x0817,clif->pReqClickBuyingStore,2);  // CZ_REQ_CLICK_TO_BUYING_STORE // 6
+	packet(0x0819,clif->pReqTradeBuyingStore,2,4,8,12);  // CZ_REQ_TRADE_BUYING_STORE // -1
+	packet(0x0835,clif->pSearchStoreInfo,2,4,5,9,13,14,15);  // CZ_SEARCH_STORE_INFO // -1
+	packet(0x0838,clif->pSearchStoreInfoNextPage,0);  // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2
+	packet(0x083c,clif->pSearchStoreInfoListItemClick,2,6,10);  // CZ_SSILIST_ITEM_CLICK // 14
+#endif
+
 
 #endif /* MAP_PACKETS_SHUFFLE_ZERO_H */
-- 
cgit v1.2.3-70-g09d2


From 5fd9acf126af159d6a2fef4cccc8b2ed92bc2553 Mon Sep 17 00:00:00 2001
From: Andrei Karas <akaras@inbox.ru>
Date: Thu, 29 Aug 2019 00:23:01 +0300
Subject: Update build packet version in travis to 20190918

---
 .travis.yml | 16 ++++++++--------
 1 file changed, 8 insertions(+), 8 deletions(-)

diff --git a/.travis.yml b/.travis.yml
index a02f65eeb..43c8e4997 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -39,7 +39,7 @@ matrix:
   - compiler: false
   include:
   - compiler: gcc
-    env: LDFLAGS="-fuse-ld=gold" CONFIGURE_FLAGS="--enable-debug CC=gcc-6 --disable-manager --enable-Werror --enable-packetver=20190821 --enable-packetver-re --enable-buildbot" HPM="1"
+    env: LDFLAGS="-fuse-ld=gold" CONFIGURE_FLAGS="--enable-debug CC=gcc-6 --disable-manager --enable-Werror --enable-packetver=20190918 --enable-packetver-re --enable-buildbot" HPM="1"
     addons:
       apt:
         sources:
@@ -52,7 +52,7 @@ matrix:
         - libxml-sax-perl
         - libxml-parser-perl
   - compiler: clang
-    env: CONFIGURE_FLAGS="--enable-debug CC=clang-5.0 --enable-Werror --enable-packetver=20190821 --enable-packetver-re --enable-buildbot"
+    env: CONFIGURE_FLAGS="--enable-debug CC=clang-5.0 --enable-Werror --enable-packetver=20190918 --enable-packetver-re --enable-buildbot"
     addons:
       apt:
         sources:
@@ -72,7 +72,7 @@ matrix:
         - gdb
         - clang-5.0
   - compiler: clang
-    env: CONFIGURE_FLAGS="--enable-debug CC=clang-4.0 --enable-Werror --enable-packetver=20190821 --enable-packetver-re --enable-buildbot"
+    env: CONFIGURE_FLAGS="--enable-debug CC=clang-4.0 --enable-Werror --enable-packetver=20190918 --enable-packetver-re --enable-buildbot"
     addons:
       apt:
         sources:
@@ -106,11 +106,11 @@ matrix:
   - compiler: clang
     env: CONFIGURE_FLAGS="--enable-debug --disable-renewal --enable-Werror --enable-buildbot"
   - compiler: gcc
-    env: CONFIGURE_FLAGS="--enable-debug --enable-Werror --enable-packetver=20190821 --enable-packetver-re --enable-buildbot"
+    env: CONFIGURE_FLAGS="--enable-debug --enable-Werror --enable-packetver=20190918 --enable-packetver-re --enable-buildbot"
   - compiler: gcc
     env: CONFIGURE_FLAGS="--enable-debug --disable-renewal --enable-Werror --enable-buildbot"
   - compiler: gcc
-    env: LDFLAGS="-fuse-ld=gold" CONFIGURE_FLAGS="--enable-debug --enable-sanitize=full CC=gcc-5 --disable-manager --enable-Werror --enable-packetver=20190821 --enable-packetver-re --enable-buildbot"
+    env: LDFLAGS="-fuse-ld=gold" CONFIGURE_FLAGS="--enable-debug --enable-sanitize=full CC=gcc-5 --disable-manager --enable-Werror --enable-packetver=20190918 --enable-packetver-re --enable-buildbot"
     addons:
       apt:
         sources:
@@ -128,7 +128,7 @@ matrix:
         - gdb
         - gcc-5
   - compiler: gcc
-    env: LDFLAGS="-fuse-ld=gold" CONFIGURE_FLAGS="--enable-debug --enable-sanitize=full CC=gcc-6 --disable-manager --enable-Werror --enable-packetver=20190821 --enable-packetver-re --enable-buildbot"
+    env: LDFLAGS="-fuse-ld=gold" CONFIGURE_FLAGS="--enable-debug --enable-sanitize=full CC=gcc-6 --disable-manager --enable-Werror --enable-packetver=20190918 --enable-packetver-re --enable-buildbot"
     addons:
       apt:
         sources:
@@ -146,7 +146,7 @@ matrix:
         - gdb
         - gcc-6
   - compiler: gcc
-    env: LDFLAGS="-fuse-ld=gold" CONFIGURE_FLAGS="--enable-debug CC=gcc-7 --disable-manager --enable-Werror --enable-packetver=20190821 --enable-packetver-re --enable-buildbot"
+    env: LDFLAGS="-fuse-ld=gold" CONFIGURE_FLAGS="--enable-debug CC=gcc-7 --disable-manager --enable-Werror --enable-packetver=20190918 --enable-packetver-re --enable-buildbot"
     addons:
       apt:
         sources:
@@ -164,7 +164,7 @@ matrix:
         - gdb
         - gcc-7
   - compiler: gcc
-    env: LDFLAGS="-fuse-ld=gold" CONFIGURE_FLAGS="--enable-debug --enable-sanitize=full CC=gcc-8 --disable-manager --enable-Werror --enable-packetver=20190821 --enable-packetver-re --enable-buildbot"
+    env: LDFLAGS="-fuse-ld=gold" CONFIGURE_FLAGS="--enable-debug --enable-sanitize=full CC=gcc-8 --disable-manager --enable-Werror --enable-packetver=20190918 --enable-packetver-re --enable-buildbot"
     addons:
       apt:
         sources:
-- 
cgit v1.2.3-70-g09d2


From 070256d031a01159c588fa62cd849624727e22ff Mon Sep 17 00:00:00 2001
From: Andrei Karas <akaras@inbox.ru>
Date: Thu, 29 Aug 2019 00:54:37 +0300
Subject: Convert packet ZC_TALKBOX_CHATCONTENTS into struct and add new packet
 version

---
 src/map/clif.c           | 10 +++++-----
 src/map/mapdefines.h     | 10 +++++++++-
 src/map/packets_struct.h |  7 +++++++
 3 files changed, 21 insertions(+), 6 deletions(-)

diff --git a/src/map/clif.c b/src/map/clif.c
index 1c245ed43..e9d731224 100644
--- a/src/map/clif.c
+++ b/src/map/clif.c
@@ -8689,14 +8689,14 @@ static void clif_emotion(struct block_list *bl, int type)
 /// 0191 <id>.L <contents>.80B
 static void clif_talkiebox(struct block_list *bl, const char *talkie)
 {
-	unsigned char buf[MESSAGE_SIZE+6];
 	nullpo_retv(bl);
 	nullpo_retv(talkie);
+	struct PACKET_ZC_TALKBOX_CHATCONTENTS p;
 
-	WBUFW(buf,0) = 0x191;
-	WBUFL(buf,2) = bl->id;
-	safestrncpy(WBUFP(buf,6),talkie,MESSAGE_SIZE);
-	clif->send(buf,packet_len(0x191),bl,AREA);
+	p.PacketType = HEADER_ZC_TALKBOX_CHATCONTENTS;
+	p.aid = bl->id;
+	safestrncpy(&p.message[0], talkie, TALKBOX_MESSAGE_SIZE);
+	clif->send(&p, sizeof(struct PACKET_ZC_TALKBOX_CHATCONTENTS), bl, AREA);
 }
 
 /// Displays wedding effect centered on an object (ZC_CONGRATULATION).
diff --git a/src/map/mapdefines.h b/src/map/mapdefines.h
index df9e9bccb..348ca98fd 100644
--- a/src/map/mapdefines.h
+++ b/src/map/mapdefines.h
@@ -21,6 +21,8 @@
 #ifndef MAP_MAPDEFINES_H
 #define MAP_MAPDEFINES_H
 
+#include "common/mmo.h" // packet versions
+
 #define MAX_NPC_PER_MAP 512
 #define AREA_SIZE (battle->bc->area_size)
 #define CHAT_AREA_SIZE (battle->bc->chat_area_size)
@@ -57,8 +59,14 @@
 #define MAPID_UPPERMASK 0x0fff
 #define MAPID_THIRDMASK (JOBL_THIRD|MAPID_UPPERMASK)
 
-// Max size for inputs to Graffiti, Talkie Box and Vending text prompts
+// Max size for inputs to Vending text prompts
 #define MESSAGE_SIZE (79 + 1)
+// Max size for inputs to Graffiti, Talkie Box text prompts
+#if PACKETVER_MAIN_NUM >= 20190904 || PACKETVER_RE_NUM >= 20190904 || PACKETVER_ZERO_NUM >= 20190828
+#define TALKBOX_MESSAGE_SIZE 21
+#else
+#define TALKBOX_MESSAGE_SIZE (79 + 1)
+#endif
 // String length you can write in the 'talking box'
 #define CHATBOX_SIZE (70 + 1)
 // Chatroom-related string sizes
diff --git a/src/map/packets_struct.h b/src/map/packets_struct.h
index d12dc14d4..45254b5f8 100644
--- a/src/map/packets_struct.h
+++ b/src/map/packets_struct.h
@@ -3610,6 +3610,13 @@ struct PACKET_ZC_NPC_MARKET_PURCHASE_RESULT {
 DEFINE_PACKET_HEADER(ZC_NPC_MARKET_PURCHASE_RESULT, 0x09d7);
 #endif
 
+struct PACKET_ZC_TALKBOX_CHATCONTENTS {
+	int16 PacketType;
+	uint32 aid;
+	char message[TALKBOX_MESSAGE_SIZE];
+} __attribute__((packed));
+DEFINE_PACKET_HEADER(ZC_TALKBOX_CHATCONTENTS, 0x0191);
+
 #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
-- 
cgit v1.2.3-70-g09d2


From d7a8b4c7b4ff9888635394e1880a9409a179532b Mon Sep 17 00:00:00 2001
From: Andrei Karas <akaras@inbox.ru>
Date: Thu, 29 Aug 2019 00:59:13 +0300
Subject: Update function clif_parse_UseSkillToPosSub for support new packets

---
 src/map/clif.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/map/clif.c b/src/map/clif.c
index e9d731224..1a745d5db 100644
--- a/src/map/clif.c
+++ b/src/map/clif.c
@@ -12687,7 +12687,7 @@ static void clif_parse_UseSkillToPosSub(int fd, struct map_session_data *sd, uin
 			return;
 		}
 		//You can't use Graffiti/TalkieBox AND have a vending open, so this is safe.
-		safestrncpy(sd->message, RFIFOP(fd,skillmoreinfo), MESSAGE_SIZE);
+		safestrncpy(sd->message, RFIFOP(fd, skillmoreinfo), TALKBOX_MESSAGE_SIZE);
 	}
 
 	if( sd->ud.skilltimer != INVALID_TIMER )
-- 
cgit v1.2.3-70-g09d2


From e55f9bce0d224ff517d21112bb323872fbc3ba70 Mon Sep 17 00:00:00 2001
From: Andrei Karas <akaras@inbox.ru>
Date: Thu, 29 Aug 2019 01:03:49 +0300
Subject: Rollback support for new skill packets in zero. It not added yet

---
 src/map/clif.c           | 4 ++--
 src/map/packets_struct.h | 8 ++++----
 2 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/src/map/clif.c b/src/map/clif.c
index 1a745d5db..ca29a4397 100644
--- a/src/map/clif.c
+++ b/src/map/clif.c
@@ -5268,7 +5268,7 @@ static void clif_playerSkillToPacket(struct map_session_data *sd, struct SKILLDA
 		skillData->sp = 0;
 		skillData->range2 = 0;
 	}
-#if PACKETVER_RE_NUM >= 20190807 || PACKETVER_ZERO_NUM >= 20190814
+#if PACKETVER_RE_NUM >= 20190807
 	if (newSkill)
 		skillData->level2 = 0;
 	else
@@ -5419,7 +5419,7 @@ static void clif_skillinfo(struct map_session_data *sd, int skill_id, int inf)
 		p->sp = 0;
 		p->range2 = 0;
 	}
-#if PACKETVER_RE_NUM >= 20190807 || PACKETVER_ZERO_NUM >= 20190814
+#if PACKETVER_RE_NUM >= 20190807
 	p->level2 = skill_lv;
 #endif
 	if (sd->status.skill[idx].flag == SKILL_FLAG_PERMANENT)
diff --git a/src/map/packets_struct.h b/src/map/packets_struct.h
index 45254b5f8..79ecabc46 100644
--- a/src/map/packets_struct.h
+++ b/src/map/packets_struct.h
@@ -3514,7 +3514,7 @@ DEFINE_PACKET_HEADER(ZC_HAT_EFFECT, 0x0a3b);
 #endif
 
 // [4144] this struct updated not in all packets in client
-#if PACKETVER_RE_NUM >= 20190807 || PACKETVER_ZERO_NUM >= 20190814
+#if PACKETVER_RE_NUM >= 20190807
 struct SKILLDATA {
 	uint16 id;
 	int inf;
@@ -3540,7 +3540,7 @@ struct PACKET_ZC_ADD_SKILL {
 	int16 packetType;
 	struct SKILLDATA skill;
 } __attribute__((packed));
-#if PACKETVER_RE_NUM >= 20190807 || PACKETVER_ZERO_NUM >= 20190814
+#if PACKETVER_RE_NUM >= 20190807
 DEFINE_PACKET_HEADER(ZC_ADD_SKILL, 0x0b31);
 #else
 DEFINE_PACKET_HEADER(ZC_ADD_SKILL, 0x0111);
@@ -3551,13 +3551,13 @@ struct PACKET_ZC_SKILLINFO_LIST {
 	int16 packetLength;
 	struct SKILLDATA skills[];
 } __attribute__((packed));
-#if PACKETVER_RE_NUM >= 20190807 || PACKETVER_ZERO_NUM >= 20190814
+#if PACKETVER_RE_NUM >= 20190807
 DEFINE_PACKET_HEADER(ZC_SKILLINFO_LIST, 0x0b32);
 #else
 DEFINE_PACKET_HEADER(ZC_SKILLINFO_LIST, 0x010f);
 #endif
 
-#if PACKETVER_RE_NUM >= 20190807 || PACKETVER_ZERO_NUM >= 20190814
+#if PACKETVER_RE_NUM >= 20190807
 struct PACKET_ZC_SKILLINFO_UPDATE2 {
 	int16 packetType;
 	uint16 id;
-- 
cgit v1.2.3-70-g09d2


From c2445e45345967a7a80202e794f680e31b1e9b0d Mon Sep 17 00:00:00 2001
From: Andrei Karas <akaras@inbox.ru>
Date: Sun, 1 Sep 2019 19:09:49 +0300
Subject: Add at command for change char sex

New at command: @changecharsex
---
 doc/atcommands.txt  |  6 ++++++
 src/map/atcommand.c | 13 +++++++++++++
 2 files changed, 19 insertions(+)

diff --git a/doc/atcommands.txt b/doc/atcommands.txt
index 139295973..0b4dce579 100644
--- a/doc/atcommands.txt
+++ b/doc/atcommands.txt
@@ -1059,6 +1059,12 @@ Changes the gender attached to the player's account.
 
 ---------------------------------------
 
+@changecharsex
+
+Changes the gender attached to the player's character.
+
+---------------------------------------
+
 @marry <player 1> <player 2>
 @divorce <player>
 
diff --git a/src/map/atcommand.c b/src/map/atcommand.c
index 22969606d..b472694c4 100644
--- a/src/map/atcommand.c
+++ b/src/map/atcommand.c
@@ -6750,6 +6750,18 @@ ACMD(changesex)
 	return true;
 }
 
+ACMD(changecharsex)
+{
+	int i;
+
+	pc->resetskill(sd, PCRESETSKILL_CHSEX);
+	// to avoid any problem with equipment and invalid sex, equipment is unequipped.
+	for (i=0; i<EQI_MAX; i++)
+		if (sd->equip_index[i] >= 0) pc->unequipitem(sd, sd->equip_index[i], PCUNEQUIPITEM_RECALC|PCUNEQUIPITEM_FORCE);
+	chrif->changesex(sd, false);
+	return true;
+}
+
 /*================================================
  * @mute - Mutes a player for a set amount of time
  *------------------------------------------------*/
@@ -10115,6 +10127,7 @@ static void atcommand_basecommands(void)
 		ACMD_DEF(clearweather),
 		ACMD_DEF(uptime),
 		ACMD_DEF(changesex),
+		ACMD_DEF(changecharsex),
 		ACMD_DEF(mute),
 		ACMD_DEF(refresh),
 		ACMD_DEF(refreshall),
-- 
cgit v1.2.3-70-g09d2


From 04732bc51794573756b02510a56e530368d806c5 Mon Sep 17 00:00:00 2001
From: Andrei Karas <akaras@inbox.ru>
Date: Mon, 2 Sep 2019 09:47:56 +0300
Subject: Fix packet ZC_ACK_RANKING for old clients

---
 configure                |  2 +-
 src/map/clif.c           | 14 +++++++-------
 src/map/packets_struct.h | 19 ++++++++++++++-----
 3 files changed, 22 insertions(+), 13 deletions(-)

diff --git a/configure b/configure
index 8ac5f1d4f..65e716b09 100755
--- a/configure
+++ b/configure
@@ -1,5 +1,5 @@
 #! /bin/sh
-# From configure.ac cdc66ce0e.
+# From configure.ac 20c3ecff9.
 # Guess values for system-dependent variables and create Makefiles.
 # Generated by GNU Autoconf 2.69.
 #
diff --git a/src/map/clif.c b/src/map/clif.c
index ca29a4397..6d1f64140 100644
--- a/src/map/clif.c
+++ b/src/map/clif.c
@@ -15978,18 +15978,18 @@ static void clif_ranklist_sub(struct PACKET_ZC_ACK_RANKING_sub *ranks, enum fame
 		if (list[i].id > 0) {
 			const char* name;
 			if (strcmp(list[i].name, "-") == 0 && (name = map->charid2nick(list[i].id)) != NULL) {
-				strncpy(ranks[i].name, name, NAME_LENGTH);
+				strncpy(ranks->names[i].name, name, NAME_LENGTH);
 			} else {
-				strncpy(ranks[i].name, list[i].name, NAME_LENGTH);
+				strncpy(ranks->names[i].name, list[i].name, NAME_LENGTH);
 			}
 		} else {
-			strncpy(ranks[i].name, "None", 5);
+			strncpy(ranks->names[i].name, "None", 5);
 		}
-		ranks[i].points = list[i].fame; //points
+		ranks->points[i].points = list[i].fame; //points
 	}
 	for (;i < 10; i++) { // In case the MAX is less than 10.
-		strncpy(ranks[i].name, "Unavailable", 12);
-		ranks[i].points = 0;
+		strncpy(ranks->names[i].name, "Unavailable", 12);
+		ranks->points[i].points = 0;
 	}
 #endif
 }
@@ -16038,7 +16038,7 @@ static void clif_ranklist(struct map_session_data *sd, enum fame_list_type type)
 #if PACKETVER_MAIN_NUM >= 20190731 || PACKETVER_RE_NUM >= 20190703 || PACKETVER_ZERO_NUM >= 20190724
 	clif->ranklist_sub2(p->chars, p->points, type);
 #else
-	clif->ranklist_sub(p->ranks, type);
+	clif->ranklist_sub(&p->ranks, type);
 #endif
 
 	if (pc->famelist_type(sd->job) == type) {
diff --git a/src/map/packets_struct.h b/src/map/packets_struct.h
index 79ecabc46..93b4abcca 100644
--- a/src/map/packets_struct.h
+++ b/src/map/packets_struct.h
@@ -3460,6 +3460,14 @@ struct PACKET_ZC_REFINE_STATUS {
 DEFINE_PACKET_HEADER(ZC_REFINE_STATUS, 0x0ada);
 #endif
 
+struct PACKET_ZC_ACK_RANKING_name {
+	char name[NAME_LENGTH];
+} __attribute__((packed));
+
+struct PACKET_ZC_ACK_RANKING_points {
+	uint32 points;
+} __attribute__((packed));
+
 #if PACKETVER_MAIN_NUM >= 20190731 || PACKETVER_RE_NUM >= 20190703 || PACKETVER_ZERO_NUM >= 20190724
 struct PACKET_ZC_ACK_RANKING_sub {
 	char name[NAME_LENGTH];
@@ -3476,21 +3484,22 @@ struct PACKET_ZC_ACK_RANKING {
 DEFINE_PACKET_HEADER(ZC_ACK_RANKING, 0x0af6);
 #elif PACKETVER_MAIN_NUM >= 20130605 || PACKETVER_RE_NUM >= 20130529 || defined(PACKETVER_ZERO)
 struct PACKET_ZC_ACK_RANKING_sub {
-	char name[NAME_LENGTH];
-	uint32 points;
+	struct PACKET_ZC_ACK_RANKING_name names[10];
+	struct PACKET_ZC_ACK_RANKING_points points[10];
 } __attribute__((packed));
 
 struct PACKET_ZC_ACK_RANKING {
 	int16 packetType;
 	int16 rankType;
-	struct PACKET_ZC_ACK_RANKING_sub ranks[10];
+	struct PACKET_ZC_ACK_RANKING_sub ranks;
 	uint32 myPoints;
 } __attribute__((packed));
+
 DEFINE_PACKET_HEADER(ZC_ACK_RANKING, 0x097d);
 #else
 struct PACKET_ZC_ACK_RANKING_sub {
-	char name[NAME_LENGTH];
-	uint32 points;
+	struct PACKET_ZC_ACK_RANKING_name names[10];
+	struct PACKET_ZC_ACK_RANKING_points points[10];
 } __attribute__((packed));
 #endif
 
-- 
cgit v1.2.3-70-g09d2


From cd303fb60f2ac5d4fde55dccdd01050397b1bb7e Mon Sep 17 00:00:00 2001
From: Andrei Karas <akaras@inbox.ru>
Date: Mon, 2 Sep 2019 19:02:52 +0300
Subject: Update HPM

---
 src/common/HPMDataCheck.h | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/src/common/HPMDataCheck.h b/src/common/HPMDataCheck.h
index 96fea8fe0..fd34a1d82 100644
--- a/src/common/HPMDataCheck.h
+++ b/src/common/HPMDataCheck.h
@@ -665,6 +665,8 @@ HPExport const struct s_HPMDataCheck HPMDataCheck[] = {
 		{ "PACKET_ZC_ACK_LEAVE_GUILD1", sizeof(struct PACKET_ZC_ACK_LEAVE_GUILD1), SERVER_TYPE_MAP },
 		{ "PACKET_ZC_ACK_LEAVE_GUILD2", sizeof(struct PACKET_ZC_ACK_LEAVE_GUILD2), SERVER_TYPE_MAP },
 		{ "PACKET_ZC_ACK_OPEN_WRITE_MAIL", sizeof(struct PACKET_ZC_ACK_OPEN_WRITE_MAIL), SERVER_TYPE_MAP },
+		{ "PACKET_ZC_ACK_RANKING_name", sizeof(struct PACKET_ZC_ACK_RANKING_name), SERVER_TYPE_MAP },
+		{ "PACKET_ZC_ACK_RANKING_points", sizeof(struct PACKET_ZC_ACK_RANKING_points), SERVER_TYPE_MAP },
 		{ "PACKET_ZC_ACK_RANKING_sub", sizeof(struct PACKET_ZC_ACK_RANKING_sub), SERVER_TYPE_MAP },
 		{ "PACKET_ZC_ACK_REMOVE_ITEM_MAIL", sizeof(struct PACKET_ZC_ACK_REMOVE_ITEM_MAIL), SERVER_TYPE_MAP },
 		{ "PACKET_ZC_ACK_REQMAKINGITEM", sizeof(struct PACKET_ZC_ACK_REQMAKINGITEM), SERVER_TYPE_MAP },
@@ -741,6 +743,7 @@ HPExport const struct s_HPMDataCheck HPMDataCheck[] = {
 		{ "PACKET_ZC_SPRITE_CHANGE", sizeof(struct PACKET_ZC_SPRITE_CHANGE), SERVER_TYPE_MAP },
 		{ "PACKET_ZC_STATUS_CHANGE_ACK", sizeof(struct PACKET_ZC_STATUS_CHANGE_ACK), SERVER_TYPE_MAP },
 		{ "PACKET_ZC_STYLE_CHANGE_RES", sizeof(struct PACKET_ZC_STYLE_CHANGE_RES), SERVER_TYPE_MAP },
+		{ "PACKET_ZC_TALKBOX_CHATCONTENTS", sizeof(struct PACKET_ZC_TALKBOX_CHATCONTENTS), SERVER_TYPE_MAP },
 		{ "PACKET_ZC_UI_ACTION", sizeof(struct PACKET_ZC_UI_ACTION), SERVER_TYPE_MAP },
 		{ "PACKET_ZC_UPDATE_ITEM_FROM_BUYING_STORE", sizeof(struct PACKET_ZC_UPDATE_ITEM_FROM_BUYING_STORE), SERVER_TYPE_MAP },
 		{ "PACKET_ZC_USE_ITEM_ACK", sizeof(struct PACKET_ZC_USE_ITEM_ACK), SERVER_TYPE_MAP },
-- 
cgit v1.2.3-70-g09d2


From 79c2a4b11f5f05eed9ae5535395205236f73b1e4 Mon Sep 17 00:00:00 2001
From: Andrei Karas <akaras@inbox.ru>
Date: Wed, 4 Sep 2019 20:20:55 +0300
Subject: Extract code for really gain homun exp to separate function

Also replace hardcoded message to message string.
---
 conf/messages.conf   |  3 ++-
 src/map/homunculus.c | 28 +++++++++++++++++++---------
 src/map/homunculus.h |  1 +
 3 files changed, 22 insertions(+), 10 deletions(-)

diff --git a/conf/messages.conf b/conf/messages.conf
index bff4829c8..f616335fa 100644
--- a/conf/messages.conf
+++ b/conf/messages.conf
@@ -442,8 +442,9 @@
 432: change the sex of
 433: This character has been banned until 
 434: Char-server has been asked to %s the character '%.*s'.
-//435-449 FREE
+//435-448 FREE
 // Homunculus messages
+449: Homunculus Experience Gained Base:%u (%.2f%%)
 450: You already have a homunculus
 
 // Return pet to egg message
diff --git a/src/map/homunculus.c b/src/map/homunculus.c
index 31744f479..bb940fd44 100644
--- a/src/map/homunculus.c
+++ b/src/map/homunculus.c
@@ -525,6 +525,21 @@ static bool homunculus_mutate(struct homun_data *hd, int homun_id)
 	return true;
 }
 
+static int homunculus_gainexp_real(struct homun_data *hd, unsigned int exp)
+{
+	nullpo_ret(hd);
+	nullpo_ret(hd->master);
+
+	hd->homunculus.exp += exp;
+
+	if (hd->master->state.showexp && hd->exp_next > 0) {
+		char output[256];
+		sprintf(output, msg_fd(hd->master->fd, 449), exp, ((float)exp / (float)hd->exp_next * (float)100));
+		clif_disp_onlyself(hd->master, output);
+	}
+	return 1;
+}
+
 static int homunculus_gainexp(struct homun_data *hd, unsigned int exp)
 {
 	enum homun_type htype;
@@ -550,16 +565,10 @@ static int homunculus_gainexp(struct homun_data *hd, unsigned int exp)
 			break;
 	}
 
-	hd->homunculus.exp += exp;
-
-	if (hd->master->state.showexp && hd->exp_next > 0) {
-		char output[256];
-		sprintf(output, "Homunculus Experience Gained Base:%u (%.2f%%)", exp, ((float)exp / (float)hd->exp_next * (float)100));
-		clif_disp_onlyself(hd->master, output);
-	}
+	homun->gainexp_real(hd, exp);
 
-	if(hd->homunculus.exp < hd->exp_next) {
-		clif->hominfo(hd->master,hd,0);
+	if (hd->homunculus.exp < hd->exp_next) {
+		clif->hominfo(hd->master, hd, 0);
 		return 0;
 	}
 
@@ -1439,6 +1448,7 @@ void homunculus_defaults(void)
 	homun->evolve = homunculus_evolve;
 	homun->mutate = homunculus_mutate;
 	homun->gainexp = homunculus_gainexp;
+	homun->gainexp_real = homunculus_gainexp_real;
 	homun->add_intimacy = homunculus_add_intimacy;
 	homun->consume_intimacy = homunculus_consume_intimacy;
 	homun->healed = homunculus_healed;
diff --git a/src/map/homunculus.h b/src/map/homunculus.h
index 745c7cd84..502fb0b7f 100644
--- a/src/map/homunculus.h
+++ b/src/map/homunculus.h
@@ -178,6 +178,7 @@ struct homunculus_interface {
 	bool (*evolve) (struct homun_data *hd);
 	bool (*mutate) (struct homun_data *hd, int homun_id);
 	int (*gainexp) (struct homun_data *hd, unsigned int exp);
+	int (*gainexp_real) (struct homun_data *hd, unsigned int exp);
 	unsigned int (*add_intimacy) (struct homun_data * hd, unsigned int value);
 	unsigned int (*consume_intimacy) (struct homun_data *hd, unsigned int value);
 	void (*healed) (struct homun_data *hd);
-- 
cgit v1.2.3-70-g09d2


From 008706f9bd90c207f3df46bc920f5295c89124a1 Mon Sep 17 00:00:00 2001
From: Andrei Karas <akaras@inbox.ru>
Date: Wed, 11 Sep 2019 02:24:00 +0300
Subject: Use enum battle_dmg_type in related functions

---
 src/map/battle.h |  4 ++--
 src/map/clif.c   | 12 ++++++------
 src/map/clif.h   |  7 ++++---
 3 files changed, 12 insertions(+), 11 deletions(-)

diff --git a/src/map/battle.h b/src/map/battle.h
index 779e360bf..4400d37d1 100644
--- a/src/map/battle.h
+++ b/src/map/battle.h
@@ -103,8 +103,8 @@ enum e_battle_check_target { //New definitions [Skotlex]
 enum battle_dmg_type {
 	BDT_NORMAL      = 0,  // Normal attack
 	//BDT_PICKUP      = 1,  // Pick up item
-	//BDT_SITDOWN     = 2,  // Sit down
-	//BDT_STANDUP     = 3,  // Stand up
+	BDT_SITDOWN     = 2,  // Sit down
+	BDT_STANDUP     = 3,  // Stand up
 	BDT_ENDURE      = 4,  // Damage (endure)
 	BDT_SPLASH      = 5,  // Splash
 	BDT_SKILL       = 6,  // Skill
diff --git a/src/map/clif.c b/src/map/clif.c
index 6d1f64140..02eafe04b 100644
--- a/src/map/clif.c
+++ b/src/map/clif.c
@@ -4789,9 +4789,9 @@ static void clif_getareachar_unit(struct map_session_data *sd, struct block_list
 
 //Modifies the type of damage according to status changes [Skotlex]
 //Aegis data specifies that: 4 endure against single hit sources, 9 against multi-hit.
-static inline int clif_calc_delay(int type, int div, int damage, int delay)
+static inline enum battle_dmg_type clif_calc_delay(enum battle_dmg_type type, int div, int damage, int delay)
 {
-	return ( delay == 0 && damage > 0 ) ? ( div > 1 ? 9 : 4 ) : type;
+	return ( delay == 0 && damage > 0 ) ? ( div > 1 ? BDT_MULTIENDURE : BDT_ENDURE ) : type;
 }
 
 /*==========================================
@@ -4822,7 +4822,7 @@ static int clif_calc_walkdelay(struct block_list *bl, int delay, int type, int d
 /// 08c8 <src ID>.L <dst ID>.L <server tick>.L <src speed>.L <dst speed>.L <damage>.L <IsSPDamage>.B <div>.W <type>.B <damage2>.L (ZC_NOTIFY_ACT2)
 /// type: @see enum battle_dmg_type
 ///     for BDT_NORMAL: [ damage: total damage, div: amount of hits, damage2: assassin dual-wield damage ]
-static int clif_damage(struct block_list *src, struct block_list *dst, int sdelay, int ddelay, int64 in_damage, short div, unsigned char type, int64 in_damage2)
+static int clif_damage(struct block_list *src, struct block_list *dst, int sdelay, int ddelay, int64 in_damage, short div, enum battle_dmg_type type, int64 in_damage2)
 {
 	struct packet_damage p;
 	struct status_change *sc;
@@ -5573,7 +5573,7 @@ static void clif_skill_cooldown(struct map_session_data *sd, uint16 skill_id, un
 /// Skill attack effect and damage.
 /// 0114 <skill id>.W <src id>.L <dst id>.L <tick>.L <src delay>.L <dst delay>.L <damage>.W <level>.W <div>.W <type>.B (ZC_NOTIFY_SKILL)
 /// 01de <skill id>.W <src id>.L <dst id>.L <tick>.L <src delay>.L <dst delay>.L <damage>.L <level>.W <div>.W <type>.B (ZC_NOTIFY_SKILL2)
-static int clif_skill_damage(struct block_list *src, struct block_list *dst, int64 tick, int sdelay, int ddelay, int64 in_damage, int div, uint16 skill_id, uint16 skill_lv, int type)
+static int clif_skill_damage(struct block_list *src, struct block_list *dst, int64 tick, int sdelay, int ddelay, int64 in_damage, int div, uint16 skill_id, uint16 skill_lv, enum battle_dmg_type type)
 {
 	unsigned char buf[64];
 	struct status_change *sc;
@@ -5675,7 +5675,7 @@ static int clif_skill_damage(struct block_list *src, struct block_list *dst, int
 /// Ground skill attack effect and damage (ZC_NOTIFY_SKILL_POSITION).
 /// 0115 <skill id>.W <src id>.L <dst id>.L <tick>.L <src delay>.L <dst delay>.L <x>.W <y>.W <damage>.W <level>.W <div>.W <type>.B
 #if 0
-static int clif_skill_damage2(struct block_list *src, struct block_list *dst, int64 tick, int sdelay, int ddelay, int damage, int div, uint16 skill_id, uint16 skill_lv, int type)
+static int clif_skill_damage2(struct block_list *src, struct block_list *dst, int64 tick, int sdelay, int ddelay, int damage, int div, uint16 skill_id, uint16 skill_lv, enum battle_dmg_type type)
 {
 	unsigned char buf[64];
 	struct status_change *sc;
@@ -20608,7 +20608,7 @@ static int clif_delay_damage_sub(int tid, int64 tick, int id, intptr_t data)
  *
  * @return clif->calc_walkdelay used in further processing
  **/
-static int clif_delay_damage(int64 tick, struct block_list *src, struct block_list *dst, int sdelay, int ddelay, int64 in_damage, short div, unsigned char type)
+static int clif_delay_damage(int64 tick, struct block_list *src, struct block_list *dst, int sdelay, int ddelay, int64 in_damage, short div, enum battle_dmg_type type)
 {
 	struct cdelayed_damage *dd;
 	struct status_change *sc;
diff --git a/src/map/clif.h b/src/map/clif.h
index 07d2ef4a8..f3d7c78eb 100644
--- a/src/map/clif.h
+++ b/src/map/clif.h
@@ -59,6 +59,7 @@ struct s_refine_requirement;
 struct PACKET_ZC_ACK_RANKING_sub;
 struct SKILLDATA;
 
+enum battle_dmg_type;
 enum clif_messages;
 enum rodex_add_item;
 enum rodex_get_zeny;
@@ -861,7 +862,7 @@ struct clif_interface {
 	void (*scriptclear) (struct map_session_data *sd, int npcid);
 	/* client-user-interface-related */
 	void (*viewpoint) (struct map_session_data *sd, int npc_id, int type, int x, int y, int id, int color);
-	int (*damage) (struct block_list* src, struct block_list* dst, int sdelay, int ddelay, int64 damage, short div, unsigned char type, int64 damage2);
+	int (*damage) (struct block_list* src, struct block_list* dst, int sdelay, int ddelay, int64 damage, short div, enum battle_dmg_type type, int64 damage2);
 	void (*sitting) (struct block_list* bl);
 	void (*standing) (struct block_list* bl);
 	void (*arrow_create_list) (struct map_session_data *sd);
@@ -987,7 +988,7 @@ struct clif_interface {
 	void (*wedding_effect) (struct block_list *bl);
 	void (*divorced) (struct map_session_data* sd, const char* name);
 	void (*callpartner) (struct map_session_data *sd);
-	int (*skill_damage) (struct block_list *src, struct block_list *dst, int64 tick, int sdelay, int ddelay, int64 damage, int div, uint16 skill_id, uint16 skill_lv, int type);
+	int (*skill_damage) (struct block_list *src, struct block_list *dst, int64 tick, int sdelay, int ddelay, int64 damage, int div, uint16 skill_id, uint16 skill_lv, enum battle_dmg_type type);
 	int (*skill_nodamage) (struct block_list *src,struct block_list *dst,uint16 skill_id,int heal,int fail);
 	void (*skill_poseffect) (struct block_list *src, uint16 skill_id, int val, int x, int y, int64 tick);
 	void (*skill_estimation) (struct map_session_data *sd,struct block_list *dst);
@@ -1282,7 +1283,7 @@ struct clif_interface {
 	/* */
 	void (*notify_bounditem) (struct map_session_data *sd, unsigned short index);
 	/* */
-	int (*delay_damage) (int64 tick, struct block_list *src, struct block_list *dst, int sdelay, int ddelay, int64 in_damage, short div, unsigned char type);
+	int (*delay_damage) (int64 tick, struct block_list *src, struct block_list *dst, int sdelay, int ddelay, int64 in_damage, short div, enum battle_dmg_type type);
 	int (*delay_damage_sub) (int tid, int64 tick, int id, intptr_t data);
 	/* NPC Market */
 	void (*npc_market_open) (struct map_session_data *sd, struct npc_data *nd);
-- 
cgit v1.2.3-70-g09d2


From 523f76a74a48374416065ca02520554eac4ba198 Mon Sep 17 00:00:00 2001
From: Andrei Karas <akaras@inbox.ru>
Date: Thu, 19 Sep 2019 03:10:30 +0300
Subject: Send clan name in name packet in position name field

---
 src/map/clif.c | 12 +++++++++---
 1 file changed, 9 insertions(+), 3 deletions(-)

diff --git a/src/map/clif.c b/src/map/clif.c
index 02eafe04b..8908369f2 100644
--- a/src/map/clif.c
+++ b/src/map/clif.c
@@ -9298,9 +9298,6 @@ static void clif_pcname_ack(int fd, struct block_list *bl)
 	packet.gid = bl->id;
 
 	const struct map_session_data *ssd = BL_UCCAST(BL_PC, bl);
-	const struct party_data *p = NULL;
-	const struct guild *g = NULL;
-	int ps = -1;
 
 	if (ssd->fakename[0] != '\0' && ssd->disguise != -1) {
 		packet.packet_id = reqName;
@@ -9326,9 +9323,12 @@ static void clif_pcname_ack(int fd, struct block_list *bl)
 #endif
 		memcpy(packet.name, ssd->status.name, NAME_LENGTH);
 
+		const struct party_data *p = NULL;
+		int ps = -1;
 		if (ssd->status.party_id != 0) {
 			p = party->search(ssd->status.party_id);
 		}
+		const struct guild *g = NULL;
 		if (ssd->status.guild_id != 0) {
 			if ((g = ssd->guild) != NULL) {
 				int i;
@@ -9351,6 +9351,12 @@ static void clif_pcname_ack(int fd, struct block_list *bl)
 			memcpy(packet.guild_name, g->name,NAME_LENGTH);
 			memcpy(packet.position_name, g->position[ps].name, NAME_LENGTH);
 		}
+		else if (ssd->status.clan_id != 0) {
+			struct clan *c = clan->search(ssd->status.clan_id);
+			if (c != 0) {
+				memcpy(packet.position_name, c->name, NAME_LENGTH);
+			}
+		}
 	}
 
 	clif->send_selforarea(fd, bl, &packet, len);
-- 
cgit v1.2.3-70-g09d2