diff options
Diffstat (limited to 'src')
72 files changed, 29663 insertions, 22131 deletions
diff --git a/src/char/Makefile.in b/src/char/Makefile.in index 79ee3e18f..88a99c96c 100644 --- a/src/char/Makefile.in +++ b/src/char/Makefile.in @@ -36,6 +36,19 @@ LIBCONFIG_OBJ = $(addprefix $(LIBCONFIG_D)/, libconfig.o grammar.o scanctx.o \ LIBCONFIG_H = $(addprefix $(LIBCONFIG_D)/, libconfig.h grammar.h parsectx.h \ scanctx.h scanner.h strbuf.h wincompat.h) +ifeq (@USE_LIBBACKTRACE@,yes) + LIBBACKTRACE_D = $(THIRDPARTY_D)/libbacktrace + LIBBACKTRACE_OBJ = $(addprefix $(LIBBACKTRACE_D)/, atomic.o backtrace.o \ + dwarf.o @LIBBACKTRACE_FORMAT_FILE@ fileline.o mmapio.o mmap.o posix.o print.o \ + simple.o sort.o state.o) + LIBBACKTRACE_H = $(addprefix $(LIBBACKTRACE_D)/, backtrace.h \ + backtrace-supported.h config.h filenames.h internal.h) +else + LIBBACKTRACE_D = + LIBBACKTRACE_OBJ = + LIBBACKTRACE_H = +endif + MT19937AR_D = $(THIRDPARTY_D)/mt19937ar MT19937AR_OBJ = $(MT19937AR_D)/mt19937ar.o MT19937AR_H = $(MT19937AR_D)/mt19937ar.h @@ -51,7 +64,7 @@ CHAR_PH = HAVE_MYSQL=@HAVE_MYSQL@ ifeq ($(HAVE_MYSQL),yes) - CHAR_SERVER_SQL_DEPENDS=$(CHAR_OBJ) $(COMMON_D)/obj_all/common.a $(COMMON_D)/obj_sql/common_sql.a $(MT19937AR_OBJ) $(LIBCONFIG_OBJ) $(SYSINFO_INC) + CHAR_SERVER_SQL_DEPENDS=$(CHAR_OBJ) $(COMMON_D)/obj_all/common.a $(COMMON_D)/obj_sql/common_sql.a $(MT19937AR_OBJ) $(LIBCONFIG_OBJ) $(LIBBACKTRACE_OBJ) $(SYSINFO_INC) else CHAR_SERVER_SQL_DEPENDS=needs_mysql endif @@ -90,7 +103,7 @@ help: Makefile: Makefile.in @$(MAKE) -C ../.. src/char/Makefile -$(SYSINFO_INC): $(CHAR_C) $(CHAR_PH) $(CHAR_H) $(COMMON_H) $(CONFIG_H) $(MT19937AR_H) $(LIBCONFIG_H) +$(SYSINFO_INC): $(CHAR_C) $(CHAR_PH) $(CHAR_H) $(COMMON_H) $(CONFIG_H) $(MT19937AR_H) $(LIBCONFIG_H) $(LIBBACKTRACE_H) @echo " MAKE $@" @$(MAKE) -C ../.. sysinfo @@ -111,7 +124,7 @@ char-server: ../../char-server@EXEEXT@ ../../char-server@EXEEXT@: $(CHAR_SERVER_SQL_DEPENDS) Makefile @echo " LD $(notdir $@)" @$(CC) @STATIC@ @LDFLAGS@ -o ../../char-server@EXEEXT@ $(CHAR_OBJ) $(COMMON_D)/obj_all/common.a $(COMMON_D)/obj_sql/common_sql.a \ - $(MT19937AR_OBJ) $(LIBCONFIG_OBJ) @LIBS@ @MYSQL_LIBS@ + $(MT19937AR_OBJ) $(LIBCONFIG_OBJ) $(LIBBACKTRACE_OBJ) @LIBS@ @MYSQL_LIBS@ # missing object files $(COMMON_D)/obj_all/common.a: @@ -130,10 +143,14 @@ $(LIBCONFIG_OBJ): @echo " MAKE $@" @$(MAKE) -C $(LIBCONFIG_D) +$(LIBBACKTRACE_OBJ): + @echo " MAKE $@" + @$(MAKE) -C $(LIBBACKTRACE_D) + .SECONDEXPANSION: # char object files -obj_sql/%.o: %.c $$(filter %.p.h, $(CHAR_PH)) $(CHAR_H) $(COMMON_H) $(CONFIG_H) $(MT19937AR_H) $(LIBCONFIG_H) | obj_sql +obj_sql/%.o: %.c $$(filter %.p.h, $(CHAR_PH)) $(CHAR_H) $(COMMON_H) $(CONFIG_H) $(MT19937AR_H) $(LIBCONFIG_H) $(LIBBACKTRACE_H) | obj_sql @echo " CC $<" @$(CC) @CFLAGS@ @DEFS@ $(COMMON_INCLUDE) $(THIRDPARTY_INCLUDE) @MYSQL_CFLAGS@ @CPPFLAGS@ -c $(OUTPUT_OPTION) $< diff --git a/src/char/char.c b/src/char/char.c index aac9ad20c..c61b6107a 100644 --- a/src/char/char.c +++ b/src/char/char.c @@ -425,8 +425,6 @@ static struct DBData char_create_charstatus(union DBKey key, va_list args) static int char_mmo_char_tosql(int char_id, struct mmo_charstatus *p) { - int i = 0; - int count = 0; int diff = 0; char save_status[128]; //For displaying save information. [Skotlex] struct mmo_charstatus *cp; @@ -591,8 +589,9 @@ static int char_mmo_char_tosql(int char_id, struct mmo_charstatus *p) //insert here. StrBuf->Clear(&buf); StrBuf->Printf(&buf, "INSERT INTO `%s`(`char_id`,`map`,`x`,`y`) VALUES ", memo_db); - for( i = 0, count = 0; i < MAX_MEMOPOINTS; ++i ) - { + + int count = 0; + for (int i = 0; i < MAX_MEMOPOINTS; ++i) { if( p->memo_point[i].map ) { if( count ) @@ -624,24 +623,29 @@ static int char_mmo_char_tosql(int char_id, struct mmo_charstatus *p) StrBuf->Clear(&buf); StrBuf->Printf(&buf, "INSERT INTO `%s`(`char_id`,`id`,`lv`,`flag`) VALUES ", skill_db); //insert here. - for (i = 0, count = 0; i < MAX_SKILL_DB; ++i) { - if( p->skill[i].id != 0 && p->skill[i].flag != SKILL_FLAG_TEMPORARY ) { - if( p->skill[i].lv == 0 && ( p->skill[i].flag == SKILL_FLAG_PERM_GRANTED || p->skill[i].flag == SKILL_FLAG_PERMANENT ) ) - continue; - if( p->skill[i].flag != SKILL_FLAG_PERMANENT && p->skill[i].flag != SKILL_FLAG_PERM_GRANTED && (p->skill[i].flag - SKILL_FLAG_REPLACED_LV_0) == 0 ) - continue; - if( count ) - StrBuf->AppendStr(&buf, ","); - StrBuf->Printf(&buf, "('%d','%d','%d','%d')", char_id, p->skill[i].id, - ( (p->skill[i].flag == SKILL_FLAG_PERMANENT || p->skill[i].flag == SKILL_FLAG_PERM_GRANTED) ? p->skill[i].lv : p->skill[i].flag - SKILL_FLAG_REPLACED_LV_0), - p->skill[i].flag == SKILL_FLAG_PERM_GRANTED ? p->skill[i].flag : 0);/* other flags do not need to be saved */ - ++count; - } + int count = 0; + for (int i = 0; i < MAX_SKILL_DB; ++i) { + if (p->skill[i].id == 0) + continue; + if (p->skill[i].flag == SKILL_FLAG_TEMPORARY) + continue; + if (p->skill[i].lv == 0 && (p->skill[i].flag == SKILL_FLAG_PERM_GRANTED || p->skill[i].flag == SKILL_FLAG_PERMANENT)) + continue; + if (p->skill[i].flag == SKILL_FLAG_REPLACED_LV_0) + continue; + + if (Assert_chk(p->skill[i].flag == SKILL_FLAG_PERMANENT || p->skill[i].flag == SKILL_FLAG_PERM_GRANTED || p->skill[i].flag > SKILL_FLAG_REPLACED_LV_0)) + continue; + if (count != 0) + StrBuf->AppendStr(&buf, ","); + int saved_lv = (p->skill[i].flag > SKILL_FLAG_REPLACED_LV_0) ? p->skill[i].flag - SKILL_FLAG_REPLACED_LV_0 : p->skill[i].lv; + int saved_flag = p->skill[i].flag == SKILL_FLAG_PERM_GRANTED ? p->skill[i].flag : 0; // other flags do not need to be saved + StrBuf->Printf(&buf, "('%d','%d','%d','%d')", char_id, p->skill[i].id, saved_lv, saved_flag); + + ++count; } - if( count ) - { - if( SQL_ERROR == SQL->QueryStr(inter->sql_handle, StrBuf->Value(&buf)) ) - { + if (count != 0) { + if (SQL_ERROR == SQL->QueryStr(inter->sql_handle, StrBuf->Value(&buf))) { Sql_ShowDebug(inter->sql_handle); errors++; } @@ -651,7 +655,7 @@ static int char_mmo_char_tosql(int char_id, struct mmo_charstatus *p) } diff = 0; - for(i = 0; i < MAX_FRIENDS; i++){ + for (int i = 0; i < MAX_FRIENDS; i++) { if(p->friends[i].char_id != cp->friends[i].char_id || p->friends[i].account_id != cp->friends[i].account_id){ diff = 1; @@ -669,8 +673,8 @@ static int char_mmo_char_tosql(int char_id, struct mmo_charstatus *p) StrBuf->Clear(&buf); StrBuf->Printf(&buf, "INSERT INTO `%s` (`char_id`, `friend_account`, `friend_id`) VALUES ", friend_db); - for( i = 0, count = 0; i < MAX_FRIENDS; ++i ) - { + int count = 0; + for (int i = 0; i < MAX_FRIENDS; ++i) { if( p->friends[i].char_id > 0 ) { if( count ) @@ -695,7 +699,7 @@ static int char_mmo_char_tosql(int char_id, struct mmo_charstatus *p) StrBuf->Clear(&buf); StrBuf->Printf(&buf, "REPLACE INTO `%s` (`char_id`, `hotkey`, `type`, `itemskill_id`, `skill_lvl`) VALUES ", hotkey_db); diff = 0; - for(i = 0; i < ARRAYLENGTH(p->hotkeys); i++){ + for (int i = 0; i < ARRAYLENGTH(p->hotkeys); i++) { if(memcmp(&p->hotkeys[i], &cp->hotkeys[i], sizeof(struct hotkey))) { if( diff ) @@ -1369,7 +1373,7 @@ static int char_mmo_char_fromsql(int char_id, struct mmo_charstatus *p, bool loa SqlStmt_ShowDebug(stmt); } - if( tmp_skill.flag != SKILL_FLAG_PERM_GRANTED ) + if (tmp_skill.flag != SKILL_FLAG_PERM_GRANTED) tmp_skill.flag = SKILL_FLAG_PERMANENT; for (i = 0; i < MAX_SKILL_DB && SQL_SUCCESS == SQL->StmtNextRow(stmt); ++i) { @@ -2898,13 +2902,13 @@ static void char_global_accreg_to_login_add(const char *key, unsigned int index, if( val ) { char *sval = (char*)val; - len = strlen(sval)+1; + len = strlen(sval); - WFIFOB(chr->login_fd, nlen) = (unsigned char)len;/* won't be higher; the column size is 254 */ + WFIFOB(chr->login_fd, nlen) = (unsigned char)len; // Won't be higher; the column size is 255. nlen += 1; - safestrncpy(WFIFOP(chr->login_fd,nlen), sval, len); - nlen += len; + safestrncpy(WFIFOP(chr->login_fd, nlen), sval, len + 1); + nlen += len + 1; } } else { WFIFOB(chr->login_fd, nlen) = val ? 0 : 1; diff --git a/src/char/int_pet.c b/src/char/int_pet.c index 880de668d..8b42bac1d 100644 --- a/src/char/int_pet.c +++ b/src/char/int_pet.c @@ -43,97 +43,162 @@ struct inter_pet_interface *inter_pet; /** * Saves a pet to the SQL database. * - * @remark - * In case of newly created pet, the pet ID is not updated to reflect the - * newly assigned ID. The caller must do so. + * Table structure: + * `pet` (`pet_id`, `class`, `name`, `account_id`, `char_id`, `level`, `egg_id`, `equip`, `intimate`, `hungry`, `rename_flag`, `incubate`, `autofeed`) + * + * @remark In case of newly created pet, the pet ID is not updated to reflect the newly assigned ID. The caller must do so. * * @param p The pet data to save. - * @return The ID of the saved pet. - * @retval 0 in case of errors. - */ + * @return The ID of the saved pet, or 0 in case of errors. + * + **/ static int inter_pet_tosql(const struct s_pet *p) { - //`pet` (`pet_id`, `class`,`name`,`account_id`,`char_id`,`level`,`egg_id`,`equip`,`intimate`,`hungry`,`rename_flag`,`incubate`) - char esc_name[NAME_LENGTH*2+1];// escaped pet name - int pet_id = 0, hungry = 0, intimate = 0; - nullpo_ret(p); - SQL->EscapeStringLen(inter->sql_handle, esc_name, p->name, strnlen(p->name, NAME_LENGTH)); - hungry = cap_value(p->hungry, 0, 100); - intimate = cap_value(p->intimate, 0, 1000); - - if (p->pet_id == 0) { - // New pet. - if (SQL_ERROR == SQL->Query(inter->sql_handle, "INSERT INTO `%s` " - "(`class`,`name`,`account_id`,`char_id`,`level`,`egg_id`,`equip`,`intimate`,`hungry`,`rename_flag`,`incubate`, `autofeed`) " - "VALUES ('%d', '%s', '%d', '%d', '%d', '%d', '%d', '%d', '%d', '%d', '%d', '%d')", - pet_db, p->class_, esc_name, p->account_id, p->char_id, p->level, p->egg_id, - p->equip, intimate, hungry, p->rename_flag, p->incubate, p->autofeed)) { - Sql_ShowDebug(inter->sql_handle); + struct SqlStmt *stmt = SQL->StmtMalloc(inter->sql_handle); + + if (stmt == NULL) { + SqlStmt_ShowDebug(stmt); + return 0; + } + + int pet_id = 0; + + if (p->pet_id == 0) { // New pet. + const char *query = "INSERT INTO `%s` " + "(`class`, `name`, `account_id`, `char_id`, `level`, `egg_id`, `equip`, " + "`intimate`, `hungry`, `rename_flag`, `incubate`, `autofeed`) " + "VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)"; + + if (SQL_ERROR == SQL->StmtPrepare(stmt, query, pet_db) || + SQL_ERROR == SQL->StmtBindParam(stmt, 0, SQLDT_INT32, &p->class_, sizeof(p->class_)) || + SQL_ERROR == SQL->StmtBindParam(stmt, 1, SQLDT_STRING, &p->name, strnlen(p->name, sizeof(p->name))) || + SQL_ERROR == SQL->StmtBindParam(stmt, 2, SQLDT_INT32, &p->account_id, sizeof(p->account_id)) || + SQL_ERROR == SQL->StmtBindParam(stmt, 3, SQLDT_INT32, &p->char_id, sizeof(p->char_id)) || + SQL_ERROR == SQL->StmtBindParam(stmt, 4, SQLDT_INT16, &p->level, sizeof(p->level)) || + SQL_ERROR == SQL->StmtBindParam(stmt, 5, SQLDT_INT32, &p->egg_id, sizeof(p->egg_id)) || + SQL_ERROR == SQL->StmtBindParam(stmt, 6, SQLDT_INT32, &p->equip, sizeof(p->equip)) || + SQL_ERROR == SQL->StmtBindParam(stmt, 7, SQLDT_INT16, &p->intimate, sizeof(p->intimate)) || + SQL_ERROR == SQL->StmtBindParam(stmt, 8, SQLDT_INT16, &p->hungry, sizeof(p->hungry)) || + SQL_ERROR == SQL->StmtBindParam(stmt, 9, SQLDT_INT8, &p->rename_flag, sizeof(p->rename_flag)) || + SQL_ERROR == SQL->StmtBindParam(stmt, 10, SQLDT_INT8, &p->incubate, sizeof(p->incubate)) || + SQL_ERROR == SQL->StmtBindParam(stmt, 11, SQLDT_INT32, &p->autofeed, sizeof(p->autofeed)) || + SQL_ERROR == SQL->StmtExecute(stmt)) { + SqlStmt_ShowDebug(stmt); + SQL->StmtFree(stmt); return 0; } + pet_id = (int)SQL->LastInsertId(inter->sql_handle); - } else { - // Update pet. - if (SQL_ERROR == SQL->Query(inter->sql_handle, "UPDATE `%s` SET `class`='%d',`name`='%s',`account_id`='%d',`char_id`='%d',`level`='%d',`egg_id`='%d',`equip`='%d',`intimate`='%d',`hungry`='%d',`rename_flag`='%d',`incubate`='%d', `autofeed`='%d' WHERE `pet_id`='%d'", - pet_db, p->class_, esc_name, p->account_id, p->char_id, p->level, p->egg_id, - p->equip, intimate, hungry, p->rename_flag, p->incubate, p->autofeed, p->pet_id)) { - Sql_ShowDebug(inter->sql_handle); + } else { // Update pet. + const char *query = "UPDATE `%s` SET " + "`class`=?, `name`=?, `account_id`=?, `char_id`=?, `level`=?, `egg_id`=?, `equip`=?, " + "`intimate`=?, `hungry`=?, `rename_flag`=?, `incubate`=?, `autofeed`=? " + "WHERE `pet_id`=?"; + + if (SQL_ERROR == SQL->StmtPrepare(stmt, query, pet_db) || + SQL_ERROR == SQL->StmtBindParam(stmt, 0, SQLDT_INT32, &p->class_, sizeof(p->class_)) || + SQL_ERROR == SQL->StmtBindParam(stmt, 1, SQLDT_STRING, &p->name, strnlen(p->name, sizeof(p->name))) || + SQL_ERROR == SQL->StmtBindParam(stmt, 2, SQLDT_INT32, &p->account_id, sizeof(p->account_id)) || + SQL_ERROR == SQL->StmtBindParam(stmt, 3, SQLDT_INT32, &p->char_id, sizeof(p->char_id)) || + SQL_ERROR == SQL->StmtBindParam(stmt, 4, SQLDT_INT16, &p->level, sizeof(p->level)) || + SQL_ERROR == SQL->StmtBindParam(stmt, 5, SQLDT_INT32, &p->egg_id, sizeof(p->egg_id)) || + SQL_ERROR == SQL->StmtBindParam(stmt, 6, SQLDT_INT32, &p->equip, sizeof(p->equip)) || + SQL_ERROR == SQL->StmtBindParam(stmt, 7, SQLDT_INT16, &p->intimate, sizeof(p->intimate)) || + SQL_ERROR == SQL->StmtBindParam(stmt, 8, SQLDT_INT16, &p->hungry, sizeof(p->hungry)) || + SQL_ERROR == SQL->StmtBindParam(stmt, 9, SQLDT_INT8, &p->rename_flag, sizeof(p->rename_flag)) || + SQL_ERROR == SQL->StmtBindParam(stmt, 10, SQLDT_INT8, &p->incubate, sizeof(p->incubate)) || + SQL_ERROR == SQL->StmtBindParam(stmt, 11, SQLDT_INT32, &p->autofeed, sizeof(p->autofeed)) || + SQL_ERROR == SQL->StmtBindParam(stmt, 12, SQLDT_INT32, &p->pet_id, sizeof(p->pet_id)) || + SQL_ERROR == SQL->StmtExecute(stmt)) { + SqlStmt_ShowDebug(stmt); + SQL->StmtFree(stmt); return 0; } + pet_id = p->pet_id; } + SQL->StmtFree(stmt); + if (chr->show_save_log) ShowInfo("Pet saved %d - %s.\n", pet_id, p->name); return pet_id; } +/** + * Loads a pet's data from the SQL database. + * + * Table structure: + * `pet` (`pet_id`, `class`, `name`, `account_id`, `char_id`, `level`, `egg_id`, `equip`, `intimate`, `hungry`, `rename_flag`, `incubate`, `autofeed`) + * + * @param pet_id The pet's ID. + * @param p The pet data to save the SQL data in. + * @return Always 0. + * + **/ static int inter_pet_fromsql(int pet_id, struct s_pet *p) { - char* data; - size_t len; + nullpo_ret(p); + + struct SqlStmt *stmt = SQL->StmtMalloc(inter->sql_handle); + + if (stmt == NULL) { + SqlStmt_ShowDebug(stmt); + return 0; + } #ifdef NOISY ShowInfo("Loading pet (%d)...\n",pet_id); #endif - nullpo_ret(p); + memset(p, 0, sizeof(struct s_pet)); - //`pet` (`pet_id`, `class`,`name`,`account_id`,`char_id`,`level`,`egg_id`,`equip`,`intimate`,`hungry`,`rename_flag`,`incubate`, `autofeed`) + const char *query = "SELECT " + "`class`, `name`, `account_id`, `char_id`, `level`, `egg_id`, `equip`, " + "`intimate`, `hungry`, `rename_flag`, `incubate`, `autofeed` " + "FROM `%s` WHERE `pet_id`=?"; + + if (SQL_ERROR == SQL->StmtPrepare(stmt, query, pet_db) || + SQL_ERROR == SQL->StmtBindParam(stmt, 0, SQLDT_INT32, &pet_id, sizeof(pet_id)) || + SQL_ERROR == SQL->StmtExecute(stmt) || + SQL_ERROR == SQL->StmtBindColumn(stmt, 0, SQLDT_INT32, &p->class_, sizeof(p->class_), NULL, NULL) || + SQL_ERROR == SQL->StmtBindColumn(stmt, 1, SQLDT_STRING, &p->name, sizeof(p->name), NULL, NULL) || + SQL_ERROR == SQL->StmtBindColumn(stmt, 2, SQLDT_INT32, &p->account_id, sizeof(p->account_id), NULL, NULL) || + SQL_ERROR == SQL->StmtBindColumn(stmt, 3, SQLDT_INT32, &p->char_id, sizeof(p->char_id), NULL, NULL) || + SQL_ERROR == SQL->StmtBindColumn(stmt, 4, SQLDT_INT16, &p->level, sizeof(p->level), NULL, NULL) || + SQL_ERROR == SQL->StmtBindColumn(stmt, 5, SQLDT_INT32, &p->egg_id, sizeof(p->egg_id), NULL, NULL) || + SQL_ERROR == SQL->StmtBindColumn(stmt, 6, SQLDT_INT32, &p->equip, sizeof(p->equip), NULL, NULL) || + SQL_ERROR == SQL->StmtBindColumn(stmt, 7, SQLDT_INT16, &p->intimate, sizeof(p->intimate), NULL, NULL) || + SQL_ERROR == SQL->StmtBindColumn(stmt, 8, SQLDT_INT16, &p->hungry, sizeof(p->hungry), NULL, NULL) || + SQL_ERROR == SQL->StmtBindColumn(stmt, 9, SQLDT_INT8, &p->rename_flag, sizeof(p->rename_flag), NULL, NULL) || + SQL_ERROR == SQL->StmtBindColumn(stmt, 10, SQLDT_INT8, &p->incubate, sizeof(p->incubate), NULL, NULL) || + SQL_ERROR == SQL->StmtBindColumn(stmt, 11, SQLDT_INT32, &p->autofeed, sizeof(p->autofeed), NULL, NULL)) { + SqlStmt_ShowDebug(stmt); + SQL->StmtFree(stmt); + return 0; + } - if( SQL_ERROR == SQL->Query(inter->sql_handle, "SELECT `pet_id`, `class`,`name`,`account_id`,`char_id`,`level`,`egg_id`,`equip`,`intimate`,`hungry`,`rename_flag`,`incubate`,`autofeed` FROM `%s` WHERE `pet_id`='%d'", pet_db, pet_id) ) - { - Sql_ShowDebug(inter->sql_handle); + if (SQL->StmtNumRows(stmt) < 1) { + ShowError("inter_pet_fromsql: Requested non-existant pet ID: %d\n", pet_id); + SQL->StmtFree(stmt); return 0; } - if( SQL_SUCCESS == SQL->NextRow(inter->sql_handle) ) - { - p->pet_id = pet_id; - SQL->GetData(inter->sql_handle, 1, &data, NULL); p->class_ = atoi(data); - SQL->GetData(inter->sql_handle, 2, &data, &len); memcpy(p->name, data, min(len, NAME_LENGTH)); - SQL->GetData(inter->sql_handle, 3, &data, NULL); p->account_id = atoi(data); - SQL->GetData(inter->sql_handle, 4, &data, NULL); p->char_id = atoi(data); - SQL->GetData(inter->sql_handle, 5, &data, NULL); p->level = atoi(data); - SQL->GetData(inter->sql_handle, 6, &data, NULL); p->egg_id = atoi(data); - SQL->GetData(inter->sql_handle, 7, &data, NULL); p->equip = atoi(data); - SQL->GetData(inter->sql_handle, 8, &data, NULL); p->intimate = atoi(data); - SQL->GetData(inter->sql_handle, 9, &data, NULL); p->hungry = atoi(data); - SQL->GetData(inter->sql_handle, 10, &data, NULL); p->rename_flag = atoi(data); - SQL->GetData(inter->sql_handle, 11, &data, NULL); p->incubate = atoi(data); - SQL->GetData(inter->sql_handle, 12, &data, NULL); p->autofeed = atoi(data); - - SQL->FreeResult(inter->sql_handle); - - p->hungry = cap_value(p->hungry, 0, 100); - p->intimate = cap_value(p->intimate, 0, 1000); - - if (chr->show_save_log) - ShowInfo("Pet loaded (%d - %s).\n", pet_id, p->name); + if (SQL_ERROR == SQL->StmtNextRow(stmt)) { + SqlStmt_ShowDebug(stmt); + SQL->StmtFree(stmt); + return 0; } + + SQL->StmtFree(stmt); + p->pet_id = pet_id; + + if (chr->show_save_log) + ShowInfo("Pet loaded %d - %s.\n", pet_id, p->name); + return 0; } //---------------------------------------------- @@ -160,41 +225,48 @@ static int inter_pet_delete(int pet_id) return 0; } //------------------------------------------------------ + +/** + * Creates a new pet and inserts its data into the `pet` SQL table. + * + * @param account_id The pet's master's account ID. + * @param char_id The pet's master's char ID. + * @param pet_class The pet's class/monster ID. + * @param pet_lv The pet's level. + * @param pet_egg_id The pet's egg's item ID. + * @param pet_equip The pet's equipment's item ID. + * @param intimate The pet's intimacy value. + * @param hungry The pet's hunger value. + * @param rename_flag The pet's rename flag. + * @param incubate The pet's incubate state. + * @param pet_name The pet's name. + * @return The created pet's data struct, or NULL in case of errors. + * + **/ static struct s_pet *inter_pet_create(int account_id, int char_id, int pet_class, int pet_lv, int pet_egg_id, - int pet_equip, short intimate, short hungry, char rename_flag, char incubate, const char *pet_name) + int pet_equip, short intimate, short hungry, char rename_flag, + char incubate, const char *pet_name) { - nullpo_ret(pet_name); + nullpo_retr(NULL, pet_name); + memset(inter_pet->pt, 0, sizeof(struct s_pet)); safestrncpy(inter_pet->pt->name, pet_name, NAME_LENGTH); - if(incubate == 1) - inter_pet->pt->account_id = inter_pet->pt->char_id = 0; - else { - inter_pet->pt->account_id = account_id; - inter_pet->pt->char_id = char_id; - } + inter_pet->pt->account_id = (incubate == 1) ? 0 : account_id; + inter_pet->pt->char_id = (incubate == 1) ? 0 : char_id; inter_pet->pt->class_ = pet_class; inter_pet->pt->level = pet_lv; inter_pet->pt->egg_id = pet_egg_id; inter_pet->pt->equip = pet_equip; - inter_pet->pt->intimate = intimate; - inter_pet->pt->hungry = hungry; + inter_pet->pt->intimate = cap_value(intimate, PET_INTIMACY_NONE, PET_INTIMACY_MAX); + inter_pet->pt->hungry = cap_value(hungry, PET_HUNGER_STARVING, PET_HUNGER_STUFFED); inter_pet->pt->rename_flag = rename_flag; inter_pet->pt->incubate = incubate; + inter_pet->pt->pet_id = 0; // Signal NEW pet. - if(inter_pet->pt->hungry < 0) - inter_pet->pt->hungry = 0; - else if(inter_pet->pt->hungry > 100) - inter_pet->pt->hungry = 100; - if(inter_pet->pt->intimate < 0) - inter_pet->pt->intimate = 0; - else if(inter_pet->pt->intimate > 1000) - inter_pet->pt->intimate = 1000; - - inter_pet->pt->pet_id = 0; //Signal NEW pet. if ((inter_pet->pt->pet_id = inter_pet->tosql(inter_pet->pt)) != 0) return inter_pet->pt; - else //Failed... - return NULL; + + return NULL; } static struct s_pet *inter_pet_load(int account_id, int char_id, int pet_id) diff --git a/src/char/inter.c b/src/char/inter.c index 2d8d06a9c..5252b3315 100644 --- a/src/char/inter.c +++ b/src/char/inter.c @@ -676,13 +676,13 @@ static int inter_accreg_fromsql(int account_id, int char_id, int fd, int type) plen += 4; SQL->GetData(inter->sql_handle, 2, &data, NULL); - len = strlen(data)+1; + len = strlen(data); - WFIFOB(fd, plen) = (unsigned char)len;/* won't be higher; the column size is 254 */ + WFIFOB(fd, plen) = (unsigned char)len; // Won't be higher; the column size is 255. plen += 1; - safestrncpy(WFIFOP(fd,plen), data, len); - plen += len; + safestrncpy(WFIFOP(fd, plen), data, len + 1); + plen += len + 1; WFIFOW(fd, 14) += 1; diff --git a/src/char/mapif.c b/src/char/mapif.c index 9077afae4..ed0133da3 100644 --- a/src/char/mapif.c +++ b/src/char/mapif.c @@ -559,7 +559,7 @@ static int mapif_guild_withdraw(int guild_id, int account_id, int char_id, int f WBUFL(buf, 6) = account_id; WBUFL(buf, 10) = char_id; WBUFB(buf, 14) = flag; - memcpy(WBUFP(buf, 15), mes, 40); + safestrncpy(WBUFP(buf, 15), mes, 40); memcpy(WBUFP(buf, 55), name, NAME_LENGTH); mapif->sendall(buf, 55 + NAME_LENGTH); ShowInfo("int_guild: guild withdraw (%d - %d: %s - %s)\n", guild_id, account_id, name, mes); @@ -2030,7 +2030,8 @@ static int mapif_parse_Registry(int fd) if (count != 0) { int cursor = 14, i; - char key[SCRIPT_VARNAME_LENGTH+1], sval[254]; + char key[SCRIPT_VARNAME_LENGTH + 1]; + char sval[SCRIPT_STRING_VAR_LENGTH + 1]; bool isLoginActive = sockt->session_is_active(chr->login_fd); if (isLoginActive) @@ -2057,8 +2058,8 @@ static int mapif_parse_Registry(int fd) /* str */ case 2: len = RFIFOB(fd, cursor); - safestrncpy(sval, RFIFOP(fd, cursor + 1), min((int)sizeof(sval), len)); - cursor += len + 1; + safestrncpy(sval, RFIFOP(fd, cursor + 1), min((int)sizeof(sval), len + 1)); + cursor += len + 2; inter->savereg(account_id, char_id, key, index, (intptr_t)sval, true); break; case 3: diff --git a/src/common/HPMDataCheck.h b/src/common/HPMDataCheck.h index d2e491ad2..821d68569 100644 --- a/src/common/HPMDataCheck.h +++ b/src/common/HPMDataCheck.h @@ -738,7 +738,6 @@ HPExport const struct s_HPMDataCheck HPMDataCheck[] = { { "PACKET_ZC_REPAIRITEMLIST", sizeof(struct PACKET_ZC_REPAIRITEMLIST), SERVER_TYPE_MAP }, { "PACKET_ZC_REPAIRITEMLIST_sub", sizeof(struct PACKET_ZC_REPAIRITEMLIST_sub), SERVER_TYPE_MAP }, { "PACKET_ZC_ROLE_CHANGE", sizeof(struct PACKET_ZC_ROLE_CHANGE), SERVER_TYPE_MAP }, - { "PACKET_ZC_SE_CASHSHOP_OPEN", sizeof(struct PACKET_ZC_SE_CASHSHOP_OPEN), SERVER_TYPE_MAP }, { "PACKET_ZC_SEARCH_STORE_INFO_ACK", sizeof(struct PACKET_ZC_SEARCH_STORE_INFO_ACK), SERVER_TYPE_MAP }, { "PACKET_ZC_SEARCH_STORE_INFO_ACK_sub", sizeof(struct PACKET_ZC_SEARCH_STORE_INFO_ACK_sub), SERVER_TYPE_MAP }, { "PACKET_ZC_SKILL_SCALE", sizeof(struct PACKET_ZC_SKILL_SCALE), SERVER_TYPE_MAP }, @@ -859,6 +858,7 @@ HPExport const struct s_HPMDataCheck HPMDataCheck[] = { #define MAP_PC_GROUPS_H #endif // MAP_PC_GROUPS_H #ifdef MAP_PC_H + { "autocast_data", sizeof(struct autocast_data), SERVER_TYPE_MAP }, { "autotrade_vending", sizeof(struct autotrade_vending), SERVER_TYPE_MAP }, { "class_exp_group", sizeof(struct class_exp_group), SERVER_TYPE_MAP }, { "class_exp_tables", sizeof(struct class_exp_tables), SERVER_TYPE_MAP }, @@ -966,6 +966,7 @@ HPExport const struct s_HPMDataCheck HPMDataCheck[] = { { "skill_cd_entry", sizeof(struct skill_cd_entry), SERVER_TYPE_MAP }, { "skill_condition", sizeof(struct skill_condition), SERVER_TYPE_MAP }, { "skill_interface", sizeof(struct skill_interface), SERVER_TYPE_MAP }, + { "skill_required_item_data", sizeof(struct skill_required_item_data), SERVER_TYPE_MAP }, { "skill_timerskill", sizeof(struct skill_timerskill), SERVER_TYPE_MAP }, { "skill_unit", sizeof(struct skill_unit), SERVER_TYPE_MAP }, { "skill_unit_group", sizeof(struct skill_unit_group), SERVER_TYPE_MAP }, diff --git a/src/common/Makefile.in b/src/common/Makefile.in index 033b26ae3..22b974cfd 100644 --- a/src/common/Makefile.in +++ b/src/common/Makefile.in @@ -33,6 +33,19 @@ LIBCONFIG_OBJ = $(addprefix $(LIBCONFIG_D)/, libconfig.o grammar.o scanctx.o \ LIBCONFIG_H = $(addprefix $(LIBCONFIG_D)/, libconfig.h grammar.h parsectx.h \ scanctx.h scanner.h strbuf.h wincompat.h) +ifeq (@USE_LIBBACKTRACE@,yes) + LIBBACKTRACE_D = $(THIRDPARTY_D)/libbacktrace + LIBBACKTRACE_OBJ = $(addprefix $(LIBBACKTRACE_D)/, atomic.o backtrace.o \ + dwarf.o @LIBBACKTRACE_FORMAT_FILE@ fileline.o mmapio.o mmap.o posix.o print.o \ + simple.o sort.o state.o) + LIBBACKTRACE_H = $(addprefix $(LIBBACKTRACE_D)/, backtrace.h \ + backtrace-supported.h config.h filenames.h internal.h) +else + LIBBACKTRACE_D = + LIBBACKTRACE_OBJ = + LIBBACKTRACE_H = +endif + MT19937AR_D = $(THIRDPARTY_D)/mt19937ar MT19937AR_OBJ = $(MT19937AR_D)/mt19937ar.o MT19937AR_H = $(MT19937AR_D)/mt19937ar.h @@ -95,7 +108,7 @@ help: Makefile: Makefile.in @$(MAKE) -C ../.. src/common/Makefile -$(SYSINFO_INC): $(COMMON_C) $(COMMON_PH) $(COMMON_H) $(CONFIG_H) $(MT19937AR_H) $(LIBCONFIG_H) +$(SYSINFO_INC): $(COMMON_C) $(COMMON_PH) $(COMMON_H) $(CONFIG_H) $(MT19937AR_H) $(LIBCONFIG_H) $(LIBBACKTRACE_H) @echo " MAKE $@" @$(MAKE) -C ../.. sysinfo @@ -121,7 +134,7 @@ obj_sql/common_sql.a: $(COMMON_SQL_OBJ) Makefile @echo " AR $@" @@AR@ rcs obj_sql/common_sql.a $(COMMON_SQL_OBJ) -common: $(COMMON_OBJ) $(MT19937AR_OBJ) $(LIBCONFIG_OBJ) obj_all/common.a Makefile +common: $(COMMON_OBJ) $(MT19937AR_OBJ) $(LIBCONFIG_OBJ) $(LIBBACKTRACE_OBJ) obj_all/common.a Makefile common_sql: $(COMMON_SQL_OBJ) obj_sql/common_sql.a Makefile @@ -134,14 +147,18 @@ $(LIBCONFIG_OBJ): @echo " MAKE $@" @$(MAKE) -C $(LIBCONFIG_D) +$(LIBBACKTRACE_OBJ): + @echo " MAKE $@" + @$(MAKE) -C $(LIBBACKTRACE_D) + .SECONDEXPANSION: -obj_all/sysinfo.o: sysinfo.c $(filter sysinfo.p.h, $(COMMON_PH)) $(COMMON_H) $(CONFIG_H) $(MT19937AR_H) $(LIBCONFIG_H) $(SYSINFO_INC) | obj_all +obj_all/sysinfo.o: sysinfo.c $(filter sysinfo.p.h, $(COMMON_PH)) $(COMMON_H) $(CONFIG_H) $(MT19937AR_H) $(LIBCONFIG_H) $(LIBBACKTRACE_H) $(SYSINFO_INC) | obj_all -obj_all/%.o: %.c $(COMMON_H) $(CONFIG_H) $(MT19937AR_H) $(LIBCONFIG_H) | $(SYSINFO_INC) obj_all +obj_all/%.o: %.c $(COMMON_H) $(CONFIG_H) $(MT19937AR_H) $(LIBCONFIG_H) $(LIBBACKTRACE_H) | $(SYSINFO_INC) obj_all @echo " CC $<" @$(CC) @CFLAGS@ @DEFS@ $(COMMON_INCLUDE) $(THIRDPARTY_INCLUDE) @CPPFLAGS@ -c $(OUTPUT_OPTION) $< -obj_sql/%.o: %.c $$(filter %.p.h, $(COMMON_PH)) $(COMMON_H) $(COMMON_SQL_H) $(CONFIG_H) $(LIBCONFIG_H) | $(SYSINFO_INC) obj_sql +obj_sql/%.o: %.c $$(filter %.p.h, $(COMMON_PH)) $(COMMON_H) $(COMMON_SQL_H) $(CONFIG_H) $(LIBCONFIG_H) $(LIBBACKTRACE_H) | $(SYSINFO_INC) obj_sql @echo " CC $<" @$(CC) @CFLAGS@ @DEFS@ $(COMMON_INCLUDE) $(THIRDPARTY_INCLUDE) @MYSQL_CFLAGS@ @CPPFLAGS@ -c $(OUTPUT_OPTION) $< diff --git a/src/common/cbasetypes.h b/src/common/cbasetypes.h index 83c7c8d60..31d89d66b 100644 --- a/src/common/cbasetypes.h +++ b/src/common/cbasetypes.h @@ -95,7 +95,7 @@ // debug function name #ifndef __NETBSD__ #if !defined(__STDC_VERSION__) || __STDC_VERSION__ < 199901L -# if __GNUC__ >= 2 +# if __GNUC__ >= 2 || defined(WIN32) # define __func__ __FUNCTION__ # else # define __func__ "" diff --git a/src/common/core.c b/src/common/core.c index 54358b85c..5be90a411 100644 --- a/src/common/core.c +++ b/src/common/core.c @@ -489,6 +489,7 @@ int main(int argc, char **argv) iMalloc->init();// needed for Show* in display_title() [FlavioJS] showmsg->init(); + nullpo->init(); cmdline->init(); @@ -552,6 +553,7 @@ int main(int argc, char **argv) cmdline->final(); //sysinfo->final(); Called by iMalloc->final() + nullpo->final(); iMalloc->final(); showmsg->final(); // Should be after iMalloc->final() diff --git a/src/common/mmo.h b/src/common/mmo.h index 25ad350c0..d2f3aa8f1 100644 --- a/src/common/mmo.h +++ b/src/common/mmo.h @@ -380,7 +380,10 @@ STATIC_ASSERT(MAX_ITEM_OPTIONS <= 5, "This value is limited by the client and da #define JOBL_BABY 0x2000 #define JOBL_THIRD 0x4000 -#define SCRIPT_VARNAME_LENGTH 32 ///< Maximum length of a script variable +#define SCRIPT_VARNAME_LENGTH 32 ///< Maximum length of a script variable's name including affixes and excluding NULL-terminator. +STATIC_ASSERT(SCRIPT_VARNAME_LENGTH <= 32, "This value is limited by the inter-server communication and database layout and should only be increased if you know the consequences."); +#define SCRIPT_STRING_VAR_LENGTH 255 ///< Maximum length of strings stored in script variables excluding NULL-terminator. +STATIC_ASSERT(SCRIPT_STRING_VAR_LENGTH <= 255, "This value is limited by the inter-server communication and database layout and should only be increased if you know the consequences."); #define INFINITE_DURATION (-1) // Infinite duration for status changes @@ -1378,6 +1381,27 @@ enum questinfo_type { QINFO_MERCENARY_CLASS }; +/** Pet hunger level **/ +enum e_pet_hunger_level { + PET_HUNGER_STARVING = 0, + PET_HUNGER_VERY_HUNGRY = 10, + PET_HUNGER_HUNGRY = 25, + PET_HUNGER_NEUTRAL = 75, + PET_HUNGER_SATISFIED = 90, + PET_HUNGER_STUFFED = 100 +}; + +/** Pet intimacy level **/ +enum e_pet_intimacy_level { + PET_INTIMACY_NONE = 0, + PET_INTIMACY_AWKWARD = 1, + PET_INTIMACY_SHY = 100, + PET_INTIMACY_NEUTRAL = 250, + PET_INTIMACY_CORDIAL = 750, + PET_INTIMACY_LOYAL = 900, + PET_INTIMACY_MAX = 1000 +}; + /* packet size constant for itemlist */ #if MAX_INVENTORY > MAX_STORAGE && MAX_INVENTORY > MAX_CART #define MAX_ITEMLIST MAX_INVENTORY diff --git a/src/common/nullpo.c b/src/common/nullpo.c index dfb938708..11741745c 100644 --- a/src/common/nullpo.c +++ b/src/common/nullpo.c @@ -23,18 +23,106 @@ #include "nullpo.h" #include "common/showmsg.h" +#include "common/strlib.h" #include <stdio.h> #include <stdarg.h> #include <stdlib.h> #include <string.h> -#ifdef HAVE_EXECINFO +#if defined(HAVE_LIBBACKTRACE) +#include "libbacktrace/backtrace.h" +#include "libbacktrace/backtrace-supported.h" +# if defined(WIN32) +# include <windows.h> +# elif defined(__sun) +# include <limits.h> +# elif defined(__linux) || defined(__linux__) +# include <unistd.h> +# include <limits.h> +# elif defined(__APPLE__) && defined(__MACH__) +# include <mach-o/dyld.h> +# elif defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__) || defined(__bsdi__) || defined(__DragonFly__) +# include <sys/types.h> +# include <sys/sysctl.h> +# endif +#elif defined(HAVE_EXECINFO) #include <execinfo.h> -#endif // HAVE_EXECINFO +#endif // HAVE_LIBBACKTRACE + static struct nullpo_interface nullpo_s; struct nullpo_interface *nullpo; +#ifdef HAVE_LIBBACKTRACE +static char executable_path[PATH_MAX]; + +static void nullpo_error_callback(void *data, const char *msg, int errnum) +{ + ShowError("Error: %s (%d)", msg, errnum); +} + +static int nullpo_print_callback(void *data, uintptr_t pc, const char *filename, int lineno, const char *function) +{ + ShowError("0x%lx %s\n", + (unsigned long) pc, + function == NULL ? "???" : function); + ShowError("\t%s:%d\n", + filename == NULL ? "???" : filename, + lineno); + return 0; +} + +static void nullpo_backtrace_print(struct backtrace_state *state) +{ + backtrace_full(state, 0, nullpo_print_callback, nullpo_error_callback, state); +} + +static bool nullpo_backtrace_get_executable_path(char *buf, size_t length) +{ +#if defined(WIN32) + char *exe_path = NULL; + if (_get_pgmptr(&exe_path) != 0) + return false; + safestrncpy(buf, exe_path, length); + return true; +#elif defined(__sun) + if (length < MAX_PATH) + return false; + if (realpath(getexecname(), buf) == NULL) + return false; + buf[length - 1] = '\0'; + return true; +#elif defined(__linux) || defined(__linux__) + ssize_t len = readlink("/proc/self/exe", buf, length); + if (len <= 0 || len == length) + return false; + buf[len] = '\0'; + return true; +#elif defined(__APPLE__) && defined(__MACH__) + uint32_t len = (uint32_t)length; + if (_NSGetExecutablePath(buf, &len) != 0) + return false; // buffer too small (!) + // resolve symlinks, ., .. if possible + char *canonical_path = realpath(buf, NULL); + if (canonical_path != NULL) { + safestrncpy(buf, canonical_path, length); + free(canonical_path); + } + return true; +#elif defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__) || defined(__bsdi__) || defined(__DragonFly__) + int mib[4]; + mib[0] = CTL_KERN; + mib[1] = KERN_PROC; + mib[2] = KERN_PROC_PATHNAME; + mib[3] = -1; + if (sysctl(mib, 4, buf, &length, NULL, 0) != 0) + return false; + return true; +#endif + return false; +} +#endif // HAVE_LIBBACKTRACE + /** * Reports failed assertions or NULL pointers * @@ -46,12 +134,6 @@ struct nullpo_interface *nullpo; */ static void assert_report(const char *file, int line, const char *func, const char *targetname, const char *title) { -#ifdef HAVE_EXECINFO - void *array[10]; - int size; - char **strings; - int i; -#endif // HAVE_EXECINFO if (file == NULL) file = "??"; @@ -60,21 +142,46 @@ static void assert_report(const char *file, int line, const char *func, const ch ShowError("--- %s --------------------------------------------\n", title); ShowError("%s:%d: '%s' in function `%s'\n", file, line, targetname, func); -#ifdef HAVE_EXECINFO - size = (int)backtrace(array, 10); - strings = backtrace_symbols(array, size); - for (i = 0; i < size; i++) +#ifdef HAVE_LIBBACKTRACE + if (nullpo->backtrace_state != NULL) + nullpo_backtrace_print(nullpo->backtrace_state); +#elif defined(HAVE_EXECINFO) + void *array[10]; + int size = (int)backtrace(array, 10); + char **strings = backtrace_symbols(array, size); + for (int i = 0; i < size; i++) ShowError("%s\n", strings[i]); free(strings); -#endif // HAVE_EXECINFO +#endif // HAVE_LIBBACKTRACE ShowError("--- end %s ----------------------------------------\n", title); } +static void nullpo_init(void) +{ +#ifdef HAVE_LIBBACKTRACE + if (!nullpo_backtrace_get_executable_path(executable_path, sizeof executable_path)) { + safestrncpy(executable_path, "hercules", sizeof executable_path); + } + nullpo->backtrace_state = backtrace_create_state(executable_path, BACKTRACE_SUPPORTS_THREADS, nullpo_error_callback, NULL); +#endif +} + +static void nullpo_final(void) +{ + // FIXME: libbacktrace doesn't provide a backtrace_free_state, and it's unsafe to pass the state to + // backtrace_free (the function itself uses the state internally). For the time being, we'll leave the state + // allocated until program termination as shown in their examples. +} + /** * **/ void nullpo_defaults(void) { nullpo = &nullpo_s; + nullpo->init = nullpo_init; + nullpo->final = nullpo_final; nullpo->assert_report = assert_report; + + nullpo->backtrace_state = NULL; } diff --git a/src/common/nullpo.h b/src/common/nullpo.h index fc5386243..3eb002834 100644 --- a/src/common/nullpo.h +++ b/src/common/nullpo.h @@ -28,6 +28,8 @@ // if need disable asserts checks this line can be commented #define ASSERT_CHECK +struct backtrace_state; + /** Assert */ #if defined(ASSERT_CHECK) @@ -148,7 +150,12 @@ struct nullpo_interface { + void (*init) (void); + void (*final) (void); + void (*assert_report) (const char *file, int line, const char *func, const char *targetname, const char *title); + + struct backtrace_state *backtrace_state; }; #ifdef HERCULES_CORE diff --git a/src/common/packets/packets2020_len_main.h b/src/common/packets/packets2020_len_main.h index 2a6058f65..4b7273775 100644 --- a/src/common/packets/packets2020_len_main.h +++ b/src/common/packets/packets2020_len_main.h @@ -4617,7 +4617,9 @@ packetLen(0x0b6f, 177) #endif // Packet: 0x0b70 -#if PACKETVER >= 20200122 +#if PACKETVER >= 20200318 +packetLen(0x0b70, -1) +#elif PACKETVER >= 20200122 packetLen(0x0b70, 8) #endif @@ -4627,7 +4629,9 @@ packetLen(0x0b71, 177) #endif // Packet: 0x0b72 -#if PACKETVER >= 20200122 +#if PACKETVER >= 20200318 +packetLen(0x0b72, -1) +#elif PACKETVER >= 20200122 packetLen(0x0b72, 4) #endif @@ -4646,5 +4650,30 @@ packetLen(0x0b74, 1026) packetLen(0x0b75, 1026) #endif +// Packet: 0x0b76 +#if PACKETVER >= 20200401 +packetLen(0x0b76, 77) +#endif + +// Packet: 0x0b77 +#if PACKETVER >= 20200506 +packetLen(0x0b77, -1) +#endif + +// Packet: 0x0b78 +#if PACKETVER >= 20200506 +packetLen(0x0b78, -1) +#endif + +// Packet: 0x0b79 +#if PACKETVER >= 20200506 +packetLen(0x0b79, -1) +#endif + +// Packet: 0x0b7a +#if PACKETVER >= 20200506 +packetLen(0x0b7a, -1) +#endif + #endif /* COMMON_PACKETS2020_LEN_MAIN_H */ diff --git a/src/common/packets/packets2020_len_zero.h b/src/common/packets/packets2020_len_zero.h index c1ffbecf6..2aa2ccc96 100644 --- a/src/common/packets/packets2020_len_zero.h +++ b/src/common/packets/packets2020_len_zero.h @@ -4617,7 +4617,9 @@ packetLen(0x0b6f, 177) #endif // Packet: 0x0b70 -#if PACKETVER >= 20200129 +#if PACKETVER >= 20200401 +packetLen(0x0b70, -1) +#elif PACKETVER >= 20200129 packetLen(0x0b70, 8) #endif @@ -4627,7 +4629,9 @@ packetLen(0x0b71, 177) #endif // Packet: 0x0b72 -#if PACKETVER >= 20200129 +#if PACKETVER >= 20200401 +packetLen(0x0b72, -1) +#elif PACKETVER >= 20200129 packetLen(0x0b72, 4) #endif @@ -4646,5 +4650,30 @@ packetLen(0x0b74, 1026) packetLen(0x0b75, 1026) #endif +// Packet: 0x0b76 +#if PACKETVER >= 20200401 +packetLen(0x0b76, 77) +#endif + +// Packet: 0x0b77 +#if PACKETVER >= 20200506 +packetLen(0x0b77, -1) +#endif + +// Packet: 0x0b78 +#if PACKETVER >= 20200506 +packetLen(0x0b78, -1) +#endif + +// Packet: 0x0b79 +#if PACKETVER >= 20200506 +packetLen(0x0b79, -1) +#endif + +// Packet: 0x0b7a +#if PACKETVER >= 20200506 +packetLen(0x0b7a, -1) +#endif + #endif /* COMMON_PACKETS2020_LEN_ZERO_H */ diff --git a/src/login/Makefile.in b/src/login/Makefile.in index 464b33e56..7252eea04 100644 --- a/src/login/Makefile.in +++ b/src/login/Makefile.in @@ -36,6 +36,19 @@ LIBCONFIG_OBJ = $(addprefix $(LIBCONFIG_D)/, libconfig.o grammar.o scanctx.o \ LIBCONFIG_H = $(addprefix $(LIBCONFIG_D)/, libconfig.h grammar.h parsectx.h \ scanctx.h scanner.h strbuf.h wincompat.h) +ifeq (@USE_LIBBACKTRACE@,yes) + LIBBACKTRACE_D = $(THIRDPARTY_D)/libbacktrace + LIBBACKTRACE_OBJ = $(addprefix $(LIBBACKTRACE_D)/, atomic.o backtrace.o \ + dwarf.o @LIBBACKTRACE_FORMAT_FILE@ fileline.o mmapio.o mmap.o posix.o print.o \ + simple.o sort.o state.o) + LIBBACKTRACE_H = $(addprefix $(LIBBACKTRACE_D)/, backtrace.h \ + backtrace-supported.h config.h filenames.h internal.h) +else + LIBBACKTRACE_D = + LIBBACKTRACE_OBJ = + LIBBACKTRACE_H = +endif + MT19937AR_D = $(THIRDPARTY_D)/mt19937ar MT19937AR_OBJ = $(MT19937AR_D)/mt19937ar.o MT19937AR_H = $(MT19937AR_D)/mt19937ar.h @@ -47,7 +60,7 @@ LOGIN_PH = lclif.p.h HAVE_MYSQL=@HAVE_MYSQL@ ifeq ($(HAVE_MYSQL),yes) - LOGIN_SERVER_SQL_DEPENDS=$(LOGIN_OBJ) $(COMMON_D)/obj_all/common.a $(COMMON_D)/obj_sql/common_sql.a $(MT19937AR_OBJ) $(LIBCONFIG_OBJ) $(SYSINFO_INC) + LOGIN_SERVER_SQL_DEPENDS=$(LOGIN_OBJ) $(COMMON_D)/obj_all/common.a $(COMMON_D)/obj_sql/common_sql.a $(MT19937AR_OBJ) $(LIBCONFIG_OBJ) $(LIBBACKTRACE_OBJ) $(SYSINFO_INC) else LOGIN_SERVER_SQL_DEPENDS=needs_mysql endif @@ -86,7 +99,7 @@ help: Makefile: Makefile.in @$(MAKE) -C ../.. src/login/Makefile -$(SYSINFO_INC): $(LOGIN_C) $(LOGIN_PH) $(LOGIN_H) $(COMMON_H) $(CONFIG_H) $(MT19937AR_H) $(LIBCONFIG_H) +$(SYSINFO_INC): $(LOGIN_C) $(LOGIN_PH) $(LOGIN_H) $(COMMON_H) $(CONFIG_H) $(MT19937AR_H) $(LIBCONFIG_H) $(LIBBACKTRACE_H) @echo " MAKE $@" @$(MAKE) -C ../.. sysinfo @@ -107,7 +120,7 @@ login-server: ../../login-server@EXEEXT@ ../../login-server@EXEEXT@: $(LOGIN_SERVER_SQL_DEPENDS) Makefile @echo " LD $(notdir $@)" @$(CC) @STATIC@ @LDFLAGS@ -o ../../login-server@EXEEXT@ $(LOGIN_OBJ) $(COMMON_D)/obj_all/common.a $(COMMON_D)/obj_sql/common_sql.a \ - $(MT19937AR_OBJ) $(LIBCONFIG_OBJ) @LIBS@ @MYSQL_LIBS@ + $(MT19937AR_OBJ) $(LIBCONFIG_OBJ) $(LIBBACKTRACE_OBJ) @LIBS@ @MYSQL_LIBS@ # missing object files $(COMMON_D)/obj_all/common.a: @@ -126,10 +139,14 @@ $(LIBCONFIG_OBJ): @echo " MAKE $@" @$(MAKE) -C $(LIBCONFIG_D) +$(LIBBACKTRACE_OBJ): + @echo " MAKE $@" + @$(MAKE) -C $(LIBBACKTRACE_D) + .SECONDEXPANSION: # login object files -obj_sql/%.o: %.c $$(filter %.p.h, $(LOGIN_PH)) $(LOGIN_H) $(COMMON_H) $(CONFIG_H) $(MT19937AR_H) $(LIBCONFIG_H) | obj_sql +obj_sql/%.o: %.c $$(filter %.p.h, $(LOGIN_PH)) $(LOGIN_H) $(COMMON_H) $(CONFIG_H) $(MT19937AR_H) $(LIBCONFIG_H) $(LIBBACKTRACE_H) | obj_sql @echo " CC $<" @$(CC) @CFLAGS@ @DEFS@ $(COMMON_INCLUDE) $(THIRDPARTY_INCLUDE) @MYSQL_CFLAGS@ @CPPFLAGS@ -c $(OUTPUT_OPTION) $< diff --git a/src/login/account.c b/src/login/account.c index 3632c257a..ec0bc81e8 100644 --- a/src/login/account.c +++ b/src/login/account.c @@ -632,7 +632,8 @@ static void account_mmo_save_accreg2(AccountDB *self, int fd, int account_id, in sql_handle = db->accounts; if (count) { int cursor = 14, i; - char key[SCRIPT_VARNAME_LENGTH+1], sval[254]; + char key[SCRIPT_VARNAME_LENGTH + 1]; + char sval[SCRIPT_STRING_VAR_LENGTH + 1]; for (i = 0; i < count; i++) { unsigned int index; @@ -657,8 +658,8 @@ static void account_mmo_save_accreg2(AccountDB *self, int fd, int account_id, in /* str */ case 2: len = RFIFOB(fd, cursor); - safestrncpy(sval, RFIFOP(fd, cursor + 1), min((int)sizeof(sval), len)); - cursor += len + 1; + safestrncpy(sval, RFIFOP(fd, cursor + 1), min((int)sizeof(sval), len + 1)); + cursor += len + 2; if( SQL_ERROR == SQL->Query(sql_handle, "REPLACE INTO `%s` (`account_id`,`key`,`index`,`value`) VALUES ('%d','%s','%u','%s')", db->global_acc_reg_str_db, account_id, key, index, sval) ) Sql_ShowDebug(sql_handle); break; @@ -719,13 +720,13 @@ static void account_mmo_send_accreg2(AccountDB *self, int fd, int account_id, in plen += 4; SQL->GetData(sql_handle, 2, &data, NULL); - len = strlen(data)+1; + len = strlen(data); - WFIFOB(fd, plen) = (unsigned char)len;/* won't be higher; the column size is 254 */ + WFIFOB(fd, plen) = (unsigned char)len; // Won't be higher; the column size is 255. plen += 1; - safestrncpy(WFIFOP(fd,plen), data, len); - plen += len; + safestrncpy(WFIFOP(fd, plen), data, len + 1); + plen += len + 1; WFIFOW(fd, 14) += 1; diff --git a/src/login/login.c b/src/login/login.c index 4201a8b4e..623457b8a 100644 --- a/src/login/login.c +++ b/src/login/login.c @@ -1406,10 +1406,10 @@ static void login_client_login_mobile_otp_request(int fd, struct login_session_d static void login_char_server_connection_status(int fd, struct login_session_data* sd, uint8 status) __attribute__((nonnull (2))); static void login_char_server_connection_status(int fd, struct login_session_data* sd, uint8 status) { - WFIFOHEAD(fd,3); - WFIFOW(fd,0) = 0x2711; - WFIFOB(fd,2) = status; - WFIFOSET(fd,3); + WFIFOHEAD(fd, 3); + WFIFOW(fd, 0) = 0x2711; + WFIFOB(fd, 2) = status; + WFIFOSET2(fd, 3); } // CA_CHARSERVERCONNECT diff --git a/src/map/Makefile.in b/src/map/Makefile.in index 6dbebb5ad..75093662f 100644 --- a/src/map/Makefile.in +++ b/src/map/Makefile.in @@ -36,6 +36,19 @@ LIBCONFIG_OBJ = $(addprefix $(LIBCONFIG_D)/, libconfig.o grammar.o scanctx.o \ LIBCONFIG_H = $(addprefix $(LIBCONFIG_D)/, libconfig.h grammar.h parsectx.h \ scanctx.h scanner.h strbuf.h wincompat.h) +ifeq (@USE_LIBBACKTRACE@,yes) + LIBBACKTRACE_D = $(THIRDPARTY_D)/libbacktrace + LIBBACKTRACE_OBJ = $(addprefix $(LIBBACKTRACE_D)/, atomic.o backtrace.o \ + dwarf.o @LIBBACKTRACE_FORMAT_FILE@ fileline.o mmapio.o mmap.o posix.o print.o \ + simple.o sort.o state.o) + LIBBACKTRACE_H = $(addprefix $(LIBBACKTRACE_D)/, backtrace.h \ + backtrace-supported.h config.h filenames.h internal.h) +else + LIBBACKTRACE_D = + LIBBACKTRACE_OBJ = + LIBBACKTRACE_H = +endif + MT19937AR_D = $(THIRDPARTY_D)/mt19937ar MT19937AR_OBJ = $(MT19937AR_D)/mt19937ar.o MT19937AR_H = $(MT19937AR_D)/mt19937ar.h @@ -60,7 +73,7 @@ MAP_PH = refine.p.h HAVE_MYSQL=@HAVE_MYSQL@ ifeq ($(HAVE_MYSQL),yes) - MAP_SERVER_SQL_DEPENDS=$(MAP_OBJ) $(COMMON_D)/obj_all/common.a $(COMMON_D)/obj_sql/common_sql.a $(MT19937AR_OBJ) $(LIBCONFIG_OBJ) $(SYSINFO_INC) + MAP_SERVER_SQL_DEPENDS=$(MAP_OBJ) $(COMMON_D)/obj_all/common.a $(COMMON_D)/obj_sql/common_sql.a $(MT19937AR_OBJ) $(LIBCONFIG_OBJ) $(LIBBACKTRACE_OBJ) $(SYSINFO_INC) else MAP_SERVER_SQL_DEPENDS=needs_mysql endif @@ -99,7 +112,7 @@ help: Makefile: Makefile.in @$(MAKE) -C ../.. src/map/Makefile -$(SYSINFO_INC): $(MAP_C) $(MAP_PH) $(MAP_H) $(COMMON_H) $(CONFIG_H) $(MT19937AR_H) $(LIBCONFIG_H) +$(SYSINFO_INC): $(MAP_C) $(MAP_PH) $(MAP_H) $(COMMON_H) $(CONFIG_H) $(MT19937AR_H) $(LIBCONFIG_H) $(LIBBACKTRACE_H) @echo " MAKE $@" @$(MAKE) -C ../.. sysinfo @@ -120,7 +133,7 @@ map-server: ../../map-server@EXEEXT@ ../../map-server@EXEEXT@: $(MAP_SERVER_SQL_DEPENDS) Makefile @echo " LD $(notdir $@)" @$(CC) @STATIC@ @LDFLAGS@ -o ../../map-server@EXEEXT@ $(MAP_OBJ) $(COMMON_D)/obj_all/common.a $(COMMON_D)/obj_sql/common_sql.a \ - $(MT19937AR_OBJ) $(LIBCONFIG_OBJ) @LIBS@ @MYSQL_LIBS@ + $(MT19937AR_OBJ) $(LIBCONFIG_OBJ) $(LIBBACKTRACE_OBJ) @LIBS@ @MYSQL_LIBS@ # missing object files $(COMMON_D)/obj_all/common.a: @@ -139,10 +152,14 @@ $(LIBCONFIG_OBJ): @echo " MAKE $@" @$(MAKE) -C $(LIBCONFIG_D) +$(LIBBACKTRACE_OBJ): + @echo " MAKE $@" + @$(MAKE) -C $(LIBBACKTRACE_D) + .SECONDEXPANSION: # map object files -obj_sql/%.o: %.c $$(filter %.p.h, $(MAP_PH)) $(MAP_H) $(COMMON_H) $(CONFIG_H) $(MT19937AR_H) $(LIBCONFIG_H) | obj_sql +obj_sql/%.o: %.c $$(filter %.p.h, $(MAP_PH)) $(MAP_H) $(COMMON_H) $(CONFIG_H) $(MT19937AR_H) $(LIBCONFIG_H) $(LIBBACKTRACE_H) | obj_sql @echo " CC $<" @$(CC) @CFLAGS@ @DEFS@ $(COMMON_INCLUDE) $(THIRDPARTY_INCLUDE) @MYSQL_CFLAGS@ @CPPFLAGS@ -c $(OUTPUT_OPTION) $< diff --git a/src/map/achievement.c b/src/map/achievement.c index e6a9ae3be..0b0d9749b 100644 --- a/src/map/achievement.c +++ b/src/map/achievement.c @@ -194,6 +194,8 @@ static void achievement_progress_add(struct map_session_data *sd, const struct a // Check if the Achievement is complete. if (achievement->check_complete(sd, ad)) { achievement->validate_achieve(sd, ad->id); + if ((ach = achievement->ensure(sd, ad)) == NULL) + return; ach->completed_at = time(NULL); } @@ -232,6 +234,8 @@ static void achievement_progress_set(struct map_session_data *sd, const struct a if (achievement->check_complete(sd, ad)) { achievement->validate_achieve(sd, ad->id); + if ((ach = achievement->ensure(sd, ad)) == NULL) + return; ach->completed_at = time(NULL); } diff --git a/src/map/atcommand.c b/src/map/atcommand.c index 410cd7af7..76448b237 100644 --- a/src/map/atcommand.c +++ b/src/map/atcommand.c @@ -962,39 +962,10 @@ ACMD(option) *------------------------------------------*/ ACMD(hide) { - if (pc_isinvisible(sd)) { - sd->sc.option &= ~OPTION_INVISIBLE; - if (sd->disguise != -1 ) - status->set_viewdata(&sd->bl, sd->disguise); - else - status->set_viewdata(&sd->bl, sd->status.class); - clif->message(fd, msg_fd(fd,10)); // Invisible: Off - - // increment the number of pvp players on the map - map->list[sd->bl.m].users_pvp++; - - if( map->list[sd->bl.m].flag.pvp && !map->list[sd->bl.m].flag.pvp_nocalcrank ) { - // register the player for ranking calculations - sd->pvp_timer = timer->add( timer->gettick() + 200, pc->calc_pvprank_timer, sd->bl.id, 0 ); - } - //bugreport:2266 - map->foreachinmovearea(clif->insight, &sd->bl, AREA_SIZE, sd->bl.x, sd->bl.y, BL_ALL, &sd->bl); - } else { - clif->clearunit_area(&sd->bl, CLR_OUTSIGHT); - sd->sc.option |= OPTION_INVISIBLE; - sd->vd.class = INVISIBLE_CLASS; - clif->message(fd, msg_fd(fd,11)); // Invisible: On - - // decrement the number of pvp players on the map - map->list[sd->bl.m].users_pvp--; - - if( map->list[sd->bl.m].flag.pvp && !map->list[sd->bl.m].flag.pvp_nocalcrank && sd->pvp_timer != INVALID_TIMER ) { - // unregister the player for ranking - timer->delete( sd->pvp_timer, pc->calc_pvprank_timer ); - sd->pvp_timer = INVALID_TIMER; - } - } - clif->changeoption(&sd->bl); + if (pc_isinvisible(sd)) + pc->unhide(sd, true); + else + pc->hide(sd, true); return true; } @@ -2744,42 +2715,49 @@ ACMD(guildlevelup) return true; } -/*========================================== +/** + * Creates a pet egg in the character's inventory. * - *------------------------------------------*/ + * @code{.herc} + * @makeegg <pet> + * @endcode + * + **/ ACMD(makeegg) { - struct item_data *item_data; - int id, pet_id; - - if (!*message) { - clif->message(fd, msg_fd(fd,1015)); // Please enter a monster/egg name/ID (usage: @makeegg <pet>). + if (*message == '\0') { + clif->message(fd, msg_fd(fd, 1015)); // Please enter a monster/egg name/ID (usage: @makeegg <pet>). return false; } - if ((item_data = itemdb->search_name(message)) != NULL) // for egg name + struct item_data *item_data = itemdb->search_name(message); + int id; + + if (item_data != NULL) { // Egg name. id = item_data->nameid; - else - if ((id = mob->db_searchname(message)) != 0) // for monster name - ; - else - id = atoi(message); + } else { + id = mob->db_searchname(message); // Monster name. - pet_id = pet->search_petDB_index(id, PET_CLASS); - if (pet_id < 0) + if (id == 0) + id = atoi(message); // Egg/monster ID. + } + + int pet_id = pet->search_petDB_index(id, PET_CLASS); + + if (pet_id == INDEX_NOT_FOUND) pet_id = pet->search_petDB_index(id, PET_EGG); - if (pet_id >= 0) { - sd->catch_target_class = pet->db[pet_id].class_; - intif->create_pet( - sd->status.account_id, sd->status.char_id, - pet->db[pet_id].class_, mob->db(pet->db[pet_id].class_)->lv, - pet->db[pet_id].EggID, 0, (short)pet->db[pet_id].intimate, - 100, 0, 1, pet->db[pet_id].jname); - } else { - clif->message(fd, msg_fd(fd,180)); // The monster/egg name/id doesn't exist. + + if (pet_id == INDEX_NOT_FOUND) { + clif->message(fd, msg_fd(fd, 180)); // The monster/egg name/ID doesn't exist. return false; } + sd->catch_target_class = pet->db[pet_id].class_; + intif->create_pet(sd->status.account_id, sd->status.char_id, pet->db[pet_id].class_, + mob->db(pet->db[pet_id].class_)->lv, pet->db[pet_id].EggID, 0, + (short)pet->db[pet_id].intimate, PET_HUNGER_STUFFED, + 0, 1,pet->db[pet_id].jname); + return true; } @@ -2798,72 +2776,90 @@ ACMD(hatch) return true; } -/*========================================== +/** + * Sets a pet's intimacy value. * - *------------------------------------------*/ + * @code{.herc} + * @petfriendly <0-1000> + * @endcode + * + **/ ACMD(petfriendly) { - int friendly; - struct pet_data *pd; - - if (!*message || (friendly = atoi(message)) < 0) { - clif->message(fd, msg_fd(fd,1016)); // Please enter a valid value (usage: @petfriendly <0-1000>). + if (*message == '\0' || (atoi(message) == 0 && isdigit(*message) == 0)) { + clif->message(fd, msg_fd(fd, 1016)); // Please enter a valid value (usage: @petfriendly <0-1000>). return false; } - pd = sd->pd; - if (!pd) { - clif->message(fd, msg_fd(fd,184)); // Sorry, but you have no pet. + int friendly = atoi(message); + + if (friendly < PET_INTIMACY_NONE || friendly > PET_INTIMACY_MAX) { + clif->message(fd, msg_fd(fd, 1016)); // Please enter a valid value (usage: @petfriendly <0-1000>). return false; } - if (friendly < 0 || friendly > 1000) - { - clif->message(fd, msg_fd(fd,37)); // An invalid number was specified. + struct pet_data *pd = sd->pd; + + if (sd->status.pet_id == 0 || pd == NULL) { + clif->message(fd, msg_fd(fd, 184)); // Sorry, but you have no pet. return false; } - if (friendly == pd->pet.intimate) { - clif->message(fd, msg_fd(fd,183)); // Pet intimacy is already at maximum. + if (friendly == pd->pet.intimate && friendly == PET_INTIMACY_MAX) { + clif->message(fd, msg_fd(fd, 183)); // Pet intimacy is already at maximum. return false; } - pet->set_intimate(pd, friendly); - clif->send_petstatus(sd); - clif->message(fd, msg_fd(fd,182)); // Pet intimacy changed. + if (friendly != pd->pet.intimate) { // No need to update the pet's status if intimacy value won't change. + pet->set_intimate(pd, friendly); + clif->send_petstatus(sd); + } + + clif->message(fd, msg_fd(fd, 182)); // Pet intimacy changed. (Send message regardless of value has changed or not.) + return true; } -/*========================================== +/** + * Sets a pet's hunger value. * - *------------------------------------------*/ + * @code{.herc} + * @pethungry <0-100> + * @endcode + * + **/ ACMD(pethungry) { - int hungry; - struct pet_data *pd; - - if (!*message || (hungry = atoi(message)) < 0) { - clif->message(fd, msg_fd(fd,1017)); // Please enter a valid number (usage: @pethungry <0-100>). + if (*message == '\0' || (atoi(message) == 0 && isdigit(*message) == 0)) { + clif->message(fd, msg_fd(fd, 1017)); // Please enter a valid number (usage: @pethungry <0-100>). return false; } - pd = sd->pd; - if (!sd->status.pet_id || !pd) { - clif->message(fd, msg_fd(fd,184)); // Sorry, but you have no pet. + int hungry = atoi(message); + + if (hungry < PET_HUNGER_STARVING || hungry > PET_HUNGER_STUFFED) { + clif->message(fd, msg_fd(fd, 1017)); // Please enter a valid number (usage: @pethungry <0-100>). return false; } - if (hungry < 0 || hungry > 100) { - clif->message(fd, msg_fd(fd,37)); // An invalid number was specified. + + struct pet_data *pd = sd->pd; + + if (sd->status.pet_id == 0 || pd == NULL) { + clif->message(fd, msg_fd(fd, 184)); // Sorry, but you have no pet. return false; } - if (hungry == pd->pet.hungry) { - clif->message(fd, msg_fd(fd,186)); // Pet hunger is already at maximum. + + if (hungry == pd->pet.hungry && hungry == PET_HUNGER_STUFFED) { + clif->message(fd, msg_fd(fd, 186)); // Pet hunger is already at maximum. return false; } - pd->pet.hungry = hungry; - clif->send_petstatus(sd); - clif->message(fd, msg_fd(fd,185)); // Pet hunger changed. + if (hungry != pd->pet.hungry) { // No need to update the pet's status if hunger value won't change. + pd->pet.hungry = hungry; + clif->send_petstatus(sd); + } + + clif->message(fd, msg_fd(fd, 185)); // Pet hunger changed. (Send message regardless of value has changed or not.) return true; } @@ -4503,6 +4499,7 @@ ACMD(loadnpc) // add to list of script sources and run it npc->addsrcfile(message); npc->parsesrcfile(message,true); + npc->motd = npc->name2id("HerculesMOTD"); npc->read_event_script(); clif->message(fd, msg_fd(fd,262)); @@ -4537,6 +4534,7 @@ ACMD(unloadnpc) npc->unload_duplicates(nd, (flag != 0)); npc->unload(nd, true, (flag != 0)); + npc->motd = npc->name2id("HerculesMOTD"); npc->read_event_script(); clif->message(fd, msg_fd(fd, 112)); /// Npc Disabled. return true; @@ -4592,6 +4590,7 @@ ACMD(reloadnpc) clif->message(fd, msg_fd(fd, 1386)); /// File unloaded. Be aware that... npc->addsrcfile(file_path); npc->parsesrcfile(file_path, true); + npc->motd = npc->name2id("HerculesMOTD"); npc->read_event_script(); clif->message(fd, msg_fd(fd, 262)); /// Script loaded. return true; @@ -5671,6 +5670,8 @@ ACMD(useskill) return false; } + pc->autocast_clear(sd); + if (skill_id >= HM_SKILLBASE && skill_id < HM_SKILLBASE+MAX_HOMUNSKILL && sd->hd && homun_alive(sd->hd)) // (If used with @useskill, put the homunc as dest) bl = &sd->hd->bl; @@ -7865,39 +7866,61 @@ ACMD(monsterignore) return true; } -/*========================================== - * @fakename - * => Gives your character a fake name. [Valaris] - *------------------------------------------*/ + +/** + * Temporarily changes the character's name to the specified string. + * + * @code{.herc} + * @fakename {<options>} {<fake_name>} + * @endcode + * + **/ ACMD(fakename) { - if (!*message) - { - if (sd->fakename[0]) - { + if (*message == '\0') { + if (sd->fakename[0] != '\0') { sd->fakename[0] = '\0'; + sd->fakename_options = FAKENAME_OPTION_NONE; clif->blname_ack(0, &sd->bl); - if( sd->disguise ) + + if (sd->disguise != 0) // Another packet should be sent so the client updates the name for sd. clif->blname_ack(sd->fd, &sd->bl); - clif->message(sd->fd, msg_fd(fd,1307)); // Returned to real name. + + clif->message(sd->fd, msg_fd(fd, 1307)); // Returned to real name. return true; } - clif->message(sd->fd, msg_fd(fd,1308)); // You must enter a name. + clif->message(sd->fd, msg_fd(fd, 1308)); // You must enter a name. return false; } - if (strlen(message) < 2) - { - clif->message(sd->fd, msg_fd(fd,1309)); // Fake name must be at least two characters. + int options = FAKENAME_OPTION_NONE; + char buf[NAME_LENGTH] = {'\0'}; + const char *fake_name = NULL; + + if (sscanf(message, "%d %23[^\n]", &options, buf) == 2) { + fake_name = buf; + } else { + options = FAKENAME_OPTION_NONE; + fake_name = message; + } + + if (strlen(fake_name) < 2) { + clif->message(sd->fd, msg_fd(fd, 1309)); // Fake name must be at least two characters. return false; } - safestrncpy(sd->fakename, message, sizeof(sd->fakename)); + if (options < FAKENAME_OPTION_NONE) + options = FAKENAME_OPTION_NONE; + + safestrncpy(sd->fakename, fake_name, sizeof(sd->fakename)); + sd->fakename_options = options; clif->blname_ack(0, &sd->bl); - if (sd->disguise) // Another packet should be sent so the client updates the name for sd + + if (sd->disguise != 0) // Another packet should be sent so the client updates the name for sd. clif->blname_ack(sd->fd, &sd->bl); - clif->message(sd->fd, msg_fd(fd,1310)); // Fake name enabled. + + clif->message(sd->fd, msg_fd(fd, 1310)); // Fake name enabled. return true; } @@ -8896,13 +8919,17 @@ ACMD(accinfo) /* [Ind] */ ACMD(set) { - char reg[SCRIPT_VARNAME_LENGTH+1], val[254]; + char reg[SCRIPT_VARNAME_LENGTH + 1]; + char val[SCRIPT_STRING_VAR_LENGTH + 1]; struct script_data* data; int toset = 0; bool is_str = false; size_t len; - if (!*message || (toset = sscanf(message, "%32s %253[^\n]", reg, val)) < 1) { + char format[20]; + safesnprintf(format, sizeof(format), "%%%ds %%%d[^\\n]", SCRIPT_VARNAME_LENGTH, SCRIPT_STRING_VAR_LENGTH); + + if (*message == '\0' || (toset = sscanf(message, format, reg, val)) < 1) { clif->message(fd, msg_fd(fd,1367)); // Usage: @set <variable name> <value> clif->message(fd, msg_fd(fd,1368)); // Usage: ex. "@set PoringCharVar 50" clif->message(fd, msg_fd(fd,1369)); // Usage: ex. "@set PoringCharVarSTR$ Super Duper String" @@ -10545,9 +10572,9 @@ static bool atcommand_exec(const int fd, struct map_session_data *sd, const char clif->message(fd, msg_fd(fd,143)); return false; } + if (sd->block_action.commands) // *pcblock script command + return false; } - if (sd->block_action.commands) // *pcblock script command - return false; if (*message == atcommand->char_symbol) is_atcommand = false; diff --git a/src/map/atcommand.h b/src/map/atcommand.h index 66827b3b2..f3a5155ab 100644 --- a/src/map/atcommand.h +++ b/src/map/atcommand.h @@ -54,6 +54,16 @@ typedef enum { COMMAND_CHARCOMMAND = 2, } AtCommandType; +/** @fakename display option flags **/ +enum fakename_option_flag { + FAKENAME_OPTION_NONE = 0x00, + FAKENAME_OPTION_SHOW_PARTYNAME = 0x01, + FAKENAME_OPTION_SHOW_GUILDNAME = 0x02, + FAKENAME_OPTION_SHOW_GUILDPOSITION = 0x04, + FAKENAME_OPTION_SHOW_CLANPOSITION = 0x08, + FAKENAME_OPTION_SHOW_TITLE = 0x10 +}; + /** * Typedef **/ diff --git a/src/map/battle.c b/src/map/battle.c index 985d2bca4..236ed70b7 100644 --- a/src/map/battle.c +++ b/src/map/battle.c @@ -2832,18 +2832,18 @@ static int64 battle_calc_damage(struct block_list *src, struct block_list *bl, s d->dmg_lv = ATK_BLOCK; if(src_skill_id == MH_STEINWAND){ if (--group->val2<=0) - skill->del_unitgroup(group,ALC_MARK); + skill->del_unitgroup(group); if( (group->val3 - damage) > 0 ) group->val3 -= (int)cap_value(damage, INT_MIN, INT_MAX); else - skill->del_unitgroup(group,ALC_MARK); + skill->del_unitgroup(group); return 0; } if( skill_id == SO_ELEMENTAL_SHIELD ) { if ( ( group->val2 - damage) > 0 ) { group->val2 -= (int)cap_value(damage,INT_MIN,INT_MAX); } else - skill->del_unitgroup(group,ALC_MARK); + skill->del_unitgroup(group); return 0; } /** @@ -2853,12 +2853,12 @@ static int64 battle_calc_damage(struct block_list *src, struct block_list *bl, s if ( ( group->val2 - damage) > 0 ) { group->val2 -= (int)cap_value(damage,INT_MIN,INT_MAX); } else - skill->del_unitgroup(group,ALC_MARK); + skill->del_unitgroup(group); if (--group->val3<=0) - skill->del_unitgroup(group,ALC_MARK); + skill->del_unitgroup(group); #else if (--group->val2<=0) - skill->del_unitgroup(group,ALC_MARK); + skill->del_unitgroup(group); #endif return 0; } @@ -3750,7 +3750,7 @@ static struct Damage battle_calc_magic_attack(struct block_list *src, struct blo if (sc){ if( sc->data[SC_TELEKINESIS_INTENSE] && s_ele == ELE_GHOST ) - ad.damage += sc->data[SC_TELEKINESIS_INTENSE]->val3; + ad.damage += ad.damage * sc->data[SC_TELEKINESIS_INTENSE]->val3 / 100; } switch(skill_id){ case MG_FIREBOLT: @@ -4124,13 +4124,6 @@ static struct Damage battle_calc_misc_attack(struct block_list *src, struct bloc case NPC_EVILLAND: md.damage = skill->calc_heal(src,target,skill_id,skill_lv,false); break; - case RK_DRAGONBREATH: - case RK_DRAGONBREATH_WATER: - md.damage = ((status_get_hp(src) / 50) + (status_get_max_sp(src) / 4)) * skill_lv; - RE_LVL_MDMOD(150); - if (sd) md.damage = md.damage * (95 + 5 * pc->checkskill(sd,RK_DRAGONTRAINING)) / 100; - md.flag |= BF_LONG|BF_WEAPON; - break; /** * Ranger **/ @@ -4958,6 +4951,12 @@ static struct Damage battle_calc_weapon_attack(struct block_list *src, struct bl break; } break; + case RK_DRAGONBREATH: + case RK_DRAGONBREATH_WATER: + wd.damage = ((status_get_hp(src) / 50) + (status_get_max_sp(src) / 4)) * skill_lv; + wd.damage = wd.damage * status->get_lv(src) / 150; + if (sd) wd.damage = wd.damage * (95 + 5 * pc->checkskill(sd, RK_DRAGONTRAINING)) / 100; + break; default: { i = (flag.cri @@ -5928,21 +5927,21 @@ static void battle_reflect_damage(struct block_list *target, struct block_list * delay += 100;/* gradual increase so the numbers don't clip in the client */ } if( sc->data[SC_LG_REFLECTDAMAGE] && rnd()%100 < (30 + 10*sc->data[SC_LG_REFLECTDAMAGE]->val1) ) { - bool change = false; - NORMALIZE_RDAMAGE(damage * sc->data[SC_LG_REFLECTDAMAGE]->val2 / 100); trdamage -= rdamage;/* wont count towards total */ - if( sd && !sd->state.autocast ) { - change = true; - sd->state.autocast = 1; + enum autocast_type ac_type; + + if (sd != NULL) { + ac_type = sd->auto_cast_current.type; + sd->auto_cast_current.type = AUTOCAST_TEMP; } map->foreachinshootrange(battle->damage_area,target,skill->get_splash(LG_REFLECTDAMAGE,1),BL_CHAR,tick,target,delay,wd->dmotion,rdamage,status_get_race(target)); - if( change ) - sd->state.autocast = 0; + if (sd != NULL) + sd->auto_cast_current.type = ac_type; delay += 150;/* gradual increase so the numbers don't clip in the client */ @@ -6132,7 +6131,7 @@ static int battle_damage_area(struct block_list *bl, va_list ap) else status_fix_damage(src,bl,damage,0); clif->damage(bl,bl,amotion,dmotion,damage,1,BDT_ENDURE,0); - if (src->type != BL_PC || !BL_UCCAST(BL_PC, src)->state.autocast) + if (src->type != BL_PC || BL_UCCAST(BL_PC, src)->auto_cast_current.type != AUTOCAST_TEMP) skill->additional_effect(src, bl, CR_REFLECTSHIELD, 1, BF_WEAPON|BF_SHORT|BF_NORMAL,ATK_DEF,tick); map->freeblock_unlock(); } @@ -6341,7 +6340,7 @@ static enum damage_lv battle_weapon_attack(struct block_list *src, struct block_ skill_id = AB_DUPLELIGHT_MELEE; else skill_id = AB_DUPLELIGHT_MAGIC; - skill->attack(skill->get_type(skill_id), src, src, target, skill_id, sc->data[SC_DUPLELIGHT]->val1, tick, SD_LEVEL); + skill->attack(skill->get_type(skill_id, sc->data[SC_DUPLELIGHT]->val1), src, src, target, skill_id, sc->data[SC_DUPLELIGHT]->val1, tick, SD_LEVEL); } } @@ -6456,10 +6455,10 @@ static enum damage_lv battle_weapon_attack(struct block_list *src, struct block_ } } - sd->state.autocast = 1; + sd->auto_cast_current.type = AUTOCAST_TEMP; skill->consume_requirement(sd,r_skill,r_lv,3); skill->castend_type(type, src, target, r_skill, r_lv, tick, flag); - sd->state.autocast = 0; + sd->auto_cast_current.type = AUTOCAST_NONE; sd->ud.canact_tick = tick + skill->delay_fix(src, r_skill, r_lv); clif->status_change(src, status->get_sc_icon(SC_POSTDELAY), status->get_sc_relevant_bl_types(SC_POSTDELAY), 1, skill->delay_fix(src, r_skill, r_lv), 0, 0, 1); } @@ -7085,16 +7084,15 @@ static const struct battle_data { { "guild_emperium_check", &battle_config.guild_emperium_check, 1, 0, 1, }, { "guild_exp_limit", &battle_config.guild_exp_limit, 50, 0, 99, }, { "player_invincible_time", &battle_config.pc_invincible_time, 5000, 0, INT_MAX, }, + { "pet_catch_rate_official_formula", &battle_config.pet_catch_rate_official_formula, 1, 0, 1, }, { "pet_catch_rate", &battle_config.pet_catch_rate, 100, 0, INT_MAX, }, { "pet_rename", &battle_config.pet_rename, 0, 0, 1, }, { "pet_friendly_rate", &battle_config.pet_friendly_rate, 100, 0, INT_MAX, }, { "pet_hungry_delay_rate", &battle_config.pet_hungry_delay_rate, 100, 10, INT_MAX, }, - { "pet_hungry_friendly_decrease", &battle_config.pet_hungry_friendly_decrease, 5, 0, INT_MAX, }, { "pet_status_support", &battle_config.pet_status_support, 0, 0, 1, }, { "pet_attack_support", &battle_config.pet_attack_support, 0, 0, 1, }, { "pet_damage_support", &battle_config.pet_damage_support, 0, 0, 1, }, { "pet_support_min_friendly", &battle_config.pet_support_min_friendly, 900, 0, 950, }, - { "pet_equip_min_friendly", &battle_config.pet_equip_min_friendly, 900, 0, 950, }, { "pet_support_rate", &battle_config.pet_support_rate, 100, 0, INT_MAX, }, { "pet_attack_exp_to_master", &battle_config.pet_attack_exp_to_master, 0, 0, 1, }, { "pet_attack_exp_rate", &battle_config.pet_attack_exp_rate, 100, 0, INT_MAX, }, diff --git a/src/map/battle.h b/src/map/battle.h index 2e710f7f8..bb907d5b9 100644 --- a/src/map/battle.h +++ b/src/map/battle.h @@ -212,16 +212,15 @@ struct Battle_Config { int guild_aura; int pc_invincible_time; + int pet_catch_rate_official_formula; int pet_catch_rate; int pet_rename; int pet_friendly_rate; int pet_hungry_delay_rate; - int pet_hungry_friendly_decrease; int pet_status_support; int pet_attack_support; int pet_damage_support; int pet_support_min_friendly; //[Skotlex] - int pet_equip_min_friendly; int pet_support_rate; int pet_attack_exp_to_master; int pet_attack_exp_rate; diff --git a/src/map/chrif.c b/src/map/chrif.c index b131907e0..ac5fb4dd0 100644 --- a/src/map/chrif.c +++ b/src/map/chrif.c @@ -863,6 +863,8 @@ static bool chrif_changesex(struct map_session_data *sd, bool change_account) nullpo_retr(false, sd); chrif_check(false); + chrif->save(sd, 0); + WFIFOHEAD(chrif->fd,44); WFIFOW(chrif->fd,0) = 0x2b0e; WFIFOL(chrif->fd,2) = sd->status.account_id; diff --git a/src/map/clif.c b/src/map/clif.c index c9e018f73..6d67b5114 100644 --- a/src/map/clif.c +++ b/src/map/clif.c @@ -936,19 +936,25 @@ static void clif_clearunit_area(struct block_list *bl, enum clr_type type) static int clif_clearunit_delayed_sub(int tid, int64 tick, int id, intptr_t data) { struct block_list *bl = (struct block_list *)data; + nullpo_ret(bl); + Assert_ret(bl->m >= 0 && bl->m < map->count); + if (map->list[bl->m].block == NULL) { + // avoid error report for missing/removed map + ers_free(clif->delay_clearunit_ers, bl); + return 0; + } clif->clearunit_area(bl, (enum clr_type) id); - ers_free(clif->delay_clearunit_ers,bl); + ers_free(clif->delay_clearunit_ers, bl); return 0; } static void clif_clearunit_delayed(struct block_list *bl, enum clr_type type, int64 tick) { - struct block_list *tbl; - nullpo_retv(bl); - tbl = ers_alloc(clif->delay_clearunit_ers, struct block_list); - memcpy (tbl, bl, sizeof (struct block_list)); - timer->add(tick, clif->clearunit_delayed_sub, (int)type, (intptr_t)tbl); + Assert_retv(bl->type == BL_MOB); + struct mob_data *md = ers_alloc(clif->delay_clearunit_ers, struct mob_data); + memcpy (md, bl, sizeof (struct mob_data)); + timer->add(tick, clif->clearunit_delayed_sub, (int)type, (intptr_t)md); } /// Gets weapon view info from sd's inventory_data and points (*rhand,*lhand) @@ -1031,6 +1037,7 @@ static void clif_set_unit_idle2(struct block_list *bl, struct map_session_data * int g_id = status->get_guild_id(bl); nullpo_retv(bl); + nullpo_retv(vd); sd = BL_CAST(BL_PC, bl); p.PacketType = idle_unit2Type; @@ -1087,6 +1094,7 @@ static void clif_set_unit_idle(struct block_list *bl, struct map_session_data *t int g_id = status->get_guild_id(bl); nullpo_retv(bl); + nullpo_retv(vd); #if PACKETVER < 20091103 if (!pc->db_checkid(vd->class)) { @@ -1197,6 +1205,7 @@ static void clif_spawn_unit2(struct block_list *bl, enum send_target target) int g_id = status->get_guild_id(bl); nullpo_retv(bl); + nullpo_retv(vd); sd = BL_CAST(BL_PC, bl); p.PacketType = spawn_unit2Type; @@ -1244,6 +1253,7 @@ static void clif_spawn_unit(struct block_list *bl, enum send_target target) int g_id = status->get_guild_id(bl); nullpo_retv(bl); + nullpo_retv(vd); #if PACKETVER < 20091103 if (!pc->db_checkid(vd->class)) { @@ -1357,6 +1367,7 @@ static void clif_set_unit_walking(struct block_list *bl, struct map_session_data nullpo_retv(bl); nullpo_retv(ud); + nullpo_retv(vd); sd = BL_CAST(BL_PC, bl); @@ -6766,7 +6777,7 @@ static void clif_item_skill(struct map_session_data *sd, uint16 skill_id, uint16 struct PACKET_ZC_AUTORUN_SKILL *p = WFIFOP(fd, 0); int type = skill->get_inf(skill_id); - if (sd->state.itemskill_castonself == 1 && skill->is_item_skill(sd, skill_id, skill_lv)) + if (sd->auto_cast_current.itemskill_cast_on_self && sd->auto_cast_current.type == AUTOCAST_ITEM) type = INF_SELF_SKILL; p->packetType = HEADER_ZC_AUTORUN_SKILL; @@ -9382,82 +9393,98 @@ static void clif_send_selforarea(int fd, struct block_list *bl, const void *buf, } } -/// Updates the object's (bl) name on client. -/// 0095 <id>.L <char name>.24B (ZC_ACK_REQNAME) -/// 0195 <id>.L <char name>.24B <party name>.24B <guild name>.24B <position name>.24B (ZC_ACK_REQNAMEALL) -/// 0A30 <id>.L <char name>.24B <party name>.24B <guild name>.24B <position name>.24B <title id>.L (ZC_ACK_REQNAMEALL2) +/** + * Updates a character's name on client. + * + * @code + * 0095 <id>.L <char name>.24B (ZC_ACK_REQNAME) + * 0195 <id>.L <char name>.24B <party name>.24B <guild name>.24B <position name>.24B (ZC_ACK_REQNAMEALL) + * 0A30 <id>.L <char name>.24B <party name>.24B <guild name>.24B <position name>.24B <title id>.L (ZC_ACK_REQNAMEALL2) + * @endcode + * + * @param fd The incoming file descriptor. + * @param bl The related character's block list. + * + **/ static void clif_pcname_ack(int fd, struct block_list *bl) { nullpo_retv(bl); Assert_retv(bl->type == BL_PC); - struct PACKET_ZC_ACK_REQNAMEALL packet = { 0 }; - int len = sizeof(struct PACKET_ZC_ACK_REQNAMEALL); + struct PACKET_ZC_ACK_REQNAMEALL packet = {0}; + packet.packet_id = HEADER_ZC_ACK_REQNAMEALL; packet.gid = bl->id; const struct map_session_data *ssd = BL_UCCAST(BL_PC, bl); - if (ssd->fakename[0] != '\0') { - packet.packet_id = reqName; - len = sizeof(struct packet_reqname_ack); - } else { - packet.packet_id = HEADER_ZC_ACK_REQNAMEALL; - len = sizeof(struct PACKET_ZC_ACK_REQNAMEALL); - } - - //Requesting your own "shadow" name. [Skotlex] - if (ssd->fd == fd && ssd->disguise != -1) { + if (ssd->fd == fd && ssd->disguise != -1) // Requesting your own "shadow" name. packet.gid = -bl->id; - } - if (ssd->fakename[0] != '\0') { + if (ssd->fakename[0] != '\0') memcpy(packet.name, ssd->fakename, NAME_LENGTH); - } else { -#if PACKETVER_MAIN_NUM >= 20150225 || PACKETVER_RE_NUM >= 20141126 || defined(PACKETVER_ZERO) - // Title System [Dastgir/Hercules] - if (ssd->status.title_id > 0) { - packet.title_id = ssd->status.title_id; - } -#endif + else 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; - ARR_FIND(0, g->max_member, i, g->member[i].account_id == ssd->status.account_id && g->member[i].char_id == ssd->status.char_id); - if (i < g->max_member) - ps = g->member[i].position; - } - } + const struct party_data *p = NULL; - if (!battle_config.display_party_name && g == NULL) { - // do not display party unless the player is also in a guild - p = NULL; - } + if (ssd->status.party_id != 0) + p = party->search(ssd->status.party_id); + + const struct guild *g = NULL; + int pos_idx = INDEX_NOT_FOUND; + + if (ssd->status.guild_id != 0 && (g = ssd->guild) != NULL) { + int i; + int acc_id = ssd->status.account_id; + int chr_id = ssd->status.char_id; + + ARR_FIND(0, g->max_member, i, g->member[i].account_id == acc_id && g->member[i].char_id == chr_id); + + if (i < g->max_member) + pos_idx = g->member[i].position; + } - if (p != NULL) { + if (battle_config.display_party_name == 0 && g == NULL) + p = NULL; // Do not display party name, unless the character is also in a guild. + + if (p != NULL) { + if ((ssd->fakename[0] != '\0' && (ssd->fakename_options & FAKENAME_OPTION_SHOW_PARTYNAME) != 0) + || ssd->fakename[0] == '\0') { memcpy(packet.party_name, p->party.name, NAME_LENGTH); } + } - if (g != NULL && ps >= 0 && ps < MAX_GUILDPOSITION) { + if (g != NULL && pos_idx >= 0 && pos_idx < MAX_GUILDPOSITION) { + if ((ssd->fakename[0] != '\0' && (ssd->fakename_options & FAKENAME_OPTION_SHOW_GUILDNAME) != 0) + || ssd->fakename[0] == '\0') { 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) { + + if ((ssd->fakename[0] != '\0' && (ssd->fakename_options & FAKENAME_OPTION_SHOW_GUILDPOSITION) != 0) + || ssd->fakename[0] == '\0') { + memcpy(packet.position_name, g->position[pos_idx].name, NAME_LENGTH); + } + } else if (ssd->status.clan_id != 0) { + struct clan *c = clan->search(ssd->status.clan_id); + + if (c != 0) { + if ((ssd->fakename[0] != '\0' && (ssd->fakename_options & FAKENAME_OPTION_SHOW_CLANPOSITION) != 0) + || ssd->fakename[0] == '\0') { memcpy(packet.position_name, c->name, NAME_LENGTH); } } } - clif->send_selforarea(fd, bl, &packet, len); +#if PACKETVER_MAIN_NUM >= 20150225 || PACKETVER_RE_NUM >= 20141126 || defined(PACKETVER_ZERO) // Title system. + if (ssd->status.title_id > 0) { + if ((ssd->fakename[0] != '\0' && (ssd->fakename_options & FAKENAME_OPTION_SHOW_TITLE) != 0) + || ssd->fakename[0] == '\0') { + packet.title_id = ssd->status.title_id; + } + } +#endif + + clif->send_selforarea(fd, bl, &packet, sizeof(struct PACKET_ZC_ACK_REQNAMEALL)); } /// Updates the object's (bl) name on client. @@ -9706,10 +9733,22 @@ static void clif_elemname_ack(int fd, struct block_list *bl) clif->send_selforarea(fd, bl, &packet, sizeof(struct PACKET_ZC_ACK_REQNAME_TITLE)); } +static void clif_skillname_ack(int fd, struct block_list *bl) +{ +} + +static void clif_itemname_ack(int fd, struct block_list *bl) +{ + nullpo_retv(bl); + ShowError("clif_itemname_ack: bad type %u(%d)\n", bl->type, bl->id); + Assert_retv(0); +} + static void clif_unknownname_ack(int fd, struct block_list *bl) { nullpo_retv(bl); ShowError("clif_blname_ack: bad type %u(%d)\n", bl->type, bl->id); + Assert_retv(0); } static void clif_blname_ack(int fd, struct block_list *bl) @@ -9741,62 +9780,102 @@ static void clif_blname_ack(int fd, struct block_list *bl) case BL_ELEM: clif->elemname_ack(fd, bl); break; + case BL_ITEM: + clif->itemname_ack(fd, bl); + break; + case BL_SKILL: + clif->skillname_ack(fd, bl); + break; default: clif->unknownname_ack(fd, bl); break; } } -//Used to update when a char leaves a party/guild. [Skotlex] -//Needed because when you send a 0x95 packet, the client will not remove the cached party/guild info that is not sent. +/** + * Updates a character's name on client when leaving a party/guild. + * + * @code + * 0195 <id>.L <char name>.24B <party name>.24B <guild name>.24B <position name>.24B (ZC_ACK_REQNAMEALL) + * 0A30 <id>.L <char name>.24B <party name>.24B <guild name>.24B <position name>.24B <title id>.L (ZC_ACK_REQNAMEALL2) + * @endcode + * + * @param ssd The related character. + * + **/ static void clif_charnameupdate(struct map_session_data *ssd) { - int ps = -1; - struct party_data *p = NULL; - struct guild *g = NULL; - struct PACKET_ZC_ACK_REQNAMEALL packet = { 0 }; - nullpo_retv(ssd); - if (ssd->fakename[0]) - return; //No need to update as the party/guild was not displayed anyway. - + struct PACKET_ZC_ACK_REQNAMEALL packet = {0}; packet.packet_id = HEADER_ZC_ACK_REQNAMEALL; packet.gid = ssd->bl.id; - memcpy(packet.name, ssd->status.name, NAME_LENGTH); + if (ssd->fakename[0] != '\0') + memcpy(packet.name, ssd->fakename, NAME_LENGTH); + else + memcpy(packet.name, ssd->status.name, NAME_LENGTH); - if (!battle_config.display_party_name) { - if (ssd->status.party_id > 0 && ssd->status.guild_id > 0 && (g = ssd->guild) != NULL) - p = party->search(ssd->status.party_id); - } else { - if (ssd->status.party_id > 0) - p = party->search(ssd->status.party_id); - } + struct party_data *p = NULL; - if (ssd->status.guild_id > 0 && (g = ssd->guild) != NULL) { + if (ssd->status.party_id != 0) + p = party->search(ssd->status.party_id); + + struct guild *g = NULL; + int pos_idx = INDEX_NOT_FOUND; + + if (ssd->status.guild_id != 0 && (g = ssd->guild) != NULL) { int i; - ARR_FIND(0, g->max_member, i, g->member[i].account_id == ssd->status.account_id && g->member[i].char_id == ssd->status.char_id); - if( i < g->max_member ) ps = g->member[i].position; + int acc_id = ssd->status.account_id; + int chr_id = ssd->status.char_id; + + ARR_FIND(0, g->max_member, i, g->member[i].account_id == acc_id && g->member[i].char_id == chr_id); + + if (i < g->max_member) + pos_idx = g->member[i].position; } - if (p != NULL) - memcpy(packet.party_name, p->party.name, NAME_LENGTH); + if (battle_config.display_party_name == 0 && g == NULL) + p = NULL; // Do not display party name, unless the character is also in a guild. - if (g != NULL && ps >= 0 && ps < MAX_GUILDPOSITION) { - memcpy(packet.guild_name, g->name,NAME_LENGTH); - memcpy(packet.position_name, g->position[ps].name, NAME_LENGTH); + if (p != NULL) { + if ((ssd->fakename[0] != '\0' && (ssd->fakename_options & FAKENAME_OPTION_SHOW_PARTYNAME) != 0) + || ssd->fakename[0] == '\0') { + memcpy(packet.party_name, p->party.name, NAME_LENGTH); + } } -#if PACKETVER_MAIN_NUM >= 20150225 || PACKETVER_RE_NUM >= 20141126 || defined(PACKETVER_ZERO) - // Achievement System [Dastgir/Hercules] + if (g != NULL && pos_idx >= 0 && pos_idx < MAX_GUILDPOSITION) { + if ((ssd->fakename[0] != '\0' && (ssd->fakename_options & FAKENAME_OPTION_SHOW_GUILDNAME) != 0) + || ssd->fakename[0] == '\0') { + memcpy(packet.guild_name, g->name,NAME_LENGTH); + } + + if ((ssd->fakename[0] != '\0' && (ssd->fakename_options & FAKENAME_OPTION_SHOW_GUILDPOSITION) != 0) + || ssd->fakename[0] == '\0') { + memcpy(packet.position_name, g->position[pos_idx].name, NAME_LENGTH); + } + } else if (ssd->status.clan_id != 0) { + struct clan *c = clan->search(ssd->status.clan_id); + + if (c != 0) { + if ((ssd->fakename[0] != '\0' && (ssd->fakename_options & FAKENAME_OPTION_SHOW_CLANPOSITION) != 0) + || ssd->fakename[0] == '\0') { + memcpy(packet.position_name, c->name, NAME_LENGTH); + } + } + } + +#if PACKETVER_MAIN_NUM >= 20150225 || PACKETVER_RE_NUM >= 20141126 || defined(PACKETVER_ZERO) // Title system. if (ssd->status.title_id > 0) { - packet.title_id = ssd->status.title_id; + if ((ssd->fakename[0] != '\0' && (ssd->fakename_options & FAKENAME_OPTION_SHOW_TITLE) != 0) + || ssd->fakename[0] == '\0') { + packet.title_id = ssd->status.title_id; + } } #endif - // Update nearby clients - clif->send(&packet, sizeof(packet), &ssd->bl, AREA); + clif->send(&packet, sizeof(packet), &ssd->bl, AREA); // Update nearby clients. } /// Taekwon Jump (TK_HIGHJUMP) effect (ZC_HIGHJUMP). @@ -10321,7 +10400,8 @@ static const char *clif_process_chat_message(struct map_session_data *sd, const * @param[in] sd The source character. * @param[in] packet The packet data. * @param[out] out_name The parsed target name buffer (must be a valid - * buffer of size NAME_LENGTH). + * buffer of size NAME_LENGTH + 1 because the client + * can send 24 characters without NULL terminator). * @param[out] out_message The output message buffer (must be a valid buffer). * @param[in] out_messagelen The size of out_message. * @retval true if the validation succeeded and the message is a chat message. @@ -10331,7 +10411,7 @@ static const char *clif_process_chat_message(struct map_session_data *sd, const */ static bool clif_process_whisper_message(struct map_session_data *sd, const struct packet_whisper_message *packet, char *out_name, char *out_message, int out_messagelen) { - int namelen = 0, messagelen = 0; + int messagelen = 0; nullpo_retr(false, sd); nullpo_retr(false, packet); @@ -10344,15 +10424,6 @@ static bool clif_process_whisper_message(struct map_session_data *sd, const stru return false; } - // validate name - namelen = (int)strnlen(packet->name, NAME_LENGTH-1); // name length (w/o zero byte) - - if (packet->name[namelen] != '\0') { - // only restriction is that the name must be zero-terminated - ShowWarning("clif_process_whisper_message: Player '%s' sent an unterminated name!\n", sd->status.name); - return false; - } - #if PACKETVER >= 20151001 // Packet doesn't include a NUL terminator messagelen = packet->packet_len - NAME_LENGTH - 4; @@ -10371,7 +10442,7 @@ static bool clif_process_whisper_message(struct map_session_data *sd, const stru return false; } - safestrncpy(out_name, packet->name, namelen+1); // [!] packet->name is not NUL terminated + safestrncpy(out_name, packet->name, NAME_LENGTH + 1); // [!] packet->name is not NUL terminated safestrncpy(out_message, packet->message, messagelen+1); // [!] packet->message is not necessarily NUL terminated if (!pc->process_chat_message(sd, out_message)) @@ -10539,51 +10610,60 @@ static void clif_parse_WantToConnection(int fd, struct map_session_data *sd) chrif->authreq(sd,false); } +/** + * Notification from the client, that it has finished map loading and is about to display player's character. (CZ_NOTIFY_ACTORINIT) + * + * @code + * 007d + * @endcode + * + * @param fd The incoming file descriptor. + * @param sd The related character. + * + **/ static void clif_parse_LoadEndAck(int fd, struct map_session_data *sd) __attribute__((nonnull (2))); -/// Notification from the client, that it has finished map loading and is about to display player's character (CZ_NOTIFY_ACTORINIT). -/// 007d static void clif_parse_LoadEndAck(int fd, struct map_session_data *sd) { - bool first_time = false; - - if(sd->bl.prev != NULL) + if (sd->bl.prev != NULL) return; - if (!sd->state.active) { //Character loading is not complete yet! - //Let pc->reg_received reinvoke this when ready. + if (sd->state.active == 0) { // Character loading is not complete yet! Let pc->reg_received reinvoke this when ready. sd->state.connect_new = 0; return; } - if (sd->state.rewarp) { //Rewarp player. + if (sd->state.rewarp != 0) { // Rewarp character. sd->state.rewarp = 0; clif->changemap(sd, sd->bl.m, sd->bl.x, sd->bl.y); return; } sd->state.warping = 0; - sd->state.dialog = 0;/* reset when warping, client dialog will go missing */ + sd->state.dialog = 0; // Reset when warping. Client dialog will go missing. - // Character Looks + // Character looks. #if PACKETVER < 4 clif->changelook(&sd->bl, LOOK_WEAPON, sd->status.look.weapon); clif->changelook(&sd->bl, LOOK_SHIELD, sd->status.look.shield); #else - clif->changelook(&sd->bl,LOOK_WEAPON,0); + clif->changelook(&sd->bl, LOOK_WEAPON, 0); #endif - if(sd->vd.cloth_color) - clif->refreshlook(&sd->bl,sd->bl.id,LOOK_CLOTHES_COLOR,sd->vd.cloth_color,SELF); + if (sd->vd.cloth_color != 0) + clif->refreshlook(&sd->bl, sd->bl.id, LOOK_CLOTHES_COLOR, sd->vd.cloth_color, SELF); - if (sd->vd.body_style) - clif->refreshlook(&sd->bl,sd->bl.id,LOOK_BODY2,sd->vd.body_style,SELF); + if (sd->vd.body_style != 0) + clif->refreshlook(&sd->bl, sd->bl.id, LOOK_BODY2, sd->vd.body_style, SELF); - // Send character inventory to the client. - // call this before pc->checkitem() so that the client isn't called to delete a non-existent item. + /** + * Send character inventory to the client. + * Call this before pc->checkitem() so that the client isn't called to delete a non-existent items. + * + **/ clif->inventoryList(sd); // Send the cart inventory, counts & weight to the client. - if(pc_iscarton(sd)) { + if (pc_iscarton(sd)) { clif->cartList(sd); clif->updatestatus(sd, SP_CARTINFO); } @@ -10654,309 +10734,330 @@ static void clif_parse_LoadEndAck(int fd, struct map_session_data *sd) clif->updatestatus(sd, SP_WEIGHT); clif->updatestatus(sd, SP_MAXWEIGHT); - // guild - // (needs to go before clif_spawn() to show guild emblems correctly) - if(sd->status.guild_id) - guild->send_memberinfoshort(sd,1); + // Send character's guild info to the client. Call this before clif->spawn() to show guild emblems correctly. + if (sd->status.guild_id != 0) + guild->send_memberinfoshort(sd, 1); - if(battle_config.pc_invincible_time > 0) { - pc->setinvincibletimer(sd,battle_config.pc_invincible_time); - } + if (battle_config.pc_invincible_time > 0) + pc->setinvincibletimer(sd, battle_config.pc_invincible_time); - if( map->list[sd->bl.m].users++ == 0 && battle_config.dynamic_mobs ) + if (map->list[sd->bl.m].users++ == 0 && battle_config.dynamic_mobs != 0) map->spawnmobs(sd->bl.m); - if( map->list[sd->bl.m].instance_id >= 0 ) { + if (map->list[sd->bl.m].instance_id >= 0) { instance->list[map->list[sd->bl.m].instance_id].users++; instance->check_idle(map->list[sd->bl.m].instance_id); } - if( pc_has_permission(sd,PC_PERM_VIEW_HPMETER) ) { + if (pc_has_permission(sd, PC_PERM_VIEW_HPMETER)) { map->list[sd->bl.m].hpmeter_visible++; sd->state.hpmeter_visible = 1; } - if (!pc_isinvisible(sd)) { // increment the number of pvp players on the map + if (!pc_isinvisible(sd)) // Increment the number of pvp players on the map. map->list[sd->bl.m].users_pvp++; - } - - sd->state.debug_remove_map = 0; // temporary state to track double remove_map's [FlavioJS] - // reset the callshop flag if the player changes map - sd->state.callshop = 0; + sd->state.debug_remove_map = 0; // Temporary state to track double calls of unit->remove_map(). [FlavioJS] + sd->state.callshop = 0; // Reset the callshop flag if the character changes map. + map->addblock(&sd->bl); // Add the character to the map. + clif->spawn(&sd->bl); // Spawn character client side. - map->addblock(&sd->bl); - clif->spawn(&sd->bl); - - // Party - // (needs to go after clif_spawn() to show hp bars correctly) - if(sd->status.party_id) { + // Send character's party info to the client. Call this after clif->spawn() to show HP bars correctly. + if (sd->status.party_id != 0) { party->send_movemap(sd); - clif->party_hp(sd); // Show hp after displacement [LuzZza] + clif->party_hp(sd); // Show HP after displacement. [LuzZza] } - if( sd->bg_id ) clif->bg_hp(sd); // BattleGround System + if (sd->bg_id != 0) + clif->bg_hp(sd); // BattleGround system. + + if (map->list[sd->bl.m].flag.pvp != 0 && !pc_isinvisible(sd)) { + if (battle_config.pk_mode == 0) { // Remove PVP stuff for pk_mode. [Valaris] + if (map->list[sd->bl.m].flag.pvp_nocalcrank == 0) + sd->pvp_timer = timer->add(timer->gettick() + 200, pc->calc_pvprank_timer, sd->bl.id, 0); - if (map->list[sd->bl.m].flag.pvp && !pc_isinvisible(sd)) { - if(!battle_config.pk_mode) { // remove pvp stuff for pk_mode [Valaris] - if (!map->list[sd->bl.m].flag.pvp_nocalcrank) - sd->pvp_timer = timer->add(timer->gettick()+200, pc->calc_pvprank_timer, sd->bl.id, 0); sd->pvp_rank = 0; sd->pvp_lastusers = 0; sd->pvp_point = 5; sd->pvp_won = 0; sd->pvp_lost = 0; } + clif->map_property(sd, MAPPROPERTY_FREEPVPZONE); - } else - // set flag, if it's a duel [LuzZza] - if(sd->duel_group) + } else if(sd->duel_group != 0) { // Set flag, if it's a duel. [LuzZza] clif->map_property(sd, MAPPROPERTY_FREEPVPZONE); + } - if (map->list[sd->bl.m].flag.gvg_dungeon) + if (map->list[sd->bl.m].flag.gvg_dungeon != 0) clif->map_property(sd, MAPPROPERTY_FREEPVPZONE); //TODO: Figure out the real packet to send here. - if( map_flag_gvg2(sd->bl.m) ) + if (map_flag_gvg2(sd->bl.m)) clif->map_property(sd, MAPPROPERTY_AGITZONE); - // info about nearby objects - // must use foreachinarea (CIRCULAR_AREA interferes with foreachinrange) - map->foreachinarea(clif->getareachar, sd->bl.m, sd->bl.x-AREA_SIZE, sd->bl.y-AREA_SIZE, sd->bl.x+AREA_SIZE, sd->bl.y+AREA_SIZE, BL_ALL, sd); + // Info about nearby objects. Must use map->foreachinarea(). (CIRCULAR_AREA interferes with map->foreachinrange().) + map->foreachinarea(clif->getareachar, sd->bl.m, sd->bl.x - AREA_SIZE, sd->bl.y - AREA_SIZE, + sd->bl.x + AREA_SIZE, sd->bl.y + AREA_SIZE, BL_ALL, sd); - // pet - if( sd->pd ) { - if( battle_config.pet_no_gvg && map_flag_gvg2(sd->bl.m) ) { //Return the pet to egg. [Skotlex] - clif->message(sd->fd, msg_sd(sd,866)); // "Pets are not allowed in Guild Wars." - pet->menu(sd, 3); //Option 3 is return to egg. + // Spawn pet. + if (sd->pd != NULL) { + if (battle_config.pet_no_gvg != 0 && map_flag_gvg2(sd->bl.m)) { // Return the pet to egg. [Skotlex] + clif->message(sd->fd, msg_sd(sd, 866)); // "Pets are not allowed in Guild Wars." + pet->menu(sd, 3); // Option 3 is return to egg. } else { map->addblock(&sd->pd->bl); clif->spawn(&sd->pd->bl); - clif->send_petdata(sd,sd->pd,0,0); + clif->send_petdata(sd,sd->pd, 0, 0); clif->send_petstatus(sd); - //skill->unit_move(&sd->pd->bl,timer->gettick(),1); } } - //homunculus [blackhole89] - if( homun_alive(sd->hd) ) { + // Spawn homunculus. [blackhole89] + if (homun_alive(sd->hd)) { map->addblock(&sd->hd->bl); clif->spawn(&sd->hd->bl); - clif->send_homdata(sd,SP_ACK,0); - clif->hominfo(sd,sd->hd,1); - clif->hominfo(sd,sd->hd,0); //for some reason, at least older clients want this sent twice + clif->send_homdata(sd, SP_ACK, 0); + clif->hominfo(sd,sd->hd, 1); + clif->hominfo(sd,sd->hd, 0); // For some reason, at least older clients want this sent twice. clif->homskillinfoblock(sd); - if( battle_config.hom_setting&0x8 ) - status_calc_bl(&sd->hd->bl, SCB_SPEED); //Homunc mimic their master's speed on each map change - if( !(battle_config.hom_setting&0x2) ) - skill->unit_move(&sd->hd->bl,timer->gettick(),1); // apply land skills immediately + + if ((battle_config.hom_setting & 0x8) != 0) + status_calc_bl(&sd->hd->bl, SCB_SPEED); // Homunculi mimic their master's speed on each map change. + + if ((battle_config.hom_setting & 0x2) == 0) + skill->unit_move(&sd->hd->bl, timer->gettick(), 1); // Apply land skills immediately. } - if( sd->md ) { + // Spawn mercenary. + if (sd->md != NULL) { map->addblock(&sd->md->bl); clif->spawn(&sd->md->bl); clif->mercenary_info(sd); clif->mercenary_skillblock(sd); - status_calc_bl(&sd->md->bl, SCB_SPEED); // Mercenary mimic their master's speed on each map change + status_calc_bl(&sd->md->bl, SCB_SPEED); // Mercenaries mimic their master's speed on each map change. } - if( sd->ed ) { + // Spawn elemental. + if (sd->ed != NULL) { map->addblock(&sd->ed->bl); clif->spawn(&sd->ed->bl); clif->elemental_info(sd); - clif->elemental_updatestatus(sd,SP_HP); - clif->hpmeter_single(sd->fd,sd->ed->bl.id,sd->ed->battle_status.hp,sd->ed->battle_status.max_hp); - clif->elemental_updatestatus(sd,SP_SP); - status_calc_bl(&sd->ed->bl, SCB_SPEED); //Elemental mimic their master's speed on each map change + clif->elemental_updatestatus(sd, SP_HP); + clif->hpmeter_single(sd->fd, sd->ed->bl.id, sd->ed->battle_status.hp, sd->ed->battle_status.max_hp); + clif->elemental_updatestatus(sd, SP_SP); + status_calc_bl(&sd->ed->bl, SCB_SPEED); // Elementals mimic their master's speed on each map change. } - if(sd->state.connect_new) { - int lv; + bool first_time = false; + + if (sd->state.connect_new != 0) { first_time = true; sd->state.connect_new = 0; clif->skillinfoblock(sd); clif->hotkeysAll(sd); - clif->updatestatus(sd,SP_BASEEXP); - clif->updatestatus(sd,SP_NEXTBASEEXP); - clif->updatestatus(sd,SP_JOBEXP); - clif->updatestatus(sd,SP_NEXTJOBEXP); - clif->updatestatus(sd,SP_SKILLPOINT); + clif->updatestatus(sd, SP_BASEEXP); + clif->updatestatus(sd, SP_NEXTBASEEXP); + clif->updatestatus(sd, SP_JOBEXP); + clif->updatestatus(sd, SP_NEXTJOBEXP); + clif->updatestatus(sd, SP_SKILLPOINT); clif->initialstatus(sd); - if (pc_isfalcon(sd)) - clif->status_change(&sd->bl, status->get_sc_icon(SC_FALCON), status->get_sc_relevant_bl_types(SC_FALCON), 1, 0, 0, 0, 0); - if (pc_isridingpeco(sd) || pc_isridingdragon(sd)) - clif->status_change(&sd->bl, status->get_sc_icon(SC_RIDING), status->get_sc_relevant_bl_types(SC_RIDING), 1, 0, 0, 0, 0); - else if (pc_isridingwug(sd)) - clif->status_change(&sd->bl, status->get_sc_icon(SC_WUGRIDER), status->get_sc_relevant_bl_types(SC_WUGRIDER), 1, 0, 0, 0, 0); + if (pc_isfalcon(sd)) { + int sc_icn = status->get_sc_icon(SC_FALCON); + int sc_typ = status->get_sc_relevant_bl_types(SC_FALCON); + clif->status_change(&sd->bl, sc_icn, sc_typ, 1, 0, 0, 0, 0); + } - if(sd->status.manner < 0) - sc_start(NULL,&sd->bl,SC_NOCHAT,100,0,0); + if (pc_isridingpeco(sd) || pc_isridingdragon(sd)) { + int sc_icn = status->get_sc_icon(SC_RIDING); + int sc_typ = status->get_sc_relevant_bl_types(SC_RIDING); + clif->status_change(&sd->bl, sc_icn, sc_typ, 1, 0, 0, 0, 0); + } else if (pc_isridingwug(sd)) { + int sc_icn = status->get_sc_icon(SC_WUGRIDER); + int sc_typ = status->get_sc_relevant_bl_types(SC_WUGRIDER); + clif->status_change(&sd->bl, sc_icn, sc_typ, 1, 0, 0, 0, 0); + } - //Auron reported that This skill only triggers when you logon on the map o.O [Skotlex] - if ((lv = pc->checkskill(sd,SG_KNOWLEDGE)) > 0) { - int i; - for (i = 0; i < MAX_PC_FEELHATE; i++) { + if (sd->status.manner < 0) + sc_start(NULL, &sd->bl, SC_NOCHAT, 100, 0, 0); + + int lv = pc->checkskill(sd,SG_KNOWLEDGE); + + // Auron reported that this skill only triggers when you logon on the map. [Skotlex] + if (lv > 0) { + for (int i = 0; i < MAX_PC_FEELHATE; i++) { if (sd->bl.m == sd->feel_map[i].m) { - sc_start(NULL,&sd->bl, SC_KNOWLEDGE, 100, lv, skill->get_time(SG_KNOWLEDGE, lv)); + sc_start(NULL, &sd->bl, SC_KNOWLEDGE, 100, lv, skill->get_time(SG_KNOWLEDGE, lv)); break; } } } - if(sd->pd && sd->pd->pet.intimate > 900) - clif->pet_emotion(sd->pd,(sd->pd->pet.class_ - 100)*100 + 50 + pet->hungry_val(sd->pd)); + if (sd->pd != NULL && sd->pd->pet.intimate > PET_INTIMACY_LOYAL) + clif->pet_emotion(sd->pd, (sd->pd->pet.class_ - 100) * 100 + 50 + pet->hungry_val(sd->pd)); - if(homun_alive(sd->hd)) + if (homun_alive(sd->hd)) homun->init_timers(sd->hd); - if (map->night_flag && map->list[sd->bl.m].flag.nightenabled) { + if (map->night_flag != 0 && map->list[sd->bl.m].flag.nightenabled != 0) { + int sc_icn = status->get_sc_icon(SC_SKE); + int sc_typ = status->get_sc_relevant_bl_types(SC_SKE); + sd->state.night = 1; - clif->status_change(&sd->bl, status->get_sc_icon(SC_SKE), status->get_sc_relevant_bl_types(SC_SKE), 1, 0, 0, 0, 0); + clif->status_change(&sd->bl, sc_icn, sc_typ, 1, 0, 0, 0, 0); } - // Notify everyone that this char logged in [Skotlex]. + // Notify everyone that this character logged in. [Skotlex] map->foreachpc(clif->friendslist_toggle_sub, sd->status.account_id, sd->status.char_id, 1); - //Login Event + // Run OnPCLoginEvent labels. npc->script_event(sd, NPCE_LOGIN); } else { - //For some reason the client "loses" these on warp/map-change. - clif->updatestatus(sd,SP_STR); - clif->updatestatus(sd,SP_AGI); - clif->updatestatus(sd,SP_VIT); - clif->updatestatus(sd,SP_INT); - clif->updatestatus(sd,SP_DEX); - clif->updatestatus(sd,SP_LUK); - - if (sd->state.warp_clean) { - // abort currently running script + // For some reason the client "loses" these on warp/map-change. + clif->updatestatus(sd, SP_STR); + clif->updatestatus(sd, SP_AGI); + clif->updatestatus(sd, SP_VIT); + clif->updatestatus(sd, SP_INT); + clif->updatestatus(sd, SP_DEX); + clif->updatestatus(sd, SP_LUK); + + if (sd->state.warp_clean != 0) { // Abort currently running script. sd->state.using_fake_npc = 0; sd->state.menu_or_input = 0; sd->npc_menu = 0; - if(sd->npc_id) + + if (sd->npc_id != 0) npc->event_dequeue(sd); } else { sd->state.warp_clean = 1; } - if( sd->guild && ( battle_config.guild_notice_changemap == 2 || ( battle_config.guild_notice_changemap == 1 && sd->state.changemap ) ) ) - clif->guild_notice(sd,sd->guild); + + if (sd->guild != NULL && ((battle_config.guild_notice_changemap == 1 && sd->state.changemap != 0) + || battle_config.guild_notice_changemap == 2)) { + clif->guild_notice(sd, sd->guild); + } } - if( sd->state.changemap ) {// restore information that gets lost on map-change + if (sd->state.changemap != 0) { // Restore information that gets lost on map-change. #if PACKETVER >= 20070918 clif->partyinvitationstate(sd); clif->equpcheckbox(sd); #endif #if PACKETVER_MAIN_NUM >= 20171025 || PACKETVER_RE_NUM >= 20170920 - if (sd->hd != NULL) - clif->zc_config(sd, CZ_CONFIG_HOMUNCULUS_AUTOFEEDING, sd->hd->homunculus.autofeed); - else - clif->zc_config(sd, CZ_CONFIG_HOMUNCULUS_AUTOFEEDING, false); + if (sd->hd != NULL) + clif->zc_config(sd, CZ_CONFIG_HOMUNCULUS_AUTOFEEDING, sd->hd->homunculus.autofeed); + else + clif->zc_config(sd, CZ_CONFIG_HOMUNCULUS_AUTOFEEDING, false); #endif - if( (battle_config.bg_flee_penalty != 100 || battle_config.gvg_flee_penalty != 100) - && (map_flag_gvg2(sd->state.pmap) || map_flag_gvg2(sd->bl.m) - || map->list[sd->state.pmap].flag.battleground || map->list[sd->bl.m].flag.battleground) ) - status_calc_bl(&sd->bl, SCB_FLEE); //Refresh flee penalty - if( map->night_flag && map->list[sd->bl.m].flag.nightenabled ) { - //Display night. - if( !sd->state.night ) { + bool flee_penalty = (battle_config.bg_flee_penalty != 100 || battle_config.gvg_flee_penalty != 100); + bool is_gvg = (map_flag_gvg2(sd->state.pmap) || map_flag_gvg2(sd->bl.m)); + bool is_bg = (map->list[sd->state.pmap].flag.battleground != 0 || map->list[sd->bl.m].flag.battleground != 0); + + if (flee_penalty && (is_gvg || is_bg)) + status_calc_bl(&sd->bl, SCB_FLEE); // Refresh flee penalty. + + if (map->night_flag != 0 && map->list[sd->bl.m].flag.nightenabled != 0) { + if (sd->state.night == 0) { // Display night. + int sc_icn = status->get_sc_icon(SC_SKE); + int sc_typ = status->get_sc_relevant_bl_types(SC_SKE); + sd->state.night = 1; - clif->status_change(&sd->bl, status->get_sc_icon(SC_SKE), status->get_sc_relevant_bl_types(SC_SKE), 1, 0, 0, 0, 0); + clif->status_change(&sd->bl, sc_icn, sc_typ, 1, 0, 0, 0, 0); } - } else if( sd->state.night ) { //Clear night display. + } else if (sd->state.night != 0) { // Clear night display. sd->state.night = 0; clif->sc_end(&sd->bl, sd->bl.id, SELF, status->get_sc_icon(SC_SKE)); } - if( map->list[sd->bl.m].flag.battleground ) { - clif->map_type(sd, MAPTYPE_BATTLEFIELD); // Battleground Mode - if( map->list[sd->bl.m].flag.battleground == 2 ) + if (map->list[sd->bl.m].flag.battleground != 0) { + clif->map_type(sd, MAPTYPE_BATTLEFIELD); // Battleground mode. + + if (map->list[sd->bl.m].flag.battleground == 2) clif->bg_updatescore_single(sd); } - if( map->list[sd->bl.m].flag.allowks && !map_flag_ks(sd->bl.m) ) { + if (map->list[sd->bl.m].flag.allowks != 0 && !map_flag_ks(sd->bl.m)) { char output[128]; + sprintf(output, "%s", msg_sd(sd, 893)); // [ Kill Steal Protection Disabled. KS is allowed in this map ] clif->broadcast(&sd->bl, output, (int)strlen(output) + 1, BC_BLUE, SELF); } - map->iwall_get(sd); // Updates Walls Info on this Map to Client - status_calc_pc(sd, SCO_NONE);/* some conditions are map-dependent so we must recalculate */ + map->iwall_get(sd); // Updates walls info on this map to client. + status_calc_pc(sd, SCO_NONE); // Some conditions are map-dependent so we must recalculate. sd->state.changemap = false; - if (channel->config->local && channel->config->local_autojoin) { + if (channel->config->local && channel->config->local_autojoin) channel->map_join(sd); - } - if (channel->config->irc && channel->config->irc_autojoin) { + + if (channel->config->irc && channel->config->irc_autojoin) channel->irc_join(sd); - } } mail->clear(sd); + clif->maptypeproperty2(&sd->bl, SELF); - clif->maptypeproperty2(&sd->bl,SELF); - - /* Guild Aura Init */ - if( sd->state.gmaster_flag ) { - guild->aura_refresh(sd,GD_LEADERSHIP,guild->checkskill(sd->guild,GD_LEADERSHIP)); - guild->aura_refresh(sd,GD_GLORYWOUNDS,guild->checkskill(sd->guild,GD_GLORYWOUNDS)); - guild->aura_refresh(sd,GD_SOULCOLD,guild->checkskill(sd->guild,GD_SOULCOLD)); - guild->aura_refresh(sd,GD_HAWKEYES,guild->checkskill(sd->guild,GD_HAWKEYES)); + // Init guild aura. + if (sd->state.gmaster_flag != 0) { + guild->aura_refresh(sd, GD_LEADERSHIP, guild->checkskill(sd->guild, GD_LEADERSHIP)); + guild->aura_refresh(sd, GD_GLORYWOUNDS, guild->checkskill(sd->guild, GD_GLORYWOUNDS)); + guild->aura_refresh(sd, GD_SOULCOLD, guild->checkskill(sd->guild, GD_SOULCOLD)); + guild->aura_refresh(sd, GD_HAWKEYES, guild->checkskill(sd->guild, GD_HAWKEYES)); } - if( sd->state.vending ) { /* show we have a vending */ - clif->openvending(sd,sd->bl.id,sd->vending); - clif->showvendingboard(&sd->bl,sd->message,0); + if (sd->state.vending != 0) { // Character is vending. + clif->openvending(sd, sd->bl.id, sd->vending); + clif->showvendingboard(&sd->bl, sd->message, 0); } - if(map->list[sd->bl.m].flag.loadevent) // Lance + if (map->list[sd->bl.m].flag.loadevent != 0) // Run OnPCLoadMapEvent labels. [Lance] npc->script_event(sd, NPCE_LOADMAP); - if (pc->checkskill(sd, SG_DEVIL) && !pc->nextjobexp(sd)) //blindness [Komurka] + if (pc->checkskill(sd, SG_DEVIL) > 0 && pc->nextjobexp(sd) == 0) // Blindness. [Komurka] clif->sc_end(&sd->bl, sd->bl.id, SELF, status->get_sc_icon(SC_DEVIL1)); - if (sd->sc.opt2) //Client loses these on warp. + if (sd->sc.opt2 != 0) // Client loses these on warp. clif->changeoption(&sd->bl); - if( sd->sc.data[SC_MONSTER_TRANSFORM] && battle_config.mon_trans_disable_in_gvg && map_flag_gvg2(sd->bl.m) ){ + if (sd->sc.data[SC_MONSTER_TRANSFORM] != NULL && battle_config.mon_trans_disable_in_gvg != 0 + && map_flag_gvg2(sd->bl.m)) { status_change_end(&sd->bl, SC_MONSTER_TRANSFORM, INVALID_TIMER); - clif->message(sd->fd, msg_sd(sd,1488)); // Transforming into monster is not allowed in Guild Wars. + clif->message(sd->fd, msg_sd(sd, 1488)); // Transforming into monster is not allowed in Guild Wars. } clif->weather_check(sd); - // This should be displayed last - if( sd->guild && first_time ) + // This should be displayed last. + if (sd->guild != NULL && first_time) clif->guild_notice(sd, sd->guild); - // For automatic triggering of NPCs after map loading (so you don't need to walk 1 step first) - if (map->getcell(sd->bl.m, &sd->bl, sd->bl.x, sd->bl.y, CELL_CHKNPC)) - npc->touch_areanpc(sd,sd->bl.m,sd->bl.x,sd->bl.y); + // For automatic triggering of NPCs after map loading. (So you don't need to walk 1 step first.) + if (map->getcell(sd->bl.m, &sd->bl, sd->bl.x, sd->bl.y, CELL_CHKNPC) != 0) + npc->touch_areanpc(sd, sd->bl.m, sd->bl.x, sd->bl.y); else npc->untouch_areanpc(sd, sd->bl.m, sd->bl.x, sd->bl.y); - /* it broke at some point (e.g. during a crash), so we make it visibly dead again. */ - if( !sd->status.hp && !pc_isdead(sd) && status->isdead(&sd->bl) ) + // It broke at some point (e.g. during a crash), so we make it visibly dead again. + if (sd->status.hp == 0 && !pc_isdead(sd) && status->isdead(&sd->bl) != 0) pc_setdead(sd); - // If player is dead, and is spawned (such as @refresh) send death packet. [Valaris] - if(pc_isdead(sd)) + // Send death packet, if character is dead and is spawned (such as @refresh). [Valaris] + if (pc_isdead(sd)) { clif->clearunit_area(&sd->bl, CLR_DEAD); - else { + } else { skill->usave_trigger(sd); + if (battle_config.player_warp_keep_direction == 1) clif->changed_dir(&sd->bl, SELF); // Visually updates player facing direction } - // Trigger skill effects if you appear standing on them - if(!battle_config.pc_invincible_time) - skill->unit_move(&sd->bl,timer->gettick(),1); + // Trigger skill effects if you appear standing on them. + if (battle_config.pc_invincible_time == 0) + skill->unit_move(&sd->bl, timer->gettick(), 1); - // NPC Quest / Event Icon Check [Kisuka] #if PACKETVER >= 20090218 - quest->questinfo_refresh(sd); + quest->questinfo_refresh(sd); // NPC quest/event icon check. [Kisuka] #endif } @@ -11680,7 +11781,8 @@ static void clif_parse_WisMessage(int fd, struct map_session_data *sd) struct map_session_data* dstsd; int i; - char target[NAME_LENGTH], message[CHAT_SIZE_MAX + 1]; + char target[NAME_LENGTH + 1]; // Client can send 24 characters without NULL terminator. + char message[CHAT_SIZE_MAX + 1]; const struct packet_whisper_message *packet = RP2PTR(fd); if (!clif->process_whisper_message(sd, packet, target, message, sizeof message)) @@ -11696,7 +11798,7 @@ static void clif_parse_WisMessage(int fd, struct map_session_data *sd) char *str = target + 4; // Skip the NPC: string part. struct npc_data *nd; if ((nd = npc->name2id(str))) { - char split_data[NUM_WHISPER_VAR][CHAT_SIZE_MAX]; + char split_data[NUM_WHISPER_VAR][SCRIPT_STRING_VAR_LENGTH + 1]; char *split; char output[256]; @@ -12706,6 +12808,16 @@ static void clif_useSkillToIdReal(int fd, struct map_session_data *sd, int skill { int64 tick = timer->gettick(); + pc->autocast_set_current(sd, skill_id); + + /** + * According to Skotlex' comment below, the client sometimes passes 0 for the skill level. + * Even though this seems to only affect guild skills, sd->autocast.skill_lv is used + * for the auto-cast data validation if skill_lv is 0. + * + **/ + skill->validate_autocast_data(sd, skill_id, (skill_lv == 0) ? sd->auto_cast_current.skill_lv : skill_lv); + if (skill_lv < 1) skill_lv = 1; //No clue, I have seen the client do this with guild skills :/ [Skotlex] @@ -12756,10 +12868,10 @@ static void clif_useSkillToIdReal(int fd, struct map_session_data *sd, int skill target_id = sd->bl.id; if (sd->ud.skilltimer != INVALID_TIMER) { - if (skill_id != SA_CASTCANCEL && skill_id != SO_SPELLFIST) + if (skill_id != SA_CASTCANCEL && skill_id != SO_SPELLFIST && sd->auto_cast_current.type == AUTOCAST_NONE) return; } else if (DIFF_TICK(tick, sd->ud.canact_tick) < 0) { - if (sd->skillitem != skill_id) { + if (sd->auto_cast_current.type == AUTOCAST_NONE) { clif->skill_fail(sd, skill_id, USESKILL_FAIL_SKILLINTERVAL, 0, 0); return; } @@ -12777,16 +12889,16 @@ static void clif_useSkillToIdReal(int fd, struct map_session_data *sd, int skill } else if (sd->menuskill_id != SA_AUTOSPELL) return; //Can't use skills while a menu is open. } - if (sd->skillitem == skill_id) { - if (skill_lv != sd->skillitemlv) - skill_lv = sd->skillitemlv; + if (sd->auto_cast_current.type != AUTOCAST_NONE) { + if (skill_lv != sd->auto_cast_current.skill_lv) + skill_lv = sd->auto_cast_current.skill_lv; if (!(tmp&INF_SELF_SKILL)) pc->delinvincibletimer(sd); // Target skills through items cancel invincibility. [Inkfish] unit->skilluse_id(&sd->bl, target_id, skill_id, skill_lv); return; } - sd->skillitem = sd->skillitemlv = 0; + pc->autocast_clear(sd); if (skill_id >= GD_SKILLBASE && skill_id < GD_MAX) { if (sd->state.gmaster_flag) @@ -12847,6 +12959,18 @@ static void clif_parse_UseSkillToPosSub(int fd, struct map_session_data *sd, uin int64 tick = timer->gettick(); nullpo_retv(sd); + + pc->autocast_set_current(sd, skill_id); + + /** + * When using clif_item_skill() to initiate the execution of ground skills, + * the client sometimes passes 0 for the skill level in packet 0x0af4. + * In that case sd->autocast.skill_lv is used for the auto-cast data validation, + * since clif_item_skill() is only used for auto-cast skills. + * + **/ + skill->validate_autocast_data(sd, skill_id, (skill_lv == 0) ? sd->auto_cast_current.skill_lv : skill_lv); + if( !(skill->get_inf(skill_id)&INF_GROUND_SKILL) ) return; //Using a target skill on the ground? WRONG. @@ -12883,11 +13007,11 @@ static void clif_parse_UseSkillToPosSub(int fd, struct map_session_data *sd, uin safestrncpy(sd->message, RFIFOP(fd, skillmoreinfo), TALKBOX_MESSAGE_SIZE); } - if( sd->ud.skilltimer != INVALID_TIMER ) + if (sd->ud.skilltimer != INVALID_TIMER && sd->auto_cast_current.type == AUTOCAST_NONE) return; if( DIFF_TICK(tick, sd->ud.canact_tick) < 0 ) { - if( sd->skillitem != skill_id ) { + if (sd->auto_cast_current.type == AUTOCAST_NONE) { clif->skill_fail(sd, skill_id, USESKILL_FAIL_SKILLINTERVAL, 0, 0); return; } @@ -12908,13 +13032,13 @@ static void clif_parse_UseSkillToPosSub(int fd, struct map_session_data *sd, uin pc->delinvincibletimer(sd); - if( sd->skillitem == skill_id ) { - if( skill_lv != sd->skillitemlv ) - skill_lv = sd->skillitemlv; + if (sd->auto_cast_current.type != AUTOCAST_NONE) { + if (skill_lv != sd->auto_cast_current.skill_lv) + skill_lv = sd->auto_cast_current.skill_lv; unit->skilluse_pos(&sd->bl, x, y, skill_id, skill_lv); } else { int lv; - sd->skillitem = sd->skillitemlv = 0; + pc->autocast_clear(sd); if( (lv = pc->checkskill(sd, skill_id)) > 0 ) { if( skill_lv > lv ) skill_lv = lv; @@ -12984,10 +13108,18 @@ static void clif_parse_UseSkillMap(int fd, struct map_session_data *sd) clif_menuskill_clear(sd); return; } + + pc->autocast_set_current(sd, skill_id); + + /** + * Since no skill level was passed use 0 to notify skill_validate_autocast_data() of this special case. + * + **/ + skill->validate_autocast_data(sd, skill_id, 0); pc->delinvincibletimer(sd); skill->castend_map(sd,skill_id,map_name); - pc->itemskill_clear(sd); + pc->autocast_clear(sd); } static void clif_parse_RequestMemo(int fd, struct map_session_data *sd) __attribute__((nonnull (2))); @@ -15180,58 +15312,68 @@ static void clif_parse_ChangePetName(int fd, struct map_session_data *sd) pet->change_name(sd, RFIFOP(fd,2)); } +/** + * Request to evolve the pet. (CZ_PET_EVOLUTION) + * + * @code + * 09fb <Length>.W <EvolvedPetEggID>.W {<index>.W <amount>.W}*items + * @endcode + * + * @param fd The incoming file descriptor. + * @param sd The related character. + * + **/ static void clif_parse_pet_evolution(int fd, struct map_session_data *sd) __attribute__((nonnull (2))); -/// Request to Evolve the pet (CZ_PET_EVOLUTION) [Dastgir/Hercules] -/// 09fb <Length>.W <EvolvedPetEggID>.W {<index>.W <amount>.W}*items static void clif_parse_pet_evolution(int fd, struct map_session_data *sd) { - if (sd->state.trading || pc_isdead(sd) || pc_isvending(sd)) + if (sd->state.trading != 0 || pc_isdead(sd) || pc_isvending(sd)) return; - const struct PACKET_CZ_PET_EVOLUTION *p = RP2PTR(fd); - int i = 0, idx, petIndex; - - Assert_retv(p->PacketLength >= (uint16)sizeof(struct PACKET_CZ_PET_EVOLUTION)); - - if (sd->status.pet_id == 0) { + if (sd->pd == NULL || sd->status.pet_id == 0) { // No pet. clif->petEvolutionResult(fd, PET_EVOL_NO_CALLPET); return; } - ARR_FIND(0, sd->status.inventorySize, idx, sd->status.inventory[idx].card[0] == CARD0_PET && - sd->status.pet_id == MakeDWord(sd->status.inventory[idx].card[1], sd->status.inventory[idx].card[2])); + int inv_index; - if (idx == sd->status.inventorySize) { + ARR_FIND(0, sd->status.inventorySize, inv_index, sd->status.inventory[inv_index].card[0] == CARD0_PET + && sd->status.pet_id == MakeDWord(sd->status.inventory[inv_index].card[1], + sd->status.inventory[inv_index].card[2])); + + if (inv_index == sd->status.inventorySize) { // No pet egg. clif->petEvolutionResult(fd, PET_EVOL_NO_PETEGG); return; } - // Not Loyal Yet - if (sd->pd == NULL || sd->pd->pet.intimate < 900) { + if (sd->pd->pet.intimate < PET_INTIMACY_LOYAL) { // Pet isn't loyal. clif->petEvolutionResult(fd, PET_EVOL_RG_FAMILIAR); return; } - ARR_FIND(0, MAX_PET_DB, petIndex, pet->db[petIndex].class_ == sd->pd->pet.class_); + int pet_index; + + ARR_FIND(0, MAX_PET_DB, pet_index, pet->db[pet_index].class_ == sd->pd->pet.class_); - if (petIndex == MAX_PET_DB) { - // Which error? - clif->petEvolutionResult(fd, PET_EVOL_UNKNOWN); + if (pet_index == MAX_PET_DB) { + clif->petEvolutionResult(fd, PET_EVOL_UNKNOWN); // Which error? return; } + const struct PACKET_CZ_PET_EVOLUTION *p = RP2PTR(fd); + + Assert_retv(p->PacketLength >= (uint16)sizeof(struct PACKET_CZ_PET_EVOLUTION)); + // Client side validation is not done as it is insecure. - for (i = 0; i < VECTOR_LENGTH(pet->db[petIndex].evolve_data); i++) { - struct pet_evolve_data *ped = &VECTOR_INDEX(pet->db[petIndex].evolve_data, i); - if (ped->petEggId == p->EvolvedPetEggID) { - int j; - int pet_id; + for (int i = 0; i < VECTOR_LENGTH(pet->db[pet_index].evolve_data); i++) { + struct pet_evolve_data *ped = &VECTOR_INDEX(pet->db[pet_index].evolve_data, i); + if (ped->petEggId == p->EvolvedPetEggID) { if (VECTOR_LENGTH(ped->items) == 0) { clif->petEvolutionResult(fd, PET_EVOL_NO_RECIPE); return; } - for (j = 0; j < VECTOR_LENGTH(ped->items); j++) { + + for (int j = 0; j < VECTOR_LENGTH(ped->items); j++) { struct itemlist_entry *list = &VECTOR_INDEX(ped->items, j); int n = pc->search_inventory(sd, list->id); @@ -15241,7 +15383,7 @@ static void clif_parse_pet_evolution(int fd, struct map_session_data *sd) } } - for (j = 0; j < VECTOR_LENGTH(ped->items); j++) { + for (int j = 0; j < VECTOR_LENGTH(ped->items); j++) { struct itemlist_entry *list = &VECTOR_INDEX(ped->items, j); int n = pc->search_inventory(sd, list->id); @@ -15251,27 +15393,26 @@ static void clif_parse_pet_evolution(int fd, struct map_session_data *sd) } } - // Return to Egg - pet->return_egg(sd, sd->pd); + pet->return_egg(sd, sd->pd); // Return pet to egg. - if (pc->delitem(sd, idx, 1, 0, DELITEM_NORMAL, LOG_TYPE_EGG) == 1) { + if (pc->delitem(sd, inv_index, 1, 0, DELITEM_NORMAL, LOG_TYPE_EGG) == 1) { clif->petEvolutionResult(fd, PET_EVOL_NO_PETEGG); return; } - pet_id = pet->search_petDB_index(ped->petEggId, PET_EGG); + int pet_id = pet->search_petDB_index(ped->petEggId, PET_EGG); + if (pet_id >= 0) { sd->catch_target_class = pet->db[pet_id].class_; - - intif->create_pet( - sd->status.account_id, sd->status.char_id, - pet->db[pet_id].class_, mob->db(pet->db[pet_id].class_)->lv, - pet->db[pet_id].EggID, 0, (short)pet->db[pet_id].intimate, - 100, 0, 1, pet->db[pet_id].jname); + intif->create_pet(sd->status.account_id, sd->status.char_id, pet->db[pet_id].class_, + mob->db(pet->db[pet_id].class_)->lv, pet->db[pet_id].EggID, + 0, (short)pet->db[pet_id].intimate, PET_HUNGER_STUFFED, + 0, 1, pet->db[pet_id].jname); clif->petEvolutionResult(fd, PET_EVOL_SUCCESS); } else { clif->petEvolutionResult(fd, PET_EVOL_UNKNOWN); } + return; } } @@ -15344,6 +15485,7 @@ static void clif_parse_GMKick(int fd, struct map_session_data *sd) } npc->unload_duplicates(nd, true); npc->unload(nd, true, true); + npc->motd = npc->name2id("HerculesMOTD"); npc->read_event_script(); } break; @@ -19797,9 +19939,9 @@ static int clif_autoshadowspell_list(struct map_session_data *sd) WFIFOHEAD(fd, 2 * 6 + 4); WFIFOW(fd,0) = 0x442; for (i = 0, c = 0; i < MAX_SKILL_DB; i++) - if( sd->status.skill[i].flag == SKILL_FLAG_PLAGIARIZED && sd->status.skill[i].id > 0 && - sd->status.skill[i].id < GS_GLITTERING && skill->get_type(sd->status.skill[i].id) == BF_MAGIC ) - { // Can't auto cast both Extended class and 3rd class skills. + if (sd->status.skill[i].flag == SKILL_FLAG_PLAGIARIZED && sd->status.skill[i].id > 0 && sd->status.skill[i].id < GS_GLITTERING + && skill->get_type(sd->status.skill[i].id, sd->status.skill[i].lv) == BF_MAGIC) { + // Can't auto cast both Extended class and 3rd class skills. WFIFOW(fd,8+c*2) = sd->status.skill[i].id; c++; } @@ -20091,7 +20233,7 @@ static void clif_parse_cashShopOpen2(int fd, struct map_session_data *sd) static void clif_cashShopOpen(int fd, struct map_session_data *sd, int tab) { -#if PACKETVER_MAIN_NUM >= 20101123 || PACKETVER_RE_NUM >= 20120328 || PACKETVER_ZERO_NUM >= defined(PACKETVER_ZERO) +#if PACKETVER_MAIN_NUM >= 20101123 || PACKETVER_RE_NUM >= 20120328 || defined(PACKETVER_ZERO) WFIFOHEAD(fd, sizeof(struct PACKET_ZC_SE_CASHSHOP_OPEN)); struct PACKET_ZC_SE_CASHSHOP_OPEN *p = WFIFOP(fd, 0); p->packetType = HEADER_ZC_SE_CASHSHOP_OPEN; @@ -22169,7 +22311,7 @@ static void clif_rodex_checkname_result(struct map_session_data *sd, int char_id sPacket->Class = class_; sPacket->BaseLevel = base_level; #if PACKETVER >= 20160316 - strncpy(sPacket->Name, name, NAME_LENGTH); + safestrncpy(sPacket->Name, name, NAME_LENGTH); #endif WFIFOSET(fd, sizeof(*sPacket)); #endif @@ -23666,12 +23808,15 @@ static void clif_parse_lapineDdukDdak_ack(int fd, struct map_session_data *sd) _ static void clif_parse_lapineDdukDdak_ack(int fd, struct map_session_data *sd) { #if PACKETVER >= 20160302 + if (sd->state.lapine_ui == 0) + return; + const struct PACKET_CZ_LAPINEDDUKDDAK_ACK *p = RP2PTR(fd); struct item_data *it = itemdb->exists(p->itemId); if (it == NULL || it->lapineddukddak == NULL) return; - if (pc_cant_act(sd)) + if (pc_cant_act_except_lapine(sd)) return; if (pc->search_inventory(sd, it->nameid) == INDEX_NOT_FOUND) return; @@ -23732,6 +23877,55 @@ static void clif_parse_lapineDdukDdak_close(int fd, struct map_session_data *sd) #endif // PACKETVER >= 20160504 } +static bool clif_lapineUpgrade_open(struct map_session_data *sd, int item_id) +{ +#if PACKETVER_MAIN_NUM >= 20170726 || PACKETVER_RE_NUM >= 20170621 || defined(PACKETVER_ZERO) + nullpo_retr(false, sd); + nullpo_retr(false, itemdb->exists(item_id)); + struct PACKET_ZC_LAPINEUPGRADE_OPEN p; + + p.packetType = HEADER_ZC_LAPINEUPGRADE_OPEN; + p.itemId = item_id; + clif->send(&p, sizeof(p), &sd->bl, SELF); + + return true; +#else + return false; +#endif // PACKETVER_MAIN_NUM >= 20170726 || PACKETVER_RE_NUM >= 20170621 || defined(PACKETVER_ZERO) +} + +static void clif_parse_lapineUpgrade_close(int fd, struct map_session_data *sd) __attribute__((nonnull (2))); +static void clif_parse_lapineUpgrade_close(int fd, struct map_session_data *sd) +{ +#if PACKETVER_MAIN_NUM >= 20170111 || PACKETVER_RE_NUM >= 20170111 || defined(PACKETVER_ZERO) +#endif // PACKETVER_MAIN_NUM >= 20170111 || PACKETVER_RE_NUM >= 20170111 || defined(PACKETVER_ZERO) +} + +static void clif_parse_lapineUpgrade_makeItem(int fd, struct map_session_data *sd) __attribute__((nonnull (2))); +static void clif_parse_lapineUpgrade_makeItem(int fd, struct map_session_data *sd) +{ +#if PACKETVER_MAIN_NUM >= 20170111 || PACKETVER_RE_NUM >= 20170111 || defined(PACKETVER_ZERO) + ShowError("Lapin upgrade not implimented yet"); + clif->lapineUpgrade_result(sd, LAPINE_UPGRADE_FAILED); +#endif // PACKETVER_MAIN_NUM >= 20170111 || PACKETVER_RE_NUM >= 20170111 || defined(PACKETVER_ZERO) +} + +static bool clif_lapineUpgrade_result(struct map_session_data *sd, enum lapineUpgrade_result result) +{ +#if PACKETVER_MAIN_NUM >= 20170726 || PACKETVER_RE_NUM >= 20170621 || defined(PACKETVER_ZERO) + nullpo_retr(false, sd); + struct PACKET_ZC_LAPINEUPGRADE_RESULT p; + + p.packetType = HEADER_ZC_LAPINEUPGRADE_RESULT; + p.result = result; + clif->send(&p, sizeof(p), &sd->bl, SELF); + + return true; +#else + return false; +#endif // PACKETVER_MAIN_NUM >= 20170726 || PACKETVER_RE_NUM >= 20170621 || defined(PACKETVER_ZERO) +} + /*========================================== * Main client packet processing function *------------------------------------------*/ @@ -24010,7 +24204,7 @@ static int do_init_clif(bool minimal) timer->add_func_list(clif->clearunit_delayed_sub, "clif_clearunit_delayed_sub"); timer->add_func_list(clif->delayquit, "clif_delayquit"); - clif->delay_clearunit_ers = ers_new(sizeof(struct block_list),"clif.c::delay_clearunit_ers",ERS_OPT_CLEAR); + clif->delay_clearunit_ers = ers_new(sizeof(struct mob_data), "clif.c::delay_clearunit_ers", ERS_OPT_CLEAR); clif->delayed_damage_ers = ers_new(sizeof(struct cdelayed_damage),"clif.c::delayed_damage_ers",ERS_OPT_CLEAR); #if PACKETVER_MAIN_NUM >= 20190403 || PACKETVER_RE_NUM >= 20190320 @@ -24232,6 +24426,8 @@ void clif_defaults(void) clif->mobname_normal_ack = clif_mobname_normal_ack; clif->chatname_ack = clif_chatname_ack; clif->elemname_ack = clif_elemname_ack; + clif->skillname_ack = clif_skillname_ack; + clif->itemname_ack = clif_itemname_ack; clif->unknownname_ack = clif_unknownname_ack; clif->monster_hp_bar = clif_monster_hp_bar; clif->hpmeter = clif_hpmeter; @@ -24975,5 +25171,9 @@ void clif_defaults(void) clif->lapineDdukDdak_result = clif_lapineDdukDdak_result; clif->plapineDdukDdak_ack = clif_parse_lapineDdukDdak_ack; clif->plapineDdukDdak_close = clif_parse_lapineDdukDdak_close; + clif->lapineUpgrade_open = clif_lapineUpgrade_open; + clif->lapineUpgrade_result = clif_lapineUpgrade_result; + clif->pLapineUpgrade_close = clif_parse_lapineUpgrade_close; + clif->pLapineUpgrade_makeItem = clif_parse_lapineUpgrade_makeItem; clif->pReqGearOff = clif_parse_reqGearOff; } diff --git a/src/map/clif.h b/src/map/clif.h index 25ac65af5..fdaaf85e3 100644 --- a/src/map/clif.h +++ b/src/map/clif.h @@ -733,6 +733,11 @@ enum lapineddukddak_result { LAPINEDDKUKDDAK_INVALID_ITEM = 7, }; +enum lapineUpgrade_result { + LAPINE_UPGRADE_SUCCESS = 0, + LAPINE_UPGRADE_FAILED = 1 +}; + enum removeGear_flag { REMOVE_MOUNT_0 = 0, // unused REMOVE_MOUNT_DRAGON = 1, @@ -952,6 +957,8 @@ struct clif_interface { void (*mobname_normal_ack) (int fd, struct block_list *bl); void (*chatname_ack) (int fd, struct block_list *bl); void (*elemname_ack) (int fd, struct block_list *bl); + void (*skillname_ack) (int fd, struct block_list *bl); + void (*itemname_ack) (int fd, struct block_list *bl); void (*unknownname_ack) (int fd, struct block_list *bl); void (*monster_hp_bar) ( struct mob_data* md, struct map_session_data *sd ); int (*hpmeter) (struct map_session_data *sd); @@ -1688,6 +1695,10 @@ struct clif_interface { bool (*lapineDdukDdak_result) (struct map_session_data *sd, enum lapineddukddak_result result); void (*plapineDdukDdak_ack) (int fd, struct map_session_data *sd); void (*plapineDdukDdak_close) (int fd, struct map_session_data *sd); + bool (*lapineUpgrade_open) (struct map_session_data *sd, int item_id); + bool (*lapineUpgrade_result) (struct map_session_data *sd, enum lapineUpgrade_result result); + void (*pLapineUpgrade_close) (int fd, struct map_session_data *sd); + void (*pLapineUpgrade_makeItem) (int fd, struct map_session_data *sd); void (*pReqGearOff) (int fd, struct map_session_data *sd); }; diff --git a/src/map/guild.c b/src/map/guild.c index f344878e1..90f870f1c 100644 --- a/src/map/guild.c +++ b/src/map/guild.c @@ -1519,7 +1519,7 @@ static void guild_guildaura_refresh(struct map_session_data *sd, uint16 skill_id if( !skill_lv ) return; if (sd->sc.data[type] && (group = skill->id2group(sd->sc.data[type]->val4)) != NULL) { - skill->del_unitgroup(group,ALC_MARK); + skill->del_unitgroup(group); status_change_end(&sd->bl,type,INVALID_TIMER); } group = skill->unitsetting(&sd->bl,skill_id,skill_lv,sd->bl.x,sd->bl.y,0); @@ -2069,7 +2069,7 @@ static int guild_break(struct map_session_data *sd, const char *name) } } for(i = 0; i < count; i++) { // FIXME: Why is this not done in the above loop? - skill->del_unitgroup(groups[i],ALC_MARK); + skill->del_unitgroup(groups[i]); } } diff --git a/src/map/intif.c b/src/map/intif.c index a420b7204..276b40780 100644 --- a/src/map/intif.c +++ b/src/map/intif.c @@ -218,13 +218,13 @@ static int intif_saveregistry(struct map_session_data *sd) plen += 1; if( p->value ) { - len = strlen(p->value)+1; + len = strlen(p->value); - WFIFOB(inter_fd, plen) = (unsigned char)len;/* won't be higher; the column size is 254 */ + WFIFOB(inter_fd, plen) = (unsigned char)len; // Won't be higher; the column size is 255. plen += 1; - safestrncpy(WFIFOP(inter_fd,plen), p->value, len); - plen += len; + safestrncpy(WFIFOP(inter_fd, plen), p->value, len + 1); + plen += len + 1; } else { script->reg_destroy_single(sd,key.i64,&p->flag); } @@ -1025,7 +1025,7 @@ static void intif_parse_Registers(int fd) * { keyLength(B), key(<keyLength>), index(L), valLength(B), val(<valLength>) } **/ if (type) { - char sval[254]; + char sval[SCRIPT_STRING_VAR_LENGTH + 1]; for (i = 0; i < max; i++) { int len = RFIFOB(fd, cursor); safestrncpy(key, RFIFOP(fd, cursor + 1), min((int)sizeof(key), len)); @@ -1035,8 +1035,8 @@ static void intif_parse_Registers(int fd) cursor += 4; len = RFIFOB(fd, cursor); - safestrncpy(sval, RFIFOP(fd, cursor + 1), min((int)sizeof(sval), len)); - cursor += len + 1; + safestrncpy(sval, RFIFOP(fd, cursor + 1), min((int)sizeof(sval), len + 1)); + cursor += len + 2; script->set_reg(NULL,sd,reference_uid(script->add_variable(key), index), key, sval, NULL); } diff --git a/src/map/itemdb.h b/src/map/itemdb.h index 5f0790b10..4b06a21d6 100644 --- a/src/map/itemdb.h +++ b/src/map/itemdb.h @@ -606,7 +606,6 @@ struct item_data { #define itemid_isgemstone(n) ((n) >= ITEMID_YELLOW_GEMSTONE && (n) <= ITEMID_BLUE_GEMSTONE) #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) #define itemdb_is_shadowequip(n) ((n) & (EQP_SHADOW_ARMOR|EQP_SHADOW_WEAPON|EQP_SHADOW_SHIELD|EQP_SHADOW_SHOES|EQP_SHADOW_ACC_R|EQP_SHADOW_ACC_L)) #define itemdb_is_costumeequip(n) ((n) & (EQP_COSTUME_HEAD_TOP|EQP_COSTUME_HEAD_MID|EQP_COSTUME_HEAD_LOW|EQP_COSTUME_GARMENT)) diff --git a/src/map/map.c b/src/map/map.c index defa56b2e..24d571498 100644 --- a/src/map/map.c +++ b/src/map/map.c @@ -261,11 +261,13 @@ static int map_addblock(struct block_list *bl) pos = x/BLOCK_SIZE+(y/BLOCK_SIZE)*map->list[m].bxs; if (bl->type == BL_MOB) { + Assert_ret(map->list[m].block_mob != NULL); bl->next = map->list[m].block_mob[pos]; bl->prev = &map->bl_head; if (bl->next) bl->next->prev = bl; map->list[m].block_mob[pos] = bl; } else { + Assert_ret(map->list[m].block != NULL); bl->next = map->list[m].block[pos]; bl->prev = &map->bl_head; if (bl->next) bl->next->prev = bl; @@ -307,8 +309,10 @@ static int map_delblock(struct block_list *bl) if (bl->prev == &map->bl_head) { //Since the head of the list, update the block_list map of [] if (bl->type == BL_MOB) { + Assert_ret(map->list[bl->m].block_mob != NULL); map->list[bl->m].block_mob[pos] = bl->next; } else { + Assert_ret(map->list[bl->m].block != NULL); map->list[bl->m].block[pos] = bl->next; } } else { @@ -450,6 +454,12 @@ static int map_count_oncell(int16 m, int16 x, int16 y, int type, int flag) struct block_list *bl; int count = 0; + Assert_ret(m >= -1); + if (m < 0) + return 0; + Assert_ret(m < map->count); + Assert_ret(map->list[m].block != NULL); + if (x < 0 || y < 0 || (x >= map->list[m].xs) || (y >= map->list[m].ys)) return 0; @@ -512,6 +522,12 @@ static struct skill_unit *map_find_skill_unit_oncell(struct block_list *target, nullpo_retr(NULL, target); m = target->m; + Assert_ret(m >= -1); + if (m < 0) + return 0; + Assert_ret(m < map->count); + Assert_ret(map->list[m].block != NULL); + if (x < 0 || y < 0 || (x >= map->list[m].xs) || (y >= map->list[m].ys)) return NULL; @@ -586,8 +602,11 @@ static int map_vforeachinmap(int (*func)(struct block_list*, va_list), int16 m, struct block_list *bl; int blockcount = map->bl_list_count; + Assert_ret(m >= -1); if (m < 0) return 0; + Assert_ret(m < map->count); + Assert_ret(map->list[m].block != NULL); bsize = map->list[m].bxs * map->list[m].bys; for (i = 0; i < bsize; i++) { @@ -719,24 +738,28 @@ static int bl_getall_area(int type, int m, int x0, int y0, int x1, int y1, int ( struct block_list *bl; int found = 0; + Assert_ret(m >= -1); if (m < 0) return 0; + Assert_ret(m < map->count); + const struct map_data *const listm = &map->list[m]; + Assert_ret(listm->xs > 0 && listm->ys > 0); + Assert_ret(listm->block != NULL); + + // Limit search area to map size + x0 = min(max(x0, 0), map->list[m].xs - 1); + y0 = min(max(y0, 0), map->list[m].ys - 1); + x1 = min(max(x1, 0), map->list[m].xs - 1); + y1 = min(max(y1, 0), map->list[m].ys - 1); if (x1 < x0) swap(x0, x1); if (y1 < y0) swap(y0, y1); - // Limit search area to map size - x0 = max(x0, 0); - y0 = max(y0, 0); - x1 = min(x1, map->list[m].xs - 1); - y1 = min(y1, map->list[m].ys - 1); - { const int x0b = x0 / BLOCK_SIZE; const int x1b = x1 / BLOCK_SIZE; const int y0b = y0 / BLOCK_SIZE; const int y1b = y1 / BLOCK_SIZE; - const struct map_data *const listm = &map->list[m]; const int bxs0 = listm->bxs; // duplication for better performance @@ -1713,9 +1736,9 @@ static bool map_closest_freecell(int16 m, const struct block_list *bl, int16 *x, tx = *x + dx; ty = *y + dy; if (unit_is_dir_or_opposite(dir, UNIT_DIR_SOUTHWEST)) - tx *= costrange / MOVE_COST; + tx = tx * costrange / MOVE_COST; if (unit_is_dir_or_opposite(dir, UNIT_DIR_NORTHWEST)) - ty *= costrange / MOVE_COST; + ty = ty * costrange / MOVE_COST; if (!map->count_oncell(m, tx, ty, type, flag) && map->getcell(m, bl, tx, ty, CELL_CHKPASS)) { *x = tx; *y = ty; @@ -1724,9 +1747,9 @@ static bool map_closest_freecell(int16 m, const struct block_list *bl, int16 *x, tx = *x + dx; ty = *y + dy; if (unit_is_dir_or_opposite(dir, UNIT_DIR_NORTHWEST)) - tx *= costrange / MOVE_COST; + tx = tx * costrange / MOVE_COST; if (unit_is_dir_or_opposite(dir, UNIT_DIR_SOUTHWEST)) - ty *= costrange / MOVE_COST; + ty = ty * costrange / MOVE_COST; if (!map->count_oncell(m, tx, ty, type, flag) && map->getcell(m, bl, tx, ty, CELL_CHKPASS)) { *x = tx; *y = ty; @@ -3077,6 +3100,8 @@ static int map_getcellp(struct map_data *m, const struct block_list *bl, int16 x return (cell.icewall); case CELL_CHKNOICEWALL: return (cell.noicewall); + case CELL_CHKNOSKILL: + return (cell.noskill); // special checks case CELL_CHKPASS: @@ -3141,6 +3166,7 @@ static void map_setcell(int16 m, int16 x, int16 y, cell_t cell, bool flag) case CELL_NOCHAT: map->list[m].cell[j].nochat = flag; break; case CELL_ICEWALL: map->list[m].cell[j].icewall = flag; break; case CELL_NOICEWALL: map->list[m].cell[j].noicewall = flag; break; + case CELL_NOSKILL: map->list[m].cell[j].noskill = flag; break; default: ShowWarning("map_setcell: invalid cell type '%d'\n", (int)cell); @@ -4456,7 +4482,6 @@ static bool inter_config_read_connection(const char *filename, const struct conf static bool inter_config_read_database_names(const char *filename, const struct config_t *config, bool imported) { const struct config_setting_t *setting = NULL; - bool retval = true; nullpo_retr(false, filename); nullpo_retr(false, config); @@ -4474,16 +4499,14 @@ static bool inter_config_read_database_names(const char *filename, const struct libconfig->setting_lookup_mutable_string(setting, "npc_barter_data_db", map->npc_barter_data_db, sizeof(map->npc_barter_data_db)); libconfig->setting_lookup_mutable_string(setting, "npc_expanded_barter_data_db", map->npc_expanded_barter_data_db, sizeof(map->npc_expanded_barter_data_db)); - if (!mapreg->config_read(filename, setting, imported)) - retval = false; - if ((setting = libconfig->lookup(config, "inter_configuration/database_names/registry")) == NULL) { if (imported) - return retval; + return true; ShowError("inter_config_read: inter_configuration/database_names/registry was not found in %s!\n", filename); return false; } - return retval; + + return mapreg->config_read_registry(filename, setting, imported); } /*======================================= @@ -5265,7 +5288,7 @@ static bool map_zone_mf_cache(int m, char *flag, char *params) } } - if( modifier[0] == '\0' || !( skill_id = skill->name2id(skill_name) ) || !skill->get_unit_id( skill->name2id(skill_name), 0) || atoi(modifier) < 1 || atoi(modifier) > USHRT_MAX ) { + if (modifier[0] == '\0' || (skill_id = skill->name2id(skill_name)) == 0 || skill->get_unit_id(skill->name2id(skill_name), 1, 0) == 0 || atoi(modifier) < 1 || atoi(modifier) > USHRT_MAX) { ;/* we don't mind it, the server will take care of it next. */ } else { int idx = map->list[m].unit_count; @@ -6047,11 +6070,15 @@ static bool map_add_questinfo(int m, struct npc_data *nd) nullpo_retr(false, nd); Assert_retr(false, m >= 0 && m < map->count); - if (&VECTOR_LAST(map->list[m].qi_list) == nd) + int i; + ARR_FIND(0, VECTOR_LENGTH(map->list[m].qi_list), i, VECTOR_INDEX(map->list[m].qi_list, i) == nd); + + if (i < VECTOR_LENGTH(map->list[m].qi_list)) { return false; + } VECTOR_ENSURE(map->list[m].qi_list, 1, 1); - VECTOR_PUSH(map->list[m].qi_list, *nd); + VECTOR_PUSH(map->list[m].qi_list, nd); return true; } @@ -6062,7 +6089,7 @@ static bool map_remove_questinfo(int m, struct npc_data *nd) Assert_retr(false, m >= 0 && m < map->count); int i; - ARR_FIND(0, VECTOR_LENGTH(map->list[m].qi_list), i, &VECTOR_INDEX(map->list[m].qi_list, i) == nd); + ARR_FIND(0, VECTOR_LENGTH(map->list[m].qi_list), i, VECTOR_INDEX(map->list[m].qi_list, i) == nd); if (i != VECTOR_LENGTH(map->list[m].qi_list)) { VECTOR_ERASE(map->list[m].qi_list, i); return true; diff --git a/src/map/map.h b/src/map/map.h index a876539d0..17f210bc3 100644 --- a/src/map/map.h +++ b/src/map/map.h @@ -329,6 +329,14 @@ enum bl_type { enum npc_subtype { WARP, SHOP, SCRIPT, CASHSHOP, TOMB }; +/** optional flags for script labels, used by the label db */ +enum script_label_flags { + /** the label can be called from outside the local scope of the NPC */ + LABEL_IS_EXTERN = 0x1, + /** the label is a public or private local NPC function */ + LABEL_IS_USERFUNC = 0x2, +}; + /** * Race type IDs. * @@ -588,6 +596,7 @@ typedef enum { CELL_NOCHAT, CELL_ICEWALL, CELL_NOICEWALL, + CELL_NOSKILL, } cell_t; @@ -612,6 +621,7 @@ typedef enum { CELL_CHKNOCHAT, CELL_CHKICEWALL, CELL_CHKNOICEWALL, + CELL_CHKNOSKILL, } cell_chk; @@ -630,7 +640,8 @@ struct mapcell { novending : 1, nochat : 1, icewall : 1, - noicewall : 1; + noicewall : 1, + noskill : 1; #ifdef CELL_NOSTACK int cell_bl; //Holds amount of bls in this cell. @@ -846,7 +857,7 @@ struct map_data { } cell_buf; /* questinfo entries list */ - VECTOR_DECL(struct npc_data) qi_list; + VECTOR_DECL(struct npc_data *) qi_list; /* speeds up clif_updatestatus processing by causing hpmeter to run only when someone with the permission can view it */ unsigned short hpmeter_visible; diff --git a/src/map/mapreg.h b/src/map/mapreg.h index b3b89e1b2..4318eaea8 100644 --- a/src/map/mapreg.h +++ b/src/map/mapreg.h @@ -21,55 +21,66 @@ #ifndef MAP_MAPREG_H #define MAP_MAPREG_H -#include "map/script.h" // struct reg_db -#include "common/hercules.h" +#include "map/script.h" #include "common/db.h" +#include "common/hercules.h" -/* Forward Declarations */ -struct config_setting_t; // common/conf.h +/** Forward Declarations **/ +struct config_setting_t; struct eri; -/** Container for a mapreg value */ +#ifndef MAPREG_AUTOSAVE_INTERVAL +#define MAPREG_AUTOSAVE_INTERVAL (300 * 1000) //!< Interval for auto-saving permanent global variables to the database in milliseconds. +#endif /** MAPREG_AUTOSAVE_INTERVAL **/ + +/** Global variable structure. **/ struct mapreg_save { - int64 uid; ///< Unique ID - union { - int i; ///< Numeric value - char *str; ///< String value + int64 uid; //!< The variable's unique ID. + union value { //!< The variable's value container. + int i; //!< The variable's integer value. + char *str; //!< The variable's string value. } u; - bool is_string; ///< true if it's a string, false if it's a number - bool save; ///< Whether a save operation is pending + bool is_string; //!< Whether the variable's value is a string. + bool save; //!< Whether the variable's save operation is pending. }; +/** The mapreg interface structure. **/ struct mapreg_interface { - struct reg_db regs; - /* */ - bool skip_insert; - /* */ - struct eri *ers; //[Ind/Hercules] - /* */ - char table[32]; - /* */ - bool dirty; ///< Whether there are modified regs to be saved - /* */ - void (*init) (void); - void (*final) (void); - /* */ + /** Interface variables. **/ + struct eri *ers; //!< Entry manager for global variables. + struct reg_db regs; //!< Generic database for global variables. + bool dirty; //!< Whether there are modified global variables to be saved. + bool skip_insert; //!< Whether to skip inserting the variable into the SQL database in mapreg_set_*_db(). + char num_db[32]; //!< Name of SQL table which holds permanent global integer variables. + char str_db[32]; //!< Name of SQL table which holds permanent global string variables. + + /** Interface functions. **/ int (*readreg) (int64 uid); - char* (*readregstr) (int64 uid); + char *(*readregstr) (int64 uid); + bool (*set_num_db) (int64 uid, const char *name, unsigned int index, int value); + bool (*delete_num_db) (int64 uid, const char *name, unsigned int index); bool (*setreg) (int64 uid, int val); + bool (*set_str_db) (int64 uid, const char *name, unsigned int index, const char *value); + bool (*delete_str_db) (int64 uid, const char *name, unsigned int index); bool (*setregstr) (int64 uid, const char *str); + void (*load_num_db) (void); + void (*load_str_db) (void); void (*load) (void); + void (*save_num_db) (const char *name, unsigned int index, int value); + void (*save_str_db) (const char *name, unsigned int index, const char *value); void (*save) (void); int (*save_timer) (int tid, int64 tick, int id, intptr_t data); int (*destroyreg) (union DBKey key, struct DBData *data, va_list ap); void (*reload) (void); - bool (*config_read) (const char *filename, const struct config_setting_t *config, bool imported); + bool (*config_read_registry) (const char *filename, const struct config_setting_t *config, bool imported); + void (*final) (void); + void (*init) (void); }; #ifdef HERCULES_CORE void mapreg_defaults(void); -#endif // HERCULES_CORE +#endif /** HERCULES_CORE **/ HPShared struct mapreg_interface *mapreg; -#endif /* MAP_MAPREG_H */ +#endif /** MAP_MAPREG_H **/ diff --git a/src/map/mapreg_sql.c b/src/map/mapreg_sql.c index 741505e17..16d8b0ff6 100644 --- a/src/map/mapreg_sql.c +++ b/src/map/mapreg_sql.c @@ -22,7 +22,7 @@ #include "mapreg.h" -#include "map/map.h" // map-"mysql_handle +#include "map/map.h" #include "map/script.h" #include "common/cbasetypes.h" #include "common/conf.h" @@ -38,289 +38,596 @@ #include <stdlib.h> #include <string.h> -static struct mapreg_interface mapreg_s; -struct mapreg_interface *mapreg; - -#define MAPREG_AUTOSAVE_INTERVAL (300*1000) +static struct mapreg_interface mapreg_s; //!< Private interface structure. +struct mapreg_interface *mapreg; //!< Public interface structure. /** - * Looks up the value of an integer variable using its uid. + * Looks up the value of a global integer variable using its unique ID. * - * @param uid variable's unique identifier. - * @return variable's integer value - */ -static int mapreg_readreg(int64 uid) + * @param uid The variable's unique ID. + * @return The variable's value or 0 if the variable does not exist. + * + **/ +static int mapreg_get_num_reg(int64 uid) { - struct mapreg_save *m = i64db_get(mapreg->regs.vars, uid); - return m?m->u.i:0; + struct mapreg_save *var = i64db_get(mapreg->regs.vars, uid); + return (var != NULL) ? var->u.i : 0; } /** - * Looks up the value of a string variable using its uid. + * Looks up the value of a global string variable using its unique ID. * - * @param uid variable's unique identifier - * @return variable's string value - */ -static char *mapreg_readregstr(int64 uid) + * @param uid The variable's unique ID. + * @return The variable's value or NULL if the variable does not exist. + * + **/ +static char *mapreg_get_str_reg(int64 uid) { - struct mapreg_save *m = i64db_get(mapreg->regs.vars, uid); - return m?m->u.str:NULL; + struct mapreg_save *var = i64db_get(mapreg->regs.vars, uid); + return (var != NULL) ? var->u.str : NULL; } /** - * Modifies the value of an integer variable. + * Sets the value of a global integer variable. * - * @param uid variable's unique identifier - * @param val new value - * @retval true value was successfully set - */ -static bool mapreg_setreg(int64 uid, int val) + * @param uid The variable's unique ID. + * @param name The variable's name. + * @param index The variable's array index. + * @param value The variable's new value. + * @return True on success, otherwise false. + * + **/ +static bool mapreg_set_num_db(int64 uid, const char *name, unsigned int index, int value) { - struct mapreg_save *m; - int num = script_getvarid(uid); - unsigned int i = script_getvaridx(uid); - const char* name = script->get_str(num); - - nullpo_retr(true, name); - if( val != 0 ) { - if( (m = i64db_get(mapreg->regs.vars, uid)) ) { - m->u.i = val; - if(name[1] != '@') { - m->save = true; - mapreg->dirty = true; - } - } else { - if( i ) - script->array_update(&mapreg->regs, uid, false); - - m = ers_alloc(mapreg->ers, struct mapreg_save); - - m->u.i = val; - m->uid = uid; - m->save = false; - m->is_string = false; - - if (name[1] != '@' && !mapreg->skip_insert) {// write new variable to database - char tmp_str[(SCRIPT_VARNAME_LENGTH+1)*2+1]; - SQL->EscapeStringLen(map->mysql_handle, tmp_str, name, strnlen(name, SCRIPT_VARNAME_LENGTH+1)); - if( SQL_ERROR == SQL->Query(map->mysql_handle, "INSERT INTO `%s`(`varname`,`index`,`value`) VALUES ('%s','%u','%d')", mapreg->table, tmp_str, i, val) ) - Sql_ShowDebug(map->mysql_handle); - } - i64db_put(mapreg->regs.vars, uid, m); + nullpo_retr(false, name); + Assert_retr(false, *name != '\0'); + Assert_retr(false, strlen(name) <= SCRIPT_VARNAME_LENGTH); + + if (value == 0) + return mapreg->delete_num_db(uid, name, index); + + struct mapreg_save *var = i64db_get(mapreg->regs.vars, uid); + + // Update variable. + if (var != NULL) { + var->u.i = value; + + if (script->is_permanent_variable(name)) { + var->save = true; + mapreg->dirty = true; } - } else { // val == 0 - if( i ) - script->array_update(&mapreg->regs, uid, true); - if( (m = i64db_get(mapreg->regs.vars, uid)) ) { - ers_free(mapreg->ers, m); + + return true; + } + + // Add new variable. + if (index != 0) + script->array_update(&mapreg->regs, uid, false); + + var = ers_alloc(mapreg->ers, struct mapreg_save); + var->u.i = value; + var->uid = uid; + var->save = false; + var->is_string = false; + i64db_put(mapreg->regs.vars, uid, var); + + if (script->is_permanent_variable(name) && !mapreg->skip_insert) { + struct SqlStmt *stmt = SQL->StmtMalloc(map->mysql_handle); + + if (stmt == NULL) { + SqlStmt_ShowDebug(stmt); + return false; } - i64db_remove(mapreg->regs.vars, uid); - if( name[1] != '@' ) {// Remove from database because it is unused. - if( SQL_ERROR == SQL->Query(map->mysql_handle, "DELETE FROM `%s` WHERE `varname`='%s' AND `index`='%u'", mapreg->table, name, i) ) - Sql_ShowDebug(map->mysql_handle); + const char *query = "INSERT INTO `%s` (`key`, `index`, `value`) VALUES (?, ?, ?)"; + + if (SQL_ERROR == SQL->StmtPrepare(stmt, query, mapreg->num_db) + || SQL_ERROR == SQL->StmtBindParam(stmt, 0, SQLDT_STRING, name, strlen(name)) + || SQL_ERROR == SQL->StmtBindParam(stmt, 1, SQLDT_UINT32, &index, sizeof(index)) + || SQL_ERROR == SQL->StmtBindParam(stmt, 2, SQLDT_INT32, &value, sizeof(value)) + || SQL_ERROR == SQL->StmtExecute(stmt)) { + SqlStmt_ShowDebug(stmt); + SQL->StmtFree(stmt); + return false; } + + SQL->StmtFree(stmt); } return true; } /** - * Modifies the value of a string variable. + * Deletes a global integer variable. * - * @param uid variable's unique identifier - * @param str new value - * @retval true value was successfully set - */ -static bool mapreg_setregstr(int64 uid, const char *str) + * @param uid The variable's unique ID. + * @param name The variable's name. + * @param index The variable's array index. + * @return True on success, otherwise false. + * + **/ +static bool mapreg_delete_num_db(int64 uid, const char *name, unsigned int index) { - struct mapreg_save *m; - int num = script_getvarid(uid); - unsigned int i = script_getvaridx(uid); - const char* name = script->get_str(num); - - nullpo_retr(true, name); - - if( str == NULL || *str == 0 ) { - if( i ) - script->array_update(&mapreg->regs, uid, true); - if(name[1] != '@') { - if (SQL_ERROR == SQL->Query(map->mysql_handle, "DELETE FROM `%s` WHERE `varname`='%s' AND `index`='%u'", mapreg->table, name, i)) - Sql_ShowDebug(map->mysql_handle); + nullpo_retr(false, name); + Assert_retr(false, *name != '\0'); + Assert_retr(false, strlen(name) <= SCRIPT_VARNAME_LENGTH); + + struct mapreg_save *var = i64db_get(mapreg->regs.vars, uid); + + if (var != NULL) + ers_free(mapreg->ers, var); + + if (index != 0) + script->array_update(&mapreg->regs, uid, true); + + i64db_remove(mapreg->regs.vars, uid); + + if (script->is_permanent_variable(name)) { + struct SqlStmt *stmt = SQL->StmtMalloc(map->mysql_handle); + + if (stmt == NULL) { + SqlStmt_ShowDebug(stmt); + return false; } - if( (m = i64db_get(mapreg->regs.vars, uid)) ) { - if( m->u.str != NULL ) - aFree(m->u.str); - ers_free(mapreg->ers, m); + + const char *query = "DELETE FROM `%s` WHERE `key`=? AND `index`=?"; + + if (SQL_ERROR == SQL->StmtPrepare(stmt, query, mapreg->num_db) + || SQL_ERROR == SQL->StmtBindParam(stmt, 0, SQLDT_STRING, name, strlen(name)) + || SQL_ERROR == SQL->StmtBindParam(stmt, 1, SQLDT_UINT32, &index, sizeof(index)) + || SQL_ERROR == SQL->StmtExecute(stmt)) { + SqlStmt_ShowDebug(stmt); + SQL->StmtFree(stmt); + return false; } - i64db_remove(mapreg->regs.vars, uid); - } else { - if( (m = i64db_get(mapreg->regs.vars, uid)) ) { - if( m->u.str != NULL ) - aFree(m->u.str); - m->u.str = aStrdup(str); - if(name[1] != '@') { - mapreg->dirty = true; - m->save = true; - } - } else { - if( i ) - script->array_update(&mapreg->regs, uid, false); - - m = ers_alloc(mapreg->ers, struct mapreg_save); - - m->uid = uid; - m->u.str = aStrdup(str); - m->save = false; - m->is_string = true; - - if(name[1] != '@' && !mapreg->skip_insert) { //put returned null, so we must insert. - char tmp_str[(SCRIPT_VARNAME_LENGTH+1)*2+1]; - char tmp_str2[255*2+1]; - SQL->EscapeStringLen(map->mysql_handle, tmp_str, name, strnlen(name, SCRIPT_VARNAME_LENGTH+1)); - SQL->EscapeStringLen(map->mysql_handle, tmp_str2, str, strnlen(str, 255)); - if( SQL_ERROR == SQL->Query(map->mysql_handle, "INSERT INTO `%s`(`varname`,`index`,`value`) VALUES ('%s','%u','%s')", mapreg->table, tmp_str, i, tmp_str2) ) - Sql_ShowDebug(map->mysql_handle); - } - i64db_put(mapreg->regs.vars, uid, m); + + SQL->StmtFree(stmt); + } + + return true; +} + +/** + * Sets the value of a global integer variable or deletes it if passed value is 0. + * + * @param uid The variable's unique ID. + * @param val The variable's new value. + * @return True on success, otherwise false. + * + **/ +static bool mapreg_set_num(int64 uid, int val) +{ + unsigned int index = script_getvaridx(uid); + const char *name = script->get_str(script_getvarid(uid)); + + if (val != 0) + return mapreg->set_num_db(uid, name, index, val); + else + return mapreg->delete_num_db(uid, name, index); +} + +/** + * Sets the value of a global string variable. + * + * @param uid The variable's unique ID. + * @param name The variable's name. + * @param index The variable's array index. + * @param value The variable's new value. + * @return True on success, otherwise false. + * + **/ +static bool mapreg_set_str_db(int64 uid, const char *name, unsigned int index, const char *value) +{ + nullpo_retr(false, name); + Assert_retr(false, *name != '\0'); + Assert_retr(false, strlen(name) <= SCRIPT_VARNAME_LENGTH); + + if (value == NULL || *value == '\0') + return mapreg->delete_str_db(uid, name, index); + + if (script->is_permanent_variable(name)) + Assert_retr(false, strlen(value) <= SCRIPT_STRING_VAR_LENGTH); + + struct mapreg_save *var = i64db_get(mapreg->regs.vars, uid); + + // Update variable. + if (var != NULL) { + if (var->u.str != NULL) + aFree(var->u.str); + + var->u.str = aStrdup(value); + + if (script->is_permanent_variable(name)) { + var->save = true; + mapreg->dirty = true; } + + return true; + } + + // Add new variable. + if (index != 0) + script->array_update(&mapreg->regs, uid, false); + + var = ers_alloc(mapreg->ers, struct mapreg_save); + var->u.str = aStrdup(value); + var->uid = uid; + var->save = false; + var->is_string = true; + i64db_put(mapreg->regs.vars, uid, var); + + if (script->is_permanent_variable(name) && !mapreg->skip_insert) { + struct SqlStmt *stmt = SQL->StmtMalloc(map->mysql_handle); + + if (stmt == NULL) { + SqlStmt_ShowDebug(stmt); + return false; + } + + const char *query = "INSERT INTO `%s` (`key`, `index`, `value`) VALUES (?, ?, ?)"; + + if (SQL_ERROR == SQL->StmtPrepare(stmt, query, mapreg->str_db) + || SQL_ERROR == SQL->StmtBindParam(stmt, 0, SQLDT_STRING, name, strlen(name)) + || SQL_ERROR == SQL->StmtBindParam(stmt, 1, SQLDT_UINT32, &index, sizeof(index)) + || SQL_ERROR == SQL->StmtBindParam(stmt, 2, SQLDT_STRING, value, strlen(value)) + || SQL_ERROR == SQL->StmtExecute(stmt)) { + SqlStmt_ShowDebug(stmt); + SQL->StmtFree(stmt); + return false; + } + + SQL->StmtFree(stmt); } return true; } /** - * Loads permanent variables from database. - */ -static void script_load_mapreg(void) + * Deletes a global string variable. + * + * @param uid The variable's unique ID. + * @param name The variable's name. + * @param index The variable's array index. + * @return True on success, otherwise false. + * + **/ +static bool mapreg_delete_str_db(int64 uid, const char *name, unsigned int index) +{ + nullpo_retr(false, name); + Assert_retr(false, *name != '\0'); + Assert_retr(false, strlen(name) <= SCRIPT_VARNAME_LENGTH); + + struct mapreg_save *var = i64db_get(mapreg->regs.vars, uid); + + if (var != NULL) { + if (var->u.str != NULL) + aFree(var->u.str); + + ers_free(mapreg->ers, var); + } + + if (index != 0) + script->array_update(&mapreg->regs, uid, true); + + i64db_remove(mapreg->regs.vars, uid); + + if (script->is_permanent_variable(name)) { + struct SqlStmt *stmt = SQL->StmtMalloc(map->mysql_handle); + + if (stmt == NULL) { + SqlStmt_ShowDebug(stmt); + return false; + } + + const char *query = "DELETE FROM `%s` WHERE `key`=? AND `index`=?"; + + if (SQL_ERROR == SQL->StmtPrepare(stmt, query, mapreg->str_db) + || SQL_ERROR == SQL->StmtBindParam(stmt, 0, SQLDT_STRING, name, strlen(name)) + || SQL_ERROR == SQL->StmtBindParam(stmt, 1, SQLDT_UINT32, &index, sizeof(index)) + || SQL_ERROR == SQL->StmtExecute(stmt)) { + SqlStmt_ShowDebug(stmt); + SQL->StmtFree(stmt); + return false; + } + + SQL->StmtFree(stmt); + } + + return true; +} + +/** + * Sets the value of a global string variable or deletes it if passed value is NULL or an empty string. + * + * @param uid The variable's unique ID. + * @param str The variable's new value. + * @return True on success, otherwise false. + * + **/ +static bool mapreg_set_str(int64 uid, const char *str) +{ + unsigned int index = script_getvaridx(uid); + const char *name = script->get_str(script_getvarid(uid)); + + if (str != NULL && *str != '\0') + return mapreg->set_str_db(uid, name, index, str); + else + return mapreg->delete_str_db(uid, name, index); +} + +/** + * Loads permanent global interger variables from the database. + * + **/ +static void mapreg_load_num_db(void) { - /* - 0 1 2 - +-------------------------+ - | varname | index | value | - +-------------------------+ - */ struct SqlStmt *stmt = SQL->StmtMalloc(map->mysql_handle); - char varname[SCRIPT_VARNAME_LENGTH+1]; - int index; - char value[255+1]; - uint32 length; - - if ( SQL_ERROR == SQL->StmtPrepare(stmt, "SELECT `varname`, `index`, `value` FROM `%s`", mapreg->table) - || SQL_ERROR == SQL->StmtExecute(stmt) - ) { + + if (stmt == NULL) { SqlStmt_ShowDebug(stmt); - SQL->StmtFree(stmt); return; } - mapreg->skip_insert = true; + const char *query = "SELECT `key`, `index`, `value` FROM `%s`"; + char name[SCRIPT_VARNAME_LENGTH + 1]; + unsigned int index; + int value; - SQL->StmtBindColumn(stmt, 0, SQLDT_STRING, &varname, sizeof varname, &length, NULL); - SQL->StmtBindColumn(stmt, 1, SQLDT_INT, &index, sizeof index, NULL, NULL); - SQL->StmtBindColumn(stmt, 2, SQLDT_STRING, &value, sizeof value, NULL, NULL); + if (SQL_ERROR == SQL->StmtPrepare(stmt, query, mapreg->num_db) + || SQL_ERROR == SQL->StmtExecute(stmt) + || SQL_ERROR == SQL->StmtBindColumn(stmt, 0, SQLDT_STRING, &name, sizeof(name), NULL, NULL) + || SQL_ERROR == SQL->StmtBindColumn(stmt, 1, SQLDT_UINT32, &index, sizeof(index), NULL, NULL) + || SQL_ERROR == SQL->StmtBindColumn(stmt, 2, SQLDT_INT32, &value, sizeof(value), NULL, NULL)) { + SqlStmt_ShowDebug(stmt); + SQL->StmtFree(stmt); + return; + } - while ( SQL_SUCCESS == SQL->StmtNextRow(stmt) ) { - int s = script->add_variable(varname); - int i = index; + if (SQL->StmtNumRows(stmt) < 1) { + SQL->StmtFree(stmt); + return; + } + mapreg->skip_insert = true; + + while (SQL_SUCCESS == SQL->StmtNextRow(stmt)) { + int var_key = script->add_variable(name); + int64 uid = reference_uid(var_key, index); - if( i64db_exists(mapreg->regs.vars, reference_uid(s, i)) ) { - ShowWarning("load_mapreg: duplicate! '%s' => '%s' skipping...\n",varname,value); + if (i64db_exists(mapreg->regs.vars, uid)) { + ShowWarning("mapreg_load_num_db: Duplicate! '%s' => '%d' Skipping...\n", name, value); continue; } - if( varname[length-1] == '$' ) { - mapreg->setregstr(reference_uid(s, i),value); - } else { - mapreg->setreg(reference_uid(s, i),atoi(value)); - } + + mapreg->setreg(uid, value); } + mapreg->skip_insert = false; SQL->StmtFree(stmt); +} + +/** + * Loads permanent global string variables from the database. + * + **/ +static void mapreg_load_str_db(void) +{ + struct SqlStmt *stmt = SQL->StmtMalloc(map->mysql_handle); + + if (stmt == NULL) { + SqlStmt_ShowDebug(stmt); + return; + } + + const char *query = "SELECT `key`, `index`, `value` FROM `%s`"; + char name[SCRIPT_VARNAME_LENGTH + 1]; + unsigned int index; + char value[SCRIPT_STRING_VAR_LENGTH + 1]; + + if (SQL_ERROR == SQL->StmtPrepare(stmt, query, mapreg->str_db) + || SQL_ERROR == SQL->StmtExecute(stmt) + || SQL_ERROR == SQL->StmtBindColumn(stmt, 0, SQLDT_STRING, &name, sizeof(name), NULL, NULL) + || SQL_ERROR == SQL->StmtBindColumn(stmt, 1, SQLDT_UINT32, &index, sizeof(index), NULL, NULL) + || SQL_ERROR == SQL->StmtBindColumn(stmt, 2, SQLDT_STRING, &value, sizeof(value), NULL, NULL)) { + SqlStmt_ShowDebug(stmt); + SQL->StmtFree(stmt); + return; + } + + if (SQL->StmtNumRows(stmt) < 1) { + SQL->StmtFree(stmt); + return; + } + + mapreg->skip_insert = true; + + while (SQL_SUCCESS == SQL->StmtNextRow(stmt)) { + int var_key = script->add_variable(name); + int64 uid = reference_uid(var_key, index); + + if (i64db_exists(mapreg->regs.vars, uid)) { + ShowWarning("mapreg_load_str_db: Duplicate! '%s' => '%s' Skipping...\n", name, value); + continue; + } + + mapreg->setregstr(uid, value); + } mapreg->skip_insert = false; + SQL->StmtFree(stmt); +} +/** + * Loads permanent global variables from the database. + * + **/ +static void mapreg_load(void) +{ + mapreg->load_num_db(); + mapreg->load_str_db(); mapreg->dirty = false; } /** - * Saves permanent variables to database. - */ -static void script_save_mapreg(void) + * Saves a permanent global integer variable to the database. + * + * @param name The variable's name. + * @param index The variable's array index. + * @param value The variable's value. + * + **/ +static void mapreg_save_num_db(const char *name, unsigned int index, int value) +{ + nullpo_retv(name); + Assert_retv(*name != '\0'); + Assert_retv(strlen(name) <= SCRIPT_VARNAME_LENGTH); + + struct SqlStmt *stmt = SQL->StmtMalloc(map->mysql_handle); + + if (stmt == NULL) { + SqlStmt_ShowDebug(stmt); + return; + } + + const char *query = "UPDATE `%s` SET `value`=? WHERE `key`=? AND `index`=? LIMIT 1"; + + if (SQL_ERROR == SQL->StmtPrepare(stmt, query, mapreg->num_db) + || SQL_ERROR == SQL->StmtBindParam(stmt, 0, SQLDT_INT32, &value, sizeof(value)) + || SQL_ERROR == SQL->StmtBindParam(stmt, 1, SQLDT_STRING, name, strlen(name)) + || SQL_ERROR == SQL->StmtBindParam(stmt, 2, SQLDT_UINT32, &index, sizeof(index)) + || SQL_ERROR == SQL->StmtExecute(stmt)) { + SqlStmt_ShowDebug(stmt); + } + + SQL->StmtFree(stmt); +} + +/** + * Saves a permanent global string variable to the database. + * + * @param name The variable's name. + * @param index The variable's array index. + * @param value The variable's value. + * + **/ +static void mapreg_save_str_db(const char *name, unsigned int index, const char *value) +{ + nullpo_retv(name); + nullpo_retv(value); + Assert_retv(*name != '\0'); + Assert_retv(strlen(name) <= SCRIPT_VARNAME_LENGTH); + Assert_retv(*value != '\0'); + Assert_retv(strlen(value) <= SCRIPT_STRING_VAR_LENGTH); + + struct SqlStmt *stmt = SQL->StmtMalloc(map->mysql_handle); + + if (stmt == NULL) { + SqlStmt_ShowDebug(stmt); + return; + } + + const char *query = "UPDATE `%s` SET `value`=? WHERE `key`=? AND `index`=? LIMIT 1"; + + if (SQL_ERROR == SQL->StmtPrepare(stmt, query, mapreg->str_db) + || SQL_ERROR == SQL->StmtBindParam(stmt, 0, SQLDT_STRING, value, strlen(value)) + || SQL_ERROR == SQL->StmtBindParam(stmt, 1, SQLDT_STRING, name, strlen(name)) + || SQL_ERROR == SQL->StmtBindParam(stmt, 2, SQLDT_UINT32, &index, sizeof(index)) + || SQL_ERROR == SQL->StmtExecute(stmt)) { + SqlStmt_ShowDebug(stmt); + } + + SQL->StmtFree(stmt); +} + +/** + * Saves permanent global variables to the database. + * + **/ +static void mapreg_save(void) { if (mapreg->dirty) { struct DBIterator *iter = db_iterator(mapreg->regs.vars); - struct mapreg_save *m = NULL; - for (m = dbi_first(iter); dbi_exists(iter); m = dbi_next(iter)) { - if (m->save) { - int num = script_getvarid(m->uid); - int i = script_getvaridx(m->uid); - const char* name = script->get_str(num); - nullpo_retv(name); - if (!m->is_string) { - if( SQL_ERROR == SQL->Query(map->mysql_handle, "UPDATE `%s` SET `value`='%d' WHERE `varname`='%s' AND `index`='%d' LIMIT 1", mapreg->table, m->u.i, name, i) ) - Sql_ShowDebug(map->mysql_handle); - } else { - char tmp_str2[2*255+1]; - SQL->EscapeStringLen(map->mysql_handle, tmp_str2, m->u.str, safestrnlen(m->u.str, 255)); - if( SQL_ERROR == SQL->Query(map->mysql_handle, "UPDATE `%s` SET `value`='%s' WHERE `varname`='%s' AND `index`='%d' LIMIT 1", mapreg->table, tmp_str2, name, i) ) - Sql_ShowDebug(map->mysql_handle); - } - m->save = false; + struct mapreg_save *var = NULL; + + for (var = dbi_first(iter); dbi_exists(iter); var = dbi_next(iter)) { + if (var->save) { + int index = script_getvaridx(var->uid); + const char *name = script->get_str(script_getvarid(var->uid)); + + if (!var->is_string) + mapreg->save_num_db(name, index, var->u.i); + else + mapreg->save_str_db(name, index, var->u.str); + + var->save = false; } } + dbi_destroy(iter); mapreg->dirty = false; } } /** - * Timer event to auto-save permanent variables. + * Timer event to auto-save permanent global variables. * - * @see timer->do_timer - */ -static int script_autosave_mapreg(int tid, int64 tick, int id, intptr_t data) + * @see timer->do_timer() + * + * @param tid Unused. + * @param tick Unused. + * @param id Unused. + * @param data Unused. + * @return Always 0. + * + **/ +static int mapreg_save_timer(int tid, int64 tick, int id, intptr_t data) { mapreg->save(); return 0; } /** - * Destroys a mapreg_save structure, freeing the contained string, if any. + * Destroys a mapreg_save structure and frees the contained string, if any. * * @see DBApply - */ -static int mapreg_destroyreg(union DBKey key, struct DBData *data, va_list ap) + * + * @param key Unused. + * @param data The DB data holding the mapreg_save data. + * @param ap Unused. + * @return 0 on success, otherwise 1. + * + **/ +static int mapreg_destroy_reg(union DBKey key, struct DBData *data, va_list ap) { - struct mapreg_save *m = NULL; + nullpo_retr(1, data); if (data->type != DB_DATA_PTR) // Sanity check - return 0; + return 1; - m = DB->data2ptr(data); + struct mapreg_save *var = DB->data2ptr(data); - if (m->is_string) { - if (m->u.str) - aFree(m->u.str); - } - ers_free(mapreg->ers, m); + if (var == NULL) + return 1; + + if (var->is_string && var->u.str != NULL) + aFree(var->u.str); + ers_free(mapreg->ers, var); return 0; } /** - * Reloads mapregs, saving to database beforehand. + * Reloads permanent global variables, saving them to the database beforehand. * - * This has the effect of clearing the temporary variables, and - * reloading the permanent ones. - */ + * This has the effect of clearing the temporary global variables and reloading the permanent ones. + * + **/ static void mapreg_reload(void) { mapreg->save(); - mapreg->regs.vars->clear(mapreg->regs.vars, mapreg->destroyreg); - if( mapreg->regs.arrays ) { + if (mapreg->regs.arrays != NULL) { mapreg->regs.arrays->destroy(mapreg->regs.arrays, script->array_free_db); mapreg->regs.arrays = NULL; } @@ -329,86 +636,105 @@ static void mapreg_reload(void) } /** - * Finalizer. - */ + * Loads the mapreg database table names from configuration file. + * + * @param filename Path to configuration file. (Used in error and warning messages). + * @param config The current config being parsed. + * @param imported Whether the current config is imported from another file. + * @return True on success, otherwise false. + * + **/ +static bool mapreg_config_read_registry(const char *filename, const struct config_setting_t *config, bool imported) +{ + nullpo_retr(false, filename); + nullpo_retr(false, config); + + bool ret_val = true; + size_t sz = sizeof(mapreg->num_db); + int result = libconfig->setting_lookup_mutable_string(config, "map_reg_num_db", mapreg->num_db, sz); + + if (result != CONFIG_TRUE && !imported) { + ShowError("%s: inter_configuration/database_names/registry/map_reg_num_db was not found in %s!\n", + __func__, filename); + ret_val = false; + } + + sz = sizeof(mapreg->str_db); + result = libconfig->setting_lookup_mutable_string(config, "map_reg_str_db", mapreg->str_db, sz); + + if (result != CONFIG_TRUE && !imported) { + ShowError("%s: inter_configuration/database_names/registry/map_reg_str_db was not found in %s!\n", + __func__, filename); + ret_val = false; + } + + return ret_val; +} + +/** + * Saves permanent global variables to the database and frees all the memory they use afterwards. + * + **/ static void mapreg_final(void) { mapreg->save(); - mapreg->regs.vars->destroy(mapreg->regs.vars, mapreg->destroyreg); - ers_destroy(mapreg->ers); - if( mapreg->regs.arrays ) + if (mapreg->regs.arrays != NULL) mapreg->regs.arrays->destroy(mapreg->regs.arrays, script->array_free_db); } /** - * Initializer. - */ + * Allocates memory for permanent global variables, loads them from the database and initializes the auto-save timer. + * + **/ static void mapreg_init(void) { mapreg->regs.vars = i64db_alloc(DB_OPT_BASE); mapreg->ers = ers_new(sizeof(struct mapreg_save), "mapreg_sql.c::mapreg_ers", ERS_OPT_CLEAN); - mapreg->load(); - - timer->add_func_list(mapreg->save_timer, "mapreg_script_autosave_mapreg"); + timer->add_func_list(mapreg->save_timer, "mapreg_save_timer"); timer->add_interval(timer->gettick() + MAPREG_AUTOSAVE_INTERVAL, mapreg->save_timer, 0, 0, MAPREG_AUTOSAVE_INTERVAL); } /** - * Loads the mapreg configuration file. - * - * @param filename Path to configuration file (used in error and warning messages). - * @param config The current config being parsed. - * @param imported Whether the current config is imported from another file. + * Initializes the mapreg interface defaults. * - * @retval false in case of error. - */ -static bool mapreg_config_read(const char *filename, const struct config_setting_t *config, bool imported) -{ - nullpo_retr(false, filename); - nullpo_retr(false, config); - - if (libconfig->setting_lookup_mutable_string(config, "mapreg_db", mapreg->table, sizeof(mapreg->table)) != CONFIG_TRUE) - return false; - - return true; -} - -/** - * Interface defaults initializer. - */ + **/ void mapreg_defaults(void) { + /** Interface structure. **/ mapreg = &mapreg_s; - /* */ - mapreg->regs.vars = NULL; + /** Interface variables. **/ mapreg->ers = NULL; - mapreg->skip_insert = false; - - safestrncpy(mapreg->table, "mapreg", sizeof(mapreg->table)); - mapreg->dirty = false; - - /* */ + mapreg->regs.vars = NULL; mapreg->regs.arrays = NULL; - - /* */ - mapreg->init = mapreg_init; - mapreg->final = mapreg_final; - - /* */ - mapreg->readreg = mapreg_readreg; - mapreg->readregstr = mapreg_readregstr; - mapreg->setreg = mapreg_setreg; - mapreg->setregstr = mapreg_setregstr; - mapreg->load = script_load_mapreg; - mapreg->save = script_save_mapreg; - mapreg->save_timer = script_autosave_mapreg; - mapreg->destroyreg = mapreg_destroyreg; + mapreg->dirty = false; + mapreg->skip_insert = false; + safestrncpy(mapreg->num_db, "map_reg_num_db", sizeof(mapreg->num_db)); + safestrncpy(mapreg->str_db, "map_reg_str_db", sizeof(mapreg->str_db)); + + /** Interface functions. **/ + mapreg->readreg = mapreg_get_num_reg; + mapreg->readregstr = mapreg_get_str_reg; + mapreg->set_num_db = mapreg_set_num_db; + mapreg->delete_num_db = mapreg_delete_num_db; + mapreg->setreg = mapreg_set_num; + mapreg->set_str_db = mapreg_set_str_db; + mapreg->delete_str_db = mapreg_delete_str_db; + mapreg->setregstr = mapreg_set_str; + mapreg->load_num_db = mapreg_load_num_db; + mapreg->load_str_db = mapreg_load_str_db; + mapreg->load = mapreg_load; + mapreg->save_num_db = mapreg_save_num_db; + mapreg->save_str_db = mapreg_save_str_db; + mapreg->save = mapreg_save; + mapreg->save_timer = mapreg_save_timer; + mapreg->destroyreg = mapreg_destroy_reg; mapreg->reload = mapreg_reload; - mapreg->config_read = mapreg_config_read; - + mapreg->config_read_registry = mapreg_config_read_registry; + mapreg->final = mapreg_final; + mapreg->init = mapreg_init; } diff --git a/src/map/messages_main.h b/src/map/messages_main.h index 9f5a17662..dab537b6a 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: 20200304 +Latest version: 20200520 */ enum clif_messages { @@ -13866,12 +13866,14 @@ Ghost %d Shadow %d */ MSG_NAVIGATION_PROPERTY8 = 0x8de, -/*20120417 to latest +/*20120417 to 20200506 언데드%d Undead %d 20130807 to 20130814 염속성%d Ghost %d +20200520 to latest +불사%d */ MSG_NAVIGATION_PROPERTY9 = 0x8df, /*20120417 to latest @@ -22612,6 +22614,28 @@ DEATH: %.1f%% (basic: 100.0%%, %s: %.1f%%) */ MSG_ID_EE3 = 0xee3, #endif +#if PACKETVER >= 20200506 +/*20200506 to latest +특성 마법 공격력이 증가되었습니다. +*/ + MSG_ID_EE4 = 0xee4, +/*20200506 to latest +스펠 인챈팅 효과가 해제되었습니다. +*/ + MSG_ID_EE5 = 0xee5, +/*20200506 to latest +프롬 디 어비스 효과가 해제되었습니다. +*/ + MSG_ID_EE6 = 0xee6, +/*20200506 to latest +특성 물리 공격력, 특성 마법 공격력 및 명중률이 증가되었습니다. +*/ + MSG_ID_EE7 = 0xee7, +/*20200506 to latest +어비스 슬레이어 효과가 해제되었습니다. +*/ + MSG_ID_EE8 = 0xee8, +#endif }; #endif /* MAP_MESSAGES_MAIN_H */ diff --git a/src/map/messages_zero.h b/src/map/messages_zero.h index babe9384c..051d0e9df 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: 20200304 +Latest version: 20200520 */ enum clif_messages { @@ -11263,9 +11263,11 @@ Shadow %d Ghost %d */ MSG_NAVIGATION_PROPERTY8 = 0x8de, -/*20171018 to latest +/*20171018 to 20200506 언데드%d Undead %d +20200520 to latest +불사%d */ MSG_NAVIGATION_PROPERTY9 = 0x8df, /*20171018 to latest @@ -18701,6 +18703,28 @@ DEATH: %.1f%% (basic: 100.0%%, %s: %.1f%%) */ MSG_ID_EE3 = 0xee3, #endif +#if PACKETVER >= 20200506 +/*20200506 to latest +특성 마법 공격력이 증가되었습니다. +*/ + MSG_ID_EE4 = 0xee4, +/*20200506 to latest +스펠 인챈팅 효과가 해제되었습니다. +*/ + MSG_ID_EE5 = 0xee5, +/*20200506 to latest +프롬 디 어비스 효과가 해제되었습니다. +*/ + MSG_ID_EE6 = 0xee6, +/*20200506 to latest +특성 물리 공격력, 특성 마법 공격력 및 명중률이 증가되었습니다. +*/ + MSG_ID_EE7 = 0xee7, +/*20200506 to latest +어비스 슬레이어 효과가 해제되었습니다. +*/ + MSG_ID_EE8 = 0xee8, +#endif }; #endif /* MAP_MESSAGES_ZERO_H */ diff --git a/src/map/mob.c b/src/map/mob.c index 51a32abd9..849b962a1 100644 --- a/src/map/mob.c +++ b/src/map/mob.c @@ -78,6 +78,7 @@ struct mob_interface *mob; // Move probability for mobs away from players (rate of 1000 minute) // in Aegis, this is 100% for mobs that have been activated by players and none otherwise. #define MOB_LAZYMOVEPERC(md) ((md)->state.spotted?1000:0) +#define MOB_MAX_CASTTIME (10 * 60 * 1000) // Maximum cast time for monster skills. (10 minutes) #define MOB_MAX_DELAY (24*3600*1000) #define MAX_MINCHASE 30 //Max minimum chase value to use for mobs. #define RUDE_ATTACKED_COUNT 2 //After how many rude-attacks should the skill be used? @@ -446,6 +447,9 @@ static bool mob_ksprotected(struct block_list *src, struct block_list *target) if( !battle_config.ksprotection ) return false; // KS Protection Disabled + if (status->isdead(target) != 0) + return false; // Target is dead. + if( !(md = BL_CAST(BL_MOB,target)) ) return false; // Target is not MOB @@ -1519,7 +1523,7 @@ static int mob_unlocktarget(struct mob_data *md, int64 tick) FALLTHROUGH case MSS_IDLE: // Idle skill. - if (!(++md->ud.walk_count%IDLE_SKILL_INTERVAL) && mob->skill_use(md, tick, -1)) + if ((++md->ud.walk_count % IDLE_SKILL_INTERVAL) == 0 && mob->skill_use(md, tick, -1) == 0) break; //Random walk. if (!md->master_id && @@ -1699,7 +1703,7 @@ static bool mob_ai_sub_hard(struct mob_data *md, int64 tick) || !mob->can_reach(md, tbl, md->min_chase, MSS_RUSH) ) && md->state.attacked_count++ >= RUDE_ATTACKED_COUNT - && !mob->skill_use(md, tick, MSC_RUDEATTACKED) // If can't rude Attack + && mob->skill_use(md, tick, MSC_RUDEATTACKED) == 0 // If can't rude Attack && can_move && unit->escape(&md->bl, tbl, rnd()%10 +1) // Attempt escape ) { //Escaped @@ -1727,7 +1731,7 @@ static bool mob_ai_sub_hard(struct mob_data *md, int64 tick) ) { // Rude attacked if (md->state.attacked_count++ >= RUDE_ATTACKED_COUNT - && !mob->skill_use(md, tick, MSC_RUDEATTACKED) && can_move + && mob->skill_use(md, tick, MSC_RUDEATTACKED) == 0 && can_move != 0 && !tbl && unit->escape(&md->bl, abl, rnd()%10 +1) ) { //Escaped. @@ -2422,6 +2426,7 @@ static int mob_dead(struct mob_data *md, struct block_list *src, int type) nullpo_retr(3, md); m = md->bl.m; + Assert_retr(false, m >= 0 && m < map->count); mstatus = &md->status; if( md->guardian_data && md->guardian_data->number >= 0 && md->guardian_data->number < MAX_GUARDIANS ) @@ -3387,272 +3392,344 @@ static struct block_list *mob_getmasterhpltmaxrate(struct mob_data *md, int rate return NULL; } -/*========================================== - * What a status state suits by nearby MOB is looked for. - *------------------------------------------*/ + +/** + * Checks if the passed monster/character meets the passed status change requirements + * and returns it by reference parameter on success. + * + * @param bl The monster/character to check. + * @param ap List of arguments. (Source monster, MSC_* flag, SC_* flag, reference bl.) + * @return Always 0. + * + **/ static int mob_getfriendstatus_sub(struct block_list *bl, va_list ap) { - int cond1,cond2; - struct mob_data **fr = NULL, *md = NULL, *mmd = NULL; - int flag=0; - nullpo_ret(bl); - Assert_ret(bl->type == BL_MOB); - md = BL_UCAST(BL_MOB, bl); - nullpo_ret(mmd=va_arg(ap,struct mob_data *)); - if( mmd->bl.id == bl->id && !(battle_config.mob_ai&0x10) ) + struct mob_data *md = va_arg(ap, struct mob_data *); + + nullpo_ret(md); + + if (md->bl.id == bl->id && (battle_config.mob_ai & 0x10) == 0) + return 0; + + if (battle->check_target(&md->bl, bl, BCT_ENEMY) > 0) return 0; - if (battle->check_target(&mmd->bl,bl,BCT_ENEMY)>0) + int cond1 = va_arg(ap, int); + int cond2 = va_arg(ap, int); + struct block_list **fr = va_arg(ap, struct block_list **); + + if ((*fr) != NULL) // A friend was already found. return 0; - cond1=va_arg(ap,int); - cond2=va_arg(ap,int); - fr=va_arg(ap,struct mob_data **); - if( cond2==-1 ){ - int j; - for(j=SC_COMMON_MIN;j<=SC_COMMON_MAX && !flag;j++){ - if ((flag=(md->sc.data[j] != NULL))) //Once an effect was found, break out. [Skotlex] + + int flag = 0; + struct status_change *sc = status->get_sc(bl); + + if (cond2 == -1) { // Check for any of the common status alignments. + for (int i = SC_COMMON_MIN; i <= SC_COMMON_MAX; i++) { + if ((flag = (sc->data[i] != NULL)) != 0) // Once an effect was found, break out. [Skotlex] break; } - }else - flag=( md->sc.data[cond2] != NULL ); - if( flag^( cond1==MSC_FRIENDSTATUSOFF ) ) - (*fr)=md; + } else { + flag = (sc->data[cond2] != NULL); + } + + if ((flag ^ (cond1 == MSC_FRIENDSTATUSOFF)) != 0) + (*fr) = bl; return 0; } -static struct mob_data *mob_getfriendstatus(struct mob_data *md, int cond1, int cond2) +/** + * Gets a random monster/character within a range of 8 cells around md. + * If md is summoned (no monster slave!) a character is picker, otherwise a monster. + * + * @param md The monster which tries to cast a skill. + * @param cond1 Whether to check for active or inactive status change. (MSC_FRIENDSTATUSON/MSC_FRIENDSTATUSOFF) + * @param cond2 The status change (SC_* flag) to check. + * @return A randomly picked monster/character within range. + * + **/ +static struct block_list *mob_getfriendstatus(struct mob_data *md, int cond1, int cond2) { - struct mob_data* fr = NULL; nullpo_ret(md); - map->foreachinrange(mob->getfriendstatus_sub, &md->bl, 8,BL_MOB, md,cond1,cond2,&fr); + int type = (md->special_state.ai != AI_NONE) ? BL_PC : BL_MOB; + struct block_list *fr = NULL; + + map->foreachinrange(mob->getfriendstatus_sub, &md->bl, 8, type, md, cond1, cond2, &fr); + return fr; } -/*========================================== - * Skill use judging - *------------------------------------------*/ -static int mobskill_use(struct mob_data *md, int64 tick, int event) +/** + * Checks if skill cast condition in fulfilled and executes the skill in case of success. + * + * @param md The monster which tries to cast a skill. + * @param tick The timestamp of skill execution. + * @param event The MSC_* flag which triggered the skill execution. (-1 for non-event skill conditions.) + * @return 0 on success, 1 on failure. + * + **/ +static int mob_skill_use(struct mob_data *md, int64 tick, int event) { - struct mob_skill *ms; - struct block_list *fbl = NULL; //Friend bl, which can either be a BL_PC or BL_MOB depending on the situation. [Skotlex] - struct block_list *bl; - struct mob_data *fmd = NULL; - int i,j,n; - nullpo_ret(md); - nullpo_ret(ms = md->db->skill); - if (!battle_config.mob_skill_rate || md->ud.skilltimer != INVALID_TIMER || !md->db->maxskill) - return 0; + struct mob_skill *ms = md->db->skill; + + nullpo_ret(ms); + + if (battle_config.mob_skill_rate == 0 || md->ud.skilltimer != INVALID_TIMER || md->db->maxskill == 0) + return 1; if (event == -1 && DIFF_TICK(md->ud.canact_tick, tick) > 0) - return 0; //Skill act delay only affects non-event skills. + return 1; // Skill act delay only affects non-event skill conditions. - //Pick a starting position and loop from that. - i = (battle_config.mob_ai&0x100) ? rnd()%md->db->maxskill : 0; - for (n = 0; n < md->db->maxskill; i++, n++) { - int c2, flag = 0; + // Pick a starting position and loop from that. + int skill_idx = ((battle_config.mob_ai & 0x100) != 0) ? rnd() % md->db->maxskill : 0; - if (i == md->db->maxskill) - i = 0; + for (int i = 0; i < md->db->maxskill; skill_idx++, i++) { + if (skill_idx == md->db->maxskill) + skill_idx = 0; - if (DIFF_TICK(tick, md->skilldelay[i]) < ms[i].delay) + if (DIFF_TICK(tick, md->skilldelay[skill_idx]) < ms[skill_idx].delay) continue; - c2 = ms[i].cond2; + enum MobSkillState state = ms[skill_idx].state; - if (ms[i].state != md->state.skillstate) { - if (md->state.skillstate != MSS_DEAD && (ms[i].state == MSS_ANY || - (ms[i].state == MSS_ANYTARGET && md->target_id && md->state.skillstate != MSS_LOOT) - )) //ANYTARGET works with any state as long as there's a target. [Skotlex] - ; - else + if (state != md->state.skillstate) { + bool state_dead = (md->state.skillstate == MSS_DEAD); + bool any_target = (state == MSS_ANYTARGET && md->target_id != 0 && md->state.skillstate != MSS_LOOT); + + // MSS_ANYTARGET works with any state as long as there's a target. [Skotlex] + if (state_dead || (state != MSS_ANY && !any_target)) continue; } - if (rnd() % 10000 > ms[i].permillage) //Lupus (max value = 10000) + + if (rnd() % 10000 > ms[skill_idx].permillage) continue; - if (ms[i].cond1 == event) - flag = 1; //Trigger skill. - else if (ms[i].cond1 == MSC_SKILLUSED) - flag = ((event & 0xffff) == MSC_SKILLUSED && ((event >> 16) == c2 || c2 == 0)); - else if(event == -1){ - //Avoid entering on defined events to avoid "hyper-active skill use" due to the overflow of calls to this function in battle. - switch (ms[i].cond1) - { - case MSC_ALWAYS: - flag = 1; break; - case MSC_MYHPLTMAXRATE: // HP< maxhp% - flag = get_percentage(md->status.hp, md->status.max_hp); - flag = (flag <= c2); - break; - case MSC_MYHPINRATE: - flag = get_percentage(md->status.hp, md->status.max_hp); - flag = (flag >= c2 && flag <= ms[i].val[0]); - break; - case MSC_MYSTATUSON: // status[num] on - case MSC_MYSTATUSOFF: // status[num] off - if (!md->sc.count) { - flag = 0; - } else if (ms[i].cond2 == -1) { - for (j = SC_COMMON_MIN; j <= SC_COMMON_MAX; j++) - if ((flag = (md->sc.data[j]!=NULL)) != 0) - break; - } else { - flag = (md->sc.data[ms[i].cond2]!=NULL); + int cast_cond = ms[skill_idx].cond1; + int cond_data = ms[skill_idx].cond2; + int flag = 0; + struct block_list *fbl = NULL; // Friend bl, which can either be a BL_PC or BL_MOB depending on the situation. [Skotlex] + + if (cast_cond == event) { + flag = 1; // Trigger skill. + } else if (cast_cond == MSC_SKILLUSED) { + flag = ((event & 0xFFFF) == MSC_SKILLUSED && ((event >> 16) == cond_data || cond_data == 0)); + } else if (event == -1) { + // Avoid entering on defined events to avoid "hyper-active skill use" due to the overflow of calls to this function in battle. + switch (cast_cond) { + case MSC_ALWAYS: + flag = 1; + break; + case MSC_MYHPLTMAXRATE: // HP <= x% + flag = get_percentage(md->status.hp, md->status.max_hp); + flag = (flag <= cond_data); + break; + case MSC_MYHPINRATE: // HP >= x% && HP <= y% + flag = get_percentage(md->status.hp, md->status.max_hp); + flag = (flag >= cond_data && flag <= ms[skill_idx].val[0]); + break; + case MSC_MYSTATUSON: // Status change x is active. + case MSC_MYSTATUSOFF: // Status change x is inactive. + if (cond_data == -1) { // Check for any of the common status alignments. + for (int j = SC_COMMON_MIN; j <= SC_COMMON_MAX; j++) { + if ((flag = (md->sc.data[j] != NULL)) != 0) + break; } - flag ^= (ms[i].cond1 == MSC_MYSTATUSOFF); break; - case MSC_FRIENDHPLTMAXRATE: // friend HP < maxhp% - flag = ((fbl = mob->getfriendhprate(md, 0, ms[i].cond2)) != NULL); break; - case MSC_FRIENDHPINRATE: - flag = ((fbl = mob->getfriendhprate(md, ms[i].cond2, ms[i].val[0])) != NULL); break; - case MSC_FRIENDSTATUSON: // friend status[num] on - case MSC_FRIENDSTATUSOFF: // friend status[num] off - flag = ((fmd = mob->getfriendstatus(md, ms[i].cond1, ms[i].cond2)) != NULL); break; - case MSC_SLAVELT: // slave < num - flag = (mob->countslave(&md->bl) < c2 ); break; - case MSC_ATTACKPCGT: // attack pc > num - flag = (unit->counttargeted(&md->bl) > c2); break; - case MSC_SLAVELE: // slave <= num - flag = (mob->countslave(&md->bl) <= c2 ); break; - case MSC_ATTACKPCGE: // attack pc >= num - flag = (unit->counttargeted(&md->bl) >= c2); break; - case MSC_AFTERSKILL: - flag = (md->ud.skill_id == c2); break; - case MSC_RUDEATTACKED: - flag = (md->state.attacked_count >= RUDE_ATTACKED_COUNT); - if (flag) md->state.attacked_count = 0; //Rude attacked count should be reset after the skill condition is met. Thanks to Komurka [Skotlex] - break; - case MSC_MASTERHPLTMAXRATE: - flag = ((fbl = mob->getmasterhpltmaxrate(md, ms[i].cond2)) != NULL); break; - case MSC_MASTERATTACKED: - flag = (md->master_id > 0 && (fbl=map->id2bl(md->master_id)) != NULL && unit->counttargeted(fbl) > 0); - break; - case MSC_ALCHEMIST: - flag = (md->state.alchemist); - break; + } else { + flag = (md->sc.data[cond_data] != NULL); + } + + flag ^= (cast_cond == MSC_MYSTATUSOFF); + break; + case MSC_FRIENDHPLTMAXRATE: // FriendHP <= x% + flag = ((fbl = mob->getfriendhprate(md, 0, cond_data)) != NULL); + break; + case MSC_FRIENDHPINRATE: // FriendHP >= x% && FriendHP <= y% + flag = ((fbl = mob->getfriendhprate(md, cond_data, ms[skill_idx].val[0])) != NULL); + break; + case MSC_FRIENDSTATUSON: // Friend's status change x is active. + case MSC_FRIENDSTATUSOFF: // Friend's status change x is inactive. + flag = ((fbl = mob->getfriendstatus(md, cast_cond, cond_data)) != NULL); + break; + case MSC_SLAVELT: // Monster has less than x active slaves. + flag = (mob->countslave(&md->bl) < cond_data); + break; + case MSC_ATTACKPCGT: // Monster is attacked by more than x units. + flag = (unit->counttargeted(&md->bl) > cond_data); + break; + case MSC_SLAVELE: // Monster has x or less active slaves. + flag = (mob->countslave(&md->bl) <= cond_data); + break; + case MSC_ATTACKPCGE: // Monster is attacked by x or more units. + flag = (unit->counttargeted(&md->bl) >= cond_data); + break; + case MSC_AFTERSKILL: // Monster used skill x, or any skill if x is 0. + flag = (md->ud.skill_id == cond_data || cond_data == 0); + break; + case MSC_RUDEATTACKED: // Monster was rude attacked RUDE_ATTACKED_COUNT or more times. + flag = (md->state.attacked_count >= RUDE_ATTACKED_COUNT); + + // Rude attacked count should be reset after the skill condition is met. Thanks to Komurka [Skotlex] + if (flag) + md->state.attacked_count = 0; + + break; + case MSC_MASTERHPLTMAXRATE: // MasterHP < x% + flag = ((fbl = mob->getmasterhpltmaxrate(md, cond_data)) != NULL); + break; + case MSC_MASTERATTACKED: // Monster's master is under attack. + flag = (md->master_id > 0 && (fbl = map->id2bl(md->master_id)) != NULL); + flag = (fbl != NULL && unit->counttargeted(fbl) > 0); + break; + case MSC_ALCHEMIST: // Monster was summoned by an Alchemist. + flag = (md->state.alchemist != 0); + break; } } - if (!flag) - continue; //Skill requisite failed to be fulfilled. + if (flag == 0) // Skill cast condition not fulfilled. + continue; + + // Execute skill. + if (skill->get_casttype(ms[skill_idx].skill_id) == CAST_GROUND) { // Ground skill. + int target_type = ms[skill_idx].target; + int skill_range = skill->get_range2(&md->bl, ms[skill_idx].skill_id, ms[skill_idx].skill_lv); + struct block_list *bl; - //Execute skill - if (skill->get_casttype(ms[i].skill_id) == CAST_GROUND) {//Ground skill. - short x, y; - switch (ms[i].target) { - case MST_RANDOM: //Pick a random enemy within skill range. - bl = battle->get_enemy(&md->bl, DEFAULT_ENEMY_TYPE(md), - skill->get_range2(&md->bl, ms[i].skill_id, ms[i].skill_lv)); - break; - case MST_TARGET: - case MST_AROUND5: - case MST_AROUND6: - case MST_AROUND7: - case MST_AROUND8: - bl = map->id2bl(md->target_id); - break; - case MST_MASTER: - bl = &md->bl; - if (md->master_id) - bl = map->id2bl(md->master_id); - if (bl) //Otherwise, fall through. - break; - FALLTHROUGH - case MST_FRIEND: - bl = fbl?fbl:(fmd?&fmd->bl:&md->bl); - break; - default: - bl = &md->bl; + switch (target_type) { + case MST_RANDOM: // Pick a random enemy within skill range. Skill center is monster position. + bl = battle->get_enemy(&md->bl, DEFAULT_ENEMY_TYPE(md), skill_range); + break; + case MST_TARGET: // Monster's current target is within skill range. Skill center is monster position. + case MST_AROUND5: // Monster's current target is within skill range. Skill center is a random cell within a range of 1. + case MST_AROUND6: // Monster's current target is within skill range. Skill center is a random cell within a range of 2. + case MST_AROUND7: // Monster's current target is within skill range. Skill center is a random cell within a range of 3. + case MST_AROUND8: // Monster's current target is within skill range. Skill center is a random cell within a range of 4. + bl = map->id2bl(md->target_id); + break; + case MST_MASTER: // Monster's master is within skill range. Skill center is monster position. + // If monster has no master, use the monster as target, + bl = (md->master_id != 0) ? map->id2bl(md->master_id) : &md->bl; + + if (bl != NULL) break; + + // If monster has a master but master wasn't found, try a friend. + FALLTHROUGH + case MST_FRIEND: // Monster's friend is within skill range. Skill center is monster position. + bl = (fbl != NULL) ? fbl : &md->bl; + break; + default: // Monster is within skill range. Skill center is monster position. + bl = &md->bl; + break; } - if (!bl) continue; - - x = bl->x; - y = bl->y; - // Look for an area to cast the spell around... - if (ms[i].target >= MST_AROUND1 || ms[i].target >= MST_AROUND5) { - j = ms[i].target >= MST_AROUND1? - (ms[i].target-MST_AROUND1) +1: - (ms[i].target-MST_AROUND5) +1; - map->search_freecell(&md->bl, md->bl.m, &x, &y, j, j, 3); + + if (bl == NULL) // No target found. + continue; + + short x = bl->x; + short y = bl->y; + + // Find a target cell. + if (target_type >= MST_AROUND5 && target_type <= MST_AROUND) { + int range = target_type - ((target_type >= MST_AROUND1) ? MST_AROUND1 : MST_AROUND5) + 1; + map->search_freecell(&md->bl, md->bl.m, &x, &y, range, range, 3); } - md->skill_idx = i; + + md->skill_idx = skill_idx; map->freeblock_lock(); - if( !battle->check_range(&md->bl,bl,skill->get_range2(&md->bl, ms[i].skill_id,ms[i].skill_lv)) - || !unit->skilluse_pos2(&md->bl, x, y,ms[i].skill_id, ms[i].skill_lv,ms[i].casttime, ms[i].cancel) - ) { + + uint16 sk_id = ms[skill_idx].skill_id; + uint16 sk_lv = ms[skill_idx].skill_lv; + int casttime = ms[skill_idx].casttime; + short cancel = ms[skill_idx].cancel; + + if (!battle->check_range(&md->bl, bl, skill_range) + || unit->skilluse_pos2(&md->bl, x, y, sk_id, sk_lv, casttime, cancel) == 0) { map->freeblock_unlock(); continue; } - } else { - //Targeted skill - switch (ms[i].target) { - case MST_RANDOM: //Pick a random enemy within skill range. - bl = battle->get_enemy(&md->bl, DEFAULT_ENEMY_TYPE(md), - skill->get_range2(&md->bl, ms[i].skill_id, ms[i].skill_lv)); - break; - case MST_TARGET: - bl = map->id2bl(md->target_id); - break; - case MST_MASTER: - bl = &md->bl; - if (md->master_id) - bl = map->id2bl(md->master_id); - if (bl) //Otherwise, fall through. - break; - FALLTHROUGH - case MST_FRIEND: - if (fbl) { - bl = fbl; - break; - } else if (fmd) { - bl = &fmd->bl; - break; - } // else fall through - FALLTHROUGH - default: - bl = &md->bl; + } else { // Targeted skill. + int skill_range = skill->get_range2(&md->bl, ms[skill_idx].skill_id, ms[skill_idx].skill_lv); + struct block_list *bl; + + switch (ms[skill_idx].target) { + case MST_RANDOM: // Pick a random enemy within skill range. + bl = battle->get_enemy(&md->bl, DEFAULT_ENEMY_TYPE(md), skill_range); + break; + case MST_TARGET: // Monster's current target is within skill range. + bl = map->id2bl(md->target_id); + break; + case MST_MASTER: // Monster's master is within skill range. + // If monster has no master, use the monster as target, + bl = (md->master_id != 0) ? map->id2bl(md->master_id) : &md->bl; + + if (bl != NULL) break; + + // If monster has a master but master wasn't found, try a friend. + FALLTHROUGH + case MST_FRIEND: // Monster's friend is within skill range. + bl = (fbl != NULL) ? fbl : &md->bl; + break; + default: // Monster is within skill range. + bl = &md->bl; + break; } - if (!bl) continue; - md->skill_idx = i; + if (bl == NULL) // No target found. + continue; + + md->skill_idx = skill_idx; map->freeblock_lock(); - if( !battle->check_range(&md->bl,bl,skill->get_range2(&md->bl, ms[i].skill_id,ms[i].skill_lv)) - || !unit->skilluse_id2(&md->bl, bl->id,ms[i].skill_id, ms[i].skill_lv,ms[i].casttime, ms[i].cancel) - ) { + + uint16 sk_id = ms[skill_idx].skill_id; + uint16 sk_lv = ms[skill_idx].skill_lv; + int casttime = ms[skill_idx].casttime; + short cancel = ms[skill_idx].cancel; + + if (!battle->check_range(&md->bl, bl, skill_range) + || unit->skilluse_id2(&md->bl, bl->id, sk_id, sk_lv, casttime, cancel) == 0) { map->freeblock_unlock(); continue; } } - //Skill used. Post-setups... - if ( ms[ i ].msg_id ){ //Display color message [SnakeDrak] - struct mob_chat *mc = mob->chat(ms[i].msg_id); + + // Skill used. + if (ms[skill_idx].msg_id != 0) { // Display color message. [SnakeDrak] char temp[CHAT_SIZE_MAX]; char name[NAME_LENGTH]; - snprintf(name, sizeof name,"%s", md->name); - strtok(name, "#"); // discard extra name identifier if present [Daegaladh] - safesnprintf(temp, sizeof temp,"%s : %s", name, mc->msg); + struct mob_chat *mc = mob->chat(ms[skill_idx].msg_id); + + snprintf(name, sizeof(name), "%s", md->name); + strtok(name, "#"); // Discard extra name identifier if present. [Daegaladh] + safesnprintf(temp, sizeof(temp), "%s : %s", name, mc->msg); clif->messagecolor(&md->bl, mc->color, temp); } - if(!(battle_config.mob_ai&0x200)) { //pass on delay to same skill. - for (j = 0; j < md->db->maxskill; j++) - if (md->db->skill[j].skill_id == ms[i].skill_id) - md->skilldelay[j]=tick; - } else - md->skilldelay[i]=tick; + + if ((battle_config.mob_ai & 0x200) == 0) { // Pass on delay to same skill. + for (int j = 0; j < md->db->maxskill; j++) { + if (md->db->skill[j].skill_id == ms[skill_idx].skill_id) + md->skilldelay[j] = tick; + } + } else { + md->skilldelay[skill_idx] = tick; + } + map->freeblock_unlock(); - return 1; + return 0; } - //No skill was used. + + // No skill was used. md->skill_idx = -1; - return 0; + return 1; } + /*========================================== * Skill use event processing *------------------------------------------*/ @@ -3663,7 +3740,7 @@ static int mobskill_event(struct mob_data *md, struct block_list *src, int64 tic nullpo_ret(md); nullpo_ret(src); if(md->bl.prev == NULL || md->status.hp <= 0) - return 0; + return 1; if (md->special_state.ai == AI_SPHERE) {//LOne WOlf explained that ANYONE can trigger the marine countdown skill. [Skotlex] md->state.alchemist = 1; @@ -3682,8 +3759,10 @@ static int mobskill_event(struct mob_data *md, struct block_list *src, int64 tic res = mob->skill_use(md, tick, MSC_CLOSEDATTACKED); else if (flag&BF_LONG && !(flag&BF_MAGIC)) //Long-attacked should not include magic. res = mob->skill_use(md, tick, MSC_LONGRANGEATTACKED); + else if ((flag & BF_MAGIC) != 0) + res = mob->skill_use(md, tick, MSC_MAGICATTACKED); - if (!res) + if (res != 0) //Restore previous target only if skill condition failed to trigger. [Skotlex] md->target_id = target_id; //Otherwise check if the target is an enemy, and unlock if needed. @@ -3793,7 +3872,7 @@ static int mob_clone_spawn(struct map_session_data *sd, int16 m, int16 x, int16 continue; /// Normal aggressive mob. Disable skills that cannot help fighting against players. (Those with flags UF_NOMOB and UF_NOPC are specific to always aid players!) [Skotlex] - if (flag == 0 && skill->get_unit_id(skill_id, 0) != 0 && + if (flag == 0 && skill->get_unit_id(skill_id, sd->status.skill[idx].lv, 0) != 0 && (skill->get_unit_flag(skill_id) & (UF_NOMOB | UF_NOPC)) > 0) continue; @@ -3826,7 +3905,7 @@ static int mob_clone_spawn(struct map_session_data *sd, int16 m, int16 x, int16 mob_skills[i].state = MSS_IDLE; mob_skills[i].target = MST_AROUND2; mob_skills[i].delay = 60000; - } else if (skill->get_unit_target(skill_id) == BCT_ENEMY) { /// Target Enemy. + } else if (skill->get_unit_target(skill_id, sd->status.skill[idx].lv) == BCT_ENEMY) { /// Target Enemy. mob_skills[i].state = MSS_ANYTARGET; mob_skills[i].target = MST_TARGET; mob_skills[i].cond1 = MSC_ALWAYS; @@ -3907,8 +3986,8 @@ static int mob_clone_spawn(struct map_session_data *sd, int16 m, int16 x, int16 } } - mob_skills[i].permillage *= battle_config.mob_skill_rate / 100; - mob_skills[i].delay *= battle_config.mob_skill_delay / 100; + mob_skills[i].permillage = mob_skills[i].permillage * battle_config.mob_skill_rate / 100; + mob_skills[i].delay = mob_skills[i].delay * battle_config.mob_skill_delay / 100; db->maxskill = ++i; } @@ -5012,12 +5091,10 @@ static int mob_read_db_sub(struct config_setting_t *mobt, int n, const char *sou md.status.def_ele = i32; md.status.ele_lv = value; } else if (!inherit) { - ShowWarning("mob_read_db_sub: Missing element for monster ID %d.\n", md.mob_id); md.status.def_ele = ELE_NEUTRAL; md.status.ele_lv = 1; } } else if (!inherit) { - ShowWarning("mob_read_db_sub: Missing element for monster ID %d.\n", md.mob_id); md.status.def_ele = ELE_NEUTRAL; md.status.ele_lv = 1; } @@ -5491,115 +5568,134 @@ static bool mob_skill_db_libconfig_sub(struct config_setting_t *it, int n) return true; } +/** + * Reads a single monster skill from DB. + * + * @param it The libconfig settings block, which contains the skill data. + * @param n The skill data block's index within the parent monster block. + * @param mob_id The monster's ID. + * @return true on success, false on failure. + * + **/ static bool mob_skill_db_libconfig_sub_skill(struct config_setting_t *it, int n, int mob_id) { - int i, j, idx = 0; - int i32; - int skill_id = 0; - int skill_idx = 0; - bool clearskills = false; - const char *name = config_setting_name(it); - struct mob_skill *ms, gms; - nullpo_retr(false, it); Assert_retr(false, mob_id <= 0 || mob->db(mob_id) != mob->dummy); - if (!(skill_id = skill->name2id(name))) { - ShowWarning("mob_skill_db_libconfig_sub_skill: Non existant skill id %d in monster %d, skipping.\n", skill_id, mob_id); + int skill_id = 0; + const char *name = config_setting_name(it); + const char *mob_str = (mob_id < 0) ? "global ID" : "monster"; + + if ((skill_id = skill->name2id(name)) == 0) { + ShowWarning("%s: Non existant skill %d in %s %d, skipping.\n", __func__, skill_id, mob_str, mob_id); return false; } + const char *skill_name = skill->get_name(skill_id); + bool clearskills = false; + // If ClearSkills flag is enabled clear all the previous skills. - if (libconfig->setting_lookup_bool_real(it, "ClearSkills", &clearskills) && clearskills) { - if (mob_id < 0) // Clearing skills globaly is not supported + if (libconfig->setting_lookup_bool_real(it, "ClearSkills", &clearskills) == CONFIG_TRUE && clearskills) { + if (mob_id < 0) { + ShowError("%s: Global skill clearing is not supported, skipping. (Global ID %d, skill %d (%s).)\n", + __func__, mob_id, skill_id, skill_name); return false; + } + memset(mob->db_data[mob_id]->skill, 0, sizeof(struct mob_skill) * MAX_MOBSKILL); mob->db_data[mob_id]->maxskill = 0; return true; } - if (mob_id < 0) { - // Prepare global skill. [Skotlex] + struct mob_skill *ms; + + if (mob_id < 0) { // Prepare global skill. [Skotlex] + struct mob_skill gms; memset(&gms, 0, sizeof (struct mob_skill)); ms = &gms; } else { + int idx = 0; + ARR_FIND(0, MAX_MOBSKILL, idx, (ms = &mob->db_data[mob_id]->skill[idx])->skill_id == 0); + if (idx == MAX_MOBSKILL) { - ShowError("mob_skill_db_libconfig_sub_skill: Too many skills for monster %d\n", mob_id); + ShowError("%s: Too many skills for monster %d, skipping.\n", __func__, mob_id); return false; } + + mob->db_data[mob_id]->maxskill = idx + 1; } + ms->skill_id = skill_id; + int i32 = MSS_ANY; if (mob->lookup_const(it, "SkillState", &i32) && (i32 < MSS_ANY || i32 > MSS_ANYTARGET)) { - ShowWarning("mob_skill_db_libconfig_sub_skill: Invalid skill state %d for skill id %d in monster %d, defaulting to MSS_ANY.\n", i32, skill_id, mob_id); + ShowWarning("%s: Invalid skill state %d for skill %d (%s) in %s %d, defaulting to MSS_ANY.\n", + __func__, i32, skill_id, skill_name, mob_str, mob_id); i32 = MSS_ANY; } ms->state = i32; - if (!libconfig->setting_lookup_int(it, "SkillLevel", &i32) || i32 <= 0) - i32 = 1; - ms->skill_lv = i32 > battle_config.mob_max_skilllvl ? battle_config.mob_max_skilllvl : i32; //we strip max skill level + int res = libconfig->setting_lookup_int(it, "SkillLevel", &i32); + ms->skill_lv = (res == CONFIG_FALSE) ? 1 : cap_value(i32, 1, battle_config.mob_max_skilllvl); - //Apply battle_config modifiers to rate (permillage) and delay [Skotlex] - if (libconfig->setting_lookup_int(it, "Rate", &i32)) - ms->permillage = i32; + res = libconfig->setting_lookup_int(it, "Rate", &i32); + ms->permillage = (res == CONFIG_FALSE) ? 1 : cap_value(i32, 1, 10000); + // Apply battle_config modifier to rate (permillage). if (battle_config.mob_skill_rate != 100) ms->permillage = ms->permillage * battle_config.mob_skill_rate / 100; + if (ms->permillage > 10000) ms->permillage = 10000; - else if (ms->permillage == 0 && battle_config.mob_skill_rate) + else if (ms->permillage == 0 && battle_config.mob_skill_rate != 0) ms->permillage = 1; - if (libconfig->setting_lookup_int(it, "CastTime", &i32) && i32 > 0) - ms->casttime = i32; + res = libconfig->setting_lookup_int(it, "CastTime", &i32); + ms->casttime = (res == CONFIG_FALSE) ? 0 : cap_value(i32, 0, MOB_MAX_CASTTIME); + + res = libconfig->setting_lookup_int(it, "Delay", &i32); + ms->delay = (res == CONFIG_FALSE) ? 0 : cap_value(i32, 0, MOB_MAX_DELAY); - if (libconfig->setting_lookup_int(it, "Delay", &i32)) - ms->delay = i32; + // Apply battle_config modifier to delay. if (battle_config.mob_skill_delay != 100) ms->delay = ms->delay * battle_config.mob_skill_delay / 100; - if (ms->delay < 0 || ms->delay > MOB_MAX_DELAY) //time overflow? - ms->delay = MOB_MAX_DELAY; - if (libconfig->setting_lookup_bool(it, "Cancelable", &i32)) - ms->cancel = (i32 == 0) ? 0 : 1; + ms->delay = min(ms->delay, MOB_MAX_DELAY); + + res = libconfig->setting_lookup_bool(it, "Cancelable", &i32); + ms->cancel = (res == CONFIG_FALSE) ? 0 : cap_value(i32, 0, 1); + i32 = MST_TARGET; if (mob->lookup_const(it, "SkillTarget", &i32) && (i32 < MST_TARGET || i32 > MST_AROUND)) { - ShowWarning("mob_skill_db_libconfig_sub_skill: Invalid skill target %d for skill id %d in monster %d, defaulting to MST_TARGET.\n", i32, skill_id, mob_id); - ms->target = MST_TARGET; + ShowWarning("%s: Invalid skill target %d for skill %d (%s) in %s %d, defaulting to MST_TARGET.\n", + __func__, i32, skill_id, skill_name, mob_str, mob_id); + i32 = MST_TARGET; } ms->target = i32; - //Check that the target condition is right for the skill type. [Skotlex] - skill_idx = skill->get_index(skill_id); - if (skill->get_casttype2(skill_idx) == CAST_GROUND) {//Ground skill. - if (ms->target > MST_AROUND) { - ShowWarning("mob_skill_db_libconfig_sub_skill: Wrong mob skill target for ground skill %d (%s) for %s.\n", - ms->skill_id, skill->dbs->db[skill_idx].name, - mob_id < 0 ? "all mobs" : mob->db_data[mob_id]->sprite); - ms->target = MST_TARGET; - } - } else if (ms->target > MST_MASTER) { - ShowWarning("mob_skill_db_libconfig_sub_skill: Wrong mob skill target 'around' for non-ground skill %d (%s) for %s.\n", - ms->skill_id, skill->dbs->db[skill_idx].name, - mob_id < 0 ? "all mobs" : mob->db_data[mob_id]->sprite); + // Check the target condition for non-ground skills. (Ground skills can use every target.) + if (skill->get_casttype2(skill->get_index(skill_id)) != CAST_GROUND && ms->target > MST_MASTER) { + ShowWarning("%s: Wrong skill target %d for non-ground skill %d (%s) in %s %d, defaulting to MST_TARGET.\n", + __func__, ms->target, skill_id, skill_name, mob_str, mob_id); ms->target = MST_TARGET; } - if (mob->lookup_const(it, "CastCondition", &i32) && (i32 < MSC_ALWAYS || i32 > MSC_SPAWN)) { - ShowWarning("mob_skill_db_libconfig_sub_skill: Invalid skill condition %d for skill id %d in monster %d, defaulting to MSC_ALWAYS.\n", i32, skill_id, mob_id); - ms->cond1 = MSC_ALWAYS; + i32 = MSC_ALWAYS; + if (mob->lookup_const(it, "CastCondition", &i32) && (i32 < MSC_ALWAYS || i32 > MSC_MAGICATTACKED)) { + ShowWarning("%s: Invalid skill condition %d for skill id %d (%s) in %s %d, defaulting to MSC_ALWAYS.\n", + __func__, i32, skill_id, skill_name, mob_str, mob_id); + i32 = MSC_ALWAYS; } ms->cond1 = i32; - if (mob->lookup_const(it, "ConditionData", &i32)) - ms->cond2 = i32; + ms->cond2 = !mob->lookup_const(it, "ConditionData", &i32) ? 0 : cap_value(i32, SHRT_MIN, SHRT_MAX); - for (i = 0; i < 5; i++) { + for (int i = 0; i < 5; i++) { char valname[16]; sprintf(valname, "val%1d", i); - if (libconfig->setting_lookup_int(it, valname, &i32)) + + if (libconfig->setting_lookup_int(it, valname, &i32) == CONFIG_TRUE) ms->val[i] = i32; } @@ -5610,60 +5706,64 @@ static bool mob_skill_db_libconfig_sub_skill(struct config_setting_t *it, int n, if (mob_id > 0 && (uint32)ms->val[1] == mob->db(mob_id)->status.mode) { ms->val[1] = MD_NONE; - ms->val[4] = 1; //request to return mode to normal. + ms->val[4] = 1; // Request to return mode to normal. } } if (ms->skill_id == NPC_EMOTION_ON && mob_id > 0 && ms->val[1] != MD_NONE) { - //Adds a mode to the mob. - //Remove aggressive mode when the new mob type is passive. - if (!(ms->val[1] & MD_AGGRESSIVE)) + // Add a mode to the mob and remove aggressive mode if the new mode is passive. + if ((ms->val[1] & MD_AGGRESSIVE) == 0) ms->val[3] |= MD_AGGRESSIVE; - ms->val[2] |= (uint32)ms->val[1]; //Add the new mode. - ms->val[1] = MD_NONE; //Do not "set" it. + + ms->val[2] |= (uint32)ms->val[1]; // Add the new mode. + ms->val[1] = MD_NONE; // Do not "set" it. } - if (libconfig->setting_lookup_int(it, "Emotion", &i32)) - ms->emotion = i32; - else - ms->emotion = -1; + res = libconfig->setting_lookup_int(it, "Emotion", &i32); + ms->emotion = (res == CONFIG_FALSE) ? -1 : cap_value(i32, -1, SHRT_MAX); - if (libconfig->setting_lookup_int(it, "ChatMsgID", &i32) && i32 > 0 && i32 <= MAX_MOB_CHAT) { - if (mob->chat_db[i32] == NULL) { - ShowWarning("mob_skill_db_libconfig_sub_skill: Invalid msg id %d for skill id %d in monster %d, ignoring.\n", i32, skill_id, mob_id); + if (libconfig->setting_lookup_int(it, "ChatMsgID", &i32) == CONFIG_TRUE) { + if (i32 <= 0 || i32 > MAX_MOB_CHAT || mob->chat_db[i32] == NULL) { + ShowWarning("%s: Invalid message ID %d for skill %d (%s) in %s %d, ignoring.\n", + __func__, i32, skill_id, skill_name, mob_str, mob_id); } else { ms->msg_id = i32; } } - if (mob_id < 0) { - // Set this skill to ALL mobs. [Skotlex] - mob_id *= -1; - for (i = 1; i < MAX_MOB_DB; i++) { + if (mob_id < 0) { // Global skill assignment. + mob_id = -mob_id; + + for (int i = 1; i < MAX_MOB_DB; i++) { if (mob->db_data[i] == NULL) continue; - if (mob->db_data[i]->status.mode & MD_BOSS) { - if (!(mob_id & 2)) //Skill not for bosses + + if ((mob->db_data[i]->status.mode & MD_BOSS) != 0) { + if ((mob_id & 2) == 0) // Skill not for boss monsters. continue; } else { - if (!(mob_id & 1)) //Skill not for normal enemies. + if ((mob_id & 1) == 0) // Skill not for normal monsters. continue; } - ARR_FIND(0, MAX_MOBSKILL, j, mob->db_data[i]->skill[j].skill_id == 0); - if (j == MAX_MOBSKILL) + + int idx; + + ARR_FIND(0, MAX_MOBSKILL, idx, mob->db_data[i]->skill[idx].skill_id == 0); + + if (idx == MAX_MOBSKILL) { + ShowError("%s: Too many skills for monster %d in global ID %d, skipping.\n", + __func__, i, -mob_id); continue; + } - memcpy(&mob->db_data[i]->skill[j], ms, sizeof(struct mob_skill)); - mob->db_data[i]->maxskill = j + 1; + memcpy(&mob->db_data[i]->skill[idx], ms, sizeof(struct mob_skill)); + mob->db_data[i]->maxskill = idx + 1; } - } else { //Skill set on a single mob. - mob->db_data[mob_id]->maxskill = idx + 1; } return true; } - /*========================================== * mob_skill_db.txt reading *------------------------------------------*/ @@ -6059,7 +6159,7 @@ void mob_defaults(void) mob->getmasterhpltmaxrate = mob_getmasterhpltmaxrate; mob->getfriendstatus_sub = mob_getfriendstatus_sub; mob->getfriendstatus = mob_getfriendstatus; - mob->skill_use = mobskill_use; + mob->skill_use = mob_skill_use; mob->skill_event = mobskill_event; mob->is_clone = mob_is_clone; mob->clone_spawn = mob_clone_spawn; diff --git a/src/map/mob.h b/src/map/mob.h index 8839809f2..59b288fcc 100644 --- a/src/map/mob.h +++ b/src/map/mob.h @@ -35,7 +35,7 @@ struct hplugin_data_store; // Change this to increase the table size in your mob_db to accommodate a larger mob database. // Be sure to note that IDs 4001 to 4048 are reserved for advanced/baby/expanded classes. // Notice that the last 1000 entries are used for player clones, so always set this to desired value +1000 -#define MAX_MOB_DB 5000 +#define MAX_MOB_DB 22000 //The number of drops all mobs have and the max drop-slot that the steal skill will attempt to steal from. #define MAX_MOB_DROP 10 @@ -321,6 +321,14 @@ enum { MSC_MASTERATTACKED, MSC_ALCHEMIST, MSC_SPAWN, + MSC_MAGICATTACKED, +}; + +/** Special monster(-name) constants used to assign skills to a group of monsters. **/ +enum mob_group { + ALL_MOBS_NONBOSS = -1, + ALL_MOBS_BOSS = -2, + ALL_MOBS = -3, }; /** @@ -566,7 +574,7 @@ struct mob_interface { struct block_list* (*getfriendhprate) (struct mob_data *md, int min_rate, int max_rate); struct block_list* (*getmasterhpltmaxrate) (struct mob_data *md, int rate); int (*getfriendstatus_sub) (struct block_list *bl, va_list ap); - struct mob_data* (*getfriendstatus) (struct mob_data *md, int cond1, int cond2); + struct block_list *(*getfriendstatus) (struct mob_data *md, int cond1, int cond2); int (*skill_use) (struct mob_data *md, int64 tick, int event); int (*skill_event) (struct mob_data *md, struct block_list *src, int64 tick, int flag); int (*is_clone) (int class_); diff --git a/src/map/npc.c b/src/map/npc.c index 2ac99948b..6ba088a80 100644 --- a/src/map/npc.c +++ b/src/map/npc.c @@ -389,7 +389,10 @@ static int npc_event_export(struct npc_data *nd, int i) Assert_ret(i >= 0 && i < nd->u.scr.label_list_num); lname = nd->u.scr.label_list[i].name; pos = nd->u.scr.label_list[i].pos; - if ((lname[0] == 'O' || lname[0] == 'o') && (lname[1] == 'N' || lname[1] == 'n')) { + + if ((nd->u.scr.label_list[i].flags & LABEL_IS_EXTERN) != 0 + && ((nd->u.scr.label_list[i].flags & LABEL_IS_USERFUNC) == 0 + || script->config.functions_as_events)) { struct event_data *ev; struct linkdb_node **label_linkdb = NULL; char buf[EVENT_NAME_LENGTH]; @@ -1799,6 +1802,7 @@ static void npc_expanded_barter_fromsql(void) ) { SqlStmt_ShowDebug(stmt); SQL->StmtFree(stmt); + StrBuf->Destroy(&buf); return; } @@ -3053,11 +3057,11 @@ static int npc_unload(struct npc_data *nd, bool single, bool unload_mobs) aFree(nd->u.shop.shop_item); /// src check for duplicate shops. [Orcao] } else if (nd->subtype == SCRIPT) { char evname[EVENT_NAME_LENGTH]; - + snprintf(evname, ARRAYLENGTH(evname), "%s::OnNPCUnload", nd->exname); struct event_data *ev = strdb_get(npc->ev_db, evname); - + if (ev != NULL) script->run_npc(nd->u.scr.script, ev->pos, 0, nd->bl.id); /// Run OnNPCUnload. @@ -3664,6 +3668,7 @@ static void npc_convertlabel_db(struct npc_label_list *label_list, const char *f for( i = 0; i < script->label_count; i++ ) { const char* lname = script->get_str(script->labels[i].key); int lpos = script->labels[i].pos; + enum script_label_flags flags = script->labels[i].flags; struct npc_label_list* label; const char *p; size_t len; @@ -3685,6 +3690,7 @@ static void npc_convertlabel_db(struct npc_label_list *label_list, const char *f safestrncpy(label->name, lname, sizeof(label->name)); label->pos = lpos; + label->flags = flags; } } @@ -5098,7 +5104,7 @@ static const char *npc_parse_mapflag(const char *w1, const char *w2, const char else if (modifier[0] == '\0') { ShowWarning("npc_parse_mapflag: Missing 5th param for 'adjust_unit_duration' flag! removing flag from %s in file '%s', line '%d'.\n", map->list[m].name, filepath, strline(buffer,start-buffer)); if (retval) *retval = EXIT_FAILURE; - } else if( !( skill_id = skill->name2id(skill_name) ) || !skill->get_unit_id( skill->name2id(skill_name), 0) ) { + } else if ((skill_id = skill->name2id(skill_name)) == 0 || skill->get_unit_id(skill->name2id(skill_name), 1, 0) == 0) { ShowWarning("npc_parse_mapflag: Unknown skill (%s) for 'adjust_unit_duration' flag! removing flag from %s in file '%s', line '%d'.\n",skill_name, map->list[m].name, filepath, strline(buffer,start-buffer)); if (retval) *retval = EXIT_FAILURE; } else if ( atoi(modifier) < 1 || atoi(modifier) > USHRT_MAX ) { @@ -5605,7 +5611,7 @@ static int npc_reload(void) npc->npc_last_npd = NULL; npc->npc_last_path = NULL; npc->npc_last_ref = NULL; - + const int npc_new_min = npc->npc_id; struct s_mapiterator *iter = mapit_geteachiddb(); @@ -5722,8 +5728,10 @@ static bool npc_unloadfile(const char *filepath, bool unload_mobs) dbi_destroy(iter); - if (found) /// Refresh event cache. + if (found) { /// Refresh event cache. + npc->motd = npc->name2id("HerculesMOTD"); npc->read_event_script(); + } return found; } diff --git a/src/map/npc.h b/src/map/npc.h index 1585a2bc8..16d7a984b 100644 --- a/src/map/npc.h +++ b/src/map/npc.h @@ -56,9 +56,15 @@ enum npc_shop_types { struct npc_timerevent_list { int timer,pos; }; + +/** list of labels within a NPC (used internally by the label db) */ struct npc_label_list { + /** label name */ char name[NAME_LENGTH]; + /** start point within the script */ int pos; + /** optional label flags */ + enum script_label_flags flags; }; struct npc_barter_currency { diff --git a/src/map/npc_chat.c b/src/map/npc_chat.c index 0ca84cff4..0df323e96 100644 --- a/src/map/npc_chat.c +++ b/src/map/npc_chat.c @@ -394,7 +394,8 @@ static int npc_chat_sub(struct block_list *bl, va_list ap) // save out the matched strings for (i = 0; i < r; i++) { - char var[15], val[255]; + char var[SCRIPT_VARNAME_LENGTH + 1]; + char val[SCRIPT_STRING_VAR_LENGTH + 1]; snprintf(var, sizeof(var), "$@p%i$", i); libpcre->copy_substring(msg, offsets, r, i, val, sizeof(val)); script->set_var(sd, var, val); diff --git a/src/map/packets.h b/src/map/packets.h index 1e6dc71bc..e30acbdf7 100644 --- a/src/map/packets.h +++ b/src/map/packets.h @@ -1824,6 +1824,11 @@ packet(0x96e,clif->ackmergeitems); packet(0x0aa4, clif->pRefineryUIClose); #endif +#if PACKETVER_MAIN_NUM >= 20170111 || PACKETVER_RE_NUM >= 20170111 || defined(PACKETVER_ZERO) + packet(0x0ab5, clif->pLapineUpgrade_close); + packet(0x0ab6, clif->pLapineUpgrade_makeItem); +#endif + // 2017-02-28aRagexeRE #if PACKETVER >= 20170228 // new packets diff --git a/src/map/packets_keys_main.h b/src/map/packets_keys_main.h index 5fddf9eaf..5a2a1f846 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, 2019-08-28aRagexe, 2019-08-28aRagexeRE, 2019-09-04aRagexe, 2019-09-04bRagexe, 2019-09-04bRagexeRE, 2019-09-18bRagexe, 2019-09-18cRagexeRE, 2019-09-25aRagexe, 2019-09-25aRagexeRE, 2019-09-25bRagexe, 2019-09-25bRagexeRE, 2019-10-02bRagexeRE, 2019-10-02cRagexe, 2019-10-02dRagexe, 2019-10-02dRagexeRE, 2019-10-02dRagexeRE_2, 2019-10-16fRagexe, 2019-10-16fRagexeRE, 2019-10-16gRagexe, 2019-10-16gRagexeRE, 2019-10-18aRagexe, 2019-10-23aRagexe, 2019-10-23aRagexeRE, 2019-10-30bRagexeRE, 2019-10-30cRagexe, 2019-11-06aRagexe, 2019-11-06bRagexeRE, 2019-11-07aRagexe, 2019-11-07aRagexeRE, 2019-11-13cRagexe, 2019-11-13eRagexe, 2019-11-13eRagexeRE, 2019-11-20aRagexe, 2019-11-20cRagexeRE, 2019-11-20dRagexe, 2019-11-27aRagexe, 2019-11-27aRagexeRE, 2019-11-27bRagexe, 2019-12-04aRagexe, 2019-12-04aRagexeRE, 2019-12-04bRagexe, 2019-12-04bRagexeRE, 2019-12-04cRagexeRE, 2019-12-11aRagexe, 2019-12-11fRagexeRE, 2019-12-18bRagexe, 2019-12-18bRagexeRE, 2019-12-24aRagexe, 2019-12-24aRagexeRE, 2019-12-24bRagexe, 2019-12-24bRagexeRE, 2020-01-08aRagexe, 2020-01-08bRagexeRE, 2020-01-22cRagexe, 2020-01-22cRagexeRE, 2020-01-29bRagexe, 2020-01-30aRagexe, 2020-02-05aRagexe, 2020-02-05aRagexeRE, 2020-02-06aRagexe, 2020-02-12aRagexe, 2020-02-12aRagexeRE, 2020-02-19dRagexe, 2020-02-19eRagexeRE, 2020-03-04aRagexe, 2020-03-04aRagexeRE +// 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, 2019-09-25aRagexe, 2019-09-25aRagexeRE, 2019-09-25bRagexe, 2019-09-25bRagexeRE, 2019-10-02bRagexeRE, 2019-10-02cRagexe, 2019-10-02dRagexe, 2019-10-02dRagexeRE, 2019-10-02dRagexeRE_2, 2019-10-16fRagexe, 2019-10-16fRagexeRE, 2019-10-16gRagexe, 2019-10-16gRagexeRE, 2019-10-18aRagexe, 2019-10-23aRagexe, 2019-10-23aRagexeRE, 2019-10-30bRagexeRE, 2019-10-30cRagexe, 2019-11-06aRagexe, 2019-11-06bRagexeRE, 2019-11-07aRagexe, 2019-11-07aRagexeRE, 2019-11-13cRagexe, 2019-11-13eRagexe, 2019-11-13eRagexeRE, 2019-11-20aRagexe, 2019-11-20cRagexeRE, 2019-11-20dRagexe, 2019-11-27aRagexe, 2019-11-27aRagexeRE, 2019-11-27bRagexe, 2019-12-04aRagexe, 2019-12-04aRagexeRE, 2019-12-04bRagexe, 2019-12-04bRagexeRE, 2019-12-04cRagexeRE, 2019-12-11aRagexe, 2019-12-11fRagexeRE, 2019-12-18bRagexe, 2019-12-18bRagexeRE, 2019-12-24aRagexe, 2019-12-24aRagexeRE, 2019-12-24bRagexe, 2019-12-24bRagexeRE, 2020-01-08aRagexe, 2020-01-08bRagexeRE, 2020-01-22cRagexe, 2020-01-22cRagexeRE, 2020-01-29bRagexe, 2020-01-30aRagexe, 2020-02-05aRagexe, 2020-02-05aRagexeRE, 2020-02-06aRagexe, 2020-02-12aRagexe, 2020-02-12aRagexeRE, 2020-02-19dRagexe, 2020-02-19eRagexeRE, 2020-03-04aRagexe, 2020-03-04aRagexeRE, 2020-03-18bRagexe, 2020-04-01bRagexe, 2020-04-14_6aRagexe, 2020-04-14eRagexe, 2020-05-06aRagexe, 2020-05-20bRagexe #if PACKETVER == 20101123 || \ PACKETVER == 20101124 || \ PACKETVER == 20101125 || \ @@ -189,7 +189,12 @@ PACKETVER == 20200206 || \ PACKETVER == 20200212 || \ PACKETVER == 20200219 || \ - PACKETVER >= 20200304 + PACKETVER == 20200304 || \ + PACKETVER == 20200318 || \ + PACKETVER == 20200401 || \ + PACKETVER == 20200414 || \ + PACKETVER == 20200506 || \ + PACKETVER >= 20200520 packetKeys(0x00000000,0x00000000,0x00000000); #endif diff --git a/src/map/packets_keys_zero.h b/src/map/packets_keys_zero.h index facf0e151..700ff4c6c 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, 2019-08-28_2aRagexe_zero, 2019-08-28_3aRagexe_zero, 2019-09-11aRagexe_zero, 2019-09-18_2aRagexe_zero, 2019-09-18aRagexe_zero, 2019-09-25_3aRagexe_zero, 2019-09-25_5aRagexe_zero, 2019-10-08_2aRagexe_zero, 2019-10-23_2aRagexe_zero, 2019-11-06aRagexe_zero, 2019-11-13aRagexe_zero, 2019-11-27_2aRagexe_zero, 2019-11-27aRagexe_zero, 2019-12-04aRagexe_zero, 2019-12-11_2aRagexe_zero, 2019-12-24_4aRagexe_zero, 2019-12-24_5aRagexe_zero, 2020-01-15_2aRagexe_zero, 2020-01-15aRagexe_zero, 2020-01-29_2aRagexe_zero, 2020-01-29aRagexe_zero, 2020-02-12aRagexe_zero, 2020-02-26aRagexe_zero, 2020-02-26bRagexe_zero, 2020-03-04aRagexe_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, 2019-09-25_3aRagexe_zero, 2019-09-25_5aRagexe_zero, 2019-10-08_2aRagexe_zero, 2019-10-23_2aRagexe_zero, 2019-11-06aRagexe_zero, 2019-11-13aRagexe_zero, 2019-11-27_2aRagexe_zero, 2019-11-27aRagexe_zero, 2019-12-04aRagexe_zero, 2019-12-11_2aRagexe_zero, 2019-12-24_4aRagexe_zero, 2019-12-24_5aRagexe_zero, 2020-01-15_2aRagexe_zero, 2020-01-15aRagexe_zero, 2020-01-29_2aRagexe_zero, 2020-01-29aRagexe_zero, 2020-02-12aRagexe_zero, 2020-02-26aRagexe_zero, 2020-02-26bRagexe_zero, 2020-03-04aRagexe_zero, 2020-03-18_2aRagexe_zero, 2020-04-01_2aRagexe_zero, 2020-04-14bRagexe_zero, 2020-05-06aRagexe_zero, 2020-05-20_5aRagexe_zero #if PACKETVER == 20171018 || \ PACKETVER == 20171019 || \ PACKETVER == 20171023 || \ @@ -108,7 +108,12 @@ PACKETVER == 20200129 || \ PACKETVER == 20200212 || \ PACKETVER == 20200226 || \ - PACKETVER >= 20200304 + PACKETVER == 20200304 || \ + PACKETVER == 20200318 || \ + PACKETVER == 20200401 || \ + PACKETVER == 20200414 || \ + PACKETVER == 20200506 || \ + PACKETVER >= 20200520 packetKeys(0x00000000,0x00000000,0x00000000); #endif diff --git a/src/map/packets_shuffle_main.h b/src/map/packets_shuffle_main.h index 25024c9f9..ba234bdb8 100644 --- a/src/map/packets_shuffle_main.h +++ b/src/map/packets_shuffle_main.h @@ -40,3312 +40,3312 @@ // 2012-07-10aRagexe, 2012-07-12aRagexe #if PACKETVER == 20120710 || \ PACKETVER == 20120712 - packet(0x0202,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x02c4,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x0362,clif->pPartyBookingRegisterReq,2,4,6); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0365,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0367,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0436,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x07e4,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0811,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x085b,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0877,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x0878,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x087f,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x088d,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0893,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x0897,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0899,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x08a3,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x08a6,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x08a8,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x08aa,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x092d,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x0936,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0948,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x094b,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x094e,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0953,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0956,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0958,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0960,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 + packet(0x0202,clif->pSolveCharName,2); + packet(0x02c4,clif->pUseSkillToPos,2,4,6,8); + packet(0x0362,clif->pPartyBookingRegisterReq,2,4,6); + packet(0x0365,clif->pFriendsListAdd,2); + packet(0x0367,clif->pMoveToKafra,2,4); + packet(0x0436,clif->pActionRequest,2,6); + packet(0x07e4,clif->pTickSend,2); + packet(0x0811,clif->pReqClickBuyingStore,2); + packet(0x085b,clif->pUseSkillToId,2,4,6); + packet(0x0877,clif->pGetCharNameRequest,2); + packet(0x0878,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x087f,clif->pWalkToXY,2); + packet(0x088d,clif->pChangeDir,2,4); + packet(0x0893,clif->pStoragePassword,0); + packet(0x0897,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0899,clif->pTakeItem,2); + packet(0x08a3,clif->pDropItem,2,4); + packet(0x08a6,clif->pItemListWindowSelected,2,4,8); + packet(0x08a8,clif->pWantToConnection,2,6,10,14,18); + packet(0x08aa,clif->pMoveFromKafra,2,4); + packet(0x092d,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x0936,clif->pDull/*,XXX*/); + packet(0x0948,clif->pReqCloseBuyingStore,0); + packet(0x094b,clif->pHomMenu,2,4); + packet(0x094e,clif->pPartyInvite2,2); + packet(0x0953,clif->pDull/*,XXX*/); + packet(0x0956,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0958,clif->pSearchStoreInfoNextPage,0); + packet(0x0960,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); #endif // 2012-07-16aRagexe #if PACKETVER == 20120716 - packet(0x0202,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x022d,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x023b,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0281,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x035f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0360,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0361,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0362,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0363,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0364,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0365,clif->pPartyBookingRegisterReq,2,4,6); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0436,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0437,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0438,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x07e4,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x07ec,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0802,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0835,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x083c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x089f,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x096a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 + packet(0x0202,clif->pChangeDir,2,4); + packet(0x022d,clif->pWantToConnection,2,6,10,14,18); + packet(0x023b,clif->pFriendsListAdd,2); + packet(0x0281,clif->pItemListWindowSelected,2,4,8); + packet(0x035f,clif->pTickSend,2); + packet(0x0360,clif->pReqClickBuyingStore,2); + packet(0x0361,clif->pHomMenu,2,4); + packet(0x0362,clif->pDropItem,2,4); + packet(0x0363,clif->pDull/*,XXX*/); + packet(0x0364,clif->pMoveFromKafra,2,4); + packet(0x0365,clif->pPartyBookingRegisterReq,2,4,6); + packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pActionRequest,2,6); + packet(0x0436,clif->pDull/*,XXX*/); + packet(0x0437,clif->pWalkToXY,2); + packet(0x0438,clif->pUseSkillToPos,2,4,6,8); + packet(0x07e4,clif->pTakeItem,2); + packet(0x07ec,clif->pMoveToKafra,2,4); + packet(0x0802,clif->pPartyInvite2,2); + packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0835,clif->pSearchStoreInfoNextPage,0); + packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x083c,clif->pUseSkillToId,2,4,6); + packet(0x089f,clif->pStoragePassword,0); + packet(0x096a,clif->pGetCharNameRequest,2); #endif // 2012-07-24aRagexe #if PACKETVER == 20120724 - packet(0x035f,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0364,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0815,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x0835,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0865,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0866,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0872,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0877,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x087c,clif->pPartyBookingRegisterReq,2,4,6); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0887,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0888,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x088e,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x08a1,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x08a9,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x08ab,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x091c,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x091f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0928,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0929,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x092b,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0935,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0938,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x093c,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0945,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0957,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x0959,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0963,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0965,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0966,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 + packet(0x035f,clif->pDull/*,XXX*/); + packet(0x0364,clif->pReqClickBuyingStore,2); + packet(0x0815,clif->pItemListWindowSelected,2,4,8); + packet(0x0835,clif->pPartyInvite2,2); + packet(0x0865,clif->pReqCloseBuyingStore,0); + packet(0x0866,clif->pDull/*,XXX*/); + packet(0x0872,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0877,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x087c,clif->pPartyBookingRegisterReq,2,4,6); + packet(0x0887,clif->pChangeDir,2,4); + packet(0x0888,clif->pHomMenu,2,4); + packet(0x088e,clif->pUseSkillToId,2,4,6); + packet(0x08a1,clif->pGetCharNameRequest,2); + packet(0x08a9,clif->pWantToConnection,2,6,10,14,18); + packet(0x08ab,clif->pTakeItem,2); + packet(0x091c,clif->pWalkToXY,2); + packet(0x091f,clif->pTickSend,2); + packet(0x0928,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0929,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x092b,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0935,clif->pSearchStoreInfoNextPage,0); + packet(0x0938,clif->pUseSkillToPos,2,4,6,8); + packet(0x093c,clif->pMoveToKafra,2,4); + packet(0x0945,clif->pActionRequest,2,6); + packet(0x0957,clif->pStoragePassword,0); + packet(0x0959,clif->pFriendsListAdd,2); + packet(0x0963,clif->pDropItem,2,4); + packet(0x0965,clif->pSolveCharName,2); + packet(0x0966,clif->pMoveFromKafra,2,4); #endif // 2012-08-01aRagexe, 2012-08-01bRagexe #if PACKETVER == 20120801 - packet(0x0360,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0438,clif->pPartyBookingRegisterReq,2,4,6); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x085d,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x086a,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x086b,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x086f,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0873,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0875,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x087b,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x088b,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0890,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0895,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x089c,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x089d,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x089f,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x08a2,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x08aa,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x08ab,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0917,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x091d,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x092a,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x092e,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0930,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0934,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x093c,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0941,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0946,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x094e,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0964,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 + packet(0x0360,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0438,clif->pPartyBookingRegisterReq,2,4,6); + packet(0x085d,clif->pSolveCharName,2); + packet(0x086a,clif->pItemListWindowSelected,2,4,8); + packet(0x086b,clif->pGetCharNameRequest,2); + packet(0x086f,clif->pReqCloseBuyingStore,0); + packet(0x0873,clif->pUseSkillToId,2,4,6); + packet(0x0875,clif->pTakeItem,2); + packet(0x087b,clif->pSearchStoreInfoNextPage,0); + packet(0x088b,clif->pHomMenu,2,4); + packet(0x0890,clif->pActionRequest,2,6); + packet(0x0895,clif->pWantToConnection,2,6,10,14,18); + packet(0x089c,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x089d,clif->pDropItem,2,4); + packet(0x089f,clif->pWalkToXY,2); + packet(0x08a2,clif->pFriendsListAdd,2); + packet(0x08aa,clif->pChangeDir,2,4); + packet(0x08ab,clif->pMoveFromKafra,2,4); + packet(0x0917,clif->pStoragePassword,0); + packet(0x091d,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x092a,clif->pDull/*,XXX*/); + packet(0x092e,clif->pReqClickBuyingStore,2); + packet(0x0930,clif->pTickSend,2); + packet(0x0934,clif->pUseSkillToPos,2,4,6,8); + packet(0x093c,clif->pPartyInvite2,2); + packet(0x0941,clif->pMoveToKafra,2,4); + packet(0x0946,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x094e,clif->pDull/*,XXX*/); + packet(0x0964,clif->pSearchStoreInfoListItemClick,2,6,10); #endif // 2012-08-08aRagexe, 2012-08-08bRagexe, 2012-08-08cRagexe #if PACKETVER == 20120808 - packet(0x0202,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x0281,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x035f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0360,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0362,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0363,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0364,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0365,clif->pPartyBookingRegisterReq,2,4,6); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0366,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0436,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0437,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0438,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x07e4,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x07ec,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0802,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0835,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0838,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x083c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x085f,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x088f,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x093d,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0940,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x096a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 + packet(0x0202,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x0281,clif->pItemListWindowSelected,2,4,8); + packet(0x035f,clif->pTickSend,2); + packet(0x0360,clif->pReqClickBuyingStore,2); + packet(0x0362,clif->pDropItem,2,4); + packet(0x0363,clif->pDull/*,XXX*/); + packet(0x0364,clif->pMoveFromKafra,2,4); + packet(0x0365,clif->pPartyBookingRegisterReq,2,4,6); + packet(0x0366,clif->pWantToConnection,2,6,10,14,18); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pActionRequest,2,6); + packet(0x0436,clif->pDull/*,XXX*/); + packet(0x0437,clif->pWalkToXY,2); + packet(0x0438,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x07e4,clif->pTakeItem,2); + packet(0x07ec,clif->pMoveToKafra,2,4); + packet(0x0802,clif->pPartyInvite2,2); + packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0835,clif->pSearchStoreInfoNextPage,0); + packet(0x0838,clif->pFriendsListAdd,2); + packet(0x083c,clif->pUseSkillToId,2,4,6); + packet(0x085f,clif->pStoragePassword,0); + packet(0x088f,clif->pChangeDir,2,4); + packet(0x093d,clif->pHomMenu,2,4); + packet(0x0940,clif->pUseSkillToPos,2,4,6,8); + packet(0x096a,clif->pGetCharNameRequest,2); #endif // 2012-08-14aRagexe, 2012-08-14bRagexe #if PACKETVER == 20120814 - packet(0x0281,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0361,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x0365,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0366,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0438,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x07ec,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x0815,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0838,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x085e,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0861,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0862,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x0865,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0868,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x086f,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x0875,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x087f,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0882,clif->pPartyBookingRegisterReq,2,4,6); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x088b,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x088d,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0895,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x08a8,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x091f,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0920,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x0929,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0932,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x0934,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0941,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0967,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0969,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 + packet(0x0281,clif->pHomMenu,2,4); + packet(0x0361,clif->pItemListWindowSelected,2,4,8); + packet(0x0365,clif->pSolveCharName,2); + packet(0x0366,clif->pSearchStoreInfoNextPage,0); + packet(0x0438,clif->pTickSend,2); + packet(0x07ec,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x0815,clif->pDropItem,2,4); + packet(0x0838,clif->pReqCloseBuyingStore,0); + packet(0x085e,clif->pMoveToKafra,2,4); + packet(0x0861,clif->pReqClickBuyingStore,2); + packet(0x0862,clif->pTakeItem,2); + packet(0x0865,clif->pMoveFromKafra,2,4); + packet(0x0868,clif->pActionRequest,2,6); + packet(0x086f,clif->pStoragePassword,0); + packet(0x0875,clif->pWalkToXY,2); + packet(0x087f,clif->pPartyInvite2,2); + packet(0x0882,clif->pPartyBookingRegisterReq,2,4,6); + packet(0x088b,clif->pFriendsListAdd,2); + packet(0x088d,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0895,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x08a8,clif->pDull/*,XXX*/); + packet(0x091f,clif->pWantToConnection,2,6,10,14,18); + packet(0x0920,clif->pGetCharNameRequest,2); + packet(0x0929,clif->pDull/*,XXX*/); + packet(0x0932,clif->pUseSkillToPos,2,4,6,8); + packet(0x0934,clif->pUseSkillToId,2,4,6); + packet(0x0941,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0967,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0969,clif->pChangeDir,2,4); #endif // 2012-08-22aRagexe, 2012-08-22bRagexe, 2012-08-22cRagexe #if PACKETVER == 20120822 - packet(0x0365,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0437,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x085a,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x085c,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x085d,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x086b,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x086e,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0872,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x087c,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x087d,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0885,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x088a,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0899,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x089f,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x08a5,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x08ab,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0917,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x0924,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0927,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x0935,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0937,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x0940,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x0943,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x094d,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x094e,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0953,clif->pPartyBookingRegisterReq,2,4,6); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0955,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0958,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x095b,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 + packet(0x0365,clif->pFriendsListAdd,2); + packet(0x0437,clif->pTakeItem,2); + packet(0x085a,clif->pWalkToXY,2); + packet(0x085c,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x085d,clif->pUseSkillToId,2,4,6); + packet(0x086b,clif->pSolveCharName,2); + packet(0x086e,clif->pChangeDir,2,4); + packet(0x0872,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x087c,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x087d,clif->pTickSend,2); + packet(0x0885,clif->pDull/*,XXX*/); + packet(0x088a,clif->pMoveToKafra,2,4); + packet(0x0899,clif->pPartyInvite2,2); + packet(0x089f,clif->pWantToConnection,2,6,10,14,18); + packet(0x08a5,clif->pDull/*,XXX*/); + packet(0x08ab,clif->pActionRequest,2,6); + packet(0x0917,clif->pItemListWindowSelected,2,4,8); + packet(0x0924,clif->pSearchStoreInfoNextPage,0); + packet(0x0927,clif->pGetCharNameRequest,2); + packet(0x0935,clif->pHomMenu,2,4); + packet(0x0937,clif->pUseSkillToPos,2,4,6,8); + packet(0x0940,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x0943,clif->pMoveFromKafra,2,4); + packet(0x094d,clif->pStoragePassword,0); + packet(0x094e,clif->pDropItem,2,4); + packet(0x0953,clif->pPartyBookingRegisterReq,2,4,6); + packet(0x0955,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0958,clif->pReqCloseBuyingStore,0); + packet(0x095b,clif->pReqClickBuyingStore,2); #endif // 2012-08-30aRagexe #if PACKETVER == 20120830 - packet(0x022d,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x035f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0360,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0364,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0436,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0437,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0802,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0835,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0838,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x083c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0861,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0872,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0887,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x0888,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0890,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x091d,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x0926,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0934,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0945,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x094b,clif->pPartyBookingRegisterReq,2,4,6); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0964,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x096a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 + packet(0x022d,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x035f,clif->pTickSend,2); + packet(0x0360,clif->pReqClickBuyingStore,2); + packet(0x0364,clif->pSearchStoreInfoNextPage,0); + packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pActionRequest,2,6); + packet(0x0436,clif->pPartyInvite2,2); + packet(0x0437,clif->pWalkToXY,2); + packet(0x0802,clif->pStoragePassword,0); + packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0835,clif->pMoveToKafra,2,4); + packet(0x0838,clif->pHomMenu,2,4); + packet(0x083c,clif->pUseSkillToId,2,4,6); + packet(0x0861,clif->pWantToConnection,2,6,10,14,18); + packet(0x0872,clif->pFriendsListAdd,2); + packet(0x0887,clif->pUseSkillToPos,2,4,6,8); + packet(0x0888,clif->pDull/*,XXX*/); + packet(0x0890,clif->pDull/*,XXX*/); + packet(0x091d,clif->pItemListWindowSelected,2,4,8); + packet(0x0926,clif->pMoveFromKafra,2,4); + packet(0x0934,clif->pChangeDir,2,4); + packet(0x0945,clif->pDropItem,2,4); + packet(0x094b,clif->pPartyBookingRegisterReq,2,4,6); + packet(0x0964,clif->pTakeItem,2); + packet(0x096a,clif->pGetCharNameRequest,2); #endif // 2012-09-05aRagexe #if PACKETVER == 20120905 - packet(0x022d,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0365,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0817,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x085a,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x085d,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x086f,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0876,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0877,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0878,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x087a,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x087b,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x087e,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0887,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0895,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0897,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x08a0,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x08a6,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0917,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0918,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x091a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x0927,clif->pPartyBookingRegisterReq,2,4,6); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x093c,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x0944,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0945,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0950,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0954,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0959,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0960,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0967,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 + packet(0x022d,clif->pMoveToKafra,2,4); + packet(0x0365,clif->pDull/*,XXX*/); + packet(0x0817,clif->pStoragePassword,0); + packet(0x085a,clif->pSearchStoreInfoNextPage,0); + packet(0x085d,clif->pUseSkillToPos,2,4,6,8); + packet(0x086f,clif->pSolveCharName,2); + packet(0x0876,clif->pHomMenu,2,4); + packet(0x0877,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0878,clif->pWalkToXY,2); + packet(0x087a,clif->pUseSkillToId,2,4,6); + packet(0x087b,clif->pTickSend,2); + packet(0x087e,clif->pMoveFromKafra,2,4); + packet(0x0887,clif->pWantToConnection,2,6,10,14,18); + packet(0x0895,clif->pChangeDir,2,4); + packet(0x0897,clif->pTakeItem,2); + packet(0x08a0,clif->pDull/*,XXX*/); + packet(0x08a6,clif->pFriendsListAdd,2); + packet(0x0917,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0918,clif->pItemListWindowSelected,2,4,8); + packet(0x091a,clif->pGetCharNameRequest,2); + packet(0x0927,clif->pPartyBookingRegisterReq,2,4,6); + packet(0x093c,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x0944,clif->pPartyInvite2,2); + packet(0x0945,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0950,clif->pDropItem,2,4); + packet(0x0954,clif->pReqCloseBuyingStore,0); + packet(0x0959,clif->pReqClickBuyingStore,2); + packet(0x0960,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0967,clif->pActionRequest,2,6); #endif // 2012-09-11aRagexe #if PACKETVER == 20120911 - packet(0x0438,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0819,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0868,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x086f,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0876,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0877,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0879,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x087a,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x088a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x088f,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x08a4,clif->pPartyBookingRegisterReq,2,4,6); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x08a5,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x08a6,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x08a7,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x08ad,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x0930,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0935,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x093e,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x0948,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x0949,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x094b,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0952,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0958,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0959,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0962,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0963,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0966,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0968,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x096a,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 + packet(0x0438,clif->pTickSend,2); + packet(0x0819,clif->pMoveFromKafra,2,4); + packet(0x0868,clif->pTakeItem,2); + packet(0x086f,clif->pWalkToXY,2); + packet(0x0876,clif->pHomMenu,2,4); + packet(0x0877,clif->pPartyInvite2,2); + packet(0x0879,clif->pReqClickBuyingStore,2); + packet(0x087a,clif->pDull/*,XXX*/); + packet(0x088a,clif->pGetCharNameRequest,2); + packet(0x088f,clif->pFriendsListAdd,2); + packet(0x08a4,clif->pPartyBookingRegisterReq,2,4,6); + packet(0x08a5,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x08a6,clif->pWantToConnection,2,6,10,14,18); + packet(0x08a7,clif->pDropItem,2,4); + packet(0x08ad,clif->pItemListWindowSelected,2,4,8); + packet(0x0930,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0935,clif->pReqCloseBuyingStore,0); + packet(0x093e,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x0948,clif->pUseSkillToPos,2,4,6,8); + packet(0x0949,clif->pDull/*,XXX*/); + packet(0x094b,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0952,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0958,clif->pUseSkillToId,2,4,6); + packet(0x0959,clif->pActionRequest,2,6); + packet(0x0962,clif->pSearchStoreInfoNextPage,0); + packet(0x0963,clif->pSolveCharName,2); + packet(0x0966,clif->pMoveToKafra,2,4); + packet(0x0968,clif->pChangeDir,2,4); + packet(0x096a,clif->pStoragePassword,0); #endif // 2012-09-19aRagexe #if PACKETVER == 20120919 - packet(0x0202,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x022d,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x023b,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0281,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x035f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0360,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0361,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0362,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0363,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0364,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0365,clif->pPartyBookingRegisterReq,2,4,6); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0436,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0437,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0438,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x07e4,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x07ec,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0802,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0835,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x083c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0956,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x096a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 + packet(0x0202,clif->pChangeDir,2,4); + packet(0x022d,clif->pWantToConnection,2,6,10,14,18); + packet(0x023b,clif->pFriendsListAdd,2); + packet(0x0281,clif->pItemListWindowSelected,2,4,8); + packet(0x035f,clif->pTickSend,2); + packet(0x0360,clif->pReqClickBuyingStore,2); + packet(0x0361,clif->pHomMenu,2,4); + packet(0x0362,clif->pDropItem,2,4); + packet(0x0363,clif->pDull/*,XXX*/); + packet(0x0364,clif->pMoveFromKafra,2,4); + packet(0x0365,clif->pPartyBookingRegisterReq,2,4,6); + packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pActionRequest,2,6); + packet(0x0436,clif->pDull/*,XXX*/); + packet(0x0437,clif->pWalkToXY,2); + packet(0x0438,clif->pUseSkillToPos,2,4,6,8); + packet(0x07e4,clif->pTakeItem,2); + packet(0x07ec,clif->pMoveToKafra,2,4); + packet(0x0802,clif->pPartyInvite2,2); + packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0835,clif->pSearchStoreInfoNextPage,0); + packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x083c,clif->pUseSkillToId,2,4,6); + packet(0x0956,clif->pStoragePassword,0); + packet(0x096a,clif->pGetCharNameRequest,2); #endif // 2012-09-25aRagexe, 2012-09-26aRagexe #if PACKETVER == 20120925 || \ PACKETVER == 20120926 - packet(0x07e4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0815,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x0819,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0835,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0838,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x085d,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0869,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0873,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x087a,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x087e,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0887,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x088a,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x088d,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x088f,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x089d,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x08a4,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x091c,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x091e,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0923,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x0927,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0932,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0942,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x0948,clif->pPartyBookingRegisterReq,2,4,6); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0950,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0956,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0957,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0958,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x095e,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x0963,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 + packet(0x07e4,clif->pDull/*,XXX*/); + packet(0x0815,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x0819,clif->pWantToConnection,2,6,10,14,18); + packet(0x0835,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0838,clif->pGetCharNameRequest,2); + packet(0x085d,clif->pHomMenu,2,4); + packet(0x0869,clif->pMoveToKafra,2,4); + packet(0x0873,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x087a,clif->pDropItem,2,4); + packet(0x087e,clif->pFriendsListAdd,2); + packet(0x0887,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x088a,clif->pPartyInvite2,2); + packet(0x088d,clif->pUseSkillToId,2,4,6); + packet(0x088f,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x089d,clif->pItemListWindowSelected,2,4,8); + packet(0x08a4,clif->pActionRequest,2,6); + packet(0x091c,clif->pSearchStoreInfoNextPage,0); + packet(0x091e,clif->pReqCloseBuyingStore,0); + packet(0x0923,clif->pTakeItem,2); + packet(0x0927,clif->pReqClickBuyingStore,2); + packet(0x0932,clif->pTickSend,2); + packet(0x0942,clif->pStoragePassword,0); + packet(0x0948,clif->pPartyBookingRegisterReq,2,4,6); + packet(0x0950,clif->pWalkToXY,2); + packet(0x0956,clif->pDull/*,XXX*/); + packet(0x0957,clif->pChangeDir,2,4); + packet(0x0958,clif->pSolveCharName,2); + packet(0x095e,clif->pUseSkillToPos,2,4,6,8); + packet(0x0963,clif->pMoveFromKafra,2,4); #endif // 2012-10-10aRagexe, 2012-10-10bRagexe #if PACKETVER == 20121010 - packet(0x0202,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x0817,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x085a,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0869,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x086c,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0874,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x087d,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0883,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0888,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x088f,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0891,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0896,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0898,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x08a1,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x08a6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x08a9,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0925,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x0934,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x093c,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0942,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0946,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0947,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x094c,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0957,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0958,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0959,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x095c,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0964,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0969,clif->pPartyBookingRegisterReq,2,4,6); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 + packet(0x0202,clif->pItemListWindowSelected,2,4,8); + packet(0x0817,clif->pGetCharNameRequest,2); + packet(0x085a,clif->pReqCloseBuyingStore,0); + packet(0x0869,clif->pTakeItem,2); + packet(0x086c,clif->pDull/*,XXX*/); + packet(0x0874,clif->pMoveFromKafra,2,4); + packet(0x087d,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0883,clif->pWalkToXY,2); + packet(0x0888,clif->pDull/*,XXX*/); + packet(0x088f,clif->pPartyInvite2,2); + packet(0x0891,clif->pUseSkillToId,2,4,6); + packet(0x0896,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0898,clif->pStoragePassword,0); + packet(0x08a1,clif->pActionRequest,2,6); + packet(0x08a6,clif->pSolveCharName,2); + packet(0x08a9,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0925,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x0934,clif->pTickSend,2); + packet(0x093c,clif->pMoveToKafra,2,4); + packet(0x0942,clif->pReqClickBuyingStore,2); + packet(0x0946,clif->pWantToConnection,2,6,10,14,18); + packet(0x0947,clif->pUseSkillToPos,2,4,6,8); + packet(0x094c,clif->pDropItem,2,4); + packet(0x0957,clif->pChangeDir,2,4); + packet(0x0958,clif->pSearchStoreInfoNextPage,0); + packet(0x0959,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x095c,clif->pHomMenu,2,4); + packet(0x0964,clif->pFriendsListAdd,2); + packet(0x0969,clif->pPartyBookingRegisterReq,2,4,6); #endif // 2012-10-17aRagexe, 2012-10-17bRagexe #if PACKETVER == 20121017 - packet(0x023b,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x035f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0360,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0365,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0437,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0438,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0815,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0835,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x083c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0868,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x086b,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0887,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x0888,clif->pPartyBookingRegisterReq,2,4,6); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0897,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x089a,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x08a6,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0918,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x0920,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0960,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0962,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x0965,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x096a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 + packet(0x023b,clif->pPartyInvite2,2); + packet(0x035f,clif->pTickSend,2); + packet(0x0360,clif->pReqClickBuyingStore,2); + packet(0x0365,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pActionRequest,2,6); + packet(0x0437,clif->pWalkToXY,2); + packet(0x0438,clif->pUseSkillToPos,2,4,6,8); + packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0815,clif->pMoveFromKafra,2,4); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0835,clif->pSearchStoreInfoNextPage,0); + packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x083c,clif->pUseSkillToId,2,4,6); + packet(0x0868,clif->pDull/*,XXX*/); + packet(0x086b,clif->pDropItem,2,4); + packet(0x0887,clif->pItemListWindowSelected,2,4,8); + packet(0x0888,clif->pPartyBookingRegisterReq,2,4,6); + packet(0x0897,clif->pMoveToKafra,2,4); + packet(0x089a,clif->pFriendsListAdd,2); + packet(0x08a6,clif->pChangeDir,2,4); + packet(0x0918,clif->pStoragePassword,0); + packet(0x0920,clif->pDull/*,XXX*/); + packet(0x0960,clif->pHomMenu,2,4); + packet(0x0962,clif->pTakeItem,2); + packet(0x0965,clif->pWantToConnection,2,6,10,14,18); + packet(0x096a,clif->pGetCharNameRequest,2); #endif // 2012-10-24aRagexe #if PACKETVER == 20121024 - packet(0x0436,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0437,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0438,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x0817,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0838,clif->pPartyBookingRegisterReq,2,4,6); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x085a,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0868,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0872,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x0875,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x087a,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x087b,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x087e,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x0882,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x0888,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0889,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x088a,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x089c,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x08a9,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x08aa,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0931,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x0938,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x093a,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0942,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0947,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0954,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0955,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x095d,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x095e,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0965,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 + packet(0x0436,clif->pWalkToXY,2); + packet(0x0437,clif->pUseSkillToId,2,4,6); + packet(0x0438,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x0817,clif->pActionRequest,2,6); + packet(0x0838,clif->pPartyBookingRegisterReq,2,4,6); + packet(0x085a,clif->pMoveFromKafra,2,4); + packet(0x0868,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0872,clif->pGetCharNameRequest,2); + packet(0x0875,clif->pDull/*,XXX*/); + packet(0x087a,clif->pMoveToKafra,2,4); + packet(0x087b,clif->pItemListWindowSelected,2,4,8); + packet(0x087e,clif->pUseSkillToPos,2,4,6,8); + packet(0x0882,clif->pStoragePassword,0); + packet(0x0888,clif->pHomMenu,2,4); + packet(0x0889,clif->pDropItem,2,4); + packet(0x088a,clif->pReqClickBuyingStore,2); + packet(0x089c,clif->pPartyInvite2,2); + packet(0x08a9,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x08aa,clif->pChangeDir,2,4); + packet(0x0931,clif->pTakeItem,2); + packet(0x0938,clif->pReqCloseBuyingStore,0); + packet(0x093a,clif->pDull/*,XXX*/); + packet(0x0942,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0947,clif->pTickSend,2); + packet(0x0954,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0955,clif->pSearchStoreInfoNextPage,0); + packet(0x095d,clif->pFriendsListAdd,2); + packet(0x095e,clif->pSolveCharName,2); + packet(0x0965,clif->pWantToConnection,2,6,10,14,18); #endif // 2012-10-31aRagexe #if PACKETVER == 20121031 - packet(0x022d,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0281,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x035f,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0360,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0362,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0363,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0364,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0365,clif->pPartyBookingRegisterReq,2,4,6); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0437,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0438,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x07e4,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x07ec,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0802,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0835,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x083c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x085a,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0871,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0877,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0898,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x092b,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x096a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 + packet(0x022d,clif->pTickSend,2); + packet(0x0281,clif->pItemListWindowSelected,2,4,8); + packet(0x035f,clif->pHomMenu,2,4); + packet(0x0360,clif->pReqClickBuyingStore,2); + packet(0x0362,clif->pDropItem,2,4); + packet(0x0363,clif->pDull/*,XXX*/); + packet(0x0364,clif->pMoveFromKafra,2,4); + packet(0x0365,clif->pPartyBookingRegisterReq,2,4,6); + packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pActionRequest,2,6); + packet(0x0437,clif->pWalkToXY,2); + packet(0x0438,clif->pUseSkillToPos,2,4,6,8); + packet(0x07e4,clif->pTakeItem,2); + packet(0x07ec,clif->pMoveToKafra,2,4); + packet(0x0802,clif->pPartyInvite2,2); + packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0835,clif->pSearchStoreInfoNextPage,0); + packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x083c,clif->pUseSkillToId,2,4,6); + packet(0x085a,clif->pFriendsListAdd,2); + packet(0x0871,clif->pChangeDir,2,4); + packet(0x0877,clif->pWantToConnection,2,6,10,14,18); + packet(0x0898,clif->pStoragePassword,0); + packet(0x092b,clif->pDull/*,XXX*/); + packet(0x096a,clif->pGetCharNameRequest,2); #endif // 2012-11-07aRagexe #if PACKETVER == 20121107 - packet(0x0360,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x0361,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x0365,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x085c,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x0861,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0865,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x086c,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x086d,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0871,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0873,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0878,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x087f,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x088f,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0890,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0891,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0896,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x089a,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x089b,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x08a2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x08ad,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x0922,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0934,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x093b,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x0945,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x094d,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0960,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0963,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0966,clif->pPartyBookingRegisterReq,2,4,6); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x096a,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 + packet(0x0360,clif->pTakeItem,2); + packet(0x0361,clif->pStoragePassword,0); + packet(0x0365,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x085c,clif->pItemListWindowSelected,2,4,8); + packet(0x0861,clif->pTickSend,2); + packet(0x0865,clif->pWantToConnection,2,6,10,14,18); + packet(0x086c,clif->pHomMenu,2,4); + packet(0x086d,clif->pSolveCharName,2); + packet(0x0871,clif->pSearchStoreInfoNextPage,0); + packet(0x0873,clif->pMoveToKafra,2,4); + packet(0x0878,clif->pPartyInvite2,2); + packet(0x087f,clif->pChangeDir,2,4); + packet(0x088f,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0890,clif->pUseSkillToId,2,4,6); + packet(0x0891,clif->pMoveFromKafra,2,4); + packet(0x0896,clif->pReqClickBuyingStore,2); + packet(0x089a,clif->pActionRequest,2,6); + packet(0x089b,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x08a2,clif->pReqCloseBuyingStore,0); + packet(0x08ad,clif->pGetCharNameRequest,2); + packet(0x0922,clif->pDull/*,XXX*/); + packet(0x0934,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x093b,clif->pUseSkillToPos,2,4,6,8); + packet(0x0945,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x094d,clif->pWalkToXY,2); + packet(0x0960,clif->pDropItem,2,4); + packet(0x0963,clif->pDull/*,XXX*/); + packet(0x0966,clif->pPartyBookingRegisterReq,2,4,6); + packet(0x096a,clif->pFriendsListAdd,2); #endif // 2012-11-14aRagexe #if PACKETVER == 20121114 - packet(0x0364,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x0365,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0437,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0815,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0838,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0862,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0876,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0879,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x0881,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0898,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0899,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x08a9,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x08aa,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x08ab,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x091a,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0930,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0935,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0938,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x093b,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x093c,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0941,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0944,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x0949,clif->pPartyBookingRegisterReq,2,4,6); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x094a,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x094b,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x094f,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x095c,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0965,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x096a,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 + packet(0x0364,clif->pStoragePassword,0); + packet(0x0365,clif->pHomMenu,2,4); + packet(0x0437,clif->pDropItem,2,4); + packet(0x0815,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0838,clif->pPartyInvite2,2); + packet(0x0862,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0876,clif->pSolveCharName,2); + packet(0x0879,clif->pGetCharNameRequest,2); + packet(0x0881,clif->pSearchStoreInfoNextPage,0); + packet(0x0898,clif->pActionRequest,2,6); + packet(0x0899,clif->pWalkToXY,2); + packet(0x08a9,clif->pTickSend,2); + packet(0x08aa,clif->pReqCloseBuyingStore,0); + packet(0x08ab,clif->pChangeDir,2,4); + packet(0x091a,clif->pMoveFromKafra,2,4); + packet(0x0930,clif->pDull/*,XXX*/); + packet(0x0935,clif->pUseSkillToId,2,4,6); + packet(0x0938,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x093b,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x093c,clif->pMoveToKafra,2,4); + packet(0x0941,clif->pFriendsListAdd,2); + packet(0x0944,clif->pItemListWindowSelected,2,4,8); + packet(0x0949,clif->pPartyBookingRegisterReq,2,4,6); + packet(0x094a,clif->pUseSkillToPos,2,4,6,8); + packet(0x094b,clif->pWantToConnection,2,6,10,14,18); + packet(0x094f,clif->pReqClickBuyingStore,2); + packet(0x095c,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0965,clif->pTakeItem,2); + packet(0x096a,clif->pDull/*,XXX*/); #endif // 2012-11-21aRagexe #if PACKETVER == 20121121 - packet(0x0202,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0362,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0437,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x0863,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x086a,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x086c,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x086d,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x086f,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0872,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x0875,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x087e,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0880,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0892,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0899,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x089a,clif->pPartyBookingRegisterReq,2,4,6); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x08a7,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x08aa,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x091a,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0921,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x0927,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0929,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0938,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x0946,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x094d,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0950,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0952,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0954,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x0957,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0958,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 + packet(0x0202,clif->pUseSkillToId,2,4,6); + packet(0x0362,clif->pReqCloseBuyingStore,0); + packet(0x0437,clif->pTakeItem,2); + packet(0x0863,clif->pItemListWindowSelected,2,4,8); + packet(0x086a,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x086c,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x086d,clif->pSolveCharName,2); + packet(0x086f,clif->pMoveFromKafra,2,4); + packet(0x0872,clif->pGetCharNameRequest,2); + packet(0x0875,clif->pMoveToKafra,2,4); + packet(0x087e,clif->pSearchStoreInfoNextPage,0); + packet(0x0880,clif->pChangeDir,2,4); + packet(0x0892,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0899,clif->pFriendsListAdd,2); + packet(0x089a,clif->pPartyBookingRegisterReq,2,4,6); + packet(0x08a7,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x08aa,clif->pActionRequest,2,6); + packet(0x091a,clif->pTickSend,2); + packet(0x0921,clif->pUseSkillToPos,2,4,6,8); + packet(0x0927,clif->pWantToConnection,2,6,10,14,18); + packet(0x0929,clif->pDull/*,XXX*/); + packet(0x0938,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x0946,clif->pWalkToXY,2); + packet(0x094d,clif->pDull/*,XXX*/); + packet(0x0950,clif->pHomMenu,2,4); + packet(0x0952,clif->pDropItem,2,4); + packet(0x0954,clif->pStoragePassword,0); + packet(0x0957,clif->pPartyInvite2,2); + packet(0x0958,clif->pReqClickBuyingStore,2); #endif // 2012-11-28aRagexe #if PACKETVER == 20121128 - packet(0x0362,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0363,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x07ec,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0802,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x0861,clif->pPartyBookingRegisterReq,2,4,6); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0867,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x086c,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x086e,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0872,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0888,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x088b,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0894,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0895,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x08a8,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x08ad,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x091b,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x091c,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x091e,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x091f,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0921,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0922,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x092f,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0931,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0945,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0947,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0950,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x0953,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0954,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0960,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 + packet(0x0362,clif->pWantToConnection,2,6,10,14,18); + packet(0x0363,clif->pFriendsListAdd,2); + packet(0x07ec,clif->pPartyInvite2,2); + packet(0x0802,clif->pStoragePassword,0); + packet(0x0861,clif->pPartyBookingRegisterReq,2,4,6); + packet(0x0867,clif->pTickSend,2); + packet(0x086c,clif->pUseSkillToPos,2,4,6,8); + packet(0x086e,clif->pDull/*,XXX*/); + packet(0x0872,clif->pUseSkillToId,2,4,6); + packet(0x0888,clif->pChangeDir,2,4); + packet(0x088b,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0894,clif->pDull/*,XXX*/); + packet(0x0895,clif->pTakeItem,2); + packet(0x08a8,clif->pItemListWindowSelected,2,4,8); + packet(0x08ad,clif->pWalkToXY,2); + packet(0x091b,clif->pSolveCharName,2); + packet(0x091c,clif->pGetCharNameRequest,2); + packet(0x091e,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x091f,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0921,clif->pSearchStoreInfoNextPage,0); + packet(0x0922,clif->pMoveFromKafra,2,4); + packet(0x092f,clif->pReqClickBuyingStore,2); + packet(0x0931,clif->pActionRequest,2,6); + packet(0x0945,clif->pHomMenu,2,4); + packet(0x0947,clif->pReqCloseBuyingStore,0); + packet(0x0950,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x0953,clif->pDropItem,2,4); + packet(0x0954,clif->pMoveToKafra,2,4); + packet(0x0960,clif->pReqTradeBuyingStore,2,4,8,12); #endif // 2012-12-05aRagexe, 2012-12-05bRagexe #if PACKETVER == 20121205 - packet(0x035f,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0360,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0361,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0815,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x0863,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0864,clif->pPartyBookingRegisterReq,2,4,6); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x086c,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x0870,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0873,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0875,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0878,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0888,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x0889,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x088b,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x089a,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x089d,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x08ad,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x091a,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x091c,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0921,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x093a,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x093e,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x093f,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0946,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x094b,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x0954,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0959,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0966,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0968,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 + packet(0x035f,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0360,clif->pWalkToXY,2); + packet(0x0361,clif->pHomMenu,2,4); + packet(0x0815,clif->pTakeItem,2); + packet(0x0863,clif->pTickSend,2); + packet(0x0864,clif->pPartyBookingRegisterReq,2,4,6); + packet(0x086c,clif->pItemListWindowSelected,2,4,8); + packet(0x0870,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0873,clif->pSearchStoreInfoNextPage,0); + packet(0x0875,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0878,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0888,clif->pStoragePassword,0); + packet(0x0889,clif->pDropItem,2,4); + packet(0x088b,clif->pDull/*,XXX*/); + packet(0x089a,clif->pFriendsListAdd,2); + packet(0x089d,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x08ad,clif->pSolveCharName,2); + packet(0x091a,clif->pReqCloseBuyingStore,0); + packet(0x091c,clif->pMoveFromKafra,2,4); + packet(0x0921,clif->pWantToConnection,2,6,10,14,18); + packet(0x093a,clif->pReqClickBuyingStore,2); + packet(0x093e,clif->pDull/*,XXX*/); + packet(0x093f,clif->pUseSkillToId,2,4,6); + packet(0x0946,clif->pUseSkillToPos,2,4,6,8); + packet(0x094b,clif->pGetCharNameRequest,2); + packet(0x0954,clif->pActionRequest,2,6); + packet(0x0959,clif->pPartyInvite2,2); + packet(0x0966,clif->pMoveToKafra,2,4); + packet(0x0968,clif->pChangeDir,2,4); #endif // 2012-12-12aRagexe, 2012-12-12bRagexe #if PACKETVER == 20121212 - packet(0x0362,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0368,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0369,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0436,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0438,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0817,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x085c,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0877,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x087d,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x087f,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x0893,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0895,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x08a3,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x08a7,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x08a9,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x08aa,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x08ac,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0917,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x091a,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0920,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0932,clif->pPartyBookingRegisterReq,2,4,6); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0947,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0951,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0953,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x0957,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x095b,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0965,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x0966,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x096a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 + packet(0x0362,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0368,clif->pFriendsListAdd,2); + packet(0x0369,clif->pPartyInvite2,2); + packet(0x0436,clif->pSearchStoreInfoNextPage,0); + packet(0x0438,clif->pReqCloseBuyingStore,0); + packet(0x0817,clif->pUseSkillToPos,2,4,6,8); + packet(0x085c,clif->pActionRequest,2,6); + packet(0x0877,clif->pTickSend,2); + packet(0x087d,clif->pUseSkillToId,2,4,6); + packet(0x087f,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x0893,clif->pSolveCharName,2); + packet(0x0895,clif->pReqClickBuyingStore,2); + packet(0x08a3,clif->pWantToConnection,2,6,10,14,18); + packet(0x08a7,clif->pWalkToXY,2); + packet(0x08a9,clif->pStoragePassword,0); + packet(0x08aa,clif->pDull/*,XXX*/); + packet(0x08ac,clif->pDropItem,2,4); + packet(0x0917,clif->pMoveFromKafra,2,4); + packet(0x091a,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0920,clif->pChangeDir,2,4); + packet(0x0932,clif->pPartyBookingRegisterReq,2,4,6); + packet(0x0947,clif->pHomMenu,2,4); + packet(0x0951,clif->pDull/*,XXX*/); + packet(0x0953,clif->pTakeItem,2); + packet(0x0957,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x095b,clif->pMoveToKafra,2,4); + packet(0x0965,clif->pItemListWindowSelected,2,4,8); + packet(0x0966,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x096a,clif->pGetCharNameRequest,2); #endif // 2012-12-18aRagexe, 2012-12-18bRagexe #if PACKETVER == 20121218 - packet(0x035f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0360,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0362,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0363,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0437,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0438,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0835,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x083c,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0867,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0872,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x087a,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x087b,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0886,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0889,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x0890,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x091a,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x091c,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0935,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0946,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x0957,clif->pPartyBookingRegisterReq,2,4,6); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x096a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 + packet(0x035f,clif->pTickSend,2); + packet(0x0360,clif->pReqClickBuyingStore,2); + packet(0x0362,clif->pUseSkillToId,2,4,6); + packet(0x0363,clif->pTakeItem,2); + packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pActionRequest,2,6); + packet(0x0437,clif->pWalkToXY,2); + packet(0x0438,clif->pUseSkillToPos,2,4,6,8); + packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0835,clif->pSearchStoreInfoNextPage,0); + packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x083c,clif->pDropItem,2,4); + packet(0x0867,clif->pHomMenu,2,4); + packet(0x0872,clif->pDull/*,XXX*/); + packet(0x087a,clif->pChangeDir,2,4); + packet(0x087b,clif->pPartyInvite2,2); + packet(0x0886,clif->pMoveToKafra,2,4); + packet(0x0889,clif->pItemListWindowSelected,2,4,8); + packet(0x0890,clif->pDull/*,XXX*/); + packet(0x091a,clif->pMoveFromKafra,2,4); + packet(0x091c,clif->pWantToConnection,2,6,10,14,18); + packet(0x0935,clif->pFriendsListAdd,2); + packet(0x0946,clif->pStoragePassword,0); + packet(0x0957,clif->pPartyBookingRegisterReq,2,4,6); + packet(0x096a,clif->pGetCharNameRequest,2); #endif // 2012-12-27aRagexe #if PACKETVER == 20121227 - packet(0x0202,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x02c4,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0361,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x0368,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x0437,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0860,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0870,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x0872,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x087a,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0886,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0888,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x088e,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0890,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x0894,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0896,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x08a6,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x08aa,clif->pPartyBookingRegisterReq,2,4,6); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0917,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x091f,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0920,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0932,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0933,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0940,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0943,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0947,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x0953,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0958,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x095d,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0962,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 + packet(0x0202,clif->pHomMenu,2,4); + packet(0x02c4,clif->pWantToConnection,2,6,10,14,18); + packet(0x0361,clif->pStoragePassword,0); + packet(0x0368,clif->pItemListWindowSelected,2,4,8); + packet(0x0437,clif->pDropItem,2,4); + packet(0x0860,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0870,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x0872,clif->pReqClickBuyingStore,2); + packet(0x087a,clif->pActionRequest,2,6); + packet(0x0886,clif->pMoveFromKafra,2,4); + packet(0x0888,clif->pTickSend,2); + packet(0x088e,clif->pChangeDir,2,4); + packet(0x0890,clif->pUseSkillToPos,2,4,6,8); + packet(0x0894,clif->pFriendsListAdd,2); + packet(0x0896,clif->pSolveCharName,2); + packet(0x08a6,clif->pTakeItem,2); + packet(0x08aa,clif->pPartyBookingRegisterReq,2,4,6); + packet(0x0917,clif->pReqCloseBuyingStore,0); + packet(0x091f,clif->pDull/*,XXX*/); + packet(0x0920,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0932,clif->pWalkToXY,2); + packet(0x0933,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0940,clif->pUseSkillToId,2,4,6); + packet(0x0943,clif->pSearchStoreInfoNextPage,0); + packet(0x0947,clif->pGetCharNameRequest,2); + packet(0x0953,clif->pDull/*,XXX*/); + packet(0x0958,clif->pMoveToKafra,2,4); + packet(0x095d,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0962,clif->pPartyInvite2,2); #endif // 2013-01-03aRagexe, 2013-01-07aRagexe #if PACKETVER == 20130103 || \ PACKETVER == 20130107 - packet(0x0202,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x022d,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x023b,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0281,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x035f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0360,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0361,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0362,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0363,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0364,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0365,clif->pPartyBookingRegisterReq,2,4,6); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0436,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x0437,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0438,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x07e4,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x07ec,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0802,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0835,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x083c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0940,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x096a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 + packet(0x0202,clif->pChangeDir,2,4); + packet(0x022d,clif->pDull/*,XXX*/); + packet(0x023b,clif->pFriendsListAdd,2); + packet(0x0281,clif->pItemListWindowSelected,2,4,8); + packet(0x035f,clif->pTickSend,2); + packet(0x0360,clif->pReqClickBuyingStore,2); + packet(0x0361,clif->pHomMenu,2,4); + packet(0x0362,clif->pDropItem,2,4); + packet(0x0363,clif->pDull/*,XXX*/); + packet(0x0364,clif->pMoveFromKafra,2,4); + packet(0x0365,clif->pPartyBookingRegisterReq,2,4,6); + packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pActionRequest,2,6); + packet(0x0436,clif->pStoragePassword,0); + packet(0x0437,clif->pWalkToXY,2); + packet(0x0438,clif->pUseSkillToPos,2,4,6,8); + packet(0x07e4,clif->pTakeItem,2); + packet(0x07ec,clif->pMoveToKafra,2,4); + packet(0x0802,clif->pPartyInvite2,2); + packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0835,clif->pSearchStoreInfoNextPage,0); + packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x083c,clif->pUseSkillToId,2,4,6); + packet(0x0940,clif->pWantToConnection,2,6,10,14,18); + packet(0x096a,clif->pGetCharNameRequest,2); #endif // 2013-01-09aRagexe #if PACKETVER == 20130109 - packet(0x0281,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x0365,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0368,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x0437,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0838,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0866,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0886,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0888,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x088a,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x088e,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x0891,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0892,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x08a2,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x08aa,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x08ac,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0918,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x091b,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0922,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0927,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0928,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0930,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0931,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x0938,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x093e,clif->pPartyBookingRegisterReq,2,4,6); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x094f,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0950,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x0951,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0955,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x095e,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 + packet(0x0281,clif->pGetCharNameRequest,2); + packet(0x0365,clif->pDull/*,XXX*/); + packet(0x0368,clif->pUseSkillToPos,2,4,6,8); + packet(0x0437,clif->pActionRequest,2,6); + packet(0x0838,clif->pMoveFromKafra,2,4); + packet(0x0866,clif->pWalkToXY,2); + packet(0x0886,clif->pMoveToKafra,2,4); + packet(0x0888,clif->pChangeDir,2,4); + packet(0x088a,clif->pWantToConnection,2,6,10,14,18); + packet(0x088e,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x0891,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0892,clif->pUseSkillToId,2,4,6); + packet(0x08a2,clif->pSolveCharName,2); + packet(0x08aa,clif->pDull/*,XXX*/); + packet(0x08ac,clif->pSearchStoreInfoNextPage,0); + packet(0x0918,clif->pFriendsListAdd,2); + packet(0x091b,clif->pDropItem,2,4); + packet(0x0922,clif->pReqClickBuyingStore,2); + packet(0x0927,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0928,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0930,clif->pHomMenu,2,4); + packet(0x0931,clif->pItemListWindowSelected,2,4,8); + packet(0x0938,clif->pPartyInvite2,2); + packet(0x093e,clif->pPartyBookingRegisterReq,2,4,6); + packet(0x094f,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0950,clif->pStoragePassword,0); + packet(0x0951,clif->pTickSend,2); + packet(0x0955,clif->pReqCloseBuyingStore,0); + packet(0x095e,clif->pTakeItem,2); #endif // 2013-01-15bRagexe, 2013-01-16aRagexe, 2013-01-16bRagexe #if PACKETVER == 20130115 || \ PACKETVER == 20130116 - packet(0x0361,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x07ec,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0817,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x085e,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0861,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0863,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x086b,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0870,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0871,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0877,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0879,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x087c,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0888,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x088b,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0894,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0895,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x08a0,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x08a4,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x08ac,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0918,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0928,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x092d,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x092e,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0939,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x0946,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x094b,clif->pPartyBookingRegisterReq,2,4,6); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x094c,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x094e,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x095a,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 + packet(0x0361,clif->pDull/*,XXX*/); + packet(0x07ec,clif->pDull/*,XXX*/); + packet(0x0817,clif->pWalkToXY,2); + packet(0x085e,clif->pReqCloseBuyingStore,0); + packet(0x0861,clif->pMoveFromKafra,2,4); + packet(0x0863,clif->pActionRequest,2,6); + packet(0x086b,clif->pSearchStoreInfoNextPage,0); + packet(0x0870,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0871,clif->pFriendsListAdd,2); + packet(0x0877,clif->pReqClickBuyingStore,2); + packet(0x0879,clif->pChangeDir,2,4); + packet(0x087c,clif->pSolveCharName,2); + packet(0x0888,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x088b,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0894,clif->pHomMenu,2,4); + packet(0x0895,clif->pTickSend,2); + packet(0x08a0,clif->pPartyInvite2,2); + packet(0x08a4,clif->pUseSkillToPos,2,4,6,8); + packet(0x08ac,clif->pMoveToKafra,2,4); + packet(0x0918,clif->pUseSkillToId,2,4,6); + packet(0x0928,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x092d,clif->pWantToConnection,2,6,10,14,18); + packet(0x092e,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0939,clif->pGetCharNameRequest,2); + packet(0x0946,clif->pItemListWindowSelected,2,4,8); + packet(0x094b,clif->pPartyBookingRegisterReq,2,4,6); + packet(0x094c,clif->pTakeItem,2); + packet(0x094e,clif->pDropItem,2,4); + packet(0x095a,clif->pStoragePassword,0); #endif // 2013-01-21aRagexe #if PACKETVER == 20130121 - packet(0x023b,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x035f,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0360,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pPartyBookingRegisterReq,2,4,6); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0437,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0438,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x07ec,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0802,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0815,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0817,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x0835,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x083c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x085a,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x085d,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x086c,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0874,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0884,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0893,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x091f,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x0940,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x094f,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0956,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x095b,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0963,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0969,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x096a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 + packet(0x023b,clif->pReqCloseBuyingStore,0); + packet(0x035f,clif->pDull/*,XXX*/); + packet(0x0360,clif->pReqClickBuyingStore,2); + packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pPartyBookingRegisterReq,2,4,6); + packet(0x0437,clif->pWalkToXY,2); + packet(0x0438,clif->pUseSkillToPos,2,4,6,8); + packet(0x07ec,clif->pTickSend,2); + packet(0x0802,clif->pActionRequest,2,6); + packet(0x0815,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0817,clif->pStoragePassword,0); + packet(0x0835,clif->pSearchStoreInfoNextPage,0); + packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x083c,clif->pUseSkillToId,2,4,6); + packet(0x085a,clif->pDull/*,XXX*/); + packet(0x085d,clif->pHomMenu,2,4); + packet(0x086c,clif->pWantToConnection,2,6,10,14,18); + packet(0x0874,clif->pMoveToKafra,2,4); + packet(0x0884,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0893,clif->pFriendsListAdd,2); + packet(0x091f,clif->pTakeItem,2); + packet(0x0940,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x094f,clif->pDropItem,2,4); + packet(0x0956,clif->pChangeDir,2,4); + packet(0x095b,clif->pPartyInvite2,2); + packet(0x0963,clif->pMoveFromKafra,2,4); + packet(0x0969,clif->pItemListWindowSelected,2,4,8); + packet(0x096a,clif->pGetCharNameRequest,2); #endif // 2013-01-30aRagexe #if PACKETVER == 20130130 - packet(0x035f,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0362,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0367,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x0368,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0437,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x085f,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0862,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x086b,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x087d,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x087f,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0885,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0886,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x0887,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0889,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x089a,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x089f,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x08a0,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x08a4,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x08a9,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x091a,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0920,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0924,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x093a,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x093d,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x0956,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0957,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x095b,clif->pPartyBookingRegisterReq,2,4,6); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x095c,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x095d,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 + packet(0x035f,clif->pMoveToKafra,2,4); + packet(0x0362,clif->pHomMenu,2,4); + packet(0x0367,clif->pGetCharNameRequest,2); + packet(0x0368,clif->pChangeDir,2,4); + packet(0x0437,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x085f,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0862,clif->pReqCloseBuyingStore,0); + packet(0x086b,clif->pDull/*,XXX*/); + packet(0x087d,clif->pWalkToXY,2); + packet(0x087f,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0885,clif->pActionRequest,2,6); + packet(0x0886,clif->pTakeItem,2); + packet(0x0887,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0889,clif->pTickSend,2); + packet(0x089a,clif->pPartyInvite2,2); + packet(0x089f,clif->pDropItem,2,4); + packet(0x08a0,clif->pUseSkillToPos,2,4,6,8); + packet(0x08a4,clif->pUseSkillToId,2,4,6); + packet(0x08a9,clif->pDull/*,XXX*/); + packet(0x091a,clif->pSolveCharName,2); + packet(0x0920,clif->pFriendsListAdd,2); + packet(0x0924,clif->pReqClickBuyingStore,2); + packet(0x093a,clif->pStoragePassword,0); + packet(0x093d,clif->pItemListWindowSelected,2,4,8); + packet(0x0956,clif->pWantToConnection,2,6,10,14,18); + packet(0x0957,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x095b,clif->pPartyBookingRegisterReq,2,4,6); + packet(0x095c,clif->pMoveFromKafra,2,4); + packet(0x095d,clif->pSearchStoreInfoNextPage,0); #endif // 2013-02-06aRagexe #if PACKETVER == 20130206 - packet(0x035f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0360,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0362,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0437,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0438,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x07e4,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x0811,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0835,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x083c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x085d,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0876,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0883,clif->pPartyBookingRegisterReq,2,4,6); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0885,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0899,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x08a0,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x08ac,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0920,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0925,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x093a,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x093c,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0950,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x096a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 + packet(0x035f,clif->pTickSend,2); + packet(0x0360,clif->pReqClickBuyingStore,2); + packet(0x0362,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pActionRequest,2,6); + packet(0x0437,clif->pWalkToXY,2); + packet(0x0438,clif->pUseSkillToPos,2,4,6,8); + packet(0x07e4,clif->pStoragePassword,0); + packet(0x0811,clif->pTakeItem,2); + packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0835,clif->pSearchStoreInfoNextPage,0); + packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x083c,clif->pUseSkillToId,2,4,6); + packet(0x085d,clif->pMoveFromKafra,2,4); + packet(0x0876,clif->pDull/*,XXX*/); + packet(0x0883,clif->pPartyBookingRegisterReq,2,4,6); + packet(0x0885,clif->pMoveToKafra,2,4); + packet(0x0899,clif->pItemListWindowSelected,2,4,8); + packet(0x08a0,clif->pChangeDir,2,4); + packet(0x08ac,clif->pWantToConnection,2,6,10,14,18); + packet(0x0920,clif->pPartyInvite2,2); + packet(0x0925,clif->pDropItem,2,4); + packet(0x093a,clif->pHomMenu,2,4); + packet(0x093c,clif->pFriendsListAdd,2); + packet(0x0950,clif->pDull/*,XXX*/); + packet(0x096a,clif->pGetCharNameRequest,2); #endif // 2013-02-15aRagexe, 2013-02-15bRagexe #if PACKETVER == 20130215 - packet(0x023b,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x035f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0360,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x0366,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0436,clif->pPartyBookingRegisterReq,2,4,6); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0437,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0438,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x0802,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0835,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x083c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0869,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x086f,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0886,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x089e,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x089f,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x08ad,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x0923,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0941,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0956,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x095d,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0962,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x096a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 + packet(0x023b,clif->pReqClickBuyingStore,2); + packet(0x035f,clif->pTickSend,2); + packet(0x0360,clif->pStoragePassword,0); + packet(0x0366,clif->pWantToConnection,2,6,10,14,18); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pActionRequest,2,6); + packet(0x0436,clif->pPartyBookingRegisterReq,2,4,6); + packet(0x0437,clif->pWalkToXY,2); + packet(0x0438,clif->pUseSkillToPos,2,4,6,8); + packet(0x0802,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0835,clif->pSearchStoreInfoNextPage,0); + packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x083c,clif->pUseSkillToId,2,4,6); + packet(0x0869,clif->pMoveToKafra,2,4); + packet(0x086f,clif->pDull/*,XXX*/); + packet(0x0886,clif->pDropItem,2,4); + packet(0x089e,clif->pItemListWindowSelected,2,4,8); + packet(0x089f,clif->pDull/*,XXX*/); + packet(0x08ad,clif->pTakeItem,2); + packet(0x0923,clif->pHomMenu,2,4); + packet(0x0941,clif->pFriendsListAdd,2); + packet(0x0956,clif->pPartyInvite2,2); + packet(0x095d,clif->pChangeDir,2,4); + packet(0x0962,clif->pMoveFromKafra,2,4); + packet(0x096a,clif->pGetCharNameRequest,2); #endif // 2013-02-20aRagexe #if PACKETVER == 20130220 - packet(0x0202,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x022d,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x023b,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0281,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x035f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0360,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0361,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0362,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0363,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0364,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0365,clif->pPartyBookingRegisterReq,2,4,6); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0436,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0437,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0438,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x07e4,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x07ec,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0802,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0835,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x083c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x094b,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x096a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 + packet(0x0202,clif->pChangeDir,2,4); + packet(0x022d,clif->pWantToConnection,2,6,10,14,18); + packet(0x023b,clif->pFriendsListAdd,2); + packet(0x0281,clif->pItemListWindowSelected,2,4,8); + packet(0x035f,clif->pTickSend,2); + packet(0x0360,clif->pReqClickBuyingStore,2); + packet(0x0361,clif->pHomMenu,2,4); + packet(0x0362,clif->pDropItem,2,4); + packet(0x0363,clif->pDull/*,XXX*/); + packet(0x0364,clif->pMoveFromKafra,2,4); + packet(0x0365,clif->pPartyBookingRegisterReq,2,4,6); + packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pActionRequest,2,6); + packet(0x0436,clif->pDull/*,XXX*/); + packet(0x0437,clif->pWalkToXY,2); + packet(0x0438,clif->pUseSkillToPos,2,4,6,8); + packet(0x07e4,clif->pTakeItem,2); + packet(0x07ec,clif->pMoveToKafra,2,4); + packet(0x0802,clif->pPartyInvite2,2); + packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0835,clif->pSearchStoreInfoNextPage,0); + packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x083c,clif->pUseSkillToId,2,4,6); + packet(0x094b,clif->pStoragePassword,0); + packet(0x096a,clif->pGetCharNameRequest,2); #endif // 2013-02-27aRagexe #if PACKETVER == 20130227 - packet(0x023b,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x035f,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0360,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0437,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0811,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0815,clif->pPartyBookingRegisterReq,2,4,6); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0817,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x085a,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0863,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0867,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x0869,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x086e,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x087b,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0893,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0898,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x08a0,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x08a1,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x091b,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x091f,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0924,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x092b,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x092f,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0936,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x0946,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0951,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x095b,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x095e,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x095f,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0967,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 + packet(0x023b,clif->pFriendsListAdd,2); + packet(0x035f,clif->pHomMenu,2,4); + packet(0x0360,clif->pWantToConnection,2,6,10,14,18); + packet(0x0437,clif->pWalkToXY,2); + packet(0x0811,clif->pTickSend,2); + packet(0x0815,clif->pPartyBookingRegisterReq,2,4,6); + packet(0x0817,clif->pReqClickBuyingStore,2); + packet(0x085a,clif->pUseSkillToId,2,4,6); + packet(0x0863,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0867,clif->pTakeItem,2); + packet(0x0869,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x086e,clif->pDull/*,XXX*/); + packet(0x087b,clif->pPartyInvite2,2); + packet(0x0893,clif->pMoveFromKafra,2,4); + packet(0x0898,clif->pChangeDir,2,4); + packet(0x08a0,clif->pReqCloseBuyingStore,0); + packet(0x08a1,clif->pDull/*,XXX*/); + packet(0x091b,clif->pGetCharNameRequest,2); + packet(0x091f,clif->pDropItem,2,4); + packet(0x0924,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x092b,clif->pItemListWindowSelected,2,4,8); + packet(0x092f,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0936,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x0946,clif->pMoveToKafra,2,4); + packet(0x0951,clif->pUseSkillToPos,2,4,6,8); + packet(0x095b,clif->pSolveCharName,2); + packet(0x095e,clif->pStoragePassword,0); + packet(0x095f,clif->pSearchStoreInfoNextPage,0); + packet(0x0967,clif->pActionRequest,2,6); #endif // 2013-03-06aRagexe #if PACKETVER == 20130306 - packet(0x022d,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x0367,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0368,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0802,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x0817,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x085b,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x085c,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0860,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x086d,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0881,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0890,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0898,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x089f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x08a4,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x08ac,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0917,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x091e,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0926,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x0934,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0936,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0943,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0944,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0945,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0946,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x094a,clif->pPartyBookingRegisterReq,2,4,6); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x094e,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x0951,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0960,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0962,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 + packet(0x022d,clif->pItemListWindowSelected,2,4,8); + packet(0x0367,clif->pSolveCharName,2); + packet(0x0368,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0802,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x0817,clif->pHomMenu,2,4); + packet(0x085b,clif->pWalkToXY,2); + packet(0x085c,clif->pReqClickBuyingStore,2); + packet(0x0860,clif->pChangeDir,2,4); + packet(0x086d,clif->pWantToConnection,2,6,10,14,18); + packet(0x0881,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0890,clif->pDull/*,XXX*/); + packet(0x0898,clif->pActionRequest,2,6); + packet(0x089f,clif->pTickSend,2); + packet(0x08a4,clif->pUseSkillToPos,2,4,6,8); + packet(0x08ac,clif->pDull/*,XXX*/); + packet(0x0917,clif->pMoveFromKafra,2,4); + packet(0x091e,clif->pMoveToKafra,2,4); + packet(0x0926,clif->pStoragePassword,0); + packet(0x0934,clif->pFriendsListAdd,2); + packet(0x0936,clif->pSearchStoreInfoNextPage,0); + packet(0x0943,clif->pUseSkillToId,2,4,6); + packet(0x0944,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0945,clif->pReqCloseBuyingStore,0); + packet(0x0946,clif->pPartyInvite2,2); + packet(0x094a,clif->pPartyBookingRegisterReq,2,4,6); + packet(0x094e,clif->pGetCharNameRequest,2); + packet(0x0951,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0960,clif->pDropItem,2,4); + packet(0x0962,clif->pTakeItem,2); #endif // 2013-03-13aRagexe #if PACKETVER == 20130313 - packet(0x0202,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0281,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x035f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0360,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0362,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0363,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0364,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0365,clif->pPartyBookingRegisterReq,2,4,6); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0436,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0437,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0438,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x07e4,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x07ec,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0802,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0835,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x083c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0887,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0920,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x092d,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0947,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x096a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 + packet(0x0202,clif->pPartyInvite2,2); + packet(0x0281,clif->pItemListWindowSelected,2,4,8); + packet(0x035f,clif->pTickSend,2); + packet(0x0360,clif->pReqClickBuyingStore,2); + packet(0x0362,clif->pDropItem,2,4); + packet(0x0363,clif->pDull/*,XXX*/); + packet(0x0364,clif->pMoveFromKafra,2,4); + packet(0x0365,clif->pPartyBookingRegisterReq,2,4,6); + packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pActionRequest,2,6); + packet(0x0436,clif->pDull/*,XXX*/); + packet(0x0437,clif->pWalkToXY,2); + packet(0x0438,clif->pUseSkillToPos,2,4,6,8); + packet(0x07e4,clif->pTakeItem,2); + packet(0x07ec,clif->pMoveToKafra,2,4); + packet(0x0802,clif->pFriendsListAdd,2); + packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0835,clif->pSearchStoreInfoNextPage,0); + packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x083c,clif->pUseSkillToId,2,4,6); + packet(0x0887,clif->pChangeDir,2,4); + packet(0x0920,clif->pStoragePassword,0); + packet(0x092d,clif->pHomMenu,2,4); + packet(0x0947,clif->pWantToConnection,2,6,10,14,18); + packet(0x096a,clif->pGetCharNameRequest,2); #endif // 2013-03-20dRagexe, 2013-03-20eRagexe #if PACKETVER == 20130320 - packet(0x035f,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0363,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0365,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x0438,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x085a,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x085d,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0868,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x086d,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x086f,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0874,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0881,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0886,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0888,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x088e,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0890,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0897,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0898,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x089b,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x08ac,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0922,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x092e,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0933,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x0938,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x093f,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0947,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x094c,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x094e,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0959,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x095a,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 + packet(0x035f,clif->pReqClickBuyingStore,2); + packet(0x0363,clif->pTickSend,2); + packet(0x0365,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x0438,clif->pDropItem,2,4); + packet(0x085a,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x085d,clif->pPartyBookingRegisterReq,2,4); + packet(0x0868,clif->pItemListWindowSelected,2,4,8); + packet(0x086d,clif->pPartyInvite2,2); + packet(0x086f,clif->pFriendsListAdd,2); + packet(0x0874,clif->pMoveFromKafra,2,4); + packet(0x0881,clif->pWalkToXY,2); + packet(0x0886,clif->pReqCloseBuyingStore,0); + packet(0x0888,clif->pWantToConnection,2,6,10,14,18); + packet(0x088e,clif->pActionRequest,2,6); + packet(0x0890,clif->pDull/*,XXX*/); + packet(0x0897,clif->pChangeDir,2,4); + packet(0x0898,clif->pGetCharNameRequest,2); + packet(0x089b,clif->pUseSkillToId,2,4,6); + packet(0x08ac,clif->pMoveToKafra,2,4); + packet(0x0922,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x092e,clif->pSearchStoreInfoNextPage,0); + packet(0x0933,clif->pTakeItem,2); + packet(0x0938,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x093f,clif->pHomMenu,2,4); + packet(0x0947,clif->pStoragePassword,0); + packet(0x094c,clif->pSolveCharName,2); + packet(0x094e,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0959,clif->pUseSkillToPos,2,4,6,8); + packet(0x095a,clif->pDull/*,XXX*/); #endif // 2013-03-27bRagexe #if PACKETVER == 20130327 - packet(0x02c4,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x07ec,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0835,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x086d,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0873,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0878,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x087a,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0885,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x088f,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0891,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0893,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0899,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x08a1,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x08a2,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x091f,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x092b,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x092d,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x092e,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x092f,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0933,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0938,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0939,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x094a,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x094b,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x094f,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0955,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0960,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x0961,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0967,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 + packet(0x02c4,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x07ec,clif->pReqClickBuyingStore,2); + packet(0x0835,clif->pHomMenu,2,4); + packet(0x086d,clif->pPartyBookingRegisterReq,2,4); + packet(0x0873,clif->pWantToConnection,2,6,10,14,18); + packet(0x0878,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x087a,clif->pSearchStoreInfoNextPage,0); + packet(0x0885,clif->pDropItem,2,4); + packet(0x088f,clif->pUseSkillToId,2,4,6); + packet(0x0891,clif->pMoveToKafra,2,4); + packet(0x0893,clif->pReqCloseBuyingStore,0); + packet(0x0899,clif->pTakeItem,2); + packet(0x08a1,clif->pGetCharNameRequest,2); + packet(0x08a2,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x091f,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x092b,clif->pWalkToXY,2); + packet(0x092d,clif->pPartyInvite2,2); + packet(0x092e,clif->pDull/*,XXX*/); + packet(0x092f,clif->pDull/*,XXX*/); + packet(0x0933,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0938,clif->pMoveFromKafra,2,4); + packet(0x0939,clif->pTickSend,2); + packet(0x094a,clif->pChangeDir,2,4); + packet(0x094b,clif->pStoragePassword,0); + packet(0x094f,clif->pFriendsListAdd,2); + packet(0x0955,clif->pActionRequest,2,6); + packet(0x0960,clif->pUseSkillToPos,2,4,6,8); + packet(0x0961,clif->pSolveCharName,2); + packet(0x0967,clif->pItemListWindowSelected,2,4,8); #endif // 2013-04-03aRagexe #if PACKETVER == 20130403 - packet(0x023b,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0281,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x035f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0360,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x0362,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0363,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0364,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0365,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0437,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0438,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x07e4,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x07ec,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0802,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0835,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x083c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0884,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x08a5,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0926,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0942,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0950,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x096a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 + packet(0x023b,clif->pReqClickBuyingStore,2); + packet(0x0281,clif->pItemListWindowSelected,2,4,8); + packet(0x035f,clif->pTickSend,2); + packet(0x0360,clif->pStoragePassword,0); + packet(0x0362,clif->pDropItem,2,4); + packet(0x0363,clif->pDull/*,XXX*/); + packet(0x0364,clif->pMoveFromKafra,2,4); + packet(0x0365,clif->pPartyBookingRegisterReq,2,4); + packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pActionRequest,2,6); + packet(0x0437,clif->pWalkToXY,2); + packet(0x0438,clif->pUseSkillToPos,2,4,6,8); + packet(0x07e4,clif->pTakeItem,2); + packet(0x07ec,clif->pMoveToKafra,2,4); + packet(0x0802,clif->pPartyInvite2,2); + packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0835,clif->pSearchStoreInfoNextPage,0); + packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x083c,clif->pUseSkillToId,2,4,6); + packet(0x0884,clif->pWantToConnection,2,6,10,14,18); + packet(0x08a5,clif->pDull/*,XXX*/); + packet(0x0926,clif->pHomMenu,2,4); + packet(0x0942,clif->pChangeDir,2,4); + packet(0x0950,clif->pFriendsListAdd,2); + packet(0x096a,clif->pGetCharNameRequest,2); #endif // 2013-04-10aRagexe #if PACKETVER == 20130410 - packet(0x0367,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0437,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x0860,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0865,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x086c,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0879,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x087c,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x087d,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x0881,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x088c,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x088d,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0890,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x0891,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x089c,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x089e,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x08a0,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x08a4,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x08a7,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0917,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x091d,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0933,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0939,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x093d,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0944,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0945,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0955,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x0960,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0967,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x096a,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 + packet(0x0367,clif->pReqClickBuyingStore,2); + packet(0x0437,clif->pTakeItem,2); + packet(0x0860,clif->pWantToConnection,2,6,10,14,18); + packet(0x0865,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x086c,clif->pPartyBookingRegisterReq,2,4); + packet(0x0879,clif->pMoveToKafra,2,4); + packet(0x087c,clif->pWalkToXY,2); + packet(0x087d,clif->pGetCharNameRequest,2); + packet(0x0881,clif->pReqCloseBuyingStore,0); + packet(0x088c,clif->pStoragePassword,0); + packet(0x088d,clif->pHomMenu,2,4); + packet(0x0890,clif->pItemListWindowSelected,2,4,8); + packet(0x0891,clif->pDull/*,XXX*/); + packet(0x089c,clif->pSolveCharName,2); + packet(0x089e,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x08a0,clif->pTickSend,2); + packet(0x08a4,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x08a7,clif->pSearchStoreInfoNextPage,0); + packet(0x0917,clif->pPartyInvite2,2); + packet(0x091d,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0933,clif->pUseSkillToId,2,4,6); + packet(0x0939,clif->pActionRequest,2,6); + packet(0x093d,clif->pMoveFromKafra,2,4); + packet(0x0944,clif->pDull/*,XXX*/); + packet(0x0945,clif->pChangeDir,2,4); + packet(0x0955,clif->pUseSkillToPos,2,4,6,8); + packet(0x0960,clif->pFriendsListAdd,2); + packet(0x0967,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x096a,clif->pDropItem,2,4); #endif // 2013-04-17aRagexe #if PACKETVER == 20130417 - packet(0x0202,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0281,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x035f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0360,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0362,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0363,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0364,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0365,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0437,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0438,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x07e4,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x07ec,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0802,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0811,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0835,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x083c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x086b,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0875,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x0929,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0962,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0969,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x096a,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 + packet(0x0202,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0281,clif->pItemListWindowSelected,2,4,8); + packet(0x035f,clif->pTickSend,2); + packet(0x0360,clif->pReqClickBuyingStore,2); + packet(0x0362,clif->pDropItem,2,4); + packet(0x0363,clif->pDull/*,XXX*/); + packet(0x0364,clif->pMoveFromKafra,2,4); + packet(0x0365,clif->pPartyBookingRegisterReq,2,4); + packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pActionRequest,2,6); + packet(0x0437,clif->pWalkToXY,2); + packet(0x0438,clif->pUseSkillToPos,2,4,6,8); + packet(0x07e4,clif->pTakeItem,2); + packet(0x07ec,clif->pMoveToKafra,2,4); + packet(0x0802,clif->pPartyInvite2,2); + packet(0x0811,clif->pFriendsListAdd,2); + packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0835,clif->pSearchStoreInfoNextPage,0); + packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x083c,clif->pUseSkillToId,2,4,6); + packet(0x086b,clif->pWantToConnection,2,6,10,14,18); + packet(0x0875,clif->pStoragePassword,0); + packet(0x0929,clif->pChangeDir,2,4); + packet(0x0962,clif->pHomMenu,2,4); + packet(0x0969,clif->pGetCharNameRequest,2); + packet(0x096a,clif->pDull/*,XXX*/); #endif // 2013-04-24aRagexe #if PACKETVER == 20130424 - packet(0x0202,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x022d,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x023b,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0281,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x035f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0360,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0361,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0362,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0363,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0364,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0365,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0436,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0437,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0438,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x07e4,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x07ec,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0802,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0835,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x083c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0969,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x096a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 + packet(0x0202,clif->pChangeDir,2,4); + packet(0x022d,clif->pWantToConnection,2,6,10,14,18); + packet(0x023b,clif->pFriendsListAdd,2); + packet(0x0281,clif->pItemListWindowSelected,2,4,8); + packet(0x035f,clif->pTickSend,2); + packet(0x0360,clif->pReqClickBuyingStore,2); + packet(0x0361,clif->pHomMenu,2,4); + packet(0x0362,clif->pDropItem,2,4); + packet(0x0363,clif->pDull/*,XXX*/); + packet(0x0364,clif->pMoveFromKafra,2,4); + packet(0x0365,clif->pPartyBookingRegisterReq,2,4); + packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pActionRequest,2,6); + packet(0x0436,clif->pDull/*,XXX*/); + packet(0x0437,clif->pWalkToXY,2); + packet(0x0438,clif->pUseSkillToPos,2,4,6,8); + packet(0x07e4,clif->pTakeItem,2); + packet(0x07ec,clif->pMoveToKafra,2,4); + packet(0x0802,clif->pPartyInvite2,2); + packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0835,clif->pSearchStoreInfoNextPage,0); + packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x083c,clif->pUseSkillToId,2,4,6); + packet(0x0969,clif->pStoragePassword,0); + packet(0x096a,clif->pGetCharNameRequest,2); #endif // 2013-05-02aRagexe, 2013-05-02bRagexe #if PACKETVER == 20130502 - packet(0x035f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0360,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0437,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0438,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x07e4,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x07ec,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0835,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x083c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x085a,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0867,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0870,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0874,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x0875,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0877,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x087c,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0888,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x0889,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x08a1,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x08a3,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0961,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0967,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 + packet(0x035f,clif->pTickSend,2); + packet(0x0360,clif->pReqClickBuyingStore,2); + packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pActionRequest,2,6); + packet(0x0437,clif->pWalkToXY,2); + packet(0x0438,clif->pUseSkillToPos,2,4,6,8); + packet(0x07e4,clif->pStoragePassword,0); + packet(0x07ec,clif->pChangeDir,2,4); + packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0835,clif->pSearchStoreInfoNextPage,0); + packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x083c,clif->pUseSkillToId,2,4,6); + packet(0x085a,clif->pDull/*,XXX*/); + packet(0x0867,clif->pHomMenu,2,4); + packet(0x0870,clif->pPartyInvite2,2); + packet(0x0874,clif->pItemListWindowSelected,2,4,8); + packet(0x0875,clif->pFriendsListAdd,2); + packet(0x0877,clif->pMoveToKafra,2,4); + packet(0x087c,clif->pWantToConnection,2,6,10,14,18); + packet(0x0888,clif->pGetCharNameRequest,2); + packet(0x0889,clif->pDull/*,XXX*/); + packet(0x08a1,clif->pPartyBookingRegisterReq,2,4); + packet(0x08a3,clif->pDropItem,2,4); + packet(0x0961,clif->pMoveFromKafra,2,4); + packet(0x0967,clif->pTakeItem,2); #endif // 2013-05-08bRagexe, 2013-05-08cRagexe, 2013-05-08dRagexe, 2013-05-08eRagexe, 2013-05-08fRagexe #if PACKETVER == 20130508 - packet(0x022d,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x035f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0360,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0436,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0437,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0438,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0835,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x083c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0868,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x0878,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x088b,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x0893,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0895,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0897,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x08ab,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x092d,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0944,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x094d,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0957,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x095c,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x096a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 + packet(0x022d,clif->pMoveToKafra,2,4); + packet(0x035f,clif->pTickSend,2); + packet(0x0360,clif->pReqClickBuyingStore,2); + packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pActionRequest,2,6); + packet(0x0436,clif->pFriendsListAdd,2); + packet(0x0437,clif->pWalkToXY,2); + packet(0x0438,clif->pUseSkillToPos,2,4,6,8); + packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0835,clif->pSearchStoreInfoNextPage,0); + packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x083c,clif->pUseSkillToId,2,4,6); + packet(0x0868,clif->pStoragePassword,0); + packet(0x0878,clif->pItemListWindowSelected,2,4,8); + packet(0x088b,clif->pTakeItem,2); + packet(0x0893,clif->pPartyBookingRegisterReq,2,4); + packet(0x0895,clif->pWantToConnection,2,6,10,14,18); + packet(0x0897,clif->pDull/*,XXX*/); + packet(0x08ab,clif->pPartyInvite2,2); + packet(0x092d,clif->pDropItem,2,4); + packet(0x0944,clif->pDull/*,XXX*/); + packet(0x094d,clif->pHomMenu,2,4); + packet(0x0957,clif->pMoveFromKafra,2,4); + packet(0x095c,clif->pChangeDir,2,4); + packet(0x096a,clif->pGetCharNameRequest,2); #endif // 2013-05-15aRagexe #if PACKETVER == 20130515 - packet(0x035f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0360,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0362,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0437,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0438,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0835,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x083c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0862,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0887,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x08a1,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x08aa,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x08ac,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x092d,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0931,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x093e,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x0943,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0944,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0947,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0962,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0963,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x096a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 + packet(0x035f,clif->pTickSend,2); + packet(0x0360,clif->pReqClickBuyingStore,2); + packet(0x0362,clif->pChangeDir,2,4); + packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pActionRequest,2,6); + packet(0x0437,clif->pWalkToXY,2); + packet(0x0438,clif->pUseSkillToPos,2,4,6,8); + packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0835,clif->pSearchStoreInfoNextPage,0); + packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x083c,clif->pUseSkillToId,2,4,6); + packet(0x0862,clif->pDull/*,XXX*/); + packet(0x0887,clif->pMoveToKafra,2,4); + packet(0x08a1,clif->pTakeItem,2); + packet(0x08aa,clif->pDull/*,XXX*/); + packet(0x08ac,clif->pMoveFromKafra,2,4); + packet(0x092d,clif->pPartyBookingRegisterReq,2,4); + packet(0x0931,clif->pHomMenu,2,4); + packet(0x093e,clif->pStoragePassword,0); + packet(0x0943,clif->pWantToConnection,2,6,10,14,18); + packet(0x0944,clif->pDropItem,2,4); + packet(0x0947,clif->pPartyInvite2,2); + packet(0x0962,clif->pFriendsListAdd,2); + packet(0x0963,clif->pItemListWindowSelected,2,4,8); + packet(0x096a,clif->pGetCharNameRequest,2); #endif // 2013-05-22aRagexe #if PACKETVER == 20130522 - packet(0x0360,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0362,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0368,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0369,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x07ec,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0811,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x086a,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x086e,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0874,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x087e,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x088e,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x089b,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x089c,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x08a2,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x08a3,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x08a6,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x08a9,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x08aa,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x08ac,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0925,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0926,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x093e,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x0950,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0952,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x095b,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x095c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x095e,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x0964,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0965,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 + packet(0x0360,clif->pWalkToXY,2); + packet(0x0362,clif->pFriendsListAdd,2); + packet(0x0368,clif->pReqClickBuyingStore,2); + packet(0x0369,clif->pSolveCharName,2); + packet(0x07ec,clif->pTickSend,2); + packet(0x0811,clif->pUseSkillToPos,2,4,6,8); + packet(0x086a,clif->pItemListWindowSelected,2,4,8); + packet(0x086e,clif->pReqCloseBuyingStore,0); + packet(0x0874,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x087e,clif->pMoveFromKafra,2,4); + packet(0x088e,clif->pStoragePassword,0); + packet(0x089b,clif->pPartyBookingRegisterReq,2,4); + packet(0x089c,clif->pDropItem,2,4); + packet(0x08a2,clif->pActionRequest,2,6); + packet(0x08a3,clif->pMoveToKafra,2,4); + packet(0x08a6,clif->pGetCharNameRequest,2); + packet(0x08a9,clif->pWantToConnection,2,6,10,14,18); + packet(0x08aa,clif->pSearchStoreInfoNextPage,0); + packet(0x08ac,clif->pDull/*,XXX*/); + packet(0x0925,clif->pChangeDir,2,4); + packet(0x0926,clif->pHomMenu,2,4); + packet(0x093e,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x0950,clif->pPartyInvite2,2); + packet(0x0952,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x095b,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x095c,clif->pUseSkillToId,2,4,6); + packet(0x095e,clif->pTakeItem,2); + packet(0x0964,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0965,clif->pDull/*,XXX*/); #endif // 2013-05-29aRagexe #if PACKETVER == 20130529 - packet(0x023b,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0438,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x085a,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x085e,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0863,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x0869,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0874,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0876,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0877,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0888,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x088e,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0890,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0892,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0895,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x0897,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x08a7,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x08a8,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0917,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x0918,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0919,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0936,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0937,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0938,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0941,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0951,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0956,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x0957,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0958,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x0964,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 + packet(0x023b,clif->pHomMenu,2,4); + packet(0x0438,clif->pUseSkillToId,2,4,6); + packet(0x085a,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x085e,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0863,clif->pGetCharNameRequest,2); + packet(0x0869,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0874,clif->pPartyBookingRegisterReq,2,4); + packet(0x0876,clif->pWalkToXY,2); + packet(0x0877,clif->pFriendsListAdd,2); + packet(0x0888,clif->pDull/*,XXX*/); + packet(0x088e,clif->pDull/*,XXX*/); + packet(0x0890,clif->pActionRequest,2,6); + packet(0x0892,clif->pReqClickBuyingStore,2); + packet(0x0895,clif->pTakeItem,2); + packet(0x0897,clif->pTickSend,2); + packet(0x08a7,clif->pDropItem,2,4); + packet(0x08a8,clif->pPartyInvite2,2); + packet(0x0917,clif->pUseSkillToPos,2,4,6,8); + packet(0x0918,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0919,clif->pWantToConnection,2,6,10,14,18); + packet(0x0936,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0937,clif->pSolveCharName,2); + packet(0x0938,clif->pMoveToKafra,2,4); + packet(0x0941,clif->pSearchStoreInfoNextPage,0); + packet(0x0951,clif->pChangeDir,2,4); + packet(0x0956,clif->pStoragePassword,0); + packet(0x0957,clif->pMoveFromKafra,2,4); + packet(0x0958,clif->pItemListWindowSelected,2,4,8); + packet(0x0964,clif->pReqCloseBuyingStore,0); #endif // 2013-06-05aRagexe, 2013-06-05bRagexe #if PACKETVER == 20130605 - packet(0x0202,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x022d,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x023b,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0281,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x035f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0360,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0361,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0362,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0363,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0364,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0365,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0436,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0437,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0438,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x07e4,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x07ec,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0802,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0835,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x083c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0883,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x096a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 + packet(0x0202,clif->pChangeDir,2,4); + packet(0x022d,clif->pWantToConnection,2,6,10,14,18); + packet(0x023b,clif->pFriendsListAdd,2); + packet(0x0281,clif->pItemListWindowSelected,2,4,8); + packet(0x035f,clif->pTickSend,2); + packet(0x0360,clif->pReqClickBuyingStore,2); + packet(0x0361,clif->pHomMenu,2,4); + packet(0x0362,clif->pDropItem,2,4); + packet(0x0363,clif->pDull/*,XXX*/); + packet(0x0364,clif->pMoveFromKafra,2,4); + packet(0x0365,clif->pPartyBookingRegisterReq,2,4); + packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pActionRequest,2,6); + packet(0x0436,clif->pDull/*,XXX*/); + packet(0x0437,clif->pWalkToXY,2); + packet(0x0438,clif->pUseSkillToPos,2,4,6,8); + packet(0x07e4,clif->pTakeItem,2); + packet(0x07ec,clif->pMoveToKafra,2,4); + packet(0x0802,clif->pPartyInvite2,2); + packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0835,clif->pSearchStoreInfoNextPage,0); + packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x083c,clif->pUseSkillToId,2,4,6); + packet(0x0883,clif->pStoragePassword,0); + packet(0x096a,clif->pGetCharNameRequest,2); #endif // 2013-06-12aRagexe, 2013-06-12bRagexe, 2013-06-12cRagexe, 2013-06-12dRagexe, 2013-06-12eRagexe #if PACKETVER == 20130612 - packet(0x0281,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x035f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0360,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0362,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0363,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0364,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0365,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0436,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0437,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0438,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x07e4,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x07ec,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0802,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0835,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x083c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x087e,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0919,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x093a,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0940,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0964,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x096a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 + packet(0x0281,clif->pItemListWindowSelected,2,4,8); + packet(0x035f,clif->pTickSend,2); + packet(0x0360,clif->pReqClickBuyingStore,2); + packet(0x0362,clif->pDropItem,2,4); + packet(0x0363,clif->pDull/*,XXX*/); + packet(0x0364,clif->pMoveFromKafra,2,4); + packet(0x0365,clif->pPartyBookingRegisterReq,2,4); + packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pActionRequest,2,6); + packet(0x0436,clif->pDull/*,XXX*/); + packet(0x0437,clif->pWalkToXY,2); + packet(0x0438,clif->pUseSkillToPos,2,4,6,8); + packet(0x07e4,clif->pTakeItem,2); + packet(0x07ec,clif->pMoveToKafra,2,4); + packet(0x0802,clif->pPartyInvite2,2); + packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0835,clif->pSearchStoreInfoNextPage,0); + packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x083c,clif->pUseSkillToId,2,4,6); + packet(0x087e,clif->pChangeDir,2,4); + packet(0x0919,clif->pWantToConnection,2,6,10,14,18); + packet(0x093a,clif->pHomMenu,2,4); + packet(0x0940,clif->pFriendsListAdd,2); + packet(0x0964,clif->pStoragePassword,0); + packet(0x096a,clif->pGetCharNameRequest,2); #endif // 2013-06-18#1aRagexe #if PACKETVER == 20130618 - packet(0x0281,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x02c4,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0363,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x085a,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0862,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0864,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x0878,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x087a,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0885,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0887,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0889,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x088e,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0890,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x0891,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x08a6,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x08a7,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0917,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0930,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0932,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0936,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0942,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x0944,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x0945,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x094f,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0951,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0953,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x095b,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0962,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x096a,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 + packet(0x0281,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x02c4,clif->pHomMenu,2,4); + packet(0x0363,clif->pSearchStoreInfoNextPage,0); + packet(0x085a,clif->pReqCloseBuyingStore,0); + packet(0x0862,clif->pReqClickBuyingStore,2); + packet(0x0864,clif->pStoragePassword,0); + packet(0x0878,clif->pDull/*,XXX*/); + packet(0x087a,clif->pDull/*,XXX*/); + packet(0x0885,clif->pMoveToKafra,2,4); + packet(0x0887,clif->pPartyInvite2,2); + packet(0x0889,clif->pActionRequest,2,6); + packet(0x088e,clif->pWalkToXY,2); + packet(0x0890,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x0891,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x08a6,clif->pChangeDir,2,4); + packet(0x08a7,clif->pPartyBookingRegisterReq,2,4); + packet(0x0917,clif->pDropItem,2,4); + packet(0x0930,clif->pTickSend,2); + packet(0x0932,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0936,clif->pMoveFromKafra,2,4); + packet(0x0942,clif->pItemListWindowSelected,2,4,8); + packet(0x0944,clif->pGetCharNameRequest,2); + packet(0x0945,clif->pSolveCharName,2); + packet(0x094f,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0951,clif->pUseSkillToId,2,4,6); + packet(0x0953,clif->pFriendsListAdd,2); + packet(0x095b,clif->pWantToConnection,2,6,10,14,18); + packet(0x0962,clif->pTakeItem,2); + packet(0x096a,clif->pUseSkillToPos,2,4,6,8); #endif // 2013-06-26_3cRagexe, 2013-06-26bRagexe #if PACKETVER == 20130626 - packet(0x035f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0360,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0365,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0437,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0438,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0817,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0835,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x083c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0860,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x088b,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x088c,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x088f,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0894,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0895,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x08a5,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x08ab,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0921,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0930,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x094d,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0952,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0960,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x096a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 + packet(0x035f,clif->pTickSend,2); + packet(0x0360,clif->pReqClickBuyingStore,2); + packet(0x0365,clif->pReqCloseBuyingStore,0); + packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pActionRequest,2,6); + packet(0x0437,clif->pWalkToXY,2); + packet(0x0438,clif->pUseSkillToPos,2,4,6,8); + packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0817,clif->pMoveFromKafra,2,4); + packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0835,clif->pSearchStoreInfoNextPage,0); + packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x083c,clif->pUseSkillToId,2,4,6); + packet(0x0860,clif->pDull/*,XXX*/); + packet(0x088b,clif->pTakeItem,2); + packet(0x088c,clif->pWantToConnection,2,6,10,14,18); + packet(0x088f,clif->pDull/*,XXX*/); + packet(0x0894,clif->pPartyBookingRegisterReq,2,4); + packet(0x0895,clif->pPartyInvite2,2); + packet(0x08a5,clif->pItemListWindowSelected,2,4,8); + packet(0x08ab,clif->pFriendsListAdd,2); + packet(0x0921,clif->pMoveToKafra,2,4); + packet(0x0930,clif->pStoragePassword,0); + packet(0x094d,clif->pChangeDir,2,4); + packet(0x0952,clif->pDropItem,2,4); + packet(0x0960,clif->pHomMenu,2,4); + packet(0x096a,clif->pGetCharNameRequest,2); #endif // 2013-07-03aRagexe #if PACKETVER == 20130703 - packet(0x0202,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x022d,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0281,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x035f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0360,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0362,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0363,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0364,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0365,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0436,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0437,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0438,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x07e4,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x07ec,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0802,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0835,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x083c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0873,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x0930,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x094a,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x096a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 + packet(0x0202,clif->pReqClickBuyingStore,2); + packet(0x022d,clif->pWantToConnection,2,6,10,14,18); + packet(0x0281,clif->pItemListWindowSelected,2,4,8); + packet(0x035f,clif->pTickSend,2); + packet(0x0360,clif->pFriendsListAdd,2); + packet(0x0362,clif->pDropItem,2,4); + packet(0x0363,clif->pDull/*,XXX*/); + packet(0x0364,clif->pMoveFromKafra,2,4); + packet(0x0365,clif->pPartyBookingRegisterReq,2,4); + packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pActionRequest,2,6); + packet(0x0436,clif->pDull/*,XXX*/); + packet(0x0437,clif->pWalkToXY,2); + packet(0x0438,clif->pUseSkillToPos,2,4,6,8); + packet(0x07e4,clif->pTakeItem,2); + packet(0x07ec,clif->pMoveToKafra,2,4); + packet(0x0802,clif->pPartyInvite2,2); + packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0835,clif->pSearchStoreInfoNextPage,0); + packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x083c,clif->pUseSkillToId,2,4,6); + packet(0x0873,clif->pStoragePassword,0); + packet(0x0930,clif->pChangeDir,2,4); + packet(0x094a,clif->pHomMenu,2,4); + packet(0x096a,clif->pGetCharNameRequest,2); #endif // 2013-07-10bRagexe #if PACKETVER == 20130710 - packet(0x0202,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x022d,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x023b,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0281,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x035f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0360,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0361,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0362,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0363,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0364,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0365,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0436,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0437,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0438,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x07e4,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x07ec,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0802,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0835,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x083c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0880,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x096a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 + packet(0x0202,clif->pChangeDir,2,4); + packet(0x022d,clif->pWantToConnection,2,6,10,14,18); + packet(0x023b,clif->pFriendsListAdd,2); + packet(0x0281,clif->pItemListWindowSelected,2,4,8); + packet(0x035f,clif->pTickSend,2); + packet(0x0360,clif->pReqClickBuyingStore,2); + packet(0x0361,clif->pHomMenu,2,4); + packet(0x0362,clif->pDropItem,2,4); + packet(0x0363,clif->pDull/*,XXX*/); + packet(0x0364,clif->pMoveFromKafra,2,4); + packet(0x0365,clif->pPartyBookingRegisterReq,2,4); + packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pActionRequest,2,6); + packet(0x0436,clif->pDull/*,XXX*/); + packet(0x0437,clif->pWalkToXY,2); + packet(0x0438,clif->pUseSkillToPos,2,4,6,8); + packet(0x07e4,clif->pTakeItem,2); + packet(0x07ec,clif->pMoveToKafra,2,4); + packet(0x0802,clif->pPartyInvite2,2); + packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0835,clif->pSearchStoreInfoNextPage,0); + packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x083c,clif->pUseSkillToId,2,4,6); + packet(0x0880,clif->pStoragePassword,0); + packet(0x096a,clif->pGetCharNameRequest,2); #endif // 2013-07-17cRagexe #if PACKETVER == 20130717 - packet(0x02c4,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0819,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x083c,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0862,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0863,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x086b,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x086c,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0882,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x088a,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x088c,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0897,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x0898,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x089b,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x08a6,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x08a9,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x08aa,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0917,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0918,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x091d,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x091e,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x092f,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x093b,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0952,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0956,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0958,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x095b,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x0960,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x0967,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x096a,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 + packet(0x02c4,clif->pTickSend,2); + packet(0x0819,clif->pSearchStoreInfoNextPage,0); + packet(0x083c,clif->pWalkToXY,2); + packet(0x0862,clif->pPartyBookingRegisterReq,2,4); + packet(0x0863,clif->pFriendsListAdd,2); + packet(0x086b,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x086c,clif->pDull/*,XXX*/); + packet(0x0882,clif->pUseSkillToPos,2,4,6,8); + packet(0x088a,clif->pHomMenu,2,4); + packet(0x088c,clif->pChangeDir,2,4); + packet(0x0897,clif->pItemListWindowSelected,2,4,8); + packet(0x0898,clif->pReqClickBuyingStore,2); + packet(0x089b,clif->pMoveToKafra,2,4); + packet(0x08a6,clif->pDull/*,XXX*/); + packet(0x08a9,clif->pTakeItem,2); + packet(0x08aa,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0917,clif->pDropItem,2,4); + packet(0x0918,clif->pActionRequest,2,6); + packet(0x091d,clif->pWantToConnection,2,6,10,14,18); + packet(0x091e,clif->pUseSkillToId,2,4,6); + packet(0x092f,clif->pPartyInvite2,2); + packet(0x093b,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0952,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0956,clif->pMoveFromKafra,2,4); + packet(0x0958,clif->pGetCharNameRequest,2); + packet(0x095b,clif->pStoragePassword,0); + packet(0x0960,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x0967,clif->pSolveCharName,2); + packet(0x096a,clif->pReqCloseBuyingStore,0); #endif // 2013-07-24eRagexe #if PACKETVER == 20130724 - packet(0x023b,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x035f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0437,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x085a,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x085e,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0860,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x0867,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x086a,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0874,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0876,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0890,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0891,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0893,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x089c,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x08ab,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0921,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0924,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0927,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x092b,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x092e,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x094a,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x0953,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0954,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0956,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x0958,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x095c,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x095d,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0965,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0966,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 + packet(0x023b,clif->pReqCloseBuyingStore,0); + packet(0x035f,clif->pTickSend,2); + packet(0x0437,clif->pDull/*,XXX*/); + packet(0x085a,clif->pPartyBookingRegisterReq,2,4); + packet(0x085e,clif->pMoveFromKafra,2,4); + packet(0x0860,clif->pStoragePassword,0); + packet(0x0867,clif->pGetCharNameRequest,2); + packet(0x086a,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0874,clif->pHomMenu,2,4); + packet(0x0876,clif->pActionRequest,2,6); + packet(0x0890,clif->pSearchStoreInfoNextPage,0); + packet(0x0891,clif->pDropItem,2,4); + packet(0x0893,clif->pWantToConnection,2,6,10,14,18); + packet(0x089c,clif->pUseSkillToPos,2,4,6,8); + packet(0x08ab,clif->pDull/*,XXX*/); + packet(0x0921,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0924,clif->pReqClickBuyingStore,2); + packet(0x0927,clif->pPartyInvite2,2); + packet(0x092b,clif->pFriendsListAdd,2); + packet(0x092e,clif->pItemListWindowSelected,2,4,8); + packet(0x094a,clif->pTakeItem,2); + packet(0x0953,clif->pWalkToXY,2); + packet(0x0954,clif->pSolveCharName,2); + packet(0x0956,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x0958,clif->pUseSkillToId,2,4,6); + packet(0x095c,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x095d,clif->pMoveToKafra,2,4); + packet(0x0965,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0966,clif->pChangeDir,2,4); #endif // 2013-07-31cRagexe #if PACKETVER == 20130731 - packet(0x022d,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0366,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0437,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0438,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0819,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0863,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0865,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0878,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x087e,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0884,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x0889,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x088b,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x0894,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0895,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0897,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0923,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0925,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x092b,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x092d,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0935,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x0941,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x094c,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0956,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0957,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0958,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x095b,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x095d,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x095f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0962,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 + packet(0x022d,clif->pFriendsListAdd,2); + packet(0x0366,clif->pSearchStoreInfoNextPage,0); + packet(0x0437,clif->pWalkToXY,2); + packet(0x0438,clif->pChangeDir,2,4); + packet(0x0819,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0863,clif->pReqClickBuyingStore,2); + packet(0x0865,clif->pUseSkillToId,2,4,6); + packet(0x0878,clif->pActionRequest,2,6); + packet(0x087e,clif->pReqCloseBuyingStore,0); + packet(0x0884,clif->pStoragePassword,0); + packet(0x0889,clif->pDull/*,XXX*/); + packet(0x088b,clif->pGetCharNameRequest,2); + packet(0x0894,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0895,clif->pDull/*,XXX*/); + packet(0x0897,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0923,clif->pPartyBookingRegisterReq,2,4); + packet(0x0925,clif->pUseSkillToPos,2,4,6,8); + packet(0x092b,clif->pWantToConnection,2,6,10,14,18); + packet(0x092d,clif->pHomMenu,2,4); + packet(0x0935,clif->pTakeItem,2); + packet(0x0941,clif->pMoveToKafra,2,4); + packet(0x094c,clif->pMoveFromKafra,2,4); + packet(0x0956,clif->pPartyInvite2,2); + packet(0x0957,clif->pSolveCharName,2); + packet(0x0958,clif->pItemListWindowSelected,2,4,8); + packet(0x095b,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x095d,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x095f,clif->pTickSend,2); + packet(0x0962,clif->pDropItem,2,4); #endif // 2013-08-07aRagexe #if PACKETVER == 20130807 - packet(0x0202,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x022d,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x023b,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0281,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x035f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0360,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0361,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0362,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0363,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0364,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0365,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0436,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0437,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0438,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x07e4,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x07ec,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0802,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0835,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x083c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0887,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x096a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 + packet(0x0202,clif->pChangeDir,2,4); + packet(0x022d,clif->pWantToConnection,2,6,10,14,18); + packet(0x023b,clif->pFriendsListAdd,2); + packet(0x0281,clif->pItemListWindowSelected,2,4,8); + packet(0x035f,clif->pTickSend,2); + packet(0x0360,clif->pReqClickBuyingStore,2); + packet(0x0361,clif->pHomMenu,2,4); + packet(0x0362,clif->pDropItem,2,4); + packet(0x0363,clif->pDull/*,XXX*/); + packet(0x0364,clif->pMoveFromKafra,2,4); + packet(0x0365,clif->pPartyBookingRegisterReq,2,4); + packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pActionRequest,2,6); + packet(0x0436,clif->pDull/*,XXX*/); + packet(0x0437,clif->pWalkToXY,2); + packet(0x0438,clif->pUseSkillToPos,2,4,6,8); + packet(0x07e4,clif->pTakeItem,2); + packet(0x07ec,clif->pMoveToKafra,2,4); + packet(0x0802,clif->pPartyInvite2,2); + packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0835,clif->pSearchStoreInfoNextPage,0); + packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x083c,clif->pUseSkillToId,2,4,6); + packet(0x0887,clif->pStoragePassword,0); + packet(0x096a,clif->pGetCharNameRequest,2); #endif // 2013-08-14aRagexe #if PACKETVER == 20130814 - packet(0x0202,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0281,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0368,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0815,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0835,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0868,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x0873,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0874,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0885,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x0887,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x0889,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x088a,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x088c,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0895,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0896,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x08a4,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x0923,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0926,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x0927,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0936,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0937,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x093a,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0941,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0947,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x094e,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0958,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0959,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x095f,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0962,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 + packet(0x0202,clif->pMoveToKafra,2,4); + packet(0x0281,clif->pFriendsListAdd,2); + packet(0x0368,clif->pWantToConnection,2,6,10,14,18); + packet(0x0815,clif->pDull/*,XXX*/); + packet(0x0835,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0868,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x0873,clif->pMoveFromKafra,2,4); + packet(0x0874,clif->pActionRequest,2,6); + packet(0x0885,clif->pStoragePassword,0); + packet(0x0887,clif->pUseSkillToPos,2,4,6,8); + packet(0x0889,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x088a,clif->pTickSend,2); + packet(0x088c,clif->pChangeDir,2,4); + packet(0x0895,clif->pReqClickBuyingStore,2); + packet(0x0896,clif->pDull/*,XXX*/); + packet(0x08a4,clif->pItemListWindowSelected,2,4,8); + packet(0x0923,clif->pSolveCharName,2); + packet(0x0926,clif->pTakeItem,2); + packet(0x0927,clif->pPartyInvite2,2); + packet(0x0936,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0937,clif->pGetCharNameRequest,2); + packet(0x093a,clif->pWalkToXY,2); + packet(0x0941,clif->pSearchStoreInfoNextPage,0); + packet(0x0947,clif->pUseSkillToId,2,4,6); + packet(0x094e,clif->pReqCloseBuyingStore,0); + packet(0x0958,clif->pHomMenu,2,4); + packet(0x0959,clif->pPartyBookingRegisterReq,2,4); + packet(0x095f,clif->pDropItem,2,4); + packet(0x0962,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); #endif // 2013-08-21bRagexe #if PACKETVER == 20130821 - packet(0x0202,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x0360,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x0361,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0437,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0438,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x07ec,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x0815,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0862,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0863,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x086e,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0879,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x0881,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x088d,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x088f,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0892,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x08a6,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x08ad,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x091d,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0923,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x092d,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x093e,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0947,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0954,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x095e,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0962,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x0964,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0967,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0969,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 + packet(0x0202,clif->pUseSkillToPos,2,4,6,8); + packet(0x0360,clif->pStoragePassword,0); + packet(0x0361,clif->pHomMenu,2,4); + packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0437,clif->pMoveToKafra,2,4); + packet(0x0438,clif->pDull/*,XXX*/); + packet(0x07ec,clif->pItemListWindowSelected,2,4,8); + packet(0x0815,clif->pWalkToXY,2); + packet(0x0862,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0863,clif->pActionRequest,2,6); + packet(0x086e,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0879,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x0881,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x088d,clif->pTickSend,2); + packet(0x088f,clif->pFriendsListAdd,2); + packet(0x0892,clif->pReqClickBuyingStore,2); + packet(0x08a6,clif->pReqCloseBuyingStore,0); + packet(0x08ad,clif->pDull/*,XXX*/); + packet(0x091d,clif->pChangeDir,2,4); + packet(0x0923,clif->pWantToConnection,2,6,10,14,18); + packet(0x092d,clif->pGetCharNameRequest,2); + packet(0x093e,clif->pMoveFromKafra,2,4); + packet(0x0947,clif->pSearchStoreInfoNextPage,0); + packet(0x0954,clif->pUseSkillToId,2,4,6); + packet(0x095e,clif->pSolveCharName,2); + packet(0x0962,clif->pTakeItem,2); + packet(0x0964,clif->pDropItem,2,4); + packet(0x0967,clif->pPartyBookingRegisterReq,2,4); + packet(0x0969,clif->pPartyInvite2,2); #endif // 2013-08-28bRagexe, 2013-08-28cRagexe #if PACKETVER == 20130828 - packet(0x023b,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0361,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x0364,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x07ec,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0817,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x0873,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x087e,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0889,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0893,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x089e,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x089f,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x08a3,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x08ac,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x0917,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0919,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x091e,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x0923,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0924,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0928,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0929,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0930,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0944,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0946,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x094a,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x094c,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x094f,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x095d,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0966,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x096a,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 + packet(0x023b,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0361,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x0364,clif->pDull/*,XXX*/); + packet(0x07ec,clif->pReqClickBuyingStore,2); + packet(0x0817,clif->pItemListWindowSelected,2,4,8); + packet(0x0873,clif->pSearchStoreInfoNextPage,0); + packet(0x087e,clif->pDropItem,2,4); + packet(0x0889,clif->pHomMenu,2,4); + packet(0x0893,clif->pStoragePassword,0); + packet(0x089e,clif->pUseSkillToPos,2,4,6,8); + packet(0x089f,clif->pChangeDir,2,4); + packet(0x08a3,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x08ac,clif->pGetCharNameRequest,2); + packet(0x0917,clif->pPartyBookingRegisterReq,2,4); + packet(0x0919,clif->pReqCloseBuyingStore,0); + packet(0x091e,clif->pTakeItem,2); + packet(0x0923,clif->pUseSkillToId,2,4,6); + packet(0x0924,clif->pTickSend,2); + packet(0x0928,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0929,clif->pMoveFromKafra,2,4); + packet(0x0930,clif->pSolveCharName,2); + packet(0x0944,clif->pFriendsListAdd,2); + packet(0x0946,clif->pDull/*,XXX*/); + packet(0x094a,clif->pPartyInvite2,2); + packet(0x094c,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x094f,clif->pActionRequest,2,6); + packet(0x095d,clif->pWalkToXY,2); + packet(0x0966,clif->pMoveToKafra,2,4); + packet(0x096a,clif->pWantToConnection,2,6,10,14,18); #endif // 2013-09-04aRagexe #if PACKETVER == 20130904 - packet(0x0281,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x035f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0360,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0361,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0362,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0363,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0364,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0365,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0436,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0437,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0438,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x07e4,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x07ec,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0802,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0815,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0835,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x0838,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x083c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0937,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x093a,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0940,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0956,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x096a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 + packet(0x0281,clif->pItemListWindowSelected,2,4,8); + packet(0x035f,clif->pTickSend,2); + packet(0x0360,clif->pReqClickBuyingStore,2); + packet(0x0361,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0362,clif->pDropItem,2,4); + packet(0x0363,clif->pDull/*,XXX*/); + packet(0x0364,clif->pMoveFromKafra,2,4); + packet(0x0365,clif->pPartyBookingRegisterReq,2,4); + packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pActionRequest,2,6); + packet(0x0436,clif->pDull/*,XXX*/); + packet(0x0437,clif->pWalkToXY,2); + packet(0x0438,clif->pUseSkillToPos,2,4,6,8); + packet(0x07e4,clif->pTakeItem,2); + packet(0x07ec,clif->pMoveToKafra,2,4); + packet(0x0802,clif->pPartyInvite2,2); + packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0815,clif->pChangeDir,2,4); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0835,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x0838,clif->pWantToConnection,2,6,10,14,18); + packet(0x083c,clif->pUseSkillToId,2,4,6); + packet(0x0937,clif->pFriendsListAdd,2); + packet(0x093a,clif->pHomMenu,2,4); + packet(0x0940,clif->pSearchStoreInfoNextPage,0); + packet(0x0956,clif->pStoragePassword,0); + packet(0x096a,clif->pGetCharNameRequest,2); #endif // 2013-09-11aRagexe, 2013-09-11bRagexe #if PACKETVER == 20130911 - packet(0x035f,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0364,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0436,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0437,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0438,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0819,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0835,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x083c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x085c,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0868,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x086b,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x086d,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x087b,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0889,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x0891,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x08a4,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x091e,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x093a,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0940,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0948,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0967,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x096a,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 + packet(0x035f,clif->pReqClickBuyingStore,2); + packet(0x0364,clif->pGetCharNameRequest,2); + packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pActionRequest,2,6); + packet(0x0436,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0437,clif->pWalkToXY,2); + packet(0x0438,clif->pUseSkillToPos,2,4,6,8); + packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x0819,clif->pWantToConnection,2,6,10,14,18); + packet(0x0835,clif->pSearchStoreInfoNextPage,0); + packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x083c,clif->pUseSkillToId,2,4,6); + packet(0x085c,clif->pPartyInvite2,2); + packet(0x0868,clif->pPartyBookingRegisterReq,2,4); + packet(0x086b,clif->pStoragePassword,0); + packet(0x086d,clif->pMoveFromKafra,2,4); + packet(0x087b,clif->pDull/*,XXX*/); + packet(0x0889,clif->pTakeItem,2); + packet(0x0891,clif->pHomMenu,2,4); + packet(0x08a4,clif->pItemListWindowSelected,2,4,8); + packet(0x091e,clif->pChangeDir,2,4); + packet(0x093a,clif->pDull/*,XXX*/); + packet(0x0940,clif->pTickSend,2); + packet(0x0948,clif->pFriendsListAdd,2); + packet(0x0967,clif->pDropItem,2,4); + packet(0x096a,clif->pMoveToKafra,2,4); #endif // 2013-09-17aRagexe #if PACKETVER == 20130917 - packet(0x035f,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0811,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0838,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x083c,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0863,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0868,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x086e,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x086f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x087a,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x087e,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x088a,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x0895,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x089b,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x089d,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x08a0,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x08a2,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x08a8,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0918,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x091c,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x091e,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0921,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x0923,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0934,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x094c,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x094e,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0957,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x0959,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x095b,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x096a,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 + packet(0x035f,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0811,clif->pActionRequest,2,6); + packet(0x0838,clif->pReqClickBuyingStore,2); + packet(0x083c,clif->pSearchStoreInfoNextPage,0); + packet(0x0863,clif->pMoveFromKafra,2,4); + packet(0x0868,clif->pPartyInvite2,2); + packet(0x086e,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x086f,clif->pTickSend,2); + packet(0x087a,clif->pTakeItem,2); + packet(0x087e,clif->pUseSkillToId,2,4,6); + packet(0x088a,clif->pStoragePassword,0); + packet(0x0895,clif->pSolveCharName,2); + packet(0x089b,clif->pReqCloseBuyingStore,0); + packet(0x089d,clif->pWantToConnection,2,6,10,14,18); + packet(0x08a0,clif->pMoveToKafra,2,4); + packet(0x08a2,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x08a8,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0918,clif->pChangeDir,2,4); + packet(0x091c,clif->pDropItem,2,4); + packet(0x091e,clif->pDull/*,XXX*/); + packet(0x0921,clif->pGetCharNameRequest,2); + packet(0x0923,clif->pHomMenu,2,4); + packet(0x0934,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x094c,clif->pPartyBookingRegisterReq,2,4); + packet(0x094e,clif->pDull/*,XXX*/); + packet(0x0957,clif->pUseSkillToPos,2,4,6,8); + packet(0x0959,clif->pItemListWindowSelected,2,4,8); + packet(0x095b,clif->pWalkToXY,2); + packet(0x096a,clif->pFriendsListAdd,2); #endif // 2013-09-25aRagexe, 2013-09-25bRagexe, 2013-09-25cRagexe #if PACKETVER == 20130925 - packet(0x035f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0360,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0437,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0438,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0835,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x083c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x086d,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x086e,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0875,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0876,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x087d,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0885,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0887,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x088f,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0890,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0940,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x0958,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x095a,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x095b,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x095c,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0969,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x096a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 + packet(0x035f,clif->pTickSend,2); + packet(0x0360,clif->pReqClickBuyingStore,2); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pActionRequest,2,6); + packet(0x0437,clif->pWalkToXY,2); + packet(0x0438,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0835,clif->pSearchStoreInfoNextPage,0); + packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x083c,clif->pUseSkillToId,2,4,6); + packet(0x086d,clif->pStoragePassword,0); + packet(0x086e,clif->pPartyInvite2,2); + packet(0x0875,clif->pHomMenu,2,4); + packet(0x0876,clif->pMoveFromKafra,2,4); + packet(0x087d,clif->pDropItem,2,4); + packet(0x0885,clif->pChangeDir,2,4); + packet(0x0887,clif->pWantToConnection,2,6,10,14,18); + packet(0x088f,clif->pFriendsListAdd,2); + packet(0x0890,clif->pDull/*,XXX*/); + packet(0x0940,clif->pUseSkillToPos,2,4,6,8); + packet(0x0958,clif->pTakeItem,2); + packet(0x095a,clif->pPartyBookingRegisterReq,2,4); + packet(0x095b,clif->pItemListWindowSelected,2,4,8); + packet(0x095c,clif->pMoveToKafra,2,4); + packet(0x0969,clif->pDull/*,XXX*/); + packet(0x096a,clif->pGetCharNameRequest,2); #endif // 2013-10-02aRagexe #if PACKETVER == 20131002 - packet(0x0202,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x022d,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x023b,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0281,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x035f,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x0360,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0361,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0362,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0363,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0364,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0365,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0436,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0437,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0438,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x07e4,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x07ec,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0802,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0835,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x083c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0940,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x096a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 + packet(0x0202,clif->pChangeDir,2,4); + packet(0x022d,clif->pWantToConnection,2,6,10,14,18); + packet(0x023b,clif->pFriendsListAdd,2); + packet(0x0281,clif->pItemListWindowSelected,2,4,8); + packet(0x035f,clif->pStoragePassword,0); + packet(0x0360,clif->pReqClickBuyingStore,2); + packet(0x0361,clif->pHomMenu,2,4); + packet(0x0362,clif->pDropItem,2,4); + packet(0x0363,clif->pDull/*,XXX*/); + packet(0x0364,clif->pMoveFromKafra,2,4); + packet(0x0365,clif->pPartyBookingRegisterReq,2,4); + packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pActionRequest,2,6); + packet(0x0436,clif->pDull/*,XXX*/); + packet(0x0437,clif->pTickSend,2); + packet(0x0438,clif->pUseSkillToPos,2,4,6,8); + packet(0x07e4,clif->pTakeItem,2); + packet(0x07ec,clif->pMoveToKafra,2,4); + packet(0x0802,clif->pPartyInvite2,2); + packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0835,clif->pSearchStoreInfoNextPage,0); + packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x083c,clif->pUseSkillToId,2,4,6); + packet(0x0940,clif->pWalkToXY,2); + packet(0x096a,clif->pGetCharNameRequest,2); #endif // 2013-10-08aRagexe #if PACKETVER == 20131008 - packet(0x0202,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x0362,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x07e4,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x083c,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x085d,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x085e,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0863,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x086c,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x086d,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0883,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0884,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0885,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0896,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x089c,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x08a9,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0917,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x091c,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x0923,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0927,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x0932,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x0934,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0936,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x093c,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0947,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x0952,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0954,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0956,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x095d,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0969,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 + packet(0x0202,clif->pGetCharNameRequest,2); + packet(0x0362,clif->pWantToConnection,2,6,10,14,18); + packet(0x07e4,clif->pActionRequest,2,6); + packet(0x083c,clif->pReqCloseBuyingStore,0); + packet(0x085d,clif->pDull/*,XXX*/); + packet(0x085e,clif->pWalkToXY,2); + packet(0x0863,clif->pPartyInvite2,2); + packet(0x086c,clif->pItemListWindowSelected,2,4,8); + packet(0x086d,clif->pSolveCharName,2); + packet(0x0883,clif->pMoveToKafra,2,4); + packet(0x0884,clif->pPartyBookingRegisterReq,2,4); + packet(0x0885,clif->pDull/*,XXX*/); + packet(0x0896,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x089c,clif->pChangeDir,2,4); + packet(0x08a9,clif->pUseSkillToId,2,4,6); + packet(0x0917,clif->pMoveFromKafra,2,4); + packet(0x091c,clif->pTakeItem,2); + packet(0x0923,clif->pSearchStoreInfoNextPage,0); + packet(0x0927,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x0932,clif->pUseSkillToPos,2,4,6,8); + packet(0x0934,clif->pTickSend,2); + packet(0x0936,clif->pReqClickBuyingStore,2); + packet(0x093c,clif->pHomMenu,2,4); + packet(0x0947,clif->pStoragePassword,0); + packet(0x0952,clif->pDropItem,2,4); + packet(0x0954,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0956,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x095d,clif->pFriendsListAdd,2); + packet(0x0969,clif->pReqOpenBuyingStore,2,4,8,9,89); #endif // 2013-10-16aRagexe, 2013-10-16bRagexe #if PACKETVER == 20131016 - packet(0x022d,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0281,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0361,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0364,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0366,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x07ec,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0802,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x085a,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x085d,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x0863,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0864,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x0867,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x086c,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0870,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0875,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x0887,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x0888,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x088b,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0890,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0894,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x091a,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x091e,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x091f,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0927,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0946,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x094e,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x095e,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x0962,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0966,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 + packet(0x022d,clif->pMoveToKafra,2,4); + packet(0x0281,clif->pPartyInvite2,2); + packet(0x0361,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0364,clif->pDropItem,2,4); + packet(0x0366,clif->pReqClickBuyingStore,2); + packet(0x07ec,clif->pWantToConnection,2,6,10,14,18); + packet(0x0802,clif->pDull/*,XXX*/); + packet(0x085a,clif->pDull/*,XXX*/); + packet(0x085d,clif->pGetCharNameRequest,2); + packet(0x0863,clif->pUseSkillToId,2,4,6); + packet(0x0864,clif->pStoragePassword,0); + packet(0x0867,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x086c,clif->pSearchStoreInfoNextPage,0); + packet(0x0870,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0875,clif->pItemListWindowSelected,2,4,8); + packet(0x0887,clif->pTakeItem,2); + packet(0x0888,clif->pHomMenu,2,4); + packet(0x088b,clif->pFriendsListAdd,2); + packet(0x0890,clif->pSolveCharName,2); + packet(0x0894,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x091a,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x091e,clif->pMoveFromKafra,2,4); + packet(0x091f,clif->pWalkToXY,2); + packet(0x0927,clif->pTickSend,2); + packet(0x0946,clif->pPartyBookingRegisterReq,2,4); + packet(0x094e,clif->pReqCloseBuyingStore,0); + packet(0x095e,clif->pUseSkillToPos,2,4,6,8); + packet(0x0962,clif->pActionRequest,2,6); + packet(0x0966,clif->pChangeDir,2,4); #endif // 2013-10-23aRagexe #if PACKETVER == 20131023 - packet(0x0366,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0438,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0811,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x0819,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0835,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x085b,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0862,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x086e,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0872,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0876,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x087f,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0885,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x088a,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x088b,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x088f,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x08a7,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x08ab,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x08ac,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0919,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x091d,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x0923,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0924,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0935,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0937,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0944,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x094a,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0951,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x0954,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x095b,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 + packet(0x0366,clif->pReqCloseBuyingStore,0); + packet(0x0438,clif->pPartyInvite2,2); + packet(0x0811,clif->pUseSkillToPos,2,4,6,8); + packet(0x0819,clif->pDropItem,2,4); + packet(0x0835,clif->pDull/*,XXX*/); + packet(0x085b,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0862,clif->pDull/*,XXX*/); + packet(0x086e,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0872,clif->pPartyBookingRegisterReq,2,4); + packet(0x0876,clif->pUseSkillToId,2,4,6); + packet(0x087f,clif->pSearchStoreInfoNextPage,0); + packet(0x0885,clif->pStoragePassword,0); + packet(0x088a,clif->pItemListWindowSelected,2,4,8); + packet(0x088b,clif->pTakeItem,2); + packet(0x088f,clif->pMoveToKafra,2,4); + packet(0x08a7,clif->pHomMenu,2,4); + packet(0x08ab,clif->pChangeDir,2,4); + packet(0x08ac,clif->pWantToConnection,2,6,10,14,18); + packet(0x0919,clif->pSolveCharName,2); + packet(0x091d,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x0923,clif->pActionRequest,2,6); + packet(0x0924,clif->pTickSend,2); + packet(0x0935,clif->pReqClickBuyingStore,2); + packet(0x0937,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0944,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x094a,clif->pFriendsListAdd,2); + packet(0x0951,clif->pGetCharNameRequest,2); + packet(0x0954,clif->pMoveFromKafra,2,4); + packet(0x095b,clif->pWalkToXY,2); #endif // 2013-10-30aRagexe #if PACKETVER == 20131030 - packet(0x022d,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0281,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x035f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0360,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0362,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0363,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0364,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0365,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0436,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0437,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0438,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x07e4,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x07ec,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0802,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0835,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x083c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x087d,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0887,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x08a2,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0925,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x096a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 + packet(0x022d,clif->pHomMenu,2,4); + packet(0x0281,clif->pItemListWindowSelected,2,4,8); + packet(0x035f,clif->pTickSend,2); + packet(0x0360,clif->pReqClickBuyingStore,2); + packet(0x0362,clif->pDropItem,2,4); + packet(0x0363,clif->pDull/*,XXX*/); + packet(0x0364,clif->pMoveFromKafra,2,4); + packet(0x0365,clif->pWantToConnection,2,6,10,14,18); + packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pActionRequest,2,6); + packet(0x0436,clif->pPartyBookingRegisterReq,2,4); + packet(0x0437,clif->pWalkToXY,2); + packet(0x0438,clif->pUseSkillToPos,2,4,6,8); + packet(0x07e4,clif->pTakeItem,2); + packet(0x07ec,clif->pMoveToKafra,2,4); + packet(0x0802,clif->pPartyInvite2,2); + packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0835,clif->pSearchStoreInfoNextPage,0); + packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x083c,clif->pUseSkillToId,2,4,6); + packet(0x087d,clif->pFriendsListAdd,2); + packet(0x0887,clif->pStoragePassword,0); + packet(0x08a2,clif->pDull/*,XXX*/); + packet(0x0925,clif->pChangeDir,2,4); + packet(0x096a,clif->pGetCharNameRequest,2); #endif // 2013-11-06aRagexe, 2013-11-07aRagexe, 2013-11-07bRagexe, 2013-11-07cRagexe, 2013-11-08aRagexe #if PACKETVER == 20131106 || \ PACKETVER == 20131107 || \ PACKETVER == 20131108 - packet(0x0281,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x0363,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0369,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x0436,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x0802,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0817,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0866,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0867,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0870,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0875,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0887,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0891,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0893,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0894,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x08a2,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0919,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x091d,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0929,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0935,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x093b,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x0942,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x0946,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0947,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0948,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0950,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0954,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x095d,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0962,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0967,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 + packet(0x0281,clif->pGetCharNameRequest,2); + packet(0x0363,clif->pUseSkillToId,2,4,6); + packet(0x0369,clif->pItemListWindowSelected,2,4,8); + packet(0x0436,clif->pStoragePassword,0); + packet(0x0802,clif->pChangeDir,2,4); + packet(0x0817,clif->pDull/*,XXX*/); + packet(0x0866,clif->pWalkToXY,2); + packet(0x0867,clif->pMoveToKafra,2,4); + packet(0x0870,clif->pReqCloseBuyingStore,0); + packet(0x0875,clif->pDropItem,2,4); + packet(0x0887,clif->pTickSend,2); + packet(0x0891,clif->pSolveCharName,2); + packet(0x0893,clif->pPartyBookingRegisterReq,2,4); + packet(0x0894,clif->pHomMenu,2,4); + packet(0x08a2,clif->pWantToConnection,2,6,10,14,18); + packet(0x0919,clif->pSearchStoreInfoNextPage,0); + packet(0x091d,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0929,clif->pMoveFromKafra,2,4); + packet(0x0935,clif->pFriendsListAdd,2); + packet(0x093b,clif->pTakeItem,2); + packet(0x0942,clif->pUseSkillToPos,2,4,6,8); + packet(0x0946,clif->pReqClickBuyingStore,2); + packet(0x0947,clif->pActionRequest,2,6); + packet(0x0948,clif->pDull/*,XXX*/); + packet(0x0950,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0954,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x095d,clif->pPartyInvite2,2); + packet(0x0962,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0967,clif->pReqTradeBuyingStore,2,4,8,12); #endif // 2013-11-13bRagexe #if PACKETVER == 20131113 - packet(0x0364,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x086d,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0879,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x088c,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x088f,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x089a,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x08a4,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x08a8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x091c,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0920,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x0926,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0927,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0928,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x0929,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x092b,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x092c,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x092d,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x092e,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x092f,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0934,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0936,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x093c,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0949,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x0950,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x095d,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x095f,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0960,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0964,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0969,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 + packet(0x0364,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x086d,clif->pReqCloseBuyingStore,0); + packet(0x0879,clif->pSearchStoreInfoNextPage,0); + packet(0x088c,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x088f,clif->pDropItem,2,4); + packet(0x089a,clif->pWantToConnection,2,6,10,14,18); + packet(0x08a4,clif->pItemListWindowSelected,2,4,8); + packet(0x08a8,clif->pDull/*,XXX*/); + packet(0x091c,clif->pMoveFromKafra,2,4); + packet(0x0920,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x0926,clif->pHomMenu,2,4); + packet(0x0927,clif->pPartyInvite2,2); + packet(0x0928,clif->pStoragePassword,0); + packet(0x0929,clif->pTickSend,2); + packet(0x092b,clif->pTakeItem,2); + packet(0x092c,clif->pFriendsListAdd,2); + packet(0x092d,clif->pReqClickBuyingStore,2); + packet(0x092e,clif->pGetCharNameRequest,2); + packet(0x092f,clif->pSolveCharName,2); + packet(0x0934,clif->pPartyBookingRegisterReq,2,4); + packet(0x0936,clif->pWalkToXY,2); + packet(0x093c,clif->pChangeDir,2,4); + packet(0x0949,clif->pUseSkillToPos,2,4,6,8); + packet(0x0950,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x095d,clif->pActionRequest,2,6); + packet(0x095f,clif->pUseSkillToId,2,4,6); + packet(0x0960,clif->pMoveToKafra,2,4); + packet(0x0964,clif->pDull/*,XXX*/); + packet(0x0969,clif->pSearchStoreInfo,2,4,5,9,13,14,15); #endif // 2013-11-20dRagexe #if PACKETVER == 20131120 - packet(0x0361,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0364,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0368,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x0802,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0811,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0817,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x085a,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x085f,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x0862,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0884,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x088c,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x088d,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x089e,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x08a1,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x08a4,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x08a8,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0917,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0926,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0927,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x092b,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x092d,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x093e,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x093f,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0940,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0950,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x0953,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0955,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0956,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x095e,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 + packet(0x0361,clif->pSolveCharName,2); + packet(0x0364,clif->pMoveFromKafra,2,4); + packet(0x0368,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x0802,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0811,clif->pDull/*,XXX*/); + packet(0x0817,clif->pTickSend,2); + packet(0x085a,clif->pItemListWindowSelected,2,4,8); + packet(0x085f,clif->pUseSkillToPos,2,4,6,8); + packet(0x0862,clif->pReqCloseBuyingStore,0); + packet(0x0884,clif->pUseSkillToId,2,4,6); + packet(0x088c,clif->pWantToConnection,2,6,10,14,18); + packet(0x088d,clif->pFriendsListAdd,2); + packet(0x089e,clif->pTakeItem,2); + packet(0x08a1,clif->pHomMenu,2,4); + packet(0x08a4,clif->pStoragePassword,0); + packet(0x08a8,clif->pActionRequest,2,6); + packet(0x0917,clif->pDropItem,2,4); + packet(0x0926,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0927,clif->pMoveToKafra,2,4); + packet(0x092b,clif->pWalkToXY,2); + packet(0x092d,clif->pSearchStoreInfoNextPage,0); + packet(0x093e,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x093f,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0940,clif->pDull/*,XXX*/); + packet(0x0950,clif->pGetCharNameRequest,2); + packet(0x0953,clif->pPartyInvite2,2); + packet(0x0955,clif->pReqClickBuyingStore,2); + packet(0x0956,clif->pChangeDir,2,4); + packet(0x095e,clif->pPartyBookingRegisterReq,2,4); #endif // 2013-11-27bRagexe #if PACKETVER == 20131127 - packet(0x035f,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0364,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x0365,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0366,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0437,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0438,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x07e4,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0835,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x083c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0881,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0884,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x088d,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0894,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x089e,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0930,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x093a,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0940,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x094c,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x094f,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x095c,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0967,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x096a,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 + packet(0x035f,clif->pReqClickBuyingStore,2); + packet(0x0364,clif->pGetCharNameRequest,2); + packet(0x0365,clif->pWalkToXY,2); + packet(0x0366,clif->pItemListWindowSelected,2,4,8); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pActionRequest,2,6); + packet(0x0437,clif->pMoveFromKafra,2,4); + packet(0x0438,clif->pUseSkillToPos,2,4,6,8); + packet(0x07e4,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0835,clif->pSearchStoreInfoNextPage,0); + packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x083c,clif->pUseSkillToId,2,4,6); + packet(0x0881,clif->pDull/*,XXX*/); + packet(0x0884,clif->pHomMenu,2,4); + packet(0x088d,clif->pChangeDir,2,4); + packet(0x0894,clif->pStoragePassword,0); + packet(0x089e,clif->pDull/*,XXX*/); + packet(0x0930,clif->pPartyBookingRegisterReq,2,4); + packet(0x093a,clif->pFriendsListAdd,2); + packet(0x0940,clif->pTickSend,2); + packet(0x094c,clif->pTakeItem,2); + packet(0x094f,clif->pDropItem,2,4); + packet(0x095c,clif->pWantToConnection,2,6,10,14,18); + packet(0x0967,clif->pPartyInvite2,2); + packet(0x096a,clif->pMoveToKafra,2,4); #endif // 2013-12-04eRagexe #if PACKETVER == 20131204 - packet(0x0365,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0366,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x07e4,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x07ec,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x085a,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0862,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0869,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x086c,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0877,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0879,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x087f,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0882,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x08a0,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x08a4,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x08a7,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x08ad,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x091f,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0928,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x092d,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x092f,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0932,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x093b,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0941,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0951,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x0958,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0959,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x095b,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x0961,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0967,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 + packet(0x0365,clif->pReqCloseBuyingStore,0); + packet(0x0366,clif->pTickSend,2); + packet(0x07e4,clif->pStoragePassword,0); + packet(0x07ec,clif->pReqClickBuyingStore,2); + packet(0x085a,clif->pPartyInvite2,2); + packet(0x0862,clif->pChangeDir,2,4); + packet(0x0869,clif->pUseSkillToPos,2,4,6,8); + packet(0x086c,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0877,clif->pWantToConnection,2,6,10,14,18); + packet(0x0879,clif->pSolveCharName,2); + packet(0x087f,clif->pPartyBookingRegisterReq,2,4); + packet(0x0882,clif->pFriendsListAdd,2); + packet(0x08a0,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x08a4,clif->pDropItem,2,4); + packet(0x08a7,clif->pTakeItem,2); + packet(0x08ad,clif->pGetCharNameRequest,2); + packet(0x091f,clif->pHomMenu,2,4); + packet(0x0928,clif->pActionRequest,2,6); + packet(0x092d,clif->pUseSkillToId,2,4,6); + packet(0x092f,clif->pWalkToXY,2); + packet(0x0932,clif->pSearchStoreInfoNextPage,0); + packet(0x093b,clif->pDull/*,XXX*/); + packet(0x0941,clif->pMoveToKafra,2,4); + packet(0x0951,clif->pItemListWindowSelected,2,4,8); + packet(0x0958,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0959,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x095b,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x0961,clif->pDull/*,XXX*/); + packet(0x0967,clif->pMoveFromKafra,2,4); #endif // 2013-12-11cRagexe, 2013-12-11dRagexe #if PACKETVER == 20131211 - packet(0x0202,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x035f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0360,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0362,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0366,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0437,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0438,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0835,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x083c,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0865,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x086e,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x0873,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0881,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0886,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0892,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x08a3,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x08a4,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x08ab,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x092b,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x0931,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x094c,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x096a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 + packet(0x0202,clif->pUseSkillToId,2,4,6); + packet(0x035f,clif->pTickSend,2); + packet(0x0360,clif->pReqClickBuyingStore,2); + packet(0x0362,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0366,clif->pTakeItem,2); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pActionRequest,2,6); + packet(0x0437,clif->pWalkToXY,2); + packet(0x0438,clif->pUseSkillToPos,2,4,6,8); + packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0835,clif->pSearchStoreInfoNextPage,0); + packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x083c,clif->pFriendsListAdd,2); + packet(0x0865,clif->pPartyInvite2,2); + packet(0x086e,clif->pItemListWindowSelected,2,4,8); + packet(0x0873,clif->pWantToConnection,2,6,10,14,18); + packet(0x0881,clif->pDull/*,XXX*/); + packet(0x0886,clif->pHomMenu,2,4); + packet(0x0892,clif->pMoveToKafra,2,4); + packet(0x08a3,clif->pPartyBookingRegisterReq,2,4); + packet(0x08a4,clif->pChangeDir,2,4); + packet(0x08ab,clif->pDropItem,2,4); + packet(0x092b,clif->pStoragePassword,0); + packet(0x0931,clif->pMoveFromKafra,2,4); + packet(0x094c,clif->pDull/*,XXX*/); + packet(0x096a,clif->pGetCharNameRequest,2); #endif // 2013-12-18bRagexe #if PACKETVER == 20131218 - packet(0x022d,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0281,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x035f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0360,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0362,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0363,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0364,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0365,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0437,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0438,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x07e4,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x07ec,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0802,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0811,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0835,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x083c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x085c,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x087b,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x08ab,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x092f,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0947,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x096a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 + packet(0x022d,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0281,clif->pItemListWindowSelected,2,4,8); + packet(0x035f,clif->pTickSend,2); + packet(0x0360,clif->pReqClickBuyingStore,2); + packet(0x0362,clif->pDropItem,2,4); + packet(0x0363,clif->pDull/*,XXX*/); + packet(0x0364,clif->pMoveFromKafra,2,4); + packet(0x0365,clif->pPartyBookingRegisterReq,2,4); + packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pActionRequest,2,6); + packet(0x0437,clif->pWalkToXY,2); + packet(0x0438,clif->pUseSkillToPos,2,4,6,8); + packet(0x07e4,clif->pTakeItem,2); + packet(0x07ec,clif->pMoveToKafra,2,4); + packet(0x0802,clif->pPartyInvite2,2); + packet(0x0811,clif->pHomMenu,2,4); + packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0835,clif->pSearchStoreInfoNextPage,0); + packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x083c,clif->pUseSkillToId,2,4,6); + packet(0x085c,clif->pStoragePassword,0); + packet(0x087b,clif->pDull/*,XXX*/); + packet(0x08ab,clif->pFriendsListAdd,2); + packet(0x092f,clif->pWantToConnection,2,6,10,14,18); + packet(0x0947,clif->pChangeDir,2,4); + packet(0x096a,clif->pGetCharNameRequest,2); #endif // 2013-12-23bRagexe, 2013-12-23cRagexe #if PACKETVER == 20131223 - packet(0x0202,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x022d,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x023b,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0281,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x035f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0360,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0361,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0362,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0363,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0364,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0365,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0436,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0437,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0438,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x07e4,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x07ec,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0802,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0835,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x083c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x08a4,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x096a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 + packet(0x0202,clif->pChangeDir,2,4); + packet(0x022d,clif->pWantToConnection,2,6,10,14,18); + packet(0x023b,clif->pFriendsListAdd,2); + packet(0x0281,clif->pItemListWindowSelected,2,4,8); + packet(0x035f,clif->pTickSend,2); + packet(0x0360,clif->pReqClickBuyingStore,2); + packet(0x0361,clif->pHomMenu,2,4); + packet(0x0362,clif->pDropItem,2,4); + packet(0x0363,clif->pDull/*,XXX*/); + packet(0x0364,clif->pMoveFromKafra,2,4); + packet(0x0365,clif->pPartyBookingRegisterReq,2,4); + packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pActionRequest,2,6); + packet(0x0436,clif->pDull/*,XXX*/); + packet(0x0437,clif->pWalkToXY,2); + packet(0x0438,clif->pUseSkillToPos,2,4,6,8); + packet(0x07e4,clif->pTakeItem,2); + packet(0x07ec,clif->pMoveToKafra,2,4); + packet(0x0802,clif->pPartyInvite2,2); + packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0835,clif->pSearchStoreInfoNextPage,0); + packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x083c,clif->pUseSkillToId,2,4,6); + packet(0x08a4,clif->pStoragePassword,0); + packet(0x096a,clif->pGetCharNameRequest,2); #endif // 2013-12-30aRagexe #if PACKETVER == 20131230 - packet(0x022d,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x02c4,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x035f,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0365,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0369,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0438,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0860,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0871,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x087b,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x087e,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x087f,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0895,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0898,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x089c,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x08a9,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x091d,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x091e,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x091f,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0926,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x092a,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x093d,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x093e,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0943,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0949,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x094a,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x094c,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0968,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0969,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x096a,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 + packet(0x022d,clif->pItemListWindowSelected,2,4,8); + packet(0x02c4,clif->pUseSkillToId,2,4,6); + packet(0x035f,clif->pWalkToXY,2); + packet(0x0365,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0369,clif->pSearchStoreInfoNextPage,0); + packet(0x0438,clif->pTickSend,2); + packet(0x0860,clif->pDropItem,2,4); + packet(0x0871,clif->pActionRequest,2,6); + packet(0x087b,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x087e,clif->pDull/*,XXX*/); + packet(0x087f,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0895,clif->pMoveFromKafra,2,4); + packet(0x0898,clif->pSolveCharName,2); + packet(0x089c,clif->pWantToConnection,2,6,10,14,18); + packet(0x08a9,clif->pPartyInvite2,2); + packet(0x091d,clif->pStoragePassword,0); + packet(0x091e,clif->pUseSkillToPos,2,4,6,8); + packet(0x091f,clif->pPartyBookingRegisterReq,2,4); + packet(0x0926,clif->pGetCharNameRequest,2); + packet(0x092a,clif->pTakeItem,2); + packet(0x093d,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x093e,clif->pDull/*,XXX*/); + packet(0x0943,clif->pFriendsListAdd,2); + packet(0x0949,clif->pHomMenu,2,4); + packet(0x094a,clif->pChangeDir,2,4); + packet(0x094c,clif->pReqCloseBuyingStore,0); + packet(0x0968,clif->pMoveToKafra,2,4); + packet(0x0969,clif->pReqClickBuyingStore,2); + packet(0x096a,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); #endif // 2014-01-08cRagexe, 2014-01-08dRagexe #if PACKETVER == 20140108 - packet(0x0202,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x022d,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x023b,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0281,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x035f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0360,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0361,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0362,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0363,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0364,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0365,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0436,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0437,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0438,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x07e4,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x07ec,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0802,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0835,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x083c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0936,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x096a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 + packet(0x0202,clif->pChangeDir,2,4); + packet(0x022d,clif->pWantToConnection,2,6,10,14,18); + packet(0x023b,clif->pFriendsListAdd,2); + packet(0x0281,clif->pItemListWindowSelected,2,4,8); + packet(0x035f,clif->pTickSend,2); + packet(0x0360,clif->pReqClickBuyingStore,2); + packet(0x0361,clif->pHomMenu,2,4); + packet(0x0362,clif->pDropItem,2,4); + packet(0x0363,clif->pDull/*,XXX*/); + packet(0x0364,clif->pMoveFromKafra,2,4); + packet(0x0365,clif->pPartyBookingRegisterReq,2,4); + packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pActionRequest,2,6); + packet(0x0436,clif->pDull/*,XXX*/); + packet(0x0437,clif->pWalkToXY,2); + packet(0x0438,clif->pUseSkillToPos,2,4,6,8); + packet(0x07e4,clif->pTakeItem,2); + packet(0x07ec,clif->pMoveToKafra,2,4); + packet(0x0802,clif->pPartyInvite2,2); + packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0835,clif->pSearchStoreInfoNextPage,0); + packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x083c,clif->pUseSkillToId,2,4,6); + packet(0x0936,clif->pStoragePassword,0); + packet(0x096a,clif->pGetCharNameRequest,2); #endif // 2014-01-15aRagexe, 2014-01-15bRagexe, 2014-01-15cRagexe, 2014-01-15eRagexe #if PACKETVER == 20140115 - packet(0x035f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0360,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0361,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0367,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0437,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0438,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x0802,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0835,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x083c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0865,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x0887,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x088a,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x088e,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x089b,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x08a7,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x092d,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0940,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x095b,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x095d,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0965,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x0966,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x096a,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 + packet(0x035f,clif->pTickSend,2); + packet(0x0360,clif->pReqClickBuyingStore,2); + packet(0x0361,clif->pDropItem,2,4); + packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0367,clif->pMoveFromKafra,2,4); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pActionRequest,2,6); + packet(0x0437,clif->pWalkToXY,2); + packet(0x0438,clif->pUseSkillToPos,2,4,6,8); + packet(0x0802,clif->pGetCharNameRequest,2); + packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0835,clif->pSearchStoreInfoNextPage,0); + packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x083c,clif->pUseSkillToId,2,4,6); + packet(0x0865,clif->pStoragePassword,0); + packet(0x0887,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x088a,clif->pDull/*,XXX*/); + packet(0x088e,clif->pMoveToKafra,2,4); + packet(0x089b,clif->pFriendsListAdd,2); + packet(0x08a7,clif->pChangeDir,2,4); + packet(0x092d,clif->pHomMenu,2,4); + packet(0x0940,clif->pTakeItem,2); + packet(0x095b,clif->pDull/*,XXX*/); + packet(0x095d,clif->pPartyInvite2,2); + packet(0x0965,clif->pItemListWindowSelected,2,4,8); + packet(0x0966,clif->pWantToConnection,2,6,10,14,18); + packet(0x096a,clif->pPartyBookingRegisterReq,2,4); #endif // 2014-01-22aRagexe #if PACKETVER == 20140122 - packet(0x0360,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x07ec,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0811,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0863,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0870,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0871,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0872,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x088c,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0890,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0893,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0899,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x089d,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x08a2,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x08aa,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0917,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x091a,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0925,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x092f,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0940,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0941,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0942,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x094b,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x094c,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0950,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x0952,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0955,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x0957,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x095d,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x095f,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 + packet(0x0360,clif->pActionRequest,2,6); + packet(0x07ec,clif->pReqClickBuyingStore,2); + packet(0x0811,clif->pReqCloseBuyingStore,0); + packet(0x0863,clif->pHomMenu,2,4); + packet(0x0870,clif->pPartyBookingRegisterReq,2,4); + packet(0x0871,clif->pWantToConnection,2,6,10,14,18); + packet(0x0872,clif->pPartyInvite2,2); + packet(0x088c,clif->pDull/*,XXX*/); + packet(0x0890,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0893,clif->pFriendsListAdd,2); + packet(0x0899,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x089d,clif->pGetCharNameRequest,2); + packet(0x08a2,clif->pDull/*,XXX*/); + packet(0x08aa,clif->pDropItem,2,4); + packet(0x0917,clif->pTickSend,2); + packet(0x091a,clif->pChangeDir,2,4); + packet(0x0925,clif->pWalkToXY,2); + packet(0x092f,clif->pMoveToKafra,2,4); + packet(0x0940,clif->pUseSkillToId,2,4,6); + packet(0x0941,clif->pSolveCharName,2); + packet(0x0942,clif->pTakeItem,2); + packet(0x094b,clif->pSearchStoreInfoNextPage,0); + packet(0x094c,clif->pMoveFromKafra,2,4); + packet(0x0950,clif->pUseSkillToPos,2,4,6,8); + packet(0x0952,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0955,clif->pStoragePassword,0); + packet(0x0957,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x095d,clif->pItemListWindowSelected,2,4,8); + packet(0x095f,clif->pReqOpenBuyingStore,2,4,8,9,89); #endif // 2014-01-29aRagexe, 2014-01-29cRagexe #if PACKETVER == 20140129 - packet(0x0281,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x035f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0360,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0361,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0367,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0437,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0438,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x07ec,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0802,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0835,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x083c,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0884,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0885,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x0889,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0921,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0924,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x092c,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x094d,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0958,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0961,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x096a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 + packet(0x0281,clif->pUseSkillToId,2,4,6); + packet(0x035f,clif->pTickSend,2); + packet(0x0360,clif->pReqClickBuyingStore,2); + packet(0x0361,clif->pDull/*,XXX*/); + packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0367,clif->pDropItem,2,4); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pActionRequest,2,6); + packet(0x0437,clif->pWalkToXY,2); + packet(0x0438,clif->pUseSkillToPos,2,4,6,8); + packet(0x07ec,clif->pChangeDir,2,4); + packet(0x0802,clif->pWantToConnection,2,6,10,14,18); + packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0835,clif->pSearchStoreInfoNextPage,0); + packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x083c,clif->pDull/*,XXX*/); + packet(0x0884,clif->pHomMenu,2,4); + packet(0x0885,clif->pTakeItem,2); + packet(0x0889,clif->pMoveFromKafra,2,4); + packet(0x0921,clif->pPartyBookingRegisterReq,2,4); + packet(0x0924,clif->pItemListWindowSelected,2,4,8); + packet(0x092c,clif->pStoragePassword,0); + packet(0x094d,clif->pMoveToKafra,2,4); + packet(0x0958,clif->pPartyInvite2,2); + packet(0x0961,clif->pFriendsListAdd,2); + packet(0x096a,clif->pGetCharNameRequest,2); #endif // 2014-02-05bRagexe #if PACKETVER == 20140205 - packet(0x0202,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x022d,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x023b,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0281,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x035f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0360,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0361,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0362,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0363,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0364,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0365,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0436,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0437,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0438,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x07e4,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x07ec,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0802,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0835,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x083c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0938,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x096a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 + packet(0x0202,clif->pChangeDir,2,4); + packet(0x022d,clif->pWantToConnection,2,6,10,14,18); + packet(0x023b,clif->pFriendsListAdd,2); + packet(0x0281,clif->pItemListWindowSelected,2,4,8); + packet(0x035f,clif->pTickSend,2); + packet(0x0360,clif->pReqClickBuyingStore,2); + packet(0x0361,clif->pHomMenu,2,4); + packet(0x0362,clif->pDropItem,2,4); + packet(0x0363,clif->pDull/*,XXX*/); + packet(0x0364,clif->pMoveFromKafra,2,4); + packet(0x0365,clif->pPartyBookingRegisterReq,2,4); + packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pActionRequest,2,6); + packet(0x0436,clif->pDull/*,XXX*/); + packet(0x0437,clif->pWalkToXY,2); + packet(0x0438,clif->pUseSkillToPos,2,4,6,8); + packet(0x07e4,clif->pTakeItem,2); + packet(0x07ec,clif->pMoveToKafra,2,4); + packet(0x0802,clif->pPartyInvite2,2); + packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0835,clif->pSearchStoreInfoNextPage,0); + packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x083c,clif->pUseSkillToId,2,4,6); + packet(0x0938,clif->pStoragePassword,0); + packet(0x096a,clif->pGetCharNameRequest,2); #endif // 2014-02-12aRagexe #if PACKETVER == 20140212 - packet(0x02c4,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0369,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0438,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x086e,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0874,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0877,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0878,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x087e,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0888,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x088c,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x089d,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x089e,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x08a0,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x08a1,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x08a7,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x08ac,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x08ad,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0919,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x091b,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0928,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0930,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0934,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0936,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x093d,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0944,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x094e,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0952,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x0953,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x0960,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 + packet(0x02c4,clif->pSearchStoreInfoNextPage,0); + packet(0x0369,clif->pPartyBookingRegisterReq,2,4); + packet(0x0438,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x086e,clif->pUseSkillToId,2,4,6); + packet(0x0874,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0877,clif->pReqClickBuyingStore,2); + packet(0x0878,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x087e,clif->pWalkToXY,2); + packet(0x0888,clif->pMoveFromKafra,2,4); + packet(0x088c,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x089d,clif->pUseSkillToPos,2,4,6,8); + packet(0x089e,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x08a0,clif->pStoragePassword,0); + packet(0x08a1,clif->pPartyInvite2,2); + packet(0x08a7,clif->pItemListWindowSelected,2,4,8); + packet(0x08ac,clif->pMoveToKafra,2,4); + packet(0x08ad,clif->pDropItem,2,4); + packet(0x0919,clif->pChangeDir,2,4); + packet(0x091b,clif->pFriendsListAdd,2); + packet(0x0928,clif->pSolveCharName,2); + packet(0x0930,clif->pTickSend,2); + packet(0x0934,clif->pActionRequest,2,6); + packet(0x0936,clif->pDull/*,XXX*/); + packet(0x093d,clif->pWantToConnection,2,6,10,14,18); + packet(0x0944,clif->pHomMenu,2,4); + packet(0x094e,clif->pDull/*,XXX*/); + packet(0x0952,clif->pGetCharNameRequest,2); + packet(0x0953,clif->pTakeItem,2); + packet(0x0960,clif->pReqCloseBuyingStore,0); #endif // 2014-02-19aRagexe #if PACKETVER == 20140219 - packet(0x0202,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0360,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0364,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0802,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0838,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x085b,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x085c,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x085d,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x085f,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x0860,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0868,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x086f,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x087c,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0889,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0897,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0898,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x089f,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x08a6,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x08aa,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x08ac,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0921,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0927,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0939,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x0946,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0949,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0953,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x095a,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0961,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 + packet(0x0202,clif->pFriendsListAdd,2); + packet(0x0360,clif->pDull/*,XXX*/); + packet(0x0364,clif->pSolveCharName,2); + packet(0x0802,clif->pTakeItem,2); + packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0838,clif->pUseSkillToId,2,4,6); + packet(0x085b,clif->pReqClickBuyingStore,2); + packet(0x085c,clif->pUseSkillToPos,2,4,6,8); + packet(0x085d,clif->pWalkToXY,2); + packet(0x085f,clif->pGetCharNameRequest,2); + packet(0x0860,clif->pHomMenu,2,4); + packet(0x0868,clif->pStoragePassword,0); + packet(0x086f,clif->pPartyInvite2,2); + packet(0x087c,clif->pMoveToKafra,2,4); + packet(0x0889,clif->pDull/*,XXX*/); + packet(0x0897,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0898,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x089f,clif->pDropItem,2,4); + packet(0x08a6,clif->pChangeDir,2,4); + packet(0x08aa,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x08ac,clif->pMoveFromKafra,2,4); + packet(0x0921,clif->pActionRequest,2,6); + packet(0x0927,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0939,clif->pItemListWindowSelected,2,4,8); + packet(0x0946,clif->pWantToConnection,2,6,10,14,18); + packet(0x0949,clif->pPartyBookingRegisterReq,2,4); + packet(0x0953,clif->pSearchStoreInfoNextPage,0); + packet(0x095a,clif->pReqCloseBuyingStore,0); + packet(0x0961,clif->pTickSend,2); #endif // 2014-02-26aRagexe #if PACKETVER == 20140226 - packet(0x035f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0360,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0361,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0362,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0364,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0437,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0438,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x0811,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0835,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x083c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0867,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0877,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0887,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x0894,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0895,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x091a,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0921,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0931,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0941,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0962,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0964,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x0969,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x096a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 + packet(0x035f,clif->pTickSend,2); + packet(0x0360,clif->pReqClickBuyingStore,2); + packet(0x0361,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0362,clif->pFriendsListAdd,2); + packet(0x0364,clif->pStoragePassword,0); + packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pActionRequest,2,6); + packet(0x0437,clif->pWalkToXY,2); + packet(0x0438,clif->pUseSkillToPos,2,4,6,8); + packet(0x0811,clif->pChangeDir,2,4); + packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0835,clif->pSearchStoreInfoNextPage,0); + packet(0x083c,clif->pUseSkillToId,2,4,6); + packet(0x0867,clif->pHomMenu,2,4); + packet(0x0877,clif->pWantToConnection,2,6,10,14,18); + packet(0x0887,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x0894,clif->pDropItem,2,4); + packet(0x0895,clif->pMoveFromKafra,2,4); + packet(0x091a,clif->pMoveToKafra,2,4); + packet(0x0921,clif->pPartyInvite2,2); + packet(0x0931,clif->pDull/*,XXX*/); + packet(0x0941,clif->pPartyBookingRegisterReq,2,4); + packet(0x0962,clif->pDull/*,XXX*/); + packet(0x0964,clif->pTakeItem,2); + packet(0x0969,clif->pItemListWindowSelected,2,4,8); + packet(0x096a,clif->pGetCharNameRequest,2); #endif // 2014-03-05aRagexe, 2014-03-05bRagexe #if PACKETVER == 20140305 - packet(0x0202,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x0281,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x035f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0360,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0361,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0362,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0363,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0364,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0365,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0436,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x0437,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0438,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x07e4,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x07ec,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0802,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0815,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0835,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x083c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0878,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0934,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x095e,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x096a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 + packet(0x0202,clif->pTakeItem,2); + packet(0x0281,clif->pItemListWindowSelected,2,4,8); + packet(0x035f,clif->pTickSend,2); + packet(0x0360,clif->pReqClickBuyingStore,2); + packet(0x0361,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0362,clif->pDropItem,2,4); + packet(0x0363,clif->pDull/*,XXX*/); + packet(0x0364,clif->pMoveFromKafra,2,4); + packet(0x0365,clif->pPartyBookingRegisterReq,2,4); + packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pActionRequest,2,6); + packet(0x0436,clif->pUseSkillToPos,2,4,6,8); + packet(0x0437,clif->pWalkToXY,2); + packet(0x0438,clif->pWantToConnection,2,6,10,14,18); + packet(0x07e4,clif->pFriendsListAdd,2); + packet(0x07ec,clif->pMoveToKafra,2,4); + packet(0x0802,clif->pPartyInvite2,2); + packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0815,clif->pChangeDir,2,4); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0835,clif->pSearchStoreInfoNextPage,0); + packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x083c,clif->pUseSkillToId,2,4,6); + packet(0x0878,clif->pDull/*,XXX*/); + packet(0x0934,clif->pHomMenu,2,4); + packet(0x095e,clif->pStoragePassword,0); + packet(0x096a,clif->pGetCharNameRequest,2); #endif // 2014-03-12dRagexe #if PACKETVER == 20140312 - packet(0x0202,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x023b,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0366,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x085e,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x086f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0889,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x088c,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x088d,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x088e,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0891,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0894,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x089b,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x089d,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x089e,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x08a6,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x08a9,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x08ad,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x091b,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x091c,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x091e,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x092a,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x0948,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x094a,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x094b,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x094c,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0957,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x095d,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x095e,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x0966,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 + packet(0x0202,clif->pUseSkillToId,2,4,6); + packet(0x023b,clif->pDull/*,XXX*/); + packet(0x0366,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x085e,clif->pReqClickBuyingStore,2); + packet(0x086f,clif->pTickSend,2); + packet(0x0889,clif->pWantToConnection,2,6,10,14,18); + packet(0x088c,clif->pUseSkillToPos,2,4,6,8); + packet(0x088d,clif->pItemListWindowSelected,2,4,8); + packet(0x088e,clif->pActionRequest,2,6); + packet(0x0891,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0894,clif->pWalkToXY,2); + packet(0x089b,clif->pGetCharNameRequest,2); + packet(0x089d,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x089e,clif->pDropItem,2,4); + packet(0x08a6,clif->pDull/*,XXX*/); + packet(0x08a9,clif->pFriendsListAdd,2); + packet(0x08ad,clif->pSolveCharName,2); + packet(0x091b,clif->pSearchStoreInfoNextPage,0); + packet(0x091c,clif->pPartyInvite2,2); + packet(0x091e,clif->pHomMenu,2,4); + packet(0x092a,clif->pTakeItem,2); + packet(0x0948,clif->pReqCloseBuyingStore,0); + packet(0x094a,clif->pPartyBookingRegisterReq,2,4); + packet(0x094b,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x094c,clif->pChangeDir,2,4); + packet(0x0957,clif->pMoveFromKafra,2,4); + packet(0x095d,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x095e,clif->pStoragePassword,0); + packet(0x0966,clif->pMoveToKafra,2,4); #endif // 2014-03-19aRagexe #if PACKETVER == 20140319 - packet(0x02c4,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x07e4,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0802,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0811,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0815,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x085a,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0864,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0865,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0866,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x086e,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0872,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x0883,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x088e,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0890,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0893,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x089f,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x08a2,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x091f,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x0923,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0933,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0942,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x0944,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0947,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x094c,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x0954,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0955,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0961,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0964,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x096a,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 + packet(0x02c4,clif->pTakeItem,2); + packet(0x07e4,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0802,clif->pSearchStoreInfoNextPage,0); + packet(0x0811,clif->pReqClickBuyingStore,2); + packet(0x0815,clif->pHomMenu,2,4); + packet(0x085a,clif->pWalkToXY,2); + packet(0x0864,clif->pActionRequest,2,6); + packet(0x0865,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0866,clif->pChangeDir,2,4); + packet(0x086e,clif->pDull/*,XXX*/); + packet(0x0872,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x0883,clif->pDropItem,2,4); + packet(0x088e,clif->pPartyInvite2,2); + packet(0x0890,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0893,clif->pDull/*,XXX*/); + packet(0x089f,clif->pUseSkillToPos,2,4,6,8); + packet(0x08a2,clif->pMoveToKafra,2,4); + packet(0x091f,clif->pItemListWindowSelected,2,4,8); + packet(0x0923,clif->pWantToConnection,2,6,10,14,18); + packet(0x0933,clif->pReqCloseBuyingStore,0); + packet(0x0942,clif->pStoragePassword,0); + packet(0x0944,clif->pUseSkillToId,2,4,6); + packet(0x0947,clif->pMoveFromKafra,2,4); + packet(0x094c,clif->pGetCharNameRequest,2); + packet(0x0954,clif->pFriendsListAdd,2); + packet(0x0955,clif->pTickSend,2); + packet(0x0961,clif->pPartyBookingRegisterReq,2,4); + packet(0x0964,clif->pSolveCharName,2); + packet(0x096a,clif->pReqOpenBuyingStore,2,4,8,9,89); #endif // 2014-03-26aRagexe #if PACKETVER == 20140326 - packet(0x0362,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x0365,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x07ec,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x083c,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x085b,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0865,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0867,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x0869,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x086b,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x087c,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x087e,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x087f,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x0887,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0898,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x08aa,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x08ac,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x08ad,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0918,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0928,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x092a,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x093d,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0942,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0945,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x0946,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0956,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0959,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x095a,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x095c,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0969,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 + packet(0x0362,clif->pGetCharNameRequest,2); + packet(0x0365,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x07ec,clif->pTakeItem,2); + packet(0x083c,clif->pReqClickBuyingStore,2); + packet(0x085b,clif->pReqCloseBuyingStore,0); + packet(0x0865,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0867,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x0869,clif->pPartyBookingRegisterReq,2,4); + packet(0x086b,clif->pMoveFromKafra,2,4); + packet(0x087c,clif->pWalkToXY,2); + packet(0x087e,clif->pFriendsListAdd,2); + packet(0x087f,clif->pUseSkillToPos,2,4,6,8); + packet(0x0887,clif->pDull/*,XXX*/); + packet(0x0898,clif->pDropItem,2,4); + packet(0x08aa,clif->pDull/*,XXX*/); + packet(0x08ac,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x08ad,clif->pWantToConnection,2,6,10,14,18); + packet(0x0918,clif->pTickSend,2); + packet(0x0928,clif->pSearchStoreInfoNextPage,0); + packet(0x092a,clif->pStoragePassword,0); + packet(0x093d,clif->pActionRequest,2,6); + packet(0x0942,clif->pHomMenu,2,4); + packet(0x0945,clif->pItemListWindowSelected,2,4,8); + packet(0x0946,clif->pPartyInvite2,2); + packet(0x0956,clif->pChangeDir,2,4); + packet(0x0959,clif->pMoveToKafra,2,4); + packet(0x095a,clif->pSolveCharName,2); + packet(0x095c,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0969,clif->pUseSkillToId,2,4,6); #endif // 2014-04-02fRagexe, 2014-04-02gRagexe #if PACKETVER == 20140402 - packet(0x023b,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0360,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0364,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x07ec,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x085b,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x085d,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0867,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0868,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0882,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0883,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x088a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x088c,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0890,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0896,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x089a,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x08ac,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x091f,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0920,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0926,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x092d,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0933,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x093f,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0944,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0946,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x094c,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0950,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0958,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x095c,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0965,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 + packet(0x023b,clif->pReqClickBuyingStore,2); + packet(0x0360,clif->pChangeDir,2,4); + packet(0x0364,clif->pUseSkillToPos,2,4,6,8); + packet(0x07ec,clif->pSolveCharName,2); + packet(0x085b,clif->pMoveFromKafra,2,4); + packet(0x085d,clif->pSearchStoreInfoNextPage,0); + packet(0x0867,clif->pReqCloseBuyingStore,0); + packet(0x0868,clif->pUseSkillToId,2,4,6); + packet(0x0882,clif->pDropItem,2,4); + packet(0x0883,clif->pItemListWindowSelected,2,4,8); + packet(0x088a,clif->pGetCharNameRequest,2); + packet(0x088c,clif->pDull/*,XXX*/); + packet(0x0890,clif->pPartyInvite2,2); + packet(0x0896,clif->pHomMenu,2,4); + packet(0x089a,clif->pFriendsListAdd,2); + packet(0x08ac,clif->pPartyBookingRegisterReq,2,4); + packet(0x091f,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0920,clif->pWantToConnection,2,6,10,14,18); + packet(0x0926,clif->pStoragePassword,0); + packet(0x092d,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0933,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x093f,clif->pWalkToXY,2); + packet(0x0944,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0946,clif->pActionRequest,2,6); + packet(0x094c,clif->pDull/*,XXX*/); + packet(0x0950,clif->pTickSend,2); + packet(0x0958,clif->pTakeItem,2); + packet(0x095c,clif->pMoveToKafra,2,4); + packet(0x0965,clif->pSearchStoreInfoListItemClick,2,6,10); #endif // 2014-04-09aRagexe, 2014-04-09bRagexe #if PACKETVER == 20140409 - packet(0x0819,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x085b,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0868,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x086a,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x086d,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0873,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0875,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x087e,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0883,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0884,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x088a,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0890,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x0893,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0896,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0897,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0899,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x08a2,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x08a4,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x08a6,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x08a7,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x08a9,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x0918,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x091c,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x092e,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0942,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0947,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x094c,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x095a,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x095e,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 + packet(0x0819,clif->pMoveFromKafra,2,4); + packet(0x085b,clif->pSolveCharName,2); + packet(0x0868,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x086a,clif->pItemListWindowSelected,2,4,8); + packet(0x086d,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0873,clif->pReqCloseBuyingStore,0); + packet(0x0875,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x087e,clif->pTickSend,2); + packet(0x0883,clif->pWalkToXY,2); + packet(0x0884,clif->pGetCharNameRequest,2); + packet(0x088a,clif->pDull/*,XXX*/); + packet(0x0890,clif->pTakeItem,2); + packet(0x0893,clif->pActionRequest,2,6); + packet(0x0896,clif->pUseSkillToId,2,4,6); + packet(0x0897,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0899,clif->pFriendsListAdd,2); + packet(0x08a2,clif->pDull/*,XXX*/); + packet(0x08a4,clif->pUseSkillToPos,2,4,6,8); + packet(0x08a6,clif->pSearchStoreInfoNextPage,0); + packet(0x08a7,clif->pChangeDir,2,4); + packet(0x08a9,clif->pStoragePassword,0); + packet(0x0918,clif->pDropItem,2,4); + packet(0x091c,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x092e,clif->pPartyInvite2,2); + packet(0x0942,clif->pMoveToKafra,2,4); + packet(0x0947,clif->pHomMenu,2,4); + packet(0x094c,clif->pPartyBookingRegisterReq,2,4); + packet(0x095a,clif->pReqClickBuyingStore,2); + packet(0x095e,clif->pWantToConnection,2,6,10,14,18); #endif // 2014-04-16aRagexe, 2014-04-16bRagexe #if PACKETVER == 20140416 - packet(0x0202,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x022d,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x023b,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0281,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x035f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0360,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0361,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0362,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0363,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0364,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0365,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0436,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0437,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0438,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x07e4,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x07ec,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0802,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0835,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x083c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x095c,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x096a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 + packet(0x0202,clif->pChangeDir,2,4); + packet(0x022d,clif->pWantToConnection,2,6,10,14,18); + packet(0x023b,clif->pFriendsListAdd,2); + packet(0x0281,clif->pItemListWindowSelected,2,4,8); + packet(0x035f,clif->pTickSend,2); + packet(0x0360,clif->pReqClickBuyingStore,2); + packet(0x0361,clif->pHomMenu,2,4); + packet(0x0362,clif->pDropItem,2,4); + packet(0x0363,clif->pDull/*,XXX*/); + packet(0x0364,clif->pMoveFromKafra,2,4); + packet(0x0365,clif->pPartyBookingRegisterReq,2,4); + packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pActionRequest,2,6); + packet(0x0436,clif->pDull/*,XXX*/); + packet(0x0437,clif->pWalkToXY,2); + packet(0x0438,clif->pUseSkillToPos,2,4,6,8); + packet(0x07e4,clif->pTakeItem,2); + packet(0x07ec,clif->pMoveToKafra,2,4); + packet(0x0802,clif->pPartyInvite2,2); + packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0835,clif->pSearchStoreInfoNextPage,0); + packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x083c,clif->pUseSkillToId,2,4,6); + packet(0x095c,clif->pStoragePassword,0); + packet(0x096a,clif->pGetCharNameRequest,2); #endif // 2014-04-23aRagexe #if PACKETVER == 20140423 - packet(0x022d,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0360,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x0436,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x07e4,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x0811,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x083c,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x085a,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x085b,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0862,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0863,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0866,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x086b,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x086f,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0873,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x088b,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0890,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0895,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0896,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0897,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0898,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x089b,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x089d,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x089f,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x08a8,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x08ad,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x091a,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0920,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x094f,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x095e,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 + packet(0x022d,clif->pPartyBookingRegisterReq,2,4); + packet(0x0360,clif->pStoragePassword,0); + packet(0x0436,clif->pFriendsListAdd,2); + packet(0x07e4,clif->pTakeItem,2); + packet(0x0811,clif->pMoveFromKafra,2,4); + packet(0x083c,clif->pChangeDir,2,4); + packet(0x085a,clif->pSearchStoreInfoNextPage,0); + packet(0x085b,clif->pWalkToXY,2); + packet(0x0862,clif->pMoveToKafra,2,4); + packet(0x0863,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0866,clif->pWantToConnection,2,6,10,14,18); + packet(0x086b,clif->pDropItem,2,4); + packet(0x086f,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0873,clif->pItemListWindowSelected,2,4,8); + packet(0x088b,clif->pSolveCharName,2); + packet(0x0890,clif->pUseSkillToId,2,4,6); + packet(0x0895,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0896,clif->pActionRequest,2,6); + packet(0x0897,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0898,clif->pUseSkillToPos,2,4,6,8); + packet(0x089b,clif->pReqClickBuyingStore,2); + packet(0x089d,clif->pGetCharNameRequest,2); + packet(0x089f,clif->pReqCloseBuyingStore,0); + packet(0x08a8,clif->pHomMenu,2,4); + packet(0x08ad,clif->pDull/*,XXX*/); + packet(0x091a,clif->pTickSend,2); + packet(0x0920,clif->pPartyInvite2,2); + packet(0x094f,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x095e,clif->pDull/*,XXX*/); #endif // 2014-04-30aRagexe #if PACKETVER == 20140430 - packet(0x023b,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x035f,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x0360,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0363,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0369,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0437,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0438,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0835,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x083c,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0860,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0870,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0871,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0875,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x087f,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x0884,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0899,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x08a1,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x093b,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x0940,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x094b,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0953,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0956,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x096a,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 + packet(0x023b,clif->pTickSend,2); + packet(0x035f,clif->pStoragePassword,0); + packet(0x0360,clif->pReqClickBuyingStore,2); + packet(0x0363,clif->pUseSkillToId,2,4,6); + packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0369,clif->pActionRequest,2,6); + packet(0x0437,clif->pWalkToXY,2); + packet(0x0438,clif->pUseSkillToPos,2,4,6,8); + packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0835,clif->pSearchStoreInfoNextPage,0); + packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x083c,clif->pDropItem,2,4); + packet(0x0860,clif->pFriendsListAdd,2); + packet(0x0870,clif->pPartyInvite2,2); + packet(0x0871,clif->pHomMenu,2,4); + packet(0x0875,clif->pMoveFromKafra,2,4); + packet(0x087f,clif->pTakeItem,2); + packet(0x0884,clif->pPartyBookingRegisterReq,2,4); + packet(0x0899,clif->pChangeDir,2,4); + packet(0x08a1,clif->pDull/*,XXX*/); + packet(0x093b,clif->pItemListWindowSelected,2,4,8); + packet(0x0940,clif->pGetCharNameRequest,2); + packet(0x094b,clif->pWantToConnection,2,6,10,14,18); + packet(0x0953,clif->pDull/*,XXX*/); + packet(0x0956,clif->pMoveToKafra,2,4); + packet(0x096a,clif->pSolveCharName,2); #endif // 2014-05-08bRagexe #if PACKETVER == 20140508 - packet(0x022d,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x02c4,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x035f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0360,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0361,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0366,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0368,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x0369,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0437,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0438,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x07e4,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0802,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0835,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x083c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0861,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x0886,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x089b,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x08ab,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0927,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x0930,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0932,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0934,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x094e,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x096a,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 + packet(0x022d,clif->pSolveCharName,2); + packet(0x02c4,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x035f,clif->pTickSend,2); + packet(0x0360,clif->pReqClickBuyingStore,2); + packet(0x0361,clif->pChangeDir,2,4); + packet(0x0366,clif->pPartyInvite2,2); + packet(0x0368,clif->pItemListWindowSelected,2,4,8); + packet(0x0369,clif->pActionRequest,2,6); + packet(0x0437,clif->pWalkToXY,2); + packet(0x0438,clif->pUseSkillToPos,2,4,6,8); + packet(0x07e4,clif->pHomMenu,2,4); + packet(0x0802,clif->pGetCharNameRequest,2); + packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0835,clif->pSearchStoreInfoNextPage,0); + packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x083c,clif->pUseSkillToId,2,4,6); + packet(0x0861,clif->pTakeItem,2); + packet(0x0886,clif->pMoveToKafra,2,4); + packet(0x089b,clif->pWantToConnection,2,6,10,14,18); + packet(0x08ab,clif->pDull/*,XXX*/); + packet(0x0927,clif->pStoragePassword,0); + packet(0x0930,clif->pMoveFromKafra,2,4); + packet(0x0932,clif->pDropItem,2,4); + packet(0x0934,clif->pDull/*,XXX*/); + packet(0x094e,clif->pFriendsListAdd,2); + packet(0x096a,clif->pPartyBookingRegisterReq,2,4); #endif // 2014-05-14bRagexe #if PACKETVER == 20140514 - packet(0x0437,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x0817,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0865,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0867,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0868,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0876,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0877,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x087d,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x0885,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x0886,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x088a,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x088b,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0895,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x089a,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x089c,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x08a5,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x0918,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x091d,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0921,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0925,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x092c,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x092f,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x094d,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x094e,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0958,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x095f,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0962,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0965,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x096a,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 + packet(0x0437,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x0817,clif->pDull/*,XXX*/); + packet(0x0865,clif->pActionRequest,2,6); + packet(0x0867,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0868,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0876,clif->pUseSkillToId,2,4,6); + packet(0x0877,clif->pDull/*,XXX*/); + packet(0x087d,clif->pItemListWindowSelected,2,4,8); + packet(0x0885,clif->pStoragePassword,0); + packet(0x0886,clif->pTickSend,2); + packet(0x088a,clif->pChangeDir,2,4); + packet(0x088b,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0895,clif->pTakeItem,2); + packet(0x089a,clif->pSolveCharName,2); + packet(0x089c,clif->pFriendsListAdd,2); + packet(0x08a5,clif->pGetCharNameRequest,2); + packet(0x0918,clif->pPartyBookingRegisterReq,2,4); + packet(0x091d,clif->pWantToConnection,2,6,10,14,18); + packet(0x0921,clif->pSearchStoreInfoNextPage,0); + packet(0x0925,clif->pReqClickBuyingStore,2); + packet(0x092c,clif->pMoveToKafra,2,4); + packet(0x092f,clif->pUseSkillToPos,2,4,6,8); + packet(0x094d,clif->pReqCloseBuyingStore,0); + packet(0x094e,clif->pMoveFromKafra,2,4); + packet(0x0958,clif->pHomMenu,2,4); + packet(0x095f,clif->pWalkToXY,2); + packet(0x0962,clif->pPartyInvite2,2); + packet(0x0965,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x096a,clif->pDropItem,2,4); #endif // 2014-05-21bRagexe #if PACKETVER == 20140521 - packet(0x0281,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x035f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0360,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0362,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0363,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0364,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0365,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0437,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0438,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x07e4,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x07ec,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0802,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0835,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x083c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0869,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x088b,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x088d,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x089c,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x08ac,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0968,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x096a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 + packet(0x0281,clif->pItemListWindowSelected,2,4,8); + packet(0x035f,clif->pTickSend,2); + packet(0x0360,clif->pReqClickBuyingStore,2); + packet(0x0362,clif->pDropItem,2,4); + packet(0x0363,clif->pDull/*,XXX*/); + packet(0x0364,clif->pMoveFromKafra,2,4); + packet(0x0365,clif->pPartyBookingRegisterReq,2,4); + packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pActionRequest,2,6); + packet(0x0437,clif->pWalkToXY,2); + packet(0x0438,clif->pUseSkillToPos,2,4,6,8); + packet(0x07e4,clif->pTakeItem,2); + packet(0x07ec,clif->pMoveToKafra,2,4); + packet(0x0802,clif->pPartyInvite2,2); + packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0835,clif->pSearchStoreInfoNextPage,0); + packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x083c,clif->pUseSkillToId,2,4,6); + packet(0x0869,clif->pStoragePassword,0); + packet(0x088b,clif->pDull/*,XXX*/); + packet(0x088d,clif->pChangeDir,2,4); + packet(0x089c,clif->pFriendsListAdd,2); + packet(0x08ac,clif->pWantToConnection,2,6,10,14,18); + packet(0x0968,clif->pHomMenu,2,4); + packet(0x096a,clif->pGetCharNameRequest,2); #endif // 2014-05-28aRagexe #if PACKETVER == 20140528 - packet(0x0202,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0360,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x085f,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0862,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0872,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0875,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0877,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0879,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x087e,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x088a,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x088f,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0894,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0896,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x089d,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x08a4,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x08a8,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x08ab,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x091d,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0929,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0930,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0938,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x093a,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x093f,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x094a,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x094b,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x095f,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x0963,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0964,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0966,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 + packet(0x0202,clif->pWalkToXY,2); + packet(0x0360,clif->pStoragePassword,0); + packet(0x085f,clif->pPartyBookingRegisterReq,2,4); + packet(0x0862,clif->pSolveCharName,2); + packet(0x0872,clif->pHomMenu,2,4); + packet(0x0875,clif->pDropItem,2,4); + packet(0x0877,clif->pTickSend,2); + packet(0x0879,clif->pMoveFromKafra,2,4); + packet(0x087e,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x088a,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x088f,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0894,clif->pDull/*,XXX*/); + packet(0x0896,clif->pItemListWindowSelected,2,4,8); + packet(0x089d,clif->pTakeItem,2); + packet(0x08a4,clif->pUseSkillToPos,2,4,6,8); + packet(0x08a8,clif->pSearchStoreInfoNextPage,0); + packet(0x08ab,clif->pDull/*,XXX*/); + packet(0x091d,clif->pFriendsListAdd,2); + packet(0x0929,clif->pActionRequest,2,6); + packet(0x0930,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0938,clif->pReqCloseBuyingStore,0); + packet(0x093a,clif->pMoveToKafra,2,4); + packet(0x093f,clif->pPartyInvite2,2); + packet(0x094a,clif->pReqClickBuyingStore,2); + packet(0x094b,clif->pChangeDir,2,4); + packet(0x095f,clif->pGetCharNameRequest,2); + packet(0x0963,clif->pUseSkillToId,2,4,6); + packet(0x0964,clif->pWantToConnection,2,6,10,14,18); + packet(0x0966,clif->pReqTradeBuyingStore,2,4,8,12); #endif // 2014-06-05aRagexe, 2014-06-05bRagexe #if PACKETVER == 20140605 - packet(0x0281,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x035f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0360,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0361,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0362,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0363,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0364,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0365,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0368,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0369,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0436,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0437,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0438,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x07e4,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x07ec,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0802,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0817,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0835,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x083c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0921,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x0931,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0940,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x094c,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x096a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 + packet(0x0281,clif->pItemListWindowSelected,2,4,8); + packet(0x035f,clif->pTickSend,2); + packet(0x0360,clif->pReqClickBuyingStore,2); + packet(0x0361,clif->pReqCloseBuyingStore,0); + packet(0x0362,clif->pDropItem,2,4); + packet(0x0363,clif->pDull/*,XXX*/); + packet(0x0364,clif->pMoveFromKafra,2,4); + packet(0x0365,clif->pPartyBookingRegisterReq,2,4); + packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0368,clif->pActionRequest,2,6); + packet(0x0369,clif->pWantToConnection,2,6,10,14,18); + packet(0x0436,clif->pDull/*,XXX*/); + packet(0x0437,clif->pWalkToXY,2); + packet(0x0438,clif->pUseSkillToPos,2,4,6,8); + packet(0x07e4,clif->pTakeItem,2); + packet(0x07ec,clif->pMoveToKafra,2,4); + packet(0x0802,clif->pPartyInvite2,2); + packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0817,clif->pChangeDir,2,4); + packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0835,clif->pSearchStoreInfoNextPage,0); + packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x083c,clif->pUseSkillToId,2,4,6); + packet(0x0921,clif->pStoragePassword,0); + packet(0x0931,clif->pHomMenu,2,4); + packet(0x0940,clif->pSolveCharName,2); + packet(0x094c,clif->pFriendsListAdd,2); + packet(0x096a,clif->pGetCharNameRequest,2); #endif // 2014-06-11cRagexe, 2014-06-11dRagexe, 2014-06-11hRagexe, 2014-06-12aRagexe, 2014-06-13aRagexe #if PACKETVER == 20140611 || \ PACKETVER == 20140612 || \ PACKETVER == 20140613 - packet(0x0364,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0438,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x07e4,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0838,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0864,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0867,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x086c,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0874,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0878,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x088c,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x0891,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0893,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0894,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x089b,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x08a1,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x08a2,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0924,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x0936,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x0941,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x094a,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x094f,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0950,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0951,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0952,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0957,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0958,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0963,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0965,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0969,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 -#endif - -// 2014-06-11eRagexe, 2015-02-25hRagexe, 2018-03-15aRagexe, 2018-03-21aRagexe, 2018-03-28bRagexe, 2018-04-04bRagexe, 2018-04-18aRagexe, 2018-04-25cRagexe, 2018-05-02bRagexe, 2018-05-09aRagexe, 2018-05-16cRagexe, 2018-05-23aRagexe, 2018-05-30aRagexe, 2018-06-05bRagexe, 2018-06-20cRagexe, 2018-06-20eRagexe, 2018-06-21aRagexe, 2018-07-04aRagexe, 2018-07-18bRagexe, 2018-07-18cRagexe, 2018-08-01cRagexe, 2018-08-08bRagexe, 2018-08-22cRagexe, 2018-08-29aRagexe, 2018-08-31aRagexe, 2018-09-12dRagexe, 2018-09-19aRagexe, 2018-10-02aRagexe, 2018-10-02bRagexe, 2018-10-17_02aRagexe, 2018-10-17_03aRagexe, 2018-10-17bRagexe, 2018-10-24bRagexe, 2018-10-31aRagexe, 2018-10-31bRagexe, 2018-11-07aRagexe, 2018-11-14cRagexe, 2018-11-14dRagexe + packet(0x0364,clif->pReqCloseBuyingStore,0); + packet(0x0438,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x07e4,clif->pMoveToKafra,2,4); + packet(0x0838,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0864,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0867,clif->pTickSend,2); + packet(0x086c,clif->pDull/*,XXX*/); + packet(0x0874,clif->pPartyInvite2,2); + packet(0x0878,clif->pTakeItem,2); + packet(0x088c,clif->pUseSkillToPos,2,4,6,8); + packet(0x0891,clif->pActionRequest,2,6); + packet(0x0893,clif->pWalkToXY,2); + packet(0x0894,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x089b,clif->pFriendsListAdd,2); + packet(0x08a1,clif->pUseSkillToId,2,4,6); + packet(0x08a2,clif->pDull/*,XXX*/); + packet(0x0924,clif->pGetCharNameRequest,2); + packet(0x0936,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x0941,clif->pStoragePassword,0); + packet(0x094a,clif->pItemListWindowSelected,2,4,8); + packet(0x094f,clif->pSolveCharName,2); + packet(0x0950,clif->pPartyBookingRegisterReq,2,4); + packet(0x0951,clif->pChangeDir,2,4); + packet(0x0952,clif->pMoveFromKafra,2,4); + packet(0x0957,clif->pReqClickBuyingStore,2); + packet(0x0958,clif->pWantToConnection,2,6,10,14,18); + packet(0x0963,clif->pDropItem,2,4); + packet(0x0965,clif->pHomMenu,2,4); + packet(0x0969,clif->pSearchStoreInfoNextPage,0); +#endif + +// 2014-06-11eRagexe, 2015-02-25hRagexe, 2018-03-15aRagexe, 2018-03-21aRagexe, 2018-03-28bRagexe, 2018-04-04bRagexe, 2018-04-18aRagexe, 2018-04-25cRagexe, 2018-05-02bRagexe, 2018-05-09aRagexe, 2018-05-16cRagexe, 2018-05-23aRagexe, 2018-05-30aRagexe, 2018-06-05bRagexe, 2018-06-20cRagexe, 2018-06-20eRagexe, 2018-06-21aRagexe, 2018-07-04aRagexe, 2018-07-18bRagexe, 2018-07-18cRagexe, 2018-08-01cRagexe, 2018-08-08bRagexe, 2018-08-22cRagexe, 2018-08-29aRagexe, 2018-08-31aRagexe, 2018-09-12dRagexe, 2018-09-19aRagexe, 2018-10-02aRagexe, 2018-10-02bRagexe, 2018-10-17_02aRagexe, 2018-10-17_03aRagexe, 2018-10-17bRagexe, 2018-10-24bRagexe, 2018-10-31aRagexe, 2018-10-31bRagexe, 2018-11-07aRagexe, 2018-11-14cRagexe, 2018-11-14dRagexe, 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, 2019-09-04aRagexe, 2019-09-04bRagexe, 2019-09-18bRagexe, 2019-09-25aRagexe, 2019-09-25bRagexe, 2019-10-02cRagexe, 2019-10-02dRagexe, 2019-10-16fRagexe, 2019-10-16gRagexe, 2019-10-18aRagexe, 2019-10-23aRagexe, 2019-10-30cRagexe, 2019-11-06aRagexe, 2019-11-07aRagexe, 2019-11-13cRagexe, 2019-11-13eRagexe, 2019-11-20aRagexe, 2019-11-20dRagexe, 2019-11-27aRagexe, 2019-11-27bRagexe, 2019-12-04aRagexe, 2019-12-04bRagexe, 2019-12-11aRagexe, 2019-12-18bRagexe, 2019-12-24aRagexe, 2019-12-24bRagexe, 2020-01-08aRagexe, 2020-01-22cRagexe, 2020-01-29bRagexe, 2020-01-30aRagexe, 2020-02-05aRagexe, 2020-02-06aRagexe, 2020-02-12aRagexe, 2020-02-19dRagexe, 2020-03-04aRagexe, 2020-03-18bRagexe, 2020-04-01bRagexe, 2020-04-14_6aRagexe, 2020-04-14eRagexe, 2020-05-06aRagexe, 2020-05-20bRagexe #if PACKETVER == 20140611 || \ PACKETVER == 20150225 || \ PACKETVER == 20180315 || \ @@ -3376,6480 +3376,6421 @@ PACKETVER == 20181024 || \ PACKETVER == 20181031 || \ PACKETVER == 20181107 || \ - PACKETVER == 20181114 - 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 // 90 - 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 // 12 + PACKETVER == 20181114 || \ + PACKETVER == 20181121 || \ + PACKETVER == 20181128 || \ + PACKETVER == 20181205 || \ + PACKETVER == 20181212 || \ + PACKETVER == 20181219 || \ + PACKETVER == 20181226 || \ + PACKETVER == 20190109 || \ + PACKETVER == 20190116 || \ + PACKETVER == 20190123 || \ + PACKETVER == 20190213 || \ + PACKETVER == 20190227 || \ + PACKETVER == 20190228 || \ + PACKETVER == 20190306 || \ + PACKETVER == 20190313 || \ + PACKETVER == 20190320 || \ + PACKETVER == 20190322 || \ + PACKETVER == 20190327 || \ + PACKETVER == 20190403 || \ + PACKETVER == 20190417 || \ + PACKETVER == 20190418 || \ + PACKETVER == 20190508 || \ + PACKETVER == 20190522 || \ + PACKETVER == 20190523 || \ + PACKETVER == 20190529 || \ + PACKETVER == 20190530 || \ + PACKETVER == 20190605 || \ + PACKETVER == 20190619 || \ + PACKETVER == 20190703 || \ + PACKETVER == 20190717 || \ + PACKETVER == 20190724 || \ + PACKETVER == 20190731 || \ + PACKETVER == 20190802 || \ + PACKETVER == 20190807 || \ + PACKETVER == 20190821 || \ + PACKETVER == 20190828 || \ + PACKETVER == 20190904 || \ + PACKETVER == 20190918 || \ + PACKETVER == 20190925 || \ + PACKETVER == 20191002 || \ + PACKETVER == 20191016 || \ + PACKETVER == 20191018 || \ + PACKETVER == 20191023 || \ + PACKETVER == 20191030 || \ + PACKETVER == 20191106 || \ + PACKETVER == 20191107 || \ + PACKETVER == 20191113 || \ + PACKETVER == 20191120 || \ + PACKETVER == 20191127 || \ + PACKETVER == 20191204 || \ + PACKETVER == 20191211 || \ + PACKETVER == 20191218 || \ + PACKETVER == 20191224 || \ + PACKETVER == 20200108 || \ + PACKETVER == 20200122 || \ + PACKETVER == 20200129 || \ + PACKETVER == 20200130 || \ + PACKETVER == 20200205 || \ + PACKETVER == 20200206 || \ + PACKETVER == 20200212 || \ + PACKETVER == 20200219 || \ + PACKETVER == 20200304 || \ + PACKETVER == 20200318 || \ + PACKETVER == 20200401 || \ + PACKETVER == 20200414 || \ + PACKETVER == 20200506 || \ + PACKETVER >= 20200520 + packet(0x0202,clif->pFriendsListAdd,2); + packet(0x022d,clif->pHomMenu,2,4); + packet(0x023b,clif->pStoragePassword,0); + packet(0x0281,clif->pDull/*,XXX*/); + packet(0x02c4,clif->pPartyInvite2,2); + packet(0x035f,clif->pWalkToXY,2); + packet(0x0360,clif->pTickSend,2); + packet(0x0361,clif->pChangeDir,2,4); + packet(0x0362,clif->pTakeItem,2); + packet(0x0363,clif->pDropItem,2,4); + packet(0x0364,clif->pMoveToKafra,2,4); + packet(0x0365,clif->pMoveFromKafra,2,4); + packet(0x0366,clif->pUseSkillToPos,2,4,6,8); + packet(0x0367,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0368,clif->pGetCharNameRequest,2); + packet(0x0369,clif->pSolveCharName,2); + packet(0x0436,clif->pWantToConnection,2,6,10,14,18); + packet(0x0437,clif->pActionRequest,2,6); + packet(0x0438,clif->pUseSkillToId,2,4,6); + packet(0x07e4,clif->pItemListWindowSelected,2,4,8); + packet(0x07ec,clif->pDull/*,XXX*/); + packet(0x0802,clif->pPartyBookingRegisterReq,2,4); + packet(0x0811,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0815,clif->pReqCloseBuyingStore,0); + packet(0x0817,clif->pReqClickBuyingStore,2); + packet(0x0819,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0835,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0838,clif->pSearchStoreInfoNextPage,0); + packet(0x083c,clif->pSearchStoreInfoListItemClick,2,6,10); #endif // 2014-06-18aRagexe #if PACKETVER == 20140618 - packet(0x085d,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x085f,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0860,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0861,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x086c,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0878,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x087d,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0884,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0885,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0886,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0890,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0892,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x08a6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x08a7,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x08ac,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0917,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x091f,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x0929,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x0935,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x0938,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0939,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x093b,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0945,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0954,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0957,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x095d,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x095e,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0962,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0967,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 + packet(0x085d,clif->pMoveToKafra,2,4); + packet(0x085f,clif->pSearchStoreInfoNextPage,0); + packet(0x0860,clif->pTickSend,2); + packet(0x0861,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x086c,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0878,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x087d,clif->pSolveCharName,2); + packet(0x0884,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0885,clif->pMoveFromKafra,2,4); + packet(0x0886,clif->pPartyBookingRegisterReq,2,4); + packet(0x0890,clif->pChangeDir,2,4); + packet(0x0892,clif->pUseSkillToId,2,4,6); + packet(0x08a6,clif->pReqClickBuyingStore,2); + packet(0x08a7,clif->pWalkToXY,2); + packet(0x08ac,clif->pDull/*,XXX*/); + packet(0x0917,clif->pUseSkillToPos,2,4,6,8); + packet(0x091f,clif->pItemListWindowSelected,2,4,8); + packet(0x0929,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x0935,clif->pTakeItem,2); + packet(0x0938,clif->pPartyInvite2,2); + packet(0x0939,clif->pReqCloseBuyingStore,0); + packet(0x093b,clif->pActionRequest,2,6); + packet(0x0945,clif->pDropItem,2,4); + packet(0x0954,clif->pFriendsListAdd,2); + packet(0x0957,clif->pStoragePassword,0); + packet(0x095d,clif->pGetCharNameRequest,2); + packet(0x095e,clif->pWantToConnection,2,6,10,14,18); + packet(0x0962,clif->pDull/*,XXX*/); + packet(0x0967,clif->pHomMenu,2,4); #endif // 2014-06-25aRagexe, 2014-06-25bRagexe #if PACKETVER == 20140625 - packet(0x0202,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x023b,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0815,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0817,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0835,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x085a,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0861,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x086b,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0875,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x087b,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x0885,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0886,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0888,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x088a,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x088e,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0897,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x08a1,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x08a2,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x091a,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x0923,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0928,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0940,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0946,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x094e,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0959,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0960,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x0968,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0969,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x096a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 + packet(0x0202,clif->pMoveToKafra,2,4); + packet(0x023b,clif->pMoveFromKafra,2,4); + packet(0x0815,clif->pDull/*,XXX*/); + packet(0x0817,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0835,clif->pWalkToXY,2); + packet(0x085a,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0861,clif->pUseSkillToId,2,4,6); + packet(0x086b,clif->pPartyInvite2,2); + packet(0x0875,clif->pSolveCharName,2); + packet(0x087b,clif->pUseSkillToPos,2,4,6,8); + packet(0x0885,clif->pDropItem,2,4); + packet(0x0886,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0888,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x088a,clif->pItemListWindowSelected,2,4,8); + packet(0x088e,clif->pWantToConnection,2,6,10,14,18); + packet(0x0897,clif->pPartyBookingRegisterReq,2,4); + packet(0x08a1,clif->pTickSend,2); + packet(0x08a2,clif->pChangeDir,2,4); + packet(0x091a,clif->pTakeItem,2); + packet(0x0923,clif->pSearchStoreInfoNextPage,0); + packet(0x0928,clif->pReqCloseBuyingStore,0); + packet(0x0940,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0946,clif->pHomMenu,2,4); + packet(0x094e,clif->pDull/*,XXX*/); + packet(0x0959,clif->pActionRequest,2,6); + packet(0x0960,clif->pStoragePassword,0); + packet(0x0968,clif->pReqClickBuyingStore,2); + packet(0x0969,clif->pFriendsListAdd,2); + packet(0x096a,clif->pGetCharNameRequest,2); #endif // 2014-07-02aRagexe #if PACKETVER == 20140702 - packet(0x022d,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x023b,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x035f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0360,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0364,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0437,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0438,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x07e4,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0815,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0819,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0835,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x083c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x085a,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x086c,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0887,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0892,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0895,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x08a0,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x08a2,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x0925,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x092c,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0933,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0940,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x096a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 + packet(0x022d,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x023b,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x035f,clif->pTickSend,2); + packet(0x0360,clif->pReqClickBuyingStore,2); + packet(0x0364,clif->pItemListWindowSelected,2,4,8); + packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pActionRequest,2,6); + packet(0x0437,clif->pFriendsListAdd,2); + packet(0x0438,clif->pMoveToKafra,2,4); + packet(0x07e4,clif->pUseSkillToPos,2,4,6,8); + packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0815,clif->pStoragePassword,0); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x0819,clif->pHomMenu,2,4); + packet(0x0835,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x083c,clif->pUseSkillToId,2,4,6); + packet(0x085a,clif->pDropItem,2,4); + packet(0x086c,clif->pPartyBookingRegisterReq,2,4); + packet(0x0887,clif->pWalkToXY,2); + packet(0x0892,clif->pMoveFromKafra,2,4); + packet(0x0895,clif->pDull/*,XXX*/); + packet(0x08a0,clif->pPartyInvite2,2); + packet(0x08a2,clif->pTakeItem,2); + packet(0x0925,clif->pChangeDir,2,4); + packet(0x092c,clif->pWantToConnection,2,6,10,14,18); + packet(0x0933,clif->pDull/*,XXX*/); + packet(0x0940,clif->pSearchStoreInfoNextPage,0); + packet(0x096a,clif->pGetCharNameRequest,2); #endif // 2014-07-09aRagexe #if PACKETVER == 20140709 - packet(0x0364,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0437,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0860,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x0866,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0869,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0875,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x0877,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0879,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x087a,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0887,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0888,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x088b,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0894,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0897,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0898,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x08ad,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x091a,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0925,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x092f,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x0931,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0934,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0939,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x093f,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x0940,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x094d,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x094e,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x094f,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x095f,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0961,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 + packet(0x0364,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0437,clif->pActionRequest,2,6); + packet(0x0860,clif->pStoragePassword,0); + packet(0x0866,clif->pDull/*,XXX*/); + packet(0x0869,clif->pChangeDir,2,4); + packet(0x0875,clif->pItemListWindowSelected,2,4,8); + packet(0x0877,clif->pUseSkillToId,2,4,6); + packet(0x0879,clif->pGetCharNameRequest,2); + packet(0x087a,clif->pSearchStoreInfoNextPage,0); + packet(0x0887,clif->pMoveToKafra,2,4); + packet(0x0888,clif->pDull/*,XXX*/); + packet(0x088b,clif->pPartyInvite2,2); + packet(0x0894,clif->pReqCloseBuyingStore,0); + packet(0x0897,clif->pReqClickBuyingStore,2); + packet(0x0898,clif->pWantToConnection,2,6,10,14,18); + packet(0x08ad,clif->pDropItem,2,4); + packet(0x091a,clif->pWalkToXY,2); + packet(0x0925,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x092f,clif->pUseSkillToPos,2,4,6,8); + packet(0x0931,clif->pSolveCharName,2); + packet(0x0934,clif->pTickSend,2); + packet(0x0939,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x093f,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x0940,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x094d,clif->pHomMenu,2,4); + packet(0x094e,clif->pMoveFromKafra,2,4); + packet(0x094f,clif->pFriendsListAdd,2); + packet(0x095f,clif->pPartyBookingRegisterReq,2,4); + packet(0x0961,clif->pTakeItem,2); #endif // 2014-07-16aRagexe, 2014-07-16bRagexe, 2014-07-16cRagexe #if PACKETVER == 20140716 - packet(0x0362,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x07e4,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x0811,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x085c,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x085f,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0868,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0871,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0881,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x088b,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x088d,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x088f,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x0896,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x089a,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x089f,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x08a2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x08a4,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x08ac,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0918,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x091f,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0926,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x092c,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x092f,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x0938,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x093b,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0947,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0952,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0958,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x0959,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0969,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 + packet(0x0362,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x07e4,clif->pStoragePassword,0); + packet(0x0811,clif->pActionRequest,2,6); + packet(0x085c,clif->pGetCharNameRequest,2); + packet(0x085f,clif->pWantToConnection,2,6,10,14,18); + packet(0x0868,clif->pPartyInvite2,2); + packet(0x0871,clif->pMoveToKafra,2,4); + packet(0x0881,clif->pUseSkillToId,2,4,6); + packet(0x088b,clif->pSearchStoreInfoNextPage,0); + packet(0x088d,clif->pDull/*,XXX*/); + packet(0x088f,clif->pUseSkillToPos,2,4,6,8); + packet(0x0896,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x089a,clif->pSolveCharName,2); + packet(0x089f,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x08a2,clif->pReqCloseBuyingStore,0); + packet(0x08a4,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x08ac,clif->pHomMenu,2,4); + packet(0x0918,clif->pWalkToXY,2); + packet(0x091f,clif->pPartyBookingRegisterReq,2,4); + packet(0x0926,clif->pDropItem,2,4); + packet(0x092c,clif->pFriendsListAdd,2); + packet(0x092f,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x0938,clif->pMoveFromKafra,2,4); + packet(0x093b,clif->pReqClickBuyingStore,2); + packet(0x0947,clif->pDull/*,XXX*/); + packet(0x0952,clif->pChangeDir,2,4); + packet(0x0958,clif->pTakeItem,2); + packet(0x0959,clif->pTickSend,2); + packet(0x0969,clif->pItemListWindowSelected,2,4,8); #endif // 2014-07-23aRagexe, 2014-07-23bRagexe #if PACKETVER == 20140723 - packet(0x02c4,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0364,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x0368,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x0436,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x0819,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0838,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x085a,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x085f,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0869,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x086d,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x087d,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0888,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0891,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0896,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0898,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x089e,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x08a2,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x08ad,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0927,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x092f,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0934,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0935,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0939,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x093d,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x0945,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x0947,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0948,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x095f,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0960,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 + packet(0x02c4,clif->pTickSend,2); + packet(0x0364,clif->pStoragePassword,0); + packet(0x0368,clif->pGetCharNameRequest,2); + packet(0x0436,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x0819,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0838,clif->pUseSkillToId,2,4,6); + packet(0x085a,clif->pSearchStoreInfoNextPage,0); + packet(0x085f,clif->pWalkToXY,2); + packet(0x0869,clif->pMoveToKafra,2,4); + packet(0x086d,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x087d,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0888,clif->pReqClickBuyingStore,2); + packet(0x0891,clif->pReqCloseBuyingStore,0); + packet(0x0896,clif->pDropItem,2,4); + packet(0x0898,clif->pDull/*,XXX*/); + packet(0x089e,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x08a2,clif->pMoveFromKafra,2,4); + packet(0x08ad,clif->pPartyBookingRegisterReq,2,4); + packet(0x0927,clif->pSolveCharName,2); + packet(0x092f,clif->pWantToConnection,2,6,10,14,18); + packet(0x0934,clif->pFriendsListAdd,2); + packet(0x0935,clif->pPartyInvite2,2); + packet(0x0939,clif->pItemListWindowSelected,2,4,8); + packet(0x093d,clif->pTakeItem,2); + packet(0x0945,clif->pUseSkillToPos,2,4,6,8); + packet(0x0947,clif->pActionRequest,2,6); + packet(0x0948,clif->pHomMenu,2,4); + packet(0x095f,clif->pDull/*,XXX*/); + packet(0x0960,clif->pChangeDir,2,4); #endif // 2014-07-30aRagexe #if PACKETVER == 20140730 - packet(0x022d,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x0364,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x0366,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0367,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0437,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x07ec,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0802,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0815,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0817,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x085e,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x085f,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x087d,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x087e,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x087f,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0889,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x088b,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x088d,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x0892,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x08a0,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x08a6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x08a7,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x08a9,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x08ad,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x091e,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0924,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x092a,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x0934,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0940,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0946,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 + packet(0x022d,clif->pUseSkillToPos,2,4,6,8); + packet(0x0364,clif->pGetCharNameRequest,2); + packet(0x0366,clif->pUseSkillToId,2,4,6); + packet(0x0367,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0437,clif->pWantToConnection,2,6,10,14,18); + packet(0x07ec,clif->pDull/*,XXX*/); + packet(0x0802,clif->pDull/*,XXX*/); + packet(0x0815,clif->pFriendsListAdd,2); + packet(0x0817,clif->pActionRequest,2,6); + packet(0x085e,clif->pWalkToXY,2); + packet(0x085f,clif->pReqCloseBuyingStore,0); + packet(0x087d,clif->pMoveFromKafra,2,4); + packet(0x087e,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x087f,clif->pDropItem,2,4); + packet(0x0889,clif->pPartyBookingRegisterReq,2,4); + packet(0x088b,clif->pTickSend,2); + packet(0x088d,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x0892,clif->pMoveToKafra,2,4); + packet(0x08a0,clif->pItemListWindowSelected,2,4,8); + packet(0x08a6,clif->pReqClickBuyingStore,2); + packet(0x08a7,clif->pSolveCharName,2); + packet(0x08a9,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x08ad,clif->pStoragePassword,0); + packet(0x091e,clif->pPartyInvite2,2); + packet(0x0924,clif->pSearchStoreInfoNextPage,0); + packet(0x092a,clif->pTakeItem,2); + packet(0x0934,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0940,clif->pChangeDir,2,4); + packet(0x0946,clif->pHomMenu,2,4); #endif // 2014-08-06aRagexe, 2014-08-06bRagexe #if PACKETVER == 20140806 - packet(0x0202,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x022d,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x023b,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0281,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x035f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0360,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0361,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0362,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0363,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0364,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0365,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0436,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0437,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0438,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x07e4,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x07ec,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0802,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0835,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x083c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0948,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x096a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 + packet(0x0202,clif->pChangeDir,2,4); + packet(0x022d,clif->pWantToConnection,2,6,10,14,18); + packet(0x023b,clif->pFriendsListAdd,2); + packet(0x0281,clif->pItemListWindowSelected,2,4,8); + packet(0x035f,clif->pTickSend,2); + packet(0x0360,clif->pReqClickBuyingStore,2); + packet(0x0361,clif->pHomMenu,2,4); + packet(0x0362,clif->pDropItem,2,4); + packet(0x0363,clif->pDull/*,XXX*/); + packet(0x0364,clif->pMoveFromKafra,2,4); + packet(0x0365,clif->pPartyBookingRegisterReq,2,4); + packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pActionRequest,2,6); + packet(0x0436,clif->pDull/*,XXX*/); + packet(0x0437,clif->pWalkToXY,2); + packet(0x0438,clif->pUseSkillToPos,2,4,6,8); + packet(0x07e4,clif->pTakeItem,2); + packet(0x07ec,clif->pMoveToKafra,2,4); + packet(0x0802,clif->pPartyInvite2,2); + packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0835,clif->pSearchStoreInfoNextPage,0); + packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x083c,clif->pUseSkillToId,2,4,6); + packet(0x0948,clif->pStoragePassword,0); + packet(0x096a,clif->pGetCharNameRequest,2); #endif // 2014-08-13aRagexe, 2014-08-13bRagexe, 2014-08-14aRagexe #if PACKETVER == 20140813 || \ PACKETVER == 20140814 - packet(0x035f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0360,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0365,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0437,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0438,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x07e4,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0802,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0819,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x0835,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x083c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0868,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0878,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x087c,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0882,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0895,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0897,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0899,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x08a3,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x08a7,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x08ab,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0967,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x096a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 + packet(0x035f,clif->pTickSend,2); + packet(0x0360,clif->pReqClickBuyingStore,2); + packet(0x0365,clif->pStoragePassword,0); + packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pActionRequest,2,6); + packet(0x0437,clif->pWalkToXY,2); + packet(0x0438,clif->pUseSkillToPos,2,4,6,8); + packet(0x07e4,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0802,clif->pWantToConnection,2,6,10,14,18); + packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x0819,clif->pItemListWindowSelected,2,4,8); + packet(0x0835,clif->pSearchStoreInfoNextPage,0); + packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x083c,clif->pUseSkillToId,2,4,6); + packet(0x0868,clif->pHomMenu,2,4); + packet(0x0878,clif->pChangeDir,2,4); + packet(0x087c,clif->pPartyInvite2,2); + packet(0x0882,clif->pPartyBookingRegisterReq,2,4); + packet(0x0895,clif->pMoveFromKafra,2,4); + packet(0x0897,clif->pFriendsListAdd,2); + packet(0x0899,clif->pDropItem,2,4); + packet(0x08a3,clif->pTakeItem,2); + packet(0x08a7,clif->pDull/*,XXX*/); + packet(0x08ab,clif->pDull/*,XXX*/); + packet(0x0967,clif->pMoveToKafra,2,4); + packet(0x096a,clif->pGetCharNameRequest,2); #endif // 2014-08-20aRagexe #if PACKETVER == 20140820 - packet(0x035f,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x07e4,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x07ec,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0835,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0861,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0864,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0869,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x086c,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x086e,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0872,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0876,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0891,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x0899,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x089a,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x089b,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x08a3,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x08a7,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x091d,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x092f,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0936,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x0937,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x093a,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x093e,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x094a,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0951,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0952,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0956,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0958,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0961,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 + packet(0x035f,clif->pReqCloseBuyingStore,0); + packet(0x07e4,clif->pTakeItem,2); + packet(0x07ec,clif->pSearchStoreInfoNextPage,0); + packet(0x0835,clif->pChangeDir,2,4); + packet(0x0861,clif->pTickSend,2); + packet(0x0864,clif->pWantToConnection,2,6,10,14,18); + packet(0x0869,clif->pDull/*,XXX*/); + packet(0x086c,clif->pItemListWindowSelected,2,4,8); + packet(0x086e,clif->pPartyInvite2,2); + packet(0x0872,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0876,clif->pDropItem,2,4); + packet(0x0891,clif->pGetCharNameRequest,2); + packet(0x0899,clif->pUseSkillToPos,2,4,6,8); + packet(0x089a,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x089b,clif->pMoveFromKafra,2,4); + packet(0x08a3,clif->pWalkToXY,2); + packet(0x08a7,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x091d,clif->pSolveCharName,2); + packet(0x092f,clif->pUseSkillToId,2,4,6); + packet(0x0936,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x0937,clif->pHomMenu,2,4); + packet(0x093a,clif->pStoragePassword,0); + packet(0x093e,clif->pReqClickBuyingStore,2); + packet(0x094a,clif->pFriendsListAdd,2); + packet(0x0951,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0952,clif->pActionRequest,2,6); + packet(0x0956,clif->pMoveToKafra,2,4); + packet(0x0958,clif->pDull/*,XXX*/); + packet(0x0961,clif->pPartyBookingRegisterReq,2,4); #endif // 2014-08-27aRagexe #if PACKETVER == 20140827 - packet(0x0202,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x022d,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x023b,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0281,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x035f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0360,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0361,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0362,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0363,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0364,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0365,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0436,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0437,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0438,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x07e4,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x07ec,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0802,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0835,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x083c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0943,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x096a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 + packet(0x0202,clif->pChangeDir,2,4); + packet(0x022d,clif->pWantToConnection,2,6,10,14,18); + packet(0x023b,clif->pFriendsListAdd,2); + packet(0x0281,clif->pItemListWindowSelected,2,4,8); + packet(0x035f,clif->pTickSend,2); + packet(0x0360,clif->pReqClickBuyingStore,2); + packet(0x0361,clif->pHomMenu,2,4); + packet(0x0362,clif->pDropItem,2,4); + packet(0x0363,clif->pDull/*,XXX*/); + packet(0x0364,clif->pMoveFromKafra,2,4); + packet(0x0365,clif->pPartyBookingRegisterReq,2,4); + packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pActionRequest,2,6); + packet(0x0436,clif->pDull/*,XXX*/); + packet(0x0437,clif->pWalkToXY,2); + packet(0x0438,clif->pUseSkillToPos,2,4,6,8); + packet(0x07e4,clif->pTakeItem,2); + packet(0x07ec,clif->pMoveToKafra,2,4); + packet(0x0802,clif->pPartyInvite2,2); + packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0835,clif->pSearchStoreInfoNextPage,0); + packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x083c,clif->pUseSkillToId,2,4,6); + packet(0x0943,clif->pStoragePassword,0); + packet(0x096a,clif->pGetCharNameRequest,2); #endif // 2014-09-03aRagexe #if PACKETVER == 20140903 - packet(0x0281,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x035f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0360,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0362,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0363,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0364,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0365,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0437,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0438,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x07e4,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x07ec,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0802,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0835,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x083c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x088f,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x089b,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0931,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0941,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x0943,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0945,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x096a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 + packet(0x0281,clif->pItemListWindowSelected,2,4,8); + packet(0x035f,clif->pTickSend,2); + packet(0x0360,clif->pReqClickBuyingStore,2); + packet(0x0362,clif->pDropItem,2,4); + packet(0x0363,clif->pDull/*,XXX*/); + packet(0x0364,clif->pMoveFromKafra,2,4); + packet(0x0365,clif->pPartyBookingRegisterReq,2,4); + packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pActionRequest,2,6); + packet(0x0437,clif->pWalkToXY,2); + packet(0x0438,clif->pUseSkillToPos,2,4,6,8); + packet(0x07e4,clif->pTakeItem,2); + packet(0x07ec,clif->pMoveToKafra,2,4); + packet(0x0802,clif->pPartyInvite2,2); + packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0835,clif->pSearchStoreInfoNextPage,0); + packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x083c,clif->pUseSkillToId,2,4,6); + packet(0x088f,clif->pWantToConnection,2,6,10,14,18); + packet(0x089b,clif->pFriendsListAdd,2); + packet(0x0931,clif->pHomMenu,2,4); + packet(0x0941,clif->pStoragePassword,0); + packet(0x0943,clif->pDull/*,XXX*/); + packet(0x0945,clif->pChangeDir,2,4); + packet(0x096a,clif->pGetCharNameRequest,2); #endif // 2014-09-17aRagexe #if PACKETVER == 20140917 - packet(0x022d,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0364,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0365,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0366,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0367,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0369,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0838,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0864,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x086d,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0889,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0895,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0897,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0898,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x089c,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x08a8,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x0919,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x091e,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x092a,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x0930,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0949,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x094f,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x0951,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0955,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0956,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x0957,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x095a,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x095c,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x095e,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0966,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 + packet(0x022d,clif->pPartyInvite2,2); + packet(0x0364,clif->pSearchStoreInfoNextPage,0); + packet(0x0365,clif->pMoveToKafra,2,4); + packet(0x0366,clif->pWantToConnection,2,6,10,14,18); + packet(0x0367,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0369,clif->pSolveCharName,2); + packet(0x0838,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0864,clif->pTakeItem,2); + packet(0x086d,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0889,clif->pActionRequest,2,6); + packet(0x0895,clif->pHomMenu,2,4); + packet(0x0897,clif->pTickSend,2); + packet(0x0898,clif->pGetCharNameRequest,2); + packet(0x089c,clif->pReqClickBuyingStore,2); + packet(0x08a8,clif->pStoragePassword,0); + packet(0x0919,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x091e,clif->pReqCloseBuyingStore,0); + packet(0x092a,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x0930,clif->pMoveFromKafra,2,4); + packet(0x0949,clif->pUseSkillToId,2,4,6); + packet(0x094f,clif->pUseSkillToPos,2,4,6,8); + packet(0x0951,clif->pPartyBookingRegisterReq,2,4); + packet(0x0955,clif->pFriendsListAdd,2); + packet(0x0956,clif->pItemListWindowSelected,2,4,8); + packet(0x0957,clif->pDull/*,XXX*/); + packet(0x095a,clif->pDropItem,2,4); + packet(0x095c,clif->pWalkToXY,2); + packet(0x095e,clif->pChangeDir,2,4); + packet(0x0966,clif->pDull/*,XXX*/); #endif // 2014-09-24cRagexe #if PACKETVER == 20140924 - packet(0x0366,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x0367,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x07e4,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x0802,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0815,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0862,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0864,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0865,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0867,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x086b,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x086d,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x086e,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0886,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x088b,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x0894,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0898,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x089c,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x08a5,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x08a7,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0918,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x091b,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0925,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0926,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0928,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x092b,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x092d,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x0934,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0949,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0952,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 + packet(0x0366,clif->pUseSkillToPos,2,4,6,8); + packet(0x0367,clif->pPartyInvite2,2); + packet(0x07e4,clif->pStoragePassword,0); + packet(0x0802,clif->pPartyBookingRegisterReq,2,4); + packet(0x0815,clif->pWalkToXY,2); + packet(0x0862,clif->pDull/*,XXX*/); + packet(0x0864,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0865,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0867,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x086b,clif->pReqCloseBuyingStore,0); + packet(0x086d,clif->pTakeItem,2); + packet(0x086e,clif->pHomMenu,2,4); + packet(0x0886,clif->pGetCharNameRequest,2); + packet(0x088b,clif->pItemListWindowSelected,2,4,8); + packet(0x0894,clif->pActionRequest,2,6); + packet(0x0898,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x089c,clif->pMoveToKafra,2,4); + packet(0x08a5,clif->pSolveCharName,2); + packet(0x08a7,clif->pUseSkillToId,2,4,6); + packet(0x0918,clif->pWantToConnection,2,6,10,14,18); + packet(0x091b,clif->pSearchStoreInfoNextPage,0); + packet(0x0925,clif->pDull/*,XXX*/); + packet(0x0926,clif->pTickSend,2); + packet(0x0928,clif->pMoveFromKafra,2,4); + packet(0x092b,clif->pReqClickBuyingStore,2); + packet(0x092d,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x0934,clif->pChangeDir,2,4); + packet(0x0949,clif->pDropItem,2,4); + packet(0x0952,clif->pFriendsListAdd,2); #endif // 2014-10-01aRagexe #if PACKETVER == 20141001 - packet(0x035f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0360,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0361,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0365,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0437,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0438,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0835,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0838,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x083c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x087c,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0884,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0885,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x089c,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x089d,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x08ad,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x091c,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x092a,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x0937,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x0939,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x093f,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x094b,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0952,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 + packet(0x035f,clif->pTickSend,2); + packet(0x0360,clif->pReqClickBuyingStore,2); + packet(0x0361,clif->pDropItem,2,4); + packet(0x0365,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pActionRequest,2,6); + packet(0x0437,clif->pWalkToXY,2); + packet(0x0438,clif->pUseSkillToPos,2,4,6,8); + packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0835,clif->pSearchStoreInfoNextPage,0); + packet(0x0838,clif->pMoveFromKafra,2,4); + packet(0x083c,clif->pUseSkillToId,2,4,6); + packet(0x087c,clif->pMoveToKafra,2,4); + packet(0x0884,clif->pPartyInvite2,2); + packet(0x0885,clif->pGetCharNameRequest,2); + packet(0x089c,clif->pPartyBookingRegisterReq,2,4); + packet(0x089d,clif->pFriendsListAdd,2); + packet(0x08ad,clif->pChangeDir,2,4); + packet(0x091c,clif->pDull/*,XXX*/); + packet(0x092a,clif->pStoragePassword,0); + packet(0x0937,clif->pItemListWindowSelected,2,4,8); + packet(0x0939,clif->pDull/*,XXX*/); + packet(0x093f,clif->pTakeItem,2); + packet(0x094b,clif->pWantToConnection,2,6,10,14,18); + packet(0x0952,clif->pHomMenu,2,4); #endif // 2014-10-08aRagexe, 2014-10-08bRagexe, 2014-10-08cRagexe, 2014-10-08dRagexe #if PACKETVER == 20141008 - packet(0x0202,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x022d,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x023b,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0281,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x035f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0360,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0361,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0362,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0363,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0364,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0365,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0436,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0437,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0438,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x07e4,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x07ec,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0802,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0835,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x083c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0942,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x096a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 + packet(0x0202,clif->pChangeDir,2,4); + packet(0x022d,clif->pWantToConnection,2,6,10,14,18); + packet(0x023b,clif->pFriendsListAdd,2); + packet(0x0281,clif->pItemListWindowSelected,2,4,8); + packet(0x035f,clif->pTickSend,2); + packet(0x0360,clif->pReqClickBuyingStore,2); + packet(0x0361,clif->pHomMenu,2,4); + packet(0x0362,clif->pDropItem,2,4); + packet(0x0363,clif->pDull/*,XXX*/); + packet(0x0364,clif->pMoveFromKafra,2,4); + packet(0x0365,clif->pPartyBookingRegisterReq,2,4); + packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pActionRequest,2,6); + packet(0x0436,clif->pDull/*,XXX*/); + packet(0x0437,clif->pWalkToXY,2); + packet(0x0438,clif->pUseSkillToPos,2,4,6,8); + packet(0x07e4,clif->pTakeItem,2); + packet(0x07ec,clif->pMoveToKafra,2,4); + packet(0x0802,clif->pPartyInvite2,2); + packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0835,clif->pSearchStoreInfoNextPage,0); + packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x083c,clif->pUseSkillToId,2,4,6); + packet(0x0942,clif->pStoragePassword,0); + packet(0x096a,clif->pGetCharNameRequest,2); #endif // 2014-10-15bRagexe, 2014-10-15cRagexe, 2014-10-15dRagexe, 2014-10-16aRagexe #if PACKETVER == 20141015 || \ PACKETVER == 20141016 - packet(0x022d,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0281,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x035f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0360,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0362,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0363,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0364,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0365,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0437,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0438,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x07e4,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x07ec,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0802,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0835,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x083c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x086e,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0922,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0936,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x094b,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0967,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x096a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 + packet(0x022d,clif->pMoveFromKafra,2,4); + packet(0x0281,clif->pItemListWindowSelected,2,4,8); + packet(0x035f,clif->pTickSend,2); + packet(0x0360,clif->pReqClickBuyingStore,2); + packet(0x0362,clif->pDropItem,2,4); + packet(0x0363,clif->pDull/*,XXX*/); + packet(0x0364,clif->pHomMenu,2,4); + packet(0x0365,clif->pPartyBookingRegisterReq,2,4); + packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pActionRequest,2,6); + packet(0x0437,clif->pWalkToXY,2); + packet(0x0438,clif->pUseSkillToPos,2,4,6,8); + packet(0x07e4,clif->pTakeItem,2); + packet(0x07ec,clif->pMoveToKafra,2,4); + packet(0x0802,clif->pPartyInvite2,2); + packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0835,clif->pSearchStoreInfoNextPage,0); + packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x083c,clif->pUseSkillToId,2,4,6); + packet(0x086e,clif->pWantToConnection,2,6,10,14,18); + packet(0x0922,clif->pDull/*,XXX*/); + packet(0x0936,clif->pStoragePassword,0); + packet(0x094b,clif->pFriendsListAdd,2); + packet(0x0967,clif->pChangeDir,2,4); + packet(0x096a,clif->pGetCharNameRequest,2); #endif // 2014-10-22bRagexe #if PACKETVER == 20141022 - packet(0x023b,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x0281,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x035f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0360,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0437,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0438,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0835,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x083c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0878,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x087d,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0896,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0899,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x08aa,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x08ab,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x08ad,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x091a,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x092b,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x093b,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0940,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x094e,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x0955,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x096a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 + packet(0x023b,clif->pUseSkillToPos,2,4,6,8); + packet(0x0281,clif->pItemListWindowSelected,2,4,8); + packet(0x035f,clif->pTickSend,2); + packet(0x0360,clif->pReqClickBuyingStore,2); + packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pActionRequest,2,6); + packet(0x0437,clif->pWalkToXY,2); + packet(0x0438,clif->pStoragePassword,0); + packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0835,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x083c,clif->pUseSkillToId,2,4,6); + packet(0x0878,clif->pMoveToKafra,2,4); + packet(0x087d,clif->pDropItem,2,4); + packet(0x0896,clif->pPartyInvite2,2); + packet(0x0899,clif->pHomMenu,2,4); + packet(0x08aa,clif->pMoveFromKafra,2,4); + packet(0x08ab,clif->pDull/*,XXX*/); + packet(0x08ad,clif->pChangeDir,2,4); + packet(0x091a,clif->pFriendsListAdd,2); + packet(0x092b,clif->pDull/*,XXX*/); + packet(0x093b,clif->pWantToConnection,2,6,10,14,18); + packet(0x0940,clif->pSearchStoreInfoNextPage,0); + packet(0x094e,clif->pTakeItem,2); + packet(0x0955,clif->pPartyBookingRegisterReq,2,4); + packet(0x096a,clif->pGetCharNameRequest,2); #endif // 2014-10-29aRagexe #if PACKETVER == 20141029 - packet(0x0202,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x022d,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x023b,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0281,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x035f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0360,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0361,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0362,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0363,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0364,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0365,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0436,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0437,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x0438,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x07e4,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x07ec,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0802,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0835,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x083c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0940,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x096a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 + packet(0x0202,clif->pChangeDir,2,4); + packet(0x022d,clif->pWantToConnection,2,6,10,14,18); + packet(0x023b,clif->pFriendsListAdd,2); + packet(0x0281,clif->pItemListWindowSelected,2,4,8); + packet(0x035f,clif->pTickSend,2); + packet(0x0360,clif->pReqClickBuyingStore,2); + packet(0x0361,clif->pHomMenu,2,4); + packet(0x0362,clif->pDropItem,2,4); + packet(0x0363,clif->pDull/*,XXX*/); + packet(0x0364,clif->pMoveFromKafra,2,4); + packet(0x0365,clif->pPartyBookingRegisterReq,2,4); + packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pWalkToXY,2); + packet(0x0436,clif->pDull/*,XXX*/); + packet(0x0437,clif->pStoragePassword,0); + packet(0x0438,clif->pUseSkillToPos,2,4,6,8); + packet(0x07e4,clif->pTakeItem,2); + packet(0x07ec,clif->pMoveToKafra,2,4); + packet(0x0802,clif->pPartyInvite2,2); + packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0835,clif->pSearchStoreInfoNextPage,0); + packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x083c,clif->pUseSkillToId,2,4,6); + packet(0x0940,clif->pActionRequest,2,6); + packet(0x096a,clif->pGetCharNameRequest,2); #endif // 2014-11-05aRagexe, 2014-11-05bRagexe #if PACKETVER == 20141105 - packet(0x022d,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x035f,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0360,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x085c,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x0863,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x0864,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0865,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0871,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x0874,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0875,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0877,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x0879,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x0887,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0892,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0898,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x08a0,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x08a5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x08a7,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x08ad,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x091d,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x091e,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x092b,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x093e,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0944,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0948,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0950,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0957,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x095f,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0968,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 + packet(0x022d,clif->pDull/*,XXX*/); + packet(0x035f,clif->pUseSkillToId,2,4,6); + packet(0x0360,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x085c,clif->pUseSkillToPos,2,4,6,8); + packet(0x0863,clif->pGetCharNameRequest,2); + packet(0x0864,clif->pTickSend,2); + packet(0x0865,clif->pFriendsListAdd,2); + packet(0x0871,clif->pStoragePassword,0); + packet(0x0874,clif->pDull/*,XXX*/); + packet(0x0875,clif->pActionRequest,2,6); + packet(0x0877,clif->pItemListWindowSelected,2,4,8); + packet(0x0879,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x0887,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0892,clif->pDropItem,2,4); + packet(0x0898,clif->pMoveFromKafra,2,4); + packet(0x08a0,clif->pWantToConnection,2,6,10,14,18); + packet(0x08a5,clif->pChangeDir,2,4); + packet(0x08a7,clif->pReqCloseBuyingStore,0); + packet(0x08ad,clif->pMoveToKafra,2,4); + packet(0x091d,clif->pSolveCharName,2); + packet(0x091e,clif->pReqClickBuyingStore,2); + packet(0x092b,clif->pTakeItem,2); + packet(0x093e,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0944,clif->pHomMenu,2,4); + packet(0x0948,clif->pSearchStoreInfoNextPage,0); + packet(0x0950,clif->pPartyInvite2,2); + packet(0x0957,clif->pWalkToXY,2); + packet(0x095f,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0968,clif->pPartyBookingRegisterReq,2,4); #endif // 2014-11-12cRagexe, 2014-11-12dRagexe #if PACKETVER == 20141112 - packet(0x0362,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0438,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x07e4,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0835,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0838,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x083c,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x085f,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0863,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0869,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x086c,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0871,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0885,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0886,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x0887,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x088d,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x08a0,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x08a1,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x08ab,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x0919,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x0926,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0929,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0943,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x094b,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x094c,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x094f,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0955,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x095d,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0960,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x0962,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 + packet(0x0362,clif->pFriendsListAdd,2); + packet(0x0438,clif->pSolveCharName,2); + packet(0x07e4,clif->pReqCloseBuyingStore,0); + packet(0x0835,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0838,clif->pSearchStoreInfoNextPage,0); + packet(0x083c,clif->pMoveToKafra,2,4); + packet(0x085f,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0863,clif->pUseSkillToId,2,4,6); + packet(0x0869,clif->pGetCharNameRequest,2); + packet(0x086c,clif->pPartyBookingRegisterReq,2,4); + packet(0x0871,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0885,clif->pChangeDir,2,4); + packet(0x0886,clif->pItemListWindowSelected,2,4,8); + packet(0x0887,clif->pPartyInvite2,2); + packet(0x088d,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x08a0,clif->pWalkToXY,2); + packet(0x08a1,clif->pReqClickBuyingStore,2); + packet(0x08ab,clif->pStoragePassword,0); + packet(0x0919,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x0926,clif->pHomMenu,2,4); + packet(0x0929,clif->pActionRequest,2,6); + packet(0x0943,clif->pDropItem,2,4); + packet(0x094b,clif->pWantToConnection,2,6,10,14,18); + packet(0x094c,clif->pDull/*,XXX*/); + packet(0x094f,clif->pDull/*,XXX*/); + packet(0x0955,clif->pMoveFromKafra,2,4); + packet(0x095d,clif->pTickSend,2); + packet(0x0960,clif->pTakeItem,2); + packet(0x0962,clif->pUseSkillToPos,2,4,6,8); #endif // 2014-11-19dRagexe #if PACKETVER == 20141119 - packet(0x0202,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x085a,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0861,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0865,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0866,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0872,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0873,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0875,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x087c,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0885,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0887,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0888,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x088d,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0895,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x08a8,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x08aa,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x0918,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x0920,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0921,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0929,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x092f,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0933,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x0938,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0940,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0941,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0942,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0948,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x094c,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0963,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 + packet(0x0202,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x085a,clif->pReqClickBuyingStore,2); + packet(0x0861,clif->pFriendsListAdd,2); + packet(0x0865,clif->pPartyInvite2,2); + packet(0x0866,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0872,clif->pActionRequest,2,6); + packet(0x0873,clif->pUseSkillToId,2,4,6); + packet(0x0875,clif->pGetCharNameRequest,2); + packet(0x087c,clif->pSolveCharName,2); + packet(0x0885,clif->pDull/*,XXX*/); + packet(0x0887,clif->pReqCloseBuyingStore,0); + packet(0x0888,clif->pPartyBookingRegisterReq,2,4); + packet(0x088d,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0895,clif->pItemListWindowSelected,2,4,8); + packet(0x08a8,clif->pTakeItem,2); + packet(0x08aa,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x0918,clif->pUseSkillToPos,2,4,6,8); + packet(0x0920,clif->pChangeDir,2,4); + packet(0x0921,clif->pWantToConnection,2,6,10,14,18); + packet(0x0929,clif->pMoveFromKafra,2,4); + packet(0x092f,clif->pDull/*,XXX*/); + packet(0x0933,clif->pStoragePassword,0); + packet(0x0938,clif->pTickSend,2); + packet(0x0940,clif->pSearchStoreInfoNextPage,0); + packet(0x0941,clif->pMoveToKafra,2,4); + packet(0x0942,clif->pHomMenu,2,4); + packet(0x0948,clif->pWalkToXY,2); + packet(0x094c,clif->pDropItem,2,4); + packet(0x0963,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); #endif // 2014-11-26aRagexe, 2014-11-26bRagexe, 2014-11-26cRagexe, 2014-11-26dRagexe #if PACKETVER == 20141126 - packet(0x035f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0360,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0367,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0437,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0438,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x0802,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0819,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0835,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x083c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x086e,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0871,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0884,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0896,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x08a4,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x08ad,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x0920,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0942,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x095a,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x095b,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x095f,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0965,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x096a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 + packet(0x035f,clif->pTickSend,2); + packet(0x0360,clif->pReqClickBuyingStore,2); + packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0367,clif->pDull/*,XXX*/); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pActionRequest,2,6); + packet(0x0437,clif->pWalkToXY,2); + packet(0x0438,clif->pUseSkillToPos,2,4,6,8); + packet(0x0802,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x0819,clif->pPartyBookingRegisterReq,2,4); + packet(0x0835,clif->pSearchStoreInfoNextPage,0); + packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x083c,clif->pUseSkillToId,2,4,6); + packet(0x086e,clif->pWantToConnection,2,6,10,14,18); + packet(0x0871,clif->pMoveFromKafra,2,4); + packet(0x0884,clif->pDull/*,XXX*/); + packet(0x0896,clif->pItemListWindowSelected,2,4,8); + packet(0x08a4,clif->pChangeDir,2,4); + packet(0x08ad,clif->pStoragePassword,0); + packet(0x0920,clif->pDropItem,2,4); + packet(0x0942,clif->pFriendsListAdd,2); + packet(0x095a,clif->pTakeItem,2); + packet(0x095b,clif->pHomMenu,2,4); + packet(0x095f,clif->pMoveToKafra,2,4); + packet(0x0965,clif->pPartyInvite2,2); + packet(0x096a,clif->pGetCharNameRequest,2); #endif // 2014-12-03aRagexe #if PACKETVER == 20141203 - packet(0x0202,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0281,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0362,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0367,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x0368,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0802,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0861,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x086c,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x086d,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x086e,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x087b,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x087e,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x0880,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0889,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0898,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x089c,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x089d,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x08a5,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x08aa,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0917,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x091c,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x091d,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0928,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x092a,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0936,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0952,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0957,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x095c,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0962,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 + packet(0x0202,clif->pSolveCharName,2); + packet(0x0281,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0362,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0367,clif->pGetCharNameRequest,2); + packet(0x0368,clif->pDull/*,XXX*/); + packet(0x0802,clif->pWantToConnection,2,6,10,14,18); + packet(0x0861,clif->pMoveToKafra,2,4); + packet(0x086c,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x086d,clif->pMoveFromKafra,2,4); + packet(0x086e,clif->pTakeItem,2); + packet(0x087b,clif->pWalkToXY,2); + packet(0x087e,clif->pItemListWindowSelected,2,4,8); + packet(0x0880,clif->pChangeDir,2,4); + packet(0x0889,clif->pFriendsListAdd,2); + packet(0x0898,clif->pStoragePassword,0); + packet(0x089c,clif->pUseSkillToPos,2,4,6,8); + packet(0x089d,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x08a5,clif->pActionRequest,2,6); + packet(0x08aa,clif->pDropItem,2,4); + packet(0x0917,clif->pSearchStoreInfoNextPage,0); + packet(0x091c,clif->pPartyBookingRegisterReq,2,4); + packet(0x091d,clif->pPartyInvite2,2); + packet(0x0928,clif->pTickSend,2); + packet(0x092a,clif->pDull/*,XXX*/); + packet(0x0936,clif->pHomMenu,2,4); + packet(0x0952,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0957,clif->pReqCloseBuyingStore,0); + packet(0x095c,clif->pReqClickBuyingStore,2); + packet(0x0962,clif->pUseSkillToId,2,4,6); #endif // 2014-12-10bRagexe, 2014-12-10cRagexe #if PACKETVER == 20141210 - packet(0x035f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0360,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0436,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0437,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0438,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x07e4,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0835,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x083c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x087b,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x0885,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x08ac,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x0917,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0927,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x092b,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0947,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0954,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0955,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0958,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0961,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0963,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x0967,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x096a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 + packet(0x035f,clif->pTickSend,2); + packet(0x0360,clif->pReqClickBuyingStore,2); + packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pActionRequest,2,6); + packet(0x0436,clif->pHomMenu,2,4); + packet(0x0437,clif->pWalkToXY,2); + packet(0x0438,clif->pUseSkillToPos,2,4,6,8); + packet(0x07e4,clif->pChangeDir,2,4); + packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0835,clif->pSearchStoreInfoNextPage,0); + packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x083c,clif->pUseSkillToId,2,4,6); + packet(0x087b,clif->pTakeItem,2); + packet(0x0885,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x08ac,clif->pItemListWindowSelected,2,4,8); + packet(0x0917,clif->pPartyInvite2,2); + packet(0x0927,clif->pDull/*,XXX*/); + packet(0x092b,clif->pPartyBookingRegisterReq,2,4); + packet(0x0947,clif->pDull/*,XXX*/); + packet(0x0954,clif->pWantToConnection,2,6,10,14,18); + packet(0x0955,clif->pMoveFromKafra,2,4); + packet(0x0958,clif->pDropItem,2,4); + packet(0x0961,clif->pFriendsListAdd,2); + packet(0x0963,clif->pStoragePassword,0); + packet(0x0967,clif->pMoveToKafra,2,4); + packet(0x096a,clif->pGetCharNameRequest,2); #endif // 2014-12-17aRagexe #if PACKETVER == 20141217 - packet(0x0360,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x085b,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0860,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x086c,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x0875,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0878,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0879,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0883,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x0889,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x088e,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x089f,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x08a1,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x08a2,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x08a8,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x08ab,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x08ac,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0919,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x091f,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0924,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0930,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0932,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0933,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0936,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x0939,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0940,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0944,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0945,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0948,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0960,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 + packet(0x0360,clif->pMoveToKafra,2,4); + packet(0x085b,clif->pSearchStoreInfoNextPage,0); + packet(0x0860,clif->pStoragePassword,0); + packet(0x086c,clif->pItemListWindowSelected,2,4,8); + packet(0x0875,clif->pMoveFromKafra,2,4); + packet(0x0878,clif->pWalkToXY,2); + packet(0x0879,clif->pHomMenu,2,4); + packet(0x0883,clif->pTakeItem,2); + packet(0x0889,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x088e,clif->pPartyBookingRegisterReq,2,4); + packet(0x089f,clif->pDropItem,2,4); + packet(0x08a1,clif->pUseSkillToPos,2,4,6,8); + packet(0x08a2,clif->pDull/*,XXX*/); + packet(0x08a8,clif->pPartyInvite2,2); + packet(0x08ab,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x08ac,clif->pTickSend,2); + packet(0x0919,clif->pChangeDir,2,4); + packet(0x091f,clif->pUseSkillToId,2,4,6); + packet(0x0924,clif->pActionRequest,2,6); + packet(0x0930,clif->pReqCloseBuyingStore,0); + packet(0x0932,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0933,clif->pFriendsListAdd,2); + packet(0x0936,clif->pGetCharNameRequest,2); + packet(0x0939,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0940,clif->pWantToConnection,2,6,10,14,18); + packet(0x0944,clif->pReqClickBuyingStore,2); + packet(0x0945,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0948,clif->pSolveCharName,2); + packet(0x0960,clif->pDull/*,XXX*/); #endif // 2014-12-24aRagexe #if PACKETVER == 20141224 - packet(0x0361,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0438,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0835,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x085a,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x085e,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0865,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0867,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x086c,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0870,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x087a,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x087b,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x089a,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x089b,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x08a3,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x08a4,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x08a8,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x08ac,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0930,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0932,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x093a,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0945,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0946,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x0949,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x094f,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0950,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0953,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0956,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x095b,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x095f,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 + packet(0x0361,clif->pMoveToKafra,2,4); + packet(0x0438,clif->pFriendsListAdd,2); + packet(0x0835,clif->pItemListWindowSelected,2,4,8); + packet(0x085a,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x085e,clif->pReqCloseBuyingStore,0); + packet(0x0865,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0867,clif->pHomMenu,2,4); + packet(0x086c,clif->pReqClickBuyingStore,2); + packet(0x0870,clif->pChangeDir,2,4); + packet(0x087a,clif->pTakeItem,2); + packet(0x087b,clif->pDull/*,XXX*/); + packet(0x089a,clif->pWalkToXY,2); + packet(0x089b,clif->pPartyBookingRegisterReq,2,4); + packet(0x08a3,clif->pPartyInvite2,2); + packet(0x08a4,clif->pStoragePassword,0); + packet(0x08a8,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x08ac,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0930,clif->pDropItem,2,4); + packet(0x0932,clif->pDull/*,XXX*/); + packet(0x093a,clif->pSearchStoreInfoNextPage,0); + packet(0x0945,clif->pTickSend,2); + packet(0x0946,clif->pGetCharNameRequest,2); + packet(0x0949,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x094f,clif->pWantToConnection,2,6,10,14,18); + packet(0x0950,clif->pSolveCharName,2); + packet(0x0953,clif->pMoveFromKafra,2,4); + packet(0x0956,clif->pUseSkillToPos,2,4,6,8); + packet(0x095b,clif->pUseSkillToId,2,4,6); + packet(0x095f,clif->pActionRequest,2,6); #endif // 2014-12-31aRagexe #if PACKETVER == 20141231 - packet(0x0202,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x022d,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x023b,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0281,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x035f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0360,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0361,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0362,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0363,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0364,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0365,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0436,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0437,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0438,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x07e4,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x07ec,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0802,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0835,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x083c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x086d,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x096a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 + packet(0x0202,clif->pChangeDir,2,4); + packet(0x022d,clif->pWantToConnection,2,6,10,14,18); + packet(0x023b,clif->pFriendsListAdd,2); + packet(0x0281,clif->pItemListWindowSelected,2,4,8); + packet(0x035f,clif->pTickSend,2); + packet(0x0360,clif->pReqClickBuyingStore,2); + packet(0x0361,clif->pHomMenu,2,4); + packet(0x0362,clif->pDropItem,2,4); + packet(0x0363,clif->pDull/*,XXX*/); + packet(0x0364,clif->pMoveFromKafra,2,4); + packet(0x0365,clif->pPartyBookingRegisterReq,2,4); + packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pActionRequest,2,6); + packet(0x0436,clif->pDull/*,XXX*/); + packet(0x0437,clif->pWalkToXY,2); + packet(0x0438,clif->pUseSkillToPos,2,4,6,8); + packet(0x07e4,clif->pTakeItem,2); + packet(0x07ec,clif->pMoveToKafra,2,4); + packet(0x0802,clif->pPartyInvite2,2); + packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0835,clif->pSearchStoreInfoNextPage,0); + packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x083c,clif->pUseSkillToId,2,4,6); + packet(0x086d,clif->pStoragePassword,0); + packet(0x096a,clif->pGetCharNameRequest,2); #endif // 2015-01-07aRagexe #if PACKETVER == 20150107 - packet(0x0281,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x035f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0360,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0362,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0363,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0364,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0365,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0436,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0437,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0438,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x07e4,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x07ec,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0802,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0835,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x083c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x087c,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0895,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x092d,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0943,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0947,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x096a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 + packet(0x0281,clif->pItemListWindowSelected,2,4,8); + packet(0x035f,clif->pTickSend,2); + packet(0x0360,clif->pReqClickBuyingStore,2); + packet(0x0362,clif->pDropItem,2,4); + packet(0x0363,clif->pDull/*,XXX*/); + packet(0x0364,clif->pMoveFromKafra,2,4); + packet(0x0365,clif->pPartyBookingRegisterReq,2,4); + packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pActionRequest,2,6); + packet(0x0436,clif->pDull/*,XXX*/); + packet(0x0437,clif->pWalkToXY,2); + packet(0x0438,clif->pUseSkillToPos,2,4,6,8); + packet(0x07e4,clif->pTakeItem,2); + packet(0x07ec,clif->pMoveToKafra,2,4); + packet(0x0802,clif->pPartyInvite2,2); + packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0835,clif->pSearchStoreInfoNextPage,0); + packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x083c,clif->pUseSkillToId,2,4,6); + packet(0x087c,clif->pFriendsListAdd,2); + packet(0x0895,clif->pStoragePassword,0); + packet(0x092d,clif->pHomMenu,2,4); + packet(0x0943,clif->pChangeDir,2,4); + packet(0x0947,clif->pWantToConnection,2,6,10,14,18); + packet(0x096a,clif->pGetCharNameRequest,2); #endif // 2015-01-14aRagexe, 2015-01-14bRagexe, 2015-01-14cRagexe, 2015-01-14dRagexe #if PACKETVER == 20150114 - packet(0x0281,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x035f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0360,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0362,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0363,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0364,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0365,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0436,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0437,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0438,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x07e4,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x07ec,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0802,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0835,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x083c,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0868,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0899,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0946,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x0955,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0957,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x096a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 + packet(0x0281,clif->pItemListWindowSelected,2,4,8); + packet(0x035f,clif->pTickSend,2); + packet(0x0360,clif->pReqClickBuyingStore,2); + packet(0x0362,clif->pDropItem,2,4); + packet(0x0363,clif->pDull/*,XXX*/); + packet(0x0364,clif->pMoveFromKafra,2,4); + packet(0x0365,clif->pPartyBookingRegisterReq,2,4); + packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pActionRequest,2,6); + packet(0x0436,clif->pUseSkillToId,2,4,6); + packet(0x0437,clif->pWalkToXY,2); + packet(0x0438,clif->pUseSkillToPos,2,4,6,8); + packet(0x07e4,clif->pTakeItem,2); + packet(0x07ec,clif->pMoveToKafra,2,4); + packet(0x0802,clif->pPartyInvite2,2); + packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0835,clif->pSearchStoreInfoNextPage,0); + packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x083c,clif->pWantToConnection,2,6,10,14,18); + packet(0x0868,clif->pFriendsListAdd,2); + packet(0x0899,clif->pHomMenu,2,4); + packet(0x0946,clif->pStoragePassword,0); + packet(0x0955,clif->pDull/*,XXX*/); + packet(0x0957,clif->pChangeDir,2,4); + packet(0x096a,clif->pGetCharNameRequest,2); #endif // 2015-01-21aRagexe #if PACKETVER == 20150121 - packet(0x0281,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x035f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0360,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0437,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0438,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x07e4,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0835,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x083c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x087c,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x088b,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x089d,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x089e,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x08ab,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x0918,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0919,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x091d,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x0955,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0959,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0963,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0967,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x096a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 + packet(0x0281,clif->pPartyBookingRegisterReq,2,4); + packet(0x035f,clif->pTickSend,2); + packet(0x0360,clif->pReqClickBuyingStore,2); + packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pActionRequest,2,6); + packet(0x0437,clif->pWalkToXY,2); + packet(0x0438,clif->pUseSkillToPos,2,4,6,8); + packet(0x07e4,clif->pItemListWindowSelected,2,4,8); + packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0835,clif->pSearchStoreInfoNextPage,0); + packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x083c,clif->pUseSkillToId,2,4,6); + packet(0x087c,clif->pDull/*,XXX*/); + packet(0x088b,clif->pFriendsListAdd,2); + packet(0x089d,clif->pHomMenu,2,4); + packet(0x089e,clif->pChangeDir,2,4); + packet(0x08ab,clif->pStoragePassword,0); + packet(0x0918,clif->pDull/*,XXX*/); + packet(0x0919,clif->pDropItem,2,4); + packet(0x091d,clif->pTakeItem,2); + packet(0x0955,clif->pMoveToKafra,2,4); + packet(0x0959,clif->pWantToConnection,2,6,10,14,18); + packet(0x0963,clif->pMoveFromKafra,2,4); + packet(0x0967,clif->pPartyInvite2,2); + packet(0x096a,clif->pGetCharNameRequest,2); #endif // 2015-01-28aRagexe, 2015-01-29aRagexe, 2015-01-30aRagexe #if PACKETVER == 20150128 || \ PACKETVER == 20150129 || \ PACKETVER == 20150130 - packet(0x0202,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x023b,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x035f,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0365,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0368,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0838,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x085a,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0864,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x086d,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0870,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0874,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x0875,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0876,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x087d,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0888,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x089a,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x08ab,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x091f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0927,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0929,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x092d,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0938,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x093a,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0944,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x094d,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x094e,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0952,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0963,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0968,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 + packet(0x0202,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x023b,clif->pChangeDir,2,4); + packet(0x035f,clif->pReqClickBuyingStore,2); + packet(0x0365,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0368,clif->pDull/*,XXX*/); + packet(0x0838,clif->pActionRequest,2,6); + packet(0x085a,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0864,clif->pUseSkillToPos,2,4,6,8); + packet(0x086d,clif->pMoveToKafra,2,4); + packet(0x0870,clif->pWalkToXY,2); + packet(0x0874,clif->pGetCharNameRequest,2); + packet(0x0875,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0876,clif->pHomMenu,2,4); + packet(0x087d,clif->pSolveCharName,2); + packet(0x0888,clif->pItemListWindowSelected,2,4,8); + packet(0x089a,clif->pPartyBookingRegisterReq,2,4); + packet(0x08ab,clif->pTakeItem,2); + packet(0x091f,clif->pTickSend,2); + packet(0x0927,clif->pPartyInvite2,2); + packet(0x0929,clif->pStoragePassword,0); + packet(0x092d,clif->pSearchStoreInfoNextPage,0); + packet(0x0938,clif->pDull/*,XXX*/); + packet(0x093a,clif->pUseSkillToId,2,4,6); + packet(0x0944,clif->pWantToConnection,2,6,10,14,18); + packet(0x094d,clif->pReqCloseBuyingStore,0); + packet(0x094e,clif->pMoveFromKafra,2,4); + packet(0x0952,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0963,clif->pFriendsListAdd,2); + packet(0x0968,clif->pDropItem,2,4); #endif // 2015-02-04aRagexe #if PACKETVER == 20150204 - packet(0x0202,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x022d,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x023b,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0281,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x035f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0360,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0361,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0362,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0363,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0364,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0365,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0436,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0437,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0438,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x07e4,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x07ec,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0802,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0835,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x083c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0966,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x096a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 + packet(0x0202,clif->pChangeDir,2,4); + packet(0x022d,clif->pWantToConnection,2,6,10,14,18); + packet(0x023b,clif->pFriendsListAdd,2); + packet(0x0281,clif->pItemListWindowSelected,2,4,8); + packet(0x035f,clif->pTickSend,2); + packet(0x0360,clif->pReqClickBuyingStore,2); + packet(0x0361,clif->pHomMenu,2,4); + packet(0x0362,clif->pDropItem,2,4); + packet(0x0363,clif->pDull/*,XXX*/); + packet(0x0364,clif->pMoveFromKafra,2,4); + packet(0x0365,clif->pPartyBookingRegisterReq,2,4); + packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pActionRequest,2,6); + packet(0x0436,clif->pDull/*,XXX*/); + packet(0x0437,clif->pWalkToXY,2); + packet(0x0438,clif->pUseSkillToPos,2,4,6,8); + packet(0x07e4,clif->pTakeItem,2); + packet(0x07ec,clif->pMoveToKafra,2,4); + packet(0x0802,clif->pPartyInvite2,2); + packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0835,clif->pSearchStoreInfoNextPage,0); + packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x083c,clif->pUseSkillToId,2,4,6); + packet(0x0966,clif->pStoragePassword,0); + packet(0x096a,clif->pGetCharNameRequest,2); #endif // 2015-02-11aRagexe #if PACKETVER == 20150211 - packet(0x023b,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0368,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0369,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0436,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0437,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x07e4,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0817,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x0819,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0835,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0862,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0863,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0870,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x0873,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x087b,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x087f,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x0882,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0883,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0885,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0886,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x089c,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x08a0,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x08a4,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x08aa,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0919,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0920,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0944,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0951,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x0957,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0958,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 + packet(0x023b,clif->pDull/*,XXX*/); + packet(0x0368,clif->pHomMenu,2,4); + packet(0x0369,clif->pChangeDir,2,4); + packet(0x0436,clif->pSearchStoreInfoNextPage,0); + packet(0x0437,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x07e4,clif->pDropItem,2,4); + packet(0x0817,clif->pUseSkillToPos,2,4,6,8); + packet(0x0819,clif->pReqCloseBuyingStore,0); + packet(0x0835,clif->pDull/*,XXX*/); + packet(0x0862,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0863,clif->pUseSkillToId,2,4,6); + packet(0x0870,clif->pTakeItem,2); + packet(0x0873,clif->pWalkToXY,2); + packet(0x087b,clif->pGetCharNameRequest,2); + packet(0x087f,clif->pStoragePassword,0); + packet(0x0882,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0883,clif->pMoveFromKafra,2,4); + packet(0x0885,clif->pTickSend,2); + packet(0x0886,clif->pReqClickBuyingStore,2); + packet(0x089c,clif->pPartyBookingRegisterReq,2,4); + packet(0x08a0,clif->pFriendsListAdd,2); + packet(0x08a4,clif->pWantToConnection,2,6,10,14,18); + packet(0x08aa,clif->pActionRequest,2,6); + packet(0x0919,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0920,clif->pSolveCharName,2); + packet(0x0944,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0951,clif->pItemListWindowSelected,2,4,8); + packet(0x0957,clif->pPartyInvite2,2); + packet(0x0958,clif->pMoveToKafra,2,4); #endif // 2015-02-17aRagexe #if PACKETVER == 20150217 - packet(0x0202,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x022d,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x023b,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0281,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x035f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0360,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0361,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0362,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0363,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0364,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0365,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0436,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0437,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0438,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x07e4,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x07ec,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0802,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0835,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x083c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x085b,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x096a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 + packet(0x0202,clif->pChangeDir,2,4); + packet(0x022d,clif->pWantToConnection,2,6,10,14,18); + packet(0x023b,clif->pFriendsListAdd,2); + packet(0x0281,clif->pItemListWindowSelected,2,4,8); + packet(0x035f,clif->pTickSend,2); + packet(0x0360,clif->pReqClickBuyingStore,2); + packet(0x0361,clif->pHomMenu,2,4); + packet(0x0362,clif->pDropItem,2,4); + packet(0x0363,clif->pDull/*,XXX*/); + packet(0x0364,clif->pMoveFromKafra,2,4); + packet(0x0365,clif->pPartyBookingRegisterReq,2,4); + packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pActionRequest,2,6); + packet(0x0436,clif->pDull/*,XXX*/); + packet(0x0437,clif->pWalkToXY,2); + packet(0x0438,clif->pUseSkillToPos,2,4,6,8); + packet(0x07e4,clif->pTakeItem,2); + packet(0x07ec,clif->pMoveToKafra,2,4); + packet(0x0802,clif->pPartyInvite2,2); + packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0835,clif->pSearchStoreInfoNextPage,0); + packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x083c,clif->pUseSkillToId,2,4,6); + packet(0x085b,clif->pStoragePassword,0); + packet(0x096a,clif->pGetCharNameRequest,2); #endif // 2015-02-25eRagexe, 2015-02-25fRagexe, 2015-02-25gRagexe, 2015-02-25iRagexe, 2015-02-25jRagexe, 2015-02-26aRagexe #if PACKETVER == 20150225 || \ PACKETVER == 20150226 - packet(0x02c4,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x035f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0360,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0362,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0436,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x0437,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0438,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0817,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x0819,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x083c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0867,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0885,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0896,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x089b,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x089c,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x08a4,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x0940,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0946,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0948,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x094f,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0952,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0955,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x096a,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 + packet(0x02c4,clif->pReqClickBuyingStore,2); + packet(0x035f,clif->pTickSend,2); + packet(0x0360,clif->pPartyInvite2,2); + packet(0x0362,clif->pReqCloseBuyingStore,0); + packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pActionRequest,2,6); + packet(0x0436,clif->pGetCharNameRequest,2); + packet(0x0437,clif->pWalkToXY,2); + packet(0x0438,clif->pUseSkillToPos,2,4,6,8); + packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0817,clif->pTakeItem,2); + packet(0x0819,clif->pSearchStoreInfoNextPage,0); + packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x083c,clif->pUseSkillToId,2,4,6); + packet(0x0867,clif->pPartyBookingRegisterReq,2,4); + packet(0x0885,clif->pDull/*,XXX*/); + packet(0x0896,clif->pItemListWindowSelected,2,4,8); + packet(0x089b,clif->pDull/*,XXX*/); + packet(0x089c,clif->pMoveToKafra,2,4); + packet(0x08a4,clif->pStoragePassword,0); + packet(0x0940,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0946,clif->pFriendsListAdd,2); + packet(0x0948,clif->pDropItem,2,4); + packet(0x094f,clif->pHomMenu,2,4); + packet(0x0952,clif->pMoveFromKafra,2,4); + packet(0x0955,clif->pChangeDir,2,4); + packet(0x096a,clif->pWantToConnection,2,6,10,14,18); #endif // 2015-03-04aRagexe #if PACKETVER == 20150304 - packet(0x035f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0360,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0362,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0363,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0437,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0438,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x0802,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0835,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x083c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0862,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x086d,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x0879,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x087e,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0892,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x089a,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x093a,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0947,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x095d,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0960,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0961,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x096a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 + packet(0x035f,clif->pTickSend,2); + packet(0x0360,clif->pReqClickBuyingStore,2); + packet(0x0362,clif->pDropItem,2,4); + packet(0x0363,clif->pTakeItem,2); + packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pActionRequest,2,6); + packet(0x0437,clif->pWalkToXY,2); + packet(0x0438,clif->pUseSkillToPos,2,4,6,8); + packet(0x0802,clif->pDull/*,XXX*/); + packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0835,clif->pSearchStoreInfoNextPage,0); + packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x083c,clif->pUseSkillToId,2,4,6); + packet(0x0862,clif->pMoveFromKafra,2,4); + packet(0x086d,clif->pItemListWindowSelected,2,4,8); + packet(0x0879,clif->pChangeDir,2,4); + packet(0x087e,clif->pWantToConnection,2,6,10,14,18); + packet(0x0892,clif->pStoragePassword,0); + packet(0x089a,clif->pPartyInvite2,2); + packet(0x093a,clif->pPartyBookingRegisterReq,2,4); + packet(0x0947,clif->pMoveToKafra,2,4); + packet(0x095d,clif->pDull/*,XXX*/); + packet(0x0960,clif->pFriendsListAdd,2); + packet(0x0961,clif->pHomMenu,2,4); + packet(0x096a,clif->pGetCharNameRequest,2); #endif // 2015-03-11aRagexe, 2015-03-11bRagexe #if PACKETVER == 20150311 - packet(0x023b,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0360,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0436,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0438,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0815,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0838,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x086a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x086c,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x087b,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0883,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x0886,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0888,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0896,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x08a1,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x08a3,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x08a5,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x08a6,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x091c,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0928,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x092a,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x092e,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x093b,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0943,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0946,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0957,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0958,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x095b,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0963,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0964,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 + packet(0x023b,clif->pHomMenu,2,4); + packet(0x0360,clif->pReqCloseBuyingStore,0); + packet(0x0436,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0438,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0815,clif->pWantToConnection,2,6,10,14,18); + packet(0x0838,clif->pUseSkillToPos,2,4,6,8); + packet(0x086a,clif->pGetCharNameRequest,2); + packet(0x086c,clif->pStoragePassword,0); + packet(0x087b,clif->pPartyBookingRegisterReq,2,4); + packet(0x0883,clif->pItemListWindowSelected,2,4,8); + packet(0x0886,clif->pWalkToXY,2); + packet(0x0888,clif->pSearchStoreInfoNextPage,0); + packet(0x0896,clif->pActionRequest,2,6); + packet(0x08a1,clif->pUseSkillToId,2,4,6); + packet(0x08a3,clif->pTakeItem,2); + packet(0x08a5,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x08a6,clif->pFriendsListAdd,2); + packet(0x091c,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0928,clif->pChangeDir,2,4); + packet(0x092a,clif->pDull/*,XXX*/); + packet(0x092e,clif->pMoveFromKafra,2,4); + packet(0x093b,clif->pPartyInvite2,2); + packet(0x0943,clif->pSolveCharName,2); + packet(0x0946,clif->pDull/*,XXX*/); + packet(0x0957,clif->pReqClickBuyingStore,2); + packet(0x0958,clif->pTickSend,2); + packet(0x095b,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0963,clif->pDropItem,2,4); + packet(0x0964,clif->pMoveToKafra,2,4); #endif // 2015-03-18aRagexe, 2015-03-18bRagexe #if PACKETVER == 20150318 - packet(0x0202,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x023b,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0281,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0367,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x07e4,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0802,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x0811,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0862,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0863,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0873,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x0885,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0889,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x088c,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x089c,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x08a4,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x091d,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0920,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0927,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0928,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x0936,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0937,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x0938,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x093a,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x093c,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x094c,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0951,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x0958,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0959,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0960,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 + packet(0x0202,clif->pDull/*,XXX*/); + packet(0x023b,clif->pTickSend,2); + packet(0x0281,clif->pDull/*,XXX*/); + packet(0x0367,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x07e4,clif->pFriendsListAdd,2); + packet(0x0802,clif->pItemListWindowSelected,2,4,8); + packet(0x0811,clif->pWantToConnection,2,6,10,14,18); + packet(0x0862,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0863,clif->pReqClickBuyingStore,2); + packet(0x0873,clif->pStoragePassword,0); + packet(0x0885,clif->pReqCloseBuyingStore,0); + packet(0x0889,clif->pActionRequest,2,6); + packet(0x088c,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x089c,clif->pMoveToKafra,2,4); + packet(0x08a4,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x091d,clif->pMoveFromKafra,2,4); + packet(0x0920,clif->pDropItem,2,4); + packet(0x0927,clif->pChangeDir,2,4); + packet(0x0928,clif->pTakeItem,2); + packet(0x0936,clif->pUseSkillToId,2,4,6); + packet(0x0937,clif->pUseSkillToPos,2,4,6,8); + packet(0x0938,clif->pPartyInvite2,2); + packet(0x093a,clif->pWalkToXY,2); + packet(0x093c,clif->pSolveCharName,2); + packet(0x094c,clif->pHomMenu,2,4); + packet(0x0951,clif->pGetCharNameRequest,2); + packet(0x0958,clif->pSearchStoreInfoNextPage,0); + packet(0x0959,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0960,clif->pPartyBookingRegisterReq,2,4); #endif // 2015-03-25aRagexe #if PACKETVER == 20150325 - packet(0x0202,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0363,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0365,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0438,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0802,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0819,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x085d,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x086f,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x087c,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x087e,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0883,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x0885,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x0891,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x0893,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0897,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0899,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x08a1,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x08a7,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0919,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x092c,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x0931,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0932,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0938,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0940,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0947,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x094a,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0950,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x0954,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0969,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 + packet(0x0202,clif->pPartyInvite2,2); + packet(0x0363,clif->pDropItem,2,4); + packet(0x0365,clif->pUseSkillToId,2,4,6); + packet(0x0438,clif->pSearchStoreInfoNextPage,0); + packet(0x0802,clif->pDull/*,XXX*/); + packet(0x0819,clif->pReqClickBuyingStore,2); + packet(0x085d,clif->pSolveCharName,2); + packet(0x086f,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x087c,clif->pMoveToKafra,2,4); + packet(0x087e,clif->pChangeDir,2,4); + packet(0x0883,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x0885,clif->pUseSkillToPos,2,4,6,8); + packet(0x0891,clif->pGetCharNameRequest,2); + packet(0x0893,clif->pDull/*,XXX*/); + packet(0x0897,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0899,clif->pPartyBookingRegisterReq,2,4); + packet(0x08a1,clif->pActionRequest,2,6); + packet(0x08a7,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0919,clif->pStoragePassword,0); + packet(0x092c,clif->pTakeItem,2); + packet(0x0931,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0932,clif->pWalkToXY,2); + packet(0x0938,clif->pHomMenu,2,4); + packet(0x0940,clif->pFriendsListAdd,2); + packet(0x0947,clif->pReqCloseBuyingStore,0); + packet(0x094a,clif->pWantToConnection,2,6,10,14,18); + packet(0x0950,clif->pItemListWindowSelected,2,4,8); + packet(0x0954,clif->pTickSend,2); + packet(0x0969,clif->pMoveFromKafra,2,4); #endif // 2015-04-01aRagexe #if PACKETVER == 20150401 - packet(0x0362,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0367,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x0437,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x083c,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x085e,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x086f,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0875,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x087e,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x088c,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x088f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0895,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0898,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x089c,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x08a5,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x091b,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x091c,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0922,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0924,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0938,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0939,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x093a,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x093b,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x093e,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0946,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0949,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x094b,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0953,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x095f,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0964,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 + packet(0x0362,clif->pActionRequest,2,6); + packet(0x0367,clif->pGetCharNameRequest,2); + packet(0x0437,clif->pReqClickBuyingStore,2); + packet(0x083c,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x085e,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x086f,clif->pWalkToXY,2); + packet(0x0875,clif->pItemListWindowSelected,2,4,8); + packet(0x087e,clif->pDull/*,XXX*/); + packet(0x088c,clif->pDropItem,2,4); + packet(0x088f,clif->pTickSend,2); + packet(0x0895,clif->pMoveFromKafra,2,4); + packet(0x0898,clif->pHomMenu,2,4); + packet(0x089c,clif->pStoragePassword,0); + packet(0x08a5,clif->pMoveToKafra,2,4); + packet(0x091b,clif->pPartyInvite2,2); + packet(0x091c,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0922,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0924,clif->pPartyBookingRegisterReq,2,4); + packet(0x0938,clif->pReqCloseBuyingStore,0); + packet(0x0939,clif->pWantToConnection,2,6,10,14,18); + packet(0x093a,clif->pUseSkillToPos,2,4,6,8); + packet(0x093b,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x093e,clif->pSearchStoreInfoNextPage,0); + packet(0x0946,clif->pDull/*,XXX*/); + packet(0x0949,clif->pTakeItem,2); + packet(0x094b,clif->pUseSkillToId,2,4,6); + packet(0x0953,clif->pFriendsListAdd,2); + packet(0x095f,clif->pSolveCharName,2); + packet(0x0964,clif->pChangeDir,2,4); #endif // 2015-04-08aRagexe #if PACKETVER == 20150408 - packet(0x0819,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x085a,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x085c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x085e,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0865,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0868,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x086b,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x086e,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x0878,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x087e,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x087f,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0888,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0889,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x0891,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0898,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x089c,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x08a2,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x08a4,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x091b,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x091e,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x0922,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x092a,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0946,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x094f,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0955,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0957,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0959,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x095e,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x0963,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 + packet(0x0819,clif->pMoveFromKafra,2,4); + packet(0x085a,clif->pTickSend,2); + packet(0x085c,clif->pUseSkillToId,2,4,6); + packet(0x085e,clif->pHomMenu,2,4); + packet(0x0865,clif->pActionRequest,2,6); + packet(0x0868,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x086b,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x086e,clif->pUseSkillToPos,2,4,6,8); + packet(0x0878,clif->pPartyInvite2,2); + packet(0x087e,clif->pGetCharNameRequest,2); + packet(0x087f,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0888,clif->pMoveToKafra,2,4); + packet(0x0889,clif->pStoragePassword,0); + packet(0x0891,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0898,clif->pDropItem,2,4); + packet(0x089c,clif->pWalkToXY,2); + packet(0x08a2,clif->pSolveCharName,2); + packet(0x08a4,clif->pFriendsListAdd,2); + packet(0x091b,clif->pDull/*,XXX*/); + packet(0x091e,clif->pItemListWindowSelected,2,4,8); + packet(0x0922,clif->pChangeDir,2,4); + packet(0x092a,clif->pDull/*,XXX*/); + packet(0x0946,clif->pReqCloseBuyingStore,0); + packet(0x094f,clif->pPartyBookingRegisterReq,2,4); + packet(0x0955,clif->pReqClickBuyingStore,2); + packet(0x0957,clif->pWantToConnection,2,6,10,14,18); + packet(0x0959,clif->pTakeItem,2); + packet(0x095e,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x0963,clif->pSearchStoreInfoNextPage,0); #endif // 2015-04-15aRagexe #if PACKETVER == 20150415 - packet(0x0361,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0364,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0366,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0368,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0802,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0817,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x0835,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x085e,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0863,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0867,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0868,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x0869,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x086c,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0880,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x088e,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0891,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x0898,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x08a0,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0922,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x092e,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x093c,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x093e,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x0941,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0946,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x094d,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0953,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x095c,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0960,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x0961,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 + packet(0x0361,clif->pMoveToKafra,2,4); + packet(0x0364,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0366,clif->pWalkToXY,2); + packet(0x0368,clif->pReqClickBuyingStore,2); + packet(0x0802,clif->pSearchStoreInfoNextPage,0); + packet(0x0817,clif->pTakeItem,2); + packet(0x0835,clif->pDropItem,2,4); + packet(0x085e,clif->pDull/*,XXX*/); + packet(0x0863,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0867,clif->pPartyInvite2,2); + packet(0x0868,clif->pUseSkillToPos,2,4,6,8); + packet(0x0869,clif->pHomMenu,2,4); + packet(0x086c,clif->pActionRequest,2,6); + packet(0x0880,clif->pDull/*,XXX*/); + packet(0x088e,clif->pUseSkillToId,2,4,6); + packet(0x0891,clif->pGetCharNameRequest,2); + packet(0x0898,clif->pItemListWindowSelected,2,4,8); + packet(0x08a0,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0922,clif->pMoveFromKafra,2,4); + packet(0x092e,clif->pSolveCharName,2); + packet(0x093c,clif->pTickSend,2); + packet(0x093e,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x0941,clif->pWantToConnection,2,6,10,14,18); + packet(0x0946,clif->pReqCloseBuyingStore,0); + packet(0x094d,clif->pChangeDir,2,4); + packet(0x0953,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x095c,clif->pFriendsListAdd,2); + packet(0x0960,clif->pStoragePassword,0); + packet(0x0961,clif->pPartyBookingRegisterReq,2,4); #endif // 2015-04-22aRagexe #if PACKETVER == 20150422 - packet(0x0202,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x022d,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x023b,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0281,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x035f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0360,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0361,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0362,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0363,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0364,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0365,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0436,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0437,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0438,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x07e4,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x07ec,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0802,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0835,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x083c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0955,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x096a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 + packet(0x0202,clif->pChangeDir,2,4); + packet(0x022d,clif->pWantToConnection,2,6,10,14,18); + packet(0x023b,clif->pFriendsListAdd,2); + packet(0x0281,clif->pItemListWindowSelected,2,4,8); + packet(0x035f,clif->pTickSend,2); + packet(0x0360,clif->pReqClickBuyingStore,2); + packet(0x0361,clif->pHomMenu,2,4); + packet(0x0362,clif->pDropItem,2,4); + packet(0x0363,clif->pDull/*,XXX*/); + packet(0x0364,clif->pMoveFromKafra,2,4); + packet(0x0365,clif->pPartyBookingRegisterReq,2,4); + packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pActionRequest,2,6); + packet(0x0436,clif->pDull/*,XXX*/); + packet(0x0437,clif->pWalkToXY,2); + packet(0x0438,clif->pUseSkillToPos,2,4,6,8); + packet(0x07e4,clif->pTakeItem,2); + packet(0x07ec,clif->pMoveToKafra,2,4); + packet(0x0802,clif->pPartyInvite2,2); + packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0835,clif->pSearchStoreInfoNextPage,0); + packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x083c,clif->pUseSkillToId,2,4,6); + packet(0x0955,clif->pStoragePassword,0); + packet(0x096a,clif->pGetCharNameRequest,2); #endif // 2015-04-29aRagexe #if PACKETVER == 20150429 - packet(0x035f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0360,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0363,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0437,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0438,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0835,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x083c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0867,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x086a,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0886,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x088f,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0894,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0899,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x089f,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x08a6,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x08a8,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x08ad,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0929,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x093d,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0943,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x096a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 + packet(0x035f,clif->pTickSend,2); + packet(0x0360,clif->pReqClickBuyingStore,2); + packet(0x0363,clif->pChangeDir,2,4); + packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pActionRequest,2,6); + packet(0x0437,clif->pWalkToXY,2); + packet(0x0438,clif->pUseSkillToPos,2,4,6,8); + packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0835,clif->pSearchStoreInfoNextPage,0); + packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x083c,clif->pUseSkillToId,2,4,6); + packet(0x0867,clif->pStoragePassword,0); + packet(0x086a,clif->pWantToConnection,2,6,10,14,18); + packet(0x0886,clif->pPartyInvite2,2); + packet(0x088f,clif->pHomMenu,2,4); + packet(0x0894,clif->pDropItem,2,4); + packet(0x0899,clif->pMoveToKafra,2,4); + packet(0x089f,clif->pItemListWindowSelected,2,4,8); + packet(0x08a6,clif->pDull/*,XXX*/); + packet(0x08a8,clif->pDull/*,XXX*/); + packet(0x08ad,clif->pPartyBookingRegisterReq,2,4); + packet(0x0929,clif->pMoveFromKafra,2,4); + packet(0x093d,clif->pFriendsListAdd,2); + packet(0x0943,clif->pTakeItem,2); + packet(0x096a,clif->pGetCharNameRequest,2); #endif // 2015-05-07bRagexe, 2015-05-07cRagexe #if PACKETVER == 20150507 - packet(0x023b,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x035f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0360,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0362,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0437,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0438,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0817,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0835,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x083c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x085a,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0864,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0887,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0889,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0924,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x092e,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x093b,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0941,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0942,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0953,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x0955,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0958,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x096a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 + packet(0x023b,clif->pHomMenu,2,4); + packet(0x035f,clif->pTickSend,2); + packet(0x0360,clif->pReqClickBuyingStore,2); + packet(0x0362,clif->pReqCloseBuyingStore,0); + packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pActionRequest,2,6); + packet(0x0437,clif->pWalkToXY,2); + packet(0x0438,clif->pUseSkillToPos,2,4,6,8); + packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0817,clif->pTakeItem,2); + packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0835,clif->pSearchStoreInfoNextPage,0); + packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x083c,clif->pUseSkillToId,2,4,6); + packet(0x085a,clif->pMoveToKafra,2,4); + packet(0x0864,clif->pPartyInvite2,2); + packet(0x0887,clif->pDull/*,XXX*/); + packet(0x0889,clif->pPartyBookingRegisterReq,2,4); + packet(0x0924,clif->pWantToConnection,2,6,10,14,18); + packet(0x092e,clif->pItemListWindowSelected,2,4,8); + packet(0x093b,clif->pChangeDir,2,4); + packet(0x0941,clif->pMoveFromKafra,2,4); + packet(0x0942,clif->pDull/*,XXX*/); + packet(0x0953,clif->pStoragePassword,0); + packet(0x0955,clif->pDropItem,2,4); + packet(0x0958,clif->pFriendsListAdd,2); + packet(0x096a,clif->pGetCharNameRequest,2); #endif // 2015-05-13aRagexe #if PACKETVER == 20150513 - packet(0x022d,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x02c4,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x035f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0360,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0363,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0437,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0438,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0817,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0835,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x083c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0864,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0879,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0883,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0885,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x08a8,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0923,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x0924,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0927,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x094a,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0958,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x0960,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x096a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 + packet(0x022d,clif->pReqCloseBuyingStore,0); + packet(0x02c4,clif->pDull/*,XXX*/); + packet(0x035f,clif->pTickSend,2); + packet(0x0360,clif->pReqClickBuyingStore,2); + packet(0x0363,clif->pWantToConnection,2,6,10,14,18); + packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pActionRequest,2,6); + packet(0x0437,clif->pWalkToXY,2); + packet(0x0438,clif->pUseSkillToPos,2,4,6,8); + packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0817,clif->pHomMenu,2,4); + packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0835,clif->pSearchStoreInfoNextPage,0); + packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x083c,clif->pUseSkillToId,2,4,6); + packet(0x0864,clif->pMoveFromKafra,2,4); + packet(0x0879,clif->pMoveToKafra,2,4); + packet(0x0883,clif->pPartyBookingRegisterReq,2,4); + packet(0x0885,clif->pDropItem,2,4); + packet(0x08a8,clif->pFriendsListAdd,2); + packet(0x0923,clif->pStoragePassword,0); + packet(0x0924,clif->pChangeDir,2,4); + packet(0x0927,clif->pDull/*,XXX*/); + packet(0x094a,clif->pPartyInvite2,2); + packet(0x0958,clif->pTakeItem,2); + packet(0x0960,clif->pItemListWindowSelected,2,4,8); + packet(0x096a,clif->pGetCharNameRequest,2); #endif // 2015-05-20aRagexe #if PACKETVER == 20150520 - packet(0x0202,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0361,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0835,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x085e,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0865,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0868,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x087d,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x0880,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0882,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x088c,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x089c,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x089e,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x08a2,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x08ad,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x091c,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x091d,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0924,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x092b,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0931,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0936,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x093d,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0940,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0945,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x094e,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x095b,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x095f,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0960,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0961,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x096a,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 + packet(0x0202,clif->pTickSend,2); + packet(0x0361,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0835,clif->pReqCloseBuyingStore,0); + packet(0x085e,clif->pReqClickBuyingStore,2); + packet(0x0865,clif->pWantToConnection,2,6,10,14,18); + packet(0x0868,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x087d,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x0880,clif->pPartyInvite2,2); + packet(0x0882,clif->pItemListWindowSelected,2,4,8); + packet(0x088c,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x089c,clif->pStoragePassword,0); + packet(0x089e,clif->pDropItem,2,4); + packet(0x08a2,clif->pGetCharNameRequest,2); + packet(0x08ad,clif->pChangeDir,2,4); + packet(0x091c,clif->pTakeItem,2); + packet(0x091d,clif->pActionRequest,2,6); + packet(0x0924,clif->pMoveFromKafra,2,4); + packet(0x092b,clif->pWalkToXY,2); + packet(0x0931,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0936,clif->pUseSkillToId,2,4,6); + packet(0x093d,clif->pFriendsListAdd,2); + packet(0x0940,clif->pDull/*,XXX*/); + packet(0x0945,clif->pSolveCharName,2); + packet(0x094e,clif->pUseSkillToPos,2,4,6,8); + packet(0x095b,clif->pHomMenu,2,4); + packet(0x095f,clif->pSearchStoreInfoNextPage,0); + packet(0x0960,clif->pDull/*,XXX*/); + packet(0x0961,clif->pMoveToKafra,2,4); + packet(0x096a,clif->pPartyBookingRegisterReq,2,4); #endif // 2015-05-27aRagexe #if PACKETVER == 20150527 - packet(0x0202,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x022d,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x023b,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0281,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x035f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0360,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0361,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0362,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0363,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0364,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0365,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0436,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0437,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0438,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x07e4,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x07ec,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0802,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0835,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0838,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x083c,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x0940,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x096a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 + packet(0x0202,clif->pChangeDir,2,4); + packet(0x022d,clif->pWantToConnection,2,6,10,14,18); + packet(0x023b,clif->pFriendsListAdd,2); + packet(0x0281,clif->pItemListWindowSelected,2,4,8); + packet(0x035f,clif->pTickSend,2); + packet(0x0360,clif->pReqClickBuyingStore,2); + packet(0x0361,clif->pHomMenu,2,4); + packet(0x0362,clif->pDropItem,2,4); + packet(0x0363,clif->pDull/*,XXX*/); + packet(0x0364,clif->pMoveFromKafra,2,4); + packet(0x0365,clif->pPartyBookingRegisterReq,2,4); + packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pActionRequest,2,6); + packet(0x0436,clif->pDull/*,XXX*/); + packet(0x0437,clif->pWalkToXY,2); + packet(0x0438,clif->pUseSkillToPos,2,4,6,8); + packet(0x07e4,clif->pTakeItem,2); + packet(0x07ec,clif->pMoveToKafra,2,4); + packet(0x0802,clif->pPartyInvite2,2); + packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0835,clif->pSearchStoreInfoNextPage,0); + packet(0x0838,clif->pUseSkillToId,2,4,6); + packet(0x083c,clif->pStoragePassword,0); + packet(0x0940,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x096a,clif->pGetCharNameRequest,2); #endif // 2015-06-03aRagexe #if PACKETVER == 20150603 - packet(0x0361,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0437,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0811,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0819,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0860,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0864,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0867,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x086a,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0873,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0877,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x0881,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x0884,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x088b,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0897,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x089a,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x089d,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x089e,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x08a1,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x08ad,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x091b,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0922,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x092d,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x093b,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x093f,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0955,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0956,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0960,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0969,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x096a,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 + packet(0x0361,clif->pPartyInvite2,2); + packet(0x0437,clif->pDull/*,XXX*/); + packet(0x0811,clif->pChangeDir,2,4); + packet(0x0819,clif->pReqClickBuyingStore,2); + packet(0x0860,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0864,clif->pFriendsListAdd,2); + packet(0x0867,clif->pMoveToKafra,2,4); + packet(0x086a,clif->pMoveFromKafra,2,4); + packet(0x0873,clif->pActionRequest,2,6); + packet(0x0877,clif->pItemListWindowSelected,2,4,8); + packet(0x0881,clif->pGetCharNameRequest,2); + packet(0x0884,clif->pDull/*,XXX*/); + packet(0x088b,clif->pDropItem,2,4); + packet(0x0897,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x089a,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x089d,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x089e,clif->pTickSend,2); + packet(0x08a1,clif->pUseSkillToPos,2,4,6,8); + packet(0x08ad,clif->pWantToConnection,2,6,10,14,18); + packet(0x091b,clif->pSolveCharName,2); + packet(0x0922,clif->pStoragePassword,0); + packet(0x092d,clif->pTakeItem,2); + packet(0x093b,clif->pSearchStoreInfoNextPage,0); + packet(0x093f,clif->pPartyBookingRegisterReq,2,4); + packet(0x0955,clif->pHomMenu,2,4); + packet(0x0956,clif->pReqCloseBuyingStore,0); + packet(0x0960,clif->pUseSkillToId,2,4,6); + packet(0x0969,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x096a,clif->pWalkToXY,2); #endif // 2015-06-10aRagexe #if PACKETVER == 20150610 - packet(0x022d,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0438,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x07e4,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0835,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0870,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0872,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0877,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x087e,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x0884,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0885,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0888,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x088c,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x088d,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x088f,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0897,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x08a0,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x08ac,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0925,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x092b,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x092c,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x092e,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0932,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x093e,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0940,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x0946,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0949,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0957,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x095d,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x0964,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 + packet(0x022d,clif->pReqCloseBuyingStore,0); + packet(0x0438,clif->pItemListWindowSelected,2,4,8); + packet(0x07e4,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0835,clif->pDull/*,XXX*/); + packet(0x0870,clif->pPartyInvite2,2); + packet(0x0872,clif->pSolveCharName,2); + packet(0x0877,clif->pReqClickBuyingStore,2); + packet(0x087e,clif->pGetCharNameRequest,2); + packet(0x0884,clif->pMoveFromKafra,2,4); + packet(0x0885,clif->pHomMenu,2,4); + packet(0x0888,clif->pWantToConnection,2,6,10,14,18); + packet(0x088c,clif->pMoveToKafra,2,4); + packet(0x088d,clif->pPartyBookingRegisterReq,2,4); + packet(0x088f,clif->pWalkToXY,2); + packet(0x0897,clif->pFriendsListAdd,2); + packet(0x08a0,clif->pStoragePassword,0); + packet(0x08ac,clif->pDropItem,2,4); + packet(0x0925,clif->pTakeItem,2); + packet(0x092b,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x092c,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x092e,clif->pDull/*,XXX*/); + packet(0x0932,clif->pSearchStoreInfoNextPage,0); + packet(0x093e,clif->pActionRequest,2,6); + packet(0x0940,clif->pUseSkillToPos,2,4,6,8); + packet(0x0946,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0949,clif->pUseSkillToId,2,4,6); + packet(0x0957,clif->pTickSend,2); + packet(0x095d,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x0964,clif->pChangeDir,2,4); #endif // 2015-06-17aRagexe, 2015-06-18aRagexe #if PACKETVER == 20150617 || \ PACKETVER == 20150618 - packet(0x035f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0360,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x0362,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0363,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x0365,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0436,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0437,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0438,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x07ec,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0811,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0835,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x083c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0869,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x086a,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x086b,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0870,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x087a,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0886,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0894,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0940,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x094e,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x096a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 + packet(0x035f,clif->pTickSend,2); + packet(0x0360,clif->pTakeItem,2); + packet(0x0362,clif->pReqClickBuyingStore,2); + packet(0x0363,clif->pStoragePassword,0); + packet(0x0365,clif->pItemListWindowSelected,2,4,8); + packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pActionRequest,2,6); + packet(0x0436,clif->pWantToConnection,2,6,10,14,18); + packet(0x0437,clif->pWalkToXY,2); + packet(0x0438,clif->pUseSkillToPos,2,4,6,8); + packet(0x07ec,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0811,clif->pDull/*,XXX*/); + packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0835,clif->pSearchStoreInfoNextPage,0); + packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x083c,clif->pUseSkillToId,2,4,6); + packet(0x0869,clif->pMoveFromKafra,2,4); + packet(0x086a,clif->pPartyBookingRegisterReq,2,4); + packet(0x086b,clif->pChangeDir,2,4); + packet(0x0870,clif->pPartyInvite2,2); + packet(0x087a,clif->pMoveToKafra,2,4); + packet(0x0886,clif->pHomMenu,2,4); + packet(0x0894,clif->pDull/*,XXX*/); + packet(0x0940,clif->pDropItem,2,4); + packet(0x094e,clif->pFriendsListAdd,2); + packet(0x096a,clif->pGetCharNameRequest,2); #endif // 2015-06-24aRagexe #if PACKETVER == 20150624 - packet(0x022d,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0281,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x035f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0360,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0362,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0363,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0364,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0365,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0436,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0437,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0438,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x07e4,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x07ec,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0802,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0835,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x083c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0870,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x0940,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0941,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0966,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x096a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 + packet(0x022d,clif->pWantToConnection,2,6,10,14,18); + packet(0x0281,clif->pItemListWindowSelected,2,4,8); + packet(0x035f,clif->pTickSend,2); + packet(0x0360,clif->pReqClickBuyingStore,2); + packet(0x0362,clif->pDropItem,2,4); + packet(0x0363,clif->pDull/*,XXX*/); + packet(0x0364,clif->pPartyBookingRegisterReq,2,4); + packet(0x0365,clif->pHomMenu,2,4); + packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pActionRequest,2,6); + packet(0x0436,clif->pDull/*,XXX*/); + packet(0x0437,clif->pWalkToXY,2); + packet(0x0438,clif->pUseSkillToPos,2,4,6,8); + packet(0x07e4,clif->pTakeItem,2); + packet(0x07ec,clif->pMoveToKafra,2,4); + packet(0x0802,clif->pPartyInvite2,2); + packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0835,clif->pSearchStoreInfoNextPage,0); + packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x083c,clif->pUseSkillToId,2,4,6); + packet(0x0870,clif->pStoragePassword,0); + packet(0x0940,clif->pMoveFromKafra,2,4); + packet(0x0941,clif->pFriendsListAdd,2); + packet(0x0966,clif->pChangeDir,2,4); + packet(0x096a,clif->pGetCharNameRequest,2); #endif // 2015-07-01bRagexe, 2015-07-02aRagexe #if PACKETVER == 20150701 || \ PACKETVER == 20150702 - packet(0x023b,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0281,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x07e4,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0802,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x086d,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x087d,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x087e,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x0883,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x088e,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0893,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x08a0,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x08a4,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x08a5,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x08a6,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x08ad,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x0919,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x0923,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0928,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x092c,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x093e,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x093f,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x0946,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x094e,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0954,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0956,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0958,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x095f,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0960,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0968,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 + packet(0x023b,clif->pWantToConnection,2,6,10,14,18); + packet(0x0281,clif->pSearchStoreInfoNextPage,0); + packet(0x07e4,clif->pMoveFromKafra,2,4); + packet(0x0802,clif->pGetCharNameRequest,2); + packet(0x086d,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x087d,clif->pTickSend,2); + packet(0x087e,clif->pItemListWindowSelected,2,4,8); + packet(0x0883,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x088e,clif->pReqCloseBuyingStore,0); + packet(0x0893,clif->pDull/*,XXX*/); + packet(0x08a0,clif->pDropItem,2,4); + packet(0x08a4,clif->pReqClickBuyingStore,2); + packet(0x08a5,clif->pPartyInvite2,2); + packet(0x08a6,clif->pUseSkillToId,2,4,6); + packet(0x08ad,clif->pUseSkillToPos,2,4,6,8); + packet(0x0919,clif->pStoragePassword,0); + packet(0x0923,clif->pDull/*,XXX*/); + packet(0x0928,clif->pMoveToKafra,2,4); + packet(0x092c,clif->pWalkToXY,2); + packet(0x093e,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x093f,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x0946,clif->pTakeItem,2); + packet(0x094e,clif->pSolveCharName,2); + packet(0x0954,clif->pHomMenu,2,4); + packet(0x0956,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0958,clif->pActionRequest,2,6); + packet(0x095f,clif->pFriendsListAdd,2); + packet(0x0960,clif->pPartyBookingRegisterReq,2,4); + packet(0x0968,clif->pChangeDir,2,4); #endif // 2015-07-08cRagexe #if PACKETVER == 20150708 - packet(0x022d,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x02c4,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x035f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0360,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0366,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0368,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0369,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0436,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0438,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x0811,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0835,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x083c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x085e,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0872,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x087f,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0884,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x089d,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x08a5,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x08ad,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x091f,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x092a,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x093c,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x095b,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0962,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x096a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 + packet(0x022d,clif->pSolveCharName,2); + packet(0x02c4,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x035f,clif->pTickSend,2); + packet(0x0360,clif->pReqClickBuyingStore,2); + packet(0x0366,clif->pPartyInvite2,2); + packet(0x0368,clif->pHomMenu,2,4); + packet(0x0369,clif->pActionRequest,2,6); + packet(0x0436,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0438,clif->pUseSkillToPos,2,4,6,8); + packet(0x0811,clif->pWantToConnection,2,6,10,14,18); + packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0835,clif->pSearchStoreInfoNextPage,0); + packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x083c,clif->pUseSkillToId,2,4,6); + packet(0x085e,clif->pMoveToKafra,2,4); + packet(0x0872,clif->pTakeItem,2); + packet(0x087f,clif->pDull/*,XXX*/); + packet(0x0884,clif->pWalkToXY,2); + packet(0x089d,clif->pChangeDir,2,4); + packet(0x08a5,clif->pItemListWindowSelected,2,4,8); + packet(0x08ad,clif->pStoragePassword,0); + packet(0x091f,clif->pPartyBookingRegisterReq,2,4); + packet(0x092a,clif->pMoveFromKafra,2,4); + packet(0x093c,clif->pFriendsListAdd,2); + packet(0x095b,clif->pDropItem,2,4); + packet(0x0962,clif->pDull/*,XXX*/); + packet(0x096a,clif->pGetCharNameRequest,2); #endif // 2015-07-15aRagexe #if PACKETVER == 20150715 - packet(0x023b,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0362,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x0364,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x0436,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0437,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0438,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0835,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x083c,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x085c,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x086f,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0873,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0879,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x087c,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x087f,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0886,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0895,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0896,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0897,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0899,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x089a,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x08a4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x08ac,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0917,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x093e,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0944,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0950,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0956,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x0961,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0965,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 + packet(0x023b,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0362,clif->pUseSkillToPos,2,4,6,8); + packet(0x0364,clif->pItemListWindowSelected,2,4,8); + packet(0x0436,clif->pSolveCharName,2); + packet(0x0437,clif->pUseSkillToId,2,4,6); + packet(0x0438,clif->pWalkToXY,2); + packet(0x0835,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x083c,clif->pActionRequest,2,6); + packet(0x085c,clif->pGetCharNameRequest,2); + packet(0x086f,clif->pMoveFromKafra,2,4); + packet(0x0873,clif->pTickSend,2); + packet(0x0879,clif->pWantToConnection,2,6,10,14,18); + packet(0x087c,clif->pDropItem,2,4); + packet(0x087f,clif->pSearchStoreInfoNextPage,0); + packet(0x0886,clif->pDull/*,XXX*/); + packet(0x0895,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0896,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0897,clif->pPartyInvite2,2); + packet(0x0899,clif->pReqCloseBuyingStore,0); + packet(0x089a,clif->pTakeItem,2); + packet(0x08a4,clif->pDull/*,XXX*/); + packet(0x08ac,clif->pChangeDir,2,4); + packet(0x0917,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x093e,clif->pHomMenu,2,4); + packet(0x0944,clif->pFriendsListAdd,2); + packet(0x0950,clif->pReqClickBuyingStore,2); + packet(0x0956,clif->pStoragePassword,0); + packet(0x0961,clif->pMoveToKafra,2,4); + packet(0x0965,clif->pPartyBookingRegisterReq,2,4); #endif // 2015-07-22bRagexe #if PACKETVER == 20150722 - packet(0x023b,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0281,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x0360,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0361,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0368,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0436,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0811,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0815,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0817,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0869,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x0878,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x087b,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x087d,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x087e,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0880,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0884,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x088d,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0899,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x08a8,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0919,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0921,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0925,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x092e,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x093c,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x093d,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x094c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x094f,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0951,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x0958,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 + packet(0x023b,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0281,clif->pGetCharNameRequest,2); + packet(0x0360,clif->pActionRequest,2,6); + packet(0x0361,clif->pDropItem,2,4); + packet(0x0368,clif->pPartyInvite2,2); + packet(0x0436,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0811,clif->pSearchStoreInfoNextPage,0); + packet(0x0815,clif->pReqCloseBuyingStore,0); + packet(0x0817,clif->pWantToConnection,2,6,10,14,18); + packet(0x0869,clif->pTakeItem,2); + packet(0x0878,clif->pUseSkillToPos,2,4,6,8); + packet(0x087b,clif->pPartyBookingRegisterReq,2,4); + packet(0x087d,clif->pWalkToXY,2); + packet(0x087e,clif->pSolveCharName,2); + packet(0x0880,clif->pReqClickBuyingStore,2); + packet(0x0884,clif->pHomMenu,2,4); + packet(0x088d,clif->pTickSend,2); + packet(0x0899,clif->pMoveFromKafra,2,4); + packet(0x08a8,clif->pChangeDir,2,4); + packet(0x0919,clif->pDull/*,XXX*/); + packet(0x0921,clif->pMoveToKafra,2,4); + packet(0x0925,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x092e,clif->pFriendsListAdd,2); + packet(0x093c,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x093d,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x094c,clif->pUseSkillToId,2,4,6); + packet(0x094f,clif->pDull/*,XXX*/); + packet(0x0951,clif->pItemListWindowSelected,2,4,8); + packet(0x0958,clif->pStoragePassword,0); #endif // 2015-07-29aRagexe #if PACKETVER == 20150729 - packet(0x0437,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0438,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x085b,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0860,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x086c,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x086d,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x086e,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x086f,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0870,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x0880,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x0881,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0886,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x089a,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x089b,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x08a3,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x08a4,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x08ac,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x08ad,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0920,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x092b,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x092f,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x093a,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x093f,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0940,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x094f,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0955,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x095e,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0961,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x096a,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 + packet(0x0437,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0438,clif->pHomMenu,2,4); + packet(0x085b,clif->pDull/*,XXX*/); + packet(0x0860,clif->pTakeItem,2); + packet(0x086c,clif->pMoveToKafra,2,4); + packet(0x086d,clif->pPartyBookingRegisterReq,2,4); + packet(0x086e,clif->pWalkToXY,2); + packet(0x086f,clif->pMoveFromKafra,2,4); + packet(0x0870,clif->pGetCharNameRequest,2); + packet(0x0880,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x0881,clif->pActionRequest,2,6); + packet(0x0886,clif->pSolveCharName,2); + packet(0x089a,clif->pUseSkillToPos,2,4,6,8); + packet(0x089b,clif->pFriendsListAdd,2); + packet(0x08a3,clif->pDull/*,XXX*/); + packet(0x08a4,clif->pChangeDir,2,4); + packet(0x08ac,clif->pPartyInvite2,2); + packet(0x08ad,clif->pReqClickBuyingStore,2); + packet(0x0920,clif->pSearchStoreInfoNextPage,0); + packet(0x092b,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x092f,clif->pUseSkillToId,2,4,6); + packet(0x093a,clif->pTickSend,2); + packet(0x093f,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0940,clif->pDropItem,2,4); + packet(0x094f,clif->pWantToConnection,2,6,10,14,18); + packet(0x0955,clif->pItemListWindowSelected,2,4,8); + packet(0x095e,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0961,clif->pStoragePassword,0); + packet(0x096a,clif->pReqCloseBuyingStore,0); #endif // 2015-08-05aRagexe #if PACKETVER == 20150805 - packet(0x0202,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x022d,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x023b,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0281,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x035f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0360,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0361,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0362,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0363,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0364,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0365,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0436,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0437,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0438,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x07e4,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x07ec,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0802,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0835,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x083c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x088a,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x096a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 + packet(0x0202,clif->pChangeDir,2,4); + packet(0x022d,clif->pWantToConnection,2,6,10,14,18); + packet(0x023b,clif->pFriendsListAdd,2); + packet(0x0281,clif->pItemListWindowSelected,2,4,8); + packet(0x035f,clif->pTickSend,2); + packet(0x0360,clif->pReqClickBuyingStore,2); + packet(0x0361,clif->pHomMenu,2,4); + packet(0x0362,clif->pDropItem,2,4); + packet(0x0363,clif->pDull/*,XXX*/); + packet(0x0364,clif->pMoveFromKafra,2,4); + packet(0x0365,clif->pPartyBookingRegisterReq,2,4); + packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pActionRequest,2,6); + packet(0x0436,clif->pDull/*,XXX*/); + packet(0x0437,clif->pWalkToXY,2); + packet(0x0438,clif->pUseSkillToPos,2,4,6,8); + packet(0x07e4,clif->pTakeItem,2); + packet(0x07ec,clif->pMoveToKafra,2,4); + packet(0x0802,clif->pPartyInvite2,2); + packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0835,clif->pSearchStoreInfoNextPage,0); + packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x083c,clif->pUseSkillToId,2,4,6); + packet(0x088a,clif->pStoragePassword,0); + packet(0x096a,clif->pGetCharNameRequest,2); #endif // 2015-08-12aRagexe #if PACKETVER == 20150812 - packet(0x0202,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x022d,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x023b,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0281,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x035f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0360,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0361,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0362,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0363,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0364,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0365,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0436,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0437,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0438,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x07e4,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x07ec,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0802,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0835,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x083c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x087f,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x096a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 + packet(0x0202,clif->pChangeDir,2,4); + packet(0x022d,clif->pWantToConnection,2,6,10,14,18); + packet(0x023b,clif->pFriendsListAdd,2); + packet(0x0281,clif->pItemListWindowSelected,2,4,8); + packet(0x035f,clif->pTickSend,2); + packet(0x0360,clif->pReqClickBuyingStore,2); + packet(0x0361,clif->pHomMenu,2,4); + packet(0x0362,clif->pDropItem,2,4); + packet(0x0363,clif->pDull/*,XXX*/); + packet(0x0364,clif->pMoveFromKafra,2,4); + packet(0x0365,clif->pPartyBookingRegisterReq,2,4); + packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pActionRequest,2,6); + packet(0x0436,clif->pDull/*,XXX*/); + packet(0x0437,clif->pWalkToXY,2); + packet(0x0438,clif->pUseSkillToPos,2,4,6,8); + packet(0x07e4,clif->pTakeItem,2); + packet(0x07ec,clif->pMoveToKafra,2,4); + packet(0x0802,clif->pPartyInvite2,2); + packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0835,clif->pSearchStoreInfoNextPage,0); + packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x083c,clif->pUseSkillToId,2,4,6); + packet(0x087f,clif->pStoragePassword,0); + packet(0x096a,clif->pGetCharNameRequest,2); #endif // 2015-08-19aRagexe #if PACKETVER == 20150819 - packet(0x0202,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x022d,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0281,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x035f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0360,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0436,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0437,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0438,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0835,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x085d,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0862,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0865,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0871,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0888,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0919,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x091e,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x0927,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0940,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0961,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0967,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x096a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 + packet(0x0202,clif->pItemListWindowSelected,2,4,8); + packet(0x022d,clif->pUseSkillToId,2,4,6); + packet(0x0281,clif->pTakeItem,2); + packet(0x035f,clif->pTickSend,2); + packet(0x0360,clif->pReqClickBuyingStore,2); + packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pActionRequest,2,6); + packet(0x0436,clif->pDull/*,XXX*/); + packet(0x0437,clif->pWalkToXY,2); + packet(0x0438,clif->pUseSkillToPos,2,4,6,8); + packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0835,clif->pSearchStoreInfoNextPage,0); + packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x085d,clif->pMoveFromKafra,2,4); + packet(0x0862,clif->pDull/*,XXX*/); + packet(0x0865,clif->pFriendsListAdd,2); + packet(0x0871,clif->pPartyBookingRegisterReq,2,4); + packet(0x0888,clif->pHomMenu,2,4); + packet(0x0919,clif->pMoveToKafra,2,4); + packet(0x091e,clif->pStoragePassword,0); + packet(0x0927,clif->pWantToConnection,2,6,10,14,18); + packet(0x0940,clif->pDropItem,2,4); + packet(0x0961,clif->pPartyInvite2,2); + packet(0x0967,clif->pChangeDir,2,4); + packet(0x096a,clif->pGetCharNameRequest,2); #endif // 2015-08-26aRagexe, 2015-08-26bRagexe #if PACKETVER == 20150826 - packet(0x0362,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x0368,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0436,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x07ec,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0819,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0861,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0865,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x086b,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x0870,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x087b,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x088b,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x088d,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0890,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0891,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x08a0,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x08a1,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x08a4,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x08a8,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0924,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0928,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x092e,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x093b,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x0945,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x094f,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0951,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0959,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x0964,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0968,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0969,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 + packet(0x0362,clif->pStoragePassword,0); + packet(0x0368,clif->pMoveFromKafra,2,4); + packet(0x0436,clif->pPartyBookingRegisterReq,2,4); + packet(0x07ec,clif->pActionRequest,2,6); + packet(0x0819,clif->pReqClickBuyingStore,2); + packet(0x0861,clif->pDull/*,XXX*/); + packet(0x0865,clif->pWalkToXY,2); + packet(0x086b,clif->pUseSkillToPos,2,4,6,8); + packet(0x0870,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x087b,clif->pSolveCharName,2); + packet(0x088b,clif->pPartyInvite2,2); + packet(0x088d,clif->pFriendsListAdd,2); + packet(0x0890,clif->pSearchStoreInfoNextPage,0); + packet(0x0891,clif->pUseSkillToId,2,4,6); + packet(0x08a0,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x08a1,clif->pMoveToKafra,2,4); + packet(0x08a4,clif->pTakeItem,2); + packet(0x08a8,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0924,clif->pDropItem,2,4); + packet(0x0928,clif->pReqCloseBuyingStore,0); + packet(0x092e,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x093b,clif->pGetCharNameRequest,2); + packet(0x0945,clif->pHomMenu,2,4); + packet(0x094f,clif->pChangeDir,2,4); + packet(0x0951,clif->pTickSend,2); + packet(0x0959,clif->pItemListWindowSelected,2,4,8); + packet(0x0964,clif->pWantToConnection,2,6,10,14,18); + packet(0x0968,clif->pDull/*,XXX*/); + packet(0x0969,clif->pSearchStoreInfo,2,4,5,9,13,14,15); #endif // 2015-09-02aRagexe #if PACKETVER == 20150902 - packet(0x023b,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0360,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0367,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0802,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x083c,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x085b,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x085d,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0863,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x086f,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x087b,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x087f,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0886,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x0887,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0889,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x088d,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0892,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x0897,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0899,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x08a9,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0923,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0928,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x092a,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x092d,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0941,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0947,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x094f,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0953,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x095b,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0960,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 + packet(0x023b,clif->pPartyBookingRegisterReq,2,4); + packet(0x0360,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0367,clif->pTickSend,2); + packet(0x0802,clif->pStoragePassword,0); + packet(0x083c,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x085b,clif->pActionRequest,2,6); + packet(0x085d,clif->pSolveCharName,2); + packet(0x0863,clif->pUseSkillToId,2,4,6); + packet(0x086f,clif->pUseSkillToPos,2,4,6,8); + packet(0x087b,clif->pWalkToXY,2); + packet(0x087f,clif->pDull/*,XXX*/); + packet(0x0886,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x0887,clif->pDull/*,XXX*/); + packet(0x0889,clif->pReqCloseBuyingStore,0); + packet(0x088d,clif->pMoveFromKafra,2,4); + packet(0x0892,clif->pItemListWindowSelected,2,4,8); + packet(0x0897,clif->pMoveToKafra,2,4); + packet(0x0899,clif->pGetCharNameRequest,2); + packet(0x08a9,clif->pDropItem,2,4); + packet(0x0923,clif->pFriendsListAdd,2); + packet(0x0928,clif->pTakeItem,2); + packet(0x092a,clif->pHomMenu,2,4); + packet(0x092d,clif->pPartyInvite2,2); + packet(0x0941,clif->pChangeDir,2,4); + packet(0x0947,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x094f,clif->pReqClickBuyingStore,2); + packet(0x0953,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x095b,clif->pWantToConnection,2,6,10,14,18); + packet(0x0960,clif->pSearchStoreInfoNextPage,0); #endif // 2015-09-09aRagexe #if PACKETVER == 20150909 - packet(0x023b,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x035f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0360,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0361,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x0365,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x0437,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0438,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0835,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x083c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0861,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0871,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x087b,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0883,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x0886,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x088f,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0895,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0928,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0940,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0941,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x095e,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0962,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x096a,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 + packet(0x023b,clif->pActionRequest,2,6); + packet(0x035f,clif->pTickSend,2); + packet(0x0360,clif->pReqCloseBuyingStore,0); + packet(0x0361,clif->pGetCharNameRequest,2); + packet(0x0365,clif->pWalkToXY,2); + packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pStoragePassword,0); + packet(0x0437,clif->pMoveFromKafra,2,4); + packet(0x0438,clif->pUseSkillToPos,2,4,6,8); + packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0835,clif->pSearchStoreInfoNextPage,0); + packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x083c,clif->pUseSkillToId,2,4,6); + packet(0x0861,clif->pDull/*,XXX*/); + packet(0x0871,clif->pItemListWindowSelected,2,4,8); + packet(0x087b,clif->pPartyBookingRegisterReq,2,4); + packet(0x0883,clif->pTakeItem,2); + packet(0x0886,clif->pWantToConnection,2,6,10,14,18); + packet(0x088f,clif->pPartyInvite2,2); + packet(0x0895,clif->pFriendsListAdd,2); + packet(0x0928,clif->pDull/*,XXX*/); + packet(0x0940,clif->pReqClickBuyingStore,2); + packet(0x0941,clif->pHomMenu,2,4); + packet(0x095e,clif->pDropItem,2,4); + packet(0x0962,clif->pMoveToKafra,2,4); + packet(0x096a,clif->pChangeDir,2,4); #endif // 2015-09-16aRagexe, 2015-09-16cRagexe #if PACKETVER == 20150916 - packet(0x022d,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x0817,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0835,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x085e,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0869,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0873,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0877,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x087f,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x0881,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x089b,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x089c,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x089e,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x08ac,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0920,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0924,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x092e,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x092f,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0934,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0936,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0938,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x093e,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0941,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x0942,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0948,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x094f,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x095a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x0960,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0961,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x0969,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 + packet(0x022d,clif->pUseSkillToPos,2,4,6,8); + packet(0x0817,clif->pSearchStoreInfoNextPage,0); + packet(0x0835,clif->pReqClickBuyingStore,2); + packet(0x085e,clif->pMoveFromKafra,2,4); + packet(0x0869,clif->pActionRequest,2,6); + packet(0x0873,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0877,clif->pWalkToXY,2); + packet(0x087f,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x0881,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x089b,clif->pPartyBookingRegisterReq,2,4); + packet(0x089c,clif->pTakeItem,2); + packet(0x089e,clif->pFriendsListAdd,2); + packet(0x08ac,clif->pTickSend,2); + packet(0x0920,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0924,clif->pPartyInvite2,2); + packet(0x092e,clif->pReqCloseBuyingStore,0); + packet(0x092f,clif->pDropItem,2,4); + packet(0x0934,clif->pMoveToKafra,2,4); + packet(0x0936,clif->pChangeDir,2,4); + packet(0x0938,clif->pDull/*,XXX*/); + packet(0x093e,clif->pUseSkillToId,2,4,6); + packet(0x0941,clif->pStoragePassword,0); + packet(0x0942,clif->pSolveCharName,2); + packet(0x0948,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x094f,clif->pDull/*,XXX*/); + packet(0x095a,clif->pGetCharNameRequest,2); + packet(0x0960,clif->pHomMenu,2,4); + packet(0x0961,clif->pItemListWindowSelected,2,4,8); + packet(0x0969,clif->pWantToConnection,2,6,10,14,18); #endif // 2015-09-23bRagexe, 2015-09-23cRagexe, 2015-09-23dRagexe, 2015-09-23eRagexe, 2015-09-23fRagexe #if PACKETVER == 20150923 - packet(0x0361,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0366,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x07e4,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x0817,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x085c,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x085d,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0864,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x086e,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x086f,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0870,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0879,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x087f,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0886,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x088e,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0892,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0895,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x089b,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x089f,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x08a0,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x08a2,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x08a5,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x08a6,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x091e,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x092b,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x0930,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0936,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x093b,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0951,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0961,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 + packet(0x0361,clif->pPartyBookingRegisterReq,2,4); + packet(0x0366,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x07e4,clif->pStoragePassword,0); + packet(0x0817,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x085c,clif->pSolveCharName,2); + packet(0x085d,clif->pFriendsListAdd,2); + packet(0x0864,clif->pHomMenu,2,4); + packet(0x086e,clif->pReqCloseBuyingStore,0); + packet(0x086f,clif->pUseSkillToId,2,4,6); + packet(0x0870,clif->pChangeDir,2,4); + packet(0x0879,clif->pMoveFromKafra,2,4); + packet(0x087f,clif->pSearchStoreInfoNextPage,0); + packet(0x0886,clif->pWalkToXY,2); + packet(0x088e,clif->pReqClickBuyingStore,2); + packet(0x0892,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0895,clif->pDull/*,XXX*/); + packet(0x089b,clif->pUseSkillToPos,2,4,6,8); + packet(0x089f,clif->pMoveToKafra,2,4); + packet(0x08a0,clif->pTickSend,2); + packet(0x08a2,clif->pWantToConnection,2,6,10,14,18); + packet(0x08a5,clif->pGetCharNameRequest,2); + packet(0x08a6,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x091e,clif->pDull/*,XXX*/); + packet(0x092b,clif->pTakeItem,2); + packet(0x0930,clif->pDropItem,2,4); + packet(0x0936,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x093b,clif->pPartyInvite2,2); + packet(0x0951,clif->pActionRequest,2,6); + packet(0x0961,clif->pItemListWindowSelected,2,4,8); #endif // 2015-10-01aRagexe #if PACKETVER == 20151001 - packet(0x0202,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x022d,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x023b,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0281,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x035f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0360,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0361,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0362,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0363,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0364,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0365,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0436,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0437,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0438,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x07e4,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x07ec,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0802,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0835,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x083c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0960,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x096a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 + packet(0x0202,clif->pChangeDir,2,4); + packet(0x022d,clif->pWantToConnection,2,6,10,14,18); + packet(0x023b,clif->pFriendsListAdd,2); + packet(0x0281,clif->pItemListWindowSelected,2,4,8); + packet(0x035f,clif->pTickSend,2); + packet(0x0360,clif->pReqClickBuyingStore,2); + packet(0x0361,clif->pHomMenu,2,4); + packet(0x0362,clif->pDropItem,2,4); + packet(0x0363,clif->pDull/*,XXX*/); + packet(0x0364,clif->pMoveFromKafra,2,4); + packet(0x0365,clif->pPartyBookingRegisterReq,2,4); + packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pActionRequest,2,6); + packet(0x0436,clif->pDull/*,XXX*/); + packet(0x0437,clif->pWalkToXY,2); + packet(0x0438,clif->pUseSkillToPos,2,4,6,8); + packet(0x07e4,clif->pTakeItem,2); + packet(0x07ec,clif->pMoveToKafra,2,4); + packet(0x0802,clif->pPartyInvite2,2); + packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0835,clif->pSearchStoreInfoNextPage,0); + packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x083c,clif->pUseSkillToId,2,4,6); + packet(0x0960,clif->pStoragePassword,0); + packet(0x096a,clif->pGetCharNameRequest,2); #endif // 2015-10-07aRagexe #if PACKETVER == 20151007 - packet(0x0202,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0281,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x035f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0360,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0362,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0363,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0364,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0365,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0437,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0438,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x07e4,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x07ec,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0802,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0811,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0835,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x083c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0862,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x093f,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x095f,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0961,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0967,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x096a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 + packet(0x0202,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0281,clif->pItemListWindowSelected,2,4,8); + packet(0x035f,clif->pTickSend,2); + packet(0x0360,clif->pReqClickBuyingStore,2); + packet(0x0362,clif->pDropItem,2,4); + packet(0x0363,clif->pDull/*,XXX*/); + packet(0x0364,clif->pMoveFromKafra,2,4); + packet(0x0365,clif->pPartyBookingRegisterReq,2,4); + packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pActionRequest,2,6); + packet(0x0437,clif->pWalkToXY,2); + packet(0x0438,clif->pUseSkillToPos,2,4,6,8); + packet(0x07e4,clif->pTakeItem,2); + packet(0x07ec,clif->pMoveToKafra,2,4); + packet(0x0802,clif->pPartyInvite2,2); + packet(0x0811,clif->pFriendsListAdd,2); + packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0835,clif->pSearchStoreInfoNextPage,0); + packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x083c,clif->pUseSkillToId,2,4,6); + packet(0x0862,clif->pDull/*,XXX*/); + packet(0x093f,clif->pHomMenu,2,4); + packet(0x095f,clif->pChangeDir,2,4); + packet(0x0961,clif->pWantToConnection,2,6,10,14,18); + packet(0x0967,clif->pStoragePassword,0); + packet(0x096a,clif->pGetCharNameRequest,2); #endif // 2015-10-14bRagexe #if PACKETVER == 20151014 - packet(0x0202,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0817,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0838,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x085a,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x085c,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0860,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0863,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0867,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0872,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0874,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x0881,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0883,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0884,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x0889,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x088e,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x089a,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x089b,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x089f,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x08aa,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x091c,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x091d,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x0930,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0934,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0944,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x094f,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0956,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x095e,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0961,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x0964,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 + packet(0x0202,clif->pPartyBookingRegisterReq,2,4); + packet(0x0817,clif->pFriendsListAdd,2); + packet(0x0838,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x085a,clif->pUseSkillToId,2,4,6); + packet(0x085c,clif->pActionRequest,2,6); + packet(0x0860,clif->pDropItem,2,4); + packet(0x0863,clif->pChangeDir,2,4); + packet(0x0867,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0872,clif->pHomMenu,2,4); + packet(0x0874,clif->pUseSkillToPos,2,4,6,8); + packet(0x0881,clif->pMoveFromKafra,2,4); + packet(0x0883,clif->pTickSend,2); + packet(0x0884,clif->pItemListWindowSelected,2,4,8); + packet(0x0889,clif->pReqClickBuyingStore,2); + packet(0x088e,clif->pDull/*,XXX*/); + packet(0x089a,clif->pDull/*,XXX*/); + packet(0x089b,clif->pReqCloseBuyingStore,0); + packet(0x089f,clif->pWalkToXY,2); + packet(0x08aa,clif->pTakeItem,2); + packet(0x091c,clif->pPartyInvite2,2); + packet(0x091d,clif->pStoragePassword,0); + packet(0x0930,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0934,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0944,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x094f,clif->pSearchStoreInfoNextPage,0); + packet(0x0956,clif->pSolveCharName,2); + packet(0x095e,clif->pMoveToKafra,2,4); + packet(0x0961,clif->pGetCharNameRequest,2); + packet(0x0964,clif->pWantToConnection,2,6,10,14,18); #endif // 2015-10-21aRagexe, 2015-10-22aRagexe #if PACKETVER == 20151021 || \ PACKETVER == 20151022 - packet(0x023b,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0281,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x02c4,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x035f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0360,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0361,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0362,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0363,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0364,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0365,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0436,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0437,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0438,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x07e4,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x07ec,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0835,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x083c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x086a,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x091d,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0940,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x096a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 + packet(0x023b,clif->pWantToConnection,2,6,10,14,18); + packet(0x0281,clif->pItemListWindowSelected,2,4,8); + packet(0x02c4,clif->pStoragePassword,0); + packet(0x035f,clif->pTickSend,2); + packet(0x0360,clif->pReqClickBuyingStore,2); + packet(0x0361,clif->pMoveToKafra,2,4); + packet(0x0362,clif->pDropItem,2,4); + packet(0x0363,clif->pDull/*,XXX*/); + packet(0x0364,clif->pMoveFromKafra,2,4); + packet(0x0365,clif->pPartyBookingRegisterReq,2,4); + packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pActionRequest,2,6); + packet(0x0436,clif->pDull/*,XXX*/); + packet(0x0437,clif->pWalkToXY,2); + packet(0x0438,clif->pUseSkillToPos,2,4,6,8); + packet(0x07e4,clif->pTakeItem,2); + packet(0x07ec,clif->pChangeDir,2,4); + packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0835,clif->pSearchStoreInfoNextPage,0); + packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x083c,clif->pUseSkillToId,2,4,6); + packet(0x086a,clif->pFriendsListAdd,2); + packet(0x091d,clif->pHomMenu,2,4); + packet(0x0940,clif->pPartyInvite2,2); + packet(0x096a,clif->pGetCharNameRequest,2); #endif // 2015-10-28cRagexe, 2015-10-28dRagexe, 2015-10-29aRagexe #if PACKETVER == 20151028 || \ PACKETVER == 20151029 - packet(0x0202,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x022d,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x023b,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0281,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x035f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0360,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0361,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0362,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0363,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0364,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0365,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0436,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0437,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0438,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x07e4,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x07ec,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0802,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0835,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x083c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0860,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x096a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 + packet(0x0202,clif->pChangeDir,2,4); + packet(0x022d,clif->pWantToConnection,2,6,10,14,18); + packet(0x023b,clif->pFriendsListAdd,2); + packet(0x0281,clif->pItemListWindowSelected,2,4,8); + packet(0x035f,clif->pTickSend,2); + packet(0x0360,clif->pReqClickBuyingStore,2); + packet(0x0361,clif->pHomMenu,2,4); + packet(0x0362,clif->pDropItem,2,4); + packet(0x0363,clif->pDull/*,XXX*/); + packet(0x0364,clif->pMoveFromKafra,2,4); + packet(0x0365,clif->pPartyBookingRegisterReq,2,4); + packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pActionRequest,2,6); + packet(0x0436,clif->pDull/*,XXX*/); + packet(0x0437,clif->pWalkToXY,2); + packet(0x0438,clif->pUseSkillToPos,2,4,6,8); + packet(0x07e4,clif->pTakeItem,2); + packet(0x07ec,clif->pMoveToKafra,2,4); + packet(0x0802,clif->pPartyInvite2,2); + packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0835,clif->pSearchStoreInfoNextPage,0); + packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x083c,clif->pUseSkillToId,2,4,6); + packet(0x0860,clif->pStoragePassword,0); + packet(0x096a,clif->pGetCharNameRequest,2); #endif // 2015-11-04aRagexe #if PACKETVER == 20151104 - packet(0x023b,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0360,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0363,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0364,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0436,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0437,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0438,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x07ec,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0811,clif->pPartyBookingRegisterReq,2,4,6); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0815,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0835,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x083c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0886,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0887,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x088b,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x088d,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x08a3,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x08a5,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0928,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0939,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x093a,clif->pItemListWindowSelected,2,4,8,12); // CZ_ITEMLISTWIN_RES // -1 - packet(0x0940,clif->pStoragePassword,2,4,20); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x0964,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 + packet(0x023b,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0360,clif->pWantToConnection,2,6,10,14,18); + packet(0x0363,clif->pWalkToXY,2); + packet(0x0364,clif->pMoveFromKafra,2,4); + packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pActionRequest,2,6); + packet(0x0436,clif->pReqClickBuyingStore,2); + packet(0x0437,clif->pDropItem,2,4); + packet(0x0438,clif->pUseSkillToPos,2,4,6,8); + packet(0x07ec,clif->pFriendsListAdd,2); + packet(0x0811,clif->pPartyBookingRegisterReq,2,4,6); + packet(0x0815,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0835,clif->pSearchStoreInfoNextPage,0); + packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x083c,clif->pUseSkillToId,2,4,6); + packet(0x0886,clif->pTickSend,2); + packet(0x0887,clif->pGetCharNameRequest,2); + packet(0x088b,clif->pMoveToKafra,2,4); + packet(0x088d,clif->pHomMenu,2,4); + packet(0x08a3,clif->pDull/*,XXX*/); + packet(0x08a5,clif->pPartyInvite2,2); + packet(0x0928,clif->pChangeDir,2,4); + packet(0x0939,clif->pDull/*,XXX*/); + packet(0x093a,clif->pItemListWindowSelected,2,4,8,12); + packet(0x0940,clif->pStoragePassword,2,4,20); + packet(0x0964,clif->pTakeItem,2); #endif // 2015-11-11aRagexe, 2015-11-11bRagexe #if PACKETVER == 20151111 - packet(0x02c4,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x035f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0360,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0362,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0437,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0438,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x0802,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0815,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0835,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x083c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x085d,clif->pItemListWindowSelected,2,4,8,12); // CZ_ITEMLISTWIN_RES // -1 - packet(0x0862,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0871,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0885,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x089c,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0942,clif->pPartyBookingRegisterReq,2,4,6); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x094a,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x0958,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0966,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0967,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0969,clif->pStoragePassword,2,4,20); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x096a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 + packet(0x02c4,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x035f,clif->pTickSend,2); + packet(0x0360,clif->pReqClickBuyingStore,2); + packet(0x0362,clif->pHomMenu,2,4); + packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pMoveToKafra,2,4); + packet(0x0437,clif->pWalkToXY,2); + packet(0x0438,clif->pUseSkillToPos,2,4,6,8); + packet(0x0802,clif->pDull/*,XXX*/); + packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0815,clif->pPartyInvite2,2); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0835,clif->pSearchStoreInfoNextPage,0); + packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x083c,clif->pUseSkillToId,2,4,6); + packet(0x085d,clif->pItemListWindowSelected,2,4,8,12); + packet(0x0862,clif->pDropItem,2,4); + packet(0x0871,clif->pFriendsListAdd,2); + packet(0x0885,clif->pActionRequest,2,6); + packet(0x089c,clif->pChangeDir,2,4); + packet(0x0942,clif->pPartyBookingRegisterReq,2,4,6); + packet(0x094a,clif->pTakeItem,2); + packet(0x0958,clif->pDull/*,XXX*/); + packet(0x0966,clif->pMoveFromKafra,2,4); + packet(0x0967,clif->pWantToConnection,2,6,10,14,18); + packet(0x0969,clif->pStoragePassword,2,4,20); + packet(0x096a,clif->pGetCharNameRequest,2); #endif // 2015-11-18aRagexe #if PACKETVER == 20151118 - packet(0x022d,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x035f,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0360,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0365,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0437,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0438,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0835,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x083c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x086b,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x088b,clif->pStoragePassword,2,4,20); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x08ab,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0921,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0925,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x092e,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x092f,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x093c,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0943,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x0946,clif->pItemListWindowSelected,2,4,8,12); // CZ_ITEMLISTWIN_RES // -1 - packet(0x0957,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x095c,clif->pPartyBookingRegisterReq,2,4,6); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x096a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 + packet(0x022d,clif->pTickSend,2); + packet(0x035f,clif->pHomMenu,2,4); + packet(0x0360,clif->pReqClickBuyingStore,2); + packet(0x0365,clif->pPartyInvite2,2); + packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pActionRequest,2,6); + packet(0x0437,clif->pWalkToXY,2); + packet(0x0438,clif->pUseSkillToPos,2,4,6,8); + packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0835,clif->pSearchStoreInfoNextPage,0); + packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x083c,clif->pUseSkillToId,2,4,6); + packet(0x086b,clif->pMoveToKafra,2,4); + packet(0x088b,clif->pStoragePassword,2,4,20); + packet(0x08ab,clif->pMoveFromKafra,2,4); + packet(0x0921,clif->pFriendsListAdd,2); + packet(0x0925,clif->pWantToConnection,2,6,10,14,18); + packet(0x092e,clif->pChangeDir,2,4); + packet(0x092f,clif->pDull/*,XXX*/); + packet(0x093c,clif->pDropItem,2,4); + packet(0x0943,clif->pTakeItem,2); + packet(0x0946,clif->pItemListWindowSelected,2,4,8,12); + packet(0x0957,clif->pDull/*,XXX*/); + packet(0x095c,clif->pPartyBookingRegisterReq,2,4,6); + packet(0x096a,clif->pGetCharNameRequest,2); #endif // 2015-11-25bRagexe, 2015-11-25dRagexe #if PACKETVER == 20151125 - packet(0x0361,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0365,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0366,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0368,clif->pItemListWindowSelected,2,4,8,12); // CZ_ITEMLISTWIN_RES // -1 - packet(0x0438,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x0802,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0838,clif->pPartyBookingRegisterReq,2,4,6); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x085e,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x085f,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0863,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0883,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0884,clif->pStoragePassword,2,4,20); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x0885,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x088c,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x088d,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0899,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x089c,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x089f,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x08a9,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x08ad,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0920,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x092a,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x092e,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x0939,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x093e,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x0951,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0956,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0957,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0959,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 + packet(0x0361,clif->pSearchStoreInfoNextPage,0); + packet(0x0365,clif->pWalkToXY,2); + packet(0x0366,clif->pMoveFromKafra,2,4); + packet(0x0368,clif->pItemListWindowSelected,2,4,8,12); + packet(0x0438,clif->pTakeItem,2); + packet(0x0802,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0838,clif->pPartyBookingRegisterReq,2,4,6); + packet(0x085e,clif->pGetCharNameRequest,2); + packet(0x085f,clif->pMoveToKafra,2,4); + packet(0x0863,clif->pReqCloseBuyingStore,0); + packet(0x0883,clif->pChangeDir,2,4); + packet(0x0884,clif->pStoragePassword,2,4,20); + packet(0x0885,clif->pDull/*,XXX*/); + packet(0x088c,clif->pTickSend,2); + packet(0x088d,clif->pWantToConnection,2,6,10,14,18); + packet(0x0899,clif->pFriendsListAdd,2); + packet(0x089c,clif->pActionRequest,2,6); + packet(0x089f,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x08a9,clif->pDropItem,2,4); + packet(0x08ad,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0920,clif->pSolveCharName,2); + packet(0x092a,clif->pUseSkillToId,2,4,6); + packet(0x092e,clif->pUseSkillToPos,2,4,6,8); + packet(0x0939,clif->pReqClickBuyingStore,2); + packet(0x093e,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x0951,clif->pHomMenu,2,4); + packet(0x0956,clif->pPartyInvite2,2); + packet(0x0957,clif->pDull/*,XXX*/); + packet(0x0959,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); #endif // 2015-12-02aRagexe #if PACKETVER == 20151202 - packet(0x0202,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x022d,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x023b,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0281,clif->pItemListWindowSelected,2,4,8,12); // CZ_ITEMLISTWIN_RES // -1 - packet(0x035f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0360,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0361,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0362,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0363,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0364,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0365,clif->pPartyBookingRegisterReq,2,4,6); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0436,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0437,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0438,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x07e4,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x07ec,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0802,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0835,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x083c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0870,clif->pStoragePassword,2,4,20); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x096a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 + packet(0x0202,clif->pChangeDir,2,4); + packet(0x022d,clif->pWantToConnection,2,6,10,14,18); + packet(0x023b,clif->pFriendsListAdd,2); + packet(0x0281,clif->pItemListWindowSelected,2,4,8,12); + packet(0x035f,clif->pTickSend,2); + packet(0x0360,clif->pReqClickBuyingStore,2); + packet(0x0361,clif->pHomMenu,2,4); + packet(0x0362,clif->pDropItem,2,4); + packet(0x0363,clif->pDull/*,XXX*/); + packet(0x0364,clif->pMoveFromKafra,2,4); + packet(0x0365,clif->pPartyBookingRegisterReq,2,4,6); + packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pActionRequest,2,6); + packet(0x0436,clif->pDull/*,XXX*/); + packet(0x0437,clif->pWalkToXY,2); + packet(0x0438,clif->pUseSkillToPos,2,4,6,8); + packet(0x07e4,clif->pTakeItem,2); + packet(0x07ec,clif->pMoveToKafra,2,4); + packet(0x0802,clif->pPartyInvite2,2); + packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0835,clif->pSearchStoreInfoNextPage,0); + packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x083c,clif->pUseSkillToId,2,4,6); + packet(0x0870,clif->pStoragePassword,2,4,20); + packet(0x096a,clif->pGetCharNameRequest,2); #endif // 2015-12-09aRagexe #if PACKETVER == 20151209 - packet(0x0365,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0369,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x07e4,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x07ec,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x0811,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0819,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x085b,clif->pStoragePassword,2,4,20); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x085d,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x085e,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0861,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0866,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0875,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x087a,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x087f,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x088e,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x088f,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0894,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x08a1,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0920,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x092d,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0930,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0932,clif->pItemListWindowSelected,2,4,8,12); // CZ_ITEMLISTWIN_RES // -1 - packet(0x093b,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0948,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x094a,clif->pPartyBookingRegisterReq,2,4,6); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0956,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x095c,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0961,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0964,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 + packet(0x0365,clif->pWalkToXY,2); + packet(0x0369,clif->pSolveCharName,2); + packet(0x07e4,clif->pPartyInvite2,2); + packet(0x07ec,clif->pTakeItem,2); + packet(0x0811,clif->pTickSend,2); + packet(0x0819,clif->pReqCloseBuyingStore,0); + packet(0x085b,clif->pStoragePassword,2,4,20); + packet(0x085d,clif->pGetCharNameRequest,2); + packet(0x085e,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0861,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0866,clif->pChangeDir,2,4); + packet(0x0875,clif->pSearchStoreInfoNextPage,0); + packet(0x087a,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x087f,clif->pReqClickBuyingStore,2); + packet(0x088e,clif->pUseSkillToId,2,4,6); + packet(0x088f,clif->pDull/*,XXX*/); + packet(0x0894,clif->pUseSkillToPos,2,4,6,8); + packet(0x08a1,clif->pHomMenu,2,4); + packet(0x0920,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x092d,clif->pMoveFromKafra,2,4); + packet(0x0930,clif->pDropItem,2,4); + packet(0x0932,clif->pItemListWindowSelected,2,4,8,12); + packet(0x093b,clif->pMoveToKafra,2,4); + packet(0x0948,clif->pWantToConnection,2,6,10,14,18); + packet(0x094a,clif->pPartyBookingRegisterReq,2,4,6); + packet(0x0956,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x095c,clif->pDull/*,XXX*/); + packet(0x0961,clif->pActionRequest,2,6); + packet(0x0964,clif->pFriendsListAdd,2); #endif // 2015-12-16aRagexe #if PACKETVER == 20151216 - packet(0x022d,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0361,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0362,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0364,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0365,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0436,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x083c,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x085b,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0864,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0865,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x086a,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x086e,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0870,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0874,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0885,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x088b,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x089d,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x089e,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x08a2,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x08a9,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x08ac,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x091d,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0944,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0947,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0949,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x0954,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0960,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0966,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0968,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 + packet(0x022d,clif->pChangeDir,2,4); + packet(0x0361,clif->pReqClickBuyingStore,2); + packet(0x0362,clif->pHomMenu,2,4); + packet(0x0364,clif->pDull/*,XXX*/); + packet(0x0365,clif->pPartyBookingRegisterReq,2,4); + packet(0x0436,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x083c,clif->pReqCloseBuyingStore,0); + packet(0x085b,clif->pTickSend,2); + packet(0x0864,clif->pMoveFromKafra,2,4); + packet(0x0865,clif->pUseSkillToPos,2,4,6,8); + packet(0x086a,clif->pDull/*,XXX*/); + packet(0x086e,clif->pPartyInvite2,2); + packet(0x0870,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0874,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0885,clif->pStoragePassword,0); + packet(0x088b,clif->pGetCharNameRequest,2); + packet(0x089d,clif->pActionRequest,2,6); + packet(0x089e,clif->pSolveCharName,2); + packet(0x08a2,clif->pWalkToXY,2); + packet(0x08a9,clif->pTakeItem,2); + packet(0x08ac,clif->pMoveToKafra,2,4); + packet(0x091d,clif->pFriendsListAdd,2); + packet(0x0944,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0947,clif->pWantToConnection,2,6,10,14,18); + packet(0x0949,clif->pItemListWindowSelected,2,4,8); + packet(0x0954,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0960,clif->pSearchStoreInfoNextPage,0); + packet(0x0966,clif->pDropItem,2,4); + packet(0x0968,clif->pUseSkillToId,2,4,6); #endif // 2015-12-23bRagexe #if PACKETVER == 20151223 - packet(0x02c4,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0362,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0364,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x0802,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0815,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0864,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x0866,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x086e,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x0872,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0875,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0876,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0881,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0884,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0886,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x088d,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0890,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x0891,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0898,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x08aa,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0918,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x091a,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x091b,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0920,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0923,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0924,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x095e,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x095f,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0965,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x0967,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 + packet(0x02c4,clif->pMoveToKafra,2,4); + packet(0x0362,clif->pDull/*,XXX*/); + packet(0x0364,clif->pTakeItem,2); + packet(0x0802,clif->pDull/*,XXX*/); + packet(0x0815,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0864,clif->pGetCharNameRequest,2); + packet(0x0866,clif->pWantToConnection,2,6,10,14,18); + packet(0x086e,clif->pUseSkillToPos,2,4,6,8); + packet(0x0872,clif->pPartyBookingRegisterReq,2,4); + packet(0x0875,clif->pUseSkillToId,2,4,6); + packet(0x0876,clif->pDropItem,2,4); + packet(0x0881,clif->pActionRequest,2,6); + packet(0x0884,clif->pMoveFromKafra,2,4); + packet(0x0886,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x088d,clif->pHomMenu,2,4); + packet(0x0890,clif->pItemListWindowSelected,2,4,8); + packet(0x0891,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0898,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x08aa,clif->pPartyInvite2,2); + packet(0x0918,clif->pSearchStoreInfoNextPage,0); + packet(0x091a,clif->pReqClickBuyingStore,2); + packet(0x091b,clif->pFriendsListAdd,2); + packet(0x0920,clif->pWalkToXY,2); + packet(0x0923,clif->pChangeDir,2,4); + packet(0x0924,clif->pTickSend,2); + packet(0x095e,clif->pSolveCharName,2); + packet(0x095f,clif->pReqCloseBuyingStore,0); + packet(0x0965,clif->pStoragePassword,0); + packet(0x0967,clif->pSearchStoreInfoListItemClick,2,6,10); #endif // 2015-12-30aRagexe #if PACKETVER == 20151230 - packet(0x02c4,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x035f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0360,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0365,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0366,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0436,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0437,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x07ec,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0815,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0835,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x083c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x085b,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x0861,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0869,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0886,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x088e,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0897,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x091d,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0923,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x093a,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0949,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x094e,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x096a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 + packet(0x02c4,clif->pMoveToKafra,2,4); + packet(0x035f,clif->pTickSend,2); + packet(0x0360,clif->pReqClickBuyingStore,2); + packet(0x0365,clif->pPartyBookingRegisterReq,2,4); + packet(0x0366,clif->pDull/*,XXX*/); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pActionRequest,2,6); + packet(0x0436,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0437,clif->pWalkToXY,2); + packet(0x07ec,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0815,clif->pWantToConnection,2,6,10,14,18); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0835,clif->pSearchStoreInfoNextPage,0); + packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x083c,clif->pUseSkillToId,2,4,6); + packet(0x085b,clif->pItemListWindowSelected,2,4,8); + packet(0x0861,clif->pPartyInvite2,2); + packet(0x0869,clif->pChangeDir,2,4); + packet(0x0886,clif->pUseSkillToPos,2,4,6,8); + packet(0x088e,clif->pFriendsListAdd,2); + packet(0x0897,clif->pDropItem,2,4); + packet(0x091d,clif->pMoveFromKafra,2,4); + packet(0x0923,clif->pStoragePassword,0); + packet(0x093a,clif->pDull/*,XXX*/); + packet(0x0949,clif->pHomMenu,2,4); + packet(0x094e,clif->pTakeItem,2); + packet(0x096a,clif->pGetCharNameRequest,2); #endif // 2016-01-06aRagexe #if PACKETVER == 20160106 - packet(0x035f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0360,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0437,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0438,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x07ec,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0835,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x083c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0861,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x086a,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x086c,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0878,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x087a,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x087f,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0885,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0889,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x088a,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0891,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x08a0,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x091d,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x0940,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x096a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 + packet(0x035f,clif->pTickSend,2); + packet(0x0360,clif->pReqClickBuyingStore,2); + packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pActionRequest,2,6); + packet(0x0437,clif->pWalkToXY,2); + packet(0x0438,clif->pUseSkillToPos,2,4,6,8); + packet(0x07ec,clif->pHomMenu,2,4); + packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0835,clif->pSearchStoreInfoNextPage,0); + packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x083c,clif->pUseSkillToId,2,4,6); + packet(0x0861,clif->pTakeItem,2); + packet(0x086a,clif->pDropItem,2,4); + packet(0x086c,clif->pDull/*,XXX*/); + packet(0x0878,clif->pStoragePassword,0); + packet(0x087a,clif->pPartyBookingRegisterReq,2,4); + packet(0x087f,clif->pWantToConnection,2,6,10,14,18); + packet(0x0885,clif->pMoveToKafra,2,4); + packet(0x0889,clif->pChangeDir,2,4); + packet(0x088a,clif->pPartyInvite2,2); + packet(0x0891,clif->pMoveFromKafra,2,4); + packet(0x08a0,clif->pFriendsListAdd,2); + packet(0x091d,clif->pItemListWindowSelected,2,4,8); + packet(0x0940,clif->pDull/*,XXX*/); + packet(0x096a,clif->pGetCharNameRequest,2); #endif // 2016-01-13aRagexe, 2016-01-13bRagexe, 2016-01-13bRagexe_2 #if PACKETVER == 20160113 - packet(0x022d,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x023b,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x035f,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0815,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x085b,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0864,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x086d,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0873,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0875,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0888,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x088b,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x088c,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0892,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0893,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0899,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x089a,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x08a0,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x08a6,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x08aa,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0919,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x091b,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x0924,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0930,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0932,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x093c,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0941,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x094d,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x094f,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0967,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 + packet(0x022d,clif->pUseSkillToPos,2,4,6,8); + packet(0x023b,clif->pWalkToXY,2); + packet(0x035f,clif->pPartyBookingRegisterReq,2,4); + packet(0x0815,clif->pStoragePassword,0); + packet(0x085b,clif->pChangeDir,2,4); + packet(0x0864,clif->pReqClickBuyingStore,2); + packet(0x086d,clif->pHomMenu,2,4); + packet(0x0873,clif->pDull/*,XXX*/); + packet(0x0875,clif->pSearchStoreInfoNextPage,0); + packet(0x0888,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x088b,clif->pPartyInvite2,2); + packet(0x088c,clif->pReqCloseBuyingStore,0); + packet(0x0892,clif->pUseSkillToId,2,4,6); + packet(0x0893,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0899,clif->pFriendsListAdd,2); + packet(0x089a,clif->pActionRequest,2,6); + packet(0x08a0,clif->pTickSend,2); + packet(0x08a6,clif->pTakeItem,2); + packet(0x08aa,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0919,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x091b,clif->pGetCharNameRequest,2); + packet(0x0924,clif->pDropItem,2,4); + packet(0x0930,clif->pSolveCharName,2); + packet(0x0932,clif->pMoveToKafra,2,4); + packet(0x093c,clif->pMoveFromKafra,2,4); + packet(0x0941,clif->pItemListWindowSelected,2,4,8); + packet(0x094d,clif->pWantToConnection,2,6,10,14,18); + packet(0x094f,clif->pDull/*,XXX*/); + packet(0x0967,clif->pReqOpenBuyingStore,2,4,8,9,89); #endif // 2016-01-20aRagexe #if PACKETVER == 20160120 - packet(0x0202,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x022d,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x023b,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0281,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x035f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0360,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0361,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0362,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0363,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0364,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0365,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0436,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0437,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0438,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x07e4,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x07ec,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0802,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0835,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x083c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0865,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x096a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 + packet(0x0202,clif->pChangeDir,2,4); + packet(0x022d,clif->pWantToConnection,2,6,10,14,18); + packet(0x023b,clif->pFriendsListAdd,2); + packet(0x0281,clif->pItemListWindowSelected,2,4,8); + packet(0x035f,clif->pTickSend,2); + packet(0x0360,clif->pReqClickBuyingStore,2); + packet(0x0361,clif->pHomMenu,2,4); + packet(0x0362,clif->pDropItem,2,4); + packet(0x0363,clif->pDull/*,XXX*/); + packet(0x0364,clif->pMoveFromKafra,2,4); + packet(0x0365,clif->pPartyBookingRegisterReq,2,4); + packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pActionRequest,2,6); + packet(0x0436,clif->pDull/*,XXX*/); + packet(0x0437,clif->pWalkToXY,2); + packet(0x0438,clif->pUseSkillToPos,2,4,6,8); + packet(0x07e4,clif->pTakeItem,2); + packet(0x07ec,clif->pMoveToKafra,2,4); + packet(0x0802,clif->pPartyInvite2,2); + packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0835,clif->pSearchStoreInfoNextPage,0); + packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x083c,clif->pUseSkillToId,2,4,6); + packet(0x0865,clif->pStoragePassword,0); + packet(0x096a,clif->pGetCharNameRequest,2); #endif // 2016-01-27cRagexe, 2016-01-27dRagexe #if PACKETVER == 20160127 - packet(0x022d,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0281,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x035f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0360,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0362,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0363,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0364,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0365,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0436,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0437,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0438,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x07e4,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x07ec,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0802,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0835,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x083c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x085e,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0922,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x095a,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x0961,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x096a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 + packet(0x022d,clif->pWantToConnection,2,6,10,14,18); + packet(0x0281,clif->pItemListWindowSelected,2,4,8); + packet(0x035f,clif->pTickSend,2); + packet(0x0360,clif->pReqClickBuyingStore,2); + packet(0x0362,clif->pDropItem,2,4); + packet(0x0363,clif->pDull/*,XXX*/); + packet(0x0364,clif->pMoveFromKafra,2,4); + packet(0x0365,clif->pPartyBookingRegisterReq,2,4); + packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pActionRequest,2,6); + packet(0x0436,clif->pDull/*,XXX*/); + packet(0x0437,clif->pWalkToXY,2); + packet(0x0438,clif->pUseSkillToPos,2,4,6,8); + packet(0x07e4,clif->pTakeItem,2); + packet(0x07ec,clif->pMoveToKafra,2,4); + packet(0x0802,clif->pPartyInvite2,2); + packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0835,clif->pSearchStoreInfoNextPage,0); + packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x083c,clif->pUseSkillToId,2,4,6); + packet(0x085e,clif->pChangeDir,2,4); + packet(0x0922,clif->pHomMenu,2,4); + packet(0x095a,clif->pStoragePassword,0); + packet(0x0961,clif->pFriendsListAdd,2); + packet(0x096a,clif->pGetCharNameRequest,2); #endif // 2016-02-03aRagexe #if PACKETVER == 20160203 - packet(0x0202,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0360,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0361,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0436,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0437,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0438,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x07e4,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0811,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0819,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0835,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x083c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x086c,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0872,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0873,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x088c,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0918,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x093e,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0940,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0947,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0954,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x095a,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x095d,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x096a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 + packet(0x0202,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0360,clif->pReqClickBuyingStore,2); + packet(0x0361,clif->pFriendsListAdd,2); + packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pActionRequest,2,6); + packet(0x0436,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0437,clif->pTickSend,2); + packet(0x0438,clif->pUseSkillToPos,2,4,6,8); + packet(0x07e4,clif->pSearchStoreInfoNextPage,0); + packet(0x0811,clif->pChangeDir,2,4); + packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x0819,clif->pWantToConnection,2,6,10,14,18); + packet(0x0835,clif->pItemListWindowSelected,2,4,8); + packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x083c,clif->pUseSkillToId,2,4,6); + packet(0x086c,clif->pPartyBookingRegisterReq,2,4); + packet(0x0872,clif->pHomMenu,2,4); + packet(0x0873,clif->pStoragePassword,0); + packet(0x088c,clif->pDull/*,XXX*/); + packet(0x0918,clif->pDull/*,XXX*/); + packet(0x093e,clif->pPartyInvite2,2); + packet(0x0940,clif->pWalkToXY,2); + packet(0x0947,clif->pDropItem,2,4); + packet(0x0954,clif->pMoveFromKafra,2,4); + packet(0x095a,clif->pTakeItem,2); + packet(0x095d,clif->pMoveToKafra,2,4); + packet(0x096a,clif->pGetCharNameRequest,2); #endif // 2016-02-11aRagexe #if PACKETVER == 20160211 - packet(0x022d,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x023b,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0281,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x035f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0360,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0362,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0363,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0364,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0365,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0436,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0437,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0438,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x07e4,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x07ec,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0802,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0835,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x083c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x086c,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0870,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0886,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x096a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 + packet(0x022d,clif->pWantToConnection,2,6,10,14,18); + packet(0x023b,clif->pPartyBookingRegisterReq,2,4); + packet(0x0281,clif->pItemListWindowSelected,2,4,8); + packet(0x035f,clif->pTickSend,2); + packet(0x0360,clif->pReqClickBuyingStore,2); + packet(0x0362,clif->pDropItem,2,4); + packet(0x0363,clif->pDull/*,XXX*/); + packet(0x0364,clif->pMoveFromKafra,2,4); + packet(0x0365,clif->pStoragePassword,0); + packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pActionRequest,2,6); + packet(0x0436,clif->pDull/*,XXX*/); + packet(0x0437,clif->pWalkToXY,2); + packet(0x0438,clif->pUseSkillToPos,2,4,6,8); + packet(0x07e4,clif->pTakeItem,2); + packet(0x07ec,clif->pMoveToKafra,2,4); + packet(0x0802,clif->pPartyInvite2,2); + packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0835,clif->pSearchStoreInfoNextPage,0); + packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x083c,clif->pUseSkillToId,2,4,6); + packet(0x086c,clif->pChangeDir,2,4); + packet(0x0870,clif->pFriendsListAdd,2); + packet(0x0886,clif->pHomMenu,2,4); + packet(0x096a,clif->pGetCharNameRequest,2); #endif // 2016-02-17aRagexe #if PACKETVER == 20160217 - packet(0x0202,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x023b,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0362,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0365,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x0864,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0870,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0873,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x087a,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0888,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x088d,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x088f,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0899,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x08a0,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x08a9,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x08ac,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x08ad,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x091d,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0920,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0926,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x092e,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x093b,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x093e,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0941,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x094a,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x094f,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x095e,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x0966,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x0967,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0969,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 + packet(0x0202,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x023b,clif->pReqCloseBuyingStore,0); + packet(0x0362,clif->pChangeDir,2,4); + packet(0x0365,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x0864,clif->pMoveToKafra,2,4); + packet(0x0870,clif->pFriendsListAdd,2); + packet(0x0873,clif->pHomMenu,2,4); + packet(0x087a,clif->pWantToConnection,2,6,10,14,18); + packet(0x0888,clif->pTickSend,2); + packet(0x088d,clif->pReqClickBuyingStore,2); + packet(0x088f,clif->pDropItem,2,4); + packet(0x0899,clif->pDull/*,XXX*/); + packet(0x08a0,clif->pMoveFromKafra,2,4); + packet(0x08a9,clif->pPartyInvite2,2); + packet(0x08ac,clif->pPartyBookingRegisterReq,2,4); + packet(0x08ad,clif->pSearchStoreInfoNextPage,0); + packet(0x091d,clif->pWalkToXY,2); + packet(0x0920,clif->pActionRequest,2,6); + packet(0x0926,clif->pUseSkillToId,2,4,6); + packet(0x092e,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x093b,clif->pItemListWindowSelected,2,4,8); + packet(0x093e,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0941,clif->pTakeItem,2); + packet(0x094a,clif->pUseSkillToPos,2,4,6,8); + packet(0x094f,clif->pDull/*,XXX*/); + packet(0x095e,clif->pStoragePassword,0); + packet(0x0966,clif->pGetCharNameRequest,2); + packet(0x0967,clif->pSolveCharName,2); + packet(0x0969,clif->pReqOpenBuyingStore,2,4,8,9,89); #endif // 2016-02-24aRagexe #if PACKETVER == 20160224 - packet(0x022d,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x035f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0364,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0436,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0438,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0835,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x083c,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0861,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x086b,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0884,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0885,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0888,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x08a9,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0920,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0929,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x092f,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x0936,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x0938,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x094c,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0961,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x096a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 + packet(0x022d,clif->pPartyInvite2,2); + packet(0x035f,clif->pTickSend,2); + packet(0x0364,clif->pUseSkillToId,2,4,6); + packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pMoveFromKafra,2,4); + packet(0x0436,clif->pDropItem,2,4); + packet(0x0438,clif->pUseSkillToPos,2,4,6,8); + packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0835,clif->pSearchStoreInfoNextPage,0); + packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x083c,clif->pMoveToKafra,2,4); + packet(0x0861,clif->pWantToConnection,2,6,10,14,18); + packet(0x086b,clif->pDull/*,XXX*/); + packet(0x0884,clif->pActionRequest,2,6); + packet(0x0885,clif->pReqClickBuyingStore,2); + packet(0x0888,clif->pWalkToXY,2); + packet(0x08a9,clif->pFriendsListAdd,2); + packet(0x0920,clif->pDull/*,XXX*/); + packet(0x0929,clif->pChangeDir,2,4); + packet(0x092f,clif->pItemListWindowSelected,2,4,8); + packet(0x0936,clif->pStoragePassword,0); + packet(0x0938,clif->pTakeItem,2); + packet(0x094c,clif->pPartyBookingRegisterReq,2,4); + packet(0x0961,clif->pHomMenu,2,4); + packet(0x096a,clif->pGetCharNameRequest,2); #endif // 2016-03-02bRagexe #if PACKETVER == 20160302 - packet(0x022d,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0367,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0802,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0819,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x085b,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0864,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0865,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0867,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0868,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0873,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x0875,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x087a,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x087d,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0883,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x08a6,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x08a9,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x091a,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0927,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x092d,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x092f,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0945,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x094e,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x0950,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0957,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x095a,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0960,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0961,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0967,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0968,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 + packet(0x022d,clif->pChangeDir,2,4); + packet(0x0367,clif->pReqClickBuyingStore,2); + packet(0x0802,clif->pWantToConnection,2,6,10,14,18); + packet(0x0819,clif->pWalkToXY,2); + packet(0x085b,clif->pFriendsListAdd,2); + packet(0x0864,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0865,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0867,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0868,clif->pHomMenu,2,4); + packet(0x0873,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x0875,clif->pSearchStoreInfoNextPage,0); + packet(0x087a,clif->pUseSkillToPos,2,4,6,8); + packet(0x087d,clif->pPartyInvite2,2); + packet(0x0883,clif->pUseSkillToId,2,4,6); + packet(0x08a6,clif->pReqCloseBuyingStore,0); + packet(0x08a9,clif->pMoveFromKafra,2,4); + packet(0x091a,clif->pDropItem,2,4); + packet(0x0927,clif->pTakeItem,2); + packet(0x092d,clif->pDull/*,XXX*/); + packet(0x092f,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0945,clif->pGetCharNameRequest,2); + packet(0x094e,clif->pStoragePassword,0); + packet(0x0950,clif->pDull/*,XXX*/); + packet(0x0957,clif->pItemListWindowSelected,2,4,8); + packet(0x095a,clif->pTickSend,2); + packet(0x0960,clif->pMoveToKafra,2,4); + packet(0x0961,clif->pPartyBookingRegisterReq,2,4); + packet(0x0967,clif->pSolveCharName,2); + packet(0x0968,clif->pActionRequest,2,6); #endif // 2016-03-09cRagexe #if PACKETVER == 20160309 - packet(0x023b,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0281,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0361,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0364,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0819,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x0838,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x083c,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x085a,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x085f,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0866,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x086a,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0873,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x087c,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x087e,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x089b,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x089d,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x08a7,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x091d,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x0920,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0922,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0929,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x092a,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x092e,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0932,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x094f,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0956,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x095e,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x096a,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 + packet(0x023b,clif->pDropItem,2,4); + packet(0x0281,clif->pReqClickBuyingStore,2); + packet(0x0361,clif->pFriendsListAdd,2); + packet(0x0364,clif->pStoragePassword,0); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0819,clif->pUseSkillToPos,2,4,6,8); + packet(0x0838,clif->pWalkToXY,2); + packet(0x083c,clif->pPartyInvite2,2); + packet(0x085a,clif->pMoveToKafra,2,4); + packet(0x085f,clif->pUseSkillToId,2,4,6); + packet(0x0866,clif->pSearchStoreInfoNextPage,0); + packet(0x086a,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0873,clif->pDull/*,XXX*/); + packet(0x087c,clif->pWantToConnection,2,6,10,14,18); + packet(0x087e,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x089b,clif->pItemListWindowSelected,2,4,8); + packet(0x089d,clif->pChangeDir,2,4); + packet(0x08a7,clif->pPartyBookingRegisterReq,2,4); + packet(0x091d,clif->pGetCharNameRequest,2); + packet(0x0920,clif->pMoveFromKafra,2,4); + packet(0x0922,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0929,clif->pDull/*,XXX*/); + packet(0x092a,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x092e,clif->pReqCloseBuyingStore,0); + packet(0x0932,clif->pHomMenu,2,4); + packet(0x094f,clif->pActionRequest,2,6); + packet(0x0956,clif->pTickSend,2); + packet(0x095e,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x096a,clif->pTakeItem,2); #endif // 2016-03-16aRagexe, 2016-03-18aRagexe #if PACKETVER == 20160316 || \ PACKETVER == 20160318 - packet(0x0202,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x022d,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x023b,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0281,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x035f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0360,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0361,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0362,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0363,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0364,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0365,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0436,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0437,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0438,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x07e4,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x07ec,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0802,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0835,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x083c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0922,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x096a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 + packet(0x0202,clif->pChangeDir,2,4); + packet(0x022d,clif->pWantToConnection,2,6,10,14,18); + packet(0x023b,clif->pFriendsListAdd,2); + packet(0x0281,clif->pItemListWindowSelected,2,4,8); + packet(0x035f,clif->pTickSend,2); + packet(0x0360,clif->pReqClickBuyingStore,2); + packet(0x0361,clif->pHomMenu,2,4); + packet(0x0362,clif->pDropItem,2,4); + packet(0x0363,clif->pDull/*,XXX*/); + packet(0x0364,clif->pMoveFromKafra,2,4); + packet(0x0365,clif->pPartyBookingRegisterReq,2,4); + packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pActionRequest,2,6); + packet(0x0436,clif->pDull/*,XXX*/); + packet(0x0437,clif->pWalkToXY,2); + packet(0x0438,clif->pUseSkillToPos,2,4,6,8); + packet(0x07e4,clif->pTakeItem,2); + packet(0x07ec,clif->pMoveToKafra,2,4); + packet(0x0802,clif->pPartyInvite2,2); + packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0835,clif->pSearchStoreInfoNextPage,0); + packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x083c,clif->pUseSkillToId,2,4,6); + packet(0x0922,clif->pStoragePassword,0); + packet(0x096a,clif->pGetCharNameRequest,2); #endif // 2016-03-23aRagexe, 2016-03-23bRagexe #if PACKETVER == 20160323 - packet(0x035f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0360,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0365,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0437,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0438,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0835,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x083c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0867,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0869,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x086a,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0872,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x0878,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0883,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0896,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x089a,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x091b,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0926,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0927,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0933,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x093c,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x096a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 + packet(0x035f,clif->pTickSend,2); + packet(0x0360,clif->pReqClickBuyingStore,2); + packet(0x0365,clif->pFriendsListAdd,2); + packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pActionRequest,2,6); + packet(0x0437,clif->pWalkToXY,2); + packet(0x0438,clif->pUseSkillToPos,2,4,6,8); + packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0835,clif->pSearchStoreInfoNextPage,0); + packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x083c,clif->pUseSkillToId,2,4,6); + packet(0x0867,clif->pDull/*,XXX*/); + packet(0x0869,clif->pTakeItem,2); + packet(0x086a,clif->pMoveFromKafra,2,4); + packet(0x0872,clif->pStoragePassword,0); + packet(0x0878,clif->pWantToConnection,2,6,10,14,18); + packet(0x0883,clif->pPartyInvite2,2); + packet(0x0896,clif->pItemListWindowSelected,2,4,8); + packet(0x089a,clif->pHomMenu,2,4); + packet(0x091b,clif->pDull/*,XXX*/); + packet(0x0926,clif->pMoveToKafra,2,4); + packet(0x0927,clif->pPartyBookingRegisterReq,2,4); + packet(0x0933,clif->pChangeDir,2,4); + packet(0x093c,clif->pDropItem,2,4); + packet(0x096a,clif->pGetCharNameRequest,2); #endif // 2016-03-30aRagexe, 2016-03-30bRagexe #if PACKETVER == 20160330 - packet(0x035f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0360,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0365,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0437,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0438,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0835,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x083c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0867,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x086d,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x0878,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x087f,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0889,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x088b,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x088d,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0918,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0925,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x092a,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x092c,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0930,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0939,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x093b,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x096a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 + packet(0x035f,clif->pTickSend,2); + packet(0x0360,clif->pReqClickBuyingStore,2); + packet(0x0365,clif->pStoragePassword,0); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pActionRequest,2,6); + packet(0x0437,clif->pWalkToXY,2); + packet(0x0438,clif->pUseSkillToPos,2,4,6,8); + packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0835,clif->pSearchStoreInfoNextPage,0); + packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x083c,clif->pUseSkillToId,2,4,6); + packet(0x0867,clif->pPartyInvite2,2); + packet(0x086d,clif->pTakeItem,2); + packet(0x0878,clif->pDull/*,XXX*/); + packet(0x087f,clif->pMoveFromKafra,2,4); + packet(0x0889,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x088b,clif->pHomMenu,2,4); + packet(0x088d,clif->pDull/*,XXX*/); + packet(0x0918,clif->pMoveToKafra,2,4); + packet(0x0925,clif->pWantToConnection,2,6,10,14,18); + packet(0x092a,clif->pItemListWindowSelected,2,4,8); + packet(0x092c,clif->pPartyBookingRegisterReq,2,4); + packet(0x0930,clif->pChangeDir,2,4); + packet(0x0939,clif->pDropItem,2,4); + packet(0x093b,clif->pFriendsListAdd,2); + packet(0x096a,clif->pGetCharNameRequest,2); #endif // 2016-04-06aRagexe, 2016-04-06bRagexe #if PACKETVER == 20160406 - packet(0x0364,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x07e4,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0819,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x085a,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x085c,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x0869,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0877,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x0878,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0879,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0884,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0892,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0895,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0898,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x089b,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x089e,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x08a1,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x08a9,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x08ac,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0927,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x092d,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x0933,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0934,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0940,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0949,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x094d,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0953,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x095d,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x095f,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0962,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 + packet(0x0364,clif->pSolveCharName,2); + packet(0x07e4,clif->pDropItem,2,4); + packet(0x0819,clif->pSearchStoreInfoNextPage,0); + packet(0x085a,clif->pPartyBookingRegisterReq,2,4); + packet(0x085c,clif->pUseSkillToPos,2,4,6,8); + packet(0x0869,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0877,clif->pTakeItem,2); + packet(0x0878,clif->pFriendsListAdd,2); + packet(0x0879,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0884,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0892,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0895,clif->pWantToConnection,2,6,10,14,18); + packet(0x0898,clif->pPartyInvite2,2); + packet(0x089b,clif->pGetCharNameRequest,2); + packet(0x089e,clif->pMoveFromKafra,2,4); + packet(0x08a1,clif->pActionRequest,2,6); + packet(0x08a9,clif->pReqCloseBuyingStore,0); + packet(0x08ac,clif->pDull/*,XXX*/); + packet(0x0927,clif->pMoveToKafra,2,4); + packet(0x092d,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x0933,clif->pChangeDir,2,4); + packet(0x0934,clif->pUseSkillToId,2,4,6); + packet(0x0940,clif->pTickSend,2); + packet(0x0949,clif->pItemListWindowSelected,2,4,8); + packet(0x094d,clif->pReqClickBuyingStore,2); + packet(0x0953,clif->pStoragePassword,0); + packet(0x095d,clif->pHomMenu,2,4); + packet(0x095f,clif->pWalkToXY,2); + packet(0x0962,clif->pDull/*,XXX*/); #endif // 2016-04-14aRagexe, 2016-04-14bRagexe, 2016-04-14bRagexe_2, 2016-04-14cRagexe #if PACKETVER == 20160414 - packet(0x035f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0360,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0362,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x0363,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0437,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0438,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0835,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x083c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0862,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x087a,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0880,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0885,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x089e,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0918,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0922,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0927,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x0931,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0934,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0945,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0953,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x096a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 + packet(0x035f,clif->pTickSend,2); + packet(0x0360,clif->pReqClickBuyingStore,2); + packet(0x0362,clif->pItemListWindowSelected,2,4,8); + packet(0x0363,clif->pTakeItem,2); + packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pActionRequest,2,6); + packet(0x0437,clif->pWalkToXY,2); + packet(0x0438,clif->pUseSkillToPos,2,4,6,8); + packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0835,clif->pSearchStoreInfoNextPage,0); + packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x083c,clif->pUseSkillToId,2,4,6); + packet(0x0862,clif->pWantToConnection,2,6,10,14,18); + packet(0x087a,clif->pDull/*,XXX*/); + packet(0x0880,clif->pPartyBookingRegisterReq,2,4); + packet(0x0885,clif->pMoveFromKafra,2,4); + packet(0x089e,clif->pPartyInvite2,2); + packet(0x0918,clif->pDull/*,XXX*/); + packet(0x0922,clif->pChangeDir,2,4); + packet(0x0927,clif->pStoragePassword,0); + packet(0x0931,clif->pDropItem,2,4); + packet(0x0934,clif->pHomMenu,2,4); + packet(0x0945,clif->pFriendsListAdd,2); + packet(0x0953,clif->pMoveToKafra,2,4); + packet(0x096a,clif->pGetCharNameRequest,2); #endif // 2016-04-20cRagexe #if PACKETVER == 20160420 - packet(0x022d,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x02c4,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x035f,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0360,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0437,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0438,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0819,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0835,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x083c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0864,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x0870,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0872,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0874,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0884,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0888,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x088b,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x08a5,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x092f,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0935,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x094e,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x095c,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x096a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 + packet(0x022d,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x02c4,clif->pTickSend,2); + packet(0x035f,clif->pPartyInvite2,2); + packet(0x0360,clif->pReqClickBuyingStore,2); + packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pActionRequest,2,6); + packet(0x0437,clif->pWalkToXY,2); + packet(0x0438,clif->pUseSkillToPos,2,4,6,8); + packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x0819,clif->pHomMenu,2,4); + packet(0x0835,clif->pSearchStoreInfoNextPage,0); + packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x083c,clif->pUseSkillToId,2,4,6); + packet(0x0864,clif->pTakeItem,2); + packet(0x0870,clif->pDull/*,XXX*/); + packet(0x0872,clif->pChangeDir,2,4); + packet(0x0874,clif->pMoveToKafra,2,4); + packet(0x0884,clif->pDropItem,2,4); + packet(0x0888,clif->pWantToConnection,2,6,10,14,18); + packet(0x088b,clif->pMoveFromKafra,2,4); + packet(0x08a5,clif->pStoragePassword,0); + packet(0x092f,clif->pPartyBookingRegisterReq,2,4); + packet(0x0935,clif->pFriendsListAdd,2); + packet(0x094e,clif->pItemListWindowSelected,2,4,8); + packet(0x095c,clif->pDull/*,XXX*/); + packet(0x096a,clif->pGetCharNameRequest,2); #endif // 2016-04-27aRagexe #if PACKETVER == 20160427 - packet(0x0202,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x022d,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x023b,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0281,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x035f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0360,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0361,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0362,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0363,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0364,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0365,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0436,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0437,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0438,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x07e4,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x07ec,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0802,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0819,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0835,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x083c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0940,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x096a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 + packet(0x0202,clif->pChangeDir,2,4); + packet(0x022d,clif->pWantToConnection,2,6,10,14,18); + packet(0x023b,clif->pFriendsListAdd,2); + packet(0x0281,clif->pItemListWindowSelected,2,4,8); + packet(0x035f,clif->pTickSend,2); + packet(0x0360,clif->pReqClickBuyingStore,2); + packet(0x0361,clif->pHomMenu,2,4); + packet(0x0362,clif->pDropItem,2,4); + packet(0x0363,clif->pDull/*,XXX*/); + packet(0x0364,clif->pMoveFromKafra,2,4); + packet(0x0365,clif->pPartyBookingRegisterReq,2,4); + packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pActionRequest,2,6); + packet(0x0436,clif->pDull/*,XXX*/); + packet(0x0437,clif->pWalkToXY,2); + packet(0x0438,clif->pUseSkillToPos,2,4,6,8); + packet(0x07e4,clif->pTakeItem,2); + packet(0x07ec,clif->pMoveToKafra,2,4); + packet(0x0802,clif->pPartyInvite2,2); + packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x0819,clif->pSearchStoreInfoNextPage,0); + packet(0x0835,clif->pStoragePassword,0); + packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x083c,clif->pUseSkillToId,2,4,6); + packet(0x0940,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x096a,clif->pGetCharNameRequest,2); #endif // 2016-05-04aRagexe #if PACKETVER == 20160504 - packet(0x0202,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0363,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0365,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x083c,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x085f,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x086b,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x087f,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0884,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x0886,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0887,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x088a,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x088d,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x088f,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x0890,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0893,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0898,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x089d,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x08ad,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0918,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0921,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0922,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x0924,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x093e,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0940,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0941,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0948,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x0952,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x095b,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0969,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 + packet(0x0202,clif->pHomMenu,2,4); + packet(0x0363,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0365,clif->pDull/*,XXX*/); + packet(0x083c,clif->pSearchStoreInfoNextPage,0); + packet(0x085f,clif->pActionRequest,2,6); + packet(0x086b,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x087f,clif->pReqCloseBuyingStore,0); + packet(0x0884,clif->pUseSkillToPos,2,4,6,8); + packet(0x0886,clif->pMoveToKafra,2,4); + packet(0x0887,clif->pPartyInvite2,2); + packet(0x088a,clif->pTakeItem,2); + packet(0x088d,clif->pUseSkillToId,2,4,6); + packet(0x088f,clif->pItemListWindowSelected,2,4,8); + packet(0x0890,clif->pDropItem,2,4); + packet(0x0893,clif->pPartyBookingRegisterReq,2,4); + packet(0x0898,clif->pDull/*,XXX*/); + packet(0x089d,clif->pSolveCharName,2); + packet(0x08ad,clif->pChangeDir,2,4); + packet(0x0918,clif->pTickSend,2); + packet(0x0921,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0922,clif->pGetCharNameRequest,2); + packet(0x0924,clif->pWalkToXY,2); + packet(0x093e,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0940,clif->pWantToConnection,2,6,10,14,18); + packet(0x0941,clif->pMoveFromKafra,2,4); + packet(0x0948,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x0952,clif->pFriendsListAdd,2); + packet(0x095b,clif->pReqClickBuyingStore,2); + packet(0x0969,clif->pStoragePassword,0); #endif // 2016-05-11aRagexe #if PACKETVER == 20160511 - packet(0x0281,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x035f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0360,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0362,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0363,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0364,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0365,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0437,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0438,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x07e4,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x07ec,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0802,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0835,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x083c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x085e,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0894,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x089b,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0918,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0920,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0940,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x096a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 + packet(0x0281,clif->pItemListWindowSelected,2,4,8); + packet(0x035f,clif->pTickSend,2); + packet(0x0360,clif->pReqClickBuyingStore,2); + packet(0x0362,clif->pDropItem,2,4); + packet(0x0363,clif->pDull/*,XXX*/); + packet(0x0364,clif->pMoveFromKafra,2,4); + packet(0x0365,clif->pPartyBookingRegisterReq,2,4); + packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pActionRequest,2,6); + packet(0x0437,clif->pWalkToXY,2); + packet(0x0438,clif->pUseSkillToPos,2,4,6,8); + packet(0x07e4,clif->pTakeItem,2); + packet(0x07ec,clif->pMoveToKafra,2,4); + packet(0x0802,clif->pPartyInvite2,2); + packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0835,clif->pSearchStoreInfoNextPage,0); + packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x083c,clif->pUseSkillToId,2,4,6); + packet(0x085e,clif->pChangeDir,2,4); + packet(0x0894,clif->pFriendsListAdd,2); + packet(0x089b,clif->pDull/*,XXX*/); + packet(0x0918,clif->pHomMenu,2,4); + packet(0x0920,clif->pWantToConnection,2,6,10,14,18); + packet(0x0940,clif->pStoragePassword,0); + packet(0x096a,clif->pGetCharNameRequest,2); #endif // 2016-05-18aRagexe #if PACKETVER == 20160518 - packet(0x0281,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x035f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0360,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0362,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0363,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0364,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0365,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0436,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0437,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0438,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x07e4,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x07ec,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0802,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0835,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x083c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x086c,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0874,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x089a,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x08a9,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0928,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x096a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 + packet(0x0281,clif->pItemListWindowSelected,2,4,8); + packet(0x035f,clif->pTickSend,2); + packet(0x0360,clif->pReqClickBuyingStore,2); + packet(0x0362,clif->pDropItem,2,4); + packet(0x0363,clif->pDull/*,XXX*/); + packet(0x0364,clif->pMoveFromKafra,2,4); + packet(0x0365,clif->pPartyBookingRegisterReq,2,4); + packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pActionRequest,2,6); + packet(0x0436,clif->pDull/*,XXX*/); + packet(0x0437,clif->pWalkToXY,2); + packet(0x0438,clif->pUseSkillToPos,2,4,6,8); + packet(0x07e4,clif->pTakeItem,2); + packet(0x07ec,clif->pMoveToKafra,2,4); + packet(0x0802,clif->pPartyInvite2,2); + packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0835,clif->pSearchStoreInfoNextPage,0); + packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x083c,clif->pUseSkillToId,2,4,6); + packet(0x086c,clif->pChangeDir,2,4); + packet(0x0874,clif->pWantToConnection,2,6,10,14,18); + packet(0x089a,clif->pStoragePassword,0); + packet(0x08a9,clif->pFriendsListAdd,2); + packet(0x0928,clif->pHomMenu,2,4); + packet(0x096a,clif->pGetCharNameRequest,2); #endif // 2016-05-25aRagexe, 2016-05-26aRagexe #if PACKETVER == 20160525 || \ PACKETVER == 20160526 - packet(0x035f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0360,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0437,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0438,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0835,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x083c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x085a,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x085e,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0867,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x086a,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0899,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x089c,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x091d,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x092c,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0937,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x0945,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x094a,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x094e,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0951,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0956,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x096a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 + packet(0x035f,clif->pTickSend,2); + packet(0x0360,clif->pReqClickBuyingStore,2); + packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pActionRequest,2,6); + packet(0x0437,clif->pWalkToXY,2); + packet(0x0438,clif->pUseSkillToPos,2,4,6,8); + packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0835,clif->pSearchStoreInfoNextPage,0); + packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x083c,clif->pUseSkillToId,2,4,6); + packet(0x085a,clif->pDull/*,XXX*/); + packet(0x085e,clif->pDropItem,2,4); + packet(0x0867,clif->pHomMenu,2,4); + packet(0x086a,clif->pWantToConnection,2,6,10,14,18); + packet(0x0899,clif->pTakeItem,2); + packet(0x089c,clif->pChangeDir,2,4); + packet(0x091d,clif->pStoragePassword,0); + packet(0x092c,clif->pPartyBookingRegisterReq,2,4); + packet(0x0937,clif->pItemListWindowSelected,2,4,8); + packet(0x0945,clif->pPartyInvite2,2); + packet(0x094a,clif->pMoveToKafra,2,4); + packet(0x094e,clif->pDull/*,XXX*/); + packet(0x0951,clif->pFriendsListAdd,2); + packet(0x0956,clif->pMoveFromKafra,2,4); + packet(0x096a,clif->pGetCharNameRequest,2); #endif // 2016-06-01aRagexe #if PACKETVER == 20160601 - packet(0x0202,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x02c4,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x035f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0360,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0437,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0438,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0817,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0835,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x083c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0863,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x0870,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x087d,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x088d,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x088f,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0895,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x08a7,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x08ac,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0924,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x095b,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x095f,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x0961,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x096a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 + packet(0x0202,clif->pReqCloseBuyingStore,0); + packet(0x02c4,clif->pPartyInvite2,2); + packet(0x035f,clif->pTickSend,2); + packet(0x0360,clif->pReqClickBuyingStore,2); + packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pActionRequest,2,6); + packet(0x0437,clif->pWalkToXY,2); + packet(0x0438,clif->pUseSkillToPos,2,4,6,8); + packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0817,clif->pFriendsListAdd,2); + packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0835,clif->pSearchStoreInfoNextPage,0); + packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x083c,clif->pUseSkillToId,2,4,6); + packet(0x0863,clif->pTakeItem,2); + packet(0x0870,clif->pMoveFromKafra,2,4); + packet(0x087d,clif->pItemListWindowSelected,2,4,8); + packet(0x088d,clif->pDropItem,2,4); + packet(0x088f,clif->pMoveToKafra,2,4); + packet(0x0895,clif->pHomMenu,2,4); + packet(0x08a7,clif->pDull/*,XXX*/); + packet(0x08ac,clif->pWantToConnection,2,6,10,14,18); + packet(0x0924,clif->pDull/*,XXX*/); + packet(0x095b,clif->pChangeDir,2,4); + packet(0x095f,clif->pStoragePassword,0); + packet(0x0961,clif->pPartyBookingRegisterReq,2,4); + packet(0x096a,clif->pGetCharNameRequest,2); #endif // 2016-06-08aRagexe, 2016-06-08bRagexe, 2016-06-09aRagexe #if PACKETVER == 20160608 || \ PACKETVER == 20160609 - packet(0x022d,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x02c4,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x035f,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0360,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0436,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0437,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0438,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x07ec,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0802,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0835,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x083c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x085c,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0885,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0889,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0899,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x089b,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x08a6,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x093b,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x094d,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0958,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x095b,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0969,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x096a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 + packet(0x022d,clif->pItemListWindowSelected,2,4,8); + packet(0x02c4,clif->pPartyBookingRegisterReq,2,4); + packet(0x035f,clif->pPartyInvite2,2); + packet(0x0360,clif->pReqClickBuyingStore,2); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pActionRequest,2,6); + packet(0x0436,clif->pWalkToXY,2); + packet(0x0437,clif->pWantToConnection,2,6,10,14,18); + packet(0x0438,clif->pUseSkillToPos,2,4,6,8); + packet(0x07ec,clif->pChangeDir,2,4); + packet(0x0802,clif->pTickSend,2); + packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0835,clif->pSearchStoreInfoNextPage,0); + packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x083c,clif->pUseSkillToId,2,4,6); + packet(0x085c,clif->pDull/*,XXX*/); + packet(0x0885,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0889,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0899,clif->pTakeItem,2); + packet(0x089b,clif->pHomMenu,2,4); + packet(0x08a6,clif->pMoveFromKafra,2,4); + packet(0x093b,clif->pDull/*,XXX*/); + packet(0x094d,clif->pDropItem,2,4); + packet(0x0958,clif->pStoragePassword,0); + packet(0x095b,clif->pMoveToKafra,2,4); + packet(0x0969,clif->pFriendsListAdd,2); + packet(0x096a,clif->pGetCharNameRequest,2); #endif // 2016-06-15aRagexe #if PACKETVER == 20160615 - packet(0x0281,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0363,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0364,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x0369,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x083c,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x0866,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0870,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x087d,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x087e,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x087f,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0884,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0887,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0888,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x088a,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x088d,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x0891,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x0898,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x092f,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x093e,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0947,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0948,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x094a,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x094b,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0954,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0957,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0958,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x095c,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x095e,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0961,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 + packet(0x0281,clif->pFriendsListAdd,2); + packet(0x0363,clif->pWantToConnection,2,6,10,14,18); + packet(0x0364,clif->pStoragePassword,0); + packet(0x0369,clif->pHomMenu,2,4); + packet(0x083c,clif->pGetCharNameRequest,2); + packet(0x0866,clif->pWalkToXY,2); + packet(0x0870,clif->pDull/*,XXX*/); + packet(0x087d,clif->pSolveCharName,2); + packet(0x087e,clif->pTakeItem,2); + packet(0x087f,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0884,clif->pDull/*,XXX*/); + packet(0x0887,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0888,clif->pUseSkillToId,2,4,6); + packet(0x088a,clif->pTickSend,2); + packet(0x088d,clif->pItemListWindowSelected,2,4,8); + packet(0x0891,clif->pUseSkillToPos,2,4,6,8); + packet(0x0898,clif->pDropItem,2,4); + packet(0x092f,clif->pSearchStoreInfoNextPage,0); + packet(0x093e,clif->pPartyInvite2,2); + packet(0x0947,clif->pReqCloseBuyingStore,0); + packet(0x0948,clif->pActionRequest,2,6); + packet(0x094a,clif->pReqClickBuyingStore,2); + packet(0x094b,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0954,clif->pChangeDir,2,4); + packet(0x0957,clif->pMoveToKafra,2,4); + packet(0x0958,clif->pMoveFromKafra,2,4); + packet(0x095c,clif->pPartyBookingRegisterReq,2,4); + packet(0x095e,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0961,clif->pSearchStoreInfoListItemClick,2,6,10); #endif // 2016-06-22aRagexe #if PACKETVER == 20160622 - packet(0x023b,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x035f,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0361,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0437,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x07e4,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0861,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0865,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0867,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0880,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0887,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0890,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0891,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0892,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x089a,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x089e,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x08a2,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x08a8,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x091c,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x092d,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x092f,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0936,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0937,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x093b,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x093f,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0946,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x0959,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x0965,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0969,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 + packet(0x023b,clif->pUseSkillToPos,2,4,6,8); + packet(0x035f,clif->pMoveFromKafra,2,4); + packet(0x0361,clif->pPartyInvite2,2); + packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0437,clif->pWalkToXY,2); + packet(0x07e4,clif->pHomMenu,2,4); + packet(0x0861,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0865,clif->pDull/*,XXX*/); + packet(0x0867,clif->pDull/*,XXX*/); + packet(0x0880,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0887,clif->pReqCloseBuyingStore,0); + packet(0x0890,clif->pFriendsListAdd,2); + packet(0x0891,clif->pReqClickBuyingStore,2); + packet(0x0892,clif->pSearchStoreInfoNextPage,0); + packet(0x089a,clif->pPartyBookingRegisterReq,2,4); + packet(0x089e,clif->pActionRequest,2,6); + packet(0x08a2,clif->pSolveCharName,2); + packet(0x08a8,clif->pStoragePassword,0); + packet(0x091c,clif->pTakeItem,2); + packet(0x092d,clif->pTickSend,2); + packet(0x092f,clif->pUseSkillToId,2,4,6); + packet(0x0936,clif->pWantToConnection,2,6,10,14,18); + packet(0x0937,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x093b,clif->pMoveToKafra,2,4); + packet(0x093f,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0946,clif->pItemListWindowSelected,2,4,8); + packet(0x0959,clif->pGetCharNameRequest,2); + packet(0x0965,clif->pChangeDir,2,4); + packet(0x0969,clif->pDropItem,2,4); #endif // 2016-06-29aRagexe, 2016-06-30aRagexe #if PACKETVER == 20160629 || \ PACKETVER == 20160630 - packet(0x0202,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x022d,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x035f,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0363,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0368,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x085c,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x085e,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0860,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0861,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0863,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0867,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x086b,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0881,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0885,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x088e,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x0893,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x091e,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0922,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0925,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0926,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x093e,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0946,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0948,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x094a,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0957,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x095a,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0968,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x0969,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x096a,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 + packet(0x0202,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x022d,clif->pWalkToXY,2); + packet(0x035f,clif->pDull/*,XXX*/); + packet(0x0363,clif->pReqClickBuyingStore,2); + packet(0x0368,clif->pItemListWindowSelected,2,4,8); + packet(0x085c,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x085e,clif->pDull/*,XXX*/); + packet(0x0860,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0861,clif->pDropItem,2,4); + packet(0x0863,clif->pSolveCharName,2); + packet(0x0867,clif->pStoragePassword,0); + packet(0x086b,clif->pSearchStoreInfoNextPage,0); + packet(0x0881,clif->pWantToConnection,2,6,10,14,18); + packet(0x0885,clif->pHomMenu,2,4); + packet(0x088e,clif->pGetCharNameRequest,2); + packet(0x0893,clif->pTickSend,2); + packet(0x091e,clif->pPartyBookingRegisterReq,2,4); + packet(0x0922,clif->pMoveFromKafra,2,4); + packet(0x0925,clif->pUseSkillToId,2,4,6); + packet(0x0926,clif->pPartyInvite2,2); + packet(0x093e,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0946,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0948,clif->pChangeDir,2,4); + packet(0x094a,clif->pFriendsListAdd,2); + packet(0x0957,clif->pReqCloseBuyingStore,0); + packet(0x095a,clif->pActionRequest,2,6); + packet(0x0968,clif->pUseSkillToPos,2,4,6,8); + packet(0x0969,clif->pTakeItem,2); + packet(0x096a,clif->pMoveToKafra,2,4); #endif // 2016-07-06bRagexe #if PACKETVER == 20160706 - packet(0x0362,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0436,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x085f,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0860,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0869,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x086b,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0884,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0886,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0889,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0892,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0899,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x08a4,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x08a5,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x08a8,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0918,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x091b,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x0924,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x0926,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0927,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0929,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x092d,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0939,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x093d,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0944,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0945,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x094c,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x0952,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0957,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x0958,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 + packet(0x0362,clif->pSolveCharName,2); + packet(0x0436,clif->pReqClickBuyingStore,2); + packet(0x085f,clif->pPartyInvite2,2); + packet(0x0860,clif->pActionRequest,2,6); + packet(0x0869,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x086b,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0884,clif->pFriendsListAdd,2); + packet(0x0886,clif->pDull/*,XXX*/); + packet(0x0889,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0892,clif->pHomMenu,2,4); + packet(0x0899,clif->pUseSkillToId,2,4,6); + packet(0x08a4,clif->pPartyBookingRegisterReq,2,4); + packet(0x08a5,clif->pWantToConnection,2,6,10,14,18); + packet(0x08a8,clif->pTickSend,2); + packet(0x0918,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x091b,clif->pItemListWindowSelected,2,4,8); + packet(0x0924,clif->pUseSkillToPos,2,4,6,8); + packet(0x0926,clif->pChangeDir,2,4); + packet(0x0927,clif->pSearchStoreInfoNextPage,0); + packet(0x0929,clif->pMoveFromKafra,2,4); + packet(0x092d,clif->pWalkToXY,2); + packet(0x0939,clif->pMoveToKafra,2,4); + packet(0x093d,clif->pDropItem,2,4); + packet(0x0944,clif->pDull/*,XXX*/); + packet(0x0945,clif->pGetCharNameRequest,2); + packet(0x094c,clif->pStoragePassword,0); + packet(0x0952,clif->pReqCloseBuyingStore,0); + packet(0x0957,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x0958,clif->pTakeItem,2); #endif // 2016-07-13aRagexe, 2016-07-13bRagexe, 2016-07-13cRagexe, 2016-07-13dRagexe #if PACKETVER == 20160713 - packet(0x022d,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x0363,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0364,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x0838,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x0860,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0865,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0869,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0875,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0877,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x087b,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0883,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x088d,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0892,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x089a,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x089f,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x08a2,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x08a4,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x091c,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x091d,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0921,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0922,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x092c,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x0931,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0939,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0944,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0945,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0947,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0957,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x095b,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 + packet(0x022d,clif->pStoragePassword,0); + packet(0x0363,clif->pChangeDir,2,4); + packet(0x0364,clif->pItemListWindowSelected,2,4,8); + packet(0x0838,clif->pTakeItem,2); + packet(0x0860,clif->pReqClickBuyingStore,2); + packet(0x0865,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0869,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0875,clif->pSearchStoreInfoNextPage,0); + packet(0x0877,clif->pUseSkillToPos,2,4,6,8); + packet(0x087b,clif->pTickSend,2); + packet(0x0883,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x088d,clif->pPartyBookingRegisterReq,2,4); + packet(0x0892,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x089a,clif->pPartyInvite2,2); + packet(0x089f,clif->pDull/*,XXX*/); + packet(0x08a2,clif->pMoveFromKafra,2,4); + packet(0x08a4,clif->pWantToConnection,2,6,10,14,18); + packet(0x091c,clif->pWalkToXY,2); + packet(0x091d,clif->pSolveCharName,2); + packet(0x0921,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0922,clif->pHomMenu,2,4); + packet(0x092c,clif->pGetCharNameRequest,2); + packet(0x0931,clif->pUseSkillToId,2,4,6); + packet(0x0939,clif->pFriendsListAdd,2); + packet(0x0944,clif->pReqCloseBuyingStore,0); + packet(0x0945,clif->pActionRequest,2,6); + packet(0x0947,clif->pMoveToKafra,2,4); + packet(0x0957,clif->pDropItem,2,4); + packet(0x095b,clif->pDull/*,XXX*/); #endif // 2016-07-20aRagexe, 2016-07-20bRagexe #if PACKETVER == 20160720 - packet(0x0362,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0363,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0365,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x07e4,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0819,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0838,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x085b,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x086a,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x086d,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x087f,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0883,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x0887,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x0897,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x089a,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x089c,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x089e,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x08a0,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x08aa,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x0917,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x091c,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x092a,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x093b,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x093e,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0946,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x094d,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0953,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x095b,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0960,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0969,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 + packet(0x0362,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0363,clif->pUseSkillToId,2,4,6); + packet(0x0365,clif->pActionRequest,2,6); + packet(0x07e4,clif->pWantToConnection,2,6,10,14,18); + packet(0x0819,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0838,clif->pWalkToXY,2); + packet(0x085b,clif->pReqCloseBuyingStore,0); + packet(0x086a,clif->pSearchStoreInfoNextPage,0); + packet(0x086d,clif->pReqClickBuyingStore,2); + packet(0x087f,clif->pDropItem,2,4); + packet(0x0883,clif->pUseSkillToPos,2,4,6,8); + packet(0x0887,clif->pGetCharNameRequest,2); + packet(0x0897,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x089a,clif->pStoragePassword,0); + packet(0x089c,clif->pHomMenu,2,4); + packet(0x089e,clif->pMoveFromKafra,2,4); + packet(0x08a0,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x08aa,clif->pItemListWindowSelected,2,4,8); + packet(0x0917,clif->pDull/*,XXX*/); + packet(0x091c,clif->pTakeItem,2); + packet(0x092a,clif->pFriendsListAdd,2); + packet(0x093b,clif->pChangeDir,2,4); + packet(0x093e,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0946,clif->pTickSend,2); + packet(0x094d,clif->pSolveCharName,2); + packet(0x0953,clif->pDull/*,XXX*/); + packet(0x095b,clif->pPartyBookingRegisterReq,2,4); + packet(0x0960,clif->pMoveToKafra,2,4); + packet(0x0969,clif->pPartyInvite2,2); #endif // 2016-07-27aRagexe, 2016-07-27bRagexe #if PACKETVER == 20160727 - packet(0x0202,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x023b,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0362,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0363,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0436,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0438,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x07ec,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0866,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0868,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0869,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x0874,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0877,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0883,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0887,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x088e,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0891,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x089f,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x08a2,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x08a4,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x08a7,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x092e,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0936,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0941,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0946,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x0949,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0951,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x095f,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0966,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0969,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 + packet(0x0202,clif->pChangeDir,2,4); + packet(0x023b,clif->pDull/*,XXX*/); + packet(0x0362,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0363,clif->pFriendsListAdd,2); + packet(0x0436,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0438,clif->pTickSend,2); + packet(0x07ec,clif->pDropItem,2,4); + packet(0x0866,clif->pDull/*,XXX*/); + packet(0x0868,clif->pPartyInvite2,2); + packet(0x0869,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x0874,clif->pReqClickBuyingStore,2); + packet(0x0877,clif->pPartyBookingRegisterReq,2,4); + packet(0x0883,clif->pActionRequest,2,6); + packet(0x0887,clif->pWantToConnection,2,6,10,14,18); + packet(0x088e,clif->pUseSkillToId,2,4,6); + packet(0x0891,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x089f,clif->pUseSkillToPos,2,4,6,8); + packet(0x08a2,clif->pStoragePassword,0); + packet(0x08a4,clif->pSolveCharName,2); + packet(0x08a7,clif->pTakeItem,2); + packet(0x092e,clif->pWalkToXY,2); + packet(0x0936,clif->pHomMenu,2,4); + packet(0x0941,clif->pSearchStoreInfoNextPage,0); + packet(0x0946,clif->pGetCharNameRequest,2); + packet(0x0949,clif->pMoveFromKafra,2,4); + packet(0x0951,clif->pMoveToKafra,2,4); + packet(0x095f,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0966,clif->pReqCloseBuyingStore,0); + packet(0x0969,clif->pItemListWindowSelected,2,4,8); #endif // 2016-08-03bRagexe #if PACKETVER == 20160803 - packet(0x0364,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x085d,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0878,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x087f,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0881,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0886,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0887,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x0888,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x088b,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0891,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0895,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x089c,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x089e,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x08a1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x091b,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x0929,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x0930,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x0932,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0934,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0937,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x093a,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x093e,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x093f,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0952,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0955,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0956,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x0959,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x095a,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x096a,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 + packet(0x0364,clif->pWantToConnection,2,6,10,14,18); + packet(0x085d,clif->pReqClickBuyingStore,2); + packet(0x0878,clif->pDull/*,XXX*/); + packet(0x087f,clif->pWalkToXY,2); + packet(0x0881,clif->pPartyBookingRegisterReq,2,4); + packet(0x0886,clif->pMoveToKafra,2,4); + packet(0x0887,clif->pGetCharNameRequest,2); + packet(0x0888,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x088b,clif->pReqCloseBuyingStore,0); + packet(0x0891,clif->pChangeDir,2,4); + packet(0x0895,clif->pFriendsListAdd,2); + packet(0x089c,clif->pDropItem,2,4); + packet(0x089e,clif->pSearchStoreInfoNextPage,0); + packet(0x08a1,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x091b,clif->pTakeItem,2); + packet(0x0929,clif->pStoragePassword,0); + packet(0x0930,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x0932,clif->pUseSkillToId,2,4,6); + packet(0x0934,clif->pActionRequest,2,6); + packet(0x0937,clif->pUseSkillToPos,2,4,6,8); + packet(0x093a,clif->pDull/*,XXX*/); + packet(0x093e,clif->pTickSend,2); + packet(0x093f,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0952,clif->pHomMenu,2,4); + packet(0x0955,clif->pMoveFromKafra,2,4); + packet(0x0956,clif->pItemListWindowSelected,2,4,8); + packet(0x0959,clif->pSolveCharName,2); + packet(0x095a,clif->pPartyInvite2,2); + packet(0x096a,clif->pReqTradeBuyingStore,2,4,8,12); #endif // 2016-08-10aRagexe #if PACKETVER == 20160810 - packet(0x0361,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x0819,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x0838,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x085d,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x085e,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x085f,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0860,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x086f,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0875,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0879,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x087a,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0885,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0888,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0890,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x089d,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x089f,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x08a9,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x091a,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x091b,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x091c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0926,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x092b,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x092d,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0935,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0943,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x094b,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0959,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x095b,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0967,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 + packet(0x0361,clif->pStoragePassword,0); + packet(0x0819,clif->pUseSkillToPos,2,4,6,8); + packet(0x0838,clif->pPartyInvite2,2); + packet(0x085d,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x085e,clif->pDropItem,2,4); + packet(0x085f,clif->pPartyBookingRegisterReq,2,4); + packet(0x0860,clif->pSolveCharName,2); + packet(0x086f,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0875,clif->pHomMenu,2,4); + packet(0x0879,clif->pReqClickBuyingStore,2); + packet(0x087a,clif->pWalkToXY,2); + packet(0x0885,clif->pWantToConnection,2,6,10,14,18); + packet(0x0888,clif->pFriendsListAdd,2); + packet(0x0890,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x089d,clif->pChangeDir,2,4); + packet(0x089f,clif->pItemListWindowSelected,2,4,8); + packet(0x08a9,clif->pMoveToKafra,2,4); + packet(0x091a,clif->pTakeItem,2); + packet(0x091b,clif->pGetCharNameRequest,2); + packet(0x091c,clif->pUseSkillToId,2,4,6); + packet(0x0926,clif->pDull/*,XXX*/); + packet(0x092b,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x092d,clif->pMoveFromKafra,2,4); + packet(0x0935,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0943,clif->pTickSend,2); + packet(0x094b,clif->pSearchStoreInfoNextPage,0); + packet(0x0959,clif->pReqCloseBuyingStore,0); + packet(0x095b,clif->pActionRequest,2,6); + packet(0x0967,clif->pDull/*,XXX*/); #endif // 2016-08-17aRagexe #if PACKETVER == 20160817 - packet(0x0364,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0437,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x07e4,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x0811,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0819,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x083c,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x085c,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x0867,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x086b,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0875,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x087f,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0886,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0891,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x089c,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x08a5,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x08a6,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x08a9,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x08ab,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x08ac,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x08ad,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x091b,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0929,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x092d,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0930,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0939,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x093c,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0957,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0960,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0963,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 + packet(0x0364,clif->pReqClickBuyingStore,2); + packet(0x0437,clif->pFriendsListAdd,2); + packet(0x07e4,clif->pGetCharNameRequest,2); + packet(0x0811,clif->pDull/*,XXX*/); + packet(0x0819,clif->pTickSend,2); + packet(0x083c,clif->pItemListWindowSelected,2,4,8); + packet(0x085c,clif->pTakeItem,2); + packet(0x0867,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x086b,clif->pSolveCharName,2); + packet(0x0875,clif->pWantToConnection,2,6,10,14,18); + packet(0x087f,clif->pDropItem,2,4); + packet(0x0886,clif->pActionRequest,2,6); + packet(0x0891,clif->pUseSkillToId,2,4,6); + packet(0x089c,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x08a5,clif->pStoragePassword,0); + packet(0x08a6,clif->pPartyInvite2,2); + packet(0x08a9,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x08ab,clif->pHomMenu,2,4); + packet(0x08ac,clif->pUseSkillToPos,2,4,6,8); + packet(0x08ad,clif->pMoveToKafra,2,4); + packet(0x091b,clif->pReqCloseBuyingStore,0); + packet(0x0929,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x092d,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0930,clif->pWalkToXY,2); + packet(0x0939,clif->pMoveFromKafra,2,4); + packet(0x093c,clif->pDull/*,XXX*/); + packet(0x0957,clif->pPartyBookingRegisterReq,2,4); + packet(0x0960,clif->pSearchStoreInfoNextPage,0); + packet(0x0963,clif->pChangeDir,2,4); #endif // 2016-08-24aRagexe #if PACKETVER == 20160824 - packet(0x0202,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x022d,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x023b,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0281,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x035f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0360,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0361,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0362,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0363,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0364,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0365,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0436,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0437,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0438,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x07e4,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x07ec,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0802,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0835,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x083c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0934,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x096a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 + packet(0x0202,clif->pChangeDir,2,4); + packet(0x022d,clif->pWantToConnection,2,6,10,14,18); + packet(0x023b,clif->pFriendsListAdd,2); + packet(0x0281,clif->pItemListWindowSelected,2,4,8); + packet(0x035f,clif->pTickSend,2); + packet(0x0360,clif->pReqClickBuyingStore,2); + packet(0x0361,clif->pHomMenu,2,4); + packet(0x0362,clif->pDropItem,2,4); + packet(0x0363,clif->pDull/*,XXX*/); + packet(0x0364,clif->pMoveFromKafra,2,4); + packet(0x0365,clif->pPartyBookingRegisterReq,2,4); + packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pActionRequest,2,6); + packet(0x0436,clif->pDull/*,XXX*/); + packet(0x0437,clif->pWalkToXY,2); + packet(0x0438,clif->pUseSkillToPos,2,4,6,8); + packet(0x07e4,clif->pTakeItem,2); + packet(0x07ec,clif->pMoveToKafra,2,4); + packet(0x0802,clif->pPartyInvite2,2); + packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0835,clif->pSearchStoreInfoNextPage,0); + packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x083c,clif->pUseSkillToId,2,4,6); + packet(0x0934,clif->pStoragePassword,0); + packet(0x096a,clif->pGetCharNameRequest,2); #endif // 2016-08-31aRagexe, 2016-08-31bRagexe #if PACKETVER == 20160831 - packet(0x022d,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0366,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x07ec,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0835,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0865,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x086d,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0870,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0874,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0876,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0878,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x087c,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x08a8,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x08a9,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0917,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x091b,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x092c,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x092e,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x0938,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x093a,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0946,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x094a,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x094f,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0950,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0954,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x0957,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x095e,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0960,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x0964,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x0967,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 + packet(0x022d,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0366,clif->pDropItem,2,4); + packet(0x07ec,clif->pReqClickBuyingStore,2); + packet(0x0835,clif->pWantToConnection,2,6,10,14,18); + packet(0x0865,clif->pWalkToXY,2); + packet(0x086d,clif->pReqCloseBuyingStore,0); + packet(0x0870,clif->pPartyBookingRegisterReq,2,4); + packet(0x0874,clif->pPartyInvite2,2); + packet(0x0876,clif->pDull/*,XXX*/); + packet(0x0878,clif->pActionRequest,2,6); + packet(0x087c,clif->pGetCharNameRequest,2); + packet(0x08a8,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x08a9,clif->pTickSend,2); + packet(0x0917,clif->pStoragePassword,0); + packet(0x091b,clif->pDull/*,XXX*/); + packet(0x092c,clif->pFriendsListAdd,2); + packet(0x092e,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x0938,clif->pSearchStoreInfoNextPage,0); + packet(0x093a,clif->pHomMenu,2,4); + packet(0x0946,clif->pSolveCharName,2); + packet(0x094a,clif->pChangeDir,2,4); + packet(0x094f,clif->pMoveToKafra,2,4); + packet(0x0950,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0954,clif->pItemListWindowSelected,2,4,8); + packet(0x0957,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x095e,clif->pMoveFromKafra,2,4); + packet(0x0960,clif->pTakeItem,2); + packet(0x0964,clif->pUseSkillToPos,2,4,6,8); + packet(0x0967,clif->pUseSkillToId,2,4,6); #endif // 2016-09-07aRagexe #if PACKETVER == 20160907 - packet(0x0202,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x022d,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x023b,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0281,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x035f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0360,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0361,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0362,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0363,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0364,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0365,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0436,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0437,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0438,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x07e4,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x07ec,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0802,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0835,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x083c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x091c,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x096a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 + packet(0x0202,clif->pChangeDir,2,4); + packet(0x022d,clif->pWantToConnection,2,6,10,14,18); + packet(0x023b,clif->pFriendsListAdd,2); + packet(0x0281,clif->pItemListWindowSelected,2,4,8); + packet(0x035f,clif->pTickSend,2); + packet(0x0360,clif->pReqClickBuyingStore,2); + packet(0x0361,clif->pHomMenu,2,4); + packet(0x0362,clif->pDropItem,2,4); + packet(0x0363,clif->pDull/*,XXX*/); + packet(0x0364,clif->pMoveFromKafra,2,4); + packet(0x0365,clif->pPartyBookingRegisterReq,2,4); + packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pActionRequest,2,6); + packet(0x0436,clif->pDull/*,XXX*/); + packet(0x0437,clif->pWalkToXY,2); + packet(0x0438,clif->pUseSkillToPos,2,4,6,8); + packet(0x07e4,clif->pTakeItem,2); + packet(0x07ec,clif->pMoveToKafra,2,4); + packet(0x0802,clif->pPartyInvite2,2); + packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0835,clif->pSearchStoreInfoNextPage,0); + packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x083c,clif->pUseSkillToId,2,4,6); + packet(0x091c,clif->pStoragePassword,0); + packet(0x096a,clif->pGetCharNameRequest,2); #endif // 2016-09-13aRagexe #if PACKETVER == 20160913 - packet(0x0361,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0817,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x085b,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x0865,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x0874,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0875,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0879,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x087a,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x087b,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0887,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x0889,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x088e,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x088f,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0891,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0892,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x089b,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x089c,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x08a5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0928,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0935,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x093a,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0949,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x094a,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0950,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0952,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0954,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0962,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0963,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0968,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 + packet(0x0361,clif->pPartyBookingRegisterReq,2,4); + packet(0x0817,clif->pMoveToKafra,2,4); + packet(0x085b,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x0865,clif->pGetCharNameRequest,2); + packet(0x0874,clif->pReqClickBuyingStore,2); + packet(0x0875,clif->pTickSend,2); + packet(0x0879,clif->pDropItem,2,4); + packet(0x087a,clif->pDull/*,XXX*/); + packet(0x087b,clif->pSearchStoreInfoNextPage,0); + packet(0x0887,clif->pItemListWindowSelected,2,4,8); + packet(0x0889,clif->pTakeItem,2); + packet(0x088e,clif->pUseSkillToId,2,4,6); + packet(0x088f,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0891,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0892,clif->pUseSkillToPos,2,4,6,8); + packet(0x089b,clif->pMoveFromKafra,2,4); + packet(0x089c,clif->pStoragePassword,0); + packet(0x08a5,clif->pChangeDir,2,4); + packet(0x0928,clif->pFriendsListAdd,2); + packet(0x0935,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x093a,clif->pHomMenu,2,4); + packet(0x0949,clif->pPartyInvite2,2); + packet(0x094a,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0950,clif->pActionRequest,2,6); + packet(0x0952,clif->pWantToConnection,2,6,10,14,18); + packet(0x0954,clif->pWalkToXY,2); + packet(0x0962,clif->pDull/*,XXX*/); + packet(0x0963,clif->pSolveCharName,2); + packet(0x0968,clif->pReqCloseBuyingStore,0); #endif // 2016-09-21aRagexe #if PACKETVER == 20160921 - packet(0x0202,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x022d,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x023b,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0281,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x035f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0360,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0361,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0362,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0363,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0364,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0365,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0436,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0437,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0438,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x07e4,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x07ec,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0802,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0835,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x083c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x094a,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x096a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 + packet(0x0202,clif->pChangeDir,2,4); + packet(0x022d,clif->pWantToConnection,2,6,10,14,18); + packet(0x023b,clif->pFriendsListAdd,2); + packet(0x0281,clif->pItemListWindowSelected,2,4,8); + packet(0x035f,clif->pTickSend,2); + packet(0x0360,clif->pReqClickBuyingStore,2); + packet(0x0361,clif->pHomMenu,2,4); + packet(0x0362,clif->pDropItem,2,4); + packet(0x0363,clif->pDull/*,XXX*/); + packet(0x0364,clif->pMoveFromKafra,2,4); + packet(0x0365,clif->pPartyBookingRegisterReq,2,4); + packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pActionRequest,2,6); + packet(0x0436,clif->pDull/*,XXX*/); + packet(0x0437,clif->pWalkToXY,2); + packet(0x0438,clif->pUseSkillToPos,2,4,6,8); + packet(0x07e4,clif->pTakeItem,2); + packet(0x07ec,clif->pMoveToKafra,2,4); + packet(0x0802,clif->pPartyInvite2,2); + packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0835,clif->pSearchStoreInfoNextPage,0); + packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x083c,clif->pUseSkillToId,2,4,6); + packet(0x094a,clif->pStoragePassword,0); + packet(0x096a,clif->pGetCharNameRequest,2); #endif // 2016-09-28cRagexe #if PACKETVER == 20160928 - packet(0x0202,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x035f,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x0366,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0436,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0811,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0838,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0864,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0866,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x086d,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0872,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0878,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x087f,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x0889,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x088e,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0897,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x089a,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x08a2,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x08a9,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0919,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x091e,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0927,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x092d,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x0944,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x094d,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x094e,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0953,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0955,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0957,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x095a,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 + packet(0x0202,clif->pItemListWindowSelected,2,4,8); + packet(0x035f,clif->pGetCharNameRequest,2); + packet(0x0366,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0436,clif->pReqClickBuyingStore,2); + packet(0x0811,clif->pDull/*,XXX*/); + packet(0x0838,clif->pPartyInvite2,2); + packet(0x0864,clif->pMoveFromKafra,2,4); + packet(0x0866,clif->pSearchStoreInfoNextPage,0); + packet(0x086d,clif->pDropItem,2,4); + packet(0x0872,clif->pHomMenu,2,4); + packet(0x0878,clif->pSolveCharName,2); + packet(0x087f,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x0889,clif->pWantToConnection,2,6,10,14,18); + packet(0x088e,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0897,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x089a,clif->pActionRequest,2,6); + packet(0x08a2,clif->pStoragePassword,0); + packet(0x08a9,clif->pMoveToKafra,2,4); + packet(0x0919,clif->pWalkToXY,2); + packet(0x091e,clif->pTickSend,2); + packet(0x0927,clif->pUseSkillToId,2,4,6); + packet(0x092d,clif->pUseSkillToPos,2,4,6,8); + packet(0x0944,clif->pChangeDir,2,4); + packet(0x094d,clif->pReqCloseBuyingStore,0); + packet(0x094e,clif->pFriendsListAdd,2); + packet(0x0953,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0955,clif->pPartyBookingRegisterReq,2,4); + packet(0x0957,clif->pTakeItem,2); + packet(0x095a,clif->pDull/*,XXX*/); #endif // 2016-10-05aRagexe #if PACKETVER == 20161005 - packet(0x0202,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0368,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0838,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x0863,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x0886,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x088e,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0891,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0892,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x089b,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x089c,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x08a0,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x08ac,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x08ad,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0918,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0919,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x091e,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x092b,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0931,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0932,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x093b,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x0942,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0944,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0945,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x094a,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x094d,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0952,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x095a,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x095b,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0967,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 + packet(0x0202,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0368,clif->pActionRequest,2,6); + packet(0x0838,clif->pStoragePassword,0); + packet(0x0863,clif->pGetCharNameRequest,2); + packet(0x0886,clif->pItemListWindowSelected,2,4,8); + packet(0x088e,clif->pMoveFromKafra,2,4); + packet(0x0891,clif->pChangeDir,2,4); + packet(0x0892,clif->pPartyBookingRegisterReq,2,4); + packet(0x089b,clif->pPartyInvite2,2); + packet(0x089c,clif->pTakeItem,2); + packet(0x08a0,clif->pMoveToKafra,2,4); + packet(0x08ac,clif->pReqCloseBuyingStore,0); + packet(0x08ad,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0918,clif->pSearchStoreInfoNextPage,0); + packet(0x0919,clif->pSolveCharName,2); + packet(0x091e,clif->pDull/*,XXX*/); + packet(0x092b,clif->pTickSend,2); + packet(0x0931,clif->pFriendsListAdd,2); + packet(0x0932,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x093b,clif->pUseSkillToPos,2,4,6,8); + packet(0x0942,clif->pDropItem,2,4); + packet(0x0944,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0945,clif->pWalkToXY,2); + packet(0x094a,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x094d,clif->pHomMenu,2,4); + packet(0x0952,clif->pDull/*,XXX*/); + packet(0x095a,clif->pReqClickBuyingStore,2); + packet(0x095b,clif->pWantToConnection,2,6,10,14,18); + packet(0x0967,clif->pUseSkillToId,2,4,6); #endif // 2016-10-12aRagexe #if PACKETVER == 20161012 - packet(0x023b,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0362,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0364,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x0365,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0369,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x07ec,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0819,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x085b,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x085e,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0863,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0868,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x086d,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0872,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x0875,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0880,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x0893,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x08a0,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x092d,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0936,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x0937,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0939,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0943,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0944,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x094f,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0951,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x095c,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0962,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0966,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0967,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 + packet(0x023b,clif->pSearchStoreInfoNextPage,0); + packet(0x0362,clif->pDropItem,2,4); + packet(0x0364,clif->pItemListWindowSelected,2,4,8); + packet(0x0365,clif->pTickSend,2); + packet(0x0369,clif->pPartyInvite2,2); + packet(0x07ec,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0819,clif->pFriendsListAdd,2); + packet(0x085b,clif->pDull/*,XXX*/); + packet(0x085e,clif->pReqCloseBuyingStore,0); + packet(0x0863,clif->pActionRequest,2,6); + packet(0x0868,clif->pTakeItem,2); + packet(0x086d,clif->pWantToConnection,2,6,10,14,18); + packet(0x0872,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x0875,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0880,clif->pUseSkillToPos,2,4,6,8); + packet(0x0893,clif->pMoveToKafra,2,4); + packet(0x08a0,clif->pChangeDir,2,4); + packet(0x092d,clif->pSolveCharName,2); + packet(0x0936,clif->pGetCharNameRequest,2); + packet(0x0937,clif->pReqClickBuyingStore,2); + packet(0x0939,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0943,clif->pPartyBookingRegisterReq,2,4); + packet(0x0944,clif->pMoveFromKafra,2,4); + packet(0x094f,clif->pDull/*,XXX*/); + packet(0x0951,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x095c,clif->pHomMenu,2,4); + packet(0x0962,clif->pUseSkillToId,2,4,6); + packet(0x0966,clif->pWalkToXY,2); + packet(0x0967,clif->pStoragePassword,0); #endif // 2016-10-19aRagexe #if PACKETVER == 20161019 - packet(0x022d,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0281,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x035f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0360,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0361,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0362,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0363,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0364,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0365,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0437,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0438,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x07e4,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x07ec,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0802,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0835,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x083c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0889,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x0892,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0946,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0963,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x096a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 + packet(0x022d,clif->pReqClickBuyingStore,2); + packet(0x0281,clif->pItemListWindowSelected,2,4,8); + packet(0x035f,clif->pTickSend,2); + packet(0x0360,clif->pHomMenu,2,4); + packet(0x0361,clif->pWalkToXY,2); + packet(0x0362,clif->pDropItem,2,4); + packet(0x0363,clif->pDull/*,XXX*/); + packet(0x0364,clif->pMoveFromKafra,2,4); + packet(0x0365,clif->pPartyBookingRegisterReq,2,4); + packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pActionRequest,2,6); + packet(0x0437,clif->pChangeDir,2,4); + packet(0x0438,clif->pUseSkillToPos,2,4,6,8); + packet(0x07e4,clif->pTakeItem,2); + packet(0x07ec,clif->pMoveToKafra,2,4); + packet(0x0802,clif->pPartyInvite2,2); + packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0835,clif->pSearchStoreInfoNextPage,0); + packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x083c,clif->pUseSkillToId,2,4,6); + packet(0x0889,clif->pStoragePassword,0); + packet(0x0892,clif->pDull/*,XXX*/); + packet(0x0946,clif->pWantToConnection,2,6,10,14,18); + packet(0x0963,clif->pFriendsListAdd,2); + packet(0x096a,clif->pGetCharNameRequest,2); #endif // 2016-10-26bRagexe, 2016-10-26cRagexe #if PACKETVER == 20161026 - packet(0x0363,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x0438,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0802,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x085a,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x085f,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0861,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0862,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x086a,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x086c,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x086e,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x087a,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x087c,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x087f,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x0886,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0891,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0894,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0898,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x091a,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x091b,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x0926,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x092c,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x092e,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x092f,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0930,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x094b,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0953,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x095c,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x095e,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0962,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 + packet(0x0363,clif->pStoragePassword,0); + packet(0x0438,clif->pWalkToXY,2); + packet(0x0802,clif->pPartyBookingRegisterReq,2,4); + packet(0x085a,clif->pMoveToKafra,2,4); + packet(0x085f,clif->pActionRequest,2,6); + packet(0x0861,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0862,clif->pTickSend,2); + packet(0x086a,clif->pSearchStoreInfoNextPage,0); + packet(0x086c,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x086e,clif->pDull/*,XXX*/); + packet(0x087a,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x087c,clif->pDull/*,XXX*/); + packet(0x087f,clif->pUseSkillToPos,2,4,6,8); + packet(0x0886,clif->pDropItem,2,4); + packet(0x0891,clif->pReqClickBuyingStore,2); + packet(0x0894,clif->pUseSkillToId,2,4,6); + packet(0x0898,clif->pFriendsListAdd,2); + packet(0x091a,clif->pWantToConnection,2,6,10,14,18); + packet(0x091b,clif->pTakeItem,2); + packet(0x0926,clif->pSolveCharName,2); + packet(0x092c,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x092e,clif->pHomMenu,2,4); + packet(0x092f,clif->pReqCloseBuyingStore,0); + packet(0x0930,clif->pGetCharNameRequest,2); + packet(0x094b,clif->pMoveFromKafra,2,4); + packet(0x0953,clif->pPartyInvite2,2); + packet(0x095c,clif->pItemListWindowSelected,2,4,8); + packet(0x095e,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0962,clif->pChangeDir,2,4); #endif // 2016-11-02aRagexe, 2016-11-03aRagexe #if PACKETVER == 20161102 || \ PACKETVER == 20161103 - packet(0x0361,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0367,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0436,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0802,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x0838,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x083c,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x085f,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0869,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x086c,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x086f,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0874,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0886,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x088f,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0890,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x089f,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x08a2,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x08aa,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x091b,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x0922,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0925,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0928,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x092f,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x0936,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0946,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0949,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x095e,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x0964,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x0965,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x0966,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 + packet(0x0361,clif->pMoveFromKafra,2,4); + packet(0x0367,clif->pDull/*,XXX*/); + packet(0x0436,clif->pActionRequest,2,6); + packet(0x0802,clif->pTakeItem,2); + packet(0x0838,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x083c,clif->pPartyBookingRegisterReq,2,4); + packet(0x085f,clif->pUseSkillToId,2,4,6); + packet(0x0869,clif->pMoveToKafra,2,4); + packet(0x086c,clif->pSearchStoreInfoNextPage,0); + packet(0x086f,clif->pDull/*,XXX*/); + packet(0x0874,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0886,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x088f,clif->pHomMenu,2,4); + packet(0x0890,clif->pDropItem,2,4); + packet(0x089f,clif->pPartyInvite2,2); + packet(0x08a2,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x08aa,clif->pWalkToXY,2); + packet(0x091b,clif->pStoragePassword,0); + packet(0x0922,clif->pReqClickBuyingStore,2); + packet(0x0925,clif->pSolveCharName,2); + packet(0x0928,clif->pFriendsListAdd,2); + packet(0x092f,clif->pGetCharNameRequest,2); + packet(0x0936,clif->pReqCloseBuyingStore,0); + packet(0x0946,clif->pWantToConnection,2,6,10,14,18); + packet(0x0949,clif->pChangeDir,2,4); + packet(0x095e,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x0964,clif->pItemListWindowSelected,2,4,8); + packet(0x0965,clif->pUseSkillToPos,2,4,6,8); + packet(0x0966,clif->pTickSend,2); #endif // 2016-11-09aRagexe, 2016-11-09bRagexe #if PACKETVER == 20161109 - packet(0x02c4,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0361,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0362,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0365,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0366,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0835,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x085d,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x085e,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0865,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x086a,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x086d,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x0870,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0876,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x087a,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0881,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x088e,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x0891,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x0898,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x089a,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x089d,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x089f,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x08a7,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x08ad,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0927,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0937,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x093c,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x093f,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x0954,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0956,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 + packet(0x02c4,clif->pPartyBookingRegisterReq,2,4); + packet(0x0361,clif->pSearchStoreInfoNextPage,0); + packet(0x0362,clif->pMoveFromKafra,2,4); + packet(0x0365,clif->pTickSend,2); + packet(0x0366,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0835,clif->pSolveCharName,2); + packet(0x085d,clif->pReqCloseBuyingStore,0); + packet(0x085e,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0865,clif->pWalkToXY,2); + packet(0x086a,clif->pActionRequest,2,6); + packet(0x086d,clif->pUseSkillToPos,2,4,6,8); + packet(0x0870,clif->pWantToConnection,2,6,10,14,18); + packet(0x0876,clif->pReqClickBuyingStore,2); + packet(0x087a,clif->pDull/*,XXX*/); + packet(0x0881,clif->pMoveToKafra,2,4); + packet(0x088e,clif->pItemListWindowSelected,2,4,8); + packet(0x0891,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x0898,clif->pTakeItem,2); + packet(0x089a,clif->pDropItem,2,4); + packet(0x089d,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x089f,clif->pDull/*,XXX*/); + packet(0x08a7,clif->pHomMenu,2,4); + packet(0x08ad,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0927,clif->pPartyInvite2,2); + packet(0x0937,clif->pFriendsListAdd,2); + packet(0x093c,clif->pStoragePassword,0); + packet(0x093f,clif->pGetCharNameRequest,2); + packet(0x0954,clif->pUseSkillToId,2,4,6); + packet(0x0956,clif->pChangeDir,2,4); #endif // 2016-11-16aRagexe #if PACKETVER == 20161116 - packet(0x0368,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0369,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0835,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x085f,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0864,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x086f,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x0885,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x088b,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x088d,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x088f,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0890,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0892,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x0893,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x08a1,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x08a2,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x08aa,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x08ac,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0920,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0925,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x092a,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0931,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x093c,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x094a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x0952,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0957,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x095b,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x095d,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x095f,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0967,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 + packet(0x0368,clif->pTickSend,2); + packet(0x0369,clif->pMoveToKafra,2,4); + packet(0x0835,clif->pFriendsListAdd,2); + packet(0x085f,clif->pDropItem,2,4); + packet(0x0864,clif->pPartyInvite2,2); + packet(0x086f,clif->pTakeItem,2); + packet(0x0885,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x088b,clif->pHomMenu,2,4); + packet(0x088d,clif->pReqClickBuyingStore,2); + packet(0x088f,clif->pWantToConnection,2,6,10,14,18); + packet(0x0890,clif->pWalkToXY,2); + packet(0x0892,clif->pItemListWindowSelected,2,4,8); + packet(0x0893,clif->pActionRequest,2,6); + packet(0x08a1,clif->pChangeDir,2,4); + packet(0x08a2,clif->pPartyBookingRegisterReq,2,4); + packet(0x08aa,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x08ac,clif->pMoveFromKafra,2,4); + packet(0x0920,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0925,clif->pUseSkillToPos,2,4,6,8); + packet(0x092a,clif->pUseSkillToId,2,4,6); + packet(0x0931,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x093c,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x094a,clif->pGetCharNameRequest,2); + packet(0x0952,clif->pReqCloseBuyingStore,0); + packet(0x0957,clif->pSolveCharName,2); + packet(0x095b,clif->pStoragePassword,0); + packet(0x095d,clif->pDull/*,XXX*/); + packet(0x095f,clif->pSearchStoreInfoNextPage,0); + packet(0x0967,clif->pDull/*,XXX*/); #endif // 2016-11-23aRagexe #if PACKETVER == 20161123 - packet(0x0281,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x035f,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0362,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0437,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x085c,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0861,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0862,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0866,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x086f,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0871,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x087f,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0880,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x0882,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x088b,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x089c,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x08a9,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x08aa,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x091a,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0926,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x092a,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x092f,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x0930,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0941,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x094d,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x094f,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x095a,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x095b,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0962,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x096a,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 + packet(0x0281,clif->pItemListWindowSelected,2,4,8); + packet(0x035f,clif->pPartyBookingRegisterReq,2,4); + packet(0x0362,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0437,clif->pTickSend,2); + packet(0x085c,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0861,clif->pWalkToXY,2); + packet(0x0862,clif->pReqCloseBuyingStore,0); + packet(0x0866,clif->pSearchStoreInfoNextPage,0); + packet(0x086f,clif->pDropItem,2,4); + packet(0x0871,clif->pDull/*,XXX*/); + packet(0x087f,clif->pPartyInvite2,2); + packet(0x0880,clif->pStoragePassword,0); + packet(0x0882,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x088b,clif->pGetCharNameRequest,2); + packet(0x089c,clif->pChangeDir,2,4); + packet(0x08a9,clif->pUseSkillToPos,2,4,6,8); + packet(0x08aa,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x091a,clif->pMoveToKafra,2,4); + packet(0x0926,clif->pWantToConnection,2,6,10,14,18); + packet(0x092a,clif->pReqClickBuyingStore,2); + packet(0x092f,clif->pTakeItem,2); + packet(0x0930,clif->pHomMenu,2,4); + packet(0x0941,clif->pFriendsListAdd,2); + packet(0x094d,clif->pUseSkillToId,2,4,6); + packet(0x094f,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x095a,clif->pDull/*,XXX*/); + packet(0x095b,clif->pActionRequest,2,6); + packet(0x0962,clif->pMoveFromKafra,2,4); + packet(0x096a,clif->pSolveCharName,2); #endif // 2016-11-30aRagexe, 2016-11-30bRagexe #if PACKETVER == 20161130 - packet(0x0281,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x035f,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0360,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0361,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0362,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0363,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0364,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0365,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0437,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0438,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x07e4,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x07ec,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0802,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0835,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x083c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x088f,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0931,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0943,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0954,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x0959,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x096a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 + packet(0x0281,clif->pItemListWindowSelected,2,4,8); + packet(0x035f,clif->pChangeDir,2,4); + packet(0x0360,clif->pReqClickBuyingStore,2); + packet(0x0361,clif->pTickSend,2); + packet(0x0362,clif->pDropItem,2,4); + packet(0x0363,clif->pDull/*,XXX*/); + packet(0x0364,clif->pMoveFromKafra,2,4); + packet(0x0365,clif->pPartyBookingRegisterReq,2,4); + packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pActionRequest,2,6); + packet(0x0437,clif->pWalkToXY,2); + packet(0x0438,clif->pUseSkillToPos,2,4,6,8); + packet(0x07e4,clif->pTakeItem,2); + packet(0x07ec,clif->pMoveToKafra,2,4); + packet(0x0802,clif->pPartyInvite2,2); + packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0835,clif->pSearchStoreInfoNextPage,0); + packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x083c,clif->pUseSkillToId,2,4,6); + packet(0x088f,clif->pDull/*,XXX*/); + packet(0x0931,clif->pHomMenu,2,4); + packet(0x0943,clif->pWantToConnection,2,6,10,14,18); + packet(0x0954,clif->pStoragePassword,0); + packet(0x0959,clif->pFriendsListAdd,2); + packet(0x096a,clif->pGetCharNameRequest,2); #endif // 2016-12-07cRagexe, 2016-12-07eRagexe #if PACKETVER == 20161207 - packet(0x023b,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x035f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0360,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0361,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0437,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0438,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0835,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x083c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0867,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0868,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0875,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x087e,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x0886,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x08a1,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x08a2,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x08ad,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0918,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x091d,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0943,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x095d,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x0965,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x096a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 + packet(0x023b,clif->pHomMenu,2,4); + packet(0x035f,clif->pTickSend,2); + packet(0x0360,clif->pReqClickBuyingStore,2); + packet(0x0361,clif->pWantToConnection,2,6,10,14,18); + packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0437,clif->pWalkToXY,2); + packet(0x0438,clif->pUseSkillToPos,2,4,6,8); + packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0835,clif->pSearchStoreInfoNextPage,0); + packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x083c,clif->pUseSkillToId,2,4,6); + packet(0x0867,clif->pFriendsListAdd,2); + packet(0x0868,clif->pDull/*,XXX*/); + packet(0x0875,clif->pMoveToKafra,2,4); + packet(0x087e,clif->pItemListWindowSelected,2,4,8); + packet(0x0886,clif->pActionRequest,2,6); + packet(0x08a1,clif->pChangeDir,2,4); + packet(0x08a2,clif->pTakeItem,2); + packet(0x08ad,clif->pDropItem,2,4); + packet(0x0918,clif->pPartyBookingRegisterReq,2,4); + packet(0x091d,clif->pMoveFromKafra,2,4); + packet(0x0943,clif->pDull/*,XXX*/); + packet(0x095d,clif->pStoragePassword,0); + packet(0x0965,clif->pPartyInvite2,2); + packet(0x096a,clif->pGetCharNameRequest,2); #endif // 2016-12-14bRagexe, 2016-12-14cRagexe #if PACKETVER == 20161214 - packet(0x022d,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0281,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x02c4,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x035f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0360,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0364,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0436,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0437,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0438,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0819,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0835,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x083c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x085a,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x0862,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x086d,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0887,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0895,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0899,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x08a6,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x092e,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x093d,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x096a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 + packet(0x022d,clif->pReqClickBuyingStore,2); + packet(0x0281,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x02c4,clif->pMoveFromKafra,2,4); + packet(0x035f,clif->pTickSend,2); + packet(0x0360,clif->pHomMenu,2,4); + packet(0x0364,clif->pMoveToKafra,2,4); + packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pWantToConnection,2,6,10,14,18); + packet(0x0436,clif->pActionRequest,2,6); + packet(0x0437,clif->pWalkToXY,2); + packet(0x0438,clif->pUseSkillToPos,2,4,6,8); + packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x0819,clif->pDull/*,XXX*/); + packet(0x0835,clif->pSearchStoreInfoNextPage,0); + packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x083c,clif->pUseSkillToId,2,4,6); + packet(0x085a,clif->pItemListWindowSelected,2,4,8); + packet(0x0862,clif->pFriendsListAdd,2); + packet(0x086d,clif->pPartyInvite2,2); + packet(0x0887,clif->pDropItem,2,4); + packet(0x0895,clif->pDull/*,XXX*/); + packet(0x0899,clif->pStoragePassword,0); + packet(0x08a6,clif->pPartyBookingRegisterReq,2,4); + packet(0x092e,clif->pTakeItem,2); + packet(0x093d,clif->pChangeDir,2,4); + packet(0x096a,clif->pGetCharNameRequest,2); #endif // 2016-12-21aRagexe, 2016-12-21bRagexe #if PACKETVER == 20161221 - packet(0x035f,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x0362,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0366,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0438,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0817,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x085b,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0866,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0876,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x0881,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x0884,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0885,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x088c,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0890,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x0899,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x089a,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x089b,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x08aa,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x091e,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0926,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0928,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x092c,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x092e,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0930,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0943,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0946,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x094b,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x095a,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0964,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0965,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 + packet(0x035f,clif->pTakeItem,2); + packet(0x0362,clif->pDropItem,2,4); + packet(0x0366,clif->pSolveCharName,2); + packet(0x0438,clif->pWalkToXY,2); + packet(0x0817,clif->pMoveToKafra,2,4); + packet(0x085b,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0866,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0876,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x0881,clif->pGetCharNameRequest,2); + packet(0x0884,clif->pDull/*,XXX*/); + packet(0x0885,clif->pItemListWindowSelected,2,4,8); + packet(0x088c,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0890,clif->pStoragePassword,0); + packet(0x0899,clif->pDull/*,XXX*/); + packet(0x089a,clif->pMoveFromKafra,2,4); + packet(0x089b,clif->pActionRequest,2,6); + packet(0x08aa,clif->pTickSend,2); + packet(0x091e,clif->pSearchStoreInfoNextPage,0); + packet(0x0926,clif->pPartyInvite2,2); + packet(0x0928,clif->pFriendsListAdd,2); + packet(0x092c,clif->pReqCloseBuyingStore,0); + packet(0x092e,clif->pPartyBookingRegisterReq,2,4); + packet(0x0930,clif->pHomMenu,2,4); + packet(0x0943,clif->pUseSkillToId,2,4,6); + packet(0x0946,clif->pUseSkillToPos,2,4,6,8); + packet(0x094b,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x095a,clif->pReqClickBuyingStore,2); + packet(0x0964,clif->pWantToConnection,2,6,10,14,18); + packet(0x0965,clif->pChangeDir,2,4); #endif // 2016-12-28aRagexe #if PACKETVER == 20161228 - packet(0x0362,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x085a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x085e,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0865,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x086a,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x086c,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x086d,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0870,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0871,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0875,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x087f,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x0886,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0889,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x0893,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x089f,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x08a2,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x08a3,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x08a5,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x08ab,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x08ac,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x08ad,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x091c,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0929,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x092c,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0934,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0935,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0938,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x093d,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0944,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 + packet(0x0362,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x085a,clif->pGetCharNameRequest,2); + packet(0x085e,clif->pHomMenu,2,4); + packet(0x0865,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x086a,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x086c,clif->pTakeItem,2); + packet(0x086d,clif->pWantToConnection,2,6,10,14,18); + packet(0x0870,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0871,clif->pChangeDir,2,4); + packet(0x0875,clif->pReqCloseBuyingStore,0); + packet(0x087f,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x0886,clif->pWalkToXY,2); + packet(0x0889,clif->pItemListWindowSelected,2,4,8); + packet(0x0893,clif->pDropItem,2,4); + packet(0x089f,clif->pMoveToKafra,2,4); + packet(0x08a2,clif->pUseSkillToId,2,4,6); + packet(0x08a3,clif->pReqClickBuyingStore,2); + packet(0x08a5,clif->pPartyBookingRegisterReq,2,4); + packet(0x08ab,clif->pMoveFromKafra,2,4); + packet(0x08ac,clif->pSolveCharName,2); + packet(0x08ad,clif->pStoragePassword,0); + packet(0x091c,clif->pFriendsListAdd,2); + packet(0x0929,clif->pUseSkillToPos,2,4,6,8); + packet(0x092c,clif->pSearchStoreInfoNextPage,0); + packet(0x0934,clif->pPartyInvite2,2); + packet(0x0935,clif->pDull/*,XXX*/); + packet(0x0938,clif->pDull/*,XXX*/); + packet(0x093d,clif->pActionRequest,2,6); + packet(0x0944,clif->pTickSend,2); #endif // 2017-01-04aRagexe #if PACKETVER == 20170104 - packet(0x0281,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x035f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0360,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0362,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0363,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0364,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0365,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0436,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0437,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0438,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x07e4,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x07ec,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0802,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0835,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x083c,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x085a,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x087f,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x0896,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x091b,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0940,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x096a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 + packet(0x0281,clif->pItemListWindowSelected,2,4,8); + packet(0x035f,clif->pTickSend,2); + packet(0x0360,clif->pReqClickBuyingStore,2); + packet(0x0362,clif->pDropItem,2,4); + packet(0x0363,clif->pDull/*,XXX*/); + packet(0x0364,clif->pMoveFromKafra,2,4); + packet(0x0365,clif->pPartyBookingRegisterReq,2,4); + packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pActionRequest,2,6); + packet(0x0436,clif->pDull/*,XXX*/); + packet(0x0437,clif->pWalkToXY,2); + packet(0x0438,clif->pWantToConnection,2,6,10,14,18); + packet(0x07e4,clif->pTakeItem,2); + packet(0x07ec,clif->pMoveToKafra,2,4); + packet(0x0802,clif->pPartyInvite2,2); + packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0835,clif->pSearchStoreInfoNextPage,0); + packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x083c,clif->pUseSkillToPos,2,4,6,8); + packet(0x085a,clif->pFriendsListAdd,2); + packet(0x087f,clif->pStoragePassword,0); + packet(0x0896,clif->pChangeDir,2,4); + packet(0x091b,clif->pHomMenu,2,4); + packet(0x0940,clif->pUseSkillToId,2,4,6); + packet(0x096a,clif->pGetCharNameRequest,2); #endif // 2017-01-11aRagexe #if PACKETVER == 20170111 - packet(0x035f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0360,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0436,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0437,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0438,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0835,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x083c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x085d,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0877,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x087f,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x088a,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x08a1,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x08a3,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x08a6,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x091a,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x091b,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0940,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x094c,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0961,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x0969,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x096a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 + packet(0x035f,clif->pTickSend,2); + packet(0x0360,clif->pReqClickBuyingStore,2); + packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pActionRequest,2,6); + packet(0x0436,clif->pDull/*,XXX*/); + packet(0x0437,clif->pWalkToXY,2); + packet(0x0438,clif->pUseSkillToPos,2,4,6,8); + packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0835,clif->pSearchStoreInfoNextPage,0); + packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x083c,clif->pUseSkillToId,2,4,6); + packet(0x085d,clif->pHomMenu,2,4); + packet(0x0877,clif->pFriendsListAdd,2); + packet(0x087f,clif->pDull/*,XXX*/); + packet(0x088a,clif->pMoveToKafra,2,4); + packet(0x08a1,clif->pChangeDir,2,4); + packet(0x08a3,clif->pTakeItem,2); + packet(0x08a6,clif->pPartyBookingRegisterReq,2,4); + packet(0x091a,clif->pStoragePassword,0); + packet(0x091b,clif->pWantToConnection,2,6,10,14,18); + packet(0x0940,clif->pDropItem,2,4); + packet(0x094c,clif->pMoveFromKafra,2,4); + packet(0x0961,clif->pItemListWindowSelected,2,4,8); + packet(0x0969,clif->pPartyInvite2,2); + packet(0x096a,clif->pGetCharNameRequest,2); #endif // 2017-01-18aRagexe #if PACKETVER == 20170118 - packet(0x022d,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x035f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0360,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0364,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0436,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0437,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0438,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0835,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x083c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0862,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0865,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x086f,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x0873,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x089e,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x08ad,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x091f,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0927,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0933,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0958,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x0962,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x096a,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 + packet(0x022d,clif->pUseSkillToPos,2,4,6,8); + packet(0x035f,clif->pTickSend,2); + packet(0x0360,clif->pReqClickBuyingStore,2); + packet(0x0364,clif->pGetCharNameRequest,2); + packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pActionRequest,2,6); + packet(0x0436,clif->pHomMenu,2,4); + packet(0x0437,clif->pWalkToXY,2); + packet(0x0438,clif->pWantToConnection,2,6,10,14,18); + packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0835,clif->pSearchStoreInfoNextPage,0); + packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x083c,clif->pUseSkillToId,2,4,6); + packet(0x0862,clif->pMoveFromKafra,2,4); + packet(0x0865,clif->pChangeDir,2,4); + packet(0x086f,clif->pTakeItem,2); + packet(0x0873,clif->pDull/*,XXX*/); + packet(0x089e,clif->pPartyInvite2,2); + packet(0x08ad,clif->pItemListWindowSelected,2,4,8); + packet(0x091f,clif->pPartyBookingRegisterReq,2,4); + packet(0x0927,clif->pDull/*,XXX*/); + packet(0x0933,clif->pDropItem,2,4); + packet(0x0958,clif->pStoragePassword,0); + packet(0x0962,clif->pFriendsListAdd,2); + packet(0x096a,clif->pMoveToKafra,2,4); #endif // 2017-01-25aRagexe #if PACKETVER == 20170125 - packet(0x0438,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0811,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x086e,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0876,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0877,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0879,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x087b,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x087d,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0881,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0884,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0893,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x0894,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0895,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x0898,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x089b,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x08a5,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x091b,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x091c,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x091d,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0920,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0929,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x092b,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x0930,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x093c,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0943,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0944,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x095c,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0965,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x0968,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 + packet(0x0438,clif->pActionRequest,2,6); + packet(0x0811,clif->pWantToConnection,2,6,10,14,18); + packet(0x086e,clif->pPartyInvite2,2); + packet(0x0876,clif->pHomMenu,2,4); + packet(0x0877,clif->pDropItem,2,4); + packet(0x0879,clif->pUseSkillToId,2,4,6); + packet(0x087b,clif->pTakeItem,2); + packet(0x087d,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0881,clif->pChangeDir,2,4); + packet(0x0884,clif->pDull/*,XXX*/); + packet(0x0893,clif->pStoragePassword,0); + packet(0x0894,clif->pDull/*,XXX*/); + packet(0x0895,clif->pItemListWindowSelected,2,4,8); + packet(0x0898,clif->pSolveCharName,2); + packet(0x089b,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x08a5,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x091b,clif->pReqClickBuyingStore,2); + packet(0x091c,clif->pMoveToKafra,2,4); + packet(0x091d,clif->pReqCloseBuyingStore,0); + packet(0x0920,clif->pFriendsListAdd,2); + packet(0x0929,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x092b,clif->pUseSkillToPos,2,4,6,8); + packet(0x0930,clif->pWalkToXY,2); + packet(0x093c,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0943,clif->pTickSend,2); + packet(0x0944,clif->pPartyBookingRegisterReq,2,4); + packet(0x095c,clif->pMoveFromKafra,2,4); + packet(0x0965,clif->pGetCharNameRequest,2); + packet(0x0968,clif->pSearchStoreInfoNextPage,0); #endif // 2017-02-01aRagexe #if PACKETVER == 20170201 - packet(0x035f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0360,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0438,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x0815,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0835,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x083c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x085d,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x085e,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0875,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x0879,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0881,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0884,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0885,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0886,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x088b,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x08a4,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0919,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0920,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0938,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0940,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x094c,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0966,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0969,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x096a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 + packet(0x035f,clif->pTickSend,2); + packet(0x0360,clif->pReqClickBuyingStore,2); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pActionRequest,2,6); + packet(0x0438,clif->pUseSkillToPos,2,4,6,8); + packet(0x0815,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0835,clif->pSearchStoreInfoNextPage,0); + packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x083c,clif->pUseSkillToId,2,4,6); + packet(0x085d,clif->pPartyBookingRegisterReq,2,4); + packet(0x085e,clif->pChangeDir,2,4); + packet(0x0875,clif->pTakeItem,2); + packet(0x0879,clif->pDull/*,XXX*/); + packet(0x0881,clif->pMoveToKafra,2,4); + packet(0x0884,clif->pWalkToXY,2); + packet(0x0885,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0886,clif->pStoragePassword,0); + packet(0x088b,clif->pDropItem,2,4); + packet(0x08a4,clif->pDull/*,XXX*/); + packet(0x0919,clif->pFriendsListAdd,2); + packet(0x0920,clif->pPartyInvite2,2); + packet(0x0938,clif->pHomMenu,2,4); + packet(0x0940,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x094c,clif->pWantToConnection,2,6,10,14,18); + packet(0x0966,clif->pMoveFromKafra,2,4); + packet(0x0969,clif->pItemListWindowSelected,2,4,8); + packet(0x096a,clif->pGetCharNameRequest,2); #endif // 2017-02-08bRagexe #if PACKETVER == 20170208 - packet(0x02c4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x035f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0360,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0367,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0437,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0438,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0835,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x083c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x085c,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0860,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x087a,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x088c,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0892,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x08a1,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x08ac,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0921,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0923,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x092d,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0932,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0937,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x096a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 + packet(0x02c4,clif->pDull/*,XXX*/); + packet(0x035f,clif->pTickSend,2); + packet(0x0360,clif->pReqClickBuyingStore,2); + packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0367,clif->pItemListWindowSelected,2,4,8); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pActionRequest,2,6); + packet(0x0437,clif->pWalkToXY,2); + packet(0x0438,clif->pUseSkillToPos,2,4,6,8); + packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0835,clif->pSearchStoreInfoNextPage,0); + packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x083c,clif->pUseSkillToId,2,4,6); + packet(0x085c,clif->pPartyInvite2,2); + packet(0x0860,clif->pChangeDir,2,4); + packet(0x087a,clif->pDull/*,XXX*/); + packet(0x088c,clif->pWantToConnection,2,6,10,14,18); + packet(0x0892,clif->pFriendsListAdd,2); + packet(0x08a1,clif->pPartyBookingRegisterReq,2,4); + packet(0x08ac,clif->pMoveToKafra,2,4); + packet(0x0921,clif->pDropItem,2,4); + packet(0x0923,clif->pTakeItem,2); + packet(0x092d,clif->pHomMenu,2,4); + packet(0x0932,clif->pMoveFromKafra,2,4); + packet(0x0937,clif->pStoragePassword,0); + packet(0x096a,clif->pGetCharNameRequest,2); #endif // 2017-02-15aRagexe #if PACKETVER == 20170215 - packet(0x02c4,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x035f,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0360,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0811,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x083c,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x085c,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0876,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x087c,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x087d,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x087e,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0883,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0884,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x088a,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x088b,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x088c,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0890,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x0896,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x089b,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x08a2,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x08a8,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x091c,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0925,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x092b,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x092d,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0942,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x094e,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x095f,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0962,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0969,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 + packet(0x02c4,clif->pStoragePassword,0); + packet(0x035f,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0360,clif->pTickSend,2); + packet(0x0811,clif->pWantToConnection,2,6,10,14,18); + packet(0x083c,clif->pActionRequest,2,6); + packet(0x085c,clif->pDropItem,2,4); + packet(0x0876,clif->pFriendsListAdd,2); + packet(0x087c,clif->pItemListWindowSelected,2,4,8); + packet(0x087d,clif->pChangeDir,2,4); + packet(0x087e,clif->pUseSkillToId,2,4,6); + packet(0x0883,clif->pSolveCharName,2); + packet(0x0884,clif->pDull/*,XXX*/); + packet(0x088a,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x088b,clif->pPartyInvite2,2); + packet(0x088c,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0890,clif->pUseSkillToPos,2,4,6,8); + packet(0x0896,clif->pDull/*,XXX*/); + packet(0x089b,clif->pMoveToKafra,2,4); + packet(0x08a2,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x08a8,clif->pPartyBookingRegisterReq,2,4); + packet(0x091c,clif->pReqCloseBuyingStore,0); + packet(0x0925,clif->pMoveFromKafra,2,4); + packet(0x092b,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x092d,clif->pSearchStoreInfoNextPage,0); + packet(0x0942,clif->pTakeItem,2); + packet(0x094e,clif->pGetCharNameRequest,2); + packet(0x095f,clif->pReqClickBuyingStore,2); + packet(0x0962,clif->pHomMenu,2,4); + packet(0x0969,clif->pWalkToXY,2); #endif // 2017-02-22aRagexe #if PACKETVER == 20170222 - packet(0x0202,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x035f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0360,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0437,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0438,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0835,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x083c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x085f,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0866,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0870,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0871,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0877,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0889,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0894,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x08a3,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x08a8,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0937,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x0939,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0943,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x095d,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0962,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x096a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 + packet(0x0202,clif->pHomMenu,2,4); + packet(0x035f,clif->pTickSend,2); + packet(0x0360,clif->pReqClickBuyingStore,2); + packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pActionRequest,2,6); + packet(0x0437,clif->pWalkToXY,2); + packet(0x0438,clif->pUseSkillToPos,2,4,6,8); + packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x0835,clif->pSearchStoreInfoNextPage,0); + packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x083c,clif->pUseSkillToId,2,4,6); + packet(0x085f,clif->pFriendsListAdd,2); + packet(0x0866,clif->pDropItem,2,4); + packet(0x0870,clif->pPartyBookingRegisterReq,2,4); + packet(0x0871,clif->pDull/*,XXX*/); + packet(0x0877,clif->pDull/*,XXX*/); + packet(0x0889,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0894,clif->pTakeItem,2); + packet(0x08a3,clif->pChangeDir,2,4); + packet(0x08a8,clif->pPartyInvite2,2); + packet(0x0937,clif->pItemListWindowSelected,2,4,8); + packet(0x0939,clif->pWantToConnection,2,6,10,14,18); + packet(0x0943,clif->pStoragePassword,0); + packet(0x095d,clif->pMoveToKafra,2,4); + packet(0x0962,clif->pMoveFromKafra,2,4); + packet(0x096a,clif->pGetCharNameRequest,2); #endif // 2017-02-28aRagexe, 2017-02-28bRagexe #if PACKETVER == 20170228 - packet(0x022d,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0360,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0362,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0819,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x085e,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0863,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x086b,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0873,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x0874,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0876,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0883,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0884,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0889,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0893,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x089e,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x08a0,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x08a2,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x08a6,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x08a7,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x091f,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x092a,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x092e,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0937,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x093e,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0944,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0947,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0948,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0952,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x0955,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 + packet(0x022d,clif->pDropItem,2,4); + packet(0x0360,clif->pActionRequest,2,6); + packet(0x0362,clif->pHomMenu,2,4); + packet(0x0819,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x085e,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0863,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x086b,clif->pWantToConnection,2,6,10,14,18); + packet(0x0873,clif->pItemListWindowSelected,2,4,8); + packet(0x0874,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0876,clif->pReqCloseBuyingStore,0); + packet(0x0883,clif->pSearchStoreInfoNextPage,0); + packet(0x0884,clif->pWalkToXY,2); + packet(0x0889,clif->pChangeDir,2,4); + packet(0x0893,clif->pGetCharNameRequest,2); + packet(0x089e,clif->pMoveToKafra,2,4); + packet(0x08a0,clif->pFriendsListAdd,2); + packet(0x08a2,clif->pStoragePassword,0); + packet(0x08a6,clif->pDull/*,XXX*/); + packet(0x08a7,clif->pReqClickBuyingStore,2); + packet(0x091f,clif->pUseSkillToId,2,4,6); + packet(0x092a,clif->pTakeItem,2); + packet(0x092e,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0937,clif->pTickSend,2); + packet(0x093e,clif->pDull/*,XXX*/); + packet(0x0944,clif->pMoveFromKafra,2,4); + packet(0x0947,clif->pSolveCharName,2); + packet(0x0948,clif->pPartyInvite2,2); + packet(0x0952,clif->pUseSkillToPos,2,4,6,8); + packet(0x0955,clif->pPartyBookingRegisterReq,2,4); #endif // 2017-03-08aRagexe #if PACKETVER == 20170308 - packet(0x0202,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x022d,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x023b,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0281,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x035f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0360,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0361,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0362,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0363,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0364,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0365,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0436,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0437,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0438,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x07e4,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x07ec,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0802,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0835,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x083c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x087d,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x096a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 + packet(0x0202,clif->pChangeDir,2,4); + packet(0x022d,clif->pWantToConnection,2,6,10,14,18); + packet(0x023b,clif->pFriendsListAdd,2); + packet(0x0281,clif->pItemListWindowSelected,2,4,8); + packet(0x035f,clif->pTickSend,2); + packet(0x0360,clif->pReqClickBuyingStore,2); + packet(0x0361,clif->pHomMenu,2,4); + packet(0x0362,clif->pDropItem,2,4); + packet(0x0363,clif->pDull/*,XXX*/); + packet(0x0364,clif->pMoveFromKafra,2,4); + packet(0x0365,clif->pPartyBookingRegisterReq,2,4); + packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pActionRequest,2,6); + packet(0x0436,clif->pDull/*,XXX*/); + packet(0x0437,clif->pWalkToXY,2); + packet(0x0438,clif->pUseSkillToPos,2,4,6,8); + packet(0x07e4,clif->pTakeItem,2); + packet(0x07ec,clif->pMoveToKafra,2,4); + packet(0x0802,clif->pPartyInvite2,2); + packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0835,clif->pSearchStoreInfoNextPage,0); + packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x083c,clif->pUseSkillToId,2,4,6); + packet(0x087d,clif->pStoragePassword,0); + packet(0x096a,clif->pGetCharNameRequest,2); #endif // 2017-03-15cRagexe #if PACKETVER == 20170315 - packet(0x02c4,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x035f,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0360,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0366,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x0367,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0436,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x07ec,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x085c,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0863,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x086a,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0872,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x087b,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0884,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x088b,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x088d,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x088f,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0892,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x089c,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x08aa,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x091a,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x091b,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x091d,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x0920,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0922,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x0944,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x094a,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x094e,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0950,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0952,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 + packet(0x02c4,clif->pUseSkillToPos,2,4,6,8); + packet(0x035f,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0360,clif->pChangeDir,2,4); + packet(0x0366,clif->pTakeItem,2); + packet(0x0367,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0436,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x07ec,clif->pTickSend,2); + packet(0x085c,clif->pDull/*,XXX*/); + packet(0x0863,clif->pHomMenu,2,4); + packet(0x086a,clif->pMoveFromKafra,2,4); + packet(0x0872,clif->pFriendsListAdd,2); + packet(0x087b,clif->pPartyInvite2,2); + packet(0x0884,clif->pActionRequest,2,6); + packet(0x088b,clif->pPartyBookingRegisterReq,2,4); + packet(0x088d,clif->pDull/*,XXX*/); + packet(0x088f,clif->pWalkToXY,2); + packet(0x0892,clif->pUseSkillToId,2,4,6); + packet(0x089c,clif->pReqCloseBuyingStore,0); + packet(0x08aa,clif->pMoveToKafra,2,4); + packet(0x091a,clif->pDropItem,2,4); + packet(0x091b,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x091d,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x0920,clif->pSolveCharName,2); + packet(0x0922,clif->pItemListWindowSelected,2,4,8); + packet(0x0944,clif->pGetCharNameRequest,2); + packet(0x094a,clif->pReqClickBuyingStore,2); + packet(0x094e,clif->pWantToConnection,2,6,10,14,18); + packet(0x0950,clif->pSearchStoreInfoNextPage,0); + packet(0x0952,clif->pStoragePassword,0); #endif // 2017-03-22aRagexe, 2017-03-22bRagexe #if PACKETVER == 20170322 - packet(0x0202,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x022d,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x023b,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0281,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x035f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0360,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0361,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0362,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0363,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0364,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0365,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0436,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0437,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0438,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x07e4,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x07ec,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0802,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0835,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x083c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x091a,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x096a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 + packet(0x0202,clif->pChangeDir,2,4); + packet(0x022d,clif->pWantToConnection,2,6,10,14,18); + packet(0x023b,clif->pFriendsListAdd,2); + packet(0x0281,clif->pItemListWindowSelected,2,4,8); + packet(0x035f,clif->pTickSend,2); + packet(0x0360,clif->pReqClickBuyingStore,2); + packet(0x0361,clif->pHomMenu,2,4); + packet(0x0362,clif->pDropItem,2,4); + packet(0x0363,clif->pDull/*,XXX*/); + packet(0x0364,clif->pMoveFromKafra,2,4); + packet(0x0365,clif->pPartyBookingRegisterReq,2,4); + packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pActionRequest,2,6); + packet(0x0436,clif->pDull/*,XXX*/); + packet(0x0437,clif->pWalkToXY,2); + packet(0x0438,clif->pUseSkillToPos,2,4,6,8); + packet(0x07e4,clif->pTakeItem,2); + packet(0x07ec,clif->pMoveToKafra,2,4); + packet(0x0802,clif->pPartyInvite2,2); + packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0835,clif->pSearchStoreInfoNextPage,0); + packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x083c,clif->pUseSkillToId,2,4,6); + packet(0x091a,clif->pStoragePassword,0); + packet(0x096a,clif->pGetCharNameRequest,2); #endif // 2017-03-29bRagexe, 2017-03-29cRagexe #if PACKETVER == 20170329 - packet(0x0281,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x035f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0360,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0362,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0363,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0437,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0438,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0835,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x083c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x085d,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x087a,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0888,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x08a8,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0917,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0926,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0929,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x092e,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0937,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x0939,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0949,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x095f,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x096a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 + packet(0x0281,clif->pPartyInvite2,2); + packet(0x035f,clif->pTickSend,2); + packet(0x0360,clif->pReqClickBuyingStore,2); + packet(0x0362,clif->pHomMenu,2,4); + packet(0x0363,clif->pMoveToKafra,2,4); + packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pActionRequest,2,6); + packet(0x0437,clif->pWalkToXY,2); + packet(0x0438,clif->pUseSkillToPos,2,4,6,8); + packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x0835,clif->pSearchStoreInfoNextPage,0); + packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x083c,clif->pUseSkillToId,2,4,6); + packet(0x085d,clif->pStoragePassword,0); + packet(0x087a,clif->pPartyBookingRegisterReq,2,4); + packet(0x0888,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x08a8,clif->pDropItem,2,4); + packet(0x0917,clif->pDull/*,XXX*/); + packet(0x0926,clif->pChangeDir,2,4); + packet(0x0929,clif->pTakeItem,2); + packet(0x092e,clif->pWantToConnection,2,6,10,14,18); + packet(0x0937,clif->pItemListWindowSelected,2,4,8); + packet(0x0939,clif->pFriendsListAdd,2); + packet(0x0949,clif->pMoveFromKafra,2,4); + packet(0x095f,clif->pDull/*,XXX*/); + packet(0x096a,clif->pGetCharNameRequest,2); #endif // 2017-04-05bRagexe, 2017-04-05cRagexe #if PACKETVER == 20170405 - packet(0x022d,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0281,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x035f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0360,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0362,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0363,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x0437,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0438,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0835,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x083c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x085f,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0860,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x0864,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0865,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x086f,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0893,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x08a5,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x094c,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x094f,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0964,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x096a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 + packet(0x022d,clif->pSearchStoreInfoNextPage,0); + packet(0x0281,clif->pPartyBookingRegisterReq,2,4); + packet(0x035f,clif->pTickSend,2); + packet(0x0360,clif->pReqClickBuyingStore,2); + packet(0x0362,clif->pActionRequest,2,6); + packet(0x0363,clif->pDull/*,XXX*/); + packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pTakeItem,2); + packet(0x0437,clif->pWalkToXY,2); + packet(0x0438,clif->pUseSkillToPos,2,4,6,8); + packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0835,clif->pHomMenu,2,4); + packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x083c,clif->pUseSkillToId,2,4,6); + packet(0x085f,clif->pMoveToKafra,2,4); + packet(0x0860,clif->pItemListWindowSelected,2,4,8); + packet(0x0864,clif->pPartyInvite2,2); + packet(0x0865,clif->pChangeDir,2,4); + packet(0x086f,clif->pFriendsListAdd,2); + packet(0x0893,clif->pMoveFromKafra,2,4); + packet(0x08a5,clif->pWantToConnection,2,6,10,14,18); + packet(0x094c,clif->pStoragePassword,0); + packet(0x094f,clif->pDull/*,XXX*/); + packet(0x0964,clif->pDropItem,2,4); + packet(0x096a,clif->pGetCharNameRequest,2); #endif // 2017-04-12aRagexe #if PACKETVER == 20170412 - packet(0x023b,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x0365,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0863,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0869,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x086d,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0878,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0879,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x087b,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x088b,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0890,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x0893,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0898,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x089a,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x089c,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x08a1,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x091a,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x091e,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0929,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x092e,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0938,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0942,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0945,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0949,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x094f,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0952,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0959,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x095b,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x095c,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x095d,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 + packet(0x023b,clif->pUseSkillToPos,2,4,6,8); + packet(0x0365,clif->pReqClickBuyingStore,2); + packet(0x0863,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0869,clif->pPartyBookingRegisterReq,2,4); + packet(0x086d,clif->pMoveFromKafra,2,4); + packet(0x0878,clif->pWalkToXY,2); + packet(0x0879,clif->pDull/*,XXX*/); + packet(0x087b,clif->pUseSkillToId,2,4,6); + packet(0x088b,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0890,clif->pItemListWindowSelected,2,4,8); + packet(0x0893,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0898,clif->pSolveCharName,2); + packet(0x089a,clif->pHomMenu,2,4); + packet(0x089c,clif->pDropItem,2,4); + packet(0x08a1,clif->pActionRequest,2,6); + packet(0x091a,clif->pChangeDir,2,4); + packet(0x091e,clif->pWantToConnection,2,6,10,14,18); + packet(0x0929,clif->pTickSend,2); + packet(0x092e,clif->pDull/*,XXX*/); + packet(0x0938,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0942,clif->pFriendsListAdd,2); + packet(0x0945,clif->pMoveToKafra,2,4); + packet(0x0949,clif->pSearchStoreInfoNextPage,0); + packet(0x094f,clif->pPartyInvite2,2); + packet(0x0952,clif->pReqCloseBuyingStore,0); + packet(0x0959,clif->pTakeItem,2); + packet(0x095b,clif->pGetCharNameRequest,2); + packet(0x095c,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x095d,clif->pStoragePassword,0); #endif // 2017-04-19aRagexe #if PACKETVER == 20170419 - packet(0x0811,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0819,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x0838,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x085a,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x085e,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0862,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0868,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x086a,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0872,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0881,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x088d,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x088f,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0897,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0898,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x089d,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x08aa,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x091b,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0920,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0922,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0930,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0931,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0935,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x093a,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x093f,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x0942,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x095c,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x095d,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0963,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0965,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 + packet(0x0811,clif->pChangeDir,2,4); + packet(0x0819,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x0838,clif->pGetCharNameRequest,2); + packet(0x085a,clif->pActionRequest,2,6); + packet(0x085e,clif->pWalkToXY,2); + packet(0x0862,clif->pPartyInvite2,2); + packet(0x0868,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x086a,clif->pPartyBookingRegisterReq,2,4); + packet(0x0872,clif->pDull/*,XXX*/); + packet(0x0881,clif->pStoragePassword,0); + packet(0x088d,clif->pItemListWindowSelected,2,4,8); + packet(0x088f,clif->pHomMenu,2,4); + packet(0x0897,clif->pDropItem,2,4); + packet(0x0898,clif->pTickSend,2); + packet(0x089d,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x08aa,clif->pMoveToKafra,2,4); + packet(0x091b,clif->pSolveCharName,2); + packet(0x0920,clif->pUseSkillToId,2,4,6); + packet(0x0922,clif->pWantToConnection,2,6,10,14,18); + packet(0x0930,clif->pMoveFromKafra,2,4); + packet(0x0931,clif->pReqCloseBuyingStore,0); + packet(0x0935,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x093a,clif->pFriendsListAdd,2); + packet(0x093f,clif->pUseSkillToPos,2,4,6,8); + packet(0x0942,clif->pSearchStoreInfoNextPage,0); + packet(0x095c,clif->pTakeItem,2); + packet(0x095d,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0963,clif->pDull/*,XXX*/); + packet(0x0965,clif->pReqClickBuyingStore,2); #endif // 2017-04-26bRagexe #if PACKETVER == 20170426 - packet(0x0281,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x035f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0360,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0369,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0437,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0438,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x0802,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0835,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x083c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0866,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x086f,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x087a,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0887,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0899,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x089c,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x08a2,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x08a4,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x091f,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0927,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0940,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0958,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0963,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x096a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 + packet(0x0281,clif->pStoragePassword,0); + packet(0x035f,clif->pTickSend,2); + packet(0x0360,clif->pReqClickBuyingStore,2); + packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0369,clif->pActionRequest,2,6); + packet(0x0437,clif->pWalkToXY,2); + packet(0x0438,clif->pUseSkillToPos,2,4,6,8); + packet(0x0802,clif->pPartyInvite2,2); + packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0835,clif->pSearchStoreInfoNextPage,0); + packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x083c,clif->pUseSkillToId,2,4,6); + packet(0x0866,clif->pItemListWindowSelected,2,4,8); + packet(0x086f,clif->pDull/*,XXX*/); + packet(0x087a,clif->pPartyBookingRegisterReq,2,4); + packet(0x0887,clif->pSolveCharName,2); + packet(0x0899,clif->pMoveFromKafra,2,4); + packet(0x089c,clif->pHomMenu,2,4); + packet(0x08a2,clif->pWantToConnection,2,6,10,14,18); + packet(0x08a4,clif->pTakeItem,2); + packet(0x091f,clif->pDull/*,XXX*/); + packet(0x0927,clif->pChangeDir,2,4); + packet(0x0940,clif->pDropItem,2,4); + packet(0x0958,clif->pFriendsListAdd,2); + packet(0x0963,clif->pMoveToKafra,2,4); + packet(0x096a,clif->pGetCharNameRequest,2); #endif // 2017-05-02aRagexe, 2017-05-02bRagexe #if PACKETVER == 20170502 - packet(0x0281,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x035f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0360,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0362,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0363,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0364,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0365,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0436,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0437,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0438,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x07e4,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x07ec,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0802,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0835,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x083c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0875,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x0894,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x089c,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x093c,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0950,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x096a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 + packet(0x0281,clif->pItemListWindowSelected,2,4,8); + packet(0x035f,clif->pTickSend,2); + packet(0x0360,clif->pReqClickBuyingStore,2); + packet(0x0362,clif->pDropItem,2,4); + packet(0x0363,clif->pDull/*,XXX*/); + packet(0x0364,clif->pMoveFromKafra,2,4); + packet(0x0365,clif->pPartyBookingRegisterReq,2,4); + packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pActionRequest,2,6); + packet(0x0436,clif->pDull/*,XXX*/); + packet(0x0437,clif->pWalkToXY,2); + packet(0x0438,clif->pUseSkillToPos,2,4,6,8); + packet(0x07e4,clif->pTakeItem,2); + packet(0x07ec,clif->pMoveToKafra,2,4); + packet(0x0802,clif->pPartyInvite2,2); + packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0835,clif->pSearchStoreInfoNextPage,0); + packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x083c,clif->pUseSkillToId,2,4,6); + packet(0x0875,clif->pStoragePassword,0); + packet(0x0894,clif->pChangeDir,2,4); + packet(0x089c,clif->pWantToConnection,2,6,10,14,18); + packet(0x093c,clif->pFriendsListAdd,2); + packet(0x0950,clif->pHomMenu,2,4); + packet(0x096a,clif->pGetCharNameRequest,2); #endif // 2017-05-17aRagexe #if PACKETVER == 20170517 - packet(0x0364,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0367,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0437,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0802,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0815,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0817,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x0868,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0875,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x087b,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x087d,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x088c,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x088d,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0894,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x0896,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x0899,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x089e,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x089f,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x08a2,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x08a8,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x08aa,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x091b,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0923,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x093b,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0945,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x0946,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0947,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x0958,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0960,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0964,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 + packet(0x0364,clif->pDull/*,XXX*/); + packet(0x0367,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0437,clif->pActionRequest,2,6); + packet(0x0802,clif->pPartyBookingRegisterReq,2,4); + packet(0x0815,clif->pUseSkillToId,2,4,6); + packet(0x0817,clif->pUseSkillToPos,2,4,6,8); + packet(0x0868,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0875,clif->pSearchStoreInfoNextPage,0); + packet(0x087b,clif->pSolveCharName,2); + packet(0x087d,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x088c,clif->pMoveFromKafra,2,4); + packet(0x088d,clif->pChangeDir,2,4); + packet(0x0894,clif->pGetCharNameRequest,2); + packet(0x0896,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x0899,clif->pPartyInvite2,2); + packet(0x089e,clif->pDull/*,XXX*/); + packet(0x089f,clif->pReqCloseBuyingStore,0); + packet(0x08a2,clif->pTickSend,2); + packet(0x08a8,clif->pWalkToXY,2); + packet(0x08aa,clif->pMoveToKafra,2,4); + packet(0x091b,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0923,clif->pWantToConnection,2,6,10,14,18); + packet(0x093b,clif->pDropItem,2,4); + packet(0x0945,clif->pItemListWindowSelected,2,4,8); + packet(0x0946,clif->pReqClickBuyingStore,2); + packet(0x0947,clif->pStoragePassword,0); + packet(0x0958,clif->pHomMenu,2,4); + packet(0x0960,clif->pFriendsListAdd,2); + packet(0x0964,clif->pTakeItem,2); #endif // 2017-05-24aRagexe, 2017-05-24bRagexe #if PACKETVER == 20170524 - packet(0x0364,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0368,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x0802,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x085e,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x085f,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0860,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0864,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x0866,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0868,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x086d,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0873,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0874,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x087d,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0882,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x088d,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0894,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x089c,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x08a1,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x091e,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0923,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x0925,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0934,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0946,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x0958,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x095a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x095b,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0964,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0967,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0968,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 + packet(0x0364,clif->pPartyInvite2,2); + packet(0x0368,clif->pStoragePassword,0); + packet(0x0802,clif->pDropItem,2,4); + packet(0x085e,clif->pActionRequest,2,6); + packet(0x085f,clif->pReqClickBuyingStore,2); + packet(0x0860,clif->pTickSend,2); + packet(0x0864,clif->pTakeItem,2); + packet(0x0866,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0868,clif->pMoveToKafra,2,4); + packet(0x086d,clif->pHomMenu,2,4); + packet(0x0873,clif->pWantToConnection,2,6,10,14,18); + packet(0x0874,clif->pSearchStoreInfoNextPage,0); + packet(0x087d,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0882,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x088d,clif->pUseSkillToId,2,4,6); + packet(0x0894,clif->pMoveFromKafra,2,4); + packet(0x089c,clif->pWalkToXY,2); + packet(0x08a1,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x091e,clif->pDull/*,XXX*/); + packet(0x0923,clif->pItemListWindowSelected,2,4,8); + packet(0x0925,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0934,clif->pChangeDir,2,4); + packet(0x0946,clif->pUseSkillToPos,2,4,6,8); + packet(0x0958,clif->pDull/*,XXX*/); + packet(0x095a,clif->pGetCharNameRequest,2); + packet(0x095b,clif->pPartyBookingRegisterReq,2,4); + packet(0x0964,clif->pReqCloseBuyingStore,0); + packet(0x0967,clif->pFriendsListAdd,2); + packet(0x0968,clif->pSolveCharName,2); #endif // 2017-05-31aRagexe #if PACKETVER == 20170531 - packet(0x0361,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0369,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x07e4,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x07ec,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0819,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x085b,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x085f,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0861,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0868,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0873,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0875,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x0878,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x087b,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0885,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x088b,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x088d,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0894,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x089a,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x089c,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x08a2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x08ac,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x08ad,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x092d,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x0933,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0937,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x0940,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0945,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0963,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x0968,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 + packet(0x0361,clif->pChangeDir,2,4); + packet(0x0369,clif->pUseSkillToId,2,4,6); + packet(0x07e4,clif->pWalkToXY,2); + packet(0x07ec,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0819,clif->pTickSend,2); + packet(0x085b,clif->pDull/*,XXX*/); + packet(0x085f,clif->pSolveCharName,2); + packet(0x0861,clif->pFriendsListAdd,2); + packet(0x0868,clif->pDull/*,XXX*/); + packet(0x0873,clif->pReqCloseBuyingStore,0); + packet(0x0875,clif->pUseSkillToPos,2,4,6,8); + packet(0x0878,clif->pPartyInvite2,2); + packet(0x087b,clif->pActionRequest,2,6); + packet(0x0885,clif->pItemListWindowSelected,2,4,8); + packet(0x088b,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x088d,clif->pDropItem,2,4); + packet(0x0894,clif->pWantToConnection,2,6,10,14,18); + packet(0x089a,clif->pStoragePassword,0); + packet(0x089c,clif->pHomMenu,2,4); + packet(0x08a2,clif->pSearchStoreInfoNextPage,0); + packet(0x08ac,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x08ad,clif->pMoveToKafra,2,4); + packet(0x092d,clif->pGetCharNameRequest,2); + packet(0x0933,clif->pMoveFromKafra,2,4); + packet(0x0937,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x0940,clif->pPartyBookingRegisterReq,2,4); + packet(0x0945,clif->pReqClickBuyingStore,2); + packet(0x0963,clif->pTakeItem,2); + packet(0x0968,clif->pSearchStoreInfo,2,4,5,9,13,14,15); #endif // 2017-06-07cRagexe #if PACKETVER == 20170607 - packet(0x0361,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x0364,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x07e4,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x085a,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x085e,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0862,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x0863,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0864,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0871,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0873,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0875,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x0885,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x088a,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0897,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x089d,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x08a9,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x08ab,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0917,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0918,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0919,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0925,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0927,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x0931,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0934,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0938,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x093d,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0942,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0944,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0949,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 + packet(0x0361,clif->pItemListWindowSelected,2,4,8); + packet(0x0364,clif->pStoragePassword,0); + packet(0x07e4,clif->pTickSend,2); + packet(0x085a,clif->pChangeDir,2,4); + packet(0x085e,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0862,clif->pGetCharNameRequest,2); + packet(0x0863,clif->pReqClickBuyingStore,2); + packet(0x0864,clif->pDropItem,2,4); + packet(0x0871,clif->pWantToConnection,2,6,10,14,18); + packet(0x0873,clif->pDull/*,XXX*/); + packet(0x0875,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x0885,clif->pFriendsListAdd,2); + packet(0x088a,clif->pMoveFromKafra,2,4); + packet(0x0897,clif->pTakeItem,2); + packet(0x089d,clif->pMoveToKafra,2,4); + packet(0x08a9,clif->pUseSkillToId,2,4,6); + packet(0x08ab,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0917,clif->pSearchStoreInfoNextPage,0); + packet(0x0918,clif->pPartyBookingRegisterReq,2,4); + packet(0x0919,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0925,clif->pPartyInvite2,2); + packet(0x0927,clif->pUseSkillToPos,2,4,6,8); + packet(0x0931,clif->pDull/*,XXX*/); + packet(0x0934,clif->pWalkToXY,2); + packet(0x0938,clif->pActionRequest,2,6); + packet(0x093d,clif->pReqCloseBuyingStore,0); + packet(0x0942,clif->pHomMenu,2,4); + packet(0x0944,clif->pSolveCharName,2); + packet(0x0949,clif->pReqOpenBuyingStore,2,4,8,9,89); #endif // 2017-06-14bRagexe #if PACKETVER == 20170614 - packet(0x023b,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0361,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0364,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0367,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0437,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x0838,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x083c,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0860,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0865,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0866,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0867,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x086b,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x086c,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0877,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0879,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x087d,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x087e,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0889,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0899,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x089d,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x08a2,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x08ad,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x091b,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0928,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x092f,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0936,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x0944,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0957,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0963,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 + packet(0x023b,clif->pMoveFromKafra,2,4); + packet(0x0361,clif->pWalkToXY,2); + packet(0x0364,clif->pHomMenu,2,4); + packet(0x0367,clif->pDropItem,2,4); + packet(0x0437,clif->pStoragePassword,0); + packet(0x0838,clif->pUseSkillToPos,2,4,6,8); + packet(0x083c,clif->pActionRequest,2,6); + packet(0x0860,clif->pReqClickBuyingStore,2); + packet(0x0865,clif->pDull/*,XXX*/); + packet(0x0866,clif->pTickSend,2); + packet(0x0867,clif->pFriendsListAdd,2); + packet(0x086b,clif->pReqCloseBuyingStore,0); + packet(0x086c,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0877,clif->pPartyBookingRegisterReq,2,4); + packet(0x0879,clif->pMoveToKafra,2,4); + packet(0x087d,clif->pSolveCharName,2); + packet(0x087e,clif->pChangeDir,2,4); + packet(0x0889,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0899,clif->pPartyInvite2,2); + packet(0x089d,clif->pItemListWindowSelected,2,4,8); + packet(0x08a2,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x08ad,clif->pTakeItem,2); + packet(0x091b,clif->pUseSkillToId,2,4,6); + packet(0x0928,clif->pSearchStoreInfoNextPage,0); + packet(0x092f,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0936,clif->pGetCharNameRequest,2); + packet(0x0944,clif->pWantToConnection,2,6,10,14,18); + packet(0x0957,clif->pDull/*,XXX*/); + packet(0x0963,clif->pSearchStoreInfoListItemClick,2,6,10); #endif // 2017-06-21bRagexe #if PACKETVER == 20170621 - packet(0x0202,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x035f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0360,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0361,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x0365,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x0366,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0437,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0438,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x07e4,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0802,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0835,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x083c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x085d,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x087d,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0885,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0889,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x08a8,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0956,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0957,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x095b,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x095c,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0961,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x096a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 + packet(0x0202,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x035f,clif->pTickSend,2); + packet(0x0360,clif->pReqClickBuyingStore,2); + packet(0x0361,clif->pTakeItem,2); + packet(0x0365,clif->pItemListWindowSelected,2,4,8); + packet(0x0366,clif->pPartyBookingRegisterReq,2,4); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pActionRequest,2,6); + packet(0x0437,clif->pWalkToXY,2); + packet(0x0438,clif->pUseSkillToPos,2,4,6,8); + packet(0x07e4,clif->pFriendsListAdd,2); + packet(0x0802,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0835,clif->pSearchStoreInfoNextPage,0); + packet(0x083c,clif->pUseSkillToId,2,4,6); + packet(0x085d,clif->pChangeDir,2,4); + packet(0x087d,clif->pDropItem,2,4); + packet(0x0885,clif->pPartyInvite2,2); + packet(0x0889,clif->pMoveFromKafra,2,4); + packet(0x08a8,clif->pHomMenu,2,4); + packet(0x0956,clif->pDull/*,XXX*/); + packet(0x0957,clif->pStoragePassword,0); + packet(0x095b,clif->pDull/*,XXX*/); + packet(0x095c,clif->pMoveToKafra,2,4); + packet(0x0961,clif->pWantToConnection,2,6,10,14,18); + packet(0x096a,clif->pGetCharNameRequest,2); #endif // 2017-06-28bRagexe #if PACKETVER == 20170628 - packet(0x0202,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x022d,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x023b,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0281,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x035f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0360,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0361,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0362,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0363,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0364,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0365,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0436,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0437,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0438,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x07e4,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x07ec,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0802,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0835,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x083c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0863,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x096a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 + packet(0x0202,clif->pChangeDir,2,4); + packet(0x022d,clif->pWantToConnection,2,6,10,14,18); + packet(0x023b,clif->pFriendsListAdd,2); + packet(0x0281,clif->pItemListWindowSelected,2,4,8); + packet(0x035f,clif->pTickSend,2); + packet(0x0360,clif->pReqClickBuyingStore,2); + packet(0x0361,clif->pHomMenu,2,4); + packet(0x0362,clif->pDropItem,2,4); + packet(0x0363,clif->pDull/*,XXX*/); + packet(0x0364,clif->pMoveFromKafra,2,4); + packet(0x0365,clif->pPartyBookingRegisterReq,2,4); + packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pActionRequest,2,6); + packet(0x0436,clif->pDull/*,XXX*/); + packet(0x0437,clif->pWalkToXY,2); + packet(0x0438,clif->pUseSkillToPos,2,4,6,8); + packet(0x07e4,clif->pTakeItem,2); + packet(0x07ec,clif->pMoveToKafra,2,4); + packet(0x0802,clif->pPartyInvite2,2); + packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0835,clif->pSearchStoreInfoNextPage,0); + packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x083c,clif->pUseSkillToId,2,4,6); + packet(0x0863,clif->pStoragePassword,0); + packet(0x096a,clif->pGetCharNameRequest,2); #endif // 2017-07-05aRagexe #if PACKETVER == 20170705 - packet(0x0202,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x02c4,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x035f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0360,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0437,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0438,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0835,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x083c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0879,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0886,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x088d,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x088e,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x089a,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x089d,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x091a,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x092f,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0930,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x0932,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x0934,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x094c,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x096a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 + packet(0x0202,clif->pStoragePassword,0); + packet(0x02c4,clif->pPartyBookingRegisterReq,2,4); + packet(0x035f,clif->pTickSend,2); + packet(0x0360,clif->pReqClickBuyingStore,2); + packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pActionRequest,2,6); + packet(0x0437,clif->pWalkToXY,2); + packet(0x0438,clif->pUseSkillToPos,2,4,6,8); + packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0835,clif->pSearchStoreInfoNextPage,0); + packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x083c,clif->pUseSkillToId,2,4,6); + packet(0x0879,clif->pMoveToKafra,2,4); + packet(0x0886,clif->pFriendsListAdd,2); + packet(0x088d,clif->pDull/*,XXX*/); + packet(0x088e,clif->pPartyInvite2,2); + packet(0x089a,clif->pWantToConnection,2,6,10,14,18); + packet(0x089d,clif->pDropItem,2,4); + packet(0x091a,clif->pChangeDir,2,4); + packet(0x092f,clif->pDull/*,XXX*/); + packet(0x0930,clif->pItemListWindowSelected,2,4,8); + packet(0x0932,clif->pTakeItem,2); + packet(0x0934,clif->pMoveFromKafra,2,4); + packet(0x094c,clif->pHomMenu,2,4); + packet(0x096a,clif->pGetCharNameRequest,2); #endif // 2017-07-12bRagexe #if PACKETVER == 20170712 - packet(0x0202,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x022d,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x023b,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0281,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x035f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0360,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0361,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0362,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0363,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0364,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0365,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0436,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0437,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0438,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x07e4,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x07ec,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0802,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0835,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x083c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0944,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x096a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 + packet(0x0202,clif->pChangeDir,2,4); + packet(0x022d,clif->pWantToConnection,2,6,10,14,18); + packet(0x023b,clif->pFriendsListAdd,2); + packet(0x0281,clif->pItemListWindowSelected,2,4,8); + packet(0x035f,clif->pTickSend,2); + packet(0x0360,clif->pReqClickBuyingStore,2); + packet(0x0361,clif->pHomMenu,2,4); + packet(0x0362,clif->pDropItem,2,4); + packet(0x0363,clif->pDull/*,XXX*/); + packet(0x0364,clif->pMoveFromKafra,2,4); + packet(0x0365,clif->pPartyBookingRegisterReq,2,4); + packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pActionRequest,2,6); + packet(0x0436,clif->pDull/*,XXX*/); + packet(0x0437,clif->pWalkToXY,2); + packet(0x0438,clif->pUseSkillToPos,2,4,6,8); + packet(0x07e4,clif->pTakeItem,2); + packet(0x07ec,clif->pMoveToKafra,2,4); + packet(0x0802,clif->pPartyInvite2,2); + packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0835,clif->pSearchStoreInfoNextPage,0); + packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x083c,clif->pUseSkillToId,2,4,6); + packet(0x0944,clif->pStoragePassword,0); + packet(0x096a,clif->pGetCharNameRequest,2); #endif // 2017-07-19aRagexe #if PACKETVER == 20170719 - packet(0x022d,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0367,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0368,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0369,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x07e4,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x085a,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x085e,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0863,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x086e,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x087d,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x0881,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0882,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x0885,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x0891,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x0898,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x089a,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x089d,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x08a6,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x08a8,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x091b,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x091f,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x092c,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x092e,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x092f,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x093d,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x093e,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0944,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0946,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0966,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 + packet(0x022d,clif->pActionRequest,2,6); + packet(0x0367,clif->pReqCloseBuyingStore,0); + packet(0x0368,clif->pDull/*,XXX*/); + packet(0x0369,clif->pHomMenu,2,4); + packet(0x07e4,clif->pGetCharNameRequest,2); + packet(0x085a,clif->pTickSend,2); + packet(0x085e,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0863,clif->pReqClickBuyingStore,2); + packet(0x086e,clif->pPartyInvite2,2); + packet(0x087d,clif->pTakeItem,2); + packet(0x0881,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0882,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x0885,clif->pItemListWindowSelected,2,4,8); + packet(0x0891,clif->pUseSkillToPos,2,4,6,8); + packet(0x0898,clif->pUseSkillToId,2,4,6); + packet(0x089a,clif->pStoragePassword,0); + packet(0x089d,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x08a6,clif->pMoveFromKafra,2,4); + packet(0x08a8,clif->pWantToConnection,2,6,10,14,18); + packet(0x091b,clif->pDropItem,2,4); + packet(0x091f,clif->pSolveCharName,2); + packet(0x092c,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x092e,clif->pSearchStoreInfoNextPage,0); + packet(0x092f,clif->pPartyBookingRegisterReq,2,4); + packet(0x093d,clif->pWalkToXY,2); + packet(0x093e,clif->pDull/*,XXX*/); + packet(0x0944,clif->pChangeDir,2,4); + packet(0x0946,clif->pFriendsListAdd,2); + packet(0x0966,clif->pMoveToKafra,2,4); #endif // 2017-07-26aRagexe #if PACKETVER == 20170726 - packet(0x0363,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0364,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0366,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0369,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0438,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0838,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0873,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0874,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x0878,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0881,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0888,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x088e,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x08a3,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x08a7,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x08aa,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x08ab,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x08ac,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x091d,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x091e,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x091f,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0921,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0923,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0943,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x094f,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0950,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x0952,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0954,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x095a,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0963,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 + packet(0x0363,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0364,clif->pMoveToKafra,2,4); + packet(0x0366,clif->pWantToConnection,2,6,10,14,18); + packet(0x0369,clif->pUseSkillToId,2,4,6); + packet(0x0438,clif->pPartyInvite2,2); + packet(0x0838,clif->pReqCloseBuyingStore,0); + packet(0x0873,clif->pReqClickBuyingStore,2); + packet(0x0874,clif->pItemListWindowSelected,2,4,8); + packet(0x0878,clif->pActionRequest,2,6); + packet(0x0881,clif->pDull/*,XXX*/); + packet(0x0888,clif->pSearchStoreInfoNextPage,0); + packet(0x088e,clif->pWalkToXY,2); + packet(0x08a3,clif->pDull/*,XXX*/); + packet(0x08a7,clif->pStoragePassword,0); + packet(0x08aa,clif->pGetCharNameRequest,2); + packet(0x08ab,clif->pTakeItem,2); + packet(0x08ac,clif->pTickSend,2); + packet(0x091d,clif->pFriendsListAdd,2); + packet(0x091e,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x091f,clif->pHomMenu,2,4); + packet(0x0921,clif->pSolveCharName,2); + packet(0x0923,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0943,clif->pDropItem,2,4); + packet(0x094f,clif->pMoveFromKafra,2,4); + packet(0x0950,clif->pUseSkillToPos,2,4,6,8); + packet(0x0952,clif->pChangeDir,2,4); + packet(0x0954,clif->pPartyBookingRegisterReq,2,4); + packet(0x095a,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0963,clif->pSearchStoreInfo,2,4,5,9,13,14,15); #endif // 2017-08-01aRagexe, 2017-08-01bRagexe #if PACKETVER == 20170801 - packet(0x022d,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0281,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x035f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0360,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0361,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x0362,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0363,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0364,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0365,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0437,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0438,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x07e4,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x07ec,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0802,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0835,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x083c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x087d,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x08a6,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x094f,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x095a,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x096a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 + packet(0x022d,clif->pDropItem,2,4); + packet(0x0281,clif->pChangeDir,2,4); + packet(0x035f,clif->pTickSend,2); + packet(0x0360,clif->pReqClickBuyingStore,2); + packet(0x0361,clif->pItemListWindowSelected,2,4,8); + packet(0x0362,clif->pHomMenu,2,4); + packet(0x0363,clif->pDull/*,XXX*/); + packet(0x0364,clif->pMoveFromKafra,2,4); + packet(0x0365,clif->pPartyBookingRegisterReq,2,4); + packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pActionRequest,2,6); + packet(0x0437,clif->pWalkToXY,2); + packet(0x0438,clif->pUseSkillToPos,2,4,6,8); + packet(0x07e4,clif->pTakeItem,2); + packet(0x07ec,clif->pMoveToKafra,2,4); + packet(0x0802,clif->pPartyInvite2,2); + packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0835,clif->pSearchStoreInfoNextPage,0); + packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x083c,clif->pUseSkillToId,2,4,6); + packet(0x087d,clif->pStoragePassword,0); + packet(0x08a6,clif->pDull/*,XXX*/); + packet(0x094f,clif->pFriendsListAdd,2); + packet(0x095a,clif->pWantToConnection,2,6,10,14,18); + packet(0x096a,clif->pGetCharNameRequest,2); #endif // 2017-08-09cRagexe #if PACKETVER == 20170809 - packet(0x022d,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0281,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0364,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0366,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0367,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x07e4,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0802,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x0835,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0868,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x086e,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x086f,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0876,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x087d,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x0880,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x088c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0890,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x0892,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0895,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0899,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x08a3,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x08a6,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0918,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x0921,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x092a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x092b,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0931,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0939,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x093b,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0940,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 + packet(0x022d,clif->pDull/*,XXX*/); + packet(0x0281,clif->pMoveFromKafra,2,4); + packet(0x0364,clif->pPartyInvite2,2); + packet(0x0366,clif->pFriendsListAdd,2); + packet(0x0367,clif->pReqCloseBuyingStore,0); + packet(0x07e4,clif->pSearchStoreInfoNextPage,0); + packet(0x0802,clif->pItemListWindowSelected,2,4,8); + packet(0x0835,clif->pDropItem,2,4); + packet(0x0868,clif->pActionRequest,2,6); + packet(0x086e,clif->pChangeDir,2,4); + packet(0x086f,clif->pHomMenu,2,4); + packet(0x0876,clif->pUseSkillToPos,2,4,6,8); + packet(0x087d,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x0880,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x088c,clif->pUseSkillToId,2,4,6); + packet(0x0890,clif->pStoragePassword,0); + packet(0x0892,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0895,clif->pWalkToXY,2); + packet(0x0899,clif->pDull/*,XXX*/); + packet(0x08a3,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x08a6,clif->pWantToConnection,2,6,10,14,18); + packet(0x0918,clif->pTakeItem,2); + packet(0x0921,clif->pMoveToKafra,2,4); + packet(0x092a,clif->pGetCharNameRequest,2); + packet(0x092b,clif->pTickSend,2); + packet(0x0931,clif->pSolveCharName,2); + packet(0x0939,clif->pReqClickBuyingStore,2); + packet(0x093b,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0940,clif->pPartyBookingRegisterReq,2,4); #endif // 2017-08-16cRagexe, 2017-08-16dRagexe #if PACKETVER == 20170816 - packet(0x022d,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x035f,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0361,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x0362,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0438,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x085a,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0862,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x0864,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x087e,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x0881,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0882,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x0884,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0888,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0889,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x08a3,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x08a7,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x08a9,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x08ac,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x091c,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x0921,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0925,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x092c,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x093a,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x093d,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0940,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0941,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0950,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0959,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0960,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 + packet(0x022d,clif->pGetCharNameRequest,2); + packet(0x035f,clif->pSearchStoreInfoNextPage,0); + packet(0x0361,clif->pItemListWindowSelected,2,4,8); + packet(0x0362,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0438,clif->pActionRequest,2,6); + packet(0x085a,clif->pSolveCharName,2); + packet(0x0862,clif->pUseSkillToPos,2,4,6,8); + packet(0x0864,clif->pReqCloseBuyingStore,0); + packet(0x087e,clif->pTakeItem,2); + packet(0x0881,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0882,clif->pStoragePassword,0); + packet(0x0884,clif->pDull/*,XXX*/); + packet(0x0888,clif->pPartyBookingRegisterReq,2,4); + packet(0x0889,clif->pTickSend,2); + packet(0x08a3,clif->pFriendsListAdd,2); + packet(0x08a7,clif->pDull/*,XXX*/); + packet(0x08a9,clif->pWalkToXY,2); + packet(0x08ac,clif->pHomMenu,2,4); + packet(0x091c,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x0921,clif->pReqClickBuyingStore,2); + packet(0x0925,clif->pMoveFromKafra,2,4); + packet(0x092c,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x093a,clif->pPartyInvite2,2); + packet(0x093d,clif->pWantToConnection,2,6,10,14,18); + packet(0x0940,clif->pUseSkillToId,2,4,6); + packet(0x0941,clif->pDropItem,2,4); + packet(0x0950,clif->pChangeDir,2,4); + packet(0x0959,clif->pMoveToKafra,2,4); + packet(0x0960,clif->pSearchStoreInfo,2,4,5,9,13,14,15); #endif // 2017-08-23aRagexe #if PACKETVER == 20170823 - packet(0x0281,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x035f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0360,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0361,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0362,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0363,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0364,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0365,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0436,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0437,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0438,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x07e4,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x07ec,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0802,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0835,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x083c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x086c,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x086d,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x08ac,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x095b,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x096a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 + packet(0x0281,clif->pItemListWindowSelected,2,4,8); + packet(0x035f,clif->pTickSend,2); + packet(0x0360,clif->pReqClickBuyingStore,2); + packet(0x0361,clif->pPartyInvite2,2); + packet(0x0362,clif->pDropItem,2,4); + packet(0x0363,clif->pDull/*,XXX*/); + packet(0x0364,clif->pMoveFromKafra,2,4); + packet(0x0365,clif->pPartyBookingRegisterReq,2,4); + packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pActionRequest,2,6); + packet(0x0436,clif->pDull/*,XXX*/); + packet(0x0437,clif->pWalkToXY,2); + packet(0x0438,clif->pUseSkillToPos,2,4,6,8); + packet(0x07e4,clif->pTakeItem,2); + packet(0x07ec,clif->pMoveToKafra,2,4); + packet(0x0802,clif->pChangeDir,2,4); + packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0835,clif->pSearchStoreInfoNextPage,0); + packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x083c,clif->pUseSkillToId,2,4,6); + packet(0x086c,clif->pWantToConnection,2,6,10,14,18); + packet(0x086d,clif->pStoragePassword,0); + packet(0x08ac,clif->pFriendsListAdd,2); + packet(0x095b,clif->pHomMenu,2,4); + packet(0x096a,clif->pGetCharNameRequest,2); #endif // 2017-08-30aRagexe, 2017-08-30bRagexe #if PACKETVER == 20170830 - packet(0x0281,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x02c4,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x0363,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0364,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0860,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0865,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x086a,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0875,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0884,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0885,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0888,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0897,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0899,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x089a,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x089e,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x08a2,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x08a8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x091e,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0921,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0925,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x092e,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x0939,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x093e,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0940,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0942,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x0943,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0947,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0951,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0959,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 + packet(0x0281,clif->pChangeDir,2,4); + packet(0x02c4,clif->pTakeItem,2); + packet(0x0363,clif->pPartyBookingRegisterReq,2,4); + packet(0x0364,clif->pDull/*,XXX*/); + packet(0x0860,clif->pReqCloseBuyingStore,0); + packet(0x0865,clif->pWalkToXY,2); + packet(0x086a,clif->pPartyInvite2,2); + packet(0x0875,clif->pDull/*,XXX*/); + packet(0x0884,clif->pWantToConnection,2,6,10,14,18); + packet(0x0885,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0888,clif->pUseSkillToId,2,4,6); + packet(0x0897,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0899,clif->pDropItem,2,4); + packet(0x089a,clif->pItemListWindowSelected,2,4,8); + packet(0x089e,clif->pMoveToKafra,2,4); + packet(0x08a2,clif->pStoragePassword,0); + packet(0x08a8,clif->pMoveFromKafra,2,4); + packet(0x091e,clif->pTickSend,2); + packet(0x0921,clif->pHomMenu,2,4); + packet(0x0925,clif->pReqClickBuyingStore,2); + packet(0x092e,clif->pGetCharNameRequest,2); + packet(0x0939,clif->pFriendsListAdd,2); + packet(0x093e,clif->pActionRequest,2,6); + packet(0x0940,clif->pSolveCharName,2); + packet(0x0942,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x0943,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0947,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0951,clif->pSearchStoreInfoNextPage,0); + packet(0x0959,clif->pUseSkillToPos,2,4,6,8); #endif // 2017-09-06cRagexe #if PACKETVER == 20170906 - packet(0x0202,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0281,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x02c4,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x035f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0360,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0366,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0437,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0438,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x0802,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0835,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x083c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0860,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0866,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x086c,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x087b,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x08a2,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x08a3,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x08a7,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x091a,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x091e,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0953,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x096a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 + packet(0x0202,clif->pDull/*,XXX*/); + packet(0x0281,clif->pStoragePassword,0); + packet(0x02c4,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x035f,clif->pTickSend,2); + packet(0x0360,clif->pReqClickBuyingStore,2); + packet(0x0366,clif->pPartyInvite2,2); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pActionRequest,2,6); + packet(0x0437,clif->pWalkToXY,2); + packet(0x0438,clif->pUseSkillToPos,2,4,6,8); + packet(0x0802,clif->pChangeDir,2,4); + packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0835,clif->pSearchStoreInfoNextPage,0); + packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x083c,clif->pUseSkillToId,2,4,6); + packet(0x0860,clif->pDropItem,2,4); + packet(0x0866,clif->pItemListWindowSelected,2,4,8); + packet(0x086c,clif->pDull/*,XXX*/); + packet(0x087b,clif->pMoveToKafra,2,4); + packet(0x08a2,clif->pMoveFromKafra,2,4); + packet(0x08a3,clif->pFriendsListAdd,2); + packet(0x08a7,clif->pPartyBookingRegisterReq,2,4); + packet(0x091a,clif->pTakeItem,2); + packet(0x091e,clif->pHomMenu,2,4); + packet(0x0953,clif->pWantToConnection,2,6,10,14,18); + packet(0x096a,clif->pGetCharNameRequest,2); #endif // 2017-09-13cRagexe #if PACKETVER == 20170913 - packet(0x0281,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x035f,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0437,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x07e4,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0817,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0835,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x085a,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0860,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x0865,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0866,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x088c,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0890,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0891,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0892,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x08a6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x08a7,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x08aa,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x08ab,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x08ac,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x08ad,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x091b,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x091d,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x091e,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0920,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0923,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0925,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x0927,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x095a,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x095c,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 + packet(0x0281,clif->pGetCharNameRequest,2); + packet(0x035f,clif->pFriendsListAdd,2); + packet(0x0437,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x07e4,clif->pMoveFromKafra,2,4); + packet(0x0817,clif->pActionRequest,2,6); + packet(0x0835,clif->pWantToConnection,2,6,10,14,18); + packet(0x085a,clif->pReqCloseBuyingStore,0); + packet(0x0860,clif->pTakeItem,2); + packet(0x0865,clif->pPartyInvite2,2); + packet(0x0866,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x088c,clif->pHomMenu,2,4); + packet(0x0890,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0891,clif->pMoveToKafra,2,4); + packet(0x0892,clif->pStoragePassword,0); + packet(0x08a6,clif->pReqClickBuyingStore,2); + packet(0x08a7,clif->pDull/*,XXX*/); + packet(0x08aa,clif->pUseSkillToId,2,4,6); + packet(0x08ab,clif->pPartyBookingRegisterReq,2,4); + packet(0x08ac,clif->pChangeDir,2,4); + packet(0x08ad,clif->pItemListWindowSelected,2,4,8); + packet(0x091b,clif->pTickSend,2); + packet(0x091d,clif->pDropItem,2,4); + packet(0x091e,clif->pDull/*,XXX*/); + packet(0x0920,clif->pSearchStoreInfoNextPage,0); + packet(0x0923,clif->pWalkToXY,2); + packet(0x0925,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x0927,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x095a,clif->pUseSkillToPos,2,4,6,8); + packet(0x095c,clif->pSolveCharName,2); #endif // 2017-09-20aRagexe #if PACKETVER == 20170920 - packet(0x0369,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x0436,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x07ec,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x085a,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0861,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0862,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0864,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x0865,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x086a,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x086c,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0874,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0875,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0889,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x088e,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x089b,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0919,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x091e,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0921,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0923,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0926,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x092e,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0937,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x0939,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0945,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x094c,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x095d,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0961,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0966,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x096a,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 + packet(0x0369,clif->pTakeItem,2); + packet(0x0436,clif->pItemListWindowSelected,2,4,8); + packet(0x07ec,clif->pMoveFromKafra,2,4); + packet(0x085a,clif->pWalkToXY,2); + packet(0x0861,clif->pFriendsListAdd,2); + packet(0x0862,clif->pUseSkillToId,2,4,6); + packet(0x0864,clif->pStoragePassword,0); + packet(0x0865,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x086a,clif->pPartyInvite2,2); + packet(0x086c,clif->pDropItem,2,4); + packet(0x0874,clif->pReqCloseBuyingStore,0); + packet(0x0875,clif->pDull/*,XXX*/); + packet(0x0889,clif->pGetCharNameRequest,2); + packet(0x088e,clif->pTickSend,2); + packet(0x089b,clif->pActionRequest,2,6); + packet(0x0919,clif->pUseSkillToPos,2,4,6,8); + packet(0x091e,clif->pDull/*,XXX*/); + packet(0x0921,clif->pSolveCharName,2); + packet(0x0923,clif->pWantToConnection,2,6,10,14,18); + packet(0x0926,clif->pMoveToKafra,2,4); + packet(0x092e,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0937,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x0939,clif->pChangeDir,2,4); + packet(0x0945,clif->pPartyBookingRegisterReq,2,4); + packet(0x094c,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x095d,clif->pHomMenu,2,4); + packet(0x0961,clif->pReqClickBuyingStore,2); + packet(0x0966,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x096a,clif->pSearchStoreInfoNextPage,0); #endif // 2017-09-27bRagexe, 2017-09-27cRagexe, 2017-09-27dRagexe #if PACKETVER == 20170927 - packet(0x02c4,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x035f,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x0361,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0362,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0366,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x085c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0873,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0875,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x087d,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x087e,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x088b,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0899,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x089a,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x089b,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x08a3,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x08a5,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x08a6,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x08ad,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x091e,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0922,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0923,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0927,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x093b,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0942,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0945,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x094b,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x094d,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x0959,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x095a,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 + packet(0x02c4,clif->pHomMenu,2,4); + packet(0x035f,clif->pGetCharNameRequest,2); + packet(0x0361,clif->pDull/*,XXX*/); + packet(0x0362,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0366,clif->pWantToConnection,2,6,10,14,18); + packet(0x085c,clif->pUseSkillToId,2,4,6); + packet(0x0873,clif->pSolveCharName,2); + packet(0x0875,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x087d,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x087e,clif->pChangeDir,2,4); + packet(0x088b,clif->pSearchStoreInfoNextPage,0); + packet(0x0899,clif->pActionRequest,2,6); + packet(0x089a,clif->pStoragePassword,0); + packet(0x089b,clif->pMoveFromKafra,2,4); + packet(0x08a3,clif->pReqCloseBuyingStore,0); + packet(0x08a5,clif->pItemListWindowSelected,2,4,8); + packet(0x08a6,clif->pDull/*,XXX*/); + packet(0x08ad,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x091e,clif->pReqClickBuyingStore,2); + packet(0x0922,clif->pPartyInvite2,2); + packet(0x0923,clif->pDropItem,2,4); + packet(0x0927,clif->pWalkToXY,2); + packet(0x093b,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0942,clif->pPartyBookingRegisterReq,2,4); + packet(0x0945,clif->pTickSend,2); + packet(0x094b,clif->pFriendsListAdd,2); + packet(0x094d,clif->pTakeItem,2); + packet(0x0959,clif->pMoveToKafra,2,4); + packet(0x095a,clif->pUseSkillToPos,2,4,6,8); #endif // 2017-10-02cRagexe #if PACKETVER == 20171002 - packet(0x022d,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x035f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0360,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0363,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0437,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0438,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0835,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x083c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0885,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0897,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0899,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x089d,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0928,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x092d,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0934,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x093b,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x093d,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x093e,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0943,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x095f,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x096a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 + packet(0x022d,clif->pDropItem,2,4); + packet(0x035f,clif->pTickSend,2); + packet(0x0360,clif->pReqClickBuyingStore,2); + packet(0x0363,clif->pUseSkillToPos,2,4,6,8); + packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pActionRequest,2,6); + packet(0x0437,clif->pWalkToXY,2); + packet(0x0438,clif->pHomMenu,2,4); + packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0835,clif->pSearchStoreInfoNextPage,0); + packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x083c,clif->pUseSkillToId,2,4,6); + packet(0x0885,clif->pMoveToKafra,2,4); + packet(0x0897,clif->pChangeDir,2,4); + packet(0x0899,clif->pFriendsListAdd,2); + packet(0x089d,clif->pWantToConnection,2,6,10,14,18); + packet(0x0928,clif->pItemListWindowSelected,2,4,8); + packet(0x092d,clif->pPartyBookingRegisterReq,2,4); + packet(0x0934,clif->pStoragePassword,0); + packet(0x093b,clif->pMoveFromKafra,2,4); + packet(0x093d,clif->pTakeItem,2); + packet(0x093e,clif->pDull/*,XXX*/); + packet(0x0943,clif->pPartyInvite2,2); + packet(0x095f,clif->pDull/*,XXX*/); + packet(0x096a,clif->pGetCharNameRequest,2); #endif // 2017-10-11aRagexe, 2017-10-11bRagexe #if PACKETVER == 20171011 - packet(0x023b,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0281,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x035f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0360,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0362,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0363,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0364,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0365,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0436,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0437,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x0438,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x07e4,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x07ec,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0802,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0835,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x083c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x087b,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0882,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0950,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0954,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x096a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 + packet(0x023b,clif->pWalkToXY,2); + packet(0x0281,clif->pItemListWindowSelected,2,4,8); + packet(0x035f,clif->pTickSend,2); + packet(0x0360,clif->pReqClickBuyingStore,2); + packet(0x0362,clif->pDropItem,2,4); + packet(0x0363,clif->pDull/*,XXX*/); + packet(0x0364,clif->pMoveFromKafra,2,4); + packet(0x0365,clif->pPartyBookingRegisterReq,2,4); + packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pActionRequest,2,6); + packet(0x0436,clif->pDull/*,XXX*/); + packet(0x0437,clif->pStoragePassword,0); + packet(0x0438,clif->pUseSkillToPos,2,4,6,8); + packet(0x07e4,clif->pTakeItem,2); + packet(0x07ec,clif->pMoveToKafra,2,4); + packet(0x0802,clif->pPartyInvite2,2); + packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0835,clif->pSearchStoreInfoNextPage,0); + packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x083c,clif->pUseSkillToId,2,4,6); + packet(0x087b,clif->pFriendsListAdd,2); + packet(0x0882,clif->pHomMenu,2,4); + packet(0x0950,clif->pWantToConnection,2,6,10,14,18); + packet(0x0954,clif->pChangeDir,2,4); + packet(0x096a,clif->pGetCharNameRequest,2); #endif // 2017-10-18aRagexe #if PACKETVER == 20171018 - packet(0x035f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0360,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0363,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0364,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0436,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x0437,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0438,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0835,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x083c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x086a,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x087a,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x087e,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0889,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x089a,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x089f,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x08a6,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0938,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x0944,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x094a,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x094f,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x096a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 + packet(0x035f,clif->pTickSend,2); + packet(0x0360,clif->pReqClickBuyingStore,2); + packet(0x0363,clif->pWantToConnection,2,6,10,14,18); + packet(0x0364,clif->pMoveToKafra,2,4); + packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pActionRequest,2,6); + packet(0x0436,clif->pTakeItem,2); + packet(0x0437,clif->pWalkToXY,2); + packet(0x0438,clif->pUseSkillToPos,2,4,6,8); + packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0835,clif->pSearchStoreInfoNextPage,0); + packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x083c,clif->pUseSkillToId,2,4,6); + packet(0x086a,clif->pDull/*,XXX*/); + packet(0x087a,clif->pDull/*,XXX*/); + packet(0x087e,clif->pHomMenu,2,4); + packet(0x0889,clif->pMoveFromKafra,2,4); + packet(0x089a,clif->pDropItem,2,4); + packet(0x089f,clif->pPartyInvite2,2); + packet(0x08a6,clif->pChangeDir,2,4); + packet(0x0938,clif->pItemListWindowSelected,2,4,8); + packet(0x0944,clif->pStoragePassword,0); + packet(0x094a,clif->pFriendsListAdd,2); + packet(0x094f,clif->pPartyBookingRegisterReq,2,4); + packet(0x096a,clif->pGetCharNameRequest,2); #endif // 2017-10-25bRagexe, 2017-10-25cRagexe, 2017-10-25dRagexe, 2017-10-25eRagexe #if PACKETVER == 20171025 - packet(0x0202,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x022d,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x023b,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0281,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x035f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0360,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0361,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0362,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0363,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0364,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0365,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0436,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0437,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0438,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x07e4,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x07ec,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0802,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0835,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x083c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x08a2,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x096a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 + packet(0x0202,clif->pChangeDir,2,4); + packet(0x022d,clif->pWantToConnection,2,6,10,14,18); + packet(0x023b,clif->pFriendsListAdd,2); + packet(0x0281,clif->pItemListWindowSelected,2,4,8); + packet(0x035f,clif->pTickSend,2); + packet(0x0360,clif->pReqClickBuyingStore,2); + packet(0x0361,clif->pHomMenu,2,4); + packet(0x0362,clif->pDropItem,2,4); + packet(0x0363,clif->pDull/*,XXX*/); + packet(0x0364,clif->pMoveFromKafra,2,4); + packet(0x0365,clif->pPartyBookingRegisterReq,2,4); + packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pActionRequest,2,6); + packet(0x0436,clif->pDull/*,XXX*/); + packet(0x0437,clif->pWalkToXY,2); + packet(0x0438,clif->pUseSkillToPos,2,4,6,8); + packet(0x07e4,clif->pTakeItem,2); + packet(0x07ec,clif->pMoveToKafra,2,4); + packet(0x0802,clif->pPartyInvite2,2); + packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0835,clif->pSearchStoreInfoNextPage,0); + packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x083c,clif->pUseSkillToId,2,4,6); + packet(0x08a2,clif->pStoragePassword,0); + packet(0x096a,clif->pGetCharNameRequest,2); #endif // 2017-11-01aRagexe #if PACKETVER == 20171101 - packet(0x022d,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x0368,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0369,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0438,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0835,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x085b,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0860,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x086c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0872,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0876,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0886,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x088e,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0890,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0895,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0899,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x089b,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x089c,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x08a0,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x08ab,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x08ad,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x091b,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0939,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x094a,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x094d,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0952,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0957,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x095a,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0962,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x0966,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 + packet(0x022d,clif->pStoragePassword,0); + packet(0x0368,clif->pWantToConnection,2,6,10,14,18); + packet(0x0369,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0438,clif->pTickSend,2); + packet(0x0835,clif->pDropItem,2,4); + packet(0x085b,clif->pHomMenu,2,4); + packet(0x0860,clif->pGetCharNameRequest,2); + packet(0x086c,clif->pUseSkillToId,2,4,6); + packet(0x0872,clif->pFriendsListAdd,2); + packet(0x0876,clif->pChangeDir,2,4); + packet(0x0886,clif->pDull/*,XXX*/); + packet(0x088e,clif->pReqClickBuyingStore,2); + packet(0x0890,clif->pSearchStoreInfoNextPage,0); + packet(0x0895,clif->pDull/*,XXX*/); + packet(0x0899,clif->pPartyInvite2,2); + packet(0x089b,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x089c,clif->pPartyBookingRegisterReq,2,4); + packet(0x08a0,clif->pMoveFromKafra,2,4); + packet(0x08ab,clif->pItemListWindowSelected,2,4,8); + packet(0x08ad,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x091b,clif->pMoveToKafra,2,4); + packet(0x0939,clif->pWalkToXY,2); + packet(0x094a,clif->pReqCloseBuyingStore,0); + packet(0x094d,clif->pSolveCharName,2); + packet(0x0952,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0957,clif->pActionRequest,2,6); + packet(0x095a,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0962,clif->pTakeItem,2); + packet(0x0966,clif->pUseSkillToPos,2,4,6,8); #endif // 2017-11-08aRagexe #if PACKETVER == 20171108 - packet(0x0202,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0361,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x07e4,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0815,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x0819,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0838,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x085d,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x0863,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0878,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x087e,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0884,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x0896,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0897,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x08a2,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x08a9,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x08ad,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x091d,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x091f,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0940,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0941,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0945,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x0947,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0949,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x094e,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0958,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x095a,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0963,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0965,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0967,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 + packet(0x0202,clif->pTickSend,2); + packet(0x0361,clif->pSearchStoreInfoNextPage,0); + packet(0x07e4,clif->pSolveCharName,2); + packet(0x0815,clif->pStoragePassword,0); + packet(0x0819,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0838,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x085d,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x0863,clif->pWalkToXY,2); + packet(0x0878,clif->pFriendsListAdd,2); + packet(0x087e,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0884,clif->pItemListWindowSelected,2,4,8); + packet(0x0896,clif->pDull/*,XXX*/); + packet(0x0897,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x08a2,clif->pUseSkillToId,2,4,6); + packet(0x08a9,clif->pHomMenu,2,4); + packet(0x08ad,clif->pGetCharNameRequest,2); + packet(0x091d,clif->pReqCloseBuyingStore,0); + packet(0x091f,clif->pChangeDir,2,4); + packet(0x0940,clif->pReqClickBuyingStore,2); + packet(0x0941,clif->pMoveToKafra,2,4); + packet(0x0945,clif->pTakeItem,2); + packet(0x0947,clif->pDull/*,XXX*/); + packet(0x0949,clif->pWantToConnection,2,6,10,14,18); + packet(0x094e,clif->pPartyInvite2,2); + packet(0x0958,clif->pPartyBookingRegisterReq,2,4); + packet(0x095a,clif->pMoveFromKafra,2,4); + packet(0x0963,clif->pActionRequest,2,6); + packet(0x0965,clif->pDropItem,2,4); + packet(0x0967,clif->pUseSkillToPos,2,4,6,8); #endif // 2017-11-15aRagexe #if PACKETVER == 20171115 - packet(0x035f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0360,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0365,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0436,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0437,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0438,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x0802,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0835,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x083c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x086d,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x086f,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x087e,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0883,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x088b,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0890,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0898,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x08a4,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0926,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x0958,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x095a,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x096a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 + packet(0x035f,clif->pTickSend,2); + packet(0x0360,clif->pWantToConnection,2,6,10,14,18); + packet(0x0365,clif->pDropItem,2,4); + packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pActionRequest,2,6); + packet(0x0436,clif->pReqClickBuyingStore,2); + packet(0x0437,clif->pWalkToXY,2); + packet(0x0438,clif->pUseSkillToPos,2,4,6,8); + packet(0x0802,clif->pFriendsListAdd,2); + packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0835,clif->pSearchStoreInfoNextPage,0); + packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x083c,clif->pUseSkillToId,2,4,6); + packet(0x086d,clif->pDull/*,XXX*/); + packet(0x086f,clif->pItemListWindowSelected,2,4,8); + packet(0x087e,clif->pMoveFromKafra,2,4); + packet(0x0883,clif->pDull/*,XXX*/); + packet(0x088b,clif->pMoveToKafra,2,4); + packet(0x0890,clif->pPartyBookingRegisterReq,2,4); + packet(0x0898,clif->pStoragePassword,0); + packet(0x08a4,clif->pChangeDir,2,4); + packet(0x0926,clif->pTakeItem,2); + packet(0x0958,clif->pHomMenu,2,4); + packet(0x095a,clif->pPartyInvite2,2); + packet(0x096a,clif->pGetCharNameRequest,2); #endif // 2017-11-22aRagexe #if PACKETVER == 20171122 - packet(0x0281,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x02c4,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x035f,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0838,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x083c,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x085b,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x0862,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x0867,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0877,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0885,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0890,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0891,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x0893,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x0897,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0898,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x089a,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x089e,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x08a6,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x08a9,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x091e,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0920,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0923,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0934,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x093b,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0945,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0946,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0947,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0962,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0968,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 + packet(0x0281,clif->pSolveCharName,2); + packet(0x02c4,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x035f,clif->pDull/*,XXX*/); + packet(0x0838,clif->pMoveToKafra,2,4); + packet(0x083c,clif->pHomMenu,2,4); + packet(0x085b,clif->pGetCharNameRequest,2); + packet(0x0862,clif->pItemListWindowSelected,2,4,8); + packet(0x0867,clif->pWantToConnection,2,6,10,14,18); + packet(0x0877,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0885,clif->pDull/*,XXX*/); + packet(0x0890,clif->pTickSend,2); + packet(0x0891,clif->pTakeItem,2); + packet(0x0893,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x0897,clif->pChangeDir,2,4); + packet(0x0898,clif->pDropItem,2,4); + packet(0x089a,clif->pMoveFromKafra,2,4); + packet(0x089e,clif->pActionRequest,2,6); + packet(0x08a6,clif->pUseSkillToPos,2,4,6,8); + packet(0x08a9,clif->pReqClickBuyingStore,2); + packet(0x091e,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0920,clif->pReqCloseBuyingStore,0); + packet(0x0923,clif->pPartyBookingRegisterReq,2,4); + packet(0x0934,clif->pStoragePassword,0); + packet(0x093b,clif->pUseSkillToId,2,4,6); + packet(0x0945,clif->pSearchStoreInfoNextPage,0); + packet(0x0946,clif->pFriendsListAdd,2); + packet(0x0947,clif->pWalkToXY,2); + packet(0x0962,clif->pPartyInvite2,2); + packet(0x0968,clif->pReqOpenBuyingStore,2,4,8,9,89); #endif // 2017-11-29aRagexe #if PACKETVER == 20171129 - packet(0x02c4,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x035f,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0361,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x0363,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0365,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0437,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0438,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0835,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0838,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x083c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0862,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x086d,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0876,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0878,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x088a,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x089c,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x08a5,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0940,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x094b,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0953,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0966,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x096a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 + packet(0x02c4,clif->pChangeDir,2,4); + packet(0x035f,clif->pReqClickBuyingStore,2); + packet(0x0361,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x0363,clif->pFriendsListAdd,2); + packet(0x0365,clif->pDropItem,2,4); + packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pActionRequest,2,6); + packet(0x0437,clif->pWalkToXY,2); + packet(0x0438,clif->pUseSkillToPos,2,4,6,8); + packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0835,clif->pSearchStoreInfoNextPage,0); + packet(0x0838,clif->pPartyInvite2,2); + packet(0x083c,clif->pUseSkillToId,2,4,6); + packet(0x0862,clif->pTakeItem,2); + packet(0x086d,clif->pPartyBookingRegisterReq,2,4); + packet(0x0876,clif->pDull/*,XXX*/); + packet(0x0878,clif->pStoragePassword,0); + packet(0x088a,clif->pItemListWindowSelected,2,4,8); + packet(0x089c,clif->pHomMenu,2,4); + packet(0x08a5,clif->pMoveToKafra,2,4); + packet(0x0940,clif->pTickSend,2); + packet(0x094b,clif->pDull/*,XXX*/); + packet(0x0953,clif->pMoveFromKafra,2,4); + packet(0x0966,clif->pWantToConnection,2,6,10,14,18); + packet(0x096a,clif->pGetCharNameRequest,2); #endif // 2017-12-06bRagexe, 2017-12-06cRagexe #if PACKETVER == 20171206 - packet(0x0360,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0437,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0438,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x083c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0867,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x086a,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x086e,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0885,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0888,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0897,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x089d,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x08a2,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x08a4,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x091d,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0923,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x092e,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0936,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0942,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0958,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x0961,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x096a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 + packet(0x0360,clif->pReqClickBuyingStore,2); + packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pActionRequest,2,6); + packet(0x0437,clif->pWalkToXY,2); + packet(0x0438,clif->pUseSkillToPos,2,4,6,8); + packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x083c,clif->pUseSkillToId,2,4,6); + packet(0x0867,clif->pDropItem,2,4); + packet(0x086a,clif->pDull/*,XXX*/); + packet(0x086e,clif->pPartyBookingRegisterReq,2,4); + packet(0x0885,clif->pTickSend,2); + packet(0x0888,clif->pSearchStoreInfoNextPage,0); + packet(0x0897,clif->pWantToConnection,2,6,10,14,18); + packet(0x089d,clif->pStoragePassword,0); + packet(0x08a2,clif->pPartyInvite2,2); + packet(0x08a4,clif->pMoveFromKafra,2,4); + packet(0x091d,clif->pFriendsListAdd,2); + packet(0x0923,clif->pMoveToKafra,2,4); + packet(0x092e,clif->pDull/*,XXX*/); + packet(0x0936,clif->pChangeDir,2,4); + packet(0x0942,clif->pHomMenu,2,4); + packet(0x0958,clif->pItemListWindowSelected,2,4,8); + packet(0x0961,clif->pTakeItem,2); + packet(0x096a,clif->pGetCharNameRequest,2); #endif // 2017-12-13bRagexe #if PACKETVER == 20171213 - packet(0x0202,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0281,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x035f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0360,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0362,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0363,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0364,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0365,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0437,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0438,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x07e4,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x07ec,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0802,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0835,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x083c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0860,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0881,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0890,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x091a,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0957,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x096a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 + packet(0x0202,clif->pPartyInvite2,2); + packet(0x0281,clif->pItemListWindowSelected,2,4,8); + packet(0x035f,clif->pTickSend,2); + packet(0x0360,clif->pReqClickBuyingStore,2); + packet(0x0362,clif->pDropItem,2,4); + packet(0x0363,clif->pDull/*,XXX*/); + packet(0x0364,clif->pMoveFromKafra,2,4); + packet(0x0365,clif->pPartyBookingRegisterReq,2,4); + packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pActionRequest,2,6); + packet(0x0437,clif->pWalkToXY,2); + packet(0x0438,clif->pUseSkillToPos,2,4,6,8); + packet(0x07e4,clif->pTakeItem,2); + packet(0x07ec,clif->pMoveToKafra,2,4); + packet(0x0802,clif->pFriendsListAdd,2); + packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0835,clif->pSearchStoreInfoNextPage,0); + packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x083c,clif->pUseSkillToId,2,4,6); + packet(0x0860,clif->pWantToConnection,2,6,10,14,18); + packet(0x0881,clif->pDull/*,XXX*/); + packet(0x0890,clif->pStoragePassword,0); + packet(0x091a,clif->pChangeDir,2,4); + packet(0x0957,clif->pHomMenu,2,4); + packet(0x096a,clif->pGetCharNameRequest,2); #endif // 2017-12-20aRagexe #if PACKETVER == 20171220 - packet(0x0281,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0366,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0369,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0436,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0437,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x085e,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0861,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0872,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0873,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x0880,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x0882,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0885,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x088c,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x0899,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x089e,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x08a7,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x091b,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x091e,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0924,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0929,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0933,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x093e,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0941,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0946,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x094e,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0951,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0957,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0960,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0964,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 + packet(0x0281,clif->pWantToConnection,2,6,10,14,18); + packet(0x0366,clif->pMoveFromKafra,2,4); + packet(0x0369,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0436,clif->pSearchStoreInfoNextPage,0); + packet(0x0437,clif->pPartyBookingRegisterReq,2,4); + packet(0x085e,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0861,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0872,clif->pUseSkillToId,2,4,6); + packet(0x0873,clif->pGetCharNameRequest,2); + packet(0x0880,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x0882,clif->pTickSend,2); + packet(0x0885,clif->pItemListWindowSelected,2,4,8); + packet(0x088c,clif->pUseSkillToPos,2,4,6,8); + packet(0x0899,clif->pStoragePassword,0); + packet(0x089e,clif->pWalkToXY,2); + packet(0x08a7,clif->pReqCloseBuyingStore,0); + packet(0x091b,clif->pTakeItem,2); + packet(0x091e,clif->pSolveCharName,2); + packet(0x0924,clif->pMoveToKafra,2,4); + packet(0x0929,clif->pDropItem,2,4); + packet(0x0933,clif->pChangeDir,2,4); + packet(0x093e,clif->pActionRequest,2,6); + packet(0x0941,clif->pReqClickBuyingStore,2); + packet(0x0946,clif->pDull/*,XXX*/); + packet(0x094e,clif->pDull/*,XXX*/); + packet(0x0951,clif->pHomMenu,2,4); + packet(0x0957,clif->pFriendsListAdd,2); + packet(0x0960,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0964,clif->pPartyInvite2,2); #endif // 2017-12-27aRagexe #if PACKETVER == 20171227 - packet(0x035f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0360,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0361,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0437,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0438,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x0802,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0835,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x083c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x087d,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x0888,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x088a,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x088d,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x08a0,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x08a5,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x092c,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x092e,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0938,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0945,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x0946,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0969,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x096a,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 + packet(0x035f,clif->pTickSend,2); + packet(0x0360,clif->pReqClickBuyingStore,2); + packet(0x0361,clif->pActionRequest,2,6); + packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pChangeDir,2,4); + packet(0x0437,clif->pWalkToXY,2); + packet(0x0438,clif->pUseSkillToPos,2,4,6,8); + packet(0x0802,clif->pGetCharNameRequest,2); + packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0835,clif->pSearchStoreInfoNextPage,0); + packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x083c,clif->pUseSkillToId,2,4,6); + packet(0x087d,clif->pStoragePassword,0); + packet(0x0888,clif->pMoveFromKafra,2,4); + packet(0x088a,clif->pDull/*,XXX*/); + packet(0x088d,clif->pTakeItem,2); + packet(0x08a0,clif->pMoveToKafra,2,4); + packet(0x08a5,clif->pHomMenu,2,4); + packet(0x092c,clif->pWantToConnection,2,6,10,14,18); + packet(0x092e,clif->pDull/*,XXX*/); + packet(0x0938,clif->pPartyInvite2,2); + packet(0x0945,clif->pItemListWindowSelected,2,4,8); + packet(0x0946,clif->pFriendsListAdd,2); + packet(0x0969,clif->pDropItem,2,4); + packet(0x096a,clif->pPartyBookingRegisterReq,2,4); #endif // 2018-01-03aRagexe, 2018-01-03bRagexe #if PACKETVER == 20180103 - packet(0x02c4,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0363,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0811,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0865,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x086b,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x086d,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x0872,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0876,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0879,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x088e,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0899,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x089f,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x08a9,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x08ab,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x08ac,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x091d,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0922,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0926,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0927,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x092c,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0935,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x0938,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0941,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0946,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x0948,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x094e,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x095d,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x095f,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0960,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 + packet(0x02c4,clif->pMoveToKafra,2,4); + packet(0x0363,clif->pPartyInvite2,2); + packet(0x0811,clif->pWantToConnection,2,6,10,14,18); + packet(0x0865,clif->pDull/*,XXX*/); + packet(0x086b,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x086d,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x0872,clif->pReqClickBuyingStore,2); + packet(0x0876,clif->pTickSend,2); + packet(0x0879,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x088e,clif->pReqCloseBuyingStore,0); + packet(0x0899,clif->pFriendsListAdd,2); + packet(0x089f,clif->pSolveCharName,2); + packet(0x08a9,clif->pChangeDir,2,4); + packet(0x08ab,clif->pGetCharNameRequest,2); + packet(0x08ac,clif->pItemListWindowSelected,2,4,8); + packet(0x091d,clif->pActionRequest,2,6); + packet(0x0922,clif->pSearchStoreInfoNextPage,0); + packet(0x0926,clif->pDull/*,XXX*/); + packet(0x0927,clif->pPartyBookingRegisterReq,2,4); + packet(0x092c,clif->pMoveFromKafra,2,4); + packet(0x0935,clif->pTakeItem,2); + packet(0x0938,clif->pUseSkillToId,2,4,6); + packet(0x0941,clif->pWalkToXY,2); + packet(0x0946,clif->pStoragePassword,0); + packet(0x0948,clif->pHomMenu,2,4); + packet(0x094e,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x095d,clif->pUseSkillToPos,2,4,6,8); + packet(0x095f,clif->pDropItem,2,4); + packet(0x0960,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); #endif // 2018-01-17aRagexe #if PACKETVER == 20180117 - packet(0x0202,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x022d,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x023b,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0281,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x035f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0360,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0361,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0362,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0363,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0364,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0365,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0436,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0437,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0438,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x07e4,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x07ec,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0802,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0835,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x083c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0875,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x096a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 + packet(0x0202,clif->pChangeDir,2,4); + packet(0x022d,clif->pWantToConnection,2,6,10,14,18); + packet(0x023b,clif->pFriendsListAdd,2); + packet(0x0281,clif->pItemListWindowSelected,2,4,8); + packet(0x035f,clif->pTickSend,2); + packet(0x0360,clif->pReqClickBuyingStore,2); + packet(0x0361,clif->pHomMenu,2,4); + packet(0x0362,clif->pDropItem,2,4); + packet(0x0363,clif->pDull/*,XXX*/); + packet(0x0364,clif->pMoveFromKafra,2,4); + packet(0x0365,clif->pPartyBookingRegisterReq,2,4); + packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pActionRequest,2,6); + packet(0x0436,clif->pDull/*,XXX*/); + packet(0x0437,clif->pWalkToXY,2); + packet(0x0438,clif->pUseSkillToPos,2,4,6,8); + packet(0x07e4,clif->pTakeItem,2); + packet(0x07ec,clif->pMoveToKafra,2,4); + packet(0x0802,clif->pPartyInvite2,2); + packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0835,clif->pSearchStoreInfoNextPage,0); + packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x083c,clif->pUseSkillToId,2,4,6); + packet(0x0875,clif->pStoragePassword,0); + packet(0x096a,clif->pGetCharNameRequest,2); #endif // 2018-01-24bRagexe, 2018-01-31Ragexe #if PACKETVER == 20180124 || \ PACKETVER == 20180131 - packet(0x035f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0360,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0436,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0437,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0438,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x0802,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0819,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x083c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x085f,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x0868,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x086a,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x086f,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x087a,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0888,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0890,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0919,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0940,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0946,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x094d,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x0958,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0961,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x096a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 + packet(0x035f,clif->pTickSend,2); + packet(0x0360,clif->pReqClickBuyingStore,2); + packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pActionRequest,2,6); + packet(0x0436,clif->pMoveToKafra,2,4); + packet(0x0437,clif->pWalkToXY,2); + packet(0x0438,clif->pUseSkillToPos,2,4,6,8); + packet(0x0802,clif->pDropItem,2,4); + packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x0819,clif->pSearchStoreInfoNextPage,0); + packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x083c,clif->pUseSkillToId,2,4,6); + packet(0x085f,clif->pStoragePassword,0); + packet(0x0868,clif->pDull/*,XXX*/); + packet(0x086a,clif->pPartyBookingRegisterReq,2,4); + packet(0x086f,clif->pDull/*,XXX*/); + packet(0x087a,clif->pPartyInvite2,2); + packet(0x0888,clif->pWantToConnection,2,6,10,14,18); + packet(0x0890,clif->pMoveFromKafra,2,4); + packet(0x0919,clif->pFriendsListAdd,2); + packet(0x0940,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0946,clif->pItemListWindowSelected,2,4,8); + packet(0x094d,clif->pTakeItem,2); + packet(0x0958,clif->pChangeDir,2,4); + packet(0x0961,clif->pHomMenu,2,4); + packet(0x096a,clif->pGetCharNameRequest,2); #endif // 2018-02-07bRagexe, 2018-02-07cRagexe #if PACKETVER == 20180207 - packet(0x0281,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x035f,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0360,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0362,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0363,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0364,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0365,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0437,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0438,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x07e4,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x07ec,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0802,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0835,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x083c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0870,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0881,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x092c,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x092e,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0940,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0950,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x096a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 + packet(0x0281,clif->pItemListWindowSelected,2,4,8); + packet(0x035f,clif->pReqClickBuyingStore,2); + packet(0x0360,clif->pDull/*,XXX*/); + packet(0x0362,clif->pDropItem,2,4); + packet(0x0363,clif->pDull/*,XXX*/); + packet(0x0364,clif->pMoveFromKafra,2,4); + packet(0x0365,clif->pPartyBookingRegisterReq,2,4); + packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pActionRequest,2,6); + packet(0x0437,clif->pWalkToXY,2); + packet(0x0438,clif->pUseSkillToPos,2,4,6,8); + packet(0x07e4,clif->pTakeItem,2); + packet(0x07ec,clif->pMoveToKafra,2,4); + packet(0x0802,clif->pPartyInvite2,2); + packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0835,clif->pSearchStoreInfoNextPage,0); + packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x083c,clif->pUseSkillToId,2,4,6); + packet(0x0870,clif->pWantToConnection,2,6,10,14,18); + packet(0x0881,clif->pFriendsListAdd,2); + packet(0x092c,clif->pHomMenu,2,4); + packet(0x092e,clif->pChangeDir,2,4); + packet(0x0940,clif->pTickSend,2); + packet(0x0950,clif->pStoragePassword,0); + packet(0x096a,clif->pGetCharNameRequest,2); #endif // 2018-02-13aRagexe, 2018-02-13bRagexe #if PACKETVER == 20180213 - packet(0x0369,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x0802,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0817,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x085a,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x086f,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0874,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0875,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0878,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x087b,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0882,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x088c,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0892,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x0898,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x089c,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x08a3,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x08a5,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x08a9,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x08ad,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0917,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0922,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0924,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x0926,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0933,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0936,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x093c,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x0943,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0955,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x095a,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x0962,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 + packet(0x0369,clif->pStoragePassword,0); + packet(0x0802,clif->pDropItem,2,4); + packet(0x0817,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x085a,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x086f,clif->pPartyInvite2,2); + packet(0x0874,clif->pTickSend,2); + packet(0x0875,clif->pMoveFromKafra,2,4); + packet(0x0878,clif->pChangeDir,2,4); + packet(0x087b,clif->pReqClickBuyingStore,2); + packet(0x0882,clif->pUseSkillToId,2,4,6); + packet(0x088c,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0892,clif->pTakeItem,2); + packet(0x0898,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x089c,clif->pDull/*,XXX*/); + packet(0x08a3,clif->pWantToConnection,2,6,10,14,18); + packet(0x08a5,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x08a9,clif->pReqCloseBuyingStore,0); + packet(0x08ad,clif->pSolveCharName,2); + packet(0x0917,clif->pFriendsListAdd,2); + packet(0x0922,clif->pWalkToXY,2); + packet(0x0924,clif->pUseSkillToPos,2,4,6,8); + packet(0x0926,clif->pDull/*,XXX*/); + packet(0x0933,clif->pActionRequest,2,6); + packet(0x0936,clif->pSearchStoreInfoNextPage,0); + packet(0x093c,clif->pGetCharNameRequest,2); + packet(0x0943,clif->pPartyBookingRegisterReq,2,4); + packet(0x0955,clif->pMoveToKafra,2,4); + packet(0x095a,clif->pItemListWindowSelected,2,4,8); + packet(0x0962,clif->pHomMenu,2,4); #endif // 2018-02-21bRagexe #if PACKETVER == 20180221 - packet(0x0202,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0366,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0436,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0838,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0867,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x086c,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x086f,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0871,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0876,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0879,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x087d,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0880,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x0881,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0883,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x088f,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0891,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0897,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0899,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x089d,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0917,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x091e,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0929,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x093d,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x094b,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x094d,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x094e,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x0957,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x0964,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x096a,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 + packet(0x0202,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0366,clif->pDull/*,XXX*/); + packet(0x0436,clif->pFriendsListAdd,2); + packet(0x0838,clif->pChangeDir,2,4); + packet(0x0867,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x086c,clif->pReqClickBuyingStore,2); + packet(0x086f,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0871,clif->pDropItem,2,4); + packet(0x0876,clif->pHomMenu,2,4); + packet(0x0879,clif->pMoveToKafra,2,4); + packet(0x087d,clif->pWalkToXY,2); + packet(0x0880,clif->pItemListWindowSelected,2,4,8); + packet(0x0881,clif->pPartyBookingRegisterReq,2,4); + packet(0x0883,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x088f,clif->pSolveCharName,2); + packet(0x0891,clif->pDull/*,XXX*/); + packet(0x0897,clif->pWantToConnection,2,6,10,14,18); + packet(0x0899,clif->pSearchStoreInfoNextPage,0); + packet(0x089d,clif->pTickSend,2); + packet(0x0917,clif->pStoragePassword,0); + packet(0x091e,clif->pMoveFromKafra,2,4); + packet(0x0929,clif->pReqCloseBuyingStore,0); + packet(0x093d,clif->pPartyInvite2,2); + packet(0x094b,clif->pUseSkillToId,2,4,6); + packet(0x094d,clif->pUseSkillToPos,2,4,6,8); + packet(0x094e,clif->pTakeItem,2); + packet(0x0957,clif->pGetCharNameRequest,2); + packet(0x0964,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x096a,clif->pActionRequest,2,6); #endif // 2018-03-07bRagexe, 2018-03-09aRagexe #if PACKETVER == 20180307 || \ PACKETVER == 20180309 - packet(0x0281,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x035f,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0437,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x07e4,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0861,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0862,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0864,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x086c,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0870,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x0872,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0877,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x088d,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0893,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x089b,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x08a6,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x08aa,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x08ab,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0917,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x0920,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0937,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0939,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x093d,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0941,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x0944,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0948,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0951,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0954,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x0957,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0969,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 + packet(0x0281,clif->pDull/*,XXX*/); + packet(0x035f,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0437,clif->pDropItem,2,4); + packet(0x07e4,clif->pWantToConnection,2,6,10,14,18); + packet(0x0861,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0862,clif->pReqClickBuyingStore,2); + packet(0x0864,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x086c,clif->pTickSend,2); + packet(0x0870,clif->pItemListWindowSelected,2,4,8); + packet(0x0872,clif->pPartyBookingRegisterReq,2,4); + packet(0x0877,clif->pWalkToXY,2); + packet(0x088d,clif->pMoveFromKafra,2,4); + packet(0x0893,clif->pUseSkillToId,2,4,6); + packet(0x089b,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x08a6,clif->pSearchStoreInfoNextPage,0); + packet(0x08aa,clif->pFriendsListAdd,2); + packet(0x08ab,clif->pChangeDir,2,4); + packet(0x0917,clif->pUseSkillToPos,2,4,6,8); + packet(0x0920,clif->pMoveToKafra,2,4); + packet(0x0937,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0939,clif->pStoragePassword,0); + packet(0x093d,clif->pReqCloseBuyingStore,0); + packet(0x0941,clif->pGetCharNameRequest,2); + packet(0x0944,clif->pHomMenu,2,4); + packet(0x0948,clif->pPartyInvite2,2); + packet(0x0951,clif->pDull/*,XXX*/); + packet(0x0954,clif->pTakeItem,2); + packet(0x0957,clif->pSolveCharName,2); + packet(0x0969,clif->pActionRequest,2,6); #endif // 2018-03-14nRagexe #if PACKETVER == 20180314 - packet(0x0361,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x0366,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0369,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0436,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x085a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x0862,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x0863,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x0868,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x086e,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0874,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x087a,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0888,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x088a,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x088d,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x0894,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x089b,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0921,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0927,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x092f,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0933,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0935,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0945,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x094d,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x094e,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0956,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0959,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x095f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0962,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - 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, 2019-08-28aRagexe -#if PACKETVER == 20181121 || \ - PACKETVER == 20181128 || \ - PACKETVER == 20181205 || \ - PACKETVER == 20181212 || \ - PACKETVER == 20181219 || \ - PACKETVER == 20181226 || \ - PACKETVER == 20190109 || \ - PACKETVER == 20190116 || \ - PACKETVER == 20190123 || \ - PACKETVER == 20190213 || \ - PACKETVER == 20190227 || \ - PACKETVER == 20190228 || \ - PACKETVER == 20190306 || \ - PACKETVER == 20190313 || \ - PACKETVER == 20190320 || \ - PACKETVER == 20190322 || \ - PACKETVER == 20190327 || \ - PACKETVER == 20190403 || \ - PACKETVER == 20190417 || \ - PACKETVER == 20190418 || \ - PACKETVER == 20190508 || \ - PACKETVER == 20190522 || \ - PACKETVER == 20190523 || \ - PACKETVER == 20190529 || \ - PACKETVER == 20190530 || \ - PACKETVER == 20190605 || \ - PACKETVER == 20190619 || \ - PACKETVER == 20190703 || \ - PACKETVER == 20190717 || \ - PACKETVER == 20190724 || \ - PACKETVER == 20190731 || \ - PACKETVER == 20190802 || \ - PACKETVER == 20190807 || \ - 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 - 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 // 90 - 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 - -// 2019-09-04aRagexe, 2019-09-04bRagexe, 2019-09-18bRagexe, 2019-09-25aRagexe, 2019-09-25bRagexe, 2019-10-02cRagexe, 2019-10-02dRagexe, 2019-10-16fRagexe, 2019-10-16gRagexe, 2019-10-18aRagexe, 2019-10-23aRagexe, 2019-10-30cRagexe, 2019-11-06aRagexe, 2019-11-07aRagexe, 2019-11-13cRagexe, 2019-11-13eRagexe, 2019-11-20aRagexe, 2019-11-20dRagexe, 2019-11-27aRagexe, 2019-11-27bRagexe, 2019-12-04aRagexe, 2019-12-04bRagexe, 2019-12-11aRagexe, 2019-12-18bRagexe, 2019-12-24aRagexe, 2019-12-24bRagexe, 2020-01-08aRagexe, 2020-01-22cRagexe, 2020-01-29bRagexe, 2020-01-30aRagexe, 2020-02-05aRagexe, 2020-02-06aRagexe, 2020-02-12aRagexe, 2020-02-19dRagexe, 2020-03-04aRagexe -#if PACKETVER == 20190904 || \ - PACKETVER == 20190918 || \ - PACKETVER == 20190925 || \ - PACKETVER == 20191002 || \ - PACKETVER == 20191016 || \ - PACKETVER == 20191018 || \ - PACKETVER == 20191023 || \ - PACKETVER == 20191030 || \ - PACKETVER == 20191106 || \ - PACKETVER == 20191107 || \ - PACKETVER == 20191113 || \ - PACKETVER == 20191120 || \ - PACKETVER == 20191127 || \ - PACKETVER == 20191204 || \ - PACKETVER == 20191211 || \ - PACKETVER == 20191218 || \ - PACKETVER == 20191224 || \ - PACKETVER == 20200108 || \ - PACKETVER == 20200122 || \ - PACKETVER == 20200129 || \ - PACKETVER == 20200130 || \ - PACKETVER == 20200205 || \ - PACKETVER == 20200206 || \ - PACKETVER == 20200212 || \ - PACKETVER == 20200219 || \ - PACKETVER == 20200304 - 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 + packet(0x0361,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x0366,clif->pUseSkillToId,2,4,6); + packet(0x0369,clif->pHomMenu,2,4); + packet(0x0436,clif->pDropItem,2,4); + packet(0x085a,clif->pGetCharNameRequest,2); + packet(0x0862,clif->pTakeItem,2); + packet(0x0863,clif->pItemListWindowSelected,2,4,8); + packet(0x0868,clif->pDull/*,XXX*/); + packet(0x086e,clif->pMoveFromKafra,2,4); + packet(0x0874,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x087a,clif->pWantToConnection,2,6,10,14,18); + packet(0x0888,clif->pChangeDir,2,4); + packet(0x088a,clif->pUseSkillToPos,2,4,6,8); + packet(0x088d,clif->pStoragePassword,0); + packet(0x0894,clif->pReqCloseBuyingStore,0); + packet(0x089b,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0921,clif->pActionRequest,2,6); + packet(0x0927,clif->pSearchStoreInfoNextPage,0); + packet(0x092f,clif->pWalkToXY,2); + packet(0x0933,clif->pMoveToKafra,2,4); + packet(0x0935,clif->pPartyInvite2,2); + packet(0x0945,clif->pPartyBookingRegisterReq,2,4); + packet(0x094d,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x094e,clif->pFriendsListAdd,2); + packet(0x0956,clif->pDull/*,XXX*/); + packet(0x0959,clif->pReqClickBuyingStore,2); + packet(0x095f,clif->pTickSend,2); + packet(0x0962,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0967,clif->pSolveCharName,2); #endif diff --git a/src/map/packets_shuffle_re.h b/src/map/packets_shuffle_re.h index 490d517fd..46829fec1 100644 --- a/src/map/packets_shuffle_re.h +++ b/src/map/packets_shuffle_re.h @@ -40,9585 +40,9585 @@ // 2012-07-10aRagexeRE, 2012-07-12aRagexeRE #if PACKETVER == 20120710 || \ PACKETVER == 20120712 - packet(0x0202,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x02c4,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x0362,clif->pPartyBookingRegisterReq,2,4,6); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0365,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0367,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0436,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x07e4,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0811,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x085b,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0877,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x0878,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x087f,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x088d,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0893,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x0897,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0899,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x08a3,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x08a6,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x08a8,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x08aa,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x092d,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x0936,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0948,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x094b,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x094e,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0953,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0956,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0958,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0960,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 + packet(0x0202,clif->pSolveCharName,2); + packet(0x02c4,clif->pUseSkillToPos,2,4,6,8); + packet(0x0362,clif->pPartyBookingRegisterReq,2,4,6); + packet(0x0365,clif->pFriendsListAdd,2); + packet(0x0367,clif->pMoveToKafra,2,4); + packet(0x0436,clif->pActionRequest,2,6); + packet(0x07e4,clif->pTickSend,2); + packet(0x0811,clif->pReqClickBuyingStore,2); + packet(0x085b,clif->pUseSkillToId,2,4,6); + packet(0x0877,clif->pGetCharNameRequest,2); + packet(0x0878,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x087f,clif->pWalkToXY,2); + packet(0x088d,clif->pChangeDir,2,4); + packet(0x0893,clif->pStoragePassword,0); + packet(0x0897,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0899,clif->pTakeItem,2); + packet(0x08a3,clif->pDropItem,2,4); + packet(0x08a6,clif->pItemListWindowSelected,2,4,8); + packet(0x08a8,clif->pWantToConnection,2,6,10,14,18); + packet(0x08aa,clif->pMoveFromKafra,2,4); + packet(0x092d,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x0936,clif->pDull/*,XXX*/); + packet(0x0948,clif->pReqCloseBuyingStore,0); + packet(0x094b,clif->pHomMenu,2,4); + packet(0x094e,clif->pPartyInvite2,2); + packet(0x0953,clif->pDull/*,XXX*/); + packet(0x0956,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0958,clif->pSearchStoreInfoNextPage,0); + packet(0x0960,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); #endif // 2012-07-16aRagexeRE #if PACKETVER == 20120716 - packet(0x0202,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x022d,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x023b,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0281,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x035f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0360,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0361,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0362,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0363,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0364,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0365,clif->pPartyBookingRegisterReq,2,4,6); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0436,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0437,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0438,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x07e4,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x07ec,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0802,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0835,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x083c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x089f,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x096a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 + packet(0x0202,clif->pChangeDir,2,4); + packet(0x022d,clif->pWantToConnection,2,6,10,14,18); + packet(0x023b,clif->pFriendsListAdd,2); + packet(0x0281,clif->pItemListWindowSelected,2,4,8); + packet(0x035f,clif->pTickSend,2); + packet(0x0360,clif->pReqClickBuyingStore,2); + packet(0x0361,clif->pHomMenu,2,4); + packet(0x0362,clif->pDropItem,2,4); + packet(0x0363,clif->pDull/*,XXX*/); + packet(0x0364,clif->pMoveFromKafra,2,4); + packet(0x0365,clif->pPartyBookingRegisterReq,2,4,6); + packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pActionRequest,2,6); + packet(0x0436,clif->pDull/*,XXX*/); + packet(0x0437,clif->pWalkToXY,2); + packet(0x0438,clif->pUseSkillToPos,2,4,6,8); + packet(0x07e4,clif->pTakeItem,2); + packet(0x07ec,clif->pMoveToKafra,2,4); + packet(0x0802,clif->pPartyInvite2,2); + packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0835,clif->pSearchStoreInfoNextPage,0); + packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x083c,clif->pUseSkillToId,2,4,6); + packet(0x089f,clif->pStoragePassword,0); + packet(0x096a,clif->pGetCharNameRequest,2); #endif // 2012-07-24aRagexeRE #if PACKETVER == 20120724 - packet(0x035f,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0364,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0815,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x0835,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0865,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0866,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0872,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0877,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x087c,clif->pPartyBookingRegisterReq,2,4,6); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0887,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0888,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x088e,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x08a1,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x08a9,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x08ab,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x091c,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x091f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0928,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0929,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x092b,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0935,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0938,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x093c,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0945,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0957,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x0959,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0963,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0965,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0966,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 + packet(0x035f,clif->pDull/*,XXX*/); + packet(0x0364,clif->pReqClickBuyingStore,2); + packet(0x0815,clif->pItemListWindowSelected,2,4,8); + packet(0x0835,clif->pPartyInvite2,2); + packet(0x0865,clif->pReqCloseBuyingStore,0); + packet(0x0866,clif->pDull/*,XXX*/); + packet(0x0872,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0877,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x087c,clif->pPartyBookingRegisterReq,2,4,6); + packet(0x0887,clif->pChangeDir,2,4); + packet(0x0888,clif->pHomMenu,2,4); + packet(0x088e,clif->pUseSkillToId,2,4,6); + packet(0x08a1,clif->pGetCharNameRequest,2); + packet(0x08a9,clif->pWantToConnection,2,6,10,14,18); + packet(0x08ab,clif->pTakeItem,2); + packet(0x091c,clif->pWalkToXY,2); + packet(0x091f,clif->pTickSend,2); + packet(0x0928,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0929,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x092b,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0935,clif->pSearchStoreInfoNextPage,0); + packet(0x0938,clif->pUseSkillToPos,2,4,6,8); + packet(0x093c,clif->pMoveToKafra,2,4); + packet(0x0945,clif->pActionRequest,2,6); + packet(0x0957,clif->pStoragePassword,0); + packet(0x0959,clif->pFriendsListAdd,2); + packet(0x0963,clif->pDropItem,2,4); + packet(0x0965,clif->pSolveCharName,2); + packet(0x0966,clif->pMoveFromKafra,2,4); #endif // 2012-08-01aRagexeRE, 2012-08-01bRagexeRE #if PACKETVER == 20120801 - packet(0x0360,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0438,clif->pPartyBookingRegisterReq,2,4,6); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x085d,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x086a,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x086b,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x086f,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0873,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0875,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x087b,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x088b,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0890,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0895,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x089c,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x089d,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x089f,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x08a2,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x08aa,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x08ab,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0917,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x091d,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x092a,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x092e,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0930,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0934,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x093c,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0941,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0946,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x094e,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0964,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 + packet(0x0360,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0438,clif->pPartyBookingRegisterReq,2,4,6); + packet(0x085d,clif->pSolveCharName,2); + packet(0x086a,clif->pItemListWindowSelected,2,4,8); + packet(0x086b,clif->pGetCharNameRequest,2); + packet(0x086f,clif->pReqCloseBuyingStore,0); + packet(0x0873,clif->pUseSkillToId,2,4,6); + packet(0x0875,clif->pTakeItem,2); + packet(0x087b,clif->pSearchStoreInfoNextPage,0); + packet(0x088b,clif->pHomMenu,2,4); + packet(0x0890,clif->pActionRequest,2,6); + packet(0x0895,clif->pWantToConnection,2,6,10,14,18); + packet(0x089c,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x089d,clif->pDropItem,2,4); + packet(0x089f,clif->pWalkToXY,2); + packet(0x08a2,clif->pFriendsListAdd,2); + packet(0x08aa,clif->pChangeDir,2,4); + packet(0x08ab,clif->pMoveFromKafra,2,4); + packet(0x0917,clif->pStoragePassword,0); + packet(0x091d,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x092a,clif->pDull/*,XXX*/); + packet(0x092e,clif->pReqClickBuyingStore,2); + packet(0x0930,clif->pTickSend,2); + packet(0x0934,clif->pUseSkillToPos,2,4,6,8); + packet(0x093c,clif->pPartyInvite2,2); + packet(0x0941,clif->pMoveToKafra,2,4); + packet(0x0946,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x094e,clif->pDull/*,XXX*/); + packet(0x0964,clif->pSearchStoreInfoListItemClick,2,6,10); #endif // 2012-08-08aRagexeRE, 2012-08-08bRagexeRE, 2012-08-08cRagexeRE, 2012-08-08dRagexeRE #if PACKETVER == 20120808 - packet(0x0202,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x0281,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x035f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0360,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0362,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0363,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0364,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0365,clif->pPartyBookingRegisterReq,2,4,6); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0366,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0436,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0437,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0438,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x07e4,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x07ec,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0802,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0835,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0838,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x083c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x085f,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x088f,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x093d,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0940,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x096a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 + packet(0x0202,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x0281,clif->pItemListWindowSelected,2,4,8); + packet(0x035f,clif->pTickSend,2); + packet(0x0360,clif->pReqClickBuyingStore,2); + packet(0x0362,clif->pDropItem,2,4); + packet(0x0363,clif->pDull/*,XXX*/); + packet(0x0364,clif->pMoveFromKafra,2,4); + packet(0x0365,clif->pPartyBookingRegisterReq,2,4,6); + packet(0x0366,clif->pWantToConnection,2,6,10,14,18); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pActionRequest,2,6); + packet(0x0436,clif->pDull/*,XXX*/); + packet(0x0437,clif->pWalkToXY,2); + packet(0x0438,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x07e4,clif->pTakeItem,2); + packet(0x07ec,clif->pMoveToKafra,2,4); + packet(0x0802,clif->pPartyInvite2,2); + packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0835,clif->pSearchStoreInfoNextPage,0); + packet(0x0838,clif->pFriendsListAdd,2); + packet(0x083c,clif->pUseSkillToId,2,4,6); + packet(0x085f,clif->pStoragePassword,0); + packet(0x088f,clif->pChangeDir,2,4); + packet(0x093d,clif->pHomMenu,2,4); + packet(0x0940,clif->pUseSkillToPos,2,4,6,8); + packet(0x096a,clif->pGetCharNameRequest,2); #endif // 2012-08-14aRagexeRE, 2012-08-14bRagexeRE #if PACKETVER == 20120814 - packet(0x0281,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0361,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x0365,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0366,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0438,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x07ec,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x0815,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0838,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x085e,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0861,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0862,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x0865,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0868,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x086f,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x0875,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x087f,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0882,clif->pPartyBookingRegisterReq,2,4,6); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x088b,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x088d,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0895,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x08a8,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x091f,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0920,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x0929,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0932,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x0934,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0941,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0967,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0969,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 + packet(0x0281,clif->pHomMenu,2,4); + packet(0x0361,clif->pItemListWindowSelected,2,4,8); + packet(0x0365,clif->pSolveCharName,2); + packet(0x0366,clif->pSearchStoreInfoNextPage,0); + packet(0x0438,clif->pTickSend,2); + packet(0x07ec,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x0815,clif->pDropItem,2,4); + packet(0x0838,clif->pReqCloseBuyingStore,0); + packet(0x085e,clif->pMoveToKafra,2,4); + packet(0x0861,clif->pReqClickBuyingStore,2); + packet(0x0862,clif->pTakeItem,2); + packet(0x0865,clif->pMoveFromKafra,2,4); + packet(0x0868,clif->pActionRequest,2,6); + packet(0x086f,clif->pStoragePassword,0); + packet(0x0875,clif->pWalkToXY,2); + packet(0x087f,clif->pPartyInvite2,2); + packet(0x0882,clif->pPartyBookingRegisterReq,2,4,6); + packet(0x088b,clif->pFriendsListAdd,2); + packet(0x088d,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0895,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x08a8,clif->pDull/*,XXX*/); + packet(0x091f,clif->pWantToConnection,2,6,10,14,18); + packet(0x0920,clif->pGetCharNameRequest,2); + packet(0x0929,clif->pDull/*,XXX*/); + packet(0x0932,clif->pUseSkillToPos,2,4,6,8); + packet(0x0934,clif->pUseSkillToId,2,4,6); + packet(0x0941,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0967,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0969,clif->pChangeDir,2,4); #endif // 2012-08-22aRagexeRE, 2012-08-22bRagexeRE, 2012-08-22cRagexeRE #if PACKETVER == 20120822 - packet(0x0365,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0437,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x085a,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x085c,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x085d,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x086b,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x086e,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0872,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x087c,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x087d,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0885,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x088a,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0899,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x089f,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x08a5,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x08ab,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0917,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x0924,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0927,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x0935,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0937,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x0940,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x0943,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x094d,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x094e,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0953,clif->pPartyBookingRegisterReq,2,4,6); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0955,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0958,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x095b,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 + packet(0x0365,clif->pFriendsListAdd,2); + packet(0x0437,clif->pTakeItem,2); + packet(0x085a,clif->pWalkToXY,2); + packet(0x085c,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x085d,clif->pUseSkillToId,2,4,6); + packet(0x086b,clif->pSolveCharName,2); + packet(0x086e,clif->pChangeDir,2,4); + packet(0x0872,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x087c,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x087d,clif->pTickSend,2); + packet(0x0885,clif->pDull/*,XXX*/); + packet(0x088a,clif->pMoveToKafra,2,4); + packet(0x0899,clif->pPartyInvite2,2); + packet(0x089f,clif->pWantToConnection,2,6,10,14,18); + packet(0x08a5,clif->pDull/*,XXX*/); + packet(0x08ab,clif->pActionRequest,2,6); + packet(0x0917,clif->pItemListWindowSelected,2,4,8); + packet(0x0924,clif->pSearchStoreInfoNextPage,0); + packet(0x0927,clif->pGetCharNameRequest,2); + packet(0x0935,clif->pHomMenu,2,4); + packet(0x0937,clif->pUseSkillToPos,2,4,6,8); + packet(0x0940,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x0943,clif->pMoveFromKafra,2,4); + packet(0x094d,clif->pStoragePassword,0); + packet(0x094e,clif->pDropItem,2,4); + packet(0x0953,clif->pPartyBookingRegisterReq,2,4,6); + packet(0x0955,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0958,clif->pReqCloseBuyingStore,0); + packet(0x095b,clif->pReqClickBuyingStore,2); #endif // 2012-08-30aRagexeRE, 2012-08-30bRagexeRE #if PACKETVER == 20120830 - packet(0x022d,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x035f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0360,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0364,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0436,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0437,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0802,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0835,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0838,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x083c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0861,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0872,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0887,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x0888,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0890,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x091d,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x0926,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0934,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0945,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x094b,clif->pPartyBookingRegisterReq,2,4,6); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0964,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x096a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 + packet(0x022d,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x035f,clif->pTickSend,2); + packet(0x0360,clif->pReqClickBuyingStore,2); + packet(0x0364,clif->pSearchStoreInfoNextPage,0); + packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pActionRequest,2,6); + packet(0x0436,clif->pPartyInvite2,2); + packet(0x0437,clif->pWalkToXY,2); + packet(0x0802,clif->pStoragePassword,0); + packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0835,clif->pMoveToKafra,2,4); + packet(0x0838,clif->pHomMenu,2,4); + packet(0x083c,clif->pUseSkillToId,2,4,6); + packet(0x0861,clif->pWantToConnection,2,6,10,14,18); + packet(0x0872,clif->pFriendsListAdd,2); + packet(0x0887,clif->pUseSkillToPos,2,4,6,8); + packet(0x0888,clif->pDull/*,XXX*/); + packet(0x0890,clif->pDull/*,XXX*/); + packet(0x091d,clif->pItemListWindowSelected,2,4,8); + packet(0x0926,clif->pMoveFromKafra,2,4); + packet(0x0934,clif->pChangeDir,2,4); + packet(0x0945,clif->pDropItem,2,4); + packet(0x094b,clif->pPartyBookingRegisterReq,2,4,6); + packet(0x0964,clif->pTakeItem,2); + packet(0x096a,clif->pGetCharNameRequest,2); #endif // 2012-09-05aRagexeRE #if PACKETVER == 20120905 - packet(0x022d,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0365,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0817,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x085a,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x085d,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x086f,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0876,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0877,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0878,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x087a,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x087b,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x087e,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0887,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0895,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0897,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x08a0,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x08a6,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0917,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0918,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x091a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x0927,clif->pPartyBookingRegisterReq,2,4,6); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x093c,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x0944,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0945,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0950,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0954,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0959,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0960,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0967,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 + packet(0x022d,clif->pMoveToKafra,2,4); + packet(0x0365,clif->pDull/*,XXX*/); + packet(0x0817,clif->pStoragePassword,0); + packet(0x085a,clif->pSearchStoreInfoNextPage,0); + packet(0x085d,clif->pUseSkillToPos,2,4,6,8); + packet(0x086f,clif->pSolveCharName,2); + packet(0x0876,clif->pHomMenu,2,4); + packet(0x0877,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0878,clif->pWalkToXY,2); + packet(0x087a,clif->pUseSkillToId,2,4,6); + packet(0x087b,clif->pTickSend,2); + packet(0x087e,clif->pMoveFromKafra,2,4); + packet(0x0887,clif->pWantToConnection,2,6,10,14,18); + packet(0x0895,clif->pChangeDir,2,4); + packet(0x0897,clif->pTakeItem,2); + packet(0x08a0,clif->pDull/*,XXX*/); + packet(0x08a6,clif->pFriendsListAdd,2); + packet(0x0917,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0918,clif->pItemListWindowSelected,2,4,8); + packet(0x091a,clif->pGetCharNameRequest,2); + packet(0x0927,clif->pPartyBookingRegisterReq,2,4,6); + packet(0x093c,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x0944,clif->pPartyInvite2,2); + packet(0x0945,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0950,clif->pDropItem,2,4); + packet(0x0954,clif->pReqCloseBuyingStore,0); + packet(0x0959,clif->pReqClickBuyingStore,2); + packet(0x0960,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0967,clif->pActionRequest,2,6); #endif // 2012-09-11aRagexeRE #if PACKETVER == 20120911 - packet(0x0438,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0819,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0868,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x086f,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0876,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0877,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0879,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x087a,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x088a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x088f,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x08a4,clif->pPartyBookingRegisterReq,2,4,6); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x08a5,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x08a6,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x08a7,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x08ad,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x0930,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0935,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x093e,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x0948,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x0949,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x094b,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0952,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0958,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0959,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0962,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0963,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0966,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0968,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x096a,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 + packet(0x0438,clif->pTickSend,2); + packet(0x0819,clif->pMoveFromKafra,2,4); + packet(0x0868,clif->pTakeItem,2); + packet(0x086f,clif->pWalkToXY,2); + packet(0x0876,clif->pHomMenu,2,4); + packet(0x0877,clif->pPartyInvite2,2); + packet(0x0879,clif->pReqClickBuyingStore,2); + packet(0x087a,clif->pDull/*,XXX*/); + packet(0x088a,clif->pGetCharNameRequest,2); + packet(0x088f,clif->pFriendsListAdd,2); + packet(0x08a4,clif->pPartyBookingRegisterReq,2,4,6); + packet(0x08a5,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x08a6,clif->pWantToConnection,2,6,10,14,18); + packet(0x08a7,clif->pDropItem,2,4); + packet(0x08ad,clif->pItemListWindowSelected,2,4,8); + packet(0x0930,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0935,clif->pReqCloseBuyingStore,0); + packet(0x093e,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x0948,clif->pUseSkillToPos,2,4,6,8); + packet(0x0949,clif->pDull/*,XXX*/); + packet(0x094b,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0952,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0958,clif->pUseSkillToId,2,4,6); + packet(0x0959,clif->pActionRequest,2,6); + packet(0x0962,clif->pSearchStoreInfoNextPage,0); + packet(0x0963,clif->pSolveCharName,2); + packet(0x0966,clif->pMoveToKafra,2,4); + packet(0x0968,clif->pChangeDir,2,4); + packet(0x096a,clif->pStoragePassword,0); #endif // 2012-09-19aRagexeRE #if PACKETVER == 20120919 - packet(0x0202,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x022d,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x023b,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0281,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x035f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0360,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0361,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0362,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0363,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0364,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0365,clif->pPartyBookingRegisterReq,2,4,6); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0436,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0437,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0438,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x07e4,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x07ec,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0802,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0835,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x083c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0956,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x096a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 + packet(0x0202,clif->pChangeDir,2,4); + packet(0x022d,clif->pWantToConnection,2,6,10,14,18); + packet(0x023b,clif->pFriendsListAdd,2); + packet(0x0281,clif->pItemListWindowSelected,2,4,8); + packet(0x035f,clif->pTickSend,2); + packet(0x0360,clif->pReqClickBuyingStore,2); + packet(0x0361,clif->pHomMenu,2,4); + packet(0x0362,clif->pDropItem,2,4); + packet(0x0363,clif->pDull/*,XXX*/); + packet(0x0364,clif->pMoveFromKafra,2,4); + packet(0x0365,clif->pPartyBookingRegisterReq,2,4,6); + packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pActionRequest,2,6); + packet(0x0436,clif->pDull/*,XXX*/); + packet(0x0437,clif->pWalkToXY,2); + packet(0x0438,clif->pUseSkillToPos,2,4,6,8); + packet(0x07e4,clif->pTakeItem,2); + packet(0x07ec,clif->pMoveToKafra,2,4); + packet(0x0802,clif->pPartyInvite2,2); + packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0835,clif->pSearchStoreInfoNextPage,0); + packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x083c,clif->pUseSkillToId,2,4,6); + packet(0x0956,clif->pStoragePassword,0); + packet(0x096a,clif->pGetCharNameRequest,2); #endif // 2012-09-25aRagexeRE, 2012-09-26aRagexeRE #if PACKETVER == 20120925 || \ PACKETVER == 20120926 - packet(0x07e4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0815,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x0819,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0835,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0838,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x085d,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0869,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0873,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x087a,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x087e,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0887,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x088a,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x088d,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x088f,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x089d,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x08a4,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x091c,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x091e,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0923,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x0927,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0932,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0942,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x0948,clif->pPartyBookingRegisterReq,2,4,6); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0950,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0956,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0957,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0958,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x095e,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x0963,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 + packet(0x07e4,clif->pDull/*,XXX*/); + packet(0x0815,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x0819,clif->pWantToConnection,2,6,10,14,18); + packet(0x0835,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0838,clif->pGetCharNameRequest,2); + packet(0x085d,clif->pHomMenu,2,4); + packet(0x0869,clif->pMoveToKafra,2,4); + packet(0x0873,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x087a,clif->pDropItem,2,4); + packet(0x087e,clif->pFriendsListAdd,2); + packet(0x0887,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x088a,clif->pPartyInvite2,2); + packet(0x088d,clif->pUseSkillToId,2,4,6); + packet(0x088f,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x089d,clif->pItemListWindowSelected,2,4,8); + packet(0x08a4,clif->pActionRequest,2,6); + packet(0x091c,clif->pSearchStoreInfoNextPage,0); + packet(0x091e,clif->pReqCloseBuyingStore,0); + packet(0x0923,clif->pTakeItem,2); + packet(0x0927,clif->pReqClickBuyingStore,2); + packet(0x0932,clif->pTickSend,2); + packet(0x0942,clif->pStoragePassword,0); + packet(0x0948,clif->pPartyBookingRegisterReq,2,4,6); + packet(0x0950,clif->pWalkToXY,2); + packet(0x0956,clif->pDull/*,XXX*/); + packet(0x0957,clif->pChangeDir,2,4); + packet(0x0958,clif->pSolveCharName,2); + packet(0x095e,clif->pUseSkillToPos,2,4,6,8); + packet(0x0963,clif->pMoveFromKafra,2,4); #endif // 2012-10-10aRagexeRE, 2012-10-10bRagexeRE, 2012-10-11aRagexeRE #if PACKETVER == 20121010 || \ PACKETVER == 20121011 - packet(0x0202,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x0817,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x085a,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0869,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x086c,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0874,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x087d,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0883,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0888,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x088f,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0891,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0896,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0898,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x08a1,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x08a6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x08a9,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0925,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x0934,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x093c,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0942,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0946,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0947,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x094c,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0957,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0958,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0959,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x095c,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0964,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0969,clif->pPartyBookingRegisterReq,2,4,6); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 + packet(0x0202,clif->pItemListWindowSelected,2,4,8); + packet(0x0817,clif->pGetCharNameRequest,2); + packet(0x085a,clif->pReqCloseBuyingStore,0); + packet(0x0869,clif->pTakeItem,2); + packet(0x086c,clif->pDull/*,XXX*/); + packet(0x0874,clif->pMoveFromKafra,2,4); + packet(0x087d,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0883,clif->pWalkToXY,2); + packet(0x0888,clif->pDull/*,XXX*/); + packet(0x088f,clif->pPartyInvite2,2); + packet(0x0891,clif->pUseSkillToId,2,4,6); + packet(0x0896,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0898,clif->pStoragePassword,0); + packet(0x08a1,clif->pActionRequest,2,6); + packet(0x08a6,clif->pSolveCharName,2); + packet(0x08a9,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0925,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x0934,clif->pTickSend,2); + packet(0x093c,clif->pMoveToKafra,2,4); + packet(0x0942,clif->pReqClickBuyingStore,2); + packet(0x0946,clif->pWantToConnection,2,6,10,14,18); + packet(0x0947,clif->pUseSkillToPos,2,4,6,8); + packet(0x094c,clif->pDropItem,2,4); + packet(0x0957,clif->pChangeDir,2,4); + packet(0x0958,clif->pSearchStoreInfoNextPage,0); + packet(0x0959,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x095c,clif->pHomMenu,2,4); + packet(0x0964,clif->pFriendsListAdd,2); + packet(0x0969,clif->pPartyBookingRegisterReq,2,4,6); #endif // 2012-10-17aRagexeRE, 2012-10-17bRagexeRE #if PACKETVER == 20121017 - packet(0x023b,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x035f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0360,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0365,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0437,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0438,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0815,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0835,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x083c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0868,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x086b,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0887,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x0888,clif->pPartyBookingRegisterReq,2,4,6); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0897,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x089a,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x08a6,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0918,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x0920,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0960,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0962,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x0965,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x096a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 + packet(0x023b,clif->pPartyInvite2,2); + packet(0x035f,clif->pTickSend,2); + packet(0x0360,clif->pReqClickBuyingStore,2); + packet(0x0365,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pActionRequest,2,6); + packet(0x0437,clif->pWalkToXY,2); + packet(0x0438,clif->pUseSkillToPos,2,4,6,8); + packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0815,clif->pMoveFromKafra,2,4); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0835,clif->pSearchStoreInfoNextPage,0); + packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x083c,clif->pUseSkillToId,2,4,6); + packet(0x0868,clif->pDull/*,XXX*/); + packet(0x086b,clif->pDropItem,2,4); + packet(0x0887,clif->pItemListWindowSelected,2,4,8); + packet(0x0888,clif->pPartyBookingRegisterReq,2,4,6); + packet(0x0897,clif->pMoveToKafra,2,4); + packet(0x089a,clif->pFriendsListAdd,2); + packet(0x08a6,clif->pChangeDir,2,4); + packet(0x0918,clif->pStoragePassword,0); + packet(0x0920,clif->pDull/*,XXX*/); + packet(0x0960,clif->pHomMenu,2,4); + packet(0x0962,clif->pTakeItem,2); + packet(0x0965,clif->pWantToConnection,2,6,10,14,18); + packet(0x096a,clif->pGetCharNameRequest,2); #endif // 2012-10-24aRagexeRE #if PACKETVER == 20121024 - packet(0x0436,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0437,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0438,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x0817,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0838,clif->pPartyBookingRegisterReq,2,4,6); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x085a,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0868,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0872,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x0875,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x087a,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x087b,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x087e,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x0882,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x0888,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0889,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x088a,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x089c,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x08a9,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x08aa,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0931,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x0938,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x093a,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0942,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0947,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0954,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0955,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x095d,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x095e,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0965,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 + packet(0x0436,clif->pWalkToXY,2); + packet(0x0437,clif->pUseSkillToId,2,4,6); + packet(0x0438,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x0817,clif->pActionRequest,2,6); + packet(0x0838,clif->pPartyBookingRegisterReq,2,4,6); + packet(0x085a,clif->pMoveFromKafra,2,4); + packet(0x0868,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0872,clif->pGetCharNameRequest,2); + packet(0x0875,clif->pDull/*,XXX*/); + packet(0x087a,clif->pMoveToKafra,2,4); + packet(0x087b,clif->pItemListWindowSelected,2,4,8); + packet(0x087e,clif->pUseSkillToPos,2,4,6,8); + packet(0x0882,clif->pStoragePassword,0); + packet(0x0888,clif->pHomMenu,2,4); + packet(0x0889,clif->pDropItem,2,4); + packet(0x088a,clif->pReqClickBuyingStore,2); + packet(0x089c,clif->pPartyInvite2,2); + packet(0x08a9,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x08aa,clif->pChangeDir,2,4); + packet(0x0931,clif->pTakeItem,2); + packet(0x0938,clif->pReqCloseBuyingStore,0); + packet(0x093a,clif->pDull/*,XXX*/); + packet(0x0942,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0947,clif->pTickSend,2); + packet(0x0954,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0955,clif->pSearchStoreInfoNextPage,0); + packet(0x095d,clif->pFriendsListAdd,2); + packet(0x095e,clif->pSolveCharName,2); + packet(0x0965,clif->pWantToConnection,2,6,10,14,18); #endif // 2012-10-31aRagexeRE #if PACKETVER == 20121031 - packet(0x022d,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0281,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x035f,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0360,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0362,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0363,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0364,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0365,clif->pPartyBookingRegisterReq,2,4,6); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0437,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0438,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x07e4,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x07ec,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0802,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0835,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x083c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x085a,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0871,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0877,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0898,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x092b,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x096a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 + packet(0x022d,clif->pTickSend,2); + packet(0x0281,clif->pItemListWindowSelected,2,4,8); + packet(0x035f,clif->pHomMenu,2,4); + packet(0x0360,clif->pReqClickBuyingStore,2); + packet(0x0362,clif->pDropItem,2,4); + packet(0x0363,clif->pDull/*,XXX*/); + packet(0x0364,clif->pMoveFromKafra,2,4); + packet(0x0365,clif->pPartyBookingRegisterReq,2,4,6); + packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pActionRequest,2,6); + packet(0x0437,clif->pWalkToXY,2); + packet(0x0438,clif->pUseSkillToPos,2,4,6,8); + packet(0x07e4,clif->pTakeItem,2); + packet(0x07ec,clif->pMoveToKafra,2,4); + packet(0x0802,clif->pPartyInvite2,2); + packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0835,clif->pSearchStoreInfoNextPage,0); + packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x083c,clif->pUseSkillToId,2,4,6); + packet(0x085a,clif->pFriendsListAdd,2); + packet(0x0871,clif->pChangeDir,2,4); + packet(0x0877,clif->pWantToConnection,2,6,10,14,18); + packet(0x0898,clif->pStoragePassword,0); + packet(0x092b,clif->pDull/*,XXX*/); + packet(0x096a,clif->pGetCharNameRequest,2); #endif // 2012-11-07aRagexeRE #if PACKETVER == 20121107 - packet(0x0360,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x0361,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x0365,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x085c,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x0861,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0865,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x086c,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x086d,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0871,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0873,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0878,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x087f,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x088f,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0890,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0891,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0896,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x089a,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x089b,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x08a2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x08ad,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x0922,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0934,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x093b,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x0945,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x094d,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0960,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0963,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0966,clif->pPartyBookingRegisterReq,2,4,6); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x096a,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 + packet(0x0360,clif->pTakeItem,2); + packet(0x0361,clif->pStoragePassword,0); + packet(0x0365,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x085c,clif->pItemListWindowSelected,2,4,8); + packet(0x0861,clif->pTickSend,2); + packet(0x0865,clif->pWantToConnection,2,6,10,14,18); + packet(0x086c,clif->pHomMenu,2,4); + packet(0x086d,clif->pSolveCharName,2); + packet(0x0871,clif->pSearchStoreInfoNextPage,0); + packet(0x0873,clif->pMoveToKafra,2,4); + packet(0x0878,clif->pPartyInvite2,2); + packet(0x087f,clif->pChangeDir,2,4); + packet(0x088f,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0890,clif->pUseSkillToId,2,4,6); + packet(0x0891,clif->pMoveFromKafra,2,4); + packet(0x0896,clif->pReqClickBuyingStore,2); + packet(0x089a,clif->pActionRequest,2,6); + packet(0x089b,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x08a2,clif->pReqCloseBuyingStore,0); + packet(0x08ad,clif->pGetCharNameRequest,2); + packet(0x0922,clif->pDull/*,XXX*/); + packet(0x0934,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x093b,clif->pUseSkillToPos,2,4,6,8); + packet(0x0945,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x094d,clif->pWalkToXY,2); + packet(0x0960,clif->pDropItem,2,4); + packet(0x0963,clif->pDull/*,XXX*/); + packet(0x0966,clif->pPartyBookingRegisterReq,2,4,6); + packet(0x096a,clif->pFriendsListAdd,2); #endif // 2012-11-14aRagexeRE #if PACKETVER == 20121114 - packet(0x0364,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x0365,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0437,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0815,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0838,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0862,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0876,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0879,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x0881,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0898,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0899,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x08a9,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x08aa,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x08ab,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x091a,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0930,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0935,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0938,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x093b,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x093c,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0941,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0944,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x0949,clif->pPartyBookingRegisterReq,2,4,6); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x094a,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x094b,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x094f,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x095c,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0965,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x096a,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 + packet(0x0364,clif->pStoragePassword,0); + packet(0x0365,clif->pHomMenu,2,4); + packet(0x0437,clif->pDropItem,2,4); + packet(0x0815,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0838,clif->pPartyInvite2,2); + packet(0x0862,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0876,clif->pSolveCharName,2); + packet(0x0879,clif->pGetCharNameRequest,2); + packet(0x0881,clif->pSearchStoreInfoNextPage,0); + packet(0x0898,clif->pActionRequest,2,6); + packet(0x0899,clif->pWalkToXY,2); + packet(0x08a9,clif->pTickSend,2); + packet(0x08aa,clif->pReqCloseBuyingStore,0); + packet(0x08ab,clif->pChangeDir,2,4); + packet(0x091a,clif->pMoveFromKafra,2,4); + packet(0x0930,clif->pDull/*,XXX*/); + packet(0x0935,clif->pUseSkillToId,2,4,6); + packet(0x0938,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x093b,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x093c,clif->pMoveToKafra,2,4); + packet(0x0941,clif->pFriendsListAdd,2); + packet(0x0944,clif->pItemListWindowSelected,2,4,8); + packet(0x0949,clif->pPartyBookingRegisterReq,2,4,6); + packet(0x094a,clif->pUseSkillToPos,2,4,6,8); + packet(0x094b,clif->pWantToConnection,2,6,10,14,18); + packet(0x094f,clif->pReqClickBuyingStore,2); + packet(0x095c,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0965,clif->pTakeItem,2); + packet(0x096a,clif->pDull/*,XXX*/); #endif // 2012-11-21aRagexeRE #if PACKETVER == 20121121 - packet(0x0202,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0362,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0437,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x0863,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x086a,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x086c,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x086d,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x086f,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0872,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x0875,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x087e,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0880,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0892,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0899,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x089a,clif->pPartyBookingRegisterReq,2,4,6); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x08a7,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x08aa,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x091a,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0921,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x0927,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0929,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0938,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x0946,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x094d,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0950,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0952,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0954,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x0957,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0958,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 + packet(0x0202,clif->pUseSkillToId,2,4,6); + packet(0x0362,clif->pReqCloseBuyingStore,0); + packet(0x0437,clif->pTakeItem,2); + packet(0x0863,clif->pItemListWindowSelected,2,4,8); + packet(0x086a,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x086c,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x086d,clif->pSolveCharName,2); + packet(0x086f,clif->pMoveFromKafra,2,4); + packet(0x0872,clif->pGetCharNameRequest,2); + packet(0x0875,clif->pMoveToKafra,2,4); + packet(0x087e,clif->pSearchStoreInfoNextPage,0); + packet(0x0880,clif->pChangeDir,2,4); + packet(0x0892,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0899,clif->pFriendsListAdd,2); + packet(0x089a,clif->pPartyBookingRegisterReq,2,4,6); + packet(0x08a7,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x08aa,clif->pActionRequest,2,6); + packet(0x091a,clif->pTickSend,2); + packet(0x0921,clif->pUseSkillToPos,2,4,6,8); + packet(0x0927,clif->pWantToConnection,2,6,10,14,18); + packet(0x0929,clif->pDull/*,XXX*/); + packet(0x0938,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x0946,clif->pWalkToXY,2); + packet(0x094d,clif->pDull/*,XXX*/); + packet(0x0950,clif->pHomMenu,2,4); + packet(0x0952,clif->pDropItem,2,4); + packet(0x0954,clif->pStoragePassword,0); + packet(0x0957,clif->pPartyInvite2,2); + packet(0x0958,clif->pReqClickBuyingStore,2); #endif // 2012-11-28aRagexeRE #if PACKETVER == 20121128 - packet(0x0362,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0363,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x07ec,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0802,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x0861,clif->pPartyBookingRegisterReq,2,4,6); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0867,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x086c,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x086e,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0872,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0888,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x088b,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0894,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0895,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x08a8,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x08ad,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x091b,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x091c,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x091e,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x091f,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0921,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0922,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x092f,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0931,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0945,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0947,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0950,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x0953,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0954,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0960,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 + packet(0x0362,clif->pWantToConnection,2,6,10,14,18); + packet(0x0363,clif->pFriendsListAdd,2); + packet(0x07ec,clif->pPartyInvite2,2); + packet(0x0802,clif->pStoragePassword,0); + packet(0x0861,clif->pPartyBookingRegisterReq,2,4,6); + packet(0x0867,clif->pTickSend,2); + packet(0x086c,clif->pUseSkillToPos,2,4,6,8); + packet(0x086e,clif->pDull/*,XXX*/); + packet(0x0872,clif->pUseSkillToId,2,4,6); + packet(0x0888,clif->pChangeDir,2,4); + packet(0x088b,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0894,clif->pDull/*,XXX*/); + packet(0x0895,clif->pTakeItem,2); + packet(0x08a8,clif->pItemListWindowSelected,2,4,8); + packet(0x08ad,clif->pWalkToXY,2); + packet(0x091b,clif->pSolveCharName,2); + packet(0x091c,clif->pGetCharNameRequest,2); + packet(0x091e,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x091f,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0921,clif->pSearchStoreInfoNextPage,0); + packet(0x0922,clif->pMoveFromKafra,2,4); + packet(0x092f,clif->pReqClickBuyingStore,2); + packet(0x0931,clif->pActionRequest,2,6); + packet(0x0945,clif->pHomMenu,2,4); + packet(0x0947,clif->pReqCloseBuyingStore,0); + packet(0x0950,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x0953,clif->pDropItem,2,4); + packet(0x0954,clif->pMoveToKafra,2,4); + packet(0x0960,clif->pReqTradeBuyingStore,2,4,8,12); #endif // 2012-12-05aRagexeRE, 2012-12-05bRagexeRE #if PACKETVER == 20121205 - packet(0x035f,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0360,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0361,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0815,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x0863,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0864,clif->pPartyBookingRegisterReq,2,4,6); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x086c,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x0870,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0873,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0875,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0878,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0888,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x0889,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x088b,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x089a,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x089d,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x08ad,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x091a,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x091c,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0921,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x093a,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x093e,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x093f,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0946,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x094b,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x0954,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0959,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0966,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0968,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 + packet(0x035f,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0360,clif->pWalkToXY,2); + packet(0x0361,clif->pHomMenu,2,4); + packet(0x0815,clif->pTakeItem,2); + packet(0x0863,clif->pTickSend,2); + packet(0x0864,clif->pPartyBookingRegisterReq,2,4,6); + packet(0x086c,clif->pItemListWindowSelected,2,4,8); + packet(0x0870,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0873,clif->pSearchStoreInfoNextPage,0); + packet(0x0875,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0878,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0888,clif->pStoragePassword,0); + packet(0x0889,clif->pDropItem,2,4); + packet(0x088b,clif->pDull/*,XXX*/); + packet(0x089a,clif->pFriendsListAdd,2); + packet(0x089d,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x08ad,clif->pSolveCharName,2); + packet(0x091a,clif->pReqCloseBuyingStore,0); + packet(0x091c,clif->pMoveFromKafra,2,4); + packet(0x0921,clif->pWantToConnection,2,6,10,14,18); + packet(0x093a,clif->pReqClickBuyingStore,2); + packet(0x093e,clif->pDull/*,XXX*/); + packet(0x093f,clif->pUseSkillToId,2,4,6); + packet(0x0946,clif->pUseSkillToPos,2,4,6,8); + packet(0x094b,clif->pGetCharNameRequest,2); + packet(0x0954,clif->pActionRequest,2,6); + packet(0x0959,clif->pPartyInvite2,2); + packet(0x0966,clif->pMoveToKafra,2,4); + packet(0x0968,clif->pChangeDir,2,4); #endif // 2012-12-12aRagexeRE, 2012-12-12bRagexeRE, 2012-12-12cRagexeRE #if PACKETVER == 20121212 - packet(0x0362,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0368,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0369,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0436,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0438,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0817,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x085c,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0877,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x087d,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x087f,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x0893,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0895,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x08a3,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x08a7,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x08a9,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x08aa,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x08ac,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0917,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x091a,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0920,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0932,clif->pPartyBookingRegisterReq,2,4,6); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0947,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0951,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0953,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x0957,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x095b,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0965,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x0966,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x096a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 + packet(0x0362,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0368,clif->pFriendsListAdd,2); + packet(0x0369,clif->pPartyInvite2,2); + packet(0x0436,clif->pSearchStoreInfoNextPage,0); + packet(0x0438,clif->pReqCloseBuyingStore,0); + packet(0x0817,clif->pUseSkillToPos,2,4,6,8); + packet(0x085c,clif->pActionRequest,2,6); + packet(0x0877,clif->pTickSend,2); + packet(0x087d,clif->pUseSkillToId,2,4,6); + packet(0x087f,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x0893,clif->pSolveCharName,2); + packet(0x0895,clif->pReqClickBuyingStore,2); + packet(0x08a3,clif->pWantToConnection,2,6,10,14,18); + packet(0x08a7,clif->pWalkToXY,2); + packet(0x08a9,clif->pStoragePassword,0); + packet(0x08aa,clif->pDull/*,XXX*/); + packet(0x08ac,clif->pDropItem,2,4); + packet(0x0917,clif->pMoveFromKafra,2,4); + packet(0x091a,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0920,clif->pChangeDir,2,4); + packet(0x0932,clif->pPartyBookingRegisterReq,2,4,6); + packet(0x0947,clif->pHomMenu,2,4); + packet(0x0951,clif->pDull/*,XXX*/); + packet(0x0953,clif->pTakeItem,2); + packet(0x0957,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x095b,clif->pMoveToKafra,2,4); + packet(0x0965,clif->pItemListWindowSelected,2,4,8); + packet(0x0966,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x096a,clif->pGetCharNameRequest,2); #endif // 2012-12-18aRagexeRE, 2012-12-18bRagexeRE #if PACKETVER == 20121218 - packet(0x035f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0360,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0362,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0363,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0437,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0438,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0835,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x083c,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0867,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0872,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x087a,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x087b,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0886,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0889,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x0890,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x091a,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x091c,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0935,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0946,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x0957,clif->pPartyBookingRegisterReq,2,4,6); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x096a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 + packet(0x035f,clif->pTickSend,2); + packet(0x0360,clif->pReqClickBuyingStore,2); + packet(0x0362,clif->pUseSkillToId,2,4,6); + packet(0x0363,clif->pTakeItem,2); + packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pActionRequest,2,6); + packet(0x0437,clif->pWalkToXY,2); + packet(0x0438,clif->pUseSkillToPos,2,4,6,8); + packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0835,clif->pSearchStoreInfoNextPage,0); + packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x083c,clif->pDropItem,2,4); + packet(0x0867,clif->pHomMenu,2,4); + packet(0x0872,clif->pDull/*,XXX*/); + packet(0x087a,clif->pChangeDir,2,4); + packet(0x087b,clif->pPartyInvite2,2); + packet(0x0886,clif->pMoveToKafra,2,4); + packet(0x0889,clif->pItemListWindowSelected,2,4,8); + packet(0x0890,clif->pDull/*,XXX*/); + packet(0x091a,clif->pMoveFromKafra,2,4); + packet(0x091c,clif->pWantToConnection,2,6,10,14,18); + packet(0x0935,clif->pFriendsListAdd,2); + packet(0x0946,clif->pStoragePassword,0); + packet(0x0957,clif->pPartyBookingRegisterReq,2,4,6); + packet(0x096a,clif->pGetCharNameRequest,2); #endif // 2012-12-27aRagexeRE #if PACKETVER == 20121227 - packet(0x0202,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x02c4,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0361,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x0368,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x0437,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0860,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0870,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x0872,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x087a,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0886,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0888,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x088e,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0890,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x0894,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0896,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x08a6,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x08aa,clif->pPartyBookingRegisterReq,2,4,6); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0917,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x091f,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0920,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0932,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0933,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0940,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0943,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0947,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x0953,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0958,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x095d,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0962,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 + packet(0x0202,clif->pHomMenu,2,4); + packet(0x02c4,clif->pWantToConnection,2,6,10,14,18); + packet(0x0361,clif->pStoragePassword,0); + packet(0x0368,clif->pItemListWindowSelected,2,4,8); + packet(0x0437,clif->pDropItem,2,4); + packet(0x0860,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0870,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x0872,clif->pReqClickBuyingStore,2); + packet(0x087a,clif->pActionRequest,2,6); + packet(0x0886,clif->pMoveFromKafra,2,4); + packet(0x0888,clif->pTickSend,2); + packet(0x088e,clif->pChangeDir,2,4); + packet(0x0890,clif->pUseSkillToPos,2,4,6,8); + packet(0x0894,clif->pFriendsListAdd,2); + packet(0x0896,clif->pSolveCharName,2); + packet(0x08a6,clif->pTakeItem,2); + packet(0x08aa,clif->pPartyBookingRegisterReq,2,4,6); + packet(0x0917,clif->pReqCloseBuyingStore,0); + packet(0x091f,clif->pDull/*,XXX*/); + packet(0x0920,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0932,clif->pWalkToXY,2); + packet(0x0933,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0940,clif->pUseSkillToId,2,4,6); + packet(0x0943,clif->pSearchStoreInfoNextPage,0); + packet(0x0947,clif->pGetCharNameRequest,2); + packet(0x0953,clif->pDull/*,XXX*/); + packet(0x0958,clif->pMoveToKafra,2,4); + packet(0x095d,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0962,clif->pPartyInvite2,2); #endif // 2013-01-03aRagexeRE #if PACKETVER == 20130103 - packet(0x0202,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x022d,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x023b,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0281,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x035f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0360,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0361,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0362,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0363,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0364,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0365,clif->pPartyBookingRegisterReq,2,4,6); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0436,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x0437,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0438,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x07e4,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x07ec,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0802,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0835,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x083c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0940,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x096a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 + packet(0x0202,clif->pChangeDir,2,4); + packet(0x022d,clif->pDull/*,XXX*/); + packet(0x023b,clif->pFriendsListAdd,2); + packet(0x0281,clif->pItemListWindowSelected,2,4,8); + packet(0x035f,clif->pTickSend,2); + packet(0x0360,clif->pReqClickBuyingStore,2); + packet(0x0361,clif->pHomMenu,2,4); + packet(0x0362,clif->pDropItem,2,4); + packet(0x0363,clif->pDull/*,XXX*/); + packet(0x0364,clif->pMoveFromKafra,2,4); + packet(0x0365,clif->pPartyBookingRegisterReq,2,4,6); + packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pActionRequest,2,6); + packet(0x0436,clif->pStoragePassword,0); + packet(0x0437,clif->pWalkToXY,2); + packet(0x0438,clif->pUseSkillToPos,2,4,6,8); + packet(0x07e4,clif->pTakeItem,2); + packet(0x07ec,clif->pMoveToKafra,2,4); + packet(0x0802,clif->pPartyInvite2,2); + packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0835,clif->pSearchStoreInfoNextPage,0); + packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x083c,clif->pUseSkillToId,2,4,6); + packet(0x0940,clif->pWantToConnection,2,6,10,14,18); + packet(0x096a,clif->pGetCharNameRequest,2); #endif // 2013-01-09aRagexeRE #if PACKETVER == 20130109 - packet(0x0281,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x0365,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0368,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x0437,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0838,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0866,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0886,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0888,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x088a,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x088e,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x0891,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0892,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x08a2,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x08aa,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x08ac,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0918,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x091b,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0922,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0927,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0928,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0930,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0931,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x0938,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x093e,clif->pPartyBookingRegisterReq,2,4,6); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x094f,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0950,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x0951,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0955,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x095e,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 + packet(0x0281,clif->pGetCharNameRequest,2); + packet(0x0365,clif->pDull/*,XXX*/); + packet(0x0368,clif->pUseSkillToPos,2,4,6,8); + packet(0x0437,clif->pActionRequest,2,6); + packet(0x0838,clif->pMoveFromKafra,2,4); + packet(0x0866,clif->pWalkToXY,2); + packet(0x0886,clif->pMoveToKafra,2,4); + packet(0x0888,clif->pChangeDir,2,4); + packet(0x088a,clif->pWantToConnection,2,6,10,14,18); + packet(0x088e,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x0891,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0892,clif->pUseSkillToId,2,4,6); + packet(0x08a2,clif->pSolveCharName,2); + packet(0x08aa,clif->pDull/*,XXX*/); + packet(0x08ac,clif->pSearchStoreInfoNextPage,0); + packet(0x0918,clif->pFriendsListAdd,2); + packet(0x091b,clif->pDropItem,2,4); + packet(0x0922,clif->pReqClickBuyingStore,2); + packet(0x0927,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0928,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0930,clif->pHomMenu,2,4); + packet(0x0931,clif->pItemListWindowSelected,2,4,8); + packet(0x0938,clif->pPartyInvite2,2); + packet(0x093e,clif->pPartyBookingRegisterReq,2,4,6); + packet(0x094f,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0950,clif->pStoragePassword,0); + packet(0x0951,clif->pTickSend,2); + packet(0x0955,clif->pReqCloseBuyingStore,0); + packet(0x095e,clif->pTakeItem,2); #endif // 2013-01-15aRagexeRE, 2013-01-16aRagexeRE #if PACKETVER == 20130115 || \ PACKETVER == 20130116 - packet(0x0361,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x07ec,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0817,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x085e,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0861,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0863,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x086b,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0870,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0871,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0877,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0879,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x087c,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0888,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x088b,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0894,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0895,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x08a0,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x08a4,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x08ac,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0918,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0928,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x092d,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x092e,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0939,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x0946,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x094b,clif->pPartyBookingRegisterReq,2,4,6); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x094c,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x094e,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x095a,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 + packet(0x0361,clif->pDull/*,XXX*/); + packet(0x07ec,clif->pDull/*,XXX*/); + packet(0x0817,clif->pWalkToXY,2); + packet(0x085e,clif->pReqCloseBuyingStore,0); + packet(0x0861,clif->pMoveFromKafra,2,4); + packet(0x0863,clif->pActionRequest,2,6); + packet(0x086b,clif->pSearchStoreInfoNextPage,0); + packet(0x0870,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0871,clif->pFriendsListAdd,2); + packet(0x0877,clif->pReqClickBuyingStore,2); + packet(0x0879,clif->pChangeDir,2,4); + packet(0x087c,clif->pSolveCharName,2); + packet(0x0888,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x088b,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0894,clif->pHomMenu,2,4); + packet(0x0895,clif->pTickSend,2); + packet(0x08a0,clif->pPartyInvite2,2); + packet(0x08a4,clif->pUseSkillToPos,2,4,6,8); + packet(0x08ac,clif->pMoveToKafra,2,4); + packet(0x0918,clif->pUseSkillToId,2,4,6); + packet(0x0928,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x092d,clif->pWantToConnection,2,6,10,14,18); + packet(0x092e,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0939,clif->pGetCharNameRequest,2); + packet(0x0946,clif->pItemListWindowSelected,2,4,8); + packet(0x094b,clif->pPartyBookingRegisterReq,2,4,6); + packet(0x094c,clif->pTakeItem,2); + packet(0x094e,clif->pDropItem,2,4); + packet(0x095a,clif->pStoragePassword,0); #endif // 2013-01-21aRagexeRE #if PACKETVER == 20130121 - packet(0x023b,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x035f,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0360,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pPartyBookingRegisterReq,2,4,6); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0437,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0438,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x07ec,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0802,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0815,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0817,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x0835,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x083c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x085a,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x085d,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x086c,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0874,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0884,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0893,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x091f,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x0940,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x094f,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0956,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x095b,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0963,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0969,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x096a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 + packet(0x023b,clif->pReqCloseBuyingStore,0); + packet(0x035f,clif->pDull/*,XXX*/); + packet(0x0360,clif->pReqClickBuyingStore,2); + packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pPartyBookingRegisterReq,2,4,6); + packet(0x0437,clif->pWalkToXY,2); + packet(0x0438,clif->pUseSkillToPos,2,4,6,8); + packet(0x07ec,clif->pTickSend,2); + packet(0x0802,clif->pActionRequest,2,6); + packet(0x0815,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0817,clif->pStoragePassword,0); + packet(0x0835,clif->pSearchStoreInfoNextPage,0); + packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x083c,clif->pUseSkillToId,2,4,6); + packet(0x085a,clif->pDull/*,XXX*/); + packet(0x085d,clif->pHomMenu,2,4); + packet(0x086c,clif->pWantToConnection,2,6,10,14,18); + packet(0x0874,clif->pMoveToKafra,2,4); + packet(0x0884,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0893,clif->pFriendsListAdd,2); + packet(0x091f,clif->pTakeItem,2); + packet(0x0940,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x094f,clif->pDropItem,2,4); + packet(0x0956,clif->pChangeDir,2,4); + packet(0x095b,clif->pPartyInvite2,2); + packet(0x0963,clif->pMoveFromKafra,2,4); + packet(0x0969,clif->pItemListWindowSelected,2,4,8); + packet(0x096a,clif->pGetCharNameRequest,2); #endif // 2013-01-30aRagexeRE #if PACKETVER == 20130130 - packet(0x035f,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0362,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0367,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x0368,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0437,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x085f,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0862,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x086b,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x087d,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x087f,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0885,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0886,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x0887,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0889,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x089a,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x089f,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x08a0,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x08a4,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x08a9,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x091a,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0920,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0924,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x093a,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x093d,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x0956,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0957,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x095b,clif->pPartyBookingRegisterReq,2,4,6); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x095c,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x095d,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 + packet(0x035f,clif->pMoveToKafra,2,4); + packet(0x0362,clif->pHomMenu,2,4); + packet(0x0367,clif->pGetCharNameRequest,2); + packet(0x0368,clif->pChangeDir,2,4); + packet(0x0437,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x085f,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0862,clif->pReqCloseBuyingStore,0); + packet(0x086b,clif->pDull/*,XXX*/); + packet(0x087d,clif->pWalkToXY,2); + packet(0x087f,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0885,clif->pActionRequest,2,6); + packet(0x0886,clif->pTakeItem,2); + packet(0x0887,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0889,clif->pTickSend,2); + packet(0x089a,clif->pPartyInvite2,2); + packet(0x089f,clif->pDropItem,2,4); + packet(0x08a0,clif->pUseSkillToPos,2,4,6,8); + packet(0x08a4,clif->pUseSkillToId,2,4,6); + packet(0x08a9,clif->pDull/*,XXX*/); + packet(0x091a,clif->pSolveCharName,2); + packet(0x0920,clif->pFriendsListAdd,2); + packet(0x0924,clif->pReqClickBuyingStore,2); + packet(0x093a,clif->pStoragePassword,0); + packet(0x093d,clif->pItemListWindowSelected,2,4,8); + packet(0x0956,clif->pWantToConnection,2,6,10,14,18); + packet(0x0957,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x095b,clif->pPartyBookingRegisterReq,2,4,6); + packet(0x095c,clif->pMoveFromKafra,2,4); + packet(0x095d,clif->pSearchStoreInfoNextPage,0); #endif // 2013-02-06aRagexeRE #if PACKETVER == 20130206 - packet(0x035f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0360,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0362,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0437,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0438,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x07e4,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x0811,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0835,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x083c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x085d,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0876,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0883,clif->pPartyBookingRegisterReq,2,4,6); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0885,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0899,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x08a0,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x08ac,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0920,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0925,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x093a,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x093c,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0950,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x096a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 + packet(0x035f,clif->pTickSend,2); + packet(0x0360,clif->pReqClickBuyingStore,2); + packet(0x0362,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pActionRequest,2,6); + packet(0x0437,clif->pWalkToXY,2); + packet(0x0438,clif->pUseSkillToPos,2,4,6,8); + packet(0x07e4,clif->pStoragePassword,0); + packet(0x0811,clif->pTakeItem,2); + packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0835,clif->pSearchStoreInfoNextPage,0); + packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x083c,clif->pUseSkillToId,2,4,6); + packet(0x085d,clif->pMoveFromKafra,2,4); + packet(0x0876,clif->pDull/*,XXX*/); + packet(0x0883,clif->pPartyBookingRegisterReq,2,4,6); + packet(0x0885,clif->pMoveToKafra,2,4); + packet(0x0899,clif->pItemListWindowSelected,2,4,8); + packet(0x08a0,clif->pChangeDir,2,4); + packet(0x08ac,clif->pWantToConnection,2,6,10,14,18); + packet(0x0920,clif->pPartyInvite2,2); + packet(0x0925,clif->pDropItem,2,4); + packet(0x093a,clif->pHomMenu,2,4); + packet(0x093c,clif->pFriendsListAdd,2); + packet(0x0950,clif->pDull/*,XXX*/); + packet(0x096a,clif->pGetCharNameRequest,2); #endif // 2013-02-15aRagexeRE #if PACKETVER == 20130215 - packet(0x023b,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x035f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0360,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x0366,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0436,clif->pPartyBookingRegisterReq,2,4,6); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0437,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0438,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x0802,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0835,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x083c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0869,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x086f,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0886,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x089e,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x089f,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x08ad,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x0923,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0941,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0956,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x095d,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0962,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x096a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 + packet(0x023b,clif->pReqClickBuyingStore,2); + packet(0x035f,clif->pTickSend,2); + packet(0x0360,clif->pStoragePassword,0); + packet(0x0366,clif->pWantToConnection,2,6,10,14,18); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pActionRequest,2,6); + packet(0x0436,clif->pPartyBookingRegisterReq,2,4,6); + packet(0x0437,clif->pWalkToXY,2); + packet(0x0438,clif->pUseSkillToPos,2,4,6,8); + packet(0x0802,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0835,clif->pSearchStoreInfoNextPage,0); + packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x083c,clif->pUseSkillToId,2,4,6); + packet(0x0869,clif->pMoveToKafra,2,4); + packet(0x086f,clif->pDull/*,XXX*/); + packet(0x0886,clif->pDropItem,2,4); + packet(0x089e,clif->pItemListWindowSelected,2,4,8); + packet(0x089f,clif->pDull/*,XXX*/); + packet(0x08ad,clif->pTakeItem,2); + packet(0x0923,clif->pHomMenu,2,4); + packet(0x0941,clif->pFriendsListAdd,2); + packet(0x0956,clif->pPartyInvite2,2); + packet(0x095d,clif->pChangeDir,2,4); + packet(0x0962,clif->pMoveFromKafra,2,4); + packet(0x096a,clif->pGetCharNameRequest,2); #endif // 2013-02-20bRagexeRE #if PACKETVER == 20130220 - packet(0x0202,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x022d,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x023b,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0281,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x035f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0360,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0361,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0362,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0363,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0364,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0365,clif->pPartyBookingRegisterReq,2,4,6); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0436,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0437,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0438,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x07e4,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x07ec,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0802,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0835,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x083c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x094b,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x096a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 + packet(0x0202,clif->pChangeDir,2,4); + packet(0x022d,clif->pWantToConnection,2,6,10,14,18); + packet(0x023b,clif->pFriendsListAdd,2); + packet(0x0281,clif->pItemListWindowSelected,2,4,8); + packet(0x035f,clif->pTickSend,2); + packet(0x0360,clif->pReqClickBuyingStore,2); + packet(0x0361,clif->pHomMenu,2,4); + packet(0x0362,clif->pDropItem,2,4); + packet(0x0363,clif->pDull/*,XXX*/); + packet(0x0364,clif->pMoveFromKafra,2,4); + packet(0x0365,clif->pPartyBookingRegisterReq,2,4,6); + packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pActionRequest,2,6); + packet(0x0436,clif->pDull/*,XXX*/); + packet(0x0437,clif->pWalkToXY,2); + packet(0x0438,clif->pUseSkillToPos,2,4,6,8); + packet(0x07e4,clif->pTakeItem,2); + packet(0x07ec,clif->pMoveToKafra,2,4); + packet(0x0802,clif->pPartyInvite2,2); + packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0835,clif->pSearchStoreInfoNextPage,0); + packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x083c,clif->pUseSkillToId,2,4,6); + packet(0x094b,clif->pStoragePassword,0); + packet(0x096a,clif->pGetCharNameRequest,2); #endif // 2013-02-27aRagexeRE #if PACKETVER == 20130227 - packet(0x023b,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x035f,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0360,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0437,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0811,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0815,clif->pPartyBookingRegisterReq,2,4,6); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0817,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x085a,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0863,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0867,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x0869,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x086e,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x087b,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0893,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0898,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x08a0,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x08a1,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x091b,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x091f,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0924,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x092b,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x092f,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0936,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x0946,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0951,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x095b,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x095e,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x095f,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0967,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 + packet(0x023b,clif->pFriendsListAdd,2); + packet(0x035f,clif->pHomMenu,2,4); + packet(0x0360,clif->pWantToConnection,2,6,10,14,18); + packet(0x0437,clif->pWalkToXY,2); + packet(0x0811,clif->pTickSend,2); + packet(0x0815,clif->pPartyBookingRegisterReq,2,4,6); + packet(0x0817,clif->pReqClickBuyingStore,2); + packet(0x085a,clif->pUseSkillToId,2,4,6); + packet(0x0863,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0867,clif->pTakeItem,2); + packet(0x0869,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x086e,clif->pDull/*,XXX*/); + packet(0x087b,clif->pPartyInvite2,2); + packet(0x0893,clif->pMoveFromKafra,2,4); + packet(0x0898,clif->pChangeDir,2,4); + packet(0x08a0,clif->pReqCloseBuyingStore,0); + packet(0x08a1,clif->pDull/*,XXX*/); + packet(0x091b,clif->pGetCharNameRequest,2); + packet(0x091f,clif->pDropItem,2,4); + packet(0x0924,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x092b,clif->pItemListWindowSelected,2,4,8); + packet(0x092f,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0936,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x0946,clif->pMoveToKafra,2,4); + packet(0x0951,clif->pUseSkillToPos,2,4,6,8); + packet(0x095b,clif->pSolveCharName,2); + packet(0x095e,clif->pStoragePassword,0); + packet(0x095f,clif->pSearchStoreInfoNextPage,0); + packet(0x0967,clif->pActionRequest,2,6); #endif // 2013-03-06aRagexeRE, 2013-03-06bRagexeRE #if PACKETVER == 20130306 - packet(0x022d,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x0367,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0368,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0802,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x0817,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x085b,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x085c,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0860,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x086d,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0881,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0890,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0898,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x089f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x08a4,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x08ac,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0917,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x091e,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0926,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x0934,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0936,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0943,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0944,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0945,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0946,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x094a,clif->pPartyBookingRegisterReq,2,4,6); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x094e,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x0951,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0960,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0962,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 + packet(0x022d,clif->pItemListWindowSelected,2,4,8); + packet(0x0367,clif->pSolveCharName,2); + packet(0x0368,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0802,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x0817,clif->pHomMenu,2,4); + packet(0x085b,clif->pWalkToXY,2); + packet(0x085c,clif->pReqClickBuyingStore,2); + packet(0x0860,clif->pChangeDir,2,4); + packet(0x086d,clif->pWantToConnection,2,6,10,14,18); + packet(0x0881,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0890,clif->pDull/*,XXX*/); + packet(0x0898,clif->pActionRequest,2,6); + packet(0x089f,clif->pTickSend,2); + packet(0x08a4,clif->pUseSkillToPos,2,4,6,8); + packet(0x08ac,clif->pDull/*,XXX*/); + packet(0x0917,clif->pMoveFromKafra,2,4); + packet(0x091e,clif->pMoveToKafra,2,4); + packet(0x0926,clif->pStoragePassword,0); + packet(0x0934,clif->pFriendsListAdd,2); + packet(0x0936,clif->pSearchStoreInfoNextPage,0); + packet(0x0943,clif->pUseSkillToId,2,4,6); + packet(0x0944,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0945,clif->pReqCloseBuyingStore,0); + packet(0x0946,clif->pPartyInvite2,2); + packet(0x094a,clif->pPartyBookingRegisterReq,2,4,6); + packet(0x094e,clif->pGetCharNameRequest,2); + packet(0x0951,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0960,clif->pDropItem,2,4); + packet(0x0962,clif->pTakeItem,2); #endif // 2013-03-13aRagexeRE, 2013-03-13bRagexeRE, 2013-03-13cRagexeRE #if PACKETVER == 20130313 - packet(0x0202,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0281,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x035f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0360,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0362,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0363,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0364,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0365,clif->pPartyBookingRegisterReq,2,4,6); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0436,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0437,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0438,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x07e4,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x07ec,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0802,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0835,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x083c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0887,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0920,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x092d,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0947,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x096a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 + packet(0x0202,clif->pPartyInvite2,2); + packet(0x0281,clif->pItemListWindowSelected,2,4,8); + packet(0x035f,clif->pTickSend,2); + packet(0x0360,clif->pReqClickBuyingStore,2); + packet(0x0362,clif->pDropItem,2,4); + packet(0x0363,clif->pDull/*,XXX*/); + packet(0x0364,clif->pMoveFromKafra,2,4); + packet(0x0365,clif->pPartyBookingRegisterReq,2,4,6); + packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pActionRequest,2,6); + packet(0x0436,clif->pDull/*,XXX*/); + packet(0x0437,clif->pWalkToXY,2); + packet(0x0438,clif->pUseSkillToPos,2,4,6,8); + packet(0x07e4,clif->pTakeItem,2); + packet(0x07ec,clif->pMoveToKafra,2,4); + packet(0x0802,clif->pFriendsListAdd,2); + packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0835,clif->pSearchStoreInfoNextPage,0); + packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x083c,clif->pUseSkillToId,2,4,6); + packet(0x0887,clif->pChangeDir,2,4); + packet(0x0920,clif->pStoragePassword,0); + packet(0x092d,clif->pHomMenu,2,4); + packet(0x0947,clif->pWantToConnection,2,6,10,14,18); + packet(0x096a,clif->pGetCharNameRequest,2); #endif // 2013-03-20bRagexeRE, 2013-03-20cRagexeRE #if PACKETVER == 20130320 - packet(0x035f,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0363,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0365,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x0438,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x085a,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x085d,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0868,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x086d,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x086f,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0874,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0881,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0886,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0888,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x088e,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0890,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0897,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0898,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x089b,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x08ac,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0922,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x092e,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0933,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x0938,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x093f,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0947,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x094c,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x094e,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0959,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x095a,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 + packet(0x035f,clif->pReqClickBuyingStore,2); + packet(0x0363,clif->pTickSend,2); + packet(0x0365,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x0438,clif->pDropItem,2,4); + packet(0x085a,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x085d,clif->pPartyBookingRegisterReq,2,4); + packet(0x0868,clif->pItemListWindowSelected,2,4,8); + packet(0x086d,clif->pPartyInvite2,2); + packet(0x086f,clif->pFriendsListAdd,2); + packet(0x0874,clif->pMoveFromKafra,2,4); + packet(0x0881,clif->pWalkToXY,2); + packet(0x0886,clif->pReqCloseBuyingStore,0); + packet(0x0888,clif->pWantToConnection,2,6,10,14,18); + packet(0x088e,clif->pActionRequest,2,6); + packet(0x0890,clif->pDull/*,XXX*/); + packet(0x0897,clif->pChangeDir,2,4); + packet(0x0898,clif->pGetCharNameRequest,2); + packet(0x089b,clif->pUseSkillToId,2,4,6); + packet(0x08ac,clif->pMoveToKafra,2,4); + packet(0x0922,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x092e,clif->pSearchStoreInfoNextPage,0); + packet(0x0933,clif->pTakeItem,2); + packet(0x0938,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x093f,clif->pHomMenu,2,4); + packet(0x0947,clif->pStoragePassword,0); + packet(0x094c,clif->pSolveCharName,2); + packet(0x094e,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0959,clif->pUseSkillToPos,2,4,6,8); + packet(0x095a,clif->pDull/*,XXX*/); #endif // 2013-03-27bRagexeRE #if PACKETVER == 20130327 - packet(0x02c4,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x07ec,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0835,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x086d,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0873,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0878,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x087a,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0885,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x088f,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0891,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0893,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0899,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x08a1,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x08a2,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x091f,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x092b,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x092d,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x092e,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x092f,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0933,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0938,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0939,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x094a,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x094b,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x094f,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0955,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0960,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x0961,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0967,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 + packet(0x02c4,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x07ec,clif->pReqClickBuyingStore,2); + packet(0x0835,clif->pHomMenu,2,4); + packet(0x086d,clif->pPartyBookingRegisterReq,2,4); + packet(0x0873,clif->pWantToConnection,2,6,10,14,18); + packet(0x0878,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x087a,clif->pSearchStoreInfoNextPage,0); + packet(0x0885,clif->pDropItem,2,4); + packet(0x088f,clif->pUseSkillToId,2,4,6); + packet(0x0891,clif->pMoveToKafra,2,4); + packet(0x0893,clif->pReqCloseBuyingStore,0); + packet(0x0899,clif->pTakeItem,2); + packet(0x08a1,clif->pGetCharNameRequest,2); + packet(0x08a2,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x091f,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x092b,clif->pWalkToXY,2); + packet(0x092d,clif->pPartyInvite2,2); + packet(0x092e,clif->pDull/*,XXX*/); + packet(0x092f,clif->pDull/*,XXX*/); + packet(0x0933,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0938,clif->pMoveFromKafra,2,4); + packet(0x0939,clif->pTickSend,2); + packet(0x094a,clif->pChangeDir,2,4); + packet(0x094b,clif->pStoragePassword,0); + packet(0x094f,clif->pFriendsListAdd,2); + packet(0x0955,clif->pActionRequest,2,6); + packet(0x0960,clif->pUseSkillToPos,2,4,6,8); + packet(0x0961,clif->pSolveCharName,2); + packet(0x0967,clif->pItemListWindowSelected,2,4,8); #endif // 2013-04-03aRagexeRE #if PACKETVER == 20130403 - packet(0x023b,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0281,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x035f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0360,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x0362,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0363,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0364,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0365,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0437,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0438,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x07e4,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x07ec,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0802,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0835,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x083c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0884,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x08a5,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0926,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0942,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0950,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x096a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 + packet(0x023b,clif->pReqClickBuyingStore,2); + packet(0x0281,clif->pItemListWindowSelected,2,4,8); + packet(0x035f,clif->pTickSend,2); + packet(0x0360,clif->pStoragePassword,0); + packet(0x0362,clif->pDropItem,2,4); + packet(0x0363,clif->pDull/*,XXX*/); + packet(0x0364,clif->pMoveFromKafra,2,4); + packet(0x0365,clif->pPartyBookingRegisterReq,2,4); + packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pActionRequest,2,6); + packet(0x0437,clif->pWalkToXY,2); + packet(0x0438,clif->pUseSkillToPos,2,4,6,8); + packet(0x07e4,clif->pTakeItem,2); + packet(0x07ec,clif->pMoveToKafra,2,4); + packet(0x0802,clif->pPartyInvite2,2); + packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0835,clif->pSearchStoreInfoNextPage,0); + packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x083c,clif->pUseSkillToId,2,4,6); + packet(0x0884,clif->pWantToConnection,2,6,10,14,18); + packet(0x08a5,clif->pDull/*,XXX*/); + packet(0x0926,clif->pHomMenu,2,4); + packet(0x0942,clif->pChangeDir,2,4); + packet(0x0950,clif->pFriendsListAdd,2); + packet(0x096a,clif->pGetCharNameRequest,2); #endif // 2013-04-10aRagexeRE #if PACKETVER == 20130410 - packet(0x0367,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0437,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x0860,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0865,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x086c,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0879,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x087c,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x087d,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x0881,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x088c,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x088d,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0890,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x0891,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x089c,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x089e,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x08a0,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x08a4,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x08a7,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0917,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x091d,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0933,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0939,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x093d,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0944,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0945,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0955,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x0960,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0967,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x096a,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 + packet(0x0367,clif->pReqClickBuyingStore,2); + packet(0x0437,clif->pTakeItem,2); + packet(0x0860,clif->pWantToConnection,2,6,10,14,18); + packet(0x0865,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x086c,clif->pPartyBookingRegisterReq,2,4); + packet(0x0879,clif->pMoveToKafra,2,4); + packet(0x087c,clif->pWalkToXY,2); + packet(0x087d,clif->pGetCharNameRequest,2); + packet(0x0881,clif->pReqCloseBuyingStore,0); + packet(0x088c,clif->pStoragePassword,0); + packet(0x088d,clif->pHomMenu,2,4); + packet(0x0890,clif->pItemListWindowSelected,2,4,8); + packet(0x0891,clif->pDull/*,XXX*/); + packet(0x089c,clif->pSolveCharName,2); + packet(0x089e,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x08a0,clif->pTickSend,2); + packet(0x08a4,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x08a7,clif->pSearchStoreInfoNextPage,0); + packet(0x0917,clif->pPartyInvite2,2); + packet(0x091d,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0933,clif->pUseSkillToId,2,4,6); + packet(0x0939,clif->pActionRequest,2,6); + packet(0x093d,clif->pMoveFromKafra,2,4); + packet(0x0944,clif->pDull/*,XXX*/); + packet(0x0945,clif->pChangeDir,2,4); + packet(0x0955,clif->pUseSkillToPos,2,4,6,8); + packet(0x0960,clif->pFriendsListAdd,2); + packet(0x0967,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x096a,clif->pDropItem,2,4); #endif // 2013-04-17aRagexeRE #if PACKETVER == 20130417 - packet(0x0202,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0281,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x035f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0360,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0362,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0363,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0364,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0365,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0437,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0438,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x07e4,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x07ec,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0802,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0811,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0835,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x083c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x086b,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0875,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x0929,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0962,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0969,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x096a,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 + packet(0x0202,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0281,clif->pItemListWindowSelected,2,4,8); + packet(0x035f,clif->pTickSend,2); + packet(0x0360,clif->pReqClickBuyingStore,2); + packet(0x0362,clif->pDropItem,2,4); + packet(0x0363,clif->pDull/*,XXX*/); + packet(0x0364,clif->pMoveFromKafra,2,4); + packet(0x0365,clif->pPartyBookingRegisterReq,2,4); + packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pActionRequest,2,6); + packet(0x0437,clif->pWalkToXY,2); + packet(0x0438,clif->pUseSkillToPos,2,4,6,8); + packet(0x07e4,clif->pTakeItem,2); + packet(0x07ec,clif->pMoveToKafra,2,4); + packet(0x0802,clif->pPartyInvite2,2); + packet(0x0811,clif->pFriendsListAdd,2); + packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0835,clif->pSearchStoreInfoNextPage,0); + packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x083c,clif->pUseSkillToId,2,4,6); + packet(0x086b,clif->pWantToConnection,2,6,10,14,18); + packet(0x0875,clif->pStoragePassword,0); + packet(0x0929,clif->pChangeDir,2,4); + packet(0x0962,clif->pHomMenu,2,4); + packet(0x0969,clif->pGetCharNameRequest,2); + packet(0x096a,clif->pDull/*,XXX*/); #endif // 2013-04-24aRagexeRE #if PACKETVER == 20130424 - packet(0x0202,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x022d,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x023b,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0281,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x035f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0360,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0361,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0362,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0363,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0364,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0365,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0436,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0437,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0438,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x07e4,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x07ec,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0802,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0835,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x083c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0969,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x096a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 + packet(0x0202,clif->pChangeDir,2,4); + packet(0x022d,clif->pWantToConnection,2,6,10,14,18); + packet(0x023b,clif->pFriendsListAdd,2); + packet(0x0281,clif->pItemListWindowSelected,2,4,8); + packet(0x035f,clif->pTickSend,2); + packet(0x0360,clif->pReqClickBuyingStore,2); + packet(0x0361,clif->pHomMenu,2,4); + packet(0x0362,clif->pDropItem,2,4); + packet(0x0363,clif->pDull/*,XXX*/); + packet(0x0364,clif->pMoveFromKafra,2,4); + packet(0x0365,clif->pPartyBookingRegisterReq,2,4); + packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pActionRequest,2,6); + packet(0x0436,clif->pDull/*,XXX*/); + packet(0x0437,clif->pWalkToXY,2); + packet(0x0438,clif->pUseSkillToPos,2,4,6,8); + packet(0x07e4,clif->pTakeItem,2); + packet(0x07ec,clif->pMoveToKafra,2,4); + packet(0x0802,clif->pPartyInvite2,2); + packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0835,clif->pSearchStoreInfoNextPage,0); + packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x083c,clif->pUseSkillToId,2,4,6); + packet(0x0969,clif->pStoragePassword,0); + packet(0x096a,clif->pGetCharNameRequest,2); #endif // 2013-05-02aRagexeRE #if PACKETVER == 20130502 - packet(0x035f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0360,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0437,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0438,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x07e4,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x07ec,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0835,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x083c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x085a,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0867,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0870,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0874,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x0875,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0877,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x087c,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0888,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x0889,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x08a1,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x08a3,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0961,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0967,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 + packet(0x035f,clif->pTickSend,2); + packet(0x0360,clif->pReqClickBuyingStore,2); + packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pActionRequest,2,6); + packet(0x0437,clif->pWalkToXY,2); + packet(0x0438,clif->pUseSkillToPos,2,4,6,8); + packet(0x07e4,clif->pStoragePassword,0); + packet(0x07ec,clif->pChangeDir,2,4); + packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0835,clif->pSearchStoreInfoNextPage,0); + packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x083c,clif->pUseSkillToId,2,4,6); + packet(0x085a,clif->pDull/*,XXX*/); + packet(0x0867,clif->pHomMenu,2,4); + packet(0x0870,clif->pPartyInvite2,2); + packet(0x0874,clif->pItemListWindowSelected,2,4,8); + packet(0x0875,clif->pFriendsListAdd,2); + packet(0x0877,clif->pMoveToKafra,2,4); + packet(0x087c,clif->pWantToConnection,2,6,10,14,18); + packet(0x0888,clif->pGetCharNameRequest,2); + packet(0x0889,clif->pDull/*,XXX*/); + packet(0x08a1,clif->pPartyBookingRegisterReq,2,4); + packet(0x08a3,clif->pDropItem,2,4); + packet(0x0961,clif->pMoveFromKafra,2,4); + packet(0x0967,clif->pTakeItem,2); #endif // 2013-05-08bRagexeRE #if PACKETVER == 20130508 - packet(0x022d,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x035f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0360,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0436,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0437,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0438,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0835,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x083c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0868,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x0878,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x088b,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x0893,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0895,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0897,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x08ab,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x092d,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0944,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x094d,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0957,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x095c,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x096a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 + packet(0x022d,clif->pMoveToKafra,2,4); + packet(0x035f,clif->pTickSend,2); + packet(0x0360,clif->pReqClickBuyingStore,2); + packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pActionRequest,2,6); + packet(0x0436,clif->pFriendsListAdd,2); + packet(0x0437,clif->pWalkToXY,2); + packet(0x0438,clif->pUseSkillToPos,2,4,6,8); + packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0835,clif->pSearchStoreInfoNextPage,0); + packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x083c,clif->pUseSkillToId,2,4,6); + packet(0x0868,clif->pStoragePassword,0); + packet(0x0878,clif->pItemListWindowSelected,2,4,8); + packet(0x088b,clif->pTakeItem,2); + packet(0x0893,clif->pPartyBookingRegisterReq,2,4); + packet(0x0895,clif->pWantToConnection,2,6,10,14,18); + packet(0x0897,clif->pDull/*,XXX*/); + packet(0x08ab,clif->pPartyInvite2,2); + packet(0x092d,clif->pDropItem,2,4); + packet(0x0944,clif->pDull/*,XXX*/); + packet(0x094d,clif->pHomMenu,2,4); + packet(0x0957,clif->pMoveFromKafra,2,4); + packet(0x095c,clif->pChangeDir,2,4); + packet(0x096a,clif->pGetCharNameRequest,2); #endif // 2013-05-15aRagexeRE #if PACKETVER == 20130515 - packet(0x035f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0360,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0362,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0437,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0438,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0835,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x083c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0862,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0887,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x08a1,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x08aa,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x08ac,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x092d,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0931,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x093e,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x0943,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0944,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0947,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0962,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0963,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x096a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 + packet(0x035f,clif->pTickSend,2); + packet(0x0360,clif->pReqClickBuyingStore,2); + packet(0x0362,clif->pChangeDir,2,4); + packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pActionRequest,2,6); + packet(0x0437,clif->pWalkToXY,2); + packet(0x0438,clif->pUseSkillToPos,2,4,6,8); + packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0835,clif->pSearchStoreInfoNextPage,0); + packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x083c,clif->pUseSkillToId,2,4,6); + packet(0x0862,clif->pDull/*,XXX*/); + packet(0x0887,clif->pMoveToKafra,2,4); + packet(0x08a1,clif->pTakeItem,2); + packet(0x08aa,clif->pDull/*,XXX*/); + packet(0x08ac,clif->pMoveFromKafra,2,4); + packet(0x092d,clif->pPartyBookingRegisterReq,2,4); + packet(0x0931,clif->pHomMenu,2,4); + packet(0x093e,clif->pStoragePassword,0); + packet(0x0943,clif->pWantToConnection,2,6,10,14,18); + packet(0x0944,clif->pDropItem,2,4); + packet(0x0947,clif->pPartyInvite2,2); + packet(0x0962,clif->pFriendsListAdd,2); + packet(0x0963,clif->pItemListWindowSelected,2,4,8); + packet(0x096a,clif->pGetCharNameRequest,2); #endif // 2013-05-22aRagexeRE #if PACKETVER == 20130522 - packet(0x0360,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0362,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0368,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0369,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x07ec,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0811,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x086a,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x086e,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0874,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x087e,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x088e,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x089b,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x089c,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x08a2,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x08a3,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x08a6,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x08a9,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x08aa,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x08ac,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0925,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0926,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x093e,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x0950,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0952,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x095b,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x095c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x095e,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x0964,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0965,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 + packet(0x0360,clif->pWalkToXY,2); + packet(0x0362,clif->pFriendsListAdd,2); + packet(0x0368,clif->pReqClickBuyingStore,2); + packet(0x0369,clif->pSolveCharName,2); + packet(0x07ec,clif->pTickSend,2); + packet(0x0811,clif->pUseSkillToPos,2,4,6,8); + packet(0x086a,clif->pItemListWindowSelected,2,4,8); + packet(0x086e,clif->pReqCloseBuyingStore,0); + packet(0x0874,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x087e,clif->pMoveFromKafra,2,4); + packet(0x088e,clif->pStoragePassword,0); + packet(0x089b,clif->pPartyBookingRegisterReq,2,4); + packet(0x089c,clif->pDropItem,2,4); + packet(0x08a2,clif->pActionRequest,2,6); + packet(0x08a3,clif->pMoveToKafra,2,4); + packet(0x08a6,clif->pGetCharNameRequest,2); + packet(0x08a9,clif->pWantToConnection,2,6,10,14,18); + packet(0x08aa,clif->pSearchStoreInfoNextPage,0); + packet(0x08ac,clif->pDull/*,XXX*/); + packet(0x0925,clif->pChangeDir,2,4); + packet(0x0926,clif->pHomMenu,2,4); + packet(0x093e,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x0950,clif->pPartyInvite2,2); + packet(0x0952,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x095b,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x095c,clif->pUseSkillToId,2,4,6); + packet(0x095e,clif->pTakeItem,2); + packet(0x0964,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0965,clif->pDull/*,XXX*/); #endif // 2013-05-29aRagexeRE #if PACKETVER == 20130529 - packet(0x023b,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0438,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x085a,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x085e,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0863,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x0869,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0874,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0876,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0877,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0888,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x088e,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0890,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0892,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0895,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x0897,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x08a7,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x08a8,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0917,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x0918,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0919,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0936,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0937,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0938,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0941,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0951,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0956,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x0957,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0958,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x0964,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 + packet(0x023b,clif->pHomMenu,2,4); + packet(0x0438,clif->pUseSkillToId,2,4,6); + packet(0x085a,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x085e,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0863,clif->pGetCharNameRequest,2); + packet(0x0869,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0874,clif->pPartyBookingRegisterReq,2,4); + packet(0x0876,clif->pWalkToXY,2); + packet(0x0877,clif->pFriendsListAdd,2); + packet(0x0888,clif->pDull/*,XXX*/); + packet(0x088e,clif->pDull/*,XXX*/); + packet(0x0890,clif->pActionRequest,2,6); + packet(0x0892,clif->pReqClickBuyingStore,2); + packet(0x0895,clif->pTakeItem,2); + packet(0x0897,clif->pTickSend,2); + packet(0x08a7,clif->pDropItem,2,4); + packet(0x08a8,clif->pPartyInvite2,2); + packet(0x0917,clif->pUseSkillToPos,2,4,6,8); + packet(0x0918,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0919,clif->pWantToConnection,2,6,10,14,18); + packet(0x0936,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0937,clif->pSolveCharName,2); + packet(0x0938,clif->pMoveToKafra,2,4); + packet(0x0941,clif->pSearchStoreInfoNextPage,0); + packet(0x0951,clif->pChangeDir,2,4); + packet(0x0956,clif->pStoragePassword,0); + packet(0x0957,clif->pMoveFromKafra,2,4); + packet(0x0958,clif->pItemListWindowSelected,2,4,8); + packet(0x0964,clif->pReqCloseBuyingStore,0); #endif // 2013-06-05cRagexeRE #if PACKETVER == 20130605 - packet(0x0202,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x022d,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x023b,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0281,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x035f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0360,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0361,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0362,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0363,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0364,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0365,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0436,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0437,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0438,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x07e4,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x07ec,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0802,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0835,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x083c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0883,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x096a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 + packet(0x0202,clif->pChangeDir,2,4); + packet(0x022d,clif->pWantToConnection,2,6,10,14,18); + packet(0x023b,clif->pFriendsListAdd,2); + packet(0x0281,clif->pItemListWindowSelected,2,4,8); + packet(0x035f,clif->pTickSend,2); + packet(0x0360,clif->pReqClickBuyingStore,2); + packet(0x0361,clif->pHomMenu,2,4); + packet(0x0362,clif->pDropItem,2,4); + packet(0x0363,clif->pDull/*,XXX*/); + packet(0x0364,clif->pMoveFromKafra,2,4); + packet(0x0365,clif->pPartyBookingRegisterReq,2,4); + packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pActionRequest,2,6); + packet(0x0436,clif->pDull/*,XXX*/); + packet(0x0437,clif->pWalkToXY,2); + packet(0x0438,clif->pUseSkillToPos,2,4,6,8); + packet(0x07e4,clif->pTakeItem,2); + packet(0x07ec,clif->pMoveToKafra,2,4); + packet(0x0802,clif->pPartyInvite2,2); + packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0835,clif->pSearchStoreInfoNextPage,0); + packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x083c,clif->pUseSkillToId,2,4,6); + packet(0x0883,clif->pStoragePassword,0); + packet(0x096a,clif->pGetCharNameRequest,2); #endif // 2013-06-12bRagexeRE #if PACKETVER == 20130612 - packet(0x0281,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x035f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0360,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0362,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0363,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0364,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0365,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0436,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0437,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0438,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x07e4,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x07ec,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0802,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0835,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x083c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x087e,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0919,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x093a,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0940,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0964,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x096a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 + packet(0x0281,clif->pItemListWindowSelected,2,4,8); + packet(0x035f,clif->pTickSend,2); + packet(0x0360,clif->pReqClickBuyingStore,2); + packet(0x0362,clif->pDropItem,2,4); + packet(0x0363,clif->pDull/*,XXX*/); + packet(0x0364,clif->pMoveFromKafra,2,4); + packet(0x0365,clif->pPartyBookingRegisterReq,2,4); + packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pActionRequest,2,6); + packet(0x0436,clif->pDull/*,XXX*/); + packet(0x0437,clif->pWalkToXY,2); + packet(0x0438,clif->pUseSkillToPos,2,4,6,8); + packet(0x07e4,clif->pTakeItem,2); + packet(0x07ec,clif->pMoveToKafra,2,4); + packet(0x0802,clif->pPartyInvite2,2); + packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0835,clif->pSearchStoreInfoNextPage,0); + packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x083c,clif->pUseSkillToId,2,4,6); + packet(0x087e,clif->pChangeDir,2,4); + packet(0x0919,clif->pWantToConnection,2,6,10,14,18); + packet(0x093a,clif->pHomMenu,2,4); + packet(0x0940,clif->pFriendsListAdd,2); + packet(0x0964,clif->pStoragePassword,0); + packet(0x096a,clif->pGetCharNameRequest,2); #endif // 2013-06-18#1aRagexeRE #if PACKETVER == 20130618 - packet(0x0281,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x02c4,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0363,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x085a,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0862,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0864,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x0878,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x087a,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0885,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0887,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0889,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x088e,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0890,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x0891,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x08a6,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x08a7,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0917,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0930,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0932,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0936,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0942,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x0944,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x0945,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x094f,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0951,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0953,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x095b,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0962,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x096a,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 + packet(0x0281,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x02c4,clif->pHomMenu,2,4); + packet(0x0363,clif->pSearchStoreInfoNextPage,0); + packet(0x085a,clif->pReqCloseBuyingStore,0); + packet(0x0862,clif->pReqClickBuyingStore,2); + packet(0x0864,clif->pStoragePassword,0); + packet(0x0878,clif->pDull/*,XXX*/); + packet(0x087a,clif->pDull/*,XXX*/); + packet(0x0885,clif->pMoveToKafra,2,4); + packet(0x0887,clif->pPartyInvite2,2); + packet(0x0889,clif->pActionRequest,2,6); + packet(0x088e,clif->pWalkToXY,2); + packet(0x0890,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x0891,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x08a6,clif->pChangeDir,2,4); + packet(0x08a7,clif->pPartyBookingRegisterReq,2,4); + packet(0x0917,clif->pDropItem,2,4); + packet(0x0930,clif->pTickSend,2); + packet(0x0932,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0936,clif->pMoveFromKafra,2,4); + packet(0x0942,clif->pItemListWindowSelected,2,4,8); + packet(0x0944,clif->pGetCharNameRequest,2); + packet(0x0945,clif->pSolveCharName,2); + packet(0x094f,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0951,clif->pUseSkillToId,2,4,6); + packet(0x0953,clif->pFriendsListAdd,2); + packet(0x095b,clif->pWantToConnection,2,6,10,14,18); + packet(0x0962,clif->pTakeItem,2); + packet(0x096a,clif->pUseSkillToPos,2,4,6,8); #endif // 2013-06-26_3bRagexeRE, 2013-06-26aRagexeRE #if PACKETVER == 20130626 - packet(0x035f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0360,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0365,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0437,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0438,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0817,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0835,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x083c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0860,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x088b,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x088c,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x088f,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0894,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0895,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x08a5,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x08ab,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0921,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0930,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x094d,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0952,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0960,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x096a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 + packet(0x035f,clif->pTickSend,2); + packet(0x0360,clif->pReqClickBuyingStore,2); + packet(0x0365,clif->pReqCloseBuyingStore,0); + packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pActionRequest,2,6); + packet(0x0437,clif->pWalkToXY,2); + packet(0x0438,clif->pUseSkillToPos,2,4,6,8); + packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0817,clif->pMoveFromKafra,2,4); + packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0835,clif->pSearchStoreInfoNextPage,0); + packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x083c,clif->pUseSkillToId,2,4,6); + packet(0x0860,clif->pDull/*,XXX*/); + packet(0x088b,clif->pTakeItem,2); + packet(0x088c,clif->pWantToConnection,2,6,10,14,18); + packet(0x088f,clif->pDull/*,XXX*/); + packet(0x0894,clif->pPartyBookingRegisterReq,2,4); + packet(0x0895,clif->pPartyInvite2,2); + packet(0x08a5,clif->pItemListWindowSelected,2,4,8); + packet(0x08ab,clif->pFriendsListAdd,2); + packet(0x0921,clif->pMoveToKafra,2,4); + packet(0x0930,clif->pStoragePassword,0); + packet(0x094d,clif->pChangeDir,2,4); + packet(0x0952,clif->pDropItem,2,4); + packet(0x0960,clif->pHomMenu,2,4); + packet(0x096a,clif->pGetCharNameRequest,2); #endif // 2013-07-03bRagexeRE #if PACKETVER == 20130703 - packet(0x0202,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x022d,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0281,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x035f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0360,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0362,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0363,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0364,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0365,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0436,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0437,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0438,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x07e4,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x07ec,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0802,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0835,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x083c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0873,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x0930,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x094a,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x096a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 + packet(0x0202,clif->pReqClickBuyingStore,2); + packet(0x022d,clif->pWantToConnection,2,6,10,14,18); + packet(0x0281,clif->pItemListWindowSelected,2,4,8); + packet(0x035f,clif->pTickSend,2); + packet(0x0360,clif->pFriendsListAdd,2); + packet(0x0362,clif->pDropItem,2,4); + packet(0x0363,clif->pDull/*,XXX*/); + packet(0x0364,clif->pMoveFromKafra,2,4); + packet(0x0365,clif->pPartyBookingRegisterReq,2,4); + packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pActionRequest,2,6); + packet(0x0436,clif->pDull/*,XXX*/); + packet(0x0437,clif->pWalkToXY,2); + packet(0x0438,clif->pUseSkillToPos,2,4,6,8); + packet(0x07e4,clif->pTakeItem,2); + packet(0x07ec,clif->pMoveToKafra,2,4); + packet(0x0802,clif->pPartyInvite2,2); + packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0835,clif->pSearchStoreInfoNextPage,0); + packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x083c,clif->pUseSkillToId,2,4,6); + packet(0x0873,clif->pStoragePassword,0); + packet(0x0930,clif->pChangeDir,2,4); + packet(0x094a,clif->pHomMenu,2,4); + packet(0x096a,clif->pGetCharNameRequest,2); #endif // 2013-07-10aRagexeRE, 2013-07-10bRagexeRE, 2013-07-10cRagexeRE, 2013-07-10dRagexeRE, 2013-07-10eRagexeRE #if PACKETVER == 20130710 - packet(0x0202,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x022d,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x023b,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0281,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x035f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0360,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0361,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0362,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0363,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0364,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0365,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0436,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0437,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0438,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x07e4,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x07ec,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0802,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0835,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x083c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0880,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x096a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 + packet(0x0202,clif->pChangeDir,2,4); + packet(0x022d,clif->pWantToConnection,2,6,10,14,18); + packet(0x023b,clif->pFriendsListAdd,2); + packet(0x0281,clif->pItemListWindowSelected,2,4,8); + packet(0x035f,clif->pTickSend,2); + packet(0x0360,clif->pReqClickBuyingStore,2); + packet(0x0361,clif->pHomMenu,2,4); + packet(0x0362,clif->pDropItem,2,4); + packet(0x0363,clif->pDull/*,XXX*/); + packet(0x0364,clif->pMoveFromKafra,2,4); + packet(0x0365,clif->pPartyBookingRegisterReq,2,4); + packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pActionRequest,2,6); + packet(0x0436,clif->pDull/*,XXX*/); + packet(0x0437,clif->pWalkToXY,2); + packet(0x0438,clif->pUseSkillToPos,2,4,6,8); + packet(0x07e4,clif->pTakeItem,2); + packet(0x07ec,clif->pMoveToKafra,2,4); + packet(0x0802,clif->pPartyInvite2,2); + packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0835,clif->pSearchStoreInfoNextPage,0); + packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x083c,clif->pUseSkillToId,2,4,6); + packet(0x0880,clif->pStoragePassword,0); + packet(0x096a,clif->pGetCharNameRequest,2); #endif // 2013-07-17cRagexeRE, 2013-07-17dRagexeRE, 2013-07-17eRagexeRE #if PACKETVER == 20130717 - packet(0x02c4,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0819,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x083c,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0862,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0863,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x086b,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x086c,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0882,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x088a,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x088c,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0897,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x0898,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x089b,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x08a6,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x08a9,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x08aa,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0917,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0918,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x091d,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x091e,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x092f,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x093b,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0952,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0956,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0958,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x095b,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x0960,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x0967,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x096a,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 + packet(0x02c4,clif->pTickSend,2); + packet(0x0819,clif->pSearchStoreInfoNextPage,0); + packet(0x083c,clif->pWalkToXY,2); + packet(0x0862,clif->pPartyBookingRegisterReq,2,4); + packet(0x0863,clif->pFriendsListAdd,2); + packet(0x086b,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x086c,clif->pDull/*,XXX*/); + packet(0x0882,clif->pUseSkillToPos,2,4,6,8); + packet(0x088a,clif->pHomMenu,2,4); + packet(0x088c,clif->pChangeDir,2,4); + packet(0x0897,clif->pItemListWindowSelected,2,4,8); + packet(0x0898,clif->pReqClickBuyingStore,2); + packet(0x089b,clif->pMoveToKafra,2,4); + packet(0x08a6,clif->pDull/*,XXX*/); + packet(0x08a9,clif->pTakeItem,2); + packet(0x08aa,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0917,clif->pDropItem,2,4); + packet(0x0918,clif->pActionRequest,2,6); + packet(0x091d,clif->pWantToConnection,2,6,10,14,18); + packet(0x091e,clif->pUseSkillToId,2,4,6); + packet(0x092f,clif->pPartyInvite2,2); + packet(0x093b,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0952,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0956,clif->pMoveFromKafra,2,4); + packet(0x0958,clif->pGetCharNameRequest,2); + packet(0x095b,clif->pStoragePassword,0); + packet(0x0960,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x0967,clif->pSolveCharName,2); + packet(0x096a,clif->pReqCloseBuyingStore,0); #endif // 2013-07-24eRagexeRE, 2013-07-24fRagexeRE #if PACKETVER == 20130724 - packet(0x023b,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x035f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0437,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x085a,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x085e,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0860,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x0867,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x086a,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0874,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0876,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0890,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0891,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0893,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x089c,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x08ab,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0921,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0924,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0927,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x092b,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x092e,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x094a,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x0953,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0954,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0956,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x0958,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x095c,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x095d,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0965,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0966,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 + packet(0x023b,clif->pReqCloseBuyingStore,0); + packet(0x035f,clif->pTickSend,2); + packet(0x0437,clif->pDull/*,XXX*/); + packet(0x085a,clif->pPartyBookingRegisterReq,2,4); + packet(0x085e,clif->pMoveFromKafra,2,4); + packet(0x0860,clif->pStoragePassword,0); + packet(0x0867,clif->pGetCharNameRequest,2); + packet(0x086a,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0874,clif->pHomMenu,2,4); + packet(0x0876,clif->pActionRequest,2,6); + packet(0x0890,clif->pSearchStoreInfoNextPage,0); + packet(0x0891,clif->pDropItem,2,4); + packet(0x0893,clif->pWantToConnection,2,6,10,14,18); + packet(0x089c,clif->pUseSkillToPos,2,4,6,8); + packet(0x08ab,clif->pDull/*,XXX*/); + packet(0x0921,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0924,clif->pReqClickBuyingStore,2); + packet(0x0927,clif->pPartyInvite2,2); + packet(0x092b,clif->pFriendsListAdd,2); + packet(0x092e,clif->pItemListWindowSelected,2,4,8); + packet(0x094a,clif->pTakeItem,2); + packet(0x0953,clif->pWalkToXY,2); + packet(0x0954,clif->pSolveCharName,2); + packet(0x0956,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x0958,clif->pUseSkillToId,2,4,6); + packet(0x095c,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x095d,clif->pMoveToKafra,2,4); + packet(0x0965,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0966,clif->pChangeDir,2,4); #endif // 2013-07-31cRagexeRE #if PACKETVER == 20130731 - packet(0x022d,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0366,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0437,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0438,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0819,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0863,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0865,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0878,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x087e,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0884,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x0889,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x088b,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x0894,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0895,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0897,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0923,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0925,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x092b,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x092d,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0935,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x0941,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x094c,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0956,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0957,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0958,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x095b,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x095d,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x095f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0962,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 + packet(0x022d,clif->pFriendsListAdd,2); + packet(0x0366,clif->pSearchStoreInfoNextPage,0); + packet(0x0437,clif->pWalkToXY,2); + packet(0x0438,clif->pChangeDir,2,4); + packet(0x0819,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0863,clif->pReqClickBuyingStore,2); + packet(0x0865,clif->pUseSkillToId,2,4,6); + packet(0x0878,clif->pActionRequest,2,6); + packet(0x087e,clif->pReqCloseBuyingStore,0); + packet(0x0884,clif->pStoragePassword,0); + packet(0x0889,clif->pDull/*,XXX*/); + packet(0x088b,clif->pGetCharNameRequest,2); + packet(0x0894,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0895,clif->pDull/*,XXX*/); + packet(0x0897,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0923,clif->pPartyBookingRegisterReq,2,4); + packet(0x0925,clif->pUseSkillToPos,2,4,6,8); + packet(0x092b,clif->pWantToConnection,2,6,10,14,18); + packet(0x092d,clif->pHomMenu,2,4); + packet(0x0935,clif->pTakeItem,2); + packet(0x0941,clif->pMoveToKafra,2,4); + packet(0x094c,clif->pMoveFromKafra,2,4); + packet(0x0956,clif->pPartyInvite2,2); + packet(0x0957,clif->pSolveCharName,2); + packet(0x0958,clif->pItemListWindowSelected,2,4,8); + packet(0x095b,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x095d,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x095f,clif->pTickSend,2); + packet(0x0962,clif->pDropItem,2,4); #endif // 2013-08-07aRagexeRE #if PACKETVER == 20130807 - packet(0x0202,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x022d,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x023b,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0281,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x035f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0360,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0361,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0362,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0363,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0364,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0365,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0436,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0437,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0438,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x07e4,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x07ec,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0802,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0835,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x083c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0887,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x096a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 + packet(0x0202,clif->pChangeDir,2,4); + packet(0x022d,clif->pWantToConnection,2,6,10,14,18); + packet(0x023b,clif->pFriendsListAdd,2); + packet(0x0281,clif->pItemListWindowSelected,2,4,8); + packet(0x035f,clif->pTickSend,2); + packet(0x0360,clif->pReqClickBuyingStore,2); + packet(0x0361,clif->pHomMenu,2,4); + packet(0x0362,clif->pDropItem,2,4); + packet(0x0363,clif->pDull/*,XXX*/); + packet(0x0364,clif->pMoveFromKafra,2,4); + packet(0x0365,clif->pPartyBookingRegisterReq,2,4); + packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pActionRequest,2,6); + packet(0x0436,clif->pDull/*,XXX*/); + packet(0x0437,clif->pWalkToXY,2); + packet(0x0438,clif->pUseSkillToPos,2,4,6,8); + packet(0x07e4,clif->pTakeItem,2); + packet(0x07ec,clif->pMoveToKafra,2,4); + packet(0x0802,clif->pPartyInvite2,2); + packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0835,clif->pSearchStoreInfoNextPage,0); + packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x083c,clif->pUseSkillToId,2,4,6); + packet(0x0887,clif->pStoragePassword,0); + packet(0x096a,clif->pGetCharNameRequest,2); #endif // 2013-08-14aRagexeRE #if PACKETVER == 20130814 - packet(0x0202,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0281,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0368,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0815,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0835,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0868,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x0873,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0874,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0885,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x0887,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x0889,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x088a,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x088c,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0895,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0896,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x08a4,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x0923,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0926,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x0927,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0936,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0937,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x093a,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0941,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0947,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x094e,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0958,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0959,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x095f,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0962,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 + packet(0x0202,clif->pMoveToKafra,2,4); + packet(0x0281,clif->pFriendsListAdd,2); + packet(0x0368,clif->pWantToConnection,2,6,10,14,18); + packet(0x0815,clif->pDull/*,XXX*/); + packet(0x0835,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0868,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x0873,clif->pMoveFromKafra,2,4); + packet(0x0874,clif->pActionRequest,2,6); + packet(0x0885,clif->pStoragePassword,0); + packet(0x0887,clif->pUseSkillToPos,2,4,6,8); + packet(0x0889,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x088a,clif->pTickSend,2); + packet(0x088c,clif->pChangeDir,2,4); + packet(0x0895,clif->pReqClickBuyingStore,2); + packet(0x0896,clif->pDull/*,XXX*/); + packet(0x08a4,clif->pItemListWindowSelected,2,4,8); + packet(0x0923,clif->pSolveCharName,2); + packet(0x0926,clif->pTakeItem,2); + packet(0x0927,clif->pPartyInvite2,2); + packet(0x0936,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0937,clif->pGetCharNameRequest,2); + packet(0x093a,clif->pWalkToXY,2); + packet(0x0941,clif->pSearchStoreInfoNextPage,0); + packet(0x0947,clif->pUseSkillToId,2,4,6); + packet(0x094e,clif->pReqCloseBuyingStore,0); + packet(0x0958,clif->pHomMenu,2,4); + packet(0x0959,clif->pPartyBookingRegisterReq,2,4); + packet(0x095f,clif->pDropItem,2,4); + packet(0x0962,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); #endif // 2013-08-21dRagexeRE #if PACKETVER == 20130821 - packet(0x0202,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x0360,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x0361,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0437,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0438,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x07ec,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x0815,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0862,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0863,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x086e,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0879,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x0881,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x088d,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x088f,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0892,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x08a6,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x08ad,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x091d,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0923,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x092d,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x093e,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0947,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0954,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x095e,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0962,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x0964,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0967,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0969,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 + packet(0x0202,clif->pUseSkillToPos,2,4,6,8); + packet(0x0360,clif->pStoragePassword,0); + packet(0x0361,clif->pHomMenu,2,4); + packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0437,clif->pMoveToKafra,2,4); + packet(0x0438,clif->pDull/*,XXX*/); + packet(0x07ec,clif->pItemListWindowSelected,2,4,8); + packet(0x0815,clif->pWalkToXY,2); + packet(0x0862,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0863,clif->pActionRequest,2,6); + packet(0x086e,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0879,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x0881,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x088d,clif->pTickSend,2); + packet(0x088f,clif->pFriendsListAdd,2); + packet(0x0892,clif->pReqClickBuyingStore,2); + packet(0x08a6,clif->pReqCloseBuyingStore,0); + packet(0x08ad,clif->pDull/*,XXX*/); + packet(0x091d,clif->pChangeDir,2,4); + packet(0x0923,clif->pWantToConnection,2,6,10,14,18); + packet(0x092d,clif->pGetCharNameRequest,2); + packet(0x093e,clif->pMoveFromKafra,2,4); + packet(0x0947,clif->pSearchStoreInfoNextPage,0); + packet(0x0954,clif->pUseSkillToId,2,4,6); + packet(0x095e,clif->pSolveCharName,2); + packet(0x0962,clif->pTakeItem,2); + packet(0x0964,clif->pDropItem,2,4); + packet(0x0967,clif->pPartyBookingRegisterReq,2,4); + packet(0x0969,clif->pPartyInvite2,2); #endif // 2013-08-28bRagexeRE, 2013-08-28cRagexeRE #if PACKETVER == 20130828 - packet(0x023b,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0361,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x0364,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x07ec,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0817,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x0873,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x087e,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0889,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0893,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x089e,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x089f,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x08a3,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x08ac,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x0917,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0919,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x091e,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x0923,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0924,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0928,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0929,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0930,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0944,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0946,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x094a,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x094c,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x094f,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x095d,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0966,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x096a,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 + packet(0x023b,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0361,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x0364,clif->pDull/*,XXX*/); + packet(0x07ec,clif->pReqClickBuyingStore,2); + packet(0x0817,clif->pItemListWindowSelected,2,4,8); + packet(0x0873,clif->pSearchStoreInfoNextPage,0); + packet(0x087e,clif->pDropItem,2,4); + packet(0x0889,clif->pHomMenu,2,4); + packet(0x0893,clif->pStoragePassword,0); + packet(0x089e,clif->pUseSkillToPos,2,4,6,8); + packet(0x089f,clif->pChangeDir,2,4); + packet(0x08a3,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x08ac,clif->pGetCharNameRequest,2); + packet(0x0917,clif->pPartyBookingRegisterReq,2,4); + packet(0x0919,clif->pReqCloseBuyingStore,0); + packet(0x091e,clif->pTakeItem,2); + packet(0x0923,clif->pUseSkillToId,2,4,6); + packet(0x0924,clif->pTickSend,2); + packet(0x0928,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0929,clif->pMoveFromKafra,2,4); + packet(0x0930,clif->pSolveCharName,2); + packet(0x0944,clif->pFriendsListAdd,2); + packet(0x0946,clif->pDull/*,XXX*/); + packet(0x094a,clif->pPartyInvite2,2); + packet(0x094c,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x094f,clif->pActionRequest,2,6); + packet(0x095d,clif->pWalkToXY,2); + packet(0x0966,clif->pMoveToKafra,2,4); + packet(0x096a,clif->pWantToConnection,2,6,10,14,18); #endif // 2013-09-04bRagexeRE #if PACKETVER == 20130904 - packet(0x0281,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x035f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0360,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0361,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0362,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0363,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0364,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0365,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0436,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0437,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0438,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x07e4,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x07ec,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0802,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0815,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0835,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x0838,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x083c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0937,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x093a,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0940,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0956,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x096a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 + packet(0x0281,clif->pItemListWindowSelected,2,4,8); + packet(0x035f,clif->pTickSend,2); + packet(0x0360,clif->pReqClickBuyingStore,2); + packet(0x0361,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0362,clif->pDropItem,2,4); + packet(0x0363,clif->pDull/*,XXX*/); + packet(0x0364,clif->pMoveFromKafra,2,4); + packet(0x0365,clif->pPartyBookingRegisterReq,2,4); + packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pActionRequest,2,6); + packet(0x0436,clif->pDull/*,XXX*/); + packet(0x0437,clif->pWalkToXY,2); + packet(0x0438,clif->pUseSkillToPos,2,4,6,8); + packet(0x07e4,clif->pTakeItem,2); + packet(0x07ec,clif->pMoveToKafra,2,4); + packet(0x0802,clif->pPartyInvite2,2); + packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0815,clif->pChangeDir,2,4); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0835,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x0838,clif->pWantToConnection,2,6,10,14,18); + packet(0x083c,clif->pUseSkillToId,2,4,6); + packet(0x0937,clif->pFriendsListAdd,2); + packet(0x093a,clif->pHomMenu,2,4); + packet(0x0940,clif->pSearchStoreInfoNextPage,0); + packet(0x0956,clif->pStoragePassword,0); + packet(0x096a,clif->pGetCharNameRequest,2); #endif // 2013-09-11aRagexeRE, 2013-09-11bRagexeRE #if PACKETVER == 20130911 - packet(0x035f,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0364,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0436,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0437,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0438,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0819,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0835,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x083c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x085c,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0868,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x086b,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x086d,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x087b,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0889,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x0891,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x08a4,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x091e,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x093a,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0940,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0948,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0967,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x096a,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 + packet(0x035f,clif->pReqClickBuyingStore,2); + packet(0x0364,clif->pGetCharNameRequest,2); + packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pActionRequest,2,6); + packet(0x0436,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0437,clif->pWalkToXY,2); + packet(0x0438,clif->pUseSkillToPos,2,4,6,8); + packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x0819,clif->pWantToConnection,2,6,10,14,18); + packet(0x0835,clif->pSearchStoreInfoNextPage,0); + packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x083c,clif->pUseSkillToId,2,4,6); + packet(0x085c,clif->pPartyInvite2,2); + packet(0x0868,clif->pPartyBookingRegisterReq,2,4); + packet(0x086b,clif->pStoragePassword,0); + packet(0x086d,clif->pMoveFromKafra,2,4); + packet(0x087b,clif->pDull/*,XXX*/); + packet(0x0889,clif->pTakeItem,2); + packet(0x0891,clif->pHomMenu,2,4); + packet(0x08a4,clif->pItemListWindowSelected,2,4,8); + packet(0x091e,clif->pChangeDir,2,4); + packet(0x093a,clif->pDull/*,XXX*/); + packet(0x0940,clif->pTickSend,2); + packet(0x0948,clif->pFriendsListAdd,2); + packet(0x0967,clif->pDropItem,2,4); + packet(0x096a,clif->pMoveToKafra,2,4); #endif // 2013-09-17aRagexeRE #if PACKETVER == 20130917 - packet(0x035f,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0811,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0838,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x083c,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0863,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0868,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x086e,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x086f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x087a,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x087e,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x088a,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x0895,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x089b,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x089d,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x08a0,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x08a2,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x08a8,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0918,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x091c,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x091e,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0921,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x0923,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0934,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x094c,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x094e,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0957,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x0959,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x095b,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x096a,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 + packet(0x035f,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0811,clif->pActionRequest,2,6); + packet(0x0838,clif->pReqClickBuyingStore,2); + packet(0x083c,clif->pSearchStoreInfoNextPage,0); + packet(0x0863,clif->pMoveFromKafra,2,4); + packet(0x0868,clif->pPartyInvite2,2); + packet(0x086e,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x086f,clif->pTickSend,2); + packet(0x087a,clif->pTakeItem,2); + packet(0x087e,clif->pUseSkillToId,2,4,6); + packet(0x088a,clif->pStoragePassword,0); + packet(0x0895,clif->pSolveCharName,2); + packet(0x089b,clif->pReqCloseBuyingStore,0); + packet(0x089d,clif->pWantToConnection,2,6,10,14,18); + packet(0x08a0,clif->pMoveToKafra,2,4); + packet(0x08a2,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x08a8,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0918,clif->pChangeDir,2,4); + packet(0x091c,clif->pDropItem,2,4); + packet(0x091e,clif->pDull/*,XXX*/); + packet(0x0921,clif->pGetCharNameRequest,2); + packet(0x0923,clif->pHomMenu,2,4); + packet(0x0934,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x094c,clif->pPartyBookingRegisterReq,2,4); + packet(0x094e,clif->pDull/*,XXX*/); + packet(0x0957,clif->pUseSkillToPos,2,4,6,8); + packet(0x0959,clif->pItemListWindowSelected,2,4,8); + packet(0x095b,clif->pWalkToXY,2); + packet(0x096a,clif->pFriendsListAdd,2); #endif // 2013-09-25aRagexeRE, 2013-09-25bRagexeRE #if PACKETVER == 20130925 - packet(0x035f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0360,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0437,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0438,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0835,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x083c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x086d,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x086e,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0875,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0876,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x087d,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0885,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0887,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x088f,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0890,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0940,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x0958,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x095a,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x095b,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x095c,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0969,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x096a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 + packet(0x035f,clif->pTickSend,2); + packet(0x0360,clif->pReqClickBuyingStore,2); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pActionRequest,2,6); + packet(0x0437,clif->pWalkToXY,2); + packet(0x0438,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0835,clif->pSearchStoreInfoNextPage,0); + packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x083c,clif->pUseSkillToId,2,4,6); + packet(0x086d,clif->pStoragePassword,0); + packet(0x086e,clif->pPartyInvite2,2); + packet(0x0875,clif->pHomMenu,2,4); + packet(0x0876,clif->pMoveFromKafra,2,4); + packet(0x087d,clif->pDropItem,2,4); + packet(0x0885,clif->pChangeDir,2,4); + packet(0x0887,clif->pWantToConnection,2,6,10,14,18); + packet(0x088f,clif->pFriendsListAdd,2); + packet(0x0890,clif->pDull/*,XXX*/); + packet(0x0940,clif->pUseSkillToPos,2,4,6,8); + packet(0x0958,clif->pTakeItem,2); + packet(0x095a,clif->pPartyBookingRegisterReq,2,4); + packet(0x095b,clif->pItemListWindowSelected,2,4,8); + packet(0x095c,clif->pMoveToKafra,2,4); + packet(0x0969,clif->pDull/*,XXX*/); + packet(0x096a,clif->pGetCharNameRequest,2); #endif // 2013-10-02aRagexeRE #if PACKETVER == 20131002 - packet(0x0202,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x022d,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x023b,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0281,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x035f,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x0360,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0361,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0362,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0363,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0364,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0365,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0436,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0437,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0438,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x07e4,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x07ec,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0802,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0835,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x083c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0940,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x096a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 + packet(0x0202,clif->pChangeDir,2,4); + packet(0x022d,clif->pWantToConnection,2,6,10,14,18); + packet(0x023b,clif->pFriendsListAdd,2); + packet(0x0281,clif->pItemListWindowSelected,2,4,8); + packet(0x035f,clif->pStoragePassword,0); + packet(0x0360,clif->pReqClickBuyingStore,2); + packet(0x0361,clif->pHomMenu,2,4); + packet(0x0362,clif->pDropItem,2,4); + packet(0x0363,clif->pDull/*,XXX*/); + packet(0x0364,clif->pMoveFromKafra,2,4); + packet(0x0365,clif->pPartyBookingRegisterReq,2,4); + packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pActionRequest,2,6); + packet(0x0436,clif->pDull/*,XXX*/); + packet(0x0437,clif->pTickSend,2); + packet(0x0438,clif->pUseSkillToPos,2,4,6,8); + packet(0x07e4,clif->pTakeItem,2); + packet(0x07ec,clif->pMoveToKafra,2,4); + packet(0x0802,clif->pPartyInvite2,2); + packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0835,clif->pSearchStoreInfoNextPage,0); + packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x083c,clif->pUseSkillToId,2,4,6); + packet(0x0940,clif->pWalkToXY,2); + packet(0x096a,clif->pGetCharNameRequest,2); #endif // 2013-10-08bRagexeRE #if PACKETVER == 20131008 - packet(0x0202,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x0362,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x07e4,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x083c,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x085d,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x085e,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0863,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x086c,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x086d,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0883,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0884,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0885,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0896,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x089c,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x08a9,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0917,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x091c,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x0923,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0927,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x0932,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x0934,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0936,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x093c,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0947,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x0952,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0954,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0956,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x095d,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0969,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 + packet(0x0202,clif->pGetCharNameRequest,2); + packet(0x0362,clif->pWantToConnection,2,6,10,14,18); + packet(0x07e4,clif->pActionRequest,2,6); + packet(0x083c,clif->pReqCloseBuyingStore,0); + packet(0x085d,clif->pDull/*,XXX*/); + packet(0x085e,clif->pWalkToXY,2); + packet(0x0863,clif->pPartyInvite2,2); + packet(0x086c,clif->pItemListWindowSelected,2,4,8); + packet(0x086d,clif->pSolveCharName,2); + packet(0x0883,clif->pMoveToKafra,2,4); + packet(0x0884,clif->pPartyBookingRegisterReq,2,4); + packet(0x0885,clif->pDull/*,XXX*/); + packet(0x0896,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x089c,clif->pChangeDir,2,4); + packet(0x08a9,clif->pUseSkillToId,2,4,6); + packet(0x0917,clif->pMoveFromKafra,2,4); + packet(0x091c,clif->pTakeItem,2); + packet(0x0923,clif->pSearchStoreInfoNextPage,0); + packet(0x0927,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x0932,clif->pUseSkillToPos,2,4,6,8); + packet(0x0934,clif->pTickSend,2); + packet(0x0936,clif->pReqClickBuyingStore,2); + packet(0x093c,clif->pHomMenu,2,4); + packet(0x0947,clif->pStoragePassword,0); + packet(0x0952,clif->pDropItem,2,4); + packet(0x0954,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0956,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x095d,clif->pFriendsListAdd,2); + packet(0x0969,clif->pReqOpenBuyingStore,2,4,8,9,89); #endif // 2013-10-16aRagexeRE, 2013-10-16bRagexeRE #if PACKETVER == 20131016 - packet(0x022d,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0281,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0361,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0364,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0366,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x07ec,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0802,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x085a,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x085d,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x0863,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0864,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x0867,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x086c,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0870,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0875,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x0887,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x0888,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x088b,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0890,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0894,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x091a,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x091e,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x091f,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0927,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0946,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x094e,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x095e,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x0962,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0966,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 + packet(0x022d,clif->pMoveToKafra,2,4); + packet(0x0281,clif->pPartyInvite2,2); + packet(0x0361,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0364,clif->pDropItem,2,4); + packet(0x0366,clif->pReqClickBuyingStore,2); + packet(0x07ec,clif->pWantToConnection,2,6,10,14,18); + packet(0x0802,clif->pDull/*,XXX*/); + packet(0x085a,clif->pDull/*,XXX*/); + packet(0x085d,clif->pGetCharNameRequest,2); + packet(0x0863,clif->pUseSkillToId,2,4,6); + packet(0x0864,clif->pStoragePassword,0); + packet(0x0867,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x086c,clif->pSearchStoreInfoNextPage,0); + packet(0x0870,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0875,clif->pItemListWindowSelected,2,4,8); + packet(0x0887,clif->pTakeItem,2); + packet(0x0888,clif->pHomMenu,2,4); + packet(0x088b,clif->pFriendsListAdd,2); + packet(0x0890,clif->pSolveCharName,2); + packet(0x0894,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x091a,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x091e,clif->pMoveFromKafra,2,4); + packet(0x091f,clif->pWalkToXY,2); + packet(0x0927,clif->pTickSend,2); + packet(0x0946,clif->pPartyBookingRegisterReq,2,4); + packet(0x094e,clif->pReqCloseBuyingStore,0); + packet(0x095e,clif->pUseSkillToPos,2,4,6,8); + packet(0x0962,clif->pActionRequest,2,6); + packet(0x0966,clif->pChangeDir,2,4); #endif // 2013-10-23aRagexeRE #if PACKETVER == 20131023 - packet(0x0366,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0438,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0811,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x0819,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0835,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x085b,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0862,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x086e,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0872,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0876,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x087f,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0885,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x088a,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x088b,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x088f,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x08a7,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x08ab,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x08ac,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0919,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x091d,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x0923,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0924,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0935,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0937,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0944,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x094a,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0951,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x0954,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x095b,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 + packet(0x0366,clif->pReqCloseBuyingStore,0); + packet(0x0438,clif->pPartyInvite2,2); + packet(0x0811,clif->pUseSkillToPos,2,4,6,8); + packet(0x0819,clif->pDropItem,2,4); + packet(0x0835,clif->pDull/*,XXX*/); + packet(0x085b,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0862,clif->pDull/*,XXX*/); + packet(0x086e,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0872,clif->pPartyBookingRegisterReq,2,4); + packet(0x0876,clif->pUseSkillToId,2,4,6); + packet(0x087f,clif->pSearchStoreInfoNextPage,0); + packet(0x0885,clif->pStoragePassword,0); + packet(0x088a,clif->pItemListWindowSelected,2,4,8); + packet(0x088b,clif->pTakeItem,2); + packet(0x088f,clif->pMoveToKafra,2,4); + packet(0x08a7,clif->pHomMenu,2,4); + packet(0x08ab,clif->pChangeDir,2,4); + packet(0x08ac,clif->pWantToConnection,2,6,10,14,18); + packet(0x0919,clif->pSolveCharName,2); + packet(0x091d,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x0923,clif->pActionRequest,2,6); + packet(0x0924,clif->pTickSend,2); + packet(0x0935,clif->pReqClickBuyingStore,2); + packet(0x0937,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0944,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x094a,clif->pFriendsListAdd,2); + packet(0x0951,clif->pGetCharNameRequest,2); + packet(0x0954,clif->pMoveFromKafra,2,4); + packet(0x095b,clif->pWalkToXY,2); #endif // 2013-10-30aRagexeRE #if PACKETVER == 20131030 - packet(0x022d,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0281,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x035f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0360,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0362,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0363,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0364,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0365,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0436,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0437,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0438,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x07e4,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x07ec,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0802,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0835,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x083c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x087d,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0887,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x08a2,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0925,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x096a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 + packet(0x022d,clif->pHomMenu,2,4); + packet(0x0281,clif->pItemListWindowSelected,2,4,8); + packet(0x035f,clif->pTickSend,2); + packet(0x0360,clif->pReqClickBuyingStore,2); + packet(0x0362,clif->pDropItem,2,4); + packet(0x0363,clif->pDull/*,XXX*/); + packet(0x0364,clif->pMoveFromKafra,2,4); + packet(0x0365,clif->pWantToConnection,2,6,10,14,18); + packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pActionRequest,2,6); + packet(0x0436,clif->pPartyBookingRegisterReq,2,4); + packet(0x0437,clif->pWalkToXY,2); + packet(0x0438,clif->pUseSkillToPos,2,4,6,8); + packet(0x07e4,clif->pTakeItem,2); + packet(0x07ec,clif->pMoveToKafra,2,4); + packet(0x0802,clif->pPartyInvite2,2); + packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0835,clif->pSearchStoreInfoNextPage,0); + packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x083c,clif->pUseSkillToId,2,4,6); + packet(0x087d,clif->pFriendsListAdd,2); + packet(0x0887,clif->pStoragePassword,0); + packet(0x08a2,clif->pDull/*,XXX*/); + packet(0x0925,clif->pChangeDir,2,4); + packet(0x096a,clif->pGetCharNameRequest,2); #endif // 2013-11-06aRagexeRE #if PACKETVER == 20131106 - packet(0x0281,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x0363,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0369,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x0436,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x0802,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0817,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0866,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0867,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0870,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0875,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0887,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0891,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0893,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0894,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x08a2,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0919,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x091d,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0929,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0935,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x093b,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x0942,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x0946,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0947,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0948,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0950,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0954,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x095d,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0962,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0967,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 + packet(0x0281,clif->pGetCharNameRequest,2); + packet(0x0363,clif->pUseSkillToId,2,4,6); + packet(0x0369,clif->pItemListWindowSelected,2,4,8); + packet(0x0436,clif->pStoragePassword,0); + packet(0x0802,clif->pChangeDir,2,4); + packet(0x0817,clif->pDull/*,XXX*/); + packet(0x0866,clif->pWalkToXY,2); + packet(0x0867,clif->pMoveToKafra,2,4); + packet(0x0870,clif->pReqCloseBuyingStore,0); + packet(0x0875,clif->pDropItem,2,4); + packet(0x0887,clif->pTickSend,2); + packet(0x0891,clif->pSolveCharName,2); + packet(0x0893,clif->pPartyBookingRegisterReq,2,4); + packet(0x0894,clif->pHomMenu,2,4); + packet(0x08a2,clif->pWantToConnection,2,6,10,14,18); + packet(0x0919,clif->pSearchStoreInfoNextPage,0); + packet(0x091d,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0929,clif->pMoveFromKafra,2,4); + packet(0x0935,clif->pFriendsListAdd,2); + packet(0x093b,clif->pTakeItem,2); + packet(0x0942,clif->pUseSkillToPos,2,4,6,8); + packet(0x0946,clif->pReqClickBuyingStore,2); + packet(0x0947,clif->pActionRequest,2,6); + packet(0x0948,clif->pDull/*,XXX*/); + packet(0x0950,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0954,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x095d,clif->pPartyInvite2,2); + packet(0x0962,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0967,clif->pReqTradeBuyingStore,2,4,8,12); #endif // 2013-11-13aRagexeRE #if PACKETVER == 20131113 - packet(0x0364,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x086d,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0879,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x088c,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x088f,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x089a,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x08a4,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x08a8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x091c,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0920,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x0926,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0927,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0928,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x0929,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x092b,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x092c,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x092d,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x092e,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x092f,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0934,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0936,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x093c,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0949,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x0950,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x095d,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x095f,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0960,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0964,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0969,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 + packet(0x0364,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x086d,clif->pReqCloseBuyingStore,0); + packet(0x0879,clif->pSearchStoreInfoNextPage,0); + packet(0x088c,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x088f,clif->pDropItem,2,4); + packet(0x089a,clif->pWantToConnection,2,6,10,14,18); + packet(0x08a4,clif->pItemListWindowSelected,2,4,8); + packet(0x08a8,clif->pDull/*,XXX*/); + packet(0x091c,clif->pMoveFromKafra,2,4); + packet(0x0920,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x0926,clif->pHomMenu,2,4); + packet(0x0927,clif->pPartyInvite2,2); + packet(0x0928,clif->pStoragePassword,0); + packet(0x0929,clif->pTickSend,2); + packet(0x092b,clif->pTakeItem,2); + packet(0x092c,clif->pFriendsListAdd,2); + packet(0x092d,clif->pReqClickBuyingStore,2); + packet(0x092e,clif->pGetCharNameRequest,2); + packet(0x092f,clif->pSolveCharName,2); + packet(0x0934,clif->pPartyBookingRegisterReq,2,4); + packet(0x0936,clif->pWalkToXY,2); + packet(0x093c,clif->pChangeDir,2,4); + packet(0x0949,clif->pUseSkillToPos,2,4,6,8); + packet(0x0950,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x095d,clif->pActionRequest,2,6); + packet(0x095f,clif->pUseSkillToId,2,4,6); + packet(0x0960,clif->pMoveToKafra,2,4); + packet(0x0964,clif->pDull/*,XXX*/); + packet(0x0969,clif->pSearchStoreInfo,2,4,5,9,13,14,15); #endif // 2013-11-20eRagexeRE #if PACKETVER == 20131120 - packet(0x0361,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0364,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0368,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x0802,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0811,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0817,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x085a,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x085f,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x0862,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0884,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x088c,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x088d,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x089e,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x08a1,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x08a4,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x08a8,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0917,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0926,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0927,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x092b,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x092d,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x093e,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x093f,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0940,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0950,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x0953,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0955,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0956,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x095e,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 + packet(0x0361,clif->pSolveCharName,2); + packet(0x0364,clif->pMoveFromKafra,2,4); + packet(0x0368,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x0802,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0811,clif->pDull/*,XXX*/); + packet(0x0817,clif->pTickSend,2); + packet(0x085a,clif->pItemListWindowSelected,2,4,8); + packet(0x085f,clif->pUseSkillToPos,2,4,6,8); + packet(0x0862,clif->pReqCloseBuyingStore,0); + packet(0x0884,clif->pUseSkillToId,2,4,6); + packet(0x088c,clif->pWantToConnection,2,6,10,14,18); + packet(0x088d,clif->pFriendsListAdd,2); + packet(0x089e,clif->pTakeItem,2); + packet(0x08a1,clif->pHomMenu,2,4); + packet(0x08a4,clif->pStoragePassword,0); + packet(0x08a8,clif->pActionRequest,2,6); + packet(0x0917,clif->pDropItem,2,4); + packet(0x0926,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0927,clif->pMoveToKafra,2,4); + packet(0x092b,clif->pWalkToXY,2); + packet(0x092d,clif->pSearchStoreInfoNextPage,0); + packet(0x093e,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x093f,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0940,clif->pDull/*,XXX*/); + packet(0x0950,clif->pGetCharNameRequest,2); + packet(0x0953,clif->pPartyInvite2,2); + packet(0x0955,clif->pReqClickBuyingStore,2); + packet(0x0956,clif->pChangeDir,2,4); + packet(0x095e,clif->pPartyBookingRegisterReq,2,4); #endif // 2013-11-27aRagexeRE, 2013-11-27bRagexeRE #if PACKETVER == 20131127 - packet(0x035f,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0364,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x0365,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0366,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0437,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0438,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x07e4,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0835,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x083c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0881,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0884,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x088d,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0894,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x089e,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0930,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x093a,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0940,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x094c,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x094f,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x095c,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0967,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x096a,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 + packet(0x035f,clif->pReqClickBuyingStore,2); + packet(0x0364,clif->pGetCharNameRequest,2); + packet(0x0365,clif->pWalkToXY,2); + packet(0x0366,clif->pItemListWindowSelected,2,4,8); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pActionRequest,2,6); + packet(0x0437,clif->pMoveFromKafra,2,4); + packet(0x0438,clif->pUseSkillToPos,2,4,6,8); + packet(0x07e4,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0835,clif->pSearchStoreInfoNextPage,0); + packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x083c,clif->pUseSkillToId,2,4,6); + packet(0x0881,clif->pDull/*,XXX*/); + packet(0x0884,clif->pHomMenu,2,4); + packet(0x088d,clif->pChangeDir,2,4); + packet(0x0894,clif->pStoragePassword,0); + packet(0x089e,clif->pDull/*,XXX*/); + packet(0x0930,clif->pPartyBookingRegisterReq,2,4); + packet(0x093a,clif->pFriendsListAdd,2); + packet(0x0940,clif->pTickSend,2); + packet(0x094c,clif->pTakeItem,2); + packet(0x094f,clif->pDropItem,2,4); + packet(0x095c,clif->pWantToConnection,2,6,10,14,18); + packet(0x0967,clif->pPartyInvite2,2); + packet(0x096a,clif->pMoveToKafra,2,4); #endif // 2013-12-04dRagexeRE, 2013-12-04eRagexeRE #if PACKETVER == 20131204 - packet(0x0365,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0366,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x07e4,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x07ec,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x085a,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0862,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0869,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x086c,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0877,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0879,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x087f,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0882,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x08a0,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x08a4,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x08a7,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x08ad,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x091f,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0928,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x092d,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x092f,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0932,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x093b,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0941,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0951,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x0958,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0959,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x095b,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x0961,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0967,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 + packet(0x0365,clif->pReqCloseBuyingStore,0); + packet(0x0366,clif->pTickSend,2); + packet(0x07e4,clif->pStoragePassword,0); + packet(0x07ec,clif->pReqClickBuyingStore,2); + packet(0x085a,clif->pPartyInvite2,2); + packet(0x0862,clif->pChangeDir,2,4); + packet(0x0869,clif->pUseSkillToPos,2,4,6,8); + packet(0x086c,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0877,clif->pWantToConnection,2,6,10,14,18); + packet(0x0879,clif->pSolveCharName,2); + packet(0x087f,clif->pPartyBookingRegisterReq,2,4); + packet(0x0882,clif->pFriendsListAdd,2); + packet(0x08a0,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x08a4,clif->pDropItem,2,4); + packet(0x08a7,clif->pTakeItem,2); + packet(0x08ad,clif->pGetCharNameRequest,2); + packet(0x091f,clif->pHomMenu,2,4); + packet(0x0928,clif->pActionRequest,2,6); + packet(0x092d,clif->pUseSkillToId,2,4,6); + packet(0x092f,clif->pWalkToXY,2); + packet(0x0932,clif->pSearchStoreInfoNextPage,0); + packet(0x093b,clif->pDull/*,XXX*/); + packet(0x0941,clif->pMoveToKafra,2,4); + packet(0x0951,clif->pItemListWindowSelected,2,4,8); + packet(0x0958,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0959,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x095b,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x0961,clif->pDull/*,XXX*/); + packet(0x0967,clif->pMoveFromKafra,2,4); #endif // 2013-12-11cRagexeRE, 2013-12-11eRagexeRE #if PACKETVER == 20131211 - packet(0x0202,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x035f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0360,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0362,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0366,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0437,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0438,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0835,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x083c,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0865,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x086e,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x0873,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0881,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0886,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0892,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x08a3,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x08a4,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x08ab,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x092b,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x0931,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x094c,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x096a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 + packet(0x0202,clif->pUseSkillToId,2,4,6); + packet(0x035f,clif->pTickSend,2); + packet(0x0360,clif->pReqClickBuyingStore,2); + packet(0x0362,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0366,clif->pTakeItem,2); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pActionRequest,2,6); + packet(0x0437,clif->pWalkToXY,2); + packet(0x0438,clif->pUseSkillToPos,2,4,6,8); + packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0835,clif->pSearchStoreInfoNextPage,0); + packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x083c,clif->pFriendsListAdd,2); + packet(0x0865,clif->pPartyInvite2,2); + packet(0x086e,clif->pItemListWindowSelected,2,4,8); + packet(0x0873,clif->pWantToConnection,2,6,10,14,18); + packet(0x0881,clif->pDull/*,XXX*/); + packet(0x0886,clif->pHomMenu,2,4); + packet(0x0892,clif->pMoveToKafra,2,4); + packet(0x08a3,clif->pPartyBookingRegisterReq,2,4); + packet(0x08a4,clif->pChangeDir,2,4); + packet(0x08ab,clif->pDropItem,2,4); + packet(0x092b,clif->pStoragePassword,0); + packet(0x0931,clif->pMoveFromKafra,2,4); + packet(0x094c,clif->pDull/*,XXX*/); + packet(0x096a,clif->pGetCharNameRequest,2); #endif // 2013-12-18aRagexeRE #if PACKETVER == 20131218 - packet(0x022d,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0281,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x035f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0360,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0362,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0363,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0364,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0365,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0437,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0438,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x07e4,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x07ec,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0802,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0811,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0835,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x083c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x085c,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x087b,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x08ab,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x092f,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0947,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x096a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 + packet(0x022d,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0281,clif->pItemListWindowSelected,2,4,8); + packet(0x035f,clif->pTickSend,2); + packet(0x0360,clif->pReqClickBuyingStore,2); + packet(0x0362,clif->pDropItem,2,4); + packet(0x0363,clif->pDull/*,XXX*/); + packet(0x0364,clif->pMoveFromKafra,2,4); + packet(0x0365,clif->pPartyBookingRegisterReq,2,4); + packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pActionRequest,2,6); + packet(0x0437,clif->pWalkToXY,2); + packet(0x0438,clif->pUseSkillToPos,2,4,6,8); + packet(0x07e4,clif->pTakeItem,2); + packet(0x07ec,clif->pMoveToKafra,2,4); + packet(0x0802,clif->pPartyInvite2,2); + packet(0x0811,clif->pHomMenu,2,4); + packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0835,clif->pSearchStoreInfoNextPage,0); + packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x083c,clif->pUseSkillToId,2,4,6); + packet(0x085c,clif->pStoragePassword,0); + packet(0x087b,clif->pDull/*,XXX*/); + packet(0x08ab,clif->pFriendsListAdd,2); + packet(0x092f,clif->pWantToConnection,2,6,10,14,18); + packet(0x0947,clif->pChangeDir,2,4); + packet(0x096a,clif->pGetCharNameRequest,2); #endif // 2013-12-23bRagexeRE, 2013-12-23xRagexeRE #if PACKETVER == 20131223 - packet(0x0202,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x022d,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x023b,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0281,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x035f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0360,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0361,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0362,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0363,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0364,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0365,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0436,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0437,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0438,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x07e4,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x07ec,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0802,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0835,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x083c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x08a4,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x096a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 + packet(0x0202,clif->pChangeDir,2,4); + packet(0x022d,clif->pWantToConnection,2,6,10,14,18); + packet(0x023b,clif->pFriendsListAdd,2); + packet(0x0281,clif->pItemListWindowSelected,2,4,8); + packet(0x035f,clif->pTickSend,2); + packet(0x0360,clif->pReqClickBuyingStore,2); + packet(0x0361,clif->pHomMenu,2,4); + packet(0x0362,clif->pDropItem,2,4); + packet(0x0363,clif->pDull/*,XXX*/); + packet(0x0364,clif->pMoveFromKafra,2,4); + packet(0x0365,clif->pPartyBookingRegisterReq,2,4); + packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pActionRequest,2,6); + packet(0x0436,clif->pDull/*,XXX*/); + packet(0x0437,clif->pWalkToXY,2); + packet(0x0438,clif->pUseSkillToPos,2,4,6,8); + packet(0x07e4,clif->pTakeItem,2); + packet(0x07ec,clif->pMoveToKafra,2,4); + packet(0x0802,clif->pPartyInvite2,2); + packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0835,clif->pSearchStoreInfoNextPage,0); + packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x083c,clif->pUseSkillToId,2,4,6); + packet(0x08a4,clif->pStoragePassword,0); + packet(0x096a,clif->pGetCharNameRequest,2); #endif // 2013-12-30aRagexeRE #if PACKETVER == 20131230 - packet(0x022d,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x02c4,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x035f,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0365,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0369,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0438,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0860,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0871,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x087b,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x087e,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x087f,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0895,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0898,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x089c,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x08a9,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x091d,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x091e,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x091f,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0926,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x092a,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x093d,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x093e,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0943,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0949,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x094a,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x094c,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0968,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0969,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x096a,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 + packet(0x022d,clif->pItemListWindowSelected,2,4,8); + packet(0x02c4,clif->pUseSkillToId,2,4,6); + packet(0x035f,clif->pWalkToXY,2); + packet(0x0365,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0369,clif->pSearchStoreInfoNextPage,0); + packet(0x0438,clif->pTickSend,2); + packet(0x0860,clif->pDropItem,2,4); + packet(0x0871,clif->pActionRequest,2,6); + packet(0x087b,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x087e,clif->pDull/*,XXX*/); + packet(0x087f,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0895,clif->pMoveFromKafra,2,4); + packet(0x0898,clif->pSolveCharName,2); + packet(0x089c,clif->pWantToConnection,2,6,10,14,18); + packet(0x08a9,clif->pPartyInvite2,2); + packet(0x091d,clif->pStoragePassword,0); + packet(0x091e,clif->pUseSkillToPos,2,4,6,8); + packet(0x091f,clif->pPartyBookingRegisterReq,2,4); + packet(0x0926,clif->pGetCharNameRequest,2); + packet(0x092a,clif->pTakeItem,2); + packet(0x093d,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x093e,clif->pDull/*,XXX*/); + packet(0x0943,clif->pFriendsListAdd,2); + packet(0x0949,clif->pHomMenu,2,4); + packet(0x094a,clif->pChangeDir,2,4); + packet(0x094c,clif->pReqCloseBuyingStore,0); + packet(0x0968,clif->pMoveToKafra,2,4); + packet(0x0969,clif->pReqClickBuyingStore,2); + packet(0x096a,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); #endif // 2014-01-08bRagexeRE, 2014-01-08cRagexeRE #if PACKETVER == 20140108 - packet(0x0202,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x022d,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x023b,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0281,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x035f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0360,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0361,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0362,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0363,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0364,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0365,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0436,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0437,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0438,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x07e4,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x07ec,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0802,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0835,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x083c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0936,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x096a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 + packet(0x0202,clif->pChangeDir,2,4); + packet(0x022d,clif->pWantToConnection,2,6,10,14,18); + packet(0x023b,clif->pFriendsListAdd,2); + packet(0x0281,clif->pItemListWindowSelected,2,4,8); + packet(0x035f,clif->pTickSend,2); + packet(0x0360,clif->pReqClickBuyingStore,2); + packet(0x0361,clif->pHomMenu,2,4); + packet(0x0362,clif->pDropItem,2,4); + packet(0x0363,clif->pDull/*,XXX*/); + packet(0x0364,clif->pMoveFromKafra,2,4); + packet(0x0365,clif->pPartyBookingRegisterReq,2,4); + packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pActionRequest,2,6); + packet(0x0436,clif->pDull/*,XXX*/); + packet(0x0437,clif->pWalkToXY,2); + packet(0x0438,clif->pUseSkillToPos,2,4,6,8); + packet(0x07e4,clif->pTakeItem,2); + packet(0x07ec,clif->pMoveToKafra,2,4); + packet(0x0802,clif->pPartyInvite2,2); + packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0835,clif->pSearchStoreInfoNextPage,0); + packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x083c,clif->pUseSkillToId,2,4,6); + packet(0x0936,clif->pStoragePassword,0); + packet(0x096a,clif->pGetCharNameRequest,2); #endif // 2014-01-15cRagexeRE, 2014-01-15dRagexeRE, 2014-01-15eRagexeRE #if PACKETVER == 20140115 - packet(0x035f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0360,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0361,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0367,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0437,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0438,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x0802,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0835,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x083c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0865,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x0887,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x088a,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x088e,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x089b,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x08a7,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x092d,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0940,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x095b,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x095d,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0965,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x0966,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x096a,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 + packet(0x035f,clif->pTickSend,2); + packet(0x0360,clif->pReqClickBuyingStore,2); + packet(0x0361,clif->pDropItem,2,4); + packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0367,clif->pMoveFromKafra,2,4); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pActionRequest,2,6); + packet(0x0437,clif->pWalkToXY,2); + packet(0x0438,clif->pUseSkillToPos,2,4,6,8); + packet(0x0802,clif->pGetCharNameRequest,2); + packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0835,clif->pSearchStoreInfoNextPage,0); + packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x083c,clif->pUseSkillToId,2,4,6); + packet(0x0865,clif->pStoragePassword,0); + packet(0x0887,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x088a,clif->pDull/*,XXX*/); + packet(0x088e,clif->pMoveToKafra,2,4); + packet(0x089b,clif->pFriendsListAdd,2); + packet(0x08a7,clif->pChangeDir,2,4); + packet(0x092d,clif->pHomMenu,2,4); + packet(0x0940,clif->pTakeItem,2); + packet(0x095b,clif->pDull/*,XXX*/); + packet(0x095d,clif->pPartyInvite2,2); + packet(0x0965,clif->pItemListWindowSelected,2,4,8); + packet(0x0966,clif->pWantToConnection,2,6,10,14,18); + packet(0x096a,clif->pPartyBookingRegisterReq,2,4); #endif // 2014-01-22aRagexeRE #if PACKETVER == 20140122 - packet(0x0360,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x07ec,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0811,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0863,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0870,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0871,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0872,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x088c,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0890,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0893,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0899,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x089d,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x08a2,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x08aa,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0917,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x091a,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0925,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x092f,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0940,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0941,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0942,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x094b,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x094c,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0950,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x0952,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0955,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x0957,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x095d,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x095f,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 + packet(0x0360,clif->pActionRequest,2,6); + packet(0x07ec,clif->pReqClickBuyingStore,2); + packet(0x0811,clif->pReqCloseBuyingStore,0); + packet(0x0863,clif->pHomMenu,2,4); + packet(0x0870,clif->pPartyBookingRegisterReq,2,4); + packet(0x0871,clif->pWantToConnection,2,6,10,14,18); + packet(0x0872,clif->pPartyInvite2,2); + packet(0x088c,clif->pDull/*,XXX*/); + packet(0x0890,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0893,clif->pFriendsListAdd,2); + packet(0x0899,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x089d,clif->pGetCharNameRequest,2); + packet(0x08a2,clif->pDull/*,XXX*/); + packet(0x08aa,clif->pDropItem,2,4); + packet(0x0917,clif->pTickSend,2); + packet(0x091a,clif->pChangeDir,2,4); + packet(0x0925,clif->pWalkToXY,2); + packet(0x092f,clif->pMoveToKafra,2,4); + packet(0x0940,clif->pUseSkillToId,2,4,6); + packet(0x0941,clif->pSolveCharName,2); + packet(0x0942,clif->pTakeItem,2); + packet(0x094b,clif->pSearchStoreInfoNextPage,0); + packet(0x094c,clif->pMoveFromKafra,2,4); + packet(0x0950,clif->pUseSkillToPos,2,4,6,8); + packet(0x0952,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0955,clif->pStoragePassword,0); + packet(0x0957,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x095d,clif->pItemListWindowSelected,2,4,8); + packet(0x095f,clif->pReqOpenBuyingStore,2,4,8,9,89); #endif // 2014-01-29bRagexeRE #if PACKETVER == 20140129 - packet(0x0281,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x035f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0360,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0361,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0367,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0437,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0438,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x07ec,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0802,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0835,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x083c,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0884,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0885,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x0889,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0921,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0924,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x092c,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x094d,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0958,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0961,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x096a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 + packet(0x0281,clif->pUseSkillToId,2,4,6); + packet(0x035f,clif->pTickSend,2); + packet(0x0360,clif->pReqClickBuyingStore,2); + packet(0x0361,clif->pDull/*,XXX*/); + packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0367,clif->pDropItem,2,4); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pActionRequest,2,6); + packet(0x0437,clif->pWalkToXY,2); + packet(0x0438,clif->pUseSkillToPos,2,4,6,8); + packet(0x07ec,clif->pChangeDir,2,4); + packet(0x0802,clif->pWantToConnection,2,6,10,14,18); + packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0835,clif->pSearchStoreInfoNextPage,0); + packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x083c,clif->pDull/*,XXX*/); + packet(0x0884,clif->pHomMenu,2,4); + packet(0x0885,clif->pTakeItem,2); + packet(0x0889,clif->pMoveFromKafra,2,4); + packet(0x0921,clif->pPartyBookingRegisterReq,2,4); + packet(0x0924,clif->pItemListWindowSelected,2,4,8); + packet(0x092c,clif->pStoragePassword,0); + packet(0x094d,clif->pMoveToKafra,2,4); + packet(0x0958,clif->pPartyInvite2,2); + packet(0x0961,clif->pFriendsListAdd,2); + packet(0x096a,clif->pGetCharNameRequest,2); #endif // 2014-02-05bRagexeRE #if PACKETVER == 20140205 - packet(0x0202,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x022d,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x023b,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0281,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x035f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0360,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0361,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0362,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0363,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0364,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0365,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0436,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0437,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0438,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x07e4,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x07ec,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0802,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0835,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x083c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0938,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x096a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 + packet(0x0202,clif->pChangeDir,2,4); + packet(0x022d,clif->pWantToConnection,2,6,10,14,18); + packet(0x023b,clif->pFriendsListAdd,2); + packet(0x0281,clif->pItemListWindowSelected,2,4,8); + packet(0x035f,clif->pTickSend,2); + packet(0x0360,clif->pReqClickBuyingStore,2); + packet(0x0361,clif->pHomMenu,2,4); + packet(0x0362,clif->pDropItem,2,4); + packet(0x0363,clif->pDull/*,XXX*/); + packet(0x0364,clif->pMoveFromKafra,2,4); + packet(0x0365,clif->pPartyBookingRegisterReq,2,4); + packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pActionRequest,2,6); + packet(0x0436,clif->pDull/*,XXX*/); + packet(0x0437,clif->pWalkToXY,2); + packet(0x0438,clif->pUseSkillToPos,2,4,6,8); + packet(0x07e4,clif->pTakeItem,2); + packet(0x07ec,clif->pMoveToKafra,2,4); + packet(0x0802,clif->pPartyInvite2,2); + packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0835,clif->pSearchStoreInfoNextPage,0); + packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x083c,clif->pUseSkillToId,2,4,6); + packet(0x0938,clif->pStoragePassword,0); + packet(0x096a,clif->pGetCharNameRequest,2); #endif // 2014-02-12aRagexeRE #if PACKETVER == 20140212 - packet(0x02c4,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0369,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0438,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x086e,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0874,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0877,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0878,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x087e,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0888,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x088c,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x089d,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x089e,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x08a0,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x08a1,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x08a7,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x08ac,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x08ad,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0919,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x091b,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0928,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0930,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0934,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0936,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x093d,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0944,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x094e,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0952,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x0953,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x0960,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 + packet(0x02c4,clif->pSearchStoreInfoNextPage,0); + packet(0x0369,clif->pPartyBookingRegisterReq,2,4); + packet(0x0438,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x086e,clif->pUseSkillToId,2,4,6); + packet(0x0874,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0877,clif->pReqClickBuyingStore,2); + packet(0x0878,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x087e,clif->pWalkToXY,2); + packet(0x0888,clif->pMoveFromKafra,2,4); + packet(0x088c,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x089d,clif->pUseSkillToPos,2,4,6,8); + packet(0x089e,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x08a0,clif->pStoragePassword,0); + packet(0x08a1,clif->pPartyInvite2,2); + packet(0x08a7,clif->pItemListWindowSelected,2,4,8); + packet(0x08ac,clif->pMoveToKafra,2,4); + packet(0x08ad,clif->pDropItem,2,4); + packet(0x0919,clif->pChangeDir,2,4); + packet(0x091b,clif->pFriendsListAdd,2); + packet(0x0928,clif->pSolveCharName,2); + packet(0x0930,clif->pTickSend,2); + packet(0x0934,clif->pActionRequest,2,6); + packet(0x0936,clif->pDull/*,XXX*/); + packet(0x093d,clif->pWantToConnection,2,6,10,14,18); + packet(0x0944,clif->pHomMenu,2,4); + packet(0x094e,clif->pDull/*,XXX*/); + packet(0x0952,clif->pGetCharNameRequest,2); + packet(0x0953,clif->pTakeItem,2); + packet(0x0960,clif->pReqCloseBuyingStore,0); #endif // 2014-02-19aRagexeRE, 2014-02-19bRagexeRE #if PACKETVER == 20140219 - packet(0x0202,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0360,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0364,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0802,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0838,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x085b,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x085c,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x085d,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x085f,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x0860,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0868,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x086f,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x087c,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0889,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0897,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0898,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x089f,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x08a6,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x08aa,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x08ac,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0921,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0927,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0939,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x0946,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0949,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0953,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x095a,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0961,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 + packet(0x0202,clif->pFriendsListAdd,2); + packet(0x0360,clif->pDull/*,XXX*/); + packet(0x0364,clif->pSolveCharName,2); + packet(0x0802,clif->pTakeItem,2); + packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0838,clif->pUseSkillToId,2,4,6); + packet(0x085b,clif->pReqClickBuyingStore,2); + packet(0x085c,clif->pUseSkillToPos,2,4,6,8); + packet(0x085d,clif->pWalkToXY,2); + packet(0x085f,clif->pGetCharNameRequest,2); + packet(0x0860,clif->pHomMenu,2,4); + packet(0x0868,clif->pStoragePassword,0); + packet(0x086f,clif->pPartyInvite2,2); + packet(0x087c,clif->pMoveToKafra,2,4); + packet(0x0889,clif->pDull/*,XXX*/); + packet(0x0897,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0898,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x089f,clif->pDropItem,2,4); + packet(0x08a6,clif->pChangeDir,2,4); + packet(0x08aa,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x08ac,clif->pMoveFromKafra,2,4); + packet(0x0921,clif->pActionRequest,2,6); + packet(0x0927,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0939,clif->pItemListWindowSelected,2,4,8); + packet(0x0946,clif->pWantToConnection,2,6,10,14,18); + packet(0x0949,clif->pPartyBookingRegisterReq,2,4); + packet(0x0953,clif->pSearchStoreInfoNextPage,0); + packet(0x095a,clif->pReqCloseBuyingStore,0); + packet(0x0961,clif->pTickSend,2); #endif // 2014-02-26aRagexeRE, 2014-02-26bRagexeRE #if PACKETVER == 20140226 - packet(0x035f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0360,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0361,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0362,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0364,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0437,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0438,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x0811,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0835,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x083c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0867,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0877,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0887,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x0894,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0895,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x091a,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0921,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0931,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0941,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0962,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0964,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x0969,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x096a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 + packet(0x035f,clif->pTickSend,2); + packet(0x0360,clif->pReqClickBuyingStore,2); + packet(0x0361,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0362,clif->pFriendsListAdd,2); + packet(0x0364,clif->pStoragePassword,0); + packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pActionRequest,2,6); + packet(0x0437,clif->pWalkToXY,2); + packet(0x0438,clif->pUseSkillToPos,2,4,6,8); + packet(0x0811,clif->pChangeDir,2,4); + packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0835,clif->pSearchStoreInfoNextPage,0); + packet(0x083c,clif->pUseSkillToId,2,4,6); + packet(0x0867,clif->pHomMenu,2,4); + packet(0x0877,clif->pWantToConnection,2,6,10,14,18); + packet(0x0887,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x0894,clif->pDropItem,2,4); + packet(0x0895,clif->pMoveFromKafra,2,4); + packet(0x091a,clif->pMoveToKafra,2,4); + packet(0x0921,clif->pPartyInvite2,2); + packet(0x0931,clif->pDull/*,XXX*/); + packet(0x0941,clif->pPartyBookingRegisterReq,2,4); + packet(0x0962,clif->pDull/*,XXX*/); + packet(0x0964,clif->pTakeItem,2); + packet(0x0969,clif->pItemListWindowSelected,2,4,8); + packet(0x096a,clif->pGetCharNameRequest,2); #endif // 2014-03-05aRagexeRE, 2014-03-05bRagexeRE #if PACKETVER == 20140305 - packet(0x0202,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x0281,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x035f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0360,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0361,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0362,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0363,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0364,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0365,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0436,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x0437,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0438,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x07e4,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x07ec,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0802,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0815,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0835,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x083c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0878,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0934,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x095e,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x096a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 + packet(0x0202,clif->pTakeItem,2); + packet(0x0281,clif->pItemListWindowSelected,2,4,8); + packet(0x035f,clif->pTickSend,2); + packet(0x0360,clif->pReqClickBuyingStore,2); + packet(0x0361,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0362,clif->pDropItem,2,4); + packet(0x0363,clif->pDull/*,XXX*/); + packet(0x0364,clif->pMoveFromKafra,2,4); + packet(0x0365,clif->pPartyBookingRegisterReq,2,4); + packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pActionRequest,2,6); + packet(0x0436,clif->pUseSkillToPos,2,4,6,8); + packet(0x0437,clif->pWalkToXY,2); + packet(0x0438,clif->pWantToConnection,2,6,10,14,18); + packet(0x07e4,clif->pFriendsListAdd,2); + packet(0x07ec,clif->pMoveToKafra,2,4); + packet(0x0802,clif->pPartyInvite2,2); + packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0815,clif->pChangeDir,2,4); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0835,clif->pSearchStoreInfoNextPage,0); + packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x083c,clif->pUseSkillToId,2,4,6); + packet(0x0878,clif->pDull/*,XXX*/); + packet(0x0934,clif->pHomMenu,2,4); + packet(0x095e,clif->pStoragePassword,0); + packet(0x096a,clif->pGetCharNameRequest,2); #endif // 2014-03-12bRagexeRE #if PACKETVER == 20140312 - packet(0x0202,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x023b,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0366,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x085e,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x086f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0889,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x088c,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x088d,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x088e,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0891,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0894,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x089b,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x089d,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x089e,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x08a6,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x08a9,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x08ad,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x091b,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x091c,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x091e,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x092a,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x0948,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x094a,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x094b,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x094c,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0957,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x095d,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x095e,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x0966,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 + packet(0x0202,clif->pUseSkillToId,2,4,6); + packet(0x023b,clif->pDull/*,XXX*/); + packet(0x0366,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x085e,clif->pReqClickBuyingStore,2); + packet(0x086f,clif->pTickSend,2); + packet(0x0889,clif->pWantToConnection,2,6,10,14,18); + packet(0x088c,clif->pUseSkillToPos,2,4,6,8); + packet(0x088d,clif->pItemListWindowSelected,2,4,8); + packet(0x088e,clif->pActionRequest,2,6); + packet(0x0891,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0894,clif->pWalkToXY,2); + packet(0x089b,clif->pGetCharNameRequest,2); + packet(0x089d,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x089e,clif->pDropItem,2,4); + packet(0x08a6,clif->pDull/*,XXX*/); + packet(0x08a9,clif->pFriendsListAdd,2); + packet(0x08ad,clif->pSolveCharName,2); + packet(0x091b,clif->pSearchStoreInfoNextPage,0); + packet(0x091c,clif->pPartyInvite2,2); + packet(0x091e,clif->pHomMenu,2,4); + packet(0x092a,clif->pTakeItem,2); + packet(0x0948,clif->pReqCloseBuyingStore,0); + packet(0x094a,clif->pPartyBookingRegisterReq,2,4); + packet(0x094b,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x094c,clif->pChangeDir,2,4); + packet(0x0957,clif->pMoveFromKafra,2,4); + packet(0x095d,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x095e,clif->pStoragePassword,0); + packet(0x0966,clif->pMoveToKafra,2,4); #endif // 2014-03-19aRagexeRE #if PACKETVER == 20140319 - packet(0x02c4,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x07e4,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0802,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0811,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0815,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x085a,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0864,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0865,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0866,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x086e,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0872,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x0883,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x088e,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0890,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0893,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x089f,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x08a2,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x091f,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x0923,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0933,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0942,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x0944,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0947,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x094c,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x0954,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0955,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0961,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0964,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x096a,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 + packet(0x02c4,clif->pTakeItem,2); + packet(0x07e4,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0802,clif->pSearchStoreInfoNextPage,0); + packet(0x0811,clif->pReqClickBuyingStore,2); + packet(0x0815,clif->pHomMenu,2,4); + packet(0x085a,clif->pWalkToXY,2); + packet(0x0864,clif->pActionRequest,2,6); + packet(0x0865,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0866,clif->pChangeDir,2,4); + packet(0x086e,clif->pDull/*,XXX*/); + packet(0x0872,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x0883,clif->pDropItem,2,4); + packet(0x088e,clif->pPartyInvite2,2); + packet(0x0890,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0893,clif->pDull/*,XXX*/); + packet(0x089f,clif->pUseSkillToPos,2,4,6,8); + packet(0x08a2,clif->pMoveToKafra,2,4); + packet(0x091f,clif->pItemListWindowSelected,2,4,8); + packet(0x0923,clif->pWantToConnection,2,6,10,14,18); + packet(0x0933,clif->pReqCloseBuyingStore,0); + packet(0x0942,clif->pStoragePassword,0); + packet(0x0944,clif->pUseSkillToId,2,4,6); + packet(0x0947,clif->pMoveFromKafra,2,4); + packet(0x094c,clif->pGetCharNameRequest,2); + packet(0x0954,clif->pFriendsListAdd,2); + packet(0x0955,clif->pTickSend,2); + packet(0x0961,clif->pPartyBookingRegisterReq,2,4); + packet(0x0964,clif->pSolveCharName,2); + packet(0x096a,clif->pReqOpenBuyingStore,2,4,8,9,89); #endif // 2014-03-26cRagexeRE #if PACKETVER == 20140326 - packet(0x0362,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x0365,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x07ec,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x083c,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x085b,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0865,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0867,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x0869,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x086b,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x087c,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x087e,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x087f,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x0887,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0898,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x08aa,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x08ac,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x08ad,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0918,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0928,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x092a,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x093d,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0942,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0945,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x0946,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0956,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0959,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x095a,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x095c,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0969,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 + packet(0x0362,clif->pGetCharNameRequest,2); + packet(0x0365,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x07ec,clif->pTakeItem,2); + packet(0x083c,clif->pReqClickBuyingStore,2); + packet(0x085b,clif->pReqCloseBuyingStore,0); + packet(0x0865,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0867,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x0869,clif->pPartyBookingRegisterReq,2,4); + packet(0x086b,clif->pMoveFromKafra,2,4); + packet(0x087c,clif->pWalkToXY,2); + packet(0x087e,clif->pFriendsListAdd,2); + packet(0x087f,clif->pUseSkillToPos,2,4,6,8); + packet(0x0887,clif->pDull/*,XXX*/); + packet(0x0898,clif->pDropItem,2,4); + packet(0x08aa,clif->pDull/*,XXX*/); + packet(0x08ac,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x08ad,clif->pWantToConnection,2,6,10,14,18); + packet(0x0918,clif->pTickSend,2); + packet(0x0928,clif->pSearchStoreInfoNextPage,0); + packet(0x092a,clif->pStoragePassword,0); + packet(0x093d,clif->pActionRequest,2,6); + packet(0x0942,clif->pHomMenu,2,4); + packet(0x0945,clif->pItemListWindowSelected,2,4,8); + packet(0x0946,clif->pPartyInvite2,2); + packet(0x0956,clif->pChangeDir,2,4); + packet(0x0959,clif->pMoveToKafra,2,4); + packet(0x095a,clif->pSolveCharName,2); + packet(0x095c,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0969,clif->pUseSkillToId,2,4,6); #endif // 2014-04-02eRagexeRE, 2014-04-02fRagexeRE #if PACKETVER == 20140402 - packet(0x023b,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0360,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0364,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x07ec,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x085b,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x085d,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0867,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0868,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0882,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0883,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x088a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x088c,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0890,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0896,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x089a,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x08ac,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x091f,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0920,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0926,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x092d,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0933,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x093f,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0944,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0946,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x094c,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0950,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0958,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x095c,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0965,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 + packet(0x023b,clif->pReqClickBuyingStore,2); + packet(0x0360,clif->pChangeDir,2,4); + packet(0x0364,clif->pUseSkillToPos,2,4,6,8); + packet(0x07ec,clif->pSolveCharName,2); + packet(0x085b,clif->pMoveFromKafra,2,4); + packet(0x085d,clif->pSearchStoreInfoNextPage,0); + packet(0x0867,clif->pReqCloseBuyingStore,0); + packet(0x0868,clif->pUseSkillToId,2,4,6); + packet(0x0882,clif->pDropItem,2,4); + packet(0x0883,clif->pItemListWindowSelected,2,4,8); + packet(0x088a,clif->pGetCharNameRequest,2); + packet(0x088c,clif->pDull/*,XXX*/); + packet(0x0890,clif->pPartyInvite2,2); + packet(0x0896,clif->pHomMenu,2,4); + packet(0x089a,clif->pFriendsListAdd,2); + packet(0x08ac,clif->pPartyBookingRegisterReq,2,4); + packet(0x091f,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0920,clif->pWantToConnection,2,6,10,14,18); + packet(0x0926,clif->pStoragePassword,0); + packet(0x092d,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0933,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x093f,clif->pWalkToXY,2); + packet(0x0944,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0946,clif->pActionRequest,2,6); + packet(0x094c,clif->pDull/*,XXX*/); + packet(0x0950,clif->pTickSend,2); + packet(0x0958,clif->pTakeItem,2); + packet(0x095c,clif->pMoveToKafra,2,4); + packet(0x0965,clif->pSearchStoreInfoListItemClick,2,6,10); #endif // 2014-04-09aRagexeRE #if PACKETVER == 20140409 - packet(0x0819,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x085b,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0868,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x086a,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x086d,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0873,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0875,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x087e,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0883,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0884,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x088a,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0890,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x0893,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0896,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0897,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0899,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x08a2,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x08a4,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x08a6,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x08a7,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x08a9,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x0918,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x091c,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x092e,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0942,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0947,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x094c,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x095a,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x095e,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 + packet(0x0819,clif->pMoveFromKafra,2,4); + packet(0x085b,clif->pSolveCharName,2); + packet(0x0868,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x086a,clif->pItemListWindowSelected,2,4,8); + packet(0x086d,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0873,clif->pReqCloseBuyingStore,0); + packet(0x0875,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x087e,clif->pTickSend,2); + packet(0x0883,clif->pWalkToXY,2); + packet(0x0884,clif->pGetCharNameRequest,2); + packet(0x088a,clif->pDull/*,XXX*/); + packet(0x0890,clif->pTakeItem,2); + packet(0x0893,clif->pActionRequest,2,6); + packet(0x0896,clif->pUseSkillToId,2,4,6); + packet(0x0897,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0899,clif->pFriendsListAdd,2); + packet(0x08a2,clif->pDull/*,XXX*/); + packet(0x08a4,clif->pUseSkillToPos,2,4,6,8); + packet(0x08a6,clif->pSearchStoreInfoNextPage,0); + packet(0x08a7,clif->pChangeDir,2,4); + packet(0x08a9,clif->pStoragePassword,0); + packet(0x0918,clif->pDropItem,2,4); + packet(0x091c,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x092e,clif->pPartyInvite2,2); + packet(0x0942,clif->pMoveToKafra,2,4); + packet(0x0947,clif->pHomMenu,2,4); + packet(0x094c,clif->pPartyBookingRegisterReq,2,4); + packet(0x095a,clif->pReqClickBuyingStore,2); + packet(0x095e,clif->pWantToConnection,2,6,10,14,18); #endif // 2014-04-16aRagexeRE #if PACKETVER == 20140416 - packet(0x0202,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x022d,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x023b,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0281,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x035f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0360,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0361,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0362,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0363,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0364,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0365,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0436,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0437,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0438,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x07e4,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x07ec,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0802,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0835,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x083c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x095c,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x096a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 + packet(0x0202,clif->pChangeDir,2,4); + packet(0x022d,clif->pWantToConnection,2,6,10,14,18); + packet(0x023b,clif->pFriendsListAdd,2); + packet(0x0281,clif->pItemListWindowSelected,2,4,8); + packet(0x035f,clif->pTickSend,2); + packet(0x0360,clif->pReqClickBuyingStore,2); + packet(0x0361,clif->pHomMenu,2,4); + packet(0x0362,clif->pDropItem,2,4); + packet(0x0363,clif->pDull/*,XXX*/); + packet(0x0364,clif->pMoveFromKafra,2,4); + packet(0x0365,clif->pPartyBookingRegisterReq,2,4); + packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pActionRequest,2,6); + packet(0x0436,clif->pDull/*,XXX*/); + packet(0x0437,clif->pWalkToXY,2); + packet(0x0438,clif->pUseSkillToPos,2,4,6,8); + packet(0x07e4,clif->pTakeItem,2); + packet(0x07ec,clif->pMoveToKafra,2,4); + packet(0x0802,clif->pPartyInvite2,2); + packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0835,clif->pSearchStoreInfoNextPage,0); + packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x083c,clif->pUseSkillToId,2,4,6); + packet(0x095c,clif->pStoragePassword,0); + packet(0x096a,clif->pGetCharNameRequest,2); #endif // 2014-04-23aRagexeRE #if PACKETVER == 20140423 - packet(0x022d,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0360,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x0436,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x07e4,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x0811,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x083c,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x085a,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x085b,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0862,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0863,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0866,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x086b,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x086f,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0873,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x088b,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0890,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0895,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0896,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0897,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0898,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x089b,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x089d,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x089f,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x08a8,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x08ad,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x091a,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0920,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x094f,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x095e,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 + packet(0x022d,clif->pPartyBookingRegisterReq,2,4); + packet(0x0360,clif->pStoragePassword,0); + packet(0x0436,clif->pFriendsListAdd,2); + packet(0x07e4,clif->pTakeItem,2); + packet(0x0811,clif->pMoveFromKafra,2,4); + packet(0x083c,clif->pChangeDir,2,4); + packet(0x085a,clif->pSearchStoreInfoNextPage,0); + packet(0x085b,clif->pWalkToXY,2); + packet(0x0862,clif->pMoveToKafra,2,4); + packet(0x0863,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0866,clif->pWantToConnection,2,6,10,14,18); + packet(0x086b,clif->pDropItem,2,4); + packet(0x086f,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0873,clif->pItemListWindowSelected,2,4,8); + packet(0x088b,clif->pSolveCharName,2); + packet(0x0890,clif->pUseSkillToId,2,4,6); + packet(0x0895,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0896,clif->pActionRequest,2,6); + packet(0x0897,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0898,clif->pUseSkillToPos,2,4,6,8); + packet(0x089b,clif->pReqClickBuyingStore,2); + packet(0x089d,clif->pGetCharNameRequest,2); + packet(0x089f,clif->pReqCloseBuyingStore,0); + packet(0x08a8,clif->pHomMenu,2,4); + packet(0x08ad,clif->pDull/*,XXX*/); + packet(0x091a,clif->pTickSend,2); + packet(0x0920,clif->pPartyInvite2,2); + packet(0x094f,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x095e,clif->pDull/*,XXX*/); #endif // 2014-04-30aRagexeRE #if PACKETVER == 20140430 - packet(0x023b,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x035f,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x0360,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0363,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0369,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0437,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0438,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0835,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x083c,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0860,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0870,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0871,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0875,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x087f,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x0884,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0899,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x08a1,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x093b,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x0940,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x094b,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0953,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0956,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x096a,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 + packet(0x023b,clif->pTickSend,2); + packet(0x035f,clif->pStoragePassword,0); + packet(0x0360,clif->pReqClickBuyingStore,2); + packet(0x0363,clif->pUseSkillToId,2,4,6); + packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0369,clif->pActionRequest,2,6); + packet(0x0437,clif->pWalkToXY,2); + packet(0x0438,clif->pUseSkillToPos,2,4,6,8); + packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0835,clif->pSearchStoreInfoNextPage,0); + packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x083c,clif->pDropItem,2,4); + packet(0x0860,clif->pFriendsListAdd,2); + packet(0x0870,clif->pPartyInvite2,2); + packet(0x0871,clif->pHomMenu,2,4); + packet(0x0875,clif->pMoveFromKafra,2,4); + packet(0x087f,clif->pTakeItem,2); + packet(0x0884,clif->pPartyBookingRegisterReq,2,4); + packet(0x0899,clif->pChangeDir,2,4); + packet(0x08a1,clif->pDull/*,XXX*/); + packet(0x093b,clif->pItemListWindowSelected,2,4,8); + packet(0x0940,clif->pGetCharNameRequest,2); + packet(0x094b,clif->pWantToConnection,2,6,10,14,18); + packet(0x0953,clif->pDull/*,XXX*/); + packet(0x0956,clif->pMoveToKafra,2,4); + packet(0x096a,clif->pSolveCharName,2); #endif // 2014-05-08bRagexeRE #if PACKETVER == 20140508 - packet(0x022d,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x02c4,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x035f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0360,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0361,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0366,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0368,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x0369,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0437,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0438,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x07e4,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0802,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0835,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x083c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0861,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x0886,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x089b,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x08ab,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0927,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x0930,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0932,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0934,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x094e,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x096a,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 + packet(0x022d,clif->pSolveCharName,2); + packet(0x02c4,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x035f,clif->pTickSend,2); + packet(0x0360,clif->pReqClickBuyingStore,2); + packet(0x0361,clif->pChangeDir,2,4); + packet(0x0366,clif->pPartyInvite2,2); + packet(0x0368,clif->pItemListWindowSelected,2,4,8); + packet(0x0369,clif->pActionRequest,2,6); + packet(0x0437,clif->pWalkToXY,2); + packet(0x0438,clif->pUseSkillToPos,2,4,6,8); + packet(0x07e4,clif->pHomMenu,2,4); + packet(0x0802,clif->pGetCharNameRequest,2); + packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0835,clif->pSearchStoreInfoNextPage,0); + packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x083c,clif->pUseSkillToId,2,4,6); + packet(0x0861,clif->pTakeItem,2); + packet(0x0886,clif->pMoveToKafra,2,4); + packet(0x089b,clif->pWantToConnection,2,6,10,14,18); + packet(0x08ab,clif->pDull/*,XXX*/); + packet(0x0927,clif->pStoragePassword,0); + packet(0x0930,clif->pMoveFromKafra,2,4); + packet(0x0932,clif->pDropItem,2,4); + packet(0x0934,clif->pDull/*,XXX*/); + packet(0x094e,clif->pFriendsListAdd,2); + packet(0x096a,clif->pPartyBookingRegisterReq,2,4); #endif // 2014-05-14bRagexeRE, 2014-05-14cRagexeRE #if PACKETVER == 20140514 - packet(0x0437,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x0817,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0865,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0867,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0868,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0876,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0877,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x087d,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x0885,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x0886,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x088a,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x088b,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0895,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x089a,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x089c,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x08a5,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x0918,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x091d,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0921,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0925,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x092c,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x092f,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x094d,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x094e,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0958,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x095f,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0962,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0965,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x096a,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 + packet(0x0437,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x0817,clif->pDull/*,XXX*/); + packet(0x0865,clif->pActionRequest,2,6); + packet(0x0867,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0868,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0876,clif->pUseSkillToId,2,4,6); + packet(0x0877,clif->pDull/*,XXX*/); + packet(0x087d,clif->pItemListWindowSelected,2,4,8); + packet(0x0885,clif->pStoragePassword,0); + packet(0x0886,clif->pTickSend,2); + packet(0x088a,clif->pChangeDir,2,4); + packet(0x088b,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0895,clif->pTakeItem,2); + packet(0x089a,clif->pSolveCharName,2); + packet(0x089c,clif->pFriendsListAdd,2); + packet(0x08a5,clif->pGetCharNameRequest,2); + packet(0x0918,clif->pPartyBookingRegisterReq,2,4); + packet(0x091d,clif->pWantToConnection,2,6,10,14,18); + packet(0x0921,clif->pSearchStoreInfoNextPage,0); + packet(0x0925,clif->pReqClickBuyingStore,2); + packet(0x092c,clif->pMoveToKafra,2,4); + packet(0x092f,clif->pUseSkillToPos,2,4,6,8); + packet(0x094d,clif->pReqCloseBuyingStore,0); + packet(0x094e,clif->pMoveFromKafra,2,4); + packet(0x0958,clif->pHomMenu,2,4); + packet(0x095f,clif->pWalkToXY,2); + packet(0x0962,clif->pPartyInvite2,2); + packet(0x0965,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x096a,clif->pDropItem,2,4); #endif // 2014-05-21aRagexeRE #if PACKETVER == 20140521 - packet(0x0281,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x035f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0360,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0362,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0363,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0364,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0365,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0437,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0438,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x07e4,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x07ec,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0802,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0835,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x083c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0869,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x088b,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x088d,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x089c,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x08ac,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0968,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x096a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 + packet(0x0281,clif->pItemListWindowSelected,2,4,8); + packet(0x035f,clif->pTickSend,2); + packet(0x0360,clif->pReqClickBuyingStore,2); + packet(0x0362,clif->pDropItem,2,4); + packet(0x0363,clif->pDull/*,XXX*/); + packet(0x0364,clif->pMoveFromKafra,2,4); + packet(0x0365,clif->pPartyBookingRegisterReq,2,4); + packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pActionRequest,2,6); + packet(0x0437,clif->pWalkToXY,2); + packet(0x0438,clif->pUseSkillToPos,2,4,6,8); + packet(0x07e4,clif->pTakeItem,2); + packet(0x07ec,clif->pMoveToKafra,2,4); + packet(0x0802,clif->pPartyInvite2,2); + packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0835,clif->pSearchStoreInfoNextPage,0); + packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x083c,clif->pUseSkillToId,2,4,6); + packet(0x0869,clif->pStoragePassword,0); + packet(0x088b,clif->pDull/*,XXX*/); + packet(0x088d,clif->pChangeDir,2,4); + packet(0x089c,clif->pFriendsListAdd,2); + packet(0x08ac,clif->pWantToConnection,2,6,10,14,18); + packet(0x0968,clif->pHomMenu,2,4); + packet(0x096a,clif->pGetCharNameRequest,2); #endif // 2014-05-28aRagexeRE #if PACKETVER == 20140528 - packet(0x0202,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0360,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x085f,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0862,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0872,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0875,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0877,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0879,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x087e,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x088a,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x088f,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0894,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0896,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x089d,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x08a4,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x08a8,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x08ab,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x091d,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0929,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0930,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0938,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x093a,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x093f,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x094a,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x094b,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x095f,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x0963,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0964,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0966,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 + packet(0x0202,clif->pWalkToXY,2); + packet(0x0360,clif->pStoragePassword,0); + packet(0x085f,clif->pPartyBookingRegisterReq,2,4); + packet(0x0862,clif->pSolveCharName,2); + packet(0x0872,clif->pHomMenu,2,4); + packet(0x0875,clif->pDropItem,2,4); + packet(0x0877,clif->pTickSend,2); + packet(0x0879,clif->pMoveFromKafra,2,4); + packet(0x087e,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x088a,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x088f,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0894,clif->pDull/*,XXX*/); + packet(0x0896,clif->pItemListWindowSelected,2,4,8); + packet(0x089d,clif->pTakeItem,2); + packet(0x08a4,clif->pUseSkillToPos,2,4,6,8); + packet(0x08a8,clif->pSearchStoreInfoNextPage,0); + packet(0x08ab,clif->pDull/*,XXX*/); + packet(0x091d,clif->pFriendsListAdd,2); + packet(0x0929,clif->pActionRequest,2,6); + packet(0x0930,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0938,clif->pReqCloseBuyingStore,0); + packet(0x093a,clif->pMoveToKafra,2,4); + packet(0x093f,clif->pPartyInvite2,2); + packet(0x094a,clif->pReqClickBuyingStore,2); + packet(0x094b,clif->pChangeDir,2,4); + packet(0x095f,clif->pGetCharNameRequest,2); + packet(0x0963,clif->pUseSkillToId,2,4,6); + packet(0x0964,clif->pWantToConnection,2,6,10,14,18); + packet(0x0966,clif->pReqTradeBuyingStore,2,4,8,12); #endif // 2014-06-05aRagexeRE #if PACKETVER == 20140605 - packet(0x0281,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x035f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0360,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0361,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0362,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0363,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0364,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0365,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0368,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0369,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0436,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0437,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0438,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x07e4,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x07ec,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0802,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0817,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0835,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x083c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0921,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x0931,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0940,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x094c,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x096a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 + packet(0x0281,clif->pItemListWindowSelected,2,4,8); + packet(0x035f,clif->pTickSend,2); + packet(0x0360,clif->pReqClickBuyingStore,2); + packet(0x0361,clif->pReqCloseBuyingStore,0); + packet(0x0362,clif->pDropItem,2,4); + packet(0x0363,clif->pDull/*,XXX*/); + packet(0x0364,clif->pMoveFromKafra,2,4); + packet(0x0365,clif->pPartyBookingRegisterReq,2,4); + packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0368,clif->pActionRequest,2,6); + packet(0x0369,clif->pWantToConnection,2,6,10,14,18); + packet(0x0436,clif->pDull/*,XXX*/); + packet(0x0437,clif->pWalkToXY,2); + packet(0x0438,clif->pUseSkillToPos,2,4,6,8); + packet(0x07e4,clif->pTakeItem,2); + packet(0x07ec,clif->pMoveToKafra,2,4); + packet(0x0802,clif->pPartyInvite2,2); + packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0817,clif->pChangeDir,2,4); + packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0835,clif->pSearchStoreInfoNextPage,0); + packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x083c,clif->pUseSkillToId,2,4,6); + packet(0x0921,clif->pStoragePassword,0); + packet(0x0931,clif->pHomMenu,2,4); + packet(0x0940,clif->pSolveCharName,2); + packet(0x094c,clif->pFriendsListAdd,2); + packet(0x096a,clif->pGetCharNameRequest,2); #endif // 2014-06-11bRagexeRE #if PACKETVER == 20140611 - packet(0x0364,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0438,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x07e4,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0838,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0864,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0867,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x086c,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0874,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0878,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x088c,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x0891,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0893,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0894,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x089b,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x08a1,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x08a2,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0924,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x0936,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x0941,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x094a,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x094f,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0950,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0951,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0952,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0957,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0958,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0963,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0965,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0969,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 + packet(0x0364,clif->pReqCloseBuyingStore,0); + packet(0x0438,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x07e4,clif->pMoveToKafra,2,4); + packet(0x0838,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0864,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0867,clif->pTickSend,2); + packet(0x086c,clif->pDull/*,XXX*/); + packet(0x0874,clif->pPartyInvite2,2); + packet(0x0878,clif->pTakeItem,2); + packet(0x088c,clif->pUseSkillToPos,2,4,6,8); + packet(0x0891,clif->pActionRequest,2,6); + packet(0x0893,clif->pWalkToXY,2); + packet(0x0894,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x089b,clif->pFriendsListAdd,2); + packet(0x08a1,clif->pUseSkillToId,2,4,6); + packet(0x08a2,clif->pDull/*,XXX*/); + packet(0x0924,clif->pGetCharNameRequest,2); + packet(0x0936,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x0941,clif->pStoragePassword,0); + packet(0x094a,clif->pItemListWindowSelected,2,4,8); + packet(0x094f,clif->pSolveCharName,2); + packet(0x0950,clif->pPartyBookingRegisterReq,2,4); + packet(0x0951,clif->pChangeDir,2,4); + packet(0x0952,clif->pMoveFromKafra,2,4); + packet(0x0957,clif->pReqClickBuyingStore,2); + packet(0x0958,clif->pWantToConnection,2,6,10,14,18); + packet(0x0963,clif->pDropItem,2,4); + packet(0x0965,clif->pHomMenu,2,4); + packet(0x0969,clif->pSearchStoreInfoNextPage,0); #endif // 2014-06-18cRagexeRE #if PACKETVER == 20140618 - packet(0x085d,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x085f,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0860,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0861,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x086c,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0878,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x087d,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0884,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0885,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0886,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0890,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0892,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x08a6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x08a7,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x08ac,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0917,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x091f,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x0929,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x0935,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x0938,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0939,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x093b,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0945,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0954,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0957,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x095d,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x095e,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0962,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0967,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 + packet(0x085d,clif->pMoveToKafra,2,4); + packet(0x085f,clif->pSearchStoreInfoNextPage,0); + packet(0x0860,clif->pTickSend,2); + packet(0x0861,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x086c,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0878,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x087d,clif->pSolveCharName,2); + packet(0x0884,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0885,clif->pMoveFromKafra,2,4); + packet(0x0886,clif->pPartyBookingRegisterReq,2,4); + packet(0x0890,clif->pChangeDir,2,4); + packet(0x0892,clif->pUseSkillToId,2,4,6); + packet(0x08a6,clif->pReqClickBuyingStore,2); + packet(0x08a7,clif->pWalkToXY,2); + packet(0x08ac,clif->pDull/*,XXX*/); + packet(0x0917,clif->pUseSkillToPos,2,4,6,8); + packet(0x091f,clif->pItemListWindowSelected,2,4,8); + packet(0x0929,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x0935,clif->pTakeItem,2); + packet(0x0938,clif->pPartyInvite2,2); + packet(0x0939,clif->pReqCloseBuyingStore,0); + packet(0x093b,clif->pActionRequest,2,6); + packet(0x0945,clif->pDropItem,2,4); + packet(0x0954,clif->pFriendsListAdd,2); + packet(0x0957,clif->pStoragePassword,0); + packet(0x095d,clif->pGetCharNameRequest,2); + packet(0x095e,clif->pWantToConnection,2,6,10,14,18); + packet(0x0962,clif->pDull/*,XXX*/); + packet(0x0967,clif->pHomMenu,2,4); #endif // 2014-06-25aRagexeRE #if PACKETVER == 20140625 - packet(0x0202,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x023b,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0815,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0817,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0835,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x085a,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0861,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x086b,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0875,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x087b,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x0885,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0886,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0888,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x088a,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x088e,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0897,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x08a1,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x08a2,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x091a,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x0923,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0928,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0940,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0946,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x094e,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0959,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0960,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x0968,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0969,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x096a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 + packet(0x0202,clif->pMoveToKafra,2,4); + packet(0x023b,clif->pMoveFromKafra,2,4); + packet(0x0815,clif->pDull/*,XXX*/); + packet(0x0817,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0835,clif->pWalkToXY,2); + packet(0x085a,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0861,clif->pUseSkillToId,2,4,6); + packet(0x086b,clif->pPartyInvite2,2); + packet(0x0875,clif->pSolveCharName,2); + packet(0x087b,clif->pUseSkillToPos,2,4,6,8); + packet(0x0885,clif->pDropItem,2,4); + packet(0x0886,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0888,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x088a,clif->pItemListWindowSelected,2,4,8); + packet(0x088e,clif->pWantToConnection,2,6,10,14,18); + packet(0x0897,clif->pPartyBookingRegisterReq,2,4); + packet(0x08a1,clif->pTickSend,2); + packet(0x08a2,clif->pChangeDir,2,4); + packet(0x091a,clif->pTakeItem,2); + packet(0x0923,clif->pSearchStoreInfoNextPage,0); + packet(0x0928,clif->pReqCloseBuyingStore,0); + packet(0x0940,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0946,clif->pHomMenu,2,4); + packet(0x094e,clif->pDull/*,XXX*/); + packet(0x0959,clif->pActionRequest,2,6); + packet(0x0960,clif->pStoragePassword,0); + packet(0x0968,clif->pReqClickBuyingStore,2); + packet(0x0969,clif->pFriendsListAdd,2); + packet(0x096a,clif->pGetCharNameRequest,2); #endif // 2014-07-02aRagexeRE #if PACKETVER == 20140702 - packet(0x022d,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x023b,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x035f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0360,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0364,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0437,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0438,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x07e4,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0815,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0819,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0835,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x083c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x085a,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x086c,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0887,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0892,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0895,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x08a0,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x08a2,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x0925,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x092c,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0933,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0940,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x096a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 + packet(0x022d,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x023b,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x035f,clif->pTickSend,2); + packet(0x0360,clif->pReqClickBuyingStore,2); + packet(0x0364,clif->pItemListWindowSelected,2,4,8); + packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pActionRequest,2,6); + packet(0x0437,clif->pFriendsListAdd,2); + packet(0x0438,clif->pMoveToKafra,2,4); + packet(0x07e4,clif->pUseSkillToPos,2,4,6,8); + packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0815,clif->pStoragePassword,0); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x0819,clif->pHomMenu,2,4); + packet(0x0835,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x083c,clif->pUseSkillToId,2,4,6); + packet(0x085a,clif->pDropItem,2,4); + packet(0x086c,clif->pPartyBookingRegisterReq,2,4); + packet(0x0887,clif->pWalkToXY,2); + packet(0x0892,clif->pMoveFromKafra,2,4); + packet(0x0895,clif->pDull/*,XXX*/); + packet(0x08a0,clif->pPartyInvite2,2); + packet(0x08a2,clif->pTakeItem,2); + packet(0x0925,clif->pChangeDir,2,4); + packet(0x092c,clif->pWantToConnection,2,6,10,14,18); + packet(0x0933,clif->pDull/*,XXX*/); + packet(0x0940,clif->pSearchStoreInfoNextPage,0); + packet(0x096a,clif->pGetCharNameRequest,2); #endif // 2014-07-09aRagexeRE #if PACKETVER == 20140709 - packet(0x0364,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0437,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0860,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x0866,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0869,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0875,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x0877,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0879,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x087a,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0887,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0888,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x088b,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0894,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0897,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0898,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x08ad,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x091a,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0925,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x092f,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x0931,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0934,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0939,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x093f,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x0940,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x094d,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x094e,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x094f,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x095f,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0961,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 + packet(0x0364,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0437,clif->pActionRequest,2,6); + packet(0x0860,clif->pStoragePassword,0); + packet(0x0866,clif->pDull/*,XXX*/); + packet(0x0869,clif->pChangeDir,2,4); + packet(0x0875,clif->pItemListWindowSelected,2,4,8); + packet(0x0877,clif->pUseSkillToId,2,4,6); + packet(0x0879,clif->pGetCharNameRequest,2); + packet(0x087a,clif->pSearchStoreInfoNextPage,0); + packet(0x0887,clif->pMoveToKafra,2,4); + packet(0x0888,clif->pDull/*,XXX*/); + packet(0x088b,clif->pPartyInvite2,2); + packet(0x0894,clif->pReqCloseBuyingStore,0); + packet(0x0897,clif->pReqClickBuyingStore,2); + packet(0x0898,clif->pWantToConnection,2,6,10,14,18); + packet(0x08ad,clif->pDropItem,2,4); + packet(0x091a,clif->pWalkToXY,2); + packet(0x0925,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x092f,clif->pUseSkillToPos,2,4,6,8); + packet(0x0931,clif->pSolveCharName,2); + packet(0x0934,clif->pTickSend,2); + packet(0x0939,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x093f,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x0940,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x094d,clif->pHomMenu,2,4); + packet(0x094e,clif->pMoveFromKafra,2,4); + packet(0x094f,clif->pFriendsListAdd,2); + packet(0x095f,clif->pPartyBookingRegisterReq,2,4); + packet(0x0961,clif->pTakeItem,2); #endif // 2014-07-16aRagexeRE #if PACKETVER == 20140716 - packet(0x0362,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x07e4,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x0811,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x085c,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x085f,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0868,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0871,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0881,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x088b,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x088d,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x088f,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x0896,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x089a,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x089f,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x08a2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x08a4,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x08ac,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0918,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x091f,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0926,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x092c,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x092f,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x0938,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x093b,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0947,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0952,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0958,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x0959,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0969,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 + packet(0x0362,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x07e4,clif->pStoragePassword,0); + packet(0x0811,clif->pActionRequest,2,6); + packet(0x085c,clif->pGetCharNameRequest,2); + packet(0x085f,clif->pWantToConnection,2,6,10,14,18); + packet(0x0868,clif->pPartyInvite2,2); + packet(0x0871,clif->pMoveToKafra,2,4); + packet(0x0881,clif->pUseSkillToId,2,4,6); + packet(0x088b,clif->pSearchStoreInfoNextPage,0); + packet(0x088d,clif->pDull/*,XXX*/); + packet(0x088f,clif->pUseSkillToPos,2,4,6,8); + packet(0x0896,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x089a,clif->pSolveCharName,2); + packet(0x089f,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x08a2,clif->pReqCloseBuyingStore,0); + packet(0x08a4,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x08ac,clif->pHomMenu,2,4); + packet(0x0918,clif->pWalkToXY,2); + packet(0x091f,clif->pPartyBookingRegisterReq,2,4); + packet(0x0926,clif->pDropItem,2,4); + packet(0x092c,clif->pFriendsListAdd,2); + packet(0x092f,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x0938,clif->pMoveFromKafra,2,4); + packet(0x093b,clif->pReqClickBuyingStore,2); + packet(0x0947,clif->pDull/*,XXX*/); + packet(0x0952,clif->pChangeDir,2,4); + packet(0x0958,clif->pTakeItem,2); + packet(0x0959,clif->pTickSend,2); + packet(0x0969,clif->pItemListWindowSelected,2,4,8); #endif // 2014-07-23aRagexeRE, 2014-07-23bRagexeRE #if PACKETVER == 20140723 - packet(0x02c4,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0364,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x0368,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x0436,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x0819,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0838,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x085a,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x085f,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0869,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x086d,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x087d,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0888,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0891,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0896,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0898,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x089e,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x08a2,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x08ad,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0927,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x092f,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0934,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0935,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0939,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x093d,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x0945,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x0947,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0948,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x095f,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0960,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 + packet(0x02c4,clif->pTickSend,2); + packet(0x0364,clif->pStoragePassword,0); + packet(0x0368,clif->pGetCharNameRequest,2); + packet(0x0436,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x0819,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0838,clif->pUseSkillToId,2,4,6); + packet(0x085a,clif->pSearchStoreInfoNextPage,0); + packet(0x085f,clif->pWalkToXY,2); + packet(0x0869,clif->pMoveToKafra,2,4); + packet(0x086d,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x087d,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0888,clif->pReqClickBuyingStore,2); + packet(0x0891,clif->pReqCloseBuyingStore,0); + packet(0x0896,clif->pDropItem,2,4); + packet(0x0898,clif->pDull/*,XXX*/); + packet(0x089e,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x08a2,clif->pMoveFromKafra,2,4); + packet(0x08ad,clif->pPartyBookingRegisterReq,2,4); + packet(0x0927,clif->pSolveCharName,2); + packet(0x092f,clif->pWantToConnection,2,6,10,14,18); + packet(0x0934,clif->pFriendsListAdd,2); + packet(0x0935,clif->pPartyInvite2,2); + packet(0x0939,clif->pItemListWindowSelected,2,4,8); + packet(0x093d,clif->pTakeItem,2); + packet(0x0945,clif->pUseSkillToPos,2,4,6,8); + packet(0x0947,clif->pActionRequest,2,6); + packet(0x0948,clif->pHomMenu,2,4); + packet(0x095f,clif->pDull/*,XXX*/); + packet(0x0960,clif->pChangeDir,2,4); #endif // 2014-07-30bRagexeRE #if PACKETVER == 20140730 - packet(0x022d,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x0364,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x0366,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0367,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0437,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x07ec,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0802,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0815,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0817,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x085e,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x085f,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x087d,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x087e,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x087f,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0889,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x088b,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x088d,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x0892,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x08a0,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x08a6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x08a7,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x08a9,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x08ad,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x091e,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0924,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x092a,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x0934,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0940,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0946,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 + packet(0x022d,clif->pUseSkillToPos,2,4,6,8); + packet(0x0364,clif->pGetCharNameRequest,2); + packet(0x0366,clif->pUseSkillToId,2,4,6); + packet(0x0367,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0437,clif->pWantToConnection,2,6,10,14,18); + packet(0x07ec,clif->pDull/*,XXX*/); + packet(0x0802,clif->pDull/*,XXX*/); + packet(0x0815,clif->pFriendsListAdd,2); + packet(0x0817,clif->pActionRequest,2,6); + packet(0x085e,clif->pWalkToXY,2); + packet(0x085f,clif->pReqCloseBuyingStore,0); + packet(0x087d,clif->pMoveFromKafra,2,4); + packet(0x087e,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x087f,clif->pDropItem,2,4); + packet(0x0889,clif->pPartyBookingRegisterReq,2,4); + packet(0x088b,clif->pTickSend,2); + packet(0x088d,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x0892,clif->pMoveToKafra,2,4); + packet(0x08a0,clif->pItemListWindowSelected,2,4,8); + packet(0x08a6,clif->pReqClickBuyingStore,2); + packet(0x08a7,clif->pSolveCharName,2); + packet(0x08a9,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x08ad,clif->pStoragePassword,0); + packet(0x091e,clif->pPartyInvite2,2); + packet(0x0924,clif->pSearchStoreInfoNextPage,0); + packet(0x092a,clif->pTakeItem,2); + packet(0x0934,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0940,clif->pChangeDir,2,4); + packet(0x0946,clif->pHomMenu,2,4); #endif // 2014-08-06aRagexeRE #if PACKETVER == 20140806 - packet(0x0202,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x022d,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x023b,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0281,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x035f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0360,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0361,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0362,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0363,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0364,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0365,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0436,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0437,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0438,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x07e4,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x07ec,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0802,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0835,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x083c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0948,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x096a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 + packet(0x0202,clif->pChangeDir,2,4); + packet(0x022d,clif->pWantToConnection,2,6,10,14,18); + packet(0x023b,clif->pFriendsListAdd,2); + packet(0x0281,clif->pItemListWindowSelected,2,4,8); + packet(0x035f,clif->pTickSend,2); + packet(0x0360,clif->pReqClickBuyingStore,2); + packet(0x0361,clif->pHomMenu,2,4); + packet(0x0362,clif->pDropItem,2,4); + packet(0x0363,clif->pDull/*,XXX*/); + packet(0x0364,clif->pMoveFromKafra,2,4); + packet(0x0365,clif->pPartyBookingRegisterReq,2,4); + packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pActionRequest,2,6); + packet(0x0436,clif->pDull/*,XXX*/); + packet(0x0437,clif->pWalkToXY,2); + packet(0x0438,clif->pUseSkillToPos,2,4,6,8); + packet(0x07e4,clif->pTakeItem,2); + packet(0x07ec,clif->pMoveToKafra,2,4); + packet(0x0802,clif->pPartyInvite2,2); + packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0835,clif->pSearchStoreInfoNextPage,0); + packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x083c,clif->pUseSkillToId,2,4,6); + packet(0x0948,clif->pStoragePassword,0); + packet(0x096a,clif->pGetCharNameRequest,2); #endif // 2014-08-13aRagexeRE #if PACKETVER == 20140813 - packet(0x035f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0360,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0365,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0437,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0438,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x07e4,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0802,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0819,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x0835,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x083c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0868,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0878,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x087c,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0882,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0895,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0897,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0899,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x08a3,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x08a7,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x08ab,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0967,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x096a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 + packet(0x035f,clif->pTickSend,2); + packet(0x0360,clif->pReqClickBuyingStore,2); + packet(0x0365,clif->pStoragePassword,0); + packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pActionRequest,2,6); + packet(0x0437,clif->pWalkToXY,2); + packet(0x0438,clif->pUseSkillToPos,2,4,6,8); + packet(0x07e4,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0802,clif->pWantToConnection,2,6,10,14,18); + packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x0819,clif->pItemListWindowSelected,2,4,8); + packet(0x0835,clif->pSearchStoreInfoNextPage,0); + packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x083c,clif->pUseSkillToId,2,4,6); + packet(0x0868,clif->pHomMenu,2,4); + packet(0x0878,clif->pChangeDir,2,4); + packet(0x087c,clif->pPartyInvite2,2); + packet(0x0882,clif->pPartyBookingRegisterReq,2,4); + packet(0x0895,clif->pMoveFromKafra,2,4); + packet(0x0897,clif->pFriendsListAdd,2); + packet(0x0899,clif->pDropItem,2,4); + packet(0x08a3,clif->pTakeItem,2); + packet(0x08a7,clif->pDull/*,XXX*/); + packet(0x08ab,clif->pDull/*,XXX*/); + packet(0x0967,clif->pMoveToKafra,2,4); + packet(0x096a,clif->pGetCharNameRequest,2); #endif // 2014-08-20aRagexeRE #if PACKETVER == 20140820 - packet(0x035f,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x07e4,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x07ec,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0835,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0861,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0864,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0869,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x086c,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x086e,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0872,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0876,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0891,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x0899,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x089a,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x089b,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x08a3,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x08a7,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x091d,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x092f,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0936,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x0937,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x093a,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x093e,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x094a,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0951,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0952,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0956,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0958,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0961,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 + packet(0x035f,clif->pReqCloseBuyingStore,0); + packet(0x07e4,clif->pTakeItem,2); + packet(0x07ec,clif->pSearchStoreInfoNextPage,0); + packet(0x0835,clif->pChangeDir,2,4); + packet(0x0861,clif->pTickSend,2); + packet(0x0864,clif->pWantToConnection,2,6,10,14,18); + packet(0x0869,clif->pDull/*,XXX*/); + packet(0x086c,clif->pItemListWindowSelected,2,4,8); + packet(0x086e,clif->pPartyInvite2,2); + packet(0x0872,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0876,clif->pDropItem,2,4); + packet(0x0891,clif->pGetCharNameRequest,2); + packet(0x0899,clif->pUseSkillToPos,2,4,6,8); + packet(0x089a,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x089b,clif->pMoveFromKafra,2,4); + packet(0x08a3,clif->pWalkToXY,2); + packet(0x08a7,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x091d,clif->pSolveCharName,2); + packet(0x092f,clif->pUseSkillToId,2,4,6); + packet(0x0936,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x0937,clif->pHomMenu,2,4); + packet(0x093a,clif->pStoragePassword,0); + packet(0x093e,clif->pReqClickBuyingStore,2); + packet(0x094a,clif->pFriendsListAdd,2); + packet(0x0951,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0952,clif->pActionRequest,2,6); + packet(0x0956,clif->pMoveToKafra,2,4); + packet(0x0958,clif->pDull/*,XXX*/); + packet(0x0961,clif->pPartyBookingRegisterReq,2,4); #endif // 2014-08-27aRagexeRE #if PACKETVER == 20140827 - packet(0x0202,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x022d,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x023b,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0281,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x035f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0360,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0361,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0362,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0363,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0364,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0365,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0436,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0437,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0438,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x07e4,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x07ec,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0802,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0835,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x083c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0943,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x096a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 + packet(0x0202,clif->pChangeDir,2,4); + packet(0x022d,clif->pWantToConnection,2,6,10,14,18); + packet(0x023b,clif->pFriendsListAdd,2); + packet(0x0281,clif->pItemListWindowSelected,2,4,8); + packet(0x035f,clif->pTickSend,2); + packet(0x0360,clif->pReqClickBuyingStore,2); + packet(0x0361,clif->pHomMenu,2,4); + packet(0x0362,clif->pDropItem,2,4); + packet(0x0363,clif->pDull/*,XXX*/); + packet(0x0364,clif->pMoveFromKafra,2,4); + packet(0x0365,clif->pPartyBookingRegisterReq,2,4); + packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pActionRequest,2,6); + packet(0x0436,clif->pDull/*,XXX*/); + packet(0x0437,clif->pWalkToXY,2); + packet(0x0438,clif->pUseSkillToPos,2,4,6,8); + packet(0x07e4,clif->pTakeItem,2); + packet(0x07ec,clif->pMoveToKafra,2,4); + packet(0x0802,clif->pPartyInvite2,2); + packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0835,clif->pSearchStoreInfoNextPage,0); + packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x083c,clif->pUseSkillToId,2,4,6); + packet(0x0943,clif->pStoragePassword,0); + packet(0x096a,clif->pGetCharNameRequest,2); #endif // 2014-09-03aRagexeRE #if PACKETVER == 20140903 - packet(0x0281,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x035f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0360,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0362,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0363,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0364,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0365,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0437,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0438,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x07e4,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x07ec,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0802,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0835,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x083c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x088f,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x089b,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0931,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0941,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x0943,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0945,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x096a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 + packet(0x0281,clif->pItemListWindowSelected,2,4,8); + packet(0x035f,clif->pTickSend,2); + packet(0x0360,clif->pReqClickBuyingStore,2); + packet(0x0362,clif->pDropItem,2,4); + packet(0x0363,clif->pDull/*,XXX*/); + packet(0x0364,clif->pMoveFromKafra,2,4); + packet(0x0365,clif->pPartyBookingRegisterReq,2,4); + packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pActionRequest,2,6); + packet(0x0437,clif->pWalkToXY,2); + packet(0x0438,clif->pUseSkillToPos,2,4,6,8); + packet(0x07e4,clif->pTakeItem,2); + packet(0x07ec,clif->pMoveToKafra,2,4); + packet(0x0802,clif->pPartyInvite2,2); + packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0835,clif->pSearchStoreInfoNextPage,0); + packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x083c,clif->pUseSkillToId,2,4,6); + packet(0x088f,clif->pWantToConnection,2,6,10,14,18); + packet(0x089b,clif->pFriendsListAdd,2); + packet(0x0931,clif->pHomMenu,2,4); + packet(0x0941,clif->pStoragePassword,0); + packet(0x0943,clif->pDull/*,XXX*/); + packet(0x0945,clif->pChangeDir,2,4); + packet(0x096a,clif->pGetCharNameRequest,2); #endif // 2014-09-17cRagexeRE #if PACKETVER == 20140917 - packet(0x022d,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0364,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0365,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0366,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0367,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0369,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0838,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0864,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x086d,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0889,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0895,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0897,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0898,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x089c,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x08a8,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x0919,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x091e,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x092a,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x0930,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0949,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x094f,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x0951,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0955,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0956,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x0957,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x095a,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x095c,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x095e,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0966,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 + packet(0x022d,clif->pPartyInvite2,2); + packet(0x0364,clif->pSearchStoreInfoNextPage,0); + packet(0x0365,clif->pMoveToKafra,2,4); + packet(0x0366,clif->pWantToConnection,2,6,10,14,18); + packet(0x0367,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0369,clif->pSolveCharName,2); + packet(0x0838,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0864,clif->pTakeItem,2); + packet(0x086d,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0889,clif->pActionRequest,2,6); + packet(0x0895,clif->pHomMenu,2,4); + packet(0x0897,clif->pTickSend,2); + packet(0x0898,clif->pGetCharNameRequest,2); + packet(0x089c,clif->pReqClickBuyingStore,2); + packet(0x08a8,clif->pStoragePassword,0); + packet(0x0919,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x091e,clif->pReqCloseBuyingStore,0); + packet(0x092a,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x0930,clif->pMoveFromKafra,2,4); + packet(0x0949,clif->pUseSkillToId,2,4,6); + packet(0x094f,clif->pUseSkillToPos,2,4,6,8); + packet(0x0951,clif->pPartyBookingRegisterReq,2,4); + packet(0x0955,clif->pFriendsListAdd,2); + packet(0x0956,clif->pItemListWindowSelected,2,4,8); + packet(0x0957,clif->pDull/*,XXX*/); + packet(0x095a,clif->pDropItem,2,4); + packet(0x095c,clif->pWalkToXY,2); + packet(0x095e,clif->pChangeDir,2,4); + packet(0x0966,clif->pDull/*,XXX*/); #endif // 2014-09-24bRagexeRE, 2014-09-24cRagexeRE #if PACKETVER == 20140924 - packet(0x0366,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x0367,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x07e4,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x0802,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0815,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0862,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0864,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0865,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0867,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x086b,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x086d,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x086e,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0886,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x088b,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x0894,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0898,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x089c,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x08a5,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x08a7,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0918,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x091b,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0925,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0926,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0928,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x092b,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x092d,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x0934,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0949,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0952,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 + packet(0x0366,clif->pUseSkillToPos,2,4,6,8); + packet(0x0367,clif->pPartyInvite2,2); + packet(0x07e4,clif->pStoragePassword,0); + packet(0x0802,clif->pPartyBookingRegisterReq,2,4); + packet(0x0815,clif->pWalkToXY,2); + packet(0x0862,clif->pDull/*,XXX*/); + packet(0x0864,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0865,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0867,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x086b,clif->pReqCloseBuyingStore,0); + packet(0x086d,clif->pTakeItem,2); + packet(0x086e,clif->pHomMenu,2,4); + packet(0x0886,clif->pGetCharNameRequest,2); + packet(0x088b,clif->pItemListWindowSelected,2,4,8); + packet(0x0894,clif->pActionRequest,2,6); + packet(0x0898,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x089c,clif->pMoveToKafra,2,4); + packet(0x08a5,clif->pSolveCharName,2); + packet(0x08a7,clif->pUseSkillToId,2,4,6); + packet(0x0918,clif->pWantToConnection,2,6,10,14,18); + packet(0x091b,clif->pSearchStoreInfoNextPage,0); + packet(0x0925,clif->pDull/*,XXX*/); + packet(0x0926,clif->pTickSend,2); + packet(0x0928,clif->pMoveFromKafra,2,4); + packet(0x092b,clif->pReqClickBuyingStore,2); + packet(0x092d,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x0934,clif->pChangeDir,2,4); + packet(0x0949,clif->pDropItem,2,4); + packet(0x0952,clif->pFriendsListAdd,2); #endif // 2014-10-01bRagexeRE, 2014-10-01cRagexeRE #if PACKETVER == 20141001 - packet(0x035f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0360,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0361,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0365,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0437,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0438,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0835,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0838,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x083c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x087c,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0884,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0885,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x089c,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x089d,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x08ad,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x091c,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x092a,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x0937,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x0939,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x093f,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x094b,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0952,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 + packet(0x035f,clif->pTickSend,2); + packet(0x0360,clif->pReqClickBuyingStore,2); + packet(0x0361,clif->pDropItem,2,4); + packet(0x0365,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pActionRequest,2,6); + packet(0x0437,clif->pWalkToXY,2); + packet(0x0438,clif->pUseSkillToPos,2,4,6,8); + packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0835,clif->pSearchStoreInfoNextPage,0); + packet(0x0838,clif->pMoveFromKafra,2,4); + packet(0x083c,clif->pUseSkillToId,2,4,6); + packet(0x087c,clif->pMoveToKafra,2,4); + packet(0x0884,clif->pPartyInvite2,2); + packet(0x0885,clif->pGetCharNameRequest,2); + packet(0x089c,clif->pPartyBookingRegisterReq,2,4); + packet(0x089d,clif->pFriendsListAdd,2); + packet(0x08ad,clif->pChangeDir,2,4); + packet(0x091c,clif->pDull/*,XXX*/); + packet(0x092a,clif->pStoragePassword,0); + packet(0x0937,clif->pItemListWindowSelected,2,4,8); + packet(0x0939,clif->pDull/*,XXX*/); + packet(0x093f,clif->pTakeItem,2); + packet(0x094b,clif->pWantToConnection,2,6,10,14,18); + packet(0x0952,clif->pHomMenu,2,4); #endif // 2014-10-08bRagexeRE, 2014-10-08cRagexeRE #if PACKETVER == 20141008 - packet(0x0202,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x022d,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x023b,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0281,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x035f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0360,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0361,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0362,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0363,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0364,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0365,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0436,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0437,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0438,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x07e4,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x07ec,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0802,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0835,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x083c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0942,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x096a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 + packet(0x0202,clif->pChangeDir,2,4); + packet(0x022d,clif->pWantToConnection,2,6,10,14,18); + packet(0x023b,clif->pFriendsListAdd,2); + packet(0x0281,clif->pItemListWindowSelected,2,4,8); + packet(0x035f,clif->pTickSend,2); + packet(0x0360,clif->pReqClickBuyingStore,2); + packet(0x0361,clif->pHomMenu,2,4); + packet(0x0362,clif->pDropItem,2,4); + packet(0x0363,clif->pDull/*,XXX*/); + packet(0x0364,clif->pMoveFromKafra,2,4); + packet(0x0365,clif->pPartyBookingRegisterReq,2,4); + packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pActionRequest,2,6); + packet(0x0436,clif->pDull/*,XXX*/); + packet(0x0437,clif->pWalkToXY,2); + packet(0x0438,clif->pUseSkillToPos,2,4,6,8); + packet(0x07e4,clif->pTakeItem,2); + packet(0x07ec,clif->pMoveToKafra,2,4); + packet(0x0802,clif->pPartyInvite2,2); + packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0835,clif->pSearchStoreInfoNextPage,0); + packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x083c,clif->pUseSkillToId,2,4,6); + packet(0x0942,clif->pStoragePassword,0); + packet(0x096a,clif->pGetCharNameRequest,2); #endif // 2014-10-15bRagexeRE, 2014-10-16aRagexeRE #if PACKETVER == 20141015 || \ PACKETVER == 20141016 - packet(0x022d,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0281,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x035f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0360,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0362,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0363,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0364,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0365,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0437,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0438,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x07e4,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x07ec,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0802,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0835,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x083c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x086e,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0922,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0936,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x094b,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0967,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x096a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 + packet(0x022d,clif->pMoveFromKafra,2,4); + packet(0x0281,clif->pItemListWindowSelected,2,4,8); + packet(0x035f,clif->pTickSend,2); + packet(0x0360,clif->pReqClickBuyingStore,2); + packet(0x0362,clif->pDropItem,2,4); + packet(0x0363,clif->pDull/*,XXX*/); + packet(0x0364,clif->pHomMenu,2,4); + packet(0x0365,clif->pPartyBookingRegisterReq,2,4); + packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pActionRequest,2,6); + packet(0x0437,clif->pWalkToXY,2); + packet(0x0438,clif->pUseSkillToPos,2,4,6,8); + packet(0x07e4,clif->pTakeItem,2); + packet(0x07ec,clif->pMoveToKafra,2,4); + packet(0x0802,clif->pPartyInvite2,2); + packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0835,clif->pSearchStoreInfoNextPage,0); + packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x083c,clif->pUseSkillToId,2,4,6); + packet(0x086e,clif->pWantToConnection,2,6,10,14,18); + packet(0x0922,clif->pDull/*,XXX*/); + packet(0x0936,clif->pStoragePassword,0); + packet(0x094b,clif->pFriendsListAdd,2); + packet(0x0967,clif->pChangeDir,2,4); + packet(0x096a,clif->pGetCharNameRequest,2); #endif // 2014-10-22aRagexeRE #if PACKETVER == 20141022 - packet(0x023b,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x0281,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x035f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0360,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0437,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0438,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0835,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x083c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0878,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x087d,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0896,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0899,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x08aa,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x08ab,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x08ad,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x091a,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x092b,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x093b,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0940,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x094e,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x0955,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x096a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 + packet(0x023b,clif->pUseSkillToPos,2,4,6,8); + packet(0x0281,clif->pItemListWindowSelected,2,4,8); + packet(0x035f,clif->pTickSend,2); + packet(0x0360,clif->pReqClickBuyingStore,2); + packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pActionRequest,2,6); + packet(0x0437,clif->pWalkToXY,2); + packet(0x0438,clif->pStoragePassword,0); + packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0835,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x083c,clif->pUseSkillToId,2,4,6); + packet(0x0878,clif->pMoveToKafra,2,4); + packet(0x087d,clif->pDropItem,2,4); + packet(0x0896,clif->pPartyInvite2,2); + packet(0x0899,clif->pHomMenu,2,4); + packet(0x08aa,clif->pMoveFromKafra,2,4); + packet(0x08ab,clif->pDull/*,XXX*/); + packet(0x08ad,clif->pChangeDir,2,4); + packet(0x091a,clif->pFriendsListAdd,2); + packet(0x092b,clif->pDull/*,XXX*/); + packet(0x093b,clif->pWantToConnection,2,6,10,14,18); + packet(0x0940,clif->pSearchStoreInfoNextPage,0); + packet(0x094e,clif->pTakeItem,2); + packet(0x0955,clif->pPartyBookingRegisterReq,2,4); + packet(0x096a,clif->pGetCharNameRequest,2); #endif // 2014-10-29aRagexeRE #if PACKETVER == 20141029 - packet(0x0202,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x022d,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x023b,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0281,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x035f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0360,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0361,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0362,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0363,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0364,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0365,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0436,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0437,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x0438,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x07e4,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x07ec,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0802,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0835,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x083c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0940,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x096a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 + packet(0x0202,clif->pChangeDir,2,4); + packet(0x022d,clif->pWantToConnection,2,6,10,14,18); + packet(0x023b,clif->pFriendsListAdd,2); + packet(0x0281,clif->pItemListWindowSelected,2,4,8); + packet(0x035f,clif->pTickSend,2); + packet(0x0360,clif->pReqClickBuyingStore,2); + packet(0x0361,clif->pHomMenu,2,4); + packet(0x0362,clif->pDropItem,2,4); + packet(0x0363,clif->pDull/*,XXX*/); + packet(0x0364,clif->pMoveFromKafra,2,4); + packet(0x0365,clif->pPartyBookingRegisterReq,2,4); + packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pWalkToXY,2); + packet(0x0436,clif->pDull/*,XXX*/); + packet(0x0437,clif->pStoragePassword,0); + packet(0x0438,clif->pUseSkillToPos,2,4,6,8); + packet(0x07e4,clif->pTakeItem,2); + packet(0x07ec,clif->pMoveToKafra,2,4); + packet(0x0802,clif->pPartyInvite2,2); + packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0835,clif->pSearchStoreInfoNextPage,0); + packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x083c,clif->pUseSkillToId,2,4,6); + packet(0x0940,clif->pActionRequest,2,6); + packet(0x096a,clif->pGetCharNameRequest,2); #endif // 2014-11-05aRagexeRE, 2014-11-05bRagexeRE #if PACKETVER == 20141105 - packet(0x022d,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x035f,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0360,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x085c,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x0863,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x0864,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0865,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0871,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x0874,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0875,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0877,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x0879,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x0887,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0892,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0898,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x08a0,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x08a5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x08a7,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x08ad,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x091d,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x091e,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x092b,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x093e,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0944,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0948,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0950,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0957,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x095f,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0968,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 + packet(0x022d,clif->pDull/*,XXX*/); + packet(0x035f,clif->pUseSkillToId,2,4,6); + packet(0x0360,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x085c,clif->pUseSkillToPos,2,4,6,8); + packet(0x0863,clif->pGetCharNameRequest,2); + packet(0x0864,clif->pTickSend,2); + packet(0x0865,clif->pFriendsListAdd,2); + packet(0x0871,clif->pStoragePassword,0); + packet(0x0874,clif->pDull/*,XXX*/); + packet(0x0875,clif->pActionRequest,2,6); + packet(0x0877,clif->pItemListWindowSelected,2,4,8); + packet(0x0879,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x0887,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0892,clif->pDropItem,2,4); + packet(0x0898,clif->pMoveFromKafra,2,4); + packet(0x08a0,clif->pWantToConnection,2,6,10,14,18); + packet(0x08a5,clif->pChangeDir,2,4); + packet(0x08a7,clif->pReqCloseBuyingStore,0); + packet(0x08ad,clif->pMoveToKafra,2,4); + packet(0x091d,clif->pSolveCharName,2); + packet(0x091e,clif->pReqClickBuyingStore,2); + packet(0x092b,clif->pTakeItem,2); + packet(0x093e,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0944,clif->pHomMenu,2,4); + packet(0x0948,clif->pSearchStoreInfoNextPage,0); + packet(0x0950,clif->pPartyInvite2,2); + packet(0x0957,clif->pWalkToXY,2); + packet(0x095f,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0968,clif->pPartyBookingRegisterReq,2,4); #endif // 2014-11-12aRagexeRE #if PACKETVER == 20141112 - packet(0x0362,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0438,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x07e4,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0835,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0838,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x083c,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x085f,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0863,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0869,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x086c,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0871,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0885,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0886,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x0887,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x088d,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x08a0,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x08a1,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x08ab,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x0919,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x0926,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0929,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0943,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x094b,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x094c,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x094f,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0955,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x095d,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0960,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x0962,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 + packet(0x0362,clif->pFriendsListAdd,2); + packet(0x0438,clif->pSolveCharName,2); + packet(0x07e4,clif->pReqCloseBuyingStore,0); + packet(0x0835,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0838,clif->pSearchStoreInfoNextPage,0); + packet(0x083c,clif->pMoveToKafra,2,4); + packet(0x085f,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0863,clif->pUseSkillToId,2,4,6); + packet(0x0869,clif->pGetCharNameRequest,2); + packet(0x086c,clif->pPartyBookingRegisterReq,2,4); + packet(0x0871,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0885,clif->pChangeDir,2,4); + packet(0x0886,clif->pItemListWindowSelected,2,4,8); + packet(0x0887,clif->pPartyInvite2,2); + packet(0x088d,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x08a0,clif->pWalkToXY,2); + packet(0x08a1,clif->pReqClickBuyingStore,2); + packet(0x08ab,clif->pStoragePassword,0); + packet(0x0919,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x0926,clif->pHomMenu,2,4); + packet(0x0929,clif->pActionRequest,2,6); + packet(0x0943,clif->pDropItem,2,4); + packet(0x094b,clif->pWantToConnection,2,6,10,14,18); + packet(0x094c,clif->pDull/*,XXX*/); + packet(0x094f,clif->pDull/*,XXX*/); + packet(0x0955,clif->pMoveFromKafra,2,4); + packet(0x095d,clif->pTickSend,2); + packet(0x0960,clif->pTakeItem,2); + packet(0x0962,clif->pUseSkillToPos,2,4,6,8); #endif // 2014-11-19bRagexeRE #if PACKETVER == 20141119 - packet(0x0202,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x085a,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0861,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0865,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0866,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0872,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0873,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0875,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x087c,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0885,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0887,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0888,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x088d,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0895,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x08a8,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x08aa,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x0918,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x0920,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0921,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0929,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x092f,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0933,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x0938,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0940,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0941,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0942,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0948,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x094c,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0963,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 + packet(0x0202,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x085a,clif->pReqClickBuyingStore,2); + packet(0x0861,clif->pFriendsListAdd,2); + packet(0x0865,clif->pPartyInvite2,2); + packet(0x0866,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0872,clif->pActionRequest,2,6); + packet(0x0873,clif->pUseSkillToId,2,4,6); + packet(0x0875,clif->pGetCharNameRequest,2); + packet(0x087c,clif->pSolveCharName,2); + packet(0x0885,clif->pDull/*,XXX*/); + packet(0x0887,clif->pReqCloseBuyingStore,0); + packet(0x0888,clif->pPartyBookingRegisterReq,2,4); + packet(0x088d,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0895,clif->pItemListWindowSelected,2,4,8); + packet(0x08a8,clif->pTakeItem,2); + packet(0x08aa,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x0918,clif->pUseSkillToPos,2,4,6,8); + packet(0x0920,clif->pChangeDir,2,4); + packet(0x0921,clif->pWantToConnection,2,6,10,14,18); + packet(0x0929,clif->pMoveFromKafra,2,4); + packet(0x092f,clif->pDull/*,XXX*/); + packet(0x0933,clif->pStoragePassword,0); + packet(0x0938,clif->pTickSend,2); + packet(0x0940,clif->pSearchStoreInfoNextPage,0); + packet(0x0941,clif->pMoveToKafra,2,4); + packet(0x0942,clif->pHomMenu,2,4); + packet(0x0948,clif->pWalkToXY,2); + packet(0x094c,clif->pDropItem,2,4); + packet(0x0963,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); #endif // 2014-11-26aRagexeRE, 2014-11-26bRagexeRE, 2014-11-26cRagexeRE, 2014-11-26dRagexeRE, 2014-11-26eRagexeRE #if PACKETVER == 20141126 - packet(0x035f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0360,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0367,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0437,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0438,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x0802,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0819,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0835,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x083c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x086e,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0871,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0884,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0896,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x08a4,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x08ad,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x0920,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0942,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x095a,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x095b,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x095f,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0965,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x096a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 + packet(0x035f,clif->pTickSend,2); + packet(0x0360,clif->pReqClickBuyingStore,2); + packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0367,clif->pDull/*,XXX*/); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pActionRequest,2,6); + packet(0x0437,clif->pWalkToXY,2); + packet(0x0438,clif->pUseSkillToPos,2,4,6,8); + packet(0x0802,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x0819,clif->pPartyBookingRegisterReq,2,4); + packet(0x0835,clif->pSearchStoreInfoNextPage,0); + packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x083c,clif->pUseSkillToId,2,4,6); + packet(0x086e,clif->pWantToConnection,2,6,10,14,18); + packet(0x0871,clif->pMoveFromKafra,2,4); + packet(0x0884,clif->pDull/*,XXX*/); + packet(0x0896,clif->pItemListWindowSelected,2,4,8); + packet(0x08a4,clif->pChangeDir,2,4); + packet(0x08ad,clif->pStoragePassword,0); + packet(0x0920,clif->pDropItem,2,4); + packet(0x0942,clif->pFriendsListAdd,2); + packet(0x095a,clif->pTakeItem,2); + packet(0x095b,clif->pHomMenu,2,4); + packet(0x095f,clif->pMoveToKafra,2,4); + packet(0x0965,clif->pPartyInvite2,2); + packet(0x096a,clif->pGetCharNameRequest,2); #endif // 2014-12-03aRagexeRE #if PACKETVER == 20141203 - packet(0x0202,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0281,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0362,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0367,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x0368,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0802,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0861,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x086c,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x086d,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x086e,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x087b,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x087e,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x0880,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0889,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0898,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x089c,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x089d,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x08a5,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x08aa,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0917,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x091c,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x091d,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0928,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x092a,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0936,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0952,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0957,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x095c,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0962,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 + packet(0x0202,clif->pSolveCharName,2); + packet(0x0281,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0362,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0367,clif->pGetCharNameRequest,2); + packet(0x0368,clif->pDull/*,XXX*/); + packet(0x0802,clif->pWantToConnection,2,6,10,14,18); + packet(0x0861,clif->pMoveToKafra,2,4); + packet(0x086c,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x086d,clif->pMoveFromKafra,2,4); + packet(0x086e,clif->pTakeItem,2); + packet(0x087b,clif->pWalkToXY,2); + packet(0x087e,clif->pItemListWindowSelected,2,4,8); + packet(0x0880,clif->pChangeDir,2,4); + packet(0x0889,clif->pFriendsListAdd,2); + packet(0x0898,clif->pStoragePassword,0); + packet(0x089c,clif->pUseSkillToPos,2,4,6,8); + packet(0x089d,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x08a5,clif->pActionRequest,2,6); + packet(0x08aa,clif->pDropItem,2,4); + packet(0x0917,clif->pSearchStoreInfoNextPage,0); + packet(0x091c,clif->pPartyBookingRegisterReq,2,4); + packet(0x091d,clif->pPartyInvite2,2); + packet(0x0928,clif->pTickSend,2); + packet(0x092a,clif->pDull/*,XXX*/); + packet(0x0936,clif->pHomMenu,2,4); + packet(0x0952,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0957,clif->pReqCloseBuyingStore,0); + packet(0x095c,clif->pReqClickBuyingStore,2); + packet(0x0962,clif->pUseSkillToId,2,4,6); #endif // 2014-12-10cRagexeRE #if PACKETVER == 20141210 - packet(0x035f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0360,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0436,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0437,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0438,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x07e4,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0835,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x083c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x087b,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x0885,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x08ac,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x0917,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0927,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x092b,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0947,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0954,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0955,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0958,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0961,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0963,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x0967,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x096a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 + packet(0x035f,clif->pTickSend,2); + packet(0x0360,clif->pReqClickBuyingStore,2); + packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pActionRequest,2,6); + packet(0x0436,clif->pHomMenu,2,4); + packet(0x0437,clif->pWalkToXY,2); + packet(0x0438,clif->pUseSkillToPos,2,4,6,8); + packet(0x07e4,clif->pChangeDir,2,4); + packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0835,clif->pSearchStoreInfoNextPage,0); + packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x083c,clif->pUseSkillToId,2,4,6); + packet(0x087b,clif->pTakeItem,2); + packet(0x0885,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x08ac,clif->pItemListWindowSelected,2,4,8); + packet(0x0917,clif->pPartyInvite2,2); + packet(0x0927,clif->pDull/*,XXX*/); + packet(0x092b,clif->pPartyBookingRegisterReq,2,4); + packet(0x0947,clif->pDull/*,XXX*/); + packet(0x0954,clif->pWantToConnection,2,6,10,14,18); + packet(0x0955,clif->pMoveFromKafra,2,4); + packet(0x0958,clif->pDropItem,2,4); + packet(0x0961,clif->pFriendsListAdd,2); + packet(0x0963,clif->pStoragePassword,0); + packet(0x0967,clif->pMoveToKafra,2,4); + packet(0x096a,clif->pGetCharNameRequest,2); #endif // 2014-12-17aRagexeRE #if PACKETVER == 20141217 - packet(0x0360,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x085b,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0860,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x086c,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x0875,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0878,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0879,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0883,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x0889,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x088e,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x089f,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x08a1,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x08a2,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x08a8,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x08ab,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x08ac,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0919,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x091f,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0924,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0930,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0932,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0933,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0936,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x0939,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0940,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0944,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0945,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0948,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0960,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 + packet(0x0360,clif->pMoveToKafra,2,4); + packet(0x085b,clif->pSearchStoreInfoNextPage,0); + packet(0x0860,clif->pStoragePassword,0); + packet(0x086c,clif->pItemListWindowSelected,2,4,8); + packet(0x0875,clif->pMoveFromKafra,2,4); + packet(0x0878,clif->pWalkToXY,2); + packet(0x0879,clif->pHomMenu,2,4); + packet(0x0883,clif->pTakeItem,2); + packet(0x0889,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x088e,clif->pPartyBookingRegisterReq,2,4); + packet(0x089f,clif->pDropItem,2,4); + packet(0x08a1,clif->pUseSkillToPos,2,4,6,8); + packet(0x08a2,clif->pDull/*,XXX*/); + packet(0x08a8,clif->pPartyInvite2,2); + packet(0x08ab,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x08ac,clif->pTickSend,2); + packet(0x0919,clif->pChangeDir,2,4); + packet(0x091f,clif->pUseSkillToId,2,4,6); + packet(0x0924,clif->pActionRequest,2,6); + packet(0x0930,clif->pReqCloseBuyingStore,0); + packet(0x0932,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0933,clif->pFriendsListAdd,2); + packet(0x0936,clif->pGetCharNameRequest,2); + packet(0x0939,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0940,clif->pWantToConnection,2,6,10,14,18); + packet(0x0944,clif->pReqClickBuyingStore,2); + packet(0x0945,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0948,clif->pSolveCharName,2); + packet(0x0960,clif->pDull/*,XXX*/); #endif // 2014-12-23cRagexeRE #if PACKETVER == 20141223 - packet(0x0361,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0438,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0835,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x085a,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x085e,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0865,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0867,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x086c,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0870,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x087a,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x087b,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x089a,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x089b,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x08a3,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x08a4,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x08a8,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x08ac,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0930,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0932,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x093a,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0945,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0946,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x0949,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x094f,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0950,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0953,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0956,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x095b,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x095f,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 + packet(0x0361,clif->pMoveToKafra,2,4); + packet(0x0438,clif->pFriendsListAdd,2); + packet(0x0835,clif->pItemListWindowSelected,2,4,8); + packet(0x085a,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x085e,clif->pReqCloseBuyingStore,0); + packet(0x0865,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0867,clif->pHomMenu,2,4); + packet(0x086c,clif->pReqClickBuyingStore,2); + packet(0x0870,clif->pChangeDir,2,4); + packet(0x087a,clif->pTakeItem,2); + packet(0x087b,clif->pDull/*,XXX*/); + packet(0x089a,clif->pWalkToXY,2); + packet(0x089b,clif->pPartyBookingRegisterReq,2,4); + packet(0x08a3,clif->pPartyInvite2,2); + packet(0x08a4,clif->pStoragePassword,0); + packet(0x08a8,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x08ac,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0930,clif->pDropItem,2,4); + packet(0x0932,clif->pDull/*,XXX*/); + packet(0x093a,clif->pSearchStoreInfoNextPage,0); + packet(0x0945,clif->pTickSend,2); + packet(0x0946,clif->pGetCharNameRequest,2); + packet(0x0949,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x094f,clif->pWantToConnection,2,6,10,14,18); + packet(0x0950,clif->pSolveCharName,2); + packet(0x0953,clif->pMoveFromKafra,2,4); + packet(0x0956,clif->pUseSkillToPos,2,4,6,8); + packet(0x095b,clif->pUseSkillToId,2,4,6); + packet(0x095f,clif->pActionRequest,2,6); #endif // 2014-12-31aRagexeRE #if PACKETVER == 20141231 - packet(0x0202,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x022d,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x023b,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0281,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x035f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0360,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0361,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0362,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0363,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0364,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0365,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0436,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0437,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0438,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x07e4,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x07ec,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0802,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0835,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x083c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x086d,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x096a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 + packet(0x0202,clif->pChangeDir,2,4); + packet(0x022d,clif->pWantToConnection,2,6,10,14,18); + packet(0x023b,clif->pFriendsListAdd,2); + packet(0x0281,clif->pItemListWindowSelected,2,4,8); + packet(0x035f,clif->pTickSend,2); + packet(0x0360,clif->pReqClickBuyingStore,2); + packet(0x0361,clif->pHomMenu,2,4); + packet(0x0362,clif->pDropItem,2,4); + packet(0x0363,clif->pDull/*,XXX*/); + packet(0x0364,clif->pMoveFromKafra,2,4); + packet(0x0365,clif->pPartyBookingRegisterReq,2,4); + packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pActionRequest,2,6); + packet(0x0436,clif->pDull/*,XXX*/); + packet(0x0437,clif->pWalkToXY,2); + packet(0x0438,clif->pUseSkillToPos,2,4,6,8); + packet(0x07e4,clif->pTakeItem,2); + packet(0x07ec,clif->pMoveToKafra,2,4); + packet(0x0802,clif->pPartyInvite2,2); + packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0835,clif->pSearchStoreInfoNextPage,0); + packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x083c,clif->pUseSkillToId,2,4,6); + packet(0x086d,clif->pStoragePassword,0); + packet(0x096a,clif->pGetCharNameRequest,2); #endif // 2015-01-07aRagexeRE #if PACKETVER == 20150107 - packet(0x0281,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x035f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0360,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0362,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0363,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0364,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0365,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0436,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0437,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0438,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x07e4,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x07ec,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0802,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0835,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x083c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x087c,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0895,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x092d,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0943,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0947,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x096a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 + packet(0x0281,clif->pItemListWindowSelected,2,4,8); + packet(0x035f,clif->pTickSend,2); + packet(0x0360,clif->pReqClickBuyingStore,2); + packet(0x0362,clif->pDropItem,2,4); + packet(0x0363,clif->pDull/*,XXX*/); + packet(0x0364,clif->pMoveFromKafra,2,4); + packet(0x0365,clif->pPartyBookingRegisterReq,2,4); + packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pActionRequest,2,6); + packet(0x0436,clif->pDull/*,XXX*/); + packet(0x0437,clif->pWalkToXY,2); + packet(0x0438,clif->pUseSkillToPos,2,4,6,8); + packet(0x07e4,clif->pTakeItem,2); + packet(0x07ec,clif->pMoveToKafra,2,4); + packet(0x0802,clif->pPartyInvite2,2); + packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0835,clif->pSearchStoreInfoNextPage,0); + packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x083c,clif->pUseSkillToId,2,4,6); + packet(0x087c,clif->pFriendsListAdd,2); + packet(0x0895,clif->pStoragePassword,0); + packet(0x092d,clif->pHomMenu,2,4); + packet(0x0943,clif->pChangeDir,2,4); + packet(0x0947,clif->pWantToConnection,2,6,10,14,18); + packet(0x096a,clif->pGetCharNameRequest,2); #endif // 2015-01-14aRagexeRE #if PACKETVER == 20150114 - packet(0x0281,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x035f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0360,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0362,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0363,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0364,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0365,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0436,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0437,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0438,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x07e4,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x07ec,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0802,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0835,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x083c,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0868,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0899,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0946,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x0955,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0957,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x096a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 + packet(0x0281,clif->pItemListWindowSelected,2,4,8); + packet(0x035f,clif->pTickSend,2); + packet(0x0360,clif->pReqClickBuyingStore,2); + packet(0x0362,clif->pDropItem,2,4); + packet(0x0363,clif->pDull/*,XXX*/); + packet(0x0364,clif->pMoveFromKafra,2,4); + packet(0x0365,clif->pPartyBookingRegisterReq,2,4); + packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pActionRequest,2,6); + packet(0x0436,clif->pUseSkillToId,2,4,6); + packet(0x0437,clif->pWalkToXY,2); + packet(0x0438,clif->pUseSkillToPos,2,4,6,8); + packet(0x07e4,clif->pTakeItem,2); + packet(0x07ec,clif->pMoveToKafra,2,4); + packet(0x0802,clif->pPartyInvite2,2); + packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0835,clif->pSearchStoreInfoNextPage,0); + packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x083c,clif->pWantToConnection,2,6,10,14,18); + packet(0x0868,clif->pFriendsListAdd,2); + packet(0x0899,clif->pHomMenu,2,4); + packet(0x0946,clif->pStoragePassword,0); + packet(0x0955,clif->pDull/*,XXX*/); + packet(0x0957,clif->pChangeDir,2,4); + packet(0x096a,clif->pGetCharNameRequest,2); #endif // 2015-01-21aRagexeRE, 2015-01-21bRagexeRE #if PACKETVER == 20150121 - packet(0x0281,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x035f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0360,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0437,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0438,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x07e4,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0835,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x083c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x087c,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x088b,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x089d,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x089e,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x08ab,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x0918,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0919,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x091d,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x0955,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0959,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0963,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0967,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x096a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 + packet(0x0281,clif->pPartyBookingRegisterReq,2,4); + packet(0x035f,clif->pTickSend,2); + packet(0x0360,clif->pReqClickBuyingStore,2); + packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pActionRequest,2,6); + packet(0x0437,clif->pWalkToXY,2); + packet(0x0438,clif->pUseSkillToPos,2,4,6,8); + packet(0x07e4,clif->pItemListWindowSelected,2,4,8); + packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0835,clif->pSearchStoreInfoNextPage,0); + packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x083c,clif->pUseSkillToId,2,4,6); + packet(0x087c,clif->pDull/*,XXX*/); + packet(0x088b,clif->pFriendsListAdd,2); + packet(0x089d,clif->pHomMenu,2,4); + packet(0x089e,clif->pChangeDir,2,4); + packet(0x08ab,clif->pStoragePassword,0); + packet(0x0918,clif->pDull/*,XXX*/); + packet(0x0919,clif->pDropItem,2,4); + packet(0x091d,clif->pTakeItem,2); + packet(0x0955,clif->pMoveToKafra,2,4); + packet(0x0959,clif->pWantToConnection,2,6,10,14,18); + packet(0x0963,clif->pMoveFromKafra,2,4); + packet(0x0967,clif->pPartyInvite2,2); + packet(0x096a,clif->pGetCharNameRequest,2); #endif // 2015-01-28aRagexeRE #if PACKETVER == 20150128 - packet(0x0202,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x023b,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x035f,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0365,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0368,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0838,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x085a,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0864,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x086d,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0870,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0874,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x0875,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0876,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x087d,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0888,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x089a,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x08ab,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x091f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0927,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0929,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x092d,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0938,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x093a,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0944,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x094d,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x094e,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0952,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0963,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0968,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 + packet(0x0202,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x023b,clif->pChangeDir,2,4); + packet(0x035f,clif->pReqClickBuyingStore,2); + packet(0x0365,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0368,clif->pDull/*,XXX*/); + packet(0x0838,clif->pActionRequest,2,6); + packet(0x085a,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0864,clif->pUseSkillToPos,2,4,6,8); + packet(0x086d,clif->pMoveToKafra,2,4); + packet(0x0870,clif->pWalkToXY,2); + packet(0x0874,clif->pGetCharNameRequest,2); + packet(0x0875,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0876,clif->pHomMenu,2,4); + packet(0x087d,clif->pSolveCharName,2); + packet(0x0888,clif->pItemListWindowSelected,2,4,8); + packet(0x089a,clif->pPartyBookingRegisterReq,2,4); + packet(0x08ab,clif->pTakeItem,2); + packet(0x091f,clif->pTickSend,2); + packet(0x0927,clif->pPartyInvite2,2); + packet(0x0929,clif->pStoragePassword,0); + packet(0x092d,clif->pSearchStoreInfoNextPage,0); + packet(0x0938,clif->pDull/*,XXX*/); + packet(0x093a,clif->pUseSkillToId,2,4,6); + packet(0x0944,clif->pWantToConnection,2,6,10,14,18); + packet(0x094d,clif->pReqCloseBuyingStore,0); + packet(0x094e,clif->pMoveFromKafra,2,4); + packet(0x0952,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0963,clif->pFriendsListAdd,2); + packet(0x0968,clif->pDropItem,2,4); #endif // 2015-02-04cRagexeRE #if PACKETVER == 20150204 - packet(0x0202,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x022d,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x023b,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0281,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x035f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0360,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0361,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0362,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0363,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0364,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0365,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0436,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0437,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0438,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x07e4,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x07ec,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0802,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0835,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x083c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0966,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x096a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 + packet(0x0202,clif->pChangeDir,2,4); + packet(0x022d,clif->pWantToConnection,2,6,10,14,18); + packet(0x023b,clif->pFriendsListAdd,2); + packet(0x0281,clif->pItemListWindowSelected,2,4,8); + packet(0x035f,clif->pTickSend,2); + packet(0x0360,clif->pReqClickBuyingStore,2); + packet(0x0361,clif->pHomMenu,2,4); + packet(0x0362,clif->pDropItem,2,4); + packet(0x0363,clif->pDull/*,XXX*/); + packet(0x0364,clif->pMoveFromKafra,2,4); + packet(0x0365,clif->pPartyBookingRegisterReq,2,4); + packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pActionRequest,2,6); + packet(0x0436,clif->pDull/*,XXX*/); + packet(0x0437,clif->pWalkToXY,2); + packet(0x0438,clif->pUseSkillToPos,2,4,6,8); + packet(0x07e4,clif->pTakeItem,2); + packet(0x07ec,clif->pMoveToKafra,2,4); + packet(0x0802,clif->pPartyInvite2,2); + packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0835,clif->pSearchStoreInfoNextPage,0); + packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x083c,clif->pUseSkillToId,2,4,6); + packet(0x0966,clif->pStoragePassword,0); + packet(0x096a,clif->pGetCharNameRequest,2); #endif // 2015-02-11aRagexeRE #if PACKETVER == 20150211 - packet(0x023b,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0368,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0369,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0436,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0437,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x07e4,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0817,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x0819,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0835,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0862,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0863,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0870,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x0873,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x087b,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x087f,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x0882,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0883,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0885,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0886,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x089c,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x08a0,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x08a4,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x08aa,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0919,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0920,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0944,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0951,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x0957,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0958,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 + packet(0x023b,clif->pDull/*,XXX*/); + packet(0x0368,clif->pHomMenu,2,4); + packet(0x0369,clif->pChangeDir,2,4); + packet(0x0436,clif->pSearchStoreInfoNextPage,0); + packet(0x0437,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x07e4,clif->pDropItem,2,4); + packet(0x0817,clif->pUseSkillToPos,2,4,6,8); + packet(0x0819,clif->pReqCloseBuyingStore,0); + packet(0x0835,clif->pDull/*,XXX*/); + packet(0x0862,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0863,clif->pUseSkillToId,2,4,6); + packet(0x0870,clif->pTakeItem,2); + packet(0x0873,clif->pWalkToXY,2); + packet(0x087b,clif->pGetCharNameRequest,2); + packet(0x087f,clif->pStoragePassword,0); + packet(0x0882,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0883,clif->pMoveFromKafra,2,4); + packet(0x0885,clif->pTickSend,2); + packet(0x0886,clif->pReqClickBuyingStore,2); + packet(0x089c,clif->pPartyBookingRegisterReq,2,4); + packet(0x08a0,clif->pFriendsListAdd,2); + packet(0x08a4,clif->pWantToConnection,2,6,10,14,18); + packet(0x08aa,clif->pActionRequest,2,6); + packet(0x0919,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0920,clif->pSolveCharName,2); + packet(0x0944,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0951,clif->pItemListWindowSelected,2,4,8); + packet(0x0957,clif->pPartyInvite2,2); + packet(0x0958,clif->pMoveToKafra,2,4); #endif // 2015-02-17aRagexeRE #if PACKETVER == 20150217 - packet(0x0202,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x022d,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x023b,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0281,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x035f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0360,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0361,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0362,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0363,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0364,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0365,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0436,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0437,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0438,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x07e4,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x07ec,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0802,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0835,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x083c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x085b,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x096a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 + packet(0x0202,clif->pChangeDir,2,4); + packet(0x022d,clif->pWantToConnection,2,6,10,14,18); + packet(0x023b,clif->pFriendsListAdd,2); + packet(0x0281,clif->pItemListWindowSelected,2,4,8); + packet(0x035f,clif->pTickSend,2); + packet(0x0360,clif->pReqClickBuyingStore,2); + packet(0x0361,clif->pHomMenu,2,4); + packet(0x0362,clif->pDropItem,2,4); + packet(0x0363,clif->pDull/*,XXX*/); + packet(0x0364,clif->pMoveFromKafra,2,4); + packet(0x0365,clif->pPartyBookingRegisterReq,2,4); + packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pActionRequest,2,6); + packet(0x0436,clif->pDull/*,XXX*/); + packet(0x0437,clif->pWalkToXY,2); + packet(0x0438,clif->pUseSkillToPos,2,4,6,8); + packet(0x07e4,clif->pTakeItem,2); + packet(0x07ec,clif->pMoveToKafra,2,4); + packet(0x0802,clif->pPartyInvite2,2); + packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0835,clif->pSearchStoreInfoNextPage,0); + packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x083c,clif->pUseSkillToId,2,4,6); + packet(0x085b,clif->pStoragePassword,0); + packet(0x096a,clif->pGetCharNameRequest,2); #endif // 2015-02-25aRagexeRE, 2015-02-25bRagexeRE, 2015-02-25cRagexeRE, 2015-02-25dRagexeRE, 2015-02-25eRagexeRE, 2015-02-26aRagexeRE #if PACKETVER == 20150225 || \ PACKETVER == 20150226 - packet(0x02c4,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x035f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0360,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0362,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0436,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x0437,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0438,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0817,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x0819,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x083c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0867,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0885,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0896,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x089b,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x089c,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x08a4,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x0940,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0946,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0948,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x094f,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0952,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0955,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x096a,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 + packet(0x02c4,clif->pReqClickBuyingStore,2); + packet(0x035f,clif->pTickSend,2); + packet(0x0360,clif->pPartyInvite2,2); + packet(0x0362,clif->pReqCloseBuyingStore,0); + packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pActionRequest,2,6); + packet(0x0436,clif->pGetCharNameRequest,2); + packet(0x0437,clif->pWalkToXY,2); + packet(0x0438,clif->pUseSkillToPos,2,4,6,8); + packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0817,clif->pTakeItem,2); + packet(0x0819,clif->pSearchStoreInfoNextPage,0); + packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x083c,clif->pUseSkillToId,2,4,6); + packet(0x0867,clif->pPartyBookingRegisterReq,2,4); + packet(0x0885,clif->pDull/*,XXX*/); + packet(0x0896,clif->pItemListWindowSelected,2,4,8); + packet(0x089b,clif->pDull/*,XXX*/); + packet(0x089c,clif->pMoveToKafra,2,4); + packet(0x08a4,clif->pStoragePassword,0); + packet(0x0940,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0946,clif->pFriendsListAdd,2); + packet(0x0948,clif->pDropItem,2,4); + packet(0x094f,clif->pHomMenu,2,4); + packet(0x0952,clif->pMoveFromKafra,2,4); + packet(0x0955,clif->pChangeDir,2,4); + packet(0x096a,clif->pWantToConnection,2,6,10,14,18); #endif // 2015-03-04aRagexeRE, 2015-03-04bRagexeRE #if PACKETVER == 20150304 - packet(0x035f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0360,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0362,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0363,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0437,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0438,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x0802,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0835,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x083c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0862,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x086d,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x0879,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x087e,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0892,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x089a,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x093a,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0947,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x095d,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0960,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0961,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x096a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 + packet(0x035f,clif->pTickSend,2); + packet(0x0360,clif->pReqClickBuyingStore,2); + packet(0x0362,clif->pDropItem,2,4); + packet(0x0363,clif->pTakeItem,2); + packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pActionRequest,2,6); + packet(0x0437,clif->pWalkToXY,2); + packet(0x0438,clif->pUseSkillToPos,2,4,6,8); + packet(0x0802,clif->pDull/*,XXX*/); + packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0835,clif->pSearchStoreInfoNextPage,0); + packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x083c,clif->pUseSkillToId,2,4,6); + packet(0x0862,clif->pMoveFromKafra,2,4); + packet(0x086d,clif->pItemListWindowSelected,2,4,8); + packet(0x0879,clif->pChangeDir,2,4); + packet(0x087e,clif->pWantToConnection,2,6,10,14,18); + packet(0x0892,clif->pStoragePassword,0); + packet(0x089a,clif->pPartyInvite2,2); + packet(0x093a,clif->pPartyBookingRegisterReq,2,4); + packet(0x0947,clif->pMoveToKafra,2,4); + packet(0x095d,clif->pDull/*,XXX*/); + packet(0x0960,clif->pFriendsListAdd,2); + packet(0x0961,clif->pHomMenu,2,4); + packet(0x096a,clif->pGetCharNameRequest,2); #endif // 2015-03-11aRagexeRE, 2015-03-11bRagexeRE #if PACKETVER == 20150311 - packet(0x023b,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0360,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0436,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0438,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0815,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0838,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x086a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x086c,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x087b,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0883,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x0886,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0888,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0896,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x08a1,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x08a3,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x08a5,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x08a6,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x091c,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0928,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x092a,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x092e,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x093b,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0943,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0946,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0957,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0958,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x095b,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0963,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0964,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 + packet(0x023b,clif->pHomMenu,2,4); + packet(0x0360,clif->pReqCloseBuyingStore,0); + packet(0x0436,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0438,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0815,clif->pWantToConnection,2,6,10,14,18); + packet(0x0838,clif->pUseSkillToPos,2,4,6,8); + packet(0x086a,clif->pGetCharNameRequest,2); + packet(0x086c,clif->pStoragePassword,0); + packet(0x087b,clif->pPartyBookingRegisterReq,2,4); + packet(0x0883,clif->pItemListWindowSelected,2,4,8); + packet(0x0886,clif->pWalkToXY,2); + packet(0x0888,clif->pSearchStoreInfoNextPage,0); + packet(0x0896,clif->pActionRequest,2,6); + packet(0x08a1,clif->pUseSkillToId,2,4,6); + packet(0x08a3,clif->pTakeItem,2); + packet(0x08a5,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x08a6,clif->pFriendsListAdd,2); + packet(0x091c,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0928,clif->pChangeDir,2,4); + packet(0x092a,clif->pDull/*,XXX*/); + packet(0x092e,clif->pMoveFromKafra,2,4); + packet(0x093b,clif->pPartyInvite2,2); + packet(0x0943,clif->pSolveCharName,2); + packet(0x0946,clif->pDull/*,XXX*/); + packet(0x0957,clif->pReqClickBuyingStore,2); + packet(0x0958,clif->pTickSend,2); + packet(0x095b,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0963,clif->pDropItem,2,4); + packet(0x0964,clif->pMoveToKafra,2,4); #endif // 2015-03-18aRagexeRE, 2015-03-18bRagexeRE, 2015-03-18cRagexeRE #if PACKETVER == 20150318 - packet(0x0202,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x023b,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0281,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0367,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x07e4,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0802,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x0811,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0862,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0863,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0873,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x0885,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0889,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x088c,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x089c,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x08a4,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x091d,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0920,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0927,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0928,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x0936,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0937,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x0938,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x093a,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x093c,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x094c,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0951,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x0958,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0959,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0960,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 + packet(0x0202,clif->pDull/*,XXX*/); + packet(0x023b,clif->pTickSend,2); + packet(0x0281,clif->pDull/*,XXX*/); + packet(0x0367,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x07e4,clif->pFriendsListAdd,2); + packet(0x0802,clif->pItemListWindowSelected,2,4,8); + packet(0x0811,clif->pWantToConnection,2,6,10,14,18); + packet(0x0862,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0863,clif->pReqClickBuyingStore,2); + packet(0x0873,clif->pStoragePassword,0); + packet(0x0885,clif->pReqCloseBuyingStore,0); + packet(0x0889,clif->pActionRequest,2,6); + packet(0x088c,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x089c,clif->pMoveToKafra,2,4); + packet(0x08a4,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x091d,clif->pMoveFromKafra,2,4); + packet(0x0920,clif->pDropItem,2,4); + packet(0x0927,clif->pChangeDir,2,4); + packet(0x0928,clif->pTakeItem,2); + packet(0x0936,clif->pUseSkillToId,2,4,6); + packet(0x0937,clif->pUseSkillToPos,2,4,6,8); + packet(0x0938,clif->pPartyInvite2,2); + packet(0x093a,clif->pWalkToXY,2); + packet(0x093c,clif->pSolveCharName,2); + packet(0x094c,clif->pHomMenu,2,4); + packet(0x0951,clif->pGetCharNameRequest,2); + packet(0x0958,clif->pSearchStoreInfoNextPage,0); + packet(0x0959,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0960,clif->pPartyBookingRegisterReq,2,4); #endif // 2015-03-25bRagexeRE, 2015-03-25cRagexeRE #if PACKETVER == 20150325 - packet(0x0202,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0363,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0365,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0438,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0802,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0819,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x085d,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x086f,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x087c,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x087e,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0883,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x0885,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x0891,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x0893,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0897,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0899,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x08a1,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x08a7,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0919,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x092c,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x0931,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0932,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0938,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0940,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0947,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x094a,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0950,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x0954,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0969,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 + packet(0x0202,clif->pPartyInvite2,2); + packet(0x0363,clif->pDropItem,2,4); + packet(0x0365,clif->pUseSkillToId,2,4,6); + packet(0x0438,clif->pSearchStoreInfoNextPage,0); + packet(0x0802,clif->pDull/*,XXX*/); + packet(0x0819,clif->pReqClickBuyingStore,2); + packet(0x085d,clif->pSolveCharName,2); + packet(0x086f,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x087c,clif->pMoveToKafra,2,4); + packet(0x087e,clif->pChangeDir,2,4); + packet(0x0883,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x0885,clif->pUseSkillToPos,2,4,6,8); + packet(0x0891,clif->pGetCharNameRequest,2); + packet(0x0893,clif->pDull/*,XXX*/); + packet(0x0897,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0899,clif->pPartyBookingRegisterReq,2,4); + packet(0x08a1,clif->pActionRequest,2,6); + packet(0x08a7,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0919,clif->pStoragePassword,0); + packet(0x092c,clif->pTakeItem,2); + packet(0x0931,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0932,clif->pWalkToXY,2); + packet(0x0938,clif->pHomMenu,2,4); + packet(0x0940,clif->pFriendsListAdd,2); + packet(0x0947,clif->pReqCloseBuyingStore,0); + packet(0x094a,clif->pWantToConnection,2,6,10,14,18); + packet(0x0950,clif->pItemListWindowSelected,2,4,8); + packet(0x0954,clif->pTickSend,2); + packet(0x0969,clif->pMoveFromKafra,2,4); #endif // 2015-04-01bRagexeRE #if PACKETVER == 20150401 - packet(0x0362,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0367,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x0437,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x083c,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x085e,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x086f,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0875,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x087e,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x088c,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x088f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0895,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0898,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x089c,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x08a5,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x091b,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x091c,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0922,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0924,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0938,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0939,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x093a,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x093b,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x093e,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0946,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0949,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x094b,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0953,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x095f,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0964,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 + packet(0x0362,clif->pActionRequest,2,6); + packet(0x0367,clif->pGetCharNameRequest,2); + packet(0x0437,clif->pReqClickBuyingStore,2); + packet(0x083c,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x085e,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x086f,clif->pWalkToXY,2); + packet(0x0875,clif->pItemListWindowSelected,2,4,8); + packet(0x087e,clif->pDull/*,XXX*/); + packet(0x088c,clif->pDropItem,2,4); + packet(0x088f,clif->pTickSend,2); + packet(0x0895,clif->pMoveFromKafra,2,4); + packet(0x0898,clif->pHomMenu,2,4); + packet(0x089c,clif->pStoragePassword,0); + packet(0x08a5,clif->pMoveToKafra,2,4); + packet(0x091b,clif->pPartyInvite2,2); + packet(0x091c,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0922,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0924,clif->pPartyBookingRegisterReq,2,4); + packet(0x0938,clif->pReqCloseBuyingStore,0); + packet(0x0939,clif->pWantToConnection,2,6,10,14,18); + packet(0x093a,clif->pUseSkillToPos,2,4,6,8); + packet(0x093b,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x093e,clif->pSearchStoreInfoNextPage,0); + packet(0x0946,clif->pDull/*,XXX*/); + packet(0x0949,clif->pTakeItem,2); + packet(0x094b,clif->pUseSkillToId,2,4,6); + packet(0x0953,clif->pFriendsListAdd,2); + packet(0x095f,clif->pSolveCharName,2); + packet(0x0964,clif->pChangeDir,2,4); #endif // 2015-04-08aRagexeRE #if PACKETVER == 20150408 - packet(0x0819,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x085a,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x085c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x085e,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0865,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0868,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x086b,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x086e,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x0878,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x087e,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x087f,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0888,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0889,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x0891,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0898,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x089c,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x08a2,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x08a4,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x091b,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x091e,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x0922,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x092a,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0946,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x094f,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0955,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0957,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0959,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x095e,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x0963,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 + packet(0x0819,clif->pMoveFromKafra,2,4); + packet(0x085a,clif->pTickSend,2); + packet(0x085c,clif->pUseSkillToId,2,4,6); + packet(0x085e,clif->pHomMenu,2,4); + packet(0x0865,clif->pActionRequest,2,6); + packet(0x0868,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x086b,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x086e,clif->pUseSkillToPos,2,4,6,8); + packet(0x0878,clif->pPartyInvite2,2); + packet(0x087e,clif->pGetCharNameRequest,2); + packet(0x087f,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0888,clif->pMoveToKafra,2,4); + packet(0x0889,clif->pStoragePassword,0); + packet(0x0891,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0898,clif->pDropItem,2,4); + packet(0x089c,clif->pWalkToXY,2); + packet(0x08a2,clif->pSolveCharName,2); + packet(0x08a4,clif->pFriendsListAdd,2); + packet(0x091b,clif->pDull/*,XXX*/); + packet(0x091e,clif->pItemListWindowSelected,2,4,8); + packet(0x0922,clif->pChangeDir,2,4); + packet(0x092a,clif->pDull/*,XXX*/); + packet(0x0946,clif->pReqCloseBuyingStore,0); + packet(0x094f,clif->pPartyBookingRegisterReq,2,4); + packet(0x0955,clif->pReqClickBuyingStore,2); + packet(0x0957,clif->pWantToConnection,2,6,10,14,18); + packet(0x0959,clif->pTakeItem,2); + packet(0x095e,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x0963,clif->pSearchStoreInfoNextPage,0); #endif // 2015-04-15aRagexeRE #if PACKETVER == 20150415 - packet(0x0361,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0364,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0366,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0368,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0802,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0817,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x0835,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x085e,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0863,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0867,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0868,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x0869,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x086c,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0880,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x088e,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0891,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x0898,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x08a0,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0922,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x092e,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x093c,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x093e,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x0941,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0946,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x094d,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0953,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x095c,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0960,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x0961,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 + packet(0x0361,clif->pMoveToKafra,2,4); + packet(0x0364,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0366,clif->pWalkToXY,2); + packet(0x0368,clif->pReqClickBuyingStore,2); + packet(0x0802,clif->pSearchStoreInfoNextPage,0); + packet(0x0817,clif->pTakeItem,2); + packet(0x0835,clif->pDropItem,2,4); + packet(0x085e,clif->pDull/*,XXX*/); + packet(0x0863,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0867,clif->pPartyInvite2,2); + packet(0x0868,clif->pUseSkillToPos,2,4,6,8); + packet(0x0869,clif->pHomMenu,2,4); + packet(0x086c,clif->pActionRequest,2,6); + packet(0x0880,clif->pDull/*,XXX*/); + packet(0x088e,clif->pUseSkillToId,2,4,6); + packet(0x0891,clif->pGetCharNameRequest,2); + packet(0x0898,clif->pItemListWindowSelected,2,4,8); + packet(0x08a0,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0922,clif->pMoveFromKafra,2,4); + packet(0x092e,clif->pSolveCharName,2); + packet(0x093c,clif->pTickSend,2); + packet(0x093e,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x0941,clif->pWantToConnection,2,6,10,14,18); + packet(0x0946,clif->pReqCloseBuyingStore,0); + packet(0x094d,clif->pChangeDir,2,4); + packet(0x0953,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x095c,clif->pFriendsListAdd,2); + packet(0x0960,clif->pStoragePassword,0); + packet(0x0961,clif->pPartyBookingRegisterReq,2,4); #endif // 2015-04-22aRagexeRE #if PACKETVER == 20150422 - packet(0x0202,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x022d,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x023b,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0281,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x035f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0360,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0361,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0362,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0363,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0364,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0365,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0436,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0437,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0438,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x07e4,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x07ec,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0802,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0835,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x083c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0955,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x096a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 + packet(0x0202,clif->pChangeDir,2,4); + packet(0x022d,clif->pWantToConnection,2,6,10,14,18); + packet(0x023b,clif->pFriendsListAdd,2); + packet(0x0281,clif->pItemListWindowSelected,2,4,8); + packet(0x035f,clif->pTickSend,2); + packet(0x0360,clif->pReqClickBuyingStore,2); + packet(0x0361,clif->pHomMenu,2,4); + packet(0x0362,clif->pDropItem,2,4); + packet(0x0363,clif->pDull/*,XXX*/); + packet(0x0364,clif->pMoveFromKafra,2,4); + packet(0x0365,clif->pPartyBookingRegisterReq,2,4); + packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pActionRequest,2,6); + packet(0x0436,clif->pDull/*,XXX*/); + packet(0x0437,clif->pWalkToXY,2); + packet(0x0438,clif->pUseSkillToPos,2,4,6,8); + packet(0x07e4,clif->pTakeItem,2); + packet(0x07ec,clif->pMoveToKafra,2,4); + packet(0x0802,clif->pPartyInvite2,2); + packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0835,clif->pSearchStoreInfoNextPage,0); + packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x083c,clif->pUseSkillToId,2,4,6); + packet(0x0955,clif->pStoragePassword,0); + packet(0x096a,clif->pGetCharNameRequest,2); #endif // 2015-04-29aRagexeRE #if PACKETVER == 20150429 - packet(0x035f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0360,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0363,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0437,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0438,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0835,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x083c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0867,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x086a,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0886,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x088f,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0894,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0899,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x089f,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x08a6,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x08a8,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x08ad,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0929,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x093d,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0943,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x096a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 + packet(0x035f,clif->pTickSend,2); + packet(0x0360,clif->pReqClickBuyingStore,2); + packet(0x0363,clif->pChangeDir,2,4); + packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pActionRequest,2,6); + packet(0x0437,clif->pWalkToXY,2); + packet(0x0438,clif->pUseSkillToPos,2,4,6,8); + packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0835,clif->pSearchStoreInfoNextPage,0); + packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x083c,clif->pUseSkillToId,2,4,6); + packet(0x0867,clif->pStoragePassword,0); + packet(0x086a,clif->pWantToConnection,2,6,10,14,18); + packet(0x0886,clif->pPartyInvite2,2); + packet(0x088f,clif->pHomMenu,2,4); + packet(0x0894,clif->pDropItem,2,4); + packet(0x0899,clif->pMoveToKafra,2,4); + packet(0x089f,clif->pItemListWindowSelected,2,4,8); + packet(0x08a6,clif->pDull/*,XXX*/); + packet(0x08a8,clif->pDull/*,XXX*/); + packet(0x08ad,clif->pPartyBookingRegisterReq,2,4); + packet(0x0929,clif->pMoveFromKafra,2,4); + packet(0x093d,clif->pFriendsListAdd,2); + packet(0x0943,clif->pTakeItem,2); + packet(0x096a,clif->pGetCharNameRequest,2); #endif // 2015-05-07bRagexeRE #if PACKETVER == 20150507 - packet(0x023b,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x035f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0360,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0362,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0437,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0438,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0817,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0835,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x083c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x085a,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0864,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0887,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0889,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0924,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x092e,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x093b,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0941,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0942,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0953,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x0955,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0958,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x096a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 + packet(0x023b,clif->pHomMenu,2,4); + packet(0x035f,clif->pTickSend,2); + packet(0x0360,clif->pReqClickBuyingStore,2); + packet(0x0362,clif->pReqCloseBuyingStore,0); + packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pActionRequest,2,6); + packet(0x0437,clif->pWalkToXY,2); + packet(0x0438,clif->pUseSkillToPos,2,4,6,8); + packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0817,clif->pTakeItem,2); + packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0835,clif->pSearchStoreInfoNextPage,0); + packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x083c,clif->pUseSkillToId,2,4,6); + packet(0x085a,clif->pMoveToKafra,2,4); + packet(0x0864,clif->pPartyInvite2,2); + packet(0x0887,clif->pDull/*,XXX*/); + packet(0x0889,clif->pPartyBookingRegisterReq,2,4); + packet(0x0924,clif->pWantToConnection,2,6,10,14,18); + packet(0x092e,clif->pItemListWindowSelected,2,4,8); + packet(0x093b,clif->pChangeDir,2,4); + packet(0x0941,clif->pMoveFromKafra,2,4); + packet(0x0942,clif->pDull/*,XXX*/); + packet(0x0953,clif->pStoragePassword,0); + packet(0x0955,clif->pDropItem,2,4); + packet(0x0958,clif->pFriendsListAdd,2); + packet(0x096a,clif->pGetCharNameRequest,2); #endif // 2015-05-13aRagexeRE #if PACKETVER == 20150513 - packet(0x022d,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x02c4,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x035f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0360,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0363,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0437,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0438,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0817,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0835,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x083c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0864,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0879,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0883,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0885,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x08a8,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0923,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x0924,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0927,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x094a,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0958,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x0960,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x096a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 + packet(0x022d,clif->pReqCloseBuyingStore,0); + packet(0x02c4,clif->pDull/*,XXX*/); + packet(0x035f,clif->pTickSend,2); + packet(0x0360,clif->pReqClickBuyingStore,2); + packet(0x0363,clif->pWantToConnection,2,6,10,14,18); + packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pActionRequest,2,6); + packet(0x0437,clif->pWalkToXY,2); + packet(0x0438,clif->pUseSkillToPos,2,4,6,8); + packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0817,clif->pHomMenu,2,4); + packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0835,clif->pSearchStoreInfoNextPage,0); + packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x083c,clif->pUseSkillToId,2,4,6); + packet(0x0864,clif->pMoveFromKafra,2,4); + packet(0x0879,clif->pMoveToKafra,2,4); + packet(0x0883,clif->pPartyBookingRegisterReq,2,4); + packet(0x0885,clif->pDropItem,2,4); + packet(0x08a8,clif->pFriendsListAdd,2); + packet(0x0923,clif->pStoragePassword,0); + packet(0x0924,clif->pChangeDir,2,4); + packet(0x0927,clif->pDull/*,XXX*/); + packet(0x094a,clif->pPartyInvite2,2); + packet(0x0958,clif->pTakeItem,2); + packet(0x0960,clif->pItemListWindowSelected,2,4,8); + packet(0x096a,clif->pGetCharNameRequest,2); #endif // 2015-05-20aRagexeRE #if PACKETVER == 20150520 - packet(0x0202,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0361,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0835,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x085e,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0865,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0868,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x087d,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x0880,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0882,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x088c,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x089c,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x089e,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x08a2,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x08ad,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x091c,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x091d,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0924,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x092b,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0931,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0936,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x093d,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0940,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0945,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x094e,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x095b,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x095f,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0960,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0961,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x096a,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 + packet(0x0202,clif->pTickSend,2); + packet(0x0361,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0835,clif->pReqCloseBuyingStore,0); + packet(0x085e,clif->pReqClickBuyingStore,2); + packet(0x0865,clif->pWantToConnection,2,6,10,14,18); + packet(0x0868,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x087d,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x0880,clif->pPartyInvite2,2); + packet(0x0882,clif->pItemListWindowSelected,2,4,8); + packet(0x088c,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x089c,clif->pStoragePassword,0); + packet(0x089e,clif->pDropItem,2,4); + packet(0x08a2,clif->pGetCharNameRequest,2); + packet(0x08ad,clif->pChangeDir,2,4); + packet(0x091c,clif->pTakeItem,2); + packet(0x091d,clif->pActionRequest,2,6); + packet(0x0924,clif->pMoveFromKafra,2,4); + packet(0x092b,clif->pWalkToXY,2); + packet(0x0931,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0936,clif->pUseSkillToId,2,4,6); + packet(0x093d,clif->pFriendsListAdd,2); + packet(0x0940,clif->pDull/*,XXX*/); + packet(0x0945,clif->pSolveCharName,2); + packet(0x094e,clif->pUseSkillToPos,2,4,6,8); + packet(0x095b,clif->pHomMenu,2,4); + packet(0x095f,clif->pSearchStoreInfoNextPage,0); + packet(0x0960,clif->pDull/*,XXX*/); + packet(0x0961,clif->pMoveToKafra,2,4); + packet(0x096a,clif->pPartyBookingRegisterReq,2,4); #endif // 2015-05-27aRagexeRE #if PACKETVER == 20150527 - packet(0x0202,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x022d,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x023b,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0281,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x035f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0360,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0361,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0362,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0363,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0364,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0365,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0436,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0437,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0438,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x07e4,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x07ec,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0802,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0835,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0838,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x083c,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x0940,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x096a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 + packet(0x0202,clif->pChangeDir,2,4); + packet(0x022d,clif->pWantToConnection,2,6,10,14,18); + packet(0x023b,clif->pFriendsListAdd,2); + packet(0x0281,clif->pItemListWindowSelected,2,4,8); + packet(0x035f,clif->pTickSend,2); + packet(0x0360,clif->pReqClickBuyingStore,2); + packet(0x0361,clif->pHomMenu,2,4); + packet(0x0362,clif->pDropItem,2,4); + packet(0x0363,clif->pDull/*,XXX*/); + packet(0x0364,clif->pMoveFromKafra,2,4); + packet(0x0365,clif->pPartyBookingRegisterReq,2,4); + packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pActionRequest,2,6); + packet(0x0436,clif->pDull/*,XXX*/); + packet(0x0437,clif->pWalkToXY,2); + packet(0x0438,clif->pUseSkillToPos,2,4,6,8); + packet(0x07e4,clif->pTakeItem,2); + packet(0x07ec,clif->pMoveToKafra,2,4); + packet(0x0802,clif->pPartyInvite2,2); + packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0835,clif->pSearchStoreInfoNextPage,0); + packet(0x0838,clif->pUseSkillToId,2,4,6); + packet(0x083c,clif->pStoragePassword,0); + packet(0x0940,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x096a,clif->pGetCharNameRequest,2); #endif // 2015-06-03bRagexeRE #if PACKETVER == 20150603 - packet(0x0361,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0437,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0811,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0819,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0860,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0864,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0867,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x086a,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0873,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0877,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x0881,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x0884,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x088b,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0897,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x089a,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x089d,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x089e,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x08a1,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x08ad,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x091b,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0922,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x092d,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x093b,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x093f,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0955,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0956,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0960,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0969,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x096a,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 + packet(0x0361,clif->pPartyInvite2,2); + packet(0x0437,clif->pDull/*,XXX*/); + packet(0x0811,clif->pChangeDir,2,4); + packet(0x0819,clif->pReqClickBuyingStore,2); + packet(0x0860,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0864,clif->pFriendsListAdd,2); + packet(0x0867,clif->pMoveToKafra,2,4); + packet(0x086a,clif->pMoveFromKafra,2,4); + packet(0x0873,clif->pActionRequest,2,6); + packet(0x0877,clif->pItemListWindowSelected,2,4,8); + packet(0x0881,clif->pGetCharNameRequest,2); + packet(0x0884,clif->pDull/*,XXX*/); + packet(0x088b,clif->pDropItem,2,4); + packet(0x0897,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x089a,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x089d,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x089e,clif->pTickSend,2); + packet(0x08a1,clif->pUseSkillToPos,2,4,6,8); + packet(0x08ad,clif->pWantToConnection,2,6,10,14,18); + packet(0x091b,clif->pSolveCharName,2); + packet(0x0922,clif->pStoragePassword,0); + packet(0x092d,clif->pTakeItem,2); + packet(0x093b,clif->pSearchStoreInfoNextPage,0); + packet(0x093f,clif->pPartyBookingRegisterReq,2,4); + packet(0x0955,clif->pHomMenu,2,4); + packet(0x0956,clif->pReqCloseBuyingStore,0); + packet(0x0960,clif->pUseSkillToId,2,4,6); + packet(0x0969,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x096a,clif->pWalkToXY,2); #endif // 2015-06-10aRagexeRE #if PACKETVER == 20150610 - packet(0x022d,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0438,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x07e4,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0835,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0870,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0872,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0877,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x087e,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x0884,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0885,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0888,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x088c,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x088d,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x088f,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0897,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x08a0,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x08ac,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0925,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x092b,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x092c,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x092e,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0932,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x093e,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0940,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x0946,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0949,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0957,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x095d,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x0964,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 + packet(0x022d,clif->pReqCloseBuyingStore,0); + packet(0x0438,clif->pItemListWindowSelected,2,4,8); + packet(0x07e4,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0835,clif->pDull/*,XXX*/); + packet(0x0870,clif->pPartyInvite2,2); + packet(0x0872,clif->pSolveCharName,2); + packet(0x0877,clif->pReqClickBuyingStore,2); + packet(0x087e,clif->pGetCharNameRequest,2); + packet(0x0884,clif->pMoveFromKafra,2,4); + packet(0x0885,clif->pHomMenu,2,4); + packet(0x0888,clif->pWantToConnection,2,6,10,14,18); + packet(0x088c,clif->pMoveToKafra,2,4); + packet(0x088d,clif->pPartyBookingRegisterReq,2,4); + packet(0x088f,clif->pWalkToXY,2); + packet(0x0897,clif->pFriendsListAdd,2); + packet(0x08a0,clif->pStoragePassword,0); + packet(0x08ac,clif->pDropItem,2,4); + packet(0x0925,clif->pTakeItem,2); + packet(0x092b,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x092c,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x092e,clif->pDull/*,XXX*/); + packet(0x0932,clif->pSearchStoreInfoNextPage,0); + packet(0x093e,clif->pActionRequest,2,6); + packet(0x0940,clif->pUseSkillToPos,2,4,6,8); + packet(0x0946,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0949,clif->pUseSkillToId,2,4,6); + packet(0x0957,clif->pTickSend,2); + packet(0x095d,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x0964,clif->pChangeDir,2,4); #endif // 2015-06-17aRagexeRE, 2015-06-18aRagexeRE #if PACKETVER == 20150617 || \ PACKETVER == 20150618 - packet(0x035f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0360,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x0362,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0363,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x0365,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0436,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0437,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0438,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x07ec,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0811,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0835,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x083c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0869,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x086a,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x086b,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0870,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x087a,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0886,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0894,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0940,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x094e,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x096a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 + packet(0x035f,clif->pTickSend,2); + packet(0x0360,clif->pTakeItem,2); + packet(0x0362,clif->pReqClickBuyingStore,2); + packet(0x0363,clif->pStoragePassword,0); + packet(0x0365,clif->pItemListWindowSelected,2,4,8); + packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pActionRequest,2,6); + packet(0x0436,clif->pWantToConnection,2,6,10,14,18); + packet(0x0437,clif->pWalkToXY,2); + packet(0x0438,clif->pUseSkillToPos,2,4,6,8); + packet(0x07ec,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0811,clif->pDull/*,XXX*/); + packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0835,clif->pSearchStoreInfoNextPage,0); + packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x083c,clif->pUseSkillToId,2,4,6); + packet(0x0869,clif->pMoveFromKafra,2,4); + packet(0x086a,clif->pPartyBookingRegisterReq,2,4); + packet(0x086b,clif->pChangeDir,2,4); + packet(0x0870,clif->pPartyInvite2,2); + packet(0x087a,clif->pMoveToKafra,2,4); + packet(0x0886,clif->pHomMenu,2,4); + packet(0x0894,clif->pDull/*,XXX*/); + packet(0x0940,clif->pDropItem,2,4); + packet(0x094e,clif->pFriendsListAdd,2); + packet(0x096a,clif->pGetCharNameRequest,2); #endif // 2015-06-24aRagexeRE #if PACKETVER == 20150624 - packet(0x022d,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0281,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x035f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0360,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0362,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0363,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0364,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0365,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0436,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0437,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0438,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x07e4,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x07ec,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0802,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0835,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x083c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0870,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x0940,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0941,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0966,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x096a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 + packet(0x022d,clif->pWantToConnection,2,6,10,14,18); + packet(0x0281,clif->pItemListWindowSelected,2,4,8); + packet(0x035f,clif->pTickSend,2); + packet(0x0360,clif->pReqClickBuyingStore,2); + packet(0x0362,clif->pDropItem,2,4); + packet(0x0363,clif->pDull/*,XXX*/); + packet(0x0364,clif->pPartyBookingRegisterReq,2,4); + packet(0x0365,clif->pHomMenu,2,4); + packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pActionRequest,2,6); + packet(0x0436,clif->pDull/*,XXX*/); + packet(0x0437,clif->pWalkToXY,2); + packet(0x0438,clif->pUseSkillToPos,2,4,6,8); + packet(0x07e4,clif->pTakeItem,2); + packet(0x07ec,clif->pMoveToKafra,2,4); + packet(0x0802,clif->pPartyInvite2,2); + packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0835,clif->pSearchStoreInfoNextPage,0); + packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x083c,clif->pUseSkillToId,2,4,6); + packet(0x0870,clif->pStoragePassword,0); + packet(0x0940,clif->pMoveFromKafra,2,4); + packet(0x0941,clif->pFriendsListAdd,2); + packet(0x0966,clif->pChangeDir,2,4); + packet(0x096a,clif->pGetCharNameRequest,2); #endif // 2015-07-01bRagexeRE #if PACKETVER == 20150701 - packet(0x023b,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0281,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x07e4,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0802,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x086d,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x087d,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x087e,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x0883,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x088e,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0893,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x08a0,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x08a4,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x08a5,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x08a6,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x08ad,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x0919,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x0923,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0928,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x092c,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x093e,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x093f,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x0946,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x094e,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0954,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0956,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0958,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x095f,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0960,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0968,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 + packet(0x023b,clif->pWantToConnection,2,6,10,14,18); + packet(0x0281,clif->pSearchStoreInfoNextPage,0); + packet(0x07e4,clif->pMoveFromKafra,2,4); + packet(0x0802,clif->pGetCharNameRequest,2); + packet(0x086d,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x087d,clif->pTickSend,2); + packet(0x087e,clif->pItemListWindowSelected,2,4,8); + packet(0x0883,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x088e,clif->pReqCloseBuyingStore,0); + packet(0x0893,clif->pDull/*,XXX*/); + packet(0x08a0,clif->pDropItem,2,4); + packet(0x08a4,clif->pReqClickBuyingStore,2); + packet(0x08a5,clif->pPartyInvite2,2); + packet(0x08a6,clif->pUseSkillToId,2,4,6); + packet(0x08ad,clif->pUseSkillToPos,2,4,6,8); + packet(0x0919,clif->pStoragePassword,0); + packet(0x0923,clif->pDull/*,XXX*/); + packet(0x0928,clif->pMoveToKafra,2,4); + packet(0x092c,clif->pWalkToXY,2); + packet(0x093e,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x093f,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x0946,clif->pTakeItem,2); + packet(0x094e,clif->pSolveCharName,2); + packet(0x0954,clif->pHomMenu,2,4); + packet(0x0956,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0958,clif->pActionRequest,2,6); + packet(0x095f,clif->pFriendsListAdd,2); + packet(0x0960,clif->pPartyBookingRegisterReq,2,4); + packet(0x0968,clif->pChangeDir,2,4); #endif // 2015-07-08bRagexeRE, 2015-07-08cRagexeRE, 2015-07-08dRagexeRE #if PACKETVER == 20150708 - packet(0x022d,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x02c4,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x035f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0360,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0366,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0368,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0369,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0436,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0438,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x0811,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0835,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x083c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x085e,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0872,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x087f,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0884,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x089d,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x08a5,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x08ad,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x091f,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x092a,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x093c,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x095b,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0962,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x096a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 + packet(0x022d,clif->pSolveCharName,2); + packet(0x02c4,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x035f,clif->pTickSend,2); + packet(0x0360,clif->pReqClickBuyingStore,2); + packet(0x0366,clif->pPartyInvite2,2); + packet(0x0368,clif->pHomMenu,2,4); + packet(0x0369,clif->pActionRequest,2,6); + packet(0x0436,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0438,clif->pUseSkillToPos,2,4,6,8); + packet(0x0811,clif->pWantToConnection,2,6,10,14,18); + packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0835,clif->pSearchStoreInfoNextPage,0); + packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x083c,clif->pUseSkillToId,2,4,6); + packet(0x085e,clif->pMoveToKafra,2,4); + packet(0x0872,clif->pTakeItem,2); + packet(0x087f,clif->pDull/*,XXX*/); + packet(0x0884,clif->pWalkToXY,2); + packet(0x089d,clif->pChangeDir,2,4); + packet(0x08a5,clif->pItemListWindowSelected,2,4,8); + packet(0x08ad,clif->pStoragePassword,0); + packet(0x091f,clif->pPartyBookingRegisterReq,2,4); + packet(0x092a,clif->pMoveFromKafra,2,4); + packet(0x093c,clif->pFriendsListAdd,2); + packet(0x095b,clif->pDropItem,2,4); + packet(0x0962,clif->pDull/*,XXX*/); + packet(0x096a,clif->pGetCharNameRequest,2); #endif // 2015-07-15aRagexeRE #if PACKETVER == 20150715 - packet(0x023b,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0362,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x0364,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x0436,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0437,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0438,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0835,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x083c,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x085c,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x086f,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0873,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0879,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x087c,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x087f,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0886,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0895,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0896,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0897,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0899,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x089a,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x08a4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x08ac,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0917,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x093e,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0944,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0950,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0956,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x0961,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0965,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 + packet(0x023b,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0362,clif->pUseSkillToPos,2,4,6,8); + packet(0x0364,clif->pItemListWindowSelected,2,4,8); + packet(0x0436,clif->pSolveCharName,2); + packet(0x0437,clif->pUseSkillToId,2,4,6); + packet(0x0438,clif->pWalkToXY,2); + packet(0x0835,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x083c,clif->pActionRequest,2,6); + packet(0x085c,clif->pGetCharNameRequest,2); + packet(0x086f,clif->pMoveFromKafra,2,4); + packet(0x0873,clif->pTickSend,2); + packet(0x0879,clif->pWantToConnection,2,6,10,14,18); + packet(0x087c,clif->pDropItem,2,4); + packet(0x087f,clif->pSearchStoreInfoNextPage,0); + packet(0x0886,clif->pDull/*,XXX*/); + packet(0x0895,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0896,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0897,clif->pPartyInvite2,2); + packet(0x0899,clif->pReqCloseBuyingStore,0); + packet(0x089a,clif->pTakeItem,2); + packet(0x08a4,clif->pDull/*,XXX*/); + packet(0x08ac,clif->pChangeDir,2,4); + packet(0x0917,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x093e,clif->pHomMenu,2,4); + packet(0x0944,clif->pFriendsListAdd,2); + packet(0x0950,clif->pReqClickBuyingStore,2); + packet(0x0956,clif->pStoragePassword,0); + packet(0x0961,clif->pMoveToKafra,2,4); + packet(0x0965,clif->pPartyBookingRegisterReq,2,4); #endif // 2015-07-22bRagexeRE #if PACKETVER == 20150722 - packet(0x023b,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0281,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x0360,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0361,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0368,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0436,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0811,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0815,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0817,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0869,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x0878,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x087b,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x087d,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x087e,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0880,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0884,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x088d,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0899,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x08a8,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0919,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0921,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0925,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x092e,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x093c,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x093d,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x094c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x094f,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0951,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x0958,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 + packet(0x023b,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0281,clif->pGetCharNameRequest,2); + packet(0x0360,clif->pActionRequest,2,6); + packet(0x0361,clif->pDropItem,2,4); + packet(0x0368,clif->pPartyInvite2,2); + packet(0x0436,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0811,clif->pSearchStoreInfoNextPage,0); + packet(0x0815,clif->pReqCloseBuyingStore,0); + packet(0x0817,clif->pWantToConnection,2,6,10,14,18); + packet(0x0869,clif->pTakeItem,2); + packet(0x0878,clif->pUseSkillToPos,2,4,6,8); + packet(0x087b,clif->pPartyBookingRegisterReq,2,4); + packet(0x087d,clif->pWalkToXY,2); + packet(0x087e,clif->pSolveCharName,2); + packet(0x0880,clif->pReqClickBuyingStore,2); + packet(0x0884,clif->pHomMenu,2,4); + packet(0x088d,clif->pTickSend,2); + packet(0x0899,clif->pMoveFromKafra,2,4); + packet(0x08a8,clif->pChangeDir,2,4); + packet(0x0919,clif->pDull/*,XXX*/); + packet(0x0921,clif->pMoveToKafra,2,4); + packet(0x0925,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x092e,clif->pFriendsListAdd,2); + packet(0x093c,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x093d,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x094c,clif->pUseSkillToId,2,4,6); + packet(0x094f,clif->pDull/*,XXX*/); + packet(0x0951,clif->pItemListWindowSelected,2,4,8); + packet(0x0958,clif->pStoragePassword,0); #endif // 2015-07-29aRagexeRE #if PACKETVER == 20150729 - packet(0x0437,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0438,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x085b,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0860,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x086c,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x086d,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x086e,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x086f,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0870,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x0880,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x0881,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0886,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x089a,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x089b,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x08a3,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x08a4,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x08ac,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x08ad,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0920,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x092b,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x092f,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x093a,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x093f,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0940,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x094f,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0955,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x095e,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0961,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x096a,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 + packet(0x0437,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0438,clif->pHomMenu,2,4); + packet(0x085b,clif->pDull/*,XXX*/); + packet(0x0860,clif->pTakeItem,2); + packet(0x086c,clif->pMoveToKafra,2,4); + packet(0x086d,clif->pPartyBookingRegisterReq,2,4); + packet(0x086e,clif->pWalkToXY,2); + packet(0x086f,clif->pMoveFromKafra,2,4); + packet(0x0870,clif->pGetCharNameRequest,2); + packet(0x0880,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x0881,clif->pActionRequest,2,6); + packet(0x0886,clif->pSolveCharName,2); + packet(0x089a,clif->pUseSkillToPos,2,4,6,8); + packet(0x089b,clif->pFriendsListAdd,2); + packet(0x08a3,clif->pDull/*,XXX*/); + packet(0x08a4,clif->pChangeDir,2,4); + packet(0x08ac,clif->pPartyInvite2,2); + packet(0x08ad,clif->pReqClickBuyingStore,2); + packet(0x0920,clif->pSearchStoreInfoNextPage,0); + packet(0x092b,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x092f,clif->pUseSkillToId,2,4,6); + packet(0x093a,clif->pTickSend,2); + packet(0x093f,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0940,clif->pDropItem,2,4); + packet(0x094f,clif->pWantToConnection,2,6,10,14,18); + packet(0x0955,clif->pItemListWindowSelected,2,4,8); + packet(0x095e,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0961,clif->pStoragePassword,0); + packet(0x096a,clif->pReqCloseBuyingStore,0); #endif // 2015-08-05dRagexeRE #if PACKETVER == 20150805 - packet(0x0202,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x022d,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x023b,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0281,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x035f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0360,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0361,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0362,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0363,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0364,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0365,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0436,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0437,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0438,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x07e4,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x07ec,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0802,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0835,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x083c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x088a,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x096a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 + packet(0x0202,clif->pChangeDir,2,4); + packet(0x022d,clif->pWantToConnection,2,6,10,14,18); + packet(0x023b,clif->pFriendsListAdd,2); + packet(0x0281,clif->pItemListWindowSelected,2,4,8); + packet(0x035f,clif->pTickSend,2); + packet(0x0360,clif->pReqClickBuyingStore,2); + packet(0x0361,clif->pHomMenu,2,4); + packet(0x0362,clif->pDropItem,2,4); + packet(0x0363,clif->pDull/*,XXX*/); + packet(0x0364,clif->pMoveFromKafra,2,4); + packet(0x0365,clif->pPartyBookingRegisterReq,2,4); + packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pActionRequest,2,6); + packet(0x0436,clif->pDull/*,XXX*/); + packet(0x0437,clif->pWalkToXY,2); + packet(0x0438,clif->pUseSkillToPos,2,4,6,8); + packet(0x07e4,clif->pTakeItem,2); + packet(0x07ec,clif->pMoveToKafra,2,4); + packet(0x0802,clif->pPartyInvite2,2); + packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0835,clif->pSearchStoreInfoNextPage,0); + packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x083c,clif->pUseSkillToId,2,4,6); + packet(0x088a,clif->pStoragePassword,0); + packet(0x096a,clif->pGetCharNameRequest,2); #endif // 2015-08-12aRagexeRE #if PACKETVER == 20150812 - packet(0x0202,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x022d,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x023b,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0281,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x035f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0360,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0361,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0362,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0363,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0364,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0365,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0436,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0437,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0438,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x07e4,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x07ec,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0802,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0835,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x083c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x087f,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x096a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 + packet(0x0202,clif->pChangeDir,2,4); + packet(0x022d,clif->pWantToConnection,2,6,10,14,18); + packet(0x023b,clif->pFriendsListAdd,2); + packet(0x0281,clif->pItemListWindowSelected,2,4,8); + packet(0x035f,clif->pTickSend,2); + packet(0x0360,clif->pReqClickBuyingStore,2); + packet(0x0361,clif->pHomMenu,2,4); + packet(0x0362,clif->pDropItem,2,4); + packet(0x0363,clif->pDull/*,XXX*/); + packet(0x0364,clif->pMoveFromKafra,2,4); + packet(0x0365,clif->pPartyBookingRegisterReq,2,4); + packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pActionRequest,2,6); + packet(0x0436,clif->pDull/*,XXX*/); + packet(0x0437,clif->pWalkToXY,2); + packet(0x0438,clif->pUseSkillToPos,2,4,6,8); + packet(0x07e4,clif->pTakeItem,2); + packet(0x07ec,clif->pMoveToKafra,2,4); + packet(0x0802,clif->pPartyInvite2,2); + packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0835,clif->pSearchStoreInfoNextPage,0); + packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x083c,clif->pUseSkillToId,2,4,6); + packet(0x087f,clif->pStoragePassword,0); + packet(0x096a,clif->pGetCharNameRequest,2); #endif // 2015-08-19aRagexeRE, 2015-08-19bRagexeRE #if PACKETVER == 20150819 - packet(0x0202,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x022d,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0281,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x035f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0360,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0436,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0437,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0438,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0835,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x085d,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0862,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0865,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0871,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0888,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0919,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x091e,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x0927,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0940,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0961,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0967,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x096a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 + packet(0x0202,clif->pItemListWindowSelected,2,4,8); + packet(0x022d,clif->pUseSkillToId,2,4,6); + packet(0x0281,clif->pTakeItem,2); + packet(0x035f,clif->pTickSend,2); + packet(0x0360,clif->pReqClickBuyingStore,2); + packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pActionRequest,2,6); + packet(0x0436,clif->pDull/*,XXX*/); + packet(0x0437,clif->pWalkToXY,2); + packet(0x0438,clif->pUseSkillToPos,2,4,6,8); + packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0835,clif->pSearchStoreInfoNextPage,0); + packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x085d,clif->pMoveFromKafra,2,4); + packet(0x0862,clif->pDull/*,XXX*/); + packet(0x0865,clif->pFriendsListAdd,2); + packet(0x0871,clif->pPartyBookingRegisterReq,2,4); + packet(0x0888,clif->pHomMenu,2,4); + packet(0x0919,clif->pMoveToKafra,2,4); + packet(0x091e,clif->pStoragePassword,0); + packet(0x0927,clif->pWantToConnection,2,6,10,14,18); + packet(0x0940,clif->pDropItem,2,4); + packet(0x0961,clif->pPartyInvite2,2); + packet(0x0967,clif->pChangeDir,2,4); + packet(0x096a,clif->pGetCharNameRequest,2); #endif // 2015-08-26aRagexeRE, 2015-08-26bRagexeRE #if PACKETVER == 20150826 - packet(0x0362,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x0368,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0436,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x07ec,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0819,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0861,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0865,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x086b,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x0870,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x087b,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x088b,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x088d,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0890,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0891,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x08a0,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x08a1,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x08a4,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x08a8,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0924,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0928,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x092e,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x093b,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x0945,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x094f,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0951,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0959,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x0964,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0968,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0969,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 + packet(0x0362,clif->pStoragePassword,0); + packet(0x0368,clif->pMoveFromKafra,2,4); + packet(0x0436,clif->pPartyBookingRegisterReq,2,4); + packet(0x07ec,clif->pActionRequest,2,6); + packet(0x0819,clif->pReqClickBuyingStore,2); + packet(0x0861,clif->pDull/*,XXX*/); + packet(0x0865,clif->pWalkToXY,2); + packet(0x086b,clif->pUseSkillToPos,2,4,6,8); + packet(0x0870,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x087b,clif->pSolveCharName,2); + packet(0x088b,clif->pPartyInvite2,2); + packet(0x088d,clif->pFriendsListAdd,2); + packet(0x0890,clif->pSearchStoreInfoNextPage,0); + packet(0x0891,clif->pUseSkillToId,2,4,6); + packet(0x08a0,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x08a1,clif->pMoveToKafra,2,4); + packet(0x08a4,clif->pTakeItem,2); + packet(0x08a8,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0924,clif->pDropItem,2,4); + packet(0x0928,clif->pReqCloseBuyingStore,0); + packet(0x092e,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x093b,clif->pGetCharNameRequest,2); + packet(0x0945,clif->pHomMenu,2,4); + packet(0x094f,clif->pChangeDir,2,4); + packet(0x0951,clif->pTickSend,2); + packet(0x0959,clif->pItemListWindowSelected,2,4,8); + packet(0x0964,clif->pWantToConnection,2,6,10,14,18); + packet(0x0968,clif->pDull/*,XXX*/); + packet(0x0969,clif->pSearchStoreInfo,2,4,5,9,13,14,15); #endif // 2015-09-02aRagexeRE #if PACKETVER == 20150902 - packet(0x023b,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0360,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0367,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0802,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x083c,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x085b,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x085d,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0863,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x086f,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x087b,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x087f,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0886,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x0887,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0889,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x088d,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0892,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x0897,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0899,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x08a9,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0923,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0928,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x092a,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x092d,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0941,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0947,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x094f,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0953,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x095b,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0960,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 + packet(0x023b,clif->pPartyBookingRegisterReq,2,4); + packet(0x0360,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0367,clif->pTickSend,2); + packet(0x0802,clif->pStoragePassword,0); + packet(0x083c,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x085b,clif->pActionRequest,2,6); + packet(0x085d,clif->pSolveCharName,2); + packet(0x0863,clif->pUseSkillToId,2,4,6); + packet(0x086f,clif->pUseSkillToPos,2,4,6,8); + packet(0x087b,clif->pWalkToXY,2); + packet(0x087f,clif->pDull/*,XXX*/); + packet(0x0886,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x0887,clif->pDull/*,XXX*/); + packet(0x0889,clif->pReqCloseBuyingStore,0); + packet(0x088d,clif->pMoveFromKafra,2,4); + packet(0x0892,clif->pItemListWindowSelected,2,4,8); + packet(0x0897,clif->pMoveToKafra,2,4); + packet(0x0899,clif->pGetCharNameRequest,2); + packet(0x08a9,clif->pDropItem,2,4); + packet(0x0923,clif->pFriendsListAdd,2); + packet(0x0928,clif->pTakeItem,2); + packet(0x092a,clif->pHomMenu,2,4); + packet(0x092d,clif->pPartyInvite2,2); + packet(0x0941,clif->pChangeDir,2,4); + packet(0x0947,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x094f,clif->pReqClickBuyingStore,2); + packet(0x0953,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x095b,clif->pWantToConnection,2,6,10,14,18); + packet(0x0960,clif->pSearchStoreInfoNextPage,0); #endif // 2015-09-09aRagexeRE #if PACKETVER == 20150909 - packet(0x023b,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x035f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0360,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0361,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x0365,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x0437,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0438,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0835,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x083c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0861,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0871,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x087b,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0883,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x0886,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x088f,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0895,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0928,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0940,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0941,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x095e,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0962,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x096a,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 + packet(0x023b,clif->pActionRequest,2,6); + packet(0x035f,clif->pTickSend,2); + packet(0x0360,clif->pReqCloseBuyingStore,0); + packet(0x0361,clif->pGetCharNameRequest,2); + packet(0x0365,clif->pWalkToXY,2); + packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pStoragePassword,0); + packet(0x0437,clif->pMoveFromKafra,2,4); + packet(0x0438,clif->pUseSkillToPos,2,4,6,8); + packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0835,clif->pSearchStoreInfoNextPage,0); + packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x083c,clif->pUseSkillToId,2,4,6); + packet(0x0861,clif->pDull/*,XXX*/); + packet(0x0871,clif->pItemListWindowSelected,2,4,8); + packet(0x087b,clif->pPartyBookingRegisterReq,2,4); + packet(0x0883,clif->pTakeItem,2); + packet(0x0886,clif->pWantToConnection,2,6,10,14,18); + packet(0x088f,clif->pPartyInvite2,2); + packet(0x0895,clif->pFriendsListAdd,2); + packet(0x0928,clif->pDull/*,XXX*/); + packet(0x0940,clif->pReqClickBuyingStore,2); + packet(0x0941,clif->pHomMenu,2,4); + packet(0x095e,clif->pDropItem,2,4); + packet(0x0962,clif->pMoveToKafra,2,4); + packet(0x096a,clif->pChangeDir,2,4); #endif // 2015-09-16cRagexeRE #if PACKETVER == 20150916 - packet(0x022d,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x0817,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0835,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x085e,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0869,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0873,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0877,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x087f,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x0881,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x089b,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x089c,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x089e,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x08ac,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0920,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0924,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x092e,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x092f,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0934,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0936,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0938,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x093e,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0941,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x0942,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0948,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x094f,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x095a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x0960,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0961,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x0969,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 + packet(0x022d,clif->pUseSkillToPos,2,4,6,8); + packet(0x0817,clif->pSearchStoreInfoNextPage,0); + packet(0x0835,clif->pReqClickBuyingStore,2); + packet(0x085e,clif->pMoveFromKafra,2,4); + packet(0x0869,clif->pActionRequest,2,6); + packet(0x0873,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0877,clif->pWalkToXY,2); + packet(0x087f,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x0881,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x089b,clif->pPartyBookingRegisterReq,2,4); + packet(0x089c,clif->pTakeItem,2); + packet(0x089e,clif->pFriendsListAdd,2); + packet(0x08ac,clif->pTickSend,2); + packet(0x0920,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0924,clif->pPartyInvite2,2); + packet(0x092e,clif->pReqCloseBuyingStore,0); + packet(0x092f,clif->pDropItem,2,4); + packet(0x0934,clif->pMoveToKafra,2,4); + packet(0x0936,clif->pChangeDir,2,4); + packet(0x0938,clif->pDull/*,XXX*/); + packet(0x093e,clif->pUseSkillToId,2,4,6); + packet(0x0941,clif->pStoragePassword,0); + packet(0x0942,clif->pSolveCharName,2); + packet(0x0948,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x094f,clif->pDull/*,XXX*/); + packet(0x095a,clif->pGetCharNameRequest,2); + packet(0x0960,clif->pHomMenu,2,4); + packet(0x0961,clif->pItemListWindowSelected,2,4,8); + packet(0x0969,clif->pWantToConnection,2,6,10,14,18); #endif // 2015-09-23bRagexeRE, 2015-09-23eRagexeRE, 2015-09-23fRagexeRE #if PACKETVER == 20150923 - packet(0x0361,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0366,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x07e4,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x0817,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x085c,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x085d,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0864,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x086e,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x086f,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0870,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0879,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x087f,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0886,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x088e,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0892,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0895,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x089b,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x089f,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x08a0,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x08a2,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x08a5,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x08a6,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x091e,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x092b,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x0930,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0936,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x093b,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0951,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0961,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 + packet(0x0361,clif->pPartyBookingRegisterReq,2,4); + packet(0x0366,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x07e4,clif->pStoragePassword,0); + packet(0x0817,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x085c,clif->pSolveCharName,2); + packet(0x085d,clif->pFriendsListAdd,2); + packet(0x0864,clif->pHomMenu,2,4); + packet(0x086e,clif->pReqCloseBuyingStore,0); + packet(0x086f,clif->pUseSkillToId,2,4,6); + packet(0x0870,clif->pChangeDir,2,4); + packet(0x0879,clif->pMoveFromKafra,2,4); + packet(0x087f,clif->pSearchStoreInfoNextPage,0); + packet(0x0886,clif->pWalkToXY,2); + packet(0x088e,clif->pReqClickBuyingStore,2); + packet(0x0892,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0895,clif->pDull/*,XXX*/); + packet(0x089b,clif->pUseSkillToPos,2,4,6,8); + packet(0x089f,clif->pMoveToKafra,2,4); + packet(0x08a0,clif->pTickSend,2); + packet(0x08a2,clif->pWantToConnection,2,6,10,14,18); + packet(0x08a5,clif->pGetCharNameRequest,2); + packet(0x08a6,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x091e,clif->pDull/*,XXX*/); + packet(0x092b,clif->pTakeItem,2); + packet(0x0930,clif->pDropItem,2,4); + packet(0x0936,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x093b,clif->pPartyInvite2,2); + packet(0x0951,clif->pActionRequest,2,6); + packet(0x0961,clif->pItemListWindowSelected,2,4,8); #endif // 2015-10-01bRagexeRE #if PACKETVER == 20151001 - packet(0x0202,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x022d,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x023b,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0281,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x035f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0360,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0361,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0362,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0363,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0364,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0365,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0436,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0437,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0438,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x07e4,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x07ec,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0802,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0835,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x083c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0960,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x096a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 + packet(0x0202,clif->pChangeDir,2,4); + packet(0x022d,clif->pWantToConnection,2,6,10,14,18); + packet(0x023b,clif->pFriendsListAdd,2); + packet(0x0281,clif->pItemListWindowSelected,2,4,8); + packet(0x035f,clif->pTickSend,2); + packet(0x0360,clif->pReqClickBuyingStore,2); + packet(0x0361,clif->pHomMenu,2,4); + packet(0x0362,clif->pDropItem,2,4); + packet(0x0363,clif->pDull/*,XXX*/); + packet(0x0364,clif->pMoveFromKafra,2,4); + packet(0x0365,clif->pPartyBookingRegisterReq,2,4); + packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pActionRequest,2,6); + packet(0x0436,clif->pDull/*,XXX*/); + packet(0x0437,clif->pWalkToXY,2); + packet(0x0438,clif->pUseSkillToPos,2,4,6,8); + packet(0x07e4,clif->pTakeItem,2); + packet(0x07ec,clif->pMoveToKafra,2,4); + packet(0x0802,clif->pPartyInvite2,2); + packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0835,clif->pSearchStoreInfoNextPage,0); + packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x083c,clif->pUseSkillToId,2,4,6); + packet(0x0960,clif->pStoragePassword,0); + packet(0x096a,clif->pGetCharNameRequest,2); #endif // 2015-10-07aRagexeRE #if PACKETVER == 20151007 - packet(0x0202,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0281,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x035f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0360,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0362,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0363,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0364,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0365,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0437,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0438,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x07e4,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x07ec,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0802,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0811,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0835,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x083c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0862,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x093f,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x095f,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0961,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0967,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x096a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 + packet(0x0202,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0281,clif->pItemListWindowSelected,2,4,8); + packet(0x035f,clif->pTickSend,2); + packet(0x0360,clif->pReqClickBuyingStore,2); + packet(0x0362,clif->pDropItem,2,4); + packet(0x0363,clif->pDull/*,XXX*/); + packet(0x0364,clif->pMoveFromKafra,2,4); + packet(0x0365,clif->pPartyBookingRegisterReq,2,4); + packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pActionRequest,2,6); + packet(0x0437,clif->pWalkToXY,2); + packet(0x0438,clif->pUseSkillToPos,2,4,6,8); + packet(0x07e4,clif->pTakeItem,2); + packet(0x07ec,clif->pMoveToKafra,2,4); + packet(0x0802,clif->pPartyInvite2,2); + packet(0x0811,clif->pFriendsListAdd,2); + packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0835,clif->pSearchStoreInfoNextPage,0); + packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x083c,clif->pUseSkillToId,2,4,6); + packet(0x0862,clif->pDull/*,XXX*/); + packet(0x093f,clif->pHomMenu,2,4); + packet(0x095f,clif->pChangeDir,2,4); + packet(0x0961,clif->pWantToConnection,2,6,10,14,18); + packet(0x0967,clif->pStoragePassword,0); + packet(0x096a,clif->pGetCharNameRequest,2); #endif // 2015-10-14bRagexeRE #if PACKETVER == 20151014 - packet(0x0202,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0817,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0838,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x085a,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x085c,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0860,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0863,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0867,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0872,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0874,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x0881,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0883,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0884,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x0889,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x088e,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x089a,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x089b,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x089f,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x08aa,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x091c,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x091d,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x0930,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0934,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0944,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x094f,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0956,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x095e,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0961,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x0964,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 + packet(0x0202,clif->pPartyBookingRegisterReq,2,4); + packet(0x0817,clif->pFriendsListAdd,2); + packet(0x0838,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x085a,clif->pUseSkillToId,2,4,6); + packet(0x085c,clif->pActionRequest,2,6); + packet(0x0860,clif->pDropItem,2,4); + packet(0x0863,clif->pChangeDir,2,4); + packet(0x0867,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0872,clif->pHomMenu,2,4); + packet(0x0874,clif->pUseSkillToPos,2,4,6,8); + packet(0x0881,clif->pMoveFromKafra,2,4); + packet(0x0883,clif->pTickSend,2); + packet(0x0884,clif->pItemListWindowSelected,2,4,8); + packet(0x0889,clif->pReqClickBuyingStore,2); + packet(0x088e,clif->pDull/*,XXX*/); + packet(0x089a,clif->pDull/*,XXX*/); + packet(0x089b,clif->pReqCloseBuyingStore,0); + packet(0x089f,clif->pWalkToXY,2); + packet(0x08aa,clif->pTakeItem,2); + packet(0x091c,clif->pPartyInvite2,2); + packet(0x091d,clif->pStoragePassword,0); + packet(0x0930,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0934,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0944,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x094f,clif->pSearchStoreInfoNextPage,0); + packet(0x0956,clif->pSolveCharName,2); + packet(0x095e,clif->pMoveToKafra,2,4); + packet(0x0961,clif->pGetCharNameRequest,2); + packet(0x0964,clif->pWantToConnection,2,6,10,14,18); #endif // 2015-10-21aRagexeRE, 2015-10-22aRagexeRE #if PACKETVER == 20151021 || \ PACKETVER == 20151022 - packet(0x023b,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0281,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x02c4,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x035f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0360,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0361,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0362,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0363,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0364,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0365,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0436,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0437,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0438,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x07e4,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x07ec,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0835,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x083c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x086a,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x091d,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0940,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x096a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 + packet(0x023b,clif->pWantToConnection,2,6,10,14,18); + packet(0x0281,clif->pItemListWindowSelected,2,4,8); + packet(0x02c4,clif->pStoragePassword,0); + packet(0x035f,clif->pTickSend,2); + packet(0x0360,clif->pReqClickBuyingStore,2); + packet(0x0361,clif->pMoveToKafra,2,4); + packet(0x0362,clif->pDropItem,2,4); + packet(0x0363,clif->pDull/*,XXX*/); + packet(0x0364,clif->pMoveFromKafra,2,4); + packet(0x0365,clif->pPartyBookingRegisterReq,2,4); + packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pActionRequest,2,6); + packet(0x0436,clif->pDull/*,XXX*/); + packet(0x0437,clif->pWalkToXY,2); + packet(0x0438,clif->pUseSkillToPos,2,4,6,8); + packet(0x07e4,clif->pTakeItem,2); + packet(0x07ec,clif->pChangeDir,2,4); + packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0835,clif->pSearchStoreInfoNextPage,0); + packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x083c,clif->pUseSkillToId,2,4,6); + packet(0x086a,clif->pFriendsListAdd,2); + packet(0x091d,clif->pHomMenu,2,4); + packet(0x0940,clif->pPartyInvite2,2); + packet(0x096a,clif->pGetCharNameRequest,2); #endif // 2015-10-28bRagexeRE, 2015-10-28bRagexeRE_2, 2015-10-28cRagexeRE, 2015-10-28dRagexeRE, 2015-10-29aRagexeRE #if PACKETVER == 20151028 || \ PACKETVER == 20151029 - packet(0x0202,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x022d,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x023b,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0281,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x035f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0360,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0361,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0362,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0363,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0364,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0365,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0436,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0437,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0438,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x07e4,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x07ec,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0802,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0835,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x083c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0860,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x096a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 + packet(0x0202,clif->pChangeDir,2,4); + packet(0x022d,clif->pWantToConnection,2,6,10,14,18); + packet(0x023b,clif->pFriendsListAdd,2); + packet(0x0281,clif->pItemListWindowSelected,2,4,8); + packet(0x035f,clif->pTickSend,2); + packet(0x0360,clif->pReqClickBuyingStore,2); + packet(0x0361,clif->pHomMenu,2,4); + packet(0x0362,clif->pDropItem,2,4); + packet(0x0363,clif->pDull/*,XXX*/); + packet(0x0364,clif->pMoveFromKafra,2,4); + packet(0x0365,clif->pPartyBookingRegisterReq,2,4); + packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pActionRequest,2,6); + packet(0x0436,clif->pDull/*,XXX*/); + packet(0x0437,clif->pWalkToXY,2); + packet(0x0438,clif->pUseSkillToPos,2,4,6,8); + packet(0x07e4,clif->pTakeItem,2); + packet(0x07ec,clif->pMoveToKafra,2,4); + packet(0x0802,clif->pPartyInvite2,2); + packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0835,clif->pSearchStoreInfoNextPage,0); + packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x083c,clif->pUseSkillToId,2,4,6); + packet(0x0860,clif->pStoragePassword,0); + packet(0x096a,clif->pGetCharNameRequest,2); #endif // 2015-11-04aRagexeRE #if PACKETVER == 20151104 - packet(0x023b,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0360,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0363,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0364,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0436,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0437,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0438,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x07ec,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0811,clif->pPartyBookingRegisterReq,2,4,6); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0815,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0835,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x083c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0886,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0887,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x088b,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x088d,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x08a3,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x08a5,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0928,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0939,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x093a,clif->pItemListWindowSelected,2,4,8,12); // CZ_ITEMLISTWIN_RES // -1 - packet(0x0940,clif->pStoragePassword,2,4,20); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x0964,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 + packet(0x023b,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0360,clif->pWantToConnection,2,6,10,14,18); + packet(0x0363,clif->pWalkToXY,2); + packet(0x0364,clif->pMoveFromKafra,2,4); + packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pActionRequest,2,6); + packet(0x0436,clif->pReqClickBuyingStore,2); + packet(0x0437,clif->pDropItem,2,4); + packet(0x0438,clif->pUseSkillToPos,2,4,6,8); + packet(0x07ec,clif->pFriendsListAdd,2); + packet(0x0811,clif->pPartyBookingRegisterReq,2,4,6); + packet(0x0815,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0835,clif->pSearchStoreInfoNextPage,0); + packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x083c,clif->pUseSkillToId,2,4,6); + packet(0x0886,clif->pTickSend,2); + packet(0x0887,clif->pGetCharNameRequest,2); + packet(0x088b,clif->pMoveToKafra,2,4); + packet(0x088d,clif->pHomMenu,2,4); + packet(0x08a3,clif->pDull/*,XXX*/); + packet(0x08a5,clif->pPartyInvite2,2); + packet(0x0928,clif->pChangeDir,2,4); + packet(0x0939,clif->pDull/*,XXX*/); + packet(0x093a,clif->pItemListWindowSelected,2,4,8,12); + packet(0x0940,clif->pStoragePassword,2,4,20); + packet(0x0964,clif->pTakeItem,2); #endif // 2015-11-11aRagexeRE #if PACKETVER == 20151111 - packet(0x02c4,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x035f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0360,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0362,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0437,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0438,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x0802,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0815,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0835,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x083c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x085d,clif->pItemListWindowSelected,2,4,8,12); // CZ_ITEMLISTWIN_RES // -1 - packet(0x0862,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0871,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0885,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x089c,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0942,clif->pPartyBookingRegisterReq,2,4,6); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x094a,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x0958,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0966,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0967,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0969,clif->pStoragePassword,2,4,20); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x096a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 + packet(0x02c4,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x035f,clif->pTickSend,2); + packet(0x0360,clif->pReqClickBuyingStore,2); + packet(0x0362,clif->pHomMenu,2,4); + packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pMoveToKafra,2,4); + packet(0x0437,clif->pWalkToXY,2); + packet(0x0438,clif->pUseSkillToPos,2,4,6,8); + packet(0x0802,clif->pDull/*,XXX*/); + packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0815,clif->pPartyInvite2,2); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0835,clif->pSearchStoreInfoNextPage,0); + packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x083c,clif->pUseSkillToId,2,4,6); + packet(0x085d,clif->pItemListWindowSelected,2,4,8,12); + packet(0x0862,clif->pDropItem,2,4); + packet(0x0871,clif->pFriendsListAdd,2); + packet(0x0885,clif->pActionRequest,2,6); + packet(0x089c,clif->pChangeDir,2,4); + packet(0x0942,clif->pPartyBookingRegisterReq,2,4,6); + packet(0x094a,clif->pTakeItem,2); + packet(0x0958,clif->pDull/*,XXX*/); + packet(0x0966,clif->pMoveFromKafra,2,4); + packet(0x0967,clif->pWantToConnection,2,6,10,14,18); + packet(0x0969,clif->pStoragePassword,2,4,20); + packet(0x096a,clif->pGetCharNameRequest,2); #endif // 2015-11-18aRagexeRE #if PACKETVER == 20151118 - packet(0x022d,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x035f,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0360,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0365,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0437,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0438,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0835,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x083c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x086b,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x088b,clif->pStoragePassword,2,4,20); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x08ab,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0921,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0925,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x092e,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x092f,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x093c,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0943,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x0946,clif->pItemListWindowSelected,2,4,8,12); // CZ_ITEMLISTWIN_RES // -1 - packet(0x0957,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x095c,clif->pPartyBookingRegisterReq,2,4,6); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x096a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 + packet(0x022d,clif->pTickSend,2); + packet(0x035f,clif->pHomMenu,2,4); + packet(0x0360,clif->pReqClickBuyingStore,2); + packet(0x0365,clif->pPartyInvite2,2); + packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pActionRequest,2,6); + packet(0x0437,clif->pWalkToXY,2); + packet(0x0438,clif->pUseSkillToPos,2,4,6,8); + packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0835,clif->pSearchStoreInfoNextPage,0); + packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x083c,clif->pUseSkillToId,2,4,6); + packet(0x086b,clif->pMoveToKafra,2,4); + packet(0x088b,clif->pStoragePassword,2,4,20); + packet(0x08ab,clif->pMoveFromKafra,2,4); + packet(0x0921,clif->pFriendsListAdd,2); + packet(0x0925,clif->pWantToConnection,2,6,10,14,18); + packet(0x092e,clif->pChangeDir,2,4); + packet(0x092f,clif->pDull/*,XXX*/); + packet(0x093c,clif->pDropItem,2,4); + packet(0x0943,clif->pTakeItem,2); + packet(0x0946,clif->pItemListWindowSelected,2,4,8,12); + packet(0x0957,clif->pDull/*,XXX*/); + packet(0x095c,clif->pPartyBookingRegisterReq,2,4,6); + packet(0x096a,clif->pGetCharNameRequest,2); #endif // 2015-11-25bRagexeRE, 2015-11-25cRagexeRE, 2015-11-25dRagexeRE #if PACKETVER == 20151125 - packet(0x0361,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0365,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0366,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0368,clif->pItemListWindowSelected,2,4,8,12); // CZ_ITEMLISTWIN_RES // -1 - packet(0x0438,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x0802,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0838,clif->pPartyBookingRegisterReq,2,4,6); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x085e,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x085f,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0863,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0883,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0884,clif->pStoragePassword,2,4,20); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x0885,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x088c,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x088d,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0899,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x089c,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x089f,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x08a9,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x08ad,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0920,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x092a,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x092e,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x0939,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x093e,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x0951,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0956,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0957,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0959,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 + packet(0x0361,clif->pSearchStoreInfoNextPage,0); + packet(0x0365,clif->pWalkToXY,2); + packet(0x0366,clif->pMoveFromKafra,2,4); + packet(0x0368,clif->pItemListWindowSelected,2,4,8,12); + packet(0x0438,clif->pTakeItem,2); + packet(0x0802,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0838,clif->pPartyBookingRegisterReq,2,4,6); + packet(0x085e,clif->pGetCharNameRequest,2); + packet(0x085f,clif->pMoveToKafra,2,4); + packet(0x0863,clif->pReqCloseBuyingStore,0); + packet(0x0883,clif->pChangeDir,2,4); + packet(0x0884,clif->pStoragePassword,2,4,20); + packet(0x0885,clif->pDull/*,XXX*/); + packet(0x088c,clif->pTickSend,2); + packet(0x088d,clif->pWantToConnection,2,6,10,14,18); + packet(0x0899,clif->pFriendsListAdd,2); + packet(0x089c,clif->pActionRequest,2,6); + packet(0x089f,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x08a9,clif->pDropItem,2,4); + packet(0x08ad,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0920,clif->pSolveCharName,2); + packet(0x092a,clif->pUseSkillToId,2,4,6); + packet(0x092e,clif->pUseSkillToPos,2,4,6,8); + packet(0x0939,clif->pReqClickBuyingStore,2); + packet(0x093e,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x0951,clif->pHomMenu,2,4); + packet(0x0956,clif->pPartyInvite2,2); + packet(0x0957,clif->pDull/*,XXX*/); + packet(0x0959,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); #endif // 2015-12-02bRagexeRE #if PACKETVER == 20151202 - packet(0x0202,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x022d,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x023b,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0281,clif->pItemListWindowSelected,2,4,8,12); // CZ_ITEMLISTWIN_RES // -1 - packet(0x035f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0360,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0361,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0362,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0363,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0364,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0365,clif->pPartyBookingRegisterReq,2,4,6); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0436,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0437,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0438,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x07e4,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x07ec,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0802,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0835,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x083c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0870,clif->pStoragePassword,2,4,20); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x096a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 + packet(0x0202,clif->pChangeDir,2,4); + packet(0x022d,clif->pWantToConnection,2,6,10,14,18); + packet(0x023b,clif->pFriendsListAdd,2); + packet(0x0281,clif->pItemListWindowSelected,2,4,8,12); + packet(0x035f,clif->pTickSend,2); + packet(0x0360,clif->pReqClickBuyingStore,2); + packet(0x0361,clif->pHomMenu,2,4); + packet(0x0362,clif->pDropItem,2,4); + packet(0x0363,clif->pDull/*,XXX*/); + packet(0x0364,clif->pMoveFromKafra,2,4); + packet(0x0365,clif->pPartyBookingRegisterReq,2,4,6); + packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pActionRequest,2,6); + packet(0x0436,clif->pDull/*,XXX*/); + packet(0x0437,clif->pWalkToXY,2); + packet(0x0438,clif->pUseSkillToPos,2,4,6,8); + packet(0x07e4,clif->pTakeItem,2); + packet(0x07ec,clif->pMoveToKafra,2,4); + packet(0x0802,clif->pPartyInvite2,2); + packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0835,clif->pSearchStoreInfoNextPage,0); + packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x083c,clif->pUseSkillToId,2,4,6); + packet(0x0870,clif->pStoragePassword,2,4,20); + packet(0x096a,clif->pGetCharNameRequest,2); #endif // 2015-12-09aRagexeRE #if PACKETVER == 20151209 - packet(0x0365,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0369,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x07e4,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x07ec,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x0811,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0819,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x085b,clif->pStoragePassword,2,4,20); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x085d,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x085e,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0861,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0866,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0875,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x087a,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x087f,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x088e,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x088f,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0894,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x08a1,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0920,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x092d,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0930,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0932,clif->pItemListWindowSelected,2,4,8,12); // CZ_ITEMLISTWIN_RES // -1 - packet(0x093b,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0948,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x094a,clif->pPartyBookingRegisterReq,2,4,6); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0956,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x095c,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0961,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0964,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 + packet(0x0365,clif->pWalkToXY,2); + packet(0x0369,clif->pSolveCharName,2); + packet(0x07e4,clif->pPartyInvite2,2); + packet(0x07ec,clif->pTakeItem,2); + packet(0x0811,clif->pTickSend,2); + packet(0x0819,clif->pReqCloseBuyingStore,0); + packet(0x085b,clif->pStoragePassword,2,4,20); + packet(0x085d,clif->pGetCharNameRequest,2); + packet(0x085e,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0861,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0866,clif->pChangeDir,2,4); + packet(0x0875,clif->pSearchStoreInfoNextPage,0); + packet(0x087a,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x087f,clif->pReqClickBuyingStore,2); + packet(0x088e,clif->pUseSkillToId,2,4,6); + packet(0x088f,clif->pDull/*,XXX*/); + packet(0x0894,clif->pUseSkillToPos,2,4,6,8); + packet(0x08a1,clif->pHomMenu,2,4); + packet(0x0920,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x092d,clif->pMoveFromKafra,2,4); + packet(0x0930,clif->pDropItem,2,4); + packet(0x0932,clif->pItemListWindowSelected,2,4,8,12); + packet(0x093b,clif->pMoveToKafra,2,4); + packet(0x0948,clif->pWantToConnection,2,6,10,14,18); + packet(0x094a,clif->pPartyBookingRegisterReq,2,4,6); + packet(0x0956,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x095c,clif->pDull/*,XXX*/); + packet(0x0961,clif->pActionRequest,2,6); + packet(0x0964,clif->pFriendsListAdd,2); #endif // 2015-12-16aRagexeRE #if PACKETVER == 20151216 - packet(0x022d,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0361,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0362,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0364,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0365,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0436,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x083c,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x085b,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0864,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0865,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x086a,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x086e,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0870,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0874,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0885,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x088b,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x089d,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x089e,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x08a2,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x08a9,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x08ac,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x091d,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0944,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0947,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0949,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x0954,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0960,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0966,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0968,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 + packet(0x022d,clif->pChangeDir,2,4); + packet(0x0361,clif->pReqClickBuyingStore,2); + packet(0x0362,clif->pHomMenu,2,4); + packet(0x0364,clif->pDull/*,XXX*/); + packet(0x0365,clif->pPartyBookingRegisterReq,2,4); + packet(0x0436,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x083c,clif->pReqCloseBuyingStore,0); + packet(0x085b,clif->pTickSend,2); + packet(0x0864,clif->pMoveFromKafra,2,4); + packet(0x0865,clif->pUseSkillToPos,2,4,6,8); + packet(0x086a,clif->pDull/*,XXX*/); + packet(0x086e,clif->pPartyInvite2,2); + packet(0x0870,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0874,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0885,clif->pStoragePassword,0); + packet(0x088b,clif->pGetCharNameRequest,2); + packet(0x089d,clif->pActionRequest,2,6); + packet(0x089e,clif->pSolveCharName,2); + packet(0x08a2,clif->pWalkToXY,2); + packet(0x08a9,clif->pTakeItem,2); + packet(0x08ac,clif->pMoveToKafra,2,4); + packet(0x091d,clif->pFriendsListAdd,2); + packet(0x0944,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0947,clif->pWantToConnection,2,6,10,14,18); + packet(0x0949,clif->pItemListWindowSelected,2,4,8); + packet(0x0954,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0960,clif->pSearchStoreInfoNextPage,0); + packet(0x0966,clif->pDropItem,2,4); + packet(0x0968,clif->pUseSkillToId,2,4,6); #endif // 2015-12-23bRagexeRE #if PACKETVER == 20151223 - packet(0x02c4,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0362,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0364,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x0802,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0815,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0864,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x0866,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x086e,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x0872,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0875,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0876,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0881,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0884,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0886,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x088d,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0890,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x0891,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0898,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x08aa,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0918,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x091a,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x091b,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0920,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0923,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0924,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x095e,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x095f,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0965,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x0967,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 + packet(0x02c4,clif->pMoveToKafra,2,4); + packet(0x0362,clif->pDull/*,XXX*/); + packet(0x0364,clif->pTakeItem,2); + packet(0x0802,clif->pDull/*,XXX*/); + packet(0x0815,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0864,clif->pGetCharNameRequest,2); + packet(0x0866,clif->pWantToConnection,2,6,10,14,18); + packet(0x086e,clif->pUseSkillToPos,2,4,6,8); + packet(0x0872,clif->pPartyBookingRegisterReq,2,4); + packet(0x0875,clif->pUseSkillToId,2,4,6); + packet(0x0876,clif->pDropItem,2,4); + packet(0x0881,clif->pActionRequest,2,6); + packet(0x0884,clif->pMoveFromKafra,2,4); + packet(0x0886,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x088d,clif->pHomMenu,2,4); + packet(0x0890,clif->pItemListWindowSelected,2,4,8); + packet(0x0891,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0898,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x08aa,clif->pPartyInvite2,2); + packet(0x0918,clif->pSearchStoreInfoNextPage,0); + packet(0x091a,clif->pReqClickBuyingStore,2); + packet(0x091b,clif->pFriendsListAdd,2); + packet(0x0920,clif->pWalkToXY,2); + packet(0x0923,clif->pChangeDir,2,4); + packet(0x0924,clif->pTickSend,2); + packet(0x095e,clif->pSolveCharName,2); + packet(0x095f,clif->pReqCloseBuyingStore,0); + packet(0x0965,clif->pStoragePassword,0); + packet(0x0967,clif->pSearchStoreInfoListItemClick,2,6,10); #endif // 2015-12-30aRagexeRE #if PACKETVER == 20151230 - packet(0x02c4,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x035f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0360,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0365,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0366,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0436,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0437,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x07ec,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0815,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0835,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x083c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x085b,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x0861,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0869,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0886,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x088e,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0897,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x091d,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0923,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x093a,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0949,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x094e,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x096a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 + packet(0x02c4,clif->pMoveToKafra,2,4); + packet(0x035f,clif->pTickSend,2); + packet(0x0360,clif->pReqClickBuyingStore,2); + packet(0x0365,clif->pPartyBookingRegisterReq,2,4); + packet(0x0366,clif->pDull/*,XXX*/); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pActionRequest,2,6); + packet(0x0436,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0437,clif->pWalkToXY,2); + packet(0x07ec,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0815,clif->pWantToConnection,2,6,10,14,18); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0835,clif->pSearchStoreInfoNextPage,0); + packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x083c,clif->pUseSkillToId,2,4,6); + packet(0x085b,clif->pItemListWindowSelected,2,4,8); + packet(0x0861,clif->pPartyInvite2,2); + packet(0x0869,clif->pChangeDir,2,4); + packet(0x0886,clif->pUseSkillToPos,2,4,6,8); + packet(0x088e,clif->pFriendsListAdd,2); + packet(0x0897,clif->pDropItem,2,4); + packet(0x091d,clif->pMoveFromKafra,2,4); + packet(0x0923,clif->pStoragePassword,0); + packet(0x093a,clif->pDull/*,XXX*/); + packet(0x0949,clif->pHomMenu,2,4); + packet(0x094e,clif->pTakeItem,2); + packet(0x096a,clif->pGetCharNameRequest,2); #endif // 2016-01-06aRagexeRE #if PACKETVER == 20160106 - packet(0x035f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0360,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0437,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0438,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x07ec,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0835,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x083c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0861,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x086a,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x086c,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0878,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x087a,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x087f,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0885,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0889,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x088a,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0891,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x08a0,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x091d,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x0940,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x096a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 + packet(0x035f,clif->pTickSend,2); + packet(0x0360,clif->pReqClickBuyingStore,2); + packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pActionRequest,2,6); + packet(0x0437,clif->pWalkToXY,2); + packet(0x0438,clif->pUseSkillToPos,2,4,6,8); + packet(0x07ec,clif->pHomMenu,2,4); + packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0835,clif->pSearchStoreInfoNextPage,0); + packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x083c,clif->pUseSkillToId,2,4,6); + packet(0x0861,clif->pTakeItem,2); + packet(0x086a,clif->pDropItem,2,4); + packet(0x086c,clif->pDull/*,XXX*/); + packet(0x0878,clif->pStoragePassword,0); + packet(0x087a,clif->pPartyBookingRegisterReq,2,4); + packet(0x087f,clif->pWantToConnection,2,6,10,14,18); + packet(0x0885,clif->pMoveToKafra,2,4); + packet(0x0889,clif->pChangeDir,2,4); + packet(0x088a,clif->pPartyInvite2,2); + packet(0x0891,clif->pMoveFromKafra,2,4); + packet(0x08a0,clif->pFriendsListAdd,2); + packet(0x091d,clif->pItemListWindowSelected,2,4,8); + packet(0x0940,clif->pDull/*,XXX*/); + packet(0x096a,clif->pGetCharNameRequest,2); #endif // 2016-01-13aRagexeRE, 2016-01-13bRagexeRE, 2016-01-13bRagexeRE_2, 2016-01-13cRagexeRE #if PACKETVER == 20160113 - packet(0x022d,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x023b,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x035f,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0815,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x085b,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0864,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x086d,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0873,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0875,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0888,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x088b,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x088c,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0892,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0893,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0899,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x089a,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x08a0,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x08a6,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x08aa,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0919,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x091b,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x0924,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0930,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0932,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x093c,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0941,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x094d,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x094f,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0967,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 + packet(0x022d,clif->pUseSkillToPos,2,4,6,8); + packet(0x023b,clif->pWalkToXY,2); + packet(0x035f,clif->pPartyBookingRegisterReq,2,4); + packet(0x0815,clif->pStoragePassword,0); + packet(0x085b,clif->pChangeDir,2,4); + packet(0x0864,clif->pReqClickBuyingStore,2); + packet(0x086d,clif->pHomMenu,2,4); + packet(0x0873,clif->pDull/*,XXX*/); + packet(0x0875,clif->pSearchStoreInfoNextPage,0); + packet(0x0888,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x088b,clif->pPartyInvite2,2); + packet(0x088c,clif->pReqCloseBuyingStore,0); + packet(0x0892,clif->pUseSkillToId,2,4,6); + packet(0x0893,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0899,clif->pFriendsListAdd,2); + packet(0x089a,clif->pActionRequest,2,6); + packet(0x08a0,clif->pTickSend,2); + packet(0x08a6,clif->pTakeItem,2); + packet(0x08aa,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0919,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x091b,clif->pGetCharNameRequest,2); + packet(0x0924,clif->pDropItem,2,4); + packet(0x0930,clif->pSolveCharName,2); + packet(0x0932,clif->pMoveToKafra,2,4); + packet(0x093c,clif->pMoveFromKafra,2,4); + packet(0x0941,clif->pItemListWindowSelected,2,4,8); + packet(0x094d,clif->pWantToConnection,2,6,10,14,18); + packet(0x094f,clif->pDull/*,XXX*/); + packet(0x0967,clif->pReqOpenBuyingStore,2,4,8,9,89); #endif // 2016-01-20aRagexeRE #if PACKETVER == 20160120 - packet(0x0202,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x022d,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x023b,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0281,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x035f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0360,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0361,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0362,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0363,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0364,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0365,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0436,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0437,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0438,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x07e4,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x07ec,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0802,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0835,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x083c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0865,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x096a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 + packet(0x0202,clif->pChangeDir,2,4); + packet(0x022d,clif->pWantToConnection,2,6,10,14,18); + packet(0x023b,clif->pFriendsListAdd,2); + packet(0x0281,clif->pItemListWindowSelected,2,4,8); + packet(0x035f,clif->pTickSend,2); + packet(0x0360,clif->pReqClickBuyingStore,2); + packet(0x0361,clif->pHomMenu,2,4); + packet(0x0362,clif->pDropItem,2,4); + packet(0x0363,clif->pDull/*,XXX*/); + packet(0x0364,clif->pMoveFromKafra,2,4); + packet(0x0365,clif->pPartyBookingRegisterReq,2,4); + packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pActionRequest,2,6); + packet(0x0436,clif->pDull/*,XXX*/); + packet(0x0437,clif->pWalkToXY,2); + packet(0x0438,clif->pUseSkillToPos,2,4,6,8); + packet(0x07e4,clif->pTakeItem,2); + packet(0x07ec,clif->pMoveToKafra,2,4); + packet(0x0802,clif->pPartyInvite2,2); + packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0835,clif->pSearchStoreInfoNextPage,0); + packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x083c,clif->pUseSkillToId,2,4,6); + packet(0x0865,clif->pStoragePassword,0); + packet(0x096a,clif->pGetCharNameRequest,2); #endif // 2016-01-27aRagexeRE, 2016-01-27aRagexeRE_2, 2016-01-27bRagexeRE #if PACKETVER == 20160127 - packet(0x022d,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0281,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x035f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0360,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0362,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0363,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0364,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0365,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0436,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0437,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0438,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x07e4,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x07ec,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0802,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0835,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x083c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x085e,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0922,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x095a,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x0961,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x096a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 + packet(0x022d,clif->pWantToConnection,2,6,10,14,18); + packet(0x0281,clif->pItemListWindowSelected,2,4,8); + packet(0x035f,clif->pTickSend,2); + packet(0x0360,clif->pReqClickBuyingStore,2); + packet(0x0362,clif->pDropItem,2,4); + packet(0x0363,clif->pDull/*,XXX*/); + packet(0x0364,clif->pMoveFromKafra,2,4); + packet(0x0365,clif->pPartyBookingRegisterReq,2,4); + packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pActionRequest,2,6); + packet(0x0436,clif->pDull/*,XXX*/); + packet(0x0437,clif->pWalkToXY,2); + packet(0x0438,clif->pUseSkillToPos,2,4,6,8); + packet(0x07e4,clif->pTakeItem,2); + packet(0x07ec,clif->pMoveToKafra,2,4); + packet(0x0802,clif->pPartyInvite2,2); + packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0835,clif->pSearchStoreInfoNextPage,0); + packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x083c,clif->pUseSkillToId,2,4,6); + packet(0x085e,clif->pChangeDir,2,4); + packet(0x0922,clif->pHomMenu,2,4); + packet(0x095a,clif->pStoragePassword,0); + packet(0x0961,clif->pFriendsListAdd,2); + packet(0x096a,clif->pGetCharNameRequest,2); #endif // 2016-02-03aRagexeRE #if PACKETVER == 20160203 - packet(0x0202,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0360,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0361,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0436,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0437,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0438,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x07e4,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0811,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0819,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0835,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x083c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x086c,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0872,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0873,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x088c,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0918,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x093e,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0940,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0947,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0954,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x095a,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x095d,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x096a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 + packet(0x0202,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0360,clif->pReqClickBuyingStore,2); + packet(0x0361,clif->pFriendsListAdd,2); + packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pActionRequest,2,6); + packet(0x0436,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0437,clif->pTickSend,2); + packet(0x0438,clif->pUseSkillToPos,2,4,6,8); + packet(0x07e4,clif->pSearchStoreInfoNextPage,0); + packet(0x0811,clif->pChangeDir,2,4); + packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x0819,clif->pWantToConnection,2,6,10,14,18); + packet(0x0835,clif->pItemListWindowSelected,2,4,8); + packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x083c,clif->pUseSkillToId,2,4,6); + packet(0x086c,clif->pPartyBookingRegisterReq,2,4); + packet(0x0872,clif->pHomMenu,2,4); + packet(0x0873,clif->pStoragePassword,0); + packet(0x088c,clif->pDull/*,XXX*/); + packet(0x0918,clif->pDull/*,XXX*/); + packet(0x093e,clif->pPartyInvite2,2); + packet(0x0940,clif->pWalkToXY,2); + packet(0x0947,clif->pDropItem,2,4); + packet(0x0954,clif->pMoveFromKafra,2,4); + packet(0x095a,clif->pTakeItem,2); + packet(0x095d,clif->pMoveToKafra,2,4); + packet(0x096a,clif->pGetCharNameRequest,2); #endif // 2016-02-11aRagexeRE #if PACKETVER == 20160211 - packet(0x022d,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x023b,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0281,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x035f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0360,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0362,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0363,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0364,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0365,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0436,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0437,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0438,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x07e4,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x07ec,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0802,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0835,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x083c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x086c,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0870,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0886,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x096a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 + packet(0x022d,clif->pWantToConnection,2,6,10,14,18); + packet(0x023b,clif->pPartyBookingRegisterReq,2,4); + packet(0x0281,clif->pItemListWindowSelected,2,4,8); + packet(0x035f,clif->pTickSend,2); + packet(0x0360,clif->pReqClickBuyingStore,2); + packet(0x0362,clif->pDropItem,2,4); + packet(0x0363,clif->pDull/*,XXX*/); + packet(0x0364,clif->pMoveFromKafra,2,4); + packet(0x0365,clif->pStoragePassword,0); + packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pActionRequest,2,6); + packet(0x0436,clif->pDull/*,XXX*/); + packet(0x0437,clif->pWalkToXY,2); + packet(0x0438,clif->pUseSkillToPos,2,4,6,8); + packet(0x07e4,clif->pTakeItem,2); + packet(0x07ec,clif->pMoveToKafra,2,4); + packet(0x0802,clif->pPartyInvite2,2); + packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0835,clif->pSearchStoreInfoNextPage,0); + packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x083c,clif->pUseSkillToId,2,4,6); + packet(0x086c,clif->pChangeDir,2,4); + packet(0x0870,clif->pFriendsListAdd,2); + packet(0x0886,clif->pHomMenu,2,4); + packet(0x096a,clif->pGetCharNameRequest,2); #endif // 2016-02-17aRagexeRE, 2016-02-17bRagexeRE, 2016-02-17bRagexeRE_2, 2016-02-17cRagexeRE #if PACKETVER == 20160217 - packet(0x0202,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x023b,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0362,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0365,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x0864,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0870,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0873,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x087a,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0888,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x088d,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x088f,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0899,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x08a0,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x08a9,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x08ac,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x08ad,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x091d,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0920,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0926,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x092e,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x093b,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x093e,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0941,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x094a,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x094f,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x095e,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x0966,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x0967,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0969,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 + packet(0x0202,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x023b,clif->pReqCloseBuyingStore,0); + packet(0x0362,clif->pChangeDir,2,4); + packet(0x0365,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x0864,clif->pMoveToKafra,2,4); + packet(0x0870,clif->pFriendsListAdd,2); + packet(0x0873,clif->pHomMenu,2,4); + packet(0x087a,clif->pWantToConnection,2,6,10,14,18); + packet(0x0888,clif->pTickSend,2); + packet(0x088d,clif->pReqClickBuyingStore,2); + packet(0x088f,clif->pDropItem,2,4); + packet(0x0899,clif->pDull/*,XXX*/); + packet(0x08a0,clif->pMoveFromKafra,2,4); + packet(0x08a9,clif->pPartyInvite2,2); + packet(0x08ac,clif->pPartyBookingRegisterReq,2,4); + packet(0x08ad,clif->pSearchStoreInfoNextPage,0); + packet(0x091d,clif->pWalkToXY,2); + packet(0x0920,clif->pActionRequest,2,6); + packet(0x0926,clif->pUseSkillToId,2,4,6); + packet(0x092e,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x093b,clif->pItemListWindowSelected,2,4,8); + packet(0x093e,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0941,clif->pTakeItem,2); + packet(0x094a,clif->pUseSkillToPos,2,4,6,8); + packet(0x094f,clif->pDull/*,XXX*/); + packet(0x095e,clif->pStoragePassword,0); + packet(0x0966,clif->pGetCharNameRequest,2); + packet(0x0967,clif->pSolveCharName,2); + packet(0x0969,clif->pReqOpenBuyingStore,2,4,8,9,89); #endif // 2016-02-24aRagexeRE, 2016-02-24bRagexeRE #if PACKETVER == 20160224 - packet(0x022d,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x035f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0364,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0436,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0438,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0835,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x083c,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0861,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x086b,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0884,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0885,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0888,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x08a9,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0920,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0929,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x092f,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x0936,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x0938,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x094c,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0961,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x096a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 + packet(0x022d,clif->pPartyInvite2,2); + packet(0x035f,clif->pTickSend,2); + packet(0x0364,clif->pUseSkillToId,2,4,6); + packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pMoveFromKafra,2,4); + packet(0x0436,clif->pDropItem,2,4); + packet(0x0438,clif->pUseSkillToPos,2,4,6,8); + packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0835,clif->pSearchStoreInfoNextPage,0); + packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x083c,clif->pMoveToKafra,2,4); + packet(0x0861,clif->pWantToConnection,2,6,10,14,18); + packet(0x086b,clif->pDull/*,XXX*/); + packet(0x0884,clif->pActionRequest,2,6); + packet(0x0885,clif->pReqClickBuyingStore,2); + packet(0x0888,clif->pWalkToXY,2); + packet(0x08a9,clif->pFriendsListAdd,2); + packet(0x0920,clif->pDull/*,XXX*/); + packet(0x0929,clif->pChangeDir,2,4); + packet(0x092f,clif->pItemListWindowSelected,2,4,8); + packet(0x0936,clif->pStoragePassword,0); + packet(0x0938,clif->pTakeItem,2); + packet(0x094c,clif->pPartyBookingRegisterReq,2,4); + packet(0x0961,clif->pHomMenu,2,4); + packet(0x096a,clif->pGetCharNameRequest,2); #endif // 2016-03-02bRagexeRE #if PACKETVER == 20160302 - packet(0x022d,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0367,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0802,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0819,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x085b,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0864,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0865,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0867,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0868,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0873,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x0875,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x087a,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x087d,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0883,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x08a6,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x08a9,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x091a,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0927,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x092d,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x092f,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0945,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x094e,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x0950,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0957,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x095a,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0960,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0961,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0967,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0968,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 + packet(0x022d,clif->pChangeDir,2,4); + packet(0x0367,clif->pReqClickBuyingStore,2); + packet(0x0802,clif->pWantToConnection,2,6,10,14,18); + packet(0x0819,clif->pWalkToXY,2); + packet(0x085b,clif->pFriendsListAdd,2); + packet(0x0864,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0865,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0867,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0868,clif->pHomMenu,2,4); + packet(0x0873,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x0875,clif->pSearchStoreInfoNextPage,0); + packet(0x087a,clif->pUseSkillToPos,2,4,6,8); + packet(0x087d,clif->pPartyInvite2,2); + packet(0x0883,clif->pUseSkillToId,2,4,6); + packet(0x08a6,clif->pReqCloseBuyingStore,0); + packet(0x08a9,clif->pMoveFromKafra,2,4); + packet(0x091a,clif->pDropItem,2,4); + packet(0x0927,clif->pTakeItem,2); + packet(0x092d,clif->pDull/*,XXX*/); + packet(0x092f,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0945,clif->pGetCharNameRequest,2); + packet(0x094e,clif->pStoragePassword,0); + packet(0x0950,clif->pDull/*,XXX*/); + packet(0x0957,clif->pItemListWindowSelected,2,4,8); + packet(0x095a,clif->pTickSend,2); + packet(0x0960,clif->pMoveToKafra,2,4); + packet(0x0961,clif->pPartyBookingRegisterReq,2,4); + packet(0x0967,clif->pSolveCharName,2); + packet(0x0968,clif->pActionRequest,2,6); #endif // 2016-03-09aRagexeRE #if PACKETVER == 20160309 - packet(0x023b,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0281,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0361,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0364,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0819,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x0838,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x083c,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x085a,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x085f,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0866,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x086a,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0873,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x087c,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x087e,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x089b,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x089d,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x08a7,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x091d,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x0920,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0922,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0929,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x092a,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x092e,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0932,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x094f,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0956,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x095e,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x096a,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 + packet(0x023b,clif->pDropItem,2,4); + packet(0x0281,clif->pReqClickBuyingStore,2); + packet(0x0361,clif->pFriendsListAdd,2); + packet(0x0364,clif->pStoragePassword,0); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0819,clif->pUseSkillToPos,2,4,6,8); + packet(0x0838,clif->pWalkToXY,2); + packet(0x083c,clif->pPartyInvite2,2); + packet(0x085a,clif->pMoveToKafra,2,4); + packet(0x085f,clif->pUseSkillToId,2,4,6); + packet(0x0866,clif->pSearchStoreInfoNextPage,0); + packet(0x086a,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0873,clif->pDull/*,XXX*/); + packet(0x087c,clif->pWantToConnection,2,6,10,14,18); + packet(0x087e,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x089b,clif->pItemListWindowSelected,2,4,8); + packet(0x089d,clif->pChangeDir,2,4); + packet(0x08a7,clif->pPartyBookingRegisterReq,2,4); + packet(0x091d,clif->pGetCharNameRequest,2); + packet(0x0920,clif->pMoveFromKafra,2,4); + packet(0x0922,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0929,clif->pDull/*,XXX*/); + packet(0x092a,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x092e,clif->pReqCloseBuyingStore,0); + packet(0x0932,clif->pHomMenu,2,4); + packet(0x094f,clif->pActionRequest,2,6); + packet(0x0956,clif->pTickSend,2); + packet(0x095e,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x096a,clif->pTakeItem,2); #endif // 2016-03-16aRagexeRE #if PACKETVER == 20160316 - packet(0x0202,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x022d,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x023b,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0281,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x035f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0360,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0361,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0362,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0363,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0364,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0365,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0436,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0437,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0438,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x07e4,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x07ec,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0802,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0835,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x083c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0922,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x096a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 + packet(0x0202,clif->pChangeDir,2,4); + packet(0x022d,clif->pWantToConnection,2,6,10,14,18); + packet(0x023b,clif->pFriendsListAdd,2); + packet(0x0281,clif->pItemListWindowSelected,2,4,8); + packet(0x035f,clif->pTickSend,2); + packet(0x0360,clif->pReqClickBuyingStore,2); + packet(0x0361,clif->pHomMenu,2,4); + packet(0x0362,clif->pDropItem,2,4); + packet(0x0363,clif->pDull/*,XXX*/); + packet(0x0364,clif->pMoveFromKafra,2,4); + packet(0x0365,clif->pPartyBookingRegisterReq,2,4); + packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pActionRequest,2,6); + packet(0x0436,clif->pDull/*,XXX*/); + packet(0x0437,clif->pWalkToXY,2); + packet(0x0438,clif->pUseSkillToPos,2,4,6,8); + packet(0x07e4,clif->pTakeItem,2); + packet(0x07ec,clif->pMoveToKafra,2,4); + packet(0x0802,clif->pPartyInvite2,2); + packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0835,clif->pSearchStoreInfoNextPage,0); + packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x083c,clif->pUseSkillToId,2,4,6); + packet(0x0922,clif->pStoragePassword,0); + packet(0x096a,clif->pGetCharNameRequest,2); #endif // 2016-03-23aRagexeRE, 2016-03-23bRagexeRE #if PACKETVER == 20160323 - packet(0x035f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0360,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0365,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0437,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0438,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0835,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x083c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0867,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0869,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x086a,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0872,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x0878,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0883,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0896,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x089a,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x091b,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0926,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0927,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0933,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x093c,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x096a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 + packet(0x035f,clif->pTickSend,2); + packet(0x0360,clif->pReqClickBuyingStore,2); + packet(0x0365,clif->pFriendsListAdd,2); + packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pActionRequest,2,6); + packet(0x0437,clif->pWalkToXY,2); + packet(0x0438,clif->pUseSkillToPos,2,4,6,8); + packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0835,clif->pSearchStoreInfoNextPage,0); + packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x083c,clif->pUseSkillToId,2,4,6); + packet(0x0867,clif->pDull/*,XXX*/); + packet(0x0869,clif->pTakeItem,2); + packet(0x086a,clif->pMoveFromKafra,2,4); + packet(0x0872,clif->pStoragePassword,0); + packet(0x0878,clif->pWantToConnection,2,6,10,14,18); + packet(0x0883,clif->pPartyInvite2,2); + packet(0x0896,clif->pItemListWindowSelected,2,4,8); + packet(0x089a,clif->pHomMenu,2,4); + packet(0x091b,clif->pDull/*,XXX*/); + packet(0x0926,clif->pMoveToKafra,2,4); + packet(0x0927,clif->pPartyBookingRegisterReq,2,4); + packet(0x0933,clif->pChangeDir,2,4); + packet(0x093c,clif->pDropItem,2,4); + packet(0x096a,clif->pGetCharNameRequest,2); #endif // 2016-03-30aRagexeRE #if PACKETVER == 20160330 - packet(0x035f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0360,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0365,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0437,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0438,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0835,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x083c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0867,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x086d,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x0878,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x087f,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0889,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x088b,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x088d,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0918,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0925,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x092a,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x092c,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0930,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0939,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x093b,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x096a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 + packet(0x035f,clif->pTickSend,2); + packet(0x0360,clif->pReqClickBuyingStore,2); + packet(0x0365,clif->pStoragePassword,0); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pActionRequest,2,6); + packet(0x0437,clif->pWalkToXY,2); + packet(0x0438,clif->pUseSkillToPos,2,4,6,8); + packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0835,clif->pSearchStoreInfoNextPage,0); + packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x083c,clif->pUseSkillToId,2,4,6); + packet(0x0867,clif->pPartyInvite2,2); + packet(0x086d,clif->pTakeItem,2); + packet(0x0878,clif->pDull/*,XXX*/); + packet(0x087f,clif->pMoveFromKafra,2,4); + packet(0x0889,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x088b,clif->pHomMenu,2,4); + packet(0x088d,clif->pDull/*,XXX*/); + packet(0x0918,clif->pMoveToKafra,2,4); + packet(0x0925,clif->pWantToConnection,2,6,10,14,18); + packet(0x092a,clif->pItemListWindowSelected,2,4,8); + packet(0x092c,clif->pPartyBookingRegisterReq,2,4); + packet(0x0930,clif->pChangeDir,2,4); + packet(0x0939,clif->pDropItem,2,4); + packet(0x093b,clif->pFriendsListAdd,2); + packet(0x096a,clif->pGetCharNameRequest,2); #endif // 2016-04-06aRagexeRE #if PACKETVER == 20160406 - packet(0x0364,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x07e4,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0819,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x085a,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x085c,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x0869,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0877,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x0878,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0879,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0884,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0892,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0895,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0898,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x089b,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x089e,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x08a1,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x08a9,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x08ac,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0927,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x092d,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x0933,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0934,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0940,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0949,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x094d,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0953,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x095d,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x095f,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0962,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 + packet(0x0364,clif->pSolveCharName,2); + packet(0x07e4,clif->pDropItem,2,4); + packet(0x0819,clif->pSearchStoreInfoNextPage,0); + packet(0x085a,clif->pPartyBookingRegisterReq,2,4); + packet(0x085c,clif->pUseSkillToPos,2,4,6,8); + packet(0x0869,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0877,clif->pTakeItem,2); + packet(0x0878,clif->pFriendsListAdd,2); + packet(0x0879,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0884,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0892,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0895,clif->pWantToConnection,2,6,10,14,18); + packet(0x0898,clif->pPartyInvite2,2); + packet(0x089b,clif->pGetCharNameRequest,2); + packet(0x089e,clif->pMoveFromKafra,2,4); + packet(0x08a1,clif->pActionRequest,2,6); + packet(0x08a9,clif->pReqCloseBuyingStore,0); + packet(0x08ac,clif->pDull/*,XXX*/); + packet(0x0927,clif->pMoveToKafra,2,4); + packet(0x092d,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x0933,clif->pChangeDir,2,4); + packet(0x0934,clif->pUseSkillToId,2,4,6); + packet(0x0940,clif->pTickSend,2); + packet(0x0949,clif->pItemListWindowSelected,2,4,8); + packet(0x094d,clif->pReqClickBuyingStore,2); + packet(0x0953,clif->pStoragePassword,0); + packet(0x095d,clif->pHomMenu,2,4); + packet(0x095f,clif->pWalkToXY,2); + packet(0x0962,clif->pDull/*,XXX*/); #endif // 2016-04-14aRagexeRE, 2016-04-14bRagexeRE #if PACKETVER == 20160414 - packet(0x035f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0360,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0362,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x0363,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0437,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0438,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0835,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x083c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0862,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x087a,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0880,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0885,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x089e,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0918,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0922,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0927,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x0931,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0934,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0945,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0953,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x096a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 + packet(0x035f,clif->pTickSend,2); + packet(0x0360,clif->pReqClickBuyingStore,2); + packet(0x0362,clif->pItemListWindowSelected,2,4,8); + packet(0x0363,clif->pTakeItem,2); + packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pActionRequest,2,6); + packet(0x0437,clif->pWalkToXY,2); + packet(0x0438,clif->pUseSkillToPos,2,4,6,8); + packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0835,clif->pSearchStoreInfoNextPage,0); + packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x083c,clif->pUseSkillToId,2,4,6); + packet(0x0862,clif->pWantToConnection,2,6,10,14,18); + packet(0x087a,clif->pDull/*,XXX*/); + packet(0x0880,clif->pPartyBookingRegisterReq,2,4); + packet(0x0885,clif->pMoveFromKafra,2,4); + packet(0x089e,clif->pPartyInvite2,2); + packet(0x0918,clif->pDull/*,XXX*/); + packet(0x0922,clif->pChangeDir,2,4); + packet(0x0927,clif->pStoragePassword,0); + packet(0x0931,clif->pDropItem,2,4); + packet(0x0934,clif->pHomMenu,2,4); + packet(0x0945,clif->pFriendsListAdd,2); + packet(0x0953,clif->pMoveToKafra,2,4); + packet(0x096a,clif->pGetCharNameRequest,2); #endif // 2016-04-20aRagexeRE #if PACKETVER == 20160420 - packet(0x022d,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x02c4,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x035f,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0360,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0437,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0438,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0819,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0835,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x083c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0864,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x0870,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0872,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0874,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0884,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0888,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x088b,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x08a5,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x092f,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0935,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x094e,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x095c,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x096a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 + packet(0x022d,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x02c4,clif->pTickSend,2); + packet(0x035f,clif->pPartyInvite2,2); + packet(0x0360,clif->pReqClickBuyingStore,2); + packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pActionRequest,2,6); + packet(0x0437,clif->pWalkToXY,2); + packet(0x0438,clif->pUseSkillToPos,2,4,6,8); + packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x0819,clif->pHomMenu,2,4); + packet(0x0835,clif->pSearchStoreInfoNextPage,0); + packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x083c,clif->pUseSkillToId,2,4,6); + packet(0x0864,clif->pTakeItem,2); + packet(0x0870,clif->pDull/*,XXX*/); + packet(0x0872,clif->pChangeDir,2,4); + packet(0x0874,clif->pMoveToKafra,2,4); + packet(0x0884,clif->pDropItem,2,4); + packet(0x0888,clif->pWantToConnection,2,6,10,14,18); + packet(0x088b,clif->pMoveFromKafra,2,4); + packet(0x08a5,clif->pStoragePassword,0); + packet(0x092f,clif->pPartyBookingRegisterReq,2,4); + packet(0x0935,clif->pFriendsListAdd,2); + packet(0x094e,clif->pItemListWindowSelected,2,4,8); + packet(0x095c,clif->pDull/*,XXX*/); + packet(0x096a,clif->pGetCharNameRequest,2); #endif // 2016-04-27aRagexeRE #if PACKETVER == 20160427 - packet(0x0202,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x022d,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x023b,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0281,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x035f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0360,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0361,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0362,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0363,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0364,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0365,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0436,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0437,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0438,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x07e4,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x07ec,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0802,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0819,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0835,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x083c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0940,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x096a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 + packet(0x0202,clif->pChangeDir,2,4); + packet(0x022d,clif->pWantToConnection,2,6,10,14,18); + packet(0x023b,clif->pFriendsListAdd,2); + packet(0x0281,clif->pItemListWindowSelected,2,4,8); + packet(0x035f,clif->pTickSend,2); + packet(0x0360,clif->pReqClickBuyingStore,2); + packet(0x0361,clif->pHomMenu,2,4); + packet(0x0362,clif->pDropItem,2,4); + packet(0x0363,clif->pDull/*,XXX*/); + packet(0x0364,clif->pMoveFromKafra,2,4); + packet(0x0365,clif->pPartyBookingRegisterReq,2,4); + packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pActionRequest,2,6); + packet(0x0436,clif->pDull/*,XXX*/); + packet(0x0437,clif->pWalkToXY,2); + packet(0x0438,clif->pUseSkillToPos,2,4,6,8); + packet(0x07e4,clif->pTakeItem,2); + packet(0x07ec,clif->pMoveToKafra,2,4); + packet(0x0802,clif->pPartyInvite2,2); + packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x0819,clif->pSearchStoreInfoNextPage,0); + packet(0x0835,clif->pStoragePassword,0); + packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x083c,clif->pUseSkillToId,2,4,6); + packet(0x0940,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x096a,clif->pGetCharNameRequest,2); #endif // 2016-05-04aRagexeRE #if PACKETVER == 20160504 - packet(0x0202,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0363,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0365,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x083c,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x085f,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x086b,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x087f,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0884,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x0886,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0887,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x088a,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x088d,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x088f,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x0890,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0893,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0898,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x089d,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x08ad,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0918,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0921,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0922,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x0924,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x093e,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0940,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0941,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0948,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x0952,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x095b,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0969,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 + packet(0x0202,clif->pHomMenu,2,4); + packet(0x0363,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0365,clif->pDull/*,XXX*/); + packet(0x083c,clif->pSearchStoreInfoNextPage,0); + packet(0x085f,clif->pActionRequest,2,6); + packet(0x086b,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x087f,clif->pReqCloseBuyingStore,0); + packet(0x0884,clif->pUseSkillToPos,2,4,6,8); + packet(0x0886,clif->pMoveToKafra,2,4); + packet(0x0887,clif->pPartyInvite2,2); + packet(0x088a,clif->pTakeItem,2); + packet(0x088d,clif->pUseSkillToId,2,4,6); + packet(0x088f,clif->pItemListWindowSelected,2,4,8); + packet(0x0890,clif->pDropItem,2,4); + packet(0x0893,clif->pPartyBookingRegisterReq,2,4); + packet(0x0898,clif->pDull/*,XXX*/); + packet(0x089d,clif->pSolveCharName,2); + packet(0x08ad,clif->pChangeDir,2,4); + packet(0x0918,clif->pTickSend,2); + packet(0x0921,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0922,clif->pGetCharNameRequest,2); + packet(0x0924,clif->pWalkToXY,2); + packet(0x093e,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0940,clif->pWantToConnection,2,6,10,14,18); + packet(0x0941,clif->pMoveFromKafra,2,4); + packet(0x0948,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x0952,clif->pFriendsListAdd,2); + packet(0x095b,clif->pReqClickBuyingStore,2); + packet(0x0969,clif->pStoragePassword,0); #endif // 2016-05-11aRagexeRE, 2016-05-11bRagexeRE #if PACKETVER == 20160511 - packet(0x0281,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x035f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0360,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0362,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0363,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0364,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0365,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0437,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0438,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x07e4,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x07ec,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0802,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0835,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x083c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x085e,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0894,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x089b,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0918,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0920,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0940,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x096a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 + packet(0x0281,clif->pItemListWindowSelected,2,4,8); + packet(0x035f,clif->pTickSend,2); + packet(0x0360,clif->pReqClickBuyingStore,2); + packet(0x0362,clif->pDropItem,2,4); + packet(0x0363,clif->pDull/*,XXX*/); + packet(0x0364,clif->pMoveFromKafra,2,4); + packet(0x0365,clif->pPartyBookingRegisterReq,2,4); + packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pActionRequest,2,6); + packet(0x0437,clif->pWalkToXY,2); + packet(0x0438,clif->pUseSkillToPos,2,4,6,8); + packet(0x07e4,clif->pTakeItem,2); + packet(0x07ec,clif->pMoveToKafra,2,4); + packet(0x0802,clif->pPartyInvite2,2); + packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0835,clif->pSearchStoreInfoNextPage,0); + packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x083c,clif->pUseSkillToId,2,4,6); + packet(0x085e,clif->pChangeDir,2,4); + packet(0x0894,clif->pFriendsListAdd,2); + packet(0x089b,clif->pDull/*,XXX*/); + packet(0x0918,clif->pHomMenu,2,4); + packet(0x0920,clif->pWantToConnection,2,6,10,14,18); + packet(0x0940,clif->pStoragePassword,0); + packet(0x096a,clif->pGetCharNameRequest,2); #endif // 2016-05-18aRagexeRE #if PACKETVER == 20160518 - packet(0x0281,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x035f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0360,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0362,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0363,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0364,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0365,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0436,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0437,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0438,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x07e4,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x07ec,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0802,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0835,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x083c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x086c,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0874,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x089a,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x08a9,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0928,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x096a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 + packet(0x0281,clif->pItemListWindowSelected,2,4,8); + packet(0x035f,clif->pTickSend,2); + packet(0x0360,clif->pReqClickBuyingStore,2); + packet(0x0362,clif->pDropItem,2,4); + packet(0x0363,clif->pDull/*,XXX*/); + packet(0x0364,clif->pMoveFromKafra,2,4); + packet(0x0365,clif->pPartyBookingRegisterReq,2,4); + packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pActionRequest,2,6); + packet(0x0436,clif->pDull/*,XXX*/); + packet(0x0437,clif->pWalkToXY,2); + packet(0x0438,clif->pUseSkillToPos,2,4,6,8); + packet(0x07e4,clif->pTakeItem,2); + packet(0x07ec,clif->pMoveToKafra,2,4); + packet(0x0802,clif->pPartyInvite2,2); + packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0835,clif->pSearchStoreInfoNextPage,0); + packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x083c,clif->pUseSkillToId,2,4,6); + packet(0x086c,clif->pChangeDir,2,4); + packet(0x0874,clif->pWantToConnection,2,6,10,14,18); + packet(0x089a,clif->pStoragePassword,0); + packet(0x08a9,clif->pFriendsListAdd,2); + packet(0x0928,clif->pHomMenu,2,4); + packet(0x096a,clif->pGetCharNameRequest,2); #endif // 2016-05-25aRagexeRE #if PACKETVER == 20160525 - packet(0x035f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0360,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0437,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0438,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0835,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x083c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x085a,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x085e,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0867,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x086a,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0899,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x089c,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x091d,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x092c,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0937,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x0945,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x094a,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x094e,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0951,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0956,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x096a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 + packet(0x035f,clif->pTickSend,2); + packet(0x0360,clif->pReqClickBuyingStore,2); + packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pActionRequest,2,6); + packet(0x0437,clif->pWalkToXY,2); + packet(0x0438,clif->pUseSkillToPos,2,4,6,8); + packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0835,clif->pSearchStoreInfoNextPage,0); + packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x083c,clif->pUseSkillToId,2,4,6); + packet(0x085a,clif->pDull/*,XXX*/); + packet(0x085e,clif->pDropItem,2,4); + packet(0x0867,clif->pHomMenu,2,4); + packet(0x086a,clif->pWantToConnection,2,6,10,14,18); + packet(0x0899,clif->pTakeItem,2); + packet(0x089c,clif->pChangeDir,2,4); + packet(0x091d,clif->pStoragePassword,0); + packet(0x092c,clif->pPartyBookingRegisterReq,2,4); + packet(0x0937,clif->pItemListWindowSelected,2,4,8); + packet(0x0945,clif->pPartyInvite2,2); + packet(0x094a,clif->pMoveToKafra,2,4); + packet(0x094e,clif->pDull/*,XXX*/); + packet(0x0951,clif->pFriendsListAdd,2); + packet(0x0956,clif->pMoveFromKafra,2,4); + packet(0x096a,clif->pGetCharNameRequest,2); #endif // 2016-06-01aRagexeRE #if PACKETVER == 20160601 - packet(0x0202,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x02c4,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x035f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0360,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0437,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0438,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0817,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0835,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x083c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0863,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x0870,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x087d,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x088d,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x088f,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0895,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x08a7,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x08ac,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0924,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x095b,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x095f,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x0961,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x096a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 + packet(0x0202,clif->pReqCloseBuyingStore,0); + packet(0x02c4,clif->pPartyInvite2,2); + packet(0x035f,clif->pTickSend,2); + packet(0x0360,clif->pReqClickBuyingStore,2); + packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pActionRequest,2,6); + packet(0x0437,clif->pWalkToXY,2); + packet(0x0438,clif->pUseSkillToPos,2,4,6,8); + packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0817,clif->pFriendsListAdd,2); + packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0835,clif->pSearchStoreInfoNextPage,0); + packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x083c,clif->pUseSkillToId,2,4,6); + packet(0x0863,clif->pTakeItem,2); + packet(0x0870,clif->pMoveFromKafra,2,4); + packet(0x087d,clif->pItemListWindowSelected,2,4,8); + packet(0x088d,clif->pDropItem,2,4); + packet(0x088f,clif->pMoveToKafra,2,4); + packet(0x0895,clif->pHomMenu,2,4); + packet(0x08a7,clif->pDull/*,XXX*/); + packet(0x08ac,clif->pWantToConnection,2,6,10,14,18); + packet(0x0924,clif->pDull/*,XXX*/); + packet(0x095b,clif->pChangeDir,2,4); + packet(0x095f,clif->pStoragePassword,0); + packet(0x0961,clif->pPartyBookingRegisterReq,2,4); + packet(0x096a,clif->pGetCharNameRequest,2); #endif // 2016-06-08aRagexeRE, 2016-06-08bRagexeRE #if PACKETVER == 20160608 - packet(0x022d,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x02c4,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x035f,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0360,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0436,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0437,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0438,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x07ec,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0802,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0835,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x083c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x085c,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0885,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0889,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0899,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x089b,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x08a6,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x093b,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x094d,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0958,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x095b,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0969,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x096a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 + packet(0x022d,clif->pItemListWindowSelected,2,4,8); + packet(0x02c4,clif->pPartyBookingRegisterReq,2,4); + packet(0x035f,clif->pPartyInvite2,2); + packet(0x0360,clif->pReqClickBuyingStore,2); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pActionRequest,2,6); + packet(0x0436,clif->pWalkToXY,2); + packet(0x0437,clif->pWantToConnection,2,6,10,14,18); + packet(0x0438,clif->pUseSkillToPos,2,4,6,8); + packet(0x07ec,clif->pChangeDir,2,4); + packet(0x0802,clif->pTickSend,2); + packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0835,clif->pSearchStoreInfoNextPage,0); + packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x083c,clif->pUseSkillToId,2,4,6); + packet(0x085c,clif->pDull/*,XXX*/); + packet(0x0885,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0889,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0899,clif->pTakeItem,2); + packet(0x089b,clif->pHomMenu,2,4); + packet(0x08a6,clif->pMoveFromKafra,2,4); + packet(0x093b,clif->pDull/*,XXX*/); + packet(0x094d,clif->pDropItem,2,4); + packet(0x0958,clif->pStoragePassword,0); + packet(0x095b,clif->pMoveToKafra,2,4); + packet(0x0969,clif->pFriendsListAdd,2); + packet(0x096a,clif->pGetCharNameRequest,2); #endif // 2016-06-15aRagexeRE #if PACKETVER == 20160615 - packet(0x0281,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0363,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0364,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x0369,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x083c,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x0866,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0870,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x087d,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x087e,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x087f,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0884,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0887,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0888,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x088a,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x088d,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x0891,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x0898,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x092f,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x093e,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0947,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0948,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x094a,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x094b,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0954,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0957,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0958,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x095c,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x095e,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0961,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 + packet(0x0281,clif->pFriendsListAdd,2); + packet(0x0363,clif->pWantToConnection,2,6,10,14,18); + packet(0x0364,clif->pStoragePassword,0); + packet(0x0369,clif->pHomMenu,2,4); + packet(0x083c,clif->pGetCharNameRequest,2); + packet(0x0866,clif->pWalkToXY,2); + packet(0x0870,clif->pDull/*,XXX*/); + packet(0x087d,clif->pSolveCharName,2); + packet(0x087e,clif->pTakeItem,2); + packet(0x087f,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0884,clif->pDull/*,XXX*/); + packet(0x0887,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0888,clif->pUseSkillToId,2,4,6); + packet(0x088a,clif->pTickSend,2); + packet(0x088d,clif->pItemListWindowSelected,2,4,8); + packet(0x0891,clif->pUseSkillToPos,2,4,6,8); + packet(0x0898,clif->pDropItem,2,4); + packet(0x092f,clif->pSearchStoreInfoNextPage,0); + packet(0x093e,clif->pPartyInvite2,2); + packet(0x0947,clif->pReqCloseBuyingStore,0); + packet(0x0948,clif->pActionRequest,2,6); + packet(0x094a,clif->pReqClickBuyingStore,2); + packet(0x094b,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0954,clif->pChangeDir,2,4); + packet(0x0957,clif->pMoveToKafra,2,4); + packet(0x0958,clif->pMoveFromKafra,2,4); + packet(0x095c,clif->pPartyBookingRegisterReq,2,4); + packet(0x095e,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0961,clif->pSearchStoreInfoListItemClick,2,6,10); #endif // 2016-06-22aRagexeRE #if PACKETVER == 20160622 - packet(0x023b,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x035f,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0361,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0437,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x07e4,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0861,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0865,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0867,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0880,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0887,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0890,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0891,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0892,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x089a,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x089e,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x08a2,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x08a8,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x091c,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x092d,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x092f,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0936,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0937,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x093b,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x093f,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0946,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x0959,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x0965,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0969,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 + packet(0x023b,clif->pUseSkillToPos,2,4,6,8); + packet(0x035f,clif->pMoveFromKafra,2,4); + packet(0x0361,clif->pPartyInvite2,2); + packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0437,clif->pWalkToXY,2); + packet(0x07e4,clif->pHomMenu,2,4); + packet(0x0861,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0865,clif->pDull/*,XXX*/); + packet(0x0867,clif->pDull/*,XXX*/); + packet(0x0880,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0887,clif->pReqCloseBuyingStore,0); + packet(0x0890,clif->pFriendsListAdd,2); + packet(0x0891,clif->pReqClickBuyingStore,2); + packet(0x0892,clif->pSearchStoreInfoNextPage,0); + packet(0x089a,clif->pPartyBookingRegisterReq,2,4); + packet(0x089e,clif->pActionRequest,2,6); + packet(0x08a2,clif->pSolveCharName,2); + packet(0x08a8,clif->pStoragePassword,0); + packet(0x091c,clif->pTakeItem,2); + packet(0x092d,clif->pTickSend,2); + packet(0x092f,clif->pUseSkillToId,2,4,6); + packet(0x0936,clif->pWantToConnection,2,6,10,14,18); + packet(0x0937,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x093b,clif->pMoveToKafra,2,4); + packet(0x093f,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0946,clif->pItemListWindowSelected,2,4,8); + packet(0x0959,clif->pGetCharNameRequest,2); + packet(0x0965,clif->pChangeDir,2,4); + packet(0x0969,clif->pDropItem,2,4); #endif // 2016-06-29aRagexeRE, 2016-06-30aRagexeRE #if PACKETVER == 20160629 || \ PACKETVER == 20160630 - packet(0x0202,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x022d,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x035f,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0363,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0368,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x085c,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x085e,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0860,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0861,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0863,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0867,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x086b,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0881,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0885,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x088e,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x0893,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x091e,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0922,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0925,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0926,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x093e,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0946,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0948,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x094a,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0957,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x095a,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0968,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x0969,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x096a,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 + packet(0x0202,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x022d,clif->pWalkToXY,2); + packet(0x035f,clif->pDull/*,XXX*/); + packet(0x0363,clif->pReqClickBuyingStore,2); + packet(0x0368,clif->pItemListWindowSelected,2,4,8); + packet(0x085c,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x085e,clif->pDull/*,XXX*/); + packet(0x0860,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0861,clif->pDropItem,2,4); + packet(0x0863,clif->pSolveCharName,2); + packet(0x0867,clif->pStoragePassword,0); + packet(0x086b,clif->pSearchStoreInfoNextPage,0); + packet(0x0881,clif->pWantToConnection,2,6,10,14,18); + packet(0x0885,clif->pHomMenu,2,4); + packet(0x088e,clif->pGetCharNameRequest,2); + packet(0x0893,clif->pTickSend,2); + packet(0x091e,clif->pPartyBookingRegisterReq,2,4); + packet(0x0922,clif->pMoveFromKafra,2,4); + packet(0x0925,clif->pUseSkillToId,2,4,6); + packet(0x0926,clif->pPartyInvite2,2); + packet(0x093e,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0946,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0948,clif->pChangeDir,2,4); + packet(0x094a,clif->pFriendsListAdd,2); + packet(0x0957,clif->pReqCloseBuyingStore,0); + packet(0x095a,clif->pActionRequest,2,6); + packet(0x0968,clif->pUseSkillToPos,2,4,6,8); + packet(0x0969,clif->pTakeItem,2); + packet(0x096a,clif->pMoveToKafra,2,4); #endif // 2016-07-06cRagexeRE #if PACKETVER == 20160706 - packet(0x0362,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0436,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x085f,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0860,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0869,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x086b,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0884,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0886,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0889,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0892,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0899,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x08a4,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x08a5,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x08a8,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0918,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x091b,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x0924,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x0926,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0927,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0929,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x092d,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0939,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x093d,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0944,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0945,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x094c,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x0952,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0957,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x0958,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 + packet(0x0362,clif->pSolveCharName,2); + packet(0x0436,clif->pReqClickBuyingStore,2); + packet(0x085f,clif->pPartyInvite2,2); + packet(0x0860,clif->pActionRequest,2,6); + packet(0x0869,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x086b,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0884,clif->pFriendsListAdd,2); + packet(0x0886,clif->pDull/*,XXX*/); + packet(0x0889,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0892,clif->pHomMenu,2,4); + packet(0x0899,clif->pUseSkillToId,2,4,6); + packet(0x08a4,clif->pPartyBookingRegisterReq,2,4); + packet(0x08a5,clif->pWantToConnection,2,6,10,14,18); + packet(0x08a8,clif->pTickSend,2); + packet(0x0918,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x091b,clif->pItemListWindowSelected,2,4,8); + packet(0x0924,clif->pUseSkillToPos,2,4,6,8); + packet(0x0926,clif->pChangeDir,2,4); + packet(0x0927,clif->pSearchStoreInfoNextPage,0); + packet(0x0929,clif->pMoveFromKafra,2,4); + packet(0x092d,clif->pWalkToXY,2); + packet(0x0939,clif->pMoveToKafra,2,4); + packet(0x093d,clif->pDropItem,2,4); + packet(0x0944,clif->pDull/*,XXX*/); + packet(0x0945,clif->pGetCharNameRequest,2); + packet(0x094c,clif->pStoragePassword,0); + packet(0x0952,clif->pReqCloseBuyingStore,0); + packet(0x0957,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x0958,clif->pTakeItem,2); #endif // 2016-07-13aRagexeRE, 2016-07-13bRagexeRE #if PACKETVER == 20160713 - packet(0x022d,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x0363,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0364,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x0838,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x0860,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0865,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0869,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0875,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0877,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x087b,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0883,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x088d,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0892,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x089a,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x089f,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x08a2,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x08a4,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x091c,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x091d,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0921,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0922,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x092c,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x0931,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0939,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0944,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0945,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0947,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0957,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x095b,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 + packet(0x022d,clif->pStoragePassword,0); + packet(0x0363,clif->pChangeDir,2,4); + packet(0x0364,clif->pItemListWindowSelected,2,4,8); + packet(0x0838,clif->pTakeItem,2); + packet(0x0860,clif->pReqClickBuyingStore,2); + packet(0x0865,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0869,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0875,clif->pSearchStoreInfoNextPage,0); + packet(0x0877,clif->pUseSkillToPos,2,4,6,8); + packet(0x087b,clif->pTickSend,2); + packet(0x0883,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x088d,clif->pPartyBookingRegisterReq,2,4); + packet(0x0892,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x089a,clif->pPartyInvite2,2); + packet(0x089f,clif->pDull/*,XXX*/); + packet(0x08a2,clif->pMoveFromKafra,2,4); + packet(0x08a4,clif->pWantToConnection,2,6,10,14,18); + packet(0x091c,clif->pWalkToXY,2); + packet(0x091d,clif->pSolveCharName,2); + packet(0x0921,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0922,clif->pHomMenu,2,4); + packet(0x092c,clif->pGetCharNameRequest,2); + packet(0x0931,clif->pUseSkillToId,2,4,6); + packet(0x0939,clif->pFriendsListAdd,2); + packet(0x0944,clif->pReqCloseBuyingStore,0); + packet(0x0945,clif->pActionRequest,2,6); + packet(0x0947,clif->pMoveToKafra,2,4); + packet(0x0957,clif->pDropItem,2,4); + packet(0x095b,clif->pDull/*,XXX*/); #endif // 2016-07-20aRagexeRE, 2016-07-20bRagexeRE #if PACKETVER == 20160720 - packet(0x0362,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0363,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0365,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x07e4,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0819,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0838,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x085b,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x086a,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x086d,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x087f,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0883,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x0887,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x0897,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x089a,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x089c,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x089e,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x08a0,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x08aa,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x0917,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x091c,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x092a,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x093b,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x093e,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0946,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x094d,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0953,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x095b,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0960,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0969,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 + packet(0x0362,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0363,clif->pUseSkillToId,2,4,6); + packet(0x0365,clif->pActionRequest,2,6); + packet(0x07e4,clif->pWantToConnection,2,6,10,14,18); + packet(0x0819,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0838,clif->pWalkToXY,2); + packet(0x085b,clif->pReqCloseBuyingStore,0); + packet(0x086a,clif->pSearchStoreInfoNextPage,0); + packet(0x086d,clif->pReqClickBuyingStore,2); + packet(0x087f,clif->pDropItem,2,4); + packet(0x0883,clif->pUseSkillToPos,2,4,6,8); + packet(0x0887,clif->pGetCharNameRequest,2); + packet(0x0897,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x089a,clif->pStoragePassword,0); + packet(0x089c,clif->pHomMenu,2,4); + packet(0x089e,clif->pMoveFromKafra,2,4); + packet(0x08a0,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x08aa,clif->pItemListWindowSelected,2,4,8); + packet(0x0917,clif->pDull/*,XXX*/); + packet(0x091c,clif->pTakeItem,2); + packet(0x092a,clif->pFriendsListAdd,2); + packet(0x093b,clif->pChangeDir,2,4); + packet(0x093e,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0946,clif->pTickSend,2); + packet(0x094d,clif->pSolveCharName,2); + packet(0x0953,clif->pDull/*,XXX*/); + packet(0x095b,clif->pPartyBookingRegisterReq,2,4); + packet(0x0960,clif->pMoveToKafra,2,4); + packet(0x0969,clif->pPartyInvite2,2); #endif // 2016-07-27aRagexeRE, 2016-07-27bRagexeRE #if PACKETVER == 20160727 - packet(0x0202,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x023b,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0362,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0363,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0436,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0438,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x07ec,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0866,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0868,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0869,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x0874,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0877,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0883,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0887,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x088e,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0891,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x089f,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x08a2,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x08a4,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x08a7,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x092e,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0936,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0941,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0946,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x0949,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0951,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x095f,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0966,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0969,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 + packet(0x0202,clif->pChangeDir,2,4); + packet(0x023b,clif->pDull/*,XXX*/); + packet(0x0362,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0363,clif->pFriendsListAdd,2); + packet(0x0436,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0438,clif->pTickSend,2); + packet(0x07ec,clif->pDropItem,2,4); + packet(0x0866,clif->pDull/*,XXX*/); + packet(0x0868,clif->pPartyInvite2,2); + packet(0x0869,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x0874,clif->pReqClickBuyingStore,2); + packet(0x0877,clif->pPartyBookingRegisterReq,2,4); + packet(0x0883,clif->pActionRequest,2,6); + packet(0x0887,clif->pWantToConnection,2,6,10,14,18); + packet(0x088e,clif->pUseSkillToId,2,4,6); + packet(0x0891,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x089f,clif->pUseSkillToPos,2,4,6,8); + packet(0x08a2,clif->pStoragePassword,0); + packet(0x08a4,clif->pSolveCharName,2); + packet(0x08a7,clif->pTakeItem,2); + packet(0x092e,clif->pWalkToXY,2); + packet(0x0936,clif->pHomMenu,2,4); + packet(0x0941,clif->pSearchStoreInfoNextPage,0); + packet(0x0946,clif->pGetCharNameRequest,2); + packet(0x0949,clif->pMoveFromKafra,2,4); + packet(0x0951,clif->pMoveToKafra,2,4); + packet(0x095f,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0966,clif->pReqCloseBuyingStore,0); + packet(0x0969,clif->pItemListWindowSelected,2,4,8); #endif // 2016-08-03bRagexeRE #if PACKETVER == 20160803 - packet(0x0364,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x085d,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0878,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x087f,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0881,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0886,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0887,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x0888,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x088b,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0891,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0895,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x089c,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x089e,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x08a1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x091b,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x0929,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x0930,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x0932,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0934,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0937,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x093a,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x093e,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x093f,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0952,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0955,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0956,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x0959,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x095a,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x096a,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 + packet(0x0364,clif->pWantToConnection,2,6,10,14,18); + packet(0x085d,clif->pReqClickBuyingStore,2); + packet(0x0878,clif->pDull/*,XXX*/); + packet(0x087f,clif->pWalkToXY,2); + packet(0x0881,clif->pPartyBookingRegisterReq,2,4); + packet(0x0886,clif->pMoveToKafra,2,4); + packet(0x0887,clif->pGetCharNameRequest,2); + packet(0x0888,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x088b,clif->pReqCloseBuyingStore,0); + packet(0x0891,clif->pChangeDir,2,4); + packet(0x0895,clif->pFriendsListAdd,2); + packet(0x089c,clif->pDropItem,2,4); + packet(0x089e,clif->pSearchStoreInfoNextPage,0); + packet(0x08a1,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x091b,clif->pTakeItem,2); + packet(0x0929,clif->pStoragePassword,0); + packet(0x0930,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x0932,clif->pUseSkillToId,2,4,6); + packet(0x0934,clif->pActionRequest,2,6); + packet(0x0937,clif->pUseSkillToPos,2,4,6,8); + packet(0x093a,clif->pDull/*,XXX*/); + packet(0x093e,clif->pTickSend,2); + packet(0x093f,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0952,clif->pHomMenu,2,4); + packet(0x0955,clif->pMoveFromKafra,2,4); + packet(0x0956,clif->pItemListWindowSelected,2,4,8); + packet(0x0959,clif->pSolveCharName,2); + packet(0x095a,clif->pPartyInvite2,2); + packet(0x096a,clif->pReqTradeBuyingStore,2,4,8,12); #endif // 2016-08-10aRagexeRE #if PACKETVER == 20160810 - packet(0x0361,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x0819,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x0838,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x085d,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x085e,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x085f,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0860,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x086f,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0875,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0879,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x087a,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0885,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0888,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0890,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x089d,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x089f,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x08a9,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x091a,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x091b,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x091c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0926,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x092b,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x092d,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0935,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0943,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x094b,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0959,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x095b,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0967,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 + packet(0x0361,clif->pStoragePassword,0); + packet(0x0819,clif->pUseSkillToPos,2,4,6,8); + packet(0x0838,clif->pPartyInvite2,2); + packet(0x085d,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x085e,clif->pDropItem,2,4); + packet(0x085f,clif->pPartyBookingRegisterReq,2,4); + packet(0x0860,clif->pSolveCharName,2); + packet(0x086f,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0875,clif->pHomMenu,2,4); + packet(0x0879,clif->pReqClickBuyingStore,2); + packet(0x087a,clif->pWalkToXY,2); + packet(0x0885,clif->pWantToConnection,2,6,10,14,18); + packet(0x0888,clif->pFriendsListAdd,2); + packet(0x0890,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x089d,clif->pChangeDir,2,4); + packet(0x089f,clif->pItemListWindowSelected,2,4,8); + packet(0x08a9,clif->pMoveToKafra,2,4); + packet(0x091a,clif->pTakeItem,2); + packet(0x091b,clif->pGetCharNameRequest,2); + packet(0x091c,clif->pUseSkillToId,2,4,6); + packet(0x0926,clif->pDull/*,XXX*/); + packet(0x092b,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x092d,clif->pMoveFromKafra,2,4); + packet(0x0935,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0943,clif->pTickSend,2); + packet(0x094b,clif->pSearchStoreInfoNextPage,0); + packet(0x0959,clif->pReqCloseBuyingStore,0); + packet(0x095b,clif->pActionRequest,2,6); + packet(0x0967,clif->pDull/*,XXX*/); #endif // 2016-08-17aRagexeRE #if PACKETVER == 20160817 - packet(0x0364,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0437,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x07e4,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x0811,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0819,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x083c,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x085c,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x0867,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x086b,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0875,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x087f,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0886,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0891,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x089c,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x08a5,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x08a6,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x08a9,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x08ab,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x08ac,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x08ad,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x091b,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0929,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x092d,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0930,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0939,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x093c,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0957,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0960,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0963,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 + packet(0x0364,clif->pReqClickBuyingStore,2); + packet(0x0437,clif->pFriendsListAdd,2); + packet(0x07e4,clif->pGetCharNameRequest,2); + packet(0x0811,clif->pDull/*,XXX*/); + packet(0x0819,clif->pTickSend,2); + packet(0x083c,clif->pItemListWindowSelected,2,4,8); + packet(0x085c,clif->pTakeItem,2); + packet(0x0867,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x086b,clif->pSolveCharName,2); + packet(0x0875,clif->pWantToConnection,2,6,10,14,18); + packet(0x087f,clif->pDropItem,2,4); + packet(0x0886,clif->pActionRequest,2,6); + packet(0x0891,clif->pUseSkillToId,2,4,6); + packet(0x089c,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x08a5,clif->pStoragePassword,0); + packet(0x08a6,clif->pPartyInvite2,2); + packet(0x08a9,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x08ab,clif->pHomMenu,2,4); + packet(0x08ac,clif->pUseSkillToPos,2,4,6,8); + packet(0x08ad,clif->pMoveToKafra,2,4); + packet(0x091b,clif->pReqCloseBuyingStore,0); + packet(0x0929,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x092d,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0930,clif->pWalkToXY,2); + packet(0x0939,clif->pMoveFromKafra,2,4); + packet(0x093c,clif->pDull/*,XXX*/); + packet(0x0957,clif->pPartyBookingRegisterReq,2,4); + packet(0x0960,clif->pSearchStoreInfoNextPage,0); + packet(0x0963,clif->pChangeDir,2,4); #endif // 2016-08-24aRagexeRE #if PACKETVER == 20160824 - packet(0x0202,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x022d,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x023b,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0281,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x035f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0360,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0361,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0362,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0363,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0364,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0365,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0436,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0437,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0438,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x07e4,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x07ec,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0802,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0835,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x083c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0934,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x096a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 + packet(0x0202,clif->pChangeDir,2,4); + packet(0x022d,clif->pWantToConnection,2,6,10,14,18); + packet(0x023b,clif->pFriendsListAdd,2); + packet(0x0281,clif->pItemListWindowSelected,2,4,8); + packet(0x035f,clif->pTickSend,2); + packet(0x0360,clif->pReqClickBuyingStore,2); + packet(0x0361,clif->pHomMenu,2,4); + packet(0x0362,clif->pDropItem,2,4); + packet(0x0363,clif->pDull/*,XXX*/); + packet(0x0364,clif->pMoveFromKafra,2,4); + packet(0x0365,clif->pPartyBookingRegisterReq,2,4); + packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pActionRequest,2,6); + packet(0x0436,clif->pDull/*,XXX*/); + packet(0x0437,clif->pWalkToXY,2); + packet(0x0438,clif->pUseSkillToPos,2,4,6,8); + packet(0x07e4,clif->pTakeItem,2); + packet(0x07ec,clif->pMoveToKafra,2,4); + packet(0x0802,clif->pPartyInvite2,2); + packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0835,clif->pSearchStoreInfoNextPage,0); + packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x083c,clif->pUseSkillToId,2,4,6); + packet(0x0934,clif->pStoragePassword,0); + packet(0x096a,clif->pGetCharNameRequest,2); #endif // 2016-08-31aRagexeRE, 2016-08-31bRagexeRE #if PACKETVER == 20160831 - packet(0x022d,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0366,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x07ec,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0835,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0865,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x086d,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0870,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0874,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0876,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0878,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x087c,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x08a8,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x08a9,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0917,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x091b,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x092c,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x092e,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x0938,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x093a,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0946,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x094a,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x094f,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0950,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0954,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x0957,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x095e,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0960,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x0964,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x0967,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 + packet(0x022d,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0366,clif->pDropItem,2,4); + packet(0x07ec,clif->pReqClickBuyingStore,2); + packet(0x0835,clif->pWantToConnection,2,6,10,14,18); + packet(0x0865,clif->pWalkToXY,2); + packet(0x086d,clif->pReqCloseBuyingStore,0); + packet(0x0870,clif->pPartyBookingRegisterReq,2,4); + packet(0x0874,clif->pPartyInvite2,2); + packet(0x0876,clif->pDull/*,XXX*/); + packet(0x0878,clif->pActionRequest,2,6); + packet(0x087c,clif->pGetCharNameRequest,2); + packet(0x08a8,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x08a9,clif->pTickSend,2); + packet(0x0917,clif->pStoragePassword,0); + packet(0x091b,clif->pDull/*,XXX*/); + packet(0x092c,clif->pFriendsListAdd,2); + packet(0x092e,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x0938,clif->pSearchStoreInfoNextPage,0); + packet(0x093a,clif->pHomMenu,2,4); + packet(0x0946,clif->pSolveCharName,2); + packet(0x094a,clif->pChangeDir,2,4); + packet(0x094f,clif->pMoveToKafra,2,4); + packet(0x0950,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0954,clif->pItemListWindowSelected,2,4,8); + packet(0x0957,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x095e,clif->pMoveFromKafra,2,4); + packet(0x0960,clif->pTakeItem,2); + packet(0x0964,clif->pUseSkillToPos,2,4,6,8); + packet(0x0967,clif->pUseSkillToId,2,4,6); #endif // 2016-09-07aRagexeRE #if PACKETVER == 20160907 - packet(0x0202,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x022d,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x023b,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0281,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x035f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0360,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0361,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0362,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0363,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0364,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0365,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0436,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0437,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0438,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x07e4,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x07ec,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0802,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0835,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x083c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x091c,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x096a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 + packet(0x0202,clif->pChangeDir,2,4); + packet(0x022d,clif->pWantToConnection,2,6,10,14,18); + packet(0x023b,clif->pFriendsListAdd,2); + packet(0x0281,clif->pItemListWindowSelected,2,4,8); + packet(0x035f,clif->pTickSend,2); + packet(0x0360,clif->pReqClickBuyingStore,2); + packet(0x0361,clif->pHomMenu,2,4); + packet(0x0362,clif->pDropItem,2,4); + packet(0x0363,clif->pDull/*,XXX*/); + packet(0x0364,clif->pMoveFromKafra,2,4); + packet(0x0365,clif->pPartyBookingRegisterReq,2,4); + packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pActionRequest,2,6); + packet(0x0436,clif->pDull/*,XXX*/); + packet(0x0437,clif->pWalkToXY,2); + packet(0x0438,clif->pUseSkillToPos,2,4,6,8); + packet(0x07e4,clif->pTakeItem,2); + packet(0x07ec,clif->pMoveToKafra,2,4); + packet(0x0802,clif->pPartyInvite2,2); + packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0835,clif->pSearchStoreInfoNextPage,0); + packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x083c,clif->pUseSkillToId,2,4,6); + packet(0x091c,clif->pStoragePassword,0); + packet(0x096a,clif->pGetCharNameRequest,2); #endif // 2016-09-13aRagexeRE #if PACKETVER == 20160913 - packet(0x0361,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0817,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x085b,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x0865,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x0874,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0875,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0879,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x087a,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x087b,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0887,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x0889,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x088e,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x088f,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0891,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0892,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x089b,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x089c,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x08a5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0928,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0935,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x093a,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0949,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x094a,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0950,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0952,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0954,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0962,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0963,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0968,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 + packet(0x0361,clif->pPartyBookingRegisterReq,2,4); + packet(0x0817,clif->pMoveToKafra,2,4); + packet(0x085b,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x0865,clif->pGetCharNameRequest,2); + packet(0x0874,clif->pReqClickBuyingStore,2); + packet(0x0875,clif->pTickSend,2); + packet(0x0879,clif->pDropItem,2,4); + packet(0x087a,clif->pDull/*,XXX*/); + packet(0x087b,clif->pSearchStoreInfoNextPage,0); + packet(0x0887,clif->pItemListWindowSelected,2,4,8); + packet(0x0889,clif->pTakeItem,2); + packet(0x088e,clif->pUseSkillToId,2,4,6); + packet(0x088f,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0891,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0892,clif->pUseSkillToPos,2,4,6,8); + packet(0x089b,clif->pMoveFromKafra,2,4); + packet(0x089c,clif->pStoragePassword,0); + packet(0x08a5,clif->pChangeDir,2,4); + packet(0x0928,clif->pFriendsListAdd,2); + packet(0x0935,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x093a,clif->pHomMenu,2,4); + packet(0x0949,clif->pPartyInvite2,2); + packet(0x094a,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0950,clif->pActionRequest,2,6); + packet(0x0952,clif->pWantToConnection,2,6,10,14,18); + packet(0x0954,clif->pWalkToXY,2); + packet(0x0962,clif->pDull/*,XXX*/); + packet(0x0963,clif->pSolveCharName,2); + packet(0x0968,clif->pReqCloseBuyingStore,0); #endif // 2016-09-21bRagexeRE #if PACKETVER == 20160921 - packet(0x0202,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x022d,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x023b,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0281,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x035f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0360,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0361,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0362,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0363,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0364,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0365,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0436,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0437,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0438,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x07e4,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x07ec,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0802,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0835,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x083c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x094a,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x096a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 + packet(0x0202,clif->pChangeDir,2,4); + packet(0x022d,clif->pWantToConnection,2,6,10,14,18); + packet(0x023b,clif->pFriendsListAdd,2); + packet(0x0281,clif->pItemListWindowSelected,2,4,8); + packet(0x035f,clif->pTickSend,2); + packet(0x0360,clif->pReqClickBuyingStore,2); + packet(0x0361,clif->pHomMenu,2,4); + packet(0x0362,clif->pDropItem,2,4); + packet(0x0363,clif->pDull/*,XXX*/); + packet(0x0364,clif->pMoveFromKafra,2,4); + packet(0x0365,clif->pPartyBookingRegisterReq,2,4); + packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pActionRequest,2,6); + packet(0x0436,clif->pDull/*,XXX*/); + packet(0x0437,clif->pWalkToXY,2); + packet(0x0438,clif->pUseSkillToPos,2,4,6,8); + packet(0x07e4,clif->pTakeItem,2); + packet(0x07ec,clif->pMoveToKafra,2,4); + packet(0x0802,clif->pPartyInvite2,2); + packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0835,clif->pSearchStoreInfoNextPage,0); + packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x083c,clif->pUseSkillToId,2,4,6); + packet(0x094a,clif->pStoragePassword,0); + packet(0x096a,clif->pGetCharNameRequest,2); #endif // 2016-09-28cRagexeRE, 2016-09-28dRagexeRE #if PACKETVER == 20160928 - packet(0x0202,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x035f,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x0366,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0436,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0811,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0838,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0864,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0866,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x086d,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0872,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0878,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x087f,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x0889,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x088e,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0897,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x089a,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x08a2,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x08a9,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0919,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x091e,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0927,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x092d,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x0944,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x094d,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x094e,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0953,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0955,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0957,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x095a,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 + packet(0x0202,clif->pItemListWindowSelected,2,4,8); + packet(0x035f,clif->pGetCharNameRequest,2); + packet(0x0366,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0436,clif->pReqClickBuyingStore,2); + packet(0x0811,clif->pDull/*,XXX*/); + packet(0x0838,clif->pPartyInvite2,2); + packet(0x0864,clif->pMoveFromKafra,2,4); + packet(0x0866,clif->pSearchStoreInfoNextPage,0); + packet(0x086d,clif->pDropItem,2,4); + packet(0x0872,clif->pHomMenu,2,4); + packet(0x0878,clif->pSolveCharName,2); + packet(0x087f,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x0889,clif->pWantToConnection,2,6,10,14,18); + packet(0x088e,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0897,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x089a,clif->pActionRequest,2,6); + packet(0x08a2,clif->pStoragePassword,0); + packet(0x08a9,clif->pMoveToKafra,2,4); + packet(0x0919,clif->pWalkToXY,2); + packet(0x091e,clif->pTickSend,2); + packet(0x0927,clif->pUseSkillToId,2,4,6); + packet(0x092d,clif->pUseSkillToPos,2,4,6,8); + packet(0x0944,clif->pChangeDir,2,4); + packet(0x094d,clif->pReqCloseBuyingStore,0); + packet(0x094e,clif->pFriendsListAdd,2); + packet(0x0953,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0955,clif->pPartyBookingRegisterReq,2,4); + packet(0x0957,clif->pTakeItem,2); + packet(0x095a,clif->pDull/*,XXX*/); #endif // 2016-10-05aRagexeRE #if PACKETVER == 20161005 - packet(0x0202,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0368,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0838,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x0863,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x0886,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x088e,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0891,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0892,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x089b,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x089c,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x08a0,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x08ac,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x08ad,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0918,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0919,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x091e,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x092b,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0931,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0932,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x093b,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x0942,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0944,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0945,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x094a,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x094d,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0952,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x095a,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x095b,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0967,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 + packet(0x0202,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0368,clif->pActionRequest,2,6); + packet(0x0838,clif->pStoragePassword,0); + packet(0x0863,clif->pGetCharNameRequest,2); + packet(0x0886,clif->pItemListWindowSelected,2,4,8); + packet(0x088e,clif->pMoveFromKafra,2,4); + packet(0x0891,clif->pChangeDir,2,4); + packet(0x0892,clif->pPartyBookingRegisterReq,2,4); + packet(0x089b,clif->pPartyInvite2,2); + packet(0x089c,clif->pTakeItem,2); + packet(0x08a0,clif->pMoveToKafra,2,4); + packet(0x08ac,clif->pReqCloseBuyingStore,0); + packet(0x08ad,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0918,clif->pSearchStoreInfoNextPage,0); + packet(0x0919,clif->pSolveCharName,2); + packet(0x091e,clif->pDull/*,XXX*/); + packet(0x092b,clif->pTickSend,2); + packet(0x0931,clif->pFriendsListAdd,2); + packet(0x0932,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x093b,clif->pUseSkillToPos,2,4,6,8); + packet(0x0942,clif->pDropItem,2,4); + packet(0x0944,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0945,clif->pWalkToXY,2); + packet(0x094a,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x094d,clif->pHomMenu,2,4); + packet(0x0952,clif->pDull/*,XXX*/); + packet(0x095a,clif->pReqClickBuyingStore,2); + packet(0x095b,clif->pWantToConnection,2,6,10,14,18); + packet(0x0967,clif->pUseSkillToId,2,4,6); #endif // 2016-10-12aRagexeRE #if PACKETVER == 20161012 - packet(0x023b,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0362,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0364,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x0365,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0369,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x07ec,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0819,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x085b,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x085e,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0863,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0868,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x086d,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0872,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x0875,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0880,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x0893,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x08a0,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x092d,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0936,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x0937,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0939,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0943,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0944,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x094f,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0951,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x095c,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0962,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0966,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0967,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 + packet(0x023b,clif->pSearchStoreInfoNextPage,0); + packet(0x0362,clif->pDropItem,2,4); + packet(0x0364,clif->pItemListWindowSelected,2,4,8); + packet(0x0365,clif->pTickSend,2); + packet(0x0369,clif->pPartyInvite2,2); + packet(0x07ec,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0819,clif->pFriendsListAdd,2); + packet(0x085b,clif->pDull/*,XXX*/); + packet(0x085e,clif->pReqCloseBuyingStore,0); + packet(0x0863,clif->pActionRequest,2,6); + packet(0x0868,clif->pTakeItem,2); + packet(0x086d,clif->pWantToConnection,2,6,10,14,18); + packet(0x0872,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x0875,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0880,clif->pUseSkillToPos,2,4,6,8); + packet(0x0893,clif->pMoveToKafra,2,4); + packet(0x08a0,clif->pChangeDir,2,4); + packet(0x092d,clif->pSolveCharName,2); + packet(0x0936,clif->pGetCharNameRequest,2); + packet(0x0937,clif->pReqClickBuyingStore,2); + packet(0x0939,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0943,clif->pPartyBookingRegisterReq,2,4); + packet(0x0944,clif->pMoveFromKafra,2,4); + packet(0x094f,clif->pDull/*,XXX*/); + packet(0x0951,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x095c,clif->pHomMenu,2,4); + packet(0x0962,clif->pUseSkillToId,2,4,6); + packet(0x0966,clif->pWalkToXY,2); + packet(0x0967,clif->pStoragePassword,0); #endif // 2016-10-19aRagexeRE #if PACKETVER == 20161019 - packet(0x022d,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0281,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x035f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0360,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0361,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0362,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0363,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0364,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0365,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0437,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0438,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x07e4,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x07ec,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0802,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0835,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x083c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0889,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x0892,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0946,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0963,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x096a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 + packet(0x022d,clif->pReqClickBuyingStore,2); + packet(0x0281,clif->pItemListWindowSelected,2,4,8); + packet(0x035f,clif->pTickSend,2); + packet(0x0360,clif->pHomMenu,2,4); + packet(0x0361,clif->pWalkToXY,2); + packet(0x0362,clif->pDropItem,2,4); + packet(0x0363,clif->pDull/*,XXX*/); + packet(0x0364,clif->pMoveFromKafra,2,4); + packet(0x0365,clif->pPartyBookingRegisterReq,2,4); + packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pActionRequest,2,6); + packet(0x0437,clif->pChangeDir,2,4); + packet(0x0438,clif->pUseSkillToPos,2,4,6,8); + packet(0x07e4,clif->pTakeItem,2); + packet(0x07ec,clif->pMoveToKafra,2,4); + packet(0x0802,clif->pPartyInvite2,2); + packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0835,clif->pSearchStoreInfoNextPage,0); + packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x083c,clif->pUseSkillToId,2,4,6); + packet(0x0889,clif->pStoragePassword,0); + packet(0x0892,clif->pDull/*,XXX*/); + packet(0x0946,clif->pWantToConnection,2,6,10,14,18); + packet(0x0963,clif->pFriendsListAdd,2); + packet(0x096a,clif->pGetCharNameRequest,2); #endif // 2016-10-26bRagexeRE, 2016-10-26cRagexeRE #if PACKETVER == 20161026 - packet(0x0363,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x0438,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0802,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x085a,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x085f,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0861,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0862,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x086a,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x086c,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x086e,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x087a,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x087c,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x087f,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x0886,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0891,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0894,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0898,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x091a,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x091b,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x0926,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x092c,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x092e,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x092f,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0930,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x094b,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0953,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x095c,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x095e,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0962,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 + packet(0x0363,clif->pStoragePassword,0); + packet(0x0438,clif->pWalkToXY,2); + packet(0x0802,clif->pPartyBookingRegisterReq,2,4); + packet(0x085a,clif->pMoveToKafra,2,4); + packet(0x085f,clif->pActionRequest,2,6); + packet(0x0861,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0862,clif->pTickSend,2); + packet(0x086a,clif->pSearchStoreInfoNextPage,0); + packet(0x086c,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x086e,clif->pDull/*,XXX*/); + packet(0x087a,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x087c,clif->pDull/*,XXX*/); + packet(0x087f,clif->pUseSkillToPos,2,4,6,8); + packet(0x0886,clif->pDropItem,2,4); + packet(0x0891,clif->pReqClickBuyingStore,2); + packet(0x0894,clif->pUseSkillToId,2,4,6); + packet(0x0898,clif->pFriendsListAdd,2); + packet(0x091a,clif->pWantToConnection,2,6,10,14,18); + packet(0x091b,clif->pTakeItem,2); + packet(0x0926,clif->pSolveCharName,2); + packet(0x092c,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x092e,clif->pHomMenu,2,4); + packet(0x092f,clif->pReqCloseBuyingStore,0); + packet(0x0930,clif->pGetCharNameRequest,2); + packet(0x094b,clif->pMoveFromKafra,2,4); + packet(0x0953,clif->pPartyInvite2,2); + packet(0x095c,clif->pItemListWindowSelected,2,4,8); + packet(0x095e,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0962,clif->pChangeDir,2,4); #endif // 2016-11-02aRagexeRE, 2016-11-03aRagexeRE #if PACKETVER == 20161102 || \ PACKETVER == 20161103 - packet(0x0361,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0367,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0436,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0802,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x0838,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x083c,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x085f,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0869,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x086c,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x086f,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0874,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0886,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x088f,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0890,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x089f,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x08a2,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x08aa,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x091b,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x0922,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0925,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0928,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x092f,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x0936,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0946,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0949,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x095e,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x0964,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x0965,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x0966,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 + packet(0x0361,clif->pMoveFromKafra,2,4); + packet(0x0367,clif->pDull/*,XXX*/); + packet(0x0436,clif->pActionRequest,2,6); + packet(0x0802,clif->pTakeItem,2); + packet(0x0838,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x083c,clif->pPartyBookingRegisterReq,2,4); + packet(0x085f,clif->pUseSkillToId,2,4,6); + packet(0x0869,clif->pMoveToKafra,2,4); + packet(0x086c,clif->pSearchStoreInfoNextPage,0); + packet(0x086f,clif->pDull/*,XXX*/); + packet(0x0874,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0886,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x088f,clif->pHomMenu,2,4); + packet(0x0890,clif->pDropItem,2,4); + packet(0x089f,clif->pPartyInvite2,2); + packet(0x08a2,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x08aa,clif->pWalkToXY,2); + packet(0x091b,clif->pStoragePassword,0); + packet(0x0922,clif->pReqClickBuyingStore,2); + packet(0x0925,clif->pSolveCharName,2); + packet(0x0928,clif->pFriendsListAdd,2); + packet(0x092f,clif->pGetCharNameRequest,2); + packet(0x0936,clif->pReqCloseBuyingStore,0); + packet(0x0946,clif->pWantToConnection,2,6,10,14,18); + packet(0x0949,clif->pChangeDir,2,4); + packet(0x095e,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x0964,clif->pItemListWindowSelected,2,4,8); + packet(0x0965,clif->pUseSkillToPos,2,4,6,8); + packet(0x0966,clif->pTickSend,2); #endif // 2016-11-09aRagexeRE, 2016-11-09bRagexeRE, 2016-11-09cRagexeRE, 2016-11-09dRagexeRE #if PACKETVER == 20161109 - packet(0x02c4,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0361,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0362,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0365,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0366,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0835,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x085d,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x085e,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0865,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x086a,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x086d,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x0870,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0876,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x087a,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0881,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x088e,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x0891,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x0898,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x089a,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x089d,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x089f,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x08a7,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x08ad,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0927,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0937,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x093c,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x093f,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x0954,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0956,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 + packet(0x02c4,clif->pPartyBookingRegisterReq,2,4); + packet(0x0361,clif->pSearchStoreInfoNextPage,0); + packet(0x0362,clif->pMoveFromKafra,2,4); + packet(0x0365,clif->pTickSend,2); + packet(0x0366,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0835,clif->pSolveCharName,2); + packet(0x085d,clif->pReqCloseBuyingStore,0); + packet(0x085e,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0865,clif->pWalkToXY,2); + packet(0x086a,clif->pActionRequest,2,6); + packet(0x086d,clif->pUseSkillToPos,2,4,6,8); + packet(0x0870,clif->pWantToConnection,2,6,10,14,18); + packet(0x0876,clif->pReqClickBuyingStore,2); + packet(0x087a,clif->pDull/*,XXX*/); + packet(0x0881,clif->pMoveToKafra,2,4); + packet(0x088e,clif->pItemListWindowSelected,2,4,8); + packet(0x0891,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x0898,clif->pTakeItem,2); + packet(0x089a,clif->pDropItem,2,4); + packet(0x089d,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x089f,clif->pDull/*,XXX*/); + packet(0x08a7,clif->pHomMenu,2,4); + packet(0x08ad,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0927,clif->pPartyInvite2,2); + packet(0x0937,clif->pFriendsListAdd,2); + packet(0x093c,clif->pStoragePassword,0); + packet(0x093f,clif->pGetCharNameRequest,2); + packet(0x0954,clif->pUseSkillToId,2,4,6); + packet(0x0956,clif->pChangeDir,2,4); #endif // 2016-11-16bRagexeRE, 2016-11-16cRagexeRE #if PACKETVER == 20161116 - packet(0x0368,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0369,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0835,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x085f,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0864,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x086f,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x0885,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x088b,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x088d,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x088f,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0890,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0892,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x0893,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x08a1,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x08a2,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x08aa,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x08ac,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0920,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0925,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x092a,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0931,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x093c,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x094a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x0952,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0957,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x095b,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x095d,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x095f,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0967,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 + packet(0x0368,clif->pTickSend,2); + packet(0x0369,clif->pMoveToKafra,2,4); + packet(0x0835,clif->pFriendsListAdd,2); + packet(0x085f,clif->pDropItem,2,4); + packet(0x0864,clif->pPartyInvite2,2); + packet(0x086f,clif->pTakeItem,2); + packet(0x0885,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x088b,clif->pHomMenu,2,4); + packet(0x088d,clif->pReqClickBuyingStore,2); + packet(0x088f,clif->pWantToConnection,2,6,10,14,18); + packet(0x0890,clif->pWalkToXY,2); + packet(0x0892,clif->pItemListWindowSelected,2,4,8); + packet(0x0893,clif->pActionRequest,2,6); + packet(0x08a1,clif->pChangeDir,2,4); + packet(0x08a2,clif->pPartyBookingRegisterReq,2,4); + packet(0x08aa,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x08ac,clif->pMoveFromKafra,2,4); + packet(0x0920,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0925,clif->pUseSkillToPos,2,4,6,8); + packet(0x092a,clif->pUseSkillToId,2,4,6); + packet(0x0931,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x093c,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x094a,clif->pGetCharNameRequest,2); + packet(0x0952,clif->pReqCloseBuyingStore,0); + packet(0x0957,clif->pSolveCharName,2); + packet(0x095b,clif->pStoragePassword,0); + packet(0x095d,clif->pDull/*,XXX*/); + packet(0x095f,clif->pSearchStoreInfoNextPage,0); + packet(0x0967,clif->pDull/*,XXX*/); #endif // 2016-11-23aRagexeRE #if PACKETVER == 20161123 - packet(0x0281,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x035f,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0362,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0437,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x085c,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0861,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0862,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0866,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x086f,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0871,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x087f,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0880,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x0882,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x088b,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x089c,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x08a9,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x08aa,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x091a,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0926,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x092a,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x092f,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x0930,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0941,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x094d,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x094f,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x095a,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x095b,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0962,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x096a,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 + packet(0x0281,clif->pItemListWindowSelected,2,4,8); + packet(0x035f,clif->pPartyBookingRegisterReq,2,4); + packet(0x0362,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0437,clif->pTickSend,2); + packet(0x085c,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0861,clif->pWalkToXY,2); + packet(0x0862,clif->pReqCloseBuyingStore,0); + packet(0x0866,clif->pSearchStoreInfoNextPage,0); + packet(0x086f,clif->pDropItem,2,4); + packet(0x0871,clif->pDull/*,XXX*/); + packet(0x087f,clif->pPartyInvite2,2); + packet(0x0880,clif->pStoragePassword,0); + packet(0x0882,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x088b,clif->pGetCharNameRequest,2); + packet(0x089c,clif->pChangeDir,2,4); + packet(0x08a9,clif->pUseSkillToPos,2,4,6,8); + packet(0x08aa,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x091a,clif->pMoveToKafra,2,4); + packet(0x0926,clif->pWantToConnection,2,6,10,14,18); + packet(0x092a,clif->pReqClickBuyingStore,2); + packet(0x092f,clif->pTakeItem,2); + packet(0x0930,clif->pHomMenu,2,4); + packet(0x0941,clif->pFriendsListAdd,2); + packet(0x094d,clif->pUseSkillToId,2,4,6); + packet(0x094f,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x095a,clif->pDull/*,XXX*/); + packet(0x095b,clif->pActionRequest,2,6); + packet(0x0962,clif->pMoveFromKafra,2,4); + packet(0x096a,clif->pSolveCharName,2); #endif // 2016-11-30aRagexeRE, 2016-11-30bRagexeRE #if PACKETVER == 20161130 - packet(0x0281,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x035f,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0360,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0361,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0362,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0363,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0364,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0365,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0437,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0438,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x07e4,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x07ec,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0802,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0835,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x083c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x088f,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0931,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0943,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0954,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x0959,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x096a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 + packet(0x0281,clif->pItemListWindowSelected,2,4,8); + packet(0x035f,clif->pChangeDir,2,4); + packet(0x0360,clif->pReqClickBuyingStore,2); + packet(0x0361,clif->pTickSend,2); + packet(0x0362,clif->pDropItem,2,4); + packet(0x0363,clif->pDull/*,XXX*/); + packet(0x0364,clif->pMoveFromKafra,2,4); + packet(0x0365,clif->pPartyBookingRegisterReq,2,4); + packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pActionRequest,2,6); + packet(0x0437,clif->pWalkToXY,2); + packet(0x0438,clif->pUseSkillToPos,2,4,6,8); + packet(0x07e4,clif->pTakeItem,2); + packet(0x07ec,clif->pMoveToKafra,2,4); + packet(0x0802,clif->pPartyInvite2,2); + packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0835,clif->pSearchStoreInfoNextPage,0); + packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x083c,clif->pUseSkillToId,2,4,6); + packet(0x088f,clif->pDull/*,XXX*/); + packet(0x0931,clif->pHomMenu,2,4); + packet(0x0943,clif->pWantToConnection,2,6,10,14,18); + packet(0x0954,clif->pStoragePassword,0); + packet(0x0959,clif->pFriendsListAdd,2); + packet(0x096a,clif->pGetCharNameRequest,2); #endif // 2016-12-07cRagexeRE, 2016-12-07dRagexeRE, 2016-12-07eRagexeRE #if PACKETVER == 20161207 - packet(0x023b,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x035f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0360,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0361,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0437,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0438,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0835,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x083c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0867,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0868,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0875,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x087e,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x0886,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x08a1,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x08a2,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x08ad,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0918,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x091d,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0943,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x095d,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x0965,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x096a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 + packet(0x023b,clif->pHomMenu,2,4); + packet(0x035f,clif->pTickSend,2); + packet(0x0360,clif->pReqClickBuyingStore,2); + packet(0x0361,clif->pWantToConnection,2,6,10,14,18); + packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0437,clif->pWalkToXY,2); + packet(0x0438,clif->pUseSkillToPos,2,4,6,8); + packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0835,clif->pSearchStoreInfoNextPage,0); + packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x083c,clif->pUseSkillToId,2,4,6); + packet(0x0867,clif->pFriendsListAdd,2); + packet(0x0868,clif->pDull/*,XXX*/); + packet(0x0875,clif->pMoveToKafra,2,4); + packet(0x087e,clif->pItemListWindowSelected,2,4,8); + packet(0x0886,clif->pActionRequest,2,6); + packet(0x08a1,clif->pChangeDir,2,4); + packet(0x08a2,clif->pTakeItem,2); + packet(0x08ad,clif->pDropItem,2,4); + packet(0x0918,clif->pPartyBookingRegisterReq,2,4); + packet(0x091d,clif->pMoveFromKafra,2,4); + packet(0x0943,clif->pDull/*,XXX*/); + packet(0x095d,clif->pStoragePassword,0); + packet(0x0965,clif->pPartyInvite2,2); + packet(0x096a,clif->pGetCharNameRequest,2); #endif // 2016-12-14bRagexeRE, 2016-12-14cRagexeRE #if PACKETVER == 20161214 - packet(0x022d,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0281,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x02c4,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x035f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0360,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0364,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0436,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0437,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0438,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0819,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0835,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x083c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x085a,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x0862,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x086d,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0887,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0895,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0899,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x08a6,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x092e,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x093d,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x096a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 + packet(0x022d,clif->pReqClickBuyingStore,2); + packet(0x0281,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x02c4,clif->pMoveFromKafra,2,4); + packet(0x035f,clif->pTickSend,2); + packet(0x0360,clif->pHomMenu,2,4); + packet(0x0364,clif->pMoveToKafra,2,4); + packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pWantToConnection,2,6,10,14,18); + packet(0x0436,clif->pActionRequest,2,6); + packet(0x0437,clif->pWalkToXY,2); + packet(0x0438,clif->pUseSkillToPos,2,4,6,8); + packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x0819,clif->pDull/*,XXX*/); + packet(0x0835,clif->pSearchStoreInfoNextPage,0); + packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x083c,clif->pUseSkillToId,2,4,6); + packet(0x085a,clif->pItemListWindowSelected,2,4,8); + packet(0x0862,clif->pFriendsListAdd,2); + packet(0x086d,clif->pPartyInvite2,2); + packet(0x0887,clif->pDropItem,2,4); + packet(0x0895,clif->pDull/*,XXX*/); + packet(0x0899,clif->pStoragePassword,0); + packet(0x08a6,clif->pPartyBookingRegisterReq,2,4); + packet(0x092e,clif->pTakeItem,2); + packet(0x093d,clif->pChangeDir,2,4); + packet(0x096a,clif->pGetCharNameRequest,2); #endif // 2016-12-21aRagexeRE, 2016-12-21bRagexeRE, 2016-12-21cRagexeRE, 2016-12-21dRagexeRE #if PACKETVER == 20161221 - packet(0x035f,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x0362,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0366,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0438,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0817,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x085b,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0866,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0876,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x0881,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x0884,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0885,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x088c,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0890,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x0899,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x089a,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x089b,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x08aa,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x091e,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0926,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0928,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x092c,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x092e,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0930,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0943,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0946,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x094b,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x095a,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0964,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0965,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 + packet(0x035f,clif->pTakeItem,2); + packet(0x0362,clif->pDropItem,2,4); + packet(0x0366,clif->pSolveCharName,2); + packet(0x0438,clif->pWalkToXY,2); + packet(0x0817,clif->pMoveToKafra,2,4); + packet(0x085b,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0866,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0876,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x0881,clif->pGetCharNameRequest,2); + packet(0x0884,clif->pDull/*,XXX*/); + packet(0x0885,clif->pItemListWindowSelected,2,4,8); + packet(0x088c,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0890,clif->pStoragePassword,0); + packet(0x0899,clif->pDull/*,XXX*/); + packet(0x089a,clif->pMoveFromKafra,2,4); + packet(0x089b,clif->pActionRequest,2,6); + packet(0x08aa,clif->pTickSend,2); + packet(0x091e,clif->pSearchStoreInfoNextPage,0); + packet(0x0926,clif->pPartyInvite2,2); + packet(0x0928,clif->pFriendsListAdd,2); + packet(0x092c,clif->pReqCloseBuyingStore,0); + packet(0x092e,clif->pPartyBookingRegisterReq,2,4); + packet(0x0930,clif->pHomMenu,2,4); + packet(0x0943,clif->pUseSkillToId,2,4,6); + packet(0x0946,clif->pUseSkillToPos,2,4,6,8); + packet(0x094b,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x095a,clif->pReqClickBuyingStore,2); + packet(0x0964,clif->pWantToConnection,2,6,10,14,18); + packet(0x0965,clif->pChangeDir,2,4); #endif // 2016-12-28aRagexeRE #if PACKETVER == 20161228 - packet(0x0362,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x085a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x085e,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0865,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x086a,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x086c,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x086d,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0870,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0871,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0875,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x087f,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x0886,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0889,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x0893,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x089f,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x08a2,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x08a3,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x08a5,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x08ab,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x08ac,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x08ad,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x091c,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0929,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x092c,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0934,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0935,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0938,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x093d,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0944,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 + packet(0x0362,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x085a,clif->pGetCharNameRequest,2); + packet(0x085e,clif->pHomMenu,2,4); + packet(0x0865,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x086a,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x086c,clif->pTakeItem,2); + packet(0x086d,clif->pWantToConnection,2,6,10,14,18); + packet(0x0870,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0871,clif->pChangeDir,2,4); + packet(0x0875,clif->pReqCloseBuyingStore,0); + packet(0x087f,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x0886,clif->pWalkToXY,2); + packet(0x0889,clif->pItemListWindowSelected,2,4,8); + packet(0x0893,clif->pDropItem,2,4); + packet(0x089f,clif->pMoveToKafra,2,4); + packet(0x08a2,clif->pUseSkillToId,2,4,6); + packet(0x08a3,clif->pReqClickBuyingStore,2); + packet(0x08a5,clif->pPartyBookingRegisterReq,2,4); + packet(0x08ab,clif->pMoveFromKafra,2,4); + packet(0x08ac,clif->pSolveCharName,2); + packet(0x08ad,clif->pStoragePassword,0); + packet(0x091c,clif->pFriendsListAdd,2); + packet(0x0929,clif->pUseSkillToPos,2,4,6,8); + packet(0x092c,clif->pSearchStoreInfoNextPage,0); + packet(0x0934,clif->pPartyInvite2,2); + packet(0x0935,clif->pDull/*,XXX*/); + packet(0x0938,clif->pDull/*,XXX*/); + packet(0x093d,clif->pActionRequest,2,6); + packet(0x0944,clif->pTickSend,2); #endif // 2017-01-04bRagexeRE #if PACKETVER == 20170104 - packet(0x0281,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x035f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0360,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0362,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0363,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0364,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0365,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0436,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0437,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0438,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x07e4,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x07ec,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0802,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0835,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x083c,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x085a,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x087f,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x0896,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x091b,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0940,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x096a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 + packet(0x0281,clif->pItemListWindowSelected,2,4,8); + packet(0x035f,clif->pTickSend,2); + packet(0x0360,clif->pReqClickBuyingStore,2); + packet(0x0362,clif->pDropItem,2,4); + packet(0x0363,clif->pDull/*,XXX*/); + packet(0x0364,clif->pMoveFromKafra,2,4); + packet(0x0365,clif->pPartyBookingRegisterReq,2,4); + packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pActionRequest,2,6); + packet(0x0436,clif->pDull/*,XXX*/); + packet(0x0437,clif->pWalkToXY,2); + packet(0x0438,clif->pWantToConnection,2,6,10,14,18); + packet(0x07e4,clif->pTakeItem,2); + packet(0x07ec,clif->pMoveToKafra,2,4); + packet(0x0802,clif->pPartyInvite2,2); + packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0835,clif->pSearchStoreInfoNextPage,0); + packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x083c,clif->pUseSkillToPos,2,4,6,8); + packet(0x085a,clif->pFriendsListAdd,2); + packet(0x087f,clif->pStoragePassword,0); + packet(0x0896,clif->pChangeDir,2,4); + packet(0x091b,clif->pHomMenu,2,4); + packet(0x0940,clif->pUseSkillToId,2,4,6); + packet(0x096a,clif->pGetCharNameRequest,2); #endif // 2017-01-11aRagexeRE #if PACKETVER == 20170111 - packet(0x035f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0360,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0436,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0437,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0438,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0835,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x083c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x085d,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0877,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x087f,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x088a,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x08a1,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x08a3,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x08a6,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x091a,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x091b,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0940,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x094c,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0961,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x0969,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x096a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 + packet(0x035f,clif->pTickSend,2); + packet(0x0360,clif->pReqClickBuyingStore,2); + packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pActionRequest,2,6); + packet(0x0436,clif->pDull/*,XXX*/); + packet(0x0437,clif->pWalkToXY,2); + packet(0x0438,clif->pUseSkillToPos,2,4,6,8); + packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0835,clif->pSearchStoreInfoNextPage,0); + packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x083c,clif->pUseSkillToId,2,4,6); + packet(0x085d,clif->pHomMenu,2,4); + packet(0x0877,clif->pFriendsListAdd,2); + packet(0x087f,clif->pDull/*,XXX*/); + packet(0x088a,clif->pMoveToKafra,2,4); + packet(0x08a1,clif->pChangeDir,2,4); + packet(0x08a3,clif->pTakeItem,2); + packet(0x08a6,clif->pPartyBookingRegisterReq,2,4); + packet(0x091a,clif->pStoragePassword,0); + packet(0x091b,clif->pWantToConnection,2,6,10,14,18); + packet(0x0940,clif->pDropItem,2,4); + packet(0x094c,clif->pMoveFromKafra,2,4); + packet(0x0961,clif->pItemListWindowSelected,2,4,8); + packet(0x0969,clif->pPartyInvite2,2); + packet(0x096a,clif->pGetCharNameRequest,2); #endif // 2017-01-18aRagexeRE #if PACKETVER == 20170118 - packet(0x022d,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x035f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0360,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0364,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0436,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0437,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0438,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0835,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x083c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0862,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0865,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x086f,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x0873,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x089e,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x08ad,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x091f,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0927,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0933,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0958,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x0962,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x096a,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 + packet(0x022d,clif->pUseSkillToPos,2,4,6,8); + packet(0x035f,clif->pTickSend,2); + packet(0x0360,clif->pReqClickBuyingStore,2); + packet(0x0364,clif->pGetCharNameRequest,2); + packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pActionRequest,2,6); + packet(0x0436,clif->pHomMenu,2,4); + packet(0x0437,clif->pWalkToXY,2); + packet(0x0438,clif->pWantToConnection,2,6,10,14,18); + packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0835,clif->pSearchStoreInfoNextPage,0); + packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x083c,clif->pUseSkillToId,2,4,6); + packet(0x0862,clif->pMoveFromKafra,2,4); + packet(0x0865,clif->pChangeDir,2,4); + packet(0x086f,clif->pTakeItem,2); + packet(0x0873,clif->pDull/*,XXX*/); + packet(0x089e,clif->pPartyInvite2,2); + packet(0x08ad,clif->pItemListWindowSelected,2,4,8); + packet(0x091f,clif->pPartyBookingRegisterReq,2,4); + packet(0x0927,clif->pDull/*,XXX*/); + packet(0x0933,clif->pDropItem,2,4); + packet(0x0958,clif->pStoragePassword,0); + packet(0x0962,clif->pFriendsListAdd,2); + packet(0x096a,clif->pMoveToKafra,2,4); #endif // 2017-01-25aRagexeRE #if PACKETVER == 20170125 - packet(0x0438,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0811,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x086e,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0876,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0877,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0879,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x087b,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x087d,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0881,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0884,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0893,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x0894,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0895,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x0898,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x089b,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x08a5,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x091b,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x091c,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x091d,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0920,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0929,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x092b,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x0930,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x093c,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0943,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0944,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x095c,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0965,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x0968,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 + packet(0x0438,clif->pActionRequest,2,6); + packet(0x0811,clif->pWantToConnection,2,6,10,14,18); + packet(0x086e,clif->pPartyInvite2,2); + packet(0x0876,clif->pHomMenu,2,4); + packet(0x0877,clif->pDropItem,2,4); + packet(0x0879,clif->pUseSkillToId,2,4,6); + packet(0x087b,clif->pTakeItem,2); + packet(0x087d,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0881,clif->pChangeDir,2,4); + packet(0x0884,clif->pDull/*,XXX*/); + packet(0x0893,clif->pStoragePassword,0); + packet(0x0894,clif->pDull/*,XXX*/); + packet(0x0895,clif->pItemListWindowSelected,2,4,8); + packet(0x0898,clif->pSolveCharName,2); + packet(0x089b,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x08a5,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x091b,clif->pReqClickBuyingStore,2); + packet(0x091c,clif->pMoveToKafra,2,4); + packet(0x091d,clif->pReqCloseBuyingStore,0); + packet(0x0920,clif->pFriendsListAdd,2); + packet(0x0929,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x092b,clif->pUseSkillToPos,2,4,6,8); + packet(0x0930,clif->pWalkToXY,2); + packet(0x093c,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0943,clif->pTickSend,2); + packet(0x0944,clif->pPartyBookingRegisterReq,2,4); + packet(0x095c,clif->pMoveFromKafra,2,4); + packet(0x0965,clif->pGetCharNameRequest,2); + packet(0x0968,clif->pSearchStoreInfoNextPage,0); #endif // 2017-02-01aRagexeRE #if PACKETVER == 20170201 - packet(0x035f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0360,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0438,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x0815,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0835,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x083c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x085d,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x085e,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0875,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x0879,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0881,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0884,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0885,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0886,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x088b,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x08a4,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0919,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0920,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0938,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0940,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x094c,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0966,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0969,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x096a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 + packet(0x035f,clif->pTickSend,2); + packet(0x0360,clif->pReqClickBuyingStore,2); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pActionRequest,2,6); + packet(0x0438,clif->pUseSkillToPos,2,4,6,8); + packet(0x0815,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0835,clif->pSearchStoreInfoNextPage,0); + packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x083c,clif->pUseSkillToId,2,4,6); + packet(0x085d,clif->pPartyBookingRegisterReq,2,4); + packet(0x085e,clif->pChangeDir,2,4); + packet(0x0875,clif->pTakeItem,2); + packet(0x0879,clif->pDull/*,XXX*/); + packet(0x0881,clif->pMoveToKafra,2,4); + packet(0x0884,clif->pWalkToXY,2); + packet(0x0885,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0886,clif->pStoragePassword,0); + packet(0x088b,clif->pDropItem,2,4); + packet(0x08a4,clif->pDull/*,XXX*/); + packet(0x0919,clif->pFriendsListAdd,2); + packet(0x0920,clif->pPartyInvite2,2); + packet(0x0938,clif->pHomMenu,2,4); + packet(0x0940,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x094c,clif->pWantToConnection,2,6,10,14,18); + packet(0x0966,clif->pMoveFromKafra,2,4); + packet(0x0969,clif->pItemListWindowSelected,2,4,8); + packet(0x096a,clif->pGetCharNameRequest,2); #endif // 2017-02-08aRagexeRE, 2017-02-08bRagexeRE #if PACKETVER == 20170208 - packet(0x02c4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x035f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0360,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0367,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0437,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0438,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0835,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x083c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x085c,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0860,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x087a,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x088c,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0892,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x08a1,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x08ac,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0921,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0923,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x092d,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0932,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0937,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x096a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 + packet(0x02c4,clif->pDull/*,XXX*/); + packet(0x035f,clif->pTickSend,2); + packet(0x0360,clif->pReqClickBuyingStore,2); + packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0367,clif->pItemListWindowSelected,2,4,8); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pActionRequest,2,6); + packet(0x0437,clif->pWalkToXY,2); + packet(0x0438,clif->pUseSkillToPos,2,4,6,8); + packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0835,clif->pSearchStoreInfoNextPage,0); + packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x083c,clif->pUseSkillToId,2,4,6); + packet(0x085c,clif->pPartyInvite2,2); + packet(0x0860,clif->pChangeDir,2,4); + packet(0x087a,clif->pDull/*,XXX*/); + packet(0x088c,clif->pWantToConnection,2,6,10,14,18); + packet(0x0892,clif->pFriendsListAdd,2); + packet(0x08a1,clif->pPartyBookingRegisterReq,2,4); + packet(0x08ac,clif->pMoveToKafra,2,4); + packet(0x0921,clif->pDropItem,2,4); + packet(0x0923,clif->pTakeItem,2); + packet(0x092d,clif->pHomMenu,2,4); + packet(0x0932,clif->pMoveFromKafra,2,4); + packet(0x0937,clif->pStoragePassword,0); + packet(0x096a,clif->pGetCharNameRequest,2); #endif // 2017-02-15aRagexeRE #if PACKETVER == 20170215 - packet(0x02c4,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x035f,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0360,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0811,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x083c,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x085c,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0876,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x087c,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x087d,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x087e,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0883,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0884,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x088a,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x088b,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x088c,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0890,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x0896,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x089b,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x08a2,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x08a8,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x091c,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0925,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x092b,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x092d,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0942,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x094e,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x095f,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0962,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0969,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 + packet(0x02c4,clif->pStoragePassword,0); + packet(0x035f,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0360,clif->pTickSend,2); + packet(0x0811,clif->pWantToConnection,2,6,10,14,18); + packet(0x083c,clif->pActionRequest,2,6); + packet(0x085c,clif->pDropItem,2,4); + packet(0x0876,clif->pFriendsListAdd,2); + packet(0x087c,clif->pItemListWindowSelected,2,4,8); + packet(0x087d,clif->pChangeDir,2,4); + packet(0x087e,clif->pUseSkillToId,2,4,6); + packet(0x0883,clif->pSolveCharName,2); + packet(0x0884,clif->pDull/*,XXX*/); + packet(0x088a,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x088b,clif->pPartyInvite2,2); + packet(0x088c,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0890,clif->pUseSkillToPos,2,4,6,8); + packet(0x0896,clif->pDull/*,XXX*/); + packet(0x089b,clif->pMoveToKafra,2,4); + packet(0x08a2,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x08a8,clif->pPartyBookingRegisterReq,2,4); + packet(0x091c,clif->pReqCloseBuyingStore,0); + packet(0x0925,clif->pMoveFromKafra,2,4); + packet(0x092b,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x092d,clif->pSearchStoreInfoNextPage,0); + packet(0x0942,clif->pTakeItem,2); + packet(0x094e,clif->pGetCharNameRequest,2); + packet(0x095f,clif->pReqClickBuyingStore,2); + packet(0x0962,clif->pHomMenu,2,4); + packet(0x0969,clif->pWalkToXY,2); #endif // 2017-02-22aRagexeRE #if PACKETVER == 20170222 - packet(0x0202,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x035f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0360,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0437,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0438,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0835,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x083c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x085f,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0866,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0870,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0871,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0877,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0889,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0894,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x08a3,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x08a8,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0937,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x0939,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0943,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x095d,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0962,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x096a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 + packet(0x0202,clif->pHomMenu,2,4); + packet(0x035f,clif->pTickSend,2); + packet(0x0360,clif->pReqClickBuyingStore,2); + packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pActionRequest,2,6); + packet(0x0437,clif->pWalkToXY,2); + packet(0x0438,clif->pUseSkillToPos,2,4,6,8); + packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x0835,clif->pSearchStoreInfoNextPage,0); + packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x083c,clif->pUseSkillToId,2,4,6); + packet(0x085f,clif->pFriendsListAdd,2); + packet(0x0866,clif->pDropItem,2,4); + packet(0x0870,clif->pPartyBookingRegisterReq,2,4); + packet(0x0871,clif->pDull/*,XXX*/); + packet(0x0877,clif->pDull/*,XXX*/); + packet(0x0889,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0894,clif->pTakeItem,2); + packet(0x08a3,clif->pChangeDir,2,4); + packet(0x08a8,clif->pPartyInvite2,2); + packet(0x0937,clif->pItemListWindowSelected,2,4,8); + packet(0x0939,clif->pWantToConnection,2,6,10,14,18); + packet(0x0943,clif->pStoragePassword,0); + packet(0x095d,clif->pMoveToKafra,2,4); + packet(0x0962,clif->pMoveFromKafra,2,4); + packet(0x096a,clif->pGetCharNameRequest,2); #endif // 2017-02-28aRagexeRE #if PACKETVER == 20170228 - packet(0x022d,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0360,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0362,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0819,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x085e,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0863,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x086b,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0873,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x0874,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0876,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0883,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0884,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0889,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0893,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x089e,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x08a0,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x08a2,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x08a6,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x08a7,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x091f,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x092a,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x092e,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0937,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x093e,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0944,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0947,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0948,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0952,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x0955,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 + packet(0x022d,clif->pDropItem,2,4); + packet(0x0360,clif->pActionRequest,2,6); + packet(0x0362,clif->pHomMenu,2,4); + packet(0x0819,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x085e,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0863,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x086b,clif->pWantToConnection,2,6,10,14,18); + packet(0x0873,clif->pItemListWindowSelected,2,4,8); + packet(0x0874,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0876,clif->pReqCloseBuyingStore,0); + packet(0x0883,clif->pSearchStoreInfoNextPage,0); + packet(0x0884,clif->pWalkToXY,2); + packet(0x0889,clif->pChangeDir,2,4); + packet(0x0893,clif->pGetCharNameRequest,2); + packet(0x089e,clif->pMoveToKafra,2,4); + packet(0x08a0,clif->pFriendsListAdd,2); + packet(0x08a2,clif->pStoragePassword,0); + packet(0x08a6,clif->pDull/*,XXX*/); + packet(0x08a7,clif->pReqClickBuyingStore,2); + packet(0x091f,clif->pUseSkillToId,2,4,6); + packet(0x092a,clif->pTakeItem,2); + packet(0x092e,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0937,clif->pTickSend,2); + packet(0x093e,clif->pDull/*,XXX*/); + packet(0x0944,clif->pMoveFromKafra,2,4); + packet(0x0947,clif->pSolveCharName,2); + packet(0x0948,clif->pPartyInvite2,2); + packet(0x0952,clif->pUseSkillToPos,2,4,6,8); + packet(0x0955,clif->pPartyBookingRegisterReq,2,4); #endif // 2017-03-08bRagexeRE #if PACKETVER == 20170308 - packet(0x0202,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x022d,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x023b,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0281,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x035f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0360,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0361,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0362,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0363,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0364,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0365,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0436,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0437,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0438,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x07e4,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x07ec,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0802,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0835,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x083c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x087d,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x096a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 + packet(0x0202,clif->pChangeDir,2,4); + packet(0x022d,clif->pWantToConnection,2,6,10,14,18); + packet(0x023b,clif->pFriendsListAdd,2); + packet(0x0281,clif->pItemListWindowSelected,2,4,8); + packet(0x035f,clif->pTickSend,2); + packet(0x0360,clif->pReqClickBuyingStore,2); + packet(0x0361,clif->pHomMenu,2,4); + packet(0x0362,clif->pDropItem,2,4); + packet(0x0363,clif->pDull/*,XXX*/); + packet(0x0364,clif->pMoveFromKafra,2,4); + packet(0x0365,clif->pPartyBookingRegisterReq,2,4); + packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pActionRequest,2,6); + packet(0x0436,clif->pDull/*,XXX*/); + packet(0x0437,clif->pWalkToXY,2); + packet(0x0438,clif->pUseSkillToPos,2,4,6,8); + packet(0x07e4,clif->pTakeItem,2); + packet(0x07ec,clif->pMoveToKafra,2,4); + packet(0x0802,clif->pPartyInvite2,2); + packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0835,clif->pSearchStoreInfoNextPage,0); + packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x083c,clif->pUseSkillToId,2,4,6); + packet(0x087d,clif->pStoragePassword,0); + packet(0x096a,clif->pGetCharNameRequest,2); #endif // 2017-03-15cRagexeRE #if PACKETVER == 20170315 - packet(0x02c4,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x035f,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0360,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0366,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x0367,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0436,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x07ec,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x085c,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0863,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x086a,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0872,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x087b,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0884,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x088b,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x088d,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x088f,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0892,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x089c,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x08aa,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x091a,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x091b,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x091d,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x0920,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0922,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x0944,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x094a,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x094e,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0950,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0952,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 + packet(0x02c4,clif->pUseSkillToPos,2,4,6,8); + packet(0x035f,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0360,clif->pChangeDir,2,4); + packet(0x0366,clif->pTakeItem,2); + packet(0x0367,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0436,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x07ec,clif->pTickSend,2); + packet(0x085c,clif->pDull/*,XXX*/); + packet(0x0863,clif->pHomMenu,2,4); + packet(0x086a,clif->pMoveFromKafra,2,4); + packet(0x0872,clif->pFriendsListAdd,2); + packet(0x087b,clif->pPartyInvite2,2); + packet(0x0884,clif->pActionRequest,2,6); + packet(0x088b,clif->pPartyBookingRegisterReq,2,4); + packet(0x088d,clif->pDull/*,XXX*/); + packet(0x088f,clif->pWalkToXY,2); + packet(0x0892,clif->pUseSkillToId,2,4,6); + packet(0x089c,clif->pReqCloseBuyingStore,0); + packet(0x08aa,clif->pMoveToKafra,2,4); + packet(0x091a,clif->pDropItem,2,4); + packet(0x091b,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x091d,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x0920,clif->pSolveCharName,2); + packet(0x0922,clif->pItemListWindowSelected,2,4,8); + packet(0x0944,clif->pGetCharNameRequest,2); + packet(0x094a,clif->pReqClickBuyingStore,2); + packet(0x094e,clif->pWantToConnection,2,6,10,14,18); + packet(0x0950,clif->pSearchStoreInfoNextPage,0); + packet(0x0952,clif->pStoragePassword,0); #endif // 2017-03-22aRagexeRE, 2017-03-22bRagexeRE #if PACKETVER == 20170322 - packet(0x0202,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x022d,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x023b,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0281,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x035f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0360,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0361,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0362,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0363,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0364,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0365,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0436,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0437,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0438,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x07e4,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x07ec,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0802,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0835,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x083c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x091a,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x096a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 + packet(0x0202,clif->pChangeDir,2,4); + packet(0x022d,clif->pWantToConnection,2,6,10,14,18); + packet(0x023b,clif->pFriendsListAdd,2); + packet(0x0281,clif->pItemListWindowSelected,2,4,8); + packet(0x035f,clif->pTickSend,2); + packet(0x0360,clif->pReqClickBuyingStore,2); + packet(0x0361,clif->pHomMenu,2,4); + packet(0x0362,clif->pDropItem,2,4); + packet(0x0363,clif->pDull/*,XXX*/); + packet(0x0364,clif->pMoveFromKafra,2,4); + packet(0x0365,clif->pPartyBookingRegisterReq,2,4); + packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pActionRequest,2,6); + packet(0x0436,clif->pDull/*,XXX*/); + packet(0x0437,clif->pWalkToXY,2); + packet(0x0438,clif->pUseSkillToPos,2,4,6,8); + packet(0x07e4,clif->pTakeItem,2); + packet(0x07ec,clif->pMoveToKafra,2,4); + packet(0x0802,clif->pPartyInvite2,2); + packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0835,clif->pSearchStoreInfoNextPage,0); + packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x083c,clif->pUseSkillToId,2,4,6); + packet(0x091a,clif->pStoragePassword,0); + packet(0x096a,clif->pGetCharNameRequest,2); #endif // 2017-03-29cRagexeRE, 2017-03-29dRagexeRE #if PACKETVER == 20170329 - packet(0x0281,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x035f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0360,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0362,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0363,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0437,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0438,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0835,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x083c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x085d,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x087a,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0888,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x08a8,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0917,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0926,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0929,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x092e,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0937,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x0939,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0949,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x095f,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x096a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 + packet(0x0281,clif->pPartyInvite2,2); + packet(0x035f,clif->pTickSend,2); + packet(0x0360,clif->pReqClickBuyingStore,2); + packet(0x0362,clif->pHomMenu,2,4); + packet(0x0363,clif->pMoveToKafra,2,4); + packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pActionRequest,2,6); + packet(0x0437,clif->pWalkToXY,2); + packet(0x0438,clif->pUseSkillToPos,2,4,6,8); + packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x0835,clif->pSearchStoreInfoNextPage,0); + packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x083c,clif->pUseSkillToId,2,4,6); + packet(0x085d,clif->pStoragePassword,0); + packet(0x087a,clif->pPartyBookingRegisterReq,2,4); + packet(0x0888,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x08a8,clif->pDropItem,2,4); + packet(0x0917,clif->pDull/*,XXX*/); + packet(0x0926,clif->pChangeDir,2,4); + packet(0x0929,clif->pTakeItem,2); + packet(0x092e,clif->pWantToConnection,2,6,10,14,18); + packet(0x0937,clif->pItemListWindowSelected,2,4,8); + packet(0x0939,clif->pFriendsListAdd,2); + packet(0x0949,clif->pMoveFromKafra,2,4); + packet(0x095f,clif->pDull/*,XXX*/); + packet(0x096a,clif->pGetCharNameRequest,2); #endif // 2017-04-05bRagexeRE, 2017-04-05cRagexeRE #if PACKETVER == 20170405 - packet(0x022d,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0281,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x035f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0360,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0362,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0363,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x0437,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0438,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0835,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x083c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x085f,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0860,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x0864,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0865,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x086f,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0893,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x08a5,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x094c,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x094f,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0964,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x096a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 + packet(0x022d,clif->pSearchStoreInfoNextPage,0); + packet(0x0281,clif->pPartyBookingRegisterReq,2,4); + packet(0x035f,clif->pTickSend,2); + packet(0x0360,clif->pReqClickBuyingStore,2); + packet(0x0362,clif->pActionRequest,2,6); + packet(0x0363,clif->pDull/*,XXX*/); + packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pTakeItem,2); + packet(0x0437,clif->pWalkToXY,2); + packet(0x0438,clif->pUseSkillToPos,2,4,6,8); + packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0835,clif->pHomMenu,2,4); + packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x083c,clif->pUseSkillToId,2,4,6); + packet(0x085f,clif->pMoveToKafra,2,4); + packet(0x0860,clif->pItemListWindowSelected,2,4,8); + packet(0x0864,clif->pPartyInvite2,2); + packet(0x0865,clif->pChangeDir,2,4); + packet(0x086f,clif->pFriendsListAdd,2); + packet(0x0893,clif->pMoveFromKafra,2,4); + packet(0x08a5,clif->pWantToConnection,2,6,10,14,18); + packet(0x094c,clif->pStoragePassword,0); + packet(0x094f,clif->pDull/*,XXX*/); + packet(0x0964,clif->pDropItem,2,4); + packet(0x096a,clif->pGetCharNameRequest,2); #endif // 2017-04-12aRagexeRE #if PACKETVER == 20170412 - packet(0x023b,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x0365,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0863,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0869,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x086d,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0878,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0879,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x087b,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x088b,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0890,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x0893,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0898,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x089a,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x089c,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x08a1,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x091a,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x091e,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0929,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x092e,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0938,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0942,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0945,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0949,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x094f,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0952,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0959,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x095b,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x095c,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x095d,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 + packet(0x023b,clif->pUseSkillToPos,2,4,6,8); + packet(0x0365,clif->pReqClickBuyingStore,2); + packet(0x0863,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0869,clif->pPartyBookingRegisterReq,2,4); + packet(0x086d,clif->pMoveFromKafra,2,4); + packet(0x0878,clif->pWalkToXY,2); + packet(0x0879,clif->pDull/*,XXX*/); + packet(0x087b,clif->pUseSkillToId,2,4,6); + packet(0x088b,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0890,clif->pItemListWindowSelected,2,4,8); + packet(0x0893,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0898,clif->pSolveCharName,2); + packet(0x089a,clif->pHomMenu,2,4); + packet(0x089c,clif->pDropItem,2,4); + packet(0x08a1,clif->pActionRequest,2,6); + packet(0x091a,clif->pChangeDir,2,4); + packet(0x091e,clif->pWantToConnection,2,6,10,14,18); + packet(0x0929,clif->pTickSend,2); + packet(0x092e,clif->pDull/*,XXX*/); + packet(0x0938,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0942,clif->pFriendsListAdd,2); + packet(0x0945,clif->pMoveToKafra,2,4); + packet(0x0949,clif->pSearchStoreInfoNextPage,0); + packet(0x094f,clif->pPartyInvite2,2); + packet(0x0952,clif->pReqCloseBuyingStore,0); + packet(0x0959,clif->pTakeItem,2); + packet(0x095b,clif->pGetCharNameRequest,2); + packet(0x095c,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x095d,clif->pStoragePassword,0); #endif // 2017-04-19bRagexeRE #if PACKETVER == 20170419 - packet(0x0811,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0819,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x0838,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x085a,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x085e,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0862,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0868,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x086a,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0872,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0881,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x088d,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x088f,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0897,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0898,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x089d,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x08aa,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x091b,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0920,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0922,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0930,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0931,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0935,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x093a,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x093f,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x0942,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x095c,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x095d,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0963,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0965,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 + packet(0x0811,clif->pChangeDir,2,4); + packet(0x0819,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x0838,clif->pGetCharNameRequest,2); + packet(0x085a,clif->pActionRequest,2,6); + packet(0x085e,clif->pWalkToXY,2); + packet(0x0862,clif->pPartyInvite2,2); + packet(0x0868,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x086a,clif->pPartyBookingRegisterReq,2,4); + packet(0x0872,clif->pDull/*,XXX*/); + packet(0x0881,clif->pStoragePassword,0); + packet(0x088d,clif->pItemListWindowSelected,2,4,8); + packet(0x088f,clif->pHomMenu,2,4); + packet(0x0897,clif->pDropItem,2,4); + packet(0x0898,clif->pTickSend,2); + packet(0x089d,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x08aa,clif->pMoveToKafra,2,4); + packet(0x091b,clif->pSolveCharName,2); + packet(0x0920,clif->pUseSkillToId,2,4,6); + packet(0x0922,clif->pWantToConnection,2,6,10,14,18); + packet(0x0930,clif->pMoveFromKafra,2,4); + packet(0x0931,clif->pReqCloseBuyingStore,0); + packet(0x0935,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x093a,clif->pFriendsListAdd,2); + packet(0x093f,clif->pUseSkillToPos,2,4,6,8); + packet(0x0942,clif->pSearchStoreInfoNextPage,0); + packet(0x095c,clif->pTakeItem,2); + packet(0x095d,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0963,clif->pDull/*,XXX*/); + packet(0x0965,clif->pReqClickBuyingStore,2); #endif // 2017-04-26dRagexeRE #if PACKETVER == 20170426 - packet(0x0281,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x035f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0360,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0369,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0437,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0438,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x0802,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0835,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x083c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0866,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x086f,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x087a,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0887,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0899,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x089c,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x08a2,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x08a4,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x091f,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0927,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0940,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0958,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0963,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x096a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 + packet(0x0281,clif->pStoragePassword,0); + packet(0x035f,clif->pTickSend,2); + packet(0x0360,clif->pReqClickBuyingStore,2); + packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0369,clif->pActionRequest,2,6); + packet(0x0437,clif->pWalkToXY,2); + packet(0x0438,clif->pUseSkillToPos,2,4,6,8); + packet(0x0802,clif->pPartyInvite2,2); + packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0835,clif->pSearchStoreInfoNextPage,0); + packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x083c,clif->pUseSkillToId,2,4,6); + packet(0x0866,clif->pItemListWindowSelected,2,4,8); + packet(0x086f,clif->pDull/*,XXX*/); + packet(0x087a,clif->pPartyBookingRegisterReq,2,4); + packet(0x0887,clif->pSolveCharName,2); + packet(0x0899,clif->pMoveFromKafra,2,4); + packet(0x089c,clif->pHomMenu,2,4); + packet(0x08a2,clif->pWantToConnection,2,6,10,14,18); + packet(0x08a4,clif->pTakeItem,2); + packet(0x091f,clif->pDull/*,XXX*/); + packet(0x0927,clif->pChangeDir,2,4); + packet(0x0940,clif->pDropItem,2,4); + packet(0x0958,clif->pFriendsListAdd,2); + packet(0x0963,clif->pMoveToKafra,2,4); + packet(0x096a,clif->pGetCharNameRequest,2); #endif // 2017-05-02dRagexeRE #if PACKETVER == 20170502 - packet(0x0281,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x035f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0360,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0362,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0363,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0364,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0365,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0436,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0437,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0438,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x07e4,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x07ec,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0802,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0835,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x083c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0875,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x0894,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x089c,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x093c,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0950,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x096a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 + packet(0x0281,clif->pItemListWindowSelected,2,4,8); + packet(0x035f,clif->pTickSend,2); + packet(0x0360,clif->pReqClickBuyingStore,2); + packet(0x0362,clif->pDropItem,2,4); + packet(0x0363,clif->pDull/*,XXX*/); + packet(0x0364,clif->pMoveFromKafra,2,4); + packet(0x0365,clif->pPartyBookingRegisterReq,2,4); + packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pActionRequest,2,6); + packet(0x0436,clif->pDull/*,XXX*/); + packet(0x0437,clif->pWalkToXY,2); + packet(0x0438,clif->pUseSkillToPos,2,4,6,8); + packet(0x07e4,clif->pTakeItem,2); + packet(0x07ec,clif->pMoveToKafra,2,4); + packet(0x0802,clif->pPartyInvite2,2); + packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0835,clif->pSearchStoreInfoNextPage,0); + packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x083c,clif->pUseSkillToId,2,4,6); + packet(0x0875,clif->pStoragePassword,0); + packet(0x0894,clif->pChangeDir,2,4); + packet(0x089c,clif->pWantToConnection,2,6,10,14,18); + packet(0x093c,clif->pFriendsListAdd,2); + packet(0x0950,clif->pHomMenu,2,4); + packet(0x096a,clif->pGetCharNameRequest,2); #endif // 2017-05-17aRagexeRE, 2017-05-17bRagexeRE #if PACKETVER == 20170517 - packet(0x0364,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0367,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0437,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0802,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0815,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0817,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x0868,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0875,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x087b,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x087d,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x088c,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x088d,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0894,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x0896,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x0899,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x089e,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x089f,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x08a2,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x08a8,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x08aa,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x091b,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0923,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x093b,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0945,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x0946,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0947,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x0958,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0960,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0964,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 + packet(0x0364,clif->pDull/*,XXX*/); + packet(0x0367,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0437,clif->pActionRequest,2,6); + packet(0x0802,clif->pPartyBookingRegisterReq,2,4); + packet(0x0815,clif->pUseSkillToId,2,4,6); + packet(0x0817,clif->pUseSkillToPos,2,4,6,8); + packet(0x0868,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0875,clif->pSearchStoreInfoNextPage,0); + packet(0x087b,clif->pSolveCharName,2); + packet(0x087d,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x088c,clif->pMoveFromKafra,2,4); + packet(0x088d,clif->pChangeDir,2,4); + packet(0x0894,clif->pGetCharNameRequest,2); + packet(0x0896,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x0899,clif->pPartyInvite2,2); + packet(0x089e,clif->pDull/*,XXX*/); + packet(0x089f,clif->pReqCloseBuyingStore,0); + packet(0x08a2,clif->pTickSend,2); + packet(0x08a8,clif->pWalkToXY,2); + packet(0x08aa,clif->pMoveToKafra,2,4); + packet(0x091b,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0923,clif->pWantToConnection,2,6,10,14,18); + packet(0x093b,clif->pDropItem,2,4); + packet(0x0945,clif->pItemListWindowSelected,2,4,8); + packet(0x0946,clif->pReqClickBuyingStore,2); + packet(0x0947,clif->pStoragePassword,0); + packet(0x0958,clif->pHomMenu,2,4); + packet(0x0960,clif->pFriendsListAdd,2); + packet(0x0964,clif->pTakeItem,2); #endif // 2017-05-24aRagexeRE #if PACKETVER == 20170524 - packet(0x0364,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0368,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x0802,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x085e,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x085f,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0860,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0864,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x0866,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0868,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x086d,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0873,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0874,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x087d,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0882,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x088d,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0894,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x089c,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x08a1,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x091e,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0923,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x0925,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0934,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0946,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x0958,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x095a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x095b,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0964,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0967,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0968,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 + packet(0x0364,clif->pPartyInvite2,2); + packet(0x0368,clif->pStoragePassword,0); + packet(0x0802,clif->pDropItem,2,4); + packet(0x085e,clif->pActionRequest,2,6); + packet(0x085f,clif->pReqClickBuyingStore,2); + packet(0x0860,clif->pTickSend,2); + packet(0x0864,clif->pTakeItem,2); + packet(0x0866,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0868,clif->pMoveToKafra,2,4); + packet(0x086d,clif->pHomMenu,2,4); + packet(0x0873,clif->pWantToConnection,2,6,10,14,18); + packet(0x0874,clif->pSearchStoreInfoNextPage,0); + packet(0x087d,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0882,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x088d,clif->pUseSkillToId,2,4,6); + packet(0x0894,clif->pMoveFromKafra,2,4); + packet(0x089c,clif->pWalkToXY,2); + packet(0x08a1,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x091e,clif->pDull/*,XXX*/); + packet(0x0923,clif->pItemListWindowSelected,2,4,8); + packet(0x0925,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0934,clif->pChangeDir,2,4); + packet(0x0946,clif->pUseSkillToPos,2,4,6,8); + packet(0x0958,clif->pDull/*,XXX*/); + packet(0x095a,clif->pGetCharNameRequest,2); + packet(0x095b,clif->pPartyBookingRegisterReq,2,4); + packet(0x0964,clif->pReqCloseBuyingStore,0); + packet(0x0967,clif->pFriendsListAdd,2); + packet(0x0968,clif->pSolveCharName,2); #endif // 2017-05-31aRagexeRE #if PACKETVER == 20170531 - packet(0x0361,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0369,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x07e4,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x07ec,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0819,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x085b,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x085f,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0861,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0868,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0873,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0875,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x0878,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x087b,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0885,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x088b,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x088d,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0894,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x089a,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x089c,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x08a2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x08ac,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x08ad,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x092d,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x0933,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0937,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x0940,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0945,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0963,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x0968,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 + packet(0x0361,clif->pChangeDir,2,4); + packet(0x0369,clif->pUseSkillToId,2,4,6); + packet(0x07e4,clif->pWalkToXY,2); + packet(0x07ec,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0819,clif->pTickSend,2); + packet(0x085b,clif->pDull/*,XXX*/); + packet(0x085f,clif->pSolveCharName,2); + packet(0x0861,clif->pFriendsListAdd,2); + packet(0x0868,clif->pDull/*,XXX*/); + packet(0x0873,clif->pReqCloseBuyingStore,0); + packet(0x0875,clif->pUseSkillToPos,2,4,6,8); + packet(0x0878,clif->pPartyInvite2,2); + packet(0x087b,clif->pActionRequest,2,6); + packet(0x0885,clif->pItemListWindowSelected,2,4,8); + packet(0x088b,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x088d,clif->pDropItem,2,4); + packet(0x0894,clif->pWantToConnection,2,6,10,14,18); + packet(0x089a,clif->pStoragePassword,0); + packet(0x089c,clif->pHomMenu,2,4); + packet(0x08a2,clif->pSearchStoreInfoNextPage,0); + packet(0x08ac,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x08ad,clif->pMoveToKafra,2,4); + packet(0x092d,clif->pGetCharNameRequest,2); + packet(0x0933,clif->pMoveFromKafra,2,4); + packet(0x0937,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x0940,clif->pPartyBookingRegisterReq,2,4); + packet(0x0945,clif->pReqClickBuyingStore,2); + packet(0x0963,clif->pTakeItem,2); + packet(0x0968,clif->pSearchStoreInfo,2,4,5,9,13,14,15); #endif // 2017-06-07bRagexeRE, 2017-06-07cRagexeRE #if PACKETVER == 20170607 - packet(0x0361,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x0364,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x07e4,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x085a,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x085e,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0862,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x0863,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0864,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0871,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0873,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0875,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x0885,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x088a,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0897,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x089d,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x08a9,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x08ab,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0917,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0918,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0919,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0925,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0927,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x0931,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0934,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0938,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x093d,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0942,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0944,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0949,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 + packet(0x0361,clif->pItemListWindowSelected,2,4,8); + packet(0x0364,clif->pStoragePassword,0); + packet(0x07e4,clif->pTickSend,2); + packet(0x085a,clif->pChangeDir,2,4); + packet(0x085e,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0862,clif->pGetCharNameRequest,2); + packet(0x0863,clif->pReqClickBuyingStore,2); + packet(0x0864,clif->pDropItem,2,4); + packet(0x0871,clif->pWantToConnection,2,6,10,14,18); + packet(0x0873,clif->pDull/*,XXX*/); + packet(0x0875,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x0885,clif->pFriendsListAdd,2); + packet(0x088a,clif->pMoveFromKafra,2,4); + packet(0x0897,clif->pTakeItem,2); + packet(0x089d,clif->pMoveToKafra,2,4); + packet(0x08a9,clif->pUseSkillToId,2,4,6); + packet(0x08ab,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0917,clif->pSearchStoreInfoNextPage,0); + packet(0x0918,clif->pPartyBookingRegisterReq,2,4); + packet(0x0919,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0925,clif->pPartyInvite2,2); + packet(0x0927,clif->pUseSkillToPos,2,4,6,8); + packet(0x0931,clif->pDull/*,XXX*/); + packet(0x0934,clif->pWalkToXY,2); + packet(0x0938,clif->pActionRequest,2,6); + packet(0x093d,clif->pReqCloseBuyingStore,0); + packet(0x0942,clif->pHomMenu,2,4); + packet(0x0944,clif->pSolveCharName,2); + packet(0x0949,clif->pReqOpenBuyingStore,2,4,8,9,89); #endif // 2017-06-14bRagexeRE #if PACKETVER == 20170614 - packet(0x023b,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0361,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0364,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0367,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0437,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x0838,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x083c,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0860,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0865,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0866,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0867,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x086b,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x086c,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0877,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0879,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x087d,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x087e,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0889,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0899,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x089d,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x08a2,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x08ad,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x091b,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0928,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x092f,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0936,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x0944,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0957,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0963,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 + packet(0x023b,clif->pMoveFromKafra,2,4); + packet(0x0361,clif->pWalkToXY,2); + packet(0x0364,clif->pHomMenu,2,4); + packet(0x0367,clif->pDropItem,2,4); + packet(0x0437,clif->pStoragePassword,0); + packet(0x0838,clif->pUseSkillToPos,2,4,6,8); + packet(0x083c,clif->pActionRequest,2,6); + packet(0x0860,clif->pReqClickBuyingStore,2); + packet(0x0865,clif->pDull/*,XXX*/); + packet(0x0866,clif->pTickSend,2); + packet(0x0867,clif->pFriendsListAdd,2); + packet(0x086b,clif->pReqCloseBuyingStore,0); + packet(0x086c,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0877,clif->pPartyBookingRegisterReq,2,4); + packet(0x0879,clif->pMoveToKafra,2,4); + packet(0x087d,clif->pSolveCharName,2); + packet(0x087e,clif->pChangeDir,2,4); + packet(0x0889,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0899,clif->pPartyInvite2,2); + packet(0x089d,clif->pItemListWindowSelected,2,4,8); + packet(0x08a2,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x08ad,clif->pTakeItem,2); + packet(0x091b,clif->pUseSkillToId,2,4,6); + packet(0x0928,clif->pSearchStoreInfoNextPage,0); + packet(0x092f,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0936,clif->pGetCharNameRequest,2); + packet(0x0944,clif->pWantToConnection,2,6,10,14,18); + packet(0x0957,clif->pDull/*,XXX*/); + packet(0x0963,clif->pSearchStoreInfoListItemClick,2,6,10); #endif // 2017-06-21aRagexeRE #if PACKETVER == 20170621 - packet(0x0202,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x035f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0360,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0361,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x0365,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x0366,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0437,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0438,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x07e4,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0802,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0835,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x083c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x085d,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x087d,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0885,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0889,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x08a8,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0956,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0957,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x095b,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x095c,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0961,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x096a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 + packet(0x0202,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x035f,clif->pTickSend,2); + packet(0x0360,clif->pReqClickBuyingStore,2); + packet(0x0361,clif->pTakeItem,2); + packet(0x0365,clif->pItemListWindowSelected,2,4,8); + packet(0x0366,clif->pPartyBookingRegisterReq,2,4); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pActionRequest,2,6); + packet(0x0437,clif->pWalkToXY,2); + packet(0x0438,clif->pUseSkillToPos,2,4,6,8); + packet(0x07e4,clif->pFriendsListAdd,2); + packet(0x0802,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0835,clif->pSearchStoreInfoNextPage,0); + packet(0x083c,clif->pUseSkillToId,2,4,6); + packet(0x085d,clif->pChangeDir,2,4); + packet(0x087d,clif->pDropItem,2,4); + packet(0x0885,clif->pPartyInvite2,2); + packet(0x0889,clif->pMoveFromKafra,2,4); + packet(0x08a8,clif->pHomMenu,2,4); + packet(0x0956,clif->pDull/*,XXX*/); + packet(0x0957,clif->pStoragePassword,0); + packet(0x095b,clif->pDull/*,XXX*/); + packet(0x095c,clif->pMoveToKafra,2,4); + packet(0x0961,clif->pWantToConnection,2,6,10,14,18); + packet(0x096a,clif->pGetCharNameRequest,2); #endif // 2017-06-28bRagexeRE #if PACKETVER == 20170628 - packet(0x0202,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x022d,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x023b,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0281,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x035f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0360,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0361,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0362,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0363,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0364,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0365,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0436,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0437,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0438,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x07e4,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x07ec,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0802,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0835,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x083c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0863,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x096a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 + packet(0x0202,clif->pChangeDir,2,4); + packet(0x022d,clif->pWantToConnection,2,6,10,14,18); + packet(0x023b,clif->pFriendsListAdd,2); + packet(0x0281,clif->pItemListWindowSelected,2,4,8); + packet(0x035f,clif->pTickSend,2); + packet(0x0360,clif->pReqClickBuyingStore,2); + packet(0x0361,clif->pHomMenu,2,4); + packet(0x0362,clif->pDropItem,2,4); + packet(0x0363,clif->pDull/*,XXX*/); + packet(0x0364,clif->pMoveFromKafra,2,4); + packet(0x0365,clif->pPartyBookingRegisterReq,2,4); + packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pActionRequest,2,6); + packet(0x0436,clif->pDull/*,XXX*/); + packet(0x0437,clif->pWalkToXY,2); + packet(0x0438,clif->pUseSkillToPos,2,4,6,8); + packet(0x07e4,clif->pTakeItem,2); + packet(0x07ec,clif->pMoveToKafra,2,4); + packet(0x0802,clif->pPartyInvite2,2); + packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0835,clif->pSearchStoreInfoNextPage,0); + packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x083c,clif->pUseSkillToId,2,4,6); + packet(0x0863,clif->pStoragePassword,0); + packet(0x096a,clif->pGetCharNameRequest,2); #endif // 2017-07-05aRagexeRE #if PACKETVER == 20170705 - packet(0x0202,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x02c4,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x035f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0360,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0437,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0438,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0835,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x083c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0879,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0886,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x088d,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x088e,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x089a,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x089d,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x091a,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x092f,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0930,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x0932,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x0934,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x094c,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x096a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 + packet(0x0202,clif->pStoragePassword,0); + packet(0x02c4,clif->pPartyBookingRegisterReq,2,4); + packet(0x035f,clif->pTickSend,2); + packet(0x0360,clif->pReqClickBuyingStore,2); + packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pActionRequest,2,6); + packet(0x0437,clif->pWalkToXY,2); + packet(0x0438,clif->pUseSkillToPos,2,4,6,8); + packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0835,clif->pSearchStoreInfoNextPage,0); + packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x083c,clif->pUseSkillToId,2,4,6); + packet(0x0879,clif->pMoveToKafra,2,4); + packet(0x0886,clif->pFriendsListAdd,2); + packet(0x088d,clif->pDull/*,XXX*/); + packet(0x088e,clif->pPartyInvite2,2); + packet(0x089a,clif->pWantToConnection,2,6,10,14,18); + packet(0x089d,clif->pDropItem,2,4); + packet(0x091a,clif->pChangeDir,2,4); + packet(0x092f,clif->pDull/*,XXX*/); + packet(0x0930,clif->pItemListWindowSelected,2,4,8); + packet(0x0932,clif->pTakeItem,2); + packet(0x0934,clif->pMoveFromKafra,2,4); + packet(0x094c,clif->pHomMenu,2,4); + packet(0x096a,clif->pGetCharNameRequest,2); #endif // 2017-07-12bRagexeRE #if PACKETVER == 20170712 - packet(0x0202,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x022d,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x023b,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0281,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x035f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0360,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0361,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0362,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0363,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0364,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0365,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0436,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0437,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0438,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x07e4,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x07ec,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0802,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0835,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x083c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0944,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x096a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 + packet(0x0202,clif->pChangeDir,2,4); + packet(0x022d,clif->pWantToConnection,2,6,10,14,18); + packet(0x023b,clif->pFriendsListAdd,2); + packet(0x0281,clif->pItemListWindowSelected,2,4,8); + packet(0x035f,clif->pTickSend,2); + packet(0x0360,clif->pReqClickBuyingStore,2); + packet(0x0361,clif->pHomMenu,2,4); + packet(0x0362,clif->pDropItem,2,4); + packet(0x0363,clif->pDull/*,XXX*/); + packet(0x0364,clif->pMoveFromKafra,2,4); + packet(0x0365,clif->pPartyBookingRegisterReq,2,4); + packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pActionRequest,2,6); + packet(0x0436,clif->pDull/*,XXX*/); + packet(0x0437,clif->pWalkToXY,2); + packet(0x0438,clif->pUseSkillToPos,2,4,6,8); + packet(0x07e4,clif->pTakeItem,2); + packet(0x07ec,clif->pMoveToKafra,2,4); + packet(0x0802,clif->pPartyInvite2,2); + packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0835,clif->pSearchStoreInfoNextPage,0); + packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x083c,clif->pUseSkillToId,2,4,6); + packet(0x0944,clif->pStoragePassword,0); + packet(0x096a,clif->pGetCharNameRequest,2); #endif // 2017-07-19aRagexeRE #if PACKETVER == 20170719 - packet(0x022d,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0367,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0368,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0369,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x07e4,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x085a,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x085e,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0863,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x086e,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x087d,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x0881,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0882,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x0885,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x0891,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x0898,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x089a,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x089d,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x08a6,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x08a8,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x091b,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x091f,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x092c,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x092e,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x092f,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x093d,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x093e,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0944,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0946,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0966,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 + packet(0x022d,clif->pActionRequest,2,6); + packet(0x0367,clif->pReqCloseBuyingStore,0); + packet(0x0368,clif->pDull/*,XXX*/); + packet(0x0369,clif->pHomMenu,2,4); + packet(0x07e4,clif->pGetCharNameRequest,2); + packet(0x085a,clif->pTickSend,2); + packet(0x085e,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0863,clif->pReqClickBuyingStore,2); + packet(0x086e,clif->pPartyInvite2,2); + packet(0x087d,clif->pTakeItem,2); + packet(0x0881,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0882,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x0885,clif->pItemListWindowSelected,2,4,8); + packet(0x0891,clif->pUseSkillToPos,2,4,6,8); + packet(0x0898,clif->pUseSkillToId,2,4,6); + packet(0x089a,clif->pStoragePassword,0); + packet(0x089d,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x08a6,clif->pMoveFromKafra,2,4); + packet(0x08a8,clif->pWantToConnection,2,6,10,14,18); + packet(0x091b,clif->pDropItem,2,4); + packet(0x091f,clif->pSolveCharName,2); + packet(0x092c,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x092e,clif->pSearchStoreInfoNextPage,0); + packet(0x092f,clif->pPartyBookingRegisterReq,2,4); + packet(0x093d,clif->pWalkToXY,2); + packet(0x093e,clif->pDull/*,XXX*/); + packet(0x0944,clif->pChangeDir,2,4); + packet(0x0946,clif->pFriendsListAdd,2); + packet(0x0966,clif->pMoveToKafra,2,4); #endif // 2017-07-26cRagexeRE #if PACKETVER == 20170726 - packet(0x0363,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0364,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0366,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0369,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0438,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0838,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0873,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0874,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x0878,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0881,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0888,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x088e,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x08a3,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x08a7,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x08aa,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x08ab,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x08ac,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x091d,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x091e,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x091f,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0921,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0923,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0943,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x094f,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0950,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x0952,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0954,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x095a,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0963,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 + packet(0x0363,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0364,clif->pMoveToKafra,2,4); + packet(0x0366,clif->pWantToConnection,2,6,10,14,18); + packet(0x0369,clif->pUseSkillToId,2,4,6); + packet(0x0438,clif->pPartyInvite2,2); + packet(0x0838,clif->pReqCloseBuyingStore,0); + packet(0x0873,clif->pReqClickBuyingStore,2); + packet(0x0874,clif->pItemListWindowSelected,2,4,8); + packet(0x0878,clif->pActionRequest,2,6); + packet(0x0881,clif->pDull/*,XXX*/); + packet(0x0888,clif->pSearchStoreInfoNextPage,0); + packet(0x088e,clif->pWalkToXY,2); + packet(0x08a3,clif->pDull/*,XXX*/); + packet(0x08a7,clif->pStoragePassword,0); + packet(0x08aa,clif->pGetCharNameRequest,2); + packet(0x08ab,clif->pTakeItem,2); + packet(0x08ac,clif->pTickSend,2); + packet(0x091d,clif->pFriendsListAdd,2); + packet(0x091e,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x091f,clif->pHomMenu,2,4); + packet(0x0921,clif->pSolveCharName,2); + packet(0x0923,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0943,clif->pDropItem,2,4); + packet(0x094f,clif->pMoveFromKafra,2,4); + packet(0x0950,clif->pUseSkillToPos,2,4,6,8); + packet(0x0952,clif->pChangeDir,2,4); + packet(0x0954,clif->pPartyBookingRegisterReq,2,4); + packet(0x095a,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0963,clif->pSearchStoreInfo,2,4,5,9,13,14,15); #endif // 2017-08-01aRagexeRE #if PACKETVER == 20170801 - packet(0x022d,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0281,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x035f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0360,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0361,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x0362,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0363,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0364,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0365,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0437,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0438,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x07e4,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x07ec,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0802,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0835,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x083c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x087d,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x08a6,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x094f,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x095a,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x096a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 + packet(0x022d,clif->pDropItem,2,4); + packet(0x0281,clif->pChangeDir,2,4); + packet(0x035f,clif->pTickSend,2); + packet(0x0360,clif->pReqClickBuyingStore,2); + packet(0x0361,clif->pItemListWindowSelected,2,4,8); + packet(0x0362,clif->pHomMenu,2,4); + packet(0x0363,clif->pDull/*,XXX*/); + packet(0x0364,clif->pMoveFromKafra,2,4); + packet(0x0365,clif->pPartyBookingRegisterReq,2,4); + packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pActionRequest,2,6); + packet(0x0437,clif->pWalkToXY,2); + packet(0x0438,clif->pUseSkillToPos,2,4,6,8); + packet(0x07e4,clif->pTakeItem,2); + packet(0x07ec,clif->pMoveToKafra,2,4); + packet(0x0802,clif->pPartyInvite2,2); + packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0835,clif->pSearchStoreInfoNextPage,0); + packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x083c,clif->pUseSkillToId,2,4,6); + packet(0x087d,clif->pStoragePassword,0); + packet(0x08a6,clif->pDull/*,XXX*/); + packet(0x094f,clif->pFriendsListAdd,2); + packet(0x095a,clif->pWantToConnection,2,6,10,14,18); + packet(0x096a,clif->pGetCharNameRequest,2); #endif // 2017-08-09cRagexeRE #if PACKETVER == 20170809 - packet(0x022d,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0281,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0364,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0366,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0367,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x07e4,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0802,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x0835,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0868,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x086e,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x086f,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0876,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x087d,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x0880,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x088c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0890,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x0892,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0895,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0899,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x08a3,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x08a6,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0918,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x0921,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x092a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x092b,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0931,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0939,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x093b,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0940,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 + packet(0x022d,clif->pDull/*,XXX*/); + packet(0x0281,clif->pMoveFromKafra,2,4); + packet(0x0364,clif->pPartyInvite2,2); + packet(0x0366,clif->pFriendsListAdd,2); + packet(0x0367,clif->pReqCloseBuyingStore,0); + packet(0x07e4,clif->pSearchStoreInfoNextPage,0); + packet(0x0802,clif->pItemListWindowSelected,2,4,8); + packet(0x0835,clif->pDropItem,2,4); + packet(0x0868,clif->pActionRequest,2,6); + packet(0x086e,clif->pChangeDir,2,4); + packet(0x086f,clif->pHomMenu,2,4); + packet(0x0876,clif->pUseSkillToPos,2,4,6,8); + packet(0x087d,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x0880,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x088c,clif->pUseSkillToId,2,4,6); + packet(0x0890,clif->pStoragePassword,0); + packet(0x0892,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0895,clif->pWalkToXY,2); + packet(0x0899,clif->pDull/*,XXX*/); + packet(0x08a3,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x08a6,clif->pWantToConnection,2,6,10,14,18); + packet(0x0918,clif->pTakeItem,2); + packet(0x0921,clif->pMoveToKafra,2,4); + packet(0x092a,clif->pGetCharNameRequest,2); + packet(0x092b,clif->pTickSend,2); + packet(0x0931,clif->pSolveCharName,2); + packet(0x0939,clif->pReqClickBuyingStore,2); + packet(0x093b,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0940,clif->pPartyBookingRegisterReq,2,4); #endif // 2017-08-16cRagexeRE, 2017-08-16dRagexeRE #if PACKETVER == 20170816 - packet(0x022d,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x035f,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0361,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x0362,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0438,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x085a,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0862,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x0864,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x087e,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x0881,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0882,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x0884,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0888,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0889,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x08a3,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x08a7,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x08a9,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x08ac,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x091c,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x0921,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0925,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x092c,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x093a,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x093d,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0940,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0941,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0950,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0959,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0960,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 + packet(0x022d,clif->pGetCharNameRequest,2); + packet(0x035f,clif->pSearchStoreInfoNextPage,0); + packet(0x0361,clif->pItemListWindowSelected,2,4,8); + packet(0x0362,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0438,clif->pActionRequest,2,6); + packet(0x085a,clif->pSolveCharName,2); + packet(0x0862,clif->pUseSkillToPos,2,4,6,8); + packet(0x0864,clif->pReqCloseBuyingStore,0); + packet(0x087e,clif->pTakeItem,2); + packet(0x0881,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0882,clif->pStoragePassword,0); + packet(0x0884,clif->pDull/*,XXX*/); + packet(0x0888,clif->pPartyBookingRegisterReq,2,4); + packet(0x0889,clif->pTickSend,2); + packet(0x08a3,clif->pFriendsListAdd,2); + packet(0x08a7,clif->pDull/*,XXX*/); + packet(0x08a9,clif->pWalkToXY,2); + packet(0x08ac,clif->pHomMenu,2,4); + packet(0x091c,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x0921,clif->pReqClickBuyingStore,2); + packet(0x0925,clif->pMoveFromKafra,2,4); + packet(0x092c,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x093a,clif->pPartyInvite2,2); + packet(0x093d,clif->pWantToConnection,2,6,10,14,18); + packet(0x0940,clif->pUseSkillToId,2,4,6); + packet(0x0941,clif->pDropItem,2,4); + packet(0x0950,clif->pChangeDir,2,4); + packet(0x0959,clif->pMoveToKafra,2,4); + packet(0x0960,clif->pSearchStoreInfo,2,4,5,9,13,14,15); #endif // 2017-08-23aRagexeRE #if PACKETVER == 20170823 - packet(0x0281,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x035f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0360,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0361,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0362,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0363,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0364,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0365,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0436,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0437,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0438,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x07e4,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x07ec,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0802,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0835,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x083c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x086c,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x086d,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x08ac,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x095b,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x096a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 + packet(0x0281,clif->pItemListWindowSelected,2,4,8); + packet(0x035f,clif->pTickSend,2); + packet(0x0360,clif->pReqClickBuyingStore,2); + packet(0x0361,clif->pPartyInvite2,2); + packet(0x0362,clif->pDropItem,2,4); + packet(0x0363,clif->pDull/*,XXX*/); + packet(0x0364,clif->pMoveFromKafra,2,4); + packet(0x0365,clif->pPartyBookingRegisterReq,2,4); + packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pActionRequest,2,6); + packet(0x0436,clif->pDull/*,XXX*/); + packet(0x0437,clif->pWalkToXY,2); + packet(0x0438,clif->pUseSkillToPos,2,4,6,8); + packet(0x07e4,clif->pTakeItem,2); + packet(0x07ec,clif->pMoveToKafra,2,4); + packet(0x0802,clif->pChangeDir,2,4); + packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0835,clif->pSearchStoreInfoNextPage,0); + packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x083c,clif->pUseSkillToId,2,4,6); + packet(0x086c,clif->pWantToConnection,2,6,10,14,18); + packet(0x086d,clif->pStoragePassword,0); + packet(0x08ac,clif->pFriendsListAdd,2); + packet(0x095b,clif->pHomMenu,2,4); + packet(0x096a,clif->pGetCharNameRequest,2); #endif // 2017-08-30aRagexeRE, 2017-08-30bRagexeRE #if PACKETVER == 20170830 - packet(0x0281,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x02c4,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x0363,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0364,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0860,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0865,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x086a,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0875,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0884,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0885,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0888,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0897,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0899,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x089a,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x089e,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x08a2,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x08a8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x091e,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0921,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0925,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x092e,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x0939,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x093e,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0940,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0942,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x0943,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0947,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0951,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0959,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 + packet(0x0281,clif->pChangeDir,2,4); + packet(0x02c4,clif->pTakeItem,2); + packet(0x0363,clif->pPartyBookingRegisterReq,2,4); + packet(0x0364,clif->pDull/*,XXX*/); + packet(0x0860,clif->pReqCloseBuyingStore,0); + packet(0x0865,clif->pWalkToXY,2); + packet(0x086a,clif->pPartyInvite2,2); + packet(0x0875,clif->pDull/*,XXX*/); + packet(0x0884,clif->pWantToConnection,2,6,10,14,18); + packet(0x0885,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0888,clif->pUseSkillToId,2,4,6); + packet(0x0897,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0899,clif->pDropItem,2,4); + packet(0x089a,clif->pItemListWindowSelected,2,4,8); + packet(0x089e,clif->pMoveToKafra,2,4); + packet(0x08a2,clif->pStoragePassword,0); + packet(0x08a8,clif->pMoveFromKafra,2,4); + packet(0x091e,clif->pTickSend,2); + packet(0x0921,clif->pHomMenu,2,4); + packet(0x0925,clif->pReqClickBuyingStore,2); + packet(0x092e,clif->pGetCharNameRequest,2); + packet(0x0939,clif->pFriendsListAdd,2); + packet(0x093e,clif->pActionRequest,2,6); + packet(0x0940,clif->pSolveCharName,2); + packet(0x0942,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x0943,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0947,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0951,clif->pSearchStoreInfoNextPage,0); + packet(0x0959,clif->pUseSkillToPos,2,4,6,8); #endif // 2017-09-06cRagexeRE #if PACKETVER == 20170906 - packet(0x0202,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0281,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x02c4,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x035f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0360,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0366,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0437,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0438,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x0802,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0835,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x083c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0860,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0866,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x086c,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x087b,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x08a2,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x08a3,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x08a7,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x091a,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x091e,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0953,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x096a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 + packet(0x0202,clif->pDull/*,XXX*/); + packet(0x0281,clif->pStoragePassword,0); + packet(0x02c4,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x035f,clif->pTickSend,2); + packet(0x0360,clif->pReqClickBuyingStore,2); + packet(0x0366,clif->pPartyInvite2,2); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pActionRequest,2,6); + packet(0x0437,clif->pWalkToXY,2); + packet(0x0438,clif->pUseSkillToPos,2,4,6,8); + packet(0x0802,clif->pChangeDir,2,4); + packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0835,clif->pSearchStoreInfoNextPage,0); + packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x083c,clif->pUseSkillToId,2,4,6); + packet(0x0860,clif->pDropItem,2,4); + packet(0x0866,clif->pItemListWindowSelected,2,4,8); + packet(0x086c,clif->pDull/*,XXX*/); + packet(0x087b,clif->pMoveToKafra,2,4); + packet(0x08a2,clif->pMoveFromKafra,2,4); + packet(0x08a3,clif->pFriendsListAdd,2); + packet(0x08a7,clif->pPartyBookingRegisterReq,2,4); + packet(0x091a,clif->pTakeItem,2); + packet(0x091e,clif->pHomMenu,2,4); + packet(0x0953,clif->pWantToConnection,2,6,10,14,18); + packet(0x096a,clif->pGetCharNameRequest,2); #endif // 2017-09-13bRagexeRE #if PACKETVER == 20170913 - packet(0x0281,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x035f,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0437,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x07e4,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0817,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0835,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x085a,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0860,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x0865,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0866,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x088c,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0890,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0891,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0892,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x08a6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x08a7,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x08aa,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x08ab,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x08ac,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x08ad,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x091b,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x091d,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x091e,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0920,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0923,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0925,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x0927,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x095a,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x095c,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 + packet(0x0281,clif->pGetCharNameRequest,2); + packet(0x035f,clif->pFriendsListAdd,2); + packet(0x0437,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x07e4,clif->pMoveFromKafra,2,4); + packet(0x0817,clif->pActionRequest,2,6); + packet(0x0835,clif->pWantToConnection,2,6,10,14,18); + packet(0x085a,clif->pReqCloseBuyingStore,0); + packet(0x0860,clif->pTakeItem,2); + packet(0x0865,clif->pPartyInvite2,2); + packet(0x0866,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x088c,clif->pHomMenu,2,4); + packet(0x0890,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0891,clif->pMoveToKafra,2,4); + packet(0x0892,clif->pStoragePassword,0); + packet(0x08a6,clif->pReqClickBuyingStore,2); + packet(0x08a7,clif->pDull/*,XXX*/); + packet(0x08aa,clif->pUseSkillToId,2,4,6); + packet(0x08ab,clif->pPartyBookingRegisterReq,2,4); + packet(0x08ac,clif->pChangeDir,2,4); + packet(0x08ad,clif->pItemListWindowSelected,2,4,8); + packet(0x091b,clif->pTickSend,2); + packet(0x091d,clif->pDropItem,2,4); + packet(0x091e,clif->pDull/*,XXX*/); + packet(0x0920,clif->pSearchStoreInfoNextPage,0); + packet(0x0923,clif->pWalkToXY,2); + packet(0x0925,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x0927,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x095a,clif->pUseSkillToPos,2,4,6,8); + packet(0x095c,clif->pSolveCharName,2); #endif // 2017-09-20bRagexeRE #if PACKETVER == 20170920 - packet(0x0369,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x0436,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x07ec,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x085a,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0861,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0862,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0864,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x0865,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x086a,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x086c,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0874,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0875,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0889,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x088e,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x089b,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0919,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x091e,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0921,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0923,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0926,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x092e,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0937,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x0939,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0945,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x094c,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x095d,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0961,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0966,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x096a,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 + packet(0x0369,clif->pTakeItem,2); + packet(0x0436,clif->pItemListWindowSelected,2,4,8); + packet(0x07ec,clif->pMoveFromKafra,2,4); + packet(0x085a,clif->pWalkToXY,2); + packet(0x0861,clif->pFriendsListAdd,2); + packet(0x0862,clif->pUseSkillToId,2,4,6); + packet(0x0864,clif->pStoragePassword,0); + packet(0x0865,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x086a,clif->pPartyInvite2,2); + packet(0x086c,clif->pDropItem,2,4); + packet(0x0874,clif->pReqCloseBuyingStore,0); + packet(0x0875,clif->pDull/*,XXX*/); + packet(0x0889,clif->pGetCharNameRequest,2); + packet(0x088e,clif->pTickSend,2); + packet(0x089b,clif->pActionRequest,2,6); + packet(0x0919,clif->pUseSkillToPos,2,4,6,8); + packet(0x091e,clif->pDull/*,XXX*/); + packet(0x0921,clif->pSolveCharName,2); + packet(0x0923,clif->pWantToConnection,2,6,10,14,18); + packet(0x0926,clif->pMoveToKafra,2,4); + packet(0x092e,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0937,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x0939,clif->pChangeDir,2,4); + packet(0x0945,clif->pPartyBookingRegisterReq,2,4); + packet(0x094c,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x095d,clif->pHomMenu,2,4); + packet(0x0961,clif->pReqClickBuyingStore,2); + packet(0x0966,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x096a,clif->pSearchStoreInfoNextPage,0); #endif // 2017-09-27bRagexeRE, 2017-09-27dRagexeRE #if PACKETVER == 20170927 - packet(0x02c4,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x035f,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x0361,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0362,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0366,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x085c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0873,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0875,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x087d,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x087e,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x088b,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0899,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x089a,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x089b,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x08a3,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x08a5,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x08a6,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x08ad,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x091e,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0922,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0923,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0927,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x093b,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0942,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0945,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x094b,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x094d,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x0959,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x095a,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 + packet(0x02c4,clif->pHomMenu,2,4); + packet(0x035f,clif->pGetCharNameRequest,2); + packet(0x0361,clif->pDull/*,XXX*/); + packet(0x0362,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0366,clif->pWantToConnection,2,6,10,14,18); + packet(0x085c,clif->pUseSkillToId,2,4,6); + packet(0x0873,clif->pSolveCharName,2); + packet(0x0875,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x087d,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x087e,clif->pChangeDir,2,4); + packet(0x088b,clif->pSearchStoreInfoNextPage,0); + packet(0x0899,clif->pActionRequest,2,6); + packet(0x089a,clif->pStoragePassword,0); + packet(0x089b,clif->pMoveFromKafra,2,4); + packet(0x08a3,clif->pReqCloseBuyingStore,0); + packet(0x08a5,clif->pItemListWindowSelected,2,4,8); + packet(0x08a6,clif->pDull/*,XXX*/); + packet(0x08ad,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x091e,clif->pReqClickBuyingStore,2); + packet(0x0922,clif->pPartyInvite2,2); + packet(0x0923,clif->pDropItem,2,4); + packet(0x0927,clif->pWalkToXY,2); + packet(0x093b,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0942,clif->pPartyBookingRegisterReq,2,4); + packet(0x0945,clif->pTickSend,2); + packet(0x094b,clif->pFriendsListAdd,2); + packet(0x094d,clif->pTakeItem,2); + packet(0x0959,clif->pMoveToKafra,2,4); + packet(0x095a,clif->pUseSkillToPos,2,4,6,8); #endif // 2017-10-02cRagexeRE #if PACKETVER == 20171002 - packet(0x022d,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x035f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0360,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0363,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0437,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0438,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0835,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x083c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0885,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0897,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0899,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x089d,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0928,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x092d,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0934,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x093b,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x093d,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x093e,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0943,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x095f,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x096a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 + packet(0x022d,clif->pDropItem,2,4); + packet(0x035f,clif->pTickSend,2); + packet(0x0360,clif->pReqClickBuyingStore,2); + packet(0x0363,clif->pUseSkillToPos,2,4,6,8); + packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pActionRequest,2,6); + packet(0x0437,clif->pWalkToXY,2); + packet(0x0438,clif->pHomMenu,2,4); + packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0835,clif->pSearchStoreInfoNextPage,0); + packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x083c,clif->pUseSkillToId,2,4,6); + packet(0x0885,clif->pMoveToKafra,2,4); + packet(0x0897,clif->pChangeDir,2,4); + packet(0x0899,clif->pFriendsListAdd,2); + packet(0x089d,clif->pWantToConnection,2,6,10,14,18); + packet(0x0928,clif->pItemListWindowSelected,2,4,8); + packet(0x092d,clif->pPartyBookingRegisterReq,2,4); + packet(0x0934,clif->pStoragePassword,0); + packet(0x093b,clif->pMoveFromKafra,2,4); + packet(0x093d,clif->pTakeItem,2); + packet(0x093e,clif->pDull/*,XXX*/); + packet(0x0943,clif->pPartyInvite2,2); + packet(0x095f,clif->pDull/*,XXX*/); + packet(0x096a,clif->pGetCharNameRequest,2); #endif // 2017-10-11aRagexeRE, 2017-10-11bRagexeRE #if PACKETVER == 20171011 - packet(0x023b,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0281,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x035f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0360,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0362,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0363,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0364,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0365,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0436,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0437,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x0438,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x07e4,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x07ec,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0802,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0835,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x083c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x087b,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0882,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0950,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0954,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x096a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 + packet(0x023b,clif->pWalkToXY,2); + packet(0x0281,clif->pItemListWindowSelected,2,4,8); + packet(0x035f,clif->pTickSend,2); + packet(0x0360,clif->pReqClickBuyingStore,2); + packet(0x0362,clif->pDropItem,2,4); + packet(0x0363,clif->pDull/*,XXX*/); + packet(0x0364,clif->pMoveFromKafra,2,4); + packet(0x0365,clif->pPartyBookingRegisterReq,2,4); + packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pActionRequest,2,6); + packet(0x0436,clif->pDull/*,XXX*/); + packet(0x0437,clif->pStoragePassword,0); + packet(0x0438,clif->pUseSkillToPos,2,4,6,8); + packet(0x07e4,clif->pTakeItem,2); + packet(0x07ec,clif->pMoveToKafra,2,4); + packet(0x0802,clif->pPartyInvite2,2); + packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0835,clif->pSearchStoreInfoNextPage,0); + packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x083c,clif->pUseSkillToId,2,4,6); + packet(0x087b,clif->pFriendsListAdd,2); + packet(0x0882,clif->pHomMenu,2,4); + packet(0x0950,clif->pWantToConnection,2,6,10,14,18); + packet(0x0954,clif->pChangeDir,2,4); + packet(0x096a,clif->pGetCharNameRequest,2); #endif // 2017-10-18aRagexeRE #if PACKETVER == 20171018 - packet(0x035f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0360,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0363,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0364,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0436,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x0437,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0438,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0835,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x083c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x086a,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x087a,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x087e,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0889,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x089a,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x089f,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x08a6,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0938,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x0944,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x094a,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x094f,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x096a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 + packet(0x035f,clif->pTickSend,2); + packet(0x0360,clif->pReqClickBuyingStore,2); + packet(0x0363,clif->pWantToConnection,2,6,10,14,18); + packet(0x0364,clif->pMoveToKafra,2,4); + packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pActionRequest,2,6); + packet(0x0436,clif->pTakeItem,2); + packet(0x0437,clif->pWalkToXY,2); + packet(0x0438,clif->pUseSkillToPos,2,4,6,8); + packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0835,clif->pSearchStoreInfoNextPage,0); + packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x083c,clif->pUseSkillToId,2,4,6); + packet(0x086a,clif->pDull/*,XXX*/); + packet(0x087a,clif->pDull/*,XXX*/); + packet(0x087e,clif->pHomMenu,2,4); + packet(0x0889,clif->pMoveFromKafra,2,4); + packet(0x089a,clif->pDropItem,2,4); + packet(0x089f,clif->pPartyInvite2,2); + packet(0x08a6,clif->pChangeDir,2,4); + packet(0x0938,clif->pItemListWindowSelected,2,4,8); + packet(0x0944,clif->pStoragePassword,0); + packet(0x094a,clif->pFriendsListAdd,2); + packet(0x094f,clif->pPartyBookingRegisterReq,2,4); + packet(0x096a,clif->pGetCharNameRequest,2); #endif // 2017-10-25bRagexeRE, 2017-10-25cRagexeRE, 2017-10-25dRagexeRE, 2017-10-25eRagexeRE #if PACKETVER == 20171025 - packet(0x0202,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x022d,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x023b,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0281,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x035f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0360,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0361,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0362,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0363,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0364,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0365,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0436,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0437,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0438,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x07e4,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x07ec,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0802,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0835,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x083c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x08a2,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x096a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 + packet(0x0202,clif->pChangeDir,2,4); + packet(0x022d,clif->pWantToConnection,2,6,10,14,18); + packet(0x023b,clif->pFriendsListAdd,2); + packet(0x0281,clif->pItemListWindowSelected,2,4,8); + packet(0x035f,clif->pTickSend,2); + packet(0x0360,clif->pReqClickBuyingStore,2); + packet(0x0361,clif->pHomMenu,2,4); + packet(0x0362,clif->pDropItem,2,4); + packet(0x0363,clif->pDull/*,XXX*/); + packet(0x0364,clif->pMoveFromKafra,2,4); + packet(0x0365,clif->pPartyBookingRegisterReq,2,4); + packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pActionRequest,2,6); + packet(0x0436,clif->pDull/*,XXX*/); + packet(0x0437,clif->pWalkToXY,2); + packet(0x0438,clif->pUseSkillToPos,2,4,6,8); + packet(0x07e4,clif->pTakeItem,2); + packet(0x07ec,clif->pMoveToKafra,2,4); + packet(0x0802,clif->pPartyInvite2,2); + packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0835,clif->pSearchStoreInfoNextPage,0); + packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x083c,clif->pUseSkillToId,2,4,6); + packet(0x08a2,clif->pStoragePassword,0); + packet(0x096a,clif->pGetCharNameRequest,2); #endif // 2017-11-01bRagexeRE #if PACKETVER == 20171101 - packet(0x022d,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x0368,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0369,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0438,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0835,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x085b,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0860,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x086c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0872,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0876,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0886,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x088e,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0890,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0895,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0899,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x089b,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x089c,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x08a0,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x08ab,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x08ad,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x091b,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0939,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x094a,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x094d,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0952,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0957,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x095a,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0962,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x0966,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 + packet(0x022d,clif->pStoragePassword,0); + packet(0x0368,clif->pWantToConnection,2,6,10,14,18); + packet(0x0369,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0438,clif->pTickSend,2); + packet(0x0835,clif->pDropItem,2,4); + packet(0x085b,clif->pHomMenu,2,4); + packet(0x0860,clif->pGetCharNameRequest,2); + packet(0x086c,clif->pUseSkillToId,2,4,6); + packet(0x0872,clif->pFriendsListAdd,2); + packet(0x0876,clif->pChangeDir,2,4); + packet(0x0886,clif->pDull/*,XXX*/); + packet(0x088e,clif->pReqClickBuyingStore,2); + packet(0x0890,clif->pSearchStoreInfoNextPage,0); + packet(0x0895,clif->pDull/*,XXX*/); + packet(0x0899,clif->pPartyInvite2,2); + packet(0x089b,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x089c,clif->pPartyBookingRegisterReq,2,4); + packet(0x08a0,clif->pMoveFromKafra,2,4); + packet(0x08ab,clif->pItemListWindowSelected,2,4,8); + packet(0x08ad,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x091b,clif->pMoveToKafra,2,4); + packet(0x0939,clif->pWalkToXY,2); + packet(0x094a,clif->pReqCloseBuyingStore,0); + packet(0x094d,clif->pSolveCharName,2); + packet(0x0952,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0957,clif->pActionRequest,2,6); + packet(0x095a,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0962,clif->pTakeItem,2); + packet(0x0966,clif->pUseSkillToPos,2,4,6,8); #endif // 2017-11-08bRagexeRE #if PACKETVER == 20171108 - packet(0x0202,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0361,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x07e4,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0815,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x0819,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0838,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x085d,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x0863,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0878,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x087e,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0884,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x0896,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0897,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x08a2,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x08a9,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x08ad,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x091d,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x091f,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0940,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0941,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0945,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x0947,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0949,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x094e,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0958,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x095a,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0963,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0965,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0967,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 + packet(0x0202,clif->pTickSend,2); + packet(0x0361,clif->pSearchStoreInfoNextPage,0); + packet(0x07e4,clif->pSolveCharName,2); + packet(0x0815,clif->pStoragePassword,0); + packet(0x0819,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0838,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x085d,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x0863,clif->pWalkToXY,2); + packet(0x0878,clif->pFriendsListAdd,2); + packet(0x087e,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0884,clif->pItemListWindowSelected,2,4,8); + packet(0x0896,clif->pDull/*,XXX*/); + packet(0x0897,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x08a2,clif->pUseSkillToId,2,4,6); + packet(0x08a9,clif->pHomMenu,2,4); + packet(0x08ad,clif->pGetCharNameRequest,2); + packet(0x091d,clif->pReqCloseBuyingStore,0); + packet(0x091f,clif->pChangeDir,2,4); + packet(0x0940,clif->pReqClickBuyingStore,2); + packet(0x0941,clif->pMoveToKafra,2,4); + packet(0x0945,clif->pTakeItem,2); + packet(0x0947,clif->pDull/*,XXX*/); + packet(0x0949,clif->pWantToConnection,2,6,10,14,18); + packet(0x094e,clif->pPartyInvite2,2); + packet(0x0958,clif->pPartyBookingRegisterReq,2,4); + packet(0x095a,clif->pMoveFromKafra,2,4); + packet(0x0963,clif->pActionRequest,2,6); + packet(0x0965,clif->pDropItem,2,4); + packet(0x0967,clif->pUseSkillToPos,2,4,6,8); #endif // 2017-11-15aRagexeRE #if PACKETVER == 20171115 - packet(0x035f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0360,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0365,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0436,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0437,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0438,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x0802,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0835,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x083c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x086d,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x086f,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x087e,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0883,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x088b,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0890,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0898,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x08a4,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0926,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x0958,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x095a,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x096a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 + packet(0x035f,clif->pTickSend,2); + packet(0x0360,clif->pWantToConnection,2,6,10,14,18); + packet(0x0365,clif->pDropItem,2,4); + packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pActionRequest,2,6); + packet(0x0436,clif->pReqClickBuyingStore,2); + packet(0x0437,clif->pWalkToXY,2); + packet(0x0438,clif->pUseSkillToPos,2,4,6,8); + packet(0x0802,clif->pFriendsListAdd,2); + packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0835,clif->pSearchStoreInfoNextPage,0); + packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x083c,clif->pUseSkillToId,2,4,6); + packet(0x086d,clif->pDull/*,XXX*/); + packet(0x086f,clif->pItemListWindowSelected,2,4,8); + packet(0x087e,clif->pMoveFromKafra,2,4); + packet(0x0883,clif->pDull/*,XXX*/); + packet(0x088b,clif->pMoveToKafra,2,4); + packet(0x0890,clif->pPartyBookingRegisterReq,2,4); + packet(0x0898,clif->pStoragePassword,0); + packet(0x08a4,clif->pChangeDir,2,4); + packet(0x0926,clif->pTakeItem,2); + packet(0x0958,clif->pHomMenu,2,4); + packet(0x095a,clif->pPartyInvite2,2); + packet(0x096a,clif->pGetCharNameRequest,2); #endif // 2017-11-22bRagexeRE #if PACKETVER == 20171122 - packet(0x0281,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x02c4,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x035f,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0838,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x083c,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x085b,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x0862,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x0867,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0877,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0885,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0890,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0891,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x0893,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x0897,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0898,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x089a,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x089e,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x08a6,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x08a9,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x091e,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0920,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0923,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0934,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x093b,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0945,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0946,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0947,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0962,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0968,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 + packet(0x0281,clif->pSolveCharName,2); + packet(0x02c4,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x035f,clif->pDull/*,XXX*/); + packet(0x0838,clif->pMoveToKafra,2,4); + packet(0x083c,clif->pHomMenu,2,4); + packet(0x085b,clif->pGetCharNameRequest,2); + packet(0x0862,clif->pItemListWindowSelected,2,4,8); + packet(0x0867,clif->pWantToConnection,2,6,10,14,18); + packet(0x0877,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0885,clif->pDull/*,XXX*/); + packet(0x0890,clif->pTickSend,2); + packet(0x0891,clif->pTakeItem,2); + packet(0x0893,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x0897,clif->pChangeDir,2,4); + packet(0x0898,clif->pDropItem,2,4); + packet(0x089a,clif->pMoveFromKafra,2,4); + packet(0x089e,clif->pActionRequest,2,6); + packet(0x08a6,clif->pUseSkillToPos,2,4,6,8); + packet(0x08a9,clif->pReqClickBuyingStore,2); + packet(0x091e,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0920,clif->pReqCloseBuyingStore,0); + packet(0x0923,clif->pPartyBookingRegisterReq,2,4); + packet(0x0934,clif->pStoragePassword,0); + packet(0x093b,clif->pUseSkillToId,2,4,6); + packet(0x0945,clif->pSearchStoreInfoNextPage,0); + packet(0x0946,clif->pFriendsListAdd,2); + packet(0x0947,clif->pWalkToXY,2); + packet(0x0962,clif->pPartyInvite2,2); + packet(0x0968,clif->pReqOpenBuyingStore,2,4,8,9,89); #endif // 2017-11-29aRagexeRE #if PACKETVER == 20171129 - packet(0x02c4,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x035f,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0361,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x0363,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0365,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0437,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0438,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0835,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0838,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x083c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0862,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x086d,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0876,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0878,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x088a,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x089c,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x08a5,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0940,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x094b,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0953,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0966,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x096a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 + packet(0x02c4,clif->pChangeDir,2,4); + packet(0x035f,clif->pReqClickBuyingStore,2); + packet(0x0361,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x0363,clif->pFriendsListAdd,2); + packet(0x0365,clif->pDropItem,2,4); + packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pActionRequest,2,6); + packet(0x0437,clif->pWalkToXY,2); + packet(0x0438,clif->pUseSkillToPos,2,4,6,8); + packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0835,clif->pSearchStoreInfoNextPage,0); + packet(0x0838,clif->pPartyInvite2,2); + packet(0x083c,clif->pUseSkillToId,2,4,6); + packet(0x0862,clif->pTakeItem,2); + packet(0x086d,clif->pPartyBookingRegisterReq,2,4); + packet(0x0876,clif->pDull/*,XXX*/); + packet(0x0878,clif->pStoragePassword,0); + packet(0x088a,clif->pItemListWindowSelected,2,4,8); + packet(0x089c,clif->pHomMenu,2,4); + packet(0x08a5,clif->pMoveToKafra,2,4); + packet(0x0940,clif->pTickSend,2); + packet(0x094b,clif->pDull/*,XXX*/); + packet(0x0953,clif->pMoveFromKafra,2,4); + packet(0x0966,clif->pWantToConnection,2,6,10,14,18); + packet(0x096a,clif->pGetCharNameRequest,2); #endif // 2017-12-06aRagexeRE #if PACKETVER == 20171206 - packet(0x0360,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0437,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0438,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x083c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0867,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x086a,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x086e,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0885,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0888,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0897,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x089d,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x08a2,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x08a4,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x091d,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0923,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x092e,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0936,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0942,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0958,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x0961,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x096a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 + packet(0x0360,clif->pReqClickBuyingStore,2); + packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pActionRequest,2,6); + packet(0x0437,clif->pWalkToXY,2); + packet(0x0438,clif->pUseSkillToPos,2,4,6,8); + packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x083c,clif->pUseSkillToId,2,4,6); + packet(0x0867,clif->pDropItem,2,4); + packet(0x086a,clif->pDull/*,XXX*/); + packet(0x086e,clif->pPartyBookingRegisterReq,2,4); + packet(0x0885,clif->pTickSend,2); + packet(0x0888,clif->pSearchStoreInfoNextPage,0); + packet(0x0897,clif->pWantToConnection,2,6,10,14,18); + packet(0x089d,clif->pStoragePassword,0); + packet(0x08a2,clif->pPartyInvite2,2); + packet(0x08a4,clif->pMoveFromKafra,2,4); + packet(0x091d,clif->pFriendsListAdd,2); + packet(0x0923,clif->pMoveToKafra,2,4); + packet(0x092e,clif->pDull/*,XXX*/); + packet(0x0936,clif->pChangeDir,2,4); + packet(0x0942,clif->pHomMenu,2,4); + packet(0x0958,clif->pItemListWindowSelected,2,4,8); + packet(0x0961,clif->pTakeItem,2); + packet(0x096a,clif->pGetCharNameRequest,2); #endif // 2017-12-13bRagexeRE #if PACKETVER == 20171213 - packet(0x0202,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0281,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x035f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0360,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0362,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0363,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0364,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0365,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0437,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0438,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x07e4,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x07ec,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0802,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0835,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x083c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0860,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0881,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0890,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x091a,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0957,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x096a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 + packet(0x0202,clif->pPartyInvite2,2); + packet(0x0281,clif->pItemListWindowSelected,2,4,8); + packet(0x035f,clif->pTickSend,2); + packet(0x0360,clif->pReqClickBuyingStore,2); + packet(0x0362,clif->pDropItem,2,4); + packet(0x0363,clif->pDull/*,XXX*/); + packet(0x0364,clif->pMoveFromKafra,2,4); + packet(0x0365,clif->pPartyBookingRegisterReq,2,4); + packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pActionRequest,2,6); + packet(0x0437,clif->pWalkToXY,2); + packet(0x0438,clif->pUseSkillToPos,2,4,6,8); + packet(0x07e4,clif->pTakeItem,2); + packet(0x07ec,clif->pMoveToKafra,2,4); + packet(0x0802,clif->pFriendsListAdd,2); + packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0835,clif->pSearchStoreInfoNextPage,0); + packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x083c,clif->pUseSkillToId,2,4,6); + packet(0x0860,clif->pWantToConnection,2,6,10,14,18); + packet(0x0881,clif->pDull/*,XXX*/); + packet(0x0890,clif->pStoragePassword,0); + packet(0x091a,clif->pChangeDir,2,4); + packet(0x0957,clif->pHomMenu,2,4); + packet(0x096a,clif->pGetCharNameRequest,2); #endif // 2017-12-20aRagexeRE #if PACKETVER == 20171220 - packet(0x0281,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0366,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0369,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0436,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0437,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x085e,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0861,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0872,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0873,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x0880,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x0882,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0885,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x088c,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x0899,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x089e,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x08a7,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x091b,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x091e,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0924,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0929,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0933,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x093e,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0941,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0946,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x094e,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0951,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0957,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0960,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0964,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 + packet(0x0281,clif->pWantToConnection,2,6,10,14,18); + packet(0x0366,clif->pMoveFromKafra,2,4); + packet(0x0369,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0436,clif->pSearchStoreInfoNextPage,0); + packet(0x0437,clif->pPartyBookingRegisterReq,2,4); + packet(0x085e,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0861,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0872,clif->pUseSkillToId,2,4,6); + packet(0x0873,clif->pGetCharNameRequest,2); + packet(0x0880,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x0882,clif->pTickSend,2); + packet(0x0885,clif->pItemListWindowSelected,2,4,8); + packet(0x088c,clif->pUseSkillToPos,2,4,6,8); + packet(0x0899,clif->pStoragePassword,0); + packet(0x089e,clif->pWalkToXY,2); + packet(0x08a7,clif->pReqCloseBuyingStore,0); + packet(0x091b,clif->pTakeItem,2); + packet(0x091e,clif->pSolveCharName,2); + packet(0x0924,clif->pMoveToKafra,2,4); + packet(0x0929,clif->pDropItem,2,4); + packet(0x0933,clif->pChangeDir,2,4); + packet(0x093e,clif->pActionRequest,2,6); + packet(0x0941,clif->pReqClickBuyingStore,2); + packet(0x0946,clif->pDull/*,XXX*/); + packet(0x094e,clif->pDull/*,XXX*/); + packet(0x0951,clif->pHomMenu,2,4); + packet(0x0957,clif->pFriendsListAdd,2); + packet(0x0960,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0964,clif->pPartyInvite2,2); #endif // 2017-12-27aRagexeRE #if PACKETVER == 20171227 - packet(0x035f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0360,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0361,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0437,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0438,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x0802,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0835,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x083c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x087d,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x0888,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x088a,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x088d,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x08a0,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x08a5,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x092c,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x092e,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0938,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0945,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x0946,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0969,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x096a,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 + packet(0x035f,clif->pTickSend,2); + packet(0x0360,clif->pReqClickBuyingStore,2); + packet(0x0361,clif->pActionRequest,2,6); + packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pChangeDir,2,4); + packet(0x0437,clif->pWalkToXY,2); + packet(0x0438,clif->pUseSkillToPos,2,4,6,8); + packet(0x0802,clif->pGetCharNameRequest,2); + packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0835,clif->pSearchStoreInfoNextPage,0); + packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x083c,clif->pUseSkillToId,2,4,6); + packet(0x087d,clif->pStoragePassword,0); + packet(0x0888,clif->pMoveFromKafra,2,4); + packet(0x088a,clif->pDull/*,XXX*/); + packet(0x088d,clif->pTakeItem,2); + packet(0x08a0,clif->pMoveToKafra,2,4); + packet(0x08a5,clif->pHomMenu,2,4); + packet(0x092c,clif->pWantToConnection,2,6,10,14,18); + packet(0x092e,clif->pDull/*,XXX*/); + packet(0x0938,clif->pPartyInvite2,2); + packet(0x0945,clif->pItemListWindowSelected,2,4,8); + packet(0x0946,clif->pFriendsListAdd,2); + packet(0x0969,clif->pDropItem,2,4); + packet(0x096a,clif->pPartyBookingRegisterReq,2,4); #endif // 2018-01-03aRagexeRE, 2018-01-03bRagexeRE #if PACKETVER == 20180103 - packet(0x02c4,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0363,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0811,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0865,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x086b,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x086d,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x0872,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0876,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0879,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x088e,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0899,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x089f,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x08a9,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x08ab,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x08ac,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x091d,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0922,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0926,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0927,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x092c,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0935,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x0938,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0941,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0946,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x0948,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x094e,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x095d,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x095f,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0960,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 + packet(0x02c4,clif->pMoveToKafra,2,4); + packet(0x0363,clif->pPartyInvite2,2); + packet(0x0811,clif->pWantToConnection,2,6,10,14,18); + packet(0x0865,clif->pDull/*,XXX*/); + packet(0x086b,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x086d,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x0872,clif->pReqClickBuyingStore,2); + packet(0x0876,clif->pTickSend,2); + packet(0x0879,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x088e,clif->pReqCloseBuyingStore,0); + packet(0x0899,clif->pFriendsListAdd,2); + packet(0x089f,clif->pSolveCharName,2); + packet(0x08a9,clif->pChangeDir,2,4); + packet(0x08ab,clif->pGetCharNameRequest,2); + packet(0x08ac,clif->pItemListWindowSelected,2,4,8); + packet(0x091d,clif->pActionRequest,2,6); + packet(0x0922,clif->pSearchStoreInfoNextPage,0); + packet(0x0926,clif->pDull/*,XXX*/); + packet(0x0927,clif->pPartyBookingRegisterReq,2,4); + packet(0x092c,clif->pMoveFromKafra,2,4); + packet(0x0935,clif->pTakeItem,2); + packet(0x0938,clif->pUseSkillToId,2,4,6); + packet(0x0941,clif->pWalkToXY,2); + packet(0x0946,clif->pStoragePassword,0); + packet(0x0948,clif->pHomMenu,2,4); + packet(0x094e,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x095d,clif->pUseSkillToPos,2,4,6,8); + packet(0x095f,clif->pDropItem,2,4); + packet(0x0960,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); #endif // 2018-01-17aRagexeRE #if PACKETVER == 20180117 - packet(0x0202,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x022d,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x023b,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0281,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x035f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0360,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0361,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0362,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0363,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0364,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0365,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0436,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0437,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0438,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x07e4,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x07ec,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0802,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0835,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x083c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0875,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x096a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 + packet(0x0202,clif->pChangeDir,2,4); + packet(0x022d,clif->pWantToConnection,2,6,10,14,18); + packet(0x023b,clif->pFriendsListAdd,2); + packet(0x0281,clif->pItemListWindowSelected,2,4,8); + packet(0x035f,clif->pTickSend,2); + packet(0x0360,clif->pReqClickBuyingStore,2); + packet(0x0361,clif->pHomMenu,2,4); + packet(0x0362,clif->pDropItem,2,4); + packet(0x0363,clif->pDull/*,XXX*/); + packet(0x0364,clif->pMoveFromKafra,2,4); + packet(0x0365,clif->pPartyBookingRegisterReq,2,4); + packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pActionRequest,2,6); + packet(0x0436,clif->pDull/*,XXX*/); + packet(0x0437,clif->pWalkToXY,2); + packet(0x0438,clif->pUseSkillToPos,2,4,6,8); + packet(0x07e4,clif->pTakeItem,2); + packet(0x07ec,clif->pMoveToKafra,2,4); + packet(0x0802,clif->pPartyInvite2,2); + packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0835,clif->pSearchStoreInfoNextPage,0); + packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x083c,clif->pUseSkillToId,2,4,6); + packet(0x0875,clif->pStoragePassword,0); + packet(0x096a,clif->pGetCharNameRequest,2); #endif // 2018-01-24bRagexeRE #if PACKETVER == 20180124 - packet(0x035f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0360,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0436,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0437,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0438,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x0802,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0819,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x083c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x085f,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x0868,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x086a,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x086f,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x087a,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0888,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0890,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0919,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0940,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0946,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x094d,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x0958,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0961,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x096a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 + packet(0x035f,clif->pTickSend,2); + packet(0x0360,clif->pReqClickBuyingStore,2); + packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pActionRequest,2,6); + packet(0x0436,clif->pMoveToKafra,2,4); + packet(0x0437,clif->pWalkToXY,2); + packet(0x0438,clif->pUseSkillToPos,2,4,6,8); + packet(0x0802,clif->pDropItem,2,4); + packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x0819,clif->pSearchStoreInfoNextPage,0); + packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x083c,clif->pUseSkillToId,2,4,6); + packet(0x085f,clif->pStoragePassword,0); + packet(0x0868,clif->pDull/*,XXX*/); + packet(0x086a,clif->pPartyBookingRegisterReq,2,4); + packet(0x086f,clif->pDull/*,XXX*/); + packet(0x087a,clif->pPartyInvite2,2); + packet(0x0888,clif->pWantToConnection,2,6,10,14,18); + packet(0x0890,clif->pMoveFromKafra,2,4); + packet(0x0919,clif->pFriendsListAdd,2); + packet(0x0940,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0946,clif->pItemListWindowSelected,2,4,8); + packet(0x094d,clif->pTakeItem,2); + packet(0x0958,clif->pChangeDir,2,4); + packet(0x0961,clif->pHomMenu,2,4); + packet(0x096a,clif->pGetCharNameRequest,2); #endif // 2018-02-07bRagexeRE #if PACKETVER == 20180207 - packet(0x0281,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x035f,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0360,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0362,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0363,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0364,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0365,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0437,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0438,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x07e4,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x07ec,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0802,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0835,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x083c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0870,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0881,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x092c,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x092e,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0940,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0950,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x096a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 + packet(0x0281,clif->pItemListWindowSelected,2,4,8); + packet(0x035f,clif->pReqClickBuyingStore,2); + packet(0x0360,clif->pDull/*,XXX*/); + packet(0x0362,clif->pDropItem,2,4); + packet(0x0363,clif->pDull/*,XXX*/); + packet(0x0364,clif->pMoveFromKafra,2,4); + packet(0x0365,clif->pPartyBookingRegisterReq,2,4); + packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pActionRequest,2,6); + packet(0x0437,clif->pWalkToXY,2); + packet(0x0438,clif->pUseSkillToPos,2,4,6,8); + packet(0x07e4,clif->pTakeItem,2); + packet(0x07ec,clif->pMoveToKafra,2,4); + packet(0x0802,clif->pPartyInvite2,2); + packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0835,clif->pSearchStoreInfoNextPage,0); + packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x083c,clif->pUseSkillToId,2,4,6); + packet(0x0870,clif->pWantToConnection,2,6,10,14,18); + packet(0x0881,clif->pFriendsListAdd,2); + packet(0x092c,clif->pHomMenu,2,4); + packet(0x092e,clif->pChangeDir,2,4); + packet(0x0940,clif->pTickSend,2); + packet(0x0950,clif->pStoragePassword,0); + packet(0x096a,clif->pGetCharNameRequest,2); #endif // 2018-02-13aRagexeRE #if PACKETVER == 20180213 - packet(0x0369,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x0802,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0817,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x085a,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x086f,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0874,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0875,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0878,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x087b,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0882,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x088c,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0892,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x0898,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x089c,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x08a3,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x08a5,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x08a9,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x08ad,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0917,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0922,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0924,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x0926,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0933,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0936,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x093c,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x0943,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0955,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x095a,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x0962,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 + packet(0x0369,clif->pStoragePassword,0); + packet(0x0802,clif->pDropItem,2,4); + packet(0x0817,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x085a,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x086f,clif->pPartyInvite2,2); + packet(0x0874,clif->pTickSend,2); + packet(0x0875,clif->pMoveFromKafra,2,4); + packet(0x0878,clif->pChangeDir,2,4); + packet(0x087b,clif->pReqClickBuyingStore,2); + packet(0x0882,clif->pUseSkillToId,2,4,6); + packet(0x088c,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0892,clif->pTakeItem,2); + packet(0x0898,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x089c,clif->pDull/*,XXX*/); + packet(0x08a3,clif->pWantToConnection,2,6,10,14,18); + packet(0x08a5,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x08a9,clif->pReqCloseBuyingStore,0); + packet(0x08ad,clif->pSolveCharName,2); + packet(0x0917,clif->pFriendsListAdd,2); + packet(0x0922,clif->pWalkToXY,2); + packet(0x0924,clif->pUseSkillToPos,2,4,6,8); + packet(0x0926,clif->pDull/*,XXX*/); + packet(0x0933,clif->pActionRequest,2,6); + packet(0x0936,clif->pSearchStoreInfoNextPage,0); + packet(0x093c,clif->pGetCharNameRequest,2); + packet(0x0943,clif->pPartyBookingRegisterReq,2,4); + packet(0x0955,clif->pMoveToKafra,2,4); + packet(0x095a,clif->pItemListWindowSelected,2,4,8); + packet(0x0962,clif->pHomMenu,2,4); #endif // 2018-02-21aRagexeRE, 2018-02-21bRagexeRE #if PACKETVER == 20180221 - packet(0x0202,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0366,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0436,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0838,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0867,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x086c,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x086f,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0871,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0876,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0879,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x087d,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0880,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x0881,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0883,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x088f,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0891,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0897,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0899,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x089d,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0917,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x091e,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0929,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x093d,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x094b,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x094d,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x094e,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x0957,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x0964,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x096a,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 + packet(0x0202,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0366,clif->pDull/*,XXX*/); + packet(0x0436,clif->pFriendsListAdd,2); + packet(0x0838,clif->pChangeDir,2,4); + packet(0x0867,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x086c,clif->pReqClickBuyingStore,2); + packet(0x086f,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0871,clif->pDropItem,2,4); + packet(0x0876,clif->pHomMenu,2,4); + packet(0x0879,clif->pMoveToKafra,2,4); + packet(0x087d,clif->pWalkToXY,2); + packet(0x0880,clif->pItemListWindowSelected,2,4,8); + packet(0x0881,clif->pPartyBookingRegisterReq,2,4); + packet(0x0883,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x088f,clif->pSolveCharName,2); + packet(0x0891,clif->pDull/*,XXX*/); + packet(0x0897,clif->pWantToConnection,2,6,10,14,18); + packet(0x0899,clif->pSearchStoreInfoNextPage,0); + packet(0x089d,clif->pTickSend,2); + packet(0x0917,clif->pStoragePassword,0); + packet(0x091e,clif->pMoveFromKafra,2,4); + packet(0x0929,clif->pReqCloseBuyingStore,0); + packet(0x093d,clif->pPartyInvite2,2); + packet(0x094b,clif->pUseSkillToId,2,4,6); + packet(0x094d,clif->pUseSkillToPos,2,4,6,8); + packet(0x094e,clif->pTakeItem,2); + packet(0x0957,clif->pGetCharNameRequest,2); + packet(0x0964,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x096a,clif->pActionRequest,2,6); #endif // 2018-03-07bRagexeRE #if PACKETVER == 20180307 - packet(0x0281,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x035f,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0437,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x07e4,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0861,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0862,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0864,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x086c,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0870,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x0872,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0877,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x088d,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0893,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x089b,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x08a6,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x08aa,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x08ab,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0917,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x0920,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0937,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0939,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x093d,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0941,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x0944,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0948,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0951,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0954,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x0957,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0969,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 -#endif - -// 2018-03-21aRagexeRE, 2018-03-28bRagexeRE, 2018-04-04cRagexeRE, 2018-04-18bRagexeRE, 2018-04-25cRagexeRE, 2018-05-02bRagexeRE, 2018-05-02dRagexeRE, 2018-05-16cRagexeRE, 2018-05-23aRagexeRE, 2018-05-30bRagexeRE, 2018-05-30cRagexeRE, 2018-06-05bRagexeRE, 2018-06-12aRagexeRE, 2018-06-12bRagexeRE, 2018-06-20dRagexeRE, 2018-06-20eRagexeRE, 2018-06-21aRagexeRE + packet(0x0281,clif->pDull/*,XXX*/); + packet(0x035f,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0437,clif->pDropItem,2,4); + packet(0x07e4,clif->pWantToConnection,2,6,10,14,18); + packet(0x0861,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0862,clif->pReqClickBuyingStore,2); + packet(0x0864,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x086c,clif->pTickSend,2); + packet(0x0870,clif->pItemListWindowSelected,2,4,8); + packet(0x0872,clif->pPartyBookingRegisterReq,2,4); + packet(0x0877,clif->pWalkToXY,2); + packet(0x088d,clif->pMoveFromKafra,2,4); + packet(0x0893,clif->pUseSkillToId,2,4,6); + packet(0x089b,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x08a6,clif->pSearchStoreInfoNextPage,0); + packet(0x08aa,clif->pFriendsListAdd,2); + packet(0x08ab,clif->pChangeDir,2,4); + packet(0x0917,clif->pUseSkillToPos,2,4,6,8); + packet(0x0920,clif->pMoveToKafra,2,4); + packet(0x0937,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0939,clif->pStoragePassword,0); + packet(0x093d,clif->pReqCloseBuyingStore,0); + packet(0x0941,clif->pGetCharNameRequest,2); + packet(0x0944,clif->pHomMenu,2,4); + packet(0x0948,clif->pPartyInvite2,2); + packet(0x0951,clif->pDull/*,XXX*/); + packet(0x0954,clif->pTakeItem,2); + packet(0x0957,clif->pSolveCharName,2); + packet(0x0969,clif->pActionRequest,2,6); +#endif + +// 2018-03-21aRagexeRE, 2018-03-28bRagexeRE, 2018-04-04cRagexeRE, 2018-04-18bRagexeRE, 2018-04-25cRagexeRE, 2018-05-02bRagexeRE, 2018-05-02dRagexeRE, 2018-05-16cRagexeRE, 2018-05-23aRagexeRE, 2018-05-30bRagexeRE, 2018-05-30cRagexeRE, 2018-06-05bRagexeRE, 2018-06-12aRagexeRE, 2018-06-12bRagexeRE, 2018-06-20dRagexeRE, 2018-06-20eRagexeRE, 2018-06-21aRagexeRE, 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, 2019-09-04bRagexeRE, 2019-09-18cRagexeRE, 2019-09-25aRagexeRE, 2019-09-25bRagexeRE, 2019-10-02bRagexeRE, 2019-10-02dRagexeRE, 2019-10-02dRagexeRE_2, 2019-10-16fRagexeRE, 2019-10-16gRagexeRE, 2019-10-23aRagexeRE, 2019-10-30bRagexeRE, 2019-11-06bRagexeRE, 2019-11-07aRagexeRE, 2019-11-13eRagexeRE, 2019-11-20cRagexeRE, 2019-11-27aRagexeRE, 2019-12-04aRagexeRE, 2019-12-04bRagexeRE, 2019-12-04cRagexeRE, 2019-12-11fRagexeRE, 2019-12-18bRagexeRE, 2019-12-24aRagexeRE, 2019-12-24bRagexeRE, 2020-01-08bRagexeRE, 2020-01-22cRagexeRE, 2020-02-05aRagexeRE, 2020-02-12aRagexeRE, 2020-02-19eRagexeRE, 2020-03-04aRagexeRE #if PACKETVER == 20180321 || \ PACKETVER == 20180328 || \ PACKETVER == 20180404 || \ @@ -9631,40 +9631,8 @@ PACKETVER == 20180605 || \ PACKETVER == 20180612 || \ PACKETVER == 20180620 || \ - PACKETVER == 20180621 - 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 // 90 - 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 // 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, 2019-08-28aRagexeRE -#if PACKETVER == 20180704 || \ + PACKETVER == 20180621 || \ + PACKETVER == 20180704 || \ PACKETVER == 20180711 || \ PACKETVER == 20180718 || \ PACKETVER == 20180801 || \ @@ -9712,40 +9680,8 @@ PACKETVER == 20190802 || \ PACKETVER == 20190807 || \ 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 - 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 // 90 - 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 - -// 2019-09-04bRagexeRE, 2019-09-18cRagexeRE, 2019-09-25aRagexeRE, 2019-09-25bRagexeRE, 2019-10-02bRagexeRE, 2019-10-02dRagexeRE, 2019-10-02dRagexeRE_2, 2019-10-16fRagexeRE, 2019-10-16gRagexeRE, 2019-10-23aRagexeRE, 2019-10-30bRagexeRE, 2019-11-06bRagexeRE, 2019-11-07aRagexeRE, 2019-11-13eRagexeRE, 2019-11-20cRagexeRE, 2019-11-27aRagexeRE, 2019-12-04aRagexeRE, 2019-12-04bRagexeRE, 2019-12-04cRagexeRE, 2019-12-11fRagexeRE, 2019-12-18bRagexeRE, 2019-12-24aRagexeRE, 2019-12-24bRagexeRE, 2020-01-08bRagexeRE, 2020-01-22cRagexeRE, 2020-02-05aRagexeRE, 2020-02-12aRagexeRE, 2020-02-19eRagexeRE, 2020-03-04aRagexeRE -#if PACKETVER == 20190904 || \ + PACKETVER == 20190828 || \ + PACKETVER == 20190904 || \ PACKETVER == 20190918 || \ PACKETVER == 20190925 || \ PACKETVER == 20191002 || \ @@ -9766,36 +9702,36 @@ PACKETVER == 20200205 || \ PACKETVER == 20200212 || \ PACKETVER == 20200219 || \ - PACKETVER == 20200304 - 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 + PACKETVER >= 20200304 + packet(0x0202,clif->pFriendsListAdd,2); + packet(0x022d,clif->pHomMenu,2,4); + packet(0x023b,clif->pStoragePassword,0); + packet(0x0281,clif->pDull/*,XXX*/); + packet(0x02c4,clif->pPartyInvite2,2); + packet(0x035f,clif->pWalkToXY,2); + packet(0x0360,clif->pTickSend,2); + packet(0x0361,clif->pChangeDir,2,4); + packet(0x0362,clif->pTakeItem,2); + packet(0x0363,clif->pDropItem,2,4); + packet(0x0364,clif->pMoveToKafra,2,4); + packet(0x0365,clif->pMoveFromKafra,2,4); + packet(0x0366,clif->pUseSkillToPos,2,4,6,8); + packet(0x0367,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0368,clif->pGetCharNameRequest,2); + packet(0x0369,clif->pSolveCharName,2); + packet(0x0436,clif->pWantToConnection,2,6,10,14,18); + packet(0x0437,clif->pActionRequest,2,6); + packet(0x0438,clif->pUseSkillToId,2,4,6); + packet(0x07e4,clif->pItemListWindowSelected,2,4,8); + packet(0x07ec,clif->pDull/*,XXX*/); + packet(0x0802,clif->pPartyBookingRegisterReq,2,4); + packet(0x0811,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0815,clif->pReqCloseBuyingStore,0); + packet(0x0817,clif->pReqClickBuyingStore,2); + packet(0x0819,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0835,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0838,clif->pSearchStoreInfoNextPage,0); + packet(0x083c,clif->pSearchStoreInfoListItemClick,2,6,10); #endif diff --git a/src/map/packets_shuffle_zero.h b/src/map/packets_shuffle_zero.h index b7c26dbe7..42459bb87 100644 --- a/src/map/packets_shuffle_zero.h +++ b/src/map/packets_shuffle_zero.h @@ -37,7 +37,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 +// 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, 2019-09-25_3aRagexe_zero, 2019-09-25_5aRagexe_zero, 2019-10-08_2aRagexe_zero, 2019-10-23_2aRagexe_zero, 2019-11-06aRagexe_zero, 2019-11-13aRagexe_zero, 2019-11-27_2aRagexe_zero, 2019-11-27aRagexe_zero, 2019-12-04aRagexe_zero, 2019-12-11_2aRagexe_zero, 2019-12-24_4aRagexe_zero, 2019-12-24_5aRagexe_zero, 2020-01-15_2aRagexe_zero, 2020-01-15aRagexe_zero, 2020-01-29_2aRagexe_zero, 2020-01-29aRagexe_zero, 2020-02-12aRagexe_zero, 2020-02-26aRagexe_zero, 2020-02-26bRagexe_zero, 2020-03-04aRagexe_zero, 2020-03-18_2aRagexe_zero, 2020-04-01_2aRagexe_zero, 2020-04-14bRagexe_zero, 2020-05-06aRagexe_zero, 2020-05-20_5aRagexe_zero #if PACKETVER == 20171018 || \ PACKETVER == 20171019 || \ PACKETVER == 20171023 || \ @@ -69,238 +69,289 @@ PACKETVER == 20180919 || \ PACKETVER == 20180928 || \ PACKETVER == 20181010 || \ - PACKETVER == 20181024 - 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 // 90 - 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 // 12 + PACKETVER == 20181024 || \ + PACKETVER == 20181114 || \ + PACKETVER == 20181120 || \ + PACKETVER == 20181128 || \ + PACKETVER == 20181212 || \ + PACKETVER == 20181219 || \ + PACKETVER == 20181226 || \ + PACKETVER == 20190116 || \ + PACKETVER == 20190117 || \ + PACKETVER == 20190130 || \ + PACKETVER == 20190213 || \ + PACKETVER == 20190220 || \ + PACKETVER == 20190227 || \ + PACKETVER == 20190313 || \ + PACKETVER == 20190327 || \ + PACKETVER == 20190403 || \ + PACKETVER == 20190410 || \ + PACKETVER == 20190424 || \ + PACKETVER == 20190502 || \ + PACKETVER == 20190508 || \ + PACKETVER == 20190515 || \ + PACKETVER == 20190529 || \ + PACKETVER == 20190530 || \ + PACKETVER == 20190605 || \ + PACKETVER == 20190626 || \ + PACKETVER == 20190709 || \ + PACKETVER == 20190710 || \ + PACKETVER == 20190717 || \ + PACKETVER == 20190724 || \ + PACKETVER == 20190814 || \ + PACKETVER == 20190828 || \ + PACKETVER == 20190911 || \ + PACKETVER == 20190918 || \ + PACKETVER == 20190925 || \ + PACKETVER == 20191008 || \ + PACKETVER == 20191023 || \ + PACKETVER == 20191106 || \ + PACKETVER == 20191113 || \ + PACKETVER == 20191127 || \ + PACKETVER == 20191204 || \ + PACKETVER == 20191211 || \ + PACKETVER == 20191224 || \ + PACKETVER == 20200115 || \ + PACKETVER == 20200129 || \ + PACKETVER == 20200212 || \ + PACKETVER == 20200226 || \ + PACKETVER == 20200304 || \ + PACKETVER == 20200318 || \ + PACKETVER == 20200401 || \ + PACKETVER == 20200414 || \ + PACKETVER == 20200506 || \ + PACKETVER >= 20200520 + packet(0x0202,clif->pFriendsListAdd,2); + packet(0x022d,clif->pHomMenu,2,4); + packet(0x023b,clif->pStoragePassword,0); + packet(0x0281,clif->pDull/*,XXX*/); + packet(0x02c4,clif->pPartyInvite2,2); + packet(0x035f,clif->pWalkToXY,2); + packet(0x0360,clif->pTickSend,2); + packet(0x0361,clif->pChangeDir,2,4); + packet(0x0362,clif->pTakeItem,2); + packet(0x0363,clif->pDropItem,2,4); + packet(0x0364,clif->pMoveToKafra,2,4); + packet(0x0365,clif->pMoveFromKafra,2,4); + packet(0x0366,clif->pUseSkillToPos,2,4,6,8); + packet(0x0367,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0368,clif->pGetCharNameRequest,2); + packet(0x0369,clif->pSolveCharName,2); + packet(0x0436,clif->pWantToConnection,2,6,10,14,18); + packet(0x0437,clif->pActionRequest,2,6); + packet(0x0438,clif->pUseSkillToId,2,4,6); + packet(0x07e4,clif->pItemListWindowSelected,2,4,8); + packet(0x07ec,clif->pDull/*,XXX*/); + packet(0x0802,clif->pPartyBookingRegisterReq,2,4); + packet(0x0811,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0815,clif->pReqCloseBuyingStore,0); + packet(0x0817,clif->pReqClickBuyingStore,2); + packet(0x0819,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0835,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0838,clif->pSearchStoreInfoNextPage,0); + packet(0x083c,clif->pSearchStoreInfoListItemClick,2,6,10); #endif // 2017-11-15aRagexe_zero, 2017-11-15bRagexe_zero, 2017-11-16aRagexe_zero, 2017-11-17aRagexe_zero #if PACKETVER == 20171115 || \ PACKETVER == 20171116 || \ PACKETVER == 20171117 - packet(0x0281,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x035f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0360,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0362,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0363,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0364,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0365,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0437,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0438,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x07e4,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x07ec,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0802,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0835,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x083c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0860,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0881,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x091c,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0922,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x0959,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0966,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x096a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 + packet(0x0281,clif->pItemListWindowSelected,2,4,8); + packet(0x035f,clif->pTickSend,2); + packet(0x0360,clif->pReqClickBuyingStore,2); + packet(0x0362,clif->pDropItem,2,4); + packet(0x0363,clif->pDull/*,XXX*/); + packet(0x0364,clif->pMoveFromKafra,2,4); + packet(0x0365,clif->pPartyBookingRegisterReq,2,4); + packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pActionRequest,2,6); + packet(0x0437,clif->pWalkToXY,2); + packet(0x0438,clif->pUseSkillToPos,2,4,6,8); + packet(0x07e4,clif->pTakeItem,2); + packet(0x07ec,clif->pMoveToKafra,2,4); + packet(0x0802,clif->pPartyInvite2,2); + packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0835,clif->pSearchStoreInfoNextPage,0); + packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x083c,clif->pUseSkillToId,2,4,6); + packet(0x0860,clif->pDull/*,XXX*/); + packet(0x0881,clif->pWantToConnection,2,6,10,14,18); + packet(0x091c,clif->pHomMenu,2,4); + packet(0x0922,clif->pStoragePassword,0); + packet(0x0959,clif->pChangeDir,2,4); + packet(0x0966,clif->pFriendsListAdd,2); + packet(0x096a,clif->pGetCharNameRequest,2); #endif // 2017-11-21aRagexe_zero, 2017-11-22aRagexe_zero #if PACKETVER == 20171121 || \ PACKETVER == 20171122 - packet(0x0202,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x022d,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x035f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0360,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0362,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0363,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0437,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0438,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x0811,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0835,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x083c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0866,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0889,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0892,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x089e,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x08ad,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0918,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x091f,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0928,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0943,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0950,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x096a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 + packet(0x0202,clif->pStoragePassword,0); + packet(0x022d,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x035f,clif->pTickSend,2); + packet(0x0360,clif->pReqClickBuyingStore,2); + packet(0x0362,clif->pDropItem,2,4); + packet(0x0363,clif->pItemListWindowSelected,2,4,8); + packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pActionRequest,2,6); + packet(0x0437,clif->pWalkToXY,2); + packet(0x0438,clif->pUseSkillToPos,2,4,6,8); + packet(0x0811,clif->pHomMenu,2,4); + packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0835,clif->pSearchStoreInfoNextPage,0); + packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x083c,clif->pUseSkillToId,2,4,6); + packet(0x0866,clif->pMoveToKafra,2,4); + packet(0x0889,clif->pMoveFromKafra,2,4); + packet(0x0892,clif->pPartyBookingRegisterReq,2,4); + packet(0x089e,clif->pChangeDir,2,4); + packet(0x08ad,clif->pPartyInvite2,2); + packet(0x0918,clif->pTakeItem,2); + packet(0x091f,clif->pWantToConnection,2,6,10,14,18); + packet(0x0928,clif->pFriendsListAdd,2); + packet(0x0943,clif->pDull/*,XXX*/); + packet(0x0950,clif->pDull/*,XXX*/); + packet(0x096a,clif->pGetCharNameRequest,2); #endif // 2017-11-23dRagexe_zero #if PACKETVER == 20171123 - packet(0x035f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0360,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0367,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0437,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0438,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0835,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x083c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x085f,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0860,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0876,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0882,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x088c,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0896,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x089e,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x08a8,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x092b,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0930,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x0935,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0947,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x0960,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x096a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 + packet(0x035f,clif->pTickSend,2); + packet(0x0360,clif->pReqClickBuyingStore,2); + packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0367,clif->pHomMenu,2,4); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pActionRequest,2,6); + packet(0x0437,clif->pWalkToXY,2); + packet(0x0438,clif->pUseSkillToPos,2,4,6,8); + packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0835,clif->pSearchStoreInfoNextPage,0); + packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x083c,clif->pUseSkillToId,2,4,6); + packet(0x085f,clif->pDropItem,2,4); + packet(0x0860,clif->pWantToConnection,2,6,10,14,18); + packet(0x0876,clif->pDull/*,XXX*/); + packet(0x0882,clif->pItemListWindowSelected,2,4,8); + packet(0x088c,clif->pPartyInvite2,2); + packet(0x0896,clif->pChangeDir,2,4); + packet(0x089e,clif->pPartyBookingRegisterReq,2,4); + packet(0x08a8,clif->pFriendsListAdd,2); + packet(0x092b,clif->pMoveToKafra,2,4); + packet(0x0930,clif->pTakeItem,2); + packet(0x0935,clif->pMoveFromKafra,2,4); + packet(0x0947,clif->pStoragePassword,0); + packet(0x0960,clif->pDull/*,XXX*/); + packet(0x096a,clif->pGetCharNameRequest,2); #endif // 2017-11-27aRagexe_zero, 2017-11-27cRagexe_zero, 2017-11-28aRagexe_zero #if PACKETVER == 20171127 || \ PACKETVER == 20171128 - packet(0x0202,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x022d,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x023b,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0281,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x035f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0360,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0361,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0362,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0363,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0364,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0365,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0436,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0437,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0438,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x07e4,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x07ec,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0802,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0835,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x083c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0893,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x096a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 + packet(0x0202,clif->pChangeDir,2,4); + packet(0x022d,clif->pWantToConnection,2,6,10,14,18); + packet(0x023b,clif->pFriendsListAdd,2); + packet(0x0281,clif->pItemListWindowSelected,2,4,8); + packet(0x035f,clif->pTickSend,2); + packet(0x0360,clif->pReqClickBuyingStore,2); + packet(0x0361,clif->pHomMenu,2,4); + packet(0x0362,clif->pDropItem,2,4); + packet(0x0363,clif->pDull/*,XXX*/); + packet(0x0364,clif->pMoveFromKafra,2,4); + packet(0x0365,clif->pPartyBookingRegisterReq,2,4); + packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pActionRequest,2,6); + packet(0x0436,clif->pDull/*,XXX*/); + packet(0x0437,clif->pWalkToXY,2); + packet(0x0438,clif->pUseSkillToPos,2,4,6,8); + packet(0x07e4,clif->pTakeItem,2); + packet(0x07ec,clif->pMoveToKafra,2,4); + packet(0x0802,clif->pPartyInvite2,2); + packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0835,clif->pSearchStoreInfoNextPage,0); + packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x083c,clif->pUseSkillToId,2,4,6); + packet(0x0893,clif->pStoragePassword,0); + packet(0x096a,clif->pGetCharNameRequest,2); #endif // 2017-11-30bRagexe_zero #if PACKETVER == 20171130 - packet(0x0361,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0864,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x086f,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x0871,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0872,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0875,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x0878,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0881,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x0884,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0886,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0887,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x088b,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0894,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0899,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x08a0,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x08a7,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x0925,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0928,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0930,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0931,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0935,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x093a,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0947,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x094c,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x094f,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x095b,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x095f,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0960,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0965,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 + packet(0x0361,clif->pPartyBookingRegisterReq,2,4); + packet(0x0864,clif->pGetCharNameRequest,2); + packet(0x086f,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x0871,clif->pSearchStoreInfoNextPage,0); + packet(0x0872,clif->pReqClickBuyingStore,2); + packet(0x0875,clif->pTakeItem,2); + packet(0x0878,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0881,clif->pUseSkillToPos,2,4,6,8); + packet(0x0884,clif->pDropItem,2,4); + packet(0x0886,clif->pReqCloseBuyingStore,0); + packet(0x0887,clif->pStoragePassword,0); + packet(0x088b,clif->pMoveToKafra,2,4); + packet(0x0894,clif->pWalkToXY,2); + packet(0x0899,clif->pDull/*,XXX*/); + packet(0x08a0,clif->pChangeDir,2,4); + packet(0x08a7,clif->pItemListWindowSelected,2,4,8); + packet(0x0925,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0928,clif->pDull/*,XXX*/); + packet(0x0930,clif->pWantToConnection,2,6,10,14,18); + packet(0x0931,clif->pFriendsListAdd,2); + packet(0x0935,clif->pMoveFromKafra,2,4); + packet(0x093a,clif->pActionRequest,2,6); + packet(0x0947,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x094c,clif->pHomMenu,2,4); + packet(0x094f,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x095b,clif->pTickSend,2); + packet(0x095f,clif->pPartyInvite2,2); + packet(0x0960,clif->pSolveCharName,2); + packet(0x0965,clif->pUseSkillToId,2,4,6); #endif // 2017-12-04bRagexe_zero #if PACKETVER == 20171204 - packet(0x0281,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x035f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0360,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0437,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0438,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0835,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x083c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x085b,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x086f,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x087d,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x0885,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0887,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0892,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0896,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x08aa,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0917,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x091b,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0921,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0924,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0937,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0960,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x096a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 + packet(0x0281,clif->pTakeItem,2); + packet(0x035f,clif->pTickSend,2); + packet(0x0360,clif->pReqClickBuyingStore,2); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pActionRequest,2,6); + packet(0x0437,clif->pWalkToXY,2); + packet(0x0438,clif->pUseSkillToPos,2,4,6,8); + packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0835,clif->pSearchStoreInfoNextPage,0); + packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x083c,clif->pUseSkillToId,2,4,6); + packet(0x085b,clif->pDull/*,XXX*/); + packet(0x086f,clif->pWantToConnection,2,6,10,14,18); + packet(0x087d,clif->pItemListWindowSelected,2,4,8); + packet(0x0885,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0887,clif->pChangeDir,2,4); + packet(0x0892,clif->pDull/*,XXX*/); + packet(0x0896,clif->pStoragePassword,0); + packet(0x08aa,clif->pPartyInvite2,2); + packet(0x0917,clif->pMoveFromKafra,2,4); + packet(0x091b,clif->pFriendsListAdd,2); + packet(0x0921,clif->pPartyBookingRegisterReq,2,4); + packet(0x0924,clif->pHomMenu,2,4); + packet(0x0937,clif->pMoveToKafra,2,4); + packet(0x0960,clif->pDropItem,2,4); + packet(0x096a,clif->pGetCharNameRequest,2); #endif // 2017-12-06aRagexe_zero, 2017-12-06bRagexe_zero, 2017-12-06cRagexe_zero, 2017-12-06dRagexe_zero, 2017-12-08aRagexe_zero, 2017-12-08cRagexe_zero, 2017-12-08dRagexe_zero, 2017-12-09bRagexe_zero, 2017-12-09cRagexe_zero, 2017-12-10aRagexe_zero, 2017-12-11bRagexe_zero, 2017-12-12aRagexe_zero, 2017-12-13aRagexe_zero, 2017-12-13bRagexe_zero, 2017-12-13cRagexe_zero @@ -311,545 +362,435 @@ PACKETVER == 20171211 || \ PACKETVER == 20171212 || \ PACKETVER == 20171213 - packet(0x0281,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0366,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0436,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0835,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x083c,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0860,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0862,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0864,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0870,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0878,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x087a,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x087b,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0885,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x088d,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0893,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0897,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x089e,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x08a4,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x08ac,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0920,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0934,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0936,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x093a,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x0940,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0941,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x0959,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x095b,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x095c,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x095f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 + packet(0x0281,clif->pUseSkillToId,2,4,6); + packet(0x0366,clif->pDropItem,2,4); + packet(0x0436,clif->pReqClickBuyingStore,2); + packet(0x0835,clif->pTakeItem,2); + packet(0x083c,clif->pDull/*,XXX*/); + packet(0x0860,clif->pDull/*,XXX*/); + packet(0x0862,clif->pChangeDir,2,4); + packet(0x0864,clif->pWalkToXY,2); + packet(0x0870,clif->pMoveToKafra,2,4); + packet(0x0878,clif->pUseSkillToPos,2,4,6,8); + packet(0x087a,clif->pPartyBookingRegisterReq,2,4); + packet(0x087b,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0885,clif->pSolveCharName,2); + packet(0x088d,clif->pPartyInvite2,2); + packet(0x0893,clif->pFriendsListAdd,2); + packet(0x0897,clif->pHomMenu,2,4); + packet(0x089e,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x08a4,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x08ac,clif->pActionRequest,2,6); + packet(0x0920,clif->pWantToConnection,2,6,10,14,18); + packet(0x0934,clif->pReqCloseBuyingStore,0); + packet(0x0936,clif->pMoveFromKafra,2,4); + packet(0x093a,clif->pItemListWindowSelected,2,4,8); + packet(0x0940,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0941,clif->pGetCharNameRequest,2); + packet(0x0959,clif->pStoragePassword,0); + packet(0x095b,clif->pSearchStoreInfoNextPage,0); + packet(0x095c,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x095f,clif->pTickSend,2); #endif // 2017-12-14cRagexe_zero #if PACKETVER == 20171214 - packet(0x023b,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x02c4,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0438,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x085b,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x085e,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0862,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0864,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x086a,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0871,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0873,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x0886,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x088b,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x088c,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0892,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0894,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x0897,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x08a3,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x08a5,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x08ac,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0933,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x094a,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x094d,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x094f,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0951,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x095a,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x095b,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x0960,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0969,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x096a,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 + packet(0x023b,clif->pSearchStoreInfoNextPage,0); + packet(0x02c4,clif->pDropItem,2,4); + packet(0x0438,clif->pGetCharNameRequest,2); + packet(0x085b,clif->pStoragePassword,0); + packet(0x085e,clif->pPartyBookingRegisterReq,2,4); + packet(0x0862,clif->pSolveCharName,2); + packet(0x0864,clif->pDull/*,XXX*/); + packet(0x086a,clif->pWalkToXY,2); + packet(0x0871,clif->pWantToConnection,2,6,10,14,18); + packet(0x0873,clif->pItemListWindowSelected,2,4,8); + packet(0x0886,clif->pReqClickBuyingStore,2); + packet(0x088b,clif->pDull/*,XXX*/); + packet(0x088c,clif->pMoveToKafra,2,4); + packet(0x0892,clif->pUseSkillToId,2,4,6); + packet(0x0894,clif->pTakeItem,2); + packet(0x0897,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x08a3,clif->pFriendsListAdd,2); + packet(0x08a5,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x08ac,clif->pReqCloseBuyingStore,0); + packet(0x0933,clif->pActionRequest,2,6); + packet(0x094a,clif->pChangeDir,2,4); + packet(0x094d,clif->pHomMenu,2,4); + packet(0x094f,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0951,clif->pPartyInvite2,2); + packet(0x095a,clif->pMoveFromKafra,2,4); + packet(0x095b,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x0960,clif->pTickSend,2); + packet(0x0969,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x096a,clif->pUseSkillToPos,2,4,6,8); #endif // 2017-12-20aRagexe_zero, 2017-12-21aRagexe_zero, 2017-12-21bRagexe_zero #if PACKETVER == 20171220 || \ PACKETVER == 20171221 - packet(0x022d,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0281,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x0438,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x07ec,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0819,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0835,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0838,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x085f,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0867,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x086c,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x0872,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x087a,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x087e,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0899,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x089b,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x089c,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x08a3,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x08a5,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x08ad,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x091f,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0921,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x092d,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x092e,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0932,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0934,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0937,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x094d,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x095b,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x096a,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 + packet(0x022d,clif->pSearchStoreInfoNextPage,0); + packet(0x0281,clif->pUseSkillToPos,2,4,6,8); + packet(0x0438,clif->pGetCharNameRequest,2); + packet(0x07ec,clif->pReqClickBuyingStore,2); + packet(0x0819,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0835,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0838,clif->pTickSend,2); + packet(0x085f,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0867,clif->pSolveCharName,2); + packet(0x086c,clif->pTakeItem,2); + packet(0x0872,clif->pMoveFromKafra,2,4); + packet(0x087a,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x087e,clif->pDull/*,XXX*/); + packet(0x0899,clif->pWalkToXY,2); + packet(0x089b,clif->pDull/*,XXX*/); + packet(0x089c,clif->pReqCloseBuyingStore,0); + packet(0x08a3,clif->pItemListWindowSelected,2,4,8); + packet(0x08a5,clif->pDropItem,2,4); + packet(0x08ad,clif->pWantToConnection,2,6,10,14,18); + packet(0x091f,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0921,clif->pHomMenu,2,4); + packet(0x092d,clif->pPartyBookingRegisterReq,2,4); + packet(0x092e,clif->pFriendsListAdd,2); + packet(0x0932,clif->pPartyInvite2,2); + packet(0x0934,clif->pMoveToKafra,2,4); + packet(0x0937,clif->pActionRequest,2,6); + packet(0x094d,clif->pUseSkillToId,2,4,6); + packet(0x095b,clif->pStoragePassword,0); + packet(0x096a,clif->pChangeDir,2,4); #endif // 2017-12-27bRagexe_zero, 2017-12-29aRagexe_zero #if PACKETVER == 20171227 || \ PACKETVER == 20171229 - packet(0x02c4,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0860,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x086c,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0871,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0872,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0874,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0876,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x0877,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0878,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x087b,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0885,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0889,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x088b,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0894,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x089f,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x091c,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0920,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0925,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x092d,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x0930,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x0939,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x093e,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x0941,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0945,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0946,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x094b,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x095e,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0967,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0968,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 + packet(0x02c4,clif->pSearchStoreInfoNextPage,0); + packet(0x0860,clif->pChangeDir,2,4); + packet(0x086c,clif->pActionRequest,2,6); + packet(0x0871,clif->pSolveCharName,2); + packet(0x0872,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0874,clif->pWantToConnection,2,6,10,14,18); + packet(0x0876,clif->pUseSkillToPos,2,4,6,8); + packet(0x0877,clif->pDull/*,XXX*/); + packet(0x0878,clif->pTakeItem,2); + packet(0x087b,clif->pMoveToKafra,2,4); + packet(0x0885,clif->pMoveFromKafra,2,4); + packet(0x0889,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x088b,clif->pReqCloseBuyingStore,0); + packet(0x0894,clif->pPartyBookingRegisterReq,2,4); + packet(0x089f,clif->pReqClickBuyingStore,2); + packet(0x091c,clif->pDropItem,2,4); + packet(0x0920,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0925,clif->pDull/*,XXX*/); + packet(0x092d,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x0930,clif->pStoragePassword,0); + packet(0x0939,clif->pTickSend,2); + packet(0x093e,clif->pGetCharNameRequest,2); + packet(0x0941,clif->pFriendsListAdd,2); + packet(0x0945,clif->pPartyInvite2,2); + packet(0x0946,clif->pWalkToXY,2); + packet(0x094b,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x095e,clif->pHomMenu,2,4); + packet(0x0967,clif->pUseSkillToId,2,4,6); + packet(0x0968,clif->pItemListWindowSelected,2,4,8); #endif // 2018-01-03aRagexe_zero #if PACKETVER == 20180103 - packet(0x035f,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0360,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0366,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x07e4,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x083c,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x0860,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0866,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x086d,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0871,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0872,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0874,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x087b,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0885,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0888,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0890,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0896,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x089d,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x08a6,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x091e,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x0924,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0938,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x093b,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0956,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0958,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x095b,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x095d,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0964,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0966,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x096a,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 + packet(0x035f,clif->pChangeDir,2,4); + packet(0x0360,clif->pPartyBookingRegisterReq,2,4); + packet(0x0366,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x07e4,clif->pWalkToXY,2); + packet(0x083c,clif->pUseSkillToPos,2,4,6,8); + packet(0x0860,clif->pHomMenu,2,4); + packet(0x0866,clif->pItemListWindowSelected,2,4,8); + packet(0x086d,clif->pFriendsListAdd,2); + packet(0x0871,clif->pTickSend,2); + packet(0x0872,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0874,clif->pSearchStoreInfoNextPage,0); + packet(0x087b,clif->pDull/*,XXX*/); + packet(0x0885,clif->pReqCloseBuyingStore,0); + packet(0x0888,clif->pActionRequest,2,6); + packet(0x0890,clif->pDropItem,2,4); + packet(0x0896,clif->pUseSkillToId,2,4,6); + packet(0x089d,clif->pMoveToKafra,2,4); + packet(0x08a6,clif->pGetCharNameRequest,2); + packet(0x091e,clif->pTakeItem,2); + packet(0x0924,clif->pDull/*,XXX*/); + packet(0x0938,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x093b,clif->pPartyInvite2,2); + packet(0x0956,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0958,clif->pWantToConnection,2,6,10,14,18); + packet(0x095b,clif->pStoragePassword,0); + packet(0x095d,clif->pSolveCharName,2); + packet(0x0964,clif->pReqClickBuyingStore,2); + packet(0x0966,clif->pMoveFromKafra,2,4); + packet(0x096a,clif->pSearchStoreInfoListItemClick,2,6,10); #endif // 2018-01-17aRagexe_zero #if PACKETVER == 20180117 - packet(0x0361,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0364,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0438,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x07e4,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x083c,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0866,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x086e,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x086f,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x087d,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0881,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0884,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0886,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x0890,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0891,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x0893,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0899,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x089d,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x089e,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0919,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x091c,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x091f,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0921,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0928,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0929,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x092d,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0933,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x0946,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x095e,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0963,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 + packet(0x0361,clif->pPartyInvite2,2); + packet(0x0364,clif->pSolveCharName,2); + packet(0x0438,clif->pDull/*,XXX*/); + packet(0x07e4,clif->pStoragePassword,0); + packet(0x083c,clif->pDropItem,2,4); + packet(0x0866,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x086e,clif->pUseSkillToPos,2,4,6,8); + packet(0x086f,clif->pReqClickBuyingStore,2); + packet(0x087d,clif->pWantToConnection,2,6,10,14,18); + packet(0x0881,clif->pUseSkillToId,2,4,6); + packet(0x0884,clif->pSearchStoreInfoNextPage,0); + packet(0x0886,clif->pTakeItem,2); + packet(0x0890,clif->pMoveToKafra,2,4); + packet(0x0891,clif->pGetCharNameRequest,2); + packet(0x0893,clif->pActionRequest,2,6); + packet(0x0899,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x089d,clif->pItemListWindowSelected,2,4,8); + packet(0x089e,clif->pChangeDir,2,4); + packet(0x0919,clif->pTickSend,2); + packet(0x091c,clif->pMoveFromKafra,2,4); + packet(0x091f,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0921,clif->pWalkToXY,2); + packet(0x0928,clif->pReqCloseBuyingStore,0); + packet(0x0929,clif->pPartyBookingRegisterReq,2,4); + packet(0x092d,clif->pDull/*,XXX*/); + packet(0x0933,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x0946,clif->pFriendsListAdd,2); + packet(0x095e,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0963,clif->pHomMenu,2,4); #endif // 2018-01-31dRagexe_zero #if PACKETVER == 20180131 - packet(0x0202,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x022d,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x023b,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0281,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x035f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0360,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0361,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0362,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0363,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0364,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0365,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0367,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0436,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0437,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0438,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x07e4,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x07ec,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0802,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0835,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x083c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0940,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x096a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 + packet(0x0202,clif->pChangeDir,2,4); + packet(0x022d,clif->pWantToConnection,2,6,10,14,18); + packet(0x023b,clif->pFriendsListAdd,2); + packet(0x0281,clif->pItemListWindowSelected,2,4,8); + packet(0x035f,clif->pTickSend,2); + packet(0x0360,clif->pReqClickBuyingStore,2); + packet(0x0361,clif->pHomMenu,2,4); + packet(0x0362,clif->pDropItem,2,4); + packet(0x0363,clif->pDull/*,XXX*/); + packet(0x0364,clif->pMoveFromKafra,2,4); + packet(0x0365,clif->pPartyBookingRegisterReq,2,4); + packet(0x0367,clif->pStoragePassword,0); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pActionRequest,2,6); + packet(0x0436,clif->pDull/*,XXX*/); + packet(0x0437,clif->pWalkToXY,2); + packet(0x0438,clif->pUseSkillToPos,2,4,6,8); + packet(0x07e4,clif->pTakeItem,2); + packet(0x07ec,clif->pMoveToKafra,2,4); + packet(0x0802,clif->pPartyInvite2,2); + packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0835,clif->pSearchStoreInfoNextPage,0); + packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x083c,clif->pUseSkillToId,2,4,6); + packet(0x0940,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x096a,clif->pGetCharNameRequest,2); #endif // 2018-02-07bRagexe_zero #if PACKETVER == 20180207 - packet(0x0202,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x022d,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x023b,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0281,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x035f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0360,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0361,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0362,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0363,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0364,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0365,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0436,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0437,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0438,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x07e4,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x07ec,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0802,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0835,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x083c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0967,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x096a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 + packet(0x0202,clif->pChangeDir,2,4); + packet(0x022d,clif->pWantToConnection,2,6,10,14,18); + packet(0x023b,clif->pFriendsListAdd,2); + packet(0x0281,clif->pItemListWindowSelected,2,4,8); + packet(0x035f,clif->pTickSend,2); + packet(0x0360,clif->pReqClickBuyingStore,2); + packet(0x0361,clif->pHomMenu,2,4); + packet(0x0362,clif->pDropItem,2,4); + packet(0x0363,clif->pDull/*,XXX*/); + packet(0x0364,clif->pMoveFromKafra,2,4); + packet(0x0365,clif->pPartyBookingRegisterReq,2,4); + packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pActionRequest,2,6); + packet(0x0436,clif->pDull/*,XXX*/); + packet(0x0437,clif->pWalkToXY,2); + packet(0x0438,clif->pUseSkillToPos,2,4,6,8); + packet(0x07e4,clif->pTakeItem,2); + packet(0x07ec,clif->pMoveToKafra,2,4); + packet(0x0802,clif->pPartyInvite2,2); + packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0835,clif->pSearchStoreInfoNextPage,0); + packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x083c,clif->pUseSkillToId,2,4,6); + packet(0x0967,clif->pStoragePassword,0); + packet(0x096a,clif->pGetCharNameRequest,2); #endif // 2018-02-13aRagexe_zero #if PACKETVER == 20180213 - packet(0x022d,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x02c4,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x035f,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0361,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0802,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0815,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0838,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x085a,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x085d,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0868,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x087b,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x0882,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x0887,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x0888,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x088a,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x088e,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0899,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0917,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x091d,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0922,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0930,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0941,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0942,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0947,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x094d,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x0958,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x095b,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x095c,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0967,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 + packet(0x022d,clif->pChangeDir,2,4); + packet(0x02c4,clif->pMoveToKafra,2,4); + packet(0x035f,clif->pDropItem,2,4); + packet(0x0361,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0802,clif->pTickSend,2); + packet(0x0815,clif->pUseSkillToId,2,4,6); + packet(0x0838,clif->pSearchStoreInfoNextPage,0); + packet(0x085a,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x085d,clif->pHomMenu,2,4); + packet(0x0868,clif->pPartyBookingRegisterReq,2,4); + packet(0x087b,clif->pGetCharNameRequest,2); + packet(0x0882,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x0887,clif->pItemListWindowSelected,2,4,8); + packet(0x0888,clif->pSolveCharName,2); + packet(0x088a,clif->pDull/*,XXX*/); + packet(0x088e,clif->pReqClickBuyingStore,2); + packet(0x0899,clif->pFriendsListAdd,2); + packet(0x0917,clif->pActionRequest,2,6); + packet(0x091d,clif->pWalkToXY,2); + packet(0x0922,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0930,clif->pDull/*,XXX*/); + packet(0x0941,clif->pWantToConnection,2,6,10,14,18); + packet(0x0942,clif->pMoveFromKafra,2,4); + packet(0x0947,clif->pTakeItem,2); + packet(0x094d,clif->pUseSkillToPos,2,4,6,8); + packet(0x0958,clif->pPartyInvite2,2); + packet(0x095b,clif->pReqCloseBuyingStore,0); + packet(0x095c,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0967,clif->pStoragePassword,0); #endif // 2018-02-21aRagexe_zero #if PACKETVER == 20180221 - packet(0x02c4,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0362,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x0364,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x0438,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x0817,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x085b,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x086a,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0878,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0880,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0884,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x088d,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0892,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0895,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x08a1,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x08a3,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x091b,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0921,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0923,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x092d,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0932,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x093b,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x093d,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x093e,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0942,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x0951,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0952,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0958,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0959,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x095d,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 + packet(0x02c4,clif->pTickSend,2); + packet(0x0362,clif->pGetCharNameRequest,2); + packet(0x0364,clif->pChangeDir,2,4); + packet(0x0438,clif->pItemListWindowSelected,2,4,8); + packet(0x0817,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x085b,clif->pUseSkillToPos,2,4,6,8); + packet(0x086a,clif->pDull/*,XXX*/); + packet(0x0878,clif->pReqCloseBuyingStore,0); + packet(0x0880,clif->pWantToConnection,2,6,10,14,18); + packet(0x0884,clif->pSearchStoreInfoNextPage,0); + packet(0x088d,clif->pSolveCharName,2); + packet(0x0892,clif->pDropItem,2,4); + packet(0x0895,clif->pReqClickBuyingStore,2); + packet(0x08a1,clif->pWalkToXY,2); + packet(0x08a3,clif->pUseSkillToId,2,4,6); + packet(0x091b,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0921,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0923,clif->pHomMenu,2,4); + packet(0x092d,clif->pFriendsListAdd,2); + packet(0x0932,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x093b,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x093d,clif->pPartyInvite2,2); + packet(0x093e,clif->pMoveFromKafra,2,4); + packet(0x0942,clif->pStoragePassword,0); + packet(0x0951,clif->pPartyBookingRegisterReq,2,4); + packet(0x0952,clif->pDull/*,XXX*/); + packet(0x0958,clif->pActionRequest,2,6); + packet(0x0959,clif->pMoveToKafra,2,4); + packet(0x095d,clif->pTakeItem,2); #endif // 2018-02-28bRagexe_zero, 2018-03-07aRagexe_zero, 2018-03-09aRagexe_zero #if PACKETVER == 20180228 || \ PACKETVER == 20180307 || \ PACKETVER == 20180309 - packet(0x0202,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x022d,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x023b,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0281,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x035f,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0360,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x0361,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0362,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0363,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x0364,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0365,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0368,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0369,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0436,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0437,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0438,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x07e4,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x07ec,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0802,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0835,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x083c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x0930,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x096a,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 + packet(0x0202,clif->pChangeDir,2,4); + packet(0x022d,clif->pWantToConnection,2,6,10,14,18); + packet(0x023b,clif->pFriendsListAdd,2); + packet(0x0281,clif->pItemListWindowSelected,2,4,8); + packet(0x035f,clif->pTickSend,2); + packet(0x0360,clif->pReqClickBuyingStore,2); + packet(0x0361,clif->pHomMenu,2,4); + packet(0x0362,clif->pDropItem,2,4); + packet(0x0363,clif->pDull/*,XXX*/); + packet(0x0364,clif->pMoveFromKafra,2,4); + packet(0x0365,clif->pPartyBookingRegisterReq,2,4); + packet(0x0366,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0368,clif->pSolveCharName,2); + packet(0x0369,clif->pActionRequest,2,6); + packet(0x0436,clif->pDull/*,XXX*/); + packet(0x0437,clif->pWalkToXY,2); + packet(0x0438,clif->pUseSkillToPos,2,4,6,8); + packet(0x07e4,clif->pTakeItem,2); + packet(0x07ec,clif->pMoveToKafra,2,4); + packet(0x0802,clif->pPartyInvite2,2); + packet(0x0811,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0815,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x0819,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0835,clif->pSearchStoreInfoNextPage,0); + packet(0x0838,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x083c,clif->pUseSkillToId,2,4,6); + packet(0x0930,clif->pStoragePassword,0); + packet(0x096a,clif->pGetCharNameRequest,2); #endif // 2018-03-14nRagexe_zero #if PACKETVER == 20180314 - packet(0x023b,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x0438,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x07ec,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0817,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x083c,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x085d,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x085f,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0866,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0878,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x088d,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 - packet(0x0891,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x0897,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x0899,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x089e,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x08a1,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x0917,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0918,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x091f,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x0920,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0923,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x0930,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0931,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x093f,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x0946,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x094a,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x094e,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x0954,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0956,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x0958,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 + packet(0x023b,clif->pPartyInvite2,2); + packet(0x0438,clif->pSearchStoreInfoNextPage,0); + packet(0x07ec,clif->pWantToConnection,2,6,10,14,18); + packet(0x0817,clif->pReqCloseBuyingStore,0); + packet(0x083c,clif->pChangeDir,2,4); + packet(0x085d,clif->pFriendsListAdd,2); + packet(0x085f,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0866,clif->pHomMenu,2,4); + packet(0x0878,clif->pDull/*,XXX*/); + packet(0x088d,clif->pStoragePassword,0); + packet(0x0891,clif->pMoveFromKafra,2,4); + packet(0x0897,clif->pTakeItem,2); + packet(0x0899,clif->pMoveToKafra,2,4); + packet(0x089e,clif->pItemListWindowSelected,2,4,8); + packet(0x08a1,clif->pDull/*,XXX*/); + packet(0x0917,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0918,clif->pActionRequest,2,6); + packet(0x091f,clif->pUseSkillToPos,2,4,6,8); + packet(0x0920,clif->pTickSend,2); + packet(0x0923,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x0930,clif->pDropItem,2,4); + packet(0x0931,clif->pReqClickBuyingStore,2); + packet(0x093f,clif->pSolveCharName,2); + packet(0x0946,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x094a,clif->pUseSkillToId,2,4,6); + packet(0x094e,clif->pWalkToXY,2); + packet(0x0954,clif->pPartyBookingRegisterReq,2,4); + packet(0x0956,clif->pGetCharNameRequest,2); + packet(0x0958,clif->pReqTradeBuyingStore,2,4,8,12); #endif // 2018-05-11aRagexe_zero, 2018-05-11bRagexe_zero #if PACKETVER == 20180511 - packet(0x0817,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6 - packet(0x085f,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6 - packet(0x0863,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6 - packet(0x086c,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7 - packet(0x0877,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8 - packet(0x087e,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1 - packet(0x0880,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6 - packet(0x0889,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8 - packet(0x0893,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18 - packet(0x0896,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19 - packet(0x0899,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12 - packet(0x08a2,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6 - packet(0x08a4,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2 - packet(0x08a5,clif->pTickSend,2); // CZ_REQUEST_TIME // 6 - packet(0x0919,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5 - packet(0x091a,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1 - packet(0x091d,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1 - packet(0x0920,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4 - packet(0x092c,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10 - packet(0x092d,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26 - packet(0x092e,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1 - packet(0x0941,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2 - packet(0x0942,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5 - packet(0x094a,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 90 - packet(0x0955,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26 - packet(0x0956,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8 - packet(0x095c,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10 - packet(0x0961,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5 - packet(0x0968,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36 -#endif - -// 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 -#if PACKETVER == 20181114 || \ - PACKETVER == 20181120 || \ - PACKETVER == 20181128 || \ - PACKETVER == 20181212 || \ - PACKETVER == 20181219 || \ - PACKETVER == 20181226 || \ - PACKETVER == 20190116 || \ - PACKETVER == 20190117 || \ - PACKETVER == 20190130 || \ - PACKETVER == 20190213 || \ - PACKETVER == 20190220 || \ - PACKETVER == 20190227 || \ - PACKETVER == 20190313 || \ - PACKETVER == 20190327 || \ - PACKETVER == 20190403 || \ - PACKETVER == 20190410 || \ - PACKETVER == 20190424 || \ - PACKETVER == 20190502 || \ - PACKETVER == 20190508 || \ - PACKETVER == 20190515 || \ - PACKETVER == 20190529 || \ - PACKETVER == 20190530 || \ - PACKETVER == 20190605 || \ - PACKETVER == 20190626 || \ - PACKETVER == 20190709 || \ - PACKETVER == 20190710 || \ - PACKETVER == 20190717 || \ - PACKETVER == 20190724 || \ - PACKETVER >= 20190814 - 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 // 90 - 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 - -// 2019-08-28_2aRagexe_zero, 2019-08-28_3aRagexe_zero, 2019-09-11aRagexe_zero, 2019-09-18_2aRagexe_zero, 2019-09-18aRagexe_zero, 2019-09-25_3aRagexe_zero, 2019-09-25_5aRagexe_zero, 2019-10-08_2aRagexe_zero, 2019-10-23_2aRagexe_zero, 2019-11-06aRagexe_zero, 2019-11-13aRagexe_zero, 2019-11-27_2aRagexe_zero, 2019-11-27aRagexe_zero, 2019-12-04aRagexe_zero, 2019-12-11_2aRagexe_zero, 2019-12-24_4aRagexe_zero, 2019-12-24_5aRagexe_zero, 2020-01-15_2aRagexe_zero, 2020-01-15aRagexe_zero, 2020-01-29_2aRagexe_zero, 2020-01-29aRagexe_zero, 2020-02-12aRagexe_zero, 2020-02-26aRagexe_zero, 2020-02-26bRagexe_zero, 2020-03-04aRagexe_zero -#if PACKETVER == 20190828 || \ - PACKETVER == 20190911 || \ - PACKETVER == 20190918 || \ - PACKETVER == 20190925 || \ - PACKETVER == 20191008 || \ - PACKETVER == 20191023 || \ - PACKETVER == 20191106 || \ - PACKETVER == 20191113 || \ - PACKETVER == 20191127 || \ - PACKETVER == 20191204 || \ - PACKETVER == 20191211 || \ - PACKETVER == 20191224 || \ - PACKETVER == 20200115 || \ - PACKETVER == 20200129 || \ - PACKETVER == 20200212 || \ - PACKETVER == 20200226 || \ - PACKETVER == 20200304 - 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 + packet(0x0817,clif->pSolveCharName,2); + packet(0x085f,clif->pDropItem,2,4); + packet(0x0863,clif->pReqClickBuyingStore,2); + packet(0x086c,clif->pActionRequest,2,6); + packet(0x0877,clif->pMoveFromKafra,2,4); + packet(0x087e,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0880,clif->pGetCharNameRequest,2); + packet(0x0889,clif->pMoveToKafra,2,4); + packet(0x0893,clif->pPartyBookingRegisterReq,2,4); + packet(0x0896,clif->pWantToConnection,2,6,10,14,18); + packet(0x0899,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x08a2,clif->pTakeItem,2); + packet(0x08a4,clif->pReqCloseBuyingStore,0); + packet(0x08a5,clif->pTickSend,2); + packet(0x0919,clif->pWalkToXY,2); + packet(0x091a,clif->pItemListWindowSelected,2,4,8); + packet(0x091d,clif->pReqOpenBuyingStore,2,4,8,9,89); + packet(0x0920,clif->pDull/*,XXX*/); + packet(0x092c,clif->pUseSkillToId,2,4,6); + packet(0x092d,clif->pPartyInvite2,2); + packet(0x092e,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0941,clif->pSearchStoreInfoNextPage,0); + packet(0x0942,clif->pChangeDir,2,4); + packet(0x094a,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x0955,clif->pFriendsListAdd,2); + packet(0x0956,clif->pDull/*,XXX*/); + packet(0x095c,clif->pUseSkillToPos,2,4,6,8); + packet(0x0961,clif->pHomMenu,2,4); + packet(0x0968,clif->pStoragePassword,0); #endif diff --git a/src/map/packets_struct.h b/src/map/packets_struct.h index 71f986a90..3129a05d9 100644 --- a/src/map/packets_struct.h +++ b/src/map/packets_struct.h @@ -3779,7 +3779,7 @@ struct PACKET_ZC_SE_CASHSHOP_OPEN { } __attribute__((packed)); DEFINE_PACKET_HEADER(ZC_SE_CASHSHOP_OPEN, 0x0b6e); // for ragexeRE in some version this packet unused [4144] -#elif PACKETVER_MAIN_NUM >= 20101123 || PACKETVER_RE_NUM >= 20120328 || PACKETVER_ZERO_NUM >= defined(PACKETVER_ZERO) +#elif PACKETVER_MAIN_NUM >= 20101123 || PACKETVER_RE_NUM >= 20120328 || defined(PACKETVER_ZERO) struct PACKET_ZC_SE_CASHSHOP_OPEN { int16 packetType; uint32 cashPoints; @@ -3891,6 +3891,42 @@ struct PACKET_ZC_AUTORUN_SKILL { } __attribute__((packed)); DEFINE_PACKET_HEADER(ZC_AUTORUN_SKILL, 0x0147); +#if PACKETVER_MAIN_NUM >= 20170726 || PACKETVER_RE_NUM >= 20170621 || defined(PACKETVER_ZERO) +struct PACKET_ZC_LAPINEUPGRADE_OPEN { + int16 packetType; +#if PACKETVER_MAIN_NUM >= 20181121 || PACKETVER_RE_NUM >= 20180704 || PACKETVER_ZERO_NUM >= 20181114 + uint32 itemId; +#else + uint16 itemId; +#endif +} __attribute__((packed)); +DEFINE_PACKET_HEADER(ZC_LAPINEUPGRADE_OPEN, 0x0ab4); + +struct PACKET_ZC_LAPINEUPGRADE_RESULT { + int16 packetType; + uint16 result; +} __attribute__((packed)); +DEFINE_PACKET_HEADER(ZC_LAPINEUPGRADE_RESULT, 0x0ab7); +#endif // PACKETVER_MAIN_NUM >= 20170726 || PACKETVER_RE_NUM >= 20170621 || defined(PACKETVER_ZERO) + +#if PACKETVER_MAIN_NUM >= 20170111 || PACKETVER_RE_NUM >= 20170111 || defined(PACKETVER_ZERO) +struct PACKET_CZ_LAPINEUPGRADE_CLOSE { + int16 packetType; +} __attribute__((packed)); +DEFINE_PACKET_HEADER(CZ_LAPINEUPGRADE_CLOSE, 0x0ab5); + +struct PACKET_CZ_LAPINEUPGRADE_MAKE_ITEM { + int16 packetType; +#if PACKETVER_MAIN_NUM >= 20181121 || PACKETVER_RE_NUM >= 20180704 || PACKETVER_ZERO_NUM >= 20181114 + uint32 itemId; +#else + uint16 itemId; +#endif + uint16 index; +} __attribute__((packed)); +DEFINE_PACKET_HEADER(CZ_LAPINEUPGRADE_MAKE_ITEM, 0x0ab6); +#endif // PACKETVER_MAIN_NUM >= 20170111 || PACKETVER_RE_NUM >= 20170111 || defined(PACKETVER_ZERO) + #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 diff --git a/src/map/party.c b/src/map/party.c index 7d7f69620..8eeae2215 100644 --- a/src/map/party.c +++ b/src/map/party.c @@ -677,17 +677,18 @@ static int party_member_withdraw(int party_id, int account_id, int char_id) /// Invoked (from char-server) when a party is disbanded. static int party_broken(int party_id) { - struct party_data* p; - int i, j; + int i; - p = party->search(party_id); - if( p == NULL ) + struct party_data *p = party->search(party_id); + if (p == NULL) return 0; - for( j = 0; j < p->instances; j++ ) { - if( p->instance[j] >= 0 ) { - instance->destroy( p->instance[j] ); - instance->list[p->instance[j]].owner_id = 0; + for (int j = 0; j < p->instances; j++) { + const short instance_id = p->instance[j]; + if (instance_id >= 0) { + instance->destroy(instance_id); + if (instance_id < instance->instances) + instance->list[instance_id].owner_id = 0; } } diff --git a/src/map/pc.c b/src/map/pc.c index c604e16dc..4497ef54f 100644 --- a/src/map/pc.c +++ b/src/map/pc.c @@ -1279,6 +1279,7 @@ static bool pc_authok(struct map_session_data *sd, int login_id2, time_t expirat sd->bg_queue.client_has_bg_data = 0; sd->bg_queue.type = 0; + VECTOR_INIT(sd->auto_cast); // Initialize auto-cast vector. VECTOR_INIT(sd->channels); VECTOR_INIT(sd->script_queues); VECTOR_INIT(sd->achievement); // Achievements [Smokexyz/Hercules] @@ -1605,58 +1606,56 @@ static void pc_calc_skilltree_clear(struct map_session_data *sd) *------------------------------------------*/ static int pc_calc_skilltree(struct map_session_data *sd) { - int i,id=0,flag; - int class = 0, classidx = 0; - nullpo_ret(sd); - i = pc->calc_skilltree_normalize_job(sd); - class = pc->mapid2jobid(i, sd->status.sex); + uint32 job = pc->calc_skilltree_normalize_job(sd); + int class = pc->mapid2jobid(job, sd->status.sex); if (class == -1) { //Unable to normalize job?? - ShowError("pc_calc_skilltree: Unable to normalize job %d for character %s (%d:%d)\n", i, sd->status.name, sd->status.account_id, sd->status.char_id); + ShowError("pc_calc_skilltree: Unable to normalize job %u for character %s (%d:%d)\n", job, sd->status.name, sd->status.account_id, sd->status.char_id); return 1; } - classidx = pc->class2idx(class); + int classidx = pc->class2idx(class); pc->calc_skilltree_clear(sd); - for (i = 0; i < MAX_SKILL_DB; i++) { - if( sd->status.skill[i].flag != SKILL_FLAG_PERMANENT && sd->status.skill[i].flag != SKILL_FLAG_PERM_GRANTED && sd->status.skill[i].flag != SKILL_FLAG_PLAGIARIZED ) - { // Restore original level of skills after deleting earned skills. + for (int i = 0; i < MAX_SKILL_DB; i++) { + if (sd->status.skill[i].flag == SKILL_FLAG_TEMPORARY || sd->status.skill[i].flag >= SKILL_FLAG_REPLACED_LV_0) { + // Restore original level of skills after deleting earned skills. sd->status.skill[i].lv = (sd->status.skill[i].flag == SKILL_FLAG_TEMPORARY) ? 0 : sd->status.skill[i].flag - SKILL_FLAG_REPLACED_LV_0; sd->status.skill[i].flag = SKILL_FLAG_PERMANENT; } - if( sd->sc.count && sd->sc.data[SC_SOULLINK] && sd->sc.data[SC_SOULLINK]->val2 == SL_BARDDANCER && skill->dbs->db[i].nameid >= DC_HUMMING && skill->dbs->db[i].nameid <= DC_SERVICEFORYOU ) - { //Enable Bard/Dancer spirit linked skills. - if (sd->status.sex) { - // Link dancer skills to bard. - if (i < 8) { - Assert_report(i >= 8); - continue; - } - if (sd->status.skill[i-8].lv < 10) - continue; - sd->status.skill[i].id = skill->dbs->db[i].nameid; - sd->status.skill[i].lv = sd->status.skill[i-8].lv; // Set the level to the same as the linking skill - sd->status.skill[i].flag = SKILL_FLAG_TEMPORARY; // Tag it as a non-savable, non-uppable, bonus skill + if (sd->sc.count && sd->sc.data[SC_SOULLINK] && sd->sc.data[SC_SOULLINK]->val2 == SL_BARDDANCER + && ((skill->dbs->db[i].nameid >= BA_WHISTLE && skill->dbs->db[i].nameid <= BA_APPLEIDUN) + || (skill->dbs->db[i].nameid >= DC_HUMMING && skill->dbs->db[i].nameid <= DC_SERVICEFORYOU)) + ) { + //Enable Bard/Dancer spirit linked skills. + int linked_nameid = skill->get_linked_song_dance_id(skill->dbs->db[i].nameid); + if (linked_nameid == 0) { + Assert_report("Linked bard/dance skill not found"); + continue; + } + int copy_from_index; + int copy_to_index; + if (sd->status.sex == SEX_MALE && skill->dbs->db[i].nameid >= BA_WHISTLE && skill->dbs->db[i].nameid <= BA_APPLEIDUN) { + copy_from_index = i; + copy_to_index = skill->get_index(linked_nameid); } else { - // Link bard skills to dancer. - if (i < 8) { - Assert_report(i >= 8); - continue; - } - if (sd->status.skill[i].lv < 10) - continue; - sd->status.skill[i-8].id = skill->dbs->db[i-8].nameid; - sd->status.skill[i-8].lv = sd->status.skill[i].lv; // Set the level to the same as the linking skill - sd->status.skill[i-8].flag = SKILL_FLAG_TEMPORARY; // Tag it as a non-savable, non-uppable, bonus skill + copy_from_index = skill->get_index(linked_nameid); + copy_to_index = i; } + if (copy_from_index < copy_to_index) + continue; // Copy only after the source skill has been filled into the tree + if (sd->status.skill[copy_from_index].lv < 10) + continue; // Copy only if the linked skill has been mastered + sd->status.skill[copy_to_index].id = skill->dbs->db[copy_to_index].nameid; + sd->status.skill[copy_to_index].lv = sd->status.skill[copy_from_index].lv; // Set the level to the same as the linking skill + sd->status.skill[copy_to_index].flag = SKILL_FLAG_TEMPORARY; // Tag it as a non-savable, non-uppable, bonus skill } } if( pc_has_permission(sd, PC_PERM_ALL_SKILL) ) { - for (i = 0; i < MAX_SKILL_DB; i++) { + for (int i = 0; i < MAX_SKILL_DB; i++) { switch(skill->dbs->db[i].nameid) { /** * Dummy skills must be added here otherwise they'll be displayed in the, @@ -1688,9 +1687,11 @@ static int pc_calc_skilltree(struct map_session_data *sd) return 0; } + bool changed = false; do { - flag = 0; - for (i = 0; i < MAX_SKILL_TREE && (id = pc->skill_tree[classidx][i].id) > 0; i++) { + changed = false; + int id; + for (int i = 0; i < MAX_SKILL_TREE && (id = pc->skill_tree[classidx][i].id) > 0; i++) { int idx = pc->skill_tree[classidx][i].idx; bool satisfied = true; if (sd->status.skill[idx].id > 0) @@ -1740,10 +1741,10 @@ static int pc_calc_skilltree(struct map_session_data *sd) sd->status.skill[idx].lv = 1; // need to manually specify a skill level sd->status.skill[idx].flag = SKILL_FLAG_TEMPORARY; //So it is not saved, and tagged as a "bonus" skill. } - flag = 1; // skill list has changed, perform another pass + changed = true; // skill list has changed, perform another pass } } - } while(flag); + } while (changed); pc->calc_skilltree_bonus(sd, classidx); @@ -4206,7 +4207,7 @@ static int pc_skill(struct map_session_data *sd, int id, int level, int flag) if( sd->status.skill[index].id == id ) { if( sd->status.skill[index].lv >= level ) return 0; - if( sd->status.skill[index].flag == SKILL_FLAG_PERMANENT ) //Non-granted skill, store it's level. + if (sd->status.skill[index].flag == SKILL_FLAG_PERMANENT) // Non-granted skill, store its level. sd->status.skill[index].flag = SKILL_FLAG_REPLACED_LV_0 + sd->status.skill[index].lv; } else { sd->status.skill[index].id = id; @@ -5295,10 +5296,6 @@ static int pc_useitem(struct map_session_data *sd, int n) if(sd->catch_target_class != -1) //Abort pet catching. sd->catch_target_class = -1; - // Removes abracadabra/randomize spell flag for delayed consume items or item doesn't get consumed - if (sd->inventory_data[n]->flag.delay_consume) - sd->state.abra_flag = 0; - amount = sd->status.inventory[n].amount; //Check if the item is to be consumed immediately [Skotlex] if (sd->inventory_data[n]->flag.delay_consume || sd->inventory_data[n]->flag.keepafteruse) @@ -5337,23 +5334,79 @@ static int pc_useitem(struct map_session_data *sd, int n) } /** - * Sets state flags and helper variables, used by itemskill() script command, to 0. + * Unsets a character's currently processed auto-cast skill data. * - * @param sd The character's session data. - * @return 0 if parameter sd is NULL, otherwise 1. - */ -static int pc_itemskill_clear(struct map_session_data *sd) + * @param sd The character. + * + **/ +static void pc_autocast_clear_current(struct map_session_data *sd) { - nullpo_ret(sd); + nullpo_retv(sd); - sd->itemskill_id = 0; - sd->itemskill_lv = 0; - sd->state.itemskill_conditions_checked = 0; - sd->state.itemskill_check_conditions = 0; - sd->state.itemskill_no_casttime = 0; - sd->state.itemskill_castonself = 0; + sd->auto_cast_current.type = AUTOCAST_NONE; + sd->auto_cast_current.skill_id = 0; + sd->auto_cast_current.skill_lv = 0; + sd->auto_cast_current.itemskill_conditions_checked = false; + sd->auto_cast_current.itemskill_check_conditions = true; + sd->auto_cast_current.itemskill_instant_cast = false; + sd->auto_cast_current.itemskill_cast_on_self = false; +} - return 1; +/** + * Unsets a character's auto-cast related data. + * + * @param sd The character. + * + **/ +static void pc_autocast_clear(struct map_session_data *sd) +{ + nullpo_retv(sd); + + pc->autocast_clear_current(sd); + VECTOR_TRUNCATE(sd->auto_cast); // Truncate auto-cast vector. +} + +/** + * Sets a character's currently processed auto-cast skill data by comparing the skill ID. + * + * @param sd The character. + * @param skill_id The skill ID to compare. + * + **/ +static void pc_autocast_set_current(struct map_session_data *sd, int skill_id) +{ + nullpo_retv(sd); + + pc->autocast_clear_current(sd); + + for (int i = 0; i < VECTOR_LENGTH(sd->auto_cast); i++) { + if (VECTOR_INDEX(sd->auto_cast, i).skill_id == skill_id) { + sd->auto_cast_current = VECTOR_INDEX(sd->auto_cast, i); + break; + } + } +} + +/** + * Removes a specific entry from a character's auto-cast vector. + * + * @param sd The character. + * @param type The entry's auto-cast type. + * @param skill_id The entry's skill ID. + * @param skill_lv The entry's skill level. + * + **/ +static void pc_autocast_remove(struct map_session_data *sd, enum autocast_type type, int skill_id, int skill_lv) +{ + nullpo_retv(sd); + + for (int i = 0; i < VECTOR_LENGTH(sd->auto_cast); i++) { + if (VECTOR_INDEX(sd->auto_cast, i).type == type && VECTOR_INDEX(sd->auto_cast, i).skill_id == skill_id + && VECTOR_INDEX(sd->auto_cast, i).skill_lv == skill_lv) { + VECTOR_ERASE(sd->auto_cast, i); + break; + } + } } /*========================================== @@ -5703,7 +5756,7 @@ static int pc_steal_coin(struct map_session_data *sd, struct block_list *target, return 0; } - /** +/** * Sets a character's position. * * @param sd The related character. @@ -5720,233 +5773,278 @@ static int pc_steal_coin(struct map_session_data *sd, struct block_list *target, **/ static int pc_setpos(struct map_session_data *sd, unsigned short map_index, int x, int y, enum clr_type clrtype) { - int16 m; - nullpo_retr(3, sd); - if( !map_index || !mapindex_id2name(map_index) || ( m = map->mapindex2mapid(map_index) ) == -1 ) { - ShowDebug("pc_setpos: Passed mapindex(%d) is invalid!\n", map_index); + int map_id = map->mapindex2mapid(map_index); + + if (map_index == 0 || !mapindex_id2name(map_index) || map_id == INDEX_NOT_FOUND) { + ShowDebug("pc_setpos: Passed mapindex %d is invalid!\n", map_index); return 1; } - if( pc_isdead(sd) ) { //Revive dead people before warping them + if (pc_isdead(sd)) { // Revive dead character before warping. pc->setstand(sd); - pc->setrestartvalue(sd,1); + pc->setrestartvalue(sd, 1); } - if( map->list[m].flag.src4instance ) { - struct party_data *p; + if (map->list[map_id].flag.src4instance != 0) { bool stop = false; - int i = 0, j = 0; - if( sd->instances ) { - for( i = 0; i < sd->instances; i++ ) { - if( sd->instance[i] >= 0 ) { - ARR_FIND(0, instance->list[sd->instance[i]].num_map, j, map->list[instance->list[sd->instance[i]].map[j]].instance_src_map == m && !map->list[instance->list[sd->instance[i]].map[j]].custom_name); - if( j != instance->list[sd->instance[i]].num_map ) + if (sd->instances != 0) { + int i, j = 0; + + for (i = 0; i < sd->instances; i++) { + if (sd->instance[i] >= 0) { + ARR_FIND(0, instance->list[sd->instance[i]].num_map, j, + map->list[instance->list[sd->instance[i]].map[j]].instance_src_map == map_id + && !map->list[instance->list[sd->instance[i]].map[j]].custom_name); + + if (j != instance->list[sd->instance[i]].num_map) break; } } - if( i != sd->instances ) { - m = instance->list[sd->instance[i]].map[j]; - map_index = map_id2index(m); + + if (i != sd->instances) { + map_id = instance->list[sd->instance[i]].map[j]; + map_index = map_id2index(map_id); stop = true; } } - if ( !stop && sd->status.party_id && (p = party->search(sd->status.party_id)) != NULL && p->instances ) { - for( i = 0; i < p->instances; i++ ) { - if( p->instance[i] >= 0 ) { - ARR_FIND(0, instance->list[p->instance[i]].num_map, j, map->list[instance->list[p->instance[i]].map[j]].instance_src_map == m && !map->list[instance->list[p->instance[i]].map[j]].custom_name); - if( j != instance->list[p->instance[i]].num_map ) + + struct party_data *p = party->search(sd->status.party_id); + + if (!stop && sd->status.party_id != 0 && p != NULL && p->instances != 0) { + int i, j = 0; + + for (i = 0; i < p->instances; i++) { + if (p->instance[i] >= 0) { + ARR_FIND(0, instance->list[p->instance[i]].num_map, j, + map->list[instance->list[p->instance[i]].map[j]].instance_src_map == map_id + && !map->list[instance->list[p->instance[i]].map[j]].custom_name); + + if (j != instance->list[p->instance[i]].num_map) break; } } - if( i != p->instances ) { - m = instance->list[p->instance[i]].map[j]; - map_index = map_id2index(m); + + if (i != p->instances) { + map_id = instance->list[p->instance[i]].map[j]; + map_index = map_id2index(map_id); stop = true; } } - if ( !stop && sd->status.guild_id && sd->guild && sd->guild->instances ) { - for( i = 0; i < sd->guild->instances; i++ ) { - if( sd->guild->instance[i] >= 0 ) { - ARR_FIND(0, instance->list[sd->guild->instance[i]].num_map, j, map->list[instance->list[sd->guild->instance[i]].map[j]].instance_src_map == m && !map->list[instance->list[sd->guild->instance[i]].map[j]].custom_name); - if( j != instance->list[sd->guild->instance[i]].num_map ) + + if (!stop && sd->status.guild_id != 0 && sd->guild != NULL && sd->guild->instances != 0) { + int i, j = 0; + + for (i = 0; i < sd->guild->instances; i++) { + if (sd->guild->instance[i] >= 0) { + ARR_FIND(0, instance->list[sd->guild->instance[i]].num_map, j, + map->list[instance->list[sd->guild->instance[i]].map[j]].instance_src_map == map_id + && !map->list[instance->list[sd->guild->instance[i]].map[j]].custom_name); + + if (j != instance->list[sd->guild->instance[i]].num_map) break; } } - if( i != sd->guild->instances ) { - m = instance->list[sd->guild->instance[i]].map[j]; - map_index = map_id2index(m); - //stop = true; Uncomment if adding new checks + + if (i != sd->guild->instances) { + map_id = instance->list[sd->guild->instance[i]].map[j]; + map_index = map_id2index(map_id); + //stop = true; Uncomment when adding new checks. } } - /* we hit a instance, if empty we populate the spawn data */ - if( map->list[m].instance_id >= 0 && instance->list[map->list[m].instance_id].respawn.map == 0 && - instance->list[map->list[m].instance_id].respawn.x == 0 && - instance->list[map->list[m].instance_id].respawn.y == 0) { - instance->list[map->list[m].instance_id].respawn.map = map_index; - instance->list[map->list[m].instance_id].respawn.x = x; - instance->list[map->list[m].instance_id].respawn.y = y; + // We hit an instance. If empty we populate the spawn data. + if (map->list[map_id].instance_id >= 0 && instance->list[map->list[map_id].instance_id].respawn.map == 0 + && instance->list[map->list[map_id].instance_id].respawn.x == 0 + && instance->list[map->list[map_id].instance_id].respawn.y == 0) { + instance->list[map->list[map_id].instance_id].respawn.map = map_index; + instance->list[map->list[map_id].instance_id].respawn.x = x; + instance->list[map->list[map_id].instance_id].respawn.y = y; } } - sd->state.changemap = (sd->mapindex != map_index); + sd->state.changemap = (sd->mapindex != map_index) ? 1 : 0; sd->state.warping = 1; sd->state.workinprogress = 0; - if( sd->state.changemap ) { // Misc map-changing settings - int i; + + if (sd->state.changemap != 0) { // Miscellaneous map-changing settings. sd->state.pmap = sd->bl.m; - for (i = 0; i < VECTOR_LENGTH(sd->script_queues); i++) { + for (int i = 0; i < VECTOR_LENGTH(sd->script_queues); i++) { struct script_queue *queue = script->queue(VECTOR_INDEX(sd->script_queues, i)); - if (queue && queue->event_mapchange[0] != '\0') { - pc->setregstr(sd, script->add_variable("@Queue_Destination_Map$"), map->list[m].name); + + if (queue != NULL && queue->event_mapchange[0] != '\0') { + pc->setregstr(sd, script->add_variable("@Queue_Destination_Map$"), map->list[map_id].name); npc->event(sd, queue->event_mapchange, 0); } } - if( map->list[m].cell == (struct mapcell *)0xdeadbeaf ) - map->cellfromcache(&map->list[m]); - if (sd->sc.count) { // Cancel some map related stuff. - if (sd->sc.data[SC_JAILED]) - return 4; //You may not get out! + if (map->list[map_id].cell == (struct mapcell *)0xdeadbeaf) + map->cellfromcache(&map->list[map_id]); + + if (sd->sc.count != 0) { // Cancel some map related stuff. + if (sd->sc.data[SC_JAILED] != NULL) + return 4; // You may not get out! + status_change_end(&sd->bl, SC_CASH_BOSS_ALARM, INVALID_TIMER); status_change_end(&sd->bl, SC_WARM, INVALID_TIMER); status_change_end(&sd->bl, SC_SUN_COMFORT, INVALID_TIMER); status_change_end(&sd->bl, SC_MOON_COMFORT, INVALID_TIMER); status_change_end(&sd->bl, SC_STAR_COMFORT, INVALID_TIMER); status_change_end(&sd->bl, SC_MIRACLE, INVALID_TIMER); - status_change_end(&sd->bl, SC_NEUTRALBARRIER_MASTER, INVALID_TIMER);//Will later check if this is needed. [Rytech] + status_change_end(&sd->bl, SC_NEUTRALBARRIER_MASTER, INVALID_TIMER); // Will later check if this is needed. [Rytech] status_change_end(&sd->bl, SC_NEUTRALBARRIER, INVALID_TIMER); status_change_end(&sd->bl, SC_STEALTHFIELD_MASTER, INVALID_TIMER); status_change_end(&sd->bl, SC_STEALTHFIELD, INVALID_TIMER); - if (sd->sc.data[SC_KNOWLEDGE]) { + + if (sd->sc.data[SC_KNOWLEDGE] != NULL) { struct status_change_entry *sce = sd->sc.data[SC_KNOWLEDGE]; + if (sce->timer != INVALID_TIMER) timer->delete(sce->timer, status->change_timer); - sce->timer = timer->add(timer->gettick() + skill->get_time(SG_KNOWLEDGE, sce->val1), status->change_timer, sd->bl.id, SC_KNOWLEDGE); + + sce->timer = timer->add(timer->gettick() + skill->get_time(SG_KNOWLEDGE, sce->val1), + status->change_timer, sd->bl.id, SC_KNOWLEDGE); } + status_change_end(&sd->bl, SC_PROPERTYWALK, INVALID_TIMER); status_change_end(&sd->bl, SC_CLOAKING, INVALID_TIMER); status_change_end(&sd->bl, SC_CLOAKINGEXCEED, INVALID_TIMER); } - for( i = 0; i < EQI_MAX; i++ ) { - if( sd->equip_index[ i ] >= 0 ) - if( !pc->isequip( sd , sd->equip_index[ i ] ) ) - pc->unequipitem(sd, sd->equip_index[i], PCUNEQUIPITEM_FORCE); + + for (int i = 0; i < EQI_MAX; i++) { + if (sd->equip_index[i] >= 0 && pc->isequip(sd , sd->equip_index[i]) == 0) + pc->unequipitem(sd, sd->equip_index[i], PCUNEQUIPITEM_FORCE); } - if (battle_config.clear_unit_onwarp&BL_PC) + + if ((battle_config.clear_unit_onwarp & BL_PC) != 0) skill->clear_unitgroup(&sd->bl); - party->send_dot_remove(sd); //minimap dot fix [Kevin] + + party->send_dot_remove(sd); // Minimap dot fix. [Kevin] guild->send_dot_remove(sd); bg->send_dot_remove(sd); - if (sd->regen.state.gc) + + if (sd->regen.state.gc != 0) sd->regen.state.gc = 0; - // make sure vending is allowed here - if (sd->state.vending && map->list[m].flag.novending) { - clif->message (sd->fd, msg_sd(sd,276)); // "You can't open a shop on this map" + + // Make sure that vending is allowed here. + if (sd->state.vending != 0 && map->list[map_id].flag.novending != 0) { + clif->message(sd->fd, msg_sd(sd, 276)); // "You can't open a shop on this map" vending->close(sd); } - if (sd->mapindex != 0) { - // Only if the character is already on a map - if (map->list[sd->bl.m].channel) { - channel->leave(map->list[sd->bl.m].channel,sd); - } - } + if (sd->mapindex != 0 && map->list[sd->bl.m].channel != NULL) // Only if the character is already on a map. + channel->leave(map->list[sd->bl.m].channel, sd); } - if( m < 0 ) { + if (map_id < 0) { uint32 ip; uint16 port; - //if can't find any map-servers, just abort setting position. - if(!sd->mapindex || map->mapname2ipport(map_index,&ip,&port)) + + // If can't find any map-servers, just abort setting position. + if (sd->mapindex == 0 || map->mapname2ipport(map_index, &ip, &port) != 0) return 2; - if (sd->npc_id) + if (sd->npc_id != 0) npc->event_dequeue(sd); + npc->script_event(sd, NPCE_LOGOUT); - //remove from map, THEN change x/y coordinates - unit->remove_map_pc(sd,clrtype); + + // Remove from map, THEN change x/y coordinates. + unit->remove_map_pc(sd, clrtype); + if (battle_config.player_warp_keep_direction == 0) - sd->ud.dir = 0; // makes character face north + sd->ud.dir = 0; /// Make character facing north. + sd->mapindex = map_index; - sd->bl.x=x; - sd->bl.y=y; + sd->bl.x= x; + sd->bl.y= y; pc->clean_skilltree(sd); - chrif->save(sd,2); - chrif->changemapserver(sd, ip, (short)port); + chrif->save(sd, 2); + chrif->changemapserver(sd, ip, port); - //Free session data from this map server [Kevin] + // Free session data from this map server. [Kevin] unit->free_pc(sd); return 0; } - if( x < 0 || x >= map->list[m].xs || y < 0 || y >= map->list[m].ys ) { - ShowError("pc_setpos: attempt to place player %s (%d:%d) on invalid coordinates (%s-%d,%d)\n", sd->status.name, sd->status.account_id, sd->status.char_id, mapindex_id2name(map_index),x,y); - x = y = 0; // make it random + if (x < 0 || x >= map->list[map_id].xs || y < 0 || y >= map->list[map_id].ys) { // Invalid coordinates. Randomize them. + ShowError("pc_setpos: Attempt to place player %s (%d:%d) on invalid coordinates (%s-%d,%d)!\n", + sd->status.name, sd->status.account_id, sd->status.char_id, + mapindex_id2name(map_index), x, y); + x = 0; + y = 0; } - if( x == 0 && y == 0 ) {// pick a random walkable cell + if (x == 0 && y == 0) { // Pick a random walkable cell. do { - x=rnd()%(map->list[m].xs-2)+1; - y=rnd()%(map->list[m].ys-2)+1; - } while(map->getcell(m, &sd->bl, x, y, CELL_CHKNOPASS)); + x = rnd() % (map->list[map_id].xs - 2) + 1; + y = rnd() % (map->list[map_id].ys - 2) + 1; + } while(map->getcell(map_id, &sd->bl, x, y, CELL_CHKNOPASS) != 0); } - if (sd->state.vending && map->getcell(m, &sd->bl, x, y, CELL_CHKNOVENDING)) { - clif->message (sd->fd, msg_sd(sd,204)); // "You can't open a shop on this cell." + if (sd->state.vending != 0 && map->getcell(map_id, &sd->bl, x, y, CELL_CHKNOVENDING) != 0) { + clif->message(sd->fd, msg_sd(sd, 204)); // "You can't open a shop on this cell." vending->close(sd); } if (battle_config.player_warp_keep_direction == 0) - sd->ud.dir = 0; // makes character face north + sd->ud.dir = 0; // Make character facing north. - if(sd->bl.prev != NULL){ - unit->remove_map_pc(sd,clrtype); - clif->changemap(sd,m,x,y); // [MouseJstr] - } else if(sd->state.active) - //Tag player for rewarping after map-loading is done. [Skotlex] - sd->state.rewarp = 1; + if (sd->bl.prev != NULL) { + unit->remove_map_pc(sd, clrtype); + clif->changemap(sd, map_id, x, y); // [MouseJstr] + } else if (sd->state.active != 0) { + sd->state.rewarp = 1; // Tag character for re-warping after map-loading is done. [Skotlex] + } sd->mapindex = map_index; - sd->bl.m = m; - sd->bl.x = sd->ud.to_x = x; - sd->bl.y = sd->ud.to_y = y; + sd->bl.m = map_id; + sd->bl.x = x; + sd->bl.y = y; + sd->ud.to_x = x; + sd->ud.to_y = y; - if( sd->status.guild_id > 0 && map->list[m].flag.gvg_castle ) { // Increased guild castle regen [Valaris] + if (sd->status.guild_id > 0 && map->list[map_id].flag.gvg_castle != 0) { // Double regeneration in guild castle. [Valaris] struct guild_castle *gc = guild->mapindex2gc(sd->mapindex); - if(gc && gc->guild_id == sd->status.guild_id) + + if (gc != NULL && gc->guild_id == sd->status.guild_id) sd->regen.state.gc = 1; } - if( sd->status.pet_id > 0 && sd->pd && sd->pd->pet.intimate > 0 ) { - sd->pd->bl.m = m; - sd->pd->bl.x = sd->pd->ud.to_x = x; - sd->pd->bl.y = sd->pd->ud.to_y = y; + if (sd->status.pet_id > 0 && sd->pd != NULL && sd->pd->pet.intimate > PET_INTIMACY_NONE) { + sd->pd->bl.m = map_id; + sd->pd->bl.x = x; + sd->pd->bl.y = y; + sd->pd->ud.to_x = x; + sd->pd->ud.to_y = y; sd->pd->ud.dir = sd->ud.dir; } - if( homun_alive(sd->hd) ) { - sd->hd->bl.m = m; - sd->hd->bl.x = sd->hd->ud.to_x = x; - sd->hd->bl.y = sd->hd->ud.to_y = y; + if (homun_alive(sd->hd)) { + sd->hd->bl.m = map_id; + sd->hd->bl.x = x; + sd->hd->bl.y = y; + sd->hd->ud.to_x = x; + sd->hd->ud.to_y = y; sd->hd->ud.dir = sd->ud.dir; } - if( sd->md ) { - sd->md->bl.m = m; - sd->md->bl.x = sd->md->ud.to_x = x; - sd->md->bl.y = sd->md->ud.to_y = y; + if (sd->md != NULL) { + sd->md->bl.m = map_id; + sd->md->bl.x = x; + sd->md->bl.y = y; + sd->md->ud.to_x = x; + sd->md->ud.to_y = y; sd->md->ud.dir = sd->ud.dir; } - /* given autotrades have no clients you have to trigger this manually otherwise they get stuck in memory limbo bugreport:7495 */ - if( sd->state.autotrade ) - clif->pLoadEndAck(0,sd); + // Given autotrades have no clients. You have to trigger this manually, otherwise they get stuck in memory limbo. (bugreport:7495) + if (sd->state.autotrade != 0) + clif->pLoadEndAck(0, sd); return 0; } @@ -7526,7 +7624,7 @@ static int pc_allskillup(struct map_session_data *sd) nullpo_ret(sd); for (i = 0; i < MAX_SKILL_DB; i++) { - if (sd->status.skill[i].flag != SKILL_FLAG_PERMANENT && sd->status.skill[i].flag != SKILL_FLAG_PERM_GRANTED && sd->status.skill[i].flag != SKILL_FLAG_PLAGIARIZED) { + if (sd->status.skill[i].flag == SKILL_FLAG_TEMPORARY || sd->status.skill[i].flag >= SKILL_FLAG_REPLACED_LV_0) { sd->status.skill[i].lv = (sd->status.skill[i].flag == SKILL_FLAG_TEMPORARY) ? 0 : sd->status.skill[i].flag - SKILL_FLAG_REPLACED_LV_0; sd->status.skill[i].flag = SKILL_FLAG_PERMANENT; if (sd->status.skill[i].lv == 0) @@ -8026,163 +8124,177 @@ static void pc_damage(struct map_session_data *sd, struct block_list *src, unsig } } -/*========================================== - * Invoked when a player has negative current hp - *------------------------------------------*/ +/** + * Invoked when a character died. + * + * @param sd The died character. + * @param src The unit which caused the death. + * @retval 0 Death canceled. + * @retval 1 Standard death. + * @retval 9 Died in PVP/GVG/BG. + * + **/ static int pc_dead(struct map_session_data *sd, struct block_list *src) { - int i=0,j=0; - int64 tick = timer->gettick(); + nullpo_ret(sd); - nullpo_retr(0, sd); + for (int i = 0; i < MAX_PC_DEVOTION; i++) { + if (sd->devotion[i] != 0) { + struct map_session_data *devsd = map->id2sd(sd->devotion[i]); - for (j = 0; j < MAX_PC_DEVOTION; j++) { - if (sd->devotion[j]) { - struct map_session_data *devsd = map->id2sd(sd->devotion[j]); - if (devsd) + if (devsd != NULL) status_change_end(&devsd->bl, SC_DEVOTION, INVALID_TIMER); - sd->devotion[j] = 0; + + sd->devotion[i] = 0; } } - if(sd->status.pet_id > 0 && sd->pd) { + if (sd->status.pet_id > 0 && sd->pd != NULL) { struct pet_data *pd = sd->pd; - if( !map->list[sd->bl.m].flag.noexppenalty ) { + + if (map->list[sd->bl.m].flag.noexppenalty == 0) { pet->set_intimate(pd, pd->pet.intimate - pd->petDB->die); - if( pd->pet.intimate < 0 ) - pd->pet.intimate = 0; - clif->send_petdata(sd,sd->pd,1,pd->pet.intimate); + clif->send_petdata(sd, sd->pd, 1, pd->pet.intimate); } - if( sd->pd->target_id ) // Unlock all targets... + + if (sd->pd->target_id != 0) // Unlock all targets. pet->unlocktarget(sd->pd); } - if (sd->status.hom_id > 0){ - if(battle_config.homunculus_auto_vapor && sd->hd) - homun->vaporize(sd, HOM_ST_REST, true); - } + if (sd->status.hom_id > 0 && sd->hd != NULL && battle_config.homunculus_auto_vapor != 0) + homun->vaporize(sd, HOM_ST_REST, true); - if( sd->md ) - mercenary->delete(sd->md, 3); // Your mercenary soldier has ran away. + if (sd->md != NULL) + mercenary->delete(sd->md, 3); // Your mercenary soldier ran away. - if( sd->ed ) + if (sd->ed != NULL) elemental->delete(sd->ed, 0); - // Leave duel if you die [LuzZza] - if(battle_config.duel_autoleave_when_die) { - if(sd->duel_group > 0) + if (battle_config.duel_autoleave_when_die != 0) { // Leave duel if character died. [LuzZza] + if (sd->duel_group > 0) duel->leave(sd->duel_group, sd); - if(sd->duel_invite > 0) + if (sd->duel_invite > 0) duel->reject(sd->duel_invite, sd); } - if (sd->npc_id && sd->st && sd->st->state != RUN) + if (sd->npc_id != 0 && sd->st != NULL && sd->st->state != RUN) npc->event_dequeue(sd); - pc_setglobalreg(sd,script->add_variable("PC_DIE_COUNTER"),sd->die_counter+1); - pc->setparam(sd, SP_KILLERRID, src?src->id:0); + pc_setglobalreg(sd, script->add_variable("PC_DIE_COUNTER"), sd->die_counter + 1); + pc->setparam(sd, SP_KILLERRID, (src != NULL) ? src->id : 0); - if( sd->bg_id ) {/* TODO: purge when bgqueue is deemed ok */ - struct battleground_data *bgd; - if( (bgd = bg->team_search(sd->bg_id)) != NULL && bgd->die_event[0] ) + if (sd->bg_id != 0) { //TODO: Purge when bgqueue is deemed ok. + struct battleground_data *bgd = bg->team_search(sd->bg_id); + + if (bgd != NULL && bgd->die_event[0] != '\0') npc->event(sd, bgd->die_event, 0); } - for (i = 0; i < VECTOR_LENGTH(sd->script_queues); i++ ) { + for (int i = 0; i < VECTOR_LENGTH(sd->script_queues); i++) { struct script_queue *queue = script->queue(VECTOR_INDEX(sd->script_queues, i)); - if (queue && queue->event_death[0] != '\0') + + if (queue != NULL && queue->event_death[0] != '\0') npc->event(sd, queue->event_death, 0); } - npc->script_event(sd,NPCE_DIE); + npc->script_event(sd, NPCE_DIE); - // Clear anything NPC-related when you die and was interacting with one. - if ( (sd->npc_id || sd->npc_shopid) && sd->state.dialog) { - if (sd->state.using_fake_npc) { + // Clear anything NPC-related if character died while interacting with one. + if ((sd->npc_id != 0 || sd->npc_shopid != 0) && sd->state.dialog != 0) { + if (sd->state.using_fake_npc != 0) { clif->clearunit_single(sd->npc_id, CLR_OUTSIGHT, sd->fd); sd->state.using_fake_npc = 0; } - if (sd->state.menu_or_input) + + if (sd->state.menu_or_input != 0) sd->state.menu_or_input = 0; - if (sd->npc_menu) + + if (sd->npc_menu != 0) sd->npc_menu = 0; sd->npc_id = 0; sd->npc_shopid = 0; - if (sd->st && sd->st->state != END) + + if (sd->st != NULL && sd->st->state != END) sd->st->state = END; } - /* e.g. not killed through pc->damage */ - if( pc_issit(sd) ) { + // E.g. not killed through pc->damage(). + if (pc_issit(sd)) clif->sc_end(&sd->bl, sd->bl.id, SELF, status->get_sc_icon(SC_SIT)); - } pc_setdead(sd); - clif->party_dead_notification(sd); - //Reset menu skills/item skills - if (sd->skillitem) - sd->skillitem = sd->skillitemlv = 0; - if (sd->menuskill_id) - sd->menuskill_id = sd->menuskill_val = 0; - //Reset ticks. - sd->hp_loss.tick = sd->sp_loss.tick = sd->hp_regen.tick = sd->sp_regen.tick = 0; + pc->autocast_clear(sd); // Unset auto-cast data. + + if (sd->menuskill_id != 0) { // Reset menu skills. + sd->menuskill_id = 0; + sd->menuskill_val = 0; + } - if ( sd->spiritball ) + // Reset ticks. + sd->hp_loss.tick = 0; + sd->sp_loss.tick = 0; + sd->hp_regen.tick = 0; + sd->sp_regen.tick = 0; + + if (sd->spiritball != 0) pc->delspiritball(sd, sd->spiritball, 0); + if (sd->charm_type != CHARM_TYPE_NONE && sd->charm_count > 0) pc->del_charm(sd, sd->charm_count, sd->charm_type); + int64 tick = timer->gettick(); + if (src != NULL) { switch (src->type) { - case BL_MOB: - { - struct mob_data *md = BL_UCAST(BL_MOB, src); - if (md->target_id==sd->bl.id) - mob->unlocktarget(md,tick); - if (battle_config.mobs_level_up && md->status.hp - && md->level < pc->maxbaselv(sd) - && !md->guardian_data && md->special_state.ai == AI_NONE// Guardians/summons should not level. [Skotlex] - ) { - // monster level up [Valaris] - clif->misceffect(&md->bl,0); - md->level++; - status_calc_mob(md, SCO_NONE); - status_percent_heal(src,10,0); - - if( battle_config.show_mob_info&4 ) - {// update name with new level - clif->blname_ack(0, &md->bl); - } - } - src = battle->get_master(src); // Maybe Player Summon + case BL_MOB: { + struct mob_data *md = BL_UCAST(BL_MOB, src); + + if (md->target_id == sd->bl.id) + mob->unlocktarget(md, tick); + + if (battle_config.mobs_level_up != 0 && md->status.hp != 0 && md->level < pc->maxbaselv(sd) + && md->guardian_data == NULL && md->special_state.ai == AI_NONE) { // Guardians/summons should not level up. [Skotlex] + /// Monster level up. [Valaris] + clif->misceffect(&md->bl, 0); + md->level++; + status_calc_mob(md, SCO_NONE); + status_percent_heal(src, 10, 0); + + if ((battle_config.show_mob_info & 4) != 0) + clif->blname_ack(0, &md->bl); // Update name with new level. } + + src = battle->get_master(src); // Maybe character summon. break; - case BL_PET: //Pass on to master... - src = &BL_UCAST(BL_PET, src)->msd->bl; + } + case BL_PET: + src = &BL_UCAST(BL_PET, src)->msd->bl; // Pass on to master. break; - case BL_HOM: - src = &BL_UCAST(BL_HOM, src)->master->bl; + case BL_HOM: + src = &BL_UCAST(BL_HOM, src)->master->bl; // Pass on to master. break; - case BL_MER: - src = &BL_UCAST(BL_MER, src)->master->bl; + case BL_MER: + src = &BL_UCAST(BL_MER, src)->master->bl; // Pass on to master. break; } } if (src != NULL && src->type == BL_PC) { struct map_session_data *ssd = BL_UCAST(BL_PC, src); + pc->setparam(ssd, SP_KILLEDRID, sd->bl.id); npc->script_event(ssd, NPCE_KILLPC); + achievement->validate_pc_kill(ssd, sd); - achievement->validate_pc_kill(ssd, sd); // Achievements [Smokexyz/Hercules] - - if (battle_config.pk_mode&2) { + if ((battle_config.pk_mode & 2) != 0) { ssd->status.manner -= 5; - if(ssd->status.manner < 0) - sc_start(NULL,src,SC_NOCHAT,100,0,0); + + if (ssd->status.manner < 0) + sc_start(NULL, src, SC_NOCHAT, 100, 0, 0); + #if 0 // PK/Karma system code (not enabled yet) [celest] // originally from Kade Online, so i don't know if any of these is correct ^^; @@ -8194,14 +8306,15 @@ static int pc_dead(struct map_session_data *sd, struct block_list *src) // If player killed was more evil sd->status.karma--; ssd->status.karma--; - } - else if (sd->status.karma < ssd->status.karma) // If player killed was more good + } else if (sd->status.karma < ssd->status.karma) { // If player killed was more good ssd->status.karma++; + } // or the PK System way... if (sd->status.karma > 0) // player killed is dishonourable? ssd->status.karma--; // honour points earned + sd->status.karma++; // honour points lost // To-do: Receive exp on certain occasions @@ -8209,137 +8322,156 @@ static int pc_dead(struct map_session_data *sd, struct block_list *src) } } - if( battle_config.bone_drop==2 - || (battle_config.bone_drop==1 && map->list[sd->bl.m].flag.pvp) - ) { + if (battle_config.bone_drop == 2 || (battle_config.bone_drop == 1 && map->list[sd->bl.m].flag.pvp != 0)) { struct item item_tmp; - memset(&item_tmp,0,sizeof(item_tmp)); - item_tmp.nameid=ITEMID_SKULL_; - item_tmp.identify=1; - item_tmp.card[0]=CARD0_CREATE; - item_tmp.card[1]=0; - item_tmp.card[2]=GetWord(sd->status.char_id,0); // CharId - item_tmp.card[3]=GetWord(sd->status.char_id,1); + + memset(&item_tmp, 0, sizeof(item_tmp)); + item_tmp.nameid = ITEMID_SKULL_; + item_tmp.identify = 1; + item_tmp.card[0] = CARD0_CREATE; + item_tmp.card[1] = 0; + item_tmp.card[2] = GetWord(sd->status.char_id, 0); + item_tmp.card[3] = GetWord(sd->status.char_id, 1); map->addflooritem(&sd->bl, &item_tmp, 1, sd->bl.m, sd->bl.x, sd->bl.y, 0, 0, 0, 0, false); } - // activate Steel body if a super novice dies at 99+% exp [celest] - if ((sd->job & MAPID_UPPERMASK) == MAPID_SUPER_NOVICE && !sd->state.snovice_dead_flag) { + // Activate Steel Body if a Super Novice dies at 99+% EXP. [celest] + if ((sd->job & MAPID_UPPERMASK) == MAPID_SUPER_NOVICE && sd->state.snovice_dead_flag == 0) { uint64 next = pc->nextbaseexp(sd); - if( next == 0 ) next = pc->thisbaseexp(sd); + + if (next == 0) + next = pc->thisbaseexp(sd); + if (get_percentage64(sd->status.base_exp, next) >= 99) { sd->state.snovice_dead_flag = 1; pc->setstand(sd); status_percent_heal(&sd->bl, 100, 100); clif->resurrection(&sd->bl, 1); - if(battle_config.pc_invincible_time) + + if (battle_config.pc_invincible_time != 0) pc->setinvincibletimer(sd, battle_config.pc_invincible_time); - sc_start(NULL,&sd->bl,status->skill2sc(MO_STEELBODY),100,1,skill->get_time(MO_STEELBODY,1)); - if(map_flag_gvg2(sd->bl.m)) + + sc_start(NULL, &sd->bl, status->skill2sc(MO_STEELBODY), 100, 1, skill->get_time(MO_STEELBODY, 1)); + + if (map_flag_gvg2(sd->bl.m)) pc->respawn_timer(INVALID_TIMER, timer->gettick(), sd->bl.id, 0); + return 0; } } - // changed penalty options, added death by player if pk_mode [Valaris] - if (battle_config.death_penalty_type - && pc->isDeathPenaltyJob(sd->job) - && !map->list[sd->bl.m].flag.noexppenalty && !map_flag_gvg2(sd->bl.m) - && !sd->sc.data[SC_BABY] && !sd->sc.data[SC_CASH_DEATHPENALTY] - && !pc->auto_exp_insurance(sd) - ) { + if (battle_config.death_penalty_type != 0 && pc->isDeathPenaltyJob(sd->job) && !map_flag_gvg2(sd->bl.m) + && map->list[sd->bl.m].flag.noexppenalty == 0 && sd->sc.data[SC_BABY] == NULL + && sd->sc.data[SC_CASH_DEATHPENALTY] == NULL && !pc->auto_exp_insurance(sd)) { if (battle_config.death_penalty_base > 0) { unsigned int base_penalty = 0; + int rate = battle_config.death_penalty_base; + switch (battle_config.death_penalty_type) { - case 1: - base_penalty = (unsigned int) apply_percentrate64(pc->nextbaseexp(sd), battle_config.death_penalty_base, 10000); - break; - case 2: - base_penalty = (unsigned int) apply_percentrate64(sd->status.base_exp, battle_config.death_penalty_base, 10000); - break; + case 1: + base_penalty = (unsigned int)apply_percentrate64(pc->nextbaseexp(sd), rate, 10000); + break; + case 2: + base_penalty = (unsigned int)apply_percentrate64(sd->status.base_exp, rate, 10000); + break; } if (base_penalty != 0) { - if (battle_config.pk_mode && src && src->type==BL_PC) - base_penalty*=2; - if( sd->status.mod_death != 100 ) + if (battle_config.pk_mode != 0 && src != NULL && src->type == BL_PC) + base_penalty *= 2; + + if (sd->status.mod_death != 100) base_penalty = base_penalty * sd->status.mod_death / 100; + sd->status.base_exp -= min(sd->status.base_exp, base_penalty); - clif->updatestatus(sd,SP_BASEEXP); + clif->updatestatus(sd, SP_BASEEXP); } } - if(battle_config.death_penalty_job > 0) { + if (battle_config.death_penalty_job > 0) { unsigned int job_penalty = 0; + int rate = battle_config.death_penalty_job; switch (battle_config.death_penalty_type) { - case 1: - job_penalty = (unsigned int) apply_percentrate64(pc->nextjobexp(sd), battle_config.death_penalty_job, 10000); - break; - case 2: - job_penalty = (unsigned int) apply_percentrate64(sd->status.job_exp, battle_config.death_penalty_job, 10000); - break; + case 1: + job_penalty = (unsigned int)apply_percentrate64(pc->nextjobexp(sd), rate, 10000); + break; + case 2: + job_penalty = (unsigned int)apply_percentrate64(sd->status.job_exp, rate, 10000); + break; } if (job_penalty != 0) { - if (battle_config.pk_mode && src && src->type==BL_PC) - job_penalty*=2; - if( sd->status.mod_death != 100 ) + if (battle_config.pk_mode != 0 && src != NULL && src->type == BL_PC) + job_penalty *= 2; + + if (sd->status.mod_death != 100) job_penalty = job_penalty * sd->status.mod_death / 100; + sd->status.job_exp -= min(sd->status.job_exp, job_penalty); - clif->updatestatus(sd,SP_JOBEXP); + clif->updatestatus(sd, SP_JOBEXP); } } - if (battle_config.zeny_penalty > 0 && !map->list[sd->bl.m].flag.nozenypenalty) { + if (battle_config.zeny_penalty > 0 && map->list[sd->bl.m].flag.nozenypenalty == 0) { int zeny_penalty = apply_percentrate(sd->status.zeny, battle_config.zeny_penalty, 10000); + if (zeny_penalty != 0) pc->payzeny(sd, zeny_penalty, LOG_TYPE_PICKDROP_PLAYER, NULL); } } - if(map->list[sd->bl.m].flag.pvp_nightmaredrop) { - // Moved this outside so it works when PVP isn't enabled and during pk mode [Ancyker] - for(j=0;j<map->list[sd->bl.m].drop_list_count;j++){ - int id = map->list[sd->bl.m].drop_list[j].drop_id; - int type = map->list[sd->bl.m].drop_list[j].drop_type; - int per = map->list[sd->bl.m].drop_list[j].drop_per; - if(id == 0) + if (map->list[sd->bl.m].flag.pvp_nightmaredrop != 0) { + // Moved this outside so it works when PVP isn't enabled and during pk mode. [Ancyker] + for (int i = 0; i < map->list[sd->bl.m].drop_list_count; i++) { + int id = map->list[sd->bl.m].drop_list[i].drop_id; + int type = map->list[sd->bl.m].drop_list[i].drop_type; + int per = map->list[sd->bl.m].drop_list[i].drop_per; + + if (id == 0) continue; - if(id == -1){ - int eq_num = 0, eq_n[MAX_INVENTORY], k; - memset(eq_n,0,sizeof(eq_n)); - for(i = 0; i < sd->status.inventorySize; i++) { - if( (type == 1 && !sd->status.inventory[i].equip) - || (type == 2 && sd->status.inventory[i].equip) - || type == 3) - { + + if (id == -1) { + int eq_num = 0; + int eq_n[MAX_INVENTORY]; + + memset(eq_n, 0, sizeof(eq_n)); + + for (int j = 0; j < sd->status.inventorySize; j++) { + bool is_equipped = (sd->status.inventory[j].equip != 0); + + if ((type == 1 && !is_equipped) || (type == 2 && is_equipped) || type == 3) { + int k; + ARR_FIND(0, sd->status.inventorySize, k, eq_n[k] <= 0); + if (k < sd->status.inventorySize) - eq_n[k] = i; + eq_n[k] = j; eq_num++; } } - if(eq_num > 0){ - int n = eq_n[rnd()%eq_num]; - if(rnd()%10000 < per){ - if(sd->status.inventory[n].equip) + + if (eq_num > 0) { + int n = eq_n[rnd() % eq_num]; + + if (rnd() % 10000 < per) { + if (sd->status.inventory[n].equip != 0) pc->unequipitem(sd, n, PCUNEQUIPITEM_RECALC|PCUNEQUIPITEM_FORCE); - pc->dropitem(sd,n,1); + + pc->dropitem(sd, n, 1); } } - } - else if(id > 0){ - for( i = 0; i < sd->status.inventorySize; i++) { - if(sd->status.inventory[i].nameid == id - && rnd()%10000 < per - && ((type == 1 && !sd->status.inventory[i].equip) - || (type == 2 && sd->status.inventory[i].equip) - || type == 3) ){ - if(sd->status.inventory[i].equip) - pc->unequipitem(sd, i, PCUNEQUIPITEM_RECALC|PCUNEQUIPITEM_FORCE); - pc->dropitem(sd,i,1); + } else if (id > 0) { + for (int j = 0; j < sd->status.inventorySize; j++) { + bool is_equipped = (sd->status.inventory[j].equip != 0); + + if (((type == 1 && !is_equipped) || (type == 2 && is_equipped) || type == 3) + && sd->status.inventory[j].nameid == id && rnd() % 10000 < per) { + if (is_equipped) + pc->unequipitem(sd, j, PCUNEQUIPITEM_RECALC|PCUNEQUIPITEM_FORCE); + + pc->dropitem(sd, j, 1); break; } } @@ -8347,46 +8479,51 @@ static int pc_dead(struct map_session_data *sd, struct block_list *src) } } - // Remove autotrade to prevent autotrading from save point - if( (sd->state.standalone || sd->state.autotrade) - && (map->list[sd->bl.m].flag.pvp || map->list[sd->bl.m].flag.gvg) - ) { + // Remove autotrade to prevent autotrading from save point. + if ((map->list[sd->bl.m].flag.pvp != 0 || map->list[sd->bl.m].flag.gvg != 0) + && (sd->state.standalone != 0 || sd->state.autotrade != 0)) { sd->state.autotrade = 0; sd->state.standalone = 0; - pc->autotrade_update(sd,PAUC_REMOVE); + pc->autotrade_update(sd, PAUC_REMOVE); map->quit(sd); } - // pvp - // disable certain pvp functions on pk_mode [Valaris] - if( map->list[sd->bl.m].flag.pvp && !battle_config.pk_mode && !map->list[sd->bl.m].flag.pvp_nocalcrank ) { + // Disable certain PVP functions on pk_mode. [Valaris] + if (map->list[sd->bl.m].flag.pvp != 0 && battle_config.pk_mode == 0 + && map->list[sd->bl.m].flag.pvp_nocalcrank == 0) { sd->pvp_point -= 5; sd->pvp_lost++; + if (src != NULL && src->type == BL_PC) { struct map_session_data *ssd = BL_UCAST(BL_PC, src); + ssd->pvp_point++; ssd->pvp_won++; } - if( sd->pvp_point < 0 ) - { - timer->add(tick+1, pc->respawn_timer,sd->bl.id,0); + + if (sd->pvp_point < 0) { + timer->add(tick + 1, pc->respawn_timer, sd->bl.id, 0); return 1|8; } } - //GvG - if( map_flag_gvg2(sd->bl.m) ) { - timer->add(tick+1, pc->respawn_timer, sd->bl.id, 0); + + // GVG + if (map_flag_gvg2(sd->bl.m)) { + timer->add(tick + 1, pc->respawn_timer, sd->bl.id, 0); return 1|8; - } else if( sd->bg_id ) { + } + + if (sd->bg_id != 0) { struct battleground_data *bgd = bg->team_search(sd->bg_id); - if( bgd && bgd->mapindex > 0 ) { // Respawn by BG - timer->add(tick+1000, pc->respawn_timer, sd->bl.id, 0); + + if (bgd != NULL && bgd->mapindex > 0) { // Respawn by BG. + timer->add(tick + 1000, pc->respawn_timer, sd->bl.id, 0); return 1|8; } } - //Reset "can log out" tick. - if( battle_config.prevent_logout ) + // Reset "can log out" tick. + if (battle_config.prevent_logout != 0) sd->canlog_tick = timer->gettick() - battle_config.prevent_logout; return 1; @@ -8809,6 +8946,10 @@ static int pc_itemheal(struct map_session_data *sd, int itemid, int hp, int sp) // 2014 Halloween Event : Pumpkin Bonus if ( sd->sc.data[SC_MTF_PUMPKIN] && itemid == ITEMID_PUMPKIN ) hp += (int)(hp * sd->sc.data[SC_MTF_PUMPKIN]->val1/100); + + // Activation Potion + if (sd->sc.data[SC_VITALIZE_POTION] != NULL) + hp += hp * sd->sc.data[SC_VITALIZE_POTION]->val3 / 100; } if(sp) { bonus = 100 + (sd->battle_status.int_<<1) @@ -9203,6 +9344,72 @@ static int pc_changelook(struct map_session_data *sd, int type, int val) return 0; } +/** + * Hides a character. + * + * @param sd The character to hide. + * @param show_msg Whether to show message to the character or not. + * + **/ +static void pc_hide(struct map_session_data *sd, bool show_msg) +{ + nullpo_retv(sd); + + clif->clearunit_area(&sd->bl, CLR_OUTSIGHT); + sd->sc.option |= OPTION_INVISIBLE; + sd->vd.class = INVISIBLE_CLASS; + + if (show_msg) + clif->message(sd->fd, atcommand->msgsd(sd, 11)); // Invisible: On + + // Decrement the number of pvp players on the map. + map->list[sd->bl.m].users_pvp--; + + if (map->list[sd->bl.m].flag.pvp != 0 && map->list[sd->bl.m].flag.pvp_nocalcrank == 0 + && sd->pvp_timer != INVALID_TIMER) { // Unregister the player for ranking. + timer->delete(sd->pvp_timer, pc->calc_pvprank_timer); + sd->pvp_timer = INVALID_TIMER; + } + + clif->changeoption(&sd->bl); +} + +/** + * Unhides a character. + * + * @param sd The character to unhide. + * @param show_msg Whether to show message to the character or not. + * + **/ +static void pc_unhide(struct map_session_data *sd, bool show_msg) +{ + nullpo_retv(sd); + + sd->sc.option &= ~OPTION_INVISIBLE; + + if (sd->disguise != -1) + status->set_viewdata(&sd->bl, sd->disguise); + else + status->set_viewdata(&sd->bl, sd->status.class); + + if (show_msg) + clif->message(sd->fd, atcommand->msgsd(sd, 10)); // Invisible: Off + + // Increment the number of pvp players on the map. + map->list[sd->bl.m].users_pvp++; + + if (map->list[sd->bl.m].flag.pvp != 0 && map->list[sd->bl.m].flag.pvp_nocalcrank == 0) // Register the player for ranking. + sd->pvp_timer = timer->add(timer->gettick() + 200, pc->calc_pvprank_timer, sd->bl.id, 0); + + // bugreport:2266 + map->foreachinmovearea(clif->insight, &sd->bl, AREA_SIZE, sd->bl.x, sd->bl.y, BL_ALL, &sd->bl); + + if (sd->disguise != -1) + clif->spawn_unit(&sd->bl, AREA_WOS); + + clif->changeoption(&sd->bl); +} + /*========================================== * Give an option (type) to player (sd) and display it to client *------------------------------------------*/ @@ -9214,7 +9421,13 @@ static int pc_setoption(struct map_session_data *sd, int type) //Option has to be changed client-side before the class sprite or it won't always work (eg: Wedding sprite) [Skotlex] sd->sc.option=type; - clif->changeoption(&sd->bl); + + if ((p_type & OPTION_INVISIBLE) != 0 && (type & OPTION_INVISIBLE) == 0) // Unhide character. + pc->unhide(sd, false); + else if ((p_type & OPTION_INVISIBLE) == 0 && (type & OPTION_INVISIBLE) != 0) // Hide character. + pc->hide(sd, false); + else + clif->changeoption(&sd->bl); if( (type&OPTION_RIDING && !(p_type&OPTION_RIDING)) || (type&OPTION_DRAGON && !(p_type&OPTION_DRAGON) && pc->checkskill(sd,RK_DRAGONTRAINING) > 0) ) { // Mounting @@ -11171,7 +11384,7 @@ static int pc_charm_timer(int tid, int64 tick, int id, intptr_t data) * @param max Maximum amount of charms to add. * @param type Charm type (@see spirit_charm_types) */ -static void pc_add_charm(struct map_session_data *sd, int interval, int max, int type) +static void pc_add_charm(struct map_session_data *sd, int interval, int max, enum spirit_charm_types type) { int tid, i; @@ -11213,7 +11426,7 @@ static void pc_add_charm(struct map_session_data *sd, int interval, int max, int * @param count Amount of charms to remove. * @param type Type of charm to remove. */ -static void pc_del_charm(struct map_session_data *sd, int count, int type) +static void pc_del_charm(struct map_session_data *sd, int count, enum spirit_charm_types type) { int i; @@ -12726,7 +12939,10 @@ void pc_defaults(void) pc->unequipitem_pos = pc_unequipitem_pos; pc->checkitem = pc_checkitem; pc->useitem = pc_useitem; - pc->itemskill_clear = pc_itemskill_clear; + pc->autocast_clear_current = pc_autocast_clear_current; + pc->autocast_clear = pc_autocast_clear; + pc->autocast_set_current = pc_autocast_set_current; + pc->autocast_remove = pc_autocast_remove; pc->skillatk_bonus = pc_skillatk_bonus; pc->skillheal_bonus = pc_skillheal_bonus; @@ -12739,6 +12955,8 @@ void pc_defaults(void) pc->itemheal = pc_itemheal; pc->percentheal = pc_percentheal; pc->jobchange = pc_jobchange; + pc->hide = pc_hide; + pc->unhide = pc_unhide; pc->setoption = pc_setoption; pc->setcart = pc_setcart; pc->setfalcon = pc_setfalcon; diff --git a/src/map/pc.h b/src/map/pc.h index 8d1ae3607..dfc1f886e 100644 --- a/src/map/pc.h +++ b/src/map/pc.h @@ -173,6 +173,17 @@ struct pc_combos { int id; /* this combo id */ }; +/** Auto-cast related data. **/ +struct autocast_data { + enum autocast_type type; // The auto-cast type. + int skill_id; // The auto-cast skill ID. + int skill_lv; // The auto-cast skill level. + bool itemskill_conditions_checked; // Used by itemskill() script command, to prevent second check of conditions after target was selected. + bool itemskill_check_conditions; // Used by itemskill() script command, to check skill conditions and consume them. + bool itemskill_instant_cast; // Used by itemskill() script command, to cast skill instantaneously. + bool itemskill_cast_on_self; // Used by itemskill() script command, to forcefully cast skill on invoking character. +}; + struct map_session_data { struct block_list bl; struct unit_data ud; @@ -181,6 +192,8 @@ struct map_session_data { struct status_change sc; struct regen_data regen; struct regen_data_sub sregen, ssregen; + struct autocast_data auto_cast_current; // Currently processed auto-cast skill. + VECTOR_DECL(struct autocast_data) auto_cast; // Auto-cast vector. //NOTE: When deciding to add a flag to state or special_state, take into consideration that state is preserved in //status_calc_pc, while special_state is recalculated in each call. [Skotlex] struct { @@ -194,8 +207,6 @@ struct map_session_data { unsigned int rest : 1; unsigned int storage_flag : 2; // @see enum storage_flag unsigned int snovice_dead_flag : 1; //Explosion spirits on death: 0 off, 1 used. - unsigned int abra_flag : 2; // Abracadabra bugfix by Aru - unsigned int autocast : 1; // Autospell flag [Inkfish] unsigned int autotrade : 2; //By Fantik unsigned int showdelay :1; unsigned int showexp :1; @@ -240,10 +251,6 @@ struct map_session_data { unsigned int refine_ui : 1; unsigned int npc_unloaded : 1; ///< The player is talking with an unloaded NPCs (respawned tombstones) unsigned int lapine_ui : 1; - unsigned int itemskill_conditions_checked : 1; // Used by itemskill() script command, to prevent second check of conditions after target was selected. - unsigned int itemskill_check_conditions : 1; // Used by itemskill() script command, to check skill conditions and consume them. - unsigned int itemskill_no_casttime : 1; // Used by itemskill() script command, to cast skill instantaneously. - unsigned int itemskill_castonself : 1; // Used by itemskill() script command, to forcefully cast skill on invoking character. } state; struct { unsigned char no_weapon_damage, no_magic_damage, no_misc_damage; @@ -298,7 +305,6 @@ struct map_session_data { int followtimer; // [MouseJstr] int followtarget; time_t emotionlasttime; // to limit flood with emotion packets - int skillitem,skillitemlv; uint16 skill_id_old,skill_lv_old; uint16 skill_id_dance,skill_lv_dance; short cook_mastery; // range: [0,1999] [Inkfish] @@ -434,7 +440,7 @@ END_ZEROED_BLOCK; int spiritball, spiritball_old; int spirit_timer[MAX_SPIRITBALL]; int charm_count; - int charm_type; + enum spirit_charm_types charm_type; int charm_timer[MAX_SPIRITCHARM]; unsigned char potion_success_counter; //Potion successes in row counter unsigned char mission_count; //Stores the bounty kill count for TK_MISSION @@ -492,6 +498,7 @@ END_ZEROED_BLOCK; int change_level_3rd; // job level when changing from 2nd to 3rd class [jobchange_level_3rd in global_reg_value] char fakename[NAME_LENGTH]; // fake names [Valaris] + int fakename_options; // Fake name display options. int duel_group; // duel vars [LuzZza] int duel_invite; @@ -623,10 +630,6 @@ END_ZEROED_BLOCK; uint8 lang_id; - // temporary debugging of bug #3504 - const char* delunit_prevfile; - int delunit_prevline; - // HatEffect VECTOR_DECL(int) hatEffectId; @@ -647,15 +650,6 @@ END_ZEROED_BLOCK; bool achievements_received; // Title VECTOR_DECL(int) title_ids; - - /* - * itemskill_conditions_checked/itemskill_no_conditions/itemskill_no_casttime/itemskill_castonself abuse prevention. - * If a skill, casted by itemskill() script command, is aborted while target selection, - * the map server gets no notification where these states could be unset. - * Thus we need this helper variables to prevent abusing these states for next skill cast. - */ - int itemskill_id; - int itemskill_lv; }; #define EQP_WEAPON EQP_HAND_R @@ -681,6 +675,7 @@ END_ZEROED_BLOCK; #define pc_isidle(sd) ( (sd)->chat_id != 0 || (sd)->state.vending || (sd)->state.buyingstore || DIFF_TICK(sockt->last_tick, (sd)->idletime) >= battle->bc->idle_no_share ) #define pc_istrading(sd) ( (sd)->npc_id || (sd)->state.vending || (sd)->state.buyingstore || (sd)->state.trading ) #define pc_cant_act(sd) ( (sd)->npc_id || (sd)->state.vending || (sd)->state.buyingstore || (sd)->chat_id != 0 || ((sd)->sc.opt1 && (sd)->sc.opt1 != OPT1_BURNING) || (sd)->state.trading || (sd)->state.storage_flag || (sd)->state.prevend || (sd)->state.refine_ui == 1 || (sd)->state.lapine_ui == 1) +#define pc_cant_act_except_lapine(sd) ((sd)->npc_id || (sd)->state.vending || (sd)->state.buyingstore || (sd)->chat_id != 0 || ((sd)->sc.opt1 && (sd)->sc.opt1 != OPT1_BURNING) || (sd)->state.trading || (sd)->state.storage_flag || (sd)->state.prevend || (sd)->state.refine_ui == 1) /* equals pc_cant_act except it doesn't check for chat rooms */ #define pc_cant_act2(sd) ( (sd)->npc_id || (sd)->state.buyingstore || ((sd)->sc.opt1 && (sd)->sc.opt1 != OPT1_BURNING) || (sd)->state.trading || (sd)->state.storage_flag || (sd)->state.prevend || (sd)->state.refine_ui == 1 || (sd)->state.lapine_ui == 1) @@ -690,7 +685,7 @@ END_ZEROED_BLOCK; #define pc_ishiding(sd) ( (sd)->sc.option&(OPTION_HIDE|OPTION_CLOAK|OPTION_CHASEWALK) ) #define pc_iscloaking(sd) ( !((sd)->sc.option&OPTION_CHASEWALK) && ((sd)->sc.option&OPTION_CLOAK) ) #define pc_ischasewalk(sd) ( (sd)->sc.option&OPTION_CHASEWALK ) -#define pc_ismuted(sc,type) ( (sc)->data[SC_NOCHAT] && (sc)->data[SC_NOCHAT]->val1&(type) ) +#define pc_ismuted(sc, type) ( (sc)->data[SC_NOCHAT] != NULL && (battle_config.manner_system & (type)) != 0 ) #define pc_isvending(sd) ((sd)->state.vending || (sd)->state.prevend || (sd)->state.buyingstore) #ifdef NEW_CARTS @@ -1034,7 +1029,10 @@ END_ZEROED_BLOCK; /* End */ void (*unequipitem_pos) (struct map_session_data *sd, int n, int pos); int (*checkitem) (struct map_session_data *sd); int (*useitem) (struct map_session_data *sd,int n); - int (*itemskill_clear) (struct map_session_data *sd); + void (*autocast_clear_current) (struct map_session_data *sd); + void (*autocast_clear) (struct map_session_data *sd); + void (*autocast_set_current) (struct map_session_data *sd, int skill_id); + void (*autocast_remove) (struct map_session_data *sd, enum autocast_type type, int skill_id, int skill_lv); int (*skillatk_bonus) (struct map_session_data *sd, uint16 skill_id); int (*skillheal_bonus) (struct map_session_data *sd, uint16 skill_id); @@ -1047,6 +1045,8 @@ END_ZEROED_BLOCK; /* End */ int (*itemheal) (struct map_session_data *sd,int itemid, int hp,int sp); int (*percentheal) (struct map_session_data *sd,int hp,int sp); int (*jobchange) (struct map_session_data *sd, int class, int upper); + void (*hide) (struct map_session_data *sd, bool show_msg); + void (*unhide) (struct map_session_data *sd, bool show_msg); int (*setoption) (struct map_session_data *sd,int type); int (*setcart) (struct map_session_data* sd, int type); void (*setfalcon) (struct map_session_data *sd, bool flag); @@ -1130,8 +1130,8 @@ END_ZEROED_BLOCK; /* End */ int (*load_combo) (struct map_session_data *sd); - void (*add_charm) (struct map_session_data *sd, int interval, int max, int type); - void (*del_charm) (struct map_session_data *sd, int count, int type); + void (*add_charm) (struct map_session_data *sd, int interval, int max, enum spirit_charm_types type); + void (*del_charm) (struct map_session_data *sd, int count, enum spirit_charm_types type); void (*baselevelchanged) (struct map_session_data *sd); int (*level_penalty_mod) (int diff, unsigned char race, uint32 mode, int type); diff --git a/src/map/pet.c b/src/map/pet.c index aeb372c05..299de42c7 100644 --- a/src/map/pet.c +++ b/src/map/pet.c @@ -60,62 +60,101 @@ struct pet_interface *pet; #define MIN_PETTHINKTIME 100 +/** + * Gets a pet's hunger value, depending it's hunger level. + * This value is only used in clif_parse_LoadEndAck() when calling clif_pet_emotion(). + * + * @param pd The pet. + * @return The pet's hunger value. + * + **/ static int pet_hungry_val(struct pet_data *pd) { nullpo_ret(pd); - if(pd->pet.hungry > 90) + if (pd->pet.hungry > PET_HUNGER_SATISFIED) return 4; - else if(pd->pet.hungry > 75) + else if (pd->pet.hungry > PET_HUNGER_NEUTRAL) return 3; - else if(pd->pet.hungry > 25) + else if (pd->pet.hungry > PET_HUNGER_HUNGRY) return 2; - else if(pd->pet.hungry > 10) + else if (pd->pet.hungry > PET_HUNGER_VERY_HUNGRY) return 1; else return 0; } -static void pet_set_intimate(struct pet_data *pd, int value) +/** + * Sets a pet's hunger value. + * + * @param pd The pet. + * @param value The pet's new hunger value. + * + **/ +static void pet_set_hunger(struct pet_data *pd, int value) { - int intimate; - struct map_session_data *sd; + nullpo_retv(pd); + pd->pet.hungry = cap_value(value, PET_HUNGER_STARVING, PET_HUNGER_STUFFED); +} + +/** + * Sets a pet's intimacy value. + * Deletes the pet if its intimacy value reaches PET_INTIMACY_NONE (0). + * + * @param pd The pet. + * @param value The pet's new intimacy value. + * + **/ +static void pet_set_intimate(struct pet_data *pd, int value) +{ nullpo_retv(pd); - intimate = pd->pet.intimate; - sd = pd->msd; + nullpo_retv(pd->msd); + + pd->pet.intimate = cap_value(value, PET_INTIMACY_NONE, PET_INTIMACY_MAX); - pd->pet.intimate = value; + struct map_session_data *sd = pd->msd; - if( (intimate >= battle_config.pet_equip_min_friendly && pd->pet.intimate < battle_config.pet_equip_min_friendly) || (intimate < battle_config.pet_equip_min_friendly && pd->pet.intimate >= battle_config.pet_equip_min_friendly) ) - status_calc_pc(sd,SCO_NONE); + status_calc_pc(sd, SCO_NONE); - /* Pet is lost, delete the egg */ - if (value <= 0) { + if (pd->pet.intimate == PET_INTIMACY_NONE) { /// Pet is lost. Delete the egg. int i; - ARR_FIND(0, sd->status.inventorySize, i, sd->status.inventory[i].card[0] == CARD0_PET && - pd->pet.pet_id == MakeDWord(sd->status.inventory[i].card[1], sd->status.inventory[i].card[2])); + ARR_FIND(0, sd->status.inventorySize, i, sd->status.inventory[i].card[0] == CARD0_PET + && pd->pet.pet_id == MakeDWord(sd->status.inventory[i].card[1], + sd->status.inventory[i].card[2])); - if (i != sd->status.inventorySize) { + if (i != sd->status.inventorySize) pc->delitem(sd, i, 1, 0, DELITEM_NORMAL, LOG_TYPE_EGG); - } } } +/** + * Creates a pet egg. + * + * @param sd The character who tries to create the pet egg. + * @param item_id The pet egg's item ID. + * @return 0 on failure, 1 on success. + * + **/ static int pet_create_egg(struct map_session_data *sd, int item_id) { - int pet_id = pet->search_petDB_index(item_id, PET_EGG); nullpo_ret(sd); - if (pet_id < 0) return 0; //No pet egg here. - if (!pc->inventoryblank(sd)) return 0; // Inventory full + + int pet_id = pet->search_petDB_index(item_id, PET_EGG); + + if (pet_id == INDEX_NOT_FOUND) // No pet egg here. + return 0; + + if (pc->inventoryblank(sd) == 0) // Inventory full. + return 0; + sd->catch_target_class = pet->db[pet_id].class_; - intif->create_pet(sd->status.account_id, sd->status.char_id, - pet->db[pet_id].class_, - mob->db(pet->db[pet_id].class_)->lv, - pet->db[pet_id].EggID, 0, - (short)pet->db[pet_id].intimate, - 100, 0, 1, pet->db[pet_id].jname); + intif->create_pet(sd->status.account_id, sd->status.char_id, pet->db[pet_id].class_, + mob->db(pet->db[pet_id].class_)->lv, pet->db[pet_id].EggID, 0, + (short)pet->db[pet_id].intimate, PET_HUNGER_STUFFED, + 0, 1, pet->db[pet_id].jname); + return 1; } @@ -162,48 +201,42 @@ static int pet_attackskill(struct pet_data *pd, int target_id) return 0; } +/** + * Checks if a pet can attack a target. + * + * @param sd The pet's master. + * @param bl The pet's target. + * @param type 0 - Support master when attacking. Not 0 - Support master when being attacked. + * @return 0 on failure, 1 on success. + * + **/ static int pet_target_check(struct map_session_data *sd, struct block_list *bl, int type) { - struct pet_data *pd; - int rate; - nullpo_ret(sd); - pd = sd->pd; + nullpo_ret(sd->pd); + nullpo_ret(bl); + Assert_ret(sd->pd->msd == NULL || sd->pd->msd->pd == sd->pd); - Assert_ret(pd->msd == 0 || pd->msd->pd == pd); + struct pet_data *pd = sd->pd; - if( bl == NULL || bl->type != BL_MOB || bl->prev == NULL - || pd->pet.intimate < battle_config.pet_support_min_friendly - || pd->pet.hungry < 1 - || pd->pet.class_ == status->get_class(bl)) - return 0; + if ((type == 0 && pd->petDB->attack_rate == 0) || (type != 0 && pd->petDB->defence_attack_rate == 0)) + return 0; // If base rate is 0, there's nothing to do. - if( pd->bl.m != bl->m - || !check_distance_bl(&pd->bl, bl, pd->db->range2)) + if (bl->type != BL_MOB || bl->prev == NULL || pd->pet.intimate < battle_config.pet_support_min_friendly + || pd->pet.hungry <= PET_HUNGER_STARVING || pd->pet.class_ == status->get_class(bl) + || pd->bl.m != bl->m || !check_distance_bl(&pd->bl, bl, pd->db->range2) + || status->check_skilluse(&pd->bl, bl, 0, 0) == 0) { return 0; + } - if (!status->check_skilluse(&pd->bl, bl, 0, 0)) - return 0; + int rate = ((type == 0) ? pd->petDB->attack_rate : pd->petDB->defence_attack_rate) * pd->rate_fix / 1000; - if(!type) { - rate = pd->petDB->attack_rate; - rate = rate * pd->rate_fix/1000; - if(pd->petDB->attack_rate > 0 && rate <= 0) - rate = 1; - } else { - rate = pd->petDB->defence_attack_rate; - rate = rate * pd->rate_fix/1000; - if(pd->petDB->defence_attack_rate > 0 && rate <= 0) - rate = 1; - } - if(rnd()%10000 < rate) - { - if(pd->target_id == 0 || rnd()%10000 < pd->petDB->change_target_rate) - pd->target_id = bl->id; - } + if (rnd() % 10000 < max(rate, 1) && (pd->target_id == 0 || rnd() % 10000 < pd->petDB->change_target_rate)) + pd->target_id = bl->id; return 0; } + /*========================================== * Pet SC Check [Skotlex] *------------------------------------------*/ @@ -226,59 +259,72 @@ static int pet_sc_check(struct map_session_data *sd, int type) return 0; } +/** + * Updates a pet's hunger value and timer and updates the pet's intimacy value if starving. + * + * @param tid The timer ID. + * @param tick The base amount of ticks to add to the pet's hunger timer. (The timer's current ticks when calling this fuction.) + * @param id The pet master's account ID. + * @param data Unused. + * @return 1 on failure, 0 on success. + * + **/ static int pet_hungry(int tid, int64 tick, int id, intptr_t data) { - struct map_session_data *sd; - struct pet_data *pd; - int interval; + struct map_session_data *sd = map->id2sd(id); - sd=map->id2sd(id); - if(!sd) + if (sd == NULL || sd->status.pet_id == 0 || sd->pd == NULL) return 1; - if(!sd->status.pet_id || !sd->pd) - return 1; + struct pet_data *pd = sd->pd; - pd = sd->pd; - if(pd->pet_hungry_timer != tid){ - ShowError("pet_hungry_timer %d != %d\n",pd->pet_hungry_timer,tid); + /** + * If HungerDelay is 0, there's nothing to do. + * Actually this shouldn't happen, since the timer wasn't added in pet_data_init(), but just to be sure... + * + **/ + if (pd->petDB->hungry_delay == 0) { + pet->hungry_timer_delete(pd); return 0; } + + if (pd->pet_hungry_timer != tid) { + ShowError("pet_hungry: pet_hungry_timer %d != %d\n", pd->pet_hungry_timer, tid); + return 1; + } + pd->pet_hungry_timer = INVALID_TIMER; - if (pd->pet.intimate <= 0) - return 1; //You lost the pet already, the rest is irrelevant. + if (pd->pet.intimate <= PET_INTIMACY_NONE) + return 1; // You lost the pet already, the rest is irrelevant. + + pet->set_hunger(pd, pd->pet.hungry - pd->petDB->hunger_decrement); - pd->pet.hungry--; - /* Pet Autofeed */ - if (battle_config.feature_enable_pet_autofeed != 0) { - if (pd->petDB->autofeed == 1 && pd->pet.autofeed == 1 && pd->pet.hungry <= 25) { + // Pet auto-feed. + if (battle_config.feature_enable_pet_autofeed == 1) { + if (pd->petDB->autofeed == 1 && pd->pet.autofeed == 1 && pd->pet.hungry <= PET_HUNGER_HUNGRY) pet->food(sd, pd); - } } - if( pd->pet.hungry < 0 ) - { + int interval = pd->petDB->hungry_delay; + + if (pd->pet.hungry == PET_HUNGER_STARVING) { pet_stop_attack(pd); - pd->pet.hungry = 0; - pet->set_intimate(pd, pd->pet.intimate - battle_config.pet_hungry_friendly_decrease); - if( pd->pet.intimate <= 0 ) - { - pd->pet.intimate = 0; + pet->set_intimate(pd, pd->pet.intimate - pd->petDB->starving_decrement); + + if (pd->pet.intimate == PET_INTIMACY_NONE) pd->status.speed = pd->db->status.speed; - } + status_calc_pet(pd, SCO_NONE); - clif->send_petdata(sd,pd,1,pd->pet.intimate); + clif->send_petdata(sd, pd, 1, pd->pet.intimate); + + if (pd->petDB->starving_delay > 0) + interval = pd->petDB->starving_delay; } - clif->send_petdata(sd,pd,2,pd->pet.hungry); - if(battle_config.pet_hungry_delay_rate != 100) - interval = (pd->petDB->hungry_delay*battle_config.pet_hungry_delay_rate)/100; - else - interval = pd->petDB->hungry_delay; - if(interval <= 0) - interval = 1; - pd->pet_hungry_timer = timer->add(tick+interval,pet->hungry,sd->bl.id,0); + clif->send_petdata(sd, pd, 2, pd->pet.hungry); + interval = interval * battle_config.pet_hungry_delay_rate / 100; + pd->pet_hungry_timer = timer->add(tick + max(interval, 1), pet->hungry, sd->bl.id, 0); return 0; } @@ -315,21 +361,31 @@ static int pet_hungry_timer_delete(struct pet_data *pd) return 1; } +/** + * Makes a pet start performing/dancing. + * + * @param sd Unused. + * @param pd The pet. + * @return 0 on failure, 1 on success. + * + **/ static int pet_performance(struct map_session_data *sd, struct pet_data *pd) { + nullpo_ret(pd); + int val; - nullpo_retr(1, pd); - if (pd->pet.intimate > 900) - val = (pd->petDB->s_perfor > 0)? 4:3; - else if(pd->pet.intimate > 750) //TODO: this is way too high + if (pd->pet.intimate > PET_INTIMACY_LOYAL) + val = (pd->petDB->s_perfor > 0) ? 4 : 3; + else if (pd->pet.intimate > PET_INTIMACY_CORDIAL) //TODO: This is way too high. val = 2; else val = 1; - pet_stop_walking(pd,STOPWALKING_FLAG_NONE | (2000<<8)); // Stop walking for 2000ms - clif->send_petdata(NULL, pd, 4, rnd()%val + 1); - pet->lootitem_drop(pd,NULL); + pet_stop_walking(pd, STOPWALKING_FLAG_NONE | (2000 << 8)); // Stop walking for 2 seconds. + clif->send_petdata(NULL, pd, 4, rnd() % val + 1); + pet->lootitem_drop(pd, NULL); + return 1; } @@ -377,78 +433,80 @@ static int pet_return_egg(struct map_session_data *sd, struct pet_data *pd) return 1; } +/** + * Initializes a pet. + * + * @param sd The pet's master. + * @param petinfo The pet's status data. + * @return 1 on failure, 0 on success. + * + **/ static int pet_data_init(struct map_session_data *sd, struct s_pet *petinfo) { - struct pet_data *pd; - int i=0,interval=0; - nullpo_retr(1, sd); nullpo_retr(1, petinfo); - Assert_retr(1, sd->status.pet_id == 0 || sd->pd == 0 || sd->pd->msd == sd); + Assert_retr(1, sd->status.pet_id == 0 || sd->pd == NULL || sd->pd->msd == sd); - if(sd->status.account_id != petinfo->account_id || sd->status.char_id != petinfo->char_id) { + if (sd->status.account_id != petinfo->account_id || sd->status.char_id != petinfo->char_id) { sd->status.pet_id = 0; return 1; } + if (sd->status.pet_id != petinfo->pet_id) { - if (sd->status.pet_id) { - //Wrong pet?? Set incubate to no and send it back for saving. + if (sd->status.pet_id != 0) { // Wrong pet? Set incubate to no and send it back for saving. petinfo->incubate = 1; - intif->save_petdata(sd->status.account_id,petinfo); + intif->save_petdata(sd->status.account_id, petinfo); sd->status.pet_id = 0; return 1; } - //The pet_id value was lost? odd... restore it. - sd->status.pet_id = petinfo->pet_id; + + sd->status.pet_id = petinfo->pet_id; // The pet_id value was lost? Odd... Restore it. } - i = pet->search_petDB_index(petinfo->class_,PET_CLASS); - if(i < 0) { + int i = pet->search_petDB_index(petinfo->class_, PET_CLASS); + + if (i == INDEX_NOT_FOUND) { sd->status.pet_id = 0; return 1; } + + struct pet_data *pd; + CREATE(pd, struct pet_data, 1); - pd->bl.type = BL_PET; - pd->bl.id = npc->get_new_npc_id(); + memcpy(&pd->pet, petinfo, sizeof(struct s_pet)); sd->pd = pd; - pd->msd = sd; pd->petDB = &pet->db[i]; - pd->db = mob->db(petinfo->class_); - memcpy(&pd->pet, petinfo, sizeof(struct s_pet)); - status->set_viewdata(&pd->bl, petinfo->class_); + pd->db = mob->db(pd->petDB->class_); + pd->bl.type = BL_PET; + pd->bl.id = npc->get_new_npc_id(); + status->set_viewdata(&pd->bl, pd->petDB->class_); unit->dataset(&pd->bl); pd->ud.dir = sd->ud.dir; - pd->bl.m = sd->bl.m; pd->bl.x = sd->bl.x; pd->bl.y = sd->bl.y; unit->calc_pos(&pd->bl, sd->bl.x, sd->bl.y, sd->ud.dir); pd->bl.x = pd->ud.to_x; pd->bl.y = pd->ud.to_y; - map->addiddb(&pd->bl); - status_calc_pet(pd,SCO_FIRST); - + status_calc_pet(pd, SCO_FIRST); pd->last_thinktime = timer->gettick(); pd->state.skillbonus = 0; - if( battle_config.pet_status_support ) - script->run_pet(pet->db[i].pet_script,0,sd->bl.id,0); + if (pd->petDB->pet_script != NULL && battle_config.pet_status_support == 1) + script->run_pet(pd->petDB->pet_script, 0, sd->bl.id, 0); - if( pd->petDB ) { - if( pd->petDB->equip_script ) - status_calc_pc(sd,SCO_NONE); + if (pd->petDB->equip_script != NULL) + status_calc_pc(sd, SCO_NONE); - if( battle_config.pet_hungry_delay_rate != 100 ) - interval = (pd->petDB->hungry_delay*battle_config.pet_hungry_delay_rate)/100; - else - interval = pd->petDB->hungry_delay; + pd->pet_hungry_timer = INVALID_TIMER; + + if (pd->petDB->hungry_delay > 0) { + int interval = pd->petDB->hungry_delay * battle_config.pet_hungry_delay_rate / 100; + pd->pet_hungry_timer = timer->add(timer->gettick() + max(interval, 1), pet->hungry, sd->bl.id, 0); } - if( interval <= 0 ) - interval = 1; - pd->pet_hungry_timer = timer->add(timer->gettick() + interval, pet->hungry, sd->bl.id, 0); return 0; } @@ -563,57 +621,66 @@ static int pet_catch_process1(struct map_session_data *sd, int target_class) return 0; } +/** + * Begins the actual process of catching a monster. + * + * @param sd The character who tries to catch the monster. + * @param target_id The monster ID of the pet, which the character tries to catch. + * @return 1 on failure, 0 on success. + * + **/ static int pet_catch_process2(struct map_session_data *sd, int target_id) { - struct mob_data *md = NULL; - struct block_list *bl = NULL; - int i = 0, pet_catch_rate = 0; - nullpo_retr(1, sd); - bl = map->id2bl(target_id); // TODO: Why does this not use map->id2md? - md = BL_CAST(BL_MOB, bl); - if (md == NULL || md->bl.prev == NULL) { - // Invalid inputs/state, abort capture. - clif->pet_roulette(sd,0); + struct mob_data *md = BL_CAST(BL_MOB, map->id2bl(target_id)); //TODO: Why does this not use map->id2md? + + if (md == NULL || md->bl.prev == NULL) { // Invalid inputs/state, abort capture. + clif->pet_roulette(sd, 0); sd->catch_target_class = -1; sd->itemid = -1; sd->itemindex = -1; return 1; } - //FIXME: delete taming item here, if this was an item-invoked capture and the item was flagged as delay-consume [ultramage] + //FIXME: Delete taming item here, if this was an item-invoked capture and the item was flagged as delay-consume. [ultramage] - i = pet->search_petDB_index(md->class_,PET_CLASS); - //catch_target_class == 0 is used for universal lures (except bosses for now). [Skotlex] - if (sd->catch_target_class == 0 && !(md->status.mode&MD_BOSS)) + // catch_target_class == 0 is used for universal lures (except bosses for now). [Skotlex] + if (sd->catch_target_class == 0 && (md->status.mode & MD_BOSS) == 0) sd->catch_target_class = md->class_; - if(i < 0 || sd->catch_target_class != md->class_) { - clif->emotion(&md->bl, E_AG); //mob will do /ag if wrong lure is used on them. - clif->pet_roulette(sd,0); + + int i = pet->search_petDB_index(md->class_, PET_CLASS); + + if (i == INDEX_NOT_FOUND || sd->catch_target_class != md->class_) { + clif->emotion(&md->bl, E_AG); // Mob will do /ag if wrong lure is used on it. + clif->pet_roulette(sd, 0); sd->catch_target_class = -1; return 1; } - pet_catch_rate = (pet->db[i].capture + (sd->status.base_level - md->level)*30 + sd->battle_status.luk*20)*(200 - get_percentage(md->status.hp, md->status.max_hp))/100; + int pet_catch_rate; + int capture = pet->db[i].capture; + int mob_hp_perc = get_percentage(md->status.hp, md->status.max_hp); - if(pet_catch_rate < 1) pet_catch_rate = 1; - if(battle->bc->pet_catch_rate != 100) - pet_catch_rate = (pet_catch_rate*battle->bc->pet_catch_rate)/100; + if (battle_config.pet_catch_rate_official_formula == 1) { + pet_catch_rate = capture * (100 - mob_hp_perc) / 100 + capture; + } else { + int lvl_diff_mod = (sd->status.base_level - md->level) * 30; + int char_luk_mod = sd->battle_status.luk * 20; + pet_catch_rate = (capture + lvl_diff_mod + char_luk_mod) * (200 - mob_hp_perc) / 100; + } - if(rnd()%10000 < pet_catch_rate) - { - unit->remove_map(&md->bl,CLR_OUTSIGHT,ALC_MARK); - status_kill(&md->bl); - clif->pet_roulette(sd,1); - intif->create_pet(sd->status.account_id,sd->status.char_id,pet->db[i].class_,mob->db(pet->db[i].class_)->lv, - pet->db[i].EggID,0,pet->db[i].intimate,100,0,1,pet->db[i].jname); + pet_catch_rate = cap_value(pet_catch_rate, 1, 10000) * battle_config.pet_catch_rate / 100; + if (rnd() % 10000 < pet_catch_rate) { + unit->remove_map(&md->bl, CLR_OUTSIGHT, ALC_MARK); + status_kill(&md->bl); + clif->pet_roulette(sd, 1); + intif->create_pet(sd->status.account_id, sd->status.char_id, pet->db[i].class_, mob->db(pet->db[i].class_)->lv, + pet->db[i].EggID, 0, pet->db[i].intimate, PET_HUNGER_STUFFED, 0, 1, pet->db[i].jname); achievement->validate_taming(sd, pet->db[i].class_); - } - else - { - clif->pet_roulette(sd,0); + } else { + clif->pet_roulette(sd, 0); sd->catch_target_class = -1; } @@ -670,42 +737,52 @@ static bool pet_get_egg(int account_id, int pet_class, int pet_id) return true; } +/** + * Performs selected pet menu option. + * + * @param sd The pet's master. + * @param menunum The selected menu option. + * @return 1 on failure, 0 on success. + * + **/ static int pet_menu(struct map_session_data *sd, int menunum) { - struct item_data *egg_id; - nullpo_ret(sd); - if (sd->pd == NULL) - return 1; + nullpo_retr(1, sd); + nullpo_retr(1, sd->pd); - //You lost the pet already. - if(!sd->status.pet_id || sd->pd->pet.intimate <= 0 || sd->pd->pet.incubate) - return 1; + if (sd->status.pet_id == 0 || sd->pd->pet.intimate <= PET_INTIMACY_NONE || sd->pd->pet.incubate != 0) + return 1; // You lost the pet already. + + struct item_data *egg_id = itemdb->exists(sd->pd->petDB->EggID); - egg_id = itemdb->exists(sd->pd->petDB->EggID); - if (egg_id) { - if ((egg_id->flag.trade_restriction&ITR_NODROP) && !pc->inventoryblank(sd)) { - clif->message(sd->fd, msg_sd(sd,451)); // You can't return your pet because your inventory is full. + if (egg_id != NULL) { + if ((egg_id->flag.trade_restriction & ITR_NODROP) != 0 && pc->inventoryblank(sd) == 0) { + clif->message(sd->fd, msg_sd(sd, 451)); // You can't return your pet because your inventory is full. return 1; } } - switch(menunum) { - case 0: - clif->send_petstatus(sd); - break; - case 1: - pet->food(sd, sd->pd); - break; - case 2: - pet->performance(sd, sd->pd); - break; - case 3: - pet->return_egg(sd, sd->pd); - break; - case 4: - pet->unequipitem(sd, sd->pd); - break; + switch (menunum) { + case 0: + clif->send_petstatus(sd); + break; + case 1: + pet->food(sd, sd->pd); + break; + case 2: + pet->performance(sd, sd->pd); + break; + case 3: + pet->return_egg(sd, sd->pd); + break; + case 4: + pet->unequipitem(sd, sd->pd); + break; + default: ; + ShowError("pet_menu: Unexpected menu option: %d\n", menunum); + return 1; } + return 0; } @@ -830,49 +907,56 @@ static int pet_unequipitem(struct map_session_data *sd, struct pet_data *pd) return 0; } +/** + * Feeds a pet and updates its intimacy value. + * + * @param sd The pet's master. + * @param pd The pet. + * @return 1 on failure, 0 on success. + * + **/ static int pet_food(struct map_session_data *sd, struct pet_data *pd) { - int i, food_id; - + nullpo_retr(1, sd); nullpo_retr(1, pd); - food_id = pd->petDB->FoodID; - i = pc->search_inventory(sd, food_id); - if(i == INDEX_NOT_FOUND) { - clif->pet_food(sd, food_id, 0); + + int i = pc->search_inventory(sd, pd->petDB->FoodID); + + if (i == INDEX_NOT_FOUND) { + clif->pet_food(sd, pd->petDB->FoodID, 0); return 1; } + pc->delitem(sd, i, 1, 0, DELITEM_NORMAL, LOG_TYPE_CONSUME); - if (pd->pet.hungry > 90) { - pet->set_intimate(pd, pd->pet.intimate - pd->petDB->r_full); - } else { - int add_intimate = 0; - if (battle_config.pet_friendly_rate != 100) - add_intimate = (pd->petDB->r_hungry * battle_config.pet_friendly_rate)/100; - else - add_intimate = pd->petDB->r_hungry; - if (pd->pet.hungry > 75) { - add_intimate = add_intimate >> 1; - if (add_intimate <= 0) - add_intimate = 1; - } - pet->set_intimate(pd, pd->pet.intimate + add_intimate); - } - if (pd->pet.intimate <= 0) { - pd->pet.intimate = 0; + int intimacy = 0; + + if (pd->pet.hungry >= PET_HUNGER_STUFFED) + intimacy -= pd->petDB->r_full; // Decrease intimacy by OverFeedDecrement. + else if (pd->pet.hungry > PET_HUNGER_SATISFIED) + intimacy -= pd->petDB->r_full / 2; // Decrease intimacy by 50% of OverFeedDecrement. + else if (pd->pet.hungry > PET_HUNGER_NEUTRAL) + intimacy -= pd->petDB->r_full * 5 / 100; // Decrease intimacy by 5% of OverFeedDecrement. + else if (pd->pet.hungry > PET_HUNGER_HUNGRY) + intimacy += pd->petDB->r_hungry * 75 / 100; // Increase intimacy by 75% of FeedIncrement. + else if (pd->pet.hungry > PET_HUNGER_VERY_HUNGRY) + intimacy += pd->petDB->r_hungry; // Increase intimacy by FeedIncrement. + else + intimacy += pd->petDB->r_hungry / 2; // Increase intimacy by 50% of FeedIncrement. + + intimacy = intimacy * battle_config.pet_friendly_rate / 100; + pet->set_intimate(pd, pd->pet.intimate + intimacy); + + if (pd->pet.intimate == PET_INTIMACY_NONE) { pet_stop_attack(pd); pd->status.speed = pd->db->status.speed; - } else if (pd->pet.intimate > 1000) { - pd->pet.intimate = 1000; } - status_calc_pet(pd, SCO_NONE); - pd->pet.hungry += pd->petDB->fullness; - if( pd->pet.hungry > 100 ) - pd->pet.hungry = 100; - clif->send_petdata(sd,pd,2,pd->pet.hungry); - clif->send_petdata(sd,pd,1,pd->pet.intimate); - clif->pet_food(sd,pd->petDB->FoodID,1); + status_calc_pet(pd, SCO_NONE); + pet->set_hunger(pd, pd->pet.hungry + pd->petDB->fullness); + clif->send_petdata(sd, pd, 2, pd->pet.hungry); + clif->send_petdata(sd, pd, 1, pd->pet.intimate); + clif->pet_food(sd, pd->petDB->FoodID, 1); return 0; } @@ -919,126 +1003,147 @@ static int pet_randomwalk(struct pet_data *pd, int64 tick) return 0; } +/** + * Performs pet's AI actions. (Moving, attacking, etc.) + * + * @param pd The pet. + * @param sd The pet's master. + * @param tick Timestamp of last support. + * @return Always 0. + * + **/ static int pet_ai_sub_hard(struct pet_data *pd, struct map_session_data *sd, int64 tick) { - struct block_list *target = NULL; nullpo_ret(pd); + nullpo_ret(pd->bl.prev); + nullpo_ret(sd); + nullpo_ret(sd->bl.prev); - if(pd->bl.prev == NULL || sd == NULL || sd->bl.prev == NULL) + if (DIFF_TICK(tick, pd->last_thinktime) < MIN_PETTHINKTIME) return 0; - if(DIFF_TICK(tick,pd->last_thinktime) < MIN_PETTHINKTIME) - return 0; - pd->last_thinktime=tick; + pd->last_thinktime = tick; - if(pd->ud.attacktimer != INVALID_TIMER || pd->ud.skilltimer != INVALID_TIMER || pd->bl.m != sd->bl.m) + if (pd->ud.attacktimer != INVALID_TIMER || pd->ud.skilltimer != INVALID_TIMER || pd->bl.m != sd->bl.m) return 0; - if(pd->ud.walktimer != INVALID_TIMER && pd->ud.walkpath.path_pos <= 2) - return 0; //No thinking when you just started to walk. + if (pd->ud.walktimer != INVALID_TIMER && pd->ud.walkpath.path_pos <= 2) + return 0; // No thinking when you just started to walk. - if(pd->pet.intimate <= 0) { - //Pet should just... well, random walk. - pet->randomwalk(pd,tick); + if (pd->pet.intimate <= PET_INTIMACY_NONE) { + pet->randomwalk(pd, tick); // Pet should just... well, random walk. return 0; } - if (!check_distance_bl(&sd->bl, &pd->bl, pd->db->range3)) { - //Master too far, chase. - if(pd->target_id) + if (!check_distance_bl(&sd->bl, &pd->bl, pd->db->range3)) { // Master too far away. Chase him. + if (pd->target_id != 0) pet->unlocktarget(pd); - if(pd->ud.walktimer != INVALID_TIMER && pd->ud.target == sd->bl.id) - return 0; //Already walking to him + + if (pd->ud.walktimer != INVALID_TIMER && pd->ud.target == sd->bl.id) + return 0; // Already walking to him. + if (DIFF_TICK(tick, pd->ud.canmove_tick) < 0) - return 0; //Can't move yet. - pd->status.speed = (sd->battle_status.speed>>1); - if(pd->status.speed <= 0) - pd->status.speed = 1; - if (!unit->walktobl(&pd->bl, &sd->bl, 3, 0)) - pet->randomwalk(pd,tick); + return 0; // Can't move yet. + + pd->status.speed = max(sd->battle_status.speed / 2, MIN_WALK_SPEED); + + if (unit->walktobl(&pd->bl, &sd->bl, 3, 0) == 0) + pet->randomwalk(pd, tick); + return 0; } - //Return speed to normal. - if (pd->status.speed != pd->petDB->speed) { + if (pd->status.speed != pd->petDB->speed) { // Reset speed to normal. if (pd->ud.walktimer != INVALID_TIMER) - return 0; //Wait until the pet finishes walking back to master. + return 0; // Wait until the pet finishes walking back to master. + pd->status.speed = pd->petDB->speed; - pd->ud.state.change_walk_target = pd->ud.state.speed_changed = 1; + pd->ud.state.speed_changed = 1; + pd->ud.state.change_walk_target = 1; } - if (pd->target_id) { - target= map->id2bl(pd->target_id); - if (!target || pd->bl.m != target->m || status->isdead(target) - || !check_distance_bl(&pd->bl, target, pd->db->range3) - ) { + struct block_list *target = NULL; + + if (pd->target_id != 0) { + target = map->id2bl(pd->target_id); + + if (target == NULL || pd->bl.m != target->m || status->isdead(target) == 1 + || !check_distance_bl(&pd->bl, target, pd->db->range3)) { target = NULL; pet->unlocktarget(pd); } } - if(!target && pd->loot && pd->msd && pc_has_permission(pd->msd, PC_PERM_TRADE) && pd->loot->count < pd->loot->max && DIFF_TICK(tick,pd->ud.canact_tick)>0) { - //Use half the pet's range of sight. - map->foreachinrange(pet->ai_sub_hard_lootsearch,&pd->bl, - pd->db->range2/2, BL_ITEM,pd,&target); + if (target == NULL && pd->loot != NULL && pd->msd != NULL && pc_has_permission(pd->msd, PC_PERM_TRADE) + && pd->loot->count < pd->loot->max && DIFF_TICK(tick, pd->ud.canact_tick) > 0) { // Use half the pet's range of sight. + map->foreachinrange(pet->ai_sub_hard_lootsearch, &pd->bl, pd->db->range2 / 2, BL_ITEM, pd, &target); } - if (!target) { - //Just walk around. + if (target == NULL) { // Just walk around. if (check_distance_bl(&sd->bl, &pd->bl, 3)) - return 0; //Already next to master. + return 0; // Already next to master. - if(pd->ud.walktimer != INVALID_TIMER && check_distance_blxy(&sd->bl, pd->ud.to_x,pd->ud.to_y, 3)) - return 0; //Already walking to him + if (pd->ud.walktimer != INVALID_TIMER && check_distance_blxy(&sd->bl, pd->ud.to_x, pd->ud.to_y, 3)) + return 0; // Already walking to him. unit->calc_pos(&pd->bl, sd->bl.x, sd->bl.y, sd->ud.dir); + if (unit->walk_toxy(&pd->bl, pd->ud.to_x, pd->ud.to_y, 0) != 0) - pet->randomwalk(pd,tick); + pet->randomwalk(pd, tick); return 0; } - if(pd->ud.target == target->id && - (pd->ud.attacktimer != INVALID_TIMER || pd->ud.walktimer != INVALID_TIMER)) - return 0; //Target already locked. + if (pd->ud.target == target->id && (pd->ud.attacktimer != INVALID_TIMER || pd->ud.walktimer != INVALID_TIMER)) + return 0; // Target already locked. + + if (target->type != BL_ITEM) { // Target is enemy. Chase or attack it. + if (!battle->check_range(&pd->bl, target, pd->status.rhw.range)) { // Chase enemy. + if (unit->walktobl(&pd->bl, target, pd->status.rhw.range, 2) == 0) // Enemy is unreachable. + pet->unlocktarget(pd); - if (target->type != BL_ITEM) - { //enemy targetted - if(!battle->check_range(&pd->bl,target,pd->status.rhw.range)) { - //Chase - if(!unit->walktobl(&pd->bl, target, pd->status.rhw.range, 2)) - pet->unlocktarget(pd); //Unreachable target. return 0; } - //Continuous attack. - unit->attack(&pd->bl, pd->target_id, 1); - } else { - //Item Targeted, attempt loot - if (!check_distance_bl(&pd->bl, target, 1)) { - //Out of range - if(!unit->walktobl(&pd->bl, target, 1, 1)) //Unreachable target. + + unit->attack(&pd->bl, pd->target_id, 1); // Start/continue attacking. + } else { // Target is item. Attempt looting. + if (!check_distance_bl(&pd->bl, target, 1)) { // Item is out of range. + if (unit->walktobl(&pd->bl, target, 1, 1) == 0) // Item is unreachable. pet->unlocktarget(pd); + return 0; - } else{ + } + + if (pd->loot->count < pd->loot->max) { struct flooritem_data *fitem = BL_UCAST(BL_ITEM, target); - if(pd->loot->count < pd->loot->max){ - memcpy(&pd->loot->item[pd->loot->count++],&fitem->item_data,sizeof(pd->loot->item[0])); - pd->loot->weight += itemdb_weight(fitem->item_data.nameid)*fitem->item_data.amount; - map->clearflooritem(target); - } - //Target is unlocked regardless of whether it was picked or not. - pet->unlocktarget(pd); + + memcpy(&pd->loot->item[pd->loot->count++], &fitem->item_data, sizeof(pd->loot->item[0])); + pd->loot->weight += itemdb_weight(fitem->item_data.nameid) * fitem->item_data.amount; + map->clearflooritem(target); } + + pet->unlocktarget(pd); // Target is unlocked regardless of whether the item was picked or not. } + return 0; } +/** + * Calls pet_ai_sub_hard() for a character's pet if conditions are fulfilled. + * + * @param sd The character. + * @param ap Additional arguments. In this case only the time stamp of pet AI timer execution. + * @return Always 0. + * + **/ static int pet_ai_sub_foreachclient(struct map_session_data *sd, va_list ap) { - int64 tick = va_arg(ap,int64); nullpo_ret(sd); - if(sd->status.pet_id && sd->pd) - pet->ai_sub_hard(sd->pd,sd,tick); + + int64 tick = va_arg(ap, int64); + + if (sd->bl.prev != NULL && sd->status.pet_id != 0 && sd->pd != NULL && sd->pd->bl.prev != NULL) + pet->ai_sub_hard(sd->pd, sd, tick); return 0; } @@ -1143,45 +1248,54 @@ static int pet_lootitem_drop(struct pet_data *pd, struct map_session_data *sd) return 1; } -/*========================================== - * pet bonus giving skills [Valaris] / Rewritten by [Skotlex] - *------------------------------------------*/ +/** + * Applies pet's stat bonuses to its master. (See petskillbonus() script command.) + * + * @param tid The timer ID + * @param tick The base amount of ticks to add to the pet's bonus timer. (The timer's current ticks when calling this fuction.) + * @param id The pet's master's account ID. + * @param data Unused. + * @return 1 on failure, 0 on success. + * + **/ static int pet_skill_bonus_timer(int tid, int64 tick, int id, intptr_t data) { - struct map_session_data *sd=map->id2sd(id); - struct pet_data *pd; - int bonus; - int duration = 0; + struct map_session_data *sd = map->id2sd(id); - if(sd == NULL || sd->pd==NULL || sd->pd->bonus == NULL) + if (sd == NULL || sd->pd == NULL || sd->pd->bonus == NULL) return 1; - pd=sd->pd; + struct pet_data *pd = sd->pd; - if(pd->bonus->timer != tid) { - ShowError("pet_skill_bonus_timer %d != %d\n",pd->bonus->timer,tid); + if (pd->bonus->timer != tid) { + ShowError("pet_skill_bonus_timer %d != %d\n", pd->bonus->timer, tid); pd->bonus->timer = INVALID_TIMER; - return 0; + return 1; } - // determine the time for the next timer - if (pd->state.skillbonus && pd->bonus->delay > 0) { + int bonus; + int duration; + + // Determine the time for the next timer. + if (pd->state.skillbonus == 1 && pd->bonus->delay > 0) { bonus = 0; - duration = pd->bonus->delay*1000; // the duration until pet bonuses will be reactivated again - } else if (pd->pet.intimate) { + duration = pd->bonus->delay * 1000; // The duration until pet bonuses will be reactivated again. + } else if (pd->pet.intimate > PET_INTIMACY_NONE) { bonus = 1; - duration = pd->bonus->duration*1000; // the duration for pet bonuses to be in effect - } else { //Lost pet... + duration = pd->bonus->duration * 1000; // The duration for pet bonuses to be in effect. + } else { // Lost pet... pd->bonus->timer = INVALID_TIMER; - return 0; + return 1; } if (pd->state.skillbonus != bonus) { pd->state.skillbonus = bonus; status_calc_pc(sd, SCO_NONE); } - // wait for the next timer - pd->bonus->timer=timer->add(tick+duration,pet->skill_bonus_timer,sd->bl.id,0); + + // Wait for the next timer. + pd->bonus->timer = timer->add(tick + duration, pet->skill_bonus_timer, sd->bl.id, 0); + return 0; } @@ -1327,115 +1441,155 @@ static int pet_read_db_libconfig(const char *filename, bool ignore_missing) return count; } +/** + * Reads a single pet from DB. + * + * @param it The libconfig settings block, which contains the pet's data. + * @param n The pet's index in pet->db[]. + * @param source The pet DB's file name. + * @return 0 on failure, the pet's ID on success. + * + **/ static int pet_read_db_sub(struct config_setting_t *it, int n, const char *source) { - struct config_setting_t *t = NULL; - struct item_data *data = NULL; - const char *str = NULL; - int i32 = 0; - nullpo_ret(it); nullpo_ret(source); Assert_ret(n >= 0 && n < MAX_PET_DB); - if (!libconfig->setting_lookup_int(it, "Id", &i32)) { + int i32 = 0; + + if (libconfig->setting_lookup_int(it, "Id", &i32) == CONFIG_FALSE) { ShowWarning("pet_read_db_sub: Missing Id in \"%s\", entry #%d, skipping.\n", source, n); return 0; } - pet->db[n].class_ = i32; - if (!libconfig->setting_lookup_string(it, "SpriteName", &str) || !*str ) { - ShowWarning("pet_read_db_sub: Missing SpriteName in pet %d of \"%s\", skipping.\n", pet->db[n].class_, source); + if (mob->db_checkid(i32) == 0) { + ShowWarning("pet_read_db_sub: Invalid Id in \"%s\", entry #%d, skipping.\n", source, n); return 0; } - safestrncpy(pet->db[n].name, str, sizeof(pet->db[n].name)); - if (!libconfig->setting_lookup_string(it, "Name", &str) || !*str) { - ShowWarning("pet_read_db_sub: Missing Name in pet %d of \"%s\", skipping.\n", pet->db[n].class_, source); + pet->db[n].class_ = i32; + safestrncpy(pet->db[n].name, mob->db(i32)->sprite, sizeof(pet->db[n].name)); + + const char *str; + + if (libconfig->setting_lookup_string(it, "Name", &str) == CONFIG_FALSE || *str == '\0') { + ShowWarning("pet_read_db_sub: Missing Name in pet %d of \"%s\", skipping.\n", + pet->db[n].class_, source); return 0; } + safestrncpy(pet->db[n].jname, str, sizeof(pet->db[n].jname)); - if (libconfig->setting_lookup_string(it, "TamingItem", &str)) { - if (!(data = itemdb->name2id(str))) { - ShowWarning("pet_read_db_sub: Invalid item '%s' in pet %d of \"%s\", defaulting to 0.\n", str, pet->db[n].class_, source); - } else { - pet->db[n].itemID = data->nameid; - } + if (libconfig->setting_lookup_string(it, "EggItem", &str) == CONFIG_FALSE || *str == '\0') { + ShowWarning("pet_read_db_sub: Missing EggItem in pet %d of \"%s\", skipping.\n", + pet->db[n].class_, source); + return 0; } - if (libconfig->setting_lookup_string(it, "EggItem", &str)) { - if (!(data = itemdb->name2id(str))) { - ShowWarning("pet_read_db_sub: Invalid item '%s' in pet %d of \"%s\", defaulting to 0.\n", str, pet->db[n].class_, source); - } else { - pet->db[n].EggID = data->nameid; - } + struct item_data *data; + + if ((data = itemdb->name2id(str)) == NULL) { + ShowWarning("pet_read_db_sub: Invalid EggItem '%s' in pet %d of \"%s\", skipping.\n", + str, pet->db[n].class_, source); + return 0; } - if (libconfig->setting_lookup_string(it, "AccessoryItem", &str)) { - if (!(data = itemdb->name2id(str))) { - ShowWarning("pet_read_db_sub: Invalid item '%s' in pet %d of \"%s\", defaulting to 0.\n", str, pet->db[n].class_, source); - } else { - pet->db[n].AcceID = data->nameid; - } + pet->db[n].EggID = data->nameid; + + if (libconfig->setting_lookup_string(it, "TamingItem", &str) == CONFIG_TRUE) { + if ((data = itemdb->name2id(str)) == NULL) + ShowWarning("pet_read_db_sub: Invalid TamingItem '%s' in pet %d of \"%s\", defaulting to 0.\n", + str, pet->db[n].class_, source); + else + pet->db[n].itemID = data->nameid; } - if (libconfig->setting_lookup_string(it, "FoodItem", &str)) { - if (!(data = itemdb->name2id(str))) { - ShowWarning("pet_read_db_sub: Invalid item '%s' in pet %d of \"%s\", defaulting to 0.\n", str, pet->db[n].class_, source); - } else { + pet->db[n].FoodID = 537; + + if (libconfig->setting_lookup_string(it, "FoodItem", &str) == CONFIG_TRUE) { + if ((data = itemdb->name2id(str)) == NULL) + ShowWarning("pet_read_db_sub: Invalid FoodItem '%s' in pet %d of \"%s\", defaulting to Pet_Food (ID=537).\n", + str, pet->db[n].class_, source); + else pet->db[n].FoodID = data->nameid; - } } - if (libconfig->setting_lookup_int(it, "FoodEffectiveness", &i32)) - pet->db[n].fullness = i32; + if (libconfig->setting_lookup_string(it, "AccessoryItem", &str) == CONFIG_TRUE) { + if ((data = itemdb->name2id(str)) == NULL) + ShowWarning("pet_read_db_sub: Invalid AccessoryItem '%s' in pet %d of \"%s\", defaulting to 0.\n", + str, pet->db[n].class_, source); + else + pet->db[n].AcceID = data->nameid; + } - if (libconfig->setting_lookup_int(it, "HungerDelay", &i32)) - pet->db[n].hungry_delay = i32 * 1000; + int ret = libconfig->setting_lookup_int(it, "FoodEffectiveness", &i32); + pet->db[n].fullness = (ret == CONFIG_FALSE) ? 80 : cap_value(i32, 1, PET_HUNGER_STUFFED); - if ((t = libconfig->setting_get_member(it, "Intimacy"))) { - if (config_setting_is_group(t)) { - pet->read_db_sub_intimacy(n, t); - } - } - if (pet->db[n].r_hungry <= 0) - pet->db[n].r_hungry = 1; + ret = libconfig->setting_lookup_int(it, "HungerDelay", &i32); + pet->db[n].hungry_delay = (ret == CONFIG_FALSE) ? 60000 : cap_value(1000 * i32, 0, INT_MAX); - if (libconfig->setting_lookup_int(it, "CaptureRate", &i32)) - pet->db[n].capture = i32; + ret = libconfig->setting_lookup_int(it, "HungerDecrement", &i32); + pet->db[n].hunger_decrement = (ret == CONFIG_FALSE) ? 1 : cap_value(i32, PET_HUNGER_STARVING, PET_HUNGER_STUFFED - 1); - if (libconfig->setting_lookup_int(it, "Speed", &i32)) - pet->db[n].speed = i32; + if (pet->db[n].hunger_decrement == PET_HUNGER_STARVING) + pet->db[n].hungry_delay = 0; - if ((t = libconfig->setting_get_member(it, "SpecialPerformance")) && (i32 = libconfig->setting_get_bool(t))) - pet->db[n].s_perfor = (char)i32; + /** + * Preventively set default intimacy values here, just in case that 'Intimacy' block is not defined, + * or pet_read_db_sub_intimacy() fails execution. + * + **/ + pet->db[n].intimate = PET_INTIMACY_NEUTRAL; + pet->db[n].r_hungry = 10; + pet->db[n].r_full = 100; + pet->db[n].die = 20; + pet->db[n].starving_delay = min(20000, pet->db[n].hungry_delay); + pet->db[n].starving_decrement = 20; - if ((t = libconfig->setting_get_member(it, "TalkWithEmotes")) && (i32 = libconfig->setting_get_bool(t))) - pet->db[n].talk_convert_class = i32; + struct config_setting_t *t; - if (libconfig->setting_lookup_int(it, "AttackRate", &i32)) - pet->db[n].attack_rate = i32; + if ((t = libconfig->setting_get_member(it, "Intimacy")) != NULL && config_setting_is_group(t)) + pet->read_db_sub_intimacy(n, t); - if (libconfig->setting_lookup_int(it, "DefendRate", &i32)) - pet->db[n].defence_attack_rate = i32; + ret = libconfig->setting_lookup_int(it, "CaptureRate", &i32); + pet->db[n].capture = (ret == CONFIG_FALSE) ? 1000 : cap_value(i32, 1, 10000); - if (libconfig->setting_lookup_int(it, "ChangeTargetRate", &i32)) - pet->db[n].change_target_rate = i32; + ret = libconfig->setting_lookup_int(it, "Speed", &i32); + pet->db[n].speed = (ret == CONFIG_FALSE) ? DEFAULT_WALK_SPEED : cap_value(i32, MIN_WALK_SPEED, MAX_WALK_SPEED); - // Pet Evolution - if ((t = libconfig->setting_get_member(it, "Evolve")) && config_setting_is_group(t)) { - pet->read_db_sub_evolution(t, n); + if ((t = libconfig->setting_get_member(it, "SpecialPerformance")) != NULL + && (i32 = libconfig->setting_get_bool(t)) != 0) { + pet->db[n].s_perfor = (char)i32; } - if ((t = libconfig->setting_get_member(it, "AutoFeed")) && (i32 = libconfig->setting_get_bool(t))) + if ((t = libconfig->setting_get_member(it, "TalkWithEmotes")) != NULL + && (i32 = libconfig->setting_get_bool(t)) != 0) { + pet->db[n].talk_convert_class = i32; + } + + ret = libconfig->setting_lookup_int(it, "AttackRate", &i32); + pet->db[n].attack_rate = (ret == CONFIG_FALSE) ? 300 : cap_value(i32, 0, 10000); + + ret = libconfig->setting_lookup_int(it, "DefendRate", &i32); + pet->db[n].defence_attack_rate = (ret == CONFIG_FALSE) ? 300 : cap_value(i32, 0, 10000); + + ret = libconfig->setting_lookup_int(it, "ChangeTargetRate", &i32); + pet->db[n].change_target_rate = (ret == CONFIG_FALSE) ? 800 : cap_value(i32, 0, 10000); + + if ((t = libconfig->setting_get_member(it, "AutoFeed")) != NULL && (i32 = libconfig->setting_get_bool(t)) != 0) pet->db[n].autofeed = i32; - if (libconfig->setting_lookup_string(it, "PetScript", &str)) - pet->db[n].pet_script = *str ? script->parse(str, source, -pet->db[n].class_, SCRIPT_IGNORE_EXTERNAL_BRACKETS, NULL) : NULL; + pet->db[n].pet_script = NULL; + if (libconfig->setting_lookup_string(it, "PetScript", &str) == CONFIG_TRUE && *str != '\0') + pet->db[n].pet_script = script->parse(str, source, -pet->db[n].class_, SCRIPT_IGNORE_EXTERNAL_BRACKETS, NULL); + + pet->db[n].equip_script = NULL; + if (libconfig->setting_lookup_string(it, "EquipScript", &str) == CONFIG_TRUE && *str != '\0') + pet->db[n].equip_script = script->parse(str, source, -pet->db[n].class_, SCRIPT_IGNORE_EXTERNAL_BRACKETS, NULL); - if (libconfig->setting_lookup_string(it, "EquipScript", &str)) - pet->db[n].equip_script = *str ? script->parse(str, source, -pet->db[n].class_, SCRIPT_IGNORE_EXTERNAL_BRACKETS, NULL) : NULL; + if ((t = libconfig->setting_get_member(it, "Evolve")) != NULL && config_setting_is_group(t)) + pet->read_db_sub_evolution(t, n); return pet->db[n].class_; } @@ -1515,24 +1669,41 @@ static void pet_read_db_sub_evolution(struct config_setting_t *t, int n) } } +/** + * Reads a pet's intimacy data from DB. + * + * @param idx The pet's index in pet->db[]. + * @param t The libconfig settings block, which contains the pet's intimacy data. + * @return false on failure, true on success. + * + **/ static bool pet_read_db_sub_intimacy(int idx, struct config_setting_t *t) { + nullpo_retr(false, t); + Assert_retr(false, idx >= 0 && idx < MAX_PET_DB); + int i32 = 0; - nullpo_retr(false, t); - Assert_ret(idx >= 0 && idx < MAX_PET_DB); + if (libconfig->setting_lookup_int(t, "Initial", &i32) == CONFIG_TRUE) + pet->db[idx].intimate = cap_value(i32, PET_INTIMACY_AWKWARD, PET_INTIMACY_MAX); + + if (libconfig->setting_lookup_int(t, "FeedIncrement", &i32) == CONFIG_TRUE) + pet->db[idx].r_hungry = cap_value(i32, PET_INTIMACY_AWKWARD, PET_INTIMACY_MAX); + + if (libconfig->setting_lookup_int(t, "OverFeedDecrement", &i32) == CONFIG_TRUE) + pet->db[idx].r_full = cap_value(i32, PET_INTIMACY_NONE, PET_INTIMACY_MAX); - if (libconfig->setting_lookup_int(t, "Initial", &i32)) - pet->db[idx].intimate = i32; + if (libconfig->setting_lookup_int(t, "OwnerDeathDecrement", &i32) == CONFIG_TRUE) + pet->db[idx].die = cap_value(i32, PET_INTIMACY_NONE, PET_INTIMACY_MAX); - if (libconfig->setting_lookup_int(t, "FeedIncrement", &i32)) - pet->db[idx].r_hungry = i32; + if (libconfig->setting_lookup_int(t, "StarvingDelay", &i32) == CONFIG_TRUE) + pet->db[idx].starving_delay = cap_value(1000 * i32, 0, pet->db[idx].hungry_delay); - if (libconfig->setting_lookup_int(t, "OverFeedDecrement", &i32)) - pet->db[idx].r_full = i32; + if (libconfig->setting_lookup_int(t, "StarvingDecrement", &i32) == CONFIG_TRUE) + pet->db[idx].starving_decrement = cap_value(i32, PET_INTIMACY_NONE, PET_INTIMACY_MAX); - if (libconfig->setting_lookup_int(t, "OwnerDeathDecrement", &i32)) - pet->db[idx].die = i32; + if (pet->db[idx].starving_decrement == PET_INTIMACY_NONE) + pet->db[idx].starving_delay = 0; return true; } @@ -1626,6 +1797,7 @@ void pet_defaults(void) pet->final = do_final_pet; pet->hungry_val = pet_hungry_val; + pet->set_hunger = pet_set_hunger; pet->set_intimate = pet_set_intimate; pet->create_egg = pet_create_egg; pet->unlocktarget = pet_unlocktarget; diff --git a/src/map/pet.h b/src/map/pet.h index e0a5529a6..fa37e896a 100644 --- a/src/map/pet.h +++ b/src/map/pet.h @@ -57,6 +57,9 @@ struct s_pet_db { int defence_attack_rate; int change_target_rate; int autofeed; + int hunger_decrement; + int starving_delay; + int starving_decrement; struct script_code *equip_script; struct script_code *pet_script; @@ -143,6 +146,7 @@ struct pet_interface { int (*final) (void); /* */ int (*hungry_val) (struct pet_data *pd); + void (*set_hunger) (struct pet_data *pd, int value); void (*set_intimate) (struct pet_data *pd, int value); int (*create_egg) (struct map_session_data *sd, int item_id); int (*unlocktarget) (struct pet_data *pd); diff --git a/src/map/quest.c b/src/map/quest.c index 10ea668a6..217acfa19 100644 --- a/src/map/quest.c +++ b/src/map/quest.c @@ -675,7 +675,7 @@ static void quest_questinfo_refresh(struct map_session_data *sd) nullpo_retv(sd); for (int i = 0; i < VECTOR_LENGTH(map->list[sd->bl.m].qi_list); i++) { - struct npc_data *nd = &VECTOR_INDEX(map->list[sd->bl.m].qi_list, i); + struct npc_data *nd = VECTOR_INDEX(map->list[sd->bl.m].qi_list, i); int j; ARR_FIND(0, VECTOR_LENGTH(nd->qi_data), j, quest->questinfo_validate(sd, &VECTOR_INDEX(nd->qi_data, j)) == true); diff --git a/src/map/script.c b/src/map/script.c index d85f064b7..0d04ea31b 100644 --- a/src/map/script.c +++ b/src/map/script.c @@ -848,79 +848,134 @@ static const char *parse_callfunc(const char *p, int require_paren, int is_custo nullpo_retr(NULL, p); // is need add check for arg null pointer below? - func = script->add_word(p); - if (script->str_data[func].type == C_FUNC) { - script->syntax.nested_call++; - if (script->syntax.last_func != -1) { - if (script->str_data[func].val == script->buildin_lang_macro_offset) { - script->syntax.lang_macro_active = true; - macro = true; - } else if (script->str_data[func].val == script->buildin_lang_macro_fmtstring_offset) { - script->syntax.lang_macro_fmtstring_active = true; - macro = true; - } + + if (*p == '"') { + p2 = ++p; // jump to the start of the word + + // find the closing quote + while (*p2 != '"') { + ++p2; } - if( !macro ) { - // buildin function + if (p2[1] == ':' && p2[2] == ':') { + func = script->add_str("callfunctionofnpc"); + arg = "*"; // we already take care of the "vs" part of "vs*" + + script->syntax.nested_call++; script->syntax.last_func = script->str_data[func].val; script->addl(func); script->addc(C_ARG); - } - arg = script->buildin[script->str_data[func].val]; - if (script->str_data[func].deprecated) - DeprecationWarning(p); - if( !arg ) arg = &null_arg; // Use a dummy, null string - } else if( script->str_data[func].type == C_USERFUNC || script->str_data[func].type == C_USERFUNC_POS ) { - // script defined function - script->addl(script->buildin_callsub_ref); - script->addc(C_ARG); - script->addl(func); - arg = script->buildin[script->str_data[script->buildin_callsub_ref].val]; - if( *arg == 0 ) - disp_error_message("parse_callfunc: callsub has no arguments, please review its definition",p); - if( *arg != '*' ) - ++arg; // count func as argument + script->addc(C_STR); + do { + script->addb(*p++); // npc name + } while (p < p2); + script->addb(0); + + p = p2 + 3; // skip to start of func name + p2 = script->skip_word(p); + + script->addc(C_STR); + do { + script->addb(*p++); // func name + } while (p < p2); + script->addb(0); + + p = p2; // skip to just before the () + } else { + disp_error_message("script:parse_callfunc: invalid public function call syntax!", p2 + 1); + } } else { + func = script->add_word(p); + if (script->str_data[func].type == C_FUNC) { + script->syntax.nested_call++; + + if (script->syntax.last_func != -1) { + if (script->str_data[func].val == script->buildin_lang_macro_offset) { + script->syntax.lang_macro_active = true; + macro = true; + } else if (script->str_data[func].val == script->buildin_lang_macro_fmtstring_offset) { + script->syntax.lang_macro_fmtstring_active = true; + macro = true; + } + } + + if (!macro) { + // buildin function + script->syntax.last_func = script->str_data[func].val; + script->addl(func); + script->addc(C_ARG); + } + + arg = script->buildin[script->str_data[func].val]; + + if (script->str_data[func].deprecated == 1) { + DeprecationWarning(p); + } + + if (arg == NULL) { + arg = &null_arg; // Use a dummy, null string + } + } else if (script->str_data[func].type == C_USERFUNC || script->str_data[func].type == C_USERFUNC_POS) { + // script defined function + script->addl(script->buildin_callsub_ref); + script->addc(C_ARG); + script->addl(func); + arg = script->buildin[script->str_data[script->buildin_callsub_ref].val]; + + if (*arg == 0) { + disp_error_message("script:parse_callfunc: callsub has no arguments, please review its definition", p); + } + + if (*arg != '*') { + ++arg; // count func as argument + } + } else { #ifdef SCRIPT_CALLFUNC_CHECK - const char* name = script->get_str(func); - if( !is_custom && strdb_get(script->userfunc_db, name) == NULL ) { + const char *name = script->get_str(func); + if (is_custom == 0 && strdb_get(script->userfunc_db, name) == NULL) { #endif - disp_error_message("parse_line: expect command, missing function name or calling undeclared function",p); + disp_error_message("script:parse_callfunc: expect command, missing function name or calling undeclared function", p); #ifdef SCRIPT_CALLFUNC_CHECK - } else {; - script->addl(script->buildin_callfunc_ref); - script->addc(C_ARG); - script->addc(C_STR); - while( *name ) script->addb(*name ++); - script->addb(0); - arg = script->buildin[script->str_data[script->buildin_callfunc_ref].val]; - if( *arg != '*' ) ++ arg; - } + } else { + script->addl(script->buildin_callfunc_ref); + script->addc(C_ARG); + script->addc(C_STR); + + while (*name != '\0') { + script->addb(*name++); + } + + script->addb(0); + arg = script->buildin[script->str_data[script->buildin_callfunc_ref].val]; + + if (*arg != '*') { + ++ arg; + } + } #endif + } } p = script->skip_word(p); p = script->skip_space(p); script->syntax.curly[script->syntax.curly_count].type = TYPE_ARGLIST; script->syntax.curly[script->syntax.curly_count].count = 0; - if( *p == ';' ) - {// <func name> ';' + + if (*p == ';') { + // <func name> ';' script->syntax.curly[script->syntax.curly_count].flag = ARGLIST_NO_PAREN; - } else if( *p == '(' && *(p2=script->skip_space(p+1)) == ')' ) - {// <func name> '(' ')' + } else if (*p == '(' && *(p2 = script->skip_space(p + 1)) == ')') { + // <func name> '(' ')' script->syntax.curly[script->syntax.curly_count].flag = ARGLIST_PAREN; p = p2; - /* - } else if( 0 && require_paren && *p != '(' ) - {// <func name> - script->syntax.curly[script->syntax.curly_count].flag = ARGLIST_NO_PAREN; - */ - } else {// <func name> <arg list> - if( require_paren ) { - if( *p != '(' ) - disp_error_message("need '('",p); + } else { + // <func name> <arg list> + if (require_paren == 1) { + if (*p != '(') { + disp_error_message("script:parse_callfunc: need '('", p); + } + ++p; // skip '(' script->syntax.curly[script->syntax.curly_count].flag = ARGLIST_PAREN; } else if( *p == '(' ) { @@ -928,41 +983,65 @@ static const char *parse_callfunc(const char *p, int require_paren, int is_custo } else { script->syntax.curly[script->syntax.curly_count].flag = ARGLIST_NO_PAREN; } + ++script->syntax.curly_count; - while( *arg ) { - p2=script->parse_subexpr(p,-1); - if( p == p2 ) - break; // not an argument - if( *arg != '*' ) - ++arg; // next argument - p=script->skip_space(p2); - if( *arg == 0 || *p != ',' ) - break; // no more arguments + while (*arg != '\0') { + p2 = script->parse_subexpr(p, -1); + + if (p == p2) { + // not an argument + break; + } + + if (*arg != '*') { + // next argument + ++arg; + } + + p = script->skip_space(p2); + + if (*arg == 0 || *p != ',') { + // no more arguments + break; + } + ++p; // skip comma } + --script->syntax.curly_count; } - if( arg && *arg && *arg != '?' && *arg != '*' ) - disp_error_message2("parse_callfunc: not enough arguments, expected ','", p, script->config.warn_func_mismatch_paramnum); - if( script->syntax.curly[script->syntax.curly_count].type != TYPE_ARGLIST ) - disp_error_message("parse_callfunc: DEBUG last curly is not an argument list",p); - if( script->syntax.curly[script->syntax.curly_count].flag == ARGLIST_PAREN ) { - if( *p != ')' ) - disp_error_message("parse_callfunc: expected ')' to close argument list",p); + + if (arg != NULL && *arg != '\0' && *arg != '?' && *arg != '*') { + disp_error_message2("script:parse_callfunc: not enough arguments, expected ','", p, script->config.warn_func_mismatch_paramnum); + } + + if (script->syntax.curly[script->syntax.curly_count].type != TYPE_ARGLIST) { + disp_error_message("parse_callfunc: DEBUG last curly is not an argument list", p); + } + + if (script->syntax.curly[script->syntax.curly_count].flag == ARGLIST_PAREN) { + if (*p != ')') { + disp_error_message("script:parse_callfunc: expected ')' to close argument list", p); + } + ++p; - if (script->str_data[func].val == script->buildin_lang_macro_offset) + if (script->str_data[func].val == script->buildin_lang_macro_offset) { script->syntax.lang_macro_active = false; - else if (script->str_data[func].val == script->buildin_lang_macro_fmtstring_offset) + } else if (script->str_data[func].val == script->buildin_lang_macro_fmtstring_offset) { script->syntax.lang_macro_fmtstring_active = false; + } } if (!macro) { - if (0 == --script->syntax.nested_call) + if (0 == --script->syntax.nested_call) { script->syntax.last_func = -1; + } + script->addc(C_FUNC); } + return p; } @@ -1324,16 +1403,29 @@ static int script_string_dup(char *str) *------------------------------------------*/ static const char *parse_simpleexpr(const char *p) { - p=script->skip_space(p); + p = script->skip_space(p); nullpo_retr(NULL, p); - if (*p == ';' || *p == ',') - disp_error_message("parse_simpleexpr: unexpected end of expression",p); + + if (*p == ';' || *p == ',') { + disp_error_message("script:parse_simpleexpr: unexpected end of expression", p); + } + if (*p == '(') { return script->parse_simpleexpr_paren(p); } else if (is_number(p)) { return script->parse_simpleexpr_number(p); } else if(*p == '"') { + const char *p2 = p + 1; + + while (*p2 != '"') { + ++p2; + } + + if (p2[1] == ':' && p2[2] == ':') { + return script->parse_callfunc(p, 1, 0); // XXX: why does callfunc use int for booleans? + } + return script->parse_simpleexpr_string(p); } else { return script->parse_simpleexpr_name(p); @@ -1659,6 +1751,85 @@ static const char *parse_line(const char *p) return p; } +/** + * parses a local function expression + * + * expects these formats: + * function <name>; + * function <name> { <script> } + * + * this is invoked by script->parse_syntax() after checking whether the function + * is public or not + * + * @param p - a pointer to the start of the function expression + * @param is_public - whether this function should be accessible from outside the NPC scope + */ +static const char *parse_syntax_function (const char *p, bool is_public) +{ + const char *func_name = script->skip_space(p); // the name of the local function + p = script->skip_word(func_name); + + if (p == func_name) { + disp_error_message("script:parse_syntax_function: function name is missing or invalid", p); + } + + const char *p2 = script->skip_space(p); + + if (*p2 == ';') { + // function <name> ; + // function declaration - just register the name + int l = script->add_word(func_name); + + if (script->str_data[l].type == C_NOP) { + // register only, if the name was not used by something else + script->str_data[l].type = C_USERFUNC; + } else if (script->str_data[l].type != C_USERFUNC) { + disp_error_message("script:parse_syntax_function: function name is already in use", func_name); + } + + // Close condition of if, for, while + p = script->parse_syntax_close(p2 + 1); + return p; + } else if (*p2 == '{') { + // function <name> <line/block of code> + script->syntax.curly[script->syntax.curly_count].type = TYPE_USERFUNC; + script->syntax.curly[script->syntax.curly_count].count = 1; + script->syntax.curly[script->syntax.curly_count].index = script->syntax.index++; + script->syntax.curly[script->syntax.curly_count].flag = 0; + ++script->syntax.curly_count; + + // Jump over the function code + char label[256]; + sprintf(label, "goto __FN%x_FIN;", (unsigned int)script->syntax.curly[script->syntax.curly_count - 1].index); + script->syntax.curly[script->syntax.curly_count].type = TYPE_NULL; + ++script->syntax.curly_count; + script->parse_line(label); + --script->syntax.curly_count; + + // Set the position of the function (label) + int l = script->add_word(func_name); + + if (script->str_data[l].type == C_NOP || script->str_data[l].type == C_USERFUNC) { + // register only, if the name was not used by something else + script->str_data[l].type = C_USERFUNC; + script->set_label(l, VECTOR_LENGTH(script->buf), p); + + if ((script->parse_options & SCRIPT_USE_LABEL_DB) != 0) { + script->label_add(l, VECTOR_LENGTH(script->buf), + LABEL_IS_USERFUNC | (is_public ? LABEL_IS_EXTERN : 0)); + } + } else { + disp_error_message("script:parse_syntax_function: function name is already in use", func_name); + } + + return script->skip_space(p); + } else { + disp_error_message("script:parse_syntax_function: expected ';' or '{' at function syntax", p); + } + + return p; +} + // { ... } Closing process static const char *parse_curly_close(const char *p) { @@ -2002,65 +2173,11 @@ static const char *parse_syntax(const char *p) script->set_label(l, VECTOR_LENGTH(script->buf), p); return p; } else if( p2 - p == 8 && strncmp(p, "function", 8) == 0 ) { - // internal script function - const char *func_name; - - func_name = script->skip_space(p2); - p = script->skip_word(func_name); - if( p == func_name ) - disp_error_message("parse_syntax:function: function name is missing or invalid", p); - p2 = script->skip_space(p); - if( *p2 == ';' ) - {// function <name> ; - // function declaration - just register the name - int l; - l = script->add_word(func_name); - if( script->str_data[l].type == C_NOP )// register only, if the name was not used by something else - script->str_data[l].type = C_USERFUNC; - else if( script->str_data[l].type == C_USERFUNC ) - ; // already registered - else - disp_error_message("parse_syntax:function: function name is invalid", func_name); - - // Close condition of if, for, while - p = script->parse_syntax_close(p2 + 1); - return p; - } - else if(*p2 == '{') - {// function <name> <line/block of code> - char label[256]; - int l; - - script->syntax.curly[script->syntax.curly_count].type = TYPE_USERFUNC; - script->syntax.curly[script->syntax.curly_count].count = 1; - script->syntax.curly[script->syntax.curly_count].index = script->syntax.index++; - script->syntax.curly[script->syntax.curly_count].flag = 0; - ++script->syntax.curly_count; - - // Jump over the function code - sprintf(label, "goto __FN%x_FIN;", (unsigned int)script->syntax.curly[script->syntax.curly_count-1].index); - script->syntax.curly[script->syntax.curly_count].type = TYPE_NULL; - ++script->syntax.curly_count; - script->parse_line(label); - --script->syntax.curly_count; - - // Set the position of the function (label) - l=script->add_word(func_name); - if( script->str_data[l].type == C_NOP || script->str_data[l].type == C_USERFUNC )// register only, if the name was not used by something else - { - script->str_data[l].type = C_USERFUNC; - script->set_label(l, VECTOR_LENGTH(script->buf), p); - if( script->parse_options&SCRIPT_USE_LABEL_DB ) - script->label_add(l, VECTOR_LENGTH(script->buf)); - } - else - disp_error_message("parse_syntax:function: function name is invalid", func_name); - - return script->skip_space(p); - } - else - { - disp_error_message("expect ';' or '{' at function syntax",p); + // local function not marked as public or private + if (script->config.functions_private_by_default) { + return script->parse_syntax_function(p2, false); + } else { + return script->parse_syntax_function(p2, true); } } break; @@ -2088,6 +2205,26 @@ static const char *parse_syntax(const char *p) return p; } break; + case 'p': + case 'P': + if (p2 - p == 6 && strncmp(p, "public", 6) == 0) { + p2 = script->skip_space(p2); + const char *p3 = script->skip_word(p2); + + if (p3 - p2 == 8 && strncmp(p2, "function", 8) == 0) { + // local function explicitly marked as public + return script->parse_syntax_function(p3, true); + } + } else if (p2 - p == 7 && strncmp(p, "private", 7) == 0) { + p2 = script->skip_space(p2); + const char *p3 = script->skip_word(p2); + + if (p3 - p2 == 8 && strncmp(p2, "function", 8) == 0) { + // local function explicitly marked as private + return script->parse_syntax_function(p3, false); + } + } + break; case 's': case 'S': if( p2 - p == 6 && strncmp(p, "switch", 6) == 0 ) { @@ -2750,25 +2887,32 @@ static struct script_code *parse_script(const char *src, const char *file, int l } } - while( script->syntax.curly_count != 0 || *p != end ) - { - if( *p == '\0' ) - disp_error_message("unexpected end of script",p); + while (script->syntax.curly_count != 0 || *p != end) { + if (*p == '\0') { + disp_error_message("script:parse_script: unexpected end of script", p); + } + // Special handling only label - tmpp=script->skip_space(script->skip_word(p)); - if(*tmpp==':' && !(strncmp(p,"default:",8) == 0 && p + 7 == tmpp)) { - i=script->add_word(p); + tmpp = script->skip_space(script->skip_word(p)); + + if (*tmpp == ':' && !(strncmp(p, "default:", 8) == 0 && p + 7 == tmpp) + && !(strncmp(p, "function", 8) == 0 && script->skip_space(p + 8) == tmpp)) { + i = script->add_word(p); script->set_label(i, VECTOR_LENGTH(script->buf), p); - if( script->parse_options&SCRIPT_USE_LABEL_DB ) - script->label_add(i, VECTOR_LENGTH(script->buf)); - p=tmpp+1; - p=script->skip_space(p); + + if ((script->parse_options & SCRIPT_USE_LABEL_DB) != 0) { + bool is_extern = ((p[0] == 'O' || p[0] == 'o') && (p[1] == 'N' || p[1] == 'n')); + script->label_add(i, VECTOR_LENGTH(script->buf), is_extern ? LABEL_IS_EXTERN : 0); + } + + p = tmpp + 1; + p = script->skip_space(p); continue; } // All other lumped - p=script->parse_line(p); - p=script->skip_space(p); + p = script->parse_line(p); + p = script->skip_space(p); script->parse_nextline(false, p); } @@ -3477,6 +3621,32 @@ static void set_reg_instance_num(struct script_state *st, int64 num, const char } /** + * Validates if a variable is permanent (stored in database) by passed variable name. + * + * @param name The variable name to validate. + * @return True if variable is permanent, otherwise false. + * + **/ +static bool script_is_permanent_variable(const char *name) +{ + nullpo_retr(false, name); + + if (strlen(name) == 0) + return false; + + if (ISALNUM(name[0]) != 0) + return true; // Permanent characater variable. + + if (name[0] == '#') + return true; // Permanent (global) account variable. + + if (strlen(name) > 1 && name[0] == '$' && ISALNUM(name[1]) != 0) + return true; // Permanent server variable. + + return false; +} + +/** * Stores the value of a script variable * * @param st current script state. @@ -3521,6 +3691,18 @@ static int set_reg(struct script_state *st, struct map_session_data *sd, int64 n if (is_string_variable(name)) {// string variable const char *str = (const char*)value; + if (script->is_permanent_variable(name) && strlen(str) > SCRIPT_STRING_VAR_LENGTH) { + ShowError("script:set_reg: Value of variable %s is too long: %lu! Maximum is %d. Skipping...\n", + name, strlen(str), SCRIPT_STRING_VAR_LENGTH); + + if (st != NULL) { + script->reportsrc(st); + st->state = END; + } + + return 0; + } + switch (prefix) { case '@': if (ref) { @@ -4910,6 +5092,8 @@ static bool script_config_read(const char *filename, bool imported) libconfig->setting_lookup_bool_real(setting, "warn_func_mismatch_paramnum", &script->config.warn_func_mismatch_paramnum); libconfig->setting_lookup_bool_real(setting, "warn_func_mismatch_argtypes", &script->config.warn_func_mismatch_argtypes); + libconfig->setting_lookup_bool_real(setting, "functions_private_by_default", &script->config.functions_private_by_default); + libconfig->setting_lookup_bool_real(setting, "functions_as_events", &script->config.functions_as_events); libconfig->setting_lookup_int(setting, "check_cmdcount", &script->config.check_cmdcount); libconfig->setting_lookup_int(setting, "check_gotocount", &script->config.check_gotocount); libconfig->setting_lookup_int(setting, "input_min_value", &script->config.input_min_value); @@ -6479,6 +6663,111 @@ static BUILDIN(callfunc) return true; } + +/** + * Calls a local function within a NPC as if it was part of the current scope. + * Resumes execution in the previous scope once the NPC function returns. This + * is essentially a clone of buildin_callsub that can run in arbitrary NPCs. + * + * Usage: + * callfunctionofnpc("<npc name>", "<function name>"{, <arg>...}) + * callfunctionofnpc(<npc id>, "<function name>"{, <arg>...}) + * + * This buildin is also used internally by this syntax: + * "<npc name>"::<function name>({<arg>...}) + */ +static BUILDIN(callfunctionofnpc) { + struct npc_data *nd = NULL; + + if (script_isstring(st, 2)) { + nd = npc->name2id(script_getstr(st, 2)); + } else { + nd = map->id2nd(script_getnum(st, 2)); + } + + if (nd == NULL) { + ShowError("script:callfunctionofnpc: NPC not found.\n"); + st->state = END; + return false; + } + + const char *function_name = script_getstr(st, 3); + int pos = -1; + + // find the function label within the label list of the NPC + for (int i = 0; i < nd->u.scr.label_list_num; ++i) { + if (strcmp(nd->u.scr.label_list[i].name, function_name) == 0) { + if ((nd->u.scr.label_list[i].flags & LABEL_IS_EXTERN) != 0 + && (nd->u.scr.label_list[i].flags & LABEL_IS_USERFUNC) != 0) { + // function label found: set the start location + pos = nd->u.scr.label_list[i].pos; + } else if ((nd->u.scr.label_list[i].flags & LABEL_IS_USERFUNC) != 0) { + ShowError("script:callfunctionofnpc: function '%s' is not marked as public in NPC '%s'.\n", function_name, nd->name); + st->state = END; + return false; + } + break; + } + } + + if (pos < 0) { + ShowError("script:callfunctionofnpc: function '%s' not found in NPC '%s'!\n", function_name, nd->name); + st->state = END; + return false; + } + + // alloc a reg_db reference of the current scope for the new scope + struct reg_db *ref = (struct reg_db *)aCalloc(sizeof(struct reg_db), 2); + // scope variables (.@var) + ref[0].vars = st->stack->scope.vars; + ref[0].arrays = st->stack->scope.arrays; + // npc variables (.var) + ref[1].vars = st->script->local.vars; + ref[1].arrays = st->script->local.arrays; + + int i = 0; + + // make sure the arguments we push retain their current reg_db references: + // this allows to do things like set(getarg(0), ...) + for (i = st->start + 4; i < st->end; i++) { + struct script_data *data = script->push_copy(st->stack, i); + + if (data_isreference(data) && data->ref == NULL) { + const char *name = reference_getname(data); + + if (name[0] == '.') { + data->ref = (name[1] == '@' ? &ref[0] : &ref[1]); + } + } + } + + // save the previous scope + struct script_retinfo *ri = NULL; + CREATE(ri, struct script_retinfo, 1); + ri->script = st->script; // script code + ri->scope.vars = st->stack->scope.vars; // scope variables + ri->scope.arrays = st->stack->scope.arrays; // scope arrays + ri->pos = st->pos; // script location + ri->nargs = i - st->start - 4; // argument count + ri->defsp = st->stack->defsp; // default stack pointer + script->push_retinfo(st->stack, ri, ref); + + // change the current scope to the scope of the function + st->pos = pos; + st->script = nd->u.scr.script; + st->stack->defsp = st->stack->sp; + st->state = GOTO; + st->stack->scope.vars = i64db_alloc(DB_OPT_RELEASE_DATA); + st->stack->scope.arrays = idb_alloc(DB_OPT_BASE); + + // make sure local reg_db of the other NPC is initialized + if (st->script->local.vars == NULL) { + st->script->local.vars = i64db_alloc(DB_OPT_RELEASE_DATA); + } + + return true; +} + /*========================================== * subroutine call *------------------------------------------*/ @@ -11080,36 +11369,33 @@ static BUILDIN(itemskill) { struct map_session_data *sd = script->rid2sd(st); - if (sd == NULL || sd->ud.skilltimer != INVALID_TIMER) + if (sd == NULL) return true; - pc->itemskill_clear(sd); - sd->skillitem = script_isstringtype(st, 2) ? skill->name2id(script_getstr(st, 2)) : script_getnum(st, 2); - sd->skillitemlv = script_getnum(st, 3); - sd->state.itemskill_conditions_checked = 0; // Skill casting items will check the conditions prior to the target selection in AEGIS. Thus we need a flag to prevent checking them twice. + sd->auto_cast_current.type = AUTOCAST_ITEM; + sd->auto_cast_current.skill_id = script_isstringtype(st, 2) ? skill->name2id(script_getstr(st, 2)) : script_getnum(st, 2); + sd->auto_cast_current.skill_lv = script_getnum(st, 3); int flag = script_hasdata(st, 4) ? script_getnum(st, 4) : ISF_NONE; - sd->state.itemskill_check_conditions = ((flag & ISF_CHECKCONDITIONS) == ISF_CHECKCONDITIONS) ? 1 : 0; // Unset in pc_itemskill_clear(). + sd->auto_cast_current.itemskill_check_conditions = ((flag & ISF_CHECKCONDITIONS) == ISF_CHECKCONDITIONS); - if (sd->state.itemskill_check_conditions == 1) { - if (skill->check_condition_castbegin(sd, sd->skillitem, sd->skillitemlv) == 0 - || skill->check_condition_castend(sd, sd->skillitem, sd->skillitemlv) == 0) { - pc->itemskill_clear(sd); + if (sd->auto_cast_current.itemskill_check_conditions) { + if (skill->check_condition_castbegin(sd, sd->auto_cast_current.skill_id, sd->auto_cast_current.skill_lv) == 0 + || skill->check_condition_castend(sd, sd->auto_cast_current.skill_id, sd->auto_cast_current.skill_lv) == 0) { return true; } - sd->state.itemskill_conditions_checked = 1; // Unset in pc_itemskill_clear(). + sd->auto_cast_current.itemskill_conditions_checked = true; } - sd->state.itemskill_no_casttime = ((flag & ISF_INSTANTCAST) == ISF_INSTANTCAST) ? 1 : 0; // Unset in pc_itemskill_clear(). - sd->state.itemskill_castonself = ((flag & ISF_CASTONSELF) == ISF_CASTONSELF) ? 1 : 0; // Unset in pc_itemskill_clear(). + sd->auto_cast_current.itemskill_instant_cast = ((flag & ISF_INSTANTCAST) == ISF_INSTANTCAST); + sd->auto_cast_current.itemskill_cast_on_self = ((flag & ISF_CASTONSELF) == ISF_CASTONSELF); - // itemskill_conditions_checked/itemskill_no_conditions/itemskill_no_casttime/itemskill_castonself abuse prevention. Unset in pc_itemskill_clear(). - sd->itemskill_id = sd->skillitem; - sd->itemskill_lv = sd->skillitemlv; + VECTOR_ENSURE(sd->auto_cast, 1, 1); + VECTOR_PUSH(sd->auto_cast, sd->auto_cast_current); - clif->item_skill(sd, sd->skillitem, sd->skillitemlv); + clif->item_skill(sd, sd->auto_cast_current.skill_id, sd->auto_cast_current.skill_lv); return true; } @@ -15034,10 +15320,10 @@ static BUILDIN(getiteminfo) script_pushint(st, it->nameid); break; case ITEMINFO_AEGISNAME: - script_pushstr(st, it->name); + script_pushstrcopy(st, it->name); break; case ITEMINFO_NAME: - script_pushstr(st, it->jname); + script_pushstrcopy(st, it->jname); break; default: ShowError("buildin_getiteminfo: Invalid item info type %d.\n", type); @@ -16197,7 +16483,6 @@ static BUILDIN(atcommand) struct map_session_data *sd, *dummy_sd = NULL; int fd; const char* cmd; - bool ret = true; cmd = script_getstr(st,2); @@ -16220,11 +16505,12 @@ static BUILDIN(atcommand) if (!atcommand->exec(fd, sd, cmd, false)) { ShowWarning("script: buildin_atcommand: failed to execute command '%s'\n", cmd); - script->reportsrc(st); - ret = false; + if (dummy_sd != NULL) + aFree(dummy_sd); + return false; } if (dummy_sd) aFree(dummy_sd); - return ret; + return true; } /** @@ -18948,7 +19234,14 @@ static BUILDIN(npcshopdelitem) size--; } - RECREATE(nd->u.shop.shop_item, struct npc_item_list, size); + int alloc_size = size; + if (size < 0) { + size = 0; + alloc_size = 1; + } else if (size < 1) { + alloc_size = 1; + } + RECREATE(nd->u.shop.shop_item, struct npc_item_list, alloc_size); nd->u.shop.count = size; script_pushint(st,1); @@ -19349,12 +19642,14 @@ static BUILDIN(pcblockmove) static BUILDIN(setpcblock) { - struct map_session_data *sd = script->rid2sd(st); + struct map_session_data *sd = script_hasdata(st, 4) ? script->id2sd(st, script_getnum(st, 4)) : script->rid2sd(st); enum pcblock_action_flag type = script_getnum(st, 2); int state = (script_getnum(st, 3) > 0) ? 1 : 0; - if (sd == NULL) + if (sd == NULL) { + script_pushint(st, 0); return true; + } if ((type & PCBLOCK_MOVE) != 0) sd->block_action.move = state; @@ -19383,12 +19678,13 @@ static BUILDIN(setpcblock) if ((type & PCBLOCK_NPC) != 0) sd->block_action.npc = state; + script_pushint(st, 1); return true; } static BUILDIN(checkpcblock) { - struct map_session_data *sd = script->rid2sd(st); + struct map_session_data *sd = script_hasdata(st, 2) ? script->id2sd(st, script_getnum(st, 2)) : script->rid2sd(st); int retval = PCBLOCK_NONE; if (sd == NULL) { @@ -19497,26 +19793,25 @@ static BUILDIN(getunittype) /** * Sets real-time unit data for a game object. - * Setunitdata <GUID>,<DataType>,<Val1>{,<Val2>,<Val3>} + * + * @code{.herc} + * setunitdata <GUID>, <DataType>, <Val1>{, <Val2>, <Val3>} + * @endcode + * * @param1 GUID GID of the unit. * @param2 DataType Type of Data to be set for the unit. * @param3 Value#1 Value to be passed as change in data. * @param4 Value#2 Optional int value to be passed for certain data types. * @param5 Value#3 Optional int value to be passed for certain data types. * @return 1 on success, 0 on failure. - - Note: Please make this script command only modify ONE INTEGER value. - If need to modify string type data, or having multiple arguments, please - introduce a new script command. - */ + * + * Note: Please make this script command only modify ONE INTEGER value. + * If need to modify string type data, or having multiple arguments, please introduce a new script command. + * + **/ static BUILDIN(setunitdata) { - struct block_list *bl = NULL; - const char *mapname = NULL, *udtype = NULL; - int type = 0, val = 0, val2 = 0, val3 = 0; - struct map_session_data *tsd = NULL; - - bl = map->id2bl(script_getnum(st, 2)); + struct block_list *bl = map->id2bl(script_getnum(st, 2)); if (bl == NULL) { ShowWarning("buildin_setunitdata: Error in finding object with given GID %d!\n", script_getnum(st, 2)); @@ -19524,22 +19819,26 @@ static BUILDIN(setunitdata) return false; } - type = script_getnum(st, 3); + int type = script_getnum(st, 3); - /* type bounds */ + // Type bounds. if (type < UDT_SIZE || type >= UDT_MAX) { // Note: UDT_TYPE is not valid here ShowError("buildin_setunitdata: Invalid unit data type %d provided.\n", type); script_pushint(st, 0); return false; } - /* Mandatory Argument 3. Subject to deprecate. */ + const char *mapname = NULL; + int val = 0; + + // Mandatory argument #3. Subject to deprecate. if (type == UDT_MAPIDXY) { if (!script_isstringtype(st, 4)) { ShowError("buildin_setunitdata: Invalid data type for argument #3.\n"); script_pushint(st, 0); return false; } + mapname = script_getstr(st, 4); } else { if (script_isstringtype(st, 4)) { @@ -19547,68 +19846,87 @@ static BUILDIN(setunitdata) script_pushint(st, 0); return false; } + val = script_getnum(st, 4); } -/* checks if value is out of bounds. */ + +/**************************************************************************************************** + * Define temporary macros. [BEGIN] + ****************************************************************************************************/ + +// Checks if value is out of bounds. #define setunitdata_check_bounds(arg, min, max) \ do { \ if (script_getnum(st, (arg)) < (min) || script_getnum(st, (arg)) > (max)) { \ - ShowError("buildin_setunitdata: Invalid value %d for argument #%d. (min: %d, max: %d)\n", script_getnum(st, (arg)), (arg)-1, (min), (max)); \ + ShowError("buildin_setunitdata: Invalid value %d for argument #%d. (min: %d, max: %d)\n", \ + script_getnum(st, (arg)), (arg) - 1, (min), (max)); \ script_pushint(st, 0); \ return false; \ } \ } while(0); -/* checks if value is out of bounds. */ + +// Checks if value is too low. #define setunitdata_check_min(arg, min) \ do { \ if (script_getnum(st, (arg)) < (min)) { \ - ShowError("buildin_setunitdata: Invalid value %d for argument #%d. (min: %d)\n", script_getnum(st, (arg)), (arg)-1, (min)); \ + ShowError("buildin_setunitdata: Invalid value %d for argument #%d. (min: %d)\n", \ + script_getnum(st, (arg)), (arg) - 1, (min)); \ script_pushint(st, 0); \ return false; \ } \ } while(0); -/* checks if the argument doesn't exist, if required. - * also checks if the argument exists, if not required. */ + +// Checks if the argument doesn't exist, if required. Also checks if the argument exists, if not required. #define setunitdata_assert_arg(arg, required) \ do { \ if (required && !script_hasdata(st, (arg))) { \ - ShowError("buildin_setunitdata: Type %d reqires argument #%d.\n", type, (arg)-1); \ + ShowError("buildin_setunitdata: Type %d reqires argument #%d.\n", type, (arg) - 1); \ script_pushint(st, 0); \ return false; \ } else if (!required && script_hasdata(st, arg)) { \ - ShowError("buildin_setunitdata: Argument %d is not required for type %d.\n", (arg)-1, type); \ + ShowError("buildin_setunitdata: Argument %d is not required for type %d.\n", (arg) - 1, type); \ script_pushint(st, 0); \ return false; \ } \ } while (0); -/* checks if the data is an integer. */ + +// Checks if the data is an integer. #define setunitdata_check_int(arg) \ do { \ setunitdata_assert_arg((arg), true); \ if (script_isstringtype(st, (arg))) { \ - ShowError("buildin_setunitdata: Argument #%d expects integer, string given.\n", (arg)-1); \ + ShowError("buildin_setunitdata: Argument #%d expects integer, string given.\n", (arg) - 1); \ script_pushint(st, 0); \ return false; \ } \ } while(0); -/* checks if the data is a string. */ + +// Checks if the data is a string. #define setunitdata_check_string(arg) \ do { \ setunitdata_assert_arg((arg), true); \ if (script_isinttype(st, (arg))) { \ - ShowError("buildin_setunitdata: Argument #%d expects string, integer given.\n", (arg)-1); \ + ShowError("buildin_setunitdata: Argument #%d expects string, integer given.\n", (arg) - 1); \ script_pushint(st, 0); \ return false; \ } \ } while(0); +/**************************************************************************************************** + * Define temporary macros. [END] + ****************************************************************************************************/ + if (type != UDT_MAPIDXY && type != UDT_WALKTOXY) { setunitdata_assert_arg(5, false); setunitdata_assert_arg(6, false); } - switch (type) - { + int val2 = 0; + int val3 = 0; + + struct map_session_data *tsd = NULL; + + switch (type) { case UDT_SIZE: setunitdata_check_bounds(4, SZ_SMALL, SZ_BIG); break; @@ -19634,30 +19952,36 @@ static BUILDIN(setunitdata) case UDT_MASTERAID: setunitdata_check_min(4, 0); tsd = map->id2sd(val); + if (tsd == NULL) { - ShowWarning("buildin_setunitdata: Account ID %d not found for master change!\n",val); + ShowWarning("buildin_setunitdata: Account ID %d not found for master change!\n", val); script_pushint(st, 0); return false; } + break; case UDT_MASTERCID: setunitdata_check_min(4, 0); tsd = map->charid2sd(val); + if (tsd == NULL) { - ShowWarning("buildin_setunitdata: Character ID %d not found for master change!\n",val); + ShowWarning("buildin_setunitdata: Character ID %d not found for master change!\n", val); script_pushint(st, 0); return false; } + break; case UDT_MAPIDXY: - if ((val = map->mapname2mapid(mapname)) == -1) { + if ((val = map->mapname2mapid(mapname)) == INDEX_NOT_FOUND) { ShowError("buildin_setunitdata: Non-existent map %s provided.\n", mapname); + script_pushint(st, 0); return false; } + setunitdata_check_int(5); setunitdata_check_int(6); - setunitdata_check_bounds(5, 0, MAX_MAP_SIZE/2); - setunitdata_check_bounds(6, 0, MAX_MAP_SIZE/2); + setunitdata_check_bounds(5, 0, MAX_MAP_SIZE / 2); + setunitdata_check_bounds(6, 0, MAX_MAP_SIZE / 2); val2 = script_getnum(st, 5); val3 = script_getnum(st, 6); break; @@ -19665,8 +19989,8 @@ static BUILDIN(setunitdata) setunitdata_assert_arg(6, false); setunitdata_check_int(5); val2 = script_getnum(st, 5); - setunitdata_check_bounds(4, 0, MAX_MAP_SIZE/2); - setunitdata_check_bounds(5, 0, MAX_MAP_SIZE/2); + setunitdata_check_bounds(4, 0, MAX_MAP_SIZE / 2); + setunitdata_check_bounds(5, 0, MAX_MAP_SIZE / 2); break; case UDT_SPEED: setunitdata_check_bounds(4, 0, MAX_WALK_SPEED); @@ -19721,7 +20045,7 @@ static BUILDIN(setunitdata) setunitdata_check_bounds(4, 0, SHRT_MAX); break; case UDT_HUNGER: - setunitdata_check_bounds(4, 0, 99); + setunitdata_check_bounds(4, PET_HUNGER_STARVING, PET_HUNGER_STUFFED); // Pets and Homunculi have the same hunger value bounds. break; case UDT_RACE: case UDT_ELETYPE: @@ -19729,19 +20053,20 @@ static BUILDIN(setunitdata) setunitdata_check_bounds(4, 0, CHAR_MAX); break; case UDT_GROUP: - { setunitdata_check_bounds(4, 0, INT_MAX); + struct unit_data *ud = unit->bl2ud2(bl); + if (ud == NULL) { ShowError("buildin_setunitdata: ud is NULL!\n"); script_pushint(st, 0); return false; } + ud->groupId = script_getnum(st, 4); clif->blname_ack(0, bl); // Send update to client. script_pushint(st, 1); return true; - } case UDT_DAMAGE_TAKEN_RATE: setunitdata_check_bounds(4, 1, INT_MAX); break; @@ -19749,67 +20074,81 @@ static BUILDIN(setunitdata) break; } +/**************************************************************************************************** + * Undefine temporary macros. [BEGIN] + ****************************************************************************************************/ + #undef setunitdata_check_bounds +#undef setunitdata_check_min #undef setunitdata_assert_arg #undef setunitdata_check_int #undef setunitdata_check_string - /* Set the values */ +/**************************************************************************************************** + * Undefine temporary macros. [END] + ****************************************************************************************************/ + + // Set the values. switch (bl->type) { - case BL_MOB: - { + case BL_MOB: { struct mob_data *md = BL_UCAST(BL_MOB, bl); - nullpo_retr(false, md); - switch (type) - { + if (md == NULL) { + ShowError("buildin_setunitdata: Can't find monster for GID %d!\n", script_getnum(st, 2)); + script_pushint(st, 0); + return false; + } + + switch (type) { case UDT_SIZE: - md->status.size = (unsigned char) val; + md->status.size = (unsigned char)val; break; case UDT_LEVEL: md->level = val; - if (battle_config.show_mob_info & 4) + + if ((battle_config.show_mob_info & 4) != 0) clif->blname_ack(0, &md->bl); + break; case UDT_HP: - status->set_hp(bl, (unsigned int) val, STATUS_HEAL_DEFAULT); + status->set_hp(bl, (unsigned int)val, STATUS_HEAL_DEFAULT); clif->blname_ack(0, &md->bl); break; case UDT_MAXHP: - md->status.max_hp = (unsigned int) val; + md->status.max_hp = (unsigned int)val; clif->blname_ack(0, &md->bl); break; case UDT_SP: - status->set_sp(bl, (unsigned int) val, STATUS_HEAL_DEFAULT); + status->set_sp(bl, (unsigned int)val, STATUS_HEAL_DEFAULT); break; case UDT_MAXSP: - md->status.max_sp = (unsigned int) val; + md->status.max_sp = (unsigned int)val; break; case UDT_MASTERAID: md->master_id = val; break; case UDT_MAPIDXY: - unit->warp(bl, (short) val, (short) val2, (short) val3, CLR_TELEPORT); + unit->warp(bl, (short)val, (short)val2, (short)val3, CLR_TELEPORT); break; case UDT_WALKTOXY: if (unit->walk_toxy(bl, (short)val, (short)val2, 2) != 0) - unit->movepos(bl, (short) val, (short) val2, 0, 0); + unit->movepos(bl, (short)val, (short)val2, 0, 0); break; case UDT_SPEED: - md->status.speed = (unsigned short) val; + md->status.speed = (unsigned short)val; status->calc_misc(bl, &md->status, md->level); break; case UDT_MODE: - md->status.mode = (enum e_mode) val; + md->status.mode = (enum e_mode)val; break; case UDT_AI: - md->special_state.ai = (enum ai) val; + md->special_state.ai = (enum ai)val; break; case UDT_SCOPTION: - md->sc.option = (unsigned int) val; + md->sc.option = (unsigned int)val; break; case UDT_SEX: - md->vd->sex = (char) val; + md->vd->sex = (char)val; break; case UDT_CLASS: mob->class_change(md, val); @@ -19845,112 +20184,115 @@ static BUILDIN(setunitdata) md->ud.canmove_tick = val; break; case UDT_STR: - md->status.str = (unsigned short) val; + md->status.str = (unsigned short)val; status->calc_misc(bl, &md->status, md->level); break; case UDT_AGI: - md->status.agi = (unsigned short) val; + md->status.agi = (unsigned short)val; status->calc_misc(bl, &md->status, md->level); break; case UDT_VIT: - md->status.vit = (unsigned short) val; + md->status.vit = (unsigned short)val; status->calc_misc(bl, &md->status, md->level); break; case UDT_INT: - md->status.int_ = (unsigned short) val; + md->status.int_ = (unsigned short)val; status->calc_misc(bl, &md->status, md->level); break; case UDT_DEX: - md->status.dex = (unsigned short) val; + md->status.dex = (unsigned short)val; status->calc_misc(bl, &md->status, md->level); break; case UDT_LUK: - md->status.luk = (unsigned short) val; + md->status.luk = (unsigned short)val; status->calc_misc(bl, &md->status, md->level); break; case UDT_ATKRANGE: - md->status.rhw.range = (unsigned short) val; + md->status.rhw.range = (unsigned short)val; break; case UDT_ATKMIN: - md->status.rhw.atk = (unsigned short) val; + md->status.rhw.atk = (unsigned short)val; break; case UDT_ATKMAX: - md->status.rhw.atk2 = (unsigned short) val; + md->status.rhw.atk2 = (unsigned short)val; break; case UDT_MATKMIN: - md->status.matk_min = (unsigned short) val; + md->status.matk_min = (unsigned short)val; break; case UDT_MATKMAX: - md->status.matk_max = (unsigned short) val; + md->status.matk_max = (unsigned short)val; break; case UDT_DEF: - md->status.def = (defType) val; + md->status.def = (defType)val; break; case UDT_MDEF: - md->status.mdef = (defType) val; + md->status.mdef = (defType)val; break; case UDT_HIT: - md->status.hit = (short) val; + md->status.hit = (short)val; break; case UDT_FLEE: - md->status.flee = (short) val; + md->status.flee = (short)val; break; case UDT_PDODGE: - md->status.flee2 = (short) val; + md->status.flee2 = (short)val; break; case UDT_CRIT: - md->status.cri = (short) val; + md->status.cri = (short)val; break; case UDT_RACE: - md->status.race = (unsigned char) val; + md->status.race = (unsigned char)val; break; case UDT_ELETYPE: - md->status.def_ele = (unsigned char) val; + md->status.def_ele = (unsigned char)val; break; case UDT_ELELEVEL: - md->status.ele_lv = (unsigned char) val; + md->status.ele_lv = (unsigned char)val; break; case UDT_AMOTION: - md->status.amotion = (unsigned short) val; + md->status.amotion = (unsigned short)val; break; case UDT_ADELAY: - md->status.adelay = (unsigned short) val; + md->status.adelay = (unsigned short)val; break; case UDT_DMOTION: - md->status.dmotion = (unsigned short) val; + md->status.dmotion = (unsigned short)val; break; case UDT_DAMAGE_TAKEN_RATE: - md->dmg_taken_rate = (int) val; + md->dmg_taken_rate = (int)val; break; default: - ShowWarning("buildin_setunitdata: Invalid data type '%s' for mob unit.\n", udtype); + ShowWarning("buildin_setunitdata: Invalid data type '%d' for mob unit.\n", type); script_pushint(st, 0); return false; } - } + break; - case BL_HOM: - { + } + case BL_HOM: { struct homun_data *hd = BL_UCAST(BL_HOM, bl); - nullpo_retr(false, hd); + if (hd == NULL) { + ShowError("buildin_setunitdata: Can't find Homunculus for GID %d!\n", script_getnum(st, 2)); + script_pushint(st, 0); + return false; + } - switch (type) - { + switch (type) { case UDT_SIZE: - hd->base_status.size = (unsigned char) val; + hd->base_status.size = (unsigned char)val; break; case UDT_LEVEL: - hd->homunculus.level = (short) val; + hd->homunculus.level = (short)val; break; case UDT_HP: - status->set_hp(bl, (unsigned int) val, STATUS_HEAL_DEFAULT); + status->set_hp(bl, (unsigned int)val, STATUS_HEAL_DEFAULT); break; case UDT_MAXHP: hd->homunculus.max_hp = val; break; case UDT_SP: - status->set_sp(bl, (unsigned int) val, STATUS_HEAL_DEFAULT); + status->set_sp(bl, (unsigned int)val, STATUS_HEAL_DEFAULT); break; case UDT_MAXSP: hd->homunculus.max_sp = val; @@ -19960,14 +20302,14 @@ static BUILDIN(setunitdata) hd->master = tsd; break; case UDT_MAPIDXY: - unit->warp(bl, (short) val, (short) val2, (short) val3, CLR_TELEPORT); + unit->warp(bl, (short)val, (short)val2, (short)val3, CLR_TELEPORT); break; case UDT_WALKTOXY: if (unit->walk_toxy(bl, (short)val, (short)val2, 2) != 0) - unit->movepos(bl, (short) val, (short) val2, 0, 0); + unit->movepos(bl, (short)val, (short)val2, 0, 0); break; case UDT_SPEED: - hd->base_status.speed = (unsigned short) val; + hd->base_status.speed = (unsigned short)val; status->calc_misc(bl, &hd->base_status, hd->homunculus.level); break; case UDT_LOOKDIR: @@ -19977,136 +20319,138 @@ static BUILDIN(setunitdata) hd->ud.canmove_tick = val; break; case UDT_STR: - hd->base_status.str = (unsigned short) val; + hd->base_status.str = (unsigned short)val; status->calc_misc(bl, &hd->base_status, hd->homunculus.level); break; case UDT_AGI: - hd->base_status.agi = (unsigned short) val; + hd->base_status.agi = (unsigned short)val; status->calc_misc(bl, &hd->base_status, hd->homunculus.level); break; case UDT_VIT: - hd->base_status.vit = (unsigned short) val; + hd->base_status.vit = (unsigned short)val; status->calc_misc(bl, &hd->base_status, hd->homunculus.level); break; case UDT_INT: - hd->base_status.int_ = (unsigned short) val; + hd->base_status.int_ = (unsigned short)val; status->calc_misc(bl, &hd->base_status, hd->homunculus.level); break; case UDT_DEX: - hd->base_status.dex = (unsigned short) val; + hd->base_status.dex = (unsigned short)val; status->calc_misc(bl, &hd->base_status, hd->homunculus.level); break; case UDT_LUK: - hd->base_status.luk = (unsigned short) val; + hd->base_status.luk = (unsigned short)val; status->calc_misc(bl, &hd->base_status, hd->homunculus.level); break; case UDT_ATKRANGE: - hd->base_status.rhw.range = (unsigned short) val; + hd->base_status.rhw.range = (unsigned short)val; break; case UDT_ATKMIN: - hd->base_status.rhw.atk = (unsigned short) val; + hd->base_status.rhw.atk = (unsigned short)val; break; case UDT_ATKMAX: - hd->base_status.rhw.atk2 = (unsigned short) val; + hd->base_status.rhw.atk2 = (unsigned short)val; break; case UDT_MATKMIN: - hd->base_status.matk_min = (unsigned short) val; + hd->base_status.matk_min = (unsigned short)val; break; case UDT_MATKMAX: - hd->base_status.matk_max = (unsigned short) val; + hd->base_status.matk_max = (unsigned short)val; break; case UDT_DEF: - hd->base_status.def = (defType) val; + hd->base_status.def = (defType)val; break; case UDT_MDEF: - hd->base_status.mdef = (defType) val; + hd->base_status.mdef = (defType)val; break; case UDT_HIT: - hd->base_status.hit = (short) val; + hd->base_status.hit = (short)val; break; case UDT_FLEE: - hd->base_status.flee = (short) val; + hd->base_status.flee = (short)val; break; case UDT_PDODGE: - hd->base_status.flee2 = (short) val; + hd->base_status.flee2 = (short)val; break; case UDT_CRIT: - hd->base_status.cri = (short) val; + hd->base_status.cri = (short)val; break; case UDT_RACE: - hd->base_status.race = (unsigned char) val; + hd->base_status.race = (unsigned char)val; break; case UDT_ELETYPE: - hd->base_status.def_ele = (unsigned char) val; + hd->base_status.def_ele = (unsigned char)val; break; case UDT_ELELEVEL: - hd->base_status.ele_lv = (unsigned char) val; + hd->base_status.ele_lv = (unsigned char)val; break; case UDT_AMOTION: - hd->base_status.amotion = (unsigned short) val; + hd->base_status.amotion = (unsigned short)val; break; case UDT_ADELAY: - hd->base_status.adelay = (unsigned short) val; + hd->base_status.adelay = (unsigned short)val; break; case UDT_DMOTION: - hd->base_status.dmotion = (unsigned short) val; + hd->base_status.dmotion = (unsigned short)val; break; case UDT_HUNGER: - hd->homunculus.hunger = (short) val; + hd->homunculus.hunger = (short)val; clif->send_homdata(hd->master, SP_HUNGRY, hd->homunculus.hunger); break; case UDT_INTIMACY: - homun->add_intimacy(hd, (unsigned int) val); + homun->add_intimacy(hd, (unsigned int)val); clif->send_homdata(hd->master, SP_INTIMATE, hd->homunculus.intimacy / 100); break; default: - ShowWarning("buildin_setunitdata: Invalid data type '%s' for homunculus unit.\n", udtype); + ShowWarning("buildin_setunitdata: Invalid data type '%d' for homunculus unit.\n", type); script_pushint(st, 0); return false; } - clif->send_homdata(hd->master, SP_ACK, 0); // send homun data - } + clif->send_homdata(hd->master, SP_ACK, 0); // Send Homunculus data. break; - case BL_PET: - { + } + case BL_PET: { struct pet_data *pd = BL_UCAST(BL_PET, bl); - nullpo_retr(false, pd); + if (pd == NULL) { + ShowError("buildin_setunitdata: Can't find pet for GID %d!\n", script_getnum(st, 2)); + script_pushint(st, 0); + return false; + } - switch (type) - { + switch (type) { case UDT_SIZE: - pd->status.size = (unsigned char) val; + pd->status.size = (unsigned char)val; break; case UDT_LEVEL: - pd->pet.level = (short) val; + pd->pet.level = (short)val; break; case UDT_HP: - status->set_hp(bl, (unsigned int) val, STATUS_HEAL_DEFAULT); + status->set_hp(bl, (unsigned int)val, STATUS_HEAL_DEFAULT); break; case UDT_MAXHP: - pd->status.max_hp = (unsigned int) val; + pd->status.max_hp = (unsigned int)val; break; case UDT_SP: - status->set_sp(bl, (unsigned int) val, STATUS_HEAL_DEFAULT); + status->set_sp(bl, (unsigned int)val, STATUS_HEAL_DEFAULT); break; case UDT_MAXSP: - pd->status.max_sp = (unsigned int) val; + pd->status.max_sp = (unsigned int)val; break; case UDT_MASTERAID: pd->pet.account_id = val; pd->msd = tsd; break; case UDT_MAPIDXY: - unit->warp(bl, (short) val, (short) val2, (short) val3, CLR_TELEPORT); + unit->warp(bl, (short)val, (short)val2, (short)val3, CLR_TELEPORT); break; case UDT_WALKTOXY: if (unit->walk_toxy(bl, (short)val, (short)val2, 2) != 0) - unit->movepos(bl, (short) val, (short) val2, 0, 0); + unit->movepos(bl, (short)val, (short)val2, 0, 0); break; case UDT_SPEED: - pd->status.speed = (unsigned short) val; + pd->status.speed = (unsigned short)val; status->calc_misc(bl, &pd->status, pd->pet.level); break; case UDT_LOOKDIR: @@ -20116,130 +20460,133 @@ static BUILDIN(setunitdata) pd->ud.canmove_tick = val; break; case UDT_STR: - pd->status.str = (unsigned short) val; + pd->status.str = (unsigned short)val; status->calc_misc(bl, &pd->status, pd->pet.level); break; case UDT_AGI: - pd->status.agi = (unsigned short) val; + pd->status.agi = (unsigned short)val; status->calc_misc(bl, &pd->status, pd->pet.level); break; case UDT_VIT: - pd->status.vit = (unsigned short) val; + pd->status.vit = (unsigned short)val; status->calc_misc(bl, &pd->status, pd->pet.level); break; case UDT_INT: - pd->status.int_ = (unsigned short) val; + pd->status.int_ = (unsigned short)val; status->calc_misc(bl, &pd->status, pd->pet.level); break; case UDT_DEX: - pd->status.dex = (unsigned short) val; + pd->status.dex = (unsigned short)val; status->calc_misc(bl, &pd->status, pd->pet.level); break; case UDT_LUK: - pd->status.luk = (unsigned short) val; + pd->status.luk = (unsigned short)val; status->calc_misc(bl, &pd->status, pd->pet.level); break; case UDT_ATKRANGE: - pd->status.rhw.range = (unsigned short) val; + pd->status.rhw.range = (unsigned short)val; break; case UDT_ATKMIN: - pd->status.rhw.atk = (unsigned short) val; + pd->status.rhw.atk = (unsigned short)val; break; case UDT_ATKMAX: - pd->status.rhw.atk2 = (unsigned short) val; + pd->status.rhw.atk2 = (unsigned short)val; break; case UDT_MATKMIN: - pd->status.matk_min = (unsigned short) val; + pd->status.matk_min = (unsigned short)val; break; case UDT_MATKMAX: - pd->status.matk_max = (unsigned short) val; + pd->status.matk_max = (unsigned short)val; break; case UDT_DEF: - pd->status.def = (defType) val; + pd->status.def = (defType)val; break; case UDT_MDEF: - pd->status.mdef = (defType) val; + pd->status.mdef = (defType)val; break; case UDT_HIT: - pd->status.hit = (short) val; + pd->status.hit = (short)val; break; case UDT_FLEE: - pd->status.flee = (short) val; + pd->status.flee = (short)val; break; case UDT_PDODGE: - pd->status.flee2 = (short) val; + pd->status.flee2 = (short)val; break; case UDT_CRIT: - pd->status.cri = (short) val; + pd->status.cri = (short)val; break; case UDT_RACE: - pd->status.race = (unsigned char) val; + pd->status.race = (unsigned char)val; break; case UDT_ELETYPE: - pd->status.def_ele = (unsigned char) val; + pd->status.def_ele = (unsigned char)val; break; case UDT_ELELEVEL: - pd->status.ele_lv = (unsigned char) val; + pd->status.ele_lv = (unsigned char)val; break; case UDT_AMOTION: - pd->status.amotion = (unsigned short) val; + pd->status.amotion = (unsigned short)val; break; case UDT_ADELAY: - pd->status.adelay = (unsigned short) val; + pd->status.adelay = (unsigned short)val; break; case UDT_DMOTION: - pd->status.dmotion = (unsigned short) val; + pd->status.dmotion = (unsigned short)val; break; case UDT_INTIMACY: pet->set_intimate(pd, val); clif->send_petdata(pd->msd, pd, 1, pd->pet.intimate); break; case UDT_HUNGER: - pd->pet.hungry = (short) val; + pet->set_hunger(pd, val); break; default: - ShowWarning("buildin_setunitdata: Invalid data type '%s' for pet unit.\n", udtype); + ShowWarning("buildin_setunitdata: Invalid data type '%d' for pet unit.\n", type); script_pushint(st, 0); return false; } - clif->send_petstatus(pd->msd); // send pet data - } + + clif->send_petstatus(pd->msd); // Send pet data. break; - case BL_MER: - { + } + case BL_MER: { struct mercenary_data *mc = BL_UCAST(BL_MER, bl); - nullpo_retr(false, mc); + if (mc == NULL) { + ShowError("buildin_setunitdata: Can't find mercenary for GID %d!\n", script_getnum(st, 2)); + script_pushint(st, 0); + return false; + } - switch (type) - { + switch (type) { case UDT_SIZE: - mc->base_status.size = (unsigned char) val; + mc->base_status.size = (unsigned char)val; break; case UDT_HP: - status->set_hp(bl, (unsigned int) val, STATUS_HEAL_DEFAULT); + status->set_hp(bl, (unsigned int)val, STATUS_HEAL_DEFAULT); break; case UDT_MAXHP: - mc->base_status.max_hp = (unsigned int) val; + mc->base_status.max_hp = (unsigned int)val; break; case UDT_SP: - status->set_sp(bl, (unsigned int) val, STATUS_HEAL_DEFAULT); + status->set_sp(bl, (unsigned int)val, STATUS_HEAL_DEFAULT); break; case UDT_MAXSP: - mc->base_status.max_sp = (unsigned int) val; + mc->base_status.max_sp = (unsigned int)val; break; case UDT_MASTERCID: mc->mercenary.char_id = val; break; case UDT_MAPIDXY: - unit->warp(bl, (short) val, (short) val2, (short) val3, CLR_TELEPORT); + unit->warp(bl, (short)val, (short)val2, (short)val3, CLR_TELEPORT); break; case UDT_WALKTOXY: if (unit->walk_toxy(bl, (short)val, (short)val2, 2) != 0) - unit->movepos(bl, (short) val, (short) val2, 0, 0); + unit->movepos(bl, (short)val, (short)val2, 0, 0); break; case UDT_SPEED: - mc->base_status.size = (unsigned char) val; + mc->base_status.size = (unsigned char)val; status->calc_misc(bl, &mc->base_status, mc->db->lv); break; case UDT_LOOKDIR: @@ -20249,131 +20596,134 @@ static BUILDIN(setunitdata) mc->ud.canmove_tick = val; break; case UDT_STR: - mc->base_status.str = (unsigned short) val; + mc->base_status.str = (unsigned short)val; status->calc_misc(bl, &mc->base_status, mc->db->lv); break; case UDT_AGI: - mc->base_status.agi = (unsigned short) val; + mc->base_status.agi = (unsigned short)val; status->calc_misc(bl, &mc->base_status, mc->db->lv); break; case UDT_VIT: - mc->base_status.vit = (unsigned short) val; + mc->base_status.vit = (unsigned short)val; status->calc_misc(bl, &mc->base_status, mc->db->lv); break; case UDT_INT: - mc->base_status.int_ = (unsigned short) val; + mc->base_status.int_ = (unsigned short)val; status->calc_misc(bl, &mc->base_status, mc->db->lv); break; case UDT_DEX: - mc->base_status.dex = (unsigned short) val; + mc->base_status.dex = (unsigned short)val; status->calc_misc(bl, &mc->base_status, mc->db->lv); break; case UDT_LUK: - mc->base_status.luk = (unsigned short) val; + mc->base_status.luk = (unsigned short)val; status->calc_misc(bl, &mc->base_status, mc->db->lv); break; case UDT_ATKRANGE: - mc->base_status.rhw.range = (unsigned short) val; + mc->base_status.rhw.range = (unsigned short)val; break; case UDT_ATKMIN: - mc->base_status.rhw.atk = (unsigned short) val; + mc->base_status.rhw.atk = (unsigned short)val; break; case UDT_ATKMAX: - mc->base_status.rhw.atk2 = (unsigned short) val; + mc->base_status.rhw.atk2 = (unsigned short)val; break; case UDT_MATKMIN: - mc->base_status.matk_min = (unsigned short) val; + mc->base_status.matk_min = (unsigned short)val; break; case UDT_MATKMAX: - mc->base_status.matk_max = (unsigned short) val; + mc->base_status.matk_max = (unsigned short)val; break; case UDT_DEF: - mc->base_status.def = (defType) val; + mc->base_status.def = (defType)val; break; case UDT_MDEF: - mc->base_status.mdef = (defType) val; + mc->base_status.mdef = (defType)val; break; case UDT_HIT: - mc->base_status.hit = (short) val; + mc->base_status.hit = (short)val; break; case UDT_FLEE: - mc->base_status.flee = (short) val; + mc->base_status.flee = (short)val; break; case UDT_PDODGE: - mc->base_status.flee2 = (short) val; + mc->base_status.flee2 = (short)val; break; case UDT_CRIT: - mc->base_status.cri = (short) val; + mc->base_status.cri = (short)val; break; case UDT_RACE: - mc->base_status.race = (unsigned char) val; + mc->base_status.race = (unsigned char)val; break; case UDT_ELETYPE: - mc->base_status.def_ele = (unsigned char) val; + mc->base_status.def_ele = (unsigned char)val; break; case UDT_ELELEVEL: - mc->base_status.ele_lv = (unsigned char) val; + mc->base_status.ele_lv = (unsigned char)val; break; case UDT_AMOTION: - mc->base_status.amotion = (unsigned short) val; + mc->base_status.amotion = (unsigned short)val; break; case UDT_ADELAY: - mc->base_status.adelay = (unsigned short) val; + mc->base_status.adelay = (unsigned short)val; break; case UDT_DMOTION: - mc->base_status.dmotion = (unsigned short) val; + mc->base_status.dmotion = (unsigned short)val; break; case UDT_MERC_KILLCOUNT: - mc->mercenary.kill_count = (unsigned int) val; + mc->mercenary.kill_count = (unsigned int)val; break; case UDT_LIFETIME: - mc->mercenary.life_time = (unsigned int) val; + mc->mercenary.life_time = (unsigned int)val; break; default: - ShowWarning("buildin_setunitdata: Invalid data type '%s' for mercenary unit.\n", udtype); + ShowWarning("buildin_setunitdata: Invalid data type '%d' for mercenary unit.\n", type); script_pushint(st, 0); return false; } + // Send mercenary data. clif->mercenary_info(map->charid2sd(mc->mercenary.char_id)); clif->mercenary_skillblock(map->charid2sd(mc->mercenary.char_id)); - } break; - case BL_ELEM: - { + } + case BL_ELEM: { struct elemental_data *ed = BL_UCAST(BL_ELEM, bl); - nullpo_retr(false, ed); + if (ed == NULL) { + ShowError("buildin_setunitdata: Can't find Elemental for GID %d!\n", script_getnum(st, 2)); + script_pushint(st, 0); + return false; + } - switch (type) - { + switch (type) { case UDT_SIZE: - ed->base_status.size = (unsigned char) val; + ed->base_status.size = (unsigned char)val; break; case UDT_HP: - status->set_hp(bl, (unsigned int) val, STATUS_HEAL_DEFAULT); + status->set_hp(bl, (unsigned int)val, STATUS_HEAL_DEFAULT); break; case UDT_MAXHP: - ed->base_status.max_hp = (unsigned int) val; + ed->base_status.max_hp = (unsigned int)val; break; case UDT_SP: - status->set_sp(bl, (unsigned int) val, STATUS_HEAL_DEFAULT); + status->set_sp(bl, (unsigned int)val, STATUS_HEAL_DEFAULT); break; case UDT_MAXSP: - ed->base_status.max_sp = (unsigned int) val; + ed->base_status.max_sp = (unsigned int)val; break; case UDT_MASTERCID: ed->elemental.char_id = val; break; case UDT_MAPIDXY: - unit->warp(bl, (short) val, (short) val2, (short) val3, CLR_TELEPORT); + unit->warp(bl, (short)val, (short)val2, (short)val3, CLR_TELEPORT); break; case UDT_WALKTOXY: if (unit->walk_toxy(bl, (short)val, (short)val2, 2) != 0) - unit->movepos(bl, (short) val, (short) val2, 0, 0); + unit->movepos(bl, (short)val, (short)val2, 0, 0); break; case UDT_SPEED: - ed->base_status.speed = (unsigned short) val; + ed->base_status.speed = (unsigned short)val; status->calc_misc(bl, &ed->base_status, ed->db->lv); break; case UDT_LOOKDIR: @@ -20383,211 +20733,214 @@ static BUILDIN(setunitdata) ed->ud.canmove_tick = val; break; case UDT_STR: - ed->base_status.str = (unsigned short) val; + ed->base_status.str = (unsigned short)val; status->calc_misc(bl, &ed->base_status, ed->db->lv); break; case UDT_AGI: - ed->base_status.agi = (unsigned short) val; + ed->base_status.agi = (unsigned short)val; status->calc_misc(bl, &ed->base_status, ed->db->lv); break; case UDT_VIT: - ed->base_status.vit = (unsigned short) val; + ed->base_status.vit = (unsigned short)val; status->calc_misc(bl, &ed->base_status, ed->db->lv); break; case UDT_INT: - ed->base_status.int_ = (unsigned short) val; + ed->base_status.int_ = (unsigned short)val; status->calc_misc(bl, &ed->base_status, ed->db->lv); break; case UDT_DEX: - ed->base_status.dex = (unsigned short) val; + ed->base_status.dex = (unsigned short)val; status->calc_misc(bl, &ed->base_status, ed->db->lv); break; case UDT_LUK: - ed->base_status.luk = (unsigned short) val; + ed->base_status.luk = (unsigned short)val; status->calc_misc(bl, &ed->base_status, ed->db->lv); break; case UDT_ATKRANGE: - ed->base_status.rhw.range = (unsigned short) val; + ed->base_status.rhw.range = (unsigned short)val; break; case UDT_ATKMIN: - ed->base_status.rhw.atk = (unsigned short) val; + ed->base_status.rhw.atk = (unsigned short)val; break; case UDT_ATKMAX: - ed->base_status.rhw.atk2 = (unsigned short) val; + ed->base_status.rhw.atk2 = (unsigned short)val; break; case UDT_MATKMIN: - ed->base_status.matk_min = (unsigned short) val; + ed->base_status.matk_min = (unsigned short)val; break; case UDT_MATKMAX: - ed->base_status.matk_max = (unsigned short) val; + ed->base_status.matk_max = (unsigned short)val; break; case UDT_DEF: - ed->base_status.def = (defType) val; + ed->base_status.def = (defType)val; break; case UDT_MDEF: - ed->base_status.mdef = (defType) val; + ed->base_status.mdef = (defType)val; break; case UDT_HIT: - ed->base_status.hit = (short) val; + ed->base_status.hit = (short)val; break; case UDT_FLEE: - ed->base_status.flee = (short) val; + ed->base_status.flee = (short)val; break; case UDT_PDODGE: - ed->base_status.flee2 = (short) val; + ed->base_status.flee2 = (short)val; break; case UDT_CRIT: - ed->base_status.cri = (short) val; + ed->base_status.cri = (short)val; break; case UDT_RACE: - ed->base_status.race = (unsigned char) val; + ed->base_status.race = (unsigned char)val; break; case UDT_ELETYPE: - ed->base_status.def_ele = (unsigned char) val; + ed->base_status.def_ele = (unsigned char)val; break; case UDT_ELELEVEL: - ed->base_status.ele_lv = (unsigned char) val; + ed->base_status.ele_lv = (unsigned char)val; break; case UDT_AMOTION: - ed->base_status.amotion = (unsigned short) val; + ed->base_status.amotion = (unsigned short)val; break; case UDT_ADELAY: - ed->base_status.adelay = (unsigned short) val; + ed->base_status.adelay = (unsigned short)val; break; case UDT_DMOTION: - ed->base_status.dmotion = (unsigned short) val; + ed->base_status.dmotion = (unsigned short)val; break; case UDT_LIFETIME: ed->elemental.life_time = val; break; default: - ShowWarning("buildin_setunitdata: Invalid data type '%s' for elemental unit.\n", udtype); + ShowWarning("buildin_setunitdata: Invalid data type '%d' for elemental unit.\n", type); script_pushint(st, 0); return false; } - clif->elemental_info(ed->master); - } + + clif->elemental_info(ed->master); // Send Elemental data. break; - case BL_NPC: - { + } + case BL_NPC: { struct npc_data *nd = BL_UCAST(BL_NPC, bl); - nullpo_retr(false, nd); + if (nd == NULL) { + ShowError("buildin_setunitdata: Can't find NPC for GID %d!\n", script_getnum(st, 2)); + script_pushint(st, 0); + return false; + } - switch (type) - { + switch (type) { case UDT_SIZE: - nd->status.size = (unsigned char) val; + nd->status.size = (unsigned char)val; break; case UDT_LEVEL: - nd->level = (unsigned short) val; + nd->level = (unsigned short)val; break; case UDT_HP: - status->set_hp(bl, (unsigned int) val, STATUS_HEAL_DEFAULT); + status->set_hp(bl, (unsigned int)val, STATUS_HEAL_DEFAULT); break; case UDT_MAXHP: - nd->status.max_hp = (unsigned int) val; + nd->status.max_hp = (unsigned int)val; break; case UDT_SP: - status->set_sp(bl, (unsigned int) val, STATUS_HEAL_DEFAULT); + status->set_sp(bl, (unsigned int)val, STATUS_HEAL_DEFAULT); break; case UDT_MAXSP: - nd->status.max_sp = (unsigned int) val; + nd->status.max_sp = (unsigned int)val; break; case UDT_MAPIDXY: - unit->warp(bl, (short) val, (short) val2, (short) val3, CLR_TELEPORT); + unit->warp(bl, (short)val, (short)val2, (short)val3, CLR_TELEPORT); break; case UDT_WALKTOXY: if (unit->walk_toxy(bl, (short)val, (short)val2, 2) != 0) - unit->movepos(bl, (short) val, (short) val2, 0, 0); + unit->movepos(bl, (short)val, (short)val2, 0, 0); break; case UDT_CLASS: - npc->setclass(nd, (short) val); + npc->setclass(nd, (short)val); break; case UDT_SPEED: - nd->speed = (short) val; + nd->speed = (short)val; status->calc_misc(bl, &nd->status, nd->level); break; case UDT_LOOKDIR: unit->set_dir(bl, (enum unit_dir)val); break; case UDT_STR: - nd->status.str = (unsigned short) val; + nd->status.str = (unsigned short)val; status->calc_misc(bl, &nd->status, nd->level); break; case UDT_AGI: - nd->status.agi = (unsigned short) val; + nd->status.agi = (unsigned short)val; status->calc_misc(bl, &nd->status, nd->level); break; case UDT_VIT: - nd->status.vit = (unsigned short) val; + nd->status.vit = (unsigned short)val; status->calc_misc(bl, &nd->status, nd->level); break; case UDT_INT: - nd->status.int_ = (unsigned short) val; + nd->status.int_ = (unsigned short)val; status->calc_misc(bl, &nd->status, nd->level); break; case UDT_DEX: - nd->status.dex = (unsigned short) val; + nd->status.dex = (unsigned short)val; status->calc_misc(bl, &nd->status, nd->level); break; case UDT_LUK: - nd->status.luk = (unsigned short) val; + nd->status.luk = (unsigned short)val; status->calc_misc(bl, &nd->status, nd->level); break; case UDT_STATPOINT: - nd->stat_point = (unsigned short) val; + nd->stat_point = (unsigned short)val; break; case UDT_ATKRANGE: - nd->status.rhw.range = (unsigned short) val; + nd->status.rhw.range = (unsigned short)val; break; case UDT_ATKMIN: - nd->status.rhw.atk = (unsigned short) val; + nd->status.rhw.atk = (unsigned short)val; break; case UDT_ATKMAX: - nd->status.rhw.atk2 = (unsigned short) val; + nd->status.rhw.atk2 = (unsigned short)val; break; case UDT_MATKMIN: - nd->status.matk_min = (unsigned short) val; + nd->status.matk_min = (unsigned short)val; break; case UDT_MATKMAX: - nd->status.matk_max = (unsigned short) val; + nd->status.matk_max = (unsigned short)val; break; case UDT_DEF: - nd->status.def = (defType) val; + nd->status.def = (defType)val; break; case UDT_MDEF: - nd->status.mdef = (defType) val; + nd->status.mdef = (defType)val; break; case UDT_HIT: - nd->status.hit = (short) val; + nd->status.hit = (short)val; break; case UDT_FLEE: - nd->status.flee = (short) val; + nd->status.flee = (short)val; break; case UDT_PDODGE: - nd->status.flee2 = (short) val; + nd->status.flee2 = (short)val; break; case UDT_CRIT: - nd->status.cri = (short) val; + nd->status.cri = (short)val; break; case UDT_RACE: - nd->status.race = (unsigned char) val; + nd->status.race = (unsigned char)val; break; case UDT_ELETYPE: - nd->status.def_ele = (unsigned char) val; + nd->status.def_ele = (unsigned char)val; break; case UDT_ELELEVEL: - nd->status.ele_lv = (unsigned char) val; + nd->status.ele_lv = (unsigned char)val; break; case UDT_AMOTION: - nd->status.amotion = (unsigned short) val; + nd->status.amotion = (unsigned short)val; break; case UDT_ADELAY: - nd->status.adelay = (unsigned short) val; + nd->status.adelay = (unsigned short)val; break; case UDT_DMOTION: - nd->status.dmotion = (unsigned short) val; + nd->status.dmotion = (unsigned short)val; break; case UDT_SEX: nd->vd.sex = (char)val; @@ -20624,19 +20977,21 @@ static BUILDIN(setunitdata) clif->changelook(bl, LOOK_BODY2, val); break; default: - ShowWarning("buildin_setunitdata: Invalid data type '%s' for NPC unit.\n", udtype); + ShowWarning("buildin_setunitdata: Invalid data type '%d' for NPC unit.\n", type); script_pushint(st, 0); return false; } - } + break; + } default: ShowError("buildin_setunitdata: Unknown object!\n"); script_pushint(st, 0); return false; - } // end of bl->type switch + } // End of bl->type switch. script_pushint(st, 1); + return true; } @@ -21511,7 +21866,10 @@ static BUILDIN(unitskilluseid) } else { status_calc_npc(nd, SCO_NONE); } + } else if (bl->type == BL_PC) { + pc->autocast_clear(BL_UCAST(BL_PC, bl)); } + unit->skilluse_id(bl, target_id, skill_id, skill_lv); } @@ -21547,7 +21905,10 @@ static BUILDIN(unitskillusepos) } else { status_calc_npc(nd, SCO_NONE); } + } else if (bl->type == BL_PC) { + pc->autocast_clear(BL_UCAST(BL_PC, bl)); } + unit->skilluse_pos(bl, skill_x, skill_y, skill_id, skill_lv); } @@ -22103,12 +22464,13 @@ static BUILDIN(setquestinfo) return false; } - qi = &VECTOR_LAST(nd->qi_data); - if (qi == NULL) { + if (VECTOR_LENGTH(nd->qi_data) == 0) { ShowWarning("buildin_setquestinfo: no valide questinfo data has been found for this npc.\n"); return false; } + qi = &VECTOR_LAST(nd->qi_data); + switch (type) { case QINFO_JOB: { @@ -27167,8 +27529,8 @@ static void script_parse_builtin(void) BUILDIN_DEF(pcfollow,"ii"), BUILDIN_DEF(pcstopfollow,"i"), BUILDIN_DEF_DEPRECATED(pcblockmove,"ii"), // Deprecated 2018-05-04 - BUILDIN_DEF(setpcblock, "ii"), - BUILDIN_DEF(checkpcblock, ""), + BUILDIN_DEF(setpcblock, "ii?"), + BUILDIN_DEF(checkpcblock, "?"), // <--- [zBuffer] List of player cont commands // [zBuffer] List of mob control commands ---> BUILDIN_DEF(getunittype,"i"), @@ -27407,6 +27769,8 @@ static void script_parse_builtin(void) BUILDIN_DEF(identify, "i"), BUILDIN_DEF(identifyidx, "i"), BUILDIN_DEF(openlapineddukddakboxui, "i"), + + BUILDIN_DEF(callfunctionofnpc, "vs*"), }; int i, len = ARRAYLENGTH(BUILDIN); RECREATE(script->buildin, char *, script->buildin_count + len); // Pre-alloc to speed up @@ -27418,7 +27782,7 @@ static void script_parse_builtin(void) #undef BUILDIN_DEF #undef BUILDIN_DEF2 -static void script_label_add(int key, int pos) +static void script_label_add(int key, int pos, enum script_label_flags flags) { int idx = script->label_count; @@ -27429,6 +27793,7 @@ static void script_label_add(int key, int pos) script->labels[idx].key = key; script->labels[idx].pos = pos; + script->labels[idx].flags = flags; script->label_count++; } @@ -27793,6 +28158,23 @@ static void script_hardcoded_constants(void) script->set_constant("PETINFO_EVO_EGGID", PETINFO_EVO_EGGID, false, false); script->set_constant("PETINFO_AUTOFEED", PETINFO_AUTOFEED, false, false); + script->constdb_comment("Pet hunger levels"); + script->set_constant("PET_HUNGER_STARVING", PET_HUNGER_STARVING, false, false); + script->set_constant("PET_HUNGER_VERY_HUNGRY", PET_HUNGER_VERY_HUNGRY, false, false); + script->set_constant("PET_HUNGER_HUNGRY", PET_HUNGER_HUNGRY, false, false); + script->set_constant("PET_HUNGER_NEUTRAL", PET_HUNGER_NEUTRAL, false, false); + script->set_constant("PET_HUNGER_SATISFIED", PET_HUNGER_SATISFIED, false, false); + script->set_constant("PET_HUNGER_STUFFED", PET_HUNGER_STUFFED, false, false); + + script->constdb_comment("Pet intimacy levels"); + script->set_constant("PET_INTIMACY_NONE", PET_INTIMACY_NONE, false, false); + script->set_constant("PET_INTIMACY_AWKWARD", PET_INTIMACY_AWKWARD, false, false); + script->set_constant("PET_INTIMACY_SHY", PET_INTIMACY_SHY, false, false); + script->set_constant("PET_INTIMACY_NEUTRAL", PET_INTIMACY_NEUTRAL, false, false); + script->set_constant("PET_INTIMACY_CORDIAL", PET_INTIMACY_CORDIAL, false, false); + script->set_constant("PET_INTIMACY_LOYAL", PET_INTIMACY_LOYAL, false, false); + script->set_constant("PET_INTIMACY_MAX", PET_INTIMACY_MAX, false, false); + script->constdb_comment("monster skill states"); script->set_constant("MSS_ANY", MSS_ANY, false, false); script->set_constant("MSS_IDLE", MSS_IDLE, false, false); @@ -27830,6 +28212,7 @@ static void script_hardcoded_constants(void) script->set_constant("MSC_MASTERATTACKED", MSC_MASTERATTACKED, false, false); script->set_constant("MSC_ALCHEMIST", MSC_ALCHEMIST, false, false); script->set_constant("MSC_SPAWN", MSC_SPAWN, false, false); + script->set_constant("MSC_MAGICATTACKED", MSC_MAGICATTACKED, false, false); script->constdb_comment("monster skill targets"); script->set_constant("MST_TARGET", MST_TARGET, false, false); @@ -27847,6 +28230,11 @@ static void script_hardcoded_constants(void) script->set_constant("MST_AROUND4", MST_AROUND4, false, false); script->set_constant("MST_AROUND", MST_AROUND , false, false); + script->constdb_comment("Monster group constants"); + script->set_constant("ALL_MOBS_NONBOSS", ALL_MOBS_NONBOSS, false, false); + script->set_constant("ALL_MOBS_BOSS", ALL_MOBS_BOSS, false, false); + script->set_constant("ALL_MOBS", ALL_MOBS, false, false); + script->constdb_comment("pc block constants, use with *setpcblock* and *checkpcblock*"); script->set_constant("PCBLOCK_NONE", PCBLOCK_NONE, false, false); script->set_constant("PCBLOCK_MOVE", PCBLOCK_MOVE, false, false); @@ -28218,6 +28606,7 @@ void script_defaults(void) script->parse_syntax_close = parse_syntax_close; script->parse_syntax_close_sub = parse_syntax_close_sub; script->parse_syntax = parse_syntax; + script->parse_syntax_function = parse_syntax_function; script->get_com = get_com; script->get_num = get_num; script->op2name = script_op2name; @@ -28250,6 +28639,7 @@ void script_defaults(void) script->load_parameters = script_load_parameters; script->print_line = script_print_line; script->errorwarning_sub = script_errorwarning_sub; + script->is_permanent_variable = script_is_permanent_variable; script->set_reg = set_reg; script->set_reg_ref_str = set_reg_npcscope_str; script->set_reg_pc_ref_str = set_reg_pc_ref_str; @@ -28321,6 +28711,8 @@ void script_defaults(void) script->config.ontouch_name = "OnTouch_"; //ontouch_name (runs on first visible char to enter area, picks another char if the first char leaves) script->config.ontouch2_name = "OnTouch"; //ontouch2_name (run whenever a char walks into the OnTouch area) script->config.onuntouch_name = "OnUnTouch"; //onuntouch_name (run whenever a char walks from the OnTouch area) + script->config.functions_private_by_default = true; + script->config.functions_as_events = false; // for ENABLE_CASE_CHECK script->calc_hash_ci = calc_hash_ci; diff --git a/src/map/script.h b/src/map/script.h index 511497a66..df5297ac0 100644 --- a/src/map/script.h +++ b/src/map/script.h @@ -584,6 +584,8 @@ enum itemskill_flag { struct Script_Config { bool warn_func_mismatch_argtypes; bool warn_func_mismatch_paramnum; + bool functions_private_by_default; + bool functions_as_events; int check_cmdcount; int check_gotocount; int input_min_value; @@ -725,8 +727,14 @@ struct str_data_struct { uint8 deprecated : 1; }; +/** a label within a script (does not use the label db) */ struct script_label_entry { - int key,pos; + /** label name (held within str_data) */ + int key; + /** position within the script */ + int pos; + /** optional flags for the label */ + enum script_label_flags flags; }; struct script_syntax_data { @@ -917,7 +925,7 @@ struct script_interface { void (*set_constant) (const char *name, int value, bool is_parameter, bool is_deprecated); void (*set_constant2) (const char *name, int value, bool is_parameter, bool is_deprecated); bool (*get_constant) (const char* name, int* value); - void (*label_add)(int key, int pos); + void (*label_add)(int key, int pos, enum script_label_flags flags); void (*run) (struct script_code *rootscript, int pos, int rid, int oid); void (*run_npc) (struct script_code *rootscript, int pos, int rid, int oid); void (*run_pet) (struct script_code *rootscript, int pos, int rid, int oid); @@ -948,10 +956,11 @@ struct script_interface { int (*queue_create) (void); bool (*queue_clear) (int idx); /* */ - const char * (*parse_curly_close) (const char *p); - const char * (*parse_syntax_close) (const char *p); - const char * (*parse_syntax_close_sub) (const char *p, int *flag); - const char * (*parse_syntax) (const char *p); + const char *(*parse_curly_close) (const char *p); + const char *(*parse_syntax_close) (const char *p); + const char *(*parse_syntax_close_sub) (const char *p, int *flag); + const char *(*parse_syntax) (const char *p); + const char *(*parse_syntax_function) (const char *p, bool is_public); c_op (*get_com) (const struct script_buf *scriptbuf, int *pos); int (*get_num) (const struct script_buf *scriptbuf, int *pos); const char* (*op2name) (int op); @@ -984,6 +993,7 @@ struct script_interface { void (*load_parameters) (void); const char* (*print_line) (StringBuf *buf, const char *p, const char *mark, int line); void (*errorwarning_sub) (StringBuf *buf, const char *src, const char *file, int start_line, const char *error_msg, const char *error_pos); + bool (*is_permanent_variable) (const char *name); int (*set_reg) (struct script_state *st, struct map_session_data *sd, int64 num, const char *name, const void *value, struct reg_db *ref); void (*set_reg_ref_str) (struct script_state* st, struct reg_db *n, int64 num, const char* name, const char *str); void (*set_reg_pc_ref_str) (struct script_state* st, struct reg_db *n, int64 num, const char* name, const char *str); diff --git a/src/map/skill.c b/src/map/skill.c index a1a22f74f..1b27fc2ad 100644 --- a/src/map/skill.c +++ b/src/map/skill.c @@ -72,6 +72,34 @@ static struct s_skill_dbs skilldbs; struct skill_interface *skill; +static const struct { + int start; + int end; +} skill_idx_ranges[] = { + { NV_BASIC, NPC_LEX_AETERNA }, + { KN_CHARGEATK, SA_ELEMENTWIND }, + { RK_ENCHANTBLADE, AB_SILENTIUM }, + { WL_WHITEIMPRISON, SC_FEINTBOMB }, + { LG_CANNONSPEAR, SR_GENTLETOUCH_REVITALIZE }, + { WA_SWING_DANCE, WA_MOONLIT_SERENADE }, + { MI_RUSH_WINDMILL, MI_HARMONIZE }, + { WM_LESSON, WM_UNLIMITED_HUMMING_VOICE }, + { SO_FIREWALK, SO_EARTH_INSIGNIA }, + { GN_TRAINING_SWORD, GN_SLINGITEM_RANGEMELEEATK }, + { AB_SECRAMENT, LG_OVERBRAND_PLUSATK }, + { ALL_ODINS_RECALL, ALL_LIGHTGUARD }, + { RL_GLITTERING_GREED, RL_GLITTERING_GREED_ATK }, + { KO_YAMIKUMO, OB_AKAITSUKI }, + { ECL_SNOWFLIP, ALL_THANATOS_RECALL }, + { GC_DARKCROW, NC_MAGMA_ERUPTION_DOTDAMAGE }, + { SU_BASIC_SKILL, SU_SPIRITOFSEA }, + { HLIF_HEAL, MH_VOLCANIC_ASH }, + { MS_BASH, MER_INVINCIBLEOFF2 }, + { EL_CIRCLE_OF_FIRE, EL_STONE_RAIN }, + { GD_APPROVAL, GD_DEVELOPMENT }, + CUSTOM_SKILL_RANGES +}; + //Since only mob-casted splash skills can hit ice-walls static int skill_splash_target(struct block_list *bl) { @@ -96,51 +124,37 @@ static int skill_name2id(const char *name) /// Returns the skill's array index, or 0 (Unknown Skill). static int skill_get_index(int skill_id) { - int skillRange[] = { NV_BASIC, NPC_LEX_AETERNA, - KN_CHARGEATK, SA_ELEMENTWIND, - RK_ENCHANTBLADE, AB_SILENTIUM, - WL_WHITEIMPRISON, SC_FEINTBOMB, - LG_CANNONSPEAR, SR_GENTLETOUCH_REVITALIZE, - WA_SWING_DANCE, WA_MOONLIT_SERENADE, - MI_RUSH_WINDMILL, MI_HARMONIZE, - WM_LESSON, WM_UNLIMITED_HUMMING_VOICE, - SO_FIREWALK, SO_EARTH_INSIGNIA, - GN_TRAINING_SWORD, GN_SLINGITEM_RANGEMELEEATK, - AB_SECRAMENT, LG_OVERBRAND_PLUSATK, - ALL_ODINS_RECALL, ALL_LIGHTGUARD, - RL_GLITTERING_GREED, RL_GLITTERING_GREED_ATK, - KO_YAMIKUMO, OB_AKAITSUKI, - ECL_SNOWFLIP, ALL_THANATOS_RECALL, - GC_DARKCROW, NC_MAGMA_ERUPTION_DOTDAMAGE, - SU_BASIC_SKILL, SU_SPIRITOFSEA, - HLIF_HEAL, MH_VOLCANIC_ASH, - MS_BASH, MER_INVINCIBLEOFF2, - EL_CIRCLE_OF_FIRE, EL_STONE_RAIN, - GD_APPROVAL, GD_DEVELOPMENT - CUSTOM_SKILL_RANGES}; - int length = sizeof(skillRange) / sizeof(int); - STATIC_ASSERT(sizeof(skillRange) / sizeof(int) % 2 == 0, "skill_get_index: skillRange should be multiple of 2"); - - - if (skill_id < skillRange[0] || skill_id > skillRange[length - 1]) { + int length = ARRAYLENGTH(skill_idx_ranges); + + + if (skill_id < skill_idx_ranges[0].start || skill_id > skill_idx_ranges[length - 1].end) { ShowWarning("skill_get_index: skill id '%d' is not being handled!\n", skill_id); + Assert_report(0); return 0; } int skill_idx = 0; + bool found = false; // Map Skill ID to Skill Indexes (in reverse order) - for (int i = 0; i < length; i += 2) { + for (int i = 0; i < length; i++) { // Check if SkillID belongs to this range. - if (skill_id <= skillRange[i + 1] && skill_id >= skillRange[i]) { - skill_idx += (skillRange[i + 1] - skill_id); + if (skill_id <= skill_idx_ranges[i].end && skill_id >= skill_idx_ranges[i].start) { + skill_idx += (skill_idx_ranges[i].end - skill_id); + found = true; break; } // Add the difference of current range - skill_idx += (skillRange[i + 1] - skillRange[i] + 1); + skill_idx += (skill_idx_ranges[i].end - skill_idx_ranges[i].start + 1); } + if (!found) { + ShowWarning("skill_get_index: skill id '%d' (idx: %d) is not handled as it lies outside the defined ranges!\n", skill_id, skill_idx); + Assert_report(0); + return 0; + } if (skill_idx >= MAX_SKILL_DB) { ShowWarning("skill_get_index: skill id '%d'(idx: %d) is not being handled as it exceeds MAX_SKILL_DB!\n", skill_id, skill_idx); + Assert_report(0); return 0; } @@ -162,14 +176,26 @@ static const char *skill_get_desc(int skill_id) // Skill DB -static int skill_get_hit(int skill_id) +/** + * Gets a skill's hit type by its ID and level. (See enum battle_dmg_type.) + * + * @param skill_id The skill's ID. + * @param skill_lv The skill's level. + * @return The skill's hit type corresponding to the passed level. Defaults to BDT_NORMAL (0) in case of error. + * + **/ +static int skill_get_hit(int skill_id, int skill_lv) { - int idx; if (skill_id == 0) - return 0; - idx = skill->get_index(skill_id); - Assert_ret(idx != 0); - return skill->dbs->db[idx].hit; + return BDT_NORMAL; + + Assert_retr(BDT_NORMAL, skill_lv > 0); + + int idx = skill->get_index(skill_id); + + Assert_retr(BDT_NORMAL, idx != 0); + + return skill->dbs->db[idx].hit[skill_get_lvl_idx(skill_lv)]; } static int skill_get_inf(int skill_id) @@ -306,14 +332,26 @@ static int skill_get_sp_rate(int skill_id, int skill_lv) return skill->dbs->db[idx].sp_rate[skill_get_lvl_idx(skill_lv)]; } -static int skill_get_state(int skill_id) +/** + * Gets a skill's required state by its ID and level. + * + * @param skill_id The skill's ID. + * @param skill_lv The skill's level. + * @return The skill's required state corresponding to the passed level. Defaults to ST_NONE (0) in case of error. + * + **/ +static int skill_get_state(int skill_id, int skill_lv) { - int idx; if (skill_id == 0) return ST_NONE; - idx = skill->get_index(skill_id); + + Assert_retr(ST_NONE, skill_lv > 0); + + int idx = skill->get_index(skill_id); + Assert_retr(ST_NONE, idx != 0); - return skill->dbs->db[idx].state; + + return skill->dbs->db[idx].state[skill_get_lvl_idx(skill_lv)]; } static int skill_get_spiritball(int skill_id, int skill_lv) @@ -331,26 +369,140 @@ static int skill_get_spiritball(int skill_id, int skill_lv) return skill->dbs->db[idx].spiritball[skill_get_lvl_idx(skill_lv)]; } +/** + * Gets a skill's required item's ID by the skill's ID and the item's index. + * + * @param skill_id The skill's ID. + * @param item_idx The item's index. + * @return The skill's required item's ID corresponding to the passed index. Defaults to 0 in case of error. + * + **/ static int skill_get_itemid(int skill_id, int item_idx) { - int idx; if (skill_id == 0) return 0; - idx = skill->get_index(skill_id); + + Assert_ret(item_idx >= 0 && item_idx < MAX_SKILL_ITEM_REQUIRE); + + int idx = skill->get_index(skill_id); + Assert_ret(idx != 0); + + return skill->dbs->db[idx].req_items.item[item_idx].id; +} + +/** + * Gets a skill's required item's amount by the skill's ID and level and the item's index. + * + * @param skill_id The skill's ID. + * @param item_idx The item's index. + * @param skill_lv The skill's level. + * @return The skill's required item's amount corresponding to the passed index and level. Defaults to 0 in case of error. + * + **/ +static int skill_get_itemqty(int skill_id, int item_idx, int skill_lv) +{ + if (skill_id == 0) + return 0; + Assert_ret(item_idx >= 0 && item_idx < MAX_SKILL_ITEM_REQUIRE); - return skill->dbs->db[idx].itemid[item_idx]; + Assert_ret(skill_lv > 0); + + int idx = skill->get_index(skill_id); + + Assert_ret(idx != 0); + + return skill->dbs->db[idx].req_items.item[item_idx].amount[skill_get_lvl_idx(skill_lv)]; +} + +/** + * Gets a skill's required items any-flag by the skill's ID and level. + * + * @param skill_id The skill's ID. + * @param skill_lv The skill's level. + * @return The skill's required items any-flag corresponding to the passed level. Defaults to false in case of error. + * + **/ +static bool skill_get_item_any_flag(int skill_id, int skill_lv) +{ + if (skill_id == 0) + return false; + + Assert_retr(false, skill_lv > 0); + + int idx = skill->get_index(skill_id); + + Assert_retr(false, idx != 0); + + return skill->dbs->db[idx].req_items.any[skill_get_lvl_idx(skill_lv)]; } -static int skill_get_itemqty(int skill_id, int item_idx) +/** + * Gets a skill's required equipment's ID by the skill's ID and the equipment item's index. + * + * @param skill_id The skill's ID. + * @param item_idx The equipment item's index. + * @return The skill's required equipment's ID corresponding to the passed index. Defaults to 0 in case of error. + * + **/ +static int skill_get_equip_id(int skill_id, int item_idx) { - int idx; if (skill_id == 0) return 0; - idx = skill->get_index(skill_id); + + Assert_ret(item_idx >= 0 && item_idx < MAX_SKILL_ITEM_REQUIRE); + + int idx = skill->get_index(skill_id); + Assert_ret(idx != 0); + + return skill->dbs->db[idx].req_equip.item[item_idx].id; +} + +/** + * Gets a skill's required equipment's amount by the skill's ID and level and the equipment item's index. + * + * @param skill_id The skill's ID. + * @param item_idx The equipment item's index. + * @param skill_lv The skill's level. + * @return The skill's required equipment item's amount corresponding to the passed index and level. Defaults to 0 in case of error. + * + **/ +static int skill_get_equip_amount(int skill_id, int item_idx, int skill_lv) +{ + if (skill_id == 0) + return 0; + Assert_ret(item_idx >= 0 && item_idx < MAX_SKILL_ITEM_REQUIRE); - return skill->dbs->db[idx].amount[item_idx]; + Assert_ret(skill_lv > 0); + + int idx = skill->get_index(skill_id); + + Assert_ret(idx != 0); + + return skill->dbs->db[idx].req_equip.item[item_idx].amount[skill_get_lvl_idx(skill_lv)]; +} + +/** + * Gets a skill's required equipment any-flag by the skill's ID and level. + * + * @param skill_id The skill's ID. + * @param skill_lv The skill's level. + * @return The skill's required equipment's any-flag corresponding to the passed level. Defaults to false in case of error. + * + **/ +static bool skill_get_equip_any_flag(int skill_id, int skill_lv) +{ + if (skill_id == 0) + return false; + + Assert_retr(false, skill_lv > 0); + + int idx = skill->get_index(skill_id); + + Assert_retr(false, idx != 0); + + return skill->dbs->db[idx].req_equip.any[skill_get_lvl_idx(skill_lv)]; } static int skill_get_zeny(int skill_id, int skill_lv) @@ -458,14 +610,26 @@ static int skill_get_time2(int skill_id, int skill_lv) return skill->dbs->db[idx].upkeep_time2[skill_get_lvl_idx(skill_lv)]; } -static int skill_get_castdef(int skill_id) +/** + * Gets a skill's cast defence rate by its ID and level. + * + * @param skill_id The skill's ID. + * @param skill_lv The skill's level. + * @return The skill's cast defence rate corresponding to the passed level. Defaults to 0 in case of error. + * + **/ +static int skill_get_castdef(int skill_id, int skill_lv) { - int idx; if (skill_id == 0) return 0; - idx = skill->get_index(skill_id); + + Assert_ret(skill_lv > 0); + + int idx = skill->get_index(skill_id); + Assert_ret(idx != 0); - return skill->dbs->db[idx].cast_def_rate; + + return skill->dbs->db[idx].cast_def_rate[skill_get_lvl_idx(skill_lv)]; } static int skill_get_weapontype(int skill_id) @@ -513,14 +677,26 @@ static int skill_get_inf2(int skill_id) return skill->dbs->db[idx].inf2; } -static int skill_get_castcancel(int skill_id) +/** + * Gets a skill's cast interruptibility by its ID and level. + * + * @param skill_id The skill's ID. + * @param skill_lv The skill's level. + * @return The skill's cast interruptibility corresponding to the passed level. Defaults to 0 in case of error. + * + **/ +static int skill_get_castcancel(int skill_id, int skill_lv) { - int idx; if (skill_id == 0) return 0; - idx = skill->get_index(skill_id); + + Assert_ret(skill_lv > 0); + + int idx = skill->get_index(skill_id); + Assert_ret(idx != 0); - return skill->dbs->db[idx].castcancel; + + return skill->dbs->db[idx].castcancel[skill_get_lvl_idx(skill_lv)]; } static int skill_get_maxcount(int skill_id, int skill_lv) @@ -568,6 +744,28 @@ static int skill_get_mhp(int skill_id, int skill_lv) return skill->dbs->db[idx].mhp[skill_get_lvl_idx(skill_lv)]; } +/** + * Gets a skill's maximum SP trigger by its ID and level. + * + * @param skill_id The skill's ID. + * @param skill_lv The skill's level. + * @return The skill's maximum SP trigger corresponding to the passed level. Defaults to 0 in case of error. + * + **/ +static int skill_get_msp(int skill_id, int skill_lv) +{ + if (skill_id == 0) + return 0; + + Assert_ret(skill_lv > 0); + + int idx = skill->get_index(skill_id); + + Assert_ret(idx != 0); + + return skill->dbs->db[idx].msp[skill_get_lvl_idx(skill_lv)]; +} + static int skill_get_castnodex(int skill_id, int skill_lv) { int idx; @@ -598,35 +796,72 @@ static int skill_get_delaynodex(int skill_id, int skill_lv) return skill->dbs->db[idx].delaynodex[skill_get_lvl_idx(skill_lv)]; } -static int skill_get_type(int skill_id) +/** + * Gets a skill's attack type by its ID and level. + * + * @param skill_id The skill's ID. + * @param skill_lv The skill's level. + * @return The skill's attack type corresponding to the passed level. Defaults to BF_NONE (0) in case of error. + * + **/ +static int skill_get_type(int skill_id, int skill_lv) { - int idx; if (skill_id == 0) return BF_NONE; - idx = skill->get_index(skill_id); + + Assert_retr(BF_NONE, skill_lv > 0); + + int idx = skill->get_index(skill_id); + Assert_retr(BF_NONE, idx != 0); - return skill->dbs->db[idx].skill_type; + + return skill->dbs->db[idx].skill_type[skill_get_lvl_idx(skill_lv)]; } -static int skill_get_unit_id(int skill_id, int flag) +/** + * Gets a skill's unit ID by its ID and level. + * + * @param skill_id The skill's ID. + * @param skill_lv The skill's level. + * @param flag + * @return The skill's unit ID corresponding to the passed level. Defaults to 0 in case of error. + * + **/ +static int skill_get_unit_id(int skill_id, int skill_lv, int flag) { - int idx; if (skill_id == 0) return 0; - idx = skill->get_index(skill_id); + + Assert_ret(skill_lv > 0); + Assert_ret(flag >= 0 && flag < ARRAYLENGTH(skill->dbs->db[0].unit_id[0])); + + int idx = skill->get_index(skill_id); + Assert_ret(idx != 0); - Assert_ret(flag >= 0 && flag < ARRAYLENGTH(skill->dbs->db[0].unit_id)); - return skill->dbs->db[idx].unit_id[flag]; + + return skill->dbs->db[idx].unit_id[skill_get_lvl_idx(skill_lv)][flag]; } -static int skill_get_unit_interval(int skill_id) +/** + * Gets a skill's unit interval by its ID and level. + * + * @param skill_id The skill's ID. + * @param skill_lv The skill's level. + * @return The skill's unit interval corresponding to the passed level. Defaults to 0 in case of error. + * + **/ +static int skill_get_unit_interval(int skill_id, int skill_lv) { - int idx; if (skill_id == 0) return 0; - idx = skill->get_index(skill_id); + + Assert_ret(skill_lv > 0); + + int idx = skill->get_index(skill_id); + Assert_ret(idx != 0); - return skill->dbs->db[idx].unit_interval; + + return skill->dbs->db[idx].unit_interval[skill_get_lvl_idx(skill_lv)]; } static int skill_get_unit_range(int skill_id, int skill_lv) @@ -644,24 +879,48 @@ static int skill_get_unit_range(int skill_id, int skill_lv) return skill->dbs->db[idx].unit_range[skill_get_lvl_idx(skill_lv)]; } -static int skill_get_unit_target(int skill_id) +/** + * Gets a skill's unit target by its ID and level. + * + * @param skill_id The skill's ID. + * @param skill_lv The skill's level. + * @return The skill's unit target corresponding to the passed level. Defaults to BCT_NOONE (0) in case of error. + * + **/ +static int skill_get_unit_target(int skill_id, int skill_lv) { - int idx; if (skill_id == 0) return BCT_NOONE; - idx = skill->get_index(skill_id); + + Assert_retr(BCT_NOONE, skill_lv > 0); + + int idx = skill->get_index(skill_id); + Assert_retr(BCT_NOONE, idx != 0); - return skill->dbs->db[idx].unit_target & BCT_ALL; + + return (skill->dbs->db[idx].unit_target[skill_get_lvl_idx(skill_lv)] & BCT_ALL); } -static int skill_get_unit_bl_target(int skill_id) +/** + * Gets a skill's unit target as bl type by its ID and level. + * + * @param skill_id The skill's ID. + * @param skill_lv The skill's level. + * @return The skill's unit target as bl type corresponding to the passed level. Defaults to BL_NUL (0) in case of error. + * + **/ +static int skill_get_unit_bl_target(int skill_id, int skill_lv) { - int idx; if (skill_id == 0) return BL_NUL; - idx = skill->get_index(skill_id); - Assert_retr(BL_NUL, idx != 0); - return skill->dbs->db[idx].unit_target & BL_ALL; + + Assert_retr(BCT_NOONE, skill_lv > 0); + + int idx = skill->get_index(skill_id); + + Assert_retr(BCT_NOONE, idx != 0); + + return (skill->dbs->db[idx].unit_target[skill_get_lvl_idx(skill_lv)] & BL_ALL); } static int skill_get_unit_flag(int skill_id) @@ -935,6 +1194,8 @@ static int skill_calc_heal(struct block_list *src, struct block_list *target, ui hp -= hp * 20/100; if(sc->data[SC_HEALPLUS] && skill_id != NPC_EVILLAND && skill_id != BA_APPLEIDUN) hp += hp * sc->data[SC_HEALPLUS]->val1/100; // Only affects Heal, Sanctuary and PotionPitcher.(like bHealPower) [Inkfish] + if (sc->data[SC_VITALIZE_POTION] != NULL && skill_id != NPC_EVILLAND && skill_id != BA_APPLEIDUN) + hp += hp * sc->data[SC_VITALIZE_POTION]->val3 / 100; if(sc->data[SC_WATER_INSIGNIA] && sc->data[SC_WATER_INSIGNIA]->val1 == 2) hp += hp / 10; if (sc->data[SC_VITALITYACTIVATION]) @@ -1010,14 +1271,17 @@ static int skillnotok(uint16 skill_id, struct map_session_data *sd) if (pc_has_permission(sd, PC_PERM_SKILL_UNCONDITIONAL)) return 0; // can do any damn thing they want - if( skill_id == AL_TELEPORT && sd->skillitem == skill_id && sd->skillitemlv > 2 ) - return 0; // Teleport lv 3 bypasses this check.[Inkfish] + if (map->getcell(sd->bl.m, &sd->bl, sd->bl.x, sd->bl.y, CELL_CHKNOSKILL)) + return 1; // block usage on 'noskill' cells [Wolfie] + + if (skill_id == AL_TELEPORT && sd->auto_cast_current.type == AUTOCAST_ITEM && sd->auto_cast_current.skill_lv > 2) + return 0; // Teleport level 3 and higher bypasses this check if cast by itemskill() script commands. // Epoque: // This code will compare the player's attack motion value which is influenced by ASPD before // allowing a skill to be cast. This is to prevent no-delay ACT files from spamming skills such as // AC_DOUBLE which do not have a skill delay and are not regarded in terms of attack motion. - if( !sd->state.autocast && sd->skillitem != skill_id && sd->canskill_tick && + if (sd->auto_cast_current.type == AUTOCAST_NONE && sd->canskill_tick != 0 && DIFF_TICK(timer->gettick(), sd->canskill_tick) < (sd->battle_status.amotion * (battle_config.skill_amotion_leniency) / 100) ) {// attempted to cast a skill before the attack motion has finished return 1; @@ -1032,7 +1296,7 @@ static int skillnotok(uint16 skill_id, struct map_session_data *sd) * It has been confirmed on a official server (thanks to Yommy) that item-cast skills bypass all the restrictions below * Also, without this check, an exploit where an item casting + healing (or any other kind buff) isn't deleted after used on a restricted map **/ - if( sd->skillitem == skill_id ) + if (sd->auto_cast_current.type == AUTOCAST_ITEM) return 0; if( sd->sc.data[SC_ALL_RIDING] ) @@ -1177,6 +1441,33 @@ static int skillnotok_mercenary(uint16 skill_id, struct mercenary_data *md) return skill->not_ok(skill_id, md->master); } +/** + * Validates the plausibility of auto-cast related data and calls pc_autocast_clear() if necessary. + * + * @param sd The character who cast the skill. + * @param skill_id The cast skill's ID. + * @param skill_lv The cast skill's level. (clif_parse_UseSkillMap() passes 0.) + * + **/ +static void skill_validate_autocast_data(struct map_session_data *sd, int skill_id, int skill_lv) +{ + nullpo_retv(sd); + + // Determine if called by clif_parse_UseSkillMap(). + bool use_skill_map = (skill_lv == 0 && (skill_id == AL_WARP || skill_id == AL_TELEPORT)); + + struct autocast_data *auto_cast = &sd->auto_cast_current; + + if (auto_cast->type == AUTOCAST_NONE) + pc->autocast_clear(sd); // No auto-cast type set. Preventively unset all auto-cast related data. + else if (auto_cast->type == AUTOCAST_TEMP) + pc->autocast_clear(sd); // AUTOCAST_TEMP should have been unset straight after usage. + else if (auto_cast->skill_id == 0 || skill_id == 0 || auto_cast->skill_id != skill_id) + pc->autocast_remove(sd, auto_cast->type, auto_cast->skill_id, auto_cast->skill_lv); // Implausible skill ID. + else if (auto_cast->skill_lv == 0 || (!use_skill_map && (skill_lv == 0 || auto_cast->skill_lv != skill_lv))) + pc->autocast_remove(sd, auto_cast->type, auto_cast->skill_id, auto_cast->skill_lv); // Implausible skill level. +} + static struct s_skill_unit_layout *skill_get_unit_layout(uint16 skill_id, uint16 skill_lv, struct block_list *src, int x, int y) { int pos = skill->get_unit_layout_type(skill_id,skill_lv); @@ -2065,9 +2356,9 @@ static int skill_additional_effect(struct block_list *src, struct block_list *bl temp = (sd->autospell[i].id > 0) ? sd->autospell[i].id : -sd->autospell[i].id; - sd->state.autocast = 1; + sd->auto_cast_current.type = AUTOCAST_TEMP; notok = skill->not_ok(temp, sd); - sd->state.autocast = 0; + sd->auto_cast_current.type = AUTOCAST_NONE; if ( notok ) continue; @@ -2118,11 +2409,12 @@ static int skill_additional_effect(struct block_list *src, struct block_list *bl else if (temp == PF_SPIDERWEB) //Special case, due to its nature of coding. type = CAST_GROUND; - sd->state.autocast = 1; + sd->auto_cast_current.type = AUTOCAST_TEMP; skill->consume_requirement(sd,temp,auto_skill_lv,1); - skill->toggle_magicpower(src, temp); + skill->toggle_magicpower(src, temp, auto_skill_lv); skill->castend_type(type, src, tbl, temp, auto_skill_lv, tick, 0); - sd->state.autocast = 0; + sd->auto_cast_current.type = AUTOCAST_NONE; + //Set canact delay. [Skotlex] ud = unit->bl2ud(src); if (ud) { @@ -2191,6 +2483,9 @@ static int skill_onskillusage(struct map_session_data *sd, struct block_list *bl if( sd == NULL || !skill_id ) return 0; + // Preserve auto-cast type if bAutoSpellOnSkill was triggered by a skill which was cast by Abracadabra, Improvised Song or an item. + enum autocast_type ac_type = sd->auto_cast_current.type; + for( i = 0; i < ARRAYLENGTH(sd->autospell3) && sd->autospell3[i].flag; i++ ) { if( sd->autospell3[i].flag != skill_id ) continue; @@ -2200,9 +2495,9 @@ static int skill_onskillusage(struct map_session_data *sd, struct block_list *bl temp = (sd->autospell3[i].id > 0) ? sd->autospell3[i].id : -sd->autospell3[i].id; - sd->state.autocast = 1; + sd->auto_cast_current.type = AUTOCAST_TEMP; notok = skill->not_ok(temp, sd); - sd->state.autocast = 0; + sd->auto_cast_current.type = AUTOCAST_NONE; if ( notok ) continue; @@ -2248,14 +2543,16 @@ static int skill_onskillusage(struct map_session_data *sd, struct block_list *bl !battle->check_range(&sd->bl, tbl, skill->get_range2(&sd->bl, temp,skill_lv) + (temp == RG_CLOSECONFINE?0:1)) ) continue; - sd->state.autocast = 1; sd->autospell3[i].lock = true; + sd->auto_cast_current.type = AUTOCAST_TEMP; skill->consume_requirement(sd,temp,skill_lv,1); skill->castend_type(type, &sd->bl, tbl, temp, skill_lv, tick, 0); + sd->auto_cast_current.type = AUTOCAST_NONE; sd->autospell3[i].lock = false; - sd->state.autocast = 0; } + sd->auto_cast_current.type = ac_type; + if (sd->autobonus3[0].rate) { for( i = 0; i < ARRAYLENGTH(sd->autobonus3); i++ ) { if( rnd()%1000 >= sd->autobonus3[i].rate ) @@ -2402,6 +2699,9 @@ static int skill_counter_additional_effect(struct block_list *src, struct block_ struct unit_data *ud; int i, auto_skill_id, auto_skill_lv, type, notok; + // Preserve auto-cast type if bAutoSpellWhenHit was triggered during cast of a skill which was cast by Abracadabra, Improvised Song or an item. + enum autocast_type ac_type = dstsd->auto_cast_current.type; + for (i = 0; i < ARRAYLENGTH(dstsd->autospell2) && dstsd->autospell2[i].id; i++) { if(!(dstsd->autospell2[i].flag&attack_type&BF_WEAPONMASK && @@ -2417,9 +2717,9 @@ static int skill_counter_additional_effect(struct block_list *src, struct block_ if (attack_type&BF_LONG) rate>>=1; - dstsd->state.autocast = 1; + dstsd->auto_cast_current.type = AUTOCAST_TEMP; notok = skill->not_ok(auto_skill_id, dstsd); - dstsd->state.autocast = 0; + dstsd->auto_cast_current.type = AUTOCAST_NONE; if ( notok ) continue; @@ -2460,10 +2760,11 @@ static int skill_counter_additional_effect(struct block_list *src, struct block_ if( !battle->check_range(src, tbl, skill->get_range2(src, auto_skill_id,auto_skill_lv) + (auto_skill_id == RG_CLOSECONFINE?0:1)) && battle_config.autospell_check_range ) continue; - dstsd->state.autocast = 1; + dstsd->auto_cast_current.type = AUTOCAST_TEMP; skill->consume_requirement(dstsd,auto_skill_id,auto_skill_lv,1); skill->castend_type(type, bl, tbl, auto_skill_id, auto_skill_lv, tick, 0); - dstsd->state.autocast = 0; + dstsd->auto_cast_current.type = AUTOCAST_NONE; + // Set canact delay. [Skotlex] ud = unit->bl2ud(bl); if (ud) { @@ -2475,6 +2776,8 @@ static int skill_counter_additional_effect(struct block_list *src, struct block_ } } } + + dstsd->auto_cast_current.type = ac_type; } //Autobonus when attacked @@ -2935,7 +3238,7 @@ static int skill_attack(int attack_type, struct block_list *src, struct block_li } //Skill hit type - type=(skill_id==0)?BDT_SPLASH:skill->get_hit(skill_id); + type = (skill_id == 0) ? BDT_SPLASH : skill->get_hit(skill_id, skill_lv); if(damage < dmg.div_ //Only skills that knockback even when they miss. [Skotlex] @@ -3715,9 +4018,9 @@ static int skill_check_condition_mercenary(struct block_list *bl, int skill_id, { struct status_data *st; struct map_session_data *sd = NULL; - int i, hp, sp, hp_rate, sp_rate, state, mhp; + int hp, sp, hp_rate, sp_rate, state; int idx; - int itemid[MAX_SKILL_ITEM_REQUIRE], amount[MAX_SKILL_ITEM_REQUIRE], index[MAX_SKILL_ITEM_REQUIRE]; + int itemid[MAX_SKILL_ITEM_REQUIRE], amount[MAX_SKILL_ITEM_REQUIRE]; if( lv < 1 || lv > MAX_SKILL_LEVEL ) return 0; @@ -3733,17 +4036,16 @@ static int skill_check_condition_mercenary(struct block_list *bl, int skill_id, return 0; // Requirements - for (i = 0; i < MAX_SKILL_ITEM_REQUIRE; i++) { - itemid[i] = skill->dbs->db[idx].itemid[i]; - amount[i] = skill->dbs->db[idx].amount[i]; + for (int i = 0; i < MAX_SKILL_ITEM_REQUIRE; i++) { + itemid[i] = skill->get_itemid(skill_id, i); + amount[i] = skill->get_itemqty(skill_id, i, lv); } hp = skill->dbs->db[idx].hp[lv-1]; sp = skill->dbs->db[idx].sp[lv-1]; hp_rate = skill->dbs->db[idx].hp_rate[lv-1]; sp_rate = skill->dbs->db[idx].sp_rate[lv-1]; - state = skill->dbs->db[idx].state; - if( (mhp = skill->dbs->db[idx].mhp[lv-1]) > 0 ) - hp += (st->max_hp * mhp) / 100; + state = skill->dbs->db[idx].state[lv - 1]; + if( hp_rate > 0 ) hp += (st->hp * hp_rate) / 100; else @@ -3776,6 +4078,20 @@ static int skill_check_condition_mercenary(struct block_list *bl, int skill_id, clif->skill_fail(sd, skill_id, USESKILL_FAIL_SP_INSUFFICIENT, 0, 0); return 0; } + + int mhp = skill->get_mhp(skill_id, lv); + + if (mhp > 0 && get_percentage(st->hp, st->max_hp) > mhp) { + clif->skill_fail(sd, skill_id, USESKILL_FAIL_HP_INSUFFICIENT, 0, 0); + return 0; + } + + int msp = skill->get_msp(skill_id, lv); + + if (msp > 0 && get_percentage(st->sp, st->max_sp) > msp) { + clif->skill_fail(sd, skill_id, USESKILL_FAIL_SP_INSUFFICIENT, 0, 0); + return 0; + } } if( !type ) @@ -3790,23 +4106,32 @@ static int skill_check_condition_mercenary(struct block_list *bl, int skill_id, if( !(type&1) ) return 1; - // Check item existences - for (i = 0; i < ARRAYLENGTH(itemid); i++) { - index[i] = INDEX_NOT_FOUND; - if (itemid[i] < 1) continue; // No item - index[i] = pc->search_inventory(sd, itemid[i]); - if (index[i] == INDEX_NOT_FOUND || sd->status.inventory[index[i]].amount < amount[i]) { - clif->skill_fail(sd, skill_id, USESKILL_FAIL_NEED_ITEM, amount[i], itemid[i]); - return 0; - } - } + bool items_required = skill->items_required(sd, skill_id, lv); + + if (items_required && skill->check_condition_required_items(sd, skill_id, lv) != 0) + return 0; - // Consume items - for (i = 0; i < ARRAYLENGTH(itemid); i++) { - if (index[i] != INDEX_NOT_FOUND) - pc->delitem(sd, index[i], amount[i], 0, DELITEM_SKILLUSE, LOG_TYPE_CONSUME); + int any_item_index = INDEX_NOT_FOUND; + + if (items_required) + any_item_index = skill->get_any_item_index(sd, skill_id, lv); + + for (int i = 0; i < MAX_SKILL_ITEM_REQUIRE && items_required; i++) { + if (itemid[i] == 0) + continue; + + if (any_item_index != INDEX_NOT_FOUND && any_item_index != i) + continue; + + int inventory_index = pc->search_inventory(sd, itemid[i]); + + if (inventory_index != INDEX_NOT_FOUND) + pc->delitem(sd, inventory_index, amount[i], 0, DELITEM_SKILLUSE, LOG_TYPE_CONSUME); } + if (skill->check_condition_required_equip(sd, skill_id, lv) != 0) + return 0; + if( type&2 ) return 1; @@ -3894,7 +4219,7 @@ static int skill_timerskill(int tid, int64 tick, int id, intptr_t data) clif->skill_nodamage(src,target,skl->skill_id,skl->skill_lv,1); break; case WZ_WATERBALL: - skill->toggle_magicpower(src, skl->skill_id); // only the first hit will be amplify + skill->toggle_magicpower(src, skl->skill_id, skl->skill_lv); // only the first hit will be amplify if (!status->isdead(target)) skill->attack(BF_MAGIC,src,src,target,skl->skill_id,skl->skill_lv,tick,skl->flag); if (skl->type>1 && !status->isdead(target) && !status->isdead(src)) { @@ -3914,7 +4239,7 @@ static int skill_timerskill(int tid, int64 tick, int id, intptr_t data) **/ case WL_CHAINLIGHTNING_ATK: skill->attack(BF_MAGIC, src, src, target, skl->skill_id, skl->skill_lv, tick, (9-skl->type)); // Hit a Lightning on the current Target - skill->toggle_magicpower(src, skl->skill_id); // only the first hit will be amplify + skill->toggle_magicpower(src, skl->skill_id, skl->skill_lv); // only the first hit will be amplify if (skl->type < (4 + skl->skill_lv - 1) && skl->x < 3) { // Remaining Chains Hit @@ -3934,7 +4259,7 @@ static int skill_timerskill(int tid, int64 tick, int id, intptr_t data) case WL_TETRAVORTEX_GROUND: clif->skill_nodamage(src, target, skl->skill_id, skl->skill_lv, 1); skill->attack(BF_MAGIC, src, src, target, skl->skill_id, skl->skill_lv, tick, skl->flag); - skill->toggle_magicpower(src, skl->skill_id); // only the first hit will be amplify + skill->toggle_magicpower(src, skl->skill_id, skl->skill_lv); // only the first hit will be amplify if( skl->type == 4 ){ const enum sc_type scs[] = { SC_BURNING, SC_BLOODING, SC_FROSTMISTY, SC_STUN }; // status inflicts are depend on what summoned element is used. int rate = skl->y, index = skl->x-1; @@ -3943,7 +4268,7 @@ static int skill_timerskill(int tid, int64 tick, int id, intptr_t data) break; case WM_REVERBERATION_MELEE: case WM_REVERBERATION_MAGIC: - skill->attack(skill->get_type(skl->skill_id),src, src, target, skl->skill_id, skl->skill_lv, 0, SD_LEVEL); + skill->attack(skill->get_type(skl->skill_id, skl->skill_lv), src, src, target, skl->skill_id, skl->skill_lv, 0, SD_LEVEL); break; case SC_FATALMENACE: if( src == target ) // Casters Part @@ -4048,7 +4373,7 @@ static int skill_timerskill(int tid, int64 tick, int id, intptr_t data) case LG_OVERBRAND_BRANDISH: skill->area_temp[1] = 0; map->foreachinpath(skill->attack_area,src->m,src->x,src->y,skl->x,skl->y,4,2,BL_CHAR, - skill->get_type(skl->skill_id),src,src,skl->skill_id,skl->skill_lv,tick,skl->flag,BCT_ENEMY); + skill->get_type(skl->skill_id, skl->skill_lv), src, src, skl->skill_id, skl->skill_lv, tick, skl->flag, BCT_ENEMY); break; default: skill->timerskill_notarget_unknown(tid, tick, src, ud, skl); @@ -4197,11 +4522,6 @@ static void skill_castend_type(int type, struct block_list *src, struct block_li skill->castend_damage_id(src, bl, skill_id, skill_lv, tick, flag); break; } - - struct map_session_data *sd = BL_CAST(BL_PC, src); - - if (sd != NULL) - pc->itemskill_clear(sd); } /*========================================== @@ -4230,12 +4550,12 @@ static int skill_castend_damage_id(struct block_list *src, struct block_list *bl if (status->isdead(bl)) return 1; - if (skill_id && skill->get_type(skill_id) == BF_MAGIC && status->isimmune(bl) == 100) { + if (skill_id != 0 && skill->get_type(skill_id, skill_lv) == BF_MAGIC && status->isimmune(bl) == 100) { //GTB makes all targeted magic display miss with a single bolt. sc_type sct = status->skill2sc(skill_id); if(sct != SC_NONE) status_change_end(bl, sct, INVALID_TIMER); - clif->skill_damage(src, bl, tick, status_get_amotion(src), status_get_dmotion(bl), 0, 1, skill_id, skill_lv, skill->get_hit(skill_id)); + clif->skill_damage(src, bl, tick, status_get_amotion(src), status_get_dmotion(bl), 0, 1, skill_id, skill_lv, skill->get_hit(skill_id, skill_lv)); return 1; } @@ -4443,7 +4763,7 @@ static int skill_castend_damage_id(struct block_list *src, struct block_list *bl skill->area_temp[1] = bl->id; map->foreachinpath(skill->attack_area,src->m,src->x,src->y,bl->x,bl->y, skill->get_splash(skill_id, skill_lv),skill->get_maxcount(skill_id,skill_lv), skill->splash_target(src), - skill->get_type(skill_id),src,src,skill_id,skill_lv,tick,flag,BCT_ENEMY); + skill->get_type(skill_id, skill_lv), src, src, skill_id, skill_lv, tick, flag, BCT_ENEMY); break; case NPC_ACIDBREATH: @@ -4454,7 +4774,7 @@ static int skill_castend_damage_id(struct block_list *src, struct block_list *bl skill->area_temp[1] = bl->id; map->foreachinpath(skill->attack_area,src->m,src->x,src->y,bl->x,bl->y, skill->get_splash(skill_id, skill_lv),skill->get_maxcount(skill_id,skill_lv), skill->splash_target(src), - skill->get_type(skill_id),src,src,skill_id,skill_lv,tick,flag,BCT_ENEMY); + skill->get_type(skill_id, skill_lv), src, src, skill_id, skill_lv, tick, flag, BCT_ENEMY); break; case MO_INVESTIGATE: @@ -4626,7 +4946,7 @@ static int skill_castend_damage_id(struct block_list *src, struct block_list *bl if ( tsc && tsc->data[SC_HOVERING] && ( skill_id == SR_WINDMILL || skill_id == LG_MOONSLASHER ) ) break; - heal = skill->attack(skill->get_type(skill_id), src, src, bl, skill_id, skill_lv, tick, sflag); + heal = skill->attack(skill->get_type(skill_id, skill_lv), src, src, bl, skill_id, skill_lv, tick, sflag); if (skill_id == NPC_VAMPIRE_GIFT && heal > 0) { clif->skill_nodamage(NULL, src, AL_HEAL, heal, 1); status->heal(src, heal, 0, STATUS_HEAL_DEFAULT); @@ -4701,7 +5021,7 @@ static int skill_castend_damage_id(struct block_list *src, struct block_list *bl case MS_MAGNUM: if( flag&1 ) { //Damage depends on distance, so add it to flag if it is > 1 - skill->attack(skill->get_type(skill_id), src, src, bl, skill_id, skill_lv, tick, flag|SD_ANIMATION|distance_bl(src, bl)); + skill->attack(skill->get_type(skill_id, skill_lv), src, src, bl, skill_id, skill_lv, tick, flag|SD_ANIMATION|distance_bl(src, bl)); } break; @@ -4709,9 +5029,9 @@ static int skill_castend_damage_id(struct block_list *src, struct block_list *bl case ML_BRANDISH: //Coded apart for it needs the flag passed to the damage calculation. if (skill->area_temp[1] != bl->id) - skill->attack(skill->get_type(skill_id), src, src, bl, skill_id, skill_lv, tick, flag|SD_ANIMATION); + skill->attack(skill->get_type(skill_id, skill_lv), src, src, bl, skill_id, skill_lv, tick, flag|SD_ANIMATION); else - skill->attack(skill->get_type(skill_id), src, src, bl, skill_id, skill_lv, tick, flag); + skill->attack(skill->get_type(skill_id, skill_lv), src, src, bl, skill_id, skill_lv, tick, flag); break; case KN_BOWLINGBASH: @@ -4971,7 +5291,7 @@ static int skill_castend_damage_id(struct block_list *src, struct block_list *bl if( (tsc = status->get_sc(bl)) && (tsc->data[SC_HIDING] )) { clif->skill_nodamage(src,src,skill_id,skill_lv,1); } else - skill->attack(BF_MISC,src,src,bl,skill_id,skill_lv,tick,flag); + skill->attack(BF_WEAPON,src,src,bl,skill_id,skill_lv,tick,flag); } break; case NPC_SELFDESTRUCTION: { @@ -5106,7 +5426,7 @@ static int skill_castend_damage_id(struct block_list *src, struct block_list *bl break; case WL_DRAINLIFE: { - int heal = skill->attack(skill->get_type(skill_id), src, src, bl, skill_id, skill_lv, tick, flag); + int heal = skill->attack(skill->get_type(skill_id, skill_lv), src, src, bl, skill_id, skill_lv, tick, flag); int rate = 70 + 5 * skill_lv; heal = heal * (5 + 5 * skill_lv) / 100; @@ -5152,7 +5472,7 @@ static int skill_castend_damage_id(struct block_list *src, struct block_list *bl if (sd) { int i; clif->skill_nodamage(src, bl, skill_id, skill_lv, 1); - skill->toggle_magicpower(src, skill_id); + skill->toggle_magicpower(src, skill_id, skill_lv); // Priority is to release SpellBook if (sc && sc->data[SC_READING_SB]) { // SpellBook @@ -5396,7 +5716,7 @@ static int skill_castend_damage_id(struct block_list *src, struct block_list *bl { struct status_change *tsc = status->get_sc(bl); if( tsc && tsc->data[SC_POISON] ) { - skill->attack(skill->get_type(skill_id), src, src, bl, skill_id, skill_lv, tick, flag); + skill->attack(skill->get_type(skill_id, skill_lv), src, src, bl, skill_id, skill_lv, tick, flag); status_change_end(bl, SC_POISON, INVALID_TIMER); } else if( sd ) clif->skill_fail(sd, skill_id, USESKILL_FAIL_LEVEL, 0, 0); @@ -5418,7 +5738,7 @@ static int skill_castend_damage_id(struct block_list *src, struct block_list *bl case EL_HURRICANE: case EL_TYPOON_MIS: if( flag&1 ) - skill->attack(skill->get_type(skill_id+1),src,src,bl,skill_id+1,skill_lv,tick,flag); + skill->attack(skill->get_type(skill_id + 1, skill_lv), src, src, bl, skill_id + 1, skill_lv, tick, flag); else { int i = skill->get_splash(skill_id,skill_lv); clif->skill_nodamage(src,battle->get_master(src),skill_id,skill_lv,1); @@ -5426,7 +5746,7 @@ static int skill_castend_damage_id(struct block_list *src, struct block_list *bl if( rnd()%100 < 30 ) map->foreachinrange(skill->area_sub,bl,i,BL_CHAR,src,skill_id,skill_lv,tick,flag|BCT_ENEMY|1,skill->castend_damage_id); else - skill->attack(skill->get_type(skill_id),src,src,bl,skill_id,skill_lv,tick,flag); + skill->attack(skill->get_type(skill_id, skill_lv), src, src, bl, skill_id, skill_lv, tick, flag); } break; @@ -5441,7 +5761,7 @@ static int skill_castend_damage_id(struct block_list *src, struct block_list *bl case EL_STONE_RAIN: if( flag&1 ) - skill->attack(skill->get_type(skill_id),src,src,bl,skill_id,skill_lv,tick,flag); + skill->attack(skill->get_type(skill_id, skill_lv), src, src, bl, skill_id, skill_lv, tick, flag); else { int i = skill->get_splash(skill_id,skill_lv); clif->skill_nodamage(src,battle->get_master(src),skill_id,skill_lv,1); @@ -5449,7 +5769,7 @@ static int skill_castend_damage_id(struct block_list *src, struct block_list *bl if( rnd()%100 < 30 ) map->foreachinrange(skill->area_sub,bl,i,BL_CHAR,src,skill_id,skill_lv,tick,flag|BCT_ENEMY|1,skill->castend_damage_id); else - skill->attack(skill->get_type(skill_id),src,src,bl,skill_id,skill_lv,tick,flag); + skill->attack(skill->get_type(skill_id, skill_lv), src, src, bl, skill_id, skill_lv, tick, flag); } break; @@ -5459,7 +5779,7 @@ static int skill_castend_damage_id(struct block_list *src, struct block_list *bl case EL_STONE_HAMMER: clif->skill_nodamage(src,battle->get_master(src),skill_id,skill_lv,1); clif->skill_damage(src, bl, tick, status_get_amotion(src), 0, -30000, 1, skill_id, skill_lv, BDT_SKILL); - skill->attack(skill->get_type(skill_id),src,src,bl,skill_id,skill_lv,tick,flag); + skill->attack(skill->get_type(skill_id, skill_lv), src, src, bl, skill_id, skill_lv, tick, flag); break; case EL_TIDAL_WEAPON: @@ -5476,7 +5796,7 @@ static int skill_castend_damage_id(struct block_list *src, struct block_list *bl elemental->clean_single_effect(ele, skill_id); } if( rnd()%100 < 50 ) - skill->attack(skill->get_type(skill_id),src,src,bl,skill_id,skill_lv,tick,flag); + skill->attack(skill->get_type(skill_id, skill_lv), src, src, bl, skill_id, skill_lv, tick, flag); else { sc_start(src, src,type2,100,skill_lv,skill->get_time(skill_id,skill_lv)); sc_start(src, battle->get_master(src),type,100,ele->bl.id,skill->get_time(skill_id,skill_lv)); @@ -5489,7 +5809,7 @@ static int skill_castend_damage_id(struct block_list *src, struct block_list *bl case MH_MAGMA_FLOW: case MH_HEILIGE_STANGE: if(flag & 1) - skill->attack(skill->get_type(skill_id), src, src, bl, skill_id, skill_lv, tick, flag); + skill->attack(skill->get_type(skill_id, skill_lv), src, src, bl, skill_id, skill_lv, tick, flag); else { map->foreachinrange(skill->area_sub, bl, skill->get_splash(skill_id, skill_lv), skill->splash_target(src), src, skill_id, skill_lv, tick, flag | BCT_ENEMY | SD_SPLASH | 1, skill->castend_damage_id); } @@ -5513,7 +5833,7 @@ static int skill_castend_damage_id(struct block_list *src, struct block_list *bl break; case SU_SV_STEMSPEAR: - skill->attack(skill->get_type(skill_id), src, src, bl, skill_id, skill_lv, tick, flag); + skill->attack(skill->get_type(skill_id, skill_lv), src, src, bl, skill_id, skill_lv, tick, flag); if (status->get_lv(src) >= 30 && (rnd() % 100 < (int)(status->get_lv(src) / 30) + 10)) // TODO: Need activation chance. skill->addtimerskill(src, tick + skill->get_delay(skill_id, skill_lv), bl->id, 0, 0, skill_id, skill_lv, (skill_id == SU_SV_STEMSPEAR) ? BF_MAGIC : BF_WEAPON, flag); break; @@ -5573,7 +5893,7 @@ static bool skill_castend_damage_id_unknown(struct block_list *src, struct block ShowWarning("skill_castend_damage_id: Unknown skill used:%d\n", *skill_id); clif->skill_damage(src, bl, *tick, status_get_amotion(src), tstatus->dmotion, 0, abs(skill->get_num(*skill_id, *skill_lv)), - *skill_id, *skill_lv, skill->get_hit(*skill_id)); + *skill_id, *skill_lv, skill->get_hit(*skill_id, *skill_lv)); map->freeblock_unlock(); return true; } @@ -5792,7 +6112,7 @@ static int skill_castend_id(int tid, int64 tick, int id, intptr_t data) if (ud->walktimer != INVALID_TIMER && ud->skill_id != TK_RUN && ud->skill_id != RA_WUGDASH) unit->stop_walking(src, STOPWALKING_FLAG_FIXPOS); - if( !sd || sd->skillitem != ud->skill_id || skill->get_delay(ud->skill_id,ud->skill_lv) ) + if (sd == NULL || sd->auto_cast_current.skill_id != ud->skill_id || skill->get_delay(ud->skill_id, ud->skill_lv) != 0) ud->canact_tick = tick + skill->delay_fix(src, ud->skill_id, ud->skill_lv); // Tests show wings don't overwrite the delay but skill scrolls do. [Inkfish] if (sd) { // Cooldown application int i, cooldown = skill->get_cooldown(ud->skill_id, ud->skill_lv); @@ -5825,7 +6145,7 @@ static int skill_castend_id(int tid, int64 tick, int id, intptr_t data) break; } } - if (skill->get_state(ud->skill_id) != ST_MOVE_ENABLE) + if (skill->get_state(ud->skill_id, ud->skill_lv) != ST_MOVE_ENABLE) unit->set_walkdelay(src, tick, battle_config.default_walk_delay+skill->get_walkdelay(ud->skill_id, ud->skill_lv), 1); if(battle_config.skill_log && battle_config.skill_log&src->type) @@ -5835,7 +6155,7 @@ static int skill_castend_id(int tid, int64 tick, int id, intptr_t data) map->freeblock_lock(); // SC_MAGICPOWER needs to switch states before any damage is actually dealt - skill->toggle_magicpower(src, ud->skill_id); + skill->toggle_magicpower(src, ud->skill_id, ud->skill_lv); #if 0 // On aegis damage skills are also increase by camouflage. Need confirmation on kRO. if( ud->skill_id != RA_CAMOUFLAGE ) // only normal attack and auto cast skills benefit from its bonuses @@ -5860,8 +6180,10 @@ static int skill_castend_id(int tid, int64 tick, int id, intptr_t data) skill->blockpc_start(sd,BD_ADAPTATION,3000); } - if( sd && ud->skill_id != SA_ABRACADABRA && ud->skill_id != WM_RANDOMIZESPELL ) // they just set the data so leave it as it is.[Inkfish] - sd->skillitem = sd->skillitemlv = 0; + if (sd != NULL && ud->skill_id != SA_ABRACADABRA && ud->skill_id != WM_RANDOMIZESPELL + && ud->skill_id == sd->auto_cast_current.skill_id) { // they just set the data so leave it as it is.[Inkfish] + pc->autocast_remove(sd, sd->auto_cast_current.type, ud->skill_id, ud->skill_lv); + } if (ud->skilltimer == INVALID_TIMER) { if(md) md->skill_idx = -1; @@ -5910,16 +6232,20 @@ static int skill_castend_id(int tid, int64 tick, int id, intptr_t data) } } - if( !sd || sd->skillitem != ud->skill_id || skill->get_delay(ud->skill_id,ud->skill_lv) ) + if (sd == NULL || sd->auto_cast_current.skill_id != ud->skill_id || skill->get_delay(ud->skill_id, ud->skill_lv) != 0) ud->canact_tick = tick; - ud->skill_id = ud->skill_lv = ud->skilltarget = 0; //You can't place a skill failed packet here because it would be //sent in ALL cases, even cases where skill_check_condition fails //which would lead to double 'skill failed' messages u.u [Skotlex] - if(sd) - sd->skillitem = sd->skillitemlv = 0; + if (sd != NULL && ud->skill_id == sd->auto_cast_current.skill_id) + pc->autocast_remove(sd, sd->auto_cast_current.type, ud->skill_id, ud->skill_lv); else if(md) md->skill_idx = -1; + + ud->skill_id = 0; + ud->skill_lv = 0; + ud->skilltarget = 0; + return 0; } @@ -6101,7 +6427,7 @@ static int skill_castend_nodamage_id(struct block_list *src, struct block_list * if (skill->castend_nodamage_id_undead_unknown(src, bl, &skill_id, &skill_lv, &tick, &flag)) { //Skill is actually ground placed. - if (src == bl && skill->get_unit_id(skill_id,0)) + if (src == bl && skill->get_unit_id(skill_id, skill_lv, 0) != 0) return skill->castend_pos2(src,bl->x,bl->y,skill_id,skill_lv,tick,0); } break; @@ -6299,9 +6625,12 @@ static int skill_castend_nodamage_id(struct block_list *src, struct block_list * if (sd) { // player-casted - sd->state.abra_flag = 1; - sd->skillitem = abra_skill_id; - sd->skillitemlv = abra_skill_lv; + pc->autocast_clear(sd); + sd->auto_cast_current.type = AUTOCAST_ABRA; + sd->auto_cast_current.skill_id = abra_skill_id; + sd->auto_cast_current.skill_lv = abra_skill_lv; + VECTOR_ENSURE(sd->auto_cast, 1, 1); + VECTOR_PUSH(sd->auto_cast, sd->auto_cast_current); clif->item_skill(sd, abra_skill_id, abra_skill_lv); } else { // mob-casted @@ -7349,7 +7678,7 @@ static int skill_castend_nodamage_id(struct block_list *src, struct block_list * int rate = 100 * (100 - (tstatus->int_ / 2 + tstatus->vit / 3 + tstatus->luk / 10)); int duration = skill->get_time2(skill_id, skill_lv); - duration *= (100 - (tstatus->int_ + tstatus->vit) / 2) / 100; + duration = duration * (100 - (tstatus->int_ + tstatus->vit) / 2) / 100; status->change_start(src, bl, SC_BLIND, rate, 1, 0, 0, 0, duration, SCFLAG_NONE); } @@ -7430,7 +7759,7 @@ static int skill_castend_nodamage_id(struct block_list *src, struct block_list * map->freeblock_unlock(); return 1; } - if( sd->skillitem != skill_id ) + if (sd->auto_cast_current.type == AUTOCAST_NONE) status_zap(src, 0, skill->get_sp(skill_id, skill_lv)); // consume sp only if succeeded } break; @@ -7467,7 +7796,7 @@ static int skill_castend_nodamage_id(struct block_list *src, struct block_list * break; } - if( sd->state.autocast || ( (sd->skillitem == AL_TELEPORT || battle_config.skip_teleport_lv1_menu) && skill_lv == 1 ) || skill_lv == 3 ) + if (sd->auto_cast_current.type == AUTOCAST_TEMP || ((sd->auto_cast_current.skill_id == AL_TELEPORT || battle_config.skip_teleport_lv1_menu) && skill_lv == 1) || skill_lv == 3) { if( skill_lv == 1 ) pc->randomwarp(sd,CLR_TELEPORT); @@ -7616,7 +7945,7 @@ static int skill_castend_nodamage_id(struct block_list *src, struct block_list * map->freeblock_unlock(); return 1; } - if (sd->inventory_data[inventory_idx] == NULL || sd->status.inventory[inventory_idx].amount < skill->get_itemqty(skill_id, item_idx)) { + if (sd->inventory_data[inventory_idx] == NULL || sd->status.inventory[inventory_idx].amount < skill->get_itemqty(skill_id, item_idx, skill_lv)) { clif->skill_fail(sd, skill_id, USESKILL_FAIL_LEVEL, 0, 0); map->freeblock_unlock(); return 1; @@ -8244,7 +8573,7 @@ static int skill_castend_nodamage_id(struct block_list *src, struct block_list * if (nameid > 0) { int success; struct item item_tmp = { 0 }; - int amount = skill->get_itemqty(su->group->skill_id, i); + int amount = skill->get_itemqty(su->group->skill_id, i, skill_lv); item_tmp.nameid = nameid; item_tmp.identify = 1; if ((success = pc->additem(sd, &item_tmp, amount, LOG_TYPE_SKILL)) != 0) { @@ -10041,9 +10370,12 @@ static int skill_castend_nodamage_id(struct block_list *src, struct block_list * clif->skill_nodamage (src, bl, skill_id, skill_lv, 1); if (sd != NULL) { - sd->state.abra_flag = 2; - sd->skillitem = improv_skill_id; - sd->skillitemlv = improv_skill_lv; + pc->autocast_clear(sd); + sd->auto_cast_current.type = AUTOCAST_IMPROVISE; + sd->auto_cast_current.skill_id = improv_skill_id; + sd->auto_cast_current.skill_lv = improv_skill_lv; + VECTOR_ENSURE(sd->auto_cast, 1, 1); + VECTOR_PUSH(sd->auto_cast, sd->auto_cast_current); clif->item_skill(sd, improv_skill_id, improv_skill_lv); } else { struct unit_data *ud = unit->bl2ud(src); @@ -10436,7 +10768,7 @@ static int skill_castend_nodamage_id(struct block_list *src, struct block_list * case KO_KAZEHU_SEIRAN: case KO_DOHU_KOUKAI: if(sd) { - int ttype = skill->get_ele(skill_id, skill_lv); + enum spirit_charm_types ttype = skill->get_ele(skill_id, skill_lv); clif->skill_nodamage(src, bl, skill_id, skill_lv, 1); pc->add_charm(sd, skill->get_time(skill_id, skill_lv), MAX_SPIRITCHARM, ttype); // replace existing charms of other type } @@ -10812,7 +11144,7 @@ static int skill_castend_pos(int tid, int64 tick, int id, intptr_t data) if (ud->walktimer != INVALID_TIMER) unit->stop_walking(src, STOPWALKING_FLAG_FIXPOS); - if( !sd || sd->skillitem != ud->skill_id || skill->get_delay(ud->skill_id,ud->skill_lv) ) + if (sd == NULL || sd->auto_cast_current.skill_id != ud->skill_id || skill->get_delay(ud->skill_id, ud->skill_lv) != 0) ud->canact_tick = tick + skill->delay_fix(src, ud->skill_id, ud->skill_lv); if (sd) { //Cooldown application int i, cooldown = skill->get_cooldown(ud->skill_id, ud->skill_lv); @@ -10841,8 +11173,8 @@ static int skill_castend_pos(int tid, int64 tick, int id, intptr_t data) map->freeblock_lock(); skill->castend_pos2(src,ud->skillx,ud->skilly,ud->skill_id,ud->skill_lv,tick,0); - if( sd && sd->skillitem != AL_WARP ) // Warp-Portal thru items will clear data in skill_castend_map. [Inkfish] - sd->skillitem = sd->skillitemlv = 0; + if (sd != NULL && ud->skill_id != AL_WARP && ud->skill_id == sd->auto_cast_current.skill_id) // Warp-Portal thru items will clear data in skill_castend_map. [Inkfish] + pc->autocast_remove(sd, sd->auto_cast_current.type, ud->skill_id, ud->skill_lv); unit->set_dir(src, map->calc_dir(src, ud->skillx, ud->skilly)); @@ -10856,13 +11188,17 @@ static int skill_castend_pos(int tid, int64 tick, int id, intptr_t data) return 1; } while(0); - if( !sd || sd->skillitem != ud->skill_id || skill->get_delay(ud->skill_id,ud->skill_lv) ) + if (sd == NULL || sd->auto_cast_current.skill_id != ud->skill_id || skill->get_delay(ud->skill_id, ud->skill_lv) != 0) ud->canact_tick = tick; - ud->skill_id = ud->skill_lv = 0; - if(sd) - sd->skillitem = sd->skillitemlv = 0; + + if (sd != NULL && ud->skill_id == sd->auto_cast_current.skill_id) + pc->autocast_remove(sd, sd->auto_cast_current.type, ud->skill_id, ud->skill_lv); else if(md) md->skill_idx = -1; + + ud->skill_id = 0; + ud->skill_lv = 0; + return 0; } @@ -10893,6 +11229,37 @@ static int skill_count_wos(struct block_list *bl, va_list ap) return 0; } +/** + * Returns the linked song/dance skill ID, if any (for the Bard/Dancer Soul Link). + * + * @param skill_id The skill ID to look up + * + * @return The linked song or dance's skill ID if any + * @retval 0 if the given skill_id doesn't have a linked skill ID + */ +static int skill_get_linked_song_dance_id(int skill_id) +{ + switch (skill_id) { + case BA_WHISTLE: + return DC_HUMMING; + case BA_ASSASSINCROSS: + return DC_DONTFORGETME; + case BA_POEMBRAGI: + return DC_FORTUNEKISS; + case BA_APPLEIDUN: + return DC_SERVICEFORYOU; + case DC_HUMMING: + return BA_WHISTLE; + case DC_DONTFORGETME: + return BA_ASSASSINCROSS; + case DC_FORTUNEKISS: + return BA_POEMBRAGI; + case DC_SERVICEFORYOU: + return BA_APPLEIDUN; + } + return 0; +} + /*========================================== * *------------------------------------------*/ @@ -10990,7 +11357,7 @@ static int skill_castend_map(struct map_session_data *sd, uint16 skill_id, const } } - lv = sd->skillitem==skill_id?sd->skillitemlv:pc->checkskill(sd,skill_id); + lv = (sd->auto_cast_current.type > AUTOCAST_TEMP) ? sd->auto_cast_current.skill_lv : pc->checkskill(sd, skill_id); wx = sd->menuskill_val>>16; wy = sd->menuskill_val&0xffff; @@ -11013,7 +11380,10 @@ static int skill_castend_map(struct map_session_data *sd, uint16 skill_id, const } skill->consume_requirement(sd,sd->menuskill_id,lv,2); - sd->skillitem = sd->skillitemlv = 0; // Clear data that's skipped in 'skill_castend_pos' [Inkfish] + + // Clear data which was skipped in skill_castend_pos(). + pc->autocast_remove(sd, sd->auto_cast_current.type, sd->auto_cast_current.skill_id, + sd->auto_cast_current.skill_lv); if((group=skill->unitsetting(&sd->bl,skill_id,lv,wx,wy,0))==NULL) { skill_failed(sd); @@ -11074,7 +11444,7 @@ static int skill_castend_pos2(struct block_list *src, int x, int y, uint16 skill } // SC_MAGICPOWER needs to switch states before any damage is actually dealt - skill->toggle_magicpower(src, skill_id); + skill->toggle_magicpower(src, skill_id, skill_lv); switch(skill_id) { case PR_BENEDICTIO: @@ -11262,7 +11632,7 @@ static int skill_castend_pos2(struct block_list *src, int x, int y, uint16 skill FALLTHROUGH case GS_GROUNDDRIFT: //Ammo should be deleted right away. if ( skill_id == WM_SEVERE_RAINSTORM ) - sc_start(src,src,SC_NO_SWITCH_EQUIP,100,0,skill->get_time(skill_id,skill_lv)); + sc_start(src, src, type, 100, 0, skill->get_time(skill_id, skill_lv)); skill->unitsetting(src,skill_id,skill_lv,x,y,0); break; case WZ_ICEWALL: @@ -11433,7 +11803,7 @@ static int skill_castend_pos2(struct block_list *src, int x, int y, uint16 skill int bonus; if (inventory_idx == INDEX_NOT_FOUND || item_id <= 0 || sd->inventory_data[inventory_idx] == NULL - || sd->status.inventory[inventory_idx].amount < skill->get_itemqty(skill_id, item_idx) + || sd->status.inventory[inventory_idx].amount < skill->get_itemqty(skill_id, item_idx, skill_lv) ) { clif->skill_fail(sd, skill_id, USESKILL_FAIL_LEVEL, 0, 0); return 1; @@ -11679,7 +12049,7 @@ static int skill_castend_pos2(struct block_list *src, int x, int y, uint16 skill skill->unitsetting(src, skill_id, skill_lv, x, y, 0); // Set bomb on current Position clif->skill_nodamage(src, src, skill_id, skill_lv, 1); if( skill->blown(src, src, 3 * skill_lv, unit->getdir(src), 0) && sc) { - sc_start(src, src, SC__FEINTBOMB_MASTER, 100, 0, skill->get_unit_interval(SC_FEINTBOMB)); + sc_start(src, src, SC__FEINTBOMB_MASTER, 100, 0, skill->get_unit_interval(SC_FEINTBOMB, skill_lv)); } break; @@ -11692,7 +12062,7 @@ static int skill_castend_pos2(struct block_list *src, int x, int y, uint16 skill case LG_OVERBRAND: skill->area_temp[1] = 0; map->foreachinpath(skill->attack_area,src->m,src->x,src->y,x,y,1,5,BL_CHAR, - skill->get_type(skill_id),src,src,skill_id,skill_lv,tick,flag,BCT_ENEMY); + skill->get_type(skill_id, skill_lv), src, src, skill_id, skill_lv, tick, flag, BCT_ENEMY); skill->addtimerskill(src,timer->gettick() + status_get_amotion(src), 0, x, y, LG_OVERBRAND_BRANDISH, skill_lv, 0, flag); break; @@ -11926,10 +12296,10 @@ static bool skill_dance_switch(struct skill_unit *su, int flag) // replace group->skill_id = skill_id; group->skill_lv = 1; - group->unit_id = skill->get_unit_id(skill_id,0); - group->target_flag = skill->get_unit_target(skill_id); - group->bl_flag = skill->get_unit_bl_target(skill_id); - group->interval = skill->get_unit_interval(skill_id); + group->unit_id = skill->get_unit_id(skill_id, 1, 0); + group->target_flag = skill->get_unit_target(skill_id, 1); + group->bl_flag = skill->get_unit_bl_target(skill_id, 1); + group->interval = skill->get_unit_interval(skill_id, 1); } else { //Restore group->skill_id = backup.skill_id; @@ -11962,8 +12332,8 @@ static struct skill_unit_group *skill_unitsetting(struct block_list *src, uint16 limit = skill->get_time(skill_id,skill_lv); range = skill->get_unit_range(skill_id,skill_lv); - interval = skill->get_unit_interval(skill_id); - target = skill->get_unit_target(skill_id); + interval = skill->get_unit_interval(skill_id, skill_lv); + target = skill->get_unit_target(skill_id, skill_lv); unit_flag = skill->get_unit_flag(skill_id); layout = skill->get_unit_layout(skill_id,skill_lv,src,x,y); @@ -12327,12 +12697,12 @@ static struct skill_unit_group *skill_unitsetting(struct block_list *src, uint16 } nullpo_retr(NULL, layout); - nullpo_retr(NULL, group=skill->init_unitgroup(src,layout->count,skill_id,skill_lv,skill->get_unit_id(skill_id,flag&1)+subunt, limit, interval)); + nullpo_retr(NULL, group = skill->init_unitgroup(src, layout->count, skill_id, skill_lv, skill->get_unit_id(skill_id, skill_lv, flag & 1) + subunt, limit, interval)); group->val1=val1; group->val2=val2; group->val3=val3; group->target_flag=target; - group->bl_flag= skill->get_unit_bl_target(skill_id); + group->bl_flag= skill->get_unit_bl_target(skill_id, skill_lv); group->state.ammo_consume = (sd && sd->state.arrow_atk && skill_id != GS_GROUNDDRIFT); //Store if this skill needs to consume ammo. group->state.song_dance = ((unit_flag&(UF_DANCE|UF_SONG)) ? 1 : 0)|((unit_flag&UF_ENSEMBLE) ? 2 : 0); //Signals if this is a song/dance/duet group->state.guildaura = ( skill_id >= GD_LEADERSHIP && skill_id <= GD_HAWKEYES )?1:0; @@ -12453,7 +12823,7 @@ static struct skill_unit_group *skill_unitsetting(struct block_list *src, uint16 if (!group->alive_count) { //No cells? Something that was blocked completely by Land Protector? - skill->del_unitgroup(group,ALC_MARK); + skill->del_unitgroup(group); return NULL; } @@ -12501,7 +12871,7 @@ static int skill_unit_onplace(struct skill_unit *src, struct block_list *bl, int nullpo_ret(sg=src->group); nullpo_ret(ss=map->id2bl(sg->src_id)); - if (skill->get_type(sg->skill_id) == BF_MAGIC && map->getcell(src->bl.m, &src->bl, src->bl.x, src->bl.y, CELL_CHKLANDPROTECTOR) && sg->skill_id != SA_LANDPROTECTOR) + if (skill->get_type(sg->skill_id, sg->skill_lv) == BF_MAGIC && map->getcell(src->bl.m, &src->bl, src->bl.x, src->bl.y, CELL_CHKLANDPROTECTOR) != 0 && sg->skill_id != SA_LANDPROTECTOR) return 0; //AoE skills are ineffective. [Skotlex] sc = status->get_sc(bl); @@ -12569,7 +12939,7 @@ static int skill_unit_onplace(struct skill_unit *src, struct block_list *bl, int unsigned short m = sg->val3; if( --count <= 0 ) - skill->del_unitgroup(sg,ALC_MARK); + skill->del_unitgroup(sg); if ( map->mapindex2mapid(sg->val3) == sd->bl.m && x == sd->bl.x && y == sd->bl.y ) working = 1;/* we break it because officials break it, lovely stuff. */ @@ -12700,7 +13070,7 @@ static int skill_unit_onplace(struct skill_unit *src, struct block_list *bl, int if( status_get_mode(bl)&MD_BOSS ) break; // iRO Wiki says that this skill don't affect to Boss monsters. if( map_flag_vs(bl->m) || bl->id == src->bl.id || battle->check_target(&src->bl,bl, BCT_ENEMY) == 1 ) - skill->attack(skill->get_type(sg->skill_id), ss, &src->bl, bl, sg->skill_id, sg->skill_lv, tick, 0); + skill->attack(skill->get_type(sg->skill_id, sg->skill_lv), ss, &src->bl, bl, sg->skill_id, sg->skill_lv, tick, 0); break; case UNT_REVERBERATION: @@ -12875,7 +13245,7 @@ static int skill_unit_onplace_timer(struct skill_unit *src, struct block_list *b sg->val1--; } if (sg->val1 <= 0) - skill->del_unitgroup(sg, ALC_MARK); + skill->del_unitgroup(sg); break; case UNT_EVILLAND: @@ -12936,7 +13306,7 @@ static int skill_unit_onplace_timer(struct skill_unit *src, struct block_list *b case WZ_STORMGUST: //SG counter does not reset per stormgust. IE: One hit from a SG and two hits from another will freeze you. if (tsc) tsc->sg_counter++; //SG hit counter. - if (skill->attack(skill->get_type(sg->skill_id),ss,&src->bl,bl,sg->skill_id,sg->skill_lv,tick,0) <= 0 && tsc) + if (skill->attack(skill->get_type(sg->skill_id, sg->skill_lv), ss, &src->bl, bl, sg->skill_id, sg->skill_lv, tick, 0) <= 0 && tsc != NULL) tsc->sg_counter=0; //Attack absorbed. break; #endif @@ -12945,7 +13315,7 @@ static int skill_unit_onplace_timer(struct skill_unit *src, struct block_list *b skill->attack(BF_WEAPON,ss,&src->bl,bl,sg->skill_id,sg->skill_lv,tick,0); break; default: - skill->attack(skill->get_type(sg->skill_id),ss,&src->bl,bl,sg->skill_id,sg->skill_lv,tick,0); + skill->attack(skill->get_type(sg->skill_id, sg->skill_lv), ss, &src->bl, bl, sg->skill_id, sg->skill_lv, tick, 0); } break; @@ -13266,7 +13636,7 @@ static int skill_unit_onplace_timer(struct skill_unit *src, struct block_list *b case UNT_PSYCHIC_WAVE: case UNT_MAGMA_ERUPTION: case UNT_MAKIBISHI: - skill->attack(skill->get_type(sg->skill_id),ss,&src->bl,bl,sg->skill_id,sg->skill_lv,tick,0); + skill->attack(skill->get_type(sg->skill_id, sg->skill_lv), ss, &src->bl, bl, sg->skill_id, sg->skill_lv, tick, 0); break; case UNT_GROUNDDRIFT_WIND: @@ -13367,7 +13737,7 @@ static int skill_unit_onplace_timer(struct skill_unit *src, struct block_list *b sec = 3000; // Couldn't trap it? sg->limit = DIFF_TICK32(tick, sg->tick) + sec; } else if( tsc->data[SC_THORNS_TRAP] && bl->id == sg->val2 ) - skill->attack(skill->get_type(GN_THORNS_TRAP), ss, ss, bl, sg->skill_id, sg->skill_lv, tick, SD_LEVEL|SD_ANIMATION); + skill->attack(skill->get_type(GN_THORNS_TRAP, sg->skill_lv), ss, ss, bl, sg->skill_id, sg->skill_lv, tick, SD_LEVEL|SD_ANIMATION); } break; @@ -13379,11 +13749,11 @@ static int skill_unit_onplace_timer(struct skill_unit *src, struct block_list *b default: sc_start4(ss, bl, SC_BURNING, 4 + 4 * sg->skill_lv, sg->skill_lv, 0, ss->id, 0, skill->get_time2(sg->skill_id, sg->skill_lv)); - skill->attack(skill->get_type(sg->skill_id), ss, &src->bl, bl, + skill->attack(skill->get_type(sg->skill_id, sg->skill_lv), ss, &src->bl, bl, sg->skill_id, sg->skill_lv + 10 * sg->val2, tick, 0); break; case 3: - skill->attack(skill->get_type(CR_ACIDDEMONSTRATION), ss, &src->bl, bl, + skill->attack(skill->get_type(CR_ACIDDEMONSTRATION, sg->skill_lv), ss, &src->bl, bl, CR_ACIDDEMONSTRATION, sd ? pc->checkskill(sd, CR_ACIDDEMONSTRATION) : sg->skill_lv, tick, 0); break; @@ -13401,7 +13771,7 @@ static int skill_unit_onplace_timer(struct skill_unit *src, struct block_list *b case UNT_HELLS_PLANT: if( battle->check_target(&src->bl,bl,BCT_ENEMY) > 0 ) - skill->attack(skill->get_type(GN_HELLS_PLANT_ATK), ss, &src->bl, bl, GN_HELLS_PLANT_ATK, sg->skill_lv, tick, 0); + skill->attack(skill->get_type(GN_HELLS_PLANT_ATK, sg->skill_lv), ss, &src->bl, bl, GN_HELLS_PLANT_ATK, sg->skill_lv, tick, 0); if( ss != bl) //The caster is the only one who can step on the Plants, without destroying them sg->limit = DIFF_TICK32(tick, sg->tick) + 100; break; @@ -13409,7 +13779,7 @@ static int skill_unit_onplace_timer(struct skill_unit *src, struct block_list *b case UNT_CLOUD_KILL: if(tsc && !tsc->data[type]) status->change_start(ss,bl,type,10000,sg->skill_lv,sg->group_id,0,0,skill->get_time2(sg->skill_id,sg->skill_lv),SCFLAG_FIXEDRATE); - skill->attack(skill->get_type(sg->skill_id),ss,&src->bl,bl,sg->skill_id,sg->skill_lv,tick,0); + skill->attack(skill->get_type(sg->skill_id, sg->skill_lv), ss, &src->bl, bl, sg->skill_id, sg->skill_lv, tick, 0); break; case UNT_WARMER: @@ -13534,7 +13904,7 @@ static int skill_unit_onplace_timer(struct skill_unit *src, struct block_list *b } sg->limit = DIFF_TICK32(tick, sg->tick) + sec; } else if (tsc->data[type] && bl->id == sg->val2) { - skill->attack(skill->get_type(SU_SV_ROOTTWIST_ATK), ss, &src->bl, bl, SU_SV_ROOTTWIST_ATK, sg->skill_lv, tick, SD_LEVEL|SD_ANIMATION); + skill->attack(skill->get_type(SU_SV_ROOTTWIST_ATK, sg->skill_lv), ss, &src->bl, bl, SU_SV_ROOTTWIST_ATK, sg->skill_lv, tick, SD_LEVEL|SD_ANIMATION); } } break; @@ -13988,16 +14358,16 @@ static int skill_check_condition_mob_master_sub(struct block_list *bl, va_list a * Determines if a given skill should be made to consume ammo * when used by the player. [Skotlex] *------------------------------------------*/ -static int skill_isammotype(struct map_session_data *sd, int skill_id) +static int skill_isammotype(struct map_session_data *sd, int skill_id, int skill_lv) { nullpo_ret(sd); return ( battle_config.arrow_decrement==2 && (sd->weapontype == W_BOW || (sd->weapontype >= W_REVOLVER && sd->weapontype <= W_GRENADE)) && skill_id != HT_PHANTASMIC && - skill->get_type(skill_id) == BF_WEAPON && + skill->get_type(skill_id, skill_lv) == BF_WEAPON && !(skill->get_nk(skill_id)&NK_NO_DAMAGE) && - !skill->get_spiritball(skill_id,1) //Assume spirit spheres are used as ammo instead. + !skill->get_spiritball(skill_id, skill_lv) //Assume spirit spheres are used as ammo instead. ); } @@ -14013,19 +14383,87 @@ static bool skill_is_combo(int skill_id) } /** - * Checks if a skill is casted by an item (itemskill() script command). + * Checks if a skill's equipment requirements are fulfilled. * - * @param sd The charcater's session data. + * @param sd The character who casts the skill. * @param skill_id The skill's ID. * @param skill_lv The skill's level. - * @return true if skill is casted by an item, otherwise false. - */ -static bool skill_is_item_skill(struct map_session_data *sd, int skill_id, int skill_lv) + * @return 0 on success or 1 in case of error. + * + **/ +static int skill_check_condition_required_equip(struct map_session_data *sd, int skill_id, int skill_lv) { - nullpo_retr(false, sd); + nullpo_retr(1, sd); + + struct skill_condition req = skill->get_requirement(sd, skill_id, skill_lv); + bool any_equip_flag = skill->get_equip_any_flag(skill_id, skill_lv); + bool any_equip_found = false; + int fail_id = 0; + int fail_amount = 0; + + for (int i = 0; i < MAX_SKILL_ITEM_REQUIRE; i++) { + if (req.equip_id[i] == 0) + continue; + + int req_id = req.equip_id[i]; + int req_amount = req.equip_amount[i]; + int found_amount = 0; + + for (int j = 0; j < EQI_MAX; j++) { + int inv_idx = sd->equip_index[j]; + + if (inv_idx == INDEX_NOT_FOUND || sd->inventory_data[inv_idx] == NULL) + continue; + + if ((j == EQI_HAND_R && sd->equip_index[EQI_HAND_L] == inv_idx) + || (j == EQI_HEAD_MID && sd->equip_index[EQI_HEAD_LOW] == inv_idx) + || (j == EQI_HEAD_TOP && sd->equip_index[EQI_HEAD_MID] == inv_idx) + || (j == EQI_HEAD_TOP && sd->equip_index[EQI_HEAD_LOW] == inv_idx) + || (j == EQI_COSTUME_MID && sd->equip_index[EQI_COSTUME_LOW] == inv_idx) + || (j == EQI_COSTUME_TOP && sd->equip_index[EQI_COSTUME_MID] == inv_idx) + || (j == EQI_COSTUME_TOP && sd->equip_index[EQI_COSTUME_LOW] == inv_idx)) { + continue; // Equipment uses more than one slot; only process it once! + } + + if (itemdb_type(req_id) != IT_CARD) { + if (sd->inventory_data[inv_idx]->nameid != req_id) + continue; + + if (itemdb_type(req_id) == IT_AMMO) + found_amount += sd->status.inventory[inv_idx].amount; + else + found_amount++; + } else { + if (itemdb_isspecial(sd->status.inventory[inv_idx].card[0])) + continue; + + for (int k = 0; k < sd->inventory_data[inv_idx]->slot; k++) { + if (sd->status.inventory[inv_idx].card[k] == req_id) + found_amount++; + } + } + } + + if (any_equip_flag) { + if (found_amount >= req_amount) { + any_equip_found = true; + break; + } else if (fail_id == 0) { // Save ID/amount of first missing equipment for skill fail message. + fail_id = req_id; + fail_amount = req_amount; + } + } else if (found_amount < req_amount) { + clif->skill_fail(sd, skill_id, USESKILL_FAIL_NEED_EQUIPMENT, req_amount, req_id); + return 1; + } + } - return (sd->skillitem == skill_id && sd->skillitemlv == skill_lv - && sd->itemskill_id == skill_id && sd->itemskill_lv == skill_lv); + if (any_equip_flag && !any_equip_found) { + clif->skill_fail(sd, skill_id, USESKILL_FAIL_NEED_EQUIPMENT, fail_amount, fail_id); + return 1; + } + + return 0; } static int skill_check_condition_castbegin(struct map_session_data *sd, uint16 skill_id, uint16 skill_lv) @@ -14042,13 +14480,13 @@ static int skill_check_condition_castbegin(struct map_session_data *sd, uint16 s if (sd->chat_id != 0) return 0; - if ((sd->state.itemskill_conditions_checked == 1 || sd->state.itemskill_check_conditions == 0) - && skill->is_item_skill(sd, skill_id, skill_lv)) { + if (((sd->auto_cast_current.itemskill_conditions_checked || !sd->auto_cast_current.itemskill_check_conditions) + && sd->auto_cast_current.type == AUTOCAST_ITEM) || sd->auto_cast_current.type == AUTOCAST_IMPROVISE) { return 1; } - if (pc_has_permission(sd, PC_PERM_SKILL_UNCONDITIONAL) && sd->skillitem != skill_id) { - //GMs don't override the skillItem check, otherwise they can use items without them being consumed! [Skotlex] + if (pc_has_permission(sd, PC_PERM_SKILL_UNCONDITIONAL) && sd->auto_cast_current.type != AUTOCAST_ITEM) { + // GMs don't override the AUTOCAST_ITEM check, otherwise they can use items without them being consumed! sd->state.arrow_atk = skill->get_ammotype(skill_id)?1:0; //Need to do arrow state check. sd->spiritball_old = sd->spiritball; //Need to do Spiritball check. return 1; @@ -14079,30 +14517,7 @@ static int skill_check_condition_castbegin(struct map_session_data *sd, uint16 s if( !sc->count ) sc = NULL; - if( sd->skillitem == skill_id ) { - if( sd->state.abra_flag ) // Hocus-Pocus was used. [Inkfish] - sd->state.abra_flag = 0; - else { - int i; - // When a target was selected, consume items that were skipped in pc_use_item [Skotlex] - if( (i = sd->itemindex) == -1 || - sd->status.inventory[i].nameid != sd->itemid || - sd->inventory_data[i] == NULL || - sd->status.inventory[i].amount < 1 - ) { - //Something went wrong, item exploit? - sd->itemid = sd->itemindex = -1; - return 0; - } - - //Consume - sd->itemid = sd->itemindex = -1; - if (sd->status.inventory[i].expire_time == 0 && sd->inventory_data[i]->flag.delay_consume == 1) // Rental usable items are not consumed until expiration - pc->delitem(sd, i, 1, 0, DELITEM_NORMAL, LOG_TYPE_CONSUME); - } - } - - if (pc_is90overweight(sd) && sd->skillitem != skill_id) { /// Skill casting items ignore the overweight restriction. [Kenpachi] + if (pc_is90overweight(sd) && sd->auto_cast_current.type != AUTOCAST_ITEM) { // Skill casting items ignore the overweight restriction. clif->skill_fail(sd, skill_id, USESKILL_FAIL_WEIGHTOVER, 0, 0); return 0; } @@ -14750,22 +15165,6 @@ static int skill_check_condition_castbegin(struct map_session_data *sd, uint16 s require.sp -= require.sp * 20 * count / 100; // -20% each W/M in the party. } break; - case NC_PILEBUNKER: - if (sd->equip_index[EQI_HAND_R] < 0 - || !itemid_is_pilebunker(sd->status.inventory[sd->equip_index[EQI_HAND_R]].nameid) - ) { - clif->skill_fail(sd, skill_id, USESKILL_FAIL_THIS_WEAPON, 0, 0); - return 0; - } - break; - case NC_HOVERING: - if (( sd->equip_index[EQI_ACC_L] >= 0 && sd->status.inventory[sd->equip_index[EQI_ACC_L]].nameid == ITEMID_HOVERING_BOOSTER ) || - ( sd->equip_index[EQI_ACC_R] >= 0 && sd->status.inventory[sd->equip_index[EQI_ACC_R]].nameid == ITEMID_HOVERING_BOOSTER )); - else { - clif->skill_fail(sd, skill_id, USESKILL_FAIL_LEVEL, 0, 0); - return 0; - } - break; case SO_FIREWALK: case SO_ELECTRICWALK: // Can't be casted until you've walked all cells. if( sc && sc->data[SC_PROPERTYWALK] && @@ -14968,12 +15367,20 @@ static int skill_check_condition_castbegin(struct map_session_data *sd, uint16 s return 0; } + if (require.msp > 0 && get_percentage(st->sp, st->max_sp) > require.msp) { + clif->skill_fail(sd, skill_id, USESKILL_FAIL_SP_INSUFFICIENT, 0, 0); + return 0; + } + if( require.weapon && !pc_check_weapontype(sd,require.weapon) ) { clif->skill_fail(sd, skill_id, USESKILL_FAIL_THIS_WEAPON, 0, 0); return 0; } - if (require.sp > 0 && st->sp < (unsigned int)require.sp && sd->skillitem != skill_id) { /// Skill casting items and Hocus-Pocus skills don't consume SP. [Kenpachi] + if (skill->check_condition_required_equip(sd, skill_id, skill_lv) != 0) + return 0; + + if (require.sp > 0 && st->sp < (unsigned int)require.sp && sd->auto_cast_current.type == AUTOCAST_NONE) { // Auto-cast skills don't consume SP. clif->skill_fail(sd, skill_id, USESKILL_FAIL_SP_INSUFFICIENT, 0, 0); return 0; } @@ -15019,25 +15426,140 @@ static int skill_check_condition_castbegin_unknown(struct status_change *sc, uin return -1; } +/** + * Checks if a skill's item requirements are fulfilled. + * + * @param sd The character who casts the skill. + * @param skill_id The skill's ID. + * @param skill_lv The skill's level. + * @return 0 on success or 1 in case of error. + * + **/ +static int skill_check_condition_required_items(struct map_session_data *sd, int skill_id, int skill_lv) +{ + nullpo_retr(1, sd); + + struct skill_condition req = skill->get_requirement(sd, skill_id, skill_lv); + + if (skill->get_item_any_flag(skill_id, skill_lv)) { + for (int i = 0; i < MAX_SKILL_ITEM_REQUIRE; i++) { + if (req.itemid[i] == 0) + continue; + + int inv_idx = pc->search_inventory(sd, req.itemid[i]); + + if (inv_idx == INDEX_NOT_FOUND) + continue; + + if ((req.amount[i] > 0 && sd->status.inventory[inv_idx].amount >= req.amount[i]) + || (req.amount[i] == 0 && sd->status.inventory[inv_idx].amount > 0)) { + return 0; + } + } + } + + /** + * Find first missing item and show skill failed message if item any-flag is false + * or item any-flag check didn't find an item with sufficient amount. + * + **/ + for (int i = 0; i < MAX_SKILL_ITEM_REQUIRE; i++) { + if (req.itemid[i] == 0) + continue; + + int inv_idx = pc->search_inventory(sd, req.itemid[i]); + + if (inv_idx == INDEX_NOT_FOUND || sd->status.inventory[inv_idx].amount < req.amount[i]) { + useskill_fail_cause cause = USESKILL_FAIL_NEED_ITEM; + + switch (skill_id) { + case NC_SILVERSNIPER: + case NC_MAGICDECOY: + cause = USESKILL_FAIL_STUFF_INSUFFICIENT; + break; + default: + switch (req.itemid[i]) { + case ITEMID_RED_GEMSTONE: + cause = USESKILL_FAIL_REDJAMSTONE; + break; + case ITEMID_BLUE_GEMSTONE: + cause = USESKILL_FAIL_BLUEJAMSTONE; + break; + case ITEMID_HOLY_WATER: + cause = USESKILL_FAIL_HOLYWATER; + break; + case ITEMID_ANSILA: + cause = USESKILL_FAIL_ANCILLA; + break; + case ITEMID_ACCELERATOR: + case ITEMID_HOVERING_BOOSTER: + case ITEMID_SUICIDAL_DEVICE: + case ITEMID_SHAPE_SHIFTER: + case ITEMID_COOLING_DEVICE: + case ITEMID_MAGNETIC_FIELD_GENERATOR: + case ITEMID_BARRIER_BUILDER: + case ITEMID_CAMOUFLAGE_GENERATOR: + case ITEMID_REPAIR_KIT: + case ITEMID_MONKEY_SPANNER: + cause = USESKILL_FAIL_NEED_EQUIPMENT; + FALLTHROUGH + default: + clif->skill_fail(sd, skill_id, cause, max(1, req.amount[i]), req.itemid[i]); + return 1; + } + + break; + } + + clif->skill_fail(sd, skill_id, cause, 0, 0); + return 1; + } + } + + return 0; +} + +/** + * Checks if a skill has item requirements. + * + * @param sd The character who casts the skill. + * @param skill_id The skill's ID. + * @param skill_lv The skill's level. + * @return True if skill has item requirements, otherwise false. + * + **/ +static bool skill_items_required(struct map_session_data *sd, int skill_id, int skill_lv) +{ + nullpo_retr(false, sd); + + struct skill_condition req = skill->get_requirement(sd, skill_id, skill_lv); + + for (int i = 0; i < MAX_SKILL_ITEM_REQUIRE; i++) { + if (req.itemid[i] != 0) + return true; + } + + return false; +} + static int skill_check_condition_castend(struct map_session_data *sd, uint16 skill_id, uint16 skill_lv) { struct skill_condition require; struct status_data *st; int i; - int index[MAX_SKILL_ITEM_REQUIRE]; nullpo_ret(sd); if (sd->chat_id != 0) return 0; - if ((sd->state.itemskill_conditions_checked == 1 || sd->state.itemskill_check_conditions == 0) - && skill->is_item_skill(sd, skill_id, skill_lv)) { + if (((sd->auto_cast_current.itemskill_conditions_checked || !sd->auto_cast_current.itemskill_check_conditions) + && sd->auto_cast_current.type == AUTOCAST_ITEM) || sd->auto_cast_current.type == AUTOCAST_IMPROVISE) { return 1; } - if( pc_has_permission(sd, PC_PERM_SKILL_UNCONDITIONAL) && sd->skillitem != skill_id ) { - //GMs don't override the skillItem check, otherwise they can use items without them being consumed! [Skotlex] + if (pc_has_permission(sd, PC_PERM_SKILL_UNCONDITIONAL) && sd->auto_cast_current.type != AUTOCAST_ITEM) { + // GMs don't override the AUTOCAST_ITEM check, otherwise they can use items without them being consumed! sd->state.arrow_atk = skill->get_ammotype(skill_id)?1:0; //Need to do arrow state check. sd->spiritball_old = sd->spiritball; //Need to do Spiritball check. return 1; @@ -15064,7 +15586,7 @@ static int skill_check_condition_castend(struct map_session_data *sd, uint16 ski break; } - if (pc_is90overweight(sd) && sd->skillitem != skill_id) { /// Skill casting items ignore the overweight restriction. [Kenpachi] + if (pc_is90overweight(sd) && sd->auto_cast_current.type != AUTOCAST_ITEM) { // Skill casting items ignore the overweight restriction. clif->skill_fail(sd, skill_id, USESKILL_FAIL_WEIGHTOVER, 0, 0); return 0; } @@ -15170,56 +15692,16 @@ static int skill_check_condition_castend(struct map_session_data *sd, uint16 ski clif->messagecolor_self(sd->fd, COLOR_RED, e_msg); return 0; } - if (!(require.ammo&1<<sd->inventory_data[i]->subtype)) { //Ammo type check. Send the "wrong weapon type" message - //which is the closest we have to wrong ammo type. [Skotlex] - clif->arrow_fail(sd,0); //Haplo suggested we just send the equip-arrows message instead. [Skotlex] - //clif->skill_fail(sd, skill_id, USESKILL_FAIL_THIS_WEAPON, 0, 0); + if ((require.ammo & (1 << sd->inventory_data[i]->subtype)) == 0 || !battle->check_arrows(sd)) { // Ammo type check. + clif->arrow_fail(sd, 0); // "Please equip the proper ammunition first." return 0; } } - for( i = 0; i < MAX_SKILL_ITEM_REQUIRE; ++i ) { - if( !require.itemid[i] ) - continue; - index[i] = pc->search_inventory(sd,require.itemid[i]); - if (index[i] == INDEX_NOT_FOUND || sd->status.inventory[index[i]].amount < require.amount[i]) { - useskill_fail_cause cause = USESKILL_FAIL_NEED_ITEM; - switch( skill_id ){ - case NC_SILVERSNIPER: - case NC_MAGICDECOY: - cause = USESKILL_FAIL_STUFF_INSUFFICIENT; - break; - default: - switch(require.itemid[i]){ - case ITEMID_RED_GEMSTONE: - cause = USESKILL_FAIL_REDJAMSTONE; break; - case ITEMID_BLUE_GEMSTONE: - cause = USESKILL_FAIL_BLUEJAMSTONE; break; - case ITEMID_HOLY_WATER: - cause = USESKILL_FAIL_HOLYWATER; break; - case ITEMID_ANSILA: - cause = USESKILL_FAIL_ANCILLA; break; - case ITEMID_ACCELERATOR: - case ITEMID_HOVERING_BOOSTER: - case ITEMID_SUICIDAL_DEVICE: - case ITEMID_SHAPE_SHIFTER: - case ITEMID_COOLING_DEVICE: - case ITEMID_MAGNETIC_FIELD_GENERATOR: - case ITEMID_BARRIER_BUILDER: - case ITEMID_CAMOUFLAGE_GENERATOR: - case ITEMID_REPAIR_KIT: - case ITEMID_MONKEY_SPANNER: - cause = USESKILL_FAIL_NEED_EQUIPMENT; - /* Fall through */ - default: - clif->skill_fail(sd, skill_id, cause, max(1, require.amount[i]), require.itemid[i]); - return 0; - } - } - clif->skill_fail(sd, skill_id, cause, 0, 0); - return 0; - } - } + bool items_required = skill->items_required(sd, skill_id, skill_lv); + + if (items_required && skill->check_condition_required_items(sd, skill_id, skill_lv) != 0) + return 0; return 1; } @@ -15229,6 +15711,43 @@ static bool skill_check_condition_castend_unknown(struct map_session_data *sd, u return false; } +/** + * Gets the array index of the first required item with sufficient amount. + * + * @param sd The character who casts the skill. + * @param skill_id The skill's ID. + * @param skill_lv The skill's level. + * @return A number greater than or equal to 0 on success, otherwise INDEX_NOT_FOUND (-1). + * + **/ +static int skill_get_any_item_index(struct map_session_data *sd, int skill_id, int skill_lv) +{ + nullpo_retr(INDEX_NOT_FOUND, sd); + + int any_item_index = INDEX_NOT_FOUND; + + if (skill->get_item_any_flag(skill_id, skill_lv)) { + struct skill_condition req = skill->get_requirement(sd, skill_id, skill_lv); + + for (int i = 0; i < MAX_SKILL_ITEM_REQUIRE; i++) { + if (req.itemid[i] == 0) + continue; + + int inv_idx = pc->search_inventory(sd, req.itemid[i]); + + if (inv_idx == INDEX_NOT_FOUND) + continue; + + if (req.amount[i] == 0 || sd->status.inventory[inv_idx].amount >= req.amount[i]) { + any_item_index = i; + break; + } + } + } + + return any_item_index; +} + // type&2: consume items (after skill was used) // type&1: consume the others (before skill was used) static int skill_consume_requirement(struct map_session_data *sd, uint16 skill_id, uint16 skill_lv, short type) @@ -15237,8 +15756,10 @@ static int skill_consume_requirement(struct map_session_data *sd, uint16 skill_i nullpo_ret(sd); - if (sd->state.itemskill_check_conditions == 0 && skill->is_item_skill(sd, skill_id, skill_lv)) + if ((!sd->auto_cast_current.itemskill_check_conditions && sd->auto_cast_current.type == AUTOCAST_ITEM) + || sd->auto_cast_current.type == AUTOCAST_IMPROVISE) { return 1; + } req = skill->get_requirement(sd,skill_id,skill_lv); @@ -15254,7 +15775,7 @@ static int skill_consume_requirement(struct map_session_data *sd, uint16 skill_i break; default: - if (sd->state.autocast == 1 || sd->skillitem == skill_id) /// Skill casting items and Hocus-Pocus skills don't consume SP. [Kenpachi] + if (sd->auto_cast_current.type != AUTOCAST_NONE) // Auto-cast skills don't consume SP. req.sp = 0; break; @@ -15279,16 +15800,24 @@ static int skill_consume_requirement(struct map_session_data *sd, uint16 skill_i if( type&2 ) { struct status_change *sc = &sd->sc; - int n,i; + int n; if( !sc->count ) sc = NULL; - for( i = 0; i < MAX_SKILL_ITEM_REQUIRE; ++i ) - { + bool items_required = skill->items_required(sd, skill_id, skill_lv); + int any_item_index = INDEX_NOT_FOUND; + + if (items_required) + any_item_index = skill->get_any_item_index(sd, skill_id, skill_lv); + + for (int i = 0; i < MAX_SKILL_ITEM_REQUIRE && items_required; i++) { if( !req.itemid[i] ) continue; + if (any_item_index != INDEX_NOT_FOUND && any_item_index != i) + continue; + if( itemid_isgemstone(req.itemid[i]) && skill_id != HW_GANBANTEIN && sc && sc->data[SC_SOULLINK] && sc->data[SC_SOULLINK]->val2 == SL_WIZARD ) continue; //Gemstones are checked, but not subtracted from inventory. @@ -15426,61 +15955,36 @@ static struct skill_condition skill_get_requirement(struct map_session_data *sd, req.spiritball = skill->dbs->db[idx].spiritball[skill_lv-1]; - req.state = skill->dbs->db[idx].state; + req.state = skill->dbs->db[idx].state[skill_lv - 1]; req.mhp = skill->dbs->db[idx].mhp[skill_lv-1]; + req.msp = skill->get_msp(skill_id, skill_lv); + req.weapon = skill->dbs->db[idx].weapon; req.ammo_qty = skill->dbs->db[idx].ammo_qty[skill_lv-1]; if (req.ammo_qty) req.ammo = skill->dbs->db[idx].ammo; - if (!req.ammo && skill_id && skill->isammotype(sd, skill_id)) { + if (req.ammo == 0 && skill_id != 0 && skill->isammotype(sd, skill_id, skill_lv)) { //Assume this skill is using the weapon, therefore it requires arrows. req.ammo = 0xFFFFFFFF; //Enable use on all ammo types. req.ammo_qty = 1; } for( i = 0; i < MAX_SKILL_ITEM_REQUIRE; i++ ) { - int item_idx = (skill_lv - 1) % MAX_SKILL_ITEM_REQUIRE; - if ((skill_id == AM_POTIONPITCHER || skill_id == CR_SLIMPITCHER || skill_id == CR_CULTIVATION) && i != item_idx) - continue; - switch( skill_id ) { case AM_CALLHOMUN: if (sd->status.hom_id) //Don't delete items when hom is already out. continue; break; - case NC_SHAPESHIFT: - if( i < 4 ) - continue; - break; - case WZ_FIREPILLAR: // celest - if (skill_lv <= 5) // no gems required at level 1-5 - continue; - break; case AB_ADORAMUS: - if( itemid_isgemstone(skill->dbs->db[idx].itemid[i]) && skill->check_pc_partner(sd,skill_id,&skill_lv, 1, 2) ) + if (itemid_isgemstone(skill->get_itemid(skill_id, i)) && skill->check_pc_partner(sd, skill_id, &skill_lv, 1, 2) != 0) continue; break; case WL_COMET: - if( itemid_isgemstone(skill->dbs->db[idx].itemid[i]) && skill->check_pc_partner(sd,skill_id,&skill_lv, 1, 0) ) - continue; - break; - case GN_FIRE_EXPANSION: - if( i < 5 ) - continue; - break; - case SO_SUMMON_AGNI: - case SO_SUMMON_AQUA: - case SO_SUMMON_VENTUS: - case SO_SUMMON_TERA: - case SO_WATER_INSIGNIA: - case SO_FIRE_INSIGNIA: - case SO_WIND_INSIGNIA: - case SO_EARTH_INSIGNIA: - if( i < 3 ) + if (itemid_isgemstone(skill->get_itemid(skill_id, i)) && skill->check_pc_partner(sd, skill_id, &skill_lv, 1, 0) != 0) continue; break; default: @@ -15491,8 +15995,17 @@ static struct skill_condition skill_get_requirement(struct map_session_data *sd, } } - req.itemid[i] = skill->dbs->db[idx].itemid[i]; - req.amount[i] = skill->dbs->db[idx].amount[i]; + int amount; + + if ((amount = skill->get_itemqty(skill_id, i, skill_lv)) >= 0) { + req.itemid[i] = skill->get_itemid(skill_id, i); + req.amount[i] = amount; + } + + if ((amount = skill->get_equip_amount(skill_id, i, skill_lv)) > 0) { + req.equip_id[i] = skill->get_equip_id(skill_id, i); + req.equip_amount[i] = amount; + } if (itemid_isgemstone(req.itemid[i]) && skill_id != HW_GANBANTEIN) { if (sd->special_state.no_gemstone) { @@ -15524,39 +16037,6 @@ static struct skill_condition skill_get_requirement(struct map_session_data *sd, } } - /* requirements are level-dependent */ - switch( skill_id ) { - case NC_SHAPESHIFT: - case GN_FIRE_EXPANSION: - case SO_SUMMON_AGNI: - case SO_SUMMON_AQUA: - case SO_SUMMON_VENTUS: - case SO_SUMMON_TERA: - case SO_WATER_INSIGNIA: - case SO_FIRE_INSIGNIA: - case SO_WIND_INSIGNIA: - case SO_EARTH_INSIGNIA: - req.itemid[skill_lv-1] = skill->dbs->db[idx].itemid[skill_lv-1]; - req.amount[skill_lv-1] = skill->dbs->db[idx].amount[skill_lv-1]; - break; - } - if (skill_id == NC_REPAIR) { - switch(skill_lv) { - case 1: - case 2: - req.itemid[1] = ITEMID_REPAIRA; - break; - case 3: - case 4: - req.itemid[1] = ITEMID_REPAIRB; - break; - case 5: - req.itemid[1] = ITEMID_REPAIRC; - break; - } - req.amount[1] = 1; - } - // Check for cost reductions due to skills & SCs switch(skill_id) { case MC_MAMMONITE: @@ -15742,6 +16222,8 @@ static int skill_castfix_sc(struct block_list *bl, int time) } if (sc->data[SC_POEMBRAGI]) time -= time * sc->data[SC_POEMBRAGI]->val2 / 100; + if (sc->data[SC_SKF_CAST] != NULL) + time -= time * sc->data[SC_SKF_CAST]->val1 / 100; if (sc->data[SC_IZAYOI]) time -= time * 50 / 100; } @@ -15843,6 +16325,8 @@ static int skill_vfcastfix(struct block_list *bl, double time, uint16 skill_id, } if (sc->data[SC_MYSTICSCROLL]) VARCAST_REDUCTION(sc->data[SC_MYSTICSCROLL]->val1); + if (sc->data[SC_SKF_CAST] != NULL) + VARCAST_REDUCTION(sc->data[SC_SKF_CAST]->val1); // Fixed cast reduction bonuses if( sc->data[SC__LAZINESS] ) @@ -16597,7 +17081,7 @@ static int skill_clear_group(struct block_list *bl, int flag) } for (i=0;i<count;i++) - skill->del_unitgroup(group[i],ALC_MARK); + skill->del_unitgroup(group[i]); return count; } @@ -16956,7 +17440,7 @@ static int skill_trap_splash(struct block_list *bl, va_list ap) } /* Fall through */ default: - skill->attack(skill->get_type(sg->skill_id), ss, src, bl, sg->skill_id, sg->skill_lv, tick, enemy_count); + skill->attack(skill->get_type(sg->skill_id, sg->skill_lv), ss, src, bl, sg->skill_id, sg->skill_lv, tick, enemy_count); break; } return 1; @@ -17245,7 +17729,7 @@ static int skill_delunit(struct skill_unit *su) map->deliddb(&su->bl); idb_remove(skill->unit_db, su->bl.id); if(--group->alive_count==0) - skill->del_unitgroup(group,ALC_MARK); + skill->del_unitgroup(group); return 0; } @@ -17304,7 +17788,7 @@ static struct skill_unit_group *skill_initunitgroup(struct block_list *src, int j = i; } } - skill->del_unitgroup(ud->skillunit[j],ALC_MARK); + skill->del_unitgroup(ud->skillunit[j]); //Since elements must have shifted, we use the last slot. i = MAX_SKILLUNITGROUP-1; } @@ -17343,18 +17827,13 @@ static struct skill_unit_group *skill_initunitgroup(struct block_list *src, int /*========================================== * *------------------------------------------*/ -static int skill_delunitgroup(struct skill_unit_group *group, const char *file, int line, const char *func) +static int skill_delunitgroup(struct skill_unit_group *group) { struct block_list* src; struct unit_data *ud; int i,j; struct map_session_data *sd = NULL; - if( group == NULL ) { - ShowDebug("skill_delunitgroup: group is NULL (source=%s:%d, %s)! Please report this! (#3504)\n", file, line, func); - return 0; - } - src = map->id2bl(group->src_id); ud = unit->bl2ud(src); sd = BL_CAST(BL_PC, src); @@ -17486,7 +17965,7 @@ static int skill_clear_unitgroup(struct block_list *src) nullpo_ret(ud); while (ud->skillunit[0]) - skill->del_unitgroup(ud->skillunit[0],ALC_MARK); + skill->del_unitgroup(ud->skillunit[0]); return 1; } @@ -17645,7 +18124,7 @@ static int skill_unit_timer_sub(union DBKey key, struct DBData *data, va_list ap case UNT_WARP_ACTIVE: // warp portal opens (morph to a UNT_WARP_WAITING cell) - group->unit_id = skill->get_unit_id(group->skill_id, 1); // UNT_WARP_WAITING + group->unit_id = skill->get_unit_id(group->skill_id, group->skill_lv, 1); // UNT_WARP_WAITING clif->changelook(&su->bl, LOOK_BASE, group->unit_id); // restart timers group->limit = skill->get_time(group->skill_id,group->skill_lv); @@ -18772,12 +19251,12 @@ static int skill_poisoningweapon(struct map_session_data *sd, int nameid) return 0; } -static void skill_toggle_magicpower(struct block_list *bl, uint16 skill_id) +static void skill_toggle_magicpower(struct block_list *bl, uint16 skill_id, int skill_lv) { struct status_change *sc = status->get_sc(bl); // non-offensive and non-magic skills do not affect the status - if (skill->get_nk(skill_id)&NK_NO_DAMAGE || !(skill->get_type(skill_id)&BF_MAGIC)) + if ((skill->get_nk(skill_id) & NK_NO_DAMAGE) != 0 || (skill->get_type(skill_id, skill_lv) & BF_MAGIC) == 0) return; if (sc && sc->count && sc->data[SC_MAGICPOWER]) { @@ -18911,14 +19390,20 @@ static int skill_select_menu(struct map_session_data *sd, uint16 skill_id) idx = skill->get_index(skill_id); - if( skill_id >= GS_GLITTERING || skill->get_type(skill_id) != BF_MAGIC || - (id = sd->status.skill[idx].id) == 0 || sd->status.skill[idx].flag != SKILL_FLAG_PLAGIARIZED ) { + if (skill_id >= GS_GLITTERING || (id = sd->status.skill[idx].id) == 0 + || sd->status.skill[idx].flag != SKILL_FLAG_PLAGIARIZED) { clif->skill_fail(sd, SC_AUTOSHADOWSPELL, 0, 0, 0); return 0; } lv = (aslvl + 1) / 2; // The level the skill will be autocasted - lv = min(lv,sd->status.skill[idx].lv); + lv = min(lv, sd->status.skill[idx].lv); + + if (skill->get_type(skill_id, lv) != BF_MAGIC) { + clif->skill_fail(sd, SC_AUTOSHADOWSPELL, 0, 0, 0); + return 0; + } + prob = (aslvl == 10) ? 15 : (32 - 2 * aslvl); // Probability at level 10 was increased to 15. sc_start4(&sd->bl,&sd->bl,SC__AUTOSHADOWSPELL,100,id,lv,prob,0,skill->get_time(SC_AUTOSHADOWSPELL,aslvl)); return 0; @@ -20059,9 +20544,6 @@ static bool skill_parse_row_changematerialdb(char *split[], int columns, int cur return true; } -#define skilldb_duplicate_warning(name, setting, skill) (ShowError("skill_read_skilldb: Duplicate entry '%s' in setting '%s' for Skill Id %d in '%s', skipping...\n", name, setting, skill, "db/"DBPATH"skill_db.conf")) -#define skilldb_invalid_error(name, setting, skill) (ShowError("skill_read_skilldb: Invalid entry '%s' in setting '%s' for Skill Id %d in '%s', skipping...\n", name, setting, skill, "db/"DBPATH"skill_db.conf")) - /** * Sets Level based configuration for skill groups from skill_db.conf [ Smokexyz/Hercules ] * @param *conf pointer to config setting. @@ -20106,295 +20588,549 @@ static void skill_level_set_value(int *arr, int value) } } -static void skill_validate_hittype(struct config_setting_t *conf, struct s_skill_db *sk) +/** + * Validates a skill's ID when reading the skill DB. + * If validating fails, the ID is set to 0. + * + * @param conf The libconfig settings block which contains the skill's data. + * @param sk The s_skill_db struct where the ID should be set it. + * @param conf_index The 1-based index of the currently processed libconfig settings block. + * + **/ +static void skill_validate_id(struct config_setting_t *conf, struct s_skill_db *sk, int conf_index) +{ + nullpo_retv(conf); + nullpo_retv(sk); + + sk->nameid = 0; + + int id; + + if (libconfig->setting_lookup_int(conf, "Id", &id) == CONFIG_FALSE) + ShowError("%s: No skill ID specified in entry %d in %s! Skipping skill...\n", + __func__, conf_index, conf->file); + else if (id <= 0) + ShowError("%s: Invalid skill ID %d specified in entry %d in %s! Skipping skill...\n", + __func__, id, conf_index, conf->file); + else if(skill->get_index(id) == 0) + ShowError("%s: Skill ID %d in entry %d in %s is out of range, or within a reserved range (for guild, homunculus, mercenary or elemental skills)! Skipping skill...\n", + __func__, id, conf_index, conf->file); + else if (*skill->get_name(id) != '\0') + ShowError("%s: Duplicate skill ID %d in entry %d in %s! Skipping skill...\n", + __func__, id, conf_index, conf->file); + else + sk->nameid = id; +} + +/** + * Validates if a skill's name contains invalid characters when reading the skill DB. + * + * @param name The name to validate. + * @return True if the passed name is a NULL pointer or contains at least one invalid character, otherwise false. + * + **/ +static bool skill_name_contains_invalid_character(const char *name) { - const char *type = NULL; + nullpo_retr(true, name); + + for (int i = 0; i < MAX_SKILL_NAME_LENGTH && name[i] != '\0'; i++) { + if (ISALNUM(name[i]) == 0 && name[i] != '_') + return true; + } + return false; +} + +/** + * Validates a skill's name when reading the skill DB. + * If validating fails, the name is set to an enpty string. + * + * @param conf The libconfig settings block which contains the skill's data. + * @param sk The s_skill_db struct where the name should be set it. + * + **/ +static void skill_validate_name(struct config_setting_t *conf, struct s_skill_db *sk) +{ + nullpo_retv(conf); nullpo_retv(sk); - if (libconfig->setting_lookup_string(conf, "Hit", &type)) { - if (strcmpi(type, "BDT_SKILL") == 0) { - sk->hit = BDT_SKILL; - } else if (strcmpi(type, "BDT_MULTIHIT") == 0) { - sk->hit = BDT_MULTIHIT; - } else if (strcmpi(type, "BDT_NORMAL") == 0) { - sk->hit = BDT_NORMAL; - } else { - skilldb_invalid_error(type, "Hit", sk->nameid); + + *sk->name = '\0'; + + const char *name; + + if (libconfig->setting_lookup_string(conf, "Name", &name) == CONFIG_FALSE || *name == '\0') + ShowError("%s: No name specified for skill ID %d in %s! Skipping skill...\n", + __func__, sk->nameid, conf->file); + else if (strlen(name) >= sizeof(sk->name)) + ShowError("%s: Specified name %s for skill ID %d in %s is too long: %lu! Maximum is %lu. Skipping skill...\n", + __func__, name, sk->nameid, conf->file, strlen(name), sizeof(sk->name) - 1); + else if (skill->name_contains_invalid_character(name)) + ShowError("%s: Specified name %s for skill ID %d in %s contains invalid characters! Allowed characters are letters, numbers and underscores. Skipping skill...\n", + __func__, name, sk->nameid, conf->file); + else if (skill->name2id(name) != 0) + ShowError("%s: Duplicate name %s for skill ID %d in %s! Skipping skill...\n", + __func__, name, sk->nameid, conf->file); + else + safestrncpy(sk->name, name, sizeof(sk->name)); +} + +/** + * Validates a skill's maximum level when reading the skill DB. + * If validating fails, the maximum level is set to 0. + * + * @param conf The libconfig settings block which contains the skill's data. + * @param sk The s_skill_db struct where the maximum level should be set it. + * + **/ +static void skill_validate_max_level(struct config_setting_t *conf, struct s_skill_db *sk) +{ + nullpo_retv(conf); + nullpo_retv(sk); + + sk->max = 0; + + int max_level; + + if (libconfig->setting_lookup_int(conf, "MaxLevel", &max_level) == CONFIG_FALSE) + ShowError("%s: No maximum level specified for skill ID %d in %s! Skipping skill...\n", + __func__, sk->nameid, conf->file); + else if (max_level < 1 || max_level > MAX_SKILL_LEVEL) + ShowError("%s: Invalid maximum level %d specified for skill ID %d in %s! Minimum is 1, maximum is %d. Skipping skill...\n", + __func__, max_level, sk->nameid, conf->file, MAX_SKILL_LEVEL); + else + sk->max = max_level; +} + +/** + * Validates a skill's description when reading the skill DB. + * + * @param conf The libconfig settings block which contains the skill's data. + * @param sk The s_skill_db struct where the description should be set it. + * + **/ +static void skill_validate_description(struct config_setting_t *conf, struct s_skill_db *sk) +{ + nullpo_retv(conf); + nullpo_retv(sk); + + *sk->desc = '\0'; + + const char *description; + + if (libconfig->setting_lookup_string(conf, "Description", &description) == CONFIG_TRUE && *description != '\0') { + if (strlen(description) >= sizeof(sk->desc)) + ShowWarning("%s: Specified description '%s' for skill ID %d in %s is too long: %lu! Maximum is %lu. Trimming...\n", + __func__, description, sk->nameid, conf->file, strlen(description), sizeof(sk->desc) - 1); + + safestrncpy(sk->desc, description, sizeof(sk->desc)); + } +} + +/** + * Validates a skill's range when reading the skill DB. + * + * @param conf The libconfig settings block which contains the skill's data. + * @param sk The s_skill_db struct where the range should be set it. + * + **/ +static void skill_validate_range(struct config_setting_t *conf, struct s_skill_db *sk) +{ + nullpo_retv(conf); + nullpo_retv(sk); + + skill->level_set_value(sk->range, 0); + + struct config_setting_t *t = libconfig->setting_get_member(conf, "Range"); + + if (t != NULL && config_setting_is_group(t)) { + for (int i = 0; i < MAX_SKILL_LEVEL; i++) { + char lv[6]; // Big enough to contain "Lv999" in case of custom MAX_SKILL_LEVEL. + safesnprintf(lv, sizeof(lv), "Lv%d", i + 1); + int range; + + if (libconfig->setting_lookup_int(t, lv, &range) == CONFIG_TRUE) { + if (range >= SHRT_MIN && range <= SHRT_MAX) + sk->range[i] = range; + else + ShowWarning("%s: Invalid range %d specified in level %d for skill ID %d in %s! Minimum is %d, maximum is %d. Defaulting to 0...\n", + __func__, range, i + 1, sk->nameid, conf->file, SHRT_MIN, SHRT_MAX); + } + } + + return; + } + + int range; + + if (libconfig->setting_lookup_int(conf, "Range", &range) == CONFIG_TRUE) { + if (range >= SHRT_MIN && range <= SHRT_MAX) + skill->level_set_value(sk->range, range); + else + ShowWarning("%s: Invalid range %d specified for skill ID %d in %s! Minimum is %d, maximum is %d. Defaulting to 0...\n", + __func__, range, sk->nameid, conf->file, SHRT_MIN, SHRT_MAX); + } +} + +/** + * Validates a skill's hit type when reading the skill DB. + * + * @param conf The libconfig settings block which contains the skill's data. + * @param sk The s_skill_db struct where the hit type should be set it. + * + **/ +static void skill_validate_hittype(struct config_setting_t *conf, struct s_skill_db *sk) +{ + nullpo_retv(conf); + nullpo_retv(sk); + + skill->level_set_value(sk->hit, BDT_NORMAL); + + struct config_setting_t *t = libconfig->setting_get_member(conf, "Hit"); + + if (t != NULL && config_setting_is_group(t)) { + for (int i = 0; i < MAX_SKILL_LEVEL; i++) { + char lv[6]; // Big enough to contain "Lv999" in case of custom MAX_SKILL_LEVEL. + safesnprintf(lv, sizeof(lv), "Lv%d", i + 1); + const char *hit_type; + + if (libconfig->setting_lookup_string(t, lv, &hit_type) == CONFIG_TRUE) { + if (strcmpi(hit_type, "BDT_SKILL") == 0) + sk->hit[i] = BDT_SKILL; + else if (strcmpi(hit_type, "BDT_MULTIHIT") == 0) + sk->hit[i] = BDT_MULTIHIT; + else if (strcmpi(hit_type, "BDT_NORMAL") != 0) + ShowWarning("%s: Invalid hit type %s specified in level %d for skill ID %d in %s! Defaulting to BDT_NORMAL...\n", + __func__, hit_type, i + 1, sk->nameid, conf->file); + } + } + + return; + } + + const char *hit_type; + + if (libconfig->setting_lookup_string(conf, "Hit", &hit_type) == CONFIG_TRUE) { + int hit = BDT_NORMAL; + + if (strcmpi(hit_type, "BDT_SKILL") == 0) { + hit = BDT_SKILL; + } else if (strcmpi(hit_type, "BDT_MULTIHIT") == 0) { + hit = BDT_MULTIHIT; + } else if (strcmpi(hit_type, "BDT_NORMAL") != 0) { + ShowWarning("%s: Invalid hit type %s specified for skill ID %d in %s! Defaulting to BDT_NORMAL...\n", + __func__, hit_type, sk->nameid, conf->file); return; } + + skill->level_set_value(sk->hit, hit); } } /** - * Validates "SkillType" when reading skill_db.conf - * @param conf struct, pointer to skill configuration - * @param sk struct, pointer to s_skill_db - * @return (void) - */ + * Validates a skill's types when reading the skill DB. + * + * @param conf The libconfig settings block which contains the skill's data. + * @param sk The s_skill_db struct where the types should be set it. + * + **/ static void skill_validate_skilltype(struct config_setting_t *conf, struct s_skill_db *sk) { - struct config_setting_t *t = NULL, *tt = NULL; - + nullpo_retv(conf); nullpo_retv(sk); - if((t=libconfig->setting_get_member(conf, "SkillType")) && config_setting_is_group(t)) { - int j=0; - while ((tt = libconfig->setting_get_elem(t, j++))) { - const char *type = config_setting_name(tt); + + sk->inf = INF_NONE; + + struct config_setting_t *t = libconfig->setting_get_member(conf, "SkillType"); + + if (t != NULL && config_setting_is_group(t)) { + struct config_setting_t *tt; + int i = 0; + + while ((tt = libconfig->setting_get_elem(t, i++)) != NULL) { + const char *skill_type = config_setting_name(tt); bool on = libconfig->setting_get_bool_real(tt); - if (strcmpi(type, "Enemy") == 0) { - if (on) { + if (strcmpi(skill_type, "Enemy") == 0) { + if (on) sk->inf |= INF_ATTACK_SKILL; - } else { + else sk->inf &= ~INF_ATTACK_SKILL; - } - } else if (strcmpi(type, "Place") == 0) { - if (on) { + } else if (strcmpi(skill_type, "Place") == 0) { + if (on) sk->inf |= INF_GROUND_SKILL; - } else { + else sk->inf &= ~INF_GROUND_SKILL; - } - } else if (strcmpi(type, "Self") == 0) { - if (on) { + } else if (strcmpi(skill_type, "Self") == 0) { + if (on) sk->inf |= INF_SELF_SKILL; - } else { + else sk->inf &= ~INF_SELF_SKILL; - } - } else if (strcmpi(type, "Friend") == 0) { - if (on) { + } else if (strcmpi(skill_type, "Friend") == 0) { + if (on) sk->inf |= INF_SUPPORT_SKILL; - } else { + else sk->inf &= ~INF_SUPPORT_SKILL; - } - } else if (strcmpi(type, "Trap") == 0) { - if (on) { + } else if (strcmpi(skill_type, "Trap") == 0) { + if (on) sk->inf |= INF_TARGET_TRAP; - } else { + else sk->inf &= ~INF_TARGET_TRAP; - } - } else if (strcmpi(type, "Passive") != 0) { - skilldb_invalid_error(type, config_setting_name(t), sk->nameid); + } else if (strcmpi(skill_type, "Passive") != 0) { + ShowWarning("%s: Invalid skill type %s specified for skill ID %d in %s! Skipping type...\n", + __func__, skill_type, sk->nameid, conf->file); } } } } /** - * Validates "SkillInfo" when reading skill_db.conf - * @param conf struct, pointer to skill configuration - * @param sk struct, pointer to s_skill_db - * @return (void) - */ + * Validates a skill's sub-types when reading the skill DB. + * + * @param conf The libconfig settings block which contains the skill's data. + * @param sk The s_skill_db struct where the sub-types should be set it. + * + **/ static void skill_validate_skillinfo(struct config_setting_t *conf, struct s_skill_db *sk) { - struct config_setting_t *t = NULL, *tt = NULL; - + nullpo_retv(conf); nullpo_retv(sk); - if ((t=libconfig->setting_get_member(conf, "SkillInfo")) && config_setting_is_group(t)) { - int j=0; - while ((tt = libconfig->setting_get_elem(t, j++))) { - const char *type = config_setting_name(tt); + + sk->inf2 = INF2_NONE; + + struct config_setting_t *t = libconfig->setting_get_member(conf, "SkillInfo"); + + if (t != NULL && config_setting_is_group(t)) { + struct config_setting_t *tt; + int i = 0; + + while ((tt = libconfig->setting_get_elem(t, i++)) != NULL) { + const char *skill_info = config_setting_name(tt); bool on = libconfig->setting_get_bool_real(tt); - if (strcmpi(type, "Quest") == 0) { - if (on) { + if (strcmpi(skill_info, "Quest") == 0) { + if (on) sk->inf2 |= INF2_QUEST_SKILL; - } else { + else sk->inf2 &= ~INF2_QUEST_SKILL; - } - } else if (strcmpi(type, "NPC") == 0) { - if (on) { + } else if (strcmpi(skill_info, "NPC") == 0) { + if (on) sk->inf2 |= INF2_NPC_SKILL; - } else { + else sk->inf2 &= ~INF2_NPC_SKILL; - } - } else if (strcmpi(type, "Wedding") == 0) { - if (on) { + } else if (strcmpi(skill_info, "Wedding") == 0) { + if (on) sk->inf2 |= INF2_WEDDING_SKILL; - } else { + else sk->inf2 &= ~INF2_WEDDING_SKILL; - } - } else if (strcmpi(type, "Spirit") == 0) { - if (on) { + } else if (strcmpi(skill_info, "Spirit") == 0) { + if (on) sk->inf2 |= INF2_SPIRIT_SKILL; - } else { + else sk->inf2 &= ~INF2_SPIRIT_SKILL; - } - } else if (strcmpi(type, "Guild") == 0) { - if (on) { + } else if (strcmpi(skill_info, "Guild") == 0) { + if (on) sk->inf2 |= INF2_GUILD_SKILL; - } else { + else sk->inf2 &= ~INF2_GUILD_SKILL; - } - } else if (strcmpi(type, "Song") == 0) { - if (on) { + } else if (strcmpi(skill_info, "Song") == 0) { + if (on) sk->inf2 |= INF2_SONG_DANCE; - } else { + else sk->inf2 &= ~INF2_SONG_DANCE; - } - } else if (strcmpi(type, "Ensemble") == 0) { - if (on) { + } else if (strcmpi(skill_info, "Ensemble") == 0) { + if (on) sk->inf2 |= INF2_ENSEMBLE_SKILL; - } else { + else sk->inf2 &= ~INF2_ENSEMBLE_SKILL; - } - } else if (strcmpi(type, "Trap") == 0) { - if (on) { + } else if (strcmpi(skill_info, "Trap") == 0) { + if (on) sk->inf2 |= INF2_TRAP; - } else { + else sk->inf2 &= ~INF2_TRAP; - } - } else if (strcmpi(type, "TargetSelf") == 0) { - if (on) { + } else if (strcmpi(skill_info, "TargetSelf") == 0) { + if (on) sk->inf2 |= INF2_TARGET_SELF; - } else { + else sk->inf2 &= ~INF2_TARGET_SELF; - } - } else if (strcmpi(type, "NoCastSelf") == 0) { - if (on) { + } else if (strcmpi(skill_info, "NoCastSelf") == 0) { + if (on) sk->inf2 |= INF2_NO_TARGET_SELF; - } else { + else sk->inf2 &= ~INF2_NO_TARGET_SELF; - } - } else if (strcmpi(type, "PartyOnly") == 0) { - if (on) { + } else if (strcmpi(skill_info, "PartyOnly") == 0) { + if (on) sk->inf2 |= INF2_PARTY_ONLY; - } else { + else sk->inf2 &= ~INF2_PARTY_ONLY; - } - } else if (strcmpi(type, "GuildOnly") == 0) { - if (on) { + } else if (strcmpi(skill_info, "GuildOnly") == 0) { + if (on) sk->inf2 |= INF2_GUILD_ONLY; - } else { + else sk->inf2 &= ~INF2_GUILD_ONLY; - } - } else if (strcmpi(type, "NoEnemy") == 0) { - if (on) { + } else if (strcmpi(skill_info, "NoEnemy") == 0) { + if (on) sk->inf2 |= INF2_NO_ENEMY; - } else { + else sk->inf2 &= ~INF2_NO_ENEMY; - } - } else if (strcmpi(type, "IgnoreLandProtector") == 0) { - if (on) { + } else if (strcmpi(skill_info, "IgnoreLandProtector") == 0) { + if (on) sk->inf2 |= INF2_NOLP; - } else { + else sk->inf2 &= ~INF2_NOLP; - } - } else if (strcmpi(type, "Chorus") == 0) { - if (on) { + } else if (strcmpi(skill_info, "Chorus") == 0) { + if (on) sk->inf2 |= INF2_CHORUS_SKILL; - } else { + else sk->inf2 &= ~INF2_CHORUS_SKILL; - } - } else if (strcmpi(type, "FreeCastNormal") == 0) { - if (on) { + } else if (strcmpi(skill_info, "FreeCastNormal") == 0) { + if (on) sk->inf2 |= INF2_FREE_CAST_NORMAL; - } else { + else sk->inf2 &= ~INF2_FREE_CAST_NORMAL; - } - } else if (strcmpi(type, "FreeCastReduced") == 0) { - if (on) { + } else if (strcmpi(skill_info, "FreeCastReduced") == 0) { + if (on) sk->inf2 |= INF2_FREE_CAST_REDUCED; - } else { + else sk->inf2 &= ~INF2_FREE_CAST_REDUCED; - } - } else if (strcmpi(type, "ShowSkillScale") == 0) { - if (on) { + } else if (strcmpi(skill_info, "ShowSkillScale") == 0) { + if (on) sk->inf2 |= INF2_SHOW_SKILL_SCALE; - } else { + else sk->inf2 &= ~INF2_SHOW_SKILL_SCALE; - } - } else if (strcmpi(type, "AllowReproduce") == 0) { - if (on) { + } else if (strcmpi(skill_info, "AllowReproduce") == 0) { + if (on) sk->inf2 |= INF2_ALLOW_REPRODUCE; - } else { + else sk->inf2 &= ~INF2_ALLOW_REPRODUCE; - } - } else if (strcmpi(type, "HiddenTrap") == 0) { - if (on) { + } else if (strcmpi(skill_info, "HiddenTrap") == 0) { + if (on) sk->inf2 |= INF2_HIDDEN_TRAP; - } else { + else sk->inf2 &= ~INF2_HIDDEN_TRAP; - } - } else if (strcmpi(type, "IsCombo") == 0) { - if (on) { + } else if (strcmpi(skill_info, "IsCombo") == 0) { + if (on) sk->inf2 |= INF2_IS_COMBO_SKILL; - } else { + else sk->inf2 &= ~INF2_IS_COMBO_SKILL; - } - } else if (strcmpi(type, "None") != 0) { - skilldb_invalid_error(type, config_setting_name(t), sk->nameid); + } else if (strcmpi(skill_info, "None") != 0) { + ShowWarning("%s: Invalid sub-type %s specified for skill ID %d in %s! Skipping sub-type...\n", + __func__, skill_info, sk->nameid, conf->file); } } } } /** - * Validates "AttackType" when reading skill_db.conf - * @param conf struct, pointer to skill configuration - * @param sk struct, pointer to s_skill_db - * @return (void) - */ + * Validates a skill's attack type when reading the skill DB. + * + * @param conf The libconfig settings block which contains the skill's data. + * @param sk The s_skill_db struct where the attack type should be set it. + * + **/ static void skill_validate_attacktype(struct config_setting_t *conf, struct s_skill_db *sk) { - const char *type = NULL; - + nullpo_retv(conf); nullpo_retv(sk); - if (libconfig->setting_lookup_string(conf, "AttackType", &type)) { - if (!strcmpi(type, "Weapon")) { - sk->skill_type = BF_WEAPON; - } else if (!strcmpi(type, "Magic")) { - sk->skill_type = BF_MAGIC; - } else if (!strcmpi(type, "Misc")) { - sk->skill_type = BF_MISC; - } else { - skilldb_invalid_error(type, "AttackType", sk->nameid); + + skill->level_set_value(sk->skill_type, BF_NONE); + + struct config_setting_t *t = libconfig->setting_get_member(conf, "AttackType"); + + if (t != NULL && config_setting_is_group(t)) { + for (int i = 0; i < MAX_SKILL_LEVEL; i++) { + char lv[6]; // Big enough to contain "Lv999" in case of custom MAX_SKILL_LEVEL. + safesnprintf(lv, sizeof(lv), "Lv%d", i + 1); + const char *attack_type; + + if (libconfig->setting_lookup_string(t, lv, &attack_type) == CONFIG_TRUE) { + if (strcmpi(attack_type, "Weapon") == 0) + sk->skill_type[i] = BF_WEAPON; + else if (strcmpi(attack_type, "Magic") == 0) + sk->skill_type[i] = BF_MAGIC; + else if (strcmpi(attack_type, "Misc") == 0) + sk->skill_type[i] = BF_MISC; + else if (strcmpi(attack_type, "None") != 0) + ShowWarning("%s: Invalid attack type %s specified in level %d for skill ID %d in %s! Defaulting to None...\n", + __func__, attack_type, i + 1, sk->nameid, conf->file); + } + } + + return; + } + + const char *attack_type; + + if (libconfig->setting_lookup_string(conf, "AttackType", &attack_type) == CONFIG_TRUE) { + int attack = BF_NONE; + + if (strcmpi(attack_type, "Weapon") == 0) { + attack = BF_WEAPON; + } else if (strcmpi(attack_type, "Magic") == 0) { + attack = BF_MAGIC; + } else if (strcmpi(attack_type, "Misc") == 0) { + attack = BF_MISC; + } else if (strcmpi(attack_type, "None") != 0) { + ShowWarning("%s: Invalid attack type %s specified for skill ID %d in %s! Defaulting to None...\n", + __func__, attack_type, sk->nameid, conf->file); return; } + + skill->level_set_value(sk->skill_type, attack); } } /** - * Validates "Element" when reading skill_db.conf - * @param ele_t struct, pointer to skill configuration - * @param sk struct, pointer to s_skill_db - * @return (void) - */ + * Validates a skill's element when reading the skill DB. + * + * @param conf The libconfig settings block which contains the skill's data. + * @param sk The s_skill_db struct where the element should be set it. + * + **/ static void skill_validate_element(struct config_setting_t *conf, struct s_skill_db *sk) { - const char *type = NULL; - struct config_setting_t *t = NULL; - + nullpo_retv(conf); nullpo_retv(sk); - if ((t=libconfig->setting_get_member(conf, "Element")) && config_setting_is_group(t)) { - int j = 0; - char lv[6]; // enough to contain "Lv100" in case of custom MAX_SKILL_LEVEL - for (j=0; j < MAX_SKILL_LEVEL; j++) { - sprintf(lv, "Lv%d",j+1); - if (libconfig->setting_lookup_string(t, lv, &type)) { - if (strcmpi(type,"Ele_Weapon") == 0) - sk->element[j] = -1; - else if (strcmpi(type,"Ele_Endowed") == 0) - sk->element[j] = -2; - else if (strcmpi(type,"Ele_Random") == 0) - sk->element[j] = -3; - else if (!script->get_constant(type,&sk->element[j])) - skilldb_invalid_error(type, config_setting_name(conf), sk->nameid); + skill->level_set_value(sk->element, ELE_NEUTRAL); + + struct config_setting_t *t = libconfig->setting_get_member(conf, "Element"); + + if (t != NULL && config_setting_is_group(t)) { + for (int i = 0; i < MAX_SKILL_LEVEL; i++) { + char lv[6]; // Big enough to contain "Lv999" in case of custom MAX_SKILL_LEVEL. + safesnprintf(lv, sizeof(lv), "Lv%d", i + 1); + const char *element; + + if (libconfig->setting_lookup_string(t, lv, &element) == CONFIG_TRUE) { + if (strcmpi(element, "Ele_Weapon") == 0) + sk->element[i] = -1; + else if (strcmpi(element, "Ele_Endowed") == 0) + sk->element[i] = -2; + else if (strcmpi(element, "Ele_Random") == 0) + sk->element[i] = -3; + else if (!script->get_constant(element, &sk->element[i])) + ShowWarning("%s: Invalid element %s specified in level %d for skill ID %d in %s! Defaulting to Ele_Neutral...\n", + __func__, element, i + 1, sk->nameid, conf->file); } } - } else if (libconfig->setting_lookup_string(conf, "Element", &type)) { - int ele = 0; + return; + } + + const char *element; - if (strcmpi(type,"Ele_Weapon") == 0) + if (libconfig->setting_lookup_string(conf, "Element", &element) == CONFIG_TRUE) { + int ele = ELE_NEUTRAL; + + if (strcmpi(element, "Ele_Weapon") == 0) { ele = -1; - else if (strcmpi(type,"Ele_Endowed") == 0) + } else if (strcmpi(element, "Ele_Endowed") == 0) { ele = -2; - else if (strcmpi(type,"Ele_Random") == 0) + } else if (strcmpi(element, "Ele_Random") == 0) { ele = -3; - else if (!script->get_constant(type, &ele)) { - skilldb_invalid_error(type, config_setting_name(conf), sk->nameid); + } else if (!script->get_constant(element, &ele)) { + ShowWarning("%s: Invalid element %s specified for skill ID %d in %s! Defaulting to Ele_Neutral...\n", + __func__, element, sk->nameid, conf->file); return; } @@ -20403,696 +21139,2516 @@ static void skill_validate_element(struct config_setting_t *conf, struct s_skill } /** - * Validates "DamageType" when reading skill_db.conf - * @param conf struct, pointer to skill configuration - * @param sk struct, pointer to s_skill_db - * @return (void) - */ + * Validates a skill's damage types when reading the skill DB. + * + * @param conf The libconfig settings block which contains the skill's data. + * @param sk The s_skill_db struct where the damage types should be set it. + * + **/ static void skill_validate_damagetype(struct config_setting_t *conf, struct s_skill_db *sk) { - struct config_setting_t *t = NULL, *tt = NULL; - + nullpo_retv(conf); nullpo_retv(sk); - if ((t=libconfig->setting_get_member(conf, "DamageType")) && config_setting_is_group(t)) { - int j=0; - while ((tt = libconfig->setting_get_elem(t, j++))) { - const char *type = config_setting_name(tt); + + sk->nk = NK_NONE; + + struct config_setting_t *t = libconfig->setting_get_member(conf, "DamageType"); + + if (t != NULL && config_setting_is_group(t)) { + struct config_setting_t *tt; + int i = 0; + + while ((tt = libconfig->setting_get_elem(t, i++)) != NULL) { + const char *damage_type = config_setting_name(tt); bool on = libconfig->setting_get_bool_real(tt); - if (strcmpi(type, "NoDamage") == 0) { - if (on) { + if (strcmpi(damage_type, "NoDamage") == 0) { + if (on) sk->nk |= NK_NO_DAMAGE; - } else { + else sk->nk &= ~NK_NO_DAMAGE; - } - } else if (strcmpi(type, "SplashArea") == 0) { - if (on) { + } else if (strcmpi(damage_type, "SplashArea") == 0) { + if (on) sk->nk |= NK_SPLASH_ONLY; - } else { + else sk->nk &= ~NK_SPLASH_ONLY; - } - } else if (strcmpi(type, "SplitDamage") == 0) { - if (on) { + } else if (strcmpi(damage_type, "SplitDamage") == 0) { + if (on) sk->nk |= NK_SPLASHSPLIT; - } else { + else sk->nk &= ~NK_SPLASHSPLIT; - } - } else if (strcmpi(type, "IgnoreCards") == 0) { - if (on) { + } else if (strcmpi(damage_type, "IgnoreCards") == 0) { + if (on) sk->nk |= NK_NO_CARDFIX_ATK; - } else { + else sk->nk &= ~NK_NO_CARDFIX_ATK; - } - } else if (strcmpi(type, "IgnoreElement") == 0) { - if (on) { + } else if (strcmpi(damage_type, "IgnoreElement") == 0) { + if (on) sk->nk |= NK_NO_ELEFIX; - } else { + else sk->nk &= ~NK_NO_ELEFIX; - } - } else if (strcmpi(type, "IgnoreDefense") == 0) { - if (on) { + } else if (strcmpi(damage_type, "IgnoreDefense") == 0) { + if (on) sk->nk |= NK_IGNORE_DEF; - } else { + else sk->nk &= ~NK_IGNORE_DEF; - } - } else if (strcmpi(type, "IgnoreFlee") == 0) { - if (on) { + } else if (strcmpi(damage_type, "IgnoreFlee") == 0) { + if (on) sk->nk |= NK_IGNORE_FLEE; - } else { + else sk->nk &= ~NK_IGNORE_FLEE; - } - } else if (strcmpi(type, "IgnoreDefCards") == 0) { - if (on) { + } else if (strcmpi(damage_type, "IgnoreDefCards") == 0) { + if (on) sk->nk |= NK_NO_CARDFIX_DEF; - } else { + else sk->nk &= ~NK_NO_CARDFIX_DEF; - } } else { - skilldb_invalid_error(type, config_setting_name(t), sk->nameid); + ShowWarning("%s: Invalid damage type %s specified for skill ID %d in %s! Skipping damage type...\n", + __func__, damage_type, sk->nameid, conf->file); } } } + + if (sk->nk == NK_NONE) + sk->nk = NK_NO_DAMAGE; } /** - * Validates "SkillCast/DelayOptions" when reading skill_db.conf - * @param conf struct, pointer to skill configuration - * @param sk struct, pointer to s_skill_db - * @param delay boolean, switch for cast/delay setting - * @return (void) - */ -static void skill_validate_castnodex(struct config_setting_t *conf, struct s_skill_db *sk, bool delay) + * Validates a skill's splash range when reading the skill DB. + * + * @param conf The libconfig settings block which contains the skill's data. + * @param sk The s_skill_db struct where the splash range should be set it. + * + **/ +static void skill_validate_splash_range(struct config_setting_t *conf, struct s_skill_db *sk) +{ + nullpo_retv(conf); + nullpo_retv(sk); + + skill->level_set_value(sk->splash, 0); + + struct config_setting_t *t = libconfig->setting_get_member(conf, "SplashRange"); + + if (t != NULL && config_setting_is_group(t)) { + for (int i = 0; i < MAX_SKILL_LEVEL; i++) { + char lv[6]; // Big enough to contain "Lv999" in case of custom MAX_SKILL_LEVEL. + safesnprintf(lv, sizeof(lv), "Lv%d", i + 1); + int splash_range; + + if (libconfig->setting_lookup_int(t, lv, &splash_range) == CONFIG_TRUE) { + if (splash_range >= SHRT_MIN && splash_range <= SHRT_MAX) + sk->splash[i] = splash_range; + else + ShowWarning("%s: Invalid splash range %d specified in level %d for skill ID %d in %s! Minimum is %d, maximum is %d. Defaulting to 0...\n", + __func__, splash_range, i + 1, sk->nameid, conf->file, SHRT_MIN, SHRT_MAX); + } + } + + return; + } + + int splash_range; + + if (libconfig->setting_lookup_int(conf, "SplashRange", &splash_range) == CONFIG_TRUE) { + if (splash_range >= SHRT_MIN && splash_range <= SHRT_MAX) + skill->level_set_value(sk->splash, splash_range); + else + ShowWarning("%s: Invalid splash range %d specified for skill ID %d in %s! Minimum is %d, maximum is %d. Defaulting to 0...\n", + __func__, splash_range, sk->nameid, conf->file, SHRT_MIN, SHRT_MAX); + } +} + +/** + * Validates a skill's number of hits when reading the skill DB. + * + * @param conf The libconfig settings block which contains the skill's data. + * @param sk The s_skill_db struct where the number of hits should be set it. + * + **/ +static void skill_validate_number_of_hits(struct config_setting_t *conf, struct s_skill_db *sk) +{ + nullpo_retv(conf); + nullpo_retv(sk); + + skill->level_set_value(sk->num, 1); + + struct config_setting_t *t = libconfig->setting_get_member(conf, "NumberOfHits"); + + if (t != NULL && config_setting_is_group(t)) { + for (int i = 0; i < MAX_SKILL_LEVEL; i++) { + char lv[6]; // Big enough to contain "Lv999" in case of custom MAX_SKILL_LEVEL. + safesnprintf(lv, sizeof(lv), "Lv%d", i + 1); + int number_of_hits; + + if (libconfig->setting_lookup_int(t, lv, &number_of_hits) == CONFIG_TRUE) { + if (number_of_hits >= SHRT_MIN && number_of_hits <= SHRT_MAX) + sk->num[i] = number_of_hits; + else + ShowWarning("%s: Invalid number of hits %d specified in level %d for skill ID %d in %s! Minimum is %d, maximum is %d. Defaulting to 1...\n", + __func__, number_of_hits, i + 1, sk->nameid, conf->file, SHRT_MIN, SHRT_MAX); + } + } + + return; + } + + int number_of_hits; + + if (libconfig->setting_lookup_int(conf, "NumberOfHits", &number_of_hits) == CONFIG_TRUE) { + if (number_of_hits >= SHRT_MIN && number_of_hits <= SHRT_MAX) + skill->level_set_value(sk->num, number_of_hits); + else + ShowWarning("%s: Invalid number of hits %d specified for skill ID %d in %s! Minimum is %d, maximum is %d. Defaulting to 1...\n", + __func__, number_of_hits, sk->nameid, conf->file, SHRT_MIN, SHRT_MAX); + } +} + +/** + * Validates a skill's cast interruptibility when reading the skill DB. + * + * @param conf The libconfig settings block which contains the skill's data. + * @param sk The s_skill_db struct where the cast interruptibility should be set it. + * + **/ +static void skill_validate_interrupt_cast(struct config_setting_t *conf, struct s_skill_db *sk) +{ + nullpo_retv(conf); + nullpo_retv(sk); + + skill->level_set_value(sk->castcancel, 0); + + struct config_setting_t *t = libconfig->setting_get_member(conf, "InterruptCast"); + + if (t != NULL && config_setting_is_group(t)) { + for (int i = 0; i < MAX_SKILL_LEVEL; i++) { + char lv[6]; // Big enough to contain "Lv999" in case of custom MAX_SKILL_LEVEL. + safesnprintf(lv, sizeof(lv), "Lv%d", i + 1); + int interrupt_cast; + + if (libconfig->setting_lookup_bool(t, lv, &interrupt_cast) == CONFIG_TRUE) + sk->castcancel[i] = (interrupt_cast != 0) ? 1 : 0; + } + + return; + } + + int interrupt_cast; + + if (libconfig->setting_lookup_bool(conf, "InterruptCast", &interrupt_cast) == CONFIG_TRUE) { + if (interrupt_cast != 0) + skill->level_set_value(sk->castcancel, 1); + } +} + +/** + * Validates a skill's cast defence rate when reading the skill DB. + * + * @param conf The libconfig settings block which contains the skill's data. + * @param sk The s_skill_db struct where the cast defence rate should be set it. + * + **/ +static void skill_validate_cast_def_rate(struct config_setting_t *conf, struct s_skill_db *sk) +{ + nullpo_retv(conf); + nullpo_retv(sk); + + skill->level_set_value(sk->cast_def_rate, 0); + + struct config_setting_t *t = libconfig->setting_get_member(conf, "CastDefRate"); + + if (t != NULL && config_setting_is_group(t)) { + for (int i = 0; i < MAX_SKILL_LEVEL; i++) { + char lv[6]; // Big enough to contain "Lv999" in case of custom MAX_SKILL_LEVEL. + safesnprintf(lv, sizeof(lv), "Lv%d", i + 1); + int cast_def_rate; + + if (libconfig->setting_lookup_int(t, lv, &cast_def_rate) == CONFIG_TRUE) { + if (cast_def_rate >= SHRT_MIN && cast_def_rate <= SHRT_MAX) + sk->cast_def_rate[i] = cast_def_rate; + else + ShowWarning("%s: Invalid cast defence rate %d specified in level %d for skill ID %d in %s! Minimum is %d, maximum is %d. Defaulting to 0...\n", + __func__, cast_def_rate, i + 1, sk->nameid, conf->file, SHRT_MIN, SHRT_MAX); + } + } + + return; + } + + int cast_def_rate; + + if (libconfig->setting_lookup_int(conf, "CastDefRate", &cast_def_rate) == CONFIG_TRUE) { + if (cast_def_rate >= SHRT_MIN && cast_def_rate <= SHRT_MAX) + skill->level_set_value(sk->cast_def_rate, cast_def_rate); + else + ShowWarning("%s: Invalid cast defence rate %d specified for skill ID %d in %s! Minimum is %d, maximum is %d. Defaulting to 0...\n", + __func__, cast_def_rate, sk->nameid, conf->file, SHRT_MIN, SHRT_MAX); + } +} + +/** + * Validates a skill's number of instances when reading the skill DB. + * + * @param conf The libconfig settings block which contains the skill's data. + * @param sk The s_skill_db struct where the number of instances should be set it. + * + **/ +static void skill_validate_number_of_instances(struct config_setting_t *conf, struct s_skill_db *sk) +{ + nullpo_retv(conf); + nullpo_retv(sk); + + skill->level_set_value(sk->maxcount, 0); + + struct config_setting_t *t = libconfig->setting_get_member(conf, "SkillInstances"); + + if (t != NULL && config_setting_is_group(t)) { + for (int i = 0; i < MAX_SKILL_LEVEL; i++) { + char lv[6]; // Big enough to contain "Lv999" in case of custom MAX_SKILL_LEVEL. + safesnprintf(lv, sizeof(lv), "Lv%d", i + 1); + int number_of_instances; + + if (libconfig->setting_lookup_int(t, lv, &number_of_instances) == CONFIG_TRUE) { + if (number_of_instances >= 0 && number_of_instances <= MAX_SKILLUNITGROUP) + sk->maxcount[i] = number_of_instances; + else + ShowWarning("%s: Invalid number of instances %d specified in level %d for skill ID %d in %s! Minimum is 0, maximum is %d. Defaulting to 0...\n", + __func__, number_of_instances, i + 1, sk->nameid, conf->file, MAX_SKILLUNITGROUP); + } + } + + return; + } + + int number_of_instances; + + if (libconfig->setting_lookup_int(conf, "SkillInstances", &number_of_instances) == CONFIG_TRUE) { + if (number_of_instances >= 0 && number_of_instances <= MAX_SKILLUNITGROUP) + skill->level_set_value(sk->maxcount, number_of_instances); + else + ShowWarning("%s: Invalid number of instances %d specified for skill ID %d in %s! Minimum is 0, maximum is %d. Defaulting to 0...\n", + __func__, number_of_instances, sk->nameid, conf->file, MAX_SKILLUNITGROUP); + } +} + +/** + * Validates a skill's number of knock back tiles when reading the skill DB. + * + * @param conf The libconfig settings block which contains the skill's data. + * @param sk The s_skill_db struct where the number of knock back tiles should be set it. + * + **/ +static void skill_validate_knock_back_tiles(struct config_setting_t *conf, struct s_skill_db *sk) +{ + nullpo_retv(conf); + nullpo_retv(sk); + + skill->level_set_value(sk->blewcount, 0); + + struct config_setting_t *t = libconfig->setting_get_member(conf, "KnockBackTiles"); + + if (t != NULL && config_setting_is_group(t)) { + for (int i = 0; i < MAX_SKILL_LEVEL; i++) { + char lv[6]; // Big enough to contain "Lv999" in case of custom MAX_SKILL_LEVEL. + safesnprintf(lv, sizeof(lv), "Lv%d", i + 1); + int knock_back_tiles; + + if (libconfig->setting_lookup_int(t, lv, &knock_back_tiles) == CONFIG_TRUE) { + if (knock_back_tiles >= 0) + sk->blewcount[i] = knock_back_tiles; + else + ShowWarning("%s: Invalid number of knock back tiles %d specified in level %d for skill ID %d in %s! Must be greater than or equal to 0. Defaulting to 0...\n", + __func__, knock_back_tiles, i + 1, sk->nameid, conf->file); + } + } + + return; + } + + int knock_back_tiles; + + if (libconfig->setting_lookup_int(conf, "KnockBackTiles", &knock_back_tiles) == CONFIG_TRUE) { + if (knock_back_tiles >= 0) + skill->level_set_value(sk->blewcount, knock_back_tiles); + else + ShowWarning("%s: Invalid number of knock back tiles %d specified for skill ID %d in %s! Must be greater than or equal to 0. Defaulting to 0...\n", + __func__, knock_back_tiles, sk->nameid, conf->file); + } +} + +/** + * Validates a skill's cast time when reading the skill DB. + * + * @param conf The libconfig settings block which contains the skill's data. + * @param sk The s_skill_db struct where the cast time should be set it. + * + **/ +static void skill_validate_cast_time(struct config_setting_t *conf, struct s_skill_db *sk) +{ + nullpo_retv(conf); + nullpo_retv(sk); + + skill->level_set_value(sk->cast, 0); + + struct config_setting_t *t = libconfig->setting_get_member(conf, "CastTime"); + + if (t != NULL && config_setting_is_group(t)) { + for (int i = 0; i < MAX_SKILL_LEVEL; i++) { + char lv[6]; // Big enough to contain "Lv999" in case of custom MAX_SKILL_LEVEL. + safesnprintf(lv, sizeof(lv), "Lv%d", i + 1); + int cast_time; + + if (libconfig->setting_lookup_int(t, lv, &cast_time) == CONFIG_TRUE) { + if (cast_time >= 0) + sk->cast[i] = cast_time; + else + ShowWarning("%s: Invalid cast time %d specified in level %d for skill ID %d in %s! Must be greater than or equal to 0. Defaulting to 0...\n", + __func__, cast_time, i + 1, sk->nameid, conf->file); + } + } + + return; + } + + int cast_time; + + if (libconfig->setting_lookup_int(conf, "CastTime", &cast_time) == CONFIG_TRUE) { + if (cast_time >= 0) + skill->level_set_value(sk->cast, cast_time); + else + ShowWarning("%s: Invalid cast time %d specified for skill ID %d in %s! Must be greater than or equal to 0. Defaulting to 0...\n", + __func__, cast_time, sk->nameid, conf->file); + } +} + +/** + * Validates a skill's after cast act delay when reading the skill DB. + * + * @param conf The libconfig settings block which contains the skill's data. + * @param sk The s_skill_db struct where the after cast act delay should be set it. + * + **/ +static void skill_validate_act_delay(struct config_setting_t *conf, struct s_skill_db *sk) +{ + nullpo_retv(conf); + nullpo_retv(sk); + + skill->level_set_value(sk->delay, 0); + + struct config_setting_t *t = libconfig->setting_get_member(conf, "AfterCastActDelay"); + + if (t != NULL && config_setting_is_group(t)) { + for (int i = 0; i < MAX_SKILL_LEVEL; i++) { + char lv[6]; // Big enough to contain "Lv999" in case of custom MAX_SKILL_LEVEL. + safesnprintf(lv, sizeof(lv), "Lv%d", i + 1); + int act_delay; + + if (libconfig->setting_lookup_int(t, lv, &act_delay) == CONFIG_TRUE) { + if (act_delay >= 0) + sk->delay[i] = act_delay; + else + ShowWarning("%s: Invalid after cast act delay %d specified in level %d for skill ID %d in %s! Must be greater than or equal to 0. Defaulting to 0...\n", + __func__, act_delay, i + 1, sk->nameid, conf->file); + } + } + + return; + } + + int act_delay; + + if (libconfig->setting_lookup_int(conf, "AfterCastActDelay", &act_delay) == CONFIG_TRUE) { + if (act_delay >= 0) + skill->level_set_value(sk->delay, act_delay); + else + ShowWarning("%s: Invalid after cast act delay %d specified for skill ID %d in %s! Must be greater than or equal to 0. Defaulting to 0...\n", + __func__, act_delay, sk->nameid, conf->file); + } +} + +/** + * Validates a skill's after cast walk delay when reading the skill DB. + * + * @param conf The libconfig settings block which contains the skill's data. + * @param sk The s_skill_db struct where the after cast walk delay should be set it. + * + **/ +static void skill_validate_walk_delay(struct config_setting_t *conf, struct s_skill_db *sk) { - struct config_setting_t *t = NULL, *tt = NULL; + nullpo_retv(conf); + nullpo_retv(sk); + + skill->level_set_value(sk->walkdelay, 0); + + struct config_setting_t *t = libconfig->setting_get_member(conf, "AfterCastWalkDelay"); + + if (t != NULL && config_setting_is_group(t)) { + for (int i = 0; i < MAX_SKILL_LEVEL; i++) { + char lv[6]; // Big enough to contain "Lv999" in case of custom MAX_SKILL_LEVEL. + safesnprintf(lv, sizeof(lv), "Lv%d", i + 1); + int walk_delay; + if (libconfig->setting_lookup_int(t, lv, &walk_delay) == CONFIG_TRUE) { + if (walk_delay >= 0) + sk->walkdelay[i] = walk_delay; + else + ShowWarning("%s: Invalid after cast walk delay %d specified in level %d for skill ID %d in %s! Must be greater than or equal to 0. Defaulting to 0...\n", + __func__, walk_delay, i + 1, sk->nameid, conf->file); + } + } + + return; + } + + int walk_delay; + + if (libconfig->setting_lookup_int(conf, "AfterCastWalkDelay", &walk_delay) == CONFIG_TRUE) { + if (walk_delay >= 0) + skill->level_set_value(sk->walkdelay, walk_delay); + else + ShowWarning("%s: Invalid after cast walk delay %d specified for skill ID %d in %s! Must be greater than or equal to 0. Defaulting to 0...\n", + __func__, walk_delay, sk->nameid, conf->file); + } +} + +/** + * Validates a skill's stay duration when reading the skill DB. + * + * @param conf The libconfig settings block which contains the skill's data. + * @param sk The s_skill_db struct where the stay duration should be set it. + * + **/ +static void skill_validate_skill_data1(struct config_setting_t *conf, struct s_skill_db *sk) +{ + nullpo_retv(conf); nullpo_retv(sk); - if ((t=libconfig->setting_get_member(conf, delay?"SkillDelayOptions":"CastTimeOptions")) && config_setting_is_group(t)) { - int j = 0, tmpopt = 0; - while ((tt = libconfig->setting_get_elem(t, j++)) && j < 4) { - const char *type = config_setting_name(tt); + + skill->level_set_value(sk->upkeep_time, 0); + + struct config_setting_t *t = libconfig->setting_get_member(conf, "SkillData1"); + + if (t != NULL && config_setting_is_group(t)) { + for (int i = 0; i < MAX_SKILL_LEVEL; i++) { + char lv[6]; // Big enough to contain "Lv999" in case of custom MAX_SKILL_LEVEL. + safesnprintf(lv, sizeof(lv), "Lv%d", i + 1); + int skill_data1; + + if (libconfig->setting_lookup_int(t, lv, &skill_data1) == CONFIG_TRUE) { + if (skill_data1 >= INFINITE_DURATION) + sk->upkeep_time[i] = skill_data1; + else + ShowWarning("%s: Invalid stay duration %d specified in level %d for skill ID %d in %s! Must be greater than or equal to %d. Defaulting to 0...\n", + __func__, skill_data1, i + 1, sk->nameid, conf->file, INFINITE_DURATION); + } + } + + return; + } + + int skill_data1; + + if (libconfig->setting_lookup_int(conf, "SkillData1", &skill_data1) == CONFIG_TRUE) { + if (skill_data1 >= INFINITE_DURATION) + skill->level_set_value(sk->upkeep_time, skill_data1); + else + ShowWarning("%s: Invalid stay duration %d specified for skill ID %d in %s! Must be greater than or equal to %d. Defaulting to 0...\n", + __func__, skill_data1, sk->nameid, conf->file, INFINITE_DURATION); + } +} + +/** + * Validates a skill's effect duration when reading the skill DB. + * + * @param conf The libconfig settings block which contains the skill's data. + * @param sk The s_skill_db struct where the effect duration should be set it. + * + **/ +static void skill_validate_skill_data2(struct config_setting_t *conf, struct s_skill_db *sk) +{ + nullpo_retv(conf); + nullpo_retv(sk); + + skill->level_set_value(sk->upkeep_time2, 0); + + struct config_setting_t *t = libconfig->setting_get_member(conf, "SkillData2"); + + if (t != NULL && config_setting_is_group(t)) { + for (int i = 0; i < MAX_SKILL_LEVEL; i++) { + char lv[6]; // Big enough to contain "Lv999" in case of custom MAX_SKILL_LEVEL. + safesnprintf(lv, sizeof(lv), "Lv%d", i + 1); + int skill_data2; + + if (libconfig->setting_lookup_int(t, lv, &skill_data2) == CONFIG_TRUE) { + if (skill_data2 >= INFINITE_DURATION) + sk->upkeep_time2[i] = skill_data2; + else + ShowWarning("%s: Invalid effect duration %d specified in level %d for skill ID %d in %s! Must be greater than or equal to %d. Defaulting to 0...\n", + __func__, skill_data2, i + 1, sk->nameid, conf->file, INFINITE_DURATION); + } + } + + return; + } + + int skill_data2; + + if (libconfig->setting_lookup_int(conf, "SkillData2", &skill_data2) == CONFIG_TRUE) { + if (skill_data2 >= INFINITE_DURATION) + skill->level_set_value(sk->upkeep_time2, skill_data2); + else + ShowWarning("%s: Invalid effect duration %d specified for skill ID %d in %s! Must be greater than or equal to %d. Defaulting to 0...\n", + __func__, skill_data2, sk->nameid, conf->file, INFINITE_DURATION); + } +} + +/** + * Validates a skill's cooldown when reading the skill DB. + * + * @param conf The libconfig settings block which contains the skill's data. + * @param sk The s_skill_db struct where the cooldown should be set it. + * + **/ +static void skill_validate_cooldown(struct config_setting_t *conf, struct s_skill_db *sk) +{ + nullpo_retv(conf); + nullpo_retv(sk); + + skill->level_set_value(sk->cooldown, 0); + + struct config_setting_t *t = libconfig->setting_get_member(conf, "CoolDown"); + + if (t != NULL && config_setting_is_group(t)) { + for (int i = 0; i < MAX_SKILL_LEVEL; i++) { + char lv[6]; // Big enough to contain "Lv999" in case of custom MAX_SKILL_LEVEL. + safesnprintf(lv, sizeof(lv), "Lv%d", i + 1); + int cooldown; + + if (libconfig->setting_lookup_int(t, lv, &cooldown) == CONFIG_TRUE) { + if (cooldown >= 0) + sk->cooldown[i] = cooldown; + else + ShowWarning("%s: Invalid cooldown %d specified in level %d for skill ID %d in %s! Must be greater than or equal to 0. Defaulting to 0...\n", + __func__, cooldown, i + 1, sk->nameid, conf->file); + } + } + + return; + } + + int cooldown; + + if (libconfig->setting_lookup_int(conf, "CoolDown", &cooldown) == CONFIG_TRUE) { + if (cooldown >= 0) + skill->level_set_value(sk->cooldown, cooldown); + else + ShowWarning("%s: Invalid cooldown %d specified for skill ID %d in %s! Must be greater than or equal to 0. Defaulting to 0...\n", + __func__, cooldown, sk->nameid, conf->file); + } +} + +/** + * Validates a skill's fixed cast time when reading the skill DB. + * If RENEWAL_CAST is not defined, nothing is done. + * + * @param conf The libconfig settings block which contains the skill's data. + * @param sk The s_skill_db struct where the fixed cast time should be set it. + * + **/ +static void skill_validate_fixed_cast_time(struct config_setting_t *conf, struct s_skill_db *sk) +{ + nullpo_retv(conf); + nullpo_retv(sk); + +#ifdef RENEWAL_CAST + skill->level_set_value(sk->fixed_cast, 0); + + struct config_setting_t *t = libconfig->setting_get_member(conf, "FixedCastTime"); + + if (t != NULL && config_setting_is_group(t)) { + for (int i = 0; i < MAX_SKILL_LEVEL; i++) { + char lv[6]; // Big enough to contain "Lv999" in case of custom MAX_SKILL_LEVEL. + safesnprintf(lv, sizeof(lv), "Lv%d", i + 1); + int fixed_cast_time; + + if (libconfig->setting_lookup_int(t, lv, &fixed_cast_time) == CONFIG_TRUE) { + if (fixed_cast_time >= INFINITE_DURATION) + sk->fixed_cast[i] = fixed_cast_time; + else + ShowWarning("%s: Invalid fixed cast time %d specified in level %d for skill ID %d in %s! Must be greater than or equal to %d. Defaulting to 0...\n", + __func__, fixed_cast_time, i + 1, sk->nameid, conf->file, INFINITE_DURATION); + } + } + + return; + } + + int fixed_cast_time; + + if (libconfig->setting_lookup_int(conf, "FixedCastTime", &fixed_cast_time) == CONFIG_TRUE) { + if (fixed_cast_time >= INFINITE_DURATION) + skill->level_set_value(sk->fixed_cast, fixed_cast_time); + else + ShowWarning("%s: Invalid fixed cast time %d specified for skill ID %d in %s! Must be greater than or equal to %d. Defaulting to 0...\n", + __func__, fixed_cast_time, sk->nameid, conf->file, INFINITE_DURATION); + } +#else +#ifndef RENEWAL /** Check pre-RE skill DB for FixedCastTime. **/ + if (libconfig->setting_get_member(conf, "FixedCastTime") != NULL) + ShowWarning("%s: Fixed cast time was specified for skill ID %d in %s without RENEWAL_CAST being defined! Skipping...\n", __func__, sk->nameid, conf->file); +#endif /** RENEWAL **/ +#endif /** RENEWAL_CAST **/ +} + +/** + * Validates a skill's cast time or delay options when reading the skill DB. + * + * @param conf The libconfig settings block which contains the skill's data. + * @param sk The s_skill_db struct where the cast time or delay options should be set it. + * @param delay If true, the skill's delay options are validated, otherwise its cast time options. + * + **/ +static void skill_validate_castnodex(struct config_setting_t *conf, struct s_skill_db *sk, bool delay) +{ + nullpo_retv(conf); + nullpo_retv(sk); + + skill->level_set_value(delay ? sk->delaynodex : sk->castnodex, 0); + + struct config_setting_t *t = libconfig->setting_get_member(conf, delay ? "SkillDelayOptions" : "CastTimeOptions"); + + if (t != NULL && config_setting_is_group(t)) { + struct config_setting_t *tt; + int i = 0; + int options = 0; + + while ((tt = libconfig->setting_get_elem(t, i++)) != NULL) { + const char *value = config_setting_name(tt); bool on = libconfig->setting_get_bool_real(tt); - if (strcmpi(type, "IgnoreDex") == 0) { - if (on) { - tmpopt |= 1<<0; - } else { - tmpopt &= ~(1<<0); - } - } else if (strcmpi(type, "IgnoreStatusEffect") == 0) { - if (on) { - tmpopt |= 1<<1; - } else { - tmpopt &= ~(1<<1); - } - } else if (strcmpi(type, "IgnoreItemBonus") == 0) { - if (on) { - tmpopt |= 1<<2; - } else { - tmpopt &= ~(1<<2); - } + if (strcmpi(value, "IgnoreDex") == 0) { + if (on) + options |= 1; + else + options &= ~1; + } else if (strcmpi(value, "IgnoreStatusEffect") == 0) { + if (on) + options |= 2; + else + options &= ~2; + } else if (strcmpi(value, "IgnoreItemBonus") == 0) { + if (on) + options |= 4; + else + options &= ~4; } else { - skilldb_invalid_error(type, config_setting_name(t), sk->nameid); - return; + const char *option_string = delay ? "skill delay" : "cast time"; + ShowWarning("%s: Invalid %s option %s specified for skill ID %d in %s! Skipping option...\n", + __func__, option_string, value, sk->nameid, conf->file); } + } + + skill->level_set_value(delay ? sk->delaynodex : sk->castnodex, options); + } +} +/** + * Validates a skill's HP cost when reading the skill DB. + * + * @param conf The libconfig settings block which contains the skill's data. + * @param sk The s_skill_db struct where the HP cost should be set it. + * + **/ +static void skill_validate_hp_cost(struct config_setting_t *conf, struct s_skill_db *sk) +{ + nullpo_retv(conf); + nullpo_retv(sk); + + skill->level_set_value(sk->hp, 0); + + struct config_setting_t *t = libconfig->setting_get_member(conf, "HPCost"); + + if (t != NULL && config_setting_is_group(t)) { + for (int i = 0; i < MAX_SKILL_LEVEL; i++) { + char lv[6]; // Big enough to contain "Lv999" in case of custom MAX_SKILL_LEVEL. + safesnprintf(lv, sizeof(lv), "Lv%d", i + 1); + int hp_cost; + + if (libconfig->setting_lookup_int(t, lv, &hp_cost) == CONFIG_TRUE) { + if (hp_cost >= 0 && hp_cost <= battle_config.max_hp) + sk->hp[i] = hp_cost; + else + ShowWarning("%s: Invalid HP cost %d specified in level %d for skill ID %d in %s! Minimum is 0, maximum is %d. Defaulting to 0...\n", + __func__, hp_cost, i + 1, sk->nameid, conf->file, battle_config.max_hp); + } } - skill->level_set_value(delay?sk->delaynodex:sk->castnodex, tmpopt); + + return; + } + + int hp_cost; + + if (libconfig->setting_lookup_int(conf, "HPCost", &hp_cost) == CONFIG_TRUE) { + if (hp_cost >= 0 && hp_cost <= battle_config.max_hp) + skill->level_set_value(sk->hp, hp_cost); + else + ShowWarning("%s: Invalid HP cost %d specified for skill ID %d in %s! Minimum is 0, maximum is %d. Defaulting to 0...\n", + __func__, hp_cost, sk->nameid, conf->file, battle_config.max_hp); } } /** - * Validates the "WeaponTypes" flag - * when parsing skill_db.conf - * @param *type const char, weapon type flag - * @param on boolean, switch for the flag - * @param *sk struct, pointer to s_skill_db - * @return void - */ + * Validates a skill's SP cost when reading the skill DB. + * + * @param conf The libconfig settings block which contains the skill's data. + * @param sk The s_skill_db struct where the SP cost should be set it. + * + **/ +static void skill_validate_sp_cost(struct config_setting_t *conf, struct s_skill_db *sk) +{ + nullpo_retv(conf); + nullpo_retv(sk); + + skill->level_set_value(sk->sp, 0); + + struct config_setting_t *t = libconfig->setting_get_member(conf, "SPCost"); + + if (t != NULL && config_setting_is_group(t)) { + for (int i = 0; i < MAX_SKILL_LEVEL; i++) { + char lv[6]; // Big enough to contain "Lv999" in case of custom MAX_SKILL_LEVEL. + safesnprintf(lv, sizeof(lv), "Lv%d", i + 1); + int sp_cost; + + if (libconfig->setting_lookup_int(t, lv, &sp_cost) == CONFIG_TRUE) { + if (sp_cost >= 0 && sp_cost <= battle_config.max_sp) + sk->sp[i] = sp_cost; + else + ShowWarning("%s: Invalid SP cost %d specified in level %d for skill ID %d in %s! Minimum is 0, maximum is %d. Defaulting to 0...\n", + __func__, sp_cost, i + 1, sk->nameid, conf->file, battle_config.max_sp); + } + } + + return; + } + + int sp_cost; + + if (libconfig->setting_lookup_int(conf, "SPCost", &sp_cost) == CONFIG_TRUE) { + if (sp_cost >= 0 && sp_cost <= battle_config.max_sp) + skill->level_set_value(sk->sp, sp_cost); + else + ShowWarning("%s: Invalid SP cost %d specified for skill ID %d in %s! Minimum is 0, maximum is %d. Defaulting to 0...\n", + __func__, sp_cost, sk->nameid, conf->file, battle_config.max_sp); + } +} + +/** + * Validates a skill's HP rate cost when reading the skill DB. + * + * @param conf The libconfig settings block which contains the skill's data. + * @param sk The s_skill_db struct where the HP rate cost should be set it. + * + **/ +static void skill_validate_hp_rate_cost(struct config_setting_t *conf, struct s_skill_db *sk) +{ + nullpo_retv(conf); + nullpo_retv(sk); + + skill->level_set_value(sk->hp_rate, 0); + + struct config_setting_t *t = libconfig->setting_get_member(conf, "HPRateCost"); + + if (t != NULL && config_setting_is_group(t)) { + for (int i = 0; i < MAX_SKILL_LEVEL; i++) { + char lv[6]; // Big enough to contain "Lv999" in case of custom MAX_SKILL_LEVEL. + safesnprintf(lv, sizeof(lv), "Lv%d", i + 1); + int hp_rate_cost; + + if (libconfig->setting_lookup_int(t, lv, &hp_rate_cost) == CONFIG_TRUE) { + if (hp_rate_cost >= -100 && hp_rate_cost <= 100) + sk->hp_rate[i] = hp_rate_cost; + else + ShowWarning("%s: Invalid HP rate cost %d specified in level %d for skill ID %d in %s! Minimum is -100, maximum is 100. Defaulting to 0...\n", + __func__, hp_rate_cost, i + 1, sk->nameid, conf->file); + } + } + + return; + } + + int hp_rate_cost; + + if (libconfig->setting_lookup_int(conf, "HPRateCost", &hp_rate_cost) == CONFIG_TRUE) { + if (hp_rate_cost >= -100 && hp_rate_cost <= 100) + skill->level_set_value(sk->hp_rate, hp_rate_cost); + else + ShowWarning("%s: Invalid HP rate cost %d specified for skill ID %d in %s! Minimum is -100, maximum is 100. Defaulting to 0...\n", + __func__, hp_rate_cost, sk->nameid, conf->file); + } +} + +/** + * Validates a skill's SP rate cost when reading the skill DB. + * + * @param conf The libconfig settings block which contains the skill's data. + * @param sk The s_skill_db struct where the SP rate cost should be set it. + * + **/ +static void skill_validate_sp_rate_cost(struct config_setting_t *conf, struct s_skill_db *sk) +{ + nullpo_retv(conf); + nullpo_retv(sk); + + skill->level_set_value(sk->sp_rate, 0); + + struct config_setting_t *t = libconfig->setting_get_member(conf, "SPRateCost"); + + if (t != NULL && config_setting_is_group(t)) { + for (int i = 0; i < MAX_SKILL_LEVEL; i++) { + char lv[6]; // Big enough to contain "Lv999" in case of custom MAX_SKILL_LEVEL. + safesnprintf(lv, sizeof(lv), "Lv%d", i + 1); + int sp_rate_cost; + + if (libconfig->setting_lookup_int(t, lv, &sp_rate_cost) == CONFIG_TRUE) { + if (sp_rate_cost >= -100 && sp_rate_cost <= 100) + sk->sp_rate[i] = sp_rate_cost; + else + ShowWarning("%s: Invalid SP rate cost %d specified in level %d for skill ID %d in %s! Minimum is -100, maximum is 100. Defaulting to 0...\n", + __func__, sp_rate_cost, i + 1, sk->nameid, conf->file); + } + } + + return; + } + + int sp_rate_cost; + + if (libconfig->setting_lookup_int(conf, "SPRateCost", &sp_rate_cost) == CONFIG_TRUE) { + if (sp_rate_cost >= -100 && sp_rate_cost <= 100) + skill->level_set_value(sk->sp_rate, sp_rate_cost); + else + ShowWarning("%s: Invalid SP rate cost %d specified for skill ID %d in %s! Minimum is -100, maximum is 100. Defaulting to 0...\n", + __func__, sp_rate_cost, sk->nameid, conf->file); + } +} + +/** + * Validates a skill's maximum HP trigger when reading the skill DB. + * + * @param conf The libconfig settings block which contains the skill's data. + * @param sk The s_skill_db struct where the maximum HP trigger should be set it. + * + **/ +static void skill_validate_max_hp_trigger(struct config_setting_t *conf, struct s_skill_db *sk) +{ + nullpo_retv(conf); + nullpo_retv(sk); + + skill->level_set_value(sk->mhp, 0); + + struct config_setting_t *t = libconfig->setting_get_member(conf, "MaxHPTrigger"); + + if (t != NULL && config_setting_is_group(t)) { + for (int i = 0; i < MAX_SKILL_LEVEL; i++) { + char lv[6]; // Big enough to contain "Lv999" in case of custom MAX_SKILL_LEVEL. + safesnprintf(lv, sizeof(lv), "Lv%d", i + 1); + int max_hp_trigger; + + if (libconfig->setting_lookup_int(t, lv, &max_hp_trigger) == CONFIG_TRUE) { + if (max_hp_trigger >= 0 && max_hp_trigger <= 100) + sk->mhp[i] = max_hp_trigger; + else + ShowWarning("%s: Invalid maximum HP trigger %d specified in level %d for skill ID %d in %s! Minimum is 0, maximum is 100. Defaulting to 0...\n", + __func__, max_hp_trigger, i + 1, sk->nameid, conf->file); + } + } + + return; + } + + int max_hp_trigger; + + if (libconfig->setting_lookup_int(conf, "MaxHPTrigger", &max_hp_trigger) == CONFIG_TRUE) { + if (max_hp_trigger >= 0 && max_hp_trigger <= 100) + skill->level_set_value(sk->mhp, max_hp_trigger); + else + ShowWarning("%s: Invalid maximum HP trigger %d specified for skill ID %d in %s! Minimum is 0, maximum is 100. Defaulting to 0...\n", + __func__, max_hp_trigger, sk->nameid, conf->file); + } +} + +/** + * Validates a skill's maximum SP trigger when reading the skill DB. + * + * @param conf The libconfig settings block which contains the skill's data. + * @param sk The s_skill_db struct where the maximum SP trigger should be set it. + * + **/ +static void skill_validate_max_sp_trigger(struct config_setting_t *conf, struct s_skill_db *sk) +{ + nullpo_retv(conf); + nullpo_retv(sk); + + skill->level_set_value(sk->msp, 0); + + struct config_setting_t *t = libconfig->setting_get_member(conf, "MaxSPTrigger"); + + if (t != NULL && config_setting_is_group(t)) { + for (int i = 0; i < MAX_SKILL_LEVEL; i++) { + char lv[6]; // Big enough to contain "Lv999" in case of custom MAX_SKILL_LEVEL. + safesnprintf(lv, sizeof(lv), "Lv%d", i + 1); + int max_sp_trigger; + + if (libconfig->setting_lookup_int(t, lv, &max_sp_trigger) == CONFIG_TRUE) { + if (max_sp_trigger >= 0 && max_sp_trigger <= 100) + sk->msp[i] = max_sp_trigger; + else + ShowWarning("%s: Invalid maximum SP trigger %d specified in level %d for skill ID %d in %s! Minimum is 0, maximum is 100. Defaulting to 0...\n", + __func__, max_sp_trigger, i + 1, sk->nameid, conf->file); + } + } + + return; + } + + int max_sp_trigger; + + if (libconfig->setting_lookup_int(conf, "MaxSPTrigger", &max_sp_trigger) == CONFIG_TRUE) { + if (max_sp_trigger >= 0 && max_sp_trigger <= 100) + skill->level_set_value(sk->msp, max_sp_trigger); + else + ShowWarning("%s: Invalid maximum SP trigger %d specified for skill ID %d in %s! Minimum is 0, maximum is 100. Defaulting to 0...\n", + __func__, max_sp_trigger, sk->nameid, conf->file); + } +} + +/** + * Validates a skill's Zeny cost when reading the skill DB. + * + * @param conf The libconfig settings block which contains the skill's data. + * @param sk The s_skill_db struct where the Zeny cost should be set it. + * + **/ +static void skill_validate_zeny_cost(struct config_setting_t *conf, struct s_skill_db *sk) +{ + nullpo_retv(conf); + nullpo_retv(sk); + + skill->level_set_value(sk->zeny, 0); + + struct config_setting_t *t = libconfig->setting_get_member(conf, "ZenyCost"); + + if (t != NULL && config_setting_is_group(t)) { + for (int i = 0; i < MAX_SKILL_LEVEL; i++) { + char lv[6]; // Big enough to contain "Lv999" in case of custom MAX_SKILL_LEVEL. + safesnprintf(lv, sizeof(lv), "Lv%d", i + 1); + int zeny_cost; + + if (libconfig->setting_lookup_int(t, lv, &zeny_cost) == CONFIG_TRUE) { + if (zeny_cost >= 0 && zeny_cost <= MAX_ZENY) + sk->zeny[i] = zeny_cost; + else + ShowWarning("%s: Invalid Zeny cost %d specified in level %d for skill ID %d in %s! Minimum is 0, maximum is %d. Defaulting to 0...\n", + __func__, zeny_cost, i + 1, sk->nameid, conf->file, MAX_ZENY); + } + } + + return; + } + + int zeny_cost; + + if (libconfig->setting_lookup_int(conf, "ZenyCost", &zeny_cost) == CONFIG_TRUE) { + if (zeny_cost >= 0 && zeny_cost <= MAX_ZENY) + skill->level_set_value(sk->zeny, zeny_cost); + else + ShowWarning("%s: Invalid Zeny cost %d specified for skill ID %d in %s! Minimum is 0, maximum is %d. Defaulting to 0...\n", + __func__, zeny_cost, sk->nameid, conf->file, MAX_ZENY); + } +} + +/** + * Validates a single weapon type when reading the skill DB. + * + * @param type The weapon type to validate. + * @param on Whether the weapon type is required for the skill. + * @param sk The s_skill_db struct where the weapon type should be set it. + * @return 0 if the passed weapon type is valid, otherwise 1. + * + **/ static int skill_validate_weapontype_sub(const char *type, bool on, struct s_skill_db *sk) { - nullpo_ret(sk); + nullpo_retr(1, type); + nullpo_retr(1, sk); + if (strcmpi(type, "NoWeapon") == 0) { - if (on) { - sk->weapon |= 1<<W_FIST; - } else { - sk->weapon &= ~(1<<W_FIST); - } + if (on) + sk->weapon |= (1 << W_FIST); + else + sk->weapon &= ~(1 << W_FIST); } else if (strcmpi(type, "Daggers") == 0) { - if (on) { - sk->weapon |= 1<<W_DAGGER; - } else { - sk->weapon &= ~(1<<W_DAGGER); - } + if (on) + sk->weapon |= (1 << W_DAGGER); + else + sk->weapon &= ~(1 << W_DAGGER); } else if (strcmpi(type, "1HSwords") == 0) { - if (on) { - sk->weapon |= 1<<W_1HSWORD; - } else { - sk->weapon &= ~(1<<W_1HSWORD); - } + if (on) + sk->weapon |= (1 << W_1HSWORD); + else + sk->weapon &= ~(1 << W_1HSWORD); } else if (strcmpi(type, "2HSwords") == 0) { - if (on) { - sk->weapon |= 1<<W_2HSWORD; - } else { - sk->weapon &= ~(1<<W_2HSWORD); - } + if (on) + sk->weapon |= (1 << W_2HSWORD); + else + sk->weapon &= ~(1 << W_2HSWORD); } else if (strcmpi(type, "1HSpears") == 0) { - if (on) { - sk->weapon |= 1<<W_1HSPEAR; - } else { - sk->weapon &= ~(1<<W_1HSPEAR); - } + if (on) + sk->weapon |= (1 << W_1HSPEAR); + else + sk->weapon &= ~(1 << W_1HSPEAR); } else if (strcmpi(type, "2HSpears") == 0) { - if (on) { - sk->weapon |= 1<<W_2HSPEAR; - } else { - sk->weapon &= ~(1<<W_2HSPEAR); - } + if (on) + sk->weapon |= (1 << W_2HSPEAR); + else + sk->weapon &= ~(1 << W_2HSPEAR); } else if (strcmpi(type, "1HAxes") == 0) { - if (on) { - sk->weapon |= 1<<W_1HAXE; - } else { - sk->weapon &= ~(1<<W_1HAXE); - } + if (on) + sk->weapon |= (1 << W_1HAXE); + else + sk->weapon &= ~(1 << W_1HAXE); } else if (strcmpi(type, "2HAxes") == 0) { - if (on) { - sk->weapon |= 1<<W_2HAXE; - } else { - sk->weapon &= ~(1<<W_2HAXE); - } + if (on) + sk->weapon |= (1 << W_2HAXE); + else + sk->weapon &= ~(1 << W_2HAXE); } else if (strcmpi(type, "Maces") == 0) { - if (on) { - sk->weapon |= 1<<W_MACE; - } else { - sk->weapon &= ~(1<<W_MACE); - } + if (on) + sk->weapon |= (1 << W_MACE); + else + sk->weapon &= ~(1 << W_MACE); } else if (strcmpi(type, "2HMaces") == 0) { - if (on) { - sk->weapon |= 1<<W_2HMACE; - } else { - sk->weapon &= ~(1<<W_2HMACE); - } + if (on) + sk->weapon |= (1 << W_2HMACE); + else + sk->weapon &= ~(1 << W_2HMACE); } else if (strcmpi(type, "Staves") == 0) { - if (on) { - sk->weapon |= 1<<W_STAFF; - } else { - sk->weapon &= ~(1<<W_STAFF); - } + if (on) + sk->weapon |= (1 << W_STAFF); + else + sk->weapon &= ~(1 << W_STAFF); } else if (strcmpi(type, "Bows") == 0) { - if (on) { - sk->weapon |= 1<<W_BOW; - } else { - sk->weapon &= ~(1<<W_BOW); - } + if (on) + sk->weapon |= (1 << W_BOW); + else + sk->weapon &= ~(1 << W_BOW); } else if (strcmpi(type, "Knuckles") == 0) { - if (on) { - sk->weapon |= 1<<W_KNUCKLE; - } else { - sk->weapon &= ~(1<<W_KNUCKLE); - } + if (on) + sk->weapon |= (1 << W_KNUCKLE); + else + sk->weapon &= ~(1 << W_KNUCKLE); } else if (strcmpi(type, "Instruments") == 0) { - if (on) { - sk->weapon |= 1<<W_MUSICAL; - } else { - sk->weapon &= ~(1<<W_MUSICAL); - } + if (on) + sk->weapon |= (1 << W_MUSICAL); + else + sk->weapon &= ~(1 << W_MUSICAL); } else if (strcmpi(type, "Whips") == 0) { - if (on) { - sk->weapon |= 1<<W_WHIP; - } else { - sk->weapon &= ~(1<<W_WHIP); - } + if (on) + sk->weapon |= (1 << W_WHIP); + else + sk->weapon &= ~(1 << W_WHIP); } else if (strcmpi(type, "Books") == 0) { - if (on) { - sk->weapon |= 1<<W_BOOK; - } else { - sk->weapon &= ~(1<<W_BOOK); - } + if (on) + sk->weapon |= (1 << W_BOOK); + else + sk->weapon &= ~(1 << W_BOOK); } else if (strcmpi(type, "Katars") == 0) { - if (on) { - sk->weapon |= 1<<W_KATAR; - } else { - sk->weapon &= ~(1<<W_KATAR); - } + if (on) + sk->weapon |= (1 << W_KATAR); + else + sk->weapon &= ~(1 << W_KATAR); } else if (strcmpi(type, "Revolvers") == 0) { - if (on) { - sk->weapon |= 1<<W_REVOLVER; - } else { - sk->weapon &= ~(1<<W_REVOLVER); - } + if (on) + sk->weapon |= (1 << W_REVOLVER); + else + sk->weapon &= ~(1 << W_REVOLVER); } else if (strcmpi(type, "Rifles") == 0) { - if (on) { - sk->weapon |= 1<<W_RIFLE; - } else { - sk->weapon &= ~(1<<W_RIFLE); - } + if (on) + sk->weapon |= (1 << W_RIFLE); + else + sk->weapon &= ~(1 << W_RIFLE); } else if (strcmpi(type, "GatlingGuns") == 0) { - if (on) { - sk->weapon |= 1<<W_GATLING; - } else { - sk->weapon &= ~(1<<W_GATLING); - } + if (on) + sk->weapon |= (1 << W_GATLING); + else + sk->weapon &= ~(1 << W_GATLING); } else if (strcmpi(type, "Shotguns") == 0) { - if (on) { - sk->weapon |= 1<<W_SHOTGUN; - } else { - sk->weapon &= ~(1<<W_SHOTGUN); - } + if (on) + sk->weapon |= (1 << W_SHOTGUN); + else + sk->weapon &= ~(1 << W_SHOTGUN); } else if (strcmpi(type, "GrenadeLaunchers") == 0) { - if (on) { - sk->weapon |= 1<<W_GRENADE; - } else { - sk->weapon &= ~(1<<W_GRENADE); - } + if (on) + sk->weapon |= (1 << W_GRENADE); + else + sk->weapon &= ~(1 << W_GRENADE); } else if (strcmpi(type, "FuumaShurikens") == 0) { - if (on) { - sk->weapon |= 1<<W_HUUMA; - } else { - sk->weapon &= ~(1<<W_HUUMA); - } + if (on) + sk->weapon |= (1 << W_HUUMA); + else + sk->weapon &= ~(1 << W_HUUMA); } else if (strcmpi(type, "2HStaves") == 0) { - if (on) { - sk->weapon |= 1<<W_2HSTAFF; - } else { - sk->weapon &= ~(1<<W_2HSTAFF); - } - } - /* MAX_SINGLE_WEAPON_TYPE excluded */ - else if (strcmpi(type, "DWDaggers") == 0) { - if (on) { - sk->weapon |= 1<<W_DOUBLE_DD; - } else { - sk->weapon &= ~(1<<W_DOUBLE_DD); - } + if (on) + sk->weapon |= (1 << W_2HSTAFF); + else + sk->weapon &= ~(1 << W_2HSTAFF); + } else if (strcmpi(type, "DWDaggers") == 0) { + if (on) + sk->weapon |= (1 << W_DOUBLE_DD); + else + sk->weapon &= ~(1 << W_DOUBLE_DD); } else if (strcmpi(type, "DWSwords") == 0) { - if (on) { - sk->weapon |= 1<<W_DOUBLE_SS; - } else { - sk->weapon &= ~(1<<W_DOUBLE_SS); - } + if (on) + sk->weapon |= (1 << W_DOUBLE_SS); + else + sk->weapon &= ~(1 << W_DOUBLE_SS); } else if (strcmpi(type, "DWAxes") == 0) { - if (on) { - sk->weapon |= 1<<W_DOUBLE_AA; - } else { - sk->weapon &= ~(1<<W_DOUBLE_AA); - } + if (on) + sk->weapon |= (1 << W_DOUBLE_AA); + else + sk->weapon &= ~(1 << W_DOUBLE_AA); } else if (strcmpi(type, "DWDaggerSword") == 0) { - if (on) { - sk->weapon |= 1<<W_DOUBLE_DS; - } else { - sk->weapon &= ~(1<<W_DOUBLE_DS); - } + if (on) + sk->weapon |= (1 << W_DOUBLE_DS); + else + sk->weapon &= ~(1 << W_DOUBLE_DS); } else if (strcmpi(type, "DWDaggerAxe") == 0) { - if (on) { - sk->weapon |= 1<<W_DOUBLE_DA; - } else { - sk->weapon &= ~(1<<W_DOUBLE_DA); - } + if (on) + sk->weapon |= (1 << W_DOUBLE_DA); + else + sk->weapon &= ~(1 << W_DOUBLE_DA); } else if (strcmpi(type, "DWSwordAxe") == 0) { - if (on) { - sk->weapon |= 1<<W_DOUBLE_SA; - } else { - sk->weapon &= ~(1<<W_DOUBLE_SA); - } + if (on) + sk->weapon |= (1 << W_DOUBLE_SA); + else + sk->weapon &= ~(1 << W_DOUBLE_SA); } else if (strcmpi(type, "All") == 0) { sk->weapon = 0; } else { - ShowError("Item %d. Unknown weapon type %s\n", sk->nameid, type); - return 1; // invalid type + return 1; } return 0; } /** - * Validates "WeaponTypes" - * when parsing skill_db.conf - * @param conf struct, pointer to the skill configuration - * @param sk struct, struct, pointer to s_skill_db - * @return (void) - */ + * Validates a skill's required weapon types when reading the skill DB. + * + * @param conf The libconfig settings block which contains the skill's data. + * @param sk The s_skill_db struct where the required weapon types should be set it. + * + **/ static void skill_validate_weapontype(struct config_setting_t *conf, struct s_skill_db *sk) { - struct config_setting_t *tt = NULL; - const char *type = NULL; - + nullpo_retv(conf); nullpo_retv(sk); - if ((tt = libconfig->setting_get_member(conf, "WeaponTypes")) && config_setting_is_group(tt)) { - int j = 0; - struct config_setting_t *wpt = NULL; - while ((wpt = libconfig->setting_get_elem(tt, j++)) != NULL) { - if (skill->validate_weapontype_sub(config_setting_name(wpt), libconfig->setting_get_bool_real(wpt), sk)) - skilldb_invalid_error(config_setting_name(wpt), config_setting_name(tt), sk->nameid); + + sk->weapon = 0; + + struct config_setting_t *t = libconfig->setting_get_member(conf, "WeaponTypes"); + + if (t != NULL && config_setting_is_group(t)) { + struct config_setting_t *tt; + int i = 0; + + while ((tt = libconfig->setting_get_elem(t, i++)) != NULL) { + bool on = libconfig->setting_get_bool_real(tt); + + if (skill->validate_weapontype_sub(config_setting_name(tt), on, sk) != 0) + ShowWarning("%s: Invalid required weapon type %s specified for skill ID %d in %s! Skipping type...\n", + __func__, config_setting_name(tt), sk->nameid, conf->file); } - } else if (libconfig->setting_lookup_string(conf, "WeaponTypes", &type)) { - if (skill->validate_weapontype_sub(type, true, sk)) - skilldb_invalid_error(type, "WeaponTypes", sk->nameid); + + return; + } + + const char *weapon_type; + + if (libconfig->setting_lookup_string(conf, "WeaponTypes", &weapon_type) == CONFIG_TRUE) { + if (skill->validate_weapontype_sub(weapon_type, true, sk) != 0) + ShowWarning("%s: Invalid required weapon type %s specified for skill ID %d in %s! Defaulting to All...\n", + __func__, weapon_type, sk->nameid, conf->file); } } /** - * Validates the "AmmoTypes" flag - * when parsing skill_db.conf - * @param type string, ammo type flag - * @param on boolean, switch for the flag - * @param sk struct, pointer to s_skill_db - * @return void - */ + * Validates a single ammunition type when reading the skill DB. + * + * @param type The ammunition type to validate. + * @param on Whether the ammunition type is required for the skill. + * @param sk The s_skill_db struct where the ammunition type should be set it. + * @return 0 if the passed ammunition type is valid, otherwise 1. + * + **/ static int skill_validate_ammotype_sub(const char *type, bool on, struct s_skill_db *sk) { - nullpo_ret(sk); + nullpo_retr(1, type); + nullpo_retr(1, sk); + if (strcmpi(type, "A_ARROW") == 0) { - if (on) { - sk->ammo |= 1<<A_ARROW; - } else { - sk->ammo &= ~(1<<A_ARROW); - } + if (on) + sk->ammo |= (1 << A_ARROW); + else + sk->ammo &= ~(1 << A_ARROW); } else if (strcmpi(type, "A_DAGGER") == 0) { - if (on) { - sk->ammo |= 1<<A_DAGGER; - } else { - sk->ammo &= ~(1<<A_DAGGER); - } + if (on) + sk->ammo |= (1 << A_DAGGER); + else + sk->ammo &= ~(1 << A_DAGGER); } else if (strcmpi(type, "A_BULLET") == 0) { - if (on) { - sk->ammo |= 1<<A_BULLET; - } else { - sk->ammo &= ~(1<<A_BULLET); - } + if (on) + sk->ammo |= (1 << A_BULLET); + else + sk->ammo &= ~(1 << A_BULLET); } else if (strcmpi(type, "A_SHELL") == 0) { - if (on) { - sk->ammo |= 1<<A_SHELL; - } else { - sk->ammo &= ~(1<<A_SHELL); - } + if (on) + sk->ammo |= (1 << A_SHELL); + else + sk->ammo &= ~(1 << A_SHELL); } else if (strcmpi(type, "A_GRENADE") == 0) { - if (on) { - sk->ammo |= 1<<A_GRENADE; - } else { - sk->ammo &= ~(1<<A_GRENADE); - } + if (on) + sk->ammo |= (1 << A_GRENADE); + else + sk->ammo &= ~(1 << A_GRENADE); } else if (strcmpi(type, "A_SHURIKEN") == 0) { - if (on) { - sk->ammo |= 1<<A_SHURIKEN; - } else { - sk->ammo &= ~(1<<A_SHURIKEN); - } + if (on) + sk->ammo |= (1 << A_SHURIKEN); + else + sk->ammo &= ~(1 << A_SHURIKEN); } else if (strcmpi(type, "A_KUNAI") == 0) { - if (on) { - sk->ammo |= 1<<A_KUNAI; - } else { - sk->ammo &= ~(1<<A_KUNAI); - } + if (on) + sk->ammo |= (1 << A_KUNAI); + else + sk->ammo &= ~(1 << A_KUNAI); } else if (strcmpi(type, "A_CANNONBALL") == 0) { - if (on) { - sk->ammo |= 1<<A_CANNONBALL; - } else { - sk->ammo &= ~(1<<A_CANNONBALL); - } + if (on) + sk->ammo |= (1 << A_CANNONBALL); + else + sk->ammo &= ~(1 << A_CANNONBALL); } else if (strcmpi(type, "A_THROWWEAPON") == 0) { - if (on) { - sk->ammo |= 1<<A_THROWWEAPON; - } else { - sk->ammo &= ~(1<<A_THROWWEAPON); - } + if (on) + sk->ammo |= (1 << A_THROWWEAPON); + else + sk->ammo &= ~(1 << A_THROWWEAPON); } else if (strcmpi(type, "All") == 0) { - if (on) { + if (on) sk->ammo = 0xFFFFFFFF; - } else { + else sk->ammo = 0; - } } else { - return 1; // Invalid Entry + return 1; } return 0; } /** - * Validates the "AmmoTypes" flag - * when parsing skill_db.conf - * @param conf pointer to the skill configuration - * @param sk struct, pointer to s_skill_db - * @return void - */ + * Validates a skill's required ammunition types when reading the skill DB. + * + * @param conf The libconfig settings block which contains the skill's data. + * @param sk The s_skill_db struct where the required ammunition types should be set it. + * + **/ static void skill_validate_ammotype(struct config_setting_t *conf, struct s_skill_db *sk) { - struct config_setting_t *tt = NULL; - const char *tstr = NULL; + nullpo_retv(conf); + nullpo_retv(sk); + + sk->ammo = 0; + + struct config_setting_t *t = libconfig->setting_get_member(conf, "AmmoTypes"); + + if (t != NULL && config_setting_is_group(t)) { + struct config_setting_t *tt; + int i = 0; + + while ((tt = libconfig->setting_get_elem(t, i++)) != NULL) { + bool on = libconfig->setting_get_bool_real(tt); + + if (skill->validate_ammotype_sub(config_setting_name(tt), on, sk) != 0) + ShowWarning("%s: Invalid required ammunition type %s specified for skill ID %d in %s! Skipping type...\n", + __func__, config_setting_name(tt), sk->nameid, conf->file); + } + } + + const char *ammo_type; + + if (libconfig->setting_lookup_string(conf, "AmmoTypes", &ammo_type) == CONFIG_TRUE) { + if (skill->validate_ammotype_sub(ammo_type, true, sk) != 0) + ShowWarning("%s: Invalid required ammunition type %s specified for skill ID %d in %s! Defaulting to None...\n", + __func__, ammo_type, sk->nameid, conf->file); + } +} +/** + * Validates a skill's required ammunition amount when reading the skill DB. + * + * @param conf The libconfig settings block which contains the skill's data. + * @param sk The s_skill_db struct where the required ammunition amount should be set it. + * + **/ +static void skill_validate_ammo_amount(struct config_setting_t *conf, struct s_skill_db *sk) +{ + nullpo_retv(conf); nullpo_retv(sk); - if ((tt = libconfig->setting_get_member(conf, "AmmoTypes")) && config_setting_is_group(tt)) { - int j = 0; - struct config_setting_t *amt = { 0 }; - while ((amt = libconfig->setting_get_elem(tt, j++))) { - if (skill->validate_ammotype_sub(config_setting_name(amt), libconfig->setting_get_bool_real(amt), sk)) - skilldb_invalid_error(config_setting_name(amt), config_setting_name(tt), sk->nameid); + + skill->level_set_value(sk->ammo_qty, 0); + + struct config_setting_t *t = libconfig->setting_get_member(conf, "AmmoAmount"); + + if (t != NULL && config_setting_is_group(t)) { + for (int i = 0; i < MAX_SKILL_LEVEL; i++) { + char lv[6]; // Big enough to contain "Lv999" in case of custom MAX_SKILL_LEVEL. + safesnprintf(lv, sizeof(lv), "Lv%d", i + 1); + int ammo_amount; + + if (libconfig->setting_lookup_int(t, lv, &ammo_amount) == CONFIG_TRUE) { + if (ammo_amount >= 0 && ammo_amount <= MAX_AMOUNT) + sk->ammo_qty[i] = ammo_amount; + else + ShowWarning("%s: Invalid required ammunition amount %d specified in level %d for skill ID %d in %s! Minimum is 0, maximum is %d. Defaulting to 0...\n", + __func__, ammo_amount, i + 1, sk->nameid, conf->file, MAX_AMOUNT); + } } - } else if( libconfig->setting_lookup_string(conf, "AmmoTypes", &tstr)) { - if (skill->validate_ammotype_sub(tstr, true, sk)) - skilldb_invalid_error(tstr, "AmmoTypes", sk->nameid); + + return; + } + + int ammo_amount; + + if (libconfig->setting_lookup_int(conf, "AmmoAmount", &ammo_amount) == CONFIG_TRUE) { + if (ammo_amount >= 0 && ammo_amount <= MAX_AMOUNT) + skill->level_set_value(sk->ammo_qty, ammo_amount); + else + ShowWarning("%s: Invalid required ammunition amount %d specified for skill ID %d in %s! Minimum is 0, maximum is %d. Defaulting to 0...\n", + __func__, ammo_amount, sk->nameid, conf->file, MAX_AMOUNT); } } /** - * Validates the "State" flag - * when parsing skill_db.conf - * @param conf struct, pointer to the skill configuration - * @param sk struct, pointer to s_skill_db - * @return void - */ + * Validates a single required state when reading the skill DB. + * + * @param state The required state to validate. + * @return A number greater than or equal to 0 if the passed required state is valid, otherwise -1. + * + **/ +static int skill_validate_state_sub(const char *state) +{ + nullpo_retr(-1, state); + + int ret_val = ST_NONE; + + if (strcmpi(state, "Hiding") == 0) + ret_val = ST_HIDING; + else if (strcmpi(state, "Cloaking") == 0) + ret_val = ST_CLOAKING; + else if (strcmpi(state, "Hidden") == 0) + ret_val = ST_HIDDEN; + else if (strcmpi(state, "Riding") == 0) + ret_val = ST_RIDING; + else if (strcmpi(state, "Falcon") == 0) + ret_val = ST_FALCON; + else if (strcmpi(state, "Cart") == 0) + ret_val = ST_CART; + else if (strcmpi(state, "Shield") == 0) + ret_val = ST_SHIELD; + else if (strcmpi(state, "Sight") == 0) + ret_val = ST_SIGHT; + else if (strcmpi(state, "ExplosionSpirits") == 0) + ret_val = ST_EXPLOSIONSPIRITS; + else if (strcmpi(state, "CartBoost") == 0) + ret_val = ST_CARTBOOST; + else if (strcmpi(state, "NotOverWeight") == 0) + ret_val = ST_RECOV_WEIGHT_RATE; + else if (strcmpi(state, "Moveable") == 0) + ret_val = ST_MOVE_ENABLE; + else if (strcmpi(state, "InWater") == 0) + ret_val = ST_WATER; + else if (strcmpi(state, "Dragon") == 0) + ret_val = ST_RIDINGDRAGON; + else if (strcmpi(state, "Warg") == 0) + ret_val = ST_WUG; + else if (strcmpi(state, "RidingWarg") == 0) + ret_val = ST_RIDINGWUG; + else if (strcmpi(state, "MadoGear") == 0) + ret_val = ST_MADO; + else if (strcmpi(state, "ElementalSpirit") == 0) + ret_val = ST_ELEMENTALSPIRIT; + else if (strcmpi(state, "PoisonWeapon") == 0) + ret_val = ST_POISONINGWEAPON; + else if (strcmpi(state, "RollingCutter") == 0) + ret_val = ST_ROLLINGCUTTER; + else if (strcmpi(state, "MH_Fighting") == 0) + ret_val = ST_MH_FIGHTING; + else if (strcmpi(state, "MH_Grappling") == 0) + ret_val = ST_MH_GRAPPLING; + else if (strcmpi(state, "Peco") == 0) + ret_val = ST_PECO; + else if (strcmpi(state, "None") != 0) + ret_val = -1; + + return ret_val; +} + +/** + * Validates a skill's required states when reading the skill DB. + * + * @param conf The libconfig settings block which contains the skill's data. + * @param sk The s_skill_db struct where the required states should be set it. + * + **/ static void skill_validate_state(struct config_setting_t *conf, struct s_skill_db *sk) { - const char *type = NULL; + nullpo_retv(conf); + nullpo_retv(sk); + + skill->level_set_value(sk->state, ST_NONE); + + struct config_setting_t *t = libconfig->setting_get_member(conf, "State"); + + if (t != NULL && config_setting_is_group(t)) { + for (int i = 0; i < MAX_SKILL_LEVEL; i++) { + char lv[6]; // Big enough to contain "Lv999" in case of custom MAX_SKILL_LEVEL. + safesnprintf(lv, sizeof(lv), "Lv%d", i + 1); + const char *state; + + if (libconfig->setting_lookup_string(t, lv, &state) == CONFIG_TRUE) { + int sta = skill->validate_state_sub(state); + + if (sta > ST_NONE) + sk->state[i] = sta; + else if (sta == -1) + ShowWarning("%s: Invalid required state %s specified in level %d for skill ID %d in %s! Defaulting to None...\n", + __func__, state, i + 1, sk->nameid, conf->file); + } + } + + return; + } + + const char *state; + + if (libconfig->setting_lookup_string(conf, "State", &state) == CONFIG_TRUE) { + int sta = skill->validate_state_sub(state); + if (sta > ST_NONE) + skill->level_set_value(sk->state, sta); + else if (sta == -1) + ShowWarning("%s: Invalid required state %s specified for skill ID %d in %s! Defaulting to None...\n", + __func__, state, sk->nameid, conf->file); + } +} + +/** + * Validates a skill's Spirit Sphere cost when reading the skill DB. + * + * @param conf The libconfig settings block which contains the skill's data. + * @param sk The s_skill_db struct where the Spirit Sphere cost should be set it. + * + **/ +static void skill_validate_spirit_sphere_cost(struct config_setting_t *conf, struct s_skill_db *sk) +{ + nullpo_retv(conf); nullpo_retv(sk); - if (libconfig->setting_lookup_string(conf, "State", &type) && strcmpi(type,"None") != ST_NONE) { - if ( strcmpi(type,"Hiding") == 0 ) sk->state = ST_HIDING; - else if (strcmpi(type,"Cloaking") == 0 ) sk->state = ST_CLOAKING; - else if (strcmpi(type,"Hidden") == 0 ) sk->state = ST_HIDDEN; - else if (strcmpi(type,"Riding") == 0 ) sk->state = ST_RIDING; - else if (strcmpi(type,"Falcon") == 0 ) sk->state = ST_FALCON; - else if (strcmpi(type,"Cart") == 0 ) sk->state = ST_CART; - else if (strcmpi(type,"Shield") == 0 ) sk->state = ST_SHIELD; - else if (strcmpi(type,"Sight") == 0 ) sk->state = ST_SIGHT; - else if (strcmpi(type,"ExplosionSpirits") == 0 ) sk->state = ST_EXPLOSIONSPIRITS; - else if (strcmpi(type,"CartBoost") == 0 ) sk->state = ST_CARTBOOST; - else if (strcmpi(type,"NotOverWeight") == 0 ) sk->state = ST_RECOV_WEIGHT_RATE; - else if (strcmpi(type,"Moveable") == 0 ) sk->state = ST_MOVE_ENABLE; - else if (strcmpi(type,"InWater") == 0 ) sk->state = ST_WATER; - else if (strcmpi(type,"Dragon") == 0 ) sk->state = ST_RIDINGDRAGON; - else if (strcmpi(type,"Warg") == 0 ) sk->state = ST_WUG; - else if (strcmpi(type,"RidingWarg") == 0 ) sk->state = ST_RIDINGWUG; - else if (strcmpi(type,"MadoGear") == 0 ) sk->state = ST_MADO; - else if (strcmpi(type,"ElementalSpirit") == 0 ) sk->state = ST_ELEMENTALSPIRIT; - else if (strcmpi(type,"PoisonWeapon") == 0 ) sk->state = ST_POISONINGWEAPON; - else if (strcmpi(type,"RollingCutter") == 0 ) sk->state = ST_ROLLINGCUTTER; - else if (strcmpi(type,"MH_Fighting") == 0 ) sk->state = ST_MH_FIGHTING; - else if (strcmpi(type,"MH_Grappling") == 0 ) sk->state = ST_MH_GRAPPLING; - else if (strcmpi(type,"Peco") == 0 ) sk->state = ST_PECO; + + skill->level_set_value(sk->spiritball, 0); + + struct config_setting_t *t = libconfig->setting_get_member(conf, "SpiritSphereCost"); + + if (t != NULL && config_setting_is_group(t)) { + for (int i = 0; i < MAX_SKILL_LEVEL; i++) { + char lv[6]; // Big enough to contain "Lv999" in case of custom MAX_SKILL_LEVEL. + safesnprintf(lv, sizeof(lv), "Lv%d", i + 1); + int spirit_sphere_cost; + + if (libconfig->setting_lookup_int(t, lv, &spirit_sphere_cost) == CONFIG_TRUE) { + if (spirit_sphere_cost >= 0 && spirit_sphere_cost <= MAX_SPIRITBALL) + sk->spiritball[i] = spirit_sphere_cost; + else + ShowWarning("%s: Invalid Spirit Sphere cost %d specified in level %d for skill ID %d in %s! Minimum is 0, maximum is %d. Defaulting to 0...\n", + __func__, spirit_sphere_cost, i + 1, sk->nameid, conf->file, MAX_SPIRITBALL); + } + } + + return; + } + + int spirit_sphere_cost; + + if (libconfig->setting_lookup_int(conf, "SpiritSphereCost", &spirit_sphere_cost) == CONFIG_TRUE) { + if (spirit_sphere_cost >= 0 && spirit_sphere_cost <= MAX_SPIRITBALL) + skill->level_set_value(sk->spiritball, spirit_sphere_cost); else - skilldb_invalid_error(type, "State", sk->nameid); + ShowWarning("%s: Invalid Spirit Sphere cost %d specified for skill ID %d in %s! Minimum is 0, maximum is %d. Defaulting to 0...\n", + __func__, spirit_sphere_cost, sk->nameid, conf->file, MAX_SPIRITBALL); } } /** - * Validates the "Items" flag - * when parsing skill_db.conf - * @param conf struct, pointer to the skill configuration - * @param sk struct, pointer to s_skill_db - * @return void - */ + * Validates a skill's required items amounts when reading the skill DB. + * + * @param conf The libconfig settings block which contains the skill's data. + * @param sk The s_skill_db struct where the required items amounts should be set it. + * + **/ +static void skill_validate_item_requirements_sub_item_amount(struct config_setting_t *conf, struct s_skill_db *sk, int item_index) +{ + nullpo_retv(conf); + nullpo_retv(sk); + + for (int i = 0; i < MAX_SKILL_LEVEL; i++) + sk->req_items.item[item_index].amount[i] = 0; + + if (config_setting_is_group(conf)) { + for (int i = 0; i < MAX_SKILL_LEVEL; i++) { + char lv[6]; // Big enough to contain "Lv999" in case of custom MAX_SKILL_LEVEL. + safesnprintf(lv, sizeof(lv), "Lv%d", i + 1); + int amount; + + if (libconfig->setting_lookup_int(conf, lv, &amount) == CONFIG_TRUE) { + if (amount >= 0 && amount <= MAX_AMOUNT) + sk->req_items.item[item_index].amount[i] = amount; + else + ShowWarning("%s: Invalid required item amount %d specified in level %d for skill ID %d in %s! Minimum is 0, maximum is %d. Defaulting to 0...\n", + __func__, amount, i + 1, sk->nameid, conf->file, MAX_AMOUNT); + } else { + // Items is not required for this skill level. (Not even in inventory!) + sk->req_items.item[item_index].amount[i] = -1; + } + } + + return; + } + + int amount = libconfig->setting_get_int(conf); + + if (amount >= 0 && amount <= MAX_AMOUNT) { + for (int i = 0; i < MAX_SKILL_LEVEL; i++) + sk->req_items.item[item_index].amount[i] = amount; + } else { + ShowWarning("%s: Invalid required item amount %d specified for skill ID %d in %s! Minimum is 0, maximum is %d. Defaulting to 0...\n", + __func__, amount, sk->nameid, conf->file, MAX_AMOUNT); + } +} + +/** + * Validates a skill's required items when reading the skill DB. + * + * @param conf The libconfig settings block which contains the skill's data. + * @param sk The s_skill_db struct where the required items should be set it. + * + **/ +static void skill_validate_item_requirements_sub_items(struct config_setting_t *conf, struct s_skill_db *sk) +{ + nullpo_retv(conf); + nullpo_retv(sk); + + for (int i = 0; i < MAX_SKILL_ITEM_REQUIRE; i++) { + sk->req_items.item[i].id = 0; + + for (int j = 0; j < MAX_SKILL_LEVEL; j++) + sk->req_items.item[i].amount[j] = 0; + } + + int item_index = 0; + int count = libconfig->setting_length(conf); + + for (int i = 0; i < count; i++) { + struct config_setting_t *t = libconfig->setting_get_elem(conf, i); + + if (t != NULL && strcasecmp(config_setting_name(t), "Any") != 0) { + if (item_index >= MAX_SKILL_ITEM_REQUIRE) { + ShowWarning("%s: Too many required items specified for skill ID %d in %s! Skipping item %s...\n", + __func__, sk->nameid, conf->file, config_setting_name(t)); + continue; + } + + int item_id = skill->validate_requirements_item_name(config_setting_name(t)); + + if (item_id == 0) { + ShowWarning("%s: Invalid required item %s specified for skill ID %d in %s! Skipping item...\n", + __func__, config_setting_name(t), sk->nameid, conf->file); + continue; + } + + int j; + + ARR_FIND(0, MAX_SKILL_ITEM_REQUIRE, j, sk->req_items.item[j].id == item_id); + + if (j < MAX_SKILL_ITEM_REQUIRE) { + ShowWarning("%s: Duplicate required item %s specified for skill ID %d in %s! Skipping item...\n", + __func__, config_setting_name(t), sk->nameid, conf->file); + continue; + } + + sk->req_items.item[item_index].id = item_id; + skill->validate_item_requirements_sub_item_amount(t, sk, item_index); + item_index++; + } + } +} + +/** + * Validates a skill's required items any-flag when reading the skill DB. + * + * @param conf The libconfig settings block which contains the skill's data. + * @param sk The s_skill_db struct where the required items any-flag should be set it. + * + **/ +static void skill_validate_item_requirements_sub_any_flag(struct config_setting_t *conf, struct s_skill_db *sk) +{ + nullpo_retv(conf); + nullpo_retv(sk); + + for (int i = 0; i < MAX_SKILL_LEVEL; i++) + sk->req_items.any[i] = false; + + struct config_setting_t *t = libconfig->setting_get_member(conf, "Any"); + + if (t != NULL && config_setting_is_group(t)) { + for (int i = 0; i < MAX_SKILL_LEVEL; i++) { + char lv[6]; // Big enough to contain "Lv999" in case of custom MAX_SKILL_LEVEL. + safesnprintf(lv, sizeof(lv), "Lv%d", i + 1); + int any_flag; + + if (libconfig->setting_lookup_bool(t, lv, &any_flag) == CONFIG_TRUE) + sk->req_items.any[i] = (any_flag != 0); + } + + return; + } + + int any_flag; + + if (libconfig->setting_lookup_bool(conf, "Any", &any_flag) == CONFIG_TRUE && any_flag != 0) { + for (int i = 0; i < MAX_SKILL_LEVEL; i++) + sk->req_items.any[i] = true; + } +} + +/** + * Validates a skill's required items when reading the skill DB. + * + * @param conf The libconfig settings block which contains the skill's data. + * @param sk The s_skill_db struct where the required items should be set it. + * + **/ static void skill_validate_item_requirements(struct config_setting_t *conf, struct s_skill_db *sk) { - struct config_setting_t *tt = NULL; + nullpo_retv(conf); + nullpo_retv(sk); + + struct config_setting_t *t = libconfig->setting_get_member(conf, "Items"); + + if (t != NULL && config_setting_is_group(t)) { + skill->validate_item_requirements_sub_any_flag(t, sk); + skill->validate_item_requirements_sub_items(t, sk); + } +} + +/** + * Validates a skill's required equipment amounts when reading the skill DB. + * + * @param conf The libconfig settings block which contains the skill's data. + * @param sk The s_skill_db struct where the required equipment amounts should be set it. + * + **/ +static void skill_validate_equip_requirements_sub_item_amount(struct config_setting_t *conf, struct s_skill_db *sk, int item_index) +{ + nullpo_retv(conf); + nullpo_retv(sk); + + for (int i = 0; i < MAX_SKILL_LEVEL; i++) + sk->req_equip.item[item_index].amount[i] = 0; + + if (config_setting_is_group(conf)) { + for (int i = 0; i < MAX_SKILL_LEVEL; i++) { + char lv[6]; // Big enough to contain "Lv999" in case of custom MAX_SKILL_LEVEL. + safesnprintf(lv, sizeof(lv), "Lv%d", i + 1); + int amount; + + if (libconfig->setting_lookup_int(conf, lv, &amount) == CONFIG_TRUE) { + if (amount > 0) { + sk->req_equip.item[item_index].amount[i] = amount; + } else { + ShowWarning("%s: Invalid required equipment amount %d specified in level %d for skill ID %d in %s! Must be greater than 0. Defaulting to 1...\n", + __func__, amount, i + 1, sk->nameid, conf->file); + sk->req_equip.item[item_index].amount[i] = 1; + } + } + } + + return; + } + + int amount = libconfig->setting_get_int(conf); + + if (amount <= 0) { + ShowWarning("%s: Invalid required equipment amount %d specified for skill ID %d in %s! Must be greater than 0. Defaulting to 1...\n", + __func__, amount, sk->nameid, conf->file); + amount = 1; + } + + for (int i = 0; i < MAX_SKILL_LEVEL; i++) + sk->req_equip.item[item_index].amount[i] = amount; +} +/** + * Validates a skill's required equipment when reading the skill DB. + * + * @param conf The libconfig settings block which contains the skill's data. + * @param sk The s_skill_db struct where the required equipment should be set it. + * + **/ +static void skill_validate_equip_requirements_sub_items(struct config_setting_t *conf, struct s_skill_db *sk) +{ + nullpo_retv(conf); nullpo_retv(sk); - if ((tt=libconfig->setting_get_member(conf, "Items")) && config_setting_is_group(conf)) { - int itx=-1; - struct config_setting_t *it; - while((it=libconfig->setting_get_elem(tt, ++itx)) && itx < MAX_SKILL_ITEM_REQUIRE) { - const char *type = config_setting_name(it); + for (int i = 0; i < MAX_SKILL_ITEM_REQUIRE; i++) { + sk->req_equip.item[i].id = 0; + + for (int j = 0; j < MAX_SKILL_LEVEL; j++) + sk->req_equip.item[i].amount[j] = 0; + } + + int item_index = 0; + int count = libconfig->setting_length(conf); - if( type[0] == 'I' && type[1] == 'D' && itemdb->exists(atoi(type+2)) ) - sk->itemid[itx] = atoi(type+2); - else if(!script->get_constant(type, &sk->itemid[itx])) { - ShowWarning("skill_read_skilldb: Invalid required Item '%s' given for skill Id %d in '%s', skipping...\n",type, sk->nameid, DBPATH"skill_db.conf"); + for (int i = 0; i < count; i++) { + struct config_setting_t *t = libconfig->setting_get_elem(conf, i); + + if (t != NULL && strcasecmp(config_setting_name(t), "Any") != 0) { + if (item_index >= MAX_SKILL_ITEM_REQUIRE) { + ShowWarning("%s: Too many required equipment items specified for skill ID %d in %s! Skipping item %s...\n", + __func__, sk->nameid, conf->file, config_setting_name(t)); continue; } - if (config_setting_is_group(it)) { - // TODO: Per-level item requirements are not implemented yet! - // We just take the first level for the time being (old txt behavior) - sk->amount[itx] = libconfig->setting_get_int_elem(it, 0); - } else { - sk->amount[itx] = libconfig->setting_get_int(it); + int item_id = skill->validate_requirements_item_name(config_setting_name(t)); + struct item_data *it = itemdb->exists(item_id); + + if (item_id == 0 || it == NULL) { + ShowWarning("%s: Invalid required equipment item %s specified for skill ID %d in %s! Skipping item...\n", + __func__, config_setting_name(t), sk->nameid, conf->file); + continue; + } + + if (it->type != IT_WEAPON && it->type != IT_AMMO && it->type != IT_ARMOR && it->type != IT_CARD) { + ShowWarning("%s: Non-equipment item %s specified for skill ID %d in %s! Skipping item...\n", + __func__, config_setting_name(t), sk->nameid, conf->file); + continue; + } + + int j; + + ARR_FIND(0, MAX_SKILL_ITEM_REQUIRE, j, sk->req_equip.item[j].id == item_id); + + if (j < MAX_SKILL_ITEM_REQUIRE) { + ShowWarning("%s: Duplicate required equipment item %s specified for skill ID %d in %s! Skipping item...\n", + __func__, config_setting_name(t), sk->nameid, conf->file); + continue; } + + sk->req_equip.item[item_index].id = item_id; + skill->validate_equip_requirements_sub_item_amount(t, sk, item_index); + item_index++; } } } /** - * Validates the "Unit > Target" flag - * when parsing skill_db.conf - * @param conf struct, pointer to the skill configuration - * @param sk struct, pointer to s_skill_db - * @return void - */ -static void skill_validate_unit_target(struct config_setting_t *conf, struct s_skill_db *sk) + * Validates a skill's required equipment any-flag when reading the skill DB. + * + * @param conf The libconfig settings block which contains the skill's data. + * @param sk The s_skill_db struct where the required equipment any-flag should be set it. + * + **/ +static void skill_validate_equip_requirements_sub_any_flag(struct config_setting_t *conf, struct s_skill_db *sk) { - const char *type = NULL; + nullpo_retv(conf); + nullpo_retv(sk); + + for (int i = 0; i < MAX_SKILL_LEVEL; i++) + sk->req_equip.any[i] = false; + + struct config_setting_t *t = libconfig->setting_get_member(conf, "Any"); + + if (t != NULL && config_setting_is_group(t)) { + for (int i = 0; i < MAX_SKILL_LEVEL; i++) { + char lv[6]; // Big enough to contain "Lv999" in case of custom MAX_SKILL_LEVEL. + safesnprintf(lv, sizeof(lv), "Lv%d", i + 1); + int any_flag; + if (libconfig->setting_lookup_bool(t, lv, &any_flag) == CONFIG_TRUE) + sk->req_equip.any[i] = (any_flag != 0); + } + + return; + } + + int any_flag; + + if (libconfig->setting_lookup_bool(conf, "Any", &any_flag) == CONFIG_TRUE && any_flag != 0) { + for (int i = 0; i < MAX_SKILL_LEVEL; i++) + sk->req_equip.any[i] = true; + } +} + +/** + * Validates a skill's required equipment when reading the skill DB. + * + * @param conf The libconfig settings block which contains the skill's data. + * @param sk The s_skill_db struct where the required equipment should be set it. + * + **/ +static void skill_validate_equip_requirements(struct config_setting_t *conf, struct s_skill_db *sk) +{ + nullpo_retv(conf); nullpo_retv(sk); - if(libconfig->setting_lookup_string(conf, "Target", &type)) { - if(!strcmpi(type,"NotEnemy")) sk->unit_target = BCT_NOENEMY; - else if(!strcmpi(type,"NotParty")) sk->unit_target = BCT_NOPARTY; - else if (!strcmpi(type,"NotGuild")) sk->unit_target = BCT_NOGUILD; - else if(!strcmpi(type,"Friend")) sk->unit_target = BCT_NOENEMY; - else if(!strcmpi(type,"Party")) sk->unit_target = BCT_PARTY; - else if(!strcmpi(type,"Ally")) sk->unit_target = BCT_PARTY|BCT_GUILD; - else if(!strcmpi(type,"Guild")) sk->unit_target = BCT_GUILD; - else if(!strcmpi(type,"All")) sk->unit_target = BCT_ALL; - else if(!strcmpi(type,"Enemy")) sk->unit_target = BCT_ENEMY; - else if(!strcmpi(type,"Self")) sk->unit_target = BCT_SELF; - else if(!strcmpi(type,"SameGuild")) sk->unit_target = BCT_GUILD|BCT_SAMEGUILD; + struct config_setting_t *t = libconfig->setting_get_member(conf, "Equip"); + + if (t != NULL && config_setting_is_group(t)) { + skill->validate_equip_requirements_sub_any_flag(t, sk); + skill->validate_equip_requirements_sub_items(t, sk); } +} - if (sk->unit_flag & UF_DEFNOTENEMY && battle_config.defnotenemy) - sk->unit_target = BCT_NOENEMY; +/** + * Validates a required item's config setting name when reading the skill DB. + * + * @param name The config setting name to validate. + * @return The corresponding item ID if the passed config setting name is valid, otherwise 0. + * + **/ +static int skill_validate_requirements_item_name(const char *name) +{ + nullpo_ret(name); + + int item_id = 0; + + if (strlen(name) > 2 && name[0] == 'I' && name[1] == 'D') { + if ((item_id = atoi(name + 2)) == 0) + return 0; - //By default, target just characters. - sk->unit_target |= BL_CHAR; + struct item_data *it = itemdb->exists(item_id); - if (sk->unit_flag & UF_NOPC) - sk->unit_target &= ~BL_PC; - if (sk->unit_flag & UF_NOMOB) - sk->unit_target &= ~BL_MOB; - if (sk->unit_flag & UF_SKILL) - sk->unit_target |= BL_SKILL; + if (it == NULL) + return 0; + + return it->nameid; + } + + if (!script->get_constant(name, &item_id)) + return 0; + + return item_id; } /** - * Validates the "Unit > Flag" setting - * when parsing skill_db.conf - * @param type const char, name of the flag being parsed. - * @param on boolean, switch for flag setting - * @param sk struct, pointer to s_skill_db. - * @return (void) - */ + * Validates a skill's requirements when reading the skill DB. + * + * @param conf The libconfig settings block which contains the skill's data. + * @param sk The s_skill_db struct where the requirements should be set it. + * + **/ +static void skill_validate_requirements(struct config_setting_t *conf, struct s_skill_db *sk) +{ + nullpo_retv(conf); + nullpo_retv(sk); + + struct config_setting_t *t = libconfig->setting_get_member(conf, "Requirements"); + + if (t != NULL && config_setting_is_group(t)) { + skill->validate_hp_cost(t, sk); + skill->validate_sp_cost(t, sk); + skill->validate_hp_rate_cost(t, sk); + skill->validate_sp_rate_cost(t, sk); + skill->validate_max_hp_trigger(t, sk); + skill->validate_max_sp_trigger(t, sk); + skill->validate_zeny_cost(t, sk); + skill->validate_weapontype(t, sk); + skill->validate_ammotype(t, sk); + skill->validate_ammo_amount(t, sk); + skill->validate_state(t, sk); + skill->validate_spirit_sphere_cost(t, sk); + skill->validate_item_requirements(t, sk); + skill->validate_equip_requirements(t, sk); + } +} + +/** + * Validates a single unit ID when reading the skill DB. + * + * @param unit_id The unit ID to validate. + * @return A number greater than or equal to 0 if the passed unit ID is valid, otherwise -1. + * + **/ +static int skill_validate_unit_id_sub(int unit_id) +{ + if (unit_id == 0 || (unit_id >= UNT_SAFETYWALL && unit_id <= UNT_SV_ROOTTWIST)) + return unit_id; + + return -1; +} + +/** + * Validates a skill's unit IDs if specified as single value when reading the skill DB. + * + * @param conf The libconfig settings block which contains the skill's unit ID data. + * @param sk The s_skill_db struct where the unit IDs should be set it. + * @param index The array index to use. (-1 for whole array.) + * @param unit_id The unit ID to validate. + * + **/ +static void skill_validate_unit_id_value(struct config_setting_t *conf, struct s_skill_db *sk, int index, int unit_id) +{ + nullpo_retv(conf); + nullpo_retv(sk); + + if (skill->validate_unit_id_sub(unit_id) == -1) { + char level_string[14]; // Big enough to contain "in level 999 " in case of custom MAX_SKILL_LEVEL. + + if (index == -1) + *level_string = '\0'; + else + safesnprintf(level_string, sizeof(level_string), "in level %d ", index + 1); + + ShowWarning("%s: Invalid unit ID %d specified %sfor skill ID %d in %s! Must be greater than or equal to 0. Defaulting to 0...\n", + __func__, unit_id, level_string, sk->nameid, conf->file); + + return; + } + + if (index == -1) { + for (int i = 0; i < MAX_SKILL_LEVEL; i++) + sk->unit_id[i][0] = unit_id; + } else { + sk->unit_id[index][0] = unit_id; + } +} + +/** + * Validates a skill's unit IDs if specified as array when reading the skill DB. + * + * @param conf The libconfig settings block which contains the skill's unit ID data. + * @param sk The s_skill_db struct where the unit IDs should be set it. + * @param index The array index to use. (-1 for whole array.) + * + **/ +static void skill_validate_unit_id_array(struct config_setting_t *conf, struct s_skill_db *sk, int index) +{ + nullpo_retv(conf); + nullpo_retv(sk); + + char level_string[14]; // Big enough to contain "in level 999 " in case of custom MAX_SKILL_LEVEL. + + if (index == -1) + *level_string = '\0'; + else + safesnprintf(level_string, sizeof(level_string), "in level %d ", index + 1); + + if (libconfig->setting_length(conf) == 0) { + ShowWarning("%s: No unit ID(s) specified %sfor skill ID %d in %s! Defaulting to 0...\n", + __func__, level_string, sk->nameid, conf->file); + return; + } + + if (libconfig->setting_length(conf) > 2) + ShowWarning("%s: Specified more than two unit IDs %sfor skill ID %d in %s! Reading only the first two...\n", + __func__, level_string, sk->nameid, conf->file); + + int unit_id1 = libconfig->setting_get_int_elem(conf, 0); + + if (skill->validate_unit_id_sub(unit_id1) == -1) { + ShowWarning("%s: Invalid unit ID %d specified %sfor skill ID %d in %s! Must be greater than or equal to 0. Defaulting to 0...\n", + __func__, unit_id1, level_string, sk->nameid, conf->file); + unit_id1 = 0; + } + + int unit_id2 = 0; + + if (libconfig->setting_length(conf) > 1) { + unit_id2 = libconfig->setting_get_int_elem(conf, 1); + + if (skill->validate_unit_id_sub(unit_id2) == -1) { + ShowWarning("%s: Invalid unit ID %d specified %sfor skill ID %d in %s! Must be greater than or equal to 0. Defaulting to 0...\n", + __func__, unit_id2, level_string, sk->nameid, conf->file); + unit_id2 = 0; + } + } + + if (unit_id1 == 0 && unit_id2 == 0) + return; + + if (index == -1) { + for (int i = 0; i < MAX_SKILL_LEVEL; i++) { + sk->unit_id[i][0] = unit_id1; + sk->unit_id[i][1] = unit_id2; + } + } else { + sk->unit_id[index][0] = unit_id1; + sk->unit_id[index][1] = unit_id2; + } +} + +/** + * Validates a skill's unit IDs if specified as group when reading the skill DB. + * + * @param conf The libconfig settings block which contains the skill's unit ID data. + * @param sk The s_skill_db struct where the unit IDs should be set it. + * + **/ +static void skill_validate_unit_id_group(struct config_setting_t *conf, struct s_skill_db *sk) +{ + nullpo_retv(conf); + nullpo_retv(sk); + + for (int i = 0; i < MAX_SKILL_LEVEL; i++) { + struct config_setting_t *t; + char lv[6]; // Big enough to contain "Lv999" in case of custom MAX_SKILL_LEVEL. + safesnprintf(lv, sizeof(lv), "Lv%d", i + 1); + + if ((t = libconfig->setting_get_member(conf, lv)) != NULL && config_setting_is_array(t)) { + skill_validate_unit_id_array(t, sk, i); + continue; + } + + int unit_id; + + if (libconfig->setting_lookup_int(conf, lv, &unit_id) == CONFIG_TRUE) + skill_validate_unit_id_value(conf, sk, i, unit_id); + } +} + +/** + * Validates a skill's unit IDs when reading the skill DB. + * + * @param conf The libconfig settings block which contains the skill's data. + * @param sk The s_skill_db struct where the unit IDs should be set it. + * + **/ +static void skill_validate_unit_id(struct config_setting_t *conf, struct s_skill_db *sk) +{ + nullpo_retv(conf); + nullpo_retv(sk); + + for (int i = 0; i < MAX_SKILL_LEVEL; i++) { + sk->unit_id[i][0] = 0; + sk->unit_id[i][1] = 0; + } + + struct config_setting_t *t = libconfig->setting_get_member(conf, "Id"); + + if (t != NULL && config_setting_is_group(t)) { + skill_validate_unit_id_group(t, sk); + return; + } + + if (t != NULL && config_setting_is_array(t)) { + skill_validate_unit_id_array(t, sk, -1); + return; + } + + int unit_id; + + if (libconfig->setting_lookup_int(conf, "Id", &unit_id) == CONFIG_TRUE) + skill_validate_unit_id_value(conf, sk, -1, unit_id); +} + +/** + * Validates a skill's unit layout when reading the skill DB. + * + * @param conf The libconfig settings block which contains the skill's data. + * @param sk The s_skill_db struct where the unit layout should be set it. + * + **/ +static void skill_validate_unit_layout(struct config_setting_t *conf, struct s_skill_db *sk) +{ + nullpo_retv(conf); + nullpo_retv(sk); + + skill->level_set_value(sk->unit_layout_type, 0); + + struct config_setting_t *t = libconfig->setting_get_member(conf, "Layout"); + + if (t != NULL && config_setting_is_group(t)) { + for (int i = 0; i < MAX_SKILL_LEVEL; i++) { + char lv[6]; // Big enough to contain "Lv999" in case of custom MAX_SKILL_LEVEL. + safesnprintf(lv, sizeof(lv), "Lv%d", i + 1); + int unit_layout; + + if (libconfig->setting_lookup_int(t, lv, &unit_layout) == CONFIG_TRUE) { + if (unit_layout >= -1 && unit_layout <= MAX_SKILL_UNIT_LAYOUT) + sk->unit_layout_type[i] = unit_layout; + else + ShowWarning("%s: Invalid unit layout %d specified in level %d for skill ID %d in %s! Minimum is -1, maximum is %d. Defaulting to 0...\n", + __func__, unit_layout, i + 1, sk->nameid, conf->file, MAX_SKILL_UNIT_LAYOUT); + } + } + + return; + } + + int unit_layout; + + if (libconfig->setting_lookup_int(conf, "Layout", &unit_layout) == CONFIG_TRUE) { + if (unit_layout >= -1 && unit_layout <= MAX_SKILL_UNIT_LAYOUT) + skill->level_set_value(sk->unit_layout_type, unit_layout); + else + ShowWarning("%s: Invalid unit layout %d specified for skill ID %d in %s! Minimum is -1, maximum is %d. Defaulting to 0...\n", + __func__, unit_layout, sk->nameid, conf->file, MAX_SKILL_UNIT_LAYOUT); + } +} + +/** + * Validates a skill's unit range when reading the skill DB. + * + * @param conf The libconfig settings block which contains the skill's data. + * @param sk The s_skill_db struct where the unit range should be set it. + * + **/ +static void skill_validate_unit_range(struct config_setting_t *conf, struct s_skill_db *sk) +{ + nullpo_retv(conf); + nullpo_retv(sk); + + skill->level_set_value(sk->unit_range, 0); + + struct config_setting_t *t = libconfig->setting_get_member(conf, "Range"); + + if (t != NULL && config_setting_is_group(t)) { + for (int i = 0; i < MAX_SKILL_LEVEL; i++) { + char lv[6]; // Big enough to contain "Lv999" in case of custom MAX_SKILL_LEVEL. + safesnprintf(lv, sizeof(lv), "Lv%d", i + 1); + int unit_range; + + if (libconfig->setting_lookup_int(t, lv, &unit_range) == CONFIG_TRUE) { + if (unit_range >= -1 && unit_range <= UCHAR_MAX) + sk->unit_range[i] = unit_range; + else + ShowWarning("%s: Invalid unit range %d specified in level %d for skill ID %d in %s! Minimum is -1, maximum is %d. Defaulting to 0...\n", + __func__, unit_range, i + 1, sk->nameid, conf->file, UCHAR_MAX); + } + } + + return; + } + + int unit_range; + + if (libconfig->setting_lookup_int(conf, "Range", &unit_range) == CONFIG_TRUE) { + if (unit_range >= -1 && unit_range <= UCHAR_MAX) + skill->level_set_value(sk->unit_range, unit_range); + else + ShowWarning("%s: Invalid unit range %d specified for skill ID %d in %s! Minimum is -1, maximum is %d. Defaulting to 0...\n", + __func__, unit_range, sk->nameid, conf->file, UCHAR_MAX); + } +} + +/** + * Validates a skill's unit interval when reading the skill DB. + * + * @param conf The libconfig settings block which contains the skill's data. + * @param sk The s_skill_db struct where the unit interval should be set it. + * + **/ +static void skill_validate_unit_interval(struct config_setting_t *conf, struct s_skill_db *sk) +{ + nullpo_retv(conf); + nullpo_retv(sk); + + skill->level_set_value(sk->unit_interval, 0); + + struct config_setting_t *t = libconfig->setting_get_member(conf, "Interval"); + + if (t != NULL && config_setting_is_group(t)) { + for (int i = 0; i < MAX_SKILL_LEVEL; i++) { + char lv[6]; // Big enough to contain "Lv999" in case of custom MAX_SKILL_LEVEL. + safesnprintf(lv, sizeof(lv), "Lv%d", i + 1); + int unit_interval; + + if (libconfig->setting_lookup_int(t, lv, &unit_interval) == CONFIG_TRUE) { + if (unit_interval >= INFINITE_DURATION) + sk->unit_interval[i] = unit_interval; + else + ShowWarning("%s: Invalid unit interval %d specified in level %d for skill ID %d in %s! Must be greater than or equal to %d. Defaulting to 0...\n", + __func__, unit_interval, i + 1, sk->nameid, conf->file, INFINITE_DURATION); + } + } + + return; + } + + int unit_interval; + + if (libconfig->setting_lookup_int(conf, "Interval", &unit_interval) == CONFIG_TRUE) { + if (unit_interval >= INFINITE_DURATION) + skill->level_set_value(sk->unit_interval, unit_interval); + else + ShowWarning("%s: Invalid unit interval %d specified for skill ID %d in %s! Must be greater than or equal to %d. Defaulting to 0...\n", + __func__, unit_interval, sk->nameid, conf->file, INFINITE_DURATION); + } +} + +/** + * Validates a single unit flag when reading the skill DB. + * + * @param type The unit flag to validate. + * @param on Whether the unit flag is set for the skill. + * @param sk The s_skill_db struct where the unit flag should be set it. + * @return 0 if the passed unit flag is valid, otherwise 1. + * + **/ static int skill_validate_unit_flag_sub(const char *type, bool on, struct s_skill_db *sk) { - nullpo_ret(type); - nullpo_ret(sk); + nullpo_retr(1, type); + nullpo_retr(1, sk); + if (strcmpi(type, "UF_DEFNOTENEMY") == 0) { - if (on) { + if (on) sk->unit_flag |= UF_DEFNOTENEMY; - } else { + else sk->unit_flag &= ~UF_DEFNOTENEMY; - } } else if (strcmpi(type, "UF_NOREITERATION") == 0) { - if (on) { + if (on) sk->unit_flag |= UF_NOREITERATION; - } else { + else sk->unit_flag &= ~UF_NOREITERATION; - } } else if (strcmpi(type, "UF_NOFOOTSET") == 0) { - if (on) { + if (on) sk->unit_flag |= UF_NOFOOTSET; - } else { + else sk->unit_flag &= ~UF_NOFOOTSET; - } } else if (strcmpi(type, "UF_NOOVERLAP") == 0) { - if (on) { + if (on) sk->unit_flag |= UF_NOOVERLAP; - } else { + else sk->unit_flag &= ~UF_NOOVERLAP; - } } else if (strcmpi(type, "UF_PATHCHECK") == 0) { - if (on) { + if (on) sk->unit_flag |= UF_PATHCHECK; - } else { + else sk->unit_flag &= ~UF_PATHCHECK; - } } else if (strcmpi(type, "UF_NOPC") == 0) { - if (on) { + if (on) sk->unit_flag |= UF_NOPC; - } else { + else sk->unit_flag &= ~UF_NOPC; - } } else if (strcmpi(type, "UF_NOMOB") == 0) { - if (on) { + if (on) sk->unit_flag |= UF_NOMOB; - } else { + else sk->unit_flag &= ~UF_NOMOB; - } } else if (strcmpi(type, "UF_SKILL") == 0) { - if (on) { + if (on) sk->unit_flag |= UF_SKILL; - } else { + else sk->unit_flag &= ~UF_SKILL; - } } else if (strcmpi(type, "UF_DANCE") == 0) { - if (on) { + if (on) sk->unit_flag |= UF_DANCE; - } else { + else sk->unit_flag &= ~UF_DANCE; - } } else if (strcmpi(type, "UF_ENSEMBLE") == 0) { - if (on) { + if (on) sk->unit_flag |= UF_ENSEMBLE; - } else { + else sk->unit_flag &= ~UF_ENSEMBLE; - } } else if (strcmpi(type, "UF_SONG") == 0) { - if (on) { + if (on) sk->unit_flag |= UF_SONG; - } else { + else sk->unit_flag &= ~UF_SONG; - } } else if (strcmpi(type, "UF_DUALMODE") == 0) { - if (on) { + if (on) sk->unit_flag |= UF_DUALMODE; - } else { + else sk->unit_flag &= ~UF_DUALMODE; - } } else if (strcmpi(type, "UF_RANGEDSINGLEUNIT") == 0) { - if (on) { + if (on) sk->unit_flag |= UF_RANGEDSINGLEUNIT; - } else { + else sk->unit_flag &= ~UF_RANGEDSINGLEUNIT; - } } else { - return 1; // Invalid Type + return 1; } return 0; } /** - * Validate "Unit > Flag" setting - * when parsing skill_db.conf - * @param conf struct, pointer to the skill configuration - * @param sk struct, struct, pointer to s_skill_db - * @return (void) - */ + * Validates a skill's unit flags when reading the skill DB. + * + * @param conf The libconfig settings block which contains the skill's data. + * @param sk The s_skill_db struct where the unit flags should be set it. + * + **/ static void skill_validate_unit_flag(struct config_setting_t *conf, struct s_skill_db *sk) { - struct config_setting_t *t = NULL; + nullpo_retv(conf); + nullpo_retv(sk); + + sk->unit_flag = 0; + + struct config_setting_t *t = libconfig->setting_get_member(conf, "Flag"); + + if (t != NULL && config_setting_is_group(t)) { + struct config_setting_t *tt; + int i = 0; + + while ((tt = libconfig->setting_get_elem(t, i++)) != NULL) { + bool on = libconfig->setting_get_bool_real(tt); + + if (skill->validate_unit_flag_sub(config_setting_name(tt), on, sk)) + ShowWarning("%s: Invalid unit flag %s specified for skill ID %d in %s! Skipping flag...\n", + __func__, config_setting_name(tt), sk->nameid, conf->file); + } + } +} +/** + * Validates a single unit target when reading the skill DB. + * + * @param target The unit target to validate. + * @return A number greater than or equal to 0 if the passed unit target is valid, otherwise -1. + * + **/ +static int skill_validate_unit_target_sub(const char *target) +{ + nullpo_retr(-1, target); + + int ret_val = BCT_NOONE; + + if (strcmpi(target, "NotEnemy") == 0) + ret_val = BCT_NOENEMY; + else if (strcmpi(target, "NotParty") == 0) + ret_val = BCT_NOPARTY; + else if (strcmpi(target, "NotGuild") == 0) + ret_val = BCT_NOGUILD; + else if (strcmpi(target, "Friend") == 0) + ret_val = BCT_NOENEMY; + else if (strcmpi(target, "Party") == 0) + ret_val = BCT_PARTY; + else if (strcmpi(target, "Ally") == 0) + ret_val = BCT_PARTY|BCT_GUILD; + else if (strcmpi(target, "Guild") == 0) + ret_val = BCT_GUILD; + else if (strcmpi(target, "All") == 0) + ret_val = BCT_ALL; + else if (strcmpi(target, "Enemy") == 0) + ret_val = BCT_ENEMY; + else if (strcmpi(target, "Self") == 0) + ret_val = BCT_SELF; + else if (strcmpi(target, "SameGuild") == 0) + ret_val = BCT_SAMEGUILD; + else if (strcmpi(target, "GuildAlly") == 0) + ret_val = BCT_GUILDALLY; + else if (strcmpi(target, "Neutral") == 0) + ret_val = BCT_NEUTRAL; + else if (strcmpi(target, "None") != 0) + ret_val = -1; + + return ret_val; +} + +/** + * Validates a skill's unit targets when reading the skill DB. + * + * @param conf The libconfig settings block which contains the skill's data. + * @param sk The s_skill_db struct where the unit targets should be set it. + * + **/ +static void skill_validate_unit_target(struct config_setting_t *conf, struct s_skill_db *sk) +{ + nullpo_retv(conf); nullpo_retv(sk); - if ((t=libconfig->setting_get_member(conf, "Flag")) && config_setting_is_group(t)) { - int j=0; - struct config_setting_t *tt = NULL; - while ((tt = libconfig->setting_get_elem(t, j++))) { - const char *name = config_setting_name(tt); - if (skill->validate_unit_flag_sub(name, libconfig->setting_get_bool_real(tt), sk)) - skilldb_invalid_error(name, config_setting_name(t), sk->nameid); + skill->level_set_value(sk->unit_target, BCT_NOONE); + + struct config_setting_t *t = libconfig->setting_get_member(conf, "Target"); + + if (t != NULL && config_setting_is_group(t)) { + for (int i = 0; i < MAX_SKILL_LEVEL; i++) { + char lv[6]; // Big enough to contain "Lv999" in case of custom MAX_SKILL_LEVEL. + safesnprintf(lv, sizeof(lv), "Lv%d", i + 1); + const char *unit_target; + + if (libconfig->setting_lookup_string(t, lv, &unit_target) == CONFIG_TRUE) { + int target = skill->validate_unit_target_sub(unit_target); + + if (target > BCT_NOONE) + sk->unit_target[i] = target; + else if (target == -1) + ShowWarning("%s: Invalid unit target %s specified in level %d for skill ID %d in %s! Defaulting to None...\n", + __func__, unit_target, i + 1, sk->nameid, conf->file); + } } + } else { + const char *unit_target; + + if (libconfig->setting_lookup_string(conf, "Target", &unit_target) == CONFIG_TRUE) { + int target = skill->validate_unit_target_sub(unit_target); + + if (target > BCT_NOONE) + skill->level_set_value(sk->unit_target, target); + else if (target == -1) + ShowWarning("%s: Invalid unit target %s specified for skill ID %d in %s! Defaulting to None...\n", + __func__, unit_target, sk->nameid, conf->file); + } + } + + for (int i = 0; i < MAX_SKILL_LEVEL; i++) { + if ((sk->unit_flag & UF_DEFNOTENEMY) != 0 && battle_config.defnotenemy != 0) + sk->unit_target[i] = BCT_NOENEMY; + + // By default target just characters. + sk->unit_target[i] |= BL_CHAR; + + if ((sk->unit_flag & UF_NOPC) != 0) + sk->unit_target[i] &= ~BL_PC; + + if ((sk->unit_flag & UF_NOMOB) != 0) + sk->unit_target[i] &= ~BL_MOB; + + if ((sk->unit_flag & UF_SKILL) != 0) + sk->unit_target[i] |= BL_SKILL; + } +} + +/** + * Validates a skill's unit data when reading the skill DB. + * + * @param conf The libconfig settings block which contains the skill's data. + * @param sk The s_skill_db struct where the unit data should be set it. + * + **/ +static void skill_validate_unit(struct config_setting_t *conf, struct s_skill_db *sk) +{ + nullpo_retv(conf); + nullpo_retv(sk); + + struct config_setting_t *t = libconfig->setting_get_member(conf, "Unit"); + + if (t != NULL && config_setting_is_group(t)) { + skill->validate_unit_id(t, sk); + skill->validate_unit_layout(t, sk); + skill->validate_unit_range(t, sk); + skill->validate_unit_interval(t, sk); + skill->validate_unit_flag(t, sk); + skill->validate_unit_target(t, sk); } } + /** * Validate additional field settings via plugins * when parsing skill_db.conf @@ -21106,293 +23662,100 @@ static void skill_validate_additional_fields(struct config_setting_t *conf, stru } /** - * Validates a skill entry and adds it to the database. [ Smokexyz/Hercules ] - * @param sk contains skill data to be checked. - * @param *source filepath constant. - * @return boolean true on success. - */ -static bool skill_validate_skilldb(struct s_skill_db *sk, const char *source) + * Reads a skill DB file from relative path. + * + * @param filename The skill DB's file name including the DB path. + * @return True on success, otherwise false. + * + **/ +static bool skill_read_skilldb(const char *filename) { - int idx; + nullpo_retr(false, filename); - nullpo_retr(false, sk); - idx = skill->get_index(sk->nameid); - if (idx == 0) { - ShowWarning("skill_validate_skilldb: Invalid skill Id %d provided in '%s'! ... skipping\n", sk->nameid, source); - ShowInfo("It is possible that the skill Id is 0 or unavailable (interferes with guild/homun/mercenary skill mapping).\n"); - return false; - } else if (sk->max <= 0) { - ShowError("skill_validate_skilldb: Invalid Max Level %d specified for skill Id %d in '%s', skipping...\n", sk->max, sk->nameid, source); - return false; - } + char filepath[256]; - /* Direct assignment of temporary skill storage to skill db */ - skill->dbs->db[idx] = *sk; - /* Put skill name in name2id DB */ - strdb_iput(skill->name2id_db, skill->dbs->db[idx].name, skill->dbs->db[idx].nameid); - /* Set Name to Id script constants */ - script->set_constant2(skill->dbs->db[idx].name, (int)skill->dbs->db[idx].nameid, false, false); + libconfig->format_db_path(filename, filepath, sizeof(filepath)); - return true; -} + if (!exists(filepath)) { + ShowError("%s: Can't find file %s! Abort reading skills...\n", __func__, filepath); + return false; + } -/** - * Reads skill_db.conf from relative filepath and processes [ Smokexyz/Hercules ] - * entries into the skill database. - * @param filename contains the file path and name. - * @return boolean true on success - */ -static bool skill_read_skilldb(const char *filename) -{ struct config_t skilldb; - struct config_setting_t *sk, *conf; - char filepath[256]; - int count=0, index=0; - bool duplicate[MAX_SKILL_DB] = {0}; - - nullpo_retr(false, filename); - - libconfig->format_db_path(filename, filepath, sizeof(filepath)); - if (!libconfig->load_file(&skilldb, filepath)) { + if (libconfig->load_file(&skilldb, filepath) == 0) return false; // Libconfig error report. - } - // Possible Syntax error. - if ((sk=libconfig->setting_get_member(skilldb.root, "skill_db")) == NULL) { - ShowError("skill_read_skilldb: Skill DB could not be loaded, please check '%s'.\n", filepath); + struct config_setting_t *sk = libconfig->setting_get_member(skilldb.root, "skill_db"); + + if (sk == NULL) { + ShowError("%s: Skill DB could not be loaded! Please check %s.\n", __func__, filepath); libconfig->destroy(&skilldb); return false; } - while ((conf = libconfig->setting_get_elem(sk,index++))) { - int idx=0, skill_id=0, temp=0; - struct config_setting_t *t = NULL, *tt = NULL; - struct s_skill_db tmp_db = { 0 }; + struct config_setting_t *conf; + int index = 0; + int count = 0; - /* Skill ID */ - if (!libconfig->setting_lookup_int(conf, "Id", &skill_id)) { - ShowError("skill_read_skilldb: Skill Id not specified for entry %d in '%s', skipping...\n", index, filepath ); - continue; - } - - tmp_db.nameid = skill_id; + while ((conf = libconfig->setting_get_elem(sk, index++)) != NULL) { + struct s_skill_db tmp_db = {0}; - if((idx = skill->get_index(skill_id)) == 0) { - ShowError("skill_read_skilldb: Skill Id %d is out of range, or within a reserved range (for guild, homunculus, mercenary or elemental skills). skipping...\n", idx); + /** Validate mandatory fields. **/ + skill->validate_id(conf, &tmp_db, index); + if (tmp_db.nameid == 0) continue; - } - if (duplicate[idx]) { - ShowWarning("skill_read_skilldb: Duplicate Skill Id %d in entry %d in '%s', skipping...\n", skill_id, index, filepath); + skill->validate_name(conf, &tmp_db); + if (*tmp_db.name == '\0') continue; - } - /* Skill Name Constant */ - if (!libconfig->setting_lookup_mutable_string(conf, "Name", tmp_db.name, sizeof(tmp_db.name))) { - ShowError("skill_read_skilldb: Name not specified for skill Id %d in '%s', skipping...\n", skill_id, filepath); + skill->validate_max_level(conf, &tmp_db); + if (tmp_db.max == 0) continue; - } - - /* Skill Description */ - libconfig->setting_lookup_mutable_string(conf, "Description", tmp_db.desc, sizeof(tmp_db.desc)); - /* Max Level */ - if (!libconfig->setting_lookup_int(conf, "MaxLevel", &temp)) { - ShowError("skill_read_skilldb: MaxLevel not specified for skill Id %d in '%s', skipping...\n", skill_id, filepath); - continue; - } else { - tmp_db.max = temp; - } - - /* Range */ - if ((t=libconfig->setting_get_member(conf, "Range"))) - skill->config_set_level(t, tmp_db.range); - - /* Hit Type */ + /** Validate optional fields. **/ + skill->validate_description(conf, &tmp_db); + skill->validate_range(conf, &tmp_db); skill->validate_hittype(conf, &tmp_db); - - /* Skill Type */ skill->validate_skilltype(conf, &tmp_db); - - /* Skill Info */ skill->validate_skillinfo(conf, &tmp_db); - - /* Skill Attack Type */ skill->validate_attacktype(conf, &tmp_db); - - /* Skill Element */ skill->validate_element(conf, &tmp_db); - - /* Damage Type */ skill->validate_damagetype(conf, &tmp_db); - - /* Splash Range */ - if ((t = libconfig->setting_get_member(conf, "SplashRange"))) - skill->config_set_level(t, tmp_db.splash); - - /* Number of Hits */ - if ((t = libconfig->setting_get_member(conf, "NumberOfHits")) && config_setting_is_group(t)) - skill->config_set_level(t, tmp_db.num); - else if ((libconfig->setting_lookup_int(conf, "NumberOfHits", &temp))) - skill->level_set_value(tmp_db.num, temp); - else - skill->level_set_value(tmp_db.num, 1); // Default 1 - - /* Interrupt Cast */ - if (libconfig->setting_lookup_bool(conf, "InterruptCast", &tmp_db.castcancel) == CONFIG_FALSE) - tmp_db.castcancel = 0; - - /* Cast Defense Rate */ - libconfig->setting_lookup_int(conf, "CastDefRate", &tmp_db.cast_def_rate); - - /* Skill Instances */ - if ((t = libconfig->setting_get_member(conf, "SkillInstances"))) - skill->config_set_level(t, tmp_db.maxcount); - - /* Knock-Back Tiles */ - if ((t = libconfig->setting_get_member(conf, "KnockBackTiles"))) - skill->config_set_level(t, tmp_db.blewcount); - /** - * Skill Cast / Delay data handling - */ - /* Cast Time */ - if ((t=libconfig->setting_get_member(conf, "CastTime"))) - skill->config_set_level(t, tmp_db.cast); - - /* After Cast Act Delay */ - if ((t=libconfig->setting_get_member(conf, "AfterCastActDelay"))) - skill->config_set_level(t, tmp_db.delay); - - /* After Cast Walk Delay */ - if ((t=libconfig->setting_get_member(conf, "AfterCastWalkDelay"))) - skill->config_set_level(t, tmp_db.walkdelay); - - /* Skill Data/Duration */ - if ((t=libconfig->setting_get_member(conf, "SkillData1"))) - skill->config_set_level(t, tmp_db.upkeep_time); - - /* Skill Data/Duration 2 */ - if ((t=libconfig->setting_get_member(conf, "SkillData2"))) - skill->config_set_level(t, tmp_db.upkeep_time2); - - /* Skill Cool Down */ - if ((t=libconfig->setting_get_member(conf, "CoolDown"))) - skill->config_set_level(t, tmp_db.cooldown); - -#ifdef RENEWAL_CAST - /* Fixed Casting Time */ - if ((t=libconfig->setting_get_member(conf, "FixedCastTime"))) - skill->config_set_level(t, tmp_db.fixed_cast); -#endif - /* Cast Time Options */ + skill->validate_splash_range(conf, &tmp_db); + skill->validate_number_of_hits(conf, &tmp_db); + skill->validate_interrupt_cast(conf, &tmp_db); + skill->validate_cast_def_rate(conf, &tmp_db); + skill->validate_number_of_instances(conf, &tmp_db); + skill->validate_knock_back_tiles(conf, &tmp_db); + skill->validate_cast_time(conf, &tmp_db); + skill->validate_act_delay(conf, &tmp_db); + skill->validate_walk_delay(conf, &tmp_db); + skill->validate_skill_data1(conf, &tmp_db); + skill->validate_skill_data2(conf, &tmp_db); + skill->validate_cooldown(conf, &tmp_db); + skill->validate_fixed_cast_time(conf, &tmp_db); skill->validate_castnodex(conf, &tmp_db, false); skill->validate_castnodex(conf, &tmp_db, true); + skill->validate_requirements(conf, &tmp_db); + skill->validate_unit(conf, &tmp_db); - /** - * Skill Requirements data handling - */ - if ((t=libconfig->setting_get_member(conf, "Requirements")) && config_setting_is_group(t)) { - - /* HP Costs */ - if ((tt = libconfig->setting_get_member(t, "HPCost"))) - skill->config_set_level(tt, tmp_db.hp); - - /* Max HP Trigger */ - if ((tt = libconfig->setting_get_member(t, "MaxHPTrigger"))) - skill->config_set_level(tt, tmp_db.mhp); - - /* SP Cost */ - if ((tt = libconfig->setting_get_member(t, "SPCost"))) - skill->config_set_level(tt, tmp_db.sp); - - /* HP Rate */ - if ((tt = libconfig->setting_get_member(t, "HPRateCost"))) - skill->config_set_level(tt, tmp_db.hp_rate); - - /* SP Rate */ - if ((tt = libconfig->setting_get_member(t, "SPRateCost"))) - skill->config_set_level(tt, tmp_db.sp_rate); - - /* Zeny Cost */ - if ((tt = libconfig->setting_get_member(t, "ZenyCost"))) - skill->config_set_level(tt, tmp_db.zeny); - - /* Spirit Sphere Cost */ - if ((tt = libconfig->setting_get_member(t, "SpiritSphereCost"))) - skill->config_set_level(tt, tmp_db.spiritball); - - /* Weapon Types */ - skill->validate_weapontype(t, &tmp_db); - - /* Ammunition Types */ - skill->validate_ammotype(t, &tmp_db); - - /* Ammunition Amount */ - if ((tt = libconfig->setting_get_member(t, "AmmoAmount"))) - skill->config_set_level(tt, tmp_db.ammo_qty); - - /* State */ - skill->validate_state(t, &tmp_db); - - /* Spirit Sphere Cost */ - if ((tt = libconfig->setting_get_member(t, "SpiritSphereCost"))) - skill->config_set_level(tt, tmp_db.spiritball); - - /* Item Requirements and Amounts */ - skill->validate_item_requirements(t, &tmp_db); - } - - /** - * Skill Unit data handling - */ - if ((t=libconfig->setting_get_member(conf, "Unit")) && config_setting_is_group(t)) { - - /* Unit IDs [1,2] */ - if ((tt=libconfig->setting_get_member(t, "Id")) && config_setting_is_array(tt)) { - tmp_db.unit_id[0] = libconfig->setting_get_int_elem(tt, 0); - tmp_db.unit_id[1] = libconfig->setting_get_int_elem(tt, 1); - } else { - libconfig->setting_lookup_int(t, "Id", &tmp_db.unit_id[0]); - } - - /* Layout */ - if((tt=libconfig->setting_get_member(t, "Layout"))) - skill->config_set_level(tt, tmp_db.unit_layout_type); - - /* Range */ - if((tt=libconfig->setting_get_member(t, "Range"))) - skill->config_set_level(tt, tmp_db.unit_range); - - /* Interval */ - if(libconfig->setting_lookup_int(t, "Interval", &temp)) - tmp_db.unit_interval = temp; - - /* Flag */ - skill->validate_unit_flag(t, &tmp_db); - - /* Target */ - skill->validate_unit_target(t, &tmp_db); - } - - /* Additional Fields for Plugins */ + /** Validate additional fields for plugins. **/ skill->validate_additional_fields(conf, &tmp_db); - // Validate the skill entry, add it to the duplicate array and increment count on success. - if ((duplicate[idx] = skill->validate_skilldb(&tmp_db, filepath))) - count++; + /** Add the skill. **/ + skill->dbs->db[skill->get_index(tmp_db.nameid)] = tmp_db; + strdb_iput(skill->name2id_db, tmp_db.name, tmp_db.nameid); + script->set_constant2(tmp_db.name, tmp_db.nameid, false, false); + count++; } libconfig->destroy(&skilldb); - ShowStatus("Done reading '"CL_WHITE"%d"CL_RESET"' entries in '"CL_WHITE"%s"CL_RESET"'.\n", count, filepath); - return true; } -#undef skilldb_duplicate_warning -#undef skilldb_invalid_error - /*=============================== * DB reading. * produce_db.txt @@ -21571,6 +23934,7 @@ void skill_defaults(void) skill->get_splash = skill_get_splash; skill->get_hp = skill_get_hp; skill->get_mhp = skill_get_mhp; + skill->get_msp = skill_get_msp; skill->get_sp = skill_get_sp; skill->get_hp_rate = skill_get_hp_rate; skill->get_sp_rate = skill_get_sp_rate; @@ -21578,6 +23942,10 @@ void skill_defaults(void) skill->get_spiritball = skill_get_spiritball; skill->get_itemid = skill_get_itemid; skill->get_itemqty = skill_get_itemqty; + skill->get_item_any_flag = skill_get_item_any_flag; + skill->get_equip_id = skill_get_equip_id; + skill->get_equip_amount = skill_get_equip_amount; + skill->get_equip_any_flag = skill_get_equip_any_flag; skill->get_zeny = skill_get_zeny; skill->get_num = skill_get_num; skill->get_cast = skill_get_cast; @@ -21636,9 +24004,12 @@ void skill_defaults(void) skill->cast_fix_sc = skill_castfix_sc; skill->vf_cast_fix = skill_vfcastfix; skill->delay_fix = skill_delay_fix; - skill->is_item_skill = skill_is_item_skill; + skill->check_condition_required_equip = skill_check_condition_required_equip; skill->check_condition_castbegin = skill_check_condition_castbegin; + skill->check_condition_required_items = skill_check_condition_required_items; + skill->items_required = skill_items_required; skill->check_condition_castend = skill_check_condition_castend; + skill->get_any_item_index = skill_get_any_item_index; skill->consume_requirement = skill_consume_requirement; skill->get_requirement = skill_get_requirement; skill->check_pc_partner = skill_check_pc_partner; @@ -21662,6 +24033,7 @@ void skill_defaults(void) skill->not_ok_hom = skillnotok_hom; skill->not_ok_hom_unknown = skillnotok_hom_unknown; skill->not_ok_mercenary = skillnotok_mercenary; + skill->validate_autocast_data = skill_validate_autocast_data; skill->chastle_mob_changetarget = skill_chastle_mob_changetarget; skill->can_produce_mix = skill_can_produce_mix; skill->produce_mix = skill_produce_mix; @@ -21722,24 +24094,68 @@ void skill_defaults(void) skill->init_unit_layout = skill_init_unit_layout; skill->init_unit_layout_unknown = skill_init_unit_layout_unknown; /* Skill DB Libconfig */ + skill->validate_id = skill_validate_id; + skill->name_contains_invalid_character = skill_name_contains_invalid_character; + skill->validate_name = skill_validate_name; + skill->validate_max_level = skill_validate_max_level; + skill->validate_description = skill_validate_description; + skill->validate_range = skill_validate_range; skill->validate_hittype = skill_validate_hittype; - skill->validate_attacktype = skill_validate_attacktype; - skill->validate_element = skill_validate_element; skill->validate_skilltype = skill_validate_skilltype; skill->validate_skillinfo = skill_validate_skillinfo; + skill->validate_attacktype = skill_validate_attacktype; + skill->validate_element = skill_validate_element; skill->validate_damagetype = skill_validate_damagetype; + skill->validate_splash_range = skill_validate_splash_range; + skill->validate_number_of_hits = skill_validate_number_of_hits; + skill->validate_interrupt_cast = skill_validate_interrupt_cast; + skill->validate_cast_def_rate = skill_validate_cast_def_rate; + skill->validate_number_of_instances = skill_validate_number_of_instances; + skill->validate_knock_back_tiles = skill_validate_knock_back_tiles; + skill->validate_cast_time = skill_validate_cast_time; + skill->validate_act_delay = skill_validate_act_delay; + skill->validate_walk_delay = skill_validate_walk_delay; + skill->validate_skill_data1 = skill_validate_skill_data1; + skill->validate_skill_data2 = skill_validate_skill_data2; + skill->validate_cooldown = skill_validate_cooldown; + skill->validate_fixed_cast_time = skill_validate_fixed_cast_time; skill->validate_castnodex = skill_validate_castnodex; + skill->validate_hp_cost = skill_validate_hp_cost; + skill->validate_sp_cost = skill_validate_sp_cost; + skill->validate_hp_rate_cost = skill_validate_hp_rate_cost; + skill->validate_sp_rate_cost = skill_validate_sp_rate_cost; + skill->validate_max_hp_trigger = skill_validate_max_hp_trigger; + skill->validate_max_sp_trigger = skill_validate_max_sp_trigger; + skill->validate_zeny_cost = skill_validate_zeny_cost; + skill->validate_weapontype_sub = skill_validate_weapontype_sub; skill->validate_weapontype = skill_validate_weapontype; + skill->validate_ammotype_sub = skill_validate_ammotype_sub; skill->validate_ammotype = skill_validate_ammotype; + skill->validate_ammo_amount = skill_validate_ammo_amount; + skill->validate_state_sub = skill_validate_state_sub; skill->validate_state = skill_validate_state; + skill->validate_spirit_sphere_cost = skill_validate_spirit_sphere_cost; + skill->validate_item_requirements_sub_item_amount = skill_validate_item_requirements_sub_item_amount; + skill->validate_item_requirements_sub_items = skill_validate_item_requirements_sub_items; + skill->validate_item_requirements_sub_any_flag = skill_validate_item_requirements_sub_any_flag; skill->validate_item_requirements = skill_validate_item_requirements; - skill->validate_unit_target = skill_validate_unit_target; + skill->validate_equip_requirements_sub_item_amount = skill_validate_equip_requirements_sub_item_amount; + skill->validate_equip_requirements_sub_items = skill_validate_equip_requirements_sub_items; + skill->validate_equip_requirements_sub_any_flag = skill_validate_equip_requirements_sub_any_flag; + skill->validate_equip_requirements = skill_validate_equip_requirements; + skill->validate_requirements_item_name = skill_validate_requirements_item_name; + skill->validate_requirements = skill_validate_requirements; + skill->validate_unit_id_sub = skill_validate_unit_id_sub; + skill->validate_unit_id = skill_validate_unit_id; + skill->validate_unit_layout = skill_validate_unit_layout; + skill->validate_unit_range = skill_validate_unit_range; + skill->validate_unit_interval = skill_validate_unit_interval; + skill->validate_unit_flag_sub = skill_validate_unit_flag_sub; skill->validate_unit_flag = skill_validate_unit_flag; + skill->validate_unit_target_sub = skill_validate_unit_target_sub; + skill->validate_unit_target = skill_validate_unit_target; + skill->validate_unit = skill_validate_unit; skill->validate_additional_fields = skill_validate_additional_fields; - skill->validate_skilldb = skill_validate_skilldb; - skill->validate_weapontype_sub = skill_validate_weapontype_sub; - skill->validate_ammotype_sub = skill_validate_ammotype_sub; - skill->validate_unit_flag_sub = skill_validate_unit_flag_sub; skill->read_skilldb = skill_read_skilldb; skill->config_set_level = skill_config_set_level; skill->level_set_value = skill_level_set_value; @@ -21802,4 +24218,5 @@ void skill_defaults(void) skill->splash_target = skill_splash_target; skill->check_npc_chaospanic = skill_check_npc_chaospanic; skill->count_wos = skill_count_wos; + skill->get_linked_song_dance_id = skill_get_linked_song_dance_id; } diff --git a/src/map/skill.h b/src/map/skill.h index c65547181..b9178321d 100644 --- a/src/map/skill.h +++ b/src/map/skill.h @@ -50,7 +50,7 @@ struct status_change_entry; #define MAX_ARROW_RESOURCE 5 #define MAX_SKILL_ABRA_DB 210 #define MAX_SKILL_IMPROVISE_DB 30 -#define MAX_SKILL_LEVEL 10 +#define MAX_SKILL_LEVEL 20 #define MAX_SKILL_UNIT_LAYOUT 45 #define MAX_SQUARE_LAYOUT 5 // 11*11 Placement of a maximum unit #define MAX_SKILL_UNIT_COUNT ((MAX_SQUARE_LAYOUT*2+1)*(MAX_SQUARE_LAYOUT*2+1)) @@ -60,6 +60,10 @@ struct status_change_entry; #define MAX_SKILLUNITGROUPTICKSET 25 #define MAX_SKILL_NAME_LENGTH 32 +#ifndef MAX_SKILL_DESC_LENGTH + #define MAX_SKILL_DESC_LENGTH 50 +#endif + // Custom Skill Ranges is used in skill_get_index, to allocate indexes based on ID and gaps between 2 SkillID #ifndef CUSTOM_SKILL_RANGES #define CUSTOM_SKILL_RANGES @@ -1724,41 +1728,76 @@ enum { UNT_MAX = 0x190 }; +/** Constants to identify the auto-cast type. **/ +enum autocast_type { + AUTOCAST_NONE = 0, + AUTOCAST_TEMP, // Used when type is only required during the execution of the calling instance. (For example bAutoSpell* skills.) + AUTOCAST_ABRA, // Used for Abracadabra (Hocus pocus). + AUTOCAST_IMPROVISE, // Used for Improvised Song. + AUTOCAST_ITEM, // Used for itemskill() script command. +}; + /** * Structures **/ +/** A container holding all required items. **/ +struct skill_required_item_data { + struct { + int id; + int amount[MAX_SKILL_LEVEL]; + } item[MAX_SKILL_ITEM_REQUIRE]; + bool any[MAX_SKILL_LEVEL]; +}; + struct skill_condition { int weapon,ammo,ammo_qty,hp,sp,zeny,spiritball,mhp,state; + int msp; int itemid[MAX_SKILL_ITEM_REQUIRE],amount[MAX_SKILL_ITEM_REQUIRE]; + int equip_id[MAX_SKILL_ITEM_REQUIRE]; + int equip_amount[MAX_SKILL_ITEM_REQUIRE]; }; // Database skills struct s_skill_db { int nameid; - char name[MAX_SKILL_NAME_LENGTH]; - char desc[40]; - int range[MAX_SKILL_LEVEL],hit,inf,element[MAX_SKILL_LEVEL],nk,splash[MAX_SKILL_LEVEL],max; + char name[MAX_SKILL_NAME_LENGTH + 1]; + char desc[MAX_SKILL_DESC_LENGTH + 1]; + int range[MAX_SKILL_LEVEL]; + int hit[MAX_SKILL_LEVEL]; + int inf; + int element[MAX_SKILL_LEVEL]; + int nk; + int splash[MAX_SKILL_LEVEL]; + int max; int num[MAX_SKILL_LEVEL]; int cast[MAX_SKILL_LEVEL],walkdelay[MAX_SKILL_LEVEL],delay[MAX_SKILL_LEVEL]; #ifdef RENEWAL_CAST int fixed_cast[MAX_SKILL_LEVEL]; #endif int upkeep_time[MAX_SKILL_LEVEL],upkeep_time2[MAX_SKILL_LEVEL],cooldown[MAX_SKILL_LEVEL]; - int castcancel,cast_def_rate; - int inf2,maxcount[MAX_SKILL_LEVEL],skill_type; + int castcancel[MAX_SKILL_LEVEL]; + int cast_def_rate[MAX_SKILL_LEVEL]; + int inf2; + int maxcount[MAX_SKILL_LEVEL]; + int skill_type[MAX_SKILL_LEVEL]; int blewcount[MAX_SKILL_LEVEL]; int hp[MAX_SKILL_LEVEL],sp[MAX_SKILL_LEVEL],mhp[MAX_SKILL_LEVEL],hp_rate[MAX_SKILL_LEVEL],sp_rate[MAX_SKILL_LEVEL],zeny[MAX_SKILL_LEVEL]; - int weapon,ammo,ammo_qty[MAX_SKILL_LEVEL],state,spiritball[MAX_SKILL_LEVEL]; - int itemid[MAX_SKILL_ITEM_REQUIRE],amount[MAX_SKILL_ITEM_REQUIRE]; + int msp[MAX_SKILL_LEVEL]; + int weapon; + int ammo; + int ammo_qty[MAX_SKILL_LEVEL]; + int state[MAX_SKILL_LEVEL]; + int spiritball[MAX_SKILL_LEVEL]; int castnodex[MAX_SKILL_LEVEL], delaynodex[MAX_SKILL_LEVEL]; - int nocast; - int unit_id[2]; + int unit_id[MAX_SKILL_LEVEL][2]; int unit_layout_type[MAX_SKILL_LEVEL]; int unit_range[MAX_SKILL_LEVEL]; - int unit_interval; - int unit_target; + int unit_interval[MAX_SKILL_LEVEL]; + int unit_target[MAX_SKILL_LEVEL]; int unit_flag; + struct skill_required_item_data req_items; + struct skill_required_item_data req_equip; }; struct s_skill_unit_layout { @@ -1944,8 +1983,8 @@ struct skill_interface { int unit_group_newid; /* accesssors */ int (*get_index) (int skill_id); - int (*get_type) (int skill_id); - int (*get_hit) (int skill_id); + int (*get_type) (int skill_id, int skill_lv); + int (*get_hit) (int skill_id, int skill_lv); int (*get_inf) (int skill_id); int (*get_ele) (int skill_id, int skill_lv); int (*get_nk) (int skill_id); @@ -1955,13 +1994,18 @@ struct skill_interface { int (*get_splash) (int skill_id, int skill_lv); int (*get_hp) (int skill_id, int skill_lv); int (*get_mhp) (int skill_id, int skill_lv); + int (*get_msp) (int skill_id, int skill_lv); int (*get_sp) (int skill_id, int skill_lv); int (*get_hp_rate) (int skill_id, int skill_lv); int (*get_sp_rate) (int skill_id, int skill_lv); - int (*get_state) (int skill_id); + int (*get_state) (int skill_id, int skill_lv); int (*get_spiritball) (int skill_id, int skill_lv); int (*get_itemid) (int skill_id, int item_idx); - int (*get_itemqty) (int skill_id, int item_idx); + int (*get_itemqty) (int skill_id, int item_idx, int skill_lv); + bool (*get_item_any_flag) (int skill_id, int skill_lv); + int (*get_equip_id) (int skill_id, int item_idx); + int (*get_equip_amount) (int skill_id, int item_idx, int skill_lv); + bool (*get_equip_any_flag) (int skill_id, int skill_lv); int (*get_zeny) (int skill_id, int skill_lv); int (*get_num) (int skill_id, int skill_lv); int (*get_cast) (int skill_id, int skill_lv); @@ -1971,19 +2015,19 @@ struct skill_interface { int (*get_time2) (int skill_id, int skill_lv); int (*get_castnodex) (int skill_id, int skill_lv); int (*get_delaynodex) (int skill_id, int skill_lv); - int (*get_castdef) (int skill_id); + int (*get_castdef) (int skill_id, int skill_lv); int (*get_weapontype) (int skill_id); int (*get_ammotype) (int skill_id); int (*get_ammo_qty) (int skill_id, int skill_lv); - int (*get_unit_id) (int skill_id, int flag); + int (*get_unit_id) (int skill_id, int skill_lv, int flag); int (*get_inf2) (int skill_id); - int (*get_castcancel) (int skill_id); + int (*get_castcancel) (int skill_id, int skill_lv); int (*get_maxcount) (int skill_id, int skill_lv); int (*get_blewcount) (int skill_id, int skill_lv); int (*get_unit_flag) (int skill_id); - int (*get_unit_target) (int skill_id); - int (*get_unit_interval) (int skill_id); - int (*get_unit_bl_target) (int skill_id); + int (*get_unit_target) (int skill_id, int skill_lv); + int (*get_unit_interval) (int skill_id, int skill_lv); + int (*get_unit_bl_target) (int skill_id, int skill_lv); int (*get_unit_layout_type) (int skill_id, int skill_lv); int (*get_unit_range) (int skill_id, int skill_lv); int (*get_cooldown) (int skill_id, int skill_lv); @@ -1995,7 +2039,7 @@ struct skill_interface { int (*get_casttype2) (int index); bool (*is_combo) (int skill_id); int (*name2id) (const char* name); - int (*isammotype) (struct map_session_data *sd, int skill_id); + int (*isammotype) (struct map_session_data *sd, int skill_id, int skill_lv); int (*castend_id) (int tid, int64 tick, int id, intptr_t data); int (*castend_pos) (int tid, int64 tick, int id, intptr_t data); int (*castend_map) ( struct map_session_data *sd,uint16 skill_id, const char *mapname); @@ -2011,7 +2055,7 @@ struct skill_interface { struct skill_unit *(*initunit) (struct skill_unit_group *group, int idx, int x, int y, int val1, int val2); int (*delunit) (struct skill_unit *su); struct skill_unit_group *(*init_unitgroup) (struct block_list* src, int count, uint16 skill_id, uint16 skill_lv, int unit_id, int limit, int interval); - int (*del_unitgroup) (struct skill_unit_group *group, const char* file, int line, const char* func); + int (*del_unitgroup) (struct skill_unit_group *group); int (*clear_unitgroup) (struct block_list *src); int (*clear_group) (struct block_list *bl, int flag); int (*unit_onplace) (struct skill_unit *src, struct block_list *bl, int64 tick); @@ -2020,9 +2064,12 @@ struct skill_interface { int (*cast_fix_sc) ( struct block_list *bl, int time); int (*vf_cast_fix) ( struct block_list *bl, double time, uint16 skill_id, uint16 skill_lv); int (*delay_fix) ( struct block_list *bl, uint16 skill_id, uint16 skill_lv); - bool (*is_item_skill) (struct map_session_data *sd, int skill_id, int skill_lv); + int (*check_condition_required_equip) (struct map_session_data *sd, int skill_id, int skill_lv); int (*check_condition_castbegin) (struct map_session_data *sd, uint16 skill_id, uint16 skill_lv); + int (*check_condition_required_items) (struct map_session_data *sd, int skill_id, int skill_lv); + bool (*items_required) (struct map_session_data *sd, int skill_id, int skill_lv); int (*check_condition_castend) (struct map_session_data *sd, uint16 skill_id, uint16 skill_lv); + int (*get_any_item_index) (struct map_session_data *sd, int skill_id, int skill_lv); int (*consume_requirement) (struct map_session_data *sd, uint16 skill_id, uint16 skill_lv, short type); struct skill_condition (*get_requirement) (struct map_session_data *sd, uint16 skill_id, uint16 skill_lv); int (*check_pc_partner) (struct map_session_data *sd, uint16 skill_id, uint16* skill_lv, int range, int cast_flag); @@ -2046,6 +2093,7 @@ struct skill_interface { int (*not_ok_hom) (uint16 skill_id, struct homun_data *hd); int (*not_ok_hom_unknown) (uint16 skill_id, struct homun_data *hd); int (*not_ok_mercenary) (uint16 skill_id, struct mercenary_data *md); + void (*validate_autocast_data) (struct map_session_data *sd, int skill_id, int skill_lv); int (*chastle_mob_changetarget) (struct block_list *bl,va_list ap); int (*can_produce_mix) ( struct map_session_data *sd, int nameid, int trigger, int qty); int (*produce_mix) ( struct map_session_data *sd, uint16 skill_id, int nameid, int slot1, int slot2, int slot3, int qty ); @@ -2065,7 +2113,7 @@ struct skill_interface { int (*check_unit_range_sub) (struct block_list *bl, va_list ap); int (*check_unit_range2) (struct block_list *bl, int x, int y, uint16 skill_id, uint16 skill_lv); int (*check_unit_range2_sub) (struct block_list *bl, va_list ap); - void (*toggle_magicpower) (struct block_list *bl, uint16 skill_id); + void (*toggle_magicpower) (struct block_list *bl, uint16 skill_id, int skill_lv); int (*magic_reflect) (struct block_list* src, struct block_list* bl, int type); int (*onskillusage) (struct map_session_data *sd, struct block_list *bl, uint16 skill_id, int64 tick); int (*cell_overlap) (struct block_list *bl, va_list ap); @@ -2106,24 +2154,68 @@ struct skill_interface { int (*unit_timer_sub) (union DBKey key, struct DBData *data, va_list ap); void (*init_unit_layout) (void); void (*init_unit_layout_unknown) (int skill_idx, int pos); + void (*validate_id) (struct config_setting_t *conf, struct s_skill_db *sk, int conf_index); + bool (*name_contains_invalid_character) (const char *name); + void (*validate_name) (struct config_setting_t *conf, struct s_skill_db *sk); + void (*validate_max_level) (struct config_setting_t *conf, struct s_skill_db *sk); + void (*validate_description) (struct config_setting_t *conf, struct s_skill_db *sk); + void (*validate_range) (struct config_setting_t *conf, struct s_skill_db *sk); void (*validate_hittype) (struct config_setting_t *conf, struct s_skill_db *sk); void (*validate_skilltype) (struct config_setting_t *conf, struct s_skill_db *sk); + void (*validate_skillinfo) (struct config_setting_t *conf, struct s_skill_db *sk); void (*validate_attacktype) (struct config_setting_t *conf, struct s_skill_db *sk); void (*validate_element) (struct config_setting_t *conf, struct s_skill_db *sk); - void (*validate_skillinfo) (struct config_setting_t *conf, struct s_skill_db *sk); void (*validate_damagetype) (struct config_setting_t *conf, struct s_skill_db *sk); + void (*validate_splash_range) (struct config_setting_t *conf, struct s_skill_db *sk); + void (*validate_number_of_hits) (struct config_setting_t *conf, struct s_skill_db *sk); + void (*validate_interrupt_cast) (struct config_setting_t *conf, struct s_skill_db *sk); + void (*validate_cast_def_rate) (struct config_setting_t *conf, struct s_skill_db *sk); + void (*validate_number_of_instances) (struct config_setting_t *conf, struct s_skill_db *sk); + void (*validate_knock_back_tiles) (struct config_setting_t *conf, struct s_skill_db *sk); + void (*validate_cast_time) (struct config_setting_t *conf, struct s_skill_db *sk); + void (*validate_act_delay) (struct config_setting_t *conf, struct s_skill_db *sk); + void (*validate_walk_delay) (struct config_setting_t *conf, struct s_skill_db *sk); + void (*validate_skill_data1) (struct config_setting_t *conf, struct s_skill_db *sk); + void (*validate_skill_data2) (struct config_setting_t *conf, struct s_skill_db *sk); + void (*validate_cooldown) (struct config_setting_t *conf, struct s_skill_db *sk); + void (*validate_fixed_cast_time) (struct config_setting_t *conf, struct s_skill_db *sk); void (*validate_castnodex) (struct config_setting_t *conf, struct s_skill_db *sk, bool delay); + void (*validate_hp_cost) (struct config_setting_t *conf, struct s_skill_db *sk); + void (*validate_sp_cost) (struct config_setting_t *conf, struct s_skill_db *sk); + void (*validate_hp_rate_cost) (struct config_setting_t *conf, struct s_skill_db *sk); + void (*validate_sp_rate_cost) (struct config_setting_t *conf, struct s_skill_db *sk); + void (*validate_max_hp_trigger) (struct config_setting_t *conf, struct s_skill_db *sk); + void (*validate_max_sp_trigger) (struct config_setting_t *conf, struct s_skill_db *sk); + void (*validate_zeny_cost) (struct config_setting_t *conf, struct s_skill_db *sk); + int (*validate_weapontype_sub) (const char *type, bool on, struct s_skill_db *sk); void (*validate_weapontype) (struct config_setting_t *conf, struct s_skill_db *sk); + int (*validate_ammotype_sub) (const char *type, bool on, struct s_skill_db *sk); void (*validate_ammotype) (struct config_setting_t *conf, struct s_skill_db *sk); + void (*validate_ammo_amount) (struct config_setting_t *conf, struct s_skill_db *sk); + int (*validate_state_sub) (const char *state); void (*validate_state) (struct config_setting_t *conf, struct s_skill_db *sk); + void (*validate_spirit_sphere_cost) (struct config_setting_t *conf, struct s_skill_db *sk); + void (*validate_item_requirements_sub_item_amount) (struct config_setting_t *conf, struct s_skill_db *sk, int item_index); + void (*validate_item_requirements_sub_items) (struct config_setting_t *conf, struct s_skill_db *sk); + void (*validate_item_requirements_sub_any_flag) (struct config_setting_t *conf, struct s_skill_db *sk); void (*validate_item_requirements) (struct config_setting_t *conf, struct s_skill_db *sk); - void (*validate_unit_target) (struct config_setting_t *conf, struct s_skill_db *sk); + void (*validate_equip_requirements_sub_item_amount) (struct config_setting_t *conf, struct s_skill_db *sk, int item_index); + void (*validate_equip_requirements_sub_items) (struct config_setting_t *conf, struct s_skill_db *sk); + void (*validate_equip_requirements_sub_any_flag) (struct config_setting_t *conf, struct s_skill_db *sk); + void (*validate_equip_requirements) (struct config_setting_t *conf, struct s_skill_db *sk); + int (*validate_requirements_item_name) (const char *name); + void (*validate_requirements) (struct config_setting_t *conf, struct s_skill_db *sk); + int (*validate_unit_id_sub) (int unit_id); + void (*validate_unit_id) (struct config_setting_t *conf, struct s_skill_db *sk); + void (*validate_unit_layout) (struct config_setting_t *conf, struct s_skill_db *sk); + void (*validate_unit_range) (struct config_setting_t *conf, struct s_skill_db *sk); + void (*validate_unit_interval) (struct config_setting_t *conf, struct s_skill_db *sk); + int (*validate_unit_flag_sub) (const char *type, bool on, struct s_skill_db *sk); void (*validate_unit_flag) (struct config_setting_t *conf, struct s_skill_db *sk); + int (*validate_unit_target_sub) (const char *target); + void (*validate_unit_target) (struct config_setting_t *conf, struct s_skill_db *sk); + void (*validate_unit) (struct config_setting_t *conf, struct s_skill_db *sk); void (*validate_additional_fields) (struct config_setting_t *conf, struct s_skill_db *sk); - bool (*validate_skilldb) (struct s_skill_db *skt, const char *source); - int (*validate_weapontype_sub) (const char *type, bool on, struct s_skill_db *sk); - int (*validate_ammotype_sub) (const char *type, bool on, struct s_skill_db *sk); - int (*validate_unit_flag_sub) (const char *type, bool on, struct s_skill_db *sk); bool (*read_skilldb) (const char *filename); void (*config_set_level) (struct config_setting_t *conf, int *arr); void (*level_set_value) (int *arr, int value); @@ -2191,6 +2283,7 @@ struct skill_interface { int (*splash_target) (struct block_list* bl); int (*check_npc_chaospanic) (struct block_list *bl, va_list args); int (*count_wos) (struct block_list *bl, va_list ap); + int (*get_linked_song_dance_id) (int skill_id); }; #ifdef HERCULES_CORE diff --git a/src/map/status.c b/src/map/status.c index 4d798b606..589acff5c 100644 --- a/src/map/status.c +++ b/src/map/status.c @@ -696,6 +696,7 @@ static void initChangeTables(void) status->set_sc( WM_BEYOND_OF_WARCRY , SC_BEYOND_OF_WARCRY , SCB_STR|SCB_CRI|SCB_MAXHP ); status->set_sc( WM_UNLIMITED_HUMMING_VOICE, SC_UNLIMITED_HUMMING_VOICE, SCB_NONE ); status->set_sc( WM_FRIGG_SONG , SC_FRIGG_SONG , SCB_MAXHP ); + status->set_sc( WM_SEVERE_RAINSTORM , SC_NO_SWITCH_EQUIP , SCB_NONE ); /** * Sorcerer @@ -865,6 +866,10 @@ static void initChangeTables(void) status->dbs->ChangeFlagTable[SC_WEDDING] |= SCB_SPEED; status->dbs->ChangeFlagTable[SC_ARMORPROPERTY] |= SCB_ALL; status->dbs->ChangeFlagTable[SC_ARMOR_RESIST] |= SCB_ALL; + status->dbs->ChangeFlagTable[SC_RESIST_PROPERTY_WATER] |= SCB_ALL; + status->dbs->ChangeFlagTable[SC_RESIST_PROPERTY_GROUND] |= SCB_ALL; + status->dbs->ChangeFlagTable[SC_RESIST_PROPERTY_FIRE] |= SCB_ALL; + status->dbs->ChangeFlagTable[SC_RESIST_PROPERTY_WIND] |= SCB_ALL; status->dbs->ChangeFlagTable[SC_ATKER_BLOOD] |= SCB_ALL; status->dbs->ChangeFlagTable[SC_WALKSPEED] |= SCB_SPEED; status->dbs->ChangeFlagTable[SC_TARGET_BLOOD] |= SCB_ALL; @@ -884,6 +889,13 @@ static void initChangeTables(void) status->dbs->ChangeFlagTable[SC_PHI_DEMON] |= SCB_ALL; status->dbs->ChangeFlagTable[SC_MAGIC_CANDY] |= SCB_MATK | SCB_ALL; status->dbs->ChangeFlagTable[SC_MYSTICPOWDER] |= SCB_FLEE | SCB_LUK; + status->dbs->ChangeFlagTable[SC_POPECOOKIE] |= SCB_BASE | SCB_BATK | SCB_MATK; + status->dbs->ChangeFlagTable[SC_VITALIZE_POTION] |= SCB_BATK | SCB_MATK; + status->dbs->ChangeFlagTable[SC_SKF_MATK] |= SCB_MATK; + status->dbs->ChangeFlagTable[SC_SKF_ATK] |= SCB_BATK; + status->dbs->ChangeFlagTable[SC_SKF_ASPD] |= SCB_ASPD; + status->dbs->ChangeFlagTable[SC_SKF_CAST] |= SCB_NONE; + status->dbs->ChangeFlagTable[SC_ALMIGHTY] |= SCB_BATK | SCB_MATK; // Cash Items status->dbs->ChangeFlagTable[SC_FOOD_STR_CASH] |= SCB_STR; @@ -1189,7 +1201,7 @@ static int status_damage(struct block_list *src, struct block_list *target, int6 if ((sce=sc->data[SC_GRAVITATION]) && sce->val3 == BCT_SELF) { struct skill_unit_group* sg = skill->id2group(sce->val4); if (sg) { - skill->del_unitgroup(sg, ALC_MARK); + skill->del_unitgroup(sg); sce->val4 = 0; status_change_end(target, SC_GRAVITATION, INVALID_TIMER); } @@ -1584,7 +1596,7 @@ static int status_check_skilluse(struct block_list *src, struct block_list *targ } if( skill_id ) { - if (src != NULL && (sd == NULL || sd->skillitem == 0)) { + if (src != NULL && (sd == NULL || sd->auto_cast_current.type != AUTOCAST_ITEM)) { // Items that cast skills using 'itemskill' will not be handled by map_zone_db. int i; @@ -1628,7 +1640,7 @@ static int status_check_skilluse(struct block_list *src, struct block_list *targ if (src != NULL && map->getcell(src->m, src, src->x, src->y, CELL_CHKLANDPROTECTOR) && !(st->mode&MD_BOSS) - && (src->type != BL_PC || sd->skillitem != skill_id)) + && (src->type != BL_PC || sd->auto_cast_current.type != AUTOCAST_ITEM)) return 0; break; default: @@ -1707,7 +1719,7 @@ static int status_check_skilluse(struct block_list *src, struct block_list *targ return 0; //Can't amp out of Wand of Hermode :/ [Skotlex] } - if (skill_id != 0 /* Do not block item-casted skills.*/ && (src->type != BL_PC || sd->skillitem != skill_id)) { + if (skill_id != 0 /* Do not block item-casted skills.*/ && (src->type != BL_PC || sd->auto_cast_current.type != AUTOCAST_ITEM)) { //Skills blocked through status changes... if (!flag && ( //Blocked only from using the skill (stuff like autospell may still go through sc->data[SC_SILENCE] || @@ -1725,6 +1737,7 @@ static int status_check_skilluse(struct block_list *src, struct block_list *targ (sc->data[SC_MARIONETTE] && skill_id == CG_MARIONETTE) || //Cannot use marionette if you are being buffed by another (sc->data[SC_STASIS] && skill->block_check(src, SC_STASIS, skill_id)) || (sc->data[SC_KG_KAGEHUMI] && skill->block_check(src, SC_KG_KAGEHUMI, skill_id)) + || sc->data[SC_ALL_RIDING] != NULL // New mounts can't attack nor use skills in the client; this check makes it cheat-safe. [Ind] )) return 0; @@ -1773,8 +1786,6 @@ static int status_check_skilluse(struct block_list *src, struct block_list *targ } else if ( skill_id != ST_CHASEWALK ) return 0; } - if( sc->data[SC_ALL_RIDING] ) - return 0;//New mounts can't attack nor use skills in the client; this check makes it cheat-safe [Ind] } if (target == NULL || target == src) //No further checking needed. @@ -2572,12 +2583,16 @@ static int status_calc_pc_(struct map_session_data *sd, enum e_status_calc_opt o status->calc_pc_additional(sd, opt); - if( sd->pd ) { // Pet Bonus + if (sd->pd != NULL) { // Pet bonus. struct pet_data *pd = sd->pd; - if( pd && pd->petDB && pd->petDB->equip_script && pd->pet.intimate >= battle_config.pet_equip_min_friendly ) - script->run(pd->petDB->equip_script,0,sd->bl.id,0); - if( pd && pd->pet.intimate > 0 && (!battle_config.pet_equip_required || pd->pet.equip > 0) && pd->state.skillbonus == 1 && pd->bonus ) - pc->bonus(sd,pd->bonus->type, pd->bonus->val); + + if (pd->petDB != NULL && pd->petDB->equip_script != NULL) + script->run(pd->petDB->equip_script, 0, sd->bl.id, 0); + + if (pd->pet.intimate > PET_INTIMACY_NONE && pd->state.skillbonus == 1 && pd->bonus != NULL + && (battle_config.pet_equip_required == 0 || pd->pet.equip > 0)) { + pc->bonus(sd, pd->bonus->type, pd->bonus->val); + } } //param_bonus now holds card bonuses. @@ -3018,6 +3033,22 @@ static int status_calc_pc_(struct map_session_data *sd, enum e_status_calc_opt o sd->subele[ELE_FIRE] += sc->data[SC_ARMOR_RESIST]->val3; sd->subele[ELE_WIND] += sc->data[SC_ARMOR_RESIST]->val4; } + if (sc->data[SC_RESIST_PROPERTY_WATER] != NULL) { // Coldproof Potion + sd->subele[ELE_WATER] += sc->data[SC_RESIST_PROPERTY_WATER]->val1; + sd->subele[ELE_WIND] += sc->data[SC_RESIST_PROPERTY_WATER]->val2; + } + if (sc->data[SC_RESIST_PROPERTY_GROUND] != NULL) { // Earthproof Potion + sd->subele[ELE_EARTH] += sc->data[SC_RESIST_PROPERTY_GROUND]->val1; + sd->subele[ELE_FIRE] += sc->data[SC_RESIST_PROPERTY_GROUND]->val2; + } + if (sc->data[SC_RESIST_PROPERTY_FIRE] != NULL) { // Fireproof Potion + sd->subele[ELE_FIRE] += sc->data[SC_RESIST_PROPERTY_FIRE]->val1; + sd->subele[ELE_WATER] += sc->data[SC_RESIST_PROPERTY_FIRE]->val2; + } + if (sc->data[SC_RESIST_PROPERTY_WIND] != NULL) { // Thunderproof Potion + sd->subele[ELE_WIND] += sc->data[SC_RESIST_PROPERTY_WIND]->val1; + sd->subele[ELE_EARTH] += sc->data[SC_RESIST_PROPERTY_WIND]->val2; + } if (sc->data[SC_FIRE_CLOAK_OPTION]) { i = sc->data[SC_FIRE_CLOAK_OPTION]->val2; sd->subele[ELE_FIRE] += i; @@ -3038,6 +3069,18 @@ static int status_calc_pc_(struct map_session_data *sd, enum e_status_calc_opt o sd->subele[ELE_EARTH] += i; sd->subele[ELE_FIRE] -= i; } + if (sc->data[SC_POPECOOKIE] != NULL) { + i = sc->data[SC_POPECOOKIE]->val3; + sd->subele[ELE_WATER] += i; + sd->subele[ELE_EARTH] += i; + sd->subele[ELE_FIRE] += i; + sd->subele[ELE_WIND] += i; + sd->subele[ELE_POISON] += i; + sd->subele[ELE_HOLY] += i; + sd->subele[ELE_DARK] += i; + sd->subele[ELE_GHOST] += i; + sd->subele[ELE_UNDEAD] += i; + } if (sc->data[SC_MTF_MLEATKED]) sd->subele[ELE_NEUTRAL] += sc->data[SC_MTF_MLEATKED]->val1; if (sc->data[SC_FIRE_INSIGNIA] && sc->data[SC_FIRE_INSIGNIA]->val1 == 3) @@ -4801,6 +4844,10 @@ static int status_calc_batk(struct block_list *bl, struct status_change *sc, int /* some statuses that are hidden in the status window */ if(sc->data[SC_PLUSATTACKPOWER]) batk += sc->data[SC_PLUSATTACKPOWER]->val1; + if (sc->data[SC_POPECOOKIE] != NULL) + batk += batk * sc->data[SC_POPECOOKIE]->val1 / 100; + if (sc->data[SC_VITALIZE_POTION] != NULL) + batk += batk * sc->data[SC_VITALIZE_POTION]->val1 / 100; return cap_value(batk, battle_config.batk_min, battle_config.batk_max); } #ifndef RENEWAL @@ -4880,6 +4927,10 @@ static int status_calc_batk(struct block_list *bl, struct status_change *sc, int batk += batk * sc->data[SC_2011RWC]->val2 / 100; if (sc->data[SC_STEAMPACK]) batk += sc->data[SC_STEAMPACK]->val1; + if (sc->data[SC_SKF_ATK] != NULL) + batk += sc->data[SC_SKF_ATK]->val1; + if (sc->data[SC_ALMIGHTY] != NULL) + batk += sc->data[SC_ALMIGHTY]->val1; if (sc->data[SC_SHRIMP]) batk += batk * sc->data[SC_SHRIMP]->val2 / 100; @@ -5020,6 +5071,10 @@ static int status_calc_matk(struct block_list *bl, struct status_change *sc, int /* some statuses that are hidden in the status window */ if (sc->data[SC_MINDBREAKER]) matk += matk * sc->data[SC_MINDBREAKER]->val2 / 100; + if (sc->data[SC_POPECOOKIE] != NULL) + matk += matk * sc->data[SC_POPECOOKIE]->val2 / 100; + if (sc->data[SC_VITALIZE_POTION] != NULL) + matk += matk * sc->data[SC_VITALIZE_POTION]->val2 / 100; return cap_value(matk, battle_config.matk_min, battle_config.matk_max); } @@ -5077,6 +5132,10 @@ static int status_calc_matk(struct block_list *bl, struct status_change *sc, int matk += matk * sc->data[SC_2011RWC]->val2 / 100; if (sc->data[SC_MAGIC_CANDY]) matk += sc->data[SC_MAGIC_CANDY]->val1; + if (sc->data[SC_SKF_MATK] != NULL) + matk += sc->data[SC_SKF_MATK]->val1; + if (sc->data[SC_ALMIGHTY] != NULL) + matk += sc->data[SC_ALMIGHTY]->val2; return cap_value(matk, battle_config.matk_min, battle_config.matk_max); } @@ -5901,6 +5960,8 @@ static short status_calc_aspd(struct block_list *bl, struct status_change *sc, s bonus += sc->data[SC_BATTLESCROLL]->val1; if (sc->data[SC_STEAMPACK]) bonus += sc->data[SC_STEAMPACK]->val2; + if (sc->data[SC_SKF_ASPD] != NULL) + bonus += sc->data[SC_SKF_ASPD]->val1; } return (bonus + pots); @@ -6068,6 +6129,8 @@ static short status_calc_aspd_rate(struct block_list *bl, struct status_change * aspd_rate += sc->data[SC_BATTLESCROLL]->val1 * 10; if (sc->data[SC_STEAMPACK]) aspd_rate += sc->data[SC_STEAMPACK]->val2 * 10; + if (sc->data[SC_SKF_ASPD] != NULL) + aspd_rate -= sc->data[SC_SKF_ASPD]->val1 * 10; return (short)cap_value(aspd_rate,0,SHRT_MAX); } @@ -6344,13 +6407,24 @@ static int status_get_class(const struct block_list *bl) { nullpo_ret(bl); switch (bl->type) { - case BL_PC: return BL_UCCAST(BL_PC, bl)->status.class; - case BL_MOB: return BL_UCCAST(BL_MOB, bl)->vd->class; //Class used on all code should be the view class of the mob. - case BL_PET: return BL_UCCAST(BL_PET, bl)->pet.class_; - case BL_HOM: return BL_UCCAST(BL_HOM, bl)->homunculus.class_; - case BL_MER: return BL_UCCAST(BL_MER, bl)->mercenary.class_; - case BL_NPC: return BL_UCCAST(BL_NPC, bl)->class_; - case BL_ELEM: return BL_UCCAST(BL_ELEM, bl)->elemental.class_; + case BL_PC: + return BL_UCCAST(BL_PC, bl)->status.class; + case BL_MOB: + { + const struct view_data *const vd = BL_UCCAST(BL_MOB, bl)->vd; + nullpo_ret(vd); + return vd->class; //Class used on all code should be the view class of the mob. + } + case BL_PET: + return BL_UCCAST(BL_PET, bl)->pet.class_; + case BL_HOM: + return BL_UCCAST(BL_HOM, bl)->homunculus.class_; + case BL_MER: + return BL_UCCAST(BL_MER, bl)->mercenary.class_; + case BL_NPC: + return BL_UCCAST(BL_NPC, bl)->class_; + case BL_ELEM: + return BL_UCCAST(BL_ELEM, bl)->elemental.class_; } return 0; } @@ -6440,7 +6514,7 @@ static defType status_get_def(struct block_list *bl) int def = st ? st->def : 0; ud = unit->bl2ud(bl); if (ud && ud->skilltimer != INVALID_TIMER) - def -= def * skill->get_castdef(ud->skill_id)/100; + def -= def * skill->get_castdef(ud->skill_id, ud->skill_lv) / 100; return cap_value(def, DEFTYPE_MIN, DEFTYPE_MAX); } @@ -7710,6 +7784,10 @@ static int status_change_start_sub(struct block_list *src, struct block_list *bl case SC_ENCHANTARMS: case SC_ARMORPROPERTY: case SC_ARMOR_RESIST: + case SC_RESIST_PROPERTY_WATER: + case SC_RESIST_PROPERTY_GROUND: + case SC_RESIST_PROPERTY_FIRE: + case SC_RESIST_PROPERTY_WIND: break; case SC_GOSPEL: //Must not override a casting gospel char. @@ -7765,6 +7843,9 @@ static int status_change_start_sub(struct block_list *src, struct block_list *bl calc_flag = status->dbs->ChangeFlagTable[type]; if(!(flag&SCFLAG_LOADED)) { // Do not parse val settings when loading SCs switch(type) { + case SC_AUTOTRADE: + case SC_KSPROTECTED: + break; // Prevent calling status_change_start_unknown_sc(). case SC_ADORAMUS: sc_start(src,bl,SC_BLIND,100,val1,skill->get_time(status->sc2skill(type),val1)); // Fall through to SC_INC_AGI @@ -8009,7 +8090,6 @@ static int status_change_start_sub(struct block_list *src, struct block_list *bl // This is done this way because the message that the client displays is hardcoded, and only // shows how many minutes are remaining. [Panikon] total_tick = 60000; - val1 = battle_config.manner_system; //Mute filters. if (sd) { clif->changestatus(sd,SP_MANNER,sd->status.manner); @@ -8656,6 +8736,210 @@ static int status_change_start_sub(struct block_list *src, struct block_list *bl //associated, and yet are not wrong/unknown. [Skotlex] //break; } + case SC_ARMOR_RESIST: { + struct status_change_entry *sce_water = sc->data[SC_RESIST_PROPERTY_WATER]; + struct status_change_entry *sce_ground = sc->data[SC_RESIST_PROPERTY_GROUND]; + struct status_change_entry *sce_fire = sc->data[SC_RESIST_PROPERTY_FIRE]; + struct status_change_entry *sce_wind = sc->data[SC_RESIST_PROPERTY_WIND]; + + // Water + int sum_water = val1 + ((sce_fire != NULL) ? sce_fire->val2 : 0); + bool show_icon = true; + if (sce_water != NULL && sce_water->timer != INVALID_TIMER) { + const struct TimerData *td = timer->get(sce_water->timer); + if (td != NULL) { + sum_water += sce_water->val1; + int left = (int)DIFF_TICK(td->tick, timer->gettick()); + if (left > total_tick && sum_water - val1 > 0) + show_icon = false; + } + } + if (val1 > 0 && sum_water > 0 && show_icon) { + int sc_icn = status->get_sc_icon(SC_RESIST_PROPERTY_WATER); + int sc_typ = status->get_sc_relevant_bl_types(SC_RESIST_PROPERTY_WATER); + clif->status_change(bl, sc_icn, sc_typ, 1, total_tick, 0, 0, 0); + } else if (sum_water <= 0) { + clif->sc_end(bl, bl->id, AREA, status->get_sc_icon(SC_RESIST_PROPERTY_WATER)); + } + + // Ground + int sum_ground = val2 + ((sce_wind != NULL) ? sce_wind->val2 : 0); + show_icon = true; + if (sce_ground != NULL && sce_ground->timer != INVALID_TIMER) { + const struct TimerData *td = timer->get(sce_ground->timer); + if (td != NULL) { + sum_ground += sce_ground->val1; + int left = (int)DIFF_TICK(td->tick, timer->gettick()); + if (left > total_tick && sum_ground - val2 > 0) + show_icon = false; + } + } + if (val2 > 0 && sum_ground > 0 && show_icon) { + int sc_icn = status->get_sc_icon(SC_RESIST_PROPERTY_GROUND); + int sc_typ = status->get_sc_relevant_bl_types(SC_RESIST_PROPERTY_GROUND); + clif->status_change(bl, sc_icn, sc_typ, 1, total_tick, 0, 0, 0); + } else if (sum_ground <= 0) { + clif->sc_end(bl, bl->id, AREA, status->get_sc_icon(SC_RESIST_PROPERTY_GROUND)); + } + + // Fire + int sum_fire = val3 + ((sce_ground != NULL) ? sce_ground->val2 : 0); + show_icon = true; + if (sce_fire != NULL && sce_fire->timer != INVALID_TIMER) { + const struct TimerData *td = timer->get(sce_fire->timer); + if (td != NULL) { + sum_fire += sce_fire->val1; + int left = (int)DIFF_TICK(td->tick, timer->gettick()); + if (left > total_tick && sum_fire - val3 > 0) + show_icon = false; + } + } + if (val3 > 0 && sum_fire > 0 && show_icon) { + int sc_icn = status->get_sc_icon(SC_RESIST_PROPERTY_FIRE); + int sc_typ = status->get_sc_relevant_bl_types(SC_RESIST_PROPERTY_FIRE); + clif->status_change(bl, sc_icn, sc_typ, 1, total_tick, 0, 0, 0); + } else if (sum_fire <= 0) { + clif->sc_end(bl, bl->id, AREA, status->get_sc_icon(SC_RESIST_PROPERTY_FIRE)); + } + + // Wind + int sum_wind = val4 + ((sce_water != NULL) ? sce_water->val2 : 0); + show_icon = true; + if (sce_wind != NULL && sce_wind->timer != INVALID_TIMER) { + const struct TimerData *td = timer->get(sce_wind->timer); + if (td != NULL) { + sum_wind += sce_wind->val1; + int left = (int)DIFF_TICK(td->tick, timer->gettick()); + if (left > total_tick && sum_wind - val4 > 0) + show_icon = false; + } + } + if (val4 > 0 && sum_wind > 0 && show_icon) { + int sc_icn = status->get_sc_icon(SC_RESIST_PROPERTY_WIND); + int sc_typ = status->get_sc_relevant_bl_types(SC_RESIST_PROPERTY_WIND); + clif->status_change(bl, sc_icn, sc_typ, 1, total_tick, 0, 0, 0); + } else if (sum_wind <= 0) { + clif->sc_end(bl, bl->id, AREA, status->get_sc_icon(SC_RESIST_PROPERTY_WIND)); + } + + break; + } + case SC_RESIST_PROPERTY_WATER: { + struct status_change_entry *sce_all = sc->data[SC_ARMOR_RESIST]; + struct status_change_entry *sce_fire = sc->data[SC_RESIST_PROPERTY_FIRE]; + struct status_change_entry *sce_wind = sc->data[SC_RESIST_PROPERTY_WIND]; + + // Water + int sum_water = val1 + ((sce_fire != NULL) ? sce_fire->val2 : 0); + if (sce_all != NULL && sce_all->timer != INVALID_TIMER) { + const struct TimerData *td = timer->get(sce_all->timer); + if (td != NULL) { + sum_water += sce_all->val1; + int left = (int)DIFF_TICK(td->tick, timer->gettick()); + if (left > total_tick && sum_water - val1 > 0) + flag |= SCFLAG_NOICON; + } + } + if (sum_water <= 0) { + clif->sc_end(bl, bl->id, AREA, status->get_sc_icon(SC_RESIST_PROPERTY_WATER)); + flag |= SCFLAG_NOICON; + } + + // Wind + int sum_wind = val2 + ((sce_wind != NULL) ? sce_wind->val1 : 0); + sum_wind += (sce_all != NULL) ? sce_all->val4 : 0; + if (sum_wind <= 0) + clif->sc_end(bl, bl->id, AREA, status->get_sc_icon(SC_RESIST_PROPERTY_WIND)); + + break; + } + case SC_RESIST_PROPERTY_GROUND: { + struct status_change_entry *sce_all = sc->data[SC_ARMOR_RESIST]; + struct status_change_entry *sce_wind = sc->data[SC_RESIST_PROPERTY_WIND]; + struct status_change_entry *sce_fire = sc->data[SC_RESIST_PROPERTY_FIRE]; + + // Ground + int sum_ground = val1 + ((sce_wind != NULL) ? sce_wind->val2 : 0); + if (sce_all != NULL && sce_all->timer != INVALID_TIMER) { + const struct TimerData *td = timer->get(sce_all->timer); + if (td != NULL) { + sum_ground += sce_all->val2; + int left = (int)DIFF_TICK(td->tick, timer->gettick()); + if (left > total_tick && sum_ground - val1 > 0) + flag |= SCFLAG_NOICON; + } + } + if (sum_ground <= 0) { + clif->sc_end(bl, bl->id, AREA, status->get_sc_icon(SC_RESIST_PROPERTY_GROUND)); + flag |= SCFLAG_NOICON; + } + + // Fire + int sum_fire = val2 + ((sce_fire != NULL) ? sce_fire->val1 : 0); + sum_fire += (sce_all != NULL) ? sce_all->val3 : 0; + if (sum_fire <= 0) + clif->sc_end(bl, bl->id, AREA, status->get_sc_icon(SC_RESIST_PROPERTY_FIRE)); + + break; + } + case SC_RESIST_PROPERTY_FIRE: { + struct status_change_entry *sce_all = sc->data[SC_ARMOR_RESIST]; + struct status_change_entry *sce_ground = sc->data[SC_RESIST_PROPERTY_GROUND]; + struct status_change_entry *sce_water = sc->data[SC_RESIST_PROPERTY_WATER]; + + // Fire + int sum_fire = val1 + ((sce_ground != NULL) ? sce_ground->val2 : 0); + if (sce_all != NULL && sce_all->timer != INVALID_TIMER) { + const struct TimerData *td = timer->get(sce_all->timer); + if (td != NULL) { + sum_fire += sce_all->val3; + int left = (int)DIFF_TICK(td->tick, timer->gettick()); + if (left > total_tick && sum_fire - val1 > 0) + flag |= SCFLAG_NOICON; + } + } + if (sum_fire <= 0) { + clif->sc_end(bl, bl->id, AREA, status->get_sc_icon(SC_RESIST_PROPERTY_FIRE)); + flag |= SCFLAG_NOICON; + } + + // Water + int sum_water = val2 + ((sce_water != NULL) ? sce_water->val1 : 0); + sum_water += (sce_all != NULL) ? sce_all->val1 : 0; + if (sum_water <= 0) + clif->sc_end(bl, bl->id, AREA, status->get_sc_icon(SC_RESIST_PROPERTY_WATER)); + + break; + } + case SC_RESIST_PROPERTY_WIND: { + struct status_change_entry *sce_all = sc->data[SC_ARMOR_RESIST]; + struct status_change_entry *sce_water = sc->data[SC_RESIST_PROPERTY_WATER]; + struct status_change_entry *sce_ground = sc->data[SC_RESIST_PROPERTY_GROUND]; + + // Wind + int sum_wind = val1 + ((sce_water != NULL) ? sce_water->val2 : 0); + if (sce_all != NULL && sce_all->timer != INVALID_TIMER) { + const struct TimerData *td = timer->get(sce_all->timer); + if (td != NULL) { + sum_wind += sce_all->val4; + int left = (int)DIFF_TICK(td->tick, timer->gettick()); + if (left > total_tick && sum_wind - val1 > 0) + flag |= SCFLAG_NOICON; + } + } + if (sum_wind <= 0) { + clif->sc_end(bl, bl->id, AREA, status->get_sc_icon(SC_RESIST_PROPERTY_WIND)); + flag |= SCFLAG_NOICON; + } + + // Ground + int sum_ground = val2 + ((sce_ground != NULL) ? sce_ground->val1 : 0); + sum_ground += (sce_all != NULL) ? sce_all->val2 : 0; + if (sum_ground <= 0) + clif->sc_end(bl, bl->id, AREA, status->get_sc_icon(SC_RESIST_PROPERTY_GROUND)); + + break; + } case SC_MER_FLEE: case SC_MER_ATK: case SC_MER_HIT: @@ -10514,7 +10798,7 @@ static int status_change_clear(struct block_list *bl, int type) /*========================================== * Special condition we want to effectuate, check before ending a status. *------------------------------------------*/ -static int status_change_end_(struct block_list *bl, enum sc_type type, int tid, const char *file, int line) +static int status_change_end_(struct block_list *bl, enum sc_type type, int tid) { struct map_session_data *sd; struct status_change *sc; @@ -10582,6 +10866,9 @@ static int status_change_end_(struct block_list *bl, enum sc_type type, int tid, vd = status->get_viewdata(bl); calc_flag = status->dbs->ChangeFlagTable[type]; + + bool remove_icon = true; + switch(type) { case SC_GRANITIC_ARMOR: { @@ -10681,23 +10968,9 @@ static int status_change_end_(struct block_list *bl, enum sc_type type, int tid, break; case SC_DANCING: { - const char* prevfile = "<unknown>"; - int prevline = 0; struct map_session_data *dsd; struct status_change_entry *dsc; - if (sd) { - if (sd->delunit_prevfile) { - // initially this is NULL, when a character logs in - prevfile = sd->delunit_prevfile; - prevline = sd->delunit_prevline; - } else { - prevfile = "<none>"; - } - sd->delunit_prevfile = file; - sd->delunit_prevline = line; - } - if (sce->val4 && sce->val4 != BCT_SELF && (dsd=map->id2sd(sce->val4)) != NULL) { // end status on partner as well dsc = dsd->sc.data[SC_DANCING]; @@ -10713,19 +10986,10 @@ static int status_change_end_(struct block_list *bl, enum sc_type type, int tid, // erase associated land skill struct skill_unit_group *group = skill->id2group(sce->val2); - if (group == NULL) { - ShowDebug("status_change_end: SC_DANCING is missing skill unit group (val1=%d, val2=%d, val3=%d, val4=%d, timer=%d, tid=%d, char_id=%d, map=%s, x=%d, y=%d, prev=%s:%d, from=%s:%d). Please report this! (#3504)\n", - sce->val1, sce->val2, sce->val3, sce->val4, sce->timer, tid, - sd ? sd->status.char_id : 0, - mapindex_id2name(map_id2index(bl->m)), bl->x, bl->y, - prevfile, prevline, - file, line); - } - sce->val2 = 0; if( group ) - skill->del_unitgroup(group,ALC_MARK); + skill->del_unitgroup(group); } if ((sce->val1&0xFFFF) == CG_MOONLIT) @@ -10829,7 +11093,7 @@ static int status_change_end_(struct block_list *bl, enum sc_type type, int tid, struct skill_unit_group* group = skill->id2group(sce->val3); sce->val3 = 0; if( group ) - skill->del_unitgroup(group,ALC_MARK); + skill->del_unitgroup(group); } break; case SC_HERMODE: @@ -10848,7 +11112,7 @@ static int status_change_end_(struct block_list *bl, enum sc_type type, int tid, struct skill_unit_group* group = skill->id2group(sce->val4); sce->val4 = 0; if( group ) /* might have been cleared before status ended, e.g. land protector */ - skill->del_unitgroup(group,ALC_MARK); + skill->del_unitgroup(group); } break; case SC_KAAHI: @@ -10946,7 +11210,7 @@ static int status_change_end_(struct block_list *bl, enum sc_type type, int tid, struct skill_unit_group* group = skill->id2group(sce->val2); sce->val2 = 0; if (group) /* might have been cleared before status ended, e.g. land protector */ - skill->del_unitgroup(group,ALC_MARK); + skill->del_unitgroup(group); } break; case SC_BANDING: @@ -10954,7 +11218,7 @@ static int status_change_end_(struct block_list *bl, enum sc_type type, int tid, struct skill_unit_group *group = skill->id2group(sce->val4); sce->val4 = 0; if( group ) /* might have been cleared before status ended, e.g. land protector */ - skill->del_unitgroup(group,ALC_MARK); + skill->del_unitgroup(group); } break; case SC_CURSEDCIRCLE_ATKER: @@ -11013,6 +11277,202 @@ static int status_change_end_(struct block_list *bl, enum sc_type type, int tid, break; } break; + case SC_ARMOR_RESIST: { + struct status_change_entry *sce_water = sc->data[SC_RESIST_PROPERTY_WATER]; + struct status_change_entry *sce_ground = sc->data[SC_RESIST_PROPERTY_GROUND]; + struct status_change_entry *sce_fire = sc->data[SC_RESIST_PROPERTY_FIRE]; + struct status_change_entry *sce_wind = sc->data[SC_RESIST_PROPERTY_WIND]; + + // Water + clif->sc_end(bl, bl->id, AREA, status->get_sc_icon(SC_RESIST_PROPERTY_WATER)); + if (sce_water != NULL && sce_water->timer != INVALID_TIMER) { + int sum_water = sce_water->val1 + ((sce_fire != NULL) ? sce_fire->val2 : 0); + const struct TimerData *td = timer->get(sce_water->timer); + if (td != NULL && sce_water->val1 > 0 && sum_water > 0) { + int sc_icn = status->get_sc_icon(SC_RESIST_PROPERTY_WATER); + int sc_typ = status->get_sc_relevant_bl_types(SC_RESIST_PROPERTY_WATER); + int sc_tck = (int)DIFF_TICK(td->tick, timer->gettick()); + int sc_ttl = sce_water->total_tick; + clif->status_change_sub(bl, sc_icn, sc_typ, 1, sc_tck, sc_ttl, 0, 0, 0); + } + } + + // Ground + clif->sc_end(bl, bl->id, AREA, status->get_sc_icon(SC_RESIST_PROPERTY_GROUND)); + if (sce_ground != NULL && sce_ground->timer != INVALID_TIMER) { + int sum_ground = sce_ground->val1 + ((sce_wind != NULL) ? sce_wind->val2 : 0); + const struct TimerData *td = timer->get(sce_ground->timer); + if (td != NULL && sce_ground->val1 > 0 && sum_ground > 0) { + int sc_icn = status->get_sc_icon(SC_RESIST_PROPERTY_GROUND); + int sc_typ = status->get_sc_relevant_bl_types(SC_RESIST_PROPERTY_GROUND); + int sc_tck = (int)DIFF_TICK(td->tick, timer->gettick()); + int sc_ttl = sce_ground->total_tick; + clif->status_change_sub(bl, sc_icn, sc_typ, 1, sc_tck, sc_ttl, 0, 0, 0); + } + } + + // Fire + clif->sc_end(bl, bl->id, AREA, status->get_sc_icon(SC_RESIST_PROPERTY_FIRE)); + if (sce_fire != NULL && sce_fire->timer != INVALID_TIMER) { + int sum_fire = sce_fire->val1 + ((sce_ground != NULL) ? sce_ground->val2 : 0); + const struct TimerData *td = timer->get(sce_fire->timer); + if (td != NULL && sce_fire->val1 > 0 && sum_fire > 0) { + int sc_icn = status->get_sc_icon(SC_RESIST_PROPERTY_FIRE); + int sc_typ = status->get_sc_relevant_bl_types(SC_RESIST_PROPERTY_FIRE); + int sc_tck = (int)DIFF_TICK(td->tick, timer->gettick()); + int sc_ttl = sce_fire->total_tick; + clif->status_change_sub(bl, sc_icn, sc_typ, 1, sc_tck, sc_ttl, 0, 0, 0); + } + } + + // Wind + clif->sc_end(bl, bl->id, AREA, status->get_sc_icon(SC_RESIST_PROPERTY_WIND)); + if (sce_wind != NULL && sce_wind->timer != INVALID_TIMER) { + int sum_wind = sce_wind->val1 + ((sce_water != NULL) ? sce_water->val2 : 0); + const struct TimerData *td = timer->get(sce_wind->timer); + if (td != NULL && sce_wind->val1 > 0 && sum_wind > 0) { + int sc_icn = status->get_sc_icon(SC_RESIST_PROPERTY_WIND); + int sc_typ = status->get_sc_relevant_bl_types(SC_RESIST_PROPERTY_WIND); + int sc_tck = (int)DIFF_TICK(td->tick, timer->gettick()); + int sc_ttl = sce_wind->total_tick; + clif->status_change_sub(bl, sc_icn, sc_typ, 1, sc_tck, sc_ttl, 0, 0, 0); + } + } + + break; + } + case SC_RESIST_PROPERTY_WATER: + if (sc->data[SC_ARMOR_RESIST] != NULL && sc->data[SC_ARMOR_RESIST]->timer != INVALID_TIMER) { + const struct TimerData *td = timer->get(sc->data[SC_ARMOR_RESIST]->timer); + if (td == NULL) + break; + + // Water + int sum_water = sc->data[SC_ARMOR_RESIST]->val1; + if (sc->data[SC_RESIST_PROPERTY_FIRE] != NULL) + sum_water += sc->data[SC_RESIST_PROPERTY_FIRE]->val2; + if (sc->data[SC_ARMOR_RESIST]->val1 > 0 && sum_water > 0) { + int sc_icn = status->get_sc_icon(SC_RESIST_PROPERTY_WATER); + int sc_typ = status->get_sc_relevant_bl_types(SC_RESIST_PROPERTY_WATER); + int sc_tck = (int)DIFF_TICK(td->tick, timer->gettick()); + int sc_ttl = sc->data[SC_ARMOR_RESIST]->total_tick; + clif->status_change_sub(bl, sc_icn, sc_typ, 1, sc_tck, sc_ttl, 0, 0, 0); + remove_icon = false; + } + + // Wind + int sum_wind = sc->data[SC_ARMOR_RESIST]->val4; + if (sc->data[SC_RESIST_PROPERTY_WIND] != NULL) + sum_wind += sc->data[SC_RESIST_PROPERTY_WIND]->val1; + if (sc->data[SC_ARMOR_RESIST]->val4 > 0 && sum_wind > 0) { + int sc_icn = status->get_sc_icon(SC_RESIST_PROPERTY_WIND); + int sc_typ = status->get_sc_relevant_bl_types(SC_RESIST_PROPERTY_WIND); + int sc_tck = (int)DIFF_TICK(td->tick, timer->gettick()); + int sc_ttl = sc->data[SC_ARMOR_RESIST]->total_tick; + clif->status_change_sub(bl, sc_icn, sc_typ, 1, sc_tck, sc_ttl, 0, 0, 0); + } + } + + break; + case SC_RESIST_PROPERTY_GROUND: + if (sc->data[SC_ARMOR_RESIST] != NULL && sc->data[SC_ARMOR_RESIST]->timer != INVALID_TIMER) { + const struct TimerData *td = timer->get(sc->data[SC_ARMOR_RESIST]->timer); + if (td == NULL) + break; + + // Ground + int sum_ground = sc->data[SC_ARMOR_RESIST]->val2; + if (sc->data[SC_RESIST_PROPERTY_WIND] != NULL) + sum_ground += sc->data[SC_RESIST_PROPERTY_WIND]->val2; + if (sc->data[SC_ARMOR_RESIST]->val2 > 0 && sum_ground > 0) { + int sc_icn = status->get_sc_icon(SC_RESIST_PROPERTY_GROUND); + int sc_typ = status->get_sc_relevant_bl_types(SC_RESIST_PROPERTY_GROUND); + int sc_tck = (int)DIFF_TICK(td->tick, timer->gettick()); + int sc_ttl = sc->data[SC_ARMOR_RESIST]->total_tick; + clif->status_change_sub(bl, sc_icn, sc_typ, 1, sc_tck, sc_ttl, 0, 0, 0); + remove_icon = false; + } + + // Fire + int sum_fire = sc->data[SC_ARMOR_RESIST]->val3; + if (sc->data[SC_RESIST_PROPERTY_FIRE] != NULL) + sum_fire += sc->data[SC_RESIST_PROPERTY_FIRE]->val1; + if (sc->data[SC_ARMOR_RESIST]->val3 > 0 && sum_fire > 0) { + int sc_icn = status->get_sc_icon(SC_RESIST_PROPERTY_FIRE); + int sc_typ = status->get_sc_relevant_bl_types(SC_RESIST_PROPERTY_FIRE); + int sc_tck = (int)DIFF_TICK(td->tick, timer->gettick()); + int sc_ttl = sc->data[SC_ARMOR_RESIST]->total_tick; + clif->status_change_sub(bl, sc_icn, sc_typ, 1, sc_tck, sc_ttl, 0, 0, 0); + } + } + + break; + case SC_RESIST_PROPERTY_FIRE: + if (sc->data[SC_ARMOR_RESIST] != NULL && sc->data[SC_ARMOR_RESIST]->timer != INVALID_TIMER) { + const struct TimerData *td = timer->get(sc->data[SC_ARMOR_RESIST]->timer); + if (td == NULL) + break; + + // Fire + int sum_fire = sc->data[SC_ARMOR_RESIST]->val3; + if (sc->data[SC_RESIST_PROPERTY_GROUND] != NULL) + sum_fire += sc->data[SC_RESIST_PROPERTY_GROUND]->val2; + if (sc->data[SC_ARMOR_RESIST]->val3 > 0 && sum_fire > 0) { + int sc_icn = status->get_sc_icon(SC_RESIST_PROPERTY_FIRE); + int sc_typ = status->get_sc_relevant_bl_types(SC_RESIST_PROPERTY_FIRE); + int sc_tck = (int)DIFF_TICK(td->tick, timer->gettick()); + int sc_ttl = sc->data[SC_ARMOR_RESIST]->total_tick; + clif->status_change_sub(bl, sc_icn, sc_typ, 1, sc_tck, sc_ttl, 0, 0, 0); + remove_icon = false; + } + + // Water + int sum_water = sc->data[SC_ARMOR_RESIST]->val1; + if (sc->data[SC_RESIST_PROPERTY_WATER] != NULL) + sum_water += sc->data[SC_RESIST_PROPERTY_WATER]->val1; + if (sc->data[SC_ARMOR_RESIST]->val1 > 0 && sum_water > 0) { + int sc_icn = status->get_sc_icon(SC_RESIST_PROPERTY_WATER); + int sc_typ = status->get_sc_relevant_bl_types(SC_RESIST_PROPERTY_WATER); + int sc_tck = (int)DIFF_TICK(td->tick, timer->gettick()); + int sc_ttl = sc->data[SC_ARMOR_RESIST]->total_tick; + clif->status_change_sub(bl, sc_icn, sc_typ, 1, sc_tck, sc_ttl, 0, 0, 0); + } + } + + break; + case SC_RESIST_PROPERTY_WIND: + if (sc->data[SC_ARMOR_RESIST] != NULL && sc->data[SC_ARMOR_RESIST]->timer != INVALID_TIMER) { + const struct TimerData *td = timer->get(sc->data[SC_ARMOR_RESIST]->timer); + if (td == NULL) + break; + + // Wind + int sum_wind = sc->data[SC_ARMOR_RESIST]->val4; + if (sc->data[SC_RESIST_PROPERTY_WATER] != NULL) + sum_wind += sc->data[SC_RESIST_PROPERTY_WATER]->val2; + if (sc->data[SC_ARMOR_RESIST]->val4 > 0 && sum_wind > 0) { + int sc_icn = status->get_sc_icon(SC_RESIST_PROPERTY_WIND); + int sc_typ = status->get_sc_relevant_bl_types(SC_RESIST_PROPERTY_WIND); + int sc_tck = (int)DIFF_TICK(td->tick, timer->gettick()); + int sc_ttl = sc->data[SC_ARMOR_RESIST]->total_tick; + clif->status_change_sub(bl, sc_icn, sc_typ, 1, sc_tck, sc_ttl, 0, 0, 0); + remove_icon = false; + } + + // Ground + int sum_ground = sc->data[SC_ARMOR_RESIST]->val2; + if (sc->data[SC_RESIST_PROPERTY_GROUND] != NULL) + sum_ground += sc->data[SC_RESIST_PROPERTY_GROUND]->val1; + if (sc->data[SC_ARMOR_RESIST]->val2 > 0 && sum_ground > 0) { + int sc_icn = status->get_sc_icon(SC_RESIST_PROPERTY_GROUND); + int sc_typ = status->get_sc_relevant_bl_types(SC_RESIST_PROPERTY_GROUND); + int sc_tck = (int)DIFF_TICK(td->tick, timer->gettick()); + int sc_ttl = sc->data[SC_ARMOR_RESIST]->total_tick; + clif->status_change_sub(bl, sc_icn, sc_typ, 1, sc_tck, sc_ttl, 0, 0, 0); + } + } + + break; } opt_flag = 1; @@ -11226,7 +11686,8 @@ static int status_change_end_(struct block_list *bl, enum sc_type type, int tid, #endif //On Aegis, when turning off a status change, first goes the sc packet, then the option packet. - clif->sc_end(bl, bl->id, AREA, status->get_sc_icon(type)); + if (remove_icon) + clif->sc_end(bl, bl->id, AREA, status->get_sc_icon(type)); if( opt_flag&8 ) //bugreport:681 clif->changeoption2(bl); diff --git a/src/map/status.h b/src/map/status.h index ada18bc0a..43cfd6931 100644 --- a/src/map/status.h +++ b/src/map/status.h @@ -854,6 +854,13 @@ typedef enum sc_type { SC_RESIST_PROPERTY_WIND, SC_CLIENT_ONLY_EQUIP_ARROW, SC_MADOGEAR, + SC_POPECOOKIE, + SC_VITALIZE_POTION, + SC_SKF_MATK, + SC_SKF_ATK, + SC_SKF_ASPD, + SC_SKF_CAST, + SC_ALMIGHTY, #ifndef SC_MAX SC_MAX, //Automatically updated max, used in for's to check we are within bounds. #endif @@ -1207,7 +1214,7 @@ struct status_change { #define sc_start2(src, bl, type, rate, val1, val2, tick) (status->change_start((src),(bl),(type),100*(rate),(val1),(val2),0,0,(tick),SCFLAG_NONE)) #define sc_start4(src, bl, type, rate, val1, val2, val3, val4, tick) (status->change_start((src),(bl),(type),100*(rate),(val1),(val2),(val3),(val4),(tick),SCFLAG_NONE)) -#define status_change_end(bl,type,tid) (status->change_end_((bl),(type),(tid),__FILE__,__LINE__)) +#define status_change_end(bl,type,tid) (status->change_end_((bl),(type),(tid))) #define status_calc_bl(bl, flag) (status->calc_bl_((bl), (enum scb_flag)(flag), SCO_NONE)) #define status_calc_mob(md, opt) (status->calc_bl_(&(md)->bl, SCB_ALL, (opt))) @@ -1301,7 +1308,7 @@ struct status_interface { int (*get_sc_def) (struct block_list *src, struct block_list *bl, enum sc_type type, int rate, int tick, int flag); int (*change_start) (struct block_list *src, struct block_list *bl, enum sc_type type, int rate, int val1, int val2, int val3, int val4, int tick, int flag); int (*change_start_sub) (struct block_list *src, struct block_list *bl, enum sc_type type, int rate, int val1, int val2, int val3, int val4, int tick, int total_tick, int flag); - int (*change_end_) (struct block_list* bl, enum sc_type type, int tid, const char* file, int line); + int (*change_end_) (struct block_list* bl, enum sc_type type, int tid); bool (*is_immune_to_status) (struct status_change* sc, enum sc_type type); bool (*is_boss_resist_sc) (enum sc_type type); bool (*end_sc_before_start) (struct block_list *bl, struct status_data *st, struct status_change* sc, enum sc_type type, int undead_flag, int val1, int val2, int val3, int val4); diff --git a/src/map/unit.c b/src/map/unit.c index a879a125f..a6afb5ee7 100644 --- a/src/map/unit.c +++ b/src/map/unit.c @@ -96,6 +96,8 @@ static struct unit_data *unit_bl2ud(struct block_list *bl) return &BL_UCAST(BL_MER, bl)->ud; case BL_ELEM: return &BL_UCAST(BL_ELEM, bl)->ud; + case BL_SKILL: // No assertion to not spam the server console when attacking a skill type unit such as Ice Wall. + return NULL; default: Assert_retr(NULL, false); } @@ -128,6 +130,8 @@ static const struct unit_data *unit_cbl2ud(const struct block_list *bl) return &BL_UCCAST(BL_MER, bl)->ud; case BL_ELEM: return &BL_UCCAST(BL_ELEM, bl)->ud; + case BL_SKILL: // No assertion to not spam the server console when attacking a skill type unit such as Ice Wall. + return NULL; default: Assert_retr(NULL, false); } @@ -326,7 +330,7 @@ static int unit_warpto_master(struct block_list *master_bl, struct block_list *s static int unit_walk_toxy_timer(int tid, int64 tick, int id, intptr_t data) { struct block_list *bl = map->id2bl(id); - if (bl == NULL || bl->prev == NULL) // Stop moved because it is missing from the block_list + if (bl == NULL) return 1; struct unit_data *ud = unit->bl2ud(bl); if (ud == NULL) @@ -336,8 +340,12 @@ static int unit_walk_toxy_timer(int tid, int64 tick, int id, intptr_t data) ShowError("unit_walk_timer mismatch %d != %d\n",ud->walktimer,tid); return 1; } + ud->walktimer = INVALID_TIMER; + if (bl->prev == NULL) // Stop moved because it is missing from the block_list. + return 1; + if (ud->walkpath.path_pos >= ud->walkpath.path_len) return 1; @@ -428,7 +436,7 @@ static int unit_walk_toxy_timer(int tid, int64 tick, int id, intptr_t data) // Walk skills are triggered regardless of target due to the idle-walk mob state. // But avoid triggering on stop-walk calls. if (tid != INVALID_TIMER && (ud->walk_count % WALK_SKILL_INTERVAL) == 0 - && map->list[bl->m].users > 0 && mob->skill_use(md, tick, -1) == 1) { + && map->list[bl->m].users > 0 && mob->skill_use(md, tick, -1) == 0) { // Walk skills are supposed to be used while walking if (!(ud->skill_id == NPC_SELFDESTRUCTION && ud->skilltimer != INVALID_TIMER) && md->state.skillstate != MSS_WALK) { @@ -898,7 +906,7 @@ static int unit_movepos(struct block_list *bl, short dst_x, short dst_y, int eas } else npc->untouch_areanpc(sd, bl->m, bl->x, bl->y); - if( sd->status.pet_id > 0 && sd->pd && sd->pd->pet.intimate > 0 ) + if (sd->status.pet_id > 0 && sd->pd && sd->pd->pet.intimate > PET_INTIMACY_NONE) { // Check if pet needs to be teleported. [Skotlex] int flag = 0; struct block_list* pbl = &sd->pd->bl; @@ -1144,12 +1152,13 @@ static int unit_stop_walking(struct block_list *bl, int flag) static int unit_skilluse_id(struct block_list *src, int target_id, uint16 skill_id, uint16 skill_lv) { int casttime = skill->cast_fix(src, skill_id, skill_lv); - int castcancel = skill->get_castcancel(skill_id); + int castcancel = skill->get_castcancel(skill_id, skill_lv); int ret = unit->skilluse_id2(src, target_id, skill_id, skill_lv, casttime, castcancel); struct map_session_data *sd = BL_CAST(BL_PC, src); - if (sd != NULL && (ret == 0 || !skill->is_item_skill(sd, skill_id, skill_lv))) - pc->itemskill_clear(sd); + if (sd != NULL) + pc->autocast_remove(sd, sd->auto_cast_current.type, sd->auto_cast_current.skill_id, + sd->auto_cast_current.skill_lv); return ret; } @@ -1558,7 +1567,7 @@ static int unit_skilluse_id2(struct block_list *src, int target_id, uint16 skill //Check range when not using skill on yourself or is a combo-skill during attack //(these are supposed to always have the same range as your attack) if( src->id != target_id && (!temp || ud->attacktimer == INVALID_TIMER) ) { - if( skill->get_state(ud->skill_id) == ST_MOVE_ENABLE ) { + if (skill->get_state(ud->skill_id, ud->skill_lv) == ST_MOVE_ENABLE) { if( !unit->can_reach_bl(src, target, range + 1, 1, NULL, NULL) ) return 0; // Walk-path check failed. } else if( src->type == BL_MER && skill_id == MA_REMOVETRAP ) { @@ -1708,7 +1717,7 @@ static int unit_skilluse_id2(struct block_list *src, int target_id, uint16 skill if (!ud->state.running) //need TK_RUN or WUGDASH handler to be done before that, see bugreport:6026 unit->stop_walking(src, STOPWALKING_FLAG_FIXPOS);// even though this is not how official works but this will do the trick. bugreport:6829 - if (sd != NULL && sd->state.itemskill_no_casttime == 1 && skill->is_item_skill(sd, skill_id, skill_lv)) + if (sd != NULL && sd->auto_cast_current.itemskill_instant_cast && sd->auto_cast_current.type == AUTOCAST_ITEM) casttime = 0; // in official this is triggered even if no cast time. @@ -1746,7 +1755,7 @@ static int unit_skilluse_id2(struct block_list *src, int target_id, uint16 skill if( casttime <= 0 ) ud->state.skillcastcancel = 0; - if( !sd || sd->skillitem != skill_id || skill->get_cast(skill_id,skill_lv) ) + if (sd == NULL || sd->auto_cast_current.type < AUTOCAST_ABRA || skill->get_cast(skill_id, skill_lv) != 0) ud->canact_tick = tick + casttime + 100; if( sd ) { @@ -1781,12 +1790,13 @@ static int unit_skilluse_id2(struct block_list *src, int target_id, uint16 skill static int unit_skilluse_pos(struct block_list *src, short skill_x, short skill_y, uint16 skill_id, uint16 skill_lv) { int casttime = skill->cast_fix(src, skill_id, skill_lv); - int castcancel = skill->get_castcancel(skill_id); + int castcancel = skill->get_castcancel(skill_id, skill_lv); int ret = unit->skilluse_pos2(src, skill_x, skill_y, skill_id, skill_lv, casttime, castcancel); struct map_session_data *sd = BL_CAST(BL_PC, src); - if (sd != NULL && (ret == 0 || !skill->is_item_skill(sd, skill_id, skill_lv))) - pc->itemskill_clear(sd); + if (sd != NULL) + pc->autocast_remove(sd, sd->auto_cast_current.type, sd->auto_cast_current.skill_id, + sd->auto_cast_current.skill_lv); return ret; } @@ -1862,7 +1872,7 @@ static int unit_skilluse_pos2(struct block_list *src, short skill_x, short skill return 0; // Attacking will be handled by unit_walk_toxy_timer in this case } - if( skill->get_state(ud->skill_id) == ST_MOVE_ENABLE ) { + if (skill->get_state(ud->skill_id, ud->skill_lv) == ST_MOVE_ENABLE) { if( !unit->can_reach_bl(src, &bl, range + 1, 1, NULL, NULL) ) return 0; //Walk-path check failed. } else if( !battle->check_range(src, &bl, range) ) @@ -1883,7 +1893,7 @@ static int unit_skilluse_pos2(struct block_list *src, short skill_x, short skill } ud->state.skillcastcancel = castcancel&&casttime>0?1:0; - if( !sd || sd->skillitem != skill_id || skill->get_cast(skill_id,skill_lv) ) + if (sd == NULL || sd->auto_cast_current.type < AUTOCAST_ABRA || skill->get_cast(skill_id, skill_lv) != 0) ud->canact_tick = tick + casttime + 100; #if 0 if (sd) { @@ -1914,7 +1924,7 @@ static int unit_skilluse_pos2(struct block_list *src, short skill_x, short skill unit->stop_walking(src, STOPWALKING_FLAG_FIXPOS); - if (sd != NULL && sd->state.itemskill_no_casttime == 1 && skill->is_item_skill(sd, skill_id, skill_lv)) + if (sd != NULL && sd->auto_cast_current.itemskill_instant_cast && sd->auto_cast_current.type == AUTOCAST_ITEM) casttime = 0; // in official this is triggered even if no cast time. @@ -2333,7 +2343,7 @@ static int unit_attack_timer_sub(struct block_list *src, int tid, int64 tick) if(md) { //First attack is always a normal attack if(md->state.skillstate == MSS_ANGRY || md->state.skillstate == MSS_BERSERK) { - if (mob->skill_use(md,tick,-1)) { + if (mob->skill_use(md, tick, -1) == 0) { map->freeblock_unlock(); return 1; } @@ -2718,7 +2728,7 @@ static int unit_remove_map(struct block_list *bl, enum clr_type clrtype, const c case BL_PET: { struct pet_data *pd = BL_UCAST(BL_PET, bl); - if( pd->pet.intimate <= 0 && !(pd->msd && !pd->msd->state.active) ) { + if (pd->pet.intimate <= PET_INTIMACY_NONE && !(pd->msd && !pd->msd->state.active)) { //If logging out, this is deleted on unit->free clif->clearunit_area(bl,clrtype); map->delblock(bl); @@ -2877,6 +2887,8 @@ static int unit_free(struct block_list *bl, enum clr_type clrtype) aFree(sd->instance); sd->instance = NULL; } + + VECTOR_CLEAR(sd->auto_cast); // Clear auto-cast vector. VECTOR_CLEAR(sd->channels); VECTOR_CLEAR(sd->script_queues); VECTOR_CLEAR(sd->achievement); // Achievement [Smokexyz/Hercules] @@ -2932,7 +2944,7 @@ static int unit_free(struct block_list *bl, enum clr_type clrtype) aFree (pd->loot); pd->loot = NULL; } - if (pd->pet.intimate > 0) { + if (pd->pet.intimate > PET_INTIMACY_NONE) { intif->save_petdata(pd->pet.account_id,&pd->pet); } else { //Remove pet. diff --git a/src/plugins/HPMHooking/HPMHooking.Defs.inc b/src/plugins/HPMHooking/HPMHooking.Defs.inc index 28f81b97f..c04eedb05 100644 --- a/src/plugins/HPMHooking/HPMHooking.Defs.inc +++ b/src/plugins/HPMHooking/HPMHooking.Defs.inc @@ -1410,6 +1410,10 @@ typedef void (*HPMHOOK_pre_clif_chatname_ack) (int *fd, struct block_list **bl); typedef void (*HPMHOOK_post_clif_chatname_ack) (int fd, struct block_list *bl); typedef void (*HPMHOOK_pre_clif_elemname_ack) (int *fd, struct block_list **bl); typedef void (*HPMHOOK_post_clif_elemname_ack) (int fd, struct block_list *bl); +typedef void (*HPMHOOK_pre_clif_skillname_ack) (int *fd, struct block_list **bl); +typedef void (*HPMHOOK_post_clif_skillname_ack) (int fd, struct block_list *bl); +typedef void (*HPMHOOK_pre_clif_itemname_ack) (int *fd, struct block_list **bl); +typedef void (*HPMHOOK_post_clif_itemname_ack) (int fd, struct block_list *bl); typedef void (*HPMHOOK_pre_clif_unknownname_ack) (int *fd, struct block_list **bl); typedef void (*HPMHOOK_post_clif_unknownname_ack) (int fd, struct block_list *bl); typedef void (*HPMHOOK_pre_clif_monster_hp_bar) (struct mob_data **md, struct map_session_data **sd); @@ -2762,6 +2766,14 @@ typedef void (*HPMHOOK_pre_clif_plapineDdukDdak_ack) (int *fd, struct map_sessio typedef void (*HPMHOOK_post_clif_plapineDdukDdak_ack) (int fd, struct map_session_data *sd); typedef void (*HPMHOOK_pre_clif_plapineDdukDdak_close) (int *fd, struct map_session_data **sd); typedef void (*HPMHOOK_post_clif_plapineDdukDdak_close) (int fd, struct map_session_data *sd); +typedef bool (*HPMHOOK_pre_clif_lapineUpgrade_open) (struct map_session_data **sd, int *item_id); +typedef bool (*HPMHOOK_post_clif_lapineUpgrade_open) (bool retVal___, struct map_session_data *sd, int item_id); +typedef bool (*HPMHOOK_pre_clif_lapineUpgrade_result) (struct map_session_data **sd, enum lapineUpgrade_result *result); +typedef bool (*HPMHOOK_post_clif_lapineUpgrade_result) (bool retVal___, struct map_session_data *sd, enum lapineUpgrade_result result); +typedef void (*HPMHOOK_pre_clif_pLapineUpgrade_close) (int *fd, struct map_session_data **sd); +typedef void (*HPMHOOK_post_clif_pLapineUpgrade_close) (int fd, struct map_session_data *sd); +typedef void (*HPMHOOK_pre_clif_pLapineUpgrade_makeItem) (int *fd, struct map_session_data **sd); +typedef void (*HPMHOOK_post_clif_pLapineUpgrade_makeItem) (int fd, struct map_session_data *sd); typedef void (*HPMHOOK_pre_clif_pReqGearOff) (int *fd, struct map_session_data **sd); typedef void (*HPMHOOK_post_clif_pReqGearOff) (int fd, struct map_session_data *sd); #endif // MAP_CLIF_H @@ -5212,20 +5224,32 @@ typedef bool (*HPMHOOK_pre_mapit_exists) (struct s_mapiterator **iter); typedef bool (*HPMHOOK_post_mapit_exists) (bool retVal___, struct s_mapiterator *iter); #endif // MAP_MAP_H #ifdef MAP_MAPREG_H /* mapreg */ -typedef void (*HPMHOOK_pre_mapreg_init) (void); -typedef void (*HPMHOOK_post_mapreg_init) (void); -typedef void (*HPMHOOK_pre_mapreg_final) (void); -typedef void (*HPMHOOK_post_mapreg_final) (void); typedef int (*HPMHOOK_pre_mapreg_readreg) (int64 *uid); typedef int (*HPMHOOK_post_mapreg_readreg) (int retVal___, int64 uid); typedef char* (*HPMHOOK_pre_mapreg_readregstr) (int64 *uid); typedef char* (*HPMHOOK_post_mapreg_readregstr) (char* retVal___, int64 uid); +typedef bool (*HPMHOOK_pre_mapreg_set_num_db) (int64 *uid, const char **name, unsigned int *index, int *value); +typedef bool (*HPMHOOK_post_mapreg_set_num_db) (bool retVal___, int64 uid, const char *name, unsigned int index, int value); +typedef bool (*HPMHOOK_pre_mapreg_delete_num_db) (int64 *uid, const char **name, unsigned int *index); +typedef bool (*HPMHOOK_post_mapreg_delete_num_db) (bool retVal___, int64 uid, const char *name, unsigned int index); typedef bool (*HPMHOOK_pre_mapreg_setreg) (int64 *uid, int *val); typedef bool (*HPMHOOK_post_mapreg_setreg) (bool retVal___, int64 uid, int val); +typedef bool (*HPMHOOK_pre_mapreg_set_str_db) (int64 *uid, const char **name, unsigned int *index, const char **value); +typedef bool (*HPMHOOK_post_mapreg_set_str_db) (bool retVal___, int64 uid, const char *name, unsigned int index, const char *value); +typedef bool (*HPMHOOK_pre_mapreg_delete_str_db) (int64 *uid, const char **name, unsigned int *index); +typedef bool (*HPMHOOK_post_mapreg_delete_str_db) (bool retVal___, int64 uid, const char *name, unsigned int index); typedef bool (*HPMHOOK_pre_mapreg_setregstr) (int64 *uid, const char **str); typedef bool (*HPMHOOK_post_mapreg_setregstr) (bool retVal___, int64 uid, const char *str); +typedef void (*HPMHOOK_pre_mapreg_load_num_db) (void); +typedef void (*HPMHOOK_post_mapreg_load_num_db) (void); +typedef void (*HPMHOOK_pre_mapreg_load_str_db) (void); +typedef void (*HPMHOOK_post_mapreg_load_str_db) (void); typedef void (*HPMHOOK_pre_mapreg_load) (void); typedef void (*HPMHOOK_post_mapreg_load) (void); +typedef void (*HPMHOOK_pre_mapreg_save_num_db) (const char **name, unsigned int *index, int *value); +typedef void (*HPMHOOK_post_mapreg_save_num_db) (const char *name, unsigned int index, int value); +typedef void (*HPMHOOK_pre_mapreg_save_str_db) (const char **name, unsigned int *index, const char **value); +typedef void (*HPMHOOK_post_mapreg_save_str_db) (const char *name, unsigned int index, const char *value); typedef void (*HPMHOOK_pre_mapreg_save) (void); typedef void (*HPMHOOK_post_mapreg_save) (void); typedef int (*HPMHOOK_pre_mapreg_save_timer) (int *tid, int64 *tick, int *id, intptr_t *data); @@ -5234,8 +5258,12 @@ typedef int (*HPMHOOK_pre_mapreg_destroyreg) (union DBKey *key, struct DBData ** typedef int (*HPMHOOK_post_mapreg_destroyreg) (int retVal___, union DBKey key, struct DBData *data, va_list ap); typedef void (*HPMHOOK_pre_mapreg_reload) (void); typedef void (*HPMHOOK_post_mapreg_reload) (void); -typedef bool (*HPMHOOK_pre_mapreg_config_read) (const char **filename, const struct config_setting_t **config, bool *imported); -typedef bool (*HPMHOOK_post_mapreg_config_read) (bool retVal___, const char *filename, const struct config_setting_t *config, bool imported); +typedef bool (*HPMHOOK_pre_mapreg_config_read_registry) (const char **filename, const struct config_setting_t **config, bool *imported); +typedef bool (*HPMHOOK_post_mapreg_config_read_registry) (bool retVal___, const char *filename, const struct config_setting_t *config, bool imported); +typedef void (*HPMHOOK_pre_mapreg_final) (void); +typedef void (*HPMHOOK_post_mapreg_final) (void); +typedef void (*HPMHOOK_pre_mapreg_init) (void); +typedef void (*HPMHOOK_post_mapreg_init) (void); #endif // MAP_MAPREG_H #ifdef COMMON_MD5CALC_H /* md5 */ typedef void (*HPMHOOK_pre_md5_string) (const char **string, char **output); @@ -5452,8 +5480,8 @@ typedef struct block_list* (*HPMHOOK_pre_mob_getmasterhpltmaxrate) (struct mob_d typedef struct block_list* (*HPMHOOK_post_mob_getmasterhpltmaxrate) (struct block_list* retVal___, struct mob_data *md, int rate); typedef int (*HPMHOOK_pre_mob_getfriendstatus_sub) (struct block_list **bl, va_list ap); typedef int (*HPMHOOK_post_mob_getfriendstatus_sub) (int retVal___, struct block_list *bl, va_list ap); -typedef struct mob_data* (*HPMHOOK_pre_mob_getfriendstatus) (struct mob_data **md, int *cond1, int *cond2); -typedef struct mob_data* (*HPMHOOK_post_mob_getfriendstatus) (struct mob_data* retVal___, struct mob_data *md, int cond1, int cond2); +typedef struct block_list* (*HPMHOOK_pre_mob_getfriendstatus) (struct mob_data **md, int *cond1, int *cond2); +typedef struct block_list* (*HPMHOOK_post_mob_getfriendstatus) (struct block_list* retVal___, struct mob_data *md, int cond1, int cond2); typedef int (*HPMHOOK_pre_mob_skill_use) (struct mob_data **md, int64 *tick, int *event); typedef int (*HPMHOOK_post_mob_skill_use) (int retVal___, struct mob_data *md, int64 tick, int event); typedef int (*HPMHOOK_pre_mob_skill_event) (struct mob_data **md, struct block_list **src, int64 *tick, int *flag); @@ -5830,6 +5858,10 @@ typedef int (*HPMHOOK_pre_npc_secure_timeout_timer) (int *tid, int64 *tick, int typedef int (*HPMHOOK_post_npc_secure_timeout_timer) (int retVal___, int tid, int64 tick, int id, intptr_t data); #endif // MAP_NPC_H #ifdef COMMON_NULLPO_H /* nullpo */ +typedef void (*HPMHOOK_pre_nullpo_init) (void); +typedef void (*HPMHOOK_post_nullpo_init) (void); +typedef void (*HPMHOOK_pre_nullpo_final) (void); +typedef void (*HPMHOOK_post_nullpo_final) (void); typedef void (*HPMHOOK_pre_nullpo_assert_report) (const char **file, int *line, const char **func, const char **targetname, const char **title); typedef void (*HPMHOOK_post_nullpo_assert_report) (const char *file, int line, const char *func, const char *targetname, const char *title); #endif // COMMON_NULLPO_H @@ -6184,8 +6216,14 @@ typedef int (*HPMHOOK_pre_pc_checkitem) (struct map_session_data **sd); typedef int (*HPMHOOK_post_pc_checkitem) (int retVal___, struct map_session_data *sd); typedef int (*HPMHOOK_pre_pc_useitem) (struct map_session_data **sd, int *n); typedef int (*HPMHOOK_post_pc_useitem) (int retVal___, struct map_session_data *sd, int n); -typedef int (*HPMHOOK_pre_pc_itemskill_clear) (struct map_session_data **sd); -typedef int (*HPMHOOK_post_pc_itemskill_clear) (int retVal___, struct map_session_data *sd); +typedef void (*HPMHOOK_pre_pc_autocast_clear_current) (struct map_session_data **sd); +typedef void (*HPMHOOK_post_pc_autocast_clear_current) (struct map_session_data *sd); +typedef void (*HPMHOOK_pre_pc_autocast_clear) (struct map_session_data **sd); +typedef void (*HPMHOOK_post_pc_autocast_clear) (struct map_session_data *sd); +typedef void (*HPMHOOK_pre_pc_autocast_set_current) (struct map_session_data **sd, int *skill_id); +typedef void (*HPMHOOK_post_pc_autocast_set_current) (struct map_session_data *sd, int skill_id); +typedef void (*HPMHOOK_pre_pc_autocast_remove) (struct map_session_data **sd, enum autocast_type *type, int *skill_id, int *skill_lv); +typedef void (*HPMHOOK_post_pc_autocast_remove) (struct map_session_data *sd, enum autocast_type type, int skill_id, int skill_lv); typedef int (*HPMHOOK_pre_pc_skillatk_bonus) (struct map_session_data **sd, uint16 *skill_id); typedef int (*HPMHOOK_post_pc_skillatk_bonus) (int retVal___, struct map_session_data *sd, uint16 skill_id); typedef int (*HPMHOOK_pre_pc_skillheal_bonus) (struct map_session_data **sd, uint16 *skill_id); @@ -6206,6 +6244,10 @@ typedef int (*HPMHOOK_pre_pc_percentheal) (struct map_session_data **sd, int *hp typedef int (*HPMHOOK_post_pc_percentheal) (int retVal___, struct map_session_data *sd, int hp, int sp); typedef int (*HPMHOOK_pre_pc_jobchange) (struct map_session_data **sd, int *class, int *upper); typedef int (*HPMHOOK_post_pc_jobchange) (int retVal___, struct map_session_data *sd, int class, int upper); +typedef void (*HPMHOOK_pre_pc_hide) (struct map_session_data **sd, bool *show_msg); +typedef void (*HPMHOOK_post_pc_hide) (struct map_session_data *sd, bool show_msg); +typedef void (*HPMHOOK_pre_pc_unhide) (struct map_session_data **sd, bool *show_msg); +typedef void (*HPMHOOK_post_pc_unhide) (struct map_session_data *sd, bool show_msg); typedef int (*HPMHOOK_pre_pc_setoption) (struct map_session_data **sd, int *type); typedef int (*HPMHOOK_post_pc_setoption) (int retVal___, struct map_session_data *sd, int type); typedef int (*HPMHOOK_pre_pc_setcart) (struct map_session_data **sd, int *type); @@ -6336,10 +6378,10 @@ typedef void (*HPMHOOK_pre_pc_itemcd_do) (struct map_session_data **sd, bool *lo typedef void (*HPMHOOK_post_pc_itemcd_do) (struct map_session_data *sd, bool load); typedef int (*HPMHOOK_pre_pc_load_combo) (struct map_session_data **sd); typedef int (*HPMHOOK_post_pc_load_combo) (int retVal___, struct map_session_data *sd); -typedef void (*HPMHOOK_pre_pc_add_charm) (struct map_session_data **sd, int *interval, int *max, int *type); -typedef void (*HPMHOOK_post_pc_add_charm) (struct map_session_data *sd, int interval, int max, int type); -typedef void (*HPMHOOK_pre_pc_del_charm) (struct map_session_data **sd, int *count, int *type); -typedef void (*HPMHOOK_post_pc_del_charm) (struct map_session_data *sd, int count, int type); +typedef void (*HPMHOOK_pre_pc_add_charm) (struct map_session_data **sd, int *interval, int *max, enum spirit_charm_types *type); +typedef void (*HPMHOOK_post_pc_add_charm) (struct map_session_data *sd, int interval, int max, enum spirit_charm_types type); +typedef void (*HPMHOOK_pre_pc_del_charm) (struct map_session_data **sd, int *count, enum spirit_charm_types *type); +typedef void (*HPMHOOK_post_pc_del_charm) (struct map_session_data *sd, int count, enum spirit_charm_types type); typedef void (*HPMHOOK_pre_pc_baselevelchanged) (struct map_session_data **sd); typedef void (*HPMHOOK_post_pc_baselevelchanged) (struct map_session_data *sd); typedef int (*HPMHOOK_pre_pc_level_penalty_mod) (int *diff, unsigned char *race, uint32 *mode, int *type); @@ -6496,6 +6538,8 @@ typedef int (*HPMHOOK_pre_pet_final) (void); typedef int (*HPMHOOK_post_pet_final) (int retVal___); typedef int (*HPMHOOK_pre_pet_hungry_val) (struct pet_data **pd); typedef int (*HPMHOOK_post_pet_hungry_val) (int retVal___, struct pet_data *pd); +typedef void (*HPMHOOK_pre_pet_set_hunger) (struct pet_data **pd, int *value); +typedef void (*HPMHOOK_post_pet_set_hunger) (struct pet_data *pd, int value); typedef void (*HPMHOOK_pre_pet_set_intimate) (struct pet_data **pd, int *value); typedef void (*HPMHOOK_post_pet_set_intimate) (struct pet_data *pd, int value); typedef int (*HPMHOOK_pre_pet_create_egg) (struct map_session_data **sd, int *item_id); @@ -6836,8 +6880,8 @@ typedef void (*HPMHOOK_pre_script_set_constant2) (const char **name, int *value, typedef void (*HPMHOOK_post_script_set_constant2) (const char *name, int value, bool is_parameter, bool is_deprecated); typedef bool (*HPMHOOK_pre_script_get_constant) (const char **name, int **value); typedef bool (*HPMHOOK_post_script_get_constant) (bool retVal___, const char *name, int *value); -typedef void (*HPMHOOK_pre_script_label_add) (int *key, int *pos); -typedef void (*HPMHOOK_post_script_label_add) (int key, int pos); +typedef void (*HPMHOOK_pre_script_label_add) (int *key, int *pos, enum script_label_flags *flags); +typedef void (*HPMHOOK_post_script_label_add) (int key, int pos, enum script_label_flags flags); typedef void (*HPMHOOK_pre_script_run) (struct script_code **rootscript, int *pos, int *rid, int *oid); typedef void (*HPMHOOK_post_script_run) (struct script_code *rootscript, int pos, int rid, int oid); typedef void (*HPMHOOK_pre_script_run_npc) (struct script_code **rootscript, int *pos, int *rid, int *oid); @@ -6902,6 +6946,8 @@ typedef const char* (*HPMHOOK_pre_script_parse_syntax_close_sub) (const char **p typedef const char* (*HPMHOOK_post_script_parse_syntax_close_sub) (const char* retVal___, const char *p, int *flag); typedef const char* (*HPMHOOK_pre_script_parse_syntax) (const char **p); typedef const char* (*HPMHOOK_post_script_parse_syntax) (const char* retVal___, const char *p); +typedef const char* (*HPMHOOK_pre_script_parse_syntax_function) (const char **p, bool *is_public); +typedef const char* (*HPMHOOK_post_script_parse_syntax_function) (const char* retVal___, const char *p, bool is_public); typedef c_op (*HPMHOOK_pre_script_get_com) (const struct script_buf **scriptbuf, int **pos); typedef c_op (*HPMHOOK_post_script_get_com) (c_op retVal___, const struct script_buf *scriptbuf, int *pos); typedef int (*HPMHOOK_pre_script_get_num) (const struct script_buf **scriptbuf, int **pos); @@ -6966,6 +7012,8 @@ typedef const char* (*HPMHOOK_pre_script_print_line) (StringBuf **buf, const cha typedef const char* (*HPMHOOK_post_script_print_line) (const char* retVal___, StringBuf *buf, const char *p, const char *mark, int line); typedef void (*HPMHOOK_pre_script_errorwarning_sub) (StringBuf **buf, const char **src, const char **file, int *start_line, const char **error_msg, const char **error_pos); typedef void (*HPMHOOK_post_script_errorwarning_sub) (StringBuf *buf, const char *src, const char *file, int start_line, const char *error_msg, const char *error_pos); +typedef bool (*HPMHOOK_pre_script_is_permanent_variable) (const char **name); +typedef bool (*HPMHOOK_post_script_is_permanent_variable) (bool retVal___, const char *name); typedef int (*HPMHOOK_pre_script_set_reg) (struct script_state **st, struct map_session_data **sd, int64 *num, const char **name, const void **value, struct reg_db **ref); typedef int (*HPMHOOK_post_script_set_reg) (int retVal___, struct script_state *st, struct map_session_data *sd, int64 num, const char *name, const void *value, struct reg_db *ref); typedef void (*HPMHOOK_pre_script_set_reg_ref_str) (struct script_state **st, struct reg_db **n, int64 *num, const char **name, const char **str); @@ -7182,10 +7230,10 @@ typedef void (*HPMHOOK_pre_skill_read_db) (bool *minimal); typedef void (*HPMHOOK_post_skill_read_db) (bool minimal); typedef int (*HPMHOOK_pre_skill_get_index) (int *skill_id); typedef int (*HPMHOOK_post_skill_get_index) (int retVal___, int skill_id); -typedef int (*HPMHOOK_pre_skill_get_type) (int *skill_id); -typedef int (*HPMHOOK_post_skill_get_type) (int retVal___, int skill_id); -typedef int (*HPMHOOK_pre_skill_get_hit) (int *skill_id); -typedef int (*HPMHOOK_post_skill_get_hit) (int retVal___, int skill_id); +typedef int (*HPMHOOK_pre_skill_get_type) (int *skill_id, int *skill_lv); +typedef int (*HPMHOOK_post_skill_get_type) (int retVal___, int skill_id, int skill_lv); +typedef int (*HPMHOOK_pre_skill_get_hit) (int *skill_id, int *skill_lv); +typedef int (*HPMHOOK_post_skill_get_hit) (int retVal___, int skill_id, int skill_lv); typedef int (*HPMHOOK_pre_skill_get_inf) (int *skill_id); typedef int (*HPMHOOK_post_skill_get_inf) (int retVal___, int skill_id); typedef int (*HPMHOOK_pre_skill_get_ele) (int *skill_id, int *skill_lv); @@ -7204,20 +7252,30 @@ typedef int (*HPMHOOK_pre_skill_get_hp) (int *skill_id, int *skill_lv); typedef int (*HPMHOOK_post_skill_get_hp) (int retVal___, int skill_id, int skill_lv); typedef int (*HPMHOOK_pre_skill_get_mhp) (int *skill_id, int *skill_lv); typedef int (*HPMHOOK_post_skill_get_mhp) (int retVal___, int skill_id, int skill_lv); +typedef int (*HPMHOOK_pre_skill_get_msp) (int *skill_id, int *skill_lv); +typedef int (*HPMHOOK_post_skill_get_msp) (int retVal___, int skill_id, int skill_lv); typedef int (*HPMHOOK_pre_skill_get_sp) (int *skill_id, int *skill_lv); typedef int (*HPMHOOK_post_skill_get_sp) (int retVal___, int skill_id, int skill_lv); typedef int (*HPMHOOK_pre_skill_get_hp_rate) (int *skill_id, int *skill_lv); typedef int (*HPMHOOK_post_skill_get_hp_rate) (int retVal___, int skill_id, int skill_lv); typedef int (*HPMHOOK_pre_skill_get_sp_rate) (int *skill_id, int *skill_lv); typedef int (*HPMHOOK_post_skill_get_sp_rate) (int retVal___, int skill_id, int skill_lv); -typedef int (*HPMHOOK_pre_skill_get_state) (int *skill_id); -typedef int (*HPMHOOK_post_skill_get_state) (int retVal___, int skill_id); +typedef int (*HPMHOOK_pre_skill_get_state) (int *skill_id, int *skill_lv); +typedef int (*HPMHOOK_post_skill_get_state) (int retVal___, int skill_id, int skill_lv); typedef int (*HPMHOOK_pre_skill_get_spiritball) (int *skill_id, int *skill_lv); typedef int (*HPMHOOK_post_skill_get_spiritball) (int retVal___, int skill_id, int skill_lv); typedef int (*HPMHOOK_pre_skill_get_itemid) (int *skill_id, int *item_idx); typedef int (*HPMHOOK_post_skill_get_itemid) (int retVal___, int skill_id, int item_idx); -typedef int (*HPMHOOK_pre_skill_get_itemqty) (int *skill_id, int *item_idx); -typedef int (*HPMHOOK_post_skill_get_itemqty) (int retVal___, int skill_id, int item_idx); +typedef int (*HPMHOOK_pre_skill_get_itemqty) (int *skill_id, int *item_idx, int *skill_lv); +typedef int (*HPMHOOK_post_skill_get_itemqty) (int retVal___, int skill_id, int item_idx, int skill_lv); +typedef bool (*HPMHOOK_pre_skill_get_item_any_flag) (int *skill_id, int *skill_lv); +typedef bool (*HPMHOOK_post_skill_get_item_any_flag) (bool retVal___, int skill_id, int skill_lv); +typedef int (*HPMHOOK_pre_skill_get_equip_id) (int *skill_id, int *item_idx); +typedef int (*HPMHOOK_post_skill_get_equip_id) (int retVal___, int skill_id, int item_idx); +typedef int (*HPMHOOK_pre_skill_get_equip_amount) (int *skill_id, int *item_idx, int *skill_lv); +typedef int (*HPMHOOK_post_skill_get_equip_amount) (int retVal___, int skill_id, int item_idx, int skill_lv); +typedef bool (*HPMHOOK_pre_skill_get_equip_any_flag) (int *skill_id, int *skill_lv); +typedef bool (*HPMHOOK_post_skill_get_equip_any_flag) (bool retVal___, int skill_id, int skill_lv); typedef int (*HPMHOOK_pre_skill_get_zeny) (int *skill_id, int *skill_lv); typedef int (*HPMHOOK_post_skill_get_zeny) (int retVal___, int skill_id, int skill_lv); typedef int (*HPMHOOK_pre_skill_get_num) (int *skill_id, int *skill_lv); @@ -7236,32 +7294,32 @@ typedef int (*HPMHOOK_pre_skill_get_castnodex) (int *skill_id, int *skill_lv); typedef int (*HPMHOOK_post_skill_get_castnodex) (int retVal___, int skill_id, int skill_lv); typedef int (*HPMHOOK_pre_skill_get_delaynodex) (int *skill_id, int *skill_lv); typedef int (*HPMHOOK_post_skill_get_delaynodex) (int retVal___, int skill_id, int skill_lv); -typedef int (*HPMHOOK_pre_skill_get_castdef) (int *skill_id); -typedef int (*HPMHOOK_post_skill_get_castdef) (int retVal___, int skill_id); +typedef int (*HPMHOOK_pre_skill_get_castdef) (int *skill_id, int *skill_lv); +typedef int (*HPMHOOK_post_skill_get_castdef) (int retVal___, int skill_id, int skill_lv); typedef int (*HPMHOOK_pre_skill_get_weapontype) (int *skill_id); typedef int (*HPMHOOK_post_skill_get_weapontype) (int retVal___, int skill_id); typedef int (*HPMHOOK_pre_skill_get_ammotype) (int *skill_id); typedef int (*HPMHOOK_post_skill_get_ammotype) (int retVal___, int skill_id); typedef int (*HPMHOOK_pre_skill_get_ammo_qty) (int *skill_id, int *skill_lv); typedef int (*HPMHOOK_post_skill_get_ammo_qty) (int retVal___, int skill_id, int skill_lv); -typedef int (*HPMHOOK_pre_skill_get_unit_id) (int *skill_id, int *flag); -typedef int (*HPMHOOK_post_skill_get_unit_id) (int retVal___, int skill_id, int flag); +typedef int (*HPMHOOK_pre_skill_get_unit_id) (int *skill_id, int *skill_lv, int *flag); +typedef int (*HPMHOOK_post_skill_get_unit_id) (int retVal___, int skill_id, int skill_lv, int flag); typedef int (*HPMHOOK_pre_skill_get_inf2) (int *skill_id); typedef int (*HPMHOOK_post_skill_get_inf2) (int retVal___, int skill_id); -typedef int (*HPMHOOK_pre_skill_get_castcancel) (int *skill_id); -typedef int (*HPMHOOK_post_skill_get_castcancel) (int retVal___, int skill_id); +typedef int (*HPMHOOK_pre_skill_get_castcancel) (int *skill_id, int *skill_lv); +typedef int (*HPMHOOK_post_skill_get_castcancel) (int retVal___, int skill_id, int skill_lv); typedef int (*HPMHOOK_pre_skill_get_maxcount) (int *skill_id, int *skill_lv); typedef int (*HPMHOOK_post_skill_get_maxcount) (int retVal___, int skill_id, int skill_lv); typedef int (*HPMHOOK_pre_skill_get_blewcount) (int *skill_id, int *skill_lv); typedef int (*HPMHOOK_post_skill_get_blewcount) (int retVal___, int skill_id, int skill_lv); typedef int (*HPMHOOK_pre_skill_get_unit_flag) (int *skill_id); typedef int (*HPMHOOK_post_skill_get_unit_flag) (int retVal___, int skill_id); -typedef int (*HPMHOOK_pre_skill_get_unit_target) (int *skill_id); -typedef int (*HPMHOOK_post_skill_get_unit_target) (int retVal___, int skill_id); -typedef int (*HPMHOOK_pre_skill_get_unit_interval) (int *skill_id); -typedef int (*HPMHOOK_post_skill_get_unit_interval) (int retVal___, int skill_id); -typedef int (*HPMHOOK_pre_skill_get_unit_bl_target) (int *skill_id); -typedef int (*HPMHOOK_post_skill_get_unit_bl_target) (int retVal___, int skill_id); +typedef int (*HPMHOOK_pre_skill_get_unit_target) (int *skill_id, int *skill_lv); +typedef int (*HPMHOOK_post_skill_get_unit_target) (int retVal___, int skill_id, int skill_lv); +typedef int (*HPMHOOK_pre_skill_get_unit_interval) (int *skill_id, int *skill_lv); +typedef int (*HPMHOOK_post_skill_get_unit_interval) (int retVal___, int skill_id, int skill_lv); +typedef int (*HPMHOOK_pre_skill_get_unit_bl_target) (int *skill_id, int *skill_lv); +typedef int (*HPMHOOK_post_skill_get_unit_bl_target) (int retVal___, int skill_id, int skill_lv); typedef int (*HPMHOOK_pre_skill_get_unit_layout_type) (int *skill_id, int *skill_lv); typedef int (*HPMHOOK_post_skill_get_unit_layout_type) (int retVal___, int skill_id, int skill_lv); typedef int (*HPMHOOK_pre_skill_get_unit_range) (int *skill_id, int *skill_lv); @@ -7282,8 +7340,8 @@ typedef bool (*HPMHOOK_pre_skill_is_combo) (int *skill_id); typedef bool (*HPMHOOK_post_skill_is_combo) (bool retVal___, int skill_id); typedef int (*HPMHOOK_pre_skill_name2id) (const char **name); typedef int (*HPMHOOK_post_skill_name2id) (int retVal___, const char *name); -typedef int (*HPMHOOK_pre_skill_isammotype) (struct map_session_data **sd, int *skill_id); -typedef int (*HPMHOOK_post_skill_isammotype) (int retVal___, struct map_session_data *sd, int skill_id); +typedef int (*HPMHOOK_pre_skill_isammotype) (struct map_session_data **sd, int *skill_id, int *skill_lv); +typedef int (*HPMHOOK_post_skill_isammotype) (int retVal___, struct map_session_data *sd, int skill_id, int skill_lv); typedef int (*HPMHOOK_pre_skill_castend_id) (int *tid, int64 *tick, int *id, intptr_t *data); typedef int (*HPMHOOK_post_skill_castend_id) (int retVal___, int tid, int64 tick, int id, intptr_t data); typedef int (*HPMHOOK_pre_skill_castend_pos) (int *tid, int64 *tick, int *id, intptr_t *data); @@ -7314,8 +7372,8 @@ typedef int (*HPMHOOK_pre_skill_delunit) (struct skill_unit **su); typedef int (*HPMHOOK_post_skill_delunit) (int retVal___, struct skill_unit *su); typedef struct skill_unit_group* (*HPMHOOK_pre_skill_init_unitgroup) (struct block_list **src, int *count, uint16 *skill_id, uint16 *skill_lv, int *unit_id, int *limit, int *interval); typedef struct skill_unit_group* (*HPMHOOK_post_skill_init_unitgroup) (struct skill_unit_group* retVal___, struct block_list *src, int count, uint16 skill_id, uint16 skill_lv, int unit_id, int limit, int interval); -typedef int (*HPMHOOK_pre_skill_del_unitgroup) (struct skill_unit_group **group, const char **file, int *line, const char **func); -typedef int (*HPMHOOK_post_skill_del_unitgroup) (int retVal___, struct skill_unit_group *group, const char *file, int line, const char *func); +typedef int (*HPMHOOK_pre_skill_del_unitgroup) (struct skill_unit_group **group); +typedef int (*HPMHOOK_post_skill_del_unitgroup) (int retVal___, struct skill_unit_group *group); typedef int (*HPMHOOK_pre_skill_clear_unitgroup) (struct block_list **src); typedef int (*HPMHOOK_post_skill_clear_unitgroup) (int retVal___, struct block_list *src); typedef int (*HPMHOOK_pre_skill_clear_group) (struct block_list **bl, int *flag); @@ -7332,12 +7390,18 @@ typedef int (*HPMHOOK_pre_skill_vf_cast_fix) (struct block_list **bl, double *ti typedef int (*HPMHOOK_post_skill_vf_cast_fix) (int retVal___, struct block_list *bl, double time, uint16 skill_id, uint16 skill_lv); typedef int (*HPMHOOK_pre_skill_delay_fix) (struct block_list **bl, uint16 *skill_id, uint16 *skill_lv); typedef int (*HPMHOOK_post_skill_delay_fix) (int retVal___, struct block_list *bl, uint16 skill_id, uint16 skill_lv); -typedef bool (*HPMHOOK_pre_skill_is_item_skill) (struct map_session_data **sd, int *skill_id, int *skill_lv); -typedef bool (*HPMHOOK_post_skill_is_item_skill) (bool retVal___, struct map_session_data *sd, int skill_id, int skill_lv); +typedef int (*HPMHOOK_pre_skill_check_condition_required_equip) (struct map_session_data **sd, int *skill_id, int *skill_lv); +typedef int (*HPMHOOK_post_skill_check_condition_required_equip) (int retVal___, struct map_session_data *sd, int skill_id, int skill_lv); typedef int (*HPMHOOK_pre_skill_check_condition_castbegin) (struct map_session_data **sd, uint16 *skill_id, uint16 *skill_lv); typedef int (*HPMHOOK_post_skill_check_condition_castbegin) (int retVal___, struct map_session_data *sd, uint16 skill_id, uint16 skill_lv); +typedef int (*HPMHOOK_pre_skill_check_condition_required_items) (struct map_session_data **sd, int *skill_id, int *skill_lv); +typedef int (*HPMHOOK_post_skill_check_condition_required_items) (int retVal___, struct map_session_data *sd, int skill_id, int skill_lv); +typedef bool (*HPMHOOK_pre_skill_items_required) (struct map_session_data **sd, int *skill_id, int *skill_lv); +typedef bool (*HPMHOOK_post_skill_items_required) (bool retVal___, struct map_session_data *sd, int skill_id, int skill_lv); typedef int (*HPMHOOK_pre_skill_check_condition_castend) (struct map_session_data **sd, uint16 *skill_id, uint16 *skill_lv); typedef int (*HPMHOOK_post_skill_check_condition_castend) (int retVal___, struct map_session_data *sd, uint16 skill_id, uint16 skill_lv); +typedef int (*HPMHOOK_pre_skill_get_any_item_index) (struct map_session_data **sd, int *skill_id, int *skill_lv); +typedef int (*HPMHOOK_post_skill_get_any_item_index) (int retVal___, struct map_session_data *sd, int skill_id, int skill_lv); typedef int (*HPMHOOK_pre_skill_consume_requirement) (struct map_session_data **sd, uint16 *skill_id, uint16 *skill_lv, short *type); typedef int (*HPMHOOK_post_skill_consume_requirement) (int retVal___, struct map_session_data *sd, uint16 skill_id, uint16 skill_lv, short type); typedef struct skill_condition (*HPMHOOK_pre_skill_get_requirement) (struct map_session_data **sd, uint16 *skill_id, uint16 *skill_lv); @@ -7384,6 +7448,8 @@ typedef int (*HPMHOOK_pre_skill_not_ok_hom_unknown) (uint16 *skill_id, struct ho typedef int (*HPMHOOK_post_skill_not_ok_hom_unknown) (int retVal___, uint16 skill_id, struct homun_data *hd); typedef int (*HPMHOOK_pre_skill_not_ok_mercenary) (uint16 *skill_id, struct mercenary_data **md); typedef int (*HPMHOOK_post_skill_not_ok_mercenary) (int retVal___, uint16 skill_id, struct mercenary_data *md); +typedef void (*HPMHOOK_pre_skill_validate_autocast_data) (struct map_session_data **sd, int *skill_id, int *skill_lv); +typedef void (*HPMHOOK_post_skill_validate_autocast_data) (struct map_session_data *sd, int skill_id, int skill_lv); typedef int (*HPMHOOK_pre_skill_chastle_mob_changetarget) (struct block_list **bl, va_list ap); typedef int (*HPMHOOK_post_skill_chastle_mob_changetarget) (int retVal___, struct block_list *bl, va_list ap); typedef int (*HPMHOOK_pre_skill_can_produce_mix) (struct map_session_data **sd, int *nameid, int *trigger, int *qty); @@ -7422,8 +7488,8 @@ typedef int (*HPMHOOK_pre_skill_check_unit_range2) (struct block_list **bl, int typedef int (*HPMHOOK_post_skill_check_unit_range2) (int retVal___, struct block_list *bl, int x, int y, uint16 skill_id, uint16 skill_lv); typedef int (*HPMHOOK_pre_skill_check_unit_range2_sub) (struct block_list **bl, va_list ap); typedef int (*HPMHOOK_post_skill_check_unit_range2_sub) (int retVal___, struct block_list *bl, va_list ap); -typedef void (*HPMHOOK_pre_skill_toggle_magicpower) (struct block_list **bl, uint16 *skill_id); -typedef void (*HPMHOOK_post_skill_toggle_magicpower) (struct block_list *bl, uint16 skill_id); +typedef void (*HPMHOOK_pre_skill_toggle_magicpower) (struct block_list **bl, uint16 *skill_id, int *skill_lv); +typedef void (*HPMHOOK_post_skill_toggle_magicpower) (struct block_list *bl, uint16 skill_id, int skill_lv); typedef int (*HPMHOOK_pre_skill_magic_reflect) (struct block_list **src, struct block_list **bl, int *type); typedef int (*HPMHOOK_post_skill_magic_reflect) (int retVal___, struct block_list *src, struct block_list *bl, int type); typedef int (*HPMHOOK_pre_skill_onskillusage) (struct map_session_data **sd, struct block_list **bl, uint16 *skill_id, int64 *tick); @@ -7504,42 +7570,130 @@ typedef void (*HPMHOOK_pre_skill_init_unit_layout) (void); typedef void (*HPMHOOK_post_skill_init_unit_layout) (void); typedef void (*HPMHOOK_pre_skill_init_unit_layout_unknown) (int *skill_idx, int *pos); typedef void (*HPMHOOK_post_skill_init_unit_layout_unknown) (int skill_idx, int pos); +typedef void (*HPMHOOK_pre_skill_validate_id) (struct config_setting_t **conf, struct s_skill_db **sk, int *conf_index); +typedef void (*HPMHOOK_post_skill_validate_id) (struct config_setting_t *conf, struct s_skill_db *sk, int conf_index); +typedef bool (*HPMHOOK_pre_skill_name_contains_invalid_character) (const char **name); +typedef bool (*HPMHOOK_post_skill_name_contains_invalid_character) (bool retVal___, const char *name); +typedef void (*HPMHOOK_pre_skill_validate_name) (struct config_setting_t **conf, struct s_skill_db **sk); +typedef void (*HPMHOOK_post_skill_validate_name) (struct config_setting_t *conf, struct s_skill_db *sk); +typedef void (*HPMHOOK_pre_skill_validate_max_level) (struct config_setting_t **conf, struct s_skill_db **sk); +typedef void (*HPMHOOK_post_skill_validate_max_level) (struct config_setting_t *conf, struct s_skill_db *sk); +typedef void (*HPMHOOK_pre_skill_validate_description) (struct config_setting_t **conf, struct s_skill_db **sk); +typedef void (*HPMHOOK_post_skill_validate_description) (struct config_setting_t *conf, struct s_skill_db *sk); +typedef void (*HPMHOOK_pre_skill_validate_range) (struct config_setting_t **conf, struct s_skill_db **sk); +typedef void (*HPMHOOK_post_skill_validate_range) (struct config_setting_t *conf, struct s_skill_db *sk); typedef void (*HPMHOOK_pre_skill_validate_hittype) (struct config_setting_t **conf, struct s_skill_db **sk); typedef void (*HPMHOOK_post_skill_validate_hittype) (struct config_setting_t *conf, struct s_skill_db *sk); typedef void (*HPMHOOK_pre_skill_validate_skilltype) (struct config_setting_t **conf, struct s_skill_db **sk); typedef void (*HPMHOOK_post_skill_validate_skilltype) (struct config_setting_t *conf, struct s_skill_db *sk); +typedef void (*HPMHOOK_pre_skill_validate_skillinfo) (struct config_setting_t **conf, struct s_skill_db **sk); +typedef void (*HPMHOOK_post_skill_validate_skillinfo) (struct config_setting_t *conf, struct s_skill_db *sk); typedef void (*HPMHOOK_pre_skill_validate_attacktype) (struct config_setting_t **conf, struct s_skill_db **sk); typedef void (*HPMHOOK_post_skill_validate_attacktype) (struct config_setting_t *conf, struct s_skill_db *sk); typedef void (*HPMHOOK_pre_skill_validate_element) (struct config_setting_t **conf, struct s_skill_db **sk); typedef void (*HPMHOOK_post_skill_validate_element) (struct config_setting_t *conf, struct s_skill_db *sk); -typedef void (*HPMHOOK_pre_skill_validate_skillinfo) (struct config_setting_t **conf, struct s_skill_db **sk); -typedef void (*HPMHOOK_post_skill_validate_skillinfo) (struct config_setting_t *conf, struct s_skill_db *sk); typedef void (*HPMHOOK_pre_skill_validate_damagetype) (struct config_setting_t **conf, struct s_skill_db **sk); typedef void (*HPMHOOK_post_skill_validate_damagetype) (struct config_setting_t *conf, struct s_skill_db *sk); +typedef void (*HPMHOOK_pre_skill_validate_splash_range) (struct config_setting_t **conf, struct s_skill_db **sk); +typedef void (*HPMHOOK_post_skill_validate_splash_range) (struct config_setting_t *conf, struct s_skill_db *sk); +typedef void (*HPMHOOK_pre_skill_validate_number_of_hits) (struct config_setting_t **conf, struct s_skill_db **sk); +typedef void (*HPMHOOK_post_skill_validate_number_of_hits) (struct config_setting_t *conf, struct s_skill_db *sk); +typedef void (*HPMHOOK_pre_skill_validate_interrupt_cast) (struct config_setting_t **conf, struct s_skill_db **sk); +typedef void (*HPMHOOK_post_skill_validate_interrupt_cast) (struct config_setting_t *conf, struct s_skill_db *sk); +typedef void (*HPMHOOK_pre_skill_validate_cast_def_rate) (struct config_setting_t **conf, struct s_skill_db **sk); +typedef void (*HPMHOOK_post_skill_validate_cast_def_rate) (struct config_setting_t *conf, struct s_skill_db *sk); +typedef void (*HPMHOOK_pre_skill_validate_number_of_instances) (struct config_setting_t **conf, struct s_skill_db **sk); +typedef void (*HPMHOOK_post_skill_validate_number_of_instances) (struct config_setting_t *conf, struct s_skill_db *sk); +typedef void (*HPMHOOK_pre_skill_validate_knock_back_tiles) (struct config_setting_t **conf, struct s_skill_db **sk); +typedef void (*HPMHOOK_post_skill_validate_knock_back_tiles) (struct config_setting_t *conf, struct s_skill_db *sk); +typedef void (*HPMHOOK_pre_skill_validate_cast_time) (struct config_setting_t **conf, struct s_skill_db **sk); +typedef void (*HPMHOOK_post_skill_validate_cast_time) (struct config_setting_t *conf, struct s_skill_db *sk); +typedef void (*HPMHOOK_pre_skill_validate_act_delay) (struct config_setting_t **conf, struct s_skill_db **sk); +typedef void (*HPMHOOK_post_skill_validate_act_delay) (struct config_setting_t *conf, struct s_skill_db *sk); +typedef void (*HPMHOOK_pre_skill_validate_walk_delay) (struct config_setting_t **conf, struct s_skill_db **sk); +typedef void (*HPMHOOK_post_skill_validate_walk_delay) (struct config_setting_t *conf, struct s_skill_db *sk); +typedef void (*HPMHOOK_pre_skill_validate_skill_data1) (struct config_setting_t **conf, struct s_skill_db **sk); +typedef void (*HPMHOOK_post_skill_validate_skill_data1) (struct config_setting_t *conf, struct s_skill_db *sk); +typedef void (*HPMHOOK_pre_skill_validate_skill_data2) (struct config_setting_t **conf, struct s_skill_db **sk); +typedef void (*HPMHOOK_post_skill_validate_skill_data2) (struct config_setting_t *conf, struct s_skill_db *sk); +typedef void (*HPMHOOK_pre_skill_validate_cooldown) (struct config_setting_t **conf, struct s_skill_db **sk); +typedef void (*HPMHOOK_post_skill_validate_cooldown) (struct config_setting_t *conf, struct s_skill_db *sk); +typedef void (*HPMHOOK_pre_skill_validate_fixed_cast_time) (struct config_setting_t **conf, struct s_skill_db **sk); +typedef void (*HPMHOOK_post_skill_validate_fixed_cast_time) (struct config_setting_t *conf, struct s_skill_db *sk); typedef void (*HPMHOOK_pre_skill_validate_castnodex) (struct config_setting_t **conf, struct s_skill_db **sk, bool *delay); typedef void (*HPMHOOK_post_skill_validate_castnodex) (struct config_setting_t *conf, struct s_skill_db *sk, bool delay); +typedef void (*HPMHOOK_pre_skill_validate_hp_cost) (struct config_setting_t **conf, struct s_skill_db **sk); +typedef void (*HPMHOOK_post_skill_validate_hp_cost) (struct config_setting_t *conf, struct s_skill_db *sk); +typedef void (*HPMHOOK_pre_skill_validate_sp_cost) (struct config_setting_t **conf, struct s_skill_db **sk); +typedef void (*HPMHOOK_post_skill_validate_sp_cost) (struct config_setting_t *conf, struct s_skill_db *sk); +typedef void (*HPMHOOK_pre_skill_validate_hp_rate_cost) (struct config_setting_t **conf, struct s_skill_db **sk); +typedef void (*HPMHOOK_post_skill_validate_hp_rate_cost) (struct config_setting_t *conf, struct s_skill_db *sk); +typedef void (*HPMHOOK_pre_skill_validate_sp_rate_cost) (struct config_setting_t **conf, struct s_skill_db **sk); +typedef void (*HPMHOOK_post_skill_validate_sp_rate_cost) (struct config_setting_t *conf, struct s_skill_db *sk); +typedef void (*HPMHOOK_pre_skill_validate_max_hp_trigger) (struct config_setting_t **conf, struct s_skill_db **sk); +typedef void (*HPMHOOK_post_skill_validate_max_hp_trigger) (struct config_setting_t *conf, struct s_skill_db *sk); +typedef void (*HPMHOOK_pre_skill_validate_max_sp_trigger) (struct config_setting_t **conf, struct s_skill_db **sk); +typedef void (*HPMHOOK_post_skill_validate_max_sp_trigger) (struct config_setting_t *conf, struct s_skill_db *sk); +typedef void (*HPMHOOK_pre_skill_validate_zeny_cost) (struct config_setting_t **conf, struct s_skill_db **sk); +typedef void (*HPMHOOK_post_skill_validate_zeny_cost) (struct config_setting_t *conf, struct s_skill_db *sk); +typedef int (*HPMHOOK_pre_skill_validate_weapontype_sub) (const char **type, bool *on, struct s_skill_db **sk); +typedef int (*HPMHOOK_post_skill_validate_weapontype_sub) (int retVal___, const char *type, bool on, struct s_skill_db *sk); typedef void (*HPMHOOK_pre_skill_validate_weapontype) (struct config_setting_t **conf, struct s_skill_db **sk); typedef void (*HPMHOOK_post_skill_validate_weapontype) (struct config_setting_t *conf, struct s_skill_db *sk); +typedef int (*HPMHOOK_pre_skill_validate_ammotype_sub) (const char **type, bool *on, struct s_skill_db **sk); +typedef int (*HPMHOOK_post_skill_validate_ammotype_sub) (int retVal___, const char *type, bool on, struct s_skill_db *sk); typedef void (*HPMHOOK_pre_skill_validate_ammotype) (struct config_setting_t **conf, struct s_skill_db **sk); typedef void (*HPMHOOK_post_skill_validate_ammotype) (struct config_setting_t *conf, struct s_skill_db *sk); +typedef void (*HPMHOOK_pre_skill_validate_ammo_amount) (struct config_setting_t **conf, struct s_skill_db **sk); +typedef void (*HPMHOOK_post_skill_validate_ammo_amount) (struct config_setting_t *conf, struct s_skill_db *sk); +typedef int (*HPMHOOK_pre_skill_validate_state_sub) (const char **state); +typedef int (*HPMHOOK_post_skill_validate_state_sub) (int retVal___, const char *state); typedef void (*HPMHOOK_pre_skill_validate_state) (struct config_setting_t **conf, struct s_skill_db **sk); typedef void (*HPMHOOK_post_skill_validate_state) (struct config_setting_t *conf, struct s_skill_db *sk); +typedef void (*HPMHOOK_pre_skill_validate_spirit_sphere_cost) (struct config_setting_t **conf, struct s_skill_db **sk); +typedef void (*HPMHOOK_post_skill_validate_spirit_sphere_cost) (struct config_setting_t *conf, struct s_skill_db *sk); +typedef void (*HPMHOOK_pre_skill_validate_item_requirements_sub_item_amount) (struct config_setting_t **conf, struct s_skill_db **sk, int *item_index); +typedef void (*HPMHOOK_post_skill_validate_item_requirements_sub_item_amount) (struct config_setting_t *conf, struct s_skill_db *sk, int item_index); +typedef void (*HPMHOOK_pre_skill_validate_item_requirements_sub_items) (struct config_setting_t **conf, struct s_skill_db **sk); +typedef void (*HPMHOOK_post_skill_validate_item_requirements_sub_items) (struct config_setting_t *conf, struct s_skill_db *sk); +typedef void (*HPMHOOK_pre_skill_validate_item_requirements_sub_any_flag) (struct config_setting_t **conf, struct s_skill_db **sk); +typedef void (*HPMHOOK_post_skill_validate_item_requirements_sub_any_flag) (struct config_setting_t *conf, struct s_skill_db *sk); typedef void (*HPMHOOK_pre_skill_validate_item_requirements) (struct config_setting_t **conf, struct s_skill_db **sk); typedef void (*HPMHOOK_post_skill_validate_item_requirements) (struct config_setting_t *conf, struct s_skill_db *sk); -typedef void (*HPMHOOK_pre_skill_validate_unit_target) (struct config_setting_t **conf, struct s_skill_db **sk); -typedef void (*HPMHOOK_post_skill_validate_unit_target) (struct config_setting_t *conf, struct s_skill_db *sk); +typedef void (*HPMHOOK_pre_skill_validate_equip_requirements_sub_item_amount) (struct config_setting_t **conf, struct s_skill_db **sk, int *item_index); +typedef void (*HPMHOOK_post_skill_validate_equip_requirements_sub_item_amount) (struct config_setting_t *conf, struct s_skill_db *sk, int item_index); +typedef void (*HPMHOOK_pre_skill_validate_equip_requirements_sub_items) (struct config_setting_t **conf, struct s_skill_db **sk); +typedef void (*HPMHOOK_post_skill_validate_equip_requirements_sub_items) (struct config_setting_t *conf, struct s_skill_db *sk); +typedef void (*HPMHOOK_pre_skill_validate_equip_requirements_sub_any_flag) (struct config_setting_t **conf, struct s_skill_db **sk); +typedef void (*HPMHOOK_post_skill_validate_equip_requirements_sub_any_flag) (struct config_setting_t *conf, struct s_skill_db *sk); +typedef void (*HPMHOOK_pre_skill_validate_equip_requirements) (struct config_setting_t **conf, struct s_skill_db **sk); +typedef void (*HPMHOOK_post_skill_validate_equip_requirements) (struct config_setting_t *conf, struct s_skill_db *sk); +typedef int (*HPMHOOK_pre_skill_validate_requirements_item_name) (const char **name); +typedef int (*HPMHOOK_post_skill_validate_requirements_item_name) (int retVal___, const char *name); +typedef void (*HPMHOOK_pre_skill_validate_requirements) (struct config_setting_t **conf, struct s_skill_db **sk); +typedef void (*HPMHOOK_post_skill_validate_requirements) (struct config_setting_t *conf, struct s_skill_db *sk); +typedef int (*HPMHOOK_pre_skill_validate_unit_id_sub) (int *unit_id); +typedef int (*HPMHOOK_post_skill_validate_unit_id_sub) (int retVal___, int unit_id); +typedef void (*HPMHOOK_pre_skill_validate_unit_id) (struct config_setting_t **conf, struct s_skill_db **sk); +typedef void (*HPMHOOK_post_skill_validate_unit_id) (struct config_setting_t *conf, struct s_skill_db *sk); +typedef void (*HPMHOOK_pre_skill_validate_unit_layout) (struct config_setting_t **conf, struct s_skill_db **sk); +typedef void (*HPMHOOK_post_skill_validate_unit_layout) (struct config_setting_t *conf, struct s_skill_db *sk); +typedef void (*HPMHOOK_pre_skill_validate_unit_range) (struct config_setting_t **conf, struct s_skill_db **sk); +typedef void (*HPMHOOK_post_skill_validate_unit_range) (struct config_setting_t *conf, struct s_skill_db *sk); +typedef void (*HPMHOOK_pre_skill_validate_unit_interval) (struct config_setting_t **conf, struct s_skill_db **sk); +typedef void (*HPMHOOK_post_skill_validate_unit_interval) (struct config_setting_t *conf, struct s_skill_db *sk); +typedef int (*HPMHOOK_pre_skill_validate_unit_flag_sub) (const char **type, bool *on, struct s_skill_db **sk); +typedef int (*HPMHOOK_post_skill_validate_unit_flag_sub) (int retVal___, const char *type, bool on, struct s_skill_db *sk); typedef void (*HPMHOOK_pre_skill_validate_unit_flag) (struct config_setting_t **conf, struct s_skill_db **sk); typedef void (*HPMHOOK_post_skill_validate_unit_flag) (struct config_setting_t *conf, struct s_skill_db *sk); +typedef int (*HPMHOOK_pre_skill_validate_unit_target_sub) (const char **target); +typedef int (*HPMHOOK_post_skill_validate_unit_target_sub) (int retVal___, const char *target); +typedef void (*HPMHOOK_pre_skill_validate_unit_target) (struct config_setting_t **conf, struct s_skill_db **sk); +typedef void (*HPMHOOK_post_skill_validate_unit_target) (struct config_setting_t *conf, struct s_skill_db *sk); +typedef void (*HPMHOOK_pre_skill_validate_unit) (struct config_setting_t **conf, struct s_skill_db **sk); +typedef void (*HPMHOOK_post_skill_validate_unit) (struct config_setting_t *conf, struct s_skill_db *sk); typedef void (*HPMHOOK_pre_skill_validate_additional_fields) (struct config_setting_t **conf, struct s_skill_db **sk); typedef void (*HPMHOOK_post_skill_validate_additional_fields) (struct config_setting_t *conf, struct s_skill_db *sk); -typedef bool (*HPMHOOK_pre_skill_validate_skilldb) (struct s_skill_db **skt, const char **source); -typedef bool (*HPMHOOK_post_skill_validate_skilldb) (bool retVal___, struct s_skill_db *skt, const char *source); -typedef int (*HPMHOOK_pre_skill_validate_weapontype_sub) (const char **type, bool *on, struct s_skill_db **sk); -typedef int (*HPMHOOK_post_skill_validate_weapontype_sub) (int retVal___, const char *type, bool on, struct s_skill_db *sk); -typedef int (*HPMHOOK_pre_skill_validate_ammotype_sub) (const char **type, bool *on, struct s_skill_db **sk); -typedef int (*HPMHOOK_post_skill_validate_ammotype_sub) (int retVal___, const char *type, bool on, struct s_skill_db *sk); -typedef int (*HPMHOOK_pre_skill_validate_unit_flag_sub) (const char **type, bool *on, struct s_skill_db **sk); -typedef int (*HPMHOOK_post_skill_validate_unit_flag_sub) (int retVal___, const char *type, bool on, struct s_skill_db *sk); typedef bool (*HPMHOOK_pre_skill_read_skilldb) (const char **filename); typedef bool (*HPMHOOK_post_skill_read_skilldb) (bool retVal___, const char *filename); typedef void (*HPMHOOK_pre_skill_config_set_level) (struct config_setting_t **conf, int **arr); @@ -7662,6 +7816,8 @@ typedef int (*HPMHOOK_pre_skill_check_npc_chaospanic) (struct block_list **bl, v typedef int (*HPMHOOK_post_skill_check_npc_chaospanic) (int retVal___, struct block_list *bl, va_list args); typedef int (*HPMHOOK_pre_skill_count_wos) (struct block_list **bl, va_list ap); typedef int (*HPMHOOK_post_skill_count_wos) (int retVal___, struct block_list *bl, va_list ap); +typedef int (*HPMHOOK_pre_skill_get_linked_song_dance_id) (int *skill_id); +typedef int (*HPMHOOK_post_skill_get_linked_song_dance_id) (int retVal___, int skill_id); #endif // MAP_SKILL_H #ifdef COMMON_SOCKET_H /* sockt */ typedef void (*HPMHOOK_pre_sockt_init) (void); @@ -7872,8 +8028,8 @@ typedef int (*HPMHOOK_pre_status_change_start) (struct block_list **src, struct typedef int (*HPMHOOK_post_status_change_start) (int retVal___, struct block_list *src, struct block_list *bl, enum sc_type type, int rate, int val1, int val2, int val3, int val4, int tick, int flag); typedef int (*HPMHOOK_pre_status_change_start_sub) (struct block_list **src, struct block_list **bl, enum sc_type *type, int *rate, int *val1, int *val2, int *val3, int *val4, int *tick, int *total_tick, int *flag); typedef int (*HPMHOOK_post_status_change_start_sub) (int retVal___, struct block_list *src, struct block_list *bl, enum sc_type type, int rate, int val1, int val2, int val3, int val4, int tick, int total_tick, int flag); -typedef int (*HPMHOOK_pre_status_change_end_) (struct block_list **bl, enum sc_type *type, int *tid, const char **file, int *line); -typedef int (*HPMHOOK_post_status_change_end_) (int retVal___, struct block_list *bl, enum sc_type type, int tid, const char *file, int line); +typedef int (*HPMHOOK_pre_status_change_end_) (struct block_list **bl, enum sc_type *type, int *tid); +typedef int (*HPMHOOK_post_status_change_end_) (int retVal___, struct block_list *bl, enum sc_type type, int tid); typedef bool (*HPMHOOK_pre_status_is_immune_to_status) (struct status_change **sc, enum sc_type *type); typedef bool (*HPMHOOK_post_status_is_immune_to_status) (bool retVal___, struct status_change *sc, enum sc_type type); typedef bool (*HPMHOOK_pre_status_is_boss_resist_sc) (enum sc_type *type); diff --git a/src/plugins/HPMHooking/HPMHooking_char.HPMHooksCore.inc b/src/plugins/HPMHooking/HPMHooking_char.HPMHooksCore.inc index 20f57dcb9..ab34a4f18 100644 --- a/src/plugins/HPMHooking/HPMHooking_char.HPMHooksCore.inc +++ b/src/plugins/HPMHooking/HPMHooking_char.HPMHooksCore.inc @@ -1308,6 +1308,10 @@ struct { struct HPMHookPoint *HP_mutex_cond_signal_post; struct HPMHookPoint *HP_mutex_cond_broadcast_pre; struct HPMHookPoint *HP_mutex_cond_broadcast_post; + struct HPMHookPoint *HP_nullpo_init_pre; + struct HPMHookPoint *HP_nullpo_init_post; + struct HPMHookPoint *HP_nullpo_final_pre; + struct HPMHookPoint *HP_nullpo_final_post; struct HPMHookPoint *HP_nullpo_assert_report_pre; struct HPMHookPoint *HP_nullpo_assert_report_post; struct HPMHookPoint *HP_packets_init_pre; @@ -2933,6 +2937,10 @@ struct { int HP_mutex_cond_signal_post; int HP_mutex_cond_broadcast_pre; int HP_mutex_cond_broadcast_post; + int HP_nullpo_init_pre; + int HP_nullpo_init_post; + int HP_nullpo_final_pre; + int HP_nullpo_final_post; int HP_nullpo_assert_report_pre; int HP_nullpo_assert_report_post; int HP_packets_init_pre; diff --git a/src/plugins/HPMHooking/HPMHooking_char.HookingPoints.inc b/src/plugins/HPMHooking/HPMHooking_char.HookingPoints.inc index e8e211f8b..238580b83 100644 --- a/src/plugins/HPMHooking/HPMHooking_char.HookingPoints.inc +++ b/src/plugins/HPMHooking/HPMHooking_char.HookingPoints.inc @@ -696,6 +696,8 @@ struct HookingPointData HookingPoints[] = { { HP_POP(mutex->cond_signal, HP_mutex_cond_signal) }, { HP_POP(mutex->cond_broadcast, HP_mutex_cond_broadcast) }, /* nullpo_interface */ + { HP_POP(nullpo->init, HP_nullpo_init) }, + { HP_POP(nullpo->final, HP_nullpo_final) }, { HP_POP(nullpo->assert_report, HP_nullpo_assert_report) }, /* packets_interface */ { HP_POP(packets->init, HP_packets_init) }, diff --git a/src/plugins/HPMHooking/HPMHooking_char.Hooks.inc b/src/plugins/HPMHooking/HPMHooking_char.Hooks.inc index a022abb54..8c1dec681 100644 --- a/src/plugins/HPMHooking/HPMHooking_char.Hooks.inc +++ b/src/plugins/HPMHooking/HPMHooking_char.Hooks.inc @@ -17160,6 +17160,58 @@ void HP_mutex_cond_broadcast(struct cond_data *c) { return; } /* nullpo_interface */ +void HP_nullpo_init(void) { + int hIndex = 0; + if (HPMHooks.count.HP_nullpo_init_pre > 0) { + void (*preHookFunc) (void); + *HPMforce_return = false; + for (hIndex = 0; hIndex < HPMHooks.count.HP_nullpo_init_pre; hIndex++) { + preHookFunc = HPMHooks.list.HP_nullpo_init_pre[hIndex].func; + preHookFunc(); + } + if (*HPMforce_return) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.nullpo.init(); + } + if (HPMHooks.count.HP_nullpo_init_post > 0) { + void (*postHookFunc) (void); + for (hIndex = 0; hIndex < HPMHooks.count.HP_nullpo_init_post; hIndex++) { + postHookFunc = HPMHooks.list.HP_nullpo_init_post[hIndex].func; + postHookFunc(); + } + } + return; +} +void HP_nullpo_final(void) { + int hIndex = 0; + if (HPMHooks.count.HP_nullpo_final_pre > 0) { + void (*preHookFunc) (void); + *HPMforce_return = false; + for (hIndex = 0; hIndex < HPMHooks.count.HP_nullpo_final_pre; hIndex++) { + preHookFunc = HPMHooks.list.HP_nullpo_final_pre[hIndex].func; + preHookFunc(); + } + if (*HPMforce_return) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.nullpo.final(); + } + if (HPMHooks.count.HP_nullpo_final_post > 0) { + void (*postHookFunc) (void); + for (hIndex = 0; hIndex < HPMHooks.count.HP_nullpo_final_post; hIndex++) { + postHookFunc = HPMHooks.list.HP_nullpo_final_post[hIndex].func; + postHookFunc(); + } + } + return; +} void HP_nullpo_assert_report(const char *file, int line, const char *func, const char *targetname, const char *title) { int hIndex = 0; if (HPMHooks.count.HP_nullpo_assert_report_pre > 0) { diff --git a/src/plugins/HPMHooking/HPMHooking_login.HPMHooksCore.inc b/src/plugins/HPMHooking/HPMHooking_login.HPMHooksCore.inc index c638a1ef6..2875df334 100644 --- a/src/plugins/HPMHooking/HPMHooking_login.HPMHooksCore.inc +++ b/src/plugins/HPMHooking/HPMHooking_login.HPMHooksCore.inc @@ -520,6 +520,10 @@ struct { struct HPMHookPoint *HP_mutex_cond_signal_post; struct HPMHookPoint *HP_mutex_cond_broadcast_pre; struct HPMHookPoint *HP_mutex_cond_broadcast_post; + struct HPMHookPoint *HP_nullpo_init_pre; + struct HPMHookPoint *HP_nullpo_init_post; + struct HPMHookPoint *HP_nullpo_final_pre; + struct HPMHookPoint *HP_nullpo_final_post; struct HPMHookPoint *HP_nullpo_assert_report_pre; struct HPMHookPoint *HP_nullpo_assert_report_post; struct HPMHookPoint *HP_packets_init_pre; @@ -1325,6 +1329,10 @@ struct { int HP_mutex_cond_signal_post; int HP_mutex_cond_broadcast_pre; int HP_mutex_cond_broadcast_post; + int HP_nullpo_init_pre; + int HP_nullpo_init_post; + int HP_nullpo_final_pre; + int HP_nullpo_final_post; int HP_nullpo_assert_report_pre; int HP_nullpo_assert_report_post; int HP_packets_init_pre; diff --git a/src/plugins/HPMHooking/HPMHooking_login.HookingPoints.inc b/src/plugins/HPMHooking/HPMHooking_login.HookingPoints.inc index ef6081f41..61864325b 100644 --- a/src/plugins/HPMHooking/HPMHooking_login.HookingPoints.inc +++ b/src/plugins/HPMHooking/HPMHooking_login.HookingPoints.inc @@ -290,6 +290,8 @@ struct HookingPointData HookingPoints[] = { { HP_POP(mutex->cond_signal, HP_mutex_cond_signal) }, { HP_POP(mutex->cond_broadcast, HP_mutex_cond_broadcast) }, /* nullpo_interface */ + { HP_POP(nullpo->init, HP_nullpo_init) }, + { HP_POP(nullpo->final, HP_nullpo_final) }, { HP_POP(nullpo->assert_report, HP_nullpo_assert_report) }, /* packets_interface */ { HP_POP(packets->init, HP_packets_init) }, diff --git a/src/plugins/HPMHooking/HPMHooking_login.Hooks.inc b/src/plugins/HPMHooking/HPMHooking_login.Hooks.inc index 20c709bce..1c1817276 100644 --- a/src/plugins/HPMHooking/HPMHooking_login.Hooks.inc +++ b/src/plugins/HPMHooking/HPMHooking_login.Hooks.inc @@ -6638,6 +6638,58 @@ void HP_mutex_cond_broadcast(struct cond_data *c) { return; } /* nullpo_interface */ +void HP_nullpo_init(void) { + int hIndex = 0; + if (HPMHooks.count.HP_nullpo_init_pre > 0) { + void (*preHookFunc) (void); + *HPMforce_return = false; + for (hIndex = 0; hIndex < HPMHooks.count.HP_nullpo_init_pre; hIndex++) { + preHookFunc = HPMHooks.list.HP_nullpo_init_pre[hIndex].func; + preHookFunc(); + } + if (*HPMforce_return) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.nullpo.init(); + } + if (HPMHooks.count.HP_nullpo_init_post > 0) { + void (*postHookFunc) (void); + for (hIndex = 0; hIndex < HPMHooks.count.HP_nullpo_init_post; hIndex++) { + postHookFunc = HPMHooks.list.HP_nullpo_init_post[hIndex].func; + postHookFunc(); + } + } + return; +} +void HP_nullpo_final(void) { + int hIndex = 0; + if (HPMHooks.count.HP_nullpo_final_pre > 0) { + void (*preHookFunc) (void); + *HPMforce_return = false; + for (hIndex = 0; hIndex < HPMHooks.count.HP_nullpo_final_pre; hIndex++) { + preHookFunc = HPMHooks.list.HP_nullpo_final_pre[hIndex].func; + preHookFunc(); + } + if (*HPMforce_return) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.nullpo.final(); + } + if (HPMHooks.count.HP_nullpo_final_post > 0) { + void (*postHookFunc) (void); + for (hIndex = 0; hIndex < HPMHooks.count.HP_nullpo_final_post; hIndex++) { + postHookFunc = HPMHooks.list.HP_nullpo_final_post[hIndex].func; + postHookFunc(); + } + } + return; +} void HP_nullpo_assert_report(const char *file, int line, const char *func, const char *targetname, const char *title) { int hIndex = 0; if (HPMHooks.count.HP_nullpo_assert_report_pre > 0) { diff --git a/src/plugins/HPMHooking/HPMHooking_map.HPMHooksCore.inc b/src/plugins/HPMHooking/HPMHooking_map.HPMHooksCore.inc index f94606bab..60d8b7e20 100644 --- a/src/plugins/HPMHooking/HPMHooking_map.HPMHooksCore.inc +++ b/src/plugins/HPMHooking/HPMHooking_map.HPMHooksCore.inc @@ -1000,6 +1000,10 @@ struct { struct HPMHookPoint *HP_clif_chatname_ack_post; struct HPMHookPoint *HP_clif_elemname_ack_pre; struct HPMHookPoint *HP_clif_elemname_ack_post; + struct HPMHookPoint *HP_clif_skillname_ack_pre; + struct HPMHookPoint *HP_clif_skillname_ack_post; + struct HPMHookPoint *HP_clif_itemname_ack_pre; + struct HPMHookPoint *HP_clif_itemname_ack_post; struct HPMHookPoint *HP_clif_unknownname_ack_pre; struct HPMHookPoint *HP_clif_unknownname_ack_post; struct HPMHookPoint *HP_clif_monster_hp_bar_pre; @@ -2352,6 +2356,14 @@ struct { struct HPMHookPoint *HP_clif_plapineDdukDdak_ack_post; struct HPMHookPoint *HP_clif_plapineDdukDdak_close_pre; struct HPMHookPoint *HP_clif_plapineDdukDdak_close_post; + struct HPMHookPoint *HP_clif_lapineUpgrade_open_pre; + struct HPMHookPoint *HP_clif_lapineUpgrade_open_post; + struct HPMHookPoint *HP_clif_lapineUpgrade_result_pre; + struct HPMHookPoint *HP_clif_lapineUpgrade_result_post; + struct HPMHookPoint *HP_clif_pLapineUpgrade_close_pre; + struct HPMHookPoint *HP_clif_pLapineUpgrade_close_post; + struct HPMHookPoint *HP_clif_pLapineUpgrade_makeItem_pre; + struct HPMHookPoint *HP_clif_pLapineUpgrade_makeItem_post; struct HPMHookPoint *HP_clif_pReqGearOff_pre; struct HPMHookPoint *HP_clif_pReqGearOff_post; struct HPMHookPoint *HP_cmdline_init_pre; @@ -3816,20 +3828,32 @@ struct { struct HPMHookPoint *HP_mapit_prev_post; struct HPMHookPoint *HP_mapit_exists_pre; struct HPMHookPoint *HP_mapit_exists_post; - struct HPMHookPoint *HP_mapreg_init_pre; - struct HPMHookPoint *HP_mapreg_init_post; - struct HPMHookPoint *HP_mapreg_final_pre; - struct HPMHookPoint *HP_mapreg_final_post; struct HPMHookPoint *HP_mapreg_readreg_pre; struct HPMHookPoint *HP_mapreg_readreg_post; struct HPMHookPoint *HP_mapreg_readregstr_pre; struct HPMHookPoint *HP_mapreg_readregstr_post; + struct HPMHookPoint *HP_mapreg_set_num_db_pre; + struct HPMHookPoint *HP_mapreg_set_num_db_post; + struct HPMHookPoint *HP_mapreg_delete_num_db_pre; + struct HPMHookPoint *HP_mapreg_delete_num_db_post; struct HPMHookPoint *HP_mapreg_setreg_pre; struct HPMHookPoint *HP_mapreg_setreg_post; + struct HPMHookPoint *HP_mapreg_set_str_db_pre; + struct HPMHookPoint *HP_mapreg_set_str_db_post; + struct HPMHookPoint *HP_mapreg_delete_str_db_pre; + struct HPMHookPoint *HP_mapreg_delete_str_db_post; struct HPMHookPoint *HP_mapreg_setregstr_pre; struct HPMHookPoint *HP_mapreg_setregstr_post; + struct HPMHookPoint *HP_mapreg_load_num_db_pre; + struct HPMHookPoint *HP_mapreg_load_num_db_post; + struct HPMHookPoint *HP_mapreg_load_str_db_pre; + struct HPMHookPoint *HP_mapreg_load_str_db_post; struct HPMHookPoint *HP_mapreg_load_pre; struct HPMHookPoint *HP_mapreg_load_post; + struct HPMHookPoint *HP_mapreg_save_num_db_pre; + struct HPMHookPoint *HP_mapreg_save_num_db_post; + struct HPMHookPoint *HP_mapreg_save_str_db_pre; + struct HPMHookPoint *HP_mapreg_save_str_db_post; struct HPMHookPoint *HP_mapreg_save_pre; struct HPMHookPoint *HP_mapreg_save_post; struct HPMHookPoint *HP_mapreg_save_timer_pre; @@ -3838,8 +3862,12 @@ struct { struct HPMHookPoint *HP_mapreg_destroyreg_post; struct HPMHookPoint *HP_mapreg_reload_pre; struct HPMHookPoint *HP_mapreg_reload_post; - struct HPMHookPoint *HP_mapreg_config_read_pre; - struct HPMHookPoint *HP_mapreg_config_read_post; + struct HPMHookPoint *HP_mapreg_config_read_registry_pre; + struct HPMHookPoint *HP_mapreg_config_read_registry_post; + struct HPMHookPoint *HP_mapreg_final_pre; + struct HPMHookPoint *HP_mapreg_final_post; + struct HPMHookPoint *HP_mapreg_init_pre; + struct HPMHookPoint *HP_mapreg_init_post; struct HPMHookPoint *HP_md5_string_pre; struct HPMHookPoint *HP_md5_string_post; struct HPMHookPoint *HP_md5_binary_pre; @@ -4420,6 +4448,10 @@ struct { struct HPMHookPoint *HP_npc_questinfo_clear_post; struct HPMHookPoint *HP_npc_secure_timeout_timer_pre; struct HPMHookPoint *HP_npc_secure_timeout_timer_post; + struct HPMHookPoint *HP_nullpo_init_pre; + struct HPMHookPoint *HP_nullpo_init_post; + struct HPMHookPoint *HP_nullpo_final_pre; + struct HPMHookPoint *HP_nullpo_final_post; struct HPMHookPoint *HP_nullpo_assert_report_pre; struct HPMHookPoint *HP_nullpo_assert_report_post; struct HPMHookPoint *HP_packets_init_pre; @@ -4764,8 +4796,14 @@ struct { struct HPMHookPoint *HP_pc_checkitem_post; struct HPMHookPoint *HP_pc_useitem_pre; struct HPMHookPoint *HP_pc_useitem_post; - struct HPMHookPoint *HP_pc_itemskill_clear_pre; - struct HPMHookPoint *HP_pc_itemskill_clear_post; + struct HPMHookPoint *HP_pc_autocast_clear_current_pre; + struct HPMHookPoint *HP_pc_autocast_clear_current_post; + struct HPMHookPoint *HP_pc_autocast_clear_pre; + struct HPMHookPoint *HP_pc_autocast_clear_post; + struct HPMHookPoint *HP_pc_autocast_set_current_pre; + struct HPMHookPoint *HP_pc_autocast_set_current_post; + struct HPMHookPoint *HP_pc_autocast_remove_pre; + struct HPMHookPoint *HP_pc_autocast_remove_post; struct HPMHookPoint *HP_pc_skillatk_bonus_pre; struct HPMHookPoint *HP_pc_skillatk_bonus_post; struct HPMHookPoint *HP_pc_skillheal_bonus_pre; @@ -4786,6 +4824,10 @@ struct { struct HPMHookPoint *HP_pc_percentheal_post; struct HPMHookPoint *HP_pc_jobchange_pre; struct HPMHookPoint *HP_pc_jobchange_post; + struct HPMHookPoint *HP_pc_hide_pre; + struct HPMHookPoint *HP_pc_hide_post; + struct HPMHookPoint *HP_pc_unhide_pre; + struct HPMHookPoint *HP_pc_unhide_post; struct HPMHookPoint *HP_pc_setoption_pre; struct HPMHookPoint *HP_pc_setoption_post; struct HPMHookPoint *HP_pc_setcart_pre; @@ -5072,6 +5114,8 @@ struct { struct HPMHookPoint *HP_pet_final_post; struct HPMHookPoint *HP_pet_hungry_val_pre; struct HPMHookPoint *HP_pet_hungry_val_post; + struct HPMHookPoint *HP_pet_set_hunger_pre; + struct HPMHookPoint *HP_pet_set_hunger_post; struct HPMHookPoint *HP_pet_set_intimate_pre; struct HPMHookPoint *HP_pet_set_intimate_post; struct HPMHookPoint *HP_pet_create_egg_pre; @@ -5432,6 +5476,8 @@ struct { struct HPMHookPoint *HP_script_parse_syntax_close_sub_post; struct HPMHookPoint *HP_script_parse_syntax_pre; struct HPMHookPoint *HP_script_parse_syntax_post; + struct HPMHookPoint *HP_script_parse_syntax_function_pre; + struct HPMHookPoint *HP_script_parse_syntax_function_post; struct HPMHookPoint *HP_script_get_com_pre; struct HPMHookPoint *HP_script_get_com_post; struct HPMHookPoint *HP_script_get_num_pre; @@ -5496,6 +5542,8 @@ struct { struct HPMHookPoint *HP_script_print_line_post; struct HPMHookPoint *HP_script_errorwarning_sub_pre; struct HPMHookPoint *HP_script_errorwarning_sub_post; + struct HPMHookPoint *HP_script_is_permanent_variable_pre; + struct HPMHookPoint *HP_script_is_permanent_variable_post; struct HPMHookPoint *HP_script_set_reg_pre; struct HPMHookPoint *HP_script_set_reg_post; struct HPMHookPoint *HP_script_set_reg_ref_str_pre; @@ -5728,6 +5776,8 @@ struct { struct HPMHookPoint *HP_skill_get_hp_post; struct HPMHookPoint *HP_skill_get_mhp_pre; struct HPMHookPoint *HP_skill_get_mhp_post; + struct HPMHookPoint *HP_skill_get_msp_pre; + struct HPMHookPoint *HP_skill_get_msp_post; struct HPMHookPoint *HP_skill_get_sp_pre; struct HPMHookPoint *HP_skill_get_sp_post; struct HPMHookPoint *HP_skill_get_hp_rate_pre; @@ -5742,6 +5792,14 @@ struct { struct HPMHookPoint *HP_skill_get_itemid_post; struct HPMHookPoint *HP_skill_get_itemqty_pre; struct HPMHookPoint *HP_skill_get_itemqty_post; + struct HPMHookPoint *HP_skill_get_item_any_flag_pre; + struct HPMHookPoint *HP_skill_get_item_any_flag_post; + struct HPMHookPoint *HP_skill_get_equip_id_pre; + struct HPMHookPoint *HP_skill_get_equip_id_post; + struct HPMHookPoint *HP_skill_get_equip_amount_pre; + struct HPMHookPoint *HP_skill_get_equip_amount_post; + struct HPMHookPoint *HP_skill_get_equip_any_flag_pre; + struct HPMHookPoint *HP_skill_get_equip_any_flag_post; struct HPMHookPoint *HP_skill_get_zeny_pre; struct HPMHookPoint *HP_skill_get_zeny_post; struct HPMHookPoint *HP_skill_get_num_pre; @@ -5856,12 +5914,18 @@ struct { struct HPMHookPoint *HP_skill_vf_cast_fix_post; struct HPMHookPoint *HP_skill_delay_fix_pre; struct HPMHookPoint *HP_skill_delay_fix_post; - struct HPMHookPoint *HP_skill_is_item_skill_pre; - struct HPMHookPoint *HP_skill_is_item_skill_post; + struct HPMHookPoint *HP_skill_check_condition_required_equip_pre; + struct HPMHookPoint *HP_skill_check_condition_required_equip_post; struct HPMHookPoint *HP_skill_check_condition_castbegin_pre; struct HPMHookPoint *HP_skill_check_condition_castbegin_post; + struct HPMHookPoint *HP_skill_check_condition_required_items_pre; + struct HPMHookPoint *HP_skill_check_condition_required_items_post; + struct HPMHookPoint *HP_skill_items_required_pre; + struct HPMHookPoint *HP_skill_items_required_post; struct HPMHookPoint *HP_skill_check_condition_castend_pre; struct HPMHookPoint *HP_skill_check_condition_castend_post; + struct HPMHookPoint *HP_skill_get_any_item_index_pre; + struct HPMHookPoint *HP_skill_get_any_item_index_post; struct HPMHookPoint *HP_skill_consume_requirement_pre; struct HPMHookPoint *HP_skill_consume_requirement_post; struct HPMHookPoint *HP_skill_get_requirement_pre; @@ -5908,6 +5972,8 @@ struct { struct HPMHookPoint *HP_skill_not_ok_hom_unknown_post; struct HPMHookPoint *HP_skill_not_ok_mercenary_pre; struct HPMHookPoint *HP_skill_not_ok_mercenary_post; + struct HPMHookPoint *HP_skill_validate_autocast_data_pre; + struct HPMHookPoint *HP_skill_validate_autocast_data_post; struct HPMHookPoint *HP_skill_chastle_mob_changetarget_pre; struct HPMHookPoint *HP_skill_chastle_mob_changetarget_post; struct HPMHookPoint *HP_skill_can_produce_mix_pre; @@ -6028,42 +6094,130 @@ struct { struct HPMHookPoint *HP_skill_init_unit_layout_post; struct HPMHookPoint *HP_skill_init_unit_layout_unknown_pre; struct HPMHookPoint *HP_skill_init_unit_layout_unknown_post; + struct HPMHookPoint *HP_skill_validate_id_pre; + struct HPMHookPoint *HP_skill_validate_id_post; + struct HPMHookPoint *HP_skill_name_contains_invalid_character_pre; + struct HPMHookPoint *HP_skill_name_contains_invalid_character_post; + struct HPMHookPoint *HP_skill_validate_name_pre; + struct HPMHookPoint *HP_skill_validate_name_post; + struct HPMHookPoint *HP_skill_validate_max_level_pre; + struct HPMHookPoint *HP_skill_validate_max_level_post; + struct HPMHookPoint *HP_skill_validate_description_pre; + struct HPMHookPoint *HP_skill_validate_description_post; + struct HPMHookPoint *HP_skill_validate_range_pre; + struct HPMHookPoint *HP_skill_validate_range_post; struct HPMHookPoint *HP_skill_validate_hittype_pre; struct HPMHookPoint *HP_skill_validate_hittype_post; struct HPMHookPoint *HP_skill_validate_skilltype_pre; struct HPMHookPoint *HP_skill_validate_skilltype_post; + struct HPMHookPoint *HP_skill_validate_skillinfo_pre; + struct HPMHookPoint *HP_skill_validate_skillinfo_post; struct HPMHookPoint *HP_skill_validate_attacktype_pre; struct HPMHookPoint *HP_skill_validate_attacktype_post; struct HPMHookPoint *HP_skill_validate_element_pre; struct HPMHookPoint *HP_skill_validate_element_post; - struct HPMHookPoint *HP_skill_validate_skillinfo_pre; - struct HPMHookPoint *HP_skill_validate_skillinfo_post; struct HPMHookPoint *HP_skill_validate_damagetype_pre; struct HPMHookPoint *HP_skill_validate_damagetype_post; + struct HPMHookPoint *HP_skill_validate_splash_range_pre; + struct HPMHookPoint *HP_skill_validate_splash_range_post; + struct HPMHookPoint *HP_skill_validate_number_of_hits_pre; + struct HPMHookPoint *HP_skill_validate_number_of_hits_post; + struct HPMHookPoint *HP_skill_validate_interrupt_cast_pre; + struct HPMHookPoint *HP_skill_validate_interrupt_cast_post; + struct HPMHookPoint *HP_skill_validate_cast_def_rate_pre; + struct HPMHookPoint *HP_skill_validate_cast_def_rate_post; + struct HPMHookPoint *HP_skill_validate_number_of_instances_pre; + struct HPMHookPoint *HP_skill_validate_number_of_instances_post; + struct HPMHookPoint *HP_skill_validate_knock_back_tiles_pre; + struct HPMHookPoint *HP_skill_validate_knock_back_tiles_post; + struct HPMHookPoint *HP_skill_validate_cast_time_pre; + struct HPMHookPoint *HP_skill_validate_cast_time_post; + struct HPMHookPoint *HP_skill_validate_act_delay_pre; + struct HPMHookPoint *HP_skill_validate_act_delay_post; + struct HPMHookPoint *HP_skill_validate_walk_delay_pre; + struct HPMHookPoint *HP_skill_validate_walk_delay_post; + struct HPMHookPoint *HP_skill_validate_skill_data1_pre; + struct HPMHookPoint *HP_skill_validate_skill_data1_post; + struct HPMHookPoint *HP_skill_validate_skill_data2_pre; + struct HPMHookPoint *HP_skill_validate_skill_data2_post; + struct HPMHookPoint *HP_skill_validate_cooldown_pre; + struct HPMHookPoint *HP_skill_validate_cooldown_post; + struct HPMHookPoint *HP_skill_validate_fixed_cast_time_pre; + struct HPMHookPoint *HP_skill_validate_fixed_cast_time_post; struct HPMHookPoint *HP_skill_validate_castnodex_pre; struct HPMHookPoint *HP_skill_validate_castnodex_post; + struct HPMHookPoint *HP_skill_validate_hp_cost_pre; + struct HPMHookPoint *HP_skill_validate_hp_cost_post; + struct HPMHookPoint *HP_skill_validate_sp_cost_pre; + struct HPMHookPoint *HP_skill_validate_sp_cost_post; + struct HPMHookPoint *HP_skill_validate_hp_rate_cost_pre; + struct HPMHookPoint *HP_skill_validate_hp_rate_cost_post; + struct HPMHookPoint *HP_skill_validate_sp_rate_cost_pre; + struct HPMHookPoint *HP_skill_validate_sp_rate_cost_post; + struct HPMHookPoint *HP_skill_validate_max_hp_trigger_pre; + struct HPMHookPoint *HP_skill_validate_max_hp_trigger_post; + struct HPMHookPoint *HP_skill_validate_max_sp_trigger_pre; + struct HPMHookPoint *HP_skill_validate_max_sp_trigger_post; + struct HPMHookPoint *HP_skill_validate_zeny_cost_pre; + struct HPMHookPoint *HP_skill_validate_zeny_cost_post; + struct HPMHookPoint *HP_skill_validate_weapontype_sub_pre; + struct HPMHookPoint *HP_skill_validate_weapontype_sub_post; struct HPMHookPoint *HP_skill_validate_weapontype_pre; struct HPMHookPoint *HP_skill_validate_weapontype_post; + struct HPMHookPoint *HP_skill_validate_ammotype_sub_pre; + struct HPMHookPoint *HP_skill_validate_ammotype_sub_post; struct HPMHookPoint *HP_skill_validate_ammotype_pre; struct HPMHookPoint *HP_skill_validate_ammotype_post; + struct HPMHookPoint *HP_skill_validate_ammo_amount_pre; + struct HPMHookPoint *HP_skill_validate_ammo_amount_post; + struct HPMHookPoint *HP_skill_validate_state_sub_pre; + struct HPMHookPoint *HP_skill_validate_state_sub_post; struct HPMHookPoint *HP_skill_validate_state_pre; struct HPMHookPoint *HP_skill_validate_state_post; + struct HPMHookPoint *HP_skill_validate_spirit_sphere_cost_pre; + struct HPMHookPoint *HP_skill_validate_spirit_sphere_cost_post; + struct HPMHookPoint *HP_skill_validate_item_requirements_sub_item_amount_pre; + struct HPMHookPoint *HP_skill_validate_item_requirements_sub_item_amount_post; + struct HPMHookPoint *HP_skill_validate_item_requirements_sub_items_pre; + struct HPMHookPoint *HP_skill_validate_item_requirements_sub_items_post; + struct HPMHookPoint *HP_skill_validate_item_requirements_sub_any_flag_pre; + struct HPMHookPoint *HP_skill_validate_item_requirements_sub_any_flag_post; struct HPMHookPoint *HP_skill_validate_item_requirements_pre; struct HPMHookPoint *HP_skill_validate_item_requirements_post; - struct HPMHookPoint *HP_skill_validate_unit_target_pre; - struct HPMHookPoint *HP_skill_validate_unit_target_post; + struct HPMHookPoint *HP_skill_validate_equip_requirements_sub_item_amount_pre; + struct HPMHookPoint *HP_skill_validate_equip_requirements_sub_item_amount_post; + struct HPMHookPoint *HP_skill_validate_equip_requirements_sub_items_pre; + struct HPMHookPoint *HP_skill_validate_equip_requirements_sub_items_post; + struct HPMHookPoint *HP_skill_validate_equip_requirements_sub_any_flag_pre; + struct HPMHookPoint *HP_skill_validate_equip_requirements_sub_any_flag_post; + struct HPMHookPoint *HP_skill_validate_equip_requirements_pre; + struct HPMHookPoint *HP_skill_validate_equip_requirements_post; + struct HPMHookPoint *HP_skill_validate_requirements_item_name_pre; + struct HPMHookPoint *HP_skill_validate_requirements_item_name_post; + struct HPMHookPoint *HP_skill_validate_requirements_pre; + struct HPMHookPoint *HP_skill_validate_requirements_post; + struct HPMHookPoint *HP_skill_validate_unit_id_sub_pre; + struct HPMHookPoint *HP_skill_validate_unit_id_sub_post; + struct HPMHookPoint *HP_skill_validate_unit_id_pre; + struct HPMHookPoint *HP_skill_validate_unit_id_post; + struct HPMHookPoint *HP_skill_validate_unit_layout_pre; + struct HPMHookPoint *HP_skill_validate_unit_layout_post; + struct HPMHookPoint *HP_skill_validate_unit_range_pre; + struct HPMHookPoint *HP_skill_validate_unit_range_post; + struct HPMHookPoint *HP_skill_validate_unit_interval_pre; + struct HPMHookPoint *HP_skill_validate_unit_interval_post; + struct HPMHookPoint *HP_skill_validate_unit_flag_sub_pre; + struct HPMHookPoint *HP_skill_validate_unit_flag_sub_post; struct HPMHookPoint *HP_skill_validate_unit_flag_pre; struct HPMHookPoint *HP_skill_validate_unit_flag_post; + struct HPMHookPoint *HP_skill_validate_unit_target_sub_pre; + struct HPMHookPoint *HP_skill_validate_unit_target_sub_post; + struct HPMHookPoint *HP_skill_validate_unit_target_pre; + struct HPMHookPoint *HP_skill_validate_unit_target_post; + struct HPMHookPoint *HP_skill_validate_unit_pre; + struct HPMHookPoint *HP_skill_validate_unit_post; struct HPMHookPoint *HP_skill_validate_additional_fields_pre; struct HPMHookPoint *HP_skill_validate_additional_fields_post; - struct HPMHookPoint *HP_skill_validate_skilldb_pre; - struct HPMHookPoint *HP_skill_validate_skilldb_post; - struct HPMHookPoint *HP_skill_validate_weapontype_sub_pre; - struct HPMHookPoint *HP_skill_validate_weapontype_sub_post; - struct HPMHookPoint *HP_skill_validate_ammotype_sub_pre; - struct HPMHookPoint *HP_skill_validate_ammotype_sub_post; - struct HPMHookPoint *HP_skill_validate_unit_flag_sub_pre; - struct HPMHookPoint *HP_skill_validate_unit_flag_sub_post; struct HPMHookPoint *HP_skill_read_skilldb_pre; struct HPMHookPoint *HP_skill_read_skilldb_post; struct HPMHookPoint *HP_skill_config_set_level_pre; @@ -6186,6 +6340,8 @@ struct { struct HPMHookPoint *HP_skill_check_npc_chaospanic_post; struct HPMHookPoint *HP_skill_count_wos_pre; struct HPMHookPoint *HP_skill_count_wos_post; + struct HPMHookPoint *HP_skill_get_linked_song_dance_id_pre; + struct HPMHookPoint *HP_skill_get_linked_song_dance_id_post; struct HPMHookPoint *HP_sockt_init_pre; struct HPMHookPoint *HP_sockt_init_post; struct HPMHookPoint *HP_sockt_final_pre; @@ -7875,6 +8031,10 @@ struct { int HP_clif_chatname_ack_post; int HP_clif_elemname_ack_pre; int HP_clif_elemname_ack_post; + int HP_clif_skillname_ack_pre; + int HP_clif_skillname_ack_post; + int HP_clif_itemname_ack_pre; + int HP_clif_itemname_ack_post; int HP_clif_unknownname_ack_pre; int HP_clif_unknownname_ack_post; int HP_clif_monster_hp_bar_pre; @@ -9227,6 +9387,14 @@ struct { int HP_clif_plapineDdukDdak_ack_post; int HP_clif_plapineDdukDdak_close_pre; int HP_clif_plapineDdukDdak_close_post; + int HP_clif_lapineUpgrade_open_pre; + int HP_clif_lapineUpgrade_open_post; + int HP_clif_lapineUpgrade_result_pre; + int HP_clif_lapineUpgrade_result_post; + int HP_clif_pLapineUpgrade_close_pre; + int HP_clif_pLapineUpgrade_close_post; + int HP_clif_pLapineUpgrade_makeItem_pre; + int HP_clif_pLapineUpgrade_makeItem_post; int HP_clif_pReqGearOff_pre; int HP_clif_pReqGearOff_post; int HP_cmdline_init_pre; @@ -10691,20 +10859,32 @@ struct { int HP_mapit_prev_post; int HP_mapit_exists_pre; int HP_mapit_exists_post; - int HP_mapreg_init_pre; - int HP_mapreg_init_post; - int HP_mapreg_final_pre; - int HP_mapreg_final_post; int HP_mapreg_readreg_pre; int HP_mapreg_readreg_post; int HP_mapreg_readregstr_pre; int HP_mapreg_readregstr_post; + int HP_mapreg_set_num_db_pre; + int HP_mapreg_set_num_db_post; + int HP_mapreg_delete_num_db_pre; + int HP_mapreg_delete_num_db_post; int HP_mapreg_setreg_pre; int HP_mapreg_setreg_post; + int HP_mapreg_set_str_db_pre; + int HP_mapreg_set_str_db_post; + int HP_mapreg_delete_str_db_pre; + int HP_mapreg_delete_str_db_post; int HP_mapreg_setregstr_pre; int HP_mapreg_setregstr_post; + int HP_mapreg_load_num_db_pre; + int HP_mapreg_load_num_db_post; + int HP_mapreg_load_str_db_pre; + int HP_mapreg_load_str_db_post; int HP_mapreg_load_pre; int HP_mapreg_load_post; + int HP_mapreg_save_num_db_pre; + int HP_mapreg_save_num_db_post; + int HP_mapreg_save_str_db_pre; + int HP_mapreg_save_str_db_post; int HP_mapreg_save_pre; int HP_mapreg_save_post; int HP_mapreg_save_timer_pre; @@ -10713,8 +10893,12 @@ struct { int HP_mapreg_destroyreg_post; int HP_mapreg_reload_pre; int HP_mapreg_reload_post; - int HP_mapreg_config_read_pre; - int HP_mapreg_config_read_post; + int HP_mapreg_config_read_registry_pre; + int HP_mapreg_config_read_registry_post; + int HP_mapreg_final_pre; + int HP_mapreg_final_post; + int HP_mapreg_init_pre; + int HP_mapreg_init_post; int HP_md5_string_pre; int HP_md5_string_post; int HP_md5_binary_pre; @@ -11295,6 +11479,10 @@ struct { int HP_npc_questinfo_clear_post; int HP_npc_secure_timeout_timer_pre; int HP_npc_secure_timeout_timer_post; + int HP_nullpo_init_pre; + int HP_nullpo_init_post; + int HP_nullpo_final_pre; + int HP_nullpo_final_post; int HP_nullpo_assert_report_pre; int HP_nullpo_assert_report_post; int HP_packets_init_pre; @@ -11639,8 +11827,14 @@ struct { int HP_pc_checkitem_post; int HP_pc_useitem_pre; int HP_pc_useitem_post; - int HP_pc_itemskill_clear_pre; - int HP_pc_itemskill_clear_post; + int HP_pc_autocast_clear_current_pre; + int HP_pc_autocast_clear_current_post; + int HP_pc_autocast_clear_pre; + int HP_pc_autocast_clear_post; + int HP_pc_autocast_set_current_pre; + int HP_pc_autocast_set_current_post; + int HP_pc_autocast_remove_pre; + int HP_pc_autocast_remove_post; int HP_pc_skillatk_bonus_pre; int HP_pc_skillatk_bonus_post; int HP_pc_skillheal_bonus_pre; @@ -11661,6 +11855,10 @@ struct { int HP_pc_percentheal_post; int HP_pc_jobchange_pre; int HP_pc_jobchange_post; + int HP_pc_hide_pre; + int HP_pc_hide_post; + int HP_pc_unhide_pre; + int HP_pc_unhide_post; int HP_pc_setoption_pre; int HP_pc_setoption_post; int HP_pc_setcart_pre; @@ -11947,6 +12145,8 @@ struct { int HP_pet_final_post; int HP_pet_hungry_val_pre; int HP_pet_hungry_val_post; + int HP_pet_set_hunger_pre; + int HP_pet_set_hunger_post; int HP_pet_set_intimate_pre; int HP_pet_set_intimate_post; int HP_pet_create_egg_pre; @@ -12307,6 +12507,8 @@ struct { int HP_script_parse_syntax_close_sub_post; int HP_script_parse_syntax_pre; int HP_script_parse_syntax_post; + int HP_script_parse_syntax_function_pre; + int HP_script_parse_syntax_function_post; int HP_script_get_com_pre; int HP_script_get_com_post; int HP_script_get_num_pre; @@ -12371,6 +12573,8 @@ struct { int HP_script_print_line_post; int HP_script_errorwarning_sub_pre; int HP_script_errorwarning_sub_post; + int HP_script_is_permanent_variable_pre; + int HP_script_is_permanent_variable_post; int HP_script_set_reg_pre; int HP_script_set_reg_post; int HP_script_set_reg_ref_str_pre; @@ -12603,6 +12807,8 @@ struct { int HP_skill_get_hp_post; int HP_skill_get_mhp_pre; int HP_skill_get_mhp_post; + int HP_skill_get_msp_pre; + int HP_skill_get_msp_post; int HP_skill_get_sp_pre; int HP_skill_get_sp_post; int HP_skill_get_hp_rate_pre; @@ -12617,6 +12823,14 @@ struct { int HP_skill_get_itemid_post; int HP_skill_get_itemqty_pre; int HP_skill_get_itemqty_post; + int HP_skill_get_item_any_flag_pre; + int HP_skill_get_item_any_flag_post; + int HP_skill_get_equip_id_pre; + int HP_skill_get_equip_id_post; + int HP_skill_get_equip_amount_pre; + int HP_skill_get_equip_amount_post; + int HP_skill_get_equip_any_flag_pre; + int HP_skill_get_equip_any_flag_post; int HP_skill_get_zeny_pre; int HP_skill_get_zeny_post; int HP_skill_get_num_pre; @@ -12731,12 +12945,18 @@ struct { int HP_skill_vf_cast_fix_post; int HP_skill_delay_fix_pre; int HP_skill_delay_fix_post; - int HP_skill_is_item_skill_pre; - int HP_skill_is_item_skill_post; + int HP_skill_check_condition_required_equip_pre; + int HP_skill_check_condition_required_equip_post; int HP_skill_check_condition_castbegin_pre; int HP_skill_check_condition_castbegin_post; + int HP_skill_check_condition_required_items_pre; + int HP_skill_check_condition_required_items_post; + int HP_skill_items_required_pre; + int HP_skill_items_required_post; int HP_skill_check_condition_castend_pre; int HP_skill_check_condition_castend_post; + int HP_skill_get_any_item_index_pre; + int HP_skill_get_any_item_index_post; int HP_skill_consume_requirement_pre; int HP_skill_consume_requirement_post; int HP_skill_get_requirement_pre; @@ -12783,6 +13003,8 @@ struct { int HP_skill_not_ok_hom_unknown_post; int HP_skill_not_ok_mercenary_pre; int HP_skill_not_ok_mercenary_post; + int HP_skill_validate_autocast_data_pre; + int HP_skill_validate_autocast_data_post; int HP_skill_chastle_mob_changetarget_pre; int HP_skill_chastle_mob_changetarget_post; int HP_skill_can_produce_mix_pre; @@ -12903,42 +13125,130 @@ struct { int HP_skill_init_unit_layout_post; int HP_skill_init_unit_layout_unknown_pre; int HP_skill_init_unit_layout_unknown_post; + int HP_skill_validate_id_pre; + int HP_skill_validate_id_post; + int HP_skill_name_contains_invalid_character_pre; + int HP_skill_name_contains_invalid_character_post; + int HP_skill_validate_name_pre; + int HP_skill_validate_name_post; + int HP_skill_validate_max_level_pre; + int HP_skill_validate_max_level_post; + int HP_skill_validate_description_pre; + int HP_skill_validate_description_post; + int HP_skill_validate_range_pre; + int HP_skill_validate_range_post; int HP_skill_validate_hittype_pre; int HP_skill_validate_hittype_post; int HP_skill_validate_skilltype_pre; int HP_skill_validate_skilltype_post; + int HP_skill_validate_skillinfo_pre; + int HP_skill_validate_skillinfo_post; int HP_skill_validate_attacktype_pre; int HP_skill_validate_attacktype_post; int HP_skill_validate_element_pre; int HP_skill_validate_element_post; - int HP_skill_validate_skillinfo_pre; - int HP_skill_validate_skillinfo_post; int HP_skill_validate_damagetype_pre; int HP_skill_validate_damagetype_post; + int HP_skill_validate_splash_range_pre; + int HP_skill_validate_splash_range_post; + int HP_skill_validate_number_of_hits_pre; + int HP_skill_validate_number_of_hits_post; + int HP_skill_validate_interrupt_cast_pre; + int HP_skill_validate_interrupt_cast_post; + int HP_skill_validate_cast_def_rate_pre; + int HP_skill_validate_cast_def_rate_post; + int HP_skill_validate_number_of_instances_pre; + int HP_skill_validate_number_of_instances_post; + int HP_skill_validate_knock_back_tiles_pre; + int HP_skill_validate_knock_back_tiles_post; + int HP_skill_validate_cast_time_pre; + int HP_skill_validate_cast_time_post; + int HP_skill_validate_act_delay_pre; + int HP_skill_validate_act_delay_post; + int HP_skill_validate_walk_delay_pre; + int HP_skill_validate_walk_delay_post; + int HP_skill_validate_skill_data1_pre; + int HP_skill_validate_skill_data1_post; + int HP_skill_validate_skill_data2_pre; + int HP_skill_validate_skill_data2_post; + int HP_skill_validate_cooldown_pre; + int HP_skill_validate_cooldown_post; + int HP_skill_validate_fixed_cast_time_pre; + int HP_skill_validate_fixed_cast_time_post; int HP_skill_validate_castnodex_pre; int HP_skill_validate_castnodex_post; + int HP_skill_validate_hp_cost_pre; + int HP_skill_validate_hp_cost_post; + int HP_skill_validate_sp_cost_pre; + int HP_skill_validate_sp_cost_post; + int HP_skill_validate_hp_rate_cost_pre; + int HP_skill_validate_hp_rate_cost_post; + int HP_skill_validate_sp_rate_cost_pre; + int HP_skill_validate_sp_rate_cost_post; + int HP_skill_validate_max_hp_trigger_pre; + int HP_skill_validate_max_hp_trigger_post; + int HP_skill_validate_max_sp_trigger_pre; + int HP_skill_validate_max_sp_trigger_post; + int HP_skill_validate_zeny_cost_pre; + int HP_skill_validate_zeny_cost_post; + int HP_skill_validate_weapontype_sub_pre; + int HP_skill_validate_weapontype_sub_post; int HP_skill_validate_weapontype_pre; int HP_skill_validate_weapontype_post; + int HP_skill_validate_ammotype_sub_pre; + int HP_skill_validate_ammotype_sub_post; int HP_skill_validate_ammotype_pre; int HP_skill_validate_ammotype_post; + int HP_skill_validate_ammo_amount_pre; + int HP_skill_validate_ammo_amount_post; + int HP_skill_validate_state_sub_pre; + int HP_skill_validate_state_sub_post; int HP_skill_validate_state_pre; int HP_skill_validate_state_post; + int HP_skill_validate_spirit_sphere_cost_pre; + int HP_skill_validate_spirit_sphere_cost_post; + int HP_skill_validate_item_requirements_sub_item_amount_pre; + int HP_skill_validate_item_requirements_sub_item_amount_post; + int HP_skill_validate_item_requirements_sub_items_pre; + int HP_skill_validate_item_requirements_sub_items_post; + int HP_skill_validate_item_requirements_sub_any_flag_pre; + int HP_skill_validate_item_requirements_sub_any_flag_post; int HP_skill_validate_item_requirements_pre; int HP_skill_validate_item_requirements_post; - int HP_skill_validate_unit_target_pre; - int HP_skill_validate_unit_target_post; + int HP_skill_validate_equip_requirements_sub_item_amount_pre; + int HP_skill_validate_equip_requirements_sub_item_amount_post; + int HP_skill_validate_equip_requirements_sub_items_pre; + int HP_skill_validate_equip_requirements_sub_items_post; + int HP_skill_validate_equip_requirements_sub_any_flag_pre; + int HP_skill_validate_equip_requirements_sub_any_flag_post; + int HP_skill_validate_equip_requirements_pre; + int HP_skill_validate_equip_requirements_post; + int HP_skill_validate_requirements_item_name_pre; + int HP_skill_validate_requirements_item_name_post; + int HP_skill_validate_requirements_pre; + int HP_skill_validate_requirements_post; + int HP_skill_validate_unit_id_sub_pre; + int HP_skill_validate_unit_id_sub_post; + int HP_skill_validate_unit_id_pre; + int HP_skill_validate_unit_id_post; + int HP_skill_validate_unit_layout_pre; + int HP_skill_validate_unit_layout_post; + int HP_skill_validate_unit_range_pre; + int HP_skill_validate_unit_range_post; + int HP_skill_validate_unit_interval_pre; + int HP_skill_validate_unit_interval_post; + int HP_skill_validate_unit_flag_sub_pre; + int HP_skill_validate_unit_flag_sub_post; int HP_skill_validate_unit_flag_pre; int HP_skill_validate_unit_flag_post; + int HP_skill_validate_unit_target_sub_pre; + int HP_skill_validate_unit_target_sub_post; + int HP_skill_validate_unit_target_pre; + int HP_skill_validate_unit_target_post; + int HP_skill_validate_unit_pre; + int HP_skill_validate_unit_post; int HP_skill_validate_additional_fields_pre; int HP_skill_validate_additional_fields_post; - int HP_skill_validate_skilldb_pre; - int HP_skill_validate_skilldb_post; - int HP_skill_validate_weapontype_sub_pre; - int HP_skill_validate_weapontype_sub_post; - int HP_skill_validate_ammotype_sub_pre; - int HP_skill_validate_ammotype_sub_post; - int HP_skill_validate_unit_flag_sub_pre; - int HP_skill_validate_unit_flag_sub_post; int HP_skill_read_skilldb_pre; int HP_skill_read_skilldb_post; int HP_skill_config_set_level_pre; @@ -13061,6 +13371,8 @@ struct { int HP_skill_check_npc_chaospanic_post; int HP_skill_count_wos_pre; int HP_skill_count_wos_post; + int HP_skill_get_linked_song_dance_id_pre; + int HP_skill_get_linked_song_dance_id_post; int HP_sockt_init_pre; int HP_sockt_init_post; int HP_sockt_final_pre; diff --git a/src/plugins/HPMHooking/HPMHooking_map.HookingPoints.inc b/src/plugins/HPMHooking/HPMHooking_map.HookingPoints.inc index a360b3f53..899f443d1 100644 --- a/src/plugins/HPMHooking/HPMHooking_map.HookingPoints.inc +++ b/src/plugins/HPMHooking/HPMHooking_map.HookingPoints.inc @@ -524,6 +524,8 @@ struct HookingPointData HookingPoints[] = { { HP_POP(clif->mobname_normal_ack, HP_clif_mobname_normal_ack) }, { HP_POP(clif->chatname_ack, HP_clif_chatname_ack) }, { HP_POP(clif->elemname_ack, HP_clif_elemname_ack) }, + { HP_POP(clif->skillname_ack, HP_clif_skillname_ack) }, + { HP_POP(clif->itemname_ack, HP_clif_itemname_ack) }, { HP_POP(clif->unknownname_ack, HP_clif_unknownname_ack) }, { HP_POP(clif->monster_hp_bar, HP_clif_monster_hp_bar) }, { HP_POP(clif->hpmeter, HP_clif_hpmeter) }, @@ -1200,6 +1202,10 @@ struct HookingPointData HookingPoints[] = { { HP_POP(clif->lapineDdukDdak_result, HP_clif_lapineDdukDdak_result) }, { HP_POP(clif->plapineDdukDdak_ack, HP_clif_plapineDdukDdak_ack) }, { HP_POP(clif->plapineDdukDdak_close, HP_clif_plapineDdukDdak_close) }, + { HP_POP(clif->lapineUpgrade_open, HP_clif_lapineUpgrade_open) }, + { HP_POP(clif->lapineUpgrade_result, HP_clif_lapineUpgrade_result) }, + { HP_POP(clif->pLapineUpgrade_close, HP_clif_pLapineUpgrade_close) }, + { HP_POP(clif->pLapineUpgrade_makeItem, HP_clif_pLapineUpgrade_makeItem) }, { HP_POP(clif->pReqGearOff, HP_clif_pReqGearOff) }, /* cmdline_interface */ { HP_POP(cmdline->init, HP_cmdline_init) }, @@ -1954,18 +1960,26 @@ struct HookingPointData HookingPoints[] = { { HP_POP(mapit->prev, HP_mapit_prev) }, { HP_POP(mapit->exists, HP_mapit_exists) }, /* mapreg_interface */ - { HP_POP(mapreg->init, HP_mapreg_init) }, - { HP_POP(mapreg->final, HP_mapreg_final) }, { HP_POP(mapreg->readreg, HP_mapreg_readreg) }, { HP_POP(mapreg->readregstr, HP_mapreg_readregstr) }, + { HP_POP(mapreg->set_num_db, HP_mapreg_set_num_db) }, + { HP_POP(mapreg->delete_num_db, HP_mapreg_delete_num_db) }, { HP_POP(mapreg->setreg, HP_mapreg_setreg) }, + { HP_POP(mapreg->set_str_db, HP_mapreg_set_str_db) }, + { HP_POP(mapreg->delete_str_db, HP_mapreg_delete_str_db) }, { HP_POP(mapreg->setregstr, HP_mapreg_setregstr) }, + { HP_POP(mapreg->load_num_db, HP_mapreg_load_num_db) }, + { HP_POP(mapreg->load_str_db, HP_mapreg_load_str_db) }, { HP_POP(mapreg->load, HP_mapreg_load) }, + { HP_POP(mapreg->save_num_db, HP_mapreg_save_num_db) }, + { HP_POP(mapreg->save_str_db, HP_mapreg_save_str_db) }, { HP_POP(mapreg->save, HP_mapreg_save) }, { HP_POP(mapreg->save_timer, HP_mapreg_save_timer) }, { HP_POP(mapreg->destroyreg, HP_mapreg_destroyreg) }, { HP_POP(mapreg->reload, HP_mapreg_reload) }, - { HP_POP(mapreg->config_read, HP_mapreg_config_read) }, + { HP_POP(mapreg->config_read_registry, HP_mapreg_config_read_registry) }, + { HP_POP(mapreg->final, HP_mapreg_final) }, + { HP_POP(mapreg->init, HP_mapreg_init) }, /* md5_interface */ { HP_POP(md5->string, HP_md5_string) }, { HP_POP(md5->binary, HP_md5_binary) }, @@ -2263,6 +2277,8 @@ struct HookingPointData HookingPoints[] = { { HP_POP(npc->questinfo_clear, HP_npc_questinfo_clear) }, { HP_POP(npc->secure_timeout_timer, HP_npc_secure_timeout_timer) }, /* nullpo_interface */ + { HP_POP(nullpo->init, HP_nullpo_init) }, + { HP_POP(nullpo->final, HP_nullpo_final) }, { HP_POP(nullpo->assert_report, HP_nullpo_assert_report) }, /* packets_interface */ { HP_POP(packets->init, HP_packets_init) }, @@ -2440,7 +2456,10 @@ struct HookingPointData HookingPoints[] = { { HP_POP(pc->unequipitem_pos, HP_pc_unequipitem_pos) }, { HP_POP(pc->checkitem, HP_pc_checkitem) }, { HP_POP(pc->useitem, HP_pc_useitem) }, - { HP_POP(pc->itemskill_clear, HP_pc_itemskill_clear) }, + { HP_POP(pc->autocast_clear_current, HP_pc_autocast_clear_current) }, + { HP_POP(pc->autocast_clear, HP_pc_autocast_clear) }, + { HP_POP(pc->autocast_set_current, HP_pc_autocast_set_current) }, + { HP_POP(pc->autocast_remove, HP_pc_autocast_remove) }, { HP_POP(pc->skillatk_bonus, HP_pc_skillatk_bonus) }, { HP_POP(pc->skillheal_bonus, HP_pc_skillheal_bonus) }, { HP_POP(pc->skillheal2_bonus, HP_pc_skillheal2_bonus) }, @@ -2451,6 +2470,8 @@ struct HookingPointData HookingPoints[] = { { HP_POP(pc->itemheal, HP_pc_itemheal) }, { HP_POP(pc->percentheal, HP_pc_percentheal) }, { HP_POP(pc->jobchange, HP_pc_jobchange) }, + { HP_POP(pc->hide, HP_pc_hide) }, + { HP_POP(pc->unhide, HP_pc_unhide) }, { HP_POP(pc->setoption, HP_pc_setoption) }, { HP_POP(pc->setcart, HP_pc_setcart) }, { HP_POP(pc->setfalcon, HP_pc_setfalcon) }, @@ -2596,6 +2617,7 @@ struct HookingPointData HookingPoints[] = { { HP_POP(pet->init, HP_pet_init) }, { HP_POP(pet->final, HP_pet_final) }, { HP_POP(pet->hungry_val, HP_pet_hungry_val) }, + { HP_POP(pet->set_hunger, HP_pet_set_hunger) }, { HP_POP(pet->set_intimate, HP_pet_set_intimate) }, { HP_POP(pet->create_egg, HP_pet_create_egg) }, { HP_POP(pet->unlocktarget, HP_pet_unlocktarget) }, @@ -2782,6 +2804,7 @@ struct HookingPointData HookingPoints[] = { { HP_POP(script->parse_syntax_close, HP_script_parse_syntax_close) }, { HP_POP(script->parse_syntax_close_sub, HP_script_parse_syntax_close_sub) }, { HP_POP(script->parse_syntax, HP_script_parse_syntax) }, + { HP_POP(script->parse_syntax_function, HP_script_parse_syntax_function) }, { HP_POP(script->get_com, HP_script_get_com) }, { HP_POP(script->get_num, HP_script_get_num) }, { HP_POP(script->op2name, HP_script_op2name) }, @@ -2814,6 +2837,7 @@ struct HookingPointData HookingPoints[] = { { HP_POP(script->load_parameters, HP_script_load_parameters) }, { HP_POP(script->print_line, HP_script_print_line) }, { HP_POP(script->errorwarning_sub, HP_script_errorwarning_sub) }, + { HP_POP(script->is_permanent_variable, HP_script_is_permanent_variable) }, { HP_POP(script->set_reg, HP_script_set_reg) }, { HP_POP(script->set_reg_ref_str, HP_script_set_reg_ref_str) }, { HP_POP(script->set_reg_pc_ref_str, HP_script_set_reg_pc_ref_str) }, @@ -2933,6 +2957,7 @@ struct HookingPointData HookingPoints[] = { { HP_POP(skill->get_splash, HP_skill_get_splash) }, { HP_POP(skill->get_hp, HP_skill_get_hp) }, { HP_POP(skill->get_mhp, HP_skill_get_mhp) }, + { HP_POP(skill->get_msp, HP_skill_get_msp) }, { HP_POP(skill->get_sp, HP_skill_get_sp) }, { HP_POP(skill->get_hp_rate, HP_skill_get_hp_rate) }, { HP_POP(skill->get_sp_rate, HP_skill_get_sp_rate) }, @@ -2940,6 +2965,10 @@ struct HookingPointData HookingPoints[] = { { HP_POP(skill->get_spiritball, HP_skill_get_spiritball) }, { HP_POP(skill->get_itemid, HP_skill_get_itemid) }, { HP_POP(skill->get_itemqty, HP_skill_get_itemqty) }, + { HP_POP(skill->get_item_any_flag, HP_skill_get_item_any_flag) }, + { HP_POP(skill->get_equip_id, HP_skill_get_equip_id) }, + { HP_POP(skill->get_equip_amount, HP_skill_get_equip_amount) }, + { HP_POP(skill->get_equip_any_flag, HP_skill_get_equip_any_flag) }, { HP_POP(skill->get_zeny, HP_skill_get_zeny) }, { HP_POP(skill->get_num, HP_skill_get_num) }, { HP_POP(skill->get_cast, HP_skill_get_cast) }, @@ -2997,9 +3026,12 @@ struct HookingPointData HookingPoints[] = { { HP_POP(skill->cast_fix_sc, HP_skill_cast_fix_sc) }, { HP_POP(skill->vf_cast_fix, HP_skill_vf_cast_fix) }, { HP_POP(skill->delay_fix, HP_skill_delay_fix) }, - { HP_POP(skill->is_item_skill, HP_skill_is_item_skill) }, + { HP_POP(skill->check_condition_required_equip, HP_skill_check_condition_required_equip) }, { HP_POP(skill->check_condition_castbegin, HP_skill_check_condition_castbegin) }, + { HP_POP(skill->check_condition_required_items, HP_skill_check_condition_required_items) }, + { HP_POP(skill->items_required, HP_skill_items_required) }, { HP_POP(skill->check_condition_castend, HP_skill_check_condition_castend) }, + { HP_POP(skill->get_any_item_index, HP_skill_get_any_item_index) }, { HP_POP(skill->consume_requirement, HP_skill_consume_requirement) }, { HP_POP(skill->get_requirement, HP_skill_get_requirement) }, { HP_POP(skill->check_pc_partner, HP_skill_check_pc_partner) }, @@ -3023,6 +3055,7 @@ struct HookingPointData HookingPoints[] = { { HP_POP(skill->not_ok_hom, HP_skill_not_ok_hom) }, { HP_POP(skill->not_ok_hom_unknown, HP_skill_not_ok_hom_unknown) }, { HP_POP(skill->not_ok_mercenary, HP_skill_not_ok_mercenary) }, + { HP_POP(skill->validate_autocast_data, HP_skill_validate_autocast_data) }, { HP_POP(skill->chastle_mob_changetarget, HP_skill_chastle_mob_changetarget) }, { HP_POP(skill->can_produce_mix, HP_skill_can_produce_mix) }, { HP_POP(skill->produce_mix, HP_skill_produce_mix) }, @@ -3083,24 +3116,68 @@ struct HookingPointData HookingPoints[] = { { HP_POP(skill->unit_timer_sub, HP_skill_unit_timer_sub) }, { HP_POP(skill->init_unit_layout, HP_skill_init_unit_layout) }, { HP_POP(skill->init_unit_layout_unknown, HP_skill_init_unit_layout_unknown) }, + { HP_POP(skill->validate_id, HP_skill_validate_id) }, + { HP_POP(skill->name_contains_invalid_character, HP_skill_name_contains_invalid_character) }, + { HP_POP(skill->validate_name, HP_skill_validate_name) }, + { HP_POP(skill->validate_max_level, HP_skill_validate_max_level) }, + { HP_POP(skill->validate_description, HP_skill_validate_description) }, + { HP_POP(skill->validate_range, HP_skill_validate_range) }, { HP_POP(skill->validate_hittype, HP_skill_validate_hittype) }, { HP_POP(skill->validate_skilltype, HP_skill_validate_skilltype) }, + { HP_POP(skill->validate_skillinfo, HP_skill_validate_skillinfo) }, { HP_POP(skill->validate_attacktype, HP_skill_validate_attacktype) }, { HP_POP(skill->validate_element, HP_skill_validate_element) }, - { HP_POP(skill->validate_skillinfo, HP_skill_validate_skillinfo) }, { HP_POP(skill->validate_damagetype, HP_skill_validate_damagetype) }, + { HP_POP(skill->validate_splash_range, HP_skill_validate_splash_range) }, + { HP_POP(skill->validate_number_of_hits, HP_skill_validate_number_of_hits) }, + { HP_POP(skill->validate_interrupt_cast, HP_skill_validate_interrupt_cast) }, + { HP_POP(skill->validate_cast_def_rate, HP_skill_validate_cast_def_rate) }, + { HP_POP(skill->validate_number_of_instances, HP_skill_validate_number_of_instances) }, + { HP_POP(skill->validate_knock_back_tiles, HP_skill_validate_knock_back_tiles) }, + { HP_POP(skill->validate_cast_time, HP_skill_validate_cast_time) }, + { HP_POP(skill->validate_act_delay, HP_skill_validate_act_delay) }, + { HP_POP(skill->validate_walk_delay, HP_skill_validate_walk_delay) }, + { HP_POP(skill->validate_skill_data1, HP_skill_validate_skill_data1) }, + { HP_POP(skill->validate_skill_data2, HP_skill_validate_skill_data2) }, + { HP_POP(skill->validate_cooldown, HP_skill_validate_cooldown) }, + { HP_POP(skill->validate_fixed_cast_time, HP_skill_validate_fixed_cast_time) }, { HP_POP(skill->validate_castnodex, HP_skill_validate_castnodex) }, + { HP_POP(skill->validate_hp_cost, HP_skill_validate_hp_cost) }, + { HP_POP(skill->validate_sp_cost, HP_skill_validate_sp_cost) }, + { HP_POP(skill->validate_hp_rate_cost, HP_skill_validate_hp_rate_cost) }, + { HP_POP(skill->validate_sp_rate_cost, HP_skill_validate_sp_rate_cost) }, + { HP_POP(skill->validate_max_hp_trigger, HP_skill_validate_max_hp_trigger) }, + { HP_POP(skill->validate_max_sp_trigger, HP_skill_validate_max_sp_trigger) }, + { HP_POP(skill->validate_zeny_cost, HP_skill_validate_zeny_cost) }, + { HP_POP(skill->validate_weapontype_sub, HP_skill_validate_weapontype_sub) }, { HP_POP(skill->validate_weapontype, HP_skill_validate_weapontype) }, + { HP_POP(skill->validate_ammotype_sub, HP_skill_validate_ammotype_sub) }, { HP_POP(skill->validate_ammotype, HP_skill_validate_ammotype) }, + { HP_POP(skill->validate_ammo_amount, HP_skill_validate_ammo_amount) }, + { HP_POP(skill->validate_state_sub, HP_skill_validate_state_sub) }, { HP_POP(skill->validate_state, HP_skill_validate_state) }, + { HP_POP(skill->validate_spirit_sphere_cost, HP_skill_validate_spirit_sphere_cost) }, + { HP_POP(skill->validate_item_requirements_sub_item_amount, HP_skill_validate_item_requirements_sub_item_amount) }, + { HP_POP(skill->validate_item_requirements_sub_items, HP_skill_validate_item_requirements_sub_items) }, + { HP_POP(skill->validate_item_requirements_sub_any_flag, HP_skill_validate_item_requirements_sub_any_flag) }, { HP_POP(skill->validate_item_requirements, HP_skill_validate_item_requirements) }, - { HP_POP(skill->validate_unit_target, HP_skill_validate_unit_target) }, + { HP_POP(skill->validate_equip_requirements_sub_item_amount, HP_skill_validate_equip_requirements_sub_item_amount) }, + { HP_POP(skill->validate_equip_requirements_sub_items, HP_skill_validate_equip_requirements_sub_items) }, + { HP_POP(skill->validate_equip_requirements_sub_any_flag, HP_skill_validate_equip_requirements_sub_any_flag) }, + { HP_POP(skill->validate_equip_requirements, HP_skill_validate_equip_requirements) }, + { HP_POP(skill->validate_requirements_item_name, HP_skill_validate_requirements_item_name) }, + { HP_POP(skill->validate_requirements, HP_skill_validate_requirements) }, + { HP_POP(skill->validate_unit_id_sub, HP_skill_validate_unit_id_sub) }, + { HP_POP(skill->validate_unit_id, HP_skill_validate_unit_id) }, + { HP_POP(skill->validate_unit_layout, HP_skill_validate_unit_layout) }, + { HP_POP(skill->validate_unit_range, HP_skill_validate_unit_range) }, + { HP_POP(skill->validate_unit_interval, HP_skill_validate_unit_interval) }, + { HP_POP(skill->validate_unit_flag_sub, HP_skill_validate_unit_flag_sub) }, { HP_POP(skill->validate_unit_flag, HP_skill_validate_unit_flag) }, + { HP_POP(skill->validate_unit_target_sub, HP_skill_validate_unit_target_sub) }, + { HP_POP(skill->validate_unit_target, HP_skill_validate_unit_target) }, + { HP_POP(skill->validate_unit, HP_skill_validate_unit) }, { HP_POP(skill->validate_additional_fields, HP_skill_validate_additional_fields) }, - { HP_POP(skill->validate_skilldb, HP_skill_validate_skilldb) }, - { HP_POP(skill->validate_weapontype_sub, HP_skill_validate_weapontype_sub) }, - { HP_POP(skill->validate_ammotype_sub, HP_skill_validate_ammotype_sub) }, - { HP_POP(skill->validate_unit_flag_sub, HP_skill_validate_unit_flag_sub) }, { HP_POP(skill->read_skilldb, HP_skill_read_skilldb) }, { HP_POP(skill->config_set_level, HP_skill_config_set_level) }, { HP_POP(skill->level_set_value, HP_skill_level_set_value) }, @@ -3162,6 +3239,7 @@ struct HookingPointData HookingPoints[] = { { HP_POP(skill->splash_target, HP_skill_splash_target) }, { HP_POP(skill->check_npc_chaospanic, HP_skill_check_npc_chaospanic) }, { HP_POP(skill->count_wos, HP_skill_count_wos) }, + { HP_POP(skill->get_linked_song_dance_id, HP_skill_get_linked_song_dance_id) }, /* socket_interface */ { HP_POP(sockt->init, HP_sockt_init) }, { HP_POP(sockt->final, HP_sockt_final) }, @@ -3534,4 +3612,4 @@ struct HookingPointData HookingPoints[] = { { HP_POP(vending->searchall, HP_vending_searchall) }, }; -int HookingPointsLenMax = 49; +int HookingPointsLenMax = 50; diff --git a/src/plugins/HPMHooking/HPMHooking_map.Hooks.inc b/src/plugins/HPMHooking/HPMHooking_map.Hooks.inc index 592279cc4..f6f1b3839 100644 --- a/src/plugins/HPMHooking/HPMHooking_map.Hooks.inc +++ b/src/plugins/HPMHooking/HPMHooking_map.Hooks.inc @@ -13035,6 +13035,58 @@ void HP_clif_elemname_ack(int fd, struct block_list *bl) { } return; } +void HP_clif_skillname_ack(int fd, struct block_list *bl) { + int hIndex = 0; + if (HPMHooks.count.HP_clif_skillname_ack_pre > 0) { + void (*preHookFunc) (int *fd, struct block_list **bl); + *HPMforce_return = false; + for (hIndex = 0; hIndex < HPMHooks.count.HP_clif_skillname_ack_pre; hIndex++) { + preHookFunc = HPMHooks.list.HP_clif_skillname_ack_pre[hIndex].func; + preHookFunc(&fd, &bl); + } + if (*HPMforce_return) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.skillname_ack(fd, bl); + } + if (HPMHooks.count.HP_clif_skillname_ack_post > 0) { + void (*postHookFunc) (int fd, struct block_list *bl); + for (hIndex = 0; hIndex < HPMHooks.count.HP_clif_skillname_ack_post; hIndex++) { + postHookFunc = HPMHooks.list.HP_clif_skillname_ack_post[hIndex].func; + postHookFunc(fd, bl); + } + } + return; +} +void HP_clif_itemname_ack(int fd, struct block_list *bl) { + int hIndex = 0; + if (HPMHooks.count.HP_clif_itemname_ack_pre > 0) { + void (*preHookFunc) (int *fd, struct block_list **bl); + *HPMforce_return = false; + for (hIndex = 0; hIndex < HPMHooks.count.HP_clif_itemname_ack_pre; hIndex++) { + preHookFunc = HPMHooks.list.HP_clif_itemname_ack_pre[hIndex].func; + preHookFunc(&fd, &bl); + } + if (*HPMforce_return) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.itemname_ack(fd, bl); + } + if (HPMHooks.count.HP_clif_itemname_ack_post > 0) { + void (*postHookFunc) (int fd, struct block_list *bl); + for (hIndex = 0; hIndex < HPMHooks.count.HP_clif_itemname_ack_post; hIndex++) { + postHookFunc = HPMHooks.list.HP_clif_itemname_ack_post[hIndex].func; + postHookFunc(fd, bl); + } + } + return; +} void HP_clif_unknownname_ack(int fd, struct block_list *bl) { int hIndex = 0; if (HPMHooks.count.HP_clif_unknownname_ack_pre > 0) { @@ -30663,6 +30715,112 @@ void HP_clif_plapineDdukDdak_close(int fd, struct map_session_data *sd) { } return; } +bool HP_clif_lapineUpgrade_open(struct map_session_data *sd, int item_id) { + int hIndex = 0; + bool retVal___ = false; + if (HPMHooks.count.HP_clif_lapineUpgrade_open_pre > 0) { + bool (*preHookFunc) (struct map_session_data **sd, int *item_id); + *HPMforce_return = false; + for (hIndex = 0; hIndex < HPMHooks.count.HP_clif_lapineUpgrade_open_pre; hIndex++) { + preHookFunc = HPMHooks.list.HP_clif_lapineUpgrade_open_pre[hIndex].func; + retVal___ = preHookFunc(&sd, &item_id); + } + if (*HPMforce_return) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.clif.lapineUpgrade_open(sd, item_id); + } + if (HPMHooks.count.HP_clif_lapineUpgrade_open_post > 0) { + bool (*postHookFunc) (bool retVal___, struct map_session_data *sd, int item_id); + for (hIndex = 0; hIndex < HPMHooks.count.HP_clif_lapineUpgrade_open_post; hIndex++) { + postHookFunc = HPMHooks.list.HP_clif_lapineUpgrade_open_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, item_id); + } + } + return retVal___; +} +bool HP_clif_lapineUpgrade_result(struct map_session_data *sd, enum lapineUpgrade_result result) { + int hIndex = 0; + bool retVal___ = false; + if (HPMHooks.count.HP_clif_lapineUpgrade_result_pre > 0) { + bool (*preHookFunc) (struct map_session_data **sd, enum lapineUpgrade_result *result); + *HPMforce_return = false; + for (hIndex = 0; hIndex < HPMHooks.count.HP_clif_lapineUpgrade_result_pre; hIndex++) { + preHookFunc = HPMHooks.list.HP_clif_lapineUpgrade_result_pre[hIndex].func; + retVal___ = preHookFunc(&sd, &result); + } + if (*HPMforce_return) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.clif.lapineUpgrade_result(sd, result); + } + if (HPMHooks.count.HP_clif_lapineUpgrade_result_post > 0) { + bool (*postHookFunc) (bool retVal___, struct map_session_data *sd, enum lapineUpgrade_result result); + for (hIndex = 0; hIndex < HPMHooks.count.HP_clif_lapineUpgrade_result_post; hIndex++) { + postHookFunc = HPMHooks.list.HP_clif_lapineUpgrade_result_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, result); + } + } + return retVal___; +} +void HP_clif_pLapineUpgrade_close(int fd, struct map_session_data *sd) { + int hIndex = 0; + if (HPMHooks.count.HP_clif_pLapineUpgrade_close_pre > 0) { + void (*preHookFunc) (int *fd, struct map_session_data **sd); + *HPMforce_return = false; + for (hIndex = 0; hIndex < HPMHooks.count.HP_clif_pLapineUpgrade_close_pre; hIndex++) { + preHookFunc = HPMHooks.list.HP_clif_pLapineUpgrade_close_pre[hIndex].func; + preHookFunc(&fd, &sd); + } + if (*HPMforce_return) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.pLapineUpgrade_close(fd, sd); + } + if (HPMHooks.count.HP_clif_pLapineUpgrade_close_post > 0) { + void (*postHookFunc) (int fd, struct map_session_data *sd); + for (hIndex = 0; hIndex < HPMHooks.count.HP_clif_pLapineUpgrade_close_post; hIndex++) { + postHookFunc = HPMHooks.list.HP_clif_pLapineUpgrade_close_post[hIndex].func; + postHookFunc(fd, sd); + } + } + return; +} +void HP_clif_pLapineUpgrade_makeItem(int fd, struct map_session_data *sd) { + int hIndex = 0; + if (HPMHooks.count.HP_clif_pLapineUpgrade_makeItem_pre > 0) { + void (*preHookFunc) (int *fd, struct map_session_data **sd); + *HPMforce_return = false; + for (hIndex = 0; hIndex < HPMHooks.count.HP_clif_pLapineUpgrade_makeItem_pre; hIndex++) { + preHookFunc = HPMHooks.list.HP_clif_pLapineUpgrade_makeItem_pre[hIndex].func; + preHookFunc(&fd, &sd); + } + if (*HPMforce_return) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.pLapineUpgrade_makeItem(fd, sd); + } + if (HPMHooks.count.HP_clif_pLapineUpgrade_makeItem_post > 0) { + void (*postHookFunc) (int fd, struct map_session_data *sd); + for (hIndex = 0; hIndex < HPMHooks.count.HP_clif_pLapineUpgrade_makeItem_post; hIndex++) { + postHookFunc = HPMHooks.list.HP_clif_pLapineUpgrade_makeItem_post[hIndex].func; + postHookFunc(fd, sd); + } + } + return; +} void HP_clif_pReqGearOff(int fd, struct map_session_data *sd) { int hIndex = 0; if (HPMHooks.count.HP_clif_pReqGearOff_pre > 0) { @@ -50460,58 +50618,6 @@ bool HP_mapit_exists(struct s_mapiterator *iter) { return retVal___; } /* mapreg_interface */ -void HP_mapreg_init(void) { - int hIndex = 0; - if (HPMHooks.count.HP_mapreg_init_pre > 0) { - void (*preHookFunc) (void); - *HPMforce_return = false; - for (hIndex = 0; hIndex < HPMHooks.count.HP_mapreg_init_pre; hIndex++) { - preHookFunc = HPMHooks.list.HP_mapreg_init_pre[hIndex].func; - preHookFunc(); - } - if (*HPMforce_return) { - *HPMforce_return = false; - return; - } - } - { - HPMHooks.source.mapreg.init(); - } - if (HPMHooks.count.HP_mapreg_init_post > 0) { - void (*postHookFunc) (void); - for (hIndex = 0; hIndex < HPMHooks.count.HP_mapreg_init_post; hIndex++) { - postHookFunc = HPMHooks.list.HP_mapreg_init_post[hIndex].func; - postHookFunc(); - } - } - return; -} -void HP_mapreg_final(void) { - int hIndex = 0; - if (HPMHooks.count.HP_mapreg_final_pre > 0) { - void (*preHookFunc) (void); - *HPMforce_return = false; - for (hIndex = 0; hIndex < HPMHooks.count.HP_mapreg_final_pre; hIndex++) { - preHookFunc = HPMHooks.list.HP_mapreg_final_pre[hIndex].func; - preHookFunc(); - } - if (*HPMforce_return) { - *HPMforce_return = false; - return; - } - } - { - HPMHooks.source.mapreg.final(); - } - if (HPMHooks.count.HP_mapreg_final_post > 0) { - void (*postHookFunc) (void); - for (hIndex = 0; hIndex < HPMHooks.count.HP_mapreg_final_post; hIndex++) { - postHookFunc = HPMHooks.list.HP_mapreg_final_post[hIndex].func; - postHookFunc(); - } - } - return; -} int HP_mapreg_readreg(int64 uid) { int hIndex = 0; int retVal___ = 0; @@ -50566,6 +50672,60 @@ char* HP_mapreg_readregstr(int64 uid) { } return retVal___; } +bool HP_mapreg_set_num_db(int64 uid, const char *name, unsigned int index, int value) { + int hIndex = 0; + bool retVal___ = false; + if (HPMHooks.count.HP_mapreg_set_num_db_pre > 0) { + bool (*preHookFunc) (int64 *uid, const char **name, unsigned int *index, int *value); + *HPMforce_return = false; + for (hIndex = 0; hIndex < HPMHooks.count.HP_mapreg_set_num_db_pre; hIndex++) { + preHookFunc = HPMHooks.list.HP_mapreg_set_num_db_pre[hIndex].func; + retVal___ = preHookFunc(&uid, &name, &index, &value); + } + if (*HPMforce_return) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.mapreg.set_num_db(uid, name, index, value); + } + if (HPMHooks.count.HP_mapreg_set_num_db_post > 0) { + bool (*postHookFunc) (bool retVal___, int64 uid, const char *name, unsigned int index, int value); + for (hIndex = 0; hIndex < HPMHooks.count.HP_mapreg_set_num_db_post; hIndex++) { + postHookFunc = HPMHooks.list.HP_mapreg_set_num_db_post[hIndex].func; + retVal___ = postHookFunc(retVal___, uid, name, index, value); + } + } + return retVal___; +} +bool HP_mapreg_delete_num_db(int64 uid, const char *name, unsigned int index) { + int hIndex = 0; + bool retVal___ = false; + if (HPMHooks.count.HP_mapreg_delete_num_db_pre > 0) { + bool (*preHookFunc) (int64 *uid, const char **name, unsigned int *index); + *HPMforce_return = false; + for (hIndex = 0; hIndex < HPMHooks.count.HP_mapreg_delete_num_db_pre; hIndex++) { + preHookFunc = HPMHooks.list.HP_mapreg_delete_num_db_pre[hIndex].func; + retVal___ = preHookFunc(&uid, &name, &index); + } + if (*HPMforce_return) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.mapreg.delete_num_db(uid, name, index); + } + if (HPMHooks.count.HP_mapreg_delete_num_db_post > 0) { + bool (*postHookFunc) (bool retVal___, int64 uid, const char *name, unsigned int index); + for (hIndex = 0; hIndex < HPMHooks.count.HP_mapreg_delete_num_db_post; hIndex++) { + postHookFunc = HPMHooks.list.HP_mapreg_delete_num_db_post[hIndex].func; + retVal___ = postHookFunc(retVal___, uid, name, index); + } + } + return retVal___; +} bool HP_mapreg_setreg(int64 uid, int val) { int hIndex = 0; bool retVal___ = false; @@ -50593,6 +50753,60 @@ bool HP_mapreg_setreg(int64 uid, int val) { } return retVal___; } +bool HP_mapreg_set_str_db(int64 uid, const char *name, unsigned int index, const char *value) { + int hIndex = 0; + bool retVal___ = false; + if (HPMHooks.count.HP_mapreg_set_str_db_pre > 0) { + bool (*preHookFunc) (int64 *uid, const char **name, unsigned int *index, const char **value); + *HPMforce_return = false; + for (hIndex = 0; hIndex < HPMHooks.count.HP_mapreg_set_str_db_pre; hIndex++) { + preHookFunc = HPMHooks.list.HP_mapreg_set_str_db_pre[hIndex].func; + retVal___ = preHookFunc(&uid, &name, &index, &value); + } + if (*HPMforce_return) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.mapreg.set_str_db(uid, name, index, value); + } + if (HPMHooks.count.HP_mapreg_set_str_db_post > 0) { + bool (*postHookFunc) (bool retVal___, int64 uid, const char *name, unsigned int index, const char *value); + for (hIndex = 0; hIndex < HPMHooks.count.HP_mapreg_set_str_db_post; hIndex++) { + postHookFunc = HPMHooks.list.HP_mapreg_set_str_db_post[hIndex].func; + retVal___ = postHookFunc(retVal___, uid, name, index, value); + } + } + return retVal___; +} +bool HP_mapreg_delete_str_db(int64 uid, const char *name, unsigned int index) { + int hIndex = 0; + bool retVal___ = false; + if (HPMHooks.count.HP_mapreg_delete_str_db_pre > 0) { + bool (*preHookFunc) (int64 *uid, const char **name, unsigned int *index); + *HPMforce_return = false; + for (hIndex = 0; hIndex < HPMHooks.count.HP_mapreg_delete_str_db_pre; hIndex++) { + preHookFunc = HPMHooks.list.HP_mapreg_delete_str_db_pre[hIndex].func; + retVal___ = preHookFunc(&uid, &name, &index); + } + if (*HPMforce_return) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.mapreg.delete_str_db(uid, name, index); + } + if (HPMHooks.count.HP_mapreg_delete_str_db_post > 0) { + bool (*postHookFunc) (bool retVal___, int64 uid, const char *name, unsigned int index); + for (hIndex = 0; hIndex < HPMHooks.count.HP_mapreg_delete_str_db_post; hIndex++) { + postHookFunc = HPMHooks.list.HP_mapreg_delete_str_db_post[hIndex].func; + retVal___ = postHookFunc(retVal___, uid, name, index); + } + } + return retVal___; +} bool HP_mapreg_setregstr(int64 uid, const char *str) { int hIndex = 0; bool retVal___ = false; @@ -50620,6 +50834,58 @@ bool HP_mapreg_setregstr(int64 uid, const char *str) { } return retVal___; } +void HP_mapreg_load_num_db(void) { + int hIndex = 0; + if (HPMHooks.count.HP_mapreg_load_num_db_pre > 0) { + void (*preHookFunc) (void); + *HPMforce_return = false; + for (hIndex = 0; hIndex < HPMHooks.count.HP_mapreg_load_num_db_pre; hIndex++) { + preHookFunc = HPMHooks.list.HP_mapreg_load_num_db_pre[hIndex].func; + preHookFunc(); + } + if (*HPMforce_return) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.mapreg.load_num_db(); + } + if (HPMHooks.count.HP_mapreg_load_num_db_post > 0) { + void (*postHookFunc) (void); + for (hIndex = 0; hIndex < HPMHooks.count.HP_mapreg_load_num_db_post; hIndex++) { + postHookFunc = HPMHooks.list.HP_mapreg_load_num_db_post[hIndex].func; + postHookFunc(); + } + } + return; +} +void HP_mapreg_load_str_db(void) { + int hIndex = 0; + if (HPMHooks.count.HP_mapreg_load_str_db_pre > 0) { + void (*preHookFunc) (void); + *HPMforce_return = false; + for (hIndex = 0; hIndex < HPMHooks.count.HP_mapreg_load_str_db_pre; hIndex++) { + preHookFunc = HPMHooks.list.HP_mapreg_load_str_db_pre[hIndex].func; + preHookFunc(); + } + if (*HPMforce_return) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.mapreg.load_str_db(); + } + if (HPMHooks.count.HP_mapreg_load_str_db_post > 0) { + void (*postHookFunc) (void); + for (hIndex = 0; hIndex < HPMHooks.count.HP_mapreg_load_str_db_post; hIndex++) { + postHookFunc = HPMHooks.list.HP_mapreg_load_str_db_post[hIndex].func; + postHookFunc(); + } + } + return; +} void HP_mapreg_load(void) { int hIndex = 0; if (HPMHooks.count.HP_mapreg_load_pre > 0) { @@ -50646,6 +50912,58 @@ void HP_mapreg_load(void) { } return; } +void HP_mapreg_save_num_db(const char *name, unsigned int index, int value) { + int hIndex = 0; + if (HPMHooks.count.HP_mapreg_save_num_db_pre > 0) { + void (*preHookFunc) (const char **name, unsigned int *index, int *value); + *HPMforce_return = false; + for (hIndex = 0; hIndex < HPMHooks.count.HP_mapreg_save_num_db_pre; hIndex++) { + preHookFunc = HPMHooks.list.HP_mapreg_save_num_db_pre[hIndex].func; + preHookFunc(&name, &index, &value); + } + if (*HPMforce_return) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.mapreg.save_num_db(name, index, value); + } + if (HPMHooks.count.HP_mapreg_save_num_db_post > 0) { + void (*postHookFunc) (const char *name, unsigned int index, int value); + for (hIndex = 0; hIndex < HPMHooks.count.HP_mapreg_save_num_db_post; hIndex++) { + postHookFunc = HPMHooks.list.HP_mapreg_save_num_db_post[hIndex].func; + postHookFunc(name, index, value); + } + } + return; +} +void HP_mapreg_save_str_db(const char *name, unsigned int index, const char *value) { + int hIndex = 0; + if (HPMHooks.count.HP_mapreg_save_str_db_pre > 0) { + void (*preHookFunc) (const char **name, unsigned int *index, const char **value); + *HPMforce_return = false; + for (hIndex = 0; hIndex < HPMHooks.count.HP_mapreg_save_str_db_pre; hIndex++) { + preHookFunc = HPMHooks.list.HP_mapreg_save_str_db_pre[hIndex].func; + preHookFunc(&name, &index, &value); + } + if (*HPMforce_return) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.mapreg.save_str_db(name, index, value); + } + if (HPMHooks.count.HP_mapreg_save_str_db_post > 0) { + void (*postHookFunc) (const char *name, unsigned int index, const char *value); + for (hIndex = 0; hIndex < HPMHooks.count.HP_mapreg_save_str_db_post; hIndex++) { + postHookFunc = HPMHooks.list.HP_mapreg_save_str_db_post[hIndex].func; + postHookFunc(name, index, value); + } + } + return; +} void HP_mapreg_save(void) { int hIndex = 0; if (HPMHooks.count.HP_mapreg_save_pre > 0) { @@ -50758,14 +51076,14 @@ void HP_mapreg_reload(void) { } return; } -bool HP_mapreg_config_read(const char *filename, const struct config_setting_t *config, bool imported) { +bool HP_mapreg_config_read_registry(const char *filename, const struct config_setting_t *config, bool imported) { int hIndex = 0; bool retVal___ = false; - if (HPMHooks.count.HP_mapreg_config_read_pre > 0) { + if (HPMHooks.count.HP_mapreg_config_read_registry_pre > 0) { bool (*preHookFunc) (const char **filename, const struct config_setting_t **config, bool *imported); *HPMforce_return = false; - for (hIndex = 0; hIndex < HPMHooks.count.HP_mapreg_config_read_pre; hIndex++) { - preHookFunc = HPMHooks.list.HP_mapreg_config_read_pre[hIndex].func; + for (hIndex = 0; hIndex < HPMHooks.count.HP_mapreg_config_read_registry_pre; hIndex++) { + preHookFunc = HPMHooks.list.HP_mapreg_config_read_registry_pre[hIndex].func; retVal___ = preHookFunc(&filename, &config, &imported); } if (*HPMforce_return) { @@ -50774,17 +51092,69 @@ bool HP_mapreg_config_read(const char *filename, const struct config_setting_t * } } { - retVal___ = HPMHooks.source.mapreg.config_read(filename, config, imported); + retVal___ = HPMHooks.source.mapreg.config_read_registry(filename, config, imported); } - if (HPMHooks.count.HP_mapreg_config_read_post > 0) { + if (HPMHooks.count.HP_mapreg_config_read_registry_post > 0) { bool (*postHookFunc) (bool retVal___, const char *filename, const struct config_setting_t *config, bool imported); - for (hIndex = 0; hIndex < HPMHooks.count.HP_mapreg_config_read_post; hIndex++) { - postHookFunc = HPMHooks.list.HP_mapreg_config_read_post[hIndex].func; + for (hIndex = 0; hIndex < HPMHooks.count.HP_mapreg_config_read_registry_post; hIndex++) { + postHookFunc = HPMHooks.list.HP_mapreg_config_read_registry_post[hIndex].func; retVal___ = postHookFunc(retVal___, filename, config, imported); } } return retVal___; } +void HP_mapreg_final(void) { + int hIndex = 0; + if (HPMHooks.count.HP_mapreg_final_pre > 0) { + void (*preHookFunc) (void); + *HPMforce_return = false; + for (hIndex = 0; hIndex < HPMHooks.count.HP_mapreg_final_pre; hIndex++) { + preHookFunc = HPMHooks.list.HP_mapreg_final_pre[hIndex].func; + preHookFunc(); + } + if (*HPMforce_return) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.mapreg.final(); + } + if (HPMHooks.count.HP_mapreg_final_post > 0) { + void (*postHookFunc) (void); + for (hIndex = 0; hIndex < HPMHooks.count.HP_mapreg_final_post; hIndex++) { + postHookFunc = HPMHooks.list.HP_mapreg_final_post[hIndex].func; + postHookFunc(); + } + } + return; +} +void HP_mapreg_init(void) { + int hIndex = 0; + if (HPMHooks.count.HP_mapreg_init_pre > 0) { + void (*preHookFunc) (void); + *HPMforce_return = false; + for (hIndex = 0; hIndex < HPMHooks.count.HP_mapreg_init_pre; hIndex++) { + preHookFunc = HPMHooks.list.HP_mapreg_init_pre[hIndex].func; + preHookFunc(); + } + if (*HPMforce_return) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.mapreg.init(); + } + if (HPMHooks.count.HP_mapreg_init_post > 0) { + void (*postHookFunc) (void); + for (hIndex = 0; hIndex < HPMHooks.count.HP_mapreg_init_post; hIndex++) { + postHookFunc = HPMHooks.list.HP_mapreg_init_post[hIndex].func; + postHookFunc(); + } + } + return; +} /* md5_interface */ void HP_md5_string(const char *string, char *output) { int hIndex = 0; @@ -53703,11 +54073,11 @@ int HP_mob_getfriendstatus_sub(struct block_list *bl, va_list ap) { } return retVal___; } -struct mob_data* HP_mob_getfriendstatus(struct mob_data *md, int cond1, int cond2) { +struct block_list* HP_mob_getfriendstatus(struct mob_data *md, int cond1, int cond2) { int hIndex = 0; - struct mob_data* retVal___ = NULL; + struct block_list* retVal___ = NULL; if (HPMHooks.count.HP_mob_getfriendstatus_pre > 0) { - struct mob_data* (*preHookFunc) (struct mob_data **md, int *cond1, int *cond2); + struct block_list* (*preHookFunc) (struct mob_data **md, int *cond1, int *cond2); *HPMforce_return = false; for (hIndex = 0; hIndex < HPMHooks.count.HP_mob_getfriendstatus_pre; hIndex++) { preHookFunc = HPMHooks.list.HP_mob_getfriendstatus_pre[hIndex].func; @@ -53722,7 +54092,7 @@ struct mob_data* HP_mob_getfriendstatus(struct mob_data *md, int cond1, int cond retVal___ = HPMHooks.source.mob.getfriendstatus(md, cond1, cond2); } if (HPMHooks.count.HP_mob_getfriendstatus_post > 0) { - struct mob_data* (*postHookFunc) (struct mob_data* retVal___, struct mob_data *md, int cond1, int cond2); + struct block_list* (*postHookFunc) (struct block_list* retVal___, struct mob_data *md, int cond1, int cond2); for (hIndex = 0; hIndex < HPMHooks.count.HP_mob_getfriendstatus_post; hIndex++) { postHookFunc = HPMHooks.list.HP_mob_getfriendstatus_post[hIndex].func; retVal___ = postHookFunc(retVal___, md, cond1, cond2); @@ -58718,6 +59088,58 @@ int HP_npc_secure_timeout_timer(int tid, int64 tick, int id, intptr_t data) { return retVal___; } /* nullpo_interface */ +void HP_nullpo_init(void) { + int hIndex = 0; + if (HPMHooks.count.HP_nullpo_init_pre > 0) { + void (*preHookFunc) (void); + *HPMforce_return = false; + for (hIndex = 0; hIndex < HPMHooks.count.HP_nullpo_init_pre; hIndex++) { + preHookFunc = HPMHooks.list.HP_nullpo_init_pre[hIndex].func; + preHookFunc(); + } + if (*HPMforce_return) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.nullpo.init(); + } + if (HPMHooks.count.HP_nullpo_init_post > 0) { + void (*postHookFunc) (void); + for (hIndex = 0; hIndex < HPMHooks.count.HP_nullpo_init_post; hIndex++) { + postHookFunc = HPMHooks.list.HP_nullpo_init_post[hIndex].func; + postHookFunc(); + } + } + return; +} +void HP_nullpo_final(void) { + int hIndex = 0; + if (HPMHooks.count.HP_nullpo_final_pre > 0) { + void (*preHookFunc) (void); + *HPMforce_return = false; + for (hIndex = 0; hIndex < HPMHooks.count.HP_nullpo_final_pre; hIndex++) { + preHookFunc = HPMHooks.list.HP_nullpo_final_pre[hIndex].func; + preHookFunc(); + } + if (*HPMforce_return) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.nullpo.final(); + } + if (HPMHooks.count.HP_nullpo_final_post > 0) { + void (*postHookFunc) (void); + for (hIndex = 0; hIndex < HPMHooks.count.HP_nullpo_final_post; hIndex++) { + postHookFunc = HPMHooks.list.HP_nullpo_final_post[hIndex].func; + postHookFunc(); + } + } + return; +} void HP_nullpo_assert_report(const char *file, int line, const char *func, const char *targetname, const char *title) { int hIndex = 0; if (HPMHooks.count.HP_nullpo_assert_report_pre > 0) { @@ -63359,32 +63781,109 @@ int HP_pc_useitem(struct map_session_data *sd, int n) { } return retVal___; } -int HP_pc_itemskill_clear(struct map_session_data *sd) { +void HP_pc_autocast_clear_current(struct map_session_data *sd) { int hIndex = 0; - int retVal___ = 0; - if (HPMHooks.count.HP_pc_itemskill_clear_pre > 0) { - int (*preHookFunc) (struct map_session_data **sd); + if (HPMHooks.count.HP_pc_autocast_clear_current_pre > 0) { + void (*preHookFunc) (struct map_session_data **sd); *HPMforce_return = false; - for (hIndex = 0; hIndex < HPMHooks.count.HP_pc_itemskill_clear_pre; hIndex++) { - preHookFunc = HPMHooks.list.HP_pc_itemskill_clear_pre[hIndex].func; - retVal___ = preHookFunc(&sd); + for (hIndex = 0; hIndex < HPMHooks.count.HP_pc_autocast_clear_current_pre; hIndex++) { + preHookFunc = HPMHooks.list.HP_pc_autocast_clear_current_pre[hIndex].func; + preHookFunc(&sd); } if (*HPMforce_return) { *HPMforce_return = false; - return retVal___; + return; } } { - retVal___ = HPMHooks.source.pc.itemskill_clear(sd); + HPMHooks.source.pc.autocast_clear_current(sd); } - if (HPMHooks.count.HP_pc_itemskill_clear_post > 0) { - int (*postHookFunc) (int retVal___, struct map_session_data *sd); - for (hIndex = 0; hIndex < HPMHooks.count.HP_pc_itemskill_clear_post; hIndex++) { - postHookFunc = HPMHooks.list.HP_pc_itemskill_clear_post[hIndex].func; - retVal___ = postHookFunc(retVal___, sd); + if (HPMHooks.count.HP_pc_autocast_clear_current_post > 0) { + void (*postHookFunc) (struct map_session_data *sd); + for (hIndex = 0; hIndex < HPMHooks.count.HP_pc_autocast_clear_current_post; hIndex++) { + postHookFunc = HPMHooks.list.HP_pc_autocast_clear_current_post[hIndex].func; + postHookFunc(sd); } } - return retVal___; + return; +} +void HP_pc_autocast_clear(struct map_session_data *sd) { + int hIndex = 0; + if (HPMHooks.count.HP_pc_autocast_clear_pre > 0) { + void (*preHookFunc) (struct map_session_data **sd); + *HPMforce_return = false; + for (hIndex = 0; hIndex < HPMHooks.count.HP_pc_autocast_clear_pre; hIndex++) { + preHookFunc = HPMHooks.list.HP_pc_autocast_clear_pre[hIndex].func; + preHookFunc(&sd); + } + if (*HPMforce_return) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.pc.autocast_clear(sd); + } + if (HPMHooks.count.HP_pc_autocast_clear_post > 0) { + void (*postHookFunc) (struct map_session_data *sd); + for (hIndex = 0; hIndex < HPMHooks.count.HP_pc_autocast_clear_post; hIndex++) { + postHookFunc = HPMHooks.list.HP_pc_autocast_clear_post[hIndex].func; + postHookFunc(sd); + } + } + return; +} +void HP_pc_autocast_set_current(struct map_session_data *sd, int skill_id) { + int hIndex = 0; + if (HPMHooks.count.HP_pc_autocast_set_current_pre > 0) { + void (*preHookFunc) (struct map_session_data **sd, int *skill_id); + *HPMforce_return = false; + for (hIndex = 0; hIndex < HPMHooks.count.HP_pc_autocast_set_current_pre; hIndex++) { + preHookFunc = HPMHooks.list.HP_pc_autocast_set_current_pre[hIndex].func; + preHookFunc(&sd, &skill_id); + } + if (*HPMforce_return) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.pc.autocast_set_current(sd, skill_id); + } + if (HPMHooks.count.HP_pc_autocast_set_current_post > 0) { + void (*postHookFunc) (struct map_session_data *sd, int skill_id); + for (hIndex = 0; hIndex < HPMHooks.count.HP_pc_autocast_set_current_post; hIndex++) { + postHookFunc = HPMHooks.list.HP_pc_autocast_set_current_post[hIndex].func; + postHookFunc(sd, skill_id); + } + } + return; +} +void HP_pc_autocast_remove(struct map_session_data *sd, enum autocast_type type, int skill_id, int skill_lv) { + int hIndex = 0; + if (HPMHooks.count.HP_pc_autocast_remove_pre > 0) { + void (*preHookFunc) (struct map_session_data **sd, enum autocast_type *type, int *skill_id, int *skill_lv); + *HPMforce_return = false; + for (hIndex = 0; hIndex < HPMHooks.count.HP_pc_autocast_remove_pre; hIndex++) { + preHookFunc = HPMHooks.list.HP_pc_autocast_remove_pre[hIndex].func; + preHookFunc(&sd, &type, &skill_id, &skill_lv); + } + if (*HPMforce_return) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.pc.autocast_remove(sd, type, skill_id, skill_lv); + } + if (HPMHooks.count.HP_pc_autocast_remove_post > 0) { + void (*postHookFunc) (struct map_session_data *sd, enum autocast_type type, int skill_id, int skill_lv); + for (hIndex = 0; hIndex < HPMHooks.count.HP_pc_autocast_remove_post; hIndex++) { + postHookFunc = HPMHooks.list.HP_pc_autocast_remove_post[hIndex].func; + postHookFunc(sd, type, skill_id, skill_lv); + } + } + return; } int HP_pc_skillatk_bonus(struct map_session_data *sd, uint16 skill_id) { int hIndex = 0; @@ -63653,6 +64152,58 @@ int HP_pc_jobchange(struct map_session_data *sd, int class, int upper) { } return retVal___; } +void HP_pc_hide(struct map_session_data *sd, bool show_msg) { + int hIndex = 0; + if (HPMHooks.count.HP_pc_hide_pre > 0) { + void (*preHookFunc) (struct map_session_data **sd, bool *show_msg); + *HPMforce_return = false; + for (hIndex = 0; hIndex < HPMHooks.count.HP_pc_hide_pre; hIndex++) { + preHookFunc = HPMHooks.list.HP_pc_hide_pre[hIndex].func; + preHookFunc(&sd, &show_msg); + } + if (*HPMforce_return) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.pc.hide(sd, show_msg); + } + if (HPMHooks.count.HP_pc_hide_post > 0) { + void (*postHookFunc) (struct map_session_data *sd, bool show_msg); + for (hIndex = 0; hIndex < HPMHooks.count.HP_pc_hide_post; hIndex++) { + postHookFunc = HPMHooks.list.HP_pc_hide_post[hIndex].func; + postHookFunc(sd, show_msg); + } + } + return; +} +void HP_pc_unhide(struct map_session_data *sd, bool show_msg) { + int hIndex = 0; + if (HPMHooks.count.HP_pc_unhide_pre > 0) { + void (*preHookFunc) (struct map_session_data **sd, bool *show_msg); + *HPMforce_return = false; + for (hIndex = 0; hIndex < HPMHooks.count.HP_pc_unhide_pre; hIndex++) { + preHookFunc = HPMHooks.list.HP_pc_unhide_pre[hIndex].func; + preHookFunc(&sd, &show_msg); + } + if (*HPMforce_return) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.pc.unhide(sd, show_msg); + } + if (HPMHooks.count.HP_pc_unhide_post > 0) { + void (*postHookFunc) (struct map_session_data *sd, bool show_msg); + for (hIndex = 0; hIndex < HPMHooks.count.HP_pc_unhide_post; hIndex++) { + postHookFunc = HPMHooks.list.HP_pc_unhide_post[hIndex].func; + postHookFunc(sd, show_msg); + } + } + return; +} int HP_pc_setoption(struct map_session_data *sd, int type) { int hIndex = 0; int retVal___ = 0; @@ -65391,10 +65942,10 @@ int HP_pc_load_combo(struct map_session_data *sd) { } return retVal___; } -void HP_pc_add_charm(struct map_session_data *sd, int interval, int max, int type) { +void HP_pc_add_charm(struct map_session_data *sd, int interval, int max, enum spirit_charm_types type) { int hIndex = 0; if (HPMHooks.count.HP_pc_add_charm_pre > 0) { - void (*preHookFunc) (struct map_session_data **sd, int *interval, int *max, int *type); + void (*preHookFunc) (struct map_session_data **sd, int *interval, int *max, enum spirit_charm_types *type); *HPMforce_return = false; for (hIndex = 0; hIndex < HPMHooks.count.HP_pc_add_charm_pre; hIndex++) { preHookFunc = HPMHooks.list.HP_pc_add_charm_pre[hIndex].func; @@ -65409,7 +65960,7 @@ void HP_pc_add_charm(struct map_session_data *sd, int interval, int max, int typ HPMHooks.source.pc.add_charm(sd, interval, max, type); } if (HPMHooks.count.HP_pc_add_charm_post > 0) { - void (*postHookFunc) (struct map_session_data *sd, int interval, int max, int type); + void (*postHookFunc) (struct map_session_data *sd, int interval, int max, enum spirit_charm_types type); for (hIndex = 0; hIndex < HPMHooks.count.HP_pc_add_charm_post; hIndex++) { postHookFunc = HPMHooks.list.HP_pc_add_charm_post[hIndex].func; postHookFunc(sd, interval, max, type); @@ -65417,10 +65968,10 @@ void HP_pc_add_charm(struct map_session_data *sd, int interval, int max, int typ } return; } -void HP_pc_del_charm(struct map_session_data *sd, int count, int type) { +void HP_pc_del_charm(struct map_session_data *sd, int count, enum spirit_charm_types type) { int hIndex = 0; if (HPMHooks.count.HP_pc_del_charm_pre > 0) { - void (*preHookFunc) (struct map_session_data **sd, int *count, int *type); + void (*preHookFunc) (struct map_session_data **sd, int *count, enum spirit_charm_types *type); *HPMforce_return = false; for (hIndex = 0; hIndex < HPMHooks.count.HP_pc_del_charm_pre; hIndex++) { preHookFunc = HPMHooks.list.HP_pc_del_charm_pre[hIndex].func; @@ -65435,7 +65986,7 @@ void HP_pc_del_charm(struct map_session_data *sd, int count, int type) { HPMHooks.source.pc.del_charm(sd, count, type); } if (HPMHooks.count.HP_pc_del_charm_post > 0) { - void (*postHookFunc) (struct map_session_data *sd, int count, int type); + void (*postHookFunc) (struct map_session_data *sd, int count, enum spirit_charm_types type); for (hIndex = 0; hIndex < HPMHooks.count.HP_pc_del_charm_post; hIndex++) { postHookFunc = HPMHooks.list.HP_pc_del_charm_post[hIndex].func; postHookFunc(sd, count, type); @@ -67509,6 +68060,32 @@ int HP_pet_hungry_val(struct pet_data *pd) { } return retVal___; } +void HP_pet_set_hunger(struct pet_data *pd, int value) { + int hIndex = 0; + if (HPMHooks.count.HP_pet_set_hunger_pre > 0) { + void (*preHookFunc) (struct pet_data **pd, int *value); + *HPMforce_return = false; + for (hIndex = 0; hIndex < HPMHooks.count.HP_pet_set_hunger_pre; hIndex++) { + preHookFunc = HPMHooks.list.HP_pet_set_hunger_pre[hIndex].func; + preHookFunc(&pd, &value); + } + if (*HPMforce_return) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.pet.set_hunger(pd, value); + } + if (HPMHooks.count.HP_pet_set_hunger_post > 0) { + void (*postHookFunc) (struct pet_data *pd, int value); + for (hIndex = 0; hIndex < HPMHooks.count.HP_pet_set_hunger_post; hIndex++) { + postHookFunc = HPMHooks.list.HP_pet_set_hunger_post[hIndex].func; + postHookFunc(pd, value); + } + } + return; +} void HP_pet_set_intimate(struct pet_data *pd, int value) { int hIndex = 0; if (HPMHooks.count.HP_pet_set_intimate_pre > 0) { @@ -71461,14 +72038,14 @@ bool HP_script_get_constant(const char *name, int *value) { } return retVal___; } -void HP_script_label_add(int key, int pos) { +void HP_script_label_add(int key, int pos, enum script_label_flags flags) { int hIndex = 0; if (HPMHooks.count.HP_script_label_add_pre > 0) { - void (*preHookFunc) (int *key, int *pos); + void (*preHookFunc) (int *key, int *pos, enum script_label_flags *flags); *HPMforce_return = false; for (hIndex = 0; hIndex < HPMHooks.count.HP_script_label_add_pre; hIndex++) { preHookFunc = HPMHooks.list.HP_script_label_add_pre[hIndex].func; - preHookFunc(&key, &pos); + preHookFunc(&key, &pos, &flags); } if (*HPMforce_return) { *HPMforce_return = false; @@ -71476,13 +72053,13 @@ void HP_script_label_add(int key, int pos) { } } { - HPMHooks.source.script.label_add(key, pos); + HPMHooks.source.script.label_add(key, pos, flags); } if (HPMHooks.count.HP_script_label_add_post > 0) { - void (*postHookFunc) (int key, int pos); + void (*postHookFunc) (int key, int pos, enum script_label_flags flags); for (hIndex = 0; hIndex < HPMHooks.count.HP_script_label_add_post; hIndex++) { postHookFunc = HPMHooks.list.HP_script_label_add_post[hIndex].func; - postHookFunc(key, pos); + postHookFunc(key, pos, flags); } } return; @@ -72337,6 +72914,33 @@ const char* HP_script_parse_syntax(const char *p) { } return retVal___; } +const char* HP_script_parse_syntax_function(const char *p, bool is_public) { + int hIndex = 0; + const char* retVal___ = NULL; + if (HPMHooks.count.HP_script_parse_syntax_function_pre > 0) { + const char* (*preHookFunc) (const char **p, bool *is_public); + *HPMforce_return = false; + for (hIndex = 0; hIndex < HPMHooks.count.HP_script_parse_syntax_function_pre; hIndex++) { + preHookFunc = HPMHooks.list.HP_script_parse_syntax_function_pre[hIndex].func; + retVal___ = preHookFunc(&p, &is_public); + } + if (*HPMforce_return) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.script.parse_syntax_function(p, is_public); + } + if (HPMHooks.count.HP_script_parse_syntax_function_post > 0) { + const char* (*postHookFunc) (const char* retVal___, const char *p, bool is_public); + for (hIndex = 0; hIndex < HPMHooks.count.HP_script_parse_syntax_function_post; hIndex++) { + postHookFunc = HPMHooks.list.HP_script_parse_syntax_function_post[hIndex].func; + retVal___ = postHookFunc(retVal___, p, is_public); + } + } + return retVal___; +} c_op HP_script_get_com(const struct script_buf *scriptbuf, int *pos) { int hIndex = 0; c_op retVal___ = C_NOP; @@ -73185,6 +73789,33 @@ void HP_script_errorwarning_sub(StringBuf *buf, const char *src, const char *fil } return; } +bool HP_script_is_permanent_variable(const char *name) { + int hIndex = 0; + bool retVal___ = false; + if (HPMHooks.count.HP_script_is_permanent_variable_pre > 0) { + bool (*preHookFunc) (const char **name); + *HPMforce_return = false; + for (hIndex = 0; hIndex < HPMHooks.count.HP_script_is_permanent_variable_pre; hIndex++) { + preHookFunc = HPMHooks.list.HP_script_is_permanent_variable_pre[hIndex].func; + retVal___ = preHookFunc(&name); + } + if (*HPMforce_return) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.script.is_permanent_variable(name); + } + if (HPMHooks.count.HP_script_is_permanent_variable_post > 0) { + bool (*postHookFunc) (bool retVal___, const char *name); + for (hIndex = 0; hIndex < HPMHooks.count.HP_script_is_permanent_variable_post; hIndex++) { + postHookFunc = HPMHooks.list.HP_script_is_permanent_variable_post[hIndex].func; + retVal___ = postHookFunc(retVal___, name); + } + } + return retVal___; +} int HP_script_set_reg(struct script_state *st, struct map_session_data *sd, int64 num, const char *name, const void *value, struct reg_db *ref) { int hIndex = 0; int retVal___ = 0; @@ -76138,15 +76769,15 @@ int HP_skill_get_index(int skill_id) { } return retVal___; } -int HP_skill_get_type(int skill_id) { +int HP_skill_get_type(int skill_id, int skill_lv) { int hIndex = 0; int retVal___ = 0; if (HPMHooks.count.HP_skill_get_type_pre > 0) { - int (*preHookFunc) (int *skill_id); + int (*preHookFunc) (int *skill_id, int *skill_lv); *HPMforce_return = false; for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_type_pre; hIndex++) { preHookFunc = HPMHooks.list.HP_skill_get_type_pre[hIndex].func; - retVal___ = preHookFunc(&skill_id); + retVal___ = preHookFunc(&skill_id, &skill_lv); } if (*HPMforce_return) { *HPMforce_return = false; @@ -76154,26 +76785,26 @@ int HP_skill_get_type(int skill_id) { } } { - retVal___ = HPMHooks.source.skill.get_type(skill_id); + retVal___ = HPMHooks.source.skill.get_type(skill_id, skill_lv); } if (HPMHooks.count.HP_skill_get_type_post > 0) { - int (*postHookFunc) (int retVal___, int skill_id); + int (*postHookFunc) (int retVal___, int skill_id, int skill_lv); for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_type_post; hIndex++) { postHookFunc = HPMHooks.list.HP_skill_get_type_post[hIndex].func; - retVal___ = postHookFunc(retVal___, skill_id); + retVal___ = postHookFunc(retVal___, skill_id, skill_lv); } } return retVal___; } -int HP_skill_get_hit(int skill_id) { +int HP_skill_get_hit(int skill_id, int skill_lv) { int hIndex = 0; int retVal___ = 0; if (HPMHooks.count.HP_skill_get_hit_pre > 0) { - int (*preHookFunc) (int *skill_id); + int (*preHookFunc) (int *skill_id, int *skill_lv); *HPMforce_return = false; for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_hit_pre; hIndex++) { preHookFunc = HPMHooks.list.HP_skill_get_hit_pre[hIndex].func; - retVal___ = preHookFunc(&skill_id); + retVal___ = preHookFunc(&skill_id, &skill_lv); } if (*HPMforce_return) { *HPMforce_return = false; @@ -76181,13 +76812,13 @@ int HP_skill_get_hit(int skill_id) { } } { - retVal___ = HPMHooks.source.skill.get_hit(skill_id); + retVal___ = HPMHooks.source.skill.get_hit(skill_id, skill_lv); } if (HPMHooks.count.HP_skill_get_hit_post > 0) { - int (*postHookFunc) (int retVal___, int skill_id); + int (*postHookFunc) (int retVal___, int skill_id, int skill_lv); for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_hit_post; hIndex++) { postHookFunc = HPMHooks.list.HP_skill_get_hit_post[hIndex].func; - retVal___ = postHookFunc(retVal___, skill_id); + retVal___ = postHookFunc(retVal___, skill_id, skill_lv); } } return retVal___; @@ -76435,6 +77066,33 @@ int HP_skill_get_mhp(int skill_id, int skill_lv) { } return retVal___; } +int HP_skill_get_msp(int skill_id, int skill_lv) { + int hIndex = 0; + int retVal___ = 0; + if (HPMHooks.count.HP_skill_get_msp_pre > 0) { + int (*preHookFunc) (int *skill_id, int *skill_lv); + *HPMforce_return = false; + for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_msp_pre; hIndex++) { + preHookFunc = HPMHooks.list.HP_skill_get_msp_pre[hIndex].func; + retVal___ = preHookFunc(&skill_id, &skill_lv); + } + if (*HPMforce_return) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.skill.get_msp(skill_id, skill_lv); + } + if (HPMHooks.count.HP_skill_get_msp_post > 0) { + int (*postHookFunc) (int retVal___, int skill_id, int skill_lv); + for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_msp_post; hIndex++) { + postHookFunc = HPMHooks.list.HP_skill_get_msp_post[hIndex].func; + retVal___ = postHookFunc(retVal___, skill_id, skill_lv); + } + } + return retVal___; +} int HP_skill_get_sp(int skill_id, int skill_lv) { int hIndex = 0; int retVal___ = 0; @@ -76516,15 +77174,15 @@ int HP_skill_get_sp_rate(int skill_id, int skill_lv) { } return retVal___; } -int HP_skill_get_state(int skill_id) { +int HP_skill_get_state(int skill_id, int skill_lv) { int hIndex = 0; int retVal___ = 0; if (HPMHooks.count.HP_skill_get_state_pre > 0) { - int (*preHookFunc) (int *skill_id); + int (*preHookFunc) (int *skill_id, int *skill_lv); *HPMforce_return = false; for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_state_pre; hIndex++) { preHookFunc = HPMHooks.list.HP_skill_get_state_pre[hIndex].func; - retVal___ = preHookFunc(&skill_id); + retVal___ = preHookFunc(&skill_id, &skill_lv); } if (*HPMforce_return) { *HPMforce_return = false; @@ -76532,13 +77190,13 @@ int HP_skill_get_state(int skill_id) { } } { - retVal___ = HPMHooks.source.skill.get_state(skill_id); + retVal___ = HPMHooks.source.skill.get_state(skill_id, skill_lv); } if (HPMHooks.count.HP_skill_get_state_post > 0) { - int (*postHookFunc) (int retVal___, int skill_id); + int (*postHookFunc) (int retVal___, int skill_id, int skill_lv); for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_state_post; hIndex++) { postHookFunc = HPMHooks.list.HP_skill_get_state_post[hIndex].func; - retVal___ = postHookFunc(retVal___, skill_id); + retVal___ = postHookFunc(retVal___, skill_id, skill_lv); } } return retVal___; @@ -76597,15 +77255,15 @@ int HP_skill_get_itemid(int skill_id, int item_idx) { } return retVal___; } -int HP_skill_get_itemqty(int skill_id, int item_idx) { +int HP_skill_get_itemqty(int skill_id, int item_idx, int skill_lv) { int hIndex = 0; int retVal___ = 0; if (HPMHooks.count.HP_skill_get_itemqty_pre > 0) { - int (*preHookFunc) (int *skill_id, int *item_idx); + int (*preHookFunc) (int *skill_id, int *item_idx, int *skill_lv); *HPMforce_return = false; for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_itemqty_pre; hIndex++) { preHookFunc = HPMHooks.list.HP_skill_get_itemqty_pre[hIndex].func; - retVal___ = preHookFunc(&skill_id, &item_idx); + retVal___ = preHookFunc(&skill_id, &item_idx, &skill_lv); } if (*HPMforce_return) { *HPMforce_return = false; @@ -76613,17 +77271,125 @@ int HP_skill_get_itemqty(int skill_id, int item_idx) { } } { - retVal___ = HPMHooks.source.skill.get_itemqty(skill_id, item_idx); + retVal___ = HPMHooks.source.skill.get_itemqty(skill_id, item_idx, skill_lv); } if (HPMHooks.count.HP_skill_get_itemqty_post > 0) { - int (*postHookFunc) (int retVal___, int skill_id, int item_idx); + int (*postHookFunc) (int retVal___, int skill_id, int item_idx, int skill_lv); for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_itemqty_post; hIndex++) { postHookFunc = HPMHooks.list.HP_skill_get_itemqty_post[hIndex].func; + retVal___ = postHookFunc(retVal___, skill_id, item_idx, skill_lv); + } + } + return retVal___; +} +bool HP_skill_get_item_any_flag(int skill_id, int skill_lv) { + int hIndex = 0; + bool retVal___ = false; + if (HPMHooks.count.HP_skill_get_item_any_flag_pre > 0) { + bool (*preHookFunc) (int *skill_id, int *skill_lv); + *HPMforce_return = false; + for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_item_any_flag_pre; hIndex++) { + preHookFunc = HPMHooks.list.HP_skill_get_item_any_flag_pre[hIndex].func; + retVal___ = preHookFunc(&skill_id, &skill_lv); + } + if (*HPMforce_return) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.skill.get_item_any_flag(skill_id, skill_lv); + } + if (HPMHooks.count.HP_skill_get_item_any_flag_post > 0) { + bool (*postHookFunc) (bool retVal___, int skill_id, int skill_lv); + for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_item_any_flag_post; hIndex++) { + postHookFunc = HPMHooks.list.HP_skill_get_item_any_flag_post[hIndex].func; + retVal___ = postHookFunc(retVal___, skill_id, skill_lv); + } + } + return retVal___; +} +int HP_skill_get_equip_id(int skill_id, int item_idx) { + int hIndex = 0; + int retVal___ = 0; + if (HPMHooks.count.HP_skill_get_equip_id_pre > 0) { + int (*preHookFunc) (int *skill_id, int *item_idx); + *HPMforce_return = false; + for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_equip_id_pre; hIndex++) { + preHookFunc = HPMHooks.list.HP_skill_get_equip_id_pre[hIndex].func; + retVal___ = preHookFunc(&skill_id, &item_idx); + } + if (*HPMforce_return) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.skill.get_equip_id(skill_id, item_idx); + } + if (HPMHooks.count.HP_skill_get_equip_id_post > 0) { + int (*postHookFunc) (int retVal___, int skill_id, int item_idx); + for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_equip_id_post; hIndex++) { + postHookFunc = HPMHooks.list.HP_skill_get_equip_id_post[hIndex].func; retVal___ = postHookFunc(retVal___, skill_id, item_idx); } } return retVal___; } +int HP_skill_get_equip_amount(int skill_id, int item_idx, int skill_lv) { + int hIndex = 0; + int retVal___ = 0; + if (HPMHooks.count.HP_skill_get_equip_amount_pre > 0) { + int (*preHookFunc) (int *skill_id, int *item_idx, int *skill_lv); + *HPMforce_return = false; + for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_equip_amount_pre; hIndex++) { + preHookFunc = HPMHooks.list.HP_skill_get_equip_amount_pre[hIndex].func; + retVal___ = preHookFunc(&skill_id, &item_idx, &skill_lv); + } + if (*HPMforce_return) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.skill.get_equip_amount(skill_id, item_idx, skill_lv); + } + if (HPMHooks.count.HP_skill_get_equip_amount_post > 0) { + int (*postHookFunc) (int retVal___, int skill_id, int item_idx, int skill_lv); + for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_equip_amount_post; hIndex++) { + postHookFunc = HPMHooks.list.HP_skill_get_equip_amount_post[hIndex].func; + retVal___ = postHookFunc(retVal___, skill_id, item_idx, skill_lv); + } + } + return retVal___; +} +bool HP_skill_get_equip_any_flag(int skill_id, int skill_lv) { + int hIndex = 0; + bool retVal___ = false; + if (HPMHooks.count.HP_skill_get_equip_any_flag_pre > 0) { + bool (*preHookFunc) (int *skill_id, int *skill_lv); + *HPMforce_return = false; + for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_equip_any_flag_pre; hIndex++) { + preHookFunc = HPMHooks.list.HP_skill_get_equip_any_flag_pre[hIndex].func; + retVal___ = preHookFunc(&skill_id, &skill_lv); + } + if (*HPMforce_return) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.skill.get_equip_any_flag(skill_id, skill_lv); + } + if (HPMHooks.count.HP_skill_get_equip_any_flag_post > 0) { + bool (*postHookFunc) (bool retVal___, int skill_id, int skill_lv); + for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_equip_any_flag_post; hIndex++) { + postHookFunc = HPMHooks.list.HP_skill_get_equip_any_flag_post[hIndex].func; + retVal___ = postHookFunc(retVal___, skill_id, skill_lv); + } + } + return retVal___; +} int HP_skill_get_zeny(int skill_id, int skill_lv) { int hIndex = 0; int retVal___ = 0; @@ -76867,15 +77633,15 @@ int HP_skill_get_delaynodex(int skill_id, int skill_lv) { } return retVal___; } -int HP_skill_get_castdef(int skill_id) { +int HP_skill_get_castdef(int skill_id, int skill_lv) { int hIndex = 0; int retVal___ = 0; if (HPMHooks.count.HP_skill_get_castdef_pre > 0) { - int (*preHookFunc) (int *skill_id); + int (*preHookFunc) (int *skill_id, int *skill_lv); *HPMforce_return = false; for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_castdef_pre; hIndex++) { preHookFunc = HPMHooks.list.HP_skill_get_castdef_pre[hIndex].func; - retVal___ = preHookFunc(&skill_id); + retVal___ = preHookFunc(&skill_id, &skill_lv); } if (*HPMforce_return) { *HPMforce_return = false; @@ -76883,13 +77649,13 @@ int HP_skill_get_castdef(int skill_id) { } } { - retVal___ = HPMHooks.source.skill.get_castdef(skill_id); + retVal___ = HPMHooks.source.skill.get_castdef(skill_id, skill_lv); } if (HPMHooks.count.HP_skill_get_castdef_post > 0) { - int (*postHookFunc) (int retVal___, int skill_id); + int (*postHookFunc) (int retVal___, int skill_id, int skill_lv); for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_castdef_post; hIndex++) { postHookFunc = HPMHooks.list.HP_skill_get_castdef_post[hIndex].func; - retVal___ = postHookFunc(retVal___, skill_id); + retVal___ = postHookFunc(retVal___, skill_id, skill_lv); } } return retVal___; @@ -76975,15 +77741,15 @@ int HP_skill_get_ammo_qty(int skill_id, int skill_lv) { } return retVal___; } -int HP_skill_get_unit_id(int skill_id, int flag) { +int HP_skill_get_unit_id(int skill_id, int skill_lv, int flag) { int hIndex = 0; int retVal___ = 0; if (HPMHooks.count.HP_skill_get_unit_id_pre > 0) { - int (*preHookFunc) (int *skill_id, int *flag); + int (*preHookFunc) (int *skill_id, int *skill_lv, int *flag); *HPMforce_return = false; for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_unit_id_pre; hIndex++) { preHookFunc = HPMHooks.list.HP_skill_get_unit_id_pre[hIndex].func; - retVal___ = preHookFunc(&skill_id, &flag); + retVal___ = preHookFunc(&skill_id, &skill_lv, &flag); } if (*HPMforce_return) { *HPMforce_return = false; @@ -76991,13 +77757,13 @@ int HP_skill_get_unit_id(int skill_id, int flag) { } } { - retVal___ = HPMHooks.source.skill.get_unit_id(skill_id, flag); + retVal___ = HPMHooks.source.skill.get_unit_id(skill_id, skill_lv, flag); } if (HPMHooks.count.HP_skill_get_unit_id_post > 0) { - int (*postHookFunc) (int retVal___, int skill_id, int flag); + int (*postHookFunc) (int retVal___, int skill_id, int skill_lv, int flag); for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_unit_id_post; hIndex++) { postHookFunc = HPMHooks.list.HP_skill_get_unit_id_post[hIndex].func; - retVal___ = postHookFunc(retVal___, skill_id, flag); + retVal___ = postHookFunc(retVal___, skill_id, skill_lv, flag); } } return retVal___; @@ -77029,15 +77795,15 @@ int HP_skill_get_inf2(int skill_id) { } return retVal___; } -int HP_skill_get_castcancel(int skill_id) { +int HP_skill_get_castcancel(int skill_id, int skill_lv) { int hIndex = 0; int retVal___ = 0; if (HPMHooks.count.HP_skill_get_castcancel_pre > 0) { - int (*preHookFunc) (int *skill_id); + int (*preHookFunc) (int *skill_id, int *skill_lv); *HPMforce_return = false; for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_castcancel_pre; hIndex++) { preHookFunc = HPMHooks.list.HP_skill_get_castcancel_pre[hIndex].func; - retVal___ = preHookFunc(&skill_id); + retVal___ = preHookFunc(&skill_id, &skill_lv); } if (*HPMforce_return) { *HPMforce_return = false; @@ -77045,13 +77811,13 @@ int HP_skill_get_castcancel(int skill_id) { } } { - retVal___ = HPMHooks.source.skill.get_castcancel(skill_id); + retVal___ = HPMHooks.source.skill.get_castcancel(skill_id, skill_lv); } if (HPMHooks.count.HP_skill_get_castcancel_post > 0) { - int (*postHookFunc) (int retVal___, int skill_id); + int (*postHookFunc) (int retVal___, int skill_id, int skill_lv); for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_castcancel_post; hIndex++) { postHookFunc = HPMHooks.list.HP_skill_get_castcancel_post[hIndex].func; - retVal___ = postHookFunc(retVal___, skill_id); + retVal___ = postHookFunc(retVal___, skill_id, skill_lv); } } return retVal___; @@ -77137,15 +77903,15 @@ int HP_skill_get_unit_flag(int skill_id) { } return retVal___; } -int HP_skill_get_unit_target(int skill_id) { +int HP_skill_get_unit_target(int skill_id, int skill_lv) { int hIndex = 0; int retVal___ = 0; if (HPMHooks.count.HP_skill_get_unit_target_pre > 0) { - int (*preHookFunc) (int *skill_id); + int (*preHookFunc) (int *skill_id, int *skill_lv); *HPMforce_return = false; for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_unit_target_pre; hIndex++) { preHookFunc = HPMHooks.list.HP_skill_get_unit_target_pre[hIndex].func; - retVal___ = preHookFunc(&skill_id); + retVal___ = preHookFunc(&skill_id, &skill_lv); } if (*HPMforce_return) { *HPMforce_return = false; @@ -77153,26 +77919,26 @@ int HP_skill_get_unit_target(int skill_id) { } } { - retVal___ = HPMHooks.source.skill.get_unit_target(skill_id); + retVal___ = HPMHooks.source.skill.get_unit_target(skill_id, skill_lv); } if (HPMHooks.count.HP_skill_get_unit_target_post > 0) { - int (*postHookFunc) (int retVal___, int skill_id); + int (*postHookFunc) (int retVal___, int skill_id, int skill_lv); for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_unit_target_post; hIndex++) { postHookFunc = HPMHooks.list.HP_skill_get_unit_target_post[hIndex].func; - retVal___ = postHookFunc(retVal___, skill_id); + retVal___ = postHookFunc(retVal___, skill_id, skill_lv); } } return retVal___; } -int HP_skill_get_unit_interval(int skill_id) { +int HP_skill_get_unit_interval(int skill_id, int skill_lv) { int hIndex = 0; int retVal___ = 0; if (HPMHooks.count.HP_skill_get_unit_interval_pre > 0) { - int (*preHookFunc) (int *skill_id); + int (*preHookFunc) (int *skill_id, int *skill_lv); *HPMforce_return = false; for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_unit_interval_pre; hIndex++) { preHookFunc = HPMHooks.list.HP_skill_get_unit_interval_pre[hIndex].func; - retVal___ = preHookFunc(&skill_id); + retVal___ = preHookFunc(&skill_id, &skill_lv); } if (*HPMforce_return) { *HPMforce_return = false; @@ -77180,26 +77946,26 @@ int HP_skill_get_unit_interval(int skill_id) { } } { - retVal___ = HPMHooks.source.skill.get_unit_interval(skill_id); + retVal___ = HPMHooks.source.skill.get_unit_interval(skill_id, skill_lv); } if (HPMHooks.count.HP_skill_get_unit_interval_post > 0) { - int (*postHookFunc) (int retVal___, int skill_id); + int (*postHookFunc) (int retVal___, int skill_id, int skill_lv); for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_unit_interval_post; hIndex++) { postHookFunc = HPMHooks.list.HP_skill_get_unit_interval_post[hIndex].func; - retVal___ = postHookFunc(retVal___, skill_id); + retVal___ = postHookFunc(retVal___, skill_id, skill_lv); } } return retVal___; } -int HP_skill_get_unit_bl_target(int skill_id) { +int HP_skill_get_unit_bl_target(int skill_id, int skill_lv) { int hIndex = 0; int retVal___ = 0; if (HPMHooks.count.HP_skill_get_unit_bl_target_pre > 0) { - int (*preHookFunc) (int *skill_id); + int (*preHookFunc) (int *skill_id, int *skill_lv); *HPMforce_return = false; for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_unit_bl_target_pre; hIndex++) { preHookFunc = HPMHooks.list.HP_skill_get_unit_bl_target_pre[hIndex].func; - retVal___ = preHookFunc(&skill_id); + retVal___ = preHookFunc(&skill_id, &skill_lv); } if (*HPMforce_return) { *HPMforce_return = false; @@ -77207,13 +77973,13 @@ int HP_skill_get_unit_bl_target(int skill_id) { } } { - retVal___ = HPMHooks.source.skill.get_unit_bl_target(skill_id); + retVal___ = HPMHooks.source.skill.get_unit_bl_target(skill_id, skill_lv); } if (HPMHooks.count.HP_skill_get_unit_bl_target_post > 0) { - int (*postHookFunc) (int retVal___, int skill_id); + int (*postHookFunc) (int retVal___, int skill_id, int skill_lv); for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_unit_bl_target_post; hIndex++) { postHookFunc = HPMHooks.list.HP_skill_get_unit_bl_target_post[hIndex].func; - retVal___ = postHookFunc(retVal___, skill_id); + retVal___ = postHookFunc(retVal___, skill_id, skill_lv); } } return retVal___; @@ -77488,15 +78254,15 @@ int HP_skill_name2id(const char *name) { } return retVal___; } -int HP_skill_isammotype(struct map_session_data *sd, int skill_id) { +int HP_skill_isammotype(struct map_session_data *sd, int skill_id, int skill_lv) { int hIndex = 0; int retVal___ = 0; if (HPMHooks.count.HP_skill_isammotype_pre > 0) { - int (*preHookFunc) (struct map_session_data **sd, int *skill_id); + int (*preHookFunc) (struct map_session_data **sd, int *skill_id, int *skill_lv); *HPMforce_return = false; for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_isammotype_pre; hIndex++) { preHookFunc = HPMHooks.list.HP_skill_isammotype_pre[hIndex].func; - retVal___ = preHookFunc(&sd, &skill_id); + retVal___ = preHookFunc(&sd, &skill_id, &skill_lv); } if (*HPMforce_return) { *HPMforce_return = false; @@ -77504,13 +78270,13 @@ int HP_skill_isammotype(struct map_session_data *sd, int skill_id) { } } { - retVal___ = HPMHooks.source.skill.isammotype(sd, skill_id); + retVal___ = HPMHooks.source.skill.isammotype(sd, skill_id, skill_lv); } if (HPMHooks.count.HP_skill_isammotype_post > 0) { - int (*postHookFunc) (int retVal___, struct map_session_data *sd, int skill_id); + int (*postHookFunc) (int retVal___, struct map_session_data *sd, int skill_id, int skill_lv); for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_isammotype_post; hIndex++) { postHookFunc = HPMHooks.list.HP_skill_isammotype_post[hIndex].func; - retVal___ = postHookFunc(retVal___, sd, skill_id); + retVal___ = postHookFunc(retVal___, sd, skill_id, skill_lv); } } return retVal___; @@ -77920,15 +78686,15 @@ struct skill_unit_group* HP_skill_init_unitgroup(struct block_list *src, int cou } return retVal___; } -int HP_skill_del_unitgroup(struct skill_unit_group *group, const char *file, int line, const char *func) { +int HP_skill_del_unitgroup(struct skill_unit_group *group) { int hIndex = 0; int retVal___ = 0; if (HPMHooks.count.HP_skill_del_unitgroup_pre > 0) { - int (*preHookFunc) (struct skill_unit_group **group, const char **file, int *line, const char **func); + int (*preHookFunc) (struct skill_unit_group **group); *HPMforce_return = false; for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_del_unitgroup_pre; hIndex++) { preHookFunc = HPMHooks.list.HP_skill_del_unitgroup_pre[hIndex].func; - retVal___ = preHookFunc(&group, &file, &line, &func); + retVal___ = preHookFunc(&group); } if (*HPMforce_return) { *HPMforce_return = false; @@ -77936,13 +78702,13 @@ int HP_skill_del_unitgroup(struct skill_unit_group *group, const char *file, int } } { - retVal___ = HPMHooks.source.skill.del_unitgroup(group, file, line, func); + retVal___ = HPMHooks.source.skill.del_unitgroup(group); } if (HPMHooks.count.HP_skill_del_unitgroup_post > 0) { - int (*postHookFunc) (int retVal___, struct skill_unit_group *group, const char *file, int line, const char *func); + int (*postHookFunc) (int retVal___, struct skill_unit_group *group); for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_del_unitgroup_post; hIndex++) { postHookFunc = HPMHooks.list.HP_skill_del_unitgroup_post[hIndex].func; - retVal___ = postHookFunc(retVal___, group, file, line, func); + retVal___ = postHookFunc(retVal___, group); } } return retVal___; @@ -78163,14 +78929,14 @@ int HP_skill_delay_fix(struct block_list *bl, uint16 skill_id, uint16 skill_lv) } return retVal___; } -bool HP_skill_is_item_skill(struct map_session_data *sd, int skill_id, int skill_lv) { +int HP_skill_check_condition_required_equip(struct map_session_data *sd, int skill_id, int skill_lv) { int hIndex = 0; - bool retVal___ = false; - if (HPMHooks.count.HP_skill_is_item_skill_pre > 0) { - bool (*preHookFunc) (struct map_session_data **sd, int *skill_id, int *skill_lv); + int retVal___ = 0; + if (HPMHooks.count.HP_skill_check_condition_required_equip_pre > 0) { + int (*preHookFunc) (struct map_session_data **sd, int *skill_id, int *skill_lv); *HPMforce_return = false; - for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_is_item_skill_pre; hIndex++) { - preHookFunc = HPMHooks.list.HP_skill_is_item_skill_pre[hIndex].func; + for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_check_condition_required_equip_pre; hIndex++) { + preHookFunc = HPMHooks.list.HP_skill_check_condition_required_equip_pre[hIndex].func; retVal___ = preHookFunc(&sd, &skill_id, &skill_lv); } if (*HPMforce_return) { @@ -78179,12 +78945,12 @@ bool HP_skill_is_item_skill(struct map_session_data *sd, int skill_id, int skill } } { - retVal___ = HPMHooks.source.skill.is_item_skill(sd, skill_id, skill_lv); + retVal___ = HPMHooks.source.skill.check_condition_required_equip(sd, skill_id, skill_lv); } - if (HPMHooks.count.HP_skill_is_item_skill_post > 0) { - bool (*postHookFunc) (bool retVal___, struct map_session_data *sd, int skill_id, int skill_lv); - for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_is_item_skill_post; hIndex++) { - postHookFunc = HPMHooks.list.HP_skill_is_item_skill_post[hIndex].func; + if (HPMHooks.count.HP_skill_check_condition_required_equip_post > 0) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd, int skill_id, int skill_lv); + for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_check_condition_required_equip_post; hIndex++) { + postHookFunc = HPMHooks.list.HP_skill_check_condition_required_equip_post[hIndex].func; retVal___ = postHookFunc(retVal___, sd, skill_id, skill_lv); } } @@ -78217,6 +78983,60 @@ int HP_skill_check_condition_castbegin(struct map_session_data *sd, uint16 skill } return retVal___; } +int HP_skill_check_condition_required_items(struct map_session_data *sd, int skill_id, int skill_lv) { + int hIndex = 0; + int retVal___ = 0; + if (HPMHooks.count.HP_skill_check_condition_required_items_pre > 0) { + int (*preHookFunc) (struct map_session_data **sd, int *skill_id, int *skill_lv); + *HPMforce_return = false; + for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_check_condition_required_items_pre; hIndex++) { + preHookFunc = HPMHooks.list.HP_skill_check_condition_required_items_pre[hIndex].func; + retVal___ = preHookFunc(&sd, &skill_id, &skill_lv); + } + if (*HPMforce_return) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.skill.check_condition_required_items(sd, skill_id, skill_lv); + } + if (HPMHooks.count.HP_skill_check_condition_required_items_post > 0) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd, int skill_id, int skill_lv); + for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_check_condition_required_items_post; hIndex++) { + postHookFunc = HPMHooks.list.HP_skill_check_condition_required_items_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, skill_id, skill_lv); + } + } + return retVal___; +} +bool HP_skill_items_required(struct map_session_data *sd, int skill_id, int skill_lv) { + int hIndex = 0; + bool retVal___ = false; + if (HPMHooks.count.HP_skill_items_required_pre > 0) { + bool (*preHookFunc) (struct map_session_data **sd, int *skill_id, int *skill_lv); + *HPMforce_return = false; + for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_items_required_pre; hIndex++) { + preHookFunc = HPMHooks.list.HP_skill_items_required_pre[hIndex].func; + retVal___ = preHookFunc(&sd, &skill_id, &skill_lv); + } + if (*HPMforce_return) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.skill.items_required(sd, skill_id, skill_lv); + } + if (HPMHooks.count.HP_skill_items_required_post > 0) { + bool (*postHookFunc) (bool retVal___, struct map_session_data *sd, int skill_id, int skill_lv); + for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_items_required_post; hIndex++) { + postHookFunc = HPMHooks.list.HP_skill_items_required_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, skill_id, skill_lv); + } + } + return retVal___; +} int HP_skill_check_condition_castend(struct map_session_data *sd, uint16 skill_id, uint16 skill_lv) { int hIndex = 0; int retVal___ = 0; @@ -78244,6 +79064,33 @@ int HP_skill_check_condition_castend(struct map_session_data *sd, uint16 skill_i } return retVal___; } +int HP_skill_get_any_item_index(struct map_session_data *sd, int skill_id, int skill_lv) { + int hIndex = 0; + int retVal___ = 0; + if (HPMHooks.count.HP_skill_get_any_item_index_pre > 0) { + int (*preHookFunc) (struct map_session_data **sd, int *skill_id, int *skill_lv); + *HPMforce_return = false; + for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_any_item_index_pre; hIndex++) { + preHookFunc = HPMHooks.list.HP_skill_get_any_item_index_pre[hIndex].func; + retVal___ = preHookFunc(&sd, &skill_id, &skill_lv); + } + if (*HPMforce_return) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.skill.get_any_item_index(sd, skill_id, skill_lv); + } + if (HPMHooks.count.HP_skill_get_any_item_index_post > 0) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd, int skill_id, int skill_lv); + for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_any_item_index_post; hIndex++) { + postHookFunc = HPMHooks.list.HP_skill_get_any_item_index_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, skill_id, skill_lv); + } + } + return retVal___; +} int HP_skill_consume_requirement(struct map_session_data *sd, uint16 skill_id, uint16 skill_lv, short type) { int hIndex = 0; int retVal___ = 0; @@ -78867,6 +79714,32 @@ int HP_skill_not_ok_mercenary(uint16 skill_id, struct mercenary_data *md) { } return retVal___; } +void HP_skill_validate_autocast_data(struct map_session_data *sd, int skill_id, int skill_lv) { + int hIndex = 0; + if (HPMHooks.count.HP_skill_validate_autocast_data_pre > 0) { + void (*preHookFunc) (struct map_session_data **sd, int *skill_id, int *skill_lv); + *HPMforce_return = false; + for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_validate_autocast_data_pre; hIndex++) { + preHookFunc = HPMHooks.list.HP_skill_validate_autocast_data_pre[hIndex].func; + preHookFunc(&sd, &skill_id, &skill_lv); + } + if (*HPMforce_return) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.skill.validate_autocast_data(sd, skill_id, skill_lv); + } + if (HPMHooks.count.HP_skill_validate_autocast_data_post > 0) { + void (*postHookFunc) (struct map_session_data *sd, int skill_id, int skill_lv); + for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_validate_autocast_data_post; hIndex++) { + postHookFunc = HPMHooks.list.HP_skill_validate_autocast_data_post[hIndex].func; + postHookFunc(sd, skill_id, skill_lv); + } + } + return; +} int HP_skill_chastle_mob_changetarget(struct block_list *bl, va_list ap) { int hIndex = 0; int retVal___ = 0; @@ -79409,14 +80282,14 @@ int HP_skill_check_unit_range2_sub(struct block_list *bl, va_list ap) { } return retVal___; } -void HP_skill_toggle_magicpower(struct block_list *bl, uint16 skill_id) { +void HP_skill_toggle_magicpower(struct block_list *bl, uint16 skill_id, int skill_lv) { int hIndex = 0; if (HPMHooks.count.HP_skill_toggle_magicpower_pre > 0) { - void (*preHookFunc) (struct block_list **bl, uint16 *skill_id); + void (*preHookFunc) (struct block_list **bl, uint16 *skill_id, int *skill_lv); *HPMforce_return = false; for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_toggle_magicpower_pre; hIndex++) { preHookFunc = HPMHooks.list.HP_skill_toggle_magicpower_pre[hIndex].func; - preHookFunc(&bl, &skill_id); + preHookFunc(&bl, &skill_id, &skill_lv); } if (*HPMforce_return) { *HPMforce_return = false; @@ -79424,13 +80297,13 @@ void HP_skill_toggle_magicpower(struct block_list *bl, uint16 skill_id) { } } { - HPMHooks.source.skill.toggle_magicpower(bl, skill_id); + HPMHooks.source.skill.toggle_magicpower(bl, skill_id, skill_lv); } if (HPMHooks.count.HP_skill_toggle_magicpower_post > 0) { - void (*postHookFunc) (struct block_list *bl, uint16 skill_id); + void (*postHookFunc) (struct block_list *bl, uint16 skill_id, int skill_lv); for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_toggle_magicpower_post; hIndex++) { postHookFunc = HPMHooks.list.HP_skill_toggle_magicpower_post[hIndex].func; - postHookFunc(bl, skill_id); + postHookFunc(bl, skill_id, skill_lv); } } return; @@ -80610,6 +81483,163 @@ void HP_skill_init_unit_layout_unknown(int skill_idx, int pos) { } return; } +void HP_skill_validate_id(struct config_setting_t *conf, struct s_skill_db *sk, int conf_index) { + int hIndex = 0; + if (HPMHooks.count.HP_skill_validate_id_pre > 0) { + void (*preHookFunc) (struct config_setting_t **conf, struct s_skill_db **sk, int *conf_index); + *HPMforce_return = false; + for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_validate_id_pre; hIndex++) { + preHookFunc = HPMHooks.list.HP_skill_validate_id_pre[hIndex].func; + preHookFunc(&conf, &sk, &conf_index); + } + if (*HPMforce_return) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.skill.validate_id(conf, sk, conf_index); + } + if (HPMHooks.count.HP_skill_validate_id_post > 0) { + void (*postHookFunc) (struct config_setting_t *conf, struct s_skill_db *sk, int conf_index); + for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_validate_id_post; hIndex++) { + postHookFunc = HPMHooks.list.HP_skill_validate_id_post[hIndex].func; + postHookFunc(conf, sk, conf_index); + } + } + return; +} +bool HP_skill_name_contains_invalid_character(const char *name) { + int hIndex = 0; + bool retVal___ = false; + if (HPMHooks.count.HP_skill_name_contains_invalid_character_pre > 0) { + bool (*preHookFunc) (const char **name); + *HPMforce_return = false; + for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_name_contains_invalid_character_pre; hIndex++) { + preHookFunc = HPMHooks.list.HP_skill_name_contains_invalid_character_pre[hIndex].func; + retVal___ = preHookFunc(&name); + } + if (*HPMforce_return) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.skill.name_contains_invalid_character(name); + } + if (HPMHooks.count.HP_skill_name_contains_invalid_character_post > 0) { + bool (*postHookFunc) (bool retVal___, const char *name); + for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_name_contains_invalid_character_post; hIndex++) { + postHookFunc = HPMHooks.list.HP_skill_name_contains_invalid_character_post[hIndex].func; + retVal___ = postHookFunc(retVal___, name); + } + } + return retVal___; +} +void HP_skill_validate_name(struct config_setting_t *conf, struct s_skill_db *sk) { + int hIndex = 0; + if (HPMHooks.count.HP_skill_validate_name_pre > 0) { + void (*preHookFunc) (struct config_setting_t **conf, struct s_skill_db **sk); + *HPMforce_return = false; + for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_validate_name_pre; hIndex++) { + preHookFunc = HPMHooks.list.HP_skill_validate_name_pre[hIndex].func; + preHookFunc(&conf, &sk); + } + if (*HPMforce_return) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.skill.validate_name(conf, sk); + } + if (HPMHooks.count.HP_skill_validate_name_post > 0) { + void (*postHookFunc) (struct config_setting_t *conf, struct s_skill_db *sk); + for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_validate_name_post; hIndex++) { + postHookFunc = HPMHooks.list.HP_skill_validate_name_post[hIndex].func; + postHookFunc(conf, sk); + } + } + return; +} +void HP_skill_validate_max_level(struct config_setting_t *conf, struct s_skill_db *sk) { + int hIndex = 0; + if (HPMHooks.count.HP_skill_validate_max_level_pre > 0) { + void (*preHookFunc) (struct config_setting_t **conf, struct s_skill_db **sk); + *HPMforce_return = false; + for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_validate_max_level_pre; hIndex++) { + preHookFunc = HPMHooks.list.HP_skill_validate_max_level_pre[hIndex].func; + preHookFunc(&conf, &sk); + } + if (*HPMforce_return) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.skill.validate_max_level(conf, sk); + } + if (HPMHooks.count.HP_skill_validate_max_level_post > 0) { + void (*postHookFunc) (struct config_setting_t *conf, struct s_skill_db *sk); + for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_validate_max_level_post; hIndex++) { + postHookFunc = HPMHooks.list.HP_skill_validate_max_level_post[hIndex].func; + postHookFunc(conf, sk); + } + } + return; +} +void HP_skill_validate_description(struct config_setting_t *conf, struct s_skill_db *sk) { + int hIndex = 0; + if (HPMHooks.count.HP_skill_validate_description_pre > 0) { + void (*preHookFunc) (struct config_setting_t **conf, struct s_skill_db **sk); + *HPMforce_return = false; + for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_validate_description_pre; hIndex++) { + preHookFunc = HPMHooks.list.HP_skill_validate_description_pre[hIndex].func; + preHookFunc(&conf, &sk); + } + if (*HPMforce_return) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.skill.validate_description(conf, sk); + } + if (HPMHooks.count.HP_skill_validate_description_post > 0) { + void (*postHookFunc) (struct config_setting_t *conf, struct s_skill_db *sk); + for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_validate_description_post; hIndex++) { + postHookFunc = HPMHooks.list.HP_skill_validate_description_post[hIndex].func; + postHookFunc(conf, sk); + } + } + return; +} +void HP_skill_validate_range(struct config_setting_t *conf, struct s_skill_db *sk) { + int hIndex = 0; + if (HPMHooks.count.HP_skill_validate_range_pre > 0) { + void (*preHookFunc) (struct config_setting_t **conf, struct s_skill_db **sk); + *HPMforce_return = false; + for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_validate_range_pre; hIndex++) { + preHookFunc = HPMHooks.list.HP_skill_validate_range_pre[hIndex].func; + preHookFunc(&conf, &sk); + } + if (*HPMforce_return) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.skill.validate_range(conf, sk); + } + if (HPMHooks.count.HP_skill_validate_range_post > 0) { + void (*postHookFunc) (struct config_setting_t *conf, struct s_skill_db *sk); + for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_validate_range_post; hIndex++) { + postHookFunc = HPMHooks.list.HP_skill_validate_range_post[hIndex].func; + postHookFunc(conf, sk); + } + } + return; +} void HP_skill_validate_hittype(struct config_setting_t *conf, struct s_skill_db *sk) { int hIndex = 0; if (HPMHooks.count.HP_skill_validate_hittype_pre > 0) { @@ -80662,6 +81692,32 @@ void HP_skill_validate_skilltype(struct config_setting_t *conf, struct s_skill_d } return; } +void HP_skill_validate_skillinfo(struct config_setting_t *conf, struct s_skill_db *sk) { + int hIndex = 0; + if (HPMHooks.count.HP_skill_validate_skillinfo_pre > 0) { + void (*preHookFunc) (struct config_setting_t **conf, struct s_skill_db **sk); + *HPMforce_return = false; + for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_validate_skillinfo_pre; hIndex++) { + preHookFunc = HPMHooks.list.HP_skill_validate_skillinfo_pre[hIndex].func; + preHookFunc(&conf, &sk); + } + if (*HPMforce_return) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.skill.validate_skillinfo(conf, sk); + } + if (HPMHooks.count.HP_skill_validate_skillinfo_post > 0) { + void (*postHookFunc) (struct config_setting_t *conf, struct s_skill_db *sk); + for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_validate_skillinfo_post; hIndex++) { + postHookFunc = HPMHooks.list.HP_skill_validate_skillinfo_post[hIndex].func; + postHookFunc(conf, sk); + } + } + return; +} void HP_skill_validate_attacktype(struct config_setting_t *conf, struct s_skill_db *sk) { int hIndex = 0; if (HPMHooks.count.HP_skill_validate_attacktype_pre > 0) { @@ -80714,13 +81770,13 @@ void HP_skill_validate_element(struct config_setting_t *conf, struct s_skill_db } return; } -void HP_skill_validate_skillinfo(struct config_setting_t *conf, struct s_skill_db *sk) { +void HP_skill_validate_damagetype(struct config_setting_t *conf, struct s_skill_db *sk) { int hIndex = 0; - if (HPMHooks.count.HP_skill_validate_skillinfo_pre > 0) { + if (HPMHooks.count.HP_skill_validate_damagetype_pre > 0) { void (*preHookFunc) (struct config_setting_t **conf, struct s_skill_db **sk); *HPMforce_return = false; - for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_validate_skillinfo_pre; hIndex++) { - preHookFunc = HPMHooks.list.HP_skill_validate_skillinfo_pre[hIndex].func; + for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_validate_damagetype_pre; hIndex++) { + preHookFunc = HPMHooks.list.HP_skill_validate_damagetype_pre[hIndex].func; preHookFunc(&conf, &sk); } if (*HPMforce_return) { @@ -80729,24 +81785,24 @@ void HP_skill_validate_skillinfo(struct config_setting_t *conf, struct s_skill_d } } { - HPMHooks.source.skill.validate_skillinfo(conf, sk); + HPMHooks.source.skill.validate_damagetype(conf, sk); } - if (HPMHooks.count.HP_skill_validate_skillinfo_post > 0) { + if (HPMHooks.count.HP_skill_validate_damagetype_post > 0) { void (*postHookFunc) (struct config_setting_t *conf, struct s_skill_db *sk); - for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_validate_skillinfo_post; hIndex++) { - postHookFunc = HPMHooks.list.HP_skill_validate_skillinfo_post[hIndex].func; + for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_validate_damagetype_post; hIndex++) { + postHookFunc = HPMHooks.list.HP_skill_validate_damagetype_post[hIndex].func; postHookFunc(conf, sk); } } return; } -void HP_skill_validate_damagetype(struct config_setting_t *conf, struct s_skill_db *sk) { +void HP_skill_validate_splash_range(struct config_setting_t *conf, struct s_skill_db *sk) { int hIndex = 0; - if (HPMHooks.count.HP_skill_validate_damagetype_pre > 0) { + if (HPMHooks.count.HP_skill_validate_splash_range_pre > 0) { void (*preHookFunc) (struct config_setting_t **conf, struct s_skill_db **sk); *HPMforce_return = false; - for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_validate_damagetype_pre; hIndex++) { - preHookFunc = HPMHooks.list.HP_skill_validate_damagetype_pre[hIndex].func; + for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_validate_splash_range_pre; hIndex++) { + preHookFunc = HPMHooks.list.HP_skill_validate_splash_range_pre[hIndex].func; preHookFunc(&conf, &sk); } if (*HPMforce_return) { @@ -80755,12 +81811,324 @@ void HP_skill_validate_damagetype(struct config_setting_t *conf, struct s_skill_ } } { - HPMHooks.source.skill.validate_damagetype(conf, sk); + HPMHooks.source.skill.validate_splash_range(conf, sk); } - if (HPMHooks.count.HP_skill_validate_damagetype_post > 0) { + if (HPMHooks.count.HP_skill_validate_splash_range_post > 0) { void (*postHookFunc) (struct config_setting_t *conf, struct s_skill_db *sk); - for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_validate_damagetype_post; hIndex++) { - postHookFunc = HPMHooks.list.HP_skill_validate_damagetype_post[hIndex].func; + for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_validate_splash_range_post; hIndex++) { + postHookFunc = HPMHooks.list.HP_skill_validate_splash_range_post[hIndex].func; + postHookFunc(conf, sk); + } + } + return; +} +void HP_skill_validate_number_of_hits(struct config_setting_t *conf, struct s_skill_db *sk) { + int hIndex = 0; + if (HPMHooks.count.HP_skill_validate_number_of_hits_pre > 0) { + void (*preHookFunc) (struct config_setting_t **conf, struct s_skill_db **sk); + *HPMforce_return = false; + for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_validate_number_of_hits_pre; hIndex++) { + preHookFunc = HPMHooks.list.HP_skill_validate_number_of_hits_pre[hIndex].func; + preHookFunc(&conf, &sk); + } + if (*HPMforce_return) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.skill.validate_number_of_hits(conf, sk); + } + if (HPMHooks.count.HP_skill_validate_number_of_hits_post > 0) { + void (*postHookFunc) (struct config_setting_t *conf, struct s_skill_db *sk); + for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_validate_number_of_hits_post; hIndex++) { + postHookFunc = HPMHooks.list.HP_skill_validate_number_of_hits_post[hIndex].func; + postHookFunc(conf, sk); + } + } + return; +} +void HP_skill_validate_interrupt_cast(struct config_setting_t *conf, struct s_skill_db *sk) { + int hIndex = 0; + if (HPMHooks.count.HP_skill_validate_interrupt_cast_pre > 0) { + void (*preHookFunc) (struct config_setting_t **conf, struct s_skill_db **sk); + *HPMforce_return = false; + for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_validate_interrupt_cast_pre; hIndex++) { + preHookFunc = HPMHooks.list.HP_skill_validate_interrupt_cast_pre[hIndex].func; + preHookFunc(&conf, &sk); + } + if (*HPMforce_return) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.skill.validate_interrupt_cast(conf, sk); + } + if (HPMHooks.count.HP_skill_validate_interrupt_cast_post > 0) { + void (*postHookFunc) (struct config_setting_t *conf, struct s_skill_db *sk); + for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_validate_interrupt_cast_post; hIndex++) { + postHookFunc = HPMHooks.list.HP_skill_validate_interrupt_cast_post[hIndex].func; + postHookFunc(conf, sk); + } + } + return; +} +void HP_skill_validate_cast_def_rate(struct config_setting_t *conf, struct s_skill_db *sk) { + int hIndex = 0; + if (HPMHooks.count.HP_skill_validate_cast_def_rate_pre > 0) { + void (*preHookFunc) (struct config_setting_t **conf, struct s_skill_db **sk); + *HPMforce_return = false; + for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_validate_cast_def_rate_pre; hIndex++) { + preHookFunc = HPMHooks.list.HP_skill_validate_cast_def_rate_pre[hIndex].func; + preHookFunc(&conf, &sk); + } + if (*HPMforce_return) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.skill.validate_cast_def_rate(conf, sk); + } + if (HPMHooks.count.HP_skill_validate_cast_def_rate_post > 0) { + void (*postHookFunc) (struct config_setting_t *conf, struct s_skill_db *sk); + for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_validate_cast_def_rate_post; hIndex++) { + postHookFunc = HPMHooks.list.HP_skill_validate_cast_def_rate_post[hIndex].func; + postHookFunc(conf, sk); + } + } + return; +} +void HP_skill_validate_number_of_instances(struct config_setting_t *conf, struct s_skill_db *sk) { + int hIndex = 0; + if (HPMHooks.count.HP_skill_validate_number_of_instances_pre > 0) { + void (*preHookFunc) (struct config_setting_t **conf, struct s_skill_db **sk); + *HPMforce_return = false; + for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_validate_number_of_instances_pre; hIndex++) { + preHookFunc = HPMHooks.list.HP_skill_validate_number_of_instances_pre[hIndex].func; + preHookFunc(&conf, &sk); + } + if (*HPMforce_return) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.skill.validate_number_of_instances(conf, sk); + } + if (HPMHooks.count.HP_skill_validate_number_of_instances_post > 0) { + void (*postHookFunc) (struct config_setting_t *conf, struct s_skill_db *sk); + for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_validate_number_of_instances_post; hIndex++) { + postHookFunc = HPMHooks.list.HP_skill_validate_number_of_instances_post[hIndex].func; + postHookFunc(conf, sk); + } + } + return; +} +void HP_skill_validate_knock_back_tiles(struct config_setting_t *conf, struct s_skill_db *sk) { + int hIndex = 0; + if (HPMHooks.count.HP_skill_validate_knock_back_tiles_pre > 0) { + void (*preHookFunc) (struct config_setting_t **conf, struct s_skill_db **sk); + *HPMforce_return = false; + for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_validate_knock_back_tiles_pre; hIndex++) { + preHookFunc = HPMHooks.list.HP_skill_validate_knock_back_tiles_pre[hIndex].func; + preHookFunc(&conf, &sk); + } + if (*HPMforce_return) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.skill.validate_knock_back_tiles(conf, sk); + } + if (HPMHooks.count.HP_skill_validate_knock_back_tiles_post > 0) { + void (*postHookFunc) (struct config_setting_t *conf, struct s_skill_db *sk); + for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_validate_knock_back_tiles_post; hIndex++) { + postHookFunc = HPMHooks.list.HP_skill_validate_knock_back_tiles_post[hIndex].func; + postHookFunc(conf, sk); + } + } + return; +} +void HP_skill_validate_cast_time(struct config_setting_t *conf, struct s_skill_db *sk) { + int hIndex = 0; + if (HPMHooks.count.HP_skill_validate_cast_time_pre > 0) { + void (*preHookFunc) (struct config_setting_t **conf, struct s_skill_db **sk); + *HPMforce_return = false; + for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_validate_cast_time_pre; hIndex++) { + preHookFunc = HPMHooks.list.HP_skill_validate_cast_time_pre[hIndex].func; + preHookFunc(&conf, &sk); + } + if (*HPMforce_return) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.skill.validate_cast_time(conf, sk); + } + if (HPMHooks.count.HP_skill_validate_cast_time_post > 0) { + void (*postHookFunc) (struct config_setting_t *conf, struct s_skill_db *sk); + for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_validate_cast_time_post; hIndex++) { + postHookFunc = HPMHooks.list.HP_skill_validate_cast_time_post[hIndex].func; + postHookFunc(conf, sk); + } + } + return; +} +void HP_skill_validate_act_delay(struct config_setting_t *conf, struct s_skill_db *sk) { + int hIndex = 0; + if (HPMHooks.count.HP_skill_validate_act_delay_pre > 0) { + void (*preHookFunc) (struct config_setting_t **conf, struct s_skill_db **sk); + *HPMforce_return = false; + for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_validate_act_delay_pre; hIndex++) { + preHookFunc = HPMHooks.list.HP_skill_validate_act_delay_pre[hIndex].func; + preHookFunc(&conf, &sk); + } + if (*HPMforce_return) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.skill.validate_act_delay(conf, sk); + } + if (HPMHooks.count.HP_skill_validate_act_delay_post > 0) { + void (*postHookFunc) (struct config_setting_t *conf, struct s_skill_db *sk); + for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_validate_act_delay_post; hIndex++) { + postHookFunc = HPMHooks.list.HP_skill_validate_act_delay_post[hIndex].func; + postHookFunc(conf, sk); + } + } + return; +} +void HP_skill_validate_walk_delay(struct config_setting_t *conf, struct s_skill_db *sk) { + int hIndex = 0; + if (HPMHooks.count.HP_skill_validate_walk_delay_pre > 0) { + void (*preHookFunc) (struct config_setting_t **conf, struct s_skill_db **sk); + *HPMforce_return = false; + for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_validate_walk_delay_pre; hIndex++) { + preHookFunc = HPMHooks.list.HP_skill_validate_walk_delay_pre[hIndex].func; + preHookFunc(&conf, &sk); + } + if (*HPMforce_return) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.skill.validate_walk_delay(conf, sk); + } + if (HPMHooks.count.HP_skill_validate_walk_delay_post > 0) { + void (*postHookFunc) (struct config_setting_t *conf, struct s_skill_db *sk); + for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_validate_walk_delay_post; hIndex++) { + postHookFunc = HPMHooks.list.HP_skill_validate_walk_delay_post[hIndex].func; + postHookFunc(conf, sk); + } + } + return; +} +void HP_skill_validate_skill_data1(struct config_setting_t *conf, struct s_skill_db *sk) { + int hIndex = 0; + if (HPMHooks.count.HP_skill_validate_skill_data1_pre > 0) { + void (*preHookFunc) (struct config_setting_t **conf, struct s_skill_db **sk); + *HPMforce_return = false; + for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_validate_skill_data1_pre; hIndex++) { + preHookFunc = HPMHooks.list.HP_skill_validate_skill_data1_pre[hIndex].func; + preHookFunc(&conf, &sk); + } + if (*HPMforce_return) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.skill.validate_skill_data1(conf, sk); + } + if (HPMHooks.count.HP_skill_validate_skill_data1_post > 0) { + void (*postHookFunc) (struct config_setting_t *conf, struct s_skill_db *sk); + for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_validate_skill_data1_post; hIndex++) { + postHookFunc = HPMHooks.list.HP_skill_validate_skill_data1_post[hIndex].func; + postHookFunc(conf, sk); + } + } + return; +} +void HP_skill_validate_skill_data2(struct config_setting_t *conf, struct s_skill_db *sk) { + int hIndex = 0; + if (HPMHooks.count.HP_skill_validate_skill_data2_pre > 0) { + void (*preHookFunc) (struct config_setting_t **conf, struct s_skill_db **sk); + *HPMforce_return = false; + for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_validate_skill_data2_pre; hIndex++) { + preHookFunc = HPMHooks.list.HP_skill_validate_skill_data2_pre[hIndex].func; + preHookFunc(&conf, &sk); + } + if (*HPMforce_return) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.skill.validate_skill_data2(conf, sk); + } + if (HPMHooks.count.HP_skill_validate_skill_data2_post > 0) { + void (*postHookFunc) (struct config_setting_t *conf, struct s_skill_db *sk); + for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_validate_skill_data2_post; hIndex++) { + postHookFunc = HPMHooks.list.HP_skill_validate_skill_data2_post[hIndex].func; + postHookFunc(conf, sk); + } + } + return; +} +void HP_skill_validate_cooldown(struct config_setting_t *conf, struct s_skill_db *sk) { + int hIndex = 0; + if (HPMHooks.count.HP_skill_validate_cooldown_pre > 0) { + void (*preHookFunc) (struct config_setting_t **conf, struct s_skill_db **sk); + *HPMforce_return = false; + for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_validate_cooldown_pre; hIndex++) { + preHookFunc = HPMHooks.list.HP_skill_validate_cooldown_pre[hIndex].func; + preHookFunc(&conf, &sk); + } + if (*HPMforce_return) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.skill.validate_cooldown(conf, sk); + } + if (HPMHooks.count.HP_skill_validate_cooldown_post > 0) { + void (*postHookFunc) (struct config_setting_t *conf, struct s_skill_db *sk); + for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_validate_cooldown_post; hIndex++) { + postHookFunc = HPMHooks.list.HP_skill_validate_cooldown_post[hIndex].func; + postHookFunc(conf, sk); + } + } + return; +} +void HP_skill_validate_fixed_cast_time(struct config_setting_t *conf, struct s_skill_db *sk) { + int hIndex = 0; + if (HPMHooks.count.HP_skill_validate_fixed_cast_time_pre > 0) { + void (*preHookFunc) (struct config_setting_t **conf, struct s_skill_db **sk); + *HPMforce_return = false; + for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_validate_fixed_cast_time_pre; hIndex++) { + preHookFunc = HPMHooks.list.HP_skill_validate_fixed_cast_time_pre[hIndex].func; + preHookFunc(&conf, &sk); + } + if (*HPMforce_return) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.skill.validate_fixed_cast_time(conf, sk); + } + if (HPMHooks.count.HP_skill_validate_fixed_cast_time_post > 0) { + void (*postHookFunc) (struct config_setting_t *conf, struct s_skill_db *sk); + for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_validate_fixed_cast_time_post; hIndex++) { + postHookFunc = HPMHooks.list.HP_skill_validate_fixed_cast_time_post[hIndex].func; postHookFunc(conf, sk); } } @@ -80792,6 +82160,215 @@ void HP_skill_validate_castnodex(struct config_setting_t *conf, struct s_skill_d } return; } +void HP_skill_validate_hp_cost(struct config_setting_t *conf, struct s_skill_db *sk) { + int hIndex = 0; + if (HPMHooks.count.HP_skill_validate_hp_cost_pre > 0) { + void (*preHookFunc) (struct config_setting_t **conf, struct s_skill_db **sk); + *HPMforce_return = false; + for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_validate_hp_cost_pre; hIndex++) { + preHookFunc = HPMHooks.list.HP_skill_validate_hp_cost_pre[hIndex].func; + preHookFunc(&conf, &sk); + } + if (*HPMforce_return) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.skill.validate_hp_cost(conf, sk); + } + if (HPMHooks.count.HP_skill_validate_hp_cost_post > 0) { + void (*postHookFunc) (struct config_setting_t *conf, struct s_skill_db *sk); + for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_validate_hp_cost_post; hIndex++) { + postHookFunc = HPMHooks.list.HP_skill_validate_hp_cost_post[hIndex].func; + postHookFunc(conf, sk); + } + } + return; +} +void HP_skill_validate_sp_cost(struct config_setting_t *conf, struct s_skill_db *sk) { + int hIndex = 0; + if (HPMHooks.count.HP_skill_validate_sp_cost_pre > 0) { + void (*preHookFunc) (struct config_setting_t **conf, struct s_skill_db **sk); + *HPMforce_return = false; + for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_validate_sp_cost_pre; hIndex++) { + preHookFunc = HPMHooks.list.HP_skill_validate_sp_cost_pre[hIndex].func; + preHookFunc(&conf, &sk); + } + if (*HPMforce_return) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.skill.validate_sp_cost(conf, sk); + } + if (HPMHooks.count.HP_skill_validate_sp_cost_post > 0) { + void (*postHookFunc) (struct config_setting_t *conf, struct s_skill_db *sk); + for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_validate_sp_cost_post; hIndex++) { + postHookFunc = HPMHooks.list.HP_skill_validate_sp_cost_post[hIndex].func; + postHookFunc(conf, sk); + } + } + return; +} +void HP_skill_validate_hp_rate_cost(struct config_setting_t *conf, struct s_skill_db *sk) { + int hIndex = 0; + if (HPMHooks.count.HP_skill_validate_hp_rate_cost_pre > 0) { + void (*preHookFunc) (struct config_setting_t **conf, struct s_skill_db **sk); + *HPMforce_return = false; + for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_validate_hp_rate_cost_pre; hIndex++) { + preHookFunc = HPMHooks.list.HP_skill_validate_hp_rate_cost_pre[hIndex].func; + preHookFunc(&conf, &sk); + } + if (*HPMforce_return) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.skill.validate_hp_rate_cost(conf, sk); + } + if (HPMHooks.count.HP_skill_validate_hp_rate_cost_post > 0) { + void (*postHookFunc) (struct config_setting_t *conf, struct s_skill_db *sk); + for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_validate_hp_rate_cost_post; hIndex++) { + postHookFunc = HPMHooks.list.HP_skill_validate_hp_rate_cost_post[hIndex].func; + postHookFunc(conf, sk); + } + } + return; +} +void HP_skill_validate_sp_rate_cost(struct config_setting_t *conf, struct s_skill_db *sk) { + int hIndex = 0; + if (HPMHooks.count.HP_skill_validate_sp_rate_cost_pre > 0) { + void (*preHookFunc) (struct config_setting_t **conf, struct s_skill_db **sk); + *HPMforce_return = false; + for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_validate_sp_rate_cost_pre; hIndex++) { + preHookFunc = HPMHooks.list.HP_skill_validate_sp_rate_cost_pre[hIndex].func; + preHookFunc(&conf, &sk); + } + if (*HPMforce_return) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.skill.validate_sp_rate_cost(conf, sk); + } + if (HPMHooks.count.HP_skill_validate_sp_rate_cost_post > 0) { + void (*postHookFunc) (struct config_setting_t *conf, struct s_skill_db *sk); + for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_validate_sp_rate_cost_post; hIndex++) { + postHookFunc = HPMHooks.list.HP_skill_validate_sp_rate_cost_post[hIndex].func; + postHookFunc(conf, sk); + } + } + return; +} +void HP_skill_validate_max_hp_trigger(struct config_setting_t *conf, struct s_skill_db *sk) { + int hIndex = 0; + if (HPMHooks.count.HP_skill_validate_max_hp_trigger_pre > 0) { + void (*preHookFunc) (struct config_setting_t **conf, struct s_skill_db **sk); + *HPMforce_return = false; + for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_validate_max_hp_trigger_pre; hIndex++) { + preHookFunc = HPMHooks.list.HP_skill_validate_max_hp_trigger_pre[hIndex].func; + preHookFunc(&conf, &sk); + } + if (*HPMforce_return) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.skill.validate_max_hp_trigger(conf, sk); + } + if (HPMHooks.count.HP_skill_validate_max_hp_trigger_post > 0) { + void (*postHookFunc) (struct config_setting_t *conf, struct s_skill_db *sk); + for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_validate_max_hp_trigger_post; hIndex++) { + postHookFunc = HPMHooks.list.HP_skill_validate_max_hp_trigger_post[hIndex].func; + postHookFunc(conf, sk); + } + } + return; +} +void HP_skill_validate_max_sp_trigger(struct config_setting_t *conf, struct s_skill_db *sk) { + int hIndex = 0; + if (HPMHooks.count.HP_skill_validate_max_sp_trigger_pre > 0) { + void (*preHookFunc) (struct config_setting_t **conf, struct s_skill_db **sk); + *HPMforce_return = false; + for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_validate_max_sp_trigger_pre; hIndex++) { + preHookFunc = HPMHooks.list.HP_skill_validate_max_sp_trigger_pre[hIndex].func; + preHookFunc(&conf, &sk); + } + if (*HPMforce_return) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.skill.validate_max_sp_trigger(conf, sk); + } + if (HPMHooks.count.HP_skill_validate_max_sp_trigger_post > 0) { + void (*postHookFunc) (struct config_setting_t *conf, struct s_skill_db *sk); + for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_validate_max_sp_trigger_post; hIndex++) { + postHookFunc = HPMHooks.list.HP_skill_validate_max_sp_trigger_post[hIndex].func; + postHookFunc(conf, sk); + } + } + return; +} +void HP_skill_validate_zeny_cost(struct config_setting_t *conf, struct s_skill_db *sk) { + int hIndex = 0; + if (HPMHooks.count.HP_skill_validate_zeny_cost_pre > 0) { + void (*preHookFunc) (struct config_setting_t **conf, struct s_skill_db **sk); + *HPMforce_return = false; + for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_validate_zeny_cost_pre; hIndex++) { + preHookFunc = HPMHooks.list.HP_skill_validate_zeny_cost_pre[hIndex].func; + preHookFunc(&conf, &sk); + } + if (*HPMforce_return) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.skill.validate_zeny_cost(conf, sk); + } + if (HPMHooks.count.HP_skill_validate_zeny_cost_post > 0) { + void (*postHookFunc) (struct config_setting_t *conf, struct s_skill_db *sk); + for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_validate_zeny_cost_post; hIndex++) { + postHookFunc = HPMHooks.list.HP_skill_validate_zeny_cost_post[hIndex].func; + postHookFunc(conf, sk); + } + } + return; +} +int HP_skill_validate_weapontype_sub(const char *type, bool on, struct s_skill_db *sk) { + int hIndex = 0; + int retVal___ = 0; + if (HPMHooks.count.HP_skill_validate_weapontype_sub_pre > 0) { + int (*preHookFunc) (const char **type, bool *on, struct s_skill_db **sk); + *HPMforce_return = false; + for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_validate_weapontype_sub_pre; hIndex++) { + preHookFunc = HPMHooks.list.HP_skill_validate_weapontype_sub_pre[hIndex].func; + retVal___ = preHookFunc(&type, &on, &sk); + } + if (*HPMforce_return) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.skill.validate_weapontype_sub(type, on, sk); + } + if (HPMHooks.count.HP_skill_validate_weapontype_sub_post > 0) { + int (*postHookFunc) (int retVal___, const char *type, bool on, struct s_skill_db *sk); + for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_validate_weapontype_sub_post; hIndex++) { + postHookFunc = HPMHooks.list.HP_skill_validate_weapontype_sub_post[hIndex].func; + retVal___ = postHookFunc(retVal___, type, on, sk); + } + } + return retVal___; +} void HP_skill_validate_weapontype(struct config_setting_t *conf, struct s_skill_db *sk) { int hIndex = 0; if (HPMHooks.count.HP_skill_validate_weapontype_pre > 0) { @@ -80818,6 +82395,33 @@ void HP_skill_validate_weapontype(struct config_setting_t *conf, struct s_skill_ } return; } +int HP_skill_validate_ammotype_sub(const char *type, bool on, struct s_skill_db *sk) { + int hIndex = 0; + int retVal___ = 0; + if (HPMHooks.count.HP_skill_validate_ammotype_sub_pre > 0) { + int (*preHookFunc) (const char **type, bool *on, struct s_skill_db **sk); + *HPMforce_return = false; + for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_validate_ammotype_sub_pre; hIndex++) { + preHookFunc = HPMHooks.list.HP_skill_validate_ammotype_sub_pre[hIndex].func; + retVal___ = preHookFunc(&type, &on, &sk); + } + if (*HPMforce_return) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.skill.validate_ammotype_sub(type, on, sk); + } + if (HPMHooks.count.HP_skill_validate_ammotype_sub_post > 0) { + int (*postHookFunc) (int retVal___, const char *type, bool on, struct s_skill_db *sk); + for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_validate_ammotype_sub_post; hIndex++) { + postHookFunc = HPMHooks.list.HP_skill_validate_ammotype_sub_post[hIndex].func; + retVal___ = postHookFunc(retVal___, type, on, sk); + } + } + return retVal___; +} void HP_skill_validate_ammotype(struct config_setting_t *conf, struct s_skill_db *sk) { int hIndex = 0; if (HPMHooks.count.HP_skill_validate_ammotype_pre > 0) { @@ -80844,6 +82448,59 @@ void HP_skill_validate_ammotype(struct config_setting_t *conf, struct s_skill_db } return; } +void HP_skill_validate_ammo_amount(struct config_setting_t *conf, struct s_skill_db *sk) { + int hIndex = 0; + if (HPMHooks.count.HP_skill_validate_ammo_amount_pre > 0) { + void (*preHookFunc) (struct config_setting_t **conf, struct s_skill_db **sk); + *HPMforce_return = false; + for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_validate_ammo_amount_pre; hIndex++) { + preHookFunc = HPMHooks.list.HP_skill_validate_ammo_amount_pre[hIndex].func; + preHookFunc(&conf, &sk); + } + if (*HPMforce_return) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.skill.validate_ammo_amount(conf, sk); + } + if (HPMHooks.count.HP_skill_validate_ammo_amount_post > 0) { + void (*postHookFunc) (struct config_setting_t *conf, struct s_skill_db *sk); + for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_validate_ammo_amount_post; hIndex++) { + postHookFunc = HPMHooks.list.HP_skill_validate_ammo_amount_post[hIndex].func; + postHookFunc(conf, sk); + } + } + return; +} +int HP_skill_validate_state_sub(const char *state) { + int hIndex = 0; + int retVal___ = 0; + if (HPMHooks.count.HP_skill_validate_state_sub_pre > 0) { + int (*preHookFunc) (const char **state); + *HPMforce_return = false; + for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_validate_state_sub_pre; hIndex++) { + preHookFunc = HPMHooks.list.HP_skill_validate_state_sub_pre[hIndex].func; + retVal___ = preHookFunc(&state); + } + if (*HPMforce_return) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.skill.validate_state_sub(state); + } + if (HPMHooks.count.HP_skill_validate_state_sub_post > 0) { + int (*postHookFunc) (int retVal___, const char *state); + for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_validate_state_sub_post; hIndex++) { + postHookFunc = HPMHooks.list.HP_skill_validate_state_sub_post[hIndex].func; + retVal___ = postHookFunc(retVal___, state); + } + } + return retVal___; +} void HP_skill_validate_state(struct config_setting_t *conf, struct s_skill_db *sk) { int hIndex = 0; if (HPMHooks.count.HP_skill_validate_state_pre > 0) { @@ -80870,6 +82527,110 @@ void HP_skill_validate_state(struct config_setting_t *conf, struct s_skill_db *s } return; } +void HP_skill_validate_spirit_sphere_cost(struct config_setting_t *conf, struct s_skill_db *sk) { + int hIndex = 0; + if (HPMHooks.count.HP_skill_validate_spirit_sphere_cost_pre > 0) { + void (*preHookFunc) (struct config_setting_t **conf, struct s_skill_db **sk); + *HPMforce_return = false; + for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_validate_spirit_sphere_cost_pre; hIndex++) { + preHookFunc = HPMHooks.list.HP_skill_validate_spirit_sphere_cost_pre[hIndex].func; + preHookFunc(&conf, &sk); + } + if (*HPMforce_return) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.skill.validate_spirit_sphere_cost(conf, sk); + } + if (HPMHooks.count.HP_skill_validate_spirit_sphere_cost_post > 0) { + void (*postHookFunc) (struct config_setting_t *conf, struct s_skill_db *sk); + for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_validate_spirit_sphere_cost_post; hIndex++) { + postHookFunc = HPMHooks.list.HP_skill_validate_spirit_sphere_cost_post[hIndex].func; + postHookFunc(conf, sk); + } + } + return; +} +void HP_skill_validate_item_requirements_sub_item_amount(struct config_setting_t *conf, struct s_skill_db *sk, int item_index) { + int hIndex = 0; + if (HPMHooks.count.HP_skill_validate_item_requirements_sub_item_amount_pre > 0) { + void (*preHookFunc) (struct config_setting_t **conf, struct s_skill_db **sk, int *item_index); + *HPMforce_return = false; + for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_validate_item_requirements_sub_item_amount_pre; hIndex++) { + preHookFunc = HPMHooks.list.HP_skill_validate_item_requirements_sub_item_amount_pre[hIndex].func; + preHookFunc(&conf, &sk, &item_index); + } + if (*HPMforce_return) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.skill.validate_item_requirements_sub_item_amount(conf, sk, item_index); + } + if (HPMHooks.count.HP_skill_validate_item_requirements_sub_item_amount_post > 0) { + void (*postHookFunc) (struct config_setting_t *conf, struct s_skill_db *sk, int item_index); + for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_validate_item_requirements_sub_item_amount_post; hIndex++) { + postHookFunc = HPMHooks.list.HP_skill_validate_item_requirements_sub_item_amount_post[hIndex].func; + postHookFunc(conf, sk, item_index); + } + } + return; +} +void HP_skill_validate_item_requirements_sub_items(struct config_setting_t *conf, struct s_skill_db *sk) { + int hIndex = 0; + if (HPMHooks.count.HP_skill_validate_item_requirements_sub_items_pre > 0) { + void (*preHookFunc) (struct config_setting_t **conf, struct s_skill_db **sk); + *HPMforce_return = false; + for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_validate_item_requirements_sub_items_pre; hIndex++) { + preHookFunc = HPMHooks.list.HP_skill_validate_item_requirements_sub_items_pre[hIndex].func; + preHookFunc(&conf, &sk); + } + if (*HPMforce_return) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.skill.validate_item_requirements_sub_items(conf, sk); + } + if (HPMHooks.count.HP_skill_validate_item_requirements_sub_items_post > 0) { + void (*postHookFunc) (struct config_setting_t *conf, struct s_skill_db *sk); + for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_validate_item_requirements_sub_items_post; hIndex++) { + postHookFunc = HPMHooks.list.HP_skill_validate_item_requirements_sub_items_post[hIndex].func; + postHookFunc(conf, sk); + } + } + return; +} +void HP_skill_validate_item_requirements_sub_any_flag(struct config_setting_t *conf, struct s_skill_db *sk) { + int hIndex = 0; + if (HPMHooks.count.HP_skill_validate_item_requirements_sub_any_flag_pre > 0) { + void (*preHookFunc) (struct config_setting_t **conf, struct s_skill_db **sk); + *HPMforce_return = false; + for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_validate_item_requirements_sub_any_flag_pre; hIndex++) { + preHookFunc = HPMHooks.list.HP_skill_validate_item_requirements_sub_any_flag_pre[hIndex].func; + preHookFunc(&conf, &sk); + } + if (*HPMforce_return) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.skill.validate_item_requirements_sub_any_flag(conf, sk); + } + if (HPMHooks.count.HP_skill_validate_item_requirements_sub_any_flag_post > 0) { + void (*postHookFunc) (struct config_setting_t *conf, struct s_skill_db *sk); + for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_validate_item_requirements_sub_any_flag_post; hIndex++) { + postHookFunc = HPMHooks.list.HP_skill_validate_item_requirements_sub_any_flag_post[hIndex].func; + postHookFunc(conf, sk); + } + } + return; +} void HP_skill_validate_item_requirements(struct config_setting_t *conf, struct s_skill_db *sk) { int hIndex = 0; if (HPMHooks.count.HP_skill_validate_item_requirements_pre > 0) { @@ -80896,13 +82657,39 @@ void HP_skill_validate_item_requirements(struct config_setting_t *conf, struct s } return; } -void HP_skill_validate_unit_target(struct config_setting_t *conf, struct s_skill_db *sk) { +void HP_skill_validate_equip_requirements_sub_item_amount(struct config_setting_t *conf, struct s_skill_db *sk, int item_index) { int hIndex = 0; - if (HPMHooks.count.HP_skill_validate_unit_target_pre > 0) { + if (HPMHooks.count.HP_skill_validate_equip_requirements_sub_item_amount_pre > 0) { + void (*preHookFunc) (struct config_setting_t **conf, struct s_skill_db **sk, int *item_index); + *HPMforce_return = false; + for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_validate_equip_requirements_sub_item_amount_pre; hIndex++) { + preHookFunc = HPMHooks.list.HP_skill_validate_equip_requirements_sub_item_amount_pre[hIndex].func; + preHookFunc(&conf, &sk, &item_index); + } + if (*HPMforce_return) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.skill.validate_equip_requirements_sub_item_amount(conf, sk, item_index); + } + if (HPMHooks.count.HP_skill_validate_equip_requirements_sub_item_amount_post > 0) { + void (*postHookFunc) (struct config_setting_t *conf, struct s_skill_db *sk, int item_index); + for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_validate_equip_requirements_sub_item_amount_post; hIndex++) { + postHookFunc = HPMHooks.list.HP_skill_validate_equip_requirements_sub_item_amount_post[hIndex].func; + postHookFunc(conf, sk, item_index); + } + } + return; +} +void HP_skill_validate_equip_requirements_sub_items(struct config_setting_t *conf, struct s_skill_db *sk) { + int hIndex = 0; + if (HPMHooks.count.HP_skill_validate_equip_requirements_sub_items_pre > 0) { void (*preHookFunc) (struct config_setting_t **conf, struct s_skill_db **sk); *HPMforce_return = false; - for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_validate_unit_target_pre; hIndex++) { - preHookFunc = HPMHooks.list.HP_skill_validate_unit_target_pre[hIndex].func; + for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_validate_equip_requirements_sub_items_pre; hIndex++) { + preHookFunc = HPMHooks.list.HP_skill_validate_equip_requirements_sub_items_pre[hIndex].func; preHookFunc(&conf, &sk); } if (*HPMforce_return) { @@ -80911,24 +82698,24 @@ void HP_skill_validate_unit_target(struct config_setting_t *conf, struct s_skill } } { - HPMHooks.source.skill.validate_unit_target(conf, sk); + HPMHooks.source.skill.validate_equip_requirements_sub_items(conf, sk); } - if (HPMHooks.count.HP_skill_validate_unit_target_post > 0) { + if (HPMHooks.count.HP_skill_validate_equip_requirements_sub_items_post > 0) { void (*postHookFunc) (struct config_setting_t *conf, struct s_skill_db *sk); - for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_validate_unit_target_post; hIndex++) { - postHookFunc = HPMHooks.list.HP_skill_validate_unit_target_post[hIndex].func; + for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_validate_equip_requirements_sub_items_post; hIndex++) { + postHookFunc = HPMHooks.list.HP_skill_validate_equip_requirements_sub_items_post[hIndex].func; postHookFunc(conf, sk); } } return; } -void HP_skill_validate_unit_flag(struct config_setting_t *conf, struct s_skill_db *sk) { +void HP_skill_validate_equip_requirements_sub_any_flag(struct config_setting_t *conf, struct s_skill_db *sk) { int hIndex = 0; - if (HPMHooks.count.HP_skill_validate_unit_flag_pre > 0) { + if (HPMHooks.count.HP_skill_validate_equip_requirements_sub_any_flag_pre > 0) { void (*preHookFunc) (struct config_setting_t **conf, struct s_skill_db **sk); *HPMforce_return = false; - for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_validate_unit_flag_pre; hIndex++) { - preHookFunc = HPMHooks.list.HP_skill_validate_unit_flag_pre[hIndex].func; + for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_validate_equip_requirements_sub_any_flag_pre; hIndex++) { + preHookFunc = HPMHooks.list.HP_skill_validate_equip_requirements_sub_any_flag_pre[hIndex].func; preHookFunc(&conf, &sk); } if (*HPMforce_return) { @@ -80937,24 +82724,24 @@ void HP_skill_validate_unit_flag(struct config_setting_t *conf, struct s_skill_d } } { - HPMHooks.source.skill.validate_unit_flag(conf, sk); + HPMHooks.source.skill.validate_equip_requirements_sub_any_flag(conf, sk); } - if (HPMHooks.count.HP_skill_validate_unit_flag_post > 0) { + if (HPMHooks.count.HP_skill_validate_equip_requirements_sub_any_flag_post > 0) { void (*postHookFunc) (struct config_setting_t *conf, struct s_skill_db *sk); - for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_validate_unit_flag_post; hIndex++) { - postHookFunc = HPMHooks.list.HP_skill_validate_unit_flag_post[hIndex].func; + for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_validate_equip_requirements_sub_any_flag_post; hIndex++) { + postHookFunc = HPMHooks.list.HP_skill_validate_equip_requirements_sub_any_flag_post[hIndex].func; postHookFunc(conf, sk); } } return; } -void HP_skill_validate_additional_fields(struct config_setting_t *conf, struct s_skill_db *sk) { +void HP_skill_validate_equip_requirements(struct config_setting_t *conf, struct s_skill_db *sk) { int hIndex = 0; - if (HPMHooks.count.HP_skill_validate_additional_fields_pre > 0) { + if (HPMHooks.count.HP_skill_validate_equip_requirements_pre > 0) { void (*preHookFunc) (struct config_setting_t **conf, struct s_skill_db **sk); *HPMforce_return = false; - for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_validate_additional_fields_pre; hIndex++) { - preHookFunc = HPMHooks.list.HP_skill_validate_additional_fields_pre[hIndex].func; + for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_validate_equip_requirements_pre; hIndex++) { + preHookFunc = HPMHooks.list.HP_skill_validate_equip_requirements_pre[hIndex].func; preHookFunc(&conf, &sk); } if (*HPMforce_return) { @@ -80963,26 +82750,26 @@ void HP_skill_validate_additional_fields(struct config_setting_t *conf, struct s } } { - HPMHooks.source.skill.validate_additional_fields(conf, sk); + HPMHooks.source.skill.validate_equip_requirements(conf, sk); } - if (HPMHooks.count.HP_skill_validate_additional_fields_post > 0) { + if (HPMHooks.count.HP_skill_validate_equip_requirements_post > 0) { void (*postHookFunc) (struct config_setting_t *conf, struct s_skill_db *sk); - for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_validate_additional_fields_post; hIndex++) { - postHookFunc = HPMHooks.list.HP_skill_validate_additional_fields_post[hIndex].func; + for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_validate_equip_requirements_post; hIndex++) { + postHookFunc = HPMHooks.list.HP_skill_validate_equip_requirements_post[hIndex].func; postHookFunc(conf, sk); } } return; } -bool HP_skill_validate_skilldb(struct s_skill_db *skt, const char *source) { +int HP_skill_validate_requirements_item_name(const char *name) { int hIndex = 0; - bool retVal___ = false; - if (HPMHooks.count.HP_skill_validate_skilldb_pre > 0) { - bool (*preHookFunc) (struct s_skill_db **skt, const char **source); + int retVal___ = 0; + if (HPMHooks.count.HP_skill_validate_requirements_item_name_pre > 0) { + int (*preHookFunc) (const char **name); *HPMforce_return = false; - for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_validate_skilldb_pre; hIndex++) { - preHookFunc = HPMHooks.list.HP_skill_validate_skilldb_pre[hIndex].func; - retVal___ = preHookFunc(&skt, &source); + for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_validate_requirements_item_name_pre; hIndex++) { + preHookFunc = HPMHooks.list.HP_skill_validate_requirements_item_name_pre[hIndex].func; + retVal___ = preHookFunc(&name); } if (*HPMforce_return) { *HPMforce_return = false; @@ -80990,53 +82777,52 @@ bool HP_skill_validate_skilldb(struct s_skill_db *skt, const char *source) { } } { - retVal___ = HPMHooks.source.skill.validate_skilldb(skt, source); + retVal___ = HPMHooks.source.skill.validate_requirements_item_name(name); } - if (HPMHooks.count.HP_skill_validate_skilldb_post > 0) { - bool (*postHookFunc) (bool retVal___, struct s_skill_db *skt, const char *source); - for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_validate_skilldb_post; hIndex++) { - postHookFunc = HPMHooks.list.HP_skill_validate_skilldb_post[hIndex].func; - retVal___ = postHookFunc(retVal___, skt, source); + if (HPMHooks.count.HP_skill_validate_requirements_item_name_post > 0) { + int (*postHookFunc) (int retVal___, const char *name); + for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_validate_requirements_item_name_post; hIndex++) { + postHookFunc = HPMHooks.list.HP_skill_validate_requirements_item_name_post[hIndex].func; + retVal___ = postHookFunc(retVal___, name); } } return retVal___; } -int HP_skill_validate_weapontype_sub(const char *type, bool on, struct s_skill_db *sk) { +void HP_skill_validate_requirements(struct config_setting_t *conf, struct s_skill_db *sk) { int hIndex = 0; - int retVal___ = 0; - if (HPMHooks.count.HP_skill_validate_weapontype_sub_pre > 0) { - int (*preHookFunc) (const char **type, bool *on, struct s_skill_db **sk); + if (HPMHooks.count.HP_skill_validate_requirements_pre > 0) { + void (*preHookFunc) (struct config_setting_t **conf, struct s_skill_db **sk); *HPMforce_return = false; - for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_validate_weapontype_sub_pre; hIndex++) { - preHookFunc = HPMHooks.list.HP_skill_validate_weapontype_sub_pre[hIndex].func; - retVal___ = preHookFunc(&type, &on, &sk); + for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_validate_requirements_pre; hIndex++) { + preHookFunc = HPMHooks.list.HP_skill_validate_requirements_pre[hIndex].func; + preHookFunc(&conf, &sk); } if (*HPMforce_return) { *HPMforce_return = false; - return retVal___; + return; } } { - retVal___ = HPMHooks.source.skill.validate_weapontype_sub(type, on, sk); + HPMHooks.source.skill.validate_requirements(conf, sk); } - if (HPMHooks.count.HP_skill_validate_weapontype_sub_post > 0) { - int (*postHookFunc) (int retVal___, const char *type, bool on, struct s_skill_db *sk); - for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_validate_weapontype_sub_post; hIndex++) { - postHookFunc = HPMHooks.list.HP_skill_validate_weapontype_sub_post[hIndex].func; - retVal___ = postHookFunc(retVal___, type, on, sk); + if (HPMHooks.count.HP_skill_validate_requirements_post > 0) { + void (*postHookFunc) (struct config_setting_t *conf, struct s_skill_db *sk); + for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_validate_requirements_post; hIndex++) { + postHookFunc = HPMHooks.list.HP_skill_validate_requirements_post[hIndex].func; + postHookFunc(conf, sk); } } - return retVal___; + return; } -int HP_skill_validate_ammotype_sub(const char *type, bool on, struct s_skill_db *sk) { +int HP_skill_validate_unit_id_sub(int unit_id) { int hIndex = 0; int retVal___ = 0; - if (HPMHooks.count.HP_skill_validate_ammotype_sub_pre > 0) { - int (*preHookFunc) (const char **type, bool *on, struct s_skill_db **sk); + if (HPMHooks.count.HP_skill_validate_unit_id_sub_pre > 0) { + int (*preHookFunc) (int *unit_id); *HPMforce_return = false; - for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_validate_ammotype_sub_pre; hIndex++) { - preHookFunc = HPMHooks.list.HP_skill_validate_ammotype_sub_pre[hIndex].func; - retVal___ = preHookFunc(&type, &on, &sk); + for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_validate_unit_id_sub_pre; hIndex++) { + preHookFunc = HPMHooks.list.HP_skill_validate_unit_id_sub_pre[hIndex].func; + retVal___ = preHookFunc(&unit_id); } if (*HPMforce_return) { *HPMforce_return = false; @@ -81044,17 +82830,121 @@ int HP_skill_validate_ammotype_sub(const char *type, bool on, struct s_skill_db } } { - retVal___ = HPMHooks.source.skill.validate_ammotype_sub(type, on, sk); + retVal___ = HPMHooks.source.skill.validate_unit_id_sub(unit_id); } - if (HPMHooks.count.HP_skill_validate_ammotype_sub_post > 0) { - int (*postHookFunc) (int retVal___, const char *type, bool on, struct s_skill_db *sk); - for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_validate_ammotype_sub_post; hIndex++) { - postHookFunc = HPMHooks.list.HP_skill_validate_ammotype_sub_post[hIndex].func; - retVal___ = postHookFunc(retVal___, type, on, sk); + if (HPMHooks.count.HP_skill_validate_unit_id_sub_post > 0) { + int (*postHookFunc) (int retVal___, int unit_id); + for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_validate_unit_id_sub_post; hIndex++) { + postHookFunc = HPMHooks.list.HP_skill_validate_unit_id_sub_post[hIndex].func; + retVal___ = postHookFunc(retVal___, unit_id); } } return retVal___; } +void HP_skill_validate_unit_id(struct config_setting_t *conf, struct s_skill_db *sk) { + int hIndex = 0; + if (HPMHooks.count.HP_skill_validate_unit_id_pre > 0) { + void (*preHookFunc) (struct config_setting_t **conf, struct s_skill_db **sk); + *HPMforce_return = false; + for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_validate_unit_id_pre; hIndex++) { + preHookFunc = HPMHooks.list.HP_skill_validate_unit_id_pre[hIndex].func; + preHookFunc(&conf, &sk); + } + if (*HPMforce_return) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.skill.validate_unit_id(conf, sk); + } + if (HPMHooks.count.HP_skill_validate_unit_id_post > 0) { + void (*postHookFunc) (struct config_setting_t *conf, struct s_skill_db *sk); + for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_validate_unit_id_post; hIndex++) { + postHookFunc = HPMHooks.list.HP_skill_validate_unit_id_post[hIndex].func; + postHookFunc(conf, sk); + } + } + return; +} +void HP_skill_validate_unit_layout(struct config_setting_t *conf, struct s_skill_db *sk) { + int hIndex = 0; + if (HPMHooks.count.HP_skill_validate_unit_layout_pre > 0) { + void (*preHookFunc) (struct config_setting_t **conf, struct s_skill_db **sk); + *HPMforce_return = false; + for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_validate_unit_layout_pre; hIndex++) { + preHookFunc = HPMHooks.list.HP_skill_validate_unit_layout_pre[hIndex].func; + preHookFunc(&conf, &sk); + } + if (*HPMforce_return) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.skill.validate_unit_layout(conf, sk); + } + if (HPMHooks.count.HP_skill_validate_unit_layout_post > 0) { + void (*postHookFunc) (struct config_setting_t *conf, struct s_skill_db *sk); + for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_validate_unit_layout_post; hIndex++) { + postHookFunc = HPMHooks.list.HP_skill_validate_unit_layout_post[hIndex].func; + postHookFunc(conf, sk); + } + } + return; +} +void HP_skill_validate_unit_range(struct config_setting_t *conf, struct s_skill_db *sk) { + int hIndex = 0; + if (HPMHooks.count.HP_skill_validate_unit_range_pre > 0) { + void (*preHookFunc) (struct config_setting_t **conf, struct s_skill_db **sk); + *HPMforce_return = false; + for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_validate_unit_range_pre; hIndex++) { + preHookFunc = HPMHooks.list.HP_skill_validate_unit_range_pre[hIndex].func; + preHookFunc(&conf, &sk); + } + if (*HPMforce_return) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.skill.validate_unit_range(conf, sk); + } + if (HPMHooks.count.HP_skill_validate_unit_range_post > 0) { + void (*postHookFunc) (struct config_setting_t *conf, struct s_skill_db *sk); + for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_validate_unit_range_post; hIndex++) { + postHookFunc = HPMHooks.list.HP_skill_validate_unit_range_post[hIndex].func; + postHookFunc(conf, sk); + } + } + return; +} +void HP_skill_validate_unit_interval(struct config_setting_t *conf, struct s_skill_db *sk) { + int hIndex = 0; + if (HPMHooks.count.HP_skill_validate_unit_interval_pre > 0) { + void (*preHookFunc) (struct config_setting_t **conf, struct s_skill_db **sk); + *HPMforce_return = false; + for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_validate_unit_interval_pre; hIndex++) { + preHookFunc = HPMHooks.list.HP_skill_validate_unit_interval_pre[hIndex].func; + preHookFunc(&conf, &sk); + } + if (*HPMforce_return) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.skill.validate_unit_interval(conf, sk); + } + if (HPMHooks.count.HP_skill_validate_unit_interval_post > 0) { + void (*postHookFunc) (struct config_setting_t *conf, struct s_skill_db *sk); + for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_validate_unit_interval_post; hIndex++) { + postHookFunc = HPMHooks.list.HP_skill_validate_unit_interval_post[hIndex].func; + postHookFunc(conf, sk); + } + } + return; +} int HP_skill_validate_unit_flag_sub(const char *type, bool on, struct s_skill_db *sk) { int hIndex = 0; int retVal___ = 0; @@ -81082,6 +82972,137 @@ int HP_skill_validate_unit_flag_sub(const char *type, bool on, struct s_skill_db } return retVal___; } +void HP_skill_validate_unit_flag(struct config_setting_t *conf, struct s_skill_db *sk) { + int hIndex = 0; + if (HPMHooks.count.HP_skill_validate_unit_flag_pre > 0) { + void (*preHookFunc) (struct config_setting_t **conf, struct s_skill_db **sk); + *HPMforce_return = false; + for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_validate_unit_flag_pre; hIndex++) { + preHookFunc = HPMHooks.list.HP_skill_validate_unit_flag_pre[hIndex].func; + preHookFunc(&conf, &sk); + } + if (*HPMforce_return) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.skill.validate_unit_flag(conf, sk); + } + if (HPMHooks.count.HP_skill_validate_unit_flag_post > 0) { + void (*postHookFunc) (struct config_setting_t *conf, struct s_skill_db *sk); + for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_validate_unit_flag_post; hIndex++) { + postHookFunc = HPMHooks.list.HP_skill_validate_unit_flag_post[hIndex].func; + postHookFunc(conf, sk); + } + } + return; +} +int HP_skill_validate_unit_target_sub(const char *target) { + int hIndex = 0; + int retVal___ = 0; + if (HPMHooks.count.HP_skill_validate_unit_target_sub_pre > 0) { + int (*preHookFunc) (const char **target); + *HPMforce_return = false; + for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_validate_unit_target_sub_pre; hIndex++) { + preHookFunc = HPMHooks.list.HP_skill_validate_unit_target_sub_pre[hIndex].func; + retVal___ = preHookFunc(&target); + } + if (*HPMforce_return) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.skill.validate_unit_target_sub(target); + } + if (HPMHooks.count.HP_skill_validate_unit_target_sub_post > 0) { + int (*postHookFunc) (int retVal___, const char *target); + for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_validate_unit_target_sub_post; hIndex++) { + postHookFunc = HPMHooks.list.HP_skill_validate_unit_target_sub_post[hIndex].func; + retVal___ = postHookFunc(retVal___, target); + } + } + return retVal___; +} +void HP_skill_validate_unit_target(struct config_setting_t *conf, struct s_skill_db *sk) { + int hIndex = 0; + if (HPMHooks.count.HP_skill_validate_unit_target_pre > 0) { + void (*preHookFunc) (struct config_setting_t **conf, struct s_skill_db **sk); + *HPMforce_return = false; + for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_validate_unit_target_pre; hIndex++) { + preHookFunc = HPMHooks.list.HP_skill_validate_unit_target_pre[hIndex].func; + preHookFunc(&conf, &sk); + } + if (*HPMforce_return) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.skill.validate_unit_target(conf, sk); + } + if (HPMHooks.count.HP_skill_validate_unit_target_post > 0) { + void (*postHookFunc) (struct config_setting_t *conf, struct s_skill_db *sk); + for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_validate_unit_target_post; hIndex++) { + postHookFunc = HPMHooks.list.HP_skill_validate_unit_target_post[hIndex].func; + postHookFunc(conf, sk); + } + } + return; +} +void HP_skill_validate_unit(struct config_setting_t *conf, struct s_skill_db *sk) { + int hIndex = 0; + if (HPMHooks.count.HP_skill_validate_unit_pre > 0) { + void (*preHookFunc) (struct config_setting_t **conf, struct s_skill_db **sk); + *HPMforce_return = false; + for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_validate_unit_pre; hIndex++) { + preHookFunc = HPMHooks.list.HP_skill_validate_unit_pre[hIndex].func; + preHookFunc(&conf, &sk); + } + if (*HPMforce_return) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.skill.validate_unit(conf, sk); + } + if (HPMHooks.count.HP_skill_validate_unit_post > 0) { + void (*postHookFunc) (struct config_setting_t *conf, struct s_skill_db *sk); + for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_validate_unit_post; hIndex++) { + postHookFunc = HPMHooks.list.HP_skill_validate_unit_post[hIndex].func; + postHookFunc(conf, sk); + } + } + return; +} +void HP_skill_validate_additional_fields(struct config_setting_t *conf, struct s_skill_db *sk) { + int hIndex = 0; + if (HPMHooks.count.HP_skill_validate_additional_fields_pre > 0) { + void (*preHookFunc) (struct config_setting_t **conf, struct s_skill_db **sk); + *HPMforce_return = false; + for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_validate_additional_fields_pre; hIndex++) { + preHookFunc = HPMHooks.list.HP_skill_validate_additional_fields_pre[hIndex].func; + preHookFunc(&conf, &sk); + } + if (*HPMforce_return) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.skill.validate_additional_fields(conf, sk); + } + if (HPMHooks.count.HP_skill_validate_additional_fields_post > 0) { + void (*postHookFunc) (struct config_setting_t *conf, struct s_skill_db *sk); + for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_validate_additional_fields_post; hIndex++) { + postHookFunc = HPMHooks.list.HP_skill_validate_additional_fields_post[hIndex].func; + postHookFunc(conf, sk); + } + } + return; +} bool HP_skill_read_skilldb(const char *filename) { int hIndex = 0; bool retVal___ = false; @@ -82727,6 +84748,33 @@ int HP_skill_count_wos(struct block_list *bl, va_list ap) { } return retVal___; } +int HP_skill_get_linked_song_dance_id(int skill_id) { + int hIndex = 0; + int retVal___ = 0; + if (HPMHooks.count.HP_skill_get_linked_song_dance_id_pre > 0) { + int (*preHookFunc) (int *skill_id); + *HPMforce_return = false; + for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_linked_song_dance_id_pre; hIndex++) { + preHookFunc = HPMHooks.list.HP_skill_get_linked_song_dance_id_pre[hIndex].func; + retVal___ = preHookFunc(&skill_id); + } + if (*HPMforce_return) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.skill.get_linked_song_dance_id(skill_id); + } + if (HPMHooks.count.HP_skill_get_linked_song_dance_id_post > 0) { + int (*postHookFunc) (int retVal___, int skill_id); + for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_linked_song_dance_id_post; hIndex++) { + postHookFunc = HPMHooks.list.HP_skill_get_linked_song_dance_id_post[hIndex].func; + retVal___ = postHookFunc(retVal___, skill_id); + } + } + return retVal___; +} /* socket_interface */ void HP_sockt_init(void) { int hIndex = 0; @@ -85475,15 +87523,15 @@ int HP_status_change_start_sub(struct block_list *src, struct block_list *bl, en } return retVal___; } -int HP_status_change_end_(struct block_list *bl, enum sc_type type, int tid, const char *file, int line) { +int HP_status_change_end_(struct block_list *bl, enum sc_type type, int tid) { int hIndex = 0; int retVal___ = 0; if (HPMHooks.count.HP_status_change_end__pre > 0) { - int (*preHookFunc) (struct block_list **bl, enum sc_type *type, int *tid, const char **file, int *line); + int (*preHookFunc) (struct block_list **bl, enum sc_type *type, int *tid); *HPMforce_return = false; for (hIndex = 0; hIndex < HPMHooks.count.HP_status_change_end__pre; hIndex++) { preHookFunc = HPMHooks.list.HP_status_change_end__pre[hIndex].func; - retVal___ = preHookFunc(&bl, &type, &tid, &file, &line); + retVal___ = preHookFunc(&bl, &type, &tid); } if (*HPMforce_return) { *HPMforce_return = false; @@ -85491,13 +87539,13 @@ int HP_status_change_end_(struct block_list *bl, enum sc_type type, int tid, con } } { - retVal___ = HPMHooks.source.status.change_end_(bl, type, tid, file, line); + retVal___ = HPMHooks.source.status.change_end_(bl, type, tid); } if (HPMHooks.count.HP_status_change_end__post > 0) { - int (*postHookFunc) (int retVal___, struct block_list *bl, enum sc_type type, int tid, const char *file, int line); + int (*postHookFunc) (int retVal___, struct block_list *bl, enum sc_type type, int tid); for (hIndex = 0; hIndex < HPMHooks.count.HP_status_change_end__post; hIndex++) { postHookFunc = HPMHooks.list.HP_status_change_end__post[hIndex].func; - retVal___ = postHookFunc(retVal___, bl, type, tid, file, line); + retVal___ = postHookFunc(retVal___, bl, type, tid); } } return retVal___; diff --git a/src/plugins/Makefile.in b/src/plugins/Makefile.in index 5527ceb2f..e44412bfa 100644 --- a/src/plugins/Makefile.in +++ b/src/plugins/Makefile.in @@ -103,7 +103,7 @@ Makefile: Makefile.in ../../plugins/%@DLLEXT@: %.c $(ALL_H) $$(shell ls %/* 2>/dev/null) @echo " CC $<" - @$(CC) $(COMMON_INCLUDE) $(THIRDPARTY_INCLUDE) @PLUGINSTATIC@ @DEFS@ @CFLAGS@ @CPPFLAGS@ @LDFLAGS@ @SOFLAGS@ -o $@ $< + @$(CC) $(COMMON_INCLUDE) $(THIRDPARTY_INCLUDE) @PLUGINSTATIC@ @DEFS@ @CFLAGS@ @CPPFLAGS@ @LDFLAGS@ @SOFLAGS@ @LIBS@ @MYSQL_LIBS@ -o $@ $< ../../plugins/HPMHooking_login@DLLEXT@: HPMHOOKINGTYPE = LOGIN ../../plugins/HPMHooking_char@DLLEXT@: HPMHOOKINGTYPE = CHAR diff --git a/src/test/Makefile.in b/src/test/Makefile.in index 8399100f1..91263c939 100644 --- a/src/test/Makefile.in +++ b/src/test/Makefile.in @@ -36,6 +36,19 @@ LIBCONFIG_OBJ = $(addprefix $(LIBCONFIG_D)/, libconfig.o grammar.o scanctx.o \ LIBCONFIG_H = $(addprefix $(LIBCONFIG_D)/, libconfig.h grammar.h parsectx.h \ scanctx.h scanner.h strbuf.h wincompat.h) +ifeq (@USE_LIBBACKTRACE@,yes) + LIBBACKTRACE_D = $(THIRDPARTY_D)/libbacktrace + LIBBACKTRACE_OBJ = $(addprefix $(LIBBACKTRACE_D)/, atomic.o backtrace.o \ + dwarf.o @LIBBACKTRACE_FORMAT_FILE@ fileline.o mmapio.o mmap.o posix.o print.o \ + simple.o sort.o state.o) + LIBBACKTRACE_H = $(addprefix $(LIBBACKTRACE_D)/, backtrace.h \ + backtrace-supported.h config.h filenames.h internal.h) +else + LIBBACKTRACE_D = + LIBBACKTRACE_OBJ = + LIBBACKTRACE_H = +endif + MT19937AR_D = $(THIRDPARTY_D)/mt19937ar MT19937AR_OBJ = $(MT19937AR_D)/mt19937ar.o MT19937AR_H = $(MT19937AR_D)/mt19937ar.h @@ -43,7 +56,7 @@ MT19937AR_H = $(MT19937AR_D)/mt19937ar.h TEST_C = test_libconfig.c test_spinlock.c TEST_OBJ = $(addprefix obj/, $(patsubst %c,%o,%(TEST_C))) TEST_H = -TEST_DEPENDS = $(COMMON_D)/obj_sql/common_sql.a $(COMMON_D)/obj_all/common.a $(MT19937AR_OBJ) $(LIBCONFIG_OBJ) $(SYSINFO_INC) +TEST_DEPENDS = $(COMMON_D)/obj_sql/common_sql.a $(COMMON_D)/obj_all/common.a $(MT19937AR_OBJ) $(LIBCONFIG_OBJ) $(LIBBACKTRACE_OBJ) $(SYSINFO_INC) TESTS_ALL = test_libconfig test_spinlock @@ -70,7 +83,7 @@ clean: buildclean Makefile: Makefile.in @$(MAKE) -C ../.. src/test/Makefile -$(SYSINFO_INC): $(TEST_C) $(TEST_H) $(COMMON_H) $(CONFIG_H) $(MT19937AR_H) $(LIBCONFIG_H) +$(SYSINFO_INC): $(TEST_C) $(TEST_H) $(COMMON_H) $(CONFIG_H) $(MT19937AR_H) $(LIBCONFIG_H) $(LIBBACKTRACE_H) @echo " MAKE $@" @$(MAKE) -C ../.. sysinfo @@ -88,11 +101,11 @@ $(TESTS_ALL): test_%: ../../test_%@EXEEXT@ ../../test_%@EXEEXT@: obj/test_%.o $(TEST_DEPENDS) Makefile @echo " LD $(notdir $@)" @$(CC) @STATIC@ @LDFLAGS@ -o $@ $< $(COMMON_D)/obj_all/common.a $(COMMON_D)/obj_sql/common_sql.a \ - $(MT19937AR_OBJ) $(LIBCONFIG_OBJ) @LIBS@ @MYSQL_LIBS@ + $(MT19937AR_OBJ) $(LIBCONFIG_OBJ) $(LIBBACKTRACE_OBJ) @LIBS@ @MYSQL_LIBS@ # object files -obj/%.o: %.c $(TEST_H) $(COMMON_H) $(CONFIG_H) $(MT19937AR_H) $(LIBCONFIG_H) | obj +obj/%.o: %.c $(TEST_H) $(COMMON_H) $(CONFIG_H) $(MT19937AR_H) $(LIBCONFIG_H) $(LIBBACKTRACE_H) | obj @echo " CC $<" @$(CC) @CFLAGS@ @DEFS@ $(COMMON_INCLUDE) $(THIRDPARTY_INCLUDE) @MYSQL_CFLAGS@ @CPPFLAGS@ -c $(OUTPUT_OPTION) $< @@ -112,3 +125,7 @@ $(MT19937AR_OBJ): $(LIBCONFIG_OBJ): @echo " MAKE $@" @$(MAKE) -C $(LIBCONFIG_D) + +$(LIBBACKTRACE_OBJ): + @echo " MAKE $@" + @$(MAKE) -C $(LIBBACKTRACE_D) |