summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/common/mmo.h3
-rw-r--r--src/map/atcommand.c73
-rw-r--r--src/map/battle.c3
-rw-r--r--src/map/battle.h3
-rw-r--r--src/map/clif.c40
-rw-r--r--src/map/itemdb.h13
-rw-r--r--src/map/map.h1
-rw-r--r--src/map/packets.h1324
-rw-r--r--src/map/pc.c46
-rw-r--r--src/map/script.c3
-rw-r--r--src/map/status.c101
-rw-r--r--src/map/status.h4
12 files changed, 1475 insertions, 139 deletions
diff --git a/src/common/mmo.h b/src/common/mmo.h
index b3069b27c..7bd5b7c06 100644
--- a/src/common/mmo.h
+++ b/src/common/mmo.h
@@ -436,6 +436,7 @@ enum {
OPTION_DRAGON5 = 0x04000000,
OPTION_HANBOK = 0x08000000,
OPTION_OKTOBERFEST = 0x10000000,
+ OPTION_SUMMER2 = 0x20000000,
#ifndef NEW_CARTS
OPTION_CART1 = 0x00000008,
OPTION_CART2 = 0x00000080,
@@ -447,7 +448,7 @@ enum {
#endif
// compound constants
OPTION_DRAGON = OPTION_DRAGON1|OPTION_DRAGON2|OPTION_DRAGON3|OPTION_DRAGON4|OPTION_DRAGON5,
- OPTION_COSTUME = OPTION_WEDDING|OPTION_XMAS|OPTION_SUMMER|OPTION_HANBOK|OPTION_OKTOBERFEST,
+ OPTION_COSTUME = OPTION_WEDDING | OPTION_XMAS | OPTION_SUMMER | OPTION_HANBOK | OPTION_OKTOBERFEST | OPTION_SUMMER2,
};
struct s_skill {
diff --git a/src/map/atcommand.c b/src/map/atcommand.c
index bf816faa7..9f37a754f 100644
--- a/src/map/atcommand.c
+++ b/src/map/atcommand.c
@@ -1714,7 +1714,21 @@ ACMD(bodystyle)
memset(atcmd_output, '\0', sizeof(atcmd_output));
- if (!*message || sscanf(message, "%d", &body_style) < 1) {
+ if ((sd->job & MAPID_THIRDMASK) != MAPID_GUILLOTINE_CROSS
+ && (sd->job & MAPID_THIRDMASK) != MAPID_GENETIC
+ && (sd->job & MAPID_THIRDMASK) != MAPID_MECHANIC
+ && (sd->job & MAPID_THIRDMASK) != MAPID_ROYAL_GUARD
+ && (sd->job & MAPID_THIRDMASK) != MAPID_ARCH_BISHOP
+ && (sd->job & MAPID_THIRDMASK) != MAPID_RANGER
+ && (sd->job & MAPID_THIRDMASK) != MAPID_WARLOCK
+ && (sd->job & MAPID_THIRDMASK) != MAPID_SHADOW_CHASER
+ && (sd->job & MAPID_THIRDMASK) != MAPID_MINSTRELWANDERER
+ ) {
+ clif->message(fd, msg_fd(fd, 35)); // This job has no alternate body styles.
+ return false;
+ }
+
+ if (*message == '\0' || sscanf(message, "%d", &body_style) < 1) {
sprintf(atcmd_output, "Please, enter a body style (usage: @bodystyle <body ID: %d-%d>).", MIN_BODY_STYLE, MAX_BODY_STYLE);
clif->message(fd, atcmd_output);
return false;
@@ -1722,9 +1736,9 @@ ACMD(bodystyle)
if (body_style >= MIN_BODY_STYLE && body_style <= MAX_BODY_STYLE) {
pc->changelook(sd, LOOK_BODY2, body_style);
- clif->message(fd, msg_txt(36)); // Appearence changed.
+ clif->message(fd, msg_fd(fd, 36)); // Appearence changed.
} else {
- clif->message(fd, msg_txt(37)); // An invalid number was specified.
+ clif->message(fd, msg_fd(fd, 37)); // An invalid number was specified.
return false;
}
@@ -9250,7 +9264,12 @@ ACMD(searchstore){
searchstore->open(sd, 99, val);
return true;
}
-ACMD(costume){
+
+/*==========================================
+* @costume
+*------------------------------------------*/
+ACMD(costume)
+{
const char* names[] = {
"Wedding",
"Xmas",
@@ -9259,6 +9278,9 @@ ACMD(costume){
#if PACKETVER >= 20131218
"Oktoberfest",
#endif
+#if PACKETVER >= 20141022
+ "Summer2",
+#endif
};
const int name2id[] = {
SC_WEDDING,
@@ -9268,41 +9290,47 @@ ACMD(costume){
#if PACKETVER >= 20131218
SC_OKTOBERFEST,
#endif
+#if PACKETVER >= 20141022
+ SC_DRESS_UP,
+#endif
};
unsigned short k = 0, len = ARRAYLENGTH(names);
if (!*message) {
- for( k = 0; k < len; k++ ) {
- if( sd->sc.data[name2id[k]] ) {
- safesnprintf(atcmd_output, sizeof(atcmd_output),msg_fd(fd,1473),names[k]);//Costume '%s' removed.
- clif->message(sd->fd,atcmd_output);
- status_change_end(&sd->bl,name2id[k],INVALID_TIMER);
+ for (k = 0; k < len; k++) {
+ if (sd->sc.data[name2id[k]]) {
+ safesnprintf(atcmd_output, sizeof(atcmd_output), msg_fd(fd, 1473), names[k]); // Costume '%s' removed.
+ clif->message(sd->fd, atcmd_output);
+ status_change_end(&sd->bl, name2id[k], INVALID_TIMER);
return true;
}
}
- clif->message(sd->fd,msg_fd(fd,1472));
- for( k = 0; k < len; k++ ) {
- safesnprintf(atcmd_output, sizeof(atcmd_output),msg_fd(fd,1471),names[k]);//-- %s
- clif->message(sd->fd,atcmd_output);
+
+ clif->message(sd->fd, msg_fd(fd, 1472)); // - Available Costumes
+
+ for (k = 0; k < len; k++) {
+ safesnprintf(atcmd_output, sizeof(atcmd_output), msg_fd(fd, 1471), names[k]); //-- %s
+ clif->message(sd->fd, atcmd_output);
}
return false;
}
- for( k = 0; k < len; k++ ) {
- if( sd->sc.data[name2id[k]] ) {
- safesnprintf(atcmd_output, sizeof(atcmd_output),msg_fd(fd,1470),names[k]);// You're already with a '%s' costume, type '@costume' to remove it.
- clif->message(sd->fd,atcmd_output);
+ for (k = 0; k < len; k++) {
+ if (sd->sc.data[name2id[k]]) {
+ safesnprintf(atcmd_output, sizeof(atcmd_output), msg_fd(fd, 1470), names[k]); // You're already with a '%s' costume, type '@costume' to remove it.
+ clif->message(sd->fd, atcmd_output);
return false;
}
}
- for( k = 0; k < len; k++ ) {
- if( strcmpi(message,names[k]) == 0 )
+ for (k = 0; k < len; k++) {
+ if (strcmpi(message,names[k]) == 0)
break;
}
- if( k == len ) {
- safesnprintf(atcmd_output, sizeof(atcmd_output),msg_fd(fd,1469),message);// '%s' is not a known costume
- clif->message(sd->fd,atcmd_output);
+
+ if (k == len) {
+ safesnprintf(atcmd_output, sizeof(atcmd_output), msg_fd(fd, 1469), message); // '%s' is not a known costume
+ clif->message(sd->fd, atcmd_output);
return false;
}
@@ -9310,6 +9338,7 @@ ACMD(costume){
return true;
}
+
/* for debugging purposes (so users can easily provide us with debug info) */
/* should be trashed as soon as its no longer necessary */
ACMD(skdebug)
diff --git a/src/map/battle.c b/src/map/battle.c
index cf08bf96c..11425d4a9 100644
--- a/src/map/battle.c
+++ b/src/map/battle.c
@@ -7036,12 +7036,13 @@ static const struct battle_data {
{ "combo_delay_rate", &battle_config.combo_delay_rate, 100, 0, INT_MAX, },
{ "item_check", &battle_config.item_check, 0, 0, 1, },
{ "item_use_interval", &battle_config.item_use_interval, 100, 0, INT_MAX, },
- { "cashfood_use_interval", &battle_config.cashfood_use_interval, 60000, 0, INT_MAX, },
{ "wedding_modifydisplay", &battle_config.wedding_modifydisplay, 0, 0, 1, },
{ "wedding_ignorepalette", &battle_config.wedding_ignorepalette, 0, 0, 1, },
{ "xmas_ignorepalette", &battle_config.xmas_ignorepalette, 0, 0, 1, },
{ "summer_ignorepalette", &battle_config.summer_ignorepalette, 0, 0, 1, },
{ "hanbok_ignorepalette", &battle_config.hanbok_ignorepalette, 0, 0, 1, },
+ { "oktoberfest_ignorepalette", &battle_config.oktoberfest_ignorepalette, 0, 0, 1, },
+ { "summer2_ignorepalette", &battle_config.summer2_ignorepalette, 0, 0, 1, },
{ "natural_healhp_interval", &battle_config.natural_healhp_interval, 6000, NATURAL_HEAL_INTERVAL, INT_MAX, },
{ "natural_healsp_interval", &battle_config.natural_healsp_interval, 8000, NATURAL_HEAL_INTERVAL, INT_MAX, },
{ "natural_heal_skill_interval", &battle_config.natural_heal_skill_interval, 10000, NATURAL_HEAL_INTERVAL, INT_MAX, },
diff --git a/src/map/battle.h b/src/map/battle.h
index a5e50407e..a73c6dc44 100644
--- a/src/map/battle.h
+++ b/src/map/battle.h
@@ -240,12 +240,13 @@ struct Battle_Config {
int combo_delay_rate;
int item_check;
int item_use_interval; //[Skotlex]
- int cashfood_use_interval;
int wedding_modifydisplay;
int wedding_ignorepalette; //[Skotlex]
int xmas_ignorepalette; // [Valaris]
int summer_ignorepalette; // [Zephyrus]
int hanbok_ignorepalette;
+ int oktoberfest_ignorepalette;
+ int summer2_ignorepalette;
int natural_healhp_interval;
int natural_healsp_interval;
int natural_heal_skill_interval;
diff --git a/src/map/clif.c b/src/map/clif.c
index f1400a5d4..e70857ab6 100644
--- a/src/map/clif.c
+++ b/src/map/clif.c
@@ -3194,31 +3194,31 @@ void clif_changelook(struct block_list *bl,int type,int val)
vd->shield = val;
break;
case LOOK_BASE:
- if( !sd ) break;
+ if (sd == NULL)
+ break;
- if ( val == INVISIBLE_CLASS ) /* nothing to change look */
+ if (val == INVISIBLE_CLASS) /* nothing to change look */
return;
- if( sd->sc.option&OPTION_COSTUME )
+ if (sd->sc.option & OPTION_COSTUME)
vd->weapon = vd->shield = 0;
- if( !vd->cloth_color )
+ if (!vd->cloth_color)
break;
- if (sd->sc.option&OPTION_WEDDING && battle_config.wedding_ignorepalette)
+ if ((sd->sc.option & OPTION_WEDDING) != 0 && battle_config.wedding_ignorepalette == true)
+ vd->cloth_color = 0;
+ if ((sd->sc.option & OPTION_XMAS) != 0 && battle_config.xmas_ignorepalette == true)
vd->cloth_color = 0;
- if (sd->sc.option&OPTION_XMAS && battle_config.xmas_ignorepalette)
+ if ((sd->sc.option & OPTION_SUMMER) != 0 && battle_config.summer_ignorepalette == true)
vd->cloth_color = 0;
- if (sd->sc.option&OPTION_SUMMER && battle_config.summer_ignorepalette)
+ if ((sd->sc.option & OPTION_HANBOK) != 0 && battle_config.hanbok_ignorepalette == true)
vd->cloth_color = 0;
- if (sd->sc.option&OPTION_HANBOK && battle_config.hanbok_ignorepalette)
+ if ((sd->sc.option & OPTION_OKTOBERFEST) != 0 && battle_config.oktoberfest_ignorepalette == true)
vd->cloth_color = 0;
- if (sd->sc.option&OPTION_OKTOBERFEST /* TODO: config? */)
+ if ((sd->sc.option & OPTION_SUMMER2) != 0 && battle_config.summer2_ignorepalette == true)
vd->cloth_color = 0;
- if (vd->body_style && (
- sd->sc.option&OPTION_WEDDING || sd->sc.option&OPTION_XMAS ||
- sd->sc.option&OPTION_SUMMER || sd->sc.option&OPTION_HANBOK ||
- sd->sc.option&OPTION_OKTOBERFEST))
+ if (vd->body_style != 0 && (sd->sc.option & OPTION_COSTUME) != 0)
vd->body_style = 0;
break;
case LOOK_HAIR:
@@ -3237,16 +3237,18 @@ void clif_changelook(struct block_list *bl,int type,int val)
vd->hair_color = val;
break;
case LOOK_CLOTHES_COLOR:
- if( val && sd ) {
- if( sd->sc.option&OPTION_WEDDING && battle_config.wedding_ignorepalette )
+ if (val && sd != NULL) {
+ if ((sd->sc.option & OPTION_WEDDING) != 0 && battle_config.wedding_ignorepalette == true)
+ val = 0;
+ if ((sd->sc.option & OPTION_XMAS) != 0 && battle_config.xmas_ignorepalette == true)
val = 0;
- if( sd->sc.option&OPTION_XMAS && battle_config.xmas_ignorepalette )
+ if ((sd->sc.option & OPTION_SUMMER) != 0 && battle_config.summer_ignorepalette == true)
val = 0;
- if( sd->sc.option&OPTION_SUMMER && battle_config.summer_ignorepalette )
+ if ((sd->sc.option & OPTION_HANBOK) != 0 && battle_config.hanbok_ignorepalette == true)
val = 0;
- if( sd->sc.option&OPTION_HANBOK && battle_config.hanbok_ignorepalette )
+ if ((sd->sc.option & OPTION_OKTOBERFEST) != 0 && battle_config.oktoberfest_ignorepalette == true)
val = 0;
- if( sd->sc.option&OPTION_OKTOBERFEST /* TODO: config? */ )
+ if ((sd->sc.option & OPTION_SUMMER2) != 0 && battle_config.summer2_ignorepalette == true)
val = 0;
}
vd->cloth_color = val;
diff --git a/src/map/itemdb.h b/src/map/itemdb.h
index f77801e09..35cd154cb 100644
--- a/src/map/itemdb.h
+++ b/src/map/itemdb.h
@@ -266,18 +266,6 @@ enum mercenary_scroll_item_list {
};
/**
- * Cash Food
- */
-enum cash_food_item_list {
- ITEMID_STR_DISH10_ = 12202,
- ITEMID_AGI_DISH10_, // 12203
- ITEMID_INT_DISH10_, // 12204
- ITEMID_DEX_DISH10_, // 12205
- ITEMID_LUK_DISH10_, // 12206
- ITEMID_VIT_DISH10_, // 12207
-};
-
-/**
* Geneticist
*/
enum geneticist_item_list {
@@ -556,7 +544,6 @@ struct item_data {
#define itemdb_is_spellbook(n) ((n) >= ITEMID_MAGIC_BOOK_FB && (n) <= ITEMID_MAGIC_BOOK_DL)
#define itemdb_is_poison(n) ((n) >= ITEMID_POISON_PARALYSIS && (n) <= ITEMID_POISON_FATIGUE)
#define itemid_isgemstone(n) ((n) >= ITEMID_YELLOW_GEMSTONE && (n) <= ITEMID_BLUE_GEMSTONE)
-#define itemdb_iscashfood(n) ((n) >= ITEMID_STR_DISH10_ && (n) <= ITEMID_VIT_DISH10_)
#define itemdb_is_GNbomb(n) ((n) >= ITEMID_APPLE_BOMB && (n) <= ITEMID_VERY_HARD_LUMP)
#define itemdb_is_GNthrowable(n) ((n) >= ITEMID_MYSTERIOUS_POWDER && (n) <= ITEMID_BLACK_THING_TO_THROW)
#define itemid_is_pilebunker(n) ((n) == ITEMID_PILEBUNCKER || (n) == ITEMID_PILEBUNCKER_P || (n) == ITEMID_PILEBUNCKER_S || (n) == ITEMID_PILEBUNCKER_T)
diff --git a/src/map/map.h b/src/map/map.h
index 8c5372093..d4284b3f7 100644
--- a/src/map/map.h
+++ b/src/map/map.h
@@ -553,6 +553,7 @@ enum status_point_types { //we better clean up this enum and change it name [Hem
SP_MOD_EXP=125,
SP_MOD_DROP=126,
SP_MOD_DEATH=127,
+ SP_BANKVAULT=128,
// Mercenaries
SP_MERCFLEE=165, SP_MERCKILLS=189, SP_MERCFAITH=190,
diff --git a/src/map/packets.h b/src/map/packets.h
index cc2312356..d1875f2f0 100644
--- a/src/map/packets.h
+++ b/src/map/packets.h
@@ -4564,6 +4564,1229 @@ packet(0x96e,-1,clif->ackmergeitems);
packet(0x0967,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
#endif
+// 2016-01-27aRagexeRE
+#if PACKETVER >= 20160127
+// new packets
+ packet(0x0a4d,-1);
+// changed packet sizes
+#endif
+
+// 2016-01-27bRagexeRE
+#if PACKETVER == 20160127
+// shuffle packets
+ packet(0x022d,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x0281,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x035f,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x0360,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0362,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x0363,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x0364,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x0365,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x0366,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0368,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0369,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0436,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x0437,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x0438,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x07e4,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x07ec,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x0802,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x0811,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0817,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0819,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0835,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0838,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x083c,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x085e,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x0922,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x095a,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x0961,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x096a,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+#endif
+
+// 2016-02-03aRagexeRE
+#if PACKETVER == 20160203
+// shuffle packets
+ packet(0x0202,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0360,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0361,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x0366,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0368,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0369,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0436,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0437,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x0438,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x07e4,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0811,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0817,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0819,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x0835,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x0838,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x083c,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x086c,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x0872,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x0873,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x088c,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x0918,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x093e,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x0940,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x0947,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x0954,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x095a,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x095d,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x096a,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+#endif
+
+// 2016-02-17cRagexeRE
+#if PACKETVER == 20160217
+// shuffle packets
+ packet(0x0202,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x023b,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0362,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x0365,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x0864,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x0870,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x0873,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x087a,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x0888,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x088d,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x088f,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x0899,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x08a0,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x08a9,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x08ac,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x08ad,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x091d,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x0920,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0926,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x092e,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x093b,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x093e,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0941,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x094a,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x094f,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x095e,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x0966,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+ packet(0x0967,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0969,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+#endif
+
+// 2016-03-02bRagexeRE
+#if PACKETVER == 20160302
+// shuffle packets
+ packet(0x022d,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x0367,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0802,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x0819,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x085b,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x0864,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0865,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0867,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0868,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x0873,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x0875,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x087a,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x087d,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x0883,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x08a6,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x08a9,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x091a,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x0927,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x092d,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x092f,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0945,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+ packet(0x094e,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x0950,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x0957,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x095a,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x0960,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x0961,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x0967,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0968,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+#endif
+
+// 2016-03-02bRagexeRE
+#if PACKETVER >= 20160302
+// new packets
+ packet(0x0a4e,4);
+ packet(0x0a4f,-1,clif->pDull/*,XXX*/);
+ packet(0x0a50,6);
+ packet(0x0a51,34);
+// changed packet sizes
+#endif
+
+// 2016-03-09aRagexeRE
+#if PACKETVER == 20160309
+// shuffle packets
+ packet(0x023b,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x0281,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0361,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x0364,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x0368,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0819,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x0838,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x083c,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x085a,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x085f,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x0866,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x086a,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0873,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x087c,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x087e,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x089b,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x089d,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x08a7,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x091d,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+ packet(0x0920,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x0922,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0929,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x092a,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x092e,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0932,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x094f,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0956,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x095e,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x096a,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+#endif
+
+// 2016-03-16aRagexeRE
+#if PACKETVER >= 20160316
+// new packets
+ packet(0x0a52,20,clif->pDull/*,XXX*/);
+ packet(0x0a53,10);
+ packet(0x0a54,-1);
+ packet(0x0a55,2);
+ packet(0x0a56,6,clif->pDull/*,XXX*/);
+ packet(0x0a57,6);
+ packet(0x0a58,8);
+ packet(0x0a59,-1);
+ packet(0x0a5a,2,clif->pDull/*,XXX*/);
+ packet(0x0a5b,7);
+ packet(0x0a5c,18,clif->pDull/*,XXX*/);
+ packet(0x0a5d,6);
+// changed packet sizes
+#endif
+
+// 2016-03-23aRagexeRE
+#if PACKETVER >= 20160323
+// new packets
+ packet(0x0a68,3);
+ packet(0x0a69,6);
+ packet(0x0a6a,12);
+ packet(0x0a6b,-1);
+// changed packet sizes
+#endif
+
+// 2016-03-30aRagexeRE
+#if PACKETVER == 20160330
+// shuffle packets
+ packet(0x035f,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x0360,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0365,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x0368,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0369,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0437,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x0438,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x0811,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0817,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0819,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0835,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0838,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x083c,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x0867,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x086d,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x0878,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x087f,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x0889,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x088b,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x088d,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x0918,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x0925,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x092a,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x092c,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x0930,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x0939,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x093b,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x096a,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+#endif
+
+// 2016-03-30aRagexeRE
+#if PACKETVER >= 20160330
+// new packets
+ packet(0x0a6c,7,clif->pDull/*,XXX*/);
+ packet(0x0a6d,-1);
+ packet(0x0a6e,-1);
+ packet(0x0a6f,-1);
+// changed packet sizes
+#endif
+
+// 2016-04-20aRagexeRE
+#if PACKETVER == 20160420
+// shuffle packets
+ packet(0x022d,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x02c4,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x035f,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x0360,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0366,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0368,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0369,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0437,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x0438,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x0811,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0817,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0819,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x0835,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0838,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x083c,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x0864,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x0870,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x0872,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x0874,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x0884,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x0888,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x088b,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x08a5,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x092f,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x0935,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x094e,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x095c,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x096a,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+#endif
+
+// 2016-04-27aRagexeRE
+#if PACKETVER >= 20160427
+// new packets
+// changed packet sizes
+ packet(0x0a50,4);
+#endif
+
+// 2016-05-04aRagexeRE
+#if PACKETVER >= 20160504
+// new packets
+ packet(0x0a70,2,clif->pDull/*,XXX*/);
+ packet(0x0a71,-1);
+ packet(0x0a72,61);
+// changed packet sizes
+#endif
+
+// 2016-05-11aRagexeRE
+#if PACKETVER == 20160511
+// shuffle packets
+ packet(0x0281,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x035f,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x0360,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0362,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x0363,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x0364,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x0365,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x0366,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0368,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0369,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0437,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x0438,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x07e4,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x07ec,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x0802,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x0811,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0817,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0819,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0835,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0838,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x083c,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x085e,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x0894,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x089b,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x0918,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x0920,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x0940,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x096a,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+#endif
+
+// 2016-05-11aRagexeRE
+#if PACKETVER >= 20160511
+// new packets
+ packet(0x0a73,6);
+ packet(0x0a74,8);
+// changed packet sizes
+#endif
+
+// 2016-05-18aRagexeRE
+#if PACKETVER >= 20160518
+// new packets
+ packet(0x0a76,80);
+// changed packet sizes
+ packet(0x0a73,2);
+#endif
+
+// 2016-05-25aRagexeRE
+#if PACKETVER == 20160525
+// shuffle packets
+ packet(0x035f,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x0360,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0366,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0368,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0369,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0437,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x0438,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x0811,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0817,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0819,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0835,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0838,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x083c,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x085a,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x085e,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x0867,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x086a,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x0899,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x089c,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x091d,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x092c,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x0937,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x0945,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x094a,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x094e,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x0951,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x0956,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x096a,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+#endif
+
+// 2016-05-25aRagexeRE
+#if PACKETVER >= 20160525
+// new packets
+ packet(0x0a77,15);
+ packet(0x0a78,15);
+// changed packet sizes
+#endif
+
+// 2016-06-01aRagexeRE
+#if PACKETVER >= 20160601
+// new packets
+ packet(0x0a79,-1);
+ packet(0x0a7b,-1);
+ packet(0x0a7c,-1);
+ packet(0x0a7d,-1);
+// changed packet sizes
+#endif
+
+// 2016-06-08aRagexeRE
+#if PACKETVER == 20160608
+// shuffle packets
+ packet(0x022d,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x02c4,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x035f,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x0360,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0368,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0369,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0436,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x0437,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x0438,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x07ec,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x0802,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0817,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0819,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0835,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0838,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x083c,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x085c,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x0885,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0889,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0899,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x089b,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x08a6,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x093b,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x094d,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x0958,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x095b,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x0969,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x096a,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+#endif
+
+// 2016-06-15aRagexeRE
+#if PACKETVER == 20160615
+// shuffle packets
+ packet(0x0281,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x0363,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x0364,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x0369,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x083c,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+ packet(0x0866,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x0870,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x087d,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x087e,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x087f,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0884,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x0887,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0888,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x088a,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x088d,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x0891,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x0898,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x092f,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x093e,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x0947,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0948,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x094a,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x094b,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0954,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x0957,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x0958,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x095c,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x095e,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0961,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+#endif
+
+// 2016-06-15aRagexeRE
+#if PACKETVER >= 20160615
+// new packets
+ packet(0x0a7e,4);
+ packet(0x0a7f,-1);
+ packet(0x0a80,2);
+ packet(0x0a81,3);
+// changed packet sizes
+#endif
+
+// 2016-06-22aRagexeRE
+#if PACKETVER >= 20160622
+// new packets
+ packet(0x0a82,46);
+ packet(0x0a83,46);
+ packet(0x0a84,94);
+ packet(0x0a85,82);
+ packet(0x0a86,-1);
+ packet(0x0a87,4);
+ packet(0x0a88,2);
+// changed packet sizes
+#endif
+
+// 2016-06-29aRagexeRE
+#if PACKETVER >= 20160629
+// new packets
+ packet(0x0a89,32);
+ packet(0x0a8a,6);
+ packet(0x0a8b,2);
+ packet(0x0a8c,2);
+ packet(0x0a8d,-1);
+// changed packet sizes
+ packet(0x0a80,6);
+#endif
+
+// 2016-06-30aRagexeRE
+#if PACKETVER == 20160630
+// shuffle packets
+ packet(0x0202,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x022d,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x035f,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x0363,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0368,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x085c,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x085e,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x0860,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0861,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x0863,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0867,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x086b,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0881,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x0885,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x088e,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+ packet(0x0893,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x091e,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x0922,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x0925,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x0926,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x093e,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0946,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0948,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x094a,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x0957,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x095a,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0968,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x0969,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x096a,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+#endif
+
+// 2016-07-06cRagexeRE
+#if PACKETVER == 20160706
+// shuffle packets
+ packet(0x0362,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0436,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x085f,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x0860,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0869,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x086b,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0884,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x0886,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x0889,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0892,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x0899,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x08a4,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x08a5,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x08a8,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x0918,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x091b,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x0924,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x0926,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x0927,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0929,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x092d,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x0939,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x093d,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x0944,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x0945,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+ packet(0x094c,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x0952,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0957,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x0958,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+#endif
+
+// 2016-07-06cRagexeRE
+#if PACKETVER >= 20160706
+// new packets
+ packet(0x0a81,3);
+// changed packet sizes
+ packet(0x0a7e,-1);
+ packet(0x0a89,57);
+#endif
+
+// 2016-07-13bRagexeRE
+#if PACKETVER == 20160713
+// shuffle packets
+ packet(0x022d,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x0363,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x0364,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x0838,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x0860,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0865,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0869,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0875,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0877,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x087b,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x0883,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x088d,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x0892,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x089a,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x089f,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x08a2,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x08a4,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x091c,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x091d,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0921,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0922,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x092c,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+ packet(0x0931,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x0939,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x0944,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0945,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0947,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x0957,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x095b,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+#endif
+
+// 2016-07-13aRagexeRE
+#if PACKETVER >= 20160713
+// new packets
+// changed packet sizes
+ packet(0x0a87,-1);
+#endif
+
+// 2016-07-20aRagexeRE
+#if PACKETVER == 20160720
+// shuffle packets
+ packet(0x0362,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0363,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x0365,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x07e4,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x0819,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0838,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x085b,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x086a,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x086d,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x087f,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x0883,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x0887,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+ packet(0x0897,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x089a,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x089c,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x089e,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x08a0,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x08aa,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x0917,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x091c,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x092a,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x093b,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x093e,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0946,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x094d,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0953,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x095b,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x0960,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x0969,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+#endif
+
+// 2016-07-20aRagexeRE
+#if PACKETVER >= 20160720
+// new packets
+ packet(0x0a8e,2);
+ packet(0x0a8f,2);
+ packet(0x0a90,3);
+// changed packet sizes
+#endif
+
+// 2016-07-27aRagexeRE
+#if PACKETVER >= 20160727
+// new packets
+ packet(0x0a91,-1);
+ packet(0x0a92,-1);
+ packet(0x0a93,3);
+// changed packet sizes
+#endif
+
+// 2016-07-27bRagexeRE
+#if PACKETVER == 20160727
+// shuffle packets
+ packet(0x0202,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x023b,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x0362,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0363,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x0436,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0438,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x07ec,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x0866,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x0868,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x0869,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x0874,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0877,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x0883,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0887,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x088e,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x0891,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x089f,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x08a2,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x08a4,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x08a7,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x092e,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x0936,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x0941,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0946,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+ packet(0x0949,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x0951,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x095f,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0966,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0969,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+#endif
+
+// 2016-08-03bRagexeRE
+#if PACKETVER >= 20160803
+// new packets
+ packet(0x0a94,2);
+// changed packet sizes
+ packet(0x0a81,4);
+#endif
+
+// 2016-08-31bRagexeRE
+#if PACKETVER == 20160831
+// shuffle packets
+ packet(0x022d,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0366,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x07ec,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0835,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x0865,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x086d,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0870,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x0874,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x0876,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x0878,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x087c,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+ packet(0x08a8,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x08a9,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x0917,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x091b,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x092c,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x092e,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x0938,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x093a,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x0946,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x094a,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x094f,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x0950,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0954,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x0957,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x095e,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x0960,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x0964,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x0967,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+#endif
+
+// 2016-09-07aRagexeRE
+#if PACKETVER == 20160907
+// shuffle packets
+ packet(0x0202,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x022d,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x023b,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x0281,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x035f,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x0360,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0361,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x0362,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x0363,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x0364,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x0365,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x0366,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0368,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0369,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0436,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x0437,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x0438,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x07e4,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x07ec,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x0802,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x0811,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0817,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0819,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0835,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0838,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x083c,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x091c,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x096a,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+#endif
+
+// 2016-09-07aRagexeRE
+#if PACKETVER >= 20160907
+// new packets
+ packet(0x0a95,4);
+// changed packet sizes
+#endif
+
+// 2016-09-21bRagexeRE
+#if PACKETVER == 20160921
+// shuffle packets
+ packet(0x0202,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x022d,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x023b,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x0281,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x035f,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x0360,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0361,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x0362,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x0363,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x0364,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x0365,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x0366,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0368,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0369,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0436,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x0437,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x0438,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x07e4,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x07ec,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x0802,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x0811,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0817,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0819,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0835,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0838,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x083c,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x094a,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x096a,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+#endif
+
+// 2016-09-21bRagexeRE
+#if PACKETVER >= 20160921
+// new packets
+ packet(0x0a96,51);
+// changed packet sizes
+ packet(0x0a37,59); // ZC_ITEM_PICKUP_ACK_V7
+#endif
+
+// 2016-09-28cRagexeRE
+#if PACKETVER >= 20160928
+// new packets
+ packet(0x0a97,8);
+ packet(0x0a98,12);
+ packet(0x0a99,8);
+ packet(0x0a9a,10);
+ packet(0x0a9b,-1);
+ packet(0x0a9c,2);
+ packet(0x0a9d,4);
+ packet(0x0a9e,2);
+ packet(0x0a9f,2);
+// changed packet sizes
+#endif
+
+// 2016-10-05aRagexeRE
+#if PACKETVER >= 20161005
+// new packets
+ packet(0x0aa0,2,clif->pDull/*,XXX*/);
+ packet(0x0aa1,4);
+ packet(0x0aa2,-1);
+ packet(0x0aa3,7);
+ packet(0x0aa4,2);
+// changed packet sizes
+#endif
+
+// 2016-10-12aRagexeRE
+#if PACKETVER == 20161012
+// shuffle packets
+ packet(0x023b,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0362,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x0364,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x0365,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x0369,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x07ec,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0819,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x085b,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x085e,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0863,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0868,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x086d,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x0872,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x0875,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0880,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x0893,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x08a0,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x092d,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0936,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+ packet(0x0937,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0939,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0943,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x0944,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x094f,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x0951,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x095c,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x0962,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x0966,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x0967,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+#endif
+
+// 2016-10-26bRagexeRE
+#if PACKETVER == 20161026
+// shuffle packets
+ packet(0x0363,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x0438,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x0802,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x085a,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x085f,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0861,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0862,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x086a,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x086c,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x086e,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x087a,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x087c,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x087f,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x0886,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x0891,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0894,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x0898,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x091a,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x091b,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x0926,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x092c,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x092e,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x092f,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0930,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+ packet(0x094b,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x0953,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x095c,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x095e,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0962,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+#endif
+
+// 2016-10-26bRagexeRE
+#if PACKETVER >= 20161026
+// new packets
+ packet(0x0aa5,-1);
+ packet(0x0aa6,36);
+// changed packet sizes
+#endif
+
+// 2016-11-09bRagexeRE
+#if PACKETVER == 20161109
+// shuffle packets
+ packet(0x02c4,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x0361,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0362,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x0365,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x0366,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0835,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x085d,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x085e,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0865,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x086a,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x086d,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x0870,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x0876,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x087a,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x0881,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x088e,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x0891,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x0898,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x089a,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x089d,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x089f,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x08a7,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x08ad,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0927,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x0937,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x093c,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x093f,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+ packet(0x0954,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x0956,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+#endif
+
+// 2016-11-30aRagexeRE
+#if PACKETVER >= 20161130
+// new packets
+ packet(0x0aa7,6);
+ packet(0x0aa8,5);
+ packet(0x0aa9,-1);
+ packet(0x0aaa,-1);
+ packet(0x0aab,-1);
+// changed packet sizes
+#endif
+
+// 2016-12-07eRagexeRE
+#if PACKETVER == 20161207
+// shuffle packets
+ packet(0x023b,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x035f,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x0360,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0361,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x0366,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0368,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0437,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x0438,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x0811,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0817,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0819,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0835,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0838,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x083c,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x0867,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x0868,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x0875,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x087e,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x0886,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x08a1,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x08a2,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x08ad,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x0918,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x091d,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x0943,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x095d,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x0965,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x096a,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+#endif
+
+// 2016-12-07cRagexeRE
+#if PACKETVER >= 20161207
+// new packets
+ packet(0x0aac,67);
+// changed packet sizes
+#endif
+
+// 2016-12-14bRagexeRE
+#if PACKETVER == 20161214
+// shuffle packets
+ packet(0x022d,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0281,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x02c4,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x035f,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x0360,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x0364,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x0366,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0368,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0369,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x0436,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0437,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x0438,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x0811,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0817,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0819,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x0835,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0838,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x083c,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x085a,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x0862,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x086d,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x0887,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x0895,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x0899,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x08a6,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x092e,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x093d,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x096a,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+#endif
+
+// 2016-12-21aRagexeRE
+#if PACKETVER == 20161221
+// shuffle packets
+ packet(0x035f,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x0362,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x0366,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0438,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x0817,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x085b,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0866,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0876,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x0881,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+ packet(0x0884,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x0885,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x088c,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0890,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x0899,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x089a,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x089b,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x08aa,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x091e,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0926,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x0928,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x092c,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x092e,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x0930,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x0943,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x0946,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x094b,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x095a,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0964,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x0965,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+#endif
+
+// 2016-12-21aRagexeRE
+#if PACKETVER >= 20161221
+// new packets
+ packet(0x0aad,47);
+ packet(0x0aae,2);
+ packet(0x0aaf,6);
+ packet(0x0ab0,6);
+ packet(0x0ab1,10);
+// changed packet sizes
+#endif
+
+// 2016-12-28aRagexeRE
+#if PACKETVER >= 20161228
+// new packets
+// changed packet sizes
+ packet(0x0ab1,14);
+#endif
+
+// 2017-01-04bRagexeRE
+#if PACKETVER >= 20170104
+// new packets
+ packet(0x0ab2,7);
+ packet(0x0ab3,15);
+// changed packet sizes
+#endif
+
+// 2017-01-11aRagexeRE
+#if PACKETVER >= 20170111
+// new packets
+ packet(0x0ab4,4);
+ packet(0x0ab5,2);
+ packet(0x0ab6,6);
+ packet(0x0ab7,4);
+ packet(0x0ab8,2);
+ packet(0x0ab9,39);
+// changed packet sizes
+#endif
+
+// 2017-01-18aRagexeRE
+#if PACKETVER >= 20170118
+// new packets
+ packet(0x0aba,2);
+ packet(0x0abb,2);
+// changed packet sizes
+ packet(0x0aad,51);
+ packet(0x0ab3,19);
+#endif
+
+// 2017-02-01aRagexeRE
+#if PACKETVER >= 20170201
+// new packets
+ packet(0x0abc,-1);
+// changed packet sizes
+#endif
+
+// 2017-02-15aRagexeRE
+#if PACKETVER >= 20170215
+// new packets
+ packet(0x0abd,10);
+// changed packet sizes
+#endif
+
+// 2017-02-22aRagexeRE
+#if PACKETVER >= 20170222
+// new packets
+ packet(0x0abe,116);
+ packet(0x0abf,114);
+// changed packet sizes
+#endif
+
+// 2017-02-28aRagexeRE
+#if PACKETVER >= 20170228
+// new packets
+ packet(0x0ac0,26);
+ packet(0x0ac1,26);
+ packet(0x0ac2,-1);
+ packet(0x0ac3,2);
+ packet(0x0ac4,-1);
+ packet(0x0ac5,156,clif->pDull/*,XXX*/);
+ packet(0x0ac6,156);
+ packet(0x0ac7,156);
+// changed packet sizes
+ packet(0x0abe,-1);
+ packet(0x0abf,-1);
+#endif
+
+// 2017-03-08bRagexeRE
+#if PACKETVER >= 20170308
+// new packets
+ packet(0x0ac8,2);
+ packet(0x0ac9,-1);
+// changed packet sizes
+#endif
+
+// 2017-03-22aRagexeRE
+#if PACKETVER >= 20170322
+// new packets
+ packet(0x0aca,3);
+// changed packet sizes
+#endif
+
+// 2017-03-29cRagexeRE
+#if PACKETVER >= 20170329
+// new packets
+// changed packet sizes
+ packet(0x0aac,69);
+#endif
+
+// 2017-04-05bRagexeRE
+#if PACKETVER >= 20170405
+// new packets
+ packet(0x0acb,12);
+ packet(0x0acc,18);
+// changed packet sizes
+#endif
+
+// 2017-04-19bRagexeRE
+#if PACKETVER >= 20170419
+// new packets
+ packet(0x0acd,23);
+// changed packet sizes
+ packet(0x0a99,4);
+#endif
+
/* PacketKeys: http://herc.ws/board/topic/1105-hercules-wpe-free-june-14th-patch/ */
#if PACKETVER >= 20110817
packetKeys(0x053D5CED,0x3DED6DED,0x6DED6DED); /* Thanks to Shakto */
@@ -4917,6 +6140,107 @@ packet(0x96e,-1,clif->ackmergeitems);
packetKeys(0x347D68D0,0x2C705320,0x7B4A199D); /* 4144 */
#endif
+#if PACKETVER == 20160127
+ packetKeys(0x6B1E7146,0x612C47E6,0x274E56EE); /* 4144 */
+#endif
+
+#if PACKETVER == 20160203
+ packetKeys(0x3E1411AF,0x6C744497,0x7CFA1BDE); /* 4144 */
+#endif
+
+#if PACKETVER == 20160217
+ packetKeys(0x25895A8E,0x09421C19,0x763A2D7A); /* 4144 */
+#endif
+
+#if PACKETVER == 20160302
+ packetKeys(0x7B4441B9,0x5BBC63AF,0x45DA0E71); /* 4144 */
+#endif
+
+#if PACKETVER == 20160309
+ packetKeys(0x21587520,0x353A7706,0x1B722B25); /* 4144 */
+#endif
+
+#if PACKETVER == 20160330
+ packetKeys(0x02050940,0x545336FF,0x7E7D4902); /* 4144 */
+#endif
+
+#if PACKETVER == 20160420
+ packetKeys(0x67D2163A,0x3068215B,0x4835474D); /* 4144 */
+#endif
+
+#if PACKETVER == 20160511
+ packetKeys(0x3C666FE2,0x27E84E3E,0x53E11BA5); /* 4144 */
+#endif
+
+#if PACKETVER == 20160525
+ packetKeys(0x485C45B6,0x47DC6192,0x76B34A36); /* 4144 */
+#endif
+
+#if PACKETVER == 20160608
+ packetKeys(0x11D74609,0x77C43E8A,0x44290F53); /* 4144 */
+#endif
+
+#if PACKETVER == 20160615
+ packetKeys(0x062C5C26,0x6CF47E82,0x4DD53480); /* 4144 */
+#endif
+
+#if PACKETVER == 20160630
+ packetKeys(0x0DF31CCC,0x54281606,0x5C4C6855); /* 4144 */
+#endif
+
+#if PACKETVER == 20160706
+ packetKeys(0x33A766D0,0x743F04F8,0x0FA0276C); /* 4144 */
+#endif
+
+#if PACKETVER == 20160713
+ packetKeys(0x714F2495,0x7DDC6F32,0x3FD8533D); /* 4144 */
+#endif
+
+#if PACKETVER == 20160720
+ packetKeys(0x4F8A19C0,0x2D8E085C,0x37BB67D6); /* 4144 */
+#endif
+
+#if PACKETVER == 20160727
+ packetKeys(0x3C6952AB,0x26E4077F,0x37E25DF7); /* 4144 */
+#endif
+
+#if PACKETVER == 20160831
+ packetKeys(0x564E13B0,0x7F680549,0x382D273B); /* 4144 */
+#endif
+
+#if PACKETVER == 20160907
+ packetKeys(0x32E5237D,0x57BD4DBD,0x5DBD5DBD); /* 4144 */
+#endif
+
+#if PACKETVER == 20160921
+ packetKeys(0x11CD15CD,0x15CD15CD,0x15CD15CD); /* 4144 */
+#endif
+
+#if PACKETVER == 20161012
+ packetKeys(0x5E2311F2,0x14FD012C,0x76EB64F6); /* 4144 */
+#endif
+
+#if PACKETVER == 20161026
+ packetKeys(0x2CB86AE6,0x7D12660E,0x1B004DEB); /* 4144 */
+#endif
+
+#if PACKETVER == 20161109
+ packetKeys(0x0A5277C0,0x2DB17506,0x0E8F26DA); /* 4144 */
+#endif
+
+#if PACKETVER == 20161207
+ packetKeys(0x52D267AA,0x4FE42156,0x1292153E); /* 4144 */
+#endif
+
+#if PACKETVER == 20161214
+ packetKeys(0x4DDE217B,0x07863AE0,0x5B591656); /* 4144 */
+#endif
+
+#if PACKETVER == 20161221
+ packetKeys(0x69CB4F56,0x793C165E,0x673A2354); /* 4144 */
+#endif
+
+
#if defined(OBFUSCATIONKEY1) && defined(OBFUSCATIONKEY2) && defined(OBFUSCATIONKEY3)
packetKeys(OBFUSCATIONKEY1,OBFUSCATIONKEY2,OBFUSCATIONKEY3);
#endif
diff --git a/src/map/pc.c b/src/map/pc.c
index ca7387474..f40fba8ae 100644
--- a/src/map/pc.c
+++ b/src/map/pc.c
@@ -4903,25 +4903,6 @@ int pc_isUseitem(struct map_session_data *sd,int n)
if( map->list[sd->bl.m].flag.nobranch || map_flag_gvg2(sd->bl.m) )
return 0;
break;
- case ITEMID_BUBBLE_GUM:
- case ITEMID_COMP_BUBBLE_GUM:
- if( sd->sc.data[SC_CASH_RECEIVEITEM] )
- return 0;
- break;
- case ITEMID_BATTLE_MANUAL:
- case ITEMID_COMP_BATTLE_MANUAL:
- case ITEMID_THICK_MANUAL50:
- case ITEMID_NOBLE_NAMEPLATE:
- case ITEMID_BATTLE_MANUAL25:
- case ITEMID_BATTLE_MANUAL100:
- case ITEMID_BATTLE_MANUAL_X3:
- if( sd->sc.data[SC_CASH_PLUSEXP] )
- return 0;
- break;
- case ITEMID_JOB_MANUAL50:
- if( sd->sc.data[SC_CASH_PLUSONLYJOBEXP] )
- return 0;
- break;
// Mercenary Items
case ITEMID_MERCENARY_RED_POTION:
@@ -5039,7 +5020,7 @@ int pc_useitem(struct map_session_data *sd,int n) {
#if PACKETVER >= 20110309
clif->msgtable(sd, MSG_NPC_WORK_IN_PROGRESS);
#else
- clif->messagecolor_self(fd, COLOR_WHITE, msg_fd(fd, 48));
+ clif->messagecolor_self(sd->fd, COLOR_WHITE, msg_sd(sd, 48));
#endif
return 0;
}
@@ -5075,10 +5056,8 @@ int pc_useitem(struct map_session_data *sd,int n) {
))
return 0;
- //Prevent mass item usage. [Skotlex]
- if( DIFF_TICK(sd->canuseitem_tick, tick) > 0 ||
- (itemdb_iscashfood(nameid) && DIFF_TICK(sd->canusecashfood_tick, tick) > 0)
- )
+ // Prevent mass item usage. [Skotlex]
+ if (DIFF_TICK(sd->canuseitem_tick, tick) > 0)
return 0;
/* Items with delayed consume are not meant to work while in mounts except reins of mount(12622) */
@@ -5171,10 +5150,8 @@ int pc_useitem(struct map_session_data *sd,int n) {
script->potion_flag = 3; //Even more effective potions.
}
- //Update item use time.
+ // Update item use time.
sd->canuseitem_tick = tick + battle_config.item_use_interval;
- if( itemdb_iscashfood(nameid) )
- sd->canusecashfood_tick = tick + battle_config.cashfood_use_interval;
script->run_use_script(sd, sd->inventory_data[n], npc->fake_nd->bl.id);
script->potion_flag = 0;
@@ -8134,6 +8111,7 @@ int pc_readparam(const struct map_session_data *sd, int type)
case SP_SKILLPOINT: val = sd->status.skill_point; break;
case SP_STATUSPOINT: val = sd->status.status_point; break;
case SP_ZENY: val = sd->status.zeny; break;
+ case SP_BANKVAULT: val = sd->status.bank_vault; break;
case SP_BASELEVEL: val = sd->status.base_level; break;
case SP_JOBLEVEL: val = sd->status.job_level; break;
case SP_CLASS: val = sd->status.class; break;
@@ -8278,6 +8256,7 @@ int pc_readparam(const struct map_session_data *sd, int type)
*------------------------------------------*/
int pc_setparam(struct map_session_data *sd,int type,int val)
{
+ int delta;
nullpo_ret(sd);
switch(type){
@@ -8328,6 +8307,19 @@ int pc_setparam(struct map_session_data *sd,int type,int val)
logs->zeny(sd, LOG_TYPE_SCRIPT, sd, -(sd->status.zeny - cap_value(val, 0, MAX_ZENY)));
sd->status.zeny = cap_value(val, 0, MAX_ZENY);
break;
+ case SP_BANKVAULT:
+ val = cap_value(val, 0, MAX_BANK_ZENY);
+ delta = (val - sd->status.bank_vault);
+ sd->status.bank_vault = val;
+ if (map->save_settings & 256) {
+ chrif->save(sd, 0); // send to char server
+ }
+ if (delta > 0) {
+ clif->bank_deposit(sd, BDA_SUCCESS);
+ } else if (delta < 0) {
+ clif->bank_withdraw(sd, BWA_SUCCESS);
+ }
+ return 1; // the vault uses a different packet
case SP_BASEEXP:
if(pc->nextbaseexp(sd) > 0) {
sd->status.base_exp = val;
diff --git a/src/map/script.c b/src/map/script.c
index 90c4c3b80..b0922e3f8 100644
--- a/src/map/script.c
+++ b/src/map/script.c
@@ -2384,6 +2384,7 @@ void script_load_parameters(void)
{"SkillPoint", SP_SKILLPOINT},
{"Class", SP_CLASS},
{"Zeny", SP_ZENY},
+ {"BankVault", SP_BANKVAULT},
{"Sex", SP_SEX},
{"NextBaseExp", SP_NEXTBASEEXP},
{"NextJobExp", SP_NEXTJOBEXP},
@@ -23766,6 +23767,7 @@ void script_hardcoded_constants(void)
script->set_constant("MAX_CART",MAX_INVENTORY,false, false);
script->set_constant("MAX_INVENTORY",MAX_INVENTORY,false, false);
script->set_constant("MAX_ZENY",MAX_ZENY,false, false);
+ script->set_constant("MAX_BANK_ZENY", MAX_BANK_ZENY, false, false);
script->set_constant("MAX_BG_MEMBERS",MAX_BG_MEMBERS,false, false);
script->set_constant("MAX_CHAT_USERS",MAX_CHAT_USERS,false, false);
script->set_constant("MAX_REFINE",MAX_REFINE,false, false);
@@ -23795,6 +23797,7 @@ void script_hardcoded_constants(void)
script->set_constant("Option_Dragon5",OPTION_DRAGON5,false, false);
script->set_constant("Option_Hanbok",OPTION_HANBOK,false, false);
script->set_constant("Option_Oktoberfest",OPTION_OKTOBERFEST,false, false);
+ script->set_constant("Option_Summer2", OPTION_SUMMER2, false, false);
script->constdb_comment("status option compounds");
script->set_constant("Option_Dragon",OPTION_DRAGON,false, false);
diff --git a/src/map/status.c b/src/map/status.c
index d8fb9a350..c3e5a3f40 100644
--- a/src/map/status.c
+++ b/src/map/status.c
@@ -1000,6 +1000,7 @@ void initChangeTables(void)
status->dbs->IconChangeTable[SC_MONSTER_TRANSFORM] = SI_MONSTER_TRANSFORM;
// Costumes
+ status->dbs->IconChangeTable[SC_DRESS_UP] = SI_DRESS_UP;
status->dbs->IconChangeTable[SC_MOONSTAR] = SI_MOONSTAR;
status->dbs->IconChangeTable[SC_SUPER_STAR] = SI_SUPER_STAR;
status->dbs->IconChangeTable[SC_STRANGELIGHTS] = SI_STRANGELIGHTS;
@@ -1178,6 +1179,7 @@ void initChangeTables(void)
status->dbs->ChangeFlagTable[SC_MVPCARD_ORCLORD] |= SCB_ALL;
// Costumes
+ status->dbs->ChangeFlagTable[SC_DRESS_UP] |= SCB_NONE;
status->dbs->ChangeFlagTable[SC_MOONSTAR] |= SCB_NONE;
status->dbs->ChangeFlagTable[SC_SUPER_STAR] |= SCB_NONE;
status->dbs->ChangeFlagTable[SC_STRANGELIGHTS] |= SCB_NONE;
@@ -6873,23 +6875,20 @@ void status_set_viewdata(struct block_list *bl, int class_)
sd->vd.sex = sd->status.sex;
if (sd->vd.cloth_color) {
- if (sd->sc.option&OPTION_WEDDING && battle_config.wedding_ignorepalette)
- sd->vd.cloth_color = 0;
- if (sd->sc.option&OPTION_XMAS && battle_config.xmas_ignorepalette)
- sd->vd.cloth_color = 0;
- if (sd->sc.option&OPTION_SUMMER && battle_config.summer_ignorepalette)
- sd->vd.cloth_color = 0;
- if (sd->sc.option&OPTION_HANBOK && battle_config.hanbok_ignorepalette)
- sd->vd.cloth_color = 0;
- if (sd->sc.option&OPTION_OKTOBERFEST /* TODO: config? */)
+ if ((sd->sc.option & OPTION_WEDDING) != 0 && battle_config.wedding_ignorepalette == true)
+ sd->vd.cloth_color = 0;
+ if ((sd->sc.option & OPTION_XMAS) != 0 && battle_config.xmas_ignorepalette == true)
+ sd->vd.cloth_color = 0;
+ if ((sd->sc.option & OPTION_SUMMER) != 0 && battle_config.summer_ignorepalette == true)
+ sd->vd.cloth_color = 0;
+ if ((sd->sc.option & OPTION_HANBOK) != 0 && battle_config.hanbok_ignorepalette == true)
+ sd->vd.cloth_color = 0;
+ if ((sd->sc.option & OPTION_OKTOBERFEST) != 0 && battle_config.oktoberfest_ignorepalette == true)
+ sd->vd.cloth_color = 0;
+ if ((sd->sc.option & OPTION_SUMMER2) != 0 && battle_config.summer2_ignorepalette == true)
sd->vd.cloth_color = 0;
}
- if (sd->vd.body_style
- && (sd->sc.option&OPTION_WEDDING
- || sd->sc.option&OPTION_XMAS
- || sd->sc.option&OPTION_SUMMER
- || sd->sc.option&OPTION_HANBOK
- || sd->sc.option&OPTION_OKTOBERFEST))
+ if (sd->vd.body_style != 0 && (sd->sc.option & OPTION_COSTUME) != 0)
sd->vd.body_style = 0;
} else if (vd != NULL) {
memcpy(&sd->vd, vd, sizeof(struct view_data));
@@ -7767,30 +7766,6 @@ int status_change_start(struct block_list *src, struct block_list *bl, enum sc_t
if (sc->data[SC_FOOD_LUK_CASH] && sc->data[SC_FOOD_LUK_CASH]->val1 > val1)
return 0;
break;
- case SC_FOOD_STR_CASH:
- if (sc->data[SC_FOOD_STR] && sc->data[SC_FOOD_STR]->val1 > val1)
- return 0;
- break;
- case SC_FOOD_AGI_CASH:
- if (sc->data[SC_FOOD_AGI] && sc->data[SC_FOOD_AGI]->val1 > val1)
- return 0;
- break;
- case SC_FOOD_VIT_CASH:
- if (sc->data[SC_FOOD_VIT] && sc->data[SC_FOOD_VIT]->val1 > val1)
- return 0;
- break;
- case SC_FOOD_INT_CASH:
- if (sc->data[SC_FOOD_INT] && sc->data[SC_FOOD_INT]->val1 > val1)
- return 0;
- break;
- case SC_FOOD_DEX_CASH:
- if (sc->data[SC_FOOD_DEX] && sc->data[SC_FOOD_DEX]->val1 > val1)
- return 0;
- break;
- case SC_FOOD_LUK_CASH:
- if (sc->data[SC_FOOD_LUK] && sc->data[SC_FOOD_LUK]->val1 > val1)
- return 0;
- break;
case SC_CAMOUFLAGE:
if( sd && pc->checkskill(sd, RA_CAMOUFLAGE) < 3 && !skill->check_camouflage(bl,NULL) )
return 0;
@@ -8009,40 +7984,46 @@ int status_change_start(struct block_list *src, struct block_list *bl, enum sc_t
status_change_end(bl, SC_INC_AGI, INVALID_TIMER);
break;
case SC_FOOD_STR:
- status_change_end(bl, SC_FOOD_STR_CASH, INVALID_TIMER);
+ status_change_end(bl, SC_FOOD_STR, INVALID_TIMER);
break;
case SC_FOOD_AGI:
- status_change_end(bl, SC_FOOD_AGI_CASH, INVALID_TIMER);
+ status_change_end(bl, SC_FOOD_AGI, INVALID_TIMER);
break;
case SC_FOOD_VIT:
- status_change_end(bl, SC_FOOD_VIT_CASH, INVALID_TIMER);
+ status_change_end(bl, SC_FOOD_VIT, INVALID_TIMER);
break;
case SC_FOOD_INT:
- status_change_end(bl, SC_FOOD_INT_CASH, INVALID_TIMER);
+ status_change_end(bl, SC_FOOD_INT, INVALID_TIMER);
break;
case SC_FOOD_DEX:
- status_change_end(bl, SC_FOOD_DEX_CASH, INVALID_TIMER);
+ status_change_end(bl, SC_FOOD_DEX, INVALID_TIMER);
break;
case SC_FOOD_LUK:
- status_change_end(bl, SC_FOOD_LUK_CASH, INVALID_TIMER);
+ status_change_end(bl, SC_FOOD_LUK, INVALID_TIMER);
break;
case SC_FOOD_STR_CASH:
status_change_end(bl, SC_FOOD_STR, INVALID_TIMER);
+ status_change_end(bl, SC_FOOD_STR_CASH, INVALID_TIMER);
break;
case SC_FOOD_AGI_CASH:
status_change_end(bl, SC_FOOD_AGI, INVALID_TIMER);
+ status_change_end(bl, SC_FOOD_AGI_CASH, INVALID_TIMER);
break;
case SC_FOOD_VIT_CASH:
status_change_end(bl, SC_FOOD_VIT, INVALID_TIMER);
+ status_change_end(bl, SC_FOOD_VIT_CASH, INVALID_TIMER);
break;
case SC_FOOD_INT_CASH:
status_change_end(bl, SC_FOOD_INT, INVALID_TIMER);
+ status_change_end(bl, SC_FOOD_INT_CASH, INVALID_TIMER);
break;
case SC_FOOD_DEX_CASH:
status_change_end(bl, SC_FOOD_DEX, INVALID_TIMER);
+ status_change_end(bl, SC_FOOD_DEX_CASH, INVALID_TIMER);
break;
case SC_FOOD_LUK_CASH:
status_change_end(bl, SC_FOOD_LUK, INVALID_TIMER);
+ status_change_end(bl, SC_FOOD_LUK_CASH, INVALID_TIMER);
break;
case SC_GM_BATTLE:
status_change_end(bl, SC_GM_BATTLE2, INVALID_TIMER);
@@ -8493,8 +8474,10 @@ int status_change_start(struct block_list *src, struct block_list *bl, enum sc_t
case SC_SUMMER:
case SC_HANBOK:
case SC_OKTOBERFEST:
- if (!vd) return 0;
- //Store previous values as they could be removed.
+ case SC_DRESS_UP:
+ if (vd == NULL)
+ return 0;
+ // Store previous values as they could be removed.
unit->stop_attack(bl);
break;
case SC_NOCHAT:
@@ -9889,19 +9872,21 @@ int status_change_start(struct block_list *src, struct block_list *bl, enum sc_t
return 0;
}
}
- } else { //Special considerations when loading SC data.
- switch( type ) {
+ } else { // Special considerations when loading SC data.
+ switch (type) {
case SC_WEDDING:
case SC_XMAS:
case SC_SUMMER:
case SC_HANBOK:
case SC_OKTOBERFEST:
- if( !vd ) break;
+ case SC_DRESS_UP:
+ if (vd == NULL)
+ break;
clif->changelook(bl, LOOK_BASE, vd->class);
- clif->changelook(bl,LOOK_WEAPON,0);
- clif->changelook(bl,LOOK_SHIELD,0);
- clif->changelook(bl,LOOK_CLOTHES_COLOR,vd->cloth_color);
- clif->changelook(bl,LOOK_BODY2,0);
+ clif->changelook(bl, LOOK_WEAPON, 0);
+ clif->changelook(bl, LOOK_SHIELD, 0);
+ clif->changelook(bl, LOOK_CLOTHES_COLOR, vd->cloth_color);
+ clif->changelook(bl, LOOK_BODY2, 0);
break;
case SC_KAAHI:
val4 = INVALID_TIMER;
@@ -10284,6 +10269,10 @@ int status_change_start(struct block_list *src, struct block_list *bl, enum sc_t
sc->option |= OPTION_OKTOBERFEST;
opt_flag |= 0x4;
break;
+ case SC_DRESS_UP:
+ sc->option |= OPTION_SUMMER2;
+ opt_flag |= 0x4;
+ break;
case SC__FEINTBOMB_MASTER:
sc->option |= OPTION_INVISIBLE;
opt_flag |= 0x4;
@@ -11092,6 +11081,10 @@ int status_change_end_(struct block_list* bl, enum sc_type type, int tid, const
sc->option &= ~OPTION_OKTOBERFEST;
opt_flag |= 0x4;
break;
+ case SC_DRESS_UP:
+ sc->option &= ~OPTION_SUMMER2;
+ opt_flag |= 0x4;
+ break;
case SC__FEINTBOMB_MASTER:
sc->option &= ~OPTION_INVISIBLE;
opt_flag |= 0x4;
diff --git a/src/map/status.h b/src/map/status.h
index 06e7e07b8..1496429a8 100644
--- a/src/map/status.h
+++ b/src/map/status.h
@@ -840,6 +840,8 @@ typedef enum sc_type {
SC_TUNAPARTY,
SC_SHRIMP, // 650
SC_FRESHSHRIMP,
+
+ SC_DRESS_UP,
#ifndef SC_MAX
SC_MAX, //Automatically updated max, used in for's to check we are within bounds.
#endif
@@ -1722,7 +1724,7 @@ enum si_type {
//SI_SUMMEREVENT04 = 853,
//SI_SUMMEREVENT05 = 854,
//SI_MINIGAME_ROULETTE_BONUS_ITEM = 855,
- //SI_DRESS_UP = 856,
+ SI_DRESS_UP = 856,
SI_MAPLE_FALLS = 857,
//SI_ALL_NIFLHEIM_RECALL = 858,
//SI_ = 859,