summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/char/char.c37
-rw-r--r--src/common/HPMDataCheck.h3
-rw-r--r--src/common/Makefile.in16
-rw-r--r--src/common/console.c21
-rw-r--r--src/common/core.c42
-rw-r--r--src/common/memmgr.h5
-rw-r--r--src/common/mmo.h3
-rw-r--r--src/common/socket.c27
-rw-r--r--src/config/const.h5
-rw-r--r--src/map/achievement.c4
-rw-r--r--src/map/atcommand.c17
-rw-r--r--src/map/battle.c37
-rw-r--r--src/map/battle.h6
-rw-r--r--src/map/channel.c17
-rw-r--r--src/map/channel.h1
-rw-r--r--src/map/clif.c119
-rw-r--r--src/map/clif.h1
-rw-r--r--src/map/map.c13
-rw-r--r--src/map/map.h2
-rw-r--r--src/map/messages_main.h89
-rw-r--r--src/map/messages_re.h89
-rw-r--r--src/map/messages_zero.h48
-rw-r--r--src/map/packets.h46
-rw-r--r--src/map/packets_keys_main.h867
-rw-r--r--src/map/packets_keys_zero.h6
-rw-r--r--src/map/packets_shuffle_main.h9
-rw-r--r--src/map/packets_shuffle_re.h8
-rw-r--r--src/map/packets_shuffle_zero.h6
-rw-r--r--src/map/packets_struct.h73
-rw-r--r--src/map/pc.c14
-rw-r--r--src/map/quest.c27
-rw-r--r--src/map/quest.h1
-rw-r--r--src/map/script.c253
-rw-r--r--src/map/script.h6
-rw-r--r--src/map/skill.c53
-rw-r--r--src/map/skill.h1
-rw-r--r--src/map/status.c23
-rw-r--r--src/plugins/HPMHooking/HPMHooking.Defs.inc8
-rw-r--r--src/plugins/HPMHooking/HPMHooking_map.HPMHooksCore.inc16
-rw-r--r--src/plugins/HPMHooking/HPMHooking_map.HookingPoints.inc4
-rw-r--r--src/plugins/HPMHooking/HPMHooking_map.Hooks.inc105
-rw-r--r--src/tool/Makefile.in88
42 files changed, 1371 insertions, 845 deletions
diff --git a/src/char/char.c b/src/char/char.c
index 54f6ca7d1..18269aeaf 100644
--- a/src/char/char.c
+++ b/src/char/char.c
@@ -139,6 +139,7 @@ char char_name_letters[1024] = ""; // list of letters/symbols allowed (or not) i
static int char_del_level = 0; ///< From which level you can delete character [Lupus]
static int char_del_delay = 86400;
static bool char_aegis_delete = false; ///< Verify if char is in guild/party or char and reacts as Aegis does (disallow deletion), @see chr->delete2_req.
+static bool char_aegis_rename = false; // whether or not the player can be renamed while in party/guild
static int max_connect_user = -1;
static int gm_allow_group = -1;
@@ -1514,6 +1515,14 @@ static int char_rename_char_sql(struct char_session_data *sd, int char_id)
if( char_dat.rename == 0 )
return 1;
+ if (char_aegis_rename) {
+ if (char_dat.guild_id > 0) {
+ return 5; // MSG_FAILED_RENAME_BELONGS_TO_GUILD
+ } else if (char_dat.party_id > 0) {
+ return 6; // MSG_FAILED_RENAME_BELONGS_TO_PARTY
+ }
+ }
+
SQL->EscapeStringLen(inter->sql_handle, esc_name, sd->new_name, strnlen(sd->new_name, NAME_LENGTH));
// check if the char exist
@@ -2132,17 +2141,20 @@ static void char_mmo_char_send_ban_list(int fd, struct char_session_data *sd)
//----------------------------------------
static void char_mmo_char_send_slots_info(int fd, struct char_session_data *sd)
{
+// also probably supported client 2013-02-15aRagexe but not 2013-02-15bRagexe [4144]
+#if PACKETVER_MAIN_NUM >= 20130612 || PACKETVER_RE_NUM >= 20130115 || defined(PACKETVER_ZERO)
nullpo_retv(sd);
- WFIFOHEAD(fd,29);
- WFIFOW(fd,0) = 0x82d;
- WFIFOW(fd,2) = 29;
- WFIFOB(fd,4) = sd->char_slots;
- WFIFOB(fd,5) = MAX_CHARS - sd->char_slots;
- WFIFOB(fd,6) = 0;
- WFIFOB(fd,7) = sd->char_slots;
- WFIFOB(fd,8) = sd->char_slots;
- memset(WFIFOP(fd,9), 0, 20); // unused bytes
- WFIFOSET(fd,29);
+ WFIFOHEAD(fd, 29);
+ WFIFOW(fd, 0) = 0x82d;
+ WFIFOW(fd, 2) = 29;
+ WFIFOB(fd, 4) = sd->char_slots;
+ WFIFOB(fd, 5) = MAX_CHARS - sd->char_slots;
+ WFIFOB(fd, 6) = 0;
+ WFIFOB(fd, 7) = sd->char_slots;
+ WFIFOB(fd, 8) = sd->char_slots;
+ memset(WFIFOP(fd, 9), 0, 20); // unused bytes
+ WFIFOSET(fd, 29);
+#endif
}
//----------------------------------------
// Function to send characters to a player
@@ -2409,12 +2421,8 @@ static void char_parse_fromlogin_account_data(int fd)
chr->auth_error(i, 0);
} else {
// send characters to player
- #if PACKETVER >= 20130000
chr->mmo_char_send_slots_info(i, sd);
chr->mmo_char_send_characters(i, sd);
- #else
- chr->mmo_char_send_characters(i, sd);
- #endif
#if PACKETVER >= 20060819
chr->mmo_char_send_ban_list(i, sd);
#endif
@@ -5848,6 +5856,7 @@ static bool char_config_read_player_name(const char *filename, const struct conf
libconfig->setting_lookup_mutable_string(setting, "name_letters", char_name_letters, sizeof(char_name_letters));
libconfig->setting_lookup_int(setting, "name_option", &char_name_option);
libconfig->setting_lookup_bool_real(setting, "name_ignoring_case", &name_ignoring_case);
+ libconfig->setting_lookup_bool_real(setting, "use_aegis_rename", &char_aegis_rename);
return true;
}
diff --git a/src/common/HPMDataCheck.h b/src/common/HPMDataCheck.h
index 21b90ee50..ecdc83740 100644
--- a/src/common/HPMDataCheck.h
+++ b/src/common/HPMDataCheck.h
@@ -660,6 +660,8 @@ HPExport const struct s_HPMDataCheck HPMDataCheck[] = {
{ "PACKET_ZC_ADD_ITEM_TO_MAIL", sizeof(struct PACKET_ZC_ADD_ITEM_TO_MAIL), SERVER_TYPE_MAP },
{ "PACKET_ZC_ADD_ITEM_TO_STORE", sizeof(struct PACKET_ZC_ADD_ITEM_TO_STORE), SERVER_TYPE_MAP },
{ "PACKET_ZC_ADD_MEMBER_TO_GROUP", sizeof(struct PACKET_ZC_ADD_MEMBER_TO_GROUP), SERVER_TYPE_MAP },
+ { "PACKET_ZC_AUTOSPELLLIST1", sizeof(struct PACKET_ZC_AUTOSPELLLIST1), SERVER_TYPE_MAP },
+ { "PACKET_ZC_AUTOSPELLLIST2", sizeof(struct PACKET_ZC_AUTOSPELLLIST2), SERVER_TYPE_MAP },
{ "PACKET_ZC_CAMERA_INFO", sizeof(struct PACKET_ZC_CAMERA_INFO), SERVER_TYPE_MAP },
{ "PACKET_ZC_CASH_ITEM_DELETE", sizeof(struct PACKET_ZC_CASH_ITEM_DELETE), SERVER_TYPE_MAP },
{ "PACKET_ZC_CASH_TIME_COUNTER", sizeof(struct PACKET_ZC_CASH_TIME_COUNTER), SERVER_TYPE_MAP },
@@ -677,6 +679,7 @@ HPExport const struct s_HPMDataCheck HPMDataCheck[] = {
{ "PACKET_ZC_INVENTORY_MOVE_FAILED", sizeof(struct PACKET_ZC_INVENTORY_MOVE_FAILED), SERVER_TYPE_MAP },
{ "PACKET_ZC_ITEM_ENTRY", sizeof(struct PACKET_ZC_ITEM_ENTRY), SERVER_TYPE_MAP },
{ "PACKET_ZC_ITEM_PICKUP_PARTY", sizeof(struct PACKET_ZC_ITEM_PICKUP_PARTY), SERVER_TYPE_MAP },
+ { "PACKET_ZC_ITEM_PREVIEW", sizeof(struct PACKET_ZC_ITEM_PREVIEW), SERVER_TYPE_MAP },
{ "PACKET_ZC_MAIL_LIST", sizeof(struct PACKET_ZC_MAIL_LIST), SERVER_TYPE_MAP },
{ "PACKET_ZC_MAKABLEITEMLIST", sizeof(struct PACKET_ZC_MAKABLEITEMLIST), SERVER_TYPE_MAP },
{ "PACKET_ZC_MAKABLEITEMLIST_sub", sizeof(struct PACKET_ZC_MAKABLEITEMLIST_sub), SERVER_TYPE_MAP },
diff --git a/src/common/Makefile.in b/src/common/Makefile.in
index f65138521..67fe9c0d4 100644
--- a/src/common/Makefile.in
+++ b/src/common/Makefile.in
@@ -44,8 +44,6 @@ COMMON_C = $(COMMON_SHARED_C)
COMMON_SHARED_OBJ = $(patsubst %.c,%.o,$(COMMON_SHARED_C))
COMMON_OBJ = $(addprefix obj_all/, $(COMMON_SHARED_OBJ) \
console.o core.o memmgr.o socket.o)
-COMMON_MINI_OBJ = $(addprefix obj_all/, $(COMMON_SHARED_OBJ) \
- miniconsole.o minicore.o minimemmgr.o minisocket.o)
COMMON_C += console.c core.c memmgr.c socket.c
COMMON_H = atomic.h cbasetypes.h conf.h console.h core.h db.h des.h ers.h \
grfio.h hercules.h HPM.h HPMi.h memmgr.h mapindex.h md5calc.h \
@@ -61,7 +59,7 @@ SYSINFO_INC = sysinfo.inc
HAVE_MYSQL=@HAVE_MYSQL@
ifeq ($(HAVE_MYSQL),yes)
- SQL_DEPENDS=common common_sql common_mini
+ SQL_DEPENDS=common common_sql
else
SQL_DEPENDS=needs_mysql
endif
@@ -72,7 +70,7 @@ CC = @CC@
export CC
#####################################################################
-.PHONY: all sql common common_sql common_mini clean buildclean help
+.PHONY: all sql common common_sql clean buildclean help
all: sql
@@ -119,18 +117,12 @@ obj_all/common.a: $(COMMON_OBJ) Makefile
@echo " AR $@"
@@AR@ rcs obj_all/common.a $(COMMON_OBJ)
-obj_all/common_mini.a: $(COMMON_MINI_OBJ) Makefile
- @echo " AR $@"
- @@AR@ rcs obj_all/common_mini.a $(COMMON_MINI_OBJ)
-
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_mini: $(COMMON_MINI_OBJ) $(MT19937AR_OBJ) $(LIBCONFIG_OBJ) obj_all/common_mini.a Makefile
-
common_sql: $(COMMON_SQL_OBJ) obj_sql/common_sql.a Makefile
# missing object files
@@ -150,10 +142,6 @@ obj_all/%.o: %.c $(COMMON_H) $(CONFIG_H) $(MT19937AR_H) $(LIBCONFIG_H) | $(SYSIN
@echo " CC $<"
@$(CC) @CFLAGS@ @DEFS@ $(COMMON_INCLUDE) $(THIRDPARTY_INCLUDE) @CPPFLAGS@ -c $(OUTPUT_OPTION) $<
-obj_all/mini%.o: %.c $$(filter %.p.h, $(COMMON_PH)) $(COMMON_H) $(CONFIG_H) $(MT19937AR_H) $(LIBCONFIG_H) | $(SYSINFO_INC) obj_all
- @echo " CC $<"
- @$(CC) @CFLAGS@ @DEFS@ $(COMMON_INCLUDE) $(THIRDPARTY_INCLUDE) -DMINICORE @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
@echo " CC $<"
@$(CC) @CFLAGS@ @DEFS@ $(COMMON_INCLUDE) $(THIRDPARTY_INCLUDE) @MYSQL_CFLAGS@ @CPPFLAGS@ -c $(OUTPUT_OPTION) $<
diff --git a/src/common/console.c b/src/common/console.c
index 5923775b7..a990d86b3 100644
--- a/src/common/console.c
+++ b/src/common/console.c
@@ -23,24 +23,21 @@
#include "config/core.h" // CONSOLE_INPUT, MAX_CONSOLE_INPUT
#include "console.h"
+#include "common/atomic.h"
#include "common/cbasetypes.h"
#include "common/core.h"
+#include "common/ers.h"
+#include "common/memmgr.h"
#include "common/mmo.h"
+#include "common/mutex.h"
#include "common/nullpo.h"
#include "common/showmsg.h"
+#include "common/spinlock.h"
+#include "common/sql.h"
+#include "common/strlib.h"
#include "common/sysinfo.h"
-
-#ifndef MINICORE
-# include "common/atomic.h"
-# include "common/ers.h"
-# include "common/memmgr.h"
-# include "common/mutex.h"
-# include "common/spinlock.h"
-# include "common/sql.h"
-# include "common/strlib.h"
-# include "common/thread.h"
-# include "common/timer.h"
-#endif
+#include "common/thread.h"
+#include "common/timer.h"
#include <stdio.h>
#include <stdlib.h>
diff --git a/src/common/core.c b/src/common/core.c
index 9fd33c4e0..1ecf1df83 100644
--- a/src/common/core.c
+++ b/src/common/core.c
@@ -23,32 +23,29 @@
#include "config/core.h"
#include "core.h"
+#include "common/HPM.h"
#include "common/cbasetypes.h"
+#include "common/conf.h"
#include "common/console.h"
#include "common/db.h"
#include "common/des.h"
+#include "common/ers.h"
#include "common/grfio.h"
+#include "common/md5calc.h"
#include "common/memmgr.h"
#include "common/mmo.h"
+#include "common/mutex.h"
#include "common/nullpo.h"
+#include "common/random.h"
#include "common/showmsg.h"
+#include "common/socket.h"
+#include "common/sql.h"
#include "common/strlib.h"
#include "common/sysinfo.h"
+#include "common/thread.h"
#include "common/timer.h"
#include "common/utils.h"
-#ifndef MINICORE
-# include "common/HPM.h"
-# include "common/conf.h"
-# include "common/ers.h"
-# include "common/md5calc.h"
-# include "common/mutex.h"
-# include "common/random.h"
-# include "common/socket.h"
-# include "common/sql.h"
-# include "common/thread.h"
-#endif
-
#ifndef _WIN32
# include <unistd.h>
#else
@@ -83,7 +80,6 @@
static struct core_interface core_s;
struct core_interface *core = &core_s;
-#ifndef MINICORE // minimalist Core
// Added by Gabuzomeu
//
// This is an implementation of signal() using sigaction() for portability.
@@ -196,7 +192,6 @@ static void signals_init(void)
compat_signal(SIGTRAP, SIG_DFL);
#endif
}
-#endif
/**
* Warns the user if executed as superuser (root)
@@ -250,10 +245,8 @@ static bool usercheck(void)
static void core_defaults(void)
{
nullpo_defaults();
-#ifndef MINICORE
hpm_defaults();
HCache_defaults();
-#endif
sysinfo_defaults();
console_defaults();
strlib_defaults();
@@ -262,7 +255,6 @@ static void core_defaults(void)
cmdline_defaults();
des_defaults();
grfio_defaults(); // Note: grfio is lazily loaded. grfio->init() and grfio->final() are not automatically called.
-#ifndef MINICORE
mutex_defaults();
libconfig_defaults();
sql_defaults();
@@ -272,7 +264,6 @@ static void core_defaults(void)
rnd_defaults();
md5_defaults();
thread_defaults();
-#endif
}
/**
@@ -280,12 +271,8 @@ static void core_defaults(void)
*/
static const char *cmdline_arg_source(struct CmdlineArgData *arg)
{
-#ifdef MINICORE
- return "core";
-#else // !MINICORE
nullpo_retr(NULL, arg);
return HPM->pid2name(arg->pluginID);
-#endif // MINICORE
}
/**
@@ -446,15 +433,9 @@ static int cmdline_exec(int argc, char **argv, unsigned int options)
*/
static void cmdline_init(void)
{
-#ifdef MINICORE
- // Minicore has no HPM. This value isn't used, but the arg_add function requires it, so we're (re)defining it here
-#define HPM_PID_CORE ((unsigned int)-1)
-#endif
CMDLINEARG_DEF(help, 'h', "Displays this help screen", CMDLINE_OPT_NORMAL);
CMDLINEARG_DEF(version, 'v', "Displays the server's version.", CMDLINE_OPT_NORMAL);
-#ifndef MINICORE
CMDLINEARG_DEF2(load-plugin, loadplugin, "Loads an additional plugin (can be repeated).", CMDLINE_OPT_PARAM|CMDLINE_OPT_PREINIT);
-#endif // !MINICORE
cmdline_args_init_local();
}
@@ -521,10 +502,6 @@ int main(int argc, char **argv)
if (!usercheck())
return EXIT_FAILURE;
-#ifdef MINICORE // minimalist Core
- do_init(argc,argv);
- do_final();
-#else// not MINICORE
set_server_type();
Sql_Init();
@@ -567,7 +544,6 @@ int main(int argc, char **argv)
thread->final();
ers_final();
rnd->final();
-#endif
cmdline->final();
//sysinfo->final(); Called by iMalloc->final()
diff --git a/src/common/memmgr.h b/src/common/memmgr.h
index 90c35f244..c7147cc5e 100644
--- a/src/common/memmgr.h
+++ b/src/common/memmgr.h
@@ -42,11 +42,6 @@
// Enable memory manager logging by default
#define LOG_MEMMGR
-// no logging for minicore
-#if defined(MINICORE) && defined(LOG_MEMMGR)
- #undef LOG_MEMMGR
-#endif
-
# define aMalloc(n) (iMalloc->malloc((n),ALC_MARK))
# define aCalloc(m,n) (iMalloc->calloc((m),(n),ALC_MARK))
# define aRealloc(p,n) (iMalloc->realloc((p),(n),ALC_MARK))
diff --git a/src/common/mmo.h b/src/common/mmo.h
index d6946cecc..9bcf82cc7 100644
--- a/src/common/mmo.h
+++ b/src/common/mmo.h
@@ -1331,7 +1331,8 @@ enum questinfo_type {
QINFO_ITEM,
QINFO_HOMUN_LEVEL,
QINFO_HOMUN_TYPE,
- QINFO_QUEST
+ QINFO_QUEST,
+ QINFO_MERCENARY_CLASS
};
/* packet size constant for itemlist */
diff --git a/src/common/socket.c b/src/common/socket.c
index 290c7a1b3..fd86414d6 100644
--- a/src/common/socket.c
+++ b/src/common/socket.c
@@ -301,10 +301,8 @@ static uint32 send_shortlist_set[(FD_SETSIZE+31)/32];// to know if specific fd's
static int create_session(int fd, RecvFunc func_recv, SendFunc func_send, ParseFunc func_parse);
-#ifndef MINICORE
- static int ip_rules = 1;
- static int connect_check(uint32 ip);
-#endif // MINICORE
+static int ip_rules = 1;
+static int connect_check(uint32 ip);
static const char *error_msg(void)
{
@@ -556,12 +554,10 @@ static int connect_client(int listen_fd)
setsocketopts(fd,NULL);
sockt->set_nonblocking(fd, 1);
-#ifndef MINICORE
if( ip_rules && !connect_check(ntohl(client_address.sin_addr.s_addr)) ) {
sockt->close(fd);
return -1;
}
-#endif // MINICORE
#ifndef SOCKET_EPOLL
// Select Based Event Dispatcher
@@ -1065,9 +1061,6 @@ static int do_sockets(int next)
return 0;
}
-//////////////////////////////
-#ifndef MINICORE
-//////////////////////////////
// IP rules and DDoS protection
struct connect_history {
@@ -1326,11 +1319,6 @@ static bool access_list_add(struct config_setting_t *setting, const char *list_n
return true;
}
-//////////////////////////////
-#endif // MINICORE
-//////////////////////////////
-
-#ifndef MINICORE
/**
* Reads 'socket_configuration/ip_rules' and initializes required variables.
*
@@ -1387,9 +1375,7 @@ static bool socket_config_read_iprules(const char *filename, struct config_t *co
return true;
}
-#endif // ! MINICORE
-#ifndef MINICORE
/**
* Reads 'socket_configuration/ddos' and initializes required variables.
*
@@ -1419,7 +1405,6 @@ static bool socket_config_read_ddos(const char *filename, struct config_t *confi
return true;
}
-#endif // ! MINICORE
/**
* Reads 'socket_configuration' and initializes required variables.
@@ -1464,7 +1449,6 @@ static bool socket_config_read(const char *filename, bool imported)
}
#endif // SOCKET_EPOLL
-#ifndef MINICORE
{
uint32 ui32 = 0;
libconfig->setting_lookup_bool(setting, "debug", &access_debug);
@@ -1477,7 +1461,6 @@ static bool socket_config_read(const char *filename, bool imported)
retval = false;
if (!socket_config_read_ddos(filename, &config, imported))
retval = false;
-#endif // MINICORE
// import should overwrite any previous configuration, so it should be called last
if (libconfig->lookup_string(&config, "import", &import) == CONFIG_TRUE) {
@@ -1496,12 +1479,10 @@ static bool socket_config_read(const char *filename, bool imported)
static void socket_final(void)
{
int i;
-#ifndef MINICORE
if( connect_history )
db_destroy(connect_history);
VECTOR_CLEAR(access_allow);
VECTOR_CLEAR(access_deny);
-#endif // MINICORE
for( i = 1; i < sockt->fd_max; i++ )
if(sockt->session[i])
@@ -1686,10 +1667,8 @@ static void socket_init(void)
}
#endif // defined(HAVE_SETRLIMIT) && !defined(CYGWIN)
-#ifndef MINICORE
VECTOR_INIT(access_allow);
VECTOR_INIT(access_deny);
-#endif // ! MINICORE
// Get initial local ips
sockt->naddr_ = sockt->getips(sockt->addr_,16);
@@ -1729,12 +1708,10 @@ static void socket_init(void)
// should hold enough buffer (it is a vacuum so to speak) as it is never flushed. [Skotlex]
create_session(0, null_recv, null_send, null_parse);
-#ifndef MINICORE
// Delete old connection history every 5 minutes
connect_history = uidb_alloc(DB_OPT_RELEASE_DATA);
timer->add_func_list(connect_check_clear, "connect_check_clear");
timer->add_interval(timer->gettick()+1000, connect_check_clear, 0, 0, 5*60*1000);
-#endif // MINICORE
ShowInfo("Server supports up to '"CL_WHITE"%"PRIu64""CL_RESET"' concurrent connections.\n", rlim_cur);
}
diff --git a/src/config/const.h b/src/config/const.h
index 3b35e354e..4767b5721 100644
--- a/src/config/const.h
+++ b/src/config/const.h
@@ -114,11 +114,6 @@
} while(0)
#endif
-/* console_input doesn't go well with minicore */
-#ifdef MINICORE
- #undef CONSOLE_INPUT
-#endif
-
/**
* End of File
**/
diff --git a/src/map/achievement.c b/src/map/achievement.c
index 68fc8a983..7148acae8 100644
--- a/src/map/achievement.c
+++ b/src/map/achievement.c
@@ -772,6 +772,10 @@ static void achievement_validate_refine(struct map_session_data *sd, unsigned in
criteria.goal = sd->status.inventory[idx].refine;
+ // achievement should not trigger if refine is 0
+ if (criteria.goal == 0)
+ return;
+
/* Universal */
achievement->validate_type(sd,
success ? ACH_EQUIP_REFINE_SUCCESS : ACH_EQUIP_REFINE_FAILURE,
diff --git a/src/map/atcommand.c b/src/map/atcommand.c
index a7dc5dd95..236975b32 100644
--- a/src/map/atcommand.c
+++ b/src/map/atcommand.c
@@ -1776,18 +1776,7 @@ ACMD(bodystyle)
memset(atcmd_output, '\0', sizeof(atcmd_output));
- if ((sd->job & MAPID_THIRDMASK) != MAPID_GUILLOTINE_CROSS
- && (sd->job & MAPID_THIRDMASK) != MAPID_GENETIC
- && (sd->job & MAPID_THIRDMASK) != MAPID_MECHANIC
- && (sd->job & MAPID_THIRDMASK) != MAPID_ROYAL_GUARD
- && (sd->job & MAPID_THIRDMASK) != MAPID_ARCH_BISHOP
- && (sd->job & MAPID_THIRDMASK) != MAPID_RANGER
- && (sd->job & MAPID_THIRDMASK) != MAPID_WARLOCK
- && (sd->job & MAPID_THIRDMASK) != MAPID_SHADOW_CHASER
- && (sd->job & MAPID_THIRDMASK) != MAPID_MINSTRELWANDERER
- && (sd->job & MAPID_THIRDMASK) != MAPID_SORCERER
- && (sd->job & MAPID_THIRDMASK) != MAPID_SURA
- ) {
+ if (!pc->has_second_costume(sd)) {
clif->message(fd, msg_fd(fd, 35)); // This job has no alternate body styles.
return false;
}
@@ -9398,8 +9387,8 @@ ACMD(channel)
} else {
int v = atoi(sub3);
if (k == HCS_OPT_MSG_DELAY) {
- if (v < 0 || v > 10) {
- safesnprintf(atcmd_output, sizeof(atcmd_output), msg_fd(fd,1451), v, opt_str[k]);// value '%d' for option '%s' is out of range (limit is 0-10)
+ if (v < 0 || v > channel->config->channel_opt_msg_delay) {
+ safesnprintf(atcmd_output, sizeof(atcmd_output), msg_fd(fd, 1451), v, opt_str[k], channel->config->channel_opt_msg_delay);// value '%d' for option '%s' is out of range (limit is 0-%d)
clif->message(fd, atcmd_output);
return false;
}
diff --git a/src/map/battle.c b/src/map/battle.c
index fceb30be1..44241bf23 100644
--- a/src/map/battle.c
+++ b/src/map/battle.c
@@ -4339,6 +4339,8 @@ static struct Damage battle_calc_misc_attack(struct block_list *src, struct bloc
}
break;
}
+
+ battle->reflect_trap(target, src, &md, skill_id);
return md;
}
@@ -6008,6 +6010,37 @@ static void battle_reflect_damage(struct block_list *target, struct block_list *
#undef NORMALIZE_RDAMAGE
}
+/**
+ * Reflects damage from certain traps, if battle_config.trap_reflect is true.
+ * @param target : Player who triggered the trap
+ * @param src : Player who set the trap
+ * @param md : Trap damage structure
+ * @param skill_id : Trap skill ID
+ */
+static void battle_reflect_trap(struct block_list *target, struct block_list *src, struct Damage *md, uint16 skill_id)
+{
+ if (battle_config.trap_reflect == true) {
+ if (src != target) { // Don't reflect your own damage
+ switch (skill_id) {
+ case HT_CLAYMORETRAP:
+ case HT_LANDMINE:
+ case HT_FREEZINGTRAP:
+ case HT_BLASTMINE:
+ // Needs official info
+ //case RA_CLUSTERBOMB:
+ //case RA_FIRINGTRAP:
+ //case RA_ICEBOUNDTRAP:
+ //case GN_THORNS_TRAP:
+ //case KO_MAKIBISHI:
+ case MA_LANDMINE:
+ case MA_FREEZINGTRAP:
+ battle->reflect_damage(target, src, md, skill_id);
+ break;
+ }
+ }
+ }
+}
+
static void battle_drain(struct map_session_data *sd, struct block_list *tbl, int64 rdamage, int64 ldamage, int race, int boss)
{
struct weapon_data *wd;
@@ -7325,6 +7358,7 @@ static const struct battle_data {
* Hercules
**/
{ "skill_trap_type", &battle_config.skill_trap_type, 0, 0, 1, },
+ { "trap_reflect", &battle_config.trap_reflect, 1, 0, 1, },
{ "item_restricted_consumption_type", &battle_config.item_restricted_consumption_type,1, 0, 1, },
{ "unequip_restricted_equipment", &battle_config.unequip_restricted_equipment, 0, 0, 3, },
{ "max_walk_path", &battle_config.max_walk_path, 17, 1, MAX_WALKPATH, },
@@ -7371,6 +7405,8 @@ static const struct battle_data {
{ "storage_use_item", &battle_config.storage_use_item, 0, 0, 1, },
{ "features/enable_attendance_system", &battle_config.feature_enable_attendance_system,1, 0, 1, },
{ "features/feature_attendance_endtime",&battle_config.feature_attendance_endtime, 1, 0, 99999999, },
+ { "min_item_buy_price", &battle_config.min_item_buy_price, 1, 0, INT_MAX, },
+ { "min_item_sell_price", &battle_config.min_item_sell_price, 0, 0, INT_MAX, },
};
static bool battle_set_value_sub(int index, int value)
@@ -7614,6 +7650,7 @@ void battle_defaults(void)
battle->delay_damage = battle_delay_damage;
battle->drain = battle_drain;
battle->reflect_damage = battle_reflect_damage;
+ battle->reflect_trap = battle_reflect_trap;
battle->attr_ratio = battle_attr_ratio;
battle->attr_fix = battle_attr_fix;
battle->calc_cardfix = battle_calc_cardfix;
diff --git a/src/map/battle.h b/src/map/battle.h
index 9f5207e95..02536e4a1 100644
--- a/src/map/battle.h
+++ b/src/map/battle.h
@@ -506,6 +506,7 @@ struct Battle_Config {
/** Hercules **/
int skill_trap_type;
+ int trap_reflect;
int item_restricted_consumption_type;
int unequip_restricted_equipment;
int max_walk_path;
@@ -570,6 +571,9 @@ struct Battle_Config {
int feature_enable_attendance_system;
int feature_attendance_endtime;
+
+ int min_item_buy_price;
+ int min_item_sell_price;
};
/* criteria for battle_config.idletime_critera */
@@ -636,6 +640,8 @@ struct battle_interface {
void (*drain) (struct map_session_data *sd, struct block_list *tbl, int64 rdamage, int64 ldamage, int race, int boss);
/* damage reflect */
void (*reflect_damage) (struct block_list *target, struct block_list *src, struct Damage *wd,uint16 skill_id);
+ /* trap reflect */
+ void(*reflect_trap) (struct block_list *target, struct block_list *src, struct Damage *md, uint16 skill_id);
/* attribute rate */
int (*attr_ratio) (int atk_elem, int def_type, int def_lv);
/* applies attribute modifiers */
diff --git a/src/map/channel.c b/src/map/channel.c
index f1946385d..3ba56b100 100644
--- a/src/map/channel.c
+++ b/src/map/channel.c
@@ -276,7 +276,9 @@ static void channel_send(struct channel_data *chan, struct map_session_data *sd,
if (sd && chan->msg_delay != 0
&& DIFF_TICK(sd->hchsysch_tick + chan->msg_delay*1000, timer->gettick()) > 0
&& !pc_has_permission(sd, PC_PERM_HCHSYS_ADMIN)) {
- clif->messagecolor_self(sd->fd, COLOR_RED, msg_sd(sd,1455));
+ char output[CHAT_SIZE_MAX];
+ sprintf(output, msg_sd(sd, 1455), DIFF_TICK(sd->hchsysch_tick + chan->msg_delay * 1000, timer->gettick()) / 1000); // "You cannot send a message to this channel for another %d seconds."
+ clif->messagecolor_self(sd->fd, COLOR_RED, output);
return;
} else if (sd) {
int i;
@@ -622,7 +624,8 @@ static void read_channels_config(void)
irc_autojoin = 0,
irc_flood_protection_rate = 0,
irc_flood_protection_burst = 0,
- irc_flood_protection_enabled = 0;
+ irc_flood_protection_enabled = 0,
+ channel_opt_msg_delay = 10;
if( !libconfig->setting_lookup_string(settings, "map_local_channel_name", &local_name) )
local_name = "map";
@@ -818,6 +821,16 @@ static void read_channels_config(void)
}
}
+ libconfig->setting_lookup_int(settings, "channel_opt_msg_delay", &channel_opt_msg_delay);
+ if (channel_opt_msg_delay < 0) {
+ ShowWarning("channels.conf: channel_opt_msg_delay value '%d' must be from 0-255. Defaulting to 0...\n", channel_opt_msg_delay);
+ channel_opt_msg_delay = 0;
+ } else if (channel_opt_msg_delay > 255) {
+ ShowWarning("channels.conf: channel_opt_msg_delay value '%d' must be from 0-255. Defaulting to 255...\n", channel_opt_msg_delay);
+ channel_opt_msg_delay = 255;
+ }
+ channel->config->channel_opt_msg_delay = channel_opt_msg_delay;
+
ShowStatus("Done reading '"CL_WHITE"%u"CL_RESET"' channels in '"CL_WHITE"%s"CL_RESET"'.\n", db_size(channel->db), config_filename);
}
libconfig->destroy(&channels_conf);
diff --git a/src/map/channel.h b/src/map/channel.h
index 4ac3c6037..c56227c66 100644
--- a/src/map/channel.h
+++ b/src/map/channel.h
@@ -75,6 +75,7 @@ struct Channel_Config {
char irc_server[40], irc_channel[50], irc_nick[40], irc_nick_pw[30];
unsigned short irc_server_port;
bool irc_use_ghost;
+ int channel_opt_msg_delay;
};
struct channel_ban_entry {
diff --git a/src/map/clif.c b/src/map/clif.c
index 1e9844f14..44cefcd7e 100644
--- a/src/map/clif.c
+++ b/src/map/clif.c
@@ -7503,44 +7503,43 @@ static void clif_pet_food(struct map_session_data *sd, int foodid, int fail)
/// 01cd { <skill id>.L }*7
static void clif_autospell(struct map_session_data *sd, uint16 skill_lv)
{
- int fd;
-
nullpo_retv(sd);
- fd=sd->fd;
- WFIFOHEAD(fd,packet_len(0x1cd));
- WFIFOW(fd, 0)=0x1cd;
+ int fd = sd->fd;
+#if PACKETVER_RE_NUM >= 20181031
+ // reserve space for 7 skills
+ WFIFOHEAD(fd, sizeof(struct PACKET_ZC_AUTOSPELLLIST) + 4 * 7);
+#else
+ WFIFOHEAD(fd, sizeof(struct PACKET_ZC_AUTOSPELLLIST));
+#endif
+ struct PACKET_ZC_AUTOSPELLLIST *p = WFIFOP(fd, 0);
+ memset(p, 0, sizeof(struct PACKET_ZC_AUTOSPELLLIST));
+ p->packetType = autoSpellList;
+ int index = 0;
- if(skill_lv>0 && pc->checkskill(sd,MG_NAPALMBEAT)>0)
- WFIFOL(fd,2)= MG_NAPALMBEAT;
- else
- WFIFOL(fd,2)= 0x00000000;
- if(skill_lv>1 && pc->checkskill(sd,MG_COLDBOLT)>0)
- WFIFOL(fd,6)= MG_COLDBOLT;
- else
- WFIFOL(fd,6)= 0x00000000;
- if(skill_lv>1 && pc->checkskill(sd,MG_FIREBOLT)>0)
- WFIFOL(fd,10)= MG_FIREBOLT;
- else
- WFIFOL(fd,10)= 0x00000000;
- if(skill_lv>1 && pc->checkskill(sd,MG_LIGHTNINGBOLT)>0)
- WFIFOL(fd,14)= MG_LIGHTNINGBOLT;
- else
- WFIFOL(fd,14)= 0x00000000;
- if(skill_lv>4 && pc->checkskill(sd,MG_SOULSTRIKE)>0)
- WFIFOL(fd,18)= MG_SOULSTRIKE;
- else
- WFIFOL(fd,18)= 0x00000000;
- if(skill_lv>7 && pc->checkskill(sd,MG_FIREBALL)>0)
- WFIFOL(fd,22)= MG_FIREBALL;
- else
- WFIFOL(fd,22)= 0x00000000;
- if(skill_lv>9 && pc->checkskill(sd,MG_FROSTDIVER)>0)
- WFIFOL(fd,26)= MG_FROSTDIVER;
- else
- WFIFOL(fd,26)= 0x00000000;
+ if (skill_lv > 0 && pc->checkskill(sd, MG_NAPALMBEAT) > 0)
+ p->skills[index++] = MG_NAPALMBEAT;
+ if (skill_lv > 1 && pc->checkskill(sd, MG_COLDBOLT) > 0)
+ p->skills[index++] = MG_COLDBOLT;
+ if (skill_lv > 1 && pc->checkskill(sd, MG_FIREBOLT) > 0)
+ p->skills[index++] = MG_FIREBOLT;
+ if (skill_lv > 1 && pc->checkskill(sd, MG_LIGHTNINGBOLT) > 0)
+ p->skills[index++] = MG_LIGHTNINGBOLT;
+ if (skill_lv > 4 && pc->checkskill(sd, MG_SOULSTRIKE) > 0)
+ p->skills[index++] = MG_SOULSTRIKE;
+ if (skill_lv > 7 && pc->checkskill(sd, MG_FIREBALL) > 0)
+ p->skills[index++] = MG_FIREBALL;
+ if (skill_lv > 9 && pc->checkskill(sd, MG_FROSTDIVER) > 0)
+ p->skills[index++] = MG_FROSTDIVER;
+
+#if PACKETVER_RE_NUM >= 20181031
+ const int len = sizeof(struct PACKET_ZC_AUTOSPELLLIST) + index * 4;
+ p->packetLength = len;
+#else
+ const int len = sizeof(struct PACKET_ZC_AUTOSPELLLIST);
+#endif
+ WFIFOSET(fd, len);
- WFIFOSET(fd,packet_len(0x1cd));
sd->menuskill_id = SA_AUTOSPELL;
sd->menuskill_val = skill_lv;
}
@@ -8872,7 +8871,7 @@ static void clif_specialeffect_value(struct block_list *bl, int effect_id, int n
/// @see doc/effect_list.txt
static void clif_removeSpecialEffect(struct block_list *bl, int effectId, enum send_target target)
{
-#if PACKETVER_MAIN_NUM >= 20181002 || PACKETVER_RE_NUM >= 20181002
+#if PACKETVER_MAIN_NUM >= 20181002 || PACKETVER_RE_NUM >= 20181002 || PACKETVER_ZERO_NUM >= 20181010
nullpo_retv(bl);
struct PACKET_ZC_REMOVE_EFFECT p;
@@ -8891,7 +8890,7 @@ static void clif_removeSpecialEffect(struct block_list *bl, int effectId, enum s
static void clif_removeSpecialEffect_single(struct block_list *bl, int effectId, struct block_list *targetBl)
{
-#if PACKETVER_MAIN_NUM >= 20181002 || PACKETVER_RE_NUM >= 20181002
+#if PACKETVER_MAIN_NUM >= 20181002 || PACKETVER_RE_NUM >= 20181002 || PACKETVER_ZERO_NUM >= 20181010
nullpo_retv(bl);
nullpo_retv(targetBl);
@@ -9672,7 +9671,9 @@ static void clif_msgtable_str_color(struct map_session_data *sd, enum clif_messa
p->PacketType = 0xa6f;
p->PacketLength = len;
p->messageId = msg_id;
+#if PACKETVER >= 20160406
p->color = color;
+#endif
safestrncpy(p->messageString, value, message_len);
p->messageString[message_len] = 0;
@@ -12342,7 +12343,7 @@ static void clif_parse_NpcSelectMenu(int fd, struct map_session_data *sd)
int npc_id = RFIFOL(fd,2);
uint8 select = RFIFOB(fd,6);
- if( (select > sd->npc_menu && select != 0xff) || select == 0 ) {
+ if( (select > sd->npc_menu && select != MAX_MENU_OPTIONS) || select == 0 ) {
#ifdef SECURE_NPCTIMEOUT
if( sd->npc_idle_timer != INVALID_TIMER ) {
#endif
@@ -16872,7 +16873,11 @@ static void clif_quest_send_list(struct map_session_data *sd)
real_len += sizeof(info->objectives[j]);
mob_data = mob->db(qi->objectives[j].mob);
-#if PACKETVER >= 20150513
+#if PACKETVER_ZERO_NUM >= 20181010 || PACKETVER >= 20181017
+ info->objectives[j].huntIdent = sd->quest_log[i].quest_id;
+ info->objectives[j].huntIdent2 = j;
+ info->objectives[j].mobType = 0; // Info Needed
+#elif PACKETVER >= 20150513
info->objectives[j].huntIdent = (sd->quest_log[i].quest_id * 1000) + j;
info->objectives[j].mobType = 0; // Info Needed
#endif
@@ -16961,7 +16966,11 @@ static void clif_quest_add(struct map_session_data *sd, struct quest *qd)
monster = mob->db(qi->objectives[i].mob);
-#if PACKETVER >= 20150513
+#if PACKETVER_ZERO_NUM >= 20181010 || PACKETVER >= 20181017
+ packet->objectives[i].huntIdent = qd->quest_id;
+ packet->objectives[i].huntIdent2 = i;
+ packet->objectives[i].mobType = 0; // Info Needed
+#elif PACKETVER >= 20150513
packet->objectives[i].huntIdent = (qd->quest_id * 1000) + i;
packet->objectives[i].mobType = 0; // Info Needed
#endif
@@ -17022,7 +17031,10 @@ static void clif_quest_update_objective(struct map_session_data *sd, struct ques
real_len += sizeof(packet->objectives[i]);
packet->objectives[i].questID = qd->quest_id;
-#if PACKETVER >= 20150513
+#if PACKETVER_ZERO_NUM >= 20181010 || PACKETVER >= 20181017
+ packet->objectives[i].huntIdent = qd->quest_id;
+ packet->objectives[i].huntIdent2 = i;
+#elif PACKETVER >= 20150513
packet->objectives[i].huntIdent = (qd->quest_id * 1000) + i;
#else
packet->objectives[i].mob_id = qi->objectives[i].mob;
@@ -18889,9 +18901,9 @@ static void clif_parse_dull(int fd, struct map_session_data *sd)
packet_len = RFIFOW(fd, 2);
}
if (sd) {
- ShowWarning("Unhandled packet 0x%04d (length %d), %s session #%d, %d/%d (AID/CID)\n", cmd, packet_len, sd->state.active ? "authed" : "unauthed", fd, sd->status.account_id, sd->status.char_id);
+ ShowWarning("Unhandled packet 0x%04X (length %d), %s session #%d, %d/%d (AID/CID)\n", (uint32)cmd, packet_len, sd->state.active ? "authed" : "unauthed", fd, sd->status.account_id, sd->status.char_id);
} else {
- ShowWarning("Unhandled packet 0x%04d (length %d), session #%d\n", cmd, packet_len, fd);
+ ShowWarning("Unhandled packet 0x%04X (length %d), session #%d\n", (uint32)cmd, packet_len, fd);
}
return;
}
@@ -21925,6 +21937,7 @@ static void clif_parse_memorial_dungeon_command(int fd, struct map_session_data
static void clif_camera_showWindow(struct map_session_data *sd)
{
#if PACKETVER >= 20160525
+ nullpo_retv(sd);
struct PACKET_ZC_CAMERA_INFO p;
p.packetType = 0xa78;
p.action = 1;
@@ -21938,6 +21951,7 @@ static void clif_camera_showWindow(struct map_session_data *sd)
static void clif_camera_change(struct map_session_data *sd, float range, float rotation, float latitude, enum send_target target)
{
#if PACKETVER >= 20160525
+ nullpo_retv(sd);
struct PACKET_ZC_CAMERA_INFO p;
p.packetType = 0xa78;
p.action = 0;
@@ -21948,6 +21962,26 @@ static void clif_camera_change(struct map_session_data *sd, float range, float r
#endif
}
+// show item preview in already opened preview window
+static void clif_item_preview(struct map_session_data *sd, int n)
+{
+#if PACKETVER_MAIN_NUM >= 20170726 || PACKETVER_RE_NUM >= 20170621 || defined(PACKETVER_ZERO)
+ nullpo_retv(sd);
+ Assert_retv(n >= 0 && n < MAX_INVENTORY);
+
+ struct PACKET_ZC_ITEM_PREVIEW p;
+ p.packetType = itemPreview;
+ p.index = n + 2;
+#if PACKETVER_MAIN_NUM >= 20181017 || PACKETVER_RE_NUM >= 20181017 || PACKETVER_ZERO_NUM >= 20181024
+ p.isDamaged = (sd->status.inventory[n].attribute & ATTR_BROKEN) != 0 ? 1 : 0;
+#endif
+ p.refiningLevel = sd->status.inventory[n].refine;
+ clif->addcards(&p.slot, &sd->status.inventory[n]);
+ clif->add_item_options(&p.option_data[0], &sd->status.inventory[n]);
+ clif->send(&p, sizeof(p), &sd->bl, SELF);
+#endif
+}
+
/*==========================================
* Main client packet processing function
*------------------------------------------*/
@@ -23114,6 +23148,7 @@ void clif_defaults(void)
clif->camera_showWindow = clif_camera_showWindow;
clif->camera_change = clif_camera_change;
+ clif->item_preview = clif_item_preview;
// -- Pet Evolution
clif->pPetEvolution = clif_parse_pet_evolution;
diff --git a/src/map/clif.h b/src/map/clif.h
index 13c34c77d..b76c5ed70 100644
--- a/src/map/clif.h
+++ b/src/map/clif.h
@@ -1554,6 +1554,7 @@ struct clif_interface {
void (*pMemorialDungeonCommand) (int fd, struct map_session_data *sd);
void (*camera_showWindow) (struct map_session_data *sd);
void (*camera_change) (struct map_session_data *sd, float range, float rotation, float latitude, enum send_target target);
+ void (*item_preview) (struct map_session_data *sd, int n);
};
#ifdef HERCULES_CORE
diff --git a/src/map/map.c b/src/map/map.c
index 343f219b8..a352d34b0 100644
--- a/src/map/map.c
+++ b/src/map/map.c
@@ -635,6 +635,18 @@ static int map_foreachinmap(int (*func)(struct block_list*, va_list), int16 m, i
return returnCount;
}
+static int map_forcountinmap(int (*func)(struct block_list*, va_list), int16 m, int count, int type, ...)
+{
+ int returnCount;
+ va_list ap;
+
+ va_start(ap, type);
+ returnCount = map->vforcountinarea(func, m, 0, 0, map->list[m].bxs, map->list[m].bys, count, type, ap);
+ va_end(ap);
+
+ return returnCount;
+}
+
/**
* Applies func to every block_list object of bl_type type on all maps
* of instance instance_id.
@@ -6901,6 +6913,7 @@ void map_defaults(void)
map->foreachinpath = map_foreachinpath;
map->vforeachinmap = map_vforeachinmap;
map->foreachinmap = map_foreachinmap;
+ map->forcountinmap = map_forcountinmap;
map->vforeachininstance = map_vforeachininstance;
map->foreachininstance = map_foreachininstance;
diff --git a/src/map/map.h b/src/map/map.h
index d50666d4b..0e38bdb13 100644
--- a/src/map/map.h
+++ b/src/map/map.h
@@ -815,6 +815,7 @@ struct questinfo {
struct s_homunculus homunculus;
int homunculus_type;
VECTOR_DECL(struct questinfo_qreq) quest_requirement;
+ int mercenary_class;
};
@@ -1292,6 +1293,7 @@ END_ZEROED_BLOCK;
int (*foreachinpath) (int (*func)(struct block_list*,va_list), int16 m, int16 x0, int16 y0, int16 x1, int16 y1, int16 range, int length, int type, ...);
int (*vforeachinmap) (int (*func)(struct block_list*,va_list), int16 m, int type, va_list args);
int (*foreachinmap) (int (*func)(struct block_list*,va_list), int16 m, int type, ...);
+ int (*forcountinmap) (int (*func)(struct block_list*,va_list), int16 m, int count, int type, ...);
int (*vforeachininstance)(int (*func)(struct block_list*,va_list), int16 instance_id, int type, va_list ap);
int (*foreachininstance)(int (*func)(struct block_list*,va_list), int16 instance_id, int type,...);
diff --git a/src/map/messages_main.h b/src/map/messages_main.h
index e56eb42a1..4bef783ec 100644
--- a/src/map/messages_main.h
+++ b/src/map/messages_main.h
@@ -3,6 +3,7 @@
* http://herc.ws - http://github.com/HerculesWS/Hercules
*
* Copyright (C) 2013-2018 Hercules Dev Team
+ * Copyright (C) 2018 Andrei Karas (4144)
*
* Hercules is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -23,7 +24,7 @@
/* This file is autogenerated, please do not commit manual changes
-Latest version: 20181002
+Latest version: 20181107
*/
enum clif_messages {
@@ -21325,6 +21326,92 @@ Search
*/
MSG_ID_DDD = 0xddd,
#endif
+#if PACKETVER >= 20181031
+/*20181031 to latest
+펫 먹이주기에 실패했습니다. 먹이를 줄 수 없는 상태입니다.
+*/
+ MSG_ID_DDE = 0xdde,
+/*20181031 to latest
+호문 먹이주기에 실패했습니다. 먹이를 줄 수 없는 상태입니다.
+*/
+ MSG_ID_DDF = 0xddf,
+/*20181031 to latest
+화폐
+*/
+ MSG_ID_DE0 = 0xde0,
+/*20181031 to latest
+%s %d개
+*/
+ MSG_ID_DE1 = 0xde1,
+/*20181031 to latest
+교환에 실패하였습니다.
+*/
+ MSG_ID_DE2 = 0xde2,
+/*20181031 to latest
+교환이 잘 이루어졌습니다.
+*/
+ MSG_ID_DE3 = 0xde3,
+/*20181031 to latest
+교환에 필요한 재화가 부족합니다.
+*/
+ MSG_ID_DE4 = 0xde4,
+/*20181031 to latest
+해당 아이템은 이미 판매되어 재고가 부족합니다.
+*/
+ MSG_ID_DE5 = 0xde5,
+/*20181031 to latest
+사망
+*/
+ MSG_ID_DE6 = 0xde6,
+/*20181031 to latest
+PvP
+*/
+ MSG_ID_DE7 = 0xde7,
+/*20181031 to latest
+아이템 소지 확장
+*/
+ MSG_ID_DE8 = 0xde8,
+/*20181031 to 20181031
+(^0000ff%s^000000)을 소모하여, 아이템 최대 소지 종류수를 확장하시겠습니까?
+(^0000ff%d^000000)에서 (^0000ff%d^000000)로 확장됩니다.
+^ff0000※ 소모된 아이템 및 확장된 최대 소지 종류수는 되돌릴 수 없습니다.^000000
+20181107 to latest
+^0000ff%s^000000을 소모하여, 아이템 최대 소지 종류수를 확장하시겠습니까?
+(^0000ff%d^000000)에서 (^0000ff%d^000000)로 확장됩니다.
+^ff0000※ 소모된 아이템 및 확장된 최대 소지 종류수는 되돌릴 수 없습니다.^000000
+*/
+ MSG_ID_DE9 = 0xde9,
+/*20181031 to 20181031
+아이템 소지 종류 수 확장에 실패하였습니다.
+20181107 to latest
+아이템 최대 소지 종류수 확장에 실패하였습니다.
+*/
+ MSG_ID_DEA = 0xdea,
+/*20181031 to 20181031
+아이템 소지 종류 수 확장을 위해, 다른 작업을 종료하여 주시기 바랍니다.
+20181107 to latest
+아이템 최대 소지 종류수 확장을 위해, 다른 작업을 종료하여 주시기 바랍니다.
+*/
+ MSG_ID_DEB = 0xdeb,
+/*20181031 to 20181031
+아이템 소지 확장에 필요한 아이템을 소지하고 있지 않습니다.
+20181107 to latest
+아이템 최대 소지 종류수 확장에 필요한 아이템을 소지하고 있지 않습니다.
+*/
+ MSG_ID_DEC = 0xdec,
+/*20181031 to 20181031
+이미 아이템 소지 종류 수 확장이 최대로 적용 중입니다.
+20181107 to latest
+더 이상 아이템 최대 소지 종류수를 확장 할 수 없습니다.
+*/
+ MSG_ID_DED = 0xded,
+/*20181031 to 20181031
+아이템 소지 확장에 성공하였습니다.
+20181107 to latest
+아이템 최대 소지 종류수 확장에 성공하였습니다.
+*/
+ MSG_ID_DEE = 0xdee,
+#endif
};
#endif /* MAP_MESSAGES_MAIN_H */
diff --git a/src/map/messages_re.h b/src/map/messages_re.h
index 474030df1..ee1a05b93 100644
--- a/src/map/messages_re.h
+++ b/src/map/messages_re.h
@@ -3,6 +3,7 @@
* http://herc.ws - http://github.com/HerculesWS/Hercules
*
* Copyright (C) 2013-2018 Hercules Dev Team
+ * Copyright (C) 2018 Andrei Karas (4144)
*
* Hercules is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -23,7 +24,7 @@
/* This file is autogenerated, please do not commit manual changes
-Latest version: 20181002
+Latest version: 20181107
*/
enum clif_messages {
@@ -20804,6 +20805,92 @@ Search
*/
MSG_ID_DDD = 0xddd,
#endif
+#if PACKETVER >= 20181031
+/*20181031 to latest
+펫 먹이주기에 실패했습니다. 먹이를 줄 수 없는 상태입니다.
+*/
+ MSG_ID_DDE = 0xdde,
+/*20181031 to latest
+호문 먹이주기에 실패했습니다. 먹이를 줄 수 없는 상태입니다.
+*/
+ MSG_ID_DDF = 0xddf,
+/*20181031 to latest
+화폐
+*/
+ MSG_ID_DE0 = 0xde0,
+/*20181031 to latest
+%s %d개
+*/
+ MSG_ID_DE1 = 0xde1,
+/*20181031 to latest
+교환에 실패하였습니다.
+*/
+ MSG_ID_DE2 = 0xde2,
+/*20181031 to latest
+교환이 잘 이루어졌습니다.
+*/
+ MSG_ID_DE3 = 0xde3,
+/*20181031 to latest
+교환에 필요한 재화가 부족합니다.
+*/
+ MSG_ID_DE4 = 0xde4,
+/*20181031 to latest
+해당 아이템은 이미 판매되어 재고가 부족합니다.
+*/
+ MSG_ID_DE5 = 0xde5,
+/*20181031 to latest
+사망
+*/
+ MSG_ID_DE6 = 0xde6,
+/*20181031 to latest
+PvP
+*/
+ MSG_ID_DE7 = 0xde7,
+/*20181031 to latest
+아이템 소지 확장
+*/
+ MSG_ID_DE8 = 0xde8,
+/*20181031 to 20181031
+(^0000ff%s^000000)을 소모하여, 아이템 최대 소지 종류수를 확장하시겠습니까?
+(^0000ff%d^000000)에서 (^0000ff%d^000000)로 확장됩니다.
+^ff0000※ 소모된 아이템 및 확장된 최대 소지 종류수는 되돌릴 수 없습니다.^000000
+20181107 to latest
+^0000ff%s^000000을 소모하여, 아이템 최대 소지 종류수를 확장하시겠습니까?
+(^0000ff%d^000000)에서 (^0000ff%d^000000)로 확장됩니다.
+^ff0000※ 소모된 아이템 및 확장된 최대 소지 종류수는 되돌릴 수 없습니다.^000000
+*/
+ MSG_ID_DE9 = 0xde9,
+/*20181031 to 20181031
+아이템 소지 종류 수 확장에 실패하였습니다.
+20181107 to latest
+아이템 최대 소지 종류수 확장에 실패하였습니다.
+*/
+ MSG_ID_DEA = 0xdea,
+/*20181031 to 20181031
+아이템 소지 종류 수 확장을 위해, 다른 작업을 종료하여 주시기 바랍니다.
+20181107 to latest
+아이템 최대 소지 종류수 확장을 위해, 다른 작업을 종료하여 주시기 바랍니다.
+*/
+ MSG_ID_DEB = 0xdeb,
+/*20181031 to 20181031
+아이템 소지 확장에 필요한 아이템을 소지하고 있지 않습니다.
+20181107 to latest
+아이템 최대 소지 종류수 확장에 필요한 아이템을 소지하고 있지 않습니다.
+*/
+ MSG_ID_DEC = 0xdec,
+/*20181031 to 20181031
+이미 아이템 소지 종류 수 확장이 최대로 적용 중입니다.
+20181107 to latest
+더 이상 아이템 최대 소지 종류수를 확장 할 수 없습니다.
+*/
+ MSG_ID_DED = 0xded,
+/*20181031 to 20181031
+아이템 소지 확장에 성공하였습니다.
+20181107 to latest
+아이템 최대 소지 종류수 확장에 성공하였습니다.
+*/
+ MSG_ID_DEE = 0xdee,
+#endif
};
#endif /* MAP_MESSAGES_RE_H */
diff --git a/src/map/messages_zero.h b/src/map/messages_zero.h
index c562bb07c..dc2f87a76 100644
--- a/src/map/messages_zero.h
+++ b/src/map/messages_zero.h
@@ -23,7 +23,7 @@
/* This file is autogenerated, please do not commit manual changes
-Latest version: 20180919
+Latest version: 20181024
*/
enum clif_messages {
@@ -13926,9 +13926,11 @@ DEATH : %.1f%% ( basic 100.0%% VIP Bonus %.1f%% + %s %.1f%%)
DEATH: %.1f%% (Basic 100.0%% VIP Bonus %.1f%% + %s %.1f%%)
*/
MSG_ID_AFB = 0xafb,
-/*20171018 to latest
+/*20171018 to 20180928
해당 태그는 이름으로 사용하실 수 없습니다.
Name with this tag cannot be used.
+20181010 to latest
+ 해당 내용은 이름으로 사용하실 수 없습니다.
*/
MSG_ID_AFC = 0xafc,
/*20171018 to latest
@@ -17420,6 +17422,48 @@ Search
*/
MSG_ID_DDD = 0xddd,
#endif
+#if PACKETVER >= 20181024
+/*20181024 to latest
+펫 먹이주기에 실패했습니다. 먹이를 줄 수 없는 상태입니다.
+*/
+ MSG_ID_DDE = 0xdde,
+/*20181024 to latest
+호문 먹이주기에 실패했습니다. 먹이를 줄 수 없는 상태입니다.
+*/
+ MSG_ID_DDF = 0xddf,
+/*20181024 to latest
+화폐
+*/
+ MSG_ID_DE0 = 0xde0,
+/*20181024 to latest
+%s %d개
+*/
+ MSG_ID_DE1 = 0xde1,
+/*20181024 to latest
+교환에 실패하였습니다.
+*/
+ MSG_ID_DE2 = 0xde2,
+/*20181024 to latest
+교환이 잘 이루어졌습니다.
+*/
+ MSG_ID_DE3 = 0xde3,
+/*20181024 to latest
+교환에 필요한 재화가 부족합니다.
+*/
+ MSG_ID_DE4 = 0xde4,
+/*20181024 to latest
+해당 아이템은 이미 판매되어 재고가 부족합니다.
+*/
+ MSG_ID_DE5 = 0xde5,
+/*20181024 to latest
+사망
+*/
+ MSG_ID_DE6 = 0xde6,
+/*20181024 to latest
+PvP
+*/
+ MSG_ID_DE7 = 0xde7,
+#endif
};
#endif /* MAP_MESSAGES_ZERO_H */
diff --git a/src/map/packets.h b/src/map/packets.h
index dc610ce2a..09c061920 100644
--- a/src/map/packets.h
+++ b/src/map/packets.h
@@ -4355,4 +4355,50 @@ packet(0x96e,-1,clif->ackmergeitems);
// changed packet sizes
#endif
+// 2018-10-10_2aRagexe_zero
+#if PACKETVER_ZERO_NUM >= 20181010
+// new packets
+ packet(0x0b10,10,clif->pDull/*,XXX*/);
+ packet(0x0b11,4,clif->pDull/*,XXX*/);
+// changed packet sizes
+#endif
+
+// 2018-10-17bRagexe
+#if PACKETVER_MAIN_NUM >= 20181017
+// new packets
+ packet(0x0b12,2,clif->pDull/*,XXX*/);
+ packet(0x0b13,40); // ZC_ITEM_PREVIEW
+// changed packet sizes
+#endif
+
+// 2018-10-17bRagexeRE
+#if PACKETVER_RE_NUM >= 20181017
+// new packets
+ packet(0x0b12,2,clif->pDull/*,XXX*/);
+ packet(0x0b13,48); // ZC_ITEM_PREVIEW
+// changed packet sizes
+#endif
+
+// 2018-10-24_2aRagexe_zero
+#if PACKETVER_ZERO_NUM >= 20181024
+// new packets
+ packet(0x0b12,2,clif->pDull/*,XXX*/);
+ packet(0x0b13,40); // ZC_ITEM_PREVIEW
+// changed packet sizes
+#endif
+
+#ifndef PACKETVER_ZERO
+// 2018-10-31aRagexe, 2018-10-31cRagexeRE
+#if PACKETVER >= 20181031
+// new packets
+ packet(0x0b14,2,clif->pDull/*,XXX*/);
+ packet(0x0b15,7,clif->pDull/*,XXX*/);
+ packet(0x0b16,2,clif->pDull/*,XXX*/);
+ packet(0x0b17,3,clif->pDull/*,XXX*/);
+ packet(0x0b18,4,clif->pDull/*,XXX*/);
+ packet(0x0b19,2,clif->pDull/*,XXX*/);
+// changed packet sizes
+#endif
+#endif // PACKETVER_ZERO
+
#endif /* MAP_PACKETS_H */
diff --git a/src/map/packets_keys_main.h b/src/map/packets_keys_main.h
index 03ece5d27..48a3c5d2b 100644
--- a/src/map/packets_keys_main.h
+++ b/src/map/packets_keys_main.h
@@ -3,6 +3,7 @@
* http://herc.ws - http://github.com/HerculesWS/Hercules
*
* Copyright (C) 2013-2018 Hercules Dev Team
+ * Copyright (C) 2018 Andrei Karas (4144)
*
* Hercules is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -33,71 +34,163 @@
#if PACKETVER == 20101123 || \
PACKETVER == 20101124 || \
PACKETVER == 20101126
- packetKeys(0x49357D72,0x22C370A1,0x5F836591);
+ 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
+#if PACKETVER == 20101123 || \
+ PACKETVER == 20101124 || \
+ PACKETVER == 20101125 || \
+ PACKETVER == 20101126 || \
+ PACKETVER == 20101130 || \
+ PACKETVER == 20101207 || \
+ PACKETVER == 20101214 || \
+ PACKETVER == 20101221 || \
+ PACKETVER == 20101223 || \
+ PACKETVER == 20101228 || \
+ PACKETVER == 20110104 || \
+ PACKETVER == 20110105 || \
+ PACKETVER == 20110111 || \
+ PACKETVER == 20110118 || \
+ PACKETVER == 20110125 || \
+ PACKETVER == 20110126 || \
+ PACKETVER == 20110131 || \
+ PACKETVER == 20110208 || \
+ PACKETVER == 20110215 || \
+ PACKETVER == 20110222 || \
+ PACKETVER == 20110223 || \
+ PACKETVER == 20110224 || \
+ PACKETVER == 20110225 || \
+ PACKETVER == 20110228 || \
+ PACKETVER == 20110308 || \
+ PACKETVER == 20110309 || \
+ PACKETVER == 20110315 || \
+ PACKETVER == 20110322 || \
+ PACKETVER == 20110329 || \
+ PACKETVER == 20110330 || \
+ PACKETVER == 20110405 || \
+ PACKETVER == 20110412 || \
+ PACKETVER == 20110419 || \
+ PACKETVER == 20110420 || \
+ PACKETVER == 20110426 || \
+ PACKETVER == 20110427 || \
+ PACKETVER == 20110503 || \
+ PACKETVER == 20110511 || \
+ PACKETVER == 20110517 || \
+ PACKETVER == 20110524 || \
+ PACKETVER == 20110526 || \
+ PACKETVER == 20110531 || \
+ PACKETVER == 20110607 || \
+ PACKETVER == 20110608 || \
+ PACKETVER == 20110609 || \
+ PACKETVER == 20110614 || \
+ PACKETVER == 20110622 || \
+ PACKETVER == 20110628 || \
+ PACKETVER == 20110706 || \
+ PACKETVER == 20110713 || \
+ PACKETVER == 20110719 || \
+ PACKETVER == 20110726 || \
+ PACKETVER == 20110803 || \
+ PACKETVER == 20110810 || \
+ PACKETVER == 20131223 || \
+ PACKETVER == 20140508 || \
+ PACKETVER == 20140611 || \
+ PACKETVER == 20150225 || \
+ PACKETVER == 20180315 || \
+ PACKETVER == 20180321 || \
+ PACKETVER == 20180328 || \
+ PACKETVER == 20180404 || \
+ PACKETVER == 20180418 || \
+ PACKETVER == 20180425 || \
+ PACKETVER == 20180502 || \
+ PACKETVER == 20180509 || \
+ PACKETVER == 20180516 || \
+ PACKETVER == 20180523 || \
+ PACKETVER == 20180530 || \
+ PACKETVER == 20180605 || \
+ PACKETVER == 20180612 || \
+ PACKETVER == 20180620 || \
+ PACKETVER == 20180621 || \
+ PACKETVER == 20180704 || \
+ PACKETVER == 20180711 || \
+ PACKETVER == 20180718 || \
+ PACKETVER == 20180801 || \
+ PACKETVER == 20180808 || \
+ PACKETVER == 20180822 || \
+ PACKETVER == 20180829 || \
+ PACKETVER == 20180831 || \
+ PACKETVER == 20180912 || \
+ PACKETVER == 20180919 || \
+ PACKETVER == 20181002 || \
+ PACKETVER == 20181017 || \
+ PACKETVER == 20181024 || \
+ PACKETVER == 20181031 || \
+ PACKETVER >= 20181107
+ packetKeys(0x00000000,0x00000000,0x00000000);
#endif
// 2010-11-30aRagexe
#if PACKETVER == 20101130
- packetKeys(0x3726593C,0x0EFD5EE8,0x79036DF9);
+ packetKeys(0x3726593c,0x0efd5ee8,0x79036df9);
#endif
// 2010-12-07bRagexe
#if PACKETVER == 20101207
- packetKeys(0x66111112,0x2B7B53AA,0x04E76DF8);
+ packetKeys(0x66111112,0x2b7b53aa,0x04e76df8);
#endif
// 2010-12-14aRagexe
#if PACKETVER == 20101214
- packetKeys(0x5E535D06,0x4E297F0E,0x400B6AD8);
+ packetKeys(0x5e535d06,0x4e297f0e,0x400b6ad8);
#endif
// 2010-12-21aRagexe
#if PACKETVER == 20101221
- packetKeys(0x0448466A,0x41554AC9,0x5B4710B2);
+ packetKeys(0x0448466a,0x41554ac9,0x5b4710b2);
#endif
// 2010-12-28aRagexe
#if PACKETVER == 20101228
- packetKeys(0x50C638A5,0x4BF86B20,0x480C3746);
+ packetKeys(0x50c638a5,0x4bf86b20,0x480c3746);
#endif
// 2011-01-04aRagexe
#if PACKETVER == 20110104
- packetKeys(0x55DB401F,0x047D4E02,0x6D8F2EA3);
+ packetKeys(0x55db401f,0x047d4e02,0x6d8f2ea3);
#endif
// 2011-01-11aRagexe
#if PACKETVER == 20110111
- packetKeys(0x2D5F6302,0x2A361CD6,0x39D661D6);
+ packetKeys(0x2d5f6302,0x2a361cd6,0x39d661d6);
#endif
// 2011-01-18aRagexe
#if PACKETVER == 20110118
- packetKeys(0x3C777D2D,0x00541A1D,0x5E0053A2);
+ packetKeys(0x3c777d2d,0x00541a1d,0x5e0053a2);
#endif
// 2011-01-25aRagexe, 2011-01-26aRagexe, 2011-01-26bRagexe, 2011-01-31aRagexe
#if PACKETVER == 20110125 || \
PACKETVER == 20110126 || \
PACKETVER == 20110131
- packetKeys(0x6BB84BB0,0x4C004382,0x10AE3260);
+ packetKeys(0x6bb84bb0,0x4c004382,0x10ae3260);
#endif
// 2011-01-31bRagexe, 2011-02-01aRagexe
#if PACKETVER == 20110131 || \
PACKETVER == 20110201
- packetKeys(0x68871E62,0x60D17266,0x74726DAA);
+ packetKeys(0x68871e62,0x60d17266,0x74726daa);
#endif
// 2011-02-08aRagexe, 2011-02-10aRagexe, 2011-02-10bRagexe
#if PACKETVER == 20110208 || \
PACKETVER == 20110210
- packetKeys(0x72BA4E9D,0x281E1DF1,0x208255AA);
+ packetKeys(0x72ba4e9d,0x281e1df1,0x208255aa);
#endif
// 2011-02-15aRagexe
#if PACKETVER == 20110215
- packetKeys(0x1B174D76,0x32005014,0x7B8B72D5);
+ packetKeys(0x1b174d76,0x32005014,0x7b8b72d5);
#endif
// 2011-02-22aRagexe, 2011-02-23aRagexe, 2011-02-23bRagexe, 2011-02-24aRagexe, 2011-02-25aRagexe, 2011-02-25bRagexe
@@ -105,70 +198,70 @@
PACKETVER == 20110223 || \
PACKETVER == 20110224 || \
PACKETVER == 20110225
- packetKeys(0x48F73B56,0x155F7D66,0x44AB57CE);
+ packetKeys(0x48f73b56,0x155f7d66,0x44ab57ce);
#endif
// 2011-02-28aRagexe
#if PACKETVER == 20110228
- packetKeys(0x26385EBF,0x7A8C7534,0x60AE2C34);
+ packetKeys(0x26385ebf,0x7a8c7534,0x60ae2c34);
#endif
// 2011-03-08aRagexe, 2011-03-09aRagexe, 2011-03-09bRagexe, 2011-03-09cRagexe, 2011-03-09dRagexe
#if PACKETVER == 20110308 || \
PACKETVER == 20110309
- packetKeys(0x003F1B20,0x7A1E12A3,0x34994AAD);
+ packetKeys(0x003f1b20,0x7a1e12a3,0x34994aad);
#endif
// 2011-03-15aRagexe, 2011-03-16aRagexe
#if PACKETVER == 20110315 || \
PACKETVER == 20110316
- packetKeys(0x62967D7D,0x34833D1A,0x26D45ECA);
+ packetKeys(0x62967d7d,0x34833d1a,0x26d45eca);
#endif
// 2011-03-22aRagexe
#if PACKETVER == 20110322
- packetKeys(0x5870617C,0x638D5376,0x739F4817);
+ packetKeys(0x5870617c,0x638d5376,0x739f4817);
#endif
// 2011-03-29aRagexe, 2011-03-30aRagexe
#if PACKETVER == 20110329 || \
PACKETVER == 20110330
- packetKeys(0x06900BB7,0x45DB687B,0x197B017B);
+ packetKeys(0x06900bb7,0x45db687b,0x197b017b);
#endif
// 2011-04-05aRagexe
#if PACKETVER == 20110405
- packetKeys(0x248D5C37,0x1C6A1B37,0x1F644FDB);
+ packetKeys(0x248d5c37,0x1c6a1b37,0x1f644fdb);
#endif
// 2011-04-12bRagexe
#if PACKETVER == 20110412
- packetKeys(0x3DE86BFC,0x0DD47F80,0x42481C9B);
+ packetKeys(0x3de86bfc,0x0dd47f80,0x42481c9b);
#endif
// 2011-04-19aRagexe
#if PACKETVER == 20110419
- packetKeys(0x26073204,0x62013A51,0x22AC58E0);
+ packetKeys(0x26073204,0x62013a51,0x22ac58e0);
#endif
// 2011-04-26aRagexe
#if PACKETVER == 20110426
- packetKeys(0x392813F9,0x09905054,0x40DB732E);
+ packetKeys(0x392813f9,0x09905054,0x40db732e);
#endif
// 2011-05-03aRagexe
#if PACKETVER == 20110503
- packetKeys(0x28BE32EE,0x1D506FCB,0x63832421);
+ packetKeys(0x28be32ee,0x1d506fcb,0x63832421);
#endif
// 2011-05-11aRagexe
#if PACKETVER == 20110511
- packetKeys(0x6A715733,0x3C5C0D74,0x408A48EC);
+ packetKeys(0x6a715733,0x3c5c0d74,0x408a48ec);
#endif
// 2011-05-17aRagexe
#if PACKETVER == 20110517
- packetKeys(0x07FE0C72,0x46766BAD,0x5EB5126A);
+ packetKeys(0x07fe0c72,0x46766bad,0x5eb5126a);
#endif
// 2011-05-23aRagexe, 2011-05-26bRagexe
@@ -179,323 +272,323 @@
// 2011-05-31aRagexe
#if PACKETVER == 20110531
- packetKeys(0x5ABA2C7C,0x3CD22073,0x78953988);
+ packetKeys(0x5aba2c7c,0x3cd22073,0x78953988);
#endif
// 2011-06-07aRagexe, 2011-06-08aRagexe, 2011-06-08bRagexe, 2011-06-08cRagexe, 2011-06-09aRagexe
#if PACKETVER == 20110607 || \
PACKETVER == 20110608 || \
PACKETVER == 20110609
- packetKeys(0x76B0426C,0x0DD74DEB,0x1F92228E);
+ packetKeys(0x76b0426c,0x0dd74deb,0x1f92228e);
#endif
// 2011-06-14aRagexe
#if PACKETVER == 20110614
- packetKeys(0x5749027B,0x71710972,0x5B096475);
+ packetKeys(0x5749027b,0x71710972,0x5b096475);
#endif
// 2011-06-20aRagexe
#if PACKETVER == 20110620
- packetKeys(0x3A1760D4,0x254E0DF9,0x440E2357);
+ packetKeys(0x3a1760d4,0x254e0df9,0x440e2357);
#endif
// 2011-06-27aRagexe
#if PACKETVER == 20110627
- packetKeys(0x3EFC29BD,0x699E4B11,0x7B900A13);
+ packetKeys(0x3efc29bd,0x699e4b11,0x7b900a13);
#endif
// 2011-07-05aRagexe
#if PACKETVER == 20110705
- packetKeys(0x48801A5E,0x68FC7726,0x081D7F6E);
+ packetKeys(0x48801a5e,0x68fc7726,0x081d7f6e);
#endif
// 2011-07-11bRagexe, 2011-07-13aRagexe, 2011-07-13bRagexe
#if PACKETVER == 20110711 || \
PACKETVER == 20110713
- packetKeys(0x489C544B,0x33BA1C25,0x2DE66E4E);
+ packetKeys(0x489c544b,0x33ba1c25,0x2de66e4e);
#endif
// 2011-07-18aRagexe
#if PACKETVER == 20110718
- packetKeys(0x08464674,0x1EEB3BD5,0x33395199);
+ packetKeys(0x08464674,0x1eeb3bd5,0x33395199);
#endif
// 2011-07-26aRagexe
#if PACKETVER == 20110726
- packetKeys(0x41E5730B,0x119C6C11,0x5356524A);
+ packetKeys(0x41e5730b,0x119c6c11,0x5356524a);
#endif
// 2011-08-02aRagexe
#if PACKETVER == 20110802
- packetKeys(0x607C08A1,0x65B20528,0x360571E9);
+ packetKeys(0x607c08a1,0x65b20528,0x360571e9);
#endif
// 2011-08-09aRagexe
#if PACKETVER == 20110809
- packetKeys(0x742A559A,0x047F425D,0x5C8C2CA0);
+ packetKeys(0x742a559a,0x047f425d,0x5c8c2ca0);
#endif
// 2011-08-16aRagexe, 2011-08-16aRagexeRE, 2011-08-17aRagexe, 2011-08-17aRagexeRE, 2011-08-17bRagexe, 2011-08-17bRagexeRE
#if PACKETVER == 20110816 || \
PACKETVER == 20110817
- packetKeys(0x053D5CED,0x3DED6DED,0x6DED6DED);
+ packetKeys(0x053d5ced,0x3ded6ded,0x6ded6ded);
#endif
// 2011-08-23aRagexe, 2011-08-23aRagexeRE, 2011-08-24aRagexe, 2011-08-24aRagexeRE, 2011-08-24bRagexeRE
#if PACKETVER == 20110823 || \
PACKETVER == 20110824
- packetKeys(0x35C91401,0x262A5556,0x28FA03AA);
+ packetKeys(0x35c91401,0x262a5556,0x28fa03aa);
#endif
// 2011-08-31aRagexe, 2011-08-31aRagexeRE, 2011-08-31bRagexe, 2011-08-31bRagexeRE, 2011-08-31cRagexe, 2011-08-31cRagexeRE, 2011-08-31dRagexeRE, 2011-08-31eRagexeRE
#if PACKETVER == 20110831
- packetKeys(0x3AD67ED0,0x44703C69,0x6F876809);
+ packetKeys(0x3ad67ed0,0x44703c69,0x6f876809);
#endif
// 2011-09-06aRagexe, 2011-09-06aRagexeRE, 2011-09-14aRagexe, 2011-09-14aRagexeRE
#if PACKETVER == 20110906 || \
PACKETVER == 20110914
- packetKeys(0x350124EC,0x39A14595,0x0DE56125);
+ packetKeys(0x350124ec,0x39a14595,0x0de56125);
#endif
// 2011-09-20aRagexe, 2011-09-20aRagexeRE, 2011-09-20aRagexeRE2
#if PACKETVER == 20110920
- packetKeys(0x79C91A12,0x20450CC0,0x584B2A38);
+ packetKeys(0x79c91a12,0x20450cc0,0x584b2a38);
#endif
// 2011-09-28aRagexe, 2011-09-28aRagexe-retry, 2011-09-28aRagexeRE, 2011-09-29aRagexe, 2011-09-29aRagexeRE
#if PACKETVER == 20110928 || \
PACKETVER == 20110929
- packetKeys(0x26567512,0x4B0732DF,0x57D266C6);
+ packetKeys(0x26567512,0x4b0732df,0x57d266c6);
#endif
// 2011-10-04aRagexe, 2011-10-04aRagexeRE, 2011-10-05aRagexe, 2011-10-05aRagexeRE
#if PACKETVER == 20111004 || \
PACKETVER == 20111005
- packetKeys(0x291E6762,0x77CD391A,0x60AC2F16);
+ packetKeys(0x291e6762,0x77cd391a,0x60ac2f16);
#endif
// 2011-10-10aRagexe, 2011-10-10bRagexeRE, 2011-10-12aRagexeRE, 2011-10-12bRagexe
#if PACKETVER == 20111010 || \
PACKETVER == 20111012
- packetKeys(0x7F3C2D29,0x59B01DE6,0x1DBB44CA);
+ packetKeys(0x7f3c2d29,0x59b01de6,0x1dbb44ca);
#endif
// 2011-10-17aRagexe, 2011-10-17aRagexeRE, 2011-10-19aRagexeRE, 2011-10-19bRagexeRE, 2011-10-21aRagexe, 2011-10-21aRagexeRE, 2011-10-21cRagexe
#if PACKETVER == 20111017 || \
PACKETVER == 20111019 || \
PACKETVER == 20111021
- packetKeys(0x357D55DC,0x5A8D759F,0x245C30F5);
+ packetKeys(0x357d55dc,0x5a8d759f,0x245c30f5);
#endif
// 2011-10-25aRagexe, 2011-10-25aRagexeRE
#if PACKETVER == 20111025
- packetKeys(0x50AE1A63,0x3CE579B5,0x29C10406);
+ packetKeys(0x50ae1a63,0x3ce579b5,0x29c10406);
#endif
// 2011-11-01cRagexe, 2011-11-01cRagexeRE, 2011-11-02aRagexe, 2011-11-02aRagexeRE
#if PACKETVER == 20111101 || \
PACKETVER == 20111102
- packetKeys(0x5324329D,0x5D545D52,0x06137269);
+ packetKeys(0x5324329d,0x5d545d52,0x06137269);
#endif
// 2011-11-08aRagexe, 2011-11-08aRagexeRE, 2011-11-09aRagexe, 2011-11-09aRagexeRE, 2011-11-09bRagexe, 2011-11-09cRagexe, 2011-11-09dRagexe, 2011-11-09eRagexe
#if PACKETVER == 20111108 || \
PACKETVER == 20111109
- packetKeys(0x0B642BDA,0x6ECB1D1C,0x61C7454B);
+ packetKeys(0x0b642bda,0x6ecb1d1c,0x61c7454b);
#endif
// 2011-11-14aRagexe, 2011-11-14aRagexeRE, 2011-11-16aRagexe, 2011-11-16aRagexeRE
#if PACKETVER == 20111114 || \
PACKETVER == 20111116
- packetKeys(0x419D0DB0,0x74916BF4,0x027371B4);
+ packetKeys(0x419d0db0,0x74916bf4,0x027371b4);
#endif
// 2011-11-22aRagexe, 2011-11-22aRagexeRE, 2011-11-23aRagexe
#if PACKETVER == 20111122 || \
PACKETVER == 20111123
- packetKeys(0x3B550F07,0x1F666C7C,0x60304EF5);
+ packetKeys(0x3b550f07,0x1f666c7c,0x60304ef5);
#endif
// 2011-12-07aRagexe, 2011-12-07aRagexeRE
#if PACKETVER == 20111207
- packetKeys(0x2A610886,0x3E09165E,0x57C11888);
+ packetKeys(0x2a610886,0x3e09165e,0x57c11888);
#endif
// 2011-12-13aRagexe, 2011-12-13aRagexeRE, 2011-12-14aRagexe, 2011-12-14aRagexeRE, 2011-12-14bRagexeRE, 2011-12-14cRagexeRE
#if PACKETVER == 20111213 || \
PACKETVER == 20111214
- packetKeys(0x5151306B,0x7AE32886,0x53060628);
+ packetKeys(0x5151306b,0x7ae32886,0x53060628);
#endif
// 2011-12-20bRagexe, 2011-12-20bRagexeRE
#if PACKETVER == 20111220
- packetKeys(0x05D53871,0x7D0027B4,0x29975333);
+ packetKeys(0x05d53871,0x7d0027b4,0x29975333);
#endif
// 2011-12-27aRagexe, 2011-12-27aRagexeRE, 2011-12-28aRagexe, 2011-12-28aRagexeRE
#if PACKETVER == 20111227 || \
PACKETVER == 20111228
- packetKeys(0x0FF87E93,0x6CFF7860,0x3A3D1DEC);
+ packetKeys(0x0ff87e93,0x6cff7860,0x3a3d1dec);
#endif
// 2012-01-03aRagexe, 2012-01-03bRagexeRE, 2012-01-04aRagexe, 2012-01-04aRagexeRE, 2012-01-04bRagexe
#if PACKETVER == 20120103 || \
PACKETVER == 20120104
- packetKeys(0x262034A1,0x674542A5,0x73A50BA5);
+ packetKeys(0x262034a1,0x674542a5,0x73a50ba5);
#endif
// 2012-01-10aRagexeRE, 2012-01-10bRagexe
#if PACKETVER == 20120110
- packetKeys(0x2B412AFC,0x4FF94487,0x6705339D);
+ packetKeys(0x2b412afc,0x4ff94487,0x6705339d);
#endif
// 2012-01-17aRagexe, 2012-01-17aRagexeRE, 2012-01-18aRagexe
#if PACKETVER == 20120117 || \
PACKETVER == 20120118
- packetKeys(0x24E32C2E,0x48DD17A5,0x64F8771A);
+ packetKeys(0x24e32c2e,0x48dd17a5,0x64f8771a);
#endif
// 2012-01-20aRagexe, 2012-01-20aRagexeRE
#if PACKETVER == 20120120
- packetKeys(0x504345D0,0x3D427B1B,0x794C2DCC);
+ packetKeys(0x504345d0,0x3d427b1b,0x794c2dcc);
#endif
// 2012-01-31aRagexe, 2012-01-31cRagexeRE, 2012-02-01aRagexeRE, 2012-02-02aRagexe, 2012-02-02aRagexeRE, 2012-02-02bRagexe, 2012-02-02bRagexeRE
#if PACKETVER == 20120131 || \
PACKETVER == 20120201 || \
PACKETVER == 20120202
- packetKeys(0x2CFC0A71,0x2BA91D8D,0x087E39E0);
+ packetKeys(0x2cfc0a71,0x2ba91d8d,0x087e39e0);
#endif
// 2012-02-07bRagexe, 2012-02-07bRagexeRE, 2012-02-08aRagexe, 2012-02-09aRagexe
#if PACKETVER == 20120207 || \
PACKETVER == 20120208 || \
PACKETVER == 20120209
- packetKeys(0x1D373F5D,0x5ACD604D,0x1C4D7C4D);
+ packetKeys(0x1d373f5d,0x5acd604d,0x1c4d7c4d);
#endif
// 2012-02-14bRagexe, 2012-02-14bRagexeRE, 2012-02-15aRagexe
#if PACKETVER == 20120214 || \
PACKETVER == 20120215
- packetKeys(0x7A255EFA,0x30977276,0x2D4A0448);
+ packetKeys(0x7a255efa,0x30977276,0x2d4a0448);
#endif
// 2012-02-21aRagexe, 2012-02-21aRagexeRE, 2012-02-22aRagexe, 2012-02-22aRagexeRE
#if PACKETVER == 20120221 || \
PACKETVER == 20120222
- packetKeys(0x1CA5130F,0x43ED240A,0x7FEA3BE0);
+ packetKeys(0x1ca5130f,0x43ed240a,0x7fea3be0);
#endif
// 2012-02-28bRagexe, 2012-02-28bRagexeRE, 2012-02-29aRagexe, 2012-02-29aRagexeRE
#if PACKETVER == 20120228 || \
PACKETVER == 20120229
- packetKeys(0x520B4C64,0x2800407D,0x47651458);
+ packetKeys(0x520b4c64,0x2800407d,0x47651458);
#endif
// 2012-03-07aRagexe, 2012-03-07aRagexeRE, 2012-03-07bRagexe, 2012-03-07bRagexeRE, 2012-03-07cRagexe, 2012-03-07cRagexeRE, 2012-03-07dRagexe, 2012-03-07dRagexeRE, 2012-03-07eRagexeRE, 2012-03-07fRagexeRE
#if PACKETVER == 20120307
- packetKeys(0x382A6DEF,0x5CBE7202,0x61F46637);
+ packetKeys(0x382a6def,0x5cbe7202,0x61f46637);
#endif
// 2012-03-14aRagexe, 2012-03-14aRagexeRE, 2012-03-14bRagexe, 2012-03-14bRagexeRE, 2012-03-14cRagexe, 2012-03-14cRagexeRE
#if PACKETVER == 20120314
- packetKeys(0x689C1729,0x11812639,0x60F82967);
+ packetKeys(0x689c1729,0x11812639,0x60f82967);
#endif
// 2012-03-20aRagexe, 2012-03-20aRagexeRE, 2012-03-21aRagexeRE
#if PACKETVER == 20120320 || \
PACKETVER == 20120321
- packetKeys(0x21F9683F,0x710C5CA5,0x1FD910E9);
+ packetKeys(0x21f9683f,0x710c5ca5,0x1fd910e9);
#endif
// 2012-03-28aRagexe, 2012-03-28aRagexeRE, 2012-03-28bRagexe, 2012-03-28bRagexeRE, 2012-03-28cRagexe, 2012-03-28cRagexeRE, 2012-03-28dRagexe, 2012-03-28dRagexeRE, 2012-03-28eRagexeRE, 2012-03-28fRagexeRE, 2012-03-28gRagexeRE
#if PACKETVER == 20120328
- packetKeys(0x75B8553B,0x37F20B12,0x385C2B40);
+ packetKeys(0x75b8553b,0x37f20b12,0x385c2b40);
#endif
// 2012-04-04aRagexe, 2012-04-04aRagexeRE
#if PACKETVER == 20120404
- packetKeys(0x0036310C,0x2DCD0BED,0x1EE62A78);
+ packetKeys(0x0036310c,0x2dcd0bed,0x1ee62a78);
#endif
// 2012-04-10aRagexe, 2012-04-10aRagexeRE
#if PACKETVER == 20120410
- packetKeys(0x01581359,0x452D6FFA,0x6AFB6E2E);
+ packetKeys(0x01581359,0x452d6ffa,0x6afb6e2e);
#endif
// 2012-04-17aRagexe, 2012-04-17aRagexeRE, 2012-04-18aRagexeRE
#if PACKETVER == 20120417 || \
PACKETVER == 20120418
- packetKeys(0x01540E48,0x13041224,0x31247924);
+ packetKeys(0x01540e48,0x13041224,0x31247924);
#endif
// 2012-04-24aRagexe, 2012-04-24aRagexeRE
#if PACKETVER == 20120424
- packetKeys(0x411D1DBB,0x4CBA4848,0x1A432FC4);
+ packetKeys(0x411d1dbb,0x4cba4848,0x1a432fc4);
#endif
// 2012-05-02aRagexeRE, 2012-05-03aRagexe, 2012-05-03aRagexeRE, 2012-05-03bRagexe
#if PACKETVER == 20120502 || \
PACKETVER == 20120503
- packetKeys(0x37A91D19,0x10190019,0x00190019);
+ packetKeys(0x37a91d19,0x10190019,0x00190019);
#endif
// 2012-05-08aRagexe, 2012-05-08aRagexeRE, 2012-05-09aRagexeRE, 2012-05-09bRagexeRE
#if PACKETVER == 20120508 || \
PACKETVER == 20120509
- packetKeys(0x16CF3301,0x1F472B9B,0x0B4A3CD2);
+ packetKeys(0x16cf3301,0x1f472b9b,0x0b4a3cd2);
#endif
// 2012-05-15aRagexe, 2012-05-15aRagexeRE
#if PACKETVER == 20120515
- packetKeys(0x4A715EF9,0x79103E4F,0x405C1238);
+ packetKeys(0x4a715ef9,0x79103e4f,0x405c1238);
#endif
// 2012-05-22aRagexe, 2012-05-23aRagexe, 2012-05-23aRagexeRE, 2012-05-23bRagexeRE, 2012-05-25aRagexeRE
#if PACKETVER == 20120522 || \
PACKETVER == 20120523 || \
PACKETVER == 20120525
- packetKeys(0x70EB4CCB,0x0487713C,0x398D4B08);
+ packetKeys(0x70eb4ccb,0x0487713c,0x398d4b08);
#endif
// 2012-05-29bRagexe, 2012-05-29bRagexeRE
#if PACKETVER == 20120529
- packetKeys(0x53415DDE,0x34953E16,0x27623DF2);
+ packetKeys(0x53415dde,0x34953e16,0x27623df2);
#endif
// 2012-06-01aRagexeRE, 2012-06-04aRagexe, 2012-06-05aRagexeRE
#if PACKETVER == 20120601 || \
PACKETVER == 20120604 || \
PACKETVER == 20120605
- packetKeys(0x68CA3080,0x31B74BDD,0x505208F1);
+ packetKeys(0x68ca3080,0x31b74bdd,0x505208f1);
#endif
// 2012-06-12aRagexe, 2012-06-12aRagexeRE
#if PACKETVER == 20120612
- packetKeys(0x32E45D64,0x35643564,0x35643564);
+ packetKeys(0x32e45d64,0x35643564,0x35643564);
#endif
// 2012-06-18aRagexe, 2012-06-18aRagexeRE
#if PACKETVER == 20120618
- packetKeys(0x261F261F,0x261F261F,0x261F261F);
+ packetKeys(0x261f261f,0x261f261f,0x261f261f);
#endif
// 2012-06-26aRagexe, 2012-06-26aRagexeRE, 2012-06-27aRagexe, 2012-06-27aRagexeRE
#if PACKETVER == 20120626 || \
PACKETVER == 20120627
- packetKeys(0x02277E66,0x045723F1,0x7107392C);
+ packetKeys(0x02277e66,0x045723f1,0x7107392c);
#endif
// 2012-07-02aRagexe, 2012-07-02aRagexeRE
#if PACKETVER == 20120702
- packetKeys(0x25733B31,0x53486CFD,0x398649BD);
+ packetKeys(0x25733b31,0x53486cfd,0x398649bd);
#endif
// 2012-07-10aRagexe, 2012-07-10aRagexeRE, 2012-07-12aRagexe, 2012-07-12aRagexeRE
#if PACKETVER == 20120710 || \
PACKETVER == 20120712
- packetKeys(0x0E8B7AFB,0x6930362D,0x42D33A57);
+ packetKeys(0x0e8b7afb,0x6930362d,0x42d33a57);
#endif
// 2012-07-16aRagexe, 2012-07-16aRagexeRE
@@ -505,487 +598,453 @@
// 2012-07-24aRagexe, 2012-07-24aRagexeRE
#if PACKETVER == 20120724
- packetKeys(0x783D5BC6,0x3AAC2176,0x66616F02);
+ packetKeys(0x783d5bc6,0x3aac2176,0x66616f02);
#endif
// 2012-08-01aRagexe, 2012-08-01aRagexeRE, 2012-08-01bRagexe, 2012-08-01bRagexeRE
#if PACKETVER == 20120801
- packetKeys(0x71FB6768,0x5843166B,0x6CB445C6);
+ packetKeys(0x71fb6768,0x5843166b,0x6cb445c6);
#endif
// 2012-08-08aRagexe, 2012-08-08aRagexeRE, 2012-08-08bRagexe, 2012-08-08bRagexeRE, 2012-08-08cRagexe, 2012-08-08cRagexeRE, 2012-08-08dRagexeRE
#if PACKETVER == 20120808
- packetKeys(0x5D5068BB,0x36732065,0x47CF7367);
+ packetKeys(0x5d5068bb,0x36732065,0x47cf7367);
#endif
// 2012-08-14aRagexe, 2012-08-14aRagexeRE, 2012-08-14bRagexe, 2012-08-14bRagexeRE
#if PACKETVER == 20120814
- packetKeys(0x203E21BD,0x047459FB,0x56AF5A97);
+ packetKeys(0x203e21bd,0x047459fb,0x56af5a97);
#endif
// 2012-08-22aRagexe, 2012-08-22aRagexeRE, 2012-08-22bRagexe, 2012-08-22bRagexeRE, 2012-08-22cRagexe, 2012-08-22cRagexeRE
#if PACKETVER == 20120822
- packetKeys(0x06A92E7B,0x3D324F29,0x5FD63004);
+ packetKeys(0x06a92e7b,0x3d324f29,0x5fd63004);
#endif
// 2012-08-30aRagexe, 2012-08-30aRagexeRE, 2012-08-30bRagexeRE
#if PACKETVER == 20120830
- packetKeys(0x0AF1363D,0x4AB33E3B,0x48421DBE);
+ packetKeys(0x0af1363d,0x4ab33e3b,0x48421dbe);
#endif
// 2012-09-05aRagexe, 2012-09-05aRagexeRE
#if PACKETVER == 20120905
- packetKeys(0x04F50D80,0x092F5C4D,0x29BF3DCF);
+ packetKeys(0x04f50d80,0x092f5c4d,0x29bf3dcf);
#endif
// 2012-09-11aRagexe, 2012-09-11aRagexeRE
#if PACKETVER == 20120911
- packetKeys(0x1F3D1145,0x02DB3C32,0x4BE34C49);
+ packetKeys(0x1f3d1145,0x02db3c32,0x4be34c49);
#endif
// 2012-09-19aRagexe, 2012-09-19aRagexeRE
#if PACKETVER == 20120919
- packetKeys(0x72E00F24,0x4EA02D80,0x7C803480);
+ packetKeys(0x72e00f24,0x4ea02d80,0x7c803480);
#endif
// 2012-09-25aRagexe, 2012-09-25aRagexeRE, 2012-09-26aRagexe, 2012-09-26aRagexeRE
#if PACKETVER == 20120925 || \
PACKETVER == 20120926
- packetKeys(0x43A66E22,0x36C2229F,0x08172ECE);
+ packetKeys(0x43a66e22,0x36c2229f,0x08172ece);
#endif
// 2012-10-10aRagexe, 2012-10-10aRagexeRE, 2012-10-10bRagexe, 2012-10-10bRagexeRE, 2012-10-11aRagexeRE
#if PACKETVER == 20121010 || \
PACKETVER == 20121011
- packetKeys(0x169733E2,0x4C4640DC,0x31636531);
+ packetKeys(0x169733e2,0x4c4640dc,0x31636531);
#endif
// 2012-10-17aRagexe, 2012-10-17aRagexeRE, 2012-10-17bRagexe, 2012-10-17bRagexeRE
#if PACKETVER == 20121017
- packetKeys(0x340C0C31,0x33205EA8,0x55964BFF);
+ packetKeys(0x340c0c31,0x33205ea8,0x55964bff);
#endif
// 2012-10-24aRagexe, 2012-10-24aRagexeRE
#if PACKETVER == 20121024
- packetKeys(0x6166335C,0x45393483,0x7EDC5478);
+ packetKeys(0x6166335c,0x45393483,0x7edc5478);
#endif
// 2012-10-31aRagexe, 2012-10-31aRagexeRE
#if PACKETVER == 20121031
- packetKeys(0x66EB7ADB,0x242864BB,0x354A4CDE);
+ packetKeys(0x66eb7adb,0x242864bb,0x354a4cde);
#endif
// 2012-11-07aRagexe, 2012-11-07aRagexeRE
#if PACKETVER == 20121107
- packetKeys(0x49967892,0x48025276,0x1E192CA3);
+ packetKeys(0x49967892,0x48025276,0x1e192ca3);
#endif
// 2012-11-14aRagexe, 2012-11-14aRagexeRE
#if PACKETVER == 20121114
- packetKeys(0x3473545C,0x2706445C,0x79647616);
+ packetKeys(0x3473545c,0x2706445c,0x79647616);
#endif
// 2012-11-21aRagexe, 2012-11-21aRagexeRE
#if PACKETVER == 20121121
- packetKeys(0x6EB54B0B,0x3F2A6BE5,0x0B2866E6);
+ packetKeys(0x6eb54b0b,0x3f2a6be5,0x0b2866e6);
#endif
// 2012-11-28aRagexe, 2012-11-28aRagexeRE
#if PACKETVER == 20121128
- packetKeys(0x146D4D5E,0x5C3D161B,0x759250B8);
+ packetKeys(0x146d4d5e,0x5c3d161b,0x759250b8);
#endif
// 2012-12-05aRagexe, 2012-12-05aRagexeRE, 2012-12-05bRagexe, 2012-12-05bRagexeRE
#if PACKETVER == 20121205
- packetKeys(0x218C64B6,0x4EFE17AE,0x27EA5E74);
+ packetKeys(0x218c64b6,0x4efe17ae,0x27ea5e74);
#endif
// 2012-12-12aRagexe, 2012-12-12aRagexeRE, 2012-12-12bRagexe, 2012-12-12bRagexeRE, 2012-12-12cRagexeRE
#if PACKETVER == 20121212
- packetKeys(0x7F8026F0,0x32EE2A4B,0x73746C0E);
+ packetKeys(0x7f8026f0,0x32ee2a4b,0x73746c0e);
#endif
// 2012-12-18aRagexe, 2012-12-18aRagexeRE, 2012-12-18bRagexe, 2012-12-18bRagexeRE
#if PACKETVER == 20121218
- packetKeys(0x6A5450A2,0x4322498A,0x2C6574FB);
+ packetKeys(0x6a5450a2,0x4322498a,0x2c6574fb);
#endif
// 2012-12-27aRagexe, 2012-12-27aRagexeRE
#if PACKETVER == 20121227
- packetKeys(0x71773018,0x36A14EEB,0x28CD5A20);
+ packetKeys(0x71773018,0x36a14eeb,0x28cd5a20);
#endif
// 2013-01-03aRagexe, 2013-01-03aRagexeRE, 2013-01-07aRagexe
#if PACKETVER == 20130103 || \
PACKETVER == 20130107
- packetKeys(0x1E1A559A,0x199A799A,0x799A799A);
+ packetKeys(0x1e1a559a,0x199a799a,0x799a799a);
#endif
// 2013-01-09aRagexe, 2013-01-09aRagexeRE
#if PACKETVER == 20130109
- packetKeys(0x6435360F,0x0A283678,0x64A04AC7);
+ packetKeys(0x6435360f,0x0a283678,0x64a04ac7);
#endif
// 2013-01-15aRagexeRE, 2013-01-15bRagexe, 2013-01-16aRagexe, 2013-01-16aRagexeRE, 2013-01-16bRagexe
#if PACKETVER == 20130115 || \
PACKETVER == 20130116
- packetKeys(0x273C25CD,0x06AA48AF,0x45A01BD4);
+ packetKeys(0x273c25cd,0x06aa48af,0x45a01bd4);
#endif
// 2013-01-21aRagexe, 2013-01-21aRagexeRE
#if PACKETVER == 20130121
- packetKeys(0x5DD874B0,0x7D98233F,0x28FF5566);
+ packetKeys(0x5dd874b0,0x7d98233f,0x28ff5566);
#endif
// 2013-01-30aRagexe, 2013-01-30aRagexeRE
#if PACKETVER == 20130130
- packetKeys(0x1EA57961,0x27786856,0x30301FA0);
+ packetKeys(0x1ea57961,0x27786856,0x30301fa0);
#endif
// 2013-02-06aRagexe, 2013-02-06aRagexeRE
#if PACKETVER == 20130206
- packetKeys(0x1D8F4227,0x675812AA,0x29132929);
+ packetKeys(0x1d8f4227,0x675812aa,0x29132929);
#endif
// 2013-02-15aRagexe, 2013-02-15aRagexeRE, 2013-02-15bRagexe
#if PACKETVER == 20130215
- packetKeys(0x69FB1C38,0x7D386860,0x62805311);
+ packetKeys(0x69fb1c38,0x7d386860,0x62805311);
#endif
// 2013-02-20aRagexe, 2013-02-20bRagexeRE
#if PACKETVER == 20130220
- packetKeys(0x0D555256,0x28C26722,0x72220A22);
+ packetKeys(0x0d555256,0x28c26722,0x72220a22);
#endif
// 2013-02-27aRagexe, 2013-02-27aRagexeRE
#if PACKETVER == 20130227
- packetKeys(0x44F86842,0x43786A7A,0x71654528);
+ packetKeys(0x44f86842,0x43786a7a,0x71654528);
#endif
// 2013-03-06aRagexe, 2013-03-06aRagexeRE, 2013-03-06bRagexeRE
#if PACKETVER == 20130306
- packetKeys(0x7E274326,0x7D182DF2,0x4FC27DFA);
+ packetKeys(0x7e274326,0x7d182df2,0x4fc27dfa);
#endif
// 2013-03-13aRagexe, 2013-03-13aRagexeRE, 2013-03-13bRagexeRE, 2013-03-13cRagexeRE
#if PACKETVER == 20130313
- packetKeys(0x560021C3,0x6A5D110F,0x52BD40A5);
+ packetKeys(0x560021c3,0x6a5d110f,0x52bd40a5);
#endif
// 2013-03-20bRagexeRE, 2013-03-20cRagexeRE, 2013-03-20dRagexe, 2013-03-20eRagexe
#if PACKETVER == 20130320
- packetKeys(0x3F094C49,0x55F86C1E,0x58AA359A);
+ packetKeys(0x3f094c49,0x55f86c1e,0x58aa359a);
#endif
// 2013-03-27bRagexe, 2013-03-27bRagexeRE
#if PACKETVER == 20130327
- packetKeys(0x114B1BA0,0x2C4F0AE2,0x5FA1183F);
+ packetKeys(0x114b1ba0,0x2c4f0ae2,0x5fa1183f);
#endif
// 2013-04-03aRagexe, 2013-04-03aRagexeRE
#if PACKETVER == 20130403
- packetKeys(0x424A43AE,0x4A9D5EBE,0x4B3518A9);
+ packetKeys(0x424a43ae,0x4a9d5ebe,0x4b3518a9);
#endif
// 2013-04-10aRagexe, 2013-04-10aRagexeRE
#if PACKETVER == 20130410
- packetKeys(0x3AD52ACA,0x314D1AED,0x086E415E);
+ packetKeys(0x3ad52aca,0x314d1aed,0x086e415e);
#endif
// 2013-04-17aRagexe, 2013-04-17aRagexeRE
#if PACKETVER == 20130417
- packetKeys(0x7FB13B83,0x6E003749,0x07A02B94);
+ packetKeys(0x7fb13b83,0x6e003749,0x07a02b94);
#endif
// 2013-04-24aRagexe, 2013-04-24aRagexeRE
#if PACKETVER == 20130424
- packetKeys(0x79F679F6,0x79F679F6,0x79F679F6);
+ packetKeys(0x79f679f6,0x79f679f6,0x79f679f6);
#endif
// 2013-05-02aRagexe, 2013-05-02aRagexeRE, 2013-05-02bRagexe
#if PACKETVER == 20130502
- packetKeys(0x62E733B9,0x62204281,0x7F044DCA);
+ packetKeys(0x62e733b9,0x62204281,0x7f044dca);
#endif
// 2013-05-08bRagexe, 2013-05-08bRagexeRE, 2013-05-08cRagexe, 2013-05-08dRagexe, 2013-05-08eRagexe, 2013-05-08fRagexe
#if PACKETVER == 20130508
- packetKeys(0x25421E49,0x175200BA,0x6C0B5239);
+ packetKeys(0x25421e49,0x175200ba,0x6c0b5239);
#endif
// 2013-05-15aRagexe, 2013-05-15aRagexeRE
#if PACKETVER == 20130515
- packetKeys(0x75794A38,0x58A96BC1,0x296E6FB8);
+ packetKeys(0x75794a38,0x58a96bc1,0x296e6fb8);
#endif
// 2013-05-22aRagexe, 2013-05-22aRagexeRE
#if PACKETVER == 20130522
- packetKeys(0x6948050B,0x06511D9D,0x725D4DF1);
+ packetKeys(0x6948050b,0x06511d9d,0x725d4df1);
#endif
// 2013-05-29aRagexe, 2013-05-29aRagexeRE
#if PACKETVER == 20130529
- packetKeys(0x023A6C87,0x14BF1F1E,0x5CC70CC9);
+ packetKeys(0x023a6c87,0x14bf1f1e,0x5cc70cc9);
#endif
// 2013-06-05aRagexe, 2013-06-05bRagexe, 2013-06-05cRagexeRE
#if PACKETVER == 20130605
- packetKeys(0x646E08D9,0x5F153AB5,0x61B509B5);
+ packetKeys(0x646e08d9,0x5f153ab5,0x61b509b5);
#endif
// 2013-06-12aRagexe, 2013-06-12bRagexe, 2013-06-12bRagexeRE, 2013-06-12cRagexe, 2013-06-12dRagexe, 2013-06-12eRagexe
#if PACKETVER == 20130612
- packetKeys(0x6D166F66,0x3C000FCF,0x295B0FCB);
+ packetKeys(0x6d166f66,0x3c000fcf,0x295b0fcb);
#endif
// 2013-06-18#1aRagexe, 2013-06-18#1aRagexeRE
#if PACKETVER == 20130618
- packetKeys(0x434115DE,0x34A10FE9,0x6791428E);
+ packetKeys(0x434115de,0x34a10fe9,0x6791428e);
#endif
// 2013-06-26_3bRagexeRE, 2013-06-26_3cRagexe, 2013-06-26aRagexeRE, 2013-06-26bRagexe
#if PACKETVER == 20130626
- packetKeys(0x38F453EF,0x6A040FD8,0x65BD6668);
+ packetKeys(0x38f453ef,0x6a040fd8,0x65bd6668);
#endif
// 2013-07-03aRagexe, 2013-07-03bRagexeRE
#if PACKETVER == 20130703
- packetKeys(0x4FF90E23,0x0F1432F2,0x4CFA1EDA);
+ packetKeys(0x4ff90e23,0x0f1432f2,0x4cfa1eda);
#endif
// 2013-07-10aRagexeRE, 2013-07-10bRagexe, 2013-07-10bRagexeRE, 2013-07-10cRagexeRE, 2013-07-10dRagexeRE, 2013-07-10eRagexeRE
#if PACKETVER == 20130710
- packetKeys(0x4A9C4237,0x4CCF3F8F,0x458F758F);
+ packetKeys(0x4a9c4237,0x4ccf3f8f,0x458f758f);
#endif
// 2013-07-17cRagexe, 2013-07-17cRagexeRE, 2013-07-17dRagexeRE, 2013-07-17eRagexeRE
#if PACKETVER == 20130717
- packetKeys(0x5EE5520C,0x5F9E00CF,0x2BED4F91);
+ packetKeys(0x5ee5520c,0x5f9e00cf,0x2bed4f91);
#endif
// 2013-07-24eRagexe, 2013-07-24eRagexeRE, 2013-07-24fRagexeRE
#if PACKETVER == 20130724
- packetKeys(0x3C243BF5,0x42CC4E2F,0x02106EC6);
+ packetKeys(0x3c243bf5,0x42cc4e2f,0x02106ec6);
#endif
// 2013-07-31cRagexe, 2013-07-31cRagexeRE
#if PACKETVER == 20130731
- packetKeys(0x1E9D11A6,0x21A232B8,0x6A9E02B7);
+ packetKeys(0x1e9d11a6,0x21a232b8,0x6a9e02b7);
#endif
// 2013-08-07aRagexe, 2013-08-07aRagexeRE
#if PACKETVER == 20130807
- packetKeys(0x7E241DE0,0x5E805580,0x3D807D80);
+ packetKeys(0x7e241de0,0x5e805580,0x3d807d80);
#endif
// 2013-08-14aRagexe, 2013-08-14aRagexeRE
#if PACKETVER == 20130814
- packetKeys(0x23A23148,0x0C41420E,0x53785AD7);
+ packetKeys(0x23a23148,0x0c41420e,0x53785ad7);
#endif
// 2013-08-21bRagexe, 2013-08-21dRagexeRE
#if PACKETVER == 20130821
- packetKeys(0x51673F38,0x01663512,0x5CFF0B3D);
+ packetKeys(0x51673f38,0x01663512,0x5cff0b3d);
#endif
// 2013-08-28bRagexe, 2013-08-28bRagexeRE, 2013-08-28cRagexe, 2013-08-28cRagexeRE
#if PACKETVER == 20130828
- packetKeys(0x02EF7A9A,0x4882042F,0x76796678);
+ packetKeys(0x02ef7a9a,0x4882042f,0x76796678);
#endif
// 2013-09-04aRagexe, 2013-09-04bRagexeRE
#if PACKETVER == 20130904
- packetKeys(0x41AF20C5,0x0997799E,0x4AE803A0);
+ packetKeys(0x41af20c5,0x0997799e,0x4ae803a0);
#endif
// 2013-09-11aRagexe, 2013-09-11aRagexeRE, 2013-09-11bRagexe, 2013-09-11bRagexeRE
#if PACKETVER == 20130911
- packetKeys(0x232B3F47,0x0AD0515F,0x1CA31828);
+ packetKeys(0x232b3f47,0x0ad0515f,0x1ca31828);
#endif
// 2013-09-17aRagexe, 2013-09-17aRagexeRE
#if PACKETVER == 20130917
- packetKeys(0x5C9164C5,0x32B62F83,0x52864548);
+ packetKeys(0x5c9164c5,0x32b62f83,0x52864548);
#endif
// 2013-09-25aRagexe, 2013-09-25aRagexeRE, 2013-09-25bRagexe, 2013-09-25bRagexeRE, 2013-09-25cRagexe
#if PACKETVER == 20130925
- packetKeys(0x4B9C279A,0x0C7849C4,0x72A77646);
+ packetKeys(0x4b9c279a,0x0c7849c4,0x72a77646);
#endif
// 2013-10-02aRagexe, 2013-10-02aRagexeRE
#if PACKETVER == 20131002
- packetKeys(0x63A466F7,0x635362F3,0x41F369F3);
+ packetKeys(0x63a466f7,0x635362f3,0x41f369f3);
#endif
// 2013-10-08aRagexe, 2013-10-08bRagexeRE
#if PACKETVER == 20131008
- packetKeys(0x64924AAD,0x08CA0445,0x1CBC36DE);
+ packetKeys(0x64924aad,0x08ca0445,0x1cbc36de);
#endif
// 2013-10-16aRagexe, 2013-10-16aRagexeRE, 2013-10-16bRagexe, 2013-10-16bRagexeRE
#if PACKETVER == 20131016
- packetKeys(0x33AD7A93,0x720C7C49,0x12C4205A);
+ packetKeys(0x33ad7a93,0x720c7c49,0x12c4205a);
#endif
// 2013-10-23aRagexe, 2013-10-23aRagexeRE
#if PACKETVER == 20131023
- packetKeys(0x02EF6163,0x2B774814,0x58EC3036);
+ packetKeys(0x02ef6163,0x2b774814,0x58ec3036);
#endif
// 2013-10-30aRagexe, 2013-10-30aRagexeRE
#if PACKETVER == 20131030
- packetKeys(0x4A6A3EFF,0x7E2D5237,0x01CA019E);
+ packetKeys(0x4a6a3eff,0x7e2d5237,0x01ca019e);
#endif
// 2013-11-06aRagexe, 2013-11-06aRagexeRE, 2013-11-07aRagexe, 2013-11-07bRagexe, 2013-11-07cRagexe, 2013-11-08aRagexe
#if PACKETVER == 20131106 || \
PACKETVER == 20131107 || \
PACKETVER == 20131108
- packetKeys(0x143E528F,0x5CA05899,0x44B85B23);
+ packetKeys(0x143e528f,0x5ca05899,0x44b85b23);
#endif
// 2013-11-13aRagexeRE, 2013-11-13bRagexe
#if PACKETVER == 20131113
- packetKeys(0x44EA14CD,0x49311C88,0x40C86C31);
+ packetKeys(0x44ea14cd,0x49311c88,0x40c86c31);
#endif
// 2013-11-20dRagexe, 2013-11-20eRagexeRE
#if PACKETVER == 20131120
- packetKeys(0x541E5172,0x1B1D30A0,0x28AA7CE5);
+ packetKeys(0x541e5172,0x1b1d30a0,0x28aa7ce5);
#endif
// 2013-11-27aRagexeRE, 2013-11-27bRagexe, 2013-11-27bRagexeRE
#if PACKETVER == 20131127
- packetKeys(0x21426A48,0x5C505D6A,0x046D06AD);
+ packetKeys(0x21426a48,0x5c505d6a,0x046d06ad);
#endif
// 2013-12-04dRagexeRE, 2013-12-04eRagexe, 2013-12-04eRagexeRE
#if PACKETVER == 20131204
- packetKeys(0x792760B2,0x5AF45387,0x36165603);
+ packetKeys(0x792760b2,0x5af45387,0x36165603);
#endif
// 2013-12-11cRagexe, 2013-12-11cRagexeRE, 2013-12-11dRagexe, 2013-12-11eRagexeRE
#if PACKETVER == 20131211
- packetKeys(0x55B0394E,0x4D341FF2,0x60BC1DC3);
+ packetKeys(0x55b0394e,0x4d341ff2,0x60bc1dc3);
#endif
// 2013-12-18aRagexeRE, 2013-12-18bRagexe
#if PACKETVER == 20131218
- packetKeys(0x6A596301,0x76866D0E,0x32294A45);
-#endif
-
-// 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
-#if PACKETVER == 20131223 || \
- PACKETVER == 20140508 || \
- PACKETVER == 20140611 || \
- PACKETVER == 20150225 || \
- PACKETVER == 20180315 || \
- PACKETVER == 20180321 || \
- PACKETVER == 20180328 || \
- PACKETVER == 20180404 || \
- PACKETVER == 20180418 || \
- PACKETVER == 20180425 || \
- PACKETVER == 20180502 || \
- PACKETVER == 20180509 || \
- PACKETVER == 20180516 || \
- PACKETVER == 20180523 || \
- PACKETVER == 20180530 || \
- PACKETVER == 20180605 || \
- PACKETVER == 20180612 || \
- PACKETVER == 20180620 || \
- PACKETVER == 20180621 || \
- PACKETVER == 20180704 || \
- PACKETVER == 20180711 || \
- PACKETVER == 20180718 || \
- PACKETVER == 20180801 || \
- PACKETVER == 20180808 || \
- PACKETVER == 20180822 || \
- PACKETVER == 20180829 || \
- PACKETVER == 20180831 || \
- PACKETVER == 20180912 || \
- PACKETVER == 20180919 || \
- PACKETVER >= 20181002
- packetKeys(0x00000000,0x00000000,0x00000000);
+ packetKeys(0x6a596301,0x76866d0e,0x32294a45);
#endif
// 2013-12-23bRagexe, 2013-12-23bRagexeRE, 2013-12-23cRagexe, 2013-12-23xRagexeRE
#if PACKETVER == 20131223
- packetKeys(0x631C511C,0x111C111C,0x111C111C);
+ packetKeys(0x631c511c,0x111c111c,0x111c111c);
#endif
// 2013-12-30aRagexe, 2013-12-30aRagexeRE
#if PACKETVER == 20131230
- packetKeys(0x611B7097,0x01F957A1,0x768A0FCB);
+ packetKeys(0x611b7097,0x01f957a1,0x768a0fcb);
#endif
// 2014-01-08bRagexeRE, 2014-01-08cRagexe, 2014-01-08cRagexeRE, 2014-01-08dRagexe
#if PACKETVER == 20140108
- packetKeys(0x4A1E26F2,0x231E7EFE,0x61FE19FE);
+ packetKeys(0x4a1e26f2,0x231e7efe,0x61fe19fe);
#endif
// 2014-01-15aRagexe, 2014-01-15bRagexe, 2014-01-15cRagexe, 2014-01-15cRagexeRE, 2014-01-15dRagexeRE, 2014-01-15eRagexe, 2014-01-15eRagexeRE
#if PACKETVER == 20140115
- packetKeys(0x63224335,0x0F3A1F27,0x6D217B24);
+ packetKeys(0x63224335,0x0f3a1f27,0x6d217b24);
#endif
// 2014-01-22aRagexe, 2014-01-22aRagexeRE
#if PACKETVER == 20140122
- packetKeys(0x6123177B,0x05B42C99,0x71702594);
+ packetKeys(0x6123177b,0x05b42c99,0x71702594);
#endif
// 2014-01-29aRagexe, 2014-01-29bRagexeRE, 2014-01-29cRagexe
#if PACKETVER == 20140129
- packetKeys(0x2E52163C,0x605E518B,0x3C7A62CB);
+ packetKeys(0x2e52163c,0x605e518b,0x3c7a62cb);
#endif
// 2014-02-05bRagexe, 2014-02-05bRagexeRE
#if PACKETVER == 20140205
- packetKeys(0x63DC7BDC,0x7BDC7BDC,0x7BDC7BDC);
+ packetKeys(0x63dc7bdc,0x7bdc7bdc,0x7bdc7bdc);
#endif
// 2014-02-12aRagexe, 2014-02-12aRagexeRE
#if PACKETVER == 20140212
- packetKeys(0x46837074,0x65292E89,0x77237F9C);
+ packetKeys(0x46837074,0x65292e89,0x77237f9c);
#endif
// 2014-02-19aRagexe, 2014-02-19aRagexeRE, 2014-02-19bRagexeRE
#if PACKETVER == 20140219
- packetKeys(0x4E3C5327,0x3A6B5469,0x2CE36AED);
+ packetKeys(0x4e3c5327,0x3a6b5469,0x2ce36aed);
#endif
// 2014-02-26aRagexe, 2014-02-26aRagexeRE, 2014-02-26bRagexeRE
#if PACKETVER == 20140226
- packetKeys(0x36D71056,0x52122F5E,0x6FF76E99);
+ packetKeys(0x36d71056,0x52122f5e,0x6ff76e99);
#endif
// 2014-03-05aRagexe, 2014-03-05aRagexeRE, 2014-03-05bRagexe, 2014-03-05bRagexeRE
#if PACKETVER == 20140305
- packetKeys(0x116763F2,0x41117DAC,0x7FD13C45);
+ packetKeys(0x116763f2,0x41117dac,0x7fd13c45);
#endif
// 2014-03-12bRagexeRE, 2014-03-12dRagexe
#if PACKETVER == 20140312
- packetKeys(0x48911E4E,0x58CB2EB3,0x05232619);
+ packetKeys(0x48911e4e,0x58cb2eb3,0x05232619);
#endif
// 2014-03-19aRagexe, 2014-03-19aRagexeRE
#if PACKETVER == 20140319
- packetKeys(0x3DA44383,0x1ABB165F,0x5B6846B9);
+ packetKeys(0x3da44383,0x1abb165f,0x5b6846b9);
#endif
// 2014-03-26aRagexe, 2014-03-26cRagexeRE
#if PACKETVER == 20140326
- packetKeys(0x68E72AF6,0x27DB4C3D,0x348F2677);
+ packetKeys(0x68e72af6,0x27db4c3d,0x348f2677);
#endif
// 2014-04-02eRagexeRE, 2014-04-02fRagexe, 2014-04-02fRagexeRE, 2014-04-02gRagexe
#if PACKETVER == 20140402
- packetKeys(0x15D3271C,0x004D725B,0x111A3A37);
+ packetKeys(0x15d3271c,0x004d725b,0x111a3a37);
#endif
// 2014-04-09aRagexe, 2014-04-09aRagexeRE, 2014-04-09bRagexe
#if PACKETVER == 20140409
- packetKeys(0x7F6C390F,0x139C254C,0x7F25708C);
+ packetKeys(0x7f6c390f,0x139c254c,0x7f25708c);
#endif
// 2014-04-16aRagexe, 2014-04-16aRagexeRE, 2014-04-16bRagexe
@@ -995,464 +1054,464 @@
// 2014-04-23aRagexe, 2014-04-23aRagexeRE
#if PACKETVER == 20140423
- packetKeys(0x7E0D6B56,0x74673CD3,0x2EBA4940);
+ packetKeys(0x7e0d6b56,0x74673cd3,0x2eba4940);
#endif
// 2014-04-30aRagexe, 2014-04-30aRagexeRE
#if PACKETVER == 20140430
- packetKeys(0x400145D8,0x3FE50155,0x11624F70);
+ packetKeys(0x400145d8,0x3fe50155,0x11624f70);
#endif
// 2014-05-08bRagexe, 2014-05-08bRagexeRE
#if PACKETVER == 20140508
- packetKeys(0x087E57EC,0x25224F4A,0x024F12C6);
+ packetKeys(0x087e57ec,0x25224f4a,0x024f12c6);
#endif
// 2014-05-14bRagexe, 2014-05-14bRagexeRE, 2014-05-14cRagexeRE
#if PACKETVER == 20140514
- packetKeys(0x4BE46730,0x047926E0,0x37773BBB);
+ packetKeys(0x4be46730,0x047926e0,0x37773bbb);
#endif
// 2014-05-21aRagexeRE, 2014-05-21bRagexe
#if PACKETVER == 20140521
- packetKeys(0x14ED2D86,0x17371C33,0x2D0473C8);
+ packetKeys(0x14ed2d86,0x17371c33,0x2d0473c8);
#endif
// 2014-05-28aRagexe, 2014-05-28aRagexeRE
#if PACKETVER == 20140528
- packetKeys(0x579445EB,0x26734878,0x7C861628);
+ packetKeys(0x579445eb,0x26734878,0x7c861628);
#endif
// 2014-06-05aRagexe, 2014-06-05aRagexeRE, 2014-06-05bRagexe
#if PACKETVER == 20140605
- packetKeys(0x5ABC4223,0x04DD2636,0x0D5850E0);
+ packetKeys(0x5abc4223,0x04dd2636,0x0d5850e0);
#endif
// 2014-06-11bRagexeRE, 2014-06-11cRagexe, 2014-06-11dRagexe, 2014-06-11hRagexe, 2014-06-12aRagexe, 2014-06-13aRagexe
#if PACKETVER == 20140611 || \
PACKETVER == 20140612 || \
PACKETVER == 20140613
- packetKeys(0x4FC83479,0x3AB04D1F,0x477B4010);
+ packetKeys(0x4fc83479,0x3ab04d1f,0x477b4010);
#endif
// 2014-06-18aRagexe, 2014-06-18cRagexeRE
#if PACKETVER == 20140618
- packetKeys(0x2DB507BB,0x11BA12E7,0x7F447760);
+ packetKeys(0x2db507bb,0x11ba12e7,0x7f447760);
#endif
// 2014-06-25aRagexe, 2014-06-25aRagexeRE, 2014-06-25bRagexe
#if PACKETVER == 20140625
- packetKeys(0x09987045,0x644B1051,0x1A091CB8);
+ packetKeys(0x09987045,0x644b1051,0x1a091cb8);
#endif
// 2014-07-02aRagexe, 2014-07-02aRagexeRE
#if PACKETVER == 20140702
- packetKeys(0x5C4574F4,0x5D446386,0x48BD24C9);
+ packetKeys(0x5c4574f4,0x5d446386,0x48bd24c9);
#endif
// 2014-07-09aRagexe, 2014-07-09aRagexeRE
#if PACKETVER == 20140709
- packetKeys(0x2C7A6E92,0x324F1B85,0x29916FC2);
+ packetKeys(0x2c7a6e92,0x324f1b85,0x29916fc2);
#endif
// 2014-07-16aRagexe, 2014-07-16aRagexeRE, 2014-07-16bRagexe, 2014-07-16cRagexe
#if PACKETVER == 20140716
- packetKeys(0x0EB20408,0x6D6C4292,0x4F6E4CF3);
+ packetKeys(0x0eb20408,0x6d6c4292,0x4f6e4cf3);
#endif
// 2014-07-23aRagexe, 2014-07-23aRagexeRE, 2014-07-23bRagexe, 2014-07-23bRagexeRE
#if PACKETVER == 20140723
- packetKeys(0x42A21713,0x51CE6EAD,0x102F7B0B);
+ packetKeys(0x42a21713,0x51ce6ead,0x102f7b0b);
#endif
// 2014-07-30aRagexe, 2014-07-30bRagexeRE
#if PACKETVER == 20140730
- packetKeys(0x63CE4E53,0x04F969A3,0x690954DB);
+ packetKeys(0x63ce4e53,0x04f969a3,0x690954db);
#endif
// 2014-08-06aRagexe, 2014-08-06aRagexeRE, 2014-08-06bRagexe
#if PACKETVER == 20140806
- packetKeys(0x0D5B69AC,0x3C001F20,0x0C201420);
+ packetKeys(0x0d5b69ac,0x3c001f20,0x0c201420);
#endif
// 2014-08-13aRagexe, 2014-08-13aRagexeRE, 2014-08-13bRagexe, 2014-08-14aRagexe
#if PACKETVER == 20140813 || \
PACKETVER == 20140814
- packetKeys(0x7AD51E0A,0x28C72C46,0x210205BD);
+ packetKeys(0x7ad51e0a,0x28c72c46,0x210205bd);
#endif
// 2014-08-20aRagexe, 2014-08-20aRagexeRE
#if PACKETVER == 20140820
- packetKeys(0x374F15D0,0x64C87DEC,0x65CE2A41);
+ packetKeys(0x374f15d0,0x64c87dec,0x65ce2a41);
#endif
// 2014-08-27aRagexe, 2014-08-27aRagexeRE
#if PACKETVER == 20140827
- packetKeys(0x53814CA2,0x27DE193E,0x503E683E);
+ packetKeys(0x53814ca2,0x27de193e,0x503e683e);
#endif
// 2014-09-03aRagexe, 2014-09-03aRagexeRE
#if PACKETVER == 20140903
- packetKeys(0x2F386F34,0x0F935365,0x76A43888);
+ packetKeys(0x2f386f34,0x0f935365,0x76a43888);
#endif
// 2014-09-17aRagexe, 2014-09-17cRagexeRE
#if PACKETVER == 20140917
- packetKeys(0x180118EA,0x440134CF,0x3A99179D);
+ packetKeys(0x180118ea,0x440134cf,0x3a99179d);
#endif
// 2014-09-24bRagexeRE, 2014-09-24cRagexe, 2014-09-24cRagexeRE
#if PACKETVER == 20140924
- packetKeys(0x6F5222D8,0x593B798C,0x4CBD655E);
+ packetKeys(0x6f5222d8,0x593b798c,0x4cbd655e);
#endif
// 2014-10-01aRagexe, 2014-10-01bRagexeRE, 2014-10-01cRagexeRE
#if PACKETVER == 20141001
- packetKeys(0x6D882C11,0x7DF959E2,0x4F3F60E8);
+ packetKeys(0x6d882c11,0x7df959e2,0x4f3f60e8);
#endif
// 2014-10-08aRagexe, 2014-10-08bRagexe, 2014-10-08bRagexeRE, 2014-10-08cRagexe, 2014-10-08cRagexeRE, 2014-10-08dRagexe
#if PACKETVER == 20141008
- packetKeys(0x754365B3,0x36B326B3,0x26B326B3);
+ packetKeys(0x754365b3,0x36b326b3,0x26b326b3);
#endif
// 2014-10-15bRagexe, 2014-10-15bRagexeRE, 2014-10-15cRagexe, 2014-10-15dRagexe, 2014-10-16aRagexe, 2014-10-16aRagexeRE
#if PACKETVER == 20141015 || \
PACKETVER == 20141016
- packetKeys(0x2DFF467C,0x444B37EE,0x2C1B634F);
+ packetKeys(0x2dff467c,0x444b37ee,0x2c1b634f);
#endif
// 2014-10-22aRagexeRE, 2014-10-22bRagexe
#if PACKETVER == 20141022
- packetKeys(0x290551EA,0x2B952C75,0x2D67669B);
+ packetKeys(0x290551ea,0x2b952c75,0x2d67669b);
#endif
// 2014-10-29aRagexe, 2014-10-29aRagexeRE
#if PACKETVER == 20141029
- packetKeys(0x1AFD581D,0x2E1D4E1D,0x4E1D4E1D);
+ packetKeys(0x1afd581d,0x2e1d4e1d,0x4e1d4e1d);
#endif
// 2014-11-05aRagexe, 2014-11-05aRagexeRE, 2014-11-05bRagexe, 2014-11-05bRagexeRE
#if PACKETVER == 20141105
- packetKeys(0x7F310819,0x5FF45401,0x2D303DD9);
+ packetKeys(0x7f310819,0x5ff45401,0x2d303dd9);
#endif
// 2014-11-12aRagexeRE, 2014-11-12cRagexe, 2014-11-12dRagexe
#if PACKETVER == 20141112
- packetKeys(0x430C0C27,0x067153CF,0x5E5439A9);
+ packetKeys(0x430c0c27,0x067153cf,0x5e5439a9);
#endif
// 2014-11-19bRagexeRE, 2014-11-19dRagexe
#if PACKETVER == 20141119
- packetKeys(0x7A7E7EDE,0x24EB02E3,0x71603607);
+ packetKeys(0x7a7e7ede,0x24eb02e3,0x71603607);
#endif
// 2014-11-26aRagexe, 2014-11-26aRagexeRE, 2014-11-26bRagexe, 2014-11-26bRagexeRE, 2014-11-26cRagexe, 2014-11-26cRagexeRE, 2014-11-26dRagexe, 2014-11-26dRagexeRE, 2014-11-26eRagexeRE
#if PACKETVER == 20141126
- packetKeys(0x01E14C42,0x56D73044,0x4B3278DF);
+ packetKeys(0x01e14c42,0x56d73044,0x4b3278df);
#endif
// 2014-12-03aRagexe, 2014-12-03aRagexeRE
#if PACKETVER == 20141203
- packetKeys(0x66CB52E4,0x1EB84093,0x33563E18);
+ packetKeys(0x66cb52e4,0x1eb84093,0x33563e18);
#endif
// 2014-12-10bRagexe, 2014-12-10cRagexe, 2014-12-10cRagexeRE
#if PACKETVER == 20141210
- packetKeys(0x0B0B1DD3,0x26EF1797,0x4F40370B);
+ packetKeys(0x0b0b1dd3,0x26ef1797,0x4f40370b);
#endif
// 2014-12-17aRagexe, 2014-12-17aRagexeRE
#if PACKETVER == 20141217
- packetKeys(0x01AB478C,0x0FDE58F2,0x1DAC7303);
+ packetKeys(0x01ab478c,0x0fde58f2,0x1dac7303);
#endif
// 2014-12-23cRagexeRE, 2014-12-24aRagexe
#if PACKETVER == 20141223 || \
PACKETVER == 20141224
- packetKeys(0x2E8936E6,0x34463C46,0x67CD3885);
+ packetKeys(0x2e8936e6,0x34463c46,0x67cd3885);
#endif
// 2014-12-31aRagexe, 2014-12-31aRagexeRE
#if PACKETVER == 20141231
- packetKeys(0x154C347E,0x54B26512,0x52126A12);
+ packetKeys(0x154c347e,0x54b26512,0x52126a12);
#endif
// 2015-01-07aRagexe, 2015-01-07aRagexeRE
#if PACKETVER == 20150107
- packetKeys(0x6C494A14,0x4DDB6427,0x3E6D7B65);
+ packetKeys(0x6c494a14,0x4ddb6427,0x3e6d7b65);
#endif
// 2015-01-14aRagexe, 2015-01-14aRagexeRE, 2015-01-14bRagexe, 2015-01-14cRagexe, 2015-01-14dRagexe
#if PACKETVER == 20150114
- packetKeys(0x21C96102,0x13142934,0x1ABF4EA3);
+ packetKeys(0x21c96102,0x13142934,0x1abf4ea3);
#endif
// 2015-01-21aRagexe, 2015-01-21aRagexeRE, 2015-01-21bRagexeRE
#if PACKETVER == 20150121
- packetKeys(0x0B9D2AF5,0x658A3346,0x379E3654);
+ packetKeys(0x0b9d2af5,0x658a3346,0x379e3654);
#endif
// 2015-01-28aRagexe, 2015-01-28aRagexeRE, 2015-01-29aRagexe, 2015-01-30aRagexe
#if PACKETVER == 20150128 || \
PACKETVER == 20150129 || \
PACKETVER == 20150130
- packetKeys(0x77CA2D55,0x28B608F0,0x75B47957);
+ packetKeys(0x77ca2d55,0x28b608f0,0x75b47957);
#endif
// 2015-02-04aRagexe, 2015-02-04cRagexeRE
#if PACKETVER == 20150204
- packetKeys(0x134529DB,0x5B4F6CEF,0x29EF11EF);
+ packetKeys(0x134529db,0x5b4f6cef,0x29ef11ef);
#endif
// 2015-02-11aRagexe, 2015-02-11aRagexeRE
#if PACKETVER == 20150211
- packetKeys(0x33911A25,0x1E6945FD,0x7385623A);
+ packetKeys(0x33911a25,0x1e6945fd,0x7385623a);
#endif
// 2015-02-17aRagexe, 2015-02-17aRagexeRE
#if PACKETVER == 20150217
- packetKeys(0x731B731B,0x731B731B,0x731B731B);
+ packetKeys(0x731b731b,0x731b731b,0x731b731b);
#endif
// 2015-02-25aRagexeRE, 2015-02-25bRagexeRE, 2015-02-25cRagexeRE, 2015-02-25dRagexeRE, 2015-02-25eRagexe, 2015-02-25eRagexeRE, 2015-02-25fRagexe, 2015-02-25gRagexe, 2015-02-25iRagexe, 2015-02-25jRagexe, 2015-02-26aRagexe, 2015-02-26aRagexeRE
#if PACKETVER == 20150225 || \
PACKETVER == 20150226
- packetKeys(0x57FD4B7B,0x19CC16FB,0x0D255D72);
+ packetKeys(0x57fd4b7b,0x19cc16fb,0x0d255d72);
#endif
// 2015-03-04aRagexe, 2015-03-04aRagexeRE, 2015-03-04bRagexeRE
#if PACKETVER == 20150304
- packetKeys(0x1A657B1C,0x7E1806E7,0x55396A5C);
+ packetKeys(0x1a657b1c,0x7e1806e7,0x55396a5c);
#endif
// 2015-03-11aRagexe, 2015-03-11aRagexeRE, 2015-03-11bRagexe, 2015-03-11bRagexeRE
#if PACKETVER == 20150311
- packetKeys(0x48C45D97,0x06CE09B0,0x5836642F);
+ packetKeys(0x48c45d97,0x06ce09b0,0x5836642f);
#endif
// 2015-03-18aRagexe, 2015-03-18aRagexeRE, 2015-03-18bRagexe, 2015-03-18bRagexeRE, 2015-03-18cRagexeRE
#if PACKETVER == 20150318
- packetKeys(0x1B3738E7,0x0AD4238F,0x7D252A1F);
+ packetKeys(0x1b3738e7,0x0ad4238f,0x7d252a1f);
#endif
// 2015-03-25aRagexe, 2015-03-25bRagexeRE, 2015-03-25cRagexeRE
#if PACKETVER == 20150325
- packetKeys(0x68F62B8C,0x337C3468,0x38FC0AC7);
+ packetKeys(0x68f62b8c,0x337c3468,0x38fc0ac7);
#endif
// 2015-04-01aRagexe, 2015-04-01bRagexeRE
#if PACKETVER == 20150401
- packetKeys(0x207F3A08,0x57E6160C,0x02A60382);
+ packetKeys(0x207f3a08,0x57e6160c,0x02a60382);
#endif
// 2015-04-08aRagexe, 2015-04-08aRagexeRE
#if PACKETVER == 20150408
- packetKeys(0x39812C9D,0x23DA516E,0x59A33DD2);
+ packetKeys(0x39812c9d,0x23da516e,0x59a33dd2);
#endif
// 2015-04-15aRagexe, 2015-04-15aRagexeRE
#if PACKETVER == 20150415
- packetKeys(0x7EC44F6A,0x7DE57139,0x60DA5436);
+ packetKeys(0x7ec44f6a,0x7de57139,0x60da5436);
#endif
// 2015-04-22aRagexe, 2015-04-22aRagexeRE
#if PACKETVER == 20150422
- packetKeys(0x10D22CE2,0x69E279E2,0x79E279E2);
+ packetKeys(0x10d22ce2,0x69e279e2,0x79e279e2);
#endif
// 2015-04-29aRagexe, 2015-04-29aRagexeRE
#if PACKETVER == 20150429
- packetKeys(0x2BF61A71,0x565D5DDF,0x0FB90019);
+ packetKeys(0x2bf61a71,0x565d5ddf,0x0fb90019);
#endif
// 2015-05-07bRagexe, 2015-05-07bRagexeRE, 2015-05-07cRagexe
#if PACKETVER == 20150507
- packetKeys(0x55B54373,0x58967821,0x67F41832);
+ packetKeys(0x55b54373,0x58967821,0x67f41832);
#endif
// 2015-05-13aRagexe, 2015-05-13aRagexeRE
#if PACKETVER == 20150513
- packetKeys(0x62C86D09,0x75944F17,0x112C133D);
+ packetKeys(0x62c86d09,0x75944f17,0x112c133d);
#endif
// 2015-05-20aRagexe, 2015-05-20aRagexeRE
#if PACKETVER == 20150520
- packetKeys(0x17430238,0x44DE585F,0x56A40616);
+ packetKeys(0x17430238,0x44de585f,0x56a40616);
#endif
// 2015-05-27aRagexe, 2015-05-27aRagexeRE
#if PACKETVER == 20150527
- packetKeys(0x35AE7BAE,0x3BAE3BAE,0x3BAE3BAE);
+ packetKeys(0x35ae7bae,0x3bae3bae,0x3bae3bae);
#endif
// 2015-06-03aRagexe, 2015-06-03bRagexeRE
#if PACKETVER == 20150603
- packetKeys(0x1DDD245D,0x309446E0,0x58E53F1F);
+ packetKeys(0x1ddd245d,0x309446e0,0x58e53f1f);
#endif
// 2015-06-10aRagexe, 2015-06-10aRagexeRE
#if PACKETVER == 20150610
- packetKeys(0x2FC406D3,0x7B3E32F5,0x02B80B47);
+ packetKeys(0x2fc406d3,0x7b3e32f5,0x02b80b47);
#endif
// 2015-06-17aRagexe, 2015-06-17aRagexeRE, 2015-06-18aRagexe, 2015-06-18aRagexeRE
#if PACKETVER == 20150617 || \
PACKETVER == 20150618
- packetKeys(0x250F7E09,0x25416076,0x029A780E);
+ packetKeys(0x250f7e09,0x25416076,0x029a780e);
#endif
// 2015-06-24aRagexe, 2015-06-24aRagexeRE
#if PACKETVER == 20150624
- packetKeys(0x440B0E24,0x1BEA7A4C,0x2C646784);
+ packetKeys(0x440b0e24,0x1bea7a4c,0x2c646784);
#endif
// 2015-07-01bRagexe, 2015-07-01bRagexeRE, 2015-07-02aRagexe
#if PACKETVER == 20150701 || \
PACKETVER == 20150702
- packetKeys(0x4DD55F9B,0x70C67B03,0x78C60DB6);
+ packetKeys(0x4dd55f9b,0x70c67b03,0x78c60db6);
#endif
// 2015-07-08bRagexeRE, 2015-07-08cRagexe, 2015-07-08cRagexeRE, 2015-07-08dRagexeRE
#if PACKETVER == 20150708
- packetKeys(0x451C5E19,0x5661750B,0x2F4644AC);
+ packetKeys(0x451c5e19,0x5661750b,0x2f4644ac);
#endif
// 2015-07-15aRagexe, 2015-07-15aRagexeRE
#if PACKETVER == 20150715
- packetKeys(0x1F805483,0x67745585,0x7FCE189C);
+ packetKeys(0x1f805483,0x67745585,0x7fce189c);
#endif
// 2015-07-22bRagexe, 2015-07-22bRagexeRE
#if PACKETVER == 20150722
- packetKeys(0x41FA53D4,0x2CF044E2,0x663A3F1D);
+ packetKeys(0x41fa53d4,0x2cf044e2,0x663a3f1d);
#endif
// 2015-07-29aRagexe, 2015-07-29aRagexeRE
#if PACKETVER == 20150729
- packetKeys(0x08EE40A9,0x206F3D7F,0x0AE37339);
+ packetKeys(0x08ee40a9,0x206f3d7f,0x0ae37339);
#endif
// 2015-08-05aRagexe, 2015-08-05dRagexeRE
#if PACKETVER == 20150805
- packetKeys(0x1C3F243F,0x243F243F,0x243F243F);
+ packetKeys(0x1c3f243f,0x243f243f,0x243f243f);
#endif
// 2015-08-12aRagexe, 2015-08-12aRagexeRE
#if PACKETVER == 20150812
- packetKeys(0x0B6F64A8,0x5BCC47EC,0x00EC08EC);
+ packetKeys(0x0b6f64a8,0x5bcc47ec,0x00ec08ec);
#endif
// 2015-08-19aRagexe, 2015-08-19aRagexeRE, 2015-08-19bRagexeRE
#if PACKETVER == 20150819
- packetKeys(0x1A2400E0,0x736E5686,0x10F315D5);
+ packetKeys(0x1a2400e0,0x736e5686,0x10f315d5);
#endif
// 2015-08-26aRagexe, 2015-08-26aRagexeRE, 2015-08-26bRagexe, 2015-08-26bRagexeRE
#if PACKETVER == 20150826
- packetKeys(0x77883C56,0x1829359F,0x0DE635B6);
+ packetKeys(0x77883c56,0x1829359f,0x0de635b6);
#endif
// 2015-09-02aRagexe, 2015-09-02aRagexeRE
#if PACKETVER == 20150902
- packetKeys(0x4EDB18C1,0x6B9355BA,0x38AA6239);
+ packetKeys(0x4edb18c1,0x6b9355ba,0x38aa6239);
#endif
// 2015-09-09aRagexe, 2015-09-09aRagexeRE
#if PACKETVER == 20150909
- packetKeys(0x19AB2BF0,0x04754299,0x48770736);
+ packetKeys(0x19ab2bf0,0x04754299,0x48770736);
#endif
// 2015-09-16aRagexe, 2015-09-16cRagexe, 2015-09-16cRagexeRE
#if PACKETVER == 20150916
- packetKeys(0x17F83A19,0x116944F4,0x1CC541E9);
+ packetKeys(0x17f83a19,0x116944f4,0x1cc541e9);
#endif
// 2015-09-23bRagexe, 2015-09-23bRagexeRE, 2015-09-23cRagexe, 2015-09-23dRagexe, 2015-09-23eRagexe, 2015-09-23eRagexeRE, 2015-09-23fRagexe, 2015-09-23fRagexeRE
#if PACKETVER == 20150923
- packetKeys(0x765742B9,0x22D61C2F,0x7DA94FB2);
+ packetKeys(0x765742b9,0x22d61c2f,0x7da94fb2);
#endif
// 2015-10-01aRagexe, 2015-10-01bRagexeRE
#if PACKETVER == 20151001
- packetKeys(0x5CFF4561,0x32514AD1,0x06D126D1);
+ packetKeys(0x5cff4561,0x32514ad1,0x06d126d1);
#endif
// 2015-10-07aRagexe, 2015-10-07aRagexeRE
#if PACKETVER == 20151007
- packetKeys(0x3C6447A8,0x032170D7,0x6490476C);
+ packetKeys(0x3c6447a8,0x032170d7,0x6490476c);
#endif
// 2015-10-14bRagexe, 2015-10-14bRagexeRE
#if PACKETVER == 20151014
- packetKeys(0x402728A8,0x5D0E309F,0x240018FD);
+ packetKeys(0x402728a8,0x5d0e309f,0x240018fd);
#endif
// 2015-10-21aRagexe, 2015-10-21aRagexeRE, 2015-10-22aRagexe, 2015-10-22aRagexeRE
#if PACKETVER == 20151021 || \
PACKETVER == 20151022
- packetKeys(0x0311104D,0x46C326D6,0x00E82720);
+ packetKeys(0x0311104d,0x46c326d6,0x00e82720);
#endif
// 2015-10-28bRagexeRE, 2015-10-28bRagexeRE_2, 2015-10-28cRagexe, 2015-10-28cRagexeRE, 2015-10-28dRagexe, 2015-10-28dRagexeRE, 2015-10-29aRagexe, 2015-10-29aRagexeRE
#if PACKETVER == 20151028 || \
PACKETVER == 20151029
- packetKeys(0x45B945B9,0x45B945B9,0x45B945B9);
+ packetKeys(0x45b945b9,0x45b945b9,0x45b945b9);
#endif
// 2015-11-04aRagexe, 2015-11-04aRagexeRE
#if PACKETVER == 20151104
- packetKeys(0x4C17382A,0x7ED174C9,0x29961E4F);
+ packetKeys(0x4c17382a,0x7ed174c9,0x29961e4f);
#endif
// 2015-11-11aRagexe, 2015-11-11aRagexeRE, 2015-11-11bRagexe
#if PACKETVER == 20151111
- packetKeys(0x46097C77,0x5F193871,0x29140A21);
+ packetKeys(0x46097c77,0x5f193871,0x29140a21);
#endif
// 2015-11-18aRagexe, 2015-11-18aRagexeRE
#if PACKETVER == 20151118
- packetKeys(0x734C3241,0x6E846F34,0x731C06D6);
+ packetKeys(0x734c3241,0x6e846f34,0x731c06d6);
#endif
// 2015-11-25bRagexe, 2015-11-25bRagexeRE, 2015-11-25cRagexeRE, 2015-11-25dRagexe, 2015-11-25dRagexeRE
#if PACKETVER == 20151125
- packetKeys(0x237446C0,0x5EFB343A,0x0EDF06C5);
+ packetKeys(0x237446c0,0x5efb343a,0x0edf06c5);
#endif
// 2015-12-02aRagexe, 2015-12-02bRagexeRE
#if PACKETVER == 20151202
- packetKeys(0x4EDE52DE,0x52DE52DE,0x52DE52DE);
+ packetKeys(0x4ede52de,0x52de52de,0x52de52de);
#endif
// 2015-12-09aRagexe, 2015-12-09aRagexeRE
#if PACKETVER == 20151209
- packetKeys(0x652C5898,0x7A351FB3,0x67EA2886);
+ packetKeys(0x652c5898,0x7a351fb3,0x67ea2886);
#endif
// 2015-12-16aRagexe, 2015-12-16aRagexeRE
#if PACKETVER == 20151216
- packetKeys(0x25DD643D,0x61AC39DE,0x77A8206D);
+ packetKeys(0x25dd643d,0x61ac39de,0x77a8206d);
#endif
// 2015-12-23bRagexe, 2015-12-23bRagexeRE
#if PACKETVER == 20151223
- packetKeys(0x347D68D0,0x2C705320,0x7B4A199D);
+ packetKeys(0x347d68d0,0x2c705320,0x7b4a199d);
#endif
// 2015-12-30aRagexe, 2015-12-30aRagexeRE
#if PACKETVER == 20151230
- packetKeys(0x54C51241,0x33883499,0x3CDA35F0);
+ packetKeys(0x54c51241,0x33883499,0x3cda35f0);
#endif
// 2016-01-06aRagexe, 2016-01-06aRagexeRE
#if PACKETVER == 20160106
- packetKeys(0x40520265,0x33FE26FC,0x7136294F);
+ packetKeys(0x40520265,0x33fe26fc,0x7136294f);
#endif
// 2016-01-13aRagexe, 2016-01-13aRagexeRE, 2016-01-13bRagexe, 2016-01-13bRagexeRE, 2016-01-13bRagexeRE_2, 2016-01-13bRagexe_2, 2016-01-13cRagexeRE
#if PACKETVER == 20160113
- packetKeys(0x18005C4B,0x19A94A72,0x73F678EC);
+ packetKeys(0x18005c4b,0x19a94a72,0x73f678ec);
#endif
// 2016-01-20aRagexe, 2016-01-20aRagexeRE
@@ -1462,549 +1521,549 @@
// 2016-01-27aRagexeRE, 2016-01-27aRagexeRE_2, 2016-01-27bRagexeRE, 2016-01-27cRagexe, 2016-01-27dRagexe
#if PACKETVER == 20160127
- packetKeys(0x6B1E7146,0x612C47E6,0x274E56EE);
+ packetKeys(0x6b1e7146,0x612c47e6,0x274e56ee);
#endif
// 2016-02-03aRagexe, 2016-02-03aRagexeRE
#if PACKETVER == 20160203
- packetKeys(0x3E1411AF,0x6C744497,0x7CFA1BDE);
+ packetKeys(0x3e1411af,0x6c744497,0x7cfa1bde);
#endif
// 2016-02-11aRagexe, 2016-02-11aRagexeRE
#if PACKETVER == 20160211
- packetKeys(0x613813EA,0x05251DAB,0x1FD35E33);
+ packetKeys(0x613813ea,0x05251dab,0x1fd35e33);
#endif
// 2016-02-17aRagexe, 2016-02-17aRagexeRE, 2016-02-17bRagexeRE, 2016-02-17bRagexeRE_2, 2016-02-17cRagexeRE
#if PACKETVER == 20160217
- packetKeys(0x25895A8E,0x09421C19,0x763A2D7A);
+ packetKeys(0x25895a8e,0x09421c19,0x763a2d7a);
#endif
// 2016-02-24aRagexe, 2016-02-24aRagexeRE, 2016-02-24bRagexeRE
#if PACKETVER == 20160224
- packetKeys(0x7088019A,0x13471F02,0x42356A7D);
+ packetKeys(0x7088019a,0x13471f02,0x42356a7d);
#endif
// 2016-03-02bRagexe, 2016-03-02bRagexeRE
#if PACKETVER == 20160302
- packetKeys(0x7B4441B9,0x5BBC63AF,0x45DA0E71);
+ packetKeys(0x7b4441b9,0x5bbc63af,0x45da0e71);
#endif
// 2016-03-09aRagexeRE, 2016-03-09cRagexe
#if PACKETVER == 20160309
- packetKeys(0x21587520,0x353A7706,0x1B722B25);
+ packetKeys(0x21587520,0x353a7706,0x1b722b25);
#endif
// 2016-03-16aRagexe, 2016-03-16aRagexeRE, 2016-03-18aRagexe
#if PACKETVER == 20160316 || \
PACKETVER == 20160318
- packetKeys(0x62363E36,0x3E363E36,0x3E363E36);
+ packetKeys(0x62363e36,0x3e363e36,0x3e363e36);
#endif
// 2016-03-23aRagexe, 2016-03-23aRagexeRE, 2016-03-23bRagexe, 2016-03-23bRagexeRE
#if PACKETVER == 20160323
- packetKeys(0x73E35A83,0x62142FA8,0x12BA36BD);
+ packetKeys(0x73e35a83,0x62142fa8,0x12ba36bd);
#endif
// 2016-03-30aRagexe, 2016-03-30aRagexeRE, 2016-03-30bRagexe
#if PACKETVER == 20160330
- packetKeys(0x02050940,0x545336FF,0x7E7D4902);
+ packetKeys(0x02050940,0x545336ff,0x7e7d4902);
#endif
// 2016-04-06aRagexe, 2016-04-06aRagexeRE, 2016-04-06bRagexe
#if PACKETVER == 20160406
- packetKeys(0x568611EA,0x32457D8D,0x2B020477);
+ packetKeys(0x568611ea,0x32457d8d,0x2b020477);
#endif
// 2016-04-14aRagexe, 2016-04-14aRagexeRE, 2016-04-14bRagexe, 2016-04-14bRagexeRE, 2016-04-14bRagexe_2, 2016-04-14cRagexe
#if PACKETVER == 20160414
- packetKeys(0x31BD479A,0x40C61398,0x397C1A80);
+ packetKeys(0x31bd479a,0x40c61398,0x397c1a80);
#endif
// 2016-04-20aRagexeRE, 2016-04-20cRagexe
#if PACKETVER == 20160420
- packetKeys(0x67D2163A,0x3068215B,0x4835474D);
+ packetKeys(0x67d2163a,0x3068215b,0x4835474d);
#endif
// 2016-04-27aRagexe, 2016-04-27aRagexeRE
#if PACKETVER == 20160427
- packetKeys(0x12DC378E,0x4E3E7EBE,0x0ABE2ABE);
+ packetKeys(0x12dc378e,0x4e3e7ebe,0x0abe2abe);
#endif
// 2016-05-04aRagexe, 2016-05-04aRagexeRE
#if PACKETVER == 20160504
- packetKeys(0x09E0544C,0x0231251D,0x2F4E195F);
+ packetKeys(0x09e0544c,0x0231251d,0x2f4e195f);
#endif
// 2016-05-11aRagexe, 2016-05-11aRagexeRE, 2016-05-11bRagexeRE
#if PACKETVER == 20160511
- packetKeys(0x3C666FE2,0x27E84E3E,0x53E11BA5);
+ packetKeys(0x3c666fe2,0x27e84e3e,0x53e11ba5);
#endif
// 2016-05-18aRagexe, 2016-05-18aRagexeRE
#if PACKETVER == 20160518
- packetKeys(0x57DB7CA1,0x1FEA1629,0x26DD244D);
+ packetKeys(0x57db7ca1,0x1fea1629,0x26dd244d);
#endif
// 2016-05-25aRagexe, 2016-05-25aRagexeRE, 2016-05-26aRagexe
#if PACKETVER == 20160525 || \
PACKETVER == 20160526
- packetKeys(0x485C45B6,0x47DC6192,0x76B34A36);
+ packetKeys(0x485c45b6,0x47dc6192,0x76b34a36);
#endif
// 2016-06-01aRagexe, 2016-06-01aRagexeRE
#if PACKETVER == 20160601
- packetKeys(0x3DAD32C4,0x59F001BE,0x73F65E56);
+ packetKeys(0x3dad32c4,0x59f001be,0x73f65e56);
#endif
// 2016-06-08aRagexe, 2016-06-08aRagexeRE, 2016-06-08bRagexe, 2016-06-08bRagexeRE, 2016-06-09aRagexe
#if PACKETVER == 20160608 || \
PACKETVER == 20160609
- packetKeys(0x11D74609,0x77C43E8A,0x44290F53);
+ packetKeys(0x11d74609,0x77c43e8a,0x44290f53);
#endif
// 2016-06-15aRagexe, 2016-06-15aRagexeRE
#if PACKETVER == 20160615
- packetKeys(0x062C5C26,0x6CF47E82,0x4DD53480);
+ packetKeys(0x062c5c26,0x6cf47e82,0x4dd53480);
#endif
// 2016-06-22aRagexe, 2016-06-22aRagexeRE
#if PACKETVER == 20160622
- packetKeys(0x426548AB,0x5C0F5DD4,0x03022710);
+ packetKeys(0x426548ab,0x5c0f5dd4,0x03022710);
#endif
// 2016-06-29aRagexe, 2016-06-29aRagexeRE, 2016-06-30aRagexe, 2016-06-30aRagexeRE
#if PACKETVER == 20160629 || \
PACKETVER == 20160630
- packetKeys(0x0DF31CCC,0x54281606,0x5C4C6855);
+ packetKeys(0x0df31ccc,0x54281606,0x5c4c6855);
#endif
// 2016-07-06bRagexe, 2016-07-06cRagexeRE
#if PACKETVER == 20160706
- packetKeys(0x33A766D0,0x743F04F8,0x0FA0276C);
+ packetKeys(0x33a766d0,0x743f04f8,0x0fa0276c);
#endif
// 2016-07-13aRagexe, 2016-07-13aRagexeRE, 2016-07-13bRagexe, 2016-07-13bRagexeRE, 2016-07-13cRagexe, 2016-07-13dRagexe
#if PACKETVER == 20160713
- packetKeys(0x714F2495,0x7DDC6F32,0x3FD8533D);
+ packetKeys(0x714f2495,0x7ddc6f32,0x3fd8533d);
#endif
// 2016-07-20aRagexe, 2016-07-20aRagexeRE, 2016-07-20bRagexe, 2016-07-20bRagexeRE
#if PACKETVER == 20160720
- packetKeys(0x4F8A19C0,0x2D8E085C,0x37BB67D6);
+ packetKeys(0x4f8a19c0,0x2d8e085c,0x37bb67d6);
#endif
// 2016-07-27aRagexe, 2016-07-27aRagexeRE, 2016-07-27bRagexe, 2016-07-27bRagexeRE
#if PACKETVER == 20160727
- packetKeys(0x3C6952AB,0x26E4077F,0x37E25DF7);
+ packetKeys(0x3c6952ab,0x26e4077f,0x37e25df7);
#endif
// 2016-08-03bRagexe, 2016-08-03bRagexeRE
#if PACKETVER == 20160803
- packetKeys(0x67F438C2,0x512A4EB7,0x2D353182);
+ packetKeys(0x67f438c2,0x512a4eb7,0x2d353182);
#endif
// 2016-08-10aRagexe, 2016-08-10aRagexeRE
#if PACKETVER == 20160810
- packetKeys(0x2F252886,0x242234A2,0x48BC5032);
+ packetKeys(0x2f252886,0x242234a2,0x48bc5032);
#endif
// 2016-08-17aRagexe, 2016-08-17aRagexeRE
#if PACKETVER == 20160817
- packetKeys(0x675E6900,0x3F8E1D16,0x58D650E5);
+ packetKeys(0x675e6900,0x3f8e1d16,0x58d650e5);
#endif
// 2016-08-24aRagexe, 2016-08-24aRagexeRE
#if PACKETVER == 20160824
- packetKeys(0x2FA92FA9,0x2FA92FA9,0x2FA92FA9);
+ packetKeys(0x2fa92fa9,0x2fa92fa9,0x2fa92fa9);
#endif
// 2016-08-31aRagexe, 2016-08-31aRagexeRE, 2016-08-31bRagexe, 2016-08-31bRagexeRE
#if PACKETVER == 20160831
- packetKeys(0x564E13B0,0x7F680549,0x382D273B);
+ packetKeys(0x564e13b0,0x7f680549,0x382d273b);
#endif
// 2016-09-07aRagexe, 2016-09-07aRagexeRE
#if PACKETVER == 20160907
- packetKeys(0x32E5237D,0x57BD4DBD,0x5DBD5DBD);
+ packetKeys(0x32e5237d,0x57bd4dbd,0x5dbd5dbd);
#endif
// 2016-09-13aRagexe, 2016-09-13aRagexeRE
#if PACKETVER == 20160913
- packetKeys(0x7C79748F,0x1AA03B1D,0x6EAC4747);
+ packetKeys(0x7c79748f,0x1aa03b1d,0x6eac4747);
#endif
// 2016-09-21aRagexe, 2016-09-21bRagexeRE
#if PACKETVER == 20160921
- packetKeys(0x11CD15CD,0x15CD15CD,0x15CD15CD);
+ packetKeys(0x11cd15cd,0x15cd15cd,0x15cd15cd);
#endif
// 2016-09-28cRagexe, 2016-09-28cRagexeRE, 2016-09-28dRagexeRE
#if PACKETVER == 20160928
- packetKeys(0x2F8C67F5,0x22D42C38,0x57513774);
+ packetKeys(0x2f8c67f5,0x22d42c38,0x57513774);
#endif
// 2016-10-05aRagexe, 2016-10-05aRagexeRE
#if PACKETVER == 20161005
- packetKeys(0x5BAE21F8,0x021E2FFC,0x3BEB7C31);
+ packetKeys(0x5bae21f8,0x021e2ffc,0x3beb7c31);
#endif
// 2016-10-12aRagexe, 2016-10-12aRagexeRE
#if PACKETVER == 20161012
- packetKeys(0x5E2311F2,0x14FD012C,0x76EB64F6);
+ packetKeys(0x5e2311f2,0x14fd012c,0x76eb64f6);
#endif
// 2016-10-19aRagexe, 2016-10-19aRagexeRE
#if PACKETVER == 20161019
- packetKeys(0x34882F11,0x7C870E70,0x7E61350D);
+ packetKeys(0x34882f11,0x7c870e70,0x7e61350d);
#endif
// 2016-10-26bRagexe, 2016-10-26bRagexeRE, 2016-10-26cRagexe, 2016-10-26cRagexeRE
#if PACKETVER == 20161026
- packetKeys(0x2CB86AE6,0x7D12660E,0x1B004DEB);
+ packetKeys(0x2cb86ae6,0x7d12660e,0x1b004deb);
#endif
// 2016-11-02aRagexe, 2016-11-02aRagexeRE, 2016-11-03aRagexe, 2016-11-03aRagexeRE
#if PACKETVER == 20161102 || \
PACKETVER == 20161103
- packetKeys(0x76725C17,0x72FE4EC1,0x07A91BFD);
+ packetKeys(0x76725c17,0x72fe4ec1,0x07a91bfd);
#endif
// 2016-11-09aRagexe, 2016-11-09aRagexeRE, 2016-11-09bRagexe, 2016-11-09bRagexeRE, 2016-11-09cRagexeRE, 2016-11-09dRagexeRE
#if PACKETVER == 20161109
- packetKeys(0x0A5277C0,0x2DB17506,0x0E8F26DA);
+ packetKeys(0x0a5277c0,0x2db17506,0x0e8f26da);
#endif
// 2016-11-16aRagexe, 2016-11-16bRagexeRE, 2016-11-16cRagexeRE
#if PACKETVER == 20161116
- packetKeys(0x780C5C3F,0x15E92272,0x2BA770C5);
+ packetKeys(0x780c5c3f,0x15e92272,0x2ba770c5);
#endif
// 2016-11-23aRagexe, 2016-11-23aRagexeRE
#if PACKETVER == 20161123
- packetKeys(0x66FF559F,0x00D3535B,0x236246F7);
+ packetKeys(0x66ff559f,0x00d3535b,0x236246f7);
#endif
// 2016-11-30aRagexe, 2016-11-30aRagexeRE, 2016-11-30bRagexe, 2016-11-30bRagexeRE
#if PACKETVER == 20161130
- packetKeys(0x2ED80296,0x0D837373,0x20266F9A);
+ packetKeys(0x2ed80296,0x0d837373,0x20266f9a);
#endif
// 2016-12-07cRagexe, 2016-12-07cRagexeRE, 2016-12-07dRagexeRE, 2016-12-07eRagexe, 2016-12-07eRagexeRE
#if PACKETVER == 20161207
- packetKeys(0x52D267AA,0x4FE42156,0x1292153E);
+ packetKeys(0x52d267aa,0x4fe42156,0x1292153e);
#endif
// 2016-12-14bRagexe, 2016-12-14bRagexeRE, 2016-12-14cRagexe, 2016-12-14cRagexeRE
#if PACKETVER == 20161214
- packetKeys(0x4DDE217B,0x07863AE0,0x5B591656);
+ packetKeys(0x4dde217b,0x07863ae0,0x5b591656);
#endif
// 2016-12-21aRagexe, 2016-12-21aRagexeRE, 2016-12-21bRagexe, 2016-12-21bRagexeRE, 2016-12-21cRagexeRE, 2016-12-21dRagexeRE
#if PACKETVER == 20161221
- packetKeys(0x69CB4F56,0x793C165E,0x673A2354);
+ packetKeys(0x69cb4f56,0x793c165e,0x673a2354);
#endif
// 2016-12-28aRagexe, 2016-12-28aRagexeRE
#if PACKETVER == 20161228
- packetKeys(0x09366971,0x005672F1,0x6F3712AE);
+ packetKeys(0x09366971,0x005672f1,0x6f3712ae);
#endif
// 2017-01-04aRagexe, 2017-01-04bRagexeRE
#if PACKETVER == 20170104
- packetKeys(0x44416BC3,0x6C8D1817,0x072D75D5);
+ packetKeys(0x44416bc3,0x6c8d1817,0x072d75d5);
#endif
// 2017-01-11aRagexe, 2017-01-11aRagexeRE
#if PACKETVER == 20170111
- packetKeys(0x19B637F9,0x0E9C378A,0x41673186);
+ packetKeys(0x19b637f9,0x0e9c378a,0x41673186);
#endif
// 2017-01-18aRagexe, 2017-01-18aRagexeRE
#if PACKETVER == 20170118
- packetKeys(0x456B36EB,0x15EB34B0,0x18C42E43);
+ packetKeys(0x456b36eb,0x15eb34b0,0x18c42e43);
#endif
// 2017-01-25aRagexe, 2017-01-25aRagexeRE
#if PACKETVER == 20170125
- packetKeys(0x066E04FE,0x3004224A,0x04FF0458);
+ packetKeys(0x066e04fe,0x3004224a,0x04ff0458);
#endif
// 2017-02-01aRagexe, 2017-02-01aRagexeRE
#if PACKETVER == 20170201
- packetKeys(0x2011228E,0x00453005,0x628E7F0A);
+ packetKeys(0x2011228e,0x00453005,0x628e7f0a);
#endif
// 2017-02-08aRagexeRE, 2017-02-08bRagexe, 2017-02-08bRagexeRE
#if PACKETVER == 20170208
- packetKeys(0x6A764E5F,0x0609570D,0x28AE07FA);
+ packetKeys(0x6a764e5f,0x0609570d,0x28ae07fa);
#endif
// 2017-02-15aRagexe, 2017-02-15aRagexeRE
#if PACKETVER == 20170215
- packetKeys(0x50C01315,0x51012A42,0x679E16C3);
+ packetKeys(0x50c01315,0x51012a42,0x679e16c3);
#endif
// 2017-02-22aRagexe, 2017-02-22aRagexeRE
#if PACKETVER == 20170222
- packetKeys(0x5A242F2F,0x6C556187,0x73C022CB);
+ packetKeys(0x5a242f2f,0x6c556187,0x73c022cb);
#endif
// 2017-02-28aRagexe, 2017-02-28aRagexeRE, 2017-02-28bRagexe
#if PACKETVER == 20170228
- packetKeys(0x771D4F2B,0x20EF1F4C,0x0D5135C8);
+ packetKeys(0x771d4f2b,0x20ef1f4c,0x0d5135c8);
#endif
// 2017-03-08aRagexe, 2017-03-08bRagexeRE
#if PACKETVER == 20170308
- packetKeys(0x653470A9,0x6B316A71,0x5C712C71);
+ packetKeys(0x653470a9,0x6b316a71,0x5c712c71);
#endif
// 2017-03-15cRagexe, 2017-03-15cRagexeRE
#if PACKETVER == 20170315
- packetKeys(0x399A0856,0x56642A94,0x7F77157D);
+ packetKeys(0x399a0856,0x56642a94,0x7f77157d);
#endif
// 2017-03-22aRagexe, 2017-03-22aRagexeRE, 2017-03-22bRagexe, 2017-03-22bRagexeRE
#if PACKETVER == 20170322
- packetKeys(0x2050167B,0x01731233,0x40337033);
+ packetKeys(0x2050167b,0x01731233,0x40337033);
#endif
// 2017-03-29bRagexe, 2017-03-29cRagexe, 2017-03-29cRagexeRE, 2017-03-29dRagexeRE
#if PACKETVER == 20170329
- packetKeys(0x18B31A80,0x1B0B1D56,0x16857D6A);
+ packetKeys(0x18b31a80,0x1b0b1d56,0x16857d6a);
#endif
// 2017-04-05bRagexe, 2017-04-05bRagexeRE, 2017-04-05cRagexe, 2017-04-05cRagexeRE
#if PACKETVER == 20170405
- packetKeys(0x1FDE7DAC,0x2F9F5B63,0x3F2062AF);
+ packetKeys(0x1fde7dac,0x2f9f5b63,0x3f2062af);
#endif
// 2017-04-12aRagexe, 2017-04-12aRagexeRE
#if PACKETVER == 20170412
- packetKeys(0x39223393,0x5C847779,0x10217985);
+ packetKeys(0x39223393,0x5c847779,0x10217985);
#endif
// 2017-04-19aRagexe, 2017-04-19bRagexeRE
#if PACKETVER == 20170419
- packetKeys(0x1F8F4B3F,0x2E481F03,0x39ED4178);
+ packetKeys(0x1f8f4b3f,0x2e481f03,0x39ed4178);
#endif
// 2017-04-26bRagexe, 2017-04-26dRagexeRE
#if PACKETVER == 20170426
- packetKeys(0x167642A7,0x1DEC3D26,0x6D046D4C);
+ packetKeys(0x167642a7,0x1dec3d26,0x6d046d4c);
#endif
// 2017-05-02aRagexe, 2017-05-02bRagexe, 2017-05-02dRagexeRE
#if PACKETVER == 20170502
- packetKeys(0x05224194,0x466D4204,0x31F02EE0);
+ packetKeys(0x05224194,0x466d4204,0x31f02ee0);
#endif
// 2017-05-17aRagexe, 2017-05-17aRagexeRE, 2017-05-17bRagexeRE
#if PACKETVER == 20170517
- packetKeys(0x2CC4749A,0x1FA954DC,0x72276857);
+ packetKeys(0x2cc4749a,0x1fa954dc,0x72276857);
#endif
// 2017-05-24aRagexe, 2017-05-24aRagexeRE, 2017-05-24bRagexe
#if PACKETVER == 20170524
- packetKeys(0x0B4E03A6,0x2B93427C,0x583D4477);
+ packetKeys(0x0b4e03a6,0x2b93427c,0x583d4477);
#endif
// 2017-05-31aRagexe, 2017-05-31aRagexeRE
#if PACKETVER == 20170531
- packetKeys(0x03FA5A97,0x20B802D5,0x339F1977);
+ packetKeys(0x03fa5a97,0x20b802d5,0x339f1977);
#endif
// 2017-06-07bRagexeRE, 2017-06-07cRagexe, 2017-06-07cRagexeRE
#if PACKETVER == 20170607
- packetKeys(0x50564ACD,0x79CA4E15,0x405F4894);
+ packetKeys(0x50564acd,0x79ca4e15,0x405f4894);
#endif
// 2017-06-14bRagexe, 2017-06-14bRagexeRE
#if PACKETVER == 20170614
- packetKeys(0x5ED10A48,0x667F4301,0x2E5D761F);
+ packetKeys(0x5ed10a48,0x667f4301,0x2e5d761f);
#endif
// 2017-06-21aRagexeRE, 2017-06-21bRagexe
#if PACKETVER == 20170621
- packetKeys(0x155F34EC,0x2D943FA9,0x3D9170EB);
+ packetKeys(0x155f34ec,0x2d943fa9,0x3d9170eb);
#endif
// 2017-06-28bRagexe, 2017-06-28bRagexeRE
#if PACKETVER == 20170628
- packetKeys(0x04691C86,0x43C210E2,0x2FE277E2);
+ packetKeys(0x04691c86,0x43c210e2,0x2fe277e2);
#endif
// 2017-07-05aRagexe, 2017-07-05aRagexeRE
#if PACKETVER == 20170705
- packetKeys(0x7EB000AE,0x02FB1DBC,0x5CB131E6);
+ packetKeys(0x7eb000ae,0x02fb1dbc,0x5cb131e6);
#endif
// 2017-07-12bRagexe, 2017-07-12bRagexeRE
#if PACKETVER == 20170712
- packetKeys(0x2C3C202C,0x3F2C2F2C,0x2F2C2F2C);
+ packetKeys(0x2c3c202c,0x3f2c2f2c,0x2f2c2f2c);
#endif
// 2017-07-19aRagexe, 2017-07-19aRagexeRE
#if PACKETVER == 20170719
- packetKeys(0x46465C88,0x10116F66,0x200866F9);
+ packetKeys(0x46465c88,0x10116f66,0x200866f9);
#endif
// 2017-07-26aRagexe, 2017-07-26cRagexeRE
#if PACKETVER == 20170726
- packetKeys(0x102F23DB,0x7E767751,0x3BC172EF);
+ packetKeys(0x102f23db,0x7e767751,0x3bc172ef);
#endif
// 2017-08-01aRagexe, 2017-08-01aRagexeRE, 2017-08-01bRagexe
#if PACKETVER == 20170801
- packetKeys(0x26B52A7F,0x5377619D,0x4F580AC4);
+ packetKeys(0x26b52a7f,0x5377619d,0x4f580ac4);
#endif
// 2017-08-09cRagexe, 2017-08-09cRagexeRE
#if PACKETVER == 20170809
- packetKeys(0x452156CB,0x71442624,0x2EE66D1C);
+ packetKeys(0x452156cb,0x71442624,0x2ee66d1c);
#endif
// 2017-08-16cRagexe, 2017-08-16cRagexeRE, 2017-08-16dRagexe, 2017-08-16dRagexeRE
#if PACKETVER == 20170816
- packetKeys(0x78914673,0x3F8B7634,0x55B814BC);
+ packetKeys(0x78914673,0x3f8b7634,0x55b814bc);
#endif
// 2017-08-23aRagexe, 2017-08-23aRagexeRE
#if PACKETVER == 20170823
- packetKeys(0x22677205,0x393D1002,0x58DC6BB4);
+ packetKeys(0x22677205,0x393d1002,0x58dc6bb4);
#endif
// 2017-08-30aRagexe, 2017-08-30aRagexeRE, 2017-08-30bRagexe, 2017-08-30bRagexeRE
#if PACKETVER == 20170830
- packetKeys(0x1D49592B,0x00970C17,0x1E640103);
+ packetKeys(0x1d49592b,0x00970c17,0x1e640103);
#endif
// 2017-09-06cRagexe, 2017-09-06cRagexeRE
#if PACKETVER == 20170906
- packetKeys(0x7DEF7677,0x351F36E6,0x52303485);
+ packetKeys(0x7def7677,0x351f36e6,0x52303485);
#endif
// 2017-09-13bRagexeRE, 2017-09-13cRagexe
#if PACKETVER == 20170913
- packetKeys(0x7A645935,0x1DA05062,0x5A7A4C43);
+ packetKeys(0x7a645935,0x1da05062,0x5a7a4c43);
#endif
// 2017-09-20aRagexe, 2017-09-20bRagexeRE
#if PACKETVER == 20170920
- packetKeys(0x53024DA5,0x04EC212D,0x0BF87CD4);
+ packetKeys(0x53024da5,0x04ec212d,0x0bf87cd4);
#endif
// 2017-09-27bRagexe, 2017-09-27bRagexeRE, 2017-09-27cRagexe, 2017-09-27dRagexe, 2017-09-27dRagexeRE
#if PACKETVER == 20170927
- packetKeys(0x15624100,0x0CE1463E,0x0E5D6534);
+ packetKeys(0x15624100,0x0ce1463e,0x0e5d6534);
#endif
// 2017-10-02cRagexe, 2017-10-02cRagexeRE
#if PACKETVER == 20171002
- packetKeys(0x15E1716C,0x4E765B63,0x357D2370);
+ packetKeys(0x15e1716c,0x4e765b63,0x357d2370);
#endif
// 2017-10-11aRagexe, 2017-10-11aRagexeRE, 2017-10-11bRagexe, 2017-10-11bRagexeRE
#if PACKETVER == 20171011
- packetKeys(0x4F121B3E,0x12670E17,0x19896C11);
+ packetKeys(0x4f121b3e,0x12670e17,0x19896c11);
#endif
// 2017-10-18aRagexe, 2017-10-18aRagexeRE
#if PACKETVER == 20171018
- packetKeys(0x2CAA109C,0x158C1EC2,0x7A5E58F3);
+ packetKeys(0x2caa109c,0x158c1ec2,0x7a5e58f3);
#endif
// 2017-10-25bRagexe, 2017-10-25bRagexeRE, 2017-10-25cRagexe, 2017-10-25cRagexeRE, 2017-10-25dRagexe, 2017-10-25dRagexeRE, 2017-10-25eRagexe, 2017-10-25eRagexeRE
#if PACKETVER == 20171025
- packetKeys(0x165C565C,0x565C565C,0x565C565C);
+ packetKeys(0x165c565c,0x565c565c,0x565c565c);
#endif
// 2017-11-01aRagexe, 2017-11-01bRagexeRE
#if PACKETVER == 20171101
- packetKeys(0x7056317F,0x7EEE0589,0x02672373);
+ packetKeys(0x7056317f,0x7eee0589,0x02672373);
#endif
// 2017-11-08aRagexe, 2017-11-08bRagexeRE
#if PACKETVER == 20171108
- packetKeys(0x03695685,0x7FAC12CE,0x182F7A7B);
+ packetKeys(0x03695685,0x7fac12ce,0x182f7a7b);
#endif
// 2017-11-15aRagexe, 2017-11-15aRagexeRE
#if PACKETVER == 20171115
- packetKeys(0x23B97A3B,0x34610993,0x2892070E);
+ packetKeys(0x23b97a3b,0x34610993,0x2892070e);
#endif
// 2017-11-22aRagexe, 2017-11-22bRagexeRE
#if PACKETVER == 20171122
- packetKeys(0x03221B0E,0x73AB7A5F,0x0DD80FD4);
+ packetKeys(0x03221b0e,0x73ab7a5f,0x0dd80fd4);
#endif
// 2017-11-29aRagexe, 2017-11-29aRagexeRE
#if PACKETVER == 20171129
- packetKeys(0x581B77A7,0x62F74D7A,0x4F102173);
+ packetKeys(0x581b77a7,0x62f74d7a,0x4f102173);
#endif
// 2017-12-06aRagexeRE, 2017-12-06bRagexe, 2017-12-06cRagexe
#if PACKETVER == 20171206
- packetKeys(0x39D54BD3,0x577A0C21,0x4C1C316E);
+ packetKeys(0x39d54bd3,0x577a0c21,0x4c1c316e);
#endif
// 2017-12-13bRagexe, 2017-12-13bRagexeRE
#if PACKETVER == 20171213
- packetKeys(0x44E41107,0x3B126921,0x00E06AAC);
+ packetKeys(0x44e41107,0x3b126921,0x00e06aac);
#endif
// 2017-12-20aRagexe, 2017-12-20aRagexeRE
#if PACKETVER == 20171220
- packetKeys(0x6EFE009A,0x440B7BFA,0x052339C8);
+ packetKeys(0x6efe009a,0x440b7bfa,0x052339c8);
#endif
// 2017-12-27aRagexe, 2017-12-27aRagexeRE
#if PACKETVER == 20171227
- packetKeys(0x257A2F6E,0x51140EEE,0x00FA4452);
+ packetKeys(0x257a2f6e,0x51140eee,0x00fa4452);
#endif
// 2018-01-03aRagexe, 2018-01-03aRagexeRE, 2018-01-03bRagexe, 2018-01-03bRagexeRE
#if PACKETVER == 20180103
- packetKeys(0x348F4BD7,0x7A425A54,0x628F589A);
+ packetKeys(0x348f4bd7,0x7a425a54,0x628f589a);
#endif
// 2018-01-17aRagexe, 2018-01-17aRagexeRE
#if PACKETVER == 20180117
- packetKeys(0x21F477F4,0x37F437F4,0x37F437F4);
+ packetKeys(0x21f477f4,0x37f437f4,0x37f437f4);
#endif
// 2018-01-24bRagexe, 2018-01-24bRagexeRE, 2018-01-31Ragexe
#if PACKETVER == 20180124 || \
PACKETVER == 20180131
- packetKeys(0x7EAA1CE0,0x415D1CFD,0x4C8F19FA);
+ packetKeys(0x7eaa1ce0,0x415d1cfd,0x4c8f19fa);
#endif
// 2018-02-07bRagexe, 2018-02-07bRagexeRE, 2018-02-07cRagexe
#if PACKETVER == 20180207
- packetKeys(0x45AA1B44,0x20E716B7,0x5388105C);
+ packetKeys(0x45aa1b44,0x20e716b7,0x5388105c);
#endif
// 2018-02-13aRagexe, 2018-02-13aRagexeRE, 2018-02-13bRagexe
#if PACKETVER == 20180213
- packetKeys(0x189D69B2,0x43B85EAD,0x2B7A687E);
+ packetKeys(0x189d69b2,0x43b85ead,0x2b7a687e);
#endif
// 2018-02-21aRagexeRE, 2018-02-21bRagexe, 2018-02-21bRagexeRE
#if PACKETVER == 20180221
- packetKeys(0x6E2F6233,0x193B0A66,0x0D1D2CA5);
+ packetKeys(0x6e2f6233,0x193b0a66,0x0d1d2ca5);
#endif
// 2018-03-07bRagexe, 2018-03-07bRagexeRE, 2018-03-09aRagexe
#if PACKETVER == 20180307 || \
PACKETVER == 20180309
- packetKeys(0x47DA10EB,0x4B922CCF,0x765C5055);
+ packetKeys(0x47da10eb,0x4b922ccf,0x765c5055);
#endif
// 2018-03-14nRagexe
#if PACKETVER == 20180314
- packetKeys(0x2FF07149,0x00596EA3,0x2B853026);
+ packetKeys(0x2ff07149,0x00596ea3,0x2b853026);
#endif
diff --git a/src/map/packets_keys_zero.h b/src/map/packets_keys_zero.h
index 1b6cd537c..5794ca309 100644
--- a/src/map/packets_keys_zero.h
+++ b/src/map/packets_keys_zero.h
@@ -29,7 +29,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
+// 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
#if PACKETVER == 20171018 || \
PACKETVER == 20171019 || \
PACKETVER == 20171023 || \
@@ -59,7 +59,9 @@
PACKETVER == 20180905 || \
PACKETVER == 20180912 || \
PACKETVER == 20180919 || \
- PACKETVER >= 20180928
+ PACKETVER == 20180928 || \
+ PACKETVER == 20181010 || \
+ PACKETVER >= 20181024
packetKeys(0x00000000,0x00000000,0x00000000);
#endif
diff --git a/src/map/packets_shuffle_main.h b/src/map/packets_shuffle_main.h
index 53bdfa59d..34848f78a 100644
--- a/src/map/packets_shuffle_main.h
+++ b/src/map/packets_shuffle_main.h
@@ -3,6 +3,7 @@
* http://herc.ws - http://github.com/HerculesWS/Hercules
*
* Copyright (C) 2013-2018 Hercules Dev Team
+ * Copyright (C) 2018 Andrei Karas (4144)
*
* Hercules is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -3344,7 +3345,7 @@
packet(0x0969,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
#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
+// 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
#if PACKETVER == 20140611 || \
PACKETVER == 20150225 || \
PACKETVER == 20180315 || \
@@ -3370,7 +3371,11 @@
PACKETVER == 20180831 || \
PACKETVER == 20180912 || \
PACKETVER == 20180919 || \
- PACKETVER >= 20181002
+ PACKETVER == 20181002 || \
+ PACKETVER == 20181017 || \
+ PACKETVER == 20181024 || \
+ PACKETVER == 20181031 || \
+ PACKETVER >= 20181107
packet(0x0202,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
packet(0x022d,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
packet(0x023b,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
diff --git a/src/map/packets_shuffle_re.h b/src/map/packets_shuffle_re.h
index e77b97cac..de59bfb84 100644
--- a/src/map/packets_shuffle_re.h
+++ b/src/map/packets_shuffle_re.h
@@ -3,6 +3,7 @@
* http://herc.ws - http://github.com/HerculesWS/Hercules
*
* Copyright (C) 2013-2018 Hercules Dev Team
+ * Copyright (C) 2018 Andrei Karas (4144)
*
* Hercules is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -9662,7 +9663,7 @@
packet(0x083c,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
#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-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
#if PACKETVER == 20180704 || \
PACKETVER == 20180711 || \
PACKETVER == 20180718 || \
@@ -9672,7 +9673,10 @@
PACKETVER == 20180829 || \
PACKETVER == 20180912 || \
PACKETVER == 20180919 || \
- PACKETVER >= 20181002
+ PACKETVER == 20181002 || \
+ PACKETVER == 20181017 || \
+ PACKETVER == 20181031 || \
+ PACKETVER >= 20181107
packet(0x0202,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
packet(0x022d,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
packet(0x023b,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
diff --git a/src/map/packets_shuffle_zero.h b/src/map/packets_shuffle_zero.h
index fedefbe3d..4d7dd9c7c 100644
--- a/src/map/packets_shuffle_zero.h
+++ b/src/map/packets_shuffle_zero.h
@@ -36,7 +36,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
+// 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
#if PACKETVER == 20171018 || \
PACKETVER == 20171019 || \
PACKETVER == 20171023 || \
@@ -66,7 +66,9 @@
PACKETVER == 20180905 || \
PACKETVER == 20180912 || \
PACKETVER == 20180919 || \
- PACKETVER >= 20180928
+ PACKETVER == 20180928 || \
+ PACKETVER == 20181010 || \
+ PACKETVER >= 20181024
packet(0x0202,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
packet(0x022d,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
packet(0x023b,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
diff --git a/src/map/packets_struct.h b/src/map/packets_struct.h
index 29a3355f7..374769728 100644
--- a/src/map/packets_struct.h
+++ b/src/map/packets_struct.h
@@ -324,7 +324,9 @@ enum packet_headers {
achievementUpdateType = 0xa24,
achievementRewardAckType = 0xa26,
#endif // PACKETVER >= 20141016
-#if PACKETVER >= 20150513 // [4144] 0x09f8 handling in client from 2014-10-29aRagexe and 2014-03-26cRagexeRE
+#if PACKETVER_ZERO_NUM >= 20181010 || PACKETVER >= 20181017
+ questListType = 0xaff, ///< ZC_ALL_QUEST_LIST4
+#elif PACKETVER >= 20150513 // [4144] 0x09f8 handling in client from 2014-10-29aRagexe and 2014-03-26cRagexeRE
questListType = 0x9f8, ///< ZC_ALL_QUEST_LIST3
#elif PACKETVER >= 20141022
questListType = 0x97a, ///< ZC_ALL_QUEST_LIST2
@@ -378,12 +380,16 @@ enum packet_headers {
clanLeave = 0x0989, ///< ZC_ACK_CLAN_LEAVE
clanMessage = 0x098E, ///< ZC_NOTIFY_CLAN_CHAT
#endif
-#if PACKETVER >= 20150513 // [4144] 0x09f9 handled in client from 2014-10-29aRagexe and 2014-03-26cRagexeRE
+#if PACKETVER_ZERO_NUM >= 20181010 || PACKETVER >= 20181017
+ questAddType = 0xb0c,
+#elif PACKETVER >= 20150513 // [4144] 0x09f9 handled in client from 2014-10-29aRagexe and 2014-03-26cRagexeRE
questAddType = 0x9f9,
#else
questAddType = 0x2b3,
#endif // PACKETVER < 20150513
-#if PACKETVER >= 20150513
+#if PACKETVER_ZERO_NUM >= 20181010 || PACKETVER >= 20181017
+ questUpdateType = 0xafe,
+#elif PACKETVER >= 20150513
questUpdateType = 0x9fa,
#else
questUpdateType = 0x2b5,
@@ -445,6 +451,16 @@ enum packet_headers {
#else
guildLeave = 0x15a,
#endif
+#if PACKETVER_MAIN_NUM >= 20181017 || PACKETVER_RE_NUM >= 20181017 || PACKETVER_ZERO_NUM >= 20181024
+ itemPreview = 0xb13,
+#else
+ itemPreview = 0xab9,
+#endif
+#if PACKETVER_RE_NUM >= 20181031
+ autoSpellList = 0xafb,
+#else
+ autoSpellList = 0x1cd,
+#endif
};
#if !defined(sun) && (!defined(__NETBSD__) || __NetBSD_Version__ >= 600000000) // NetBSD 5 and Solaris don't like pragma pack but accept the packed attribute
@@ -1449,7 +1465,11 @@ struct packet_hotkey {
* MISSION_HUNT_INFO_EX (PACKETVER >= 20150513)
*/
struct packet_mission_info_sub {
-#if PACKETVER >= 20150513
+#if PACKETVER_ZERO_NUM >= 20181010 || PACKETVER >= 20181017
+ uint32 huntIdent;
+ uint32 huntIdent2;
+ uint32 mobType;
+#elif PACKETVER >= 20150513
uint32 huntIdent;
uint32 mobType;
#endif
@@ -1819,7 +1839,11 @@ struct PACKET_ZC_NOTIFY_CLAN_CHAT {
* PACKET_ZC_MISSION_HUNT_EX (PACKETVER >= 20150513)
*/
struct packet_quest_hunt_sub {
-#if PACKETVER >= 20150513
+#if PACKETVER_ZERO_NUM >= 20181010 || PACKETVER >= 20181017
+ uint32 huntIdent;
+ uint32 huntIdent2;
+ uint32 mobType;
+#elif PACKETVER >= 20150513
uint32 huntIdent;
uint32 mobType;
#endif
@@ -1853,7 +1877,10 @@ struct packet_quest_add_header {
*/
struct packet_quest_update_hunt {
uint32 questID;
-#if PACKETVER >= 20150513
+#if PACKETVER_ZERO_NUM >= 20181010 || PACKETVER >= 20181017
+ uint32 huntIdent;
+ uint32 huntIdent2;
+#elif PACKETVER >= 20150513
uint32 huntIdent;
#else
uint32 mob_id;
@@ -1906,7 +1933,9 @@ struct PACKET_ZC_FORMATSTRING_MSG_COLOR {
uint16 PacketType;
uint16 PacketLength;
uint16 messageId;
+#if PACKETVER >= 20160406
uint32 color;
+#endif
char messageString[];
} __attribute__((packed));
@@ -2274,8 +2303,13 @@ struct PACKET_ZC_PROPERTY_HOMUN {
uint16 mdef;
uint16 flee;
uint16 amotion;
+#if PACKETVER < 20150513
+ uint16 hp;
+ uint16 maxHp;
+#else
uint32 hp;
uint32 maxHp;
+#endif
uint16 sp;
uint16 maxSp;
uint32 exp;
@@ -2850,6 +2884,33 @@ struct PACKET_ZC_CAMERA_INFO {
float latitude;
} __attribute__((packed));
+struct PACKET_ZC_ITEM_PREVIEW {
+ int16 packetType;
+ int16 index;
+#if PACKETVER_MAIN_NUM >= 20181017 || PACKETVER_RE_NUM >= 20181017 || PACKETVER_ZERO_NUM >= 20181024
+ int8 isDamaged;
+#endif
+ int16 refiningLevel;
+ struct EQUIPSLOTINFO slot;
+ struct ItemOptions option_data[MAX_ITEM_OPTIONS];
+} __attribute__((packed));
+
+#if PACKETVER_RE_NUM >= 20181031
+#define PACKET_ZC_AUTOSPELLLIST PACKET_ZC_AUTOSPELLLIST2
+#else
+#define PACKET_ZC_AUTOSPELLLIST PACKET_ZC_AUTOSPELLLIST1
+#endif
+
+struct PACKET_ZC_AUTOSPELLLIST1 {
+ int16 packetType;
+ int skills[7];
+} __attribute__((packed));
+
+struct PACKET_ZC_AUTOSPELLLIST2 {
+ int16 packetType;
+ int16 packetLength;
+ int skills[];
+} __attribute__((packed));
#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)
diff --git a/src/map/pc.c b/src/map/pc.c
index 56f42690d..b8a6912ee 100644
--- a/src/map/pc.c
+++ b/src/map/pc.c
@@ -4402,8 +4402,6 @@ static int pc_insert_card(struct map_session_data *sd, int idx_card, int idx_equ
static int pc_modifybuyvalue(struct map_session_data *sd, int orig_value)
{
int skill_lv, rate1 = 0, rate2 = 0;
- if (orig_value <= 0)
- return 0;
if ((skill_lv=pc->checkskill(sd,MC_DISCOUNT)) > 0) // merchant discount
rate1 = 5+skill_lv*2-((skill_lv==10)? 1:0);
if ((skill_lv=pc->checkskill(sd,RG_COMPULSION)) > 0) // rogue discount
@@ -4412,8 +4410,9 @@ static int pc_modifybuyvalue(struct map_session_data *sd, int orig_value)
rate1 = rate2;
if (rate1 != 0)
orig_value = apply_percentrate(orig_value, 100-rate1, 100);
- if (orig_value < 1)
- orig_value = 1;
+
+ if (orig_value < battle_config.min_item_buy_price)
+ orig_value = battle_config.min_item_buy_price;
return orig_value;
}
@@ -4423,14 +4422,13 @@ static int pc_modifybuyvalue(struct map_session_data *sd, int orig_value)
static int pc_modifysellvalue(struct map_session_data *sd, int orig_value)
{
int skill_lv, rate = 0;
- if (orig_value <= 0)
- return 0;
if ((skill_lv=pc->checkskill(sd,MC_OVERCHARGE)) > 0) //OverCharge
rate = 5+skill_lv*2-((skill_lv==10)? 1:0);
if (rate != 0)
orig_value = apply_percentrate(orig_value, 100+rate, 100);
- if (orig_value < 1)
- orig_value = 1;
+
+ if (orig_value < battle_config.min_item_sell_price)
+ orig_value = battle_config.min_item_sell_price;
return orig_value;
}
diff --git a/src/map/quest.c b/src/map/quest.c
index 02bf7638b..f10d6847f 100644
--- a/src/map/quest.c
+++ b/src/map/quest.c
@@ -30,6 +30,7 @@
#include "map/itemdb.h"
#include "map/log.h"
#include "map/map.h"
+#include "map/mercenary.h"
#include "map/mob.h"
#include "map/npc.h"
#include "map/party.h"
@@ -719,6 +720,8 @@ static bool quest_questinfo_validate(struct map_session_data *sd, struct questin
return false;
if (VECTOR_LENGTH(qi->quest_requirement) > 0 && quest->questinfo_validate_quests(sd, qi) == false)
return false;
+ if (qi->mercenary_class != 0 && quest->questinfo_validate_mercenary_class(sd, qi) == false)
+ return false;
return true;
}
@@ -901,6 +904,29 @@ static bool quest_questinfo_validate_quests(struct map_session_data *sd, struct
}
/**
+ * Validate mercenary class required for the questinfo
+ *
+ * @param sd session data.
+ * @param qi questinfo data.
+ *
+ * @retval true if player have a mercenary with the given class.
+ * @retval false if player does NOT have a mercenary with the given class.
+ */
+static bool quest_questinfo_validate_mercenary_class(struct map_session_data *sd, struct questinfo *qi)
+{
+ nullpo_retr(false, sd);
+ nullpo_retr(false, qi);
+
+ if (sd->md == NULL)
+ return false;
+
+ if (sd->md->mercenary.class_ != qi->mercenary_class)
+ return false;
+
+ return true;
+}
+
+/**
* Clears the questinfo data vector
*
* @param m mapindex.
@@ -993,5 +1019,6 @@ void quest_defaults(void)
quest->questinfo_validate_homunculus_level = quest_questinfo_validate_homunculus_level;
quest->questinfo_validate_homunculus_type = quest_questinfo_validate_homunculus_type;
quest->questinfo_validate_quests = quest_questinfo_validate_quests;
+ quest->questinfo_validate_mercenary_class = quest_questinfo_validate_mercenary_class;
quest->questinfo_vector_clear = quest_questinfo_vector_clear;
}
diff --git a/src/map/quest.h b/src/map/quest.h
index 305a48df1..206a7902f 100644
--- a/src/map/quest.h
+++ b/src/map/quest.h
@@ -92,6 +92,7 @@ struct quest_interface {
bool (*questinfo_validate_homunculus_level) (struct map_session_data *sd, struct questinfo *qi);
bool (*questinfo_validate_homunculus_type) (struct map_session_data *sd, struct questinfo *qi);
bool (*questinfo_validate_quests) (struct map_session_data *sd, struct questinfo *qi);
+ bool (*questinfo_validate_mercenary_class) (struct map_session_data *sd, struct questinfo *qi);
void (*questinfo_vector_clear) (int m);
};
diff --git a/src/map/script.c b/src/map/script.c
index 7507aabfd..8c09bb8d8 100644
--- a/src/map/script.c
+++ b/src/map/script.c
@@ -6099,11 +6099,11 @@ static BUILDIN(menu)
sd->state.menu_or_input = 1;
/* menus beyond this length crash the client (see bugreport:6402) */
- if( StrBuf->Length(&buf) >= 2047 ) {
+ if( StrBuf->Length(&buf) >= MAX_MENU_LENGTH - 1 ) {
struct npc_data * nd = map->id2nd(st->oid);
char* menu;
- CREATE(menu, char, 2048);
- safestrncpy(menu, StrBuf->Value(&buf), 2047);
+ CREATE(menu, char, MAX_MENU_LENGTH);
+ safestrncpy(menu, StrBuf->Value(&buf), MAX_MENU_LENGTH - 1);
ShowWarning("NPC Menu too long! (source:%s / length:%d)\n",nd?nd->name:"Unknown",StrBuf->Length(&buf));
clif->scriptmenu(sd, st->oid, menu);
aFree(menu);
@@ -6112,13 +6112,13 @@ static BUILDIN(menu)
StrBuf->Destroy(&buf);
- if( sd->npc_menu >= 0xff )
+ if( sd->npc_menu >= MAX_MENU_OPTIONS )
{// client supports only up to 254 entries; 0 is not used and 255 is reserved for cancel; excess entries are displayed but cause 'uint8' overflow
- ShowWarning("buildin_menu: Too many options specified (current=%d, max=254).\n", sd->npc_menu);
+ ShowWarning("buildin_menu: Too many options specified (current=%d, max=%d).\n", sd->npc_menu, MAX_MENU_OPTIONS - 1);
script->reportsrc(st);
}
}
- else if( sd->npc_menu == 0xff )
+ else if( sd->npc_menu == MAX_MENU_OPTIONS )
{// Cancel was pressed
sd->state.menu_or_input = 0;
st->state = END;
@@ -6200,11 +6200,11 @@ static BUILDIN(select)
sd->state.menu_or_input = 1;
/* menus beyond this length crash the client (see bugreport:6402) */
- if( StrBuf->Length(&buf) >= 2047 ) {
+ if( StrBuf->Length(&buf) >= MAX_MENU_LENGTH - 1 ) {
struct npc_data * nd = map->id2nd(st->oid);
char* menu;
- CREATE(menu, char, 2048);
- safestrncpy(menu, StrBuf->Value(&buf), 2047);
+ CREATE(menu, char, MAX_MENU_LENGTH);
+ safestrncpy(menu, StrBuf->Value(&buf), MAX_MENU_LENGTH - 1);
ShowWarning("NPC Menu too long! (source:%s / length:%d)\n",nd?nd->name:"Unknown",StrBuf->Length(&buf));
clif->scriptmenu(sd, st->oid, menu);
aFree(menu);
@@ -6212,107 +6212,31 @@ static BUILDIN(select)
clif->scriptmenu(sd, st->oid, StrBuf->Value(&buf));
StrBuf->Destroy(&buf);
- if( sd->npc_menu >= 0xff ) {
- ShowWarning("buildin_select: Too many options specified (current=%d, max=254).\n", sd->npc_menu);
+ if( sd->npc_menu >= MAX_MENU_OPTIONS ) {
+ ShowWarning("buildin_select: Too many options specified (current=%d, max=%d).\n", sd->npc_menu, MAX_MENU_OPTIONS - 1);
script->reportsrc(st);
}
- } else if( sd->npc_menu == 0xff ) {// Cancel was pressed
+ } else if(sd->npc_menu == MAX_MENU_OPTIONS) { // Cancel was pressed
sd->state.menu_or_input = 0;
- st->state = END;
- } else {// return selected option
- int menu = 0;
-
- sd->state.menu_or_input = 0;
- for( i = 2; i <= script_lastdata(st); ++i ) {
- text = script_getstr(st, i);
- sd->npc_menu -= script->menu_countoptions(text, sd->npc_menu, &menu);
- if( sd->npc_menu <= 0 )
- break;// entry found
- }
- pc->setreg(sd, script->add_variable("@menu"), menu);
- script_pushint(st, menu);
- st->state = RUN;
- }
- return true;
-}
-
-/// Displays a menu with options and returns the selected option.
-/// Behaves like 'menu' without the target labels, except when cancel is
-/// pressed.
-/// When cancel is pressed, the script continues and 255 is returned.
-///
-/// prompt(<option_text>{,<option_text>,...}) -> <selected_option>
-///
-/// @see menu
-static BUILDIN(prompt)
-{
- int i;
- const char *text;
- struct map_session_data *sd = script->rid2sd(st);
- if (sd == NULL)
- return true;
-
-#ifdef SECURE_NPCTIMEOUT
- sd->npc_idle_type = NPCT_MENU;
-#endif
- if( sd->state.menu_or_input == 0 )
- {
- struct StringBuf buf;
-
- StrBuf->Init(&buf);
- sd->npc_menu = 0;
- for( i = 2; i <= script_lastdata(st); ++i )
- {
- text = script_getstr(st, i);
- if( sd->npc_menu > 0 )
- StrBuf->AppendStr(&buf, ":");
- StrBuf->AppendStr(&buf, text);
- sd->npc_menu += script->menu_countoptions(text, 0, NULL);
- }
-
- st->state = RERUNLINE;
- sd->state.menu_or_input = 1;
-
- /* menus beyond this length crash the client (see bugreport:6402) */
- if( StrBuf->Length(&buf) >= 2047 ) {
- struct npc_data * nd = map->id2nd(st->oid);
- char* menu;
- CREATE(menu, char, 2048);
- safestrncpy(menu, StrBuf->Value(&buf), 2047);
- ShowWarning("NPC Menu too long! (source:%s / length:%d)\n",nd?nd->name:"Unknown",StrBuf->Length(&buf));
- clif->scriptmenu(sd, st->oid, menu);
- aFree(menu);
- } else
- clif->scriptmenu(sd, st->oid, StrBuf->Value(&buf));
- StrBuf->Destroy(&buf);
-
- if( sd->npc_menu >= 0xff )
- {
- ShowWarning("buildin_prompt: Too many options specified (current=%d, max=254).\n", sd->npc_menu);
- script->reportsrc(st);
+ if (strncmp(get_buildin_name(st), "prompt", 6) == 0) {
+ pc->setreg(sd, script->add_variable("@menu"), MAX_MENU_OPTIONS);
+ script_pushint(st, MAX_MENU_OPTIONS); // XXX: we should really be pushing -1 instead
+ st->state = RUN;
+ } else {
+ st->state = END;
}
- }
- else if( sd->npc_menu == 0xff )
- {// Cancel was pressed
- sd->state.menu_or_input = 0;
- pc->setreg(sd, script->add_variable("@menu"), 0xff);
- script_pushint(st, 0xff);
- st->state = RUN;
- }
- else
- {// return selected option
+ } else {// return selected option
int menu = 0;
sd->state.menu_or_input = 0;
- for( i = 2; i <= script_lastdata(st); ++i )
- {
+ for( i = 2; i <= script_lastdata(st); ++i ) {
text = script_getstr(st, i);
sd->npc_menu -= script->menu_countoptions(text, sd->npc_menu, &menu);
if( sd->npc_menu <= 0 )
break;// entry found
}
- pc->setreg(sd, script->add_variable("@menu"), menu);
+ pc->setreg(sd, script->add_variable("@menu"), menu); // TODO: throw a deprecation warning for scripts using @menu
script_pushint(st, menu);
st->state = RUN;
}
@@ -11367,7 +11291,7 @@ static int buildin_getunits_sub(struct block_list *bl, va_list ap)
(const void *)h64BPTRSIZE(bl->id), ref);
(*count)++;
- return 0;
+ return 1;
}
static int buildin_getunits_sub_pc(struct map_session_data *sd, va_list ap)
@@ -11439,18 +11363,10 @@ static BUILDIN(getunits)
int16 x2 = script_getnum(st, 8);
int16 y2 = script_getnum(st, 9);
- // FIXME: map_foreachinarea does NOT stop iterating when the callback
- // function returns -1. we still limit the array size, but
- // this doesn't break the loop. We need a foreach function
- // that behaves like map_foreachiddb, but for areas
- map->foreachinarea(buildin_getunits_sub, m, x1, y1, x2, y2, type,
+ map->forcountinarea(buildin_getunits_sub, m, x1, y1, x2, y2, limit, type,
st, sd, id, start, &count, limit, name, ref, type);
} else {
- // FIXME: map_foreachinmap does NOT stop iterating when the callback
- // function returns -1. we still limit the array size, but
- // this doesn't break the loop. We need a foreach function
- // that behaves like map_foreachiddb, but for maps
- map->foreachinmap(buildin_getunits_sub, m, type,
+ map->forcountinmap(buildin_getunits_sub, m, limit, type,
st, sd, id, start, &count, limit, name, ref, type);
}
} else {
@@ -14406,6 +14322,9 @@ static BUILDIN(getiteminfo)
case ITEMINFO_VIEWSPRITE:
script_pushint(st, it->view_sprite);
break;
+ case ITEMINFO_TRADE:
+ script_pushint(st, it->flag.trade_restriction);
+ break;
default:
ShowError("buildin_getiteminfo: Invalid item type %d.\n", n);
script_pushint(st,-1);
@@ -14672,6 +14591,9 @@ static BUILDIN(setiteminfo)
case ITEMINFO_VIEWSPRITE:
it->view_sprite = value;
break;
+ case ITEMINFO_TRADE:
+ it->flag.trade_restriction = value;
+ break;
default:
ShowError("buildin_setiteminfo: invalid type %d.\n", n);
script_pushint(st,-1);
@@ -16786,6 +16708,63 @@ static BUILDIN(getdatatype)
return true;
}
+static BUILDIN(data_to_string)
+{
+ if (script_hasdata(st, 2)) {
+ struct script_data *data = script_getdata(st, 2);
+
+ if (data_isstring(data)) {
+ script_pushcopy(st, 2);
+ } else if (data_isint(data)) {
+ char *str = NULL;
+
+ CREATE(str, char, 20);
+ safesnprintf(str, 20, "%"PRId64"", data->u.num);
+ script_pushstr(st, str);
+ } else if (data_islabel(data)) {
+ const char *str = "";
+
+ // XXX: because all we have is the label pos we can't be sure which
+ // one is the correct label if more than one has the same pos.
+ // We might want to store both the pos and str_data index in
+ // data->u.num, similar to how C_NAME stores both the array
+ // index and str_data index in u.num with bitmasking. This
+ // would also avoid the awkward for() loops as we could
+ // directly access the string with script->get_str().
+
+ if (st->oid) {
+ struct npc_data *nd = map->id2nd(st->oid);
+
+ for (int i = 0; i < nd->u.scr.label_list_num; ++i) {
+ if (nd->u.scr.label_list[i].pos == data->u.num) {
+ str = nd->u.scr.label_list[i].name;
+ break;
+ }
+ }
+ } else {
+ for (int i = LABEL_START; script->str_data[i].next != 0; i = script->str_data[i].next) {
+ if (script->str_data[i].label == data->u.num) {
+ str = script->get_str(i);
+ break;
+ }
+ }
+ }
+
+ script_pushconststr(st, str);
+ } else if (data_isreference(data)) {
+ script_pushstrcopy(st, reference_getname(data));
+ } else {
+ ShowWarning("script:data_to_string: unknown data type!\n");
+ script->reportdata(data);
+ script_pushconststr(st, "");
+ }
+ } else {
+ script_pushconststr(st, ""); // NIL
+ }
+
+ return true;
+}
+
//=======================================================
// chr <int>
//-------------------------------------------------------
@@ -21162,6 +21141,17 @@ static BUILDIN(setquestinfo)
VECTOR_PUSH(qi->quest_requirement, quest_req);
break;
}
+ case QINFO_MERCENARY_CLASS:
+ {
+ int mer_class = script_getnum(st, 3);
+
+ if (!mercenary->class(mer_class)) {
+ ShowWarning("buildin_setquestinfo: invalid mercenary class given (%d).\n", mer_class);
+ return false;
+ }
+ qi->mercenary_class = mer_class;
+ break;
+ }
default:
ShowWarning("buildin_setquestinfo: invalid type given (%u).\n", type);
return false;
@@ -21315,18 +21305,7 @@ static BUILDIN(showevent)
}
}
-#if PACKETVER >= 20170315
- if (icon < 0 || (icon > 10 && icon != 9999))
- icon = 9999;
-#elif PACKETVER >= 20120410
- if (icon < 0 || (icon > 8 && icon != 9999) || icon == 7)
- icon = 9999; // Default to nothing if icon id is invalid.
-#else
- if (icon < 0 || icon > 7)
- icon = 0;
- else
- icon = icon + 1;
-#endif
+ icon = quest->questinfo_validate_icon(icon);
clif->quest_show_event(sd, &nd->bl, icon, color);
return true;
@@ -24801,6 +24780,16 @@ static BUILDIN(changecamera)
return true;
}
+// update preview window to given item
+static BUILDIN(itempreview)
+{
+ struct map_session_data *sd = script_rid2sd(st);
+ if (sd == NULL)
+ return false;
+ clif->item_preview(sd, script_getnum(st, 2));
+ return true;
+}
+
/**
* Adds a built-in script function.
*
@@ -24969,7 +24958,7 @@ static void script_parse_builtin(void)
BUILDIN_DEF(close2,""),
BUILDIN_DEF(menu,"sl*"),
BUILDIN_DEF(select,"s*"), //for future jA script compatibility
- BUILDIN_DEF(prompt,"s*"),
+ BUILDIN_DEF2(select, "prompt", "s*"),
//
BUILDIN_DEF(goto,"l"),
BUILDIN_DEF(callsub,"l*"),
@@ -25250,6 +25239,8 @@ static void script_parse_builtin(void)
BUILDIN_DEF(charat,"si"),
BUILDIN_DEF(isstr,"v"),
BUILDIN_DEF(getdatatype, "?"),
+ BUILDIN_DEF(data_to_string, "?"),
+ BUILDIN_DEF2(getd, "string_to_data", "?"),
BUILDIN_DEF(chr,"i"),
BUILDIN_DEF(ord,"s"),
BUILDIN_DEF(setchar,"ssi"),
@@ -25535,6 +25526,8 @@ static void script_parse_builtin(void)
// camera
BUILDIN_DEF(camerainfo, ""),
BUILDIN_DEF(changecamera, "iii?"),
+
+ BUILDIN_DEF(itempreview, "i"),
};
int i, len = ARRAYLENGTH(BUILDIN);
RECREATE(script->buildin, char *, script->buildin_count + len); // Pre-alloc to speed up
@@ -25581,6 +25574,8 @@ static void script_hardcoded_constants(void)
script->set_constant("MAX_BG_MEMBERS",MAX_BG_MEMBERS,false, false);
script->set_constant("MAX_CHAT_USERS",MAX_CHAT_USERS,false, false);
script->set_constant("MAX_REFINE",MAX_REFINE,false, false);
+ script->set_constant("MAX_MENU_OPTIONS", MAX_MENU_OPTIONS, false, false);
+ script->set_constant("MAX_MENU_LENGTH", MAX_MENU_LENGTH, false, false);
script->constdb_comment("status options");
script->set_constant("Option_Nothing",OPTION_NOTHING,false, false);
@@ -25850,6 +25845,7 @@ static void script_hardcoded_constants(void)
script->set_constant("ITEMINFO_VIEWID", ITEMINFO_VIEWID, false, false);
script->set_constant("ITEMINFO_MATK", ITEMINFO_MATK, false, false);
script->set_constant("ITEMINFO_VIEWSPRITE", ITEMINFO_VIEWSPRITE, false, false);
+ script->set_constant("ITEMINFO_TRADE", ITEMINFO_TRADE, false, false);
script->constdb_comment("monster skill states");
script->set_constant("MSS_ANY", MSS_ANY, false, false);
@@ -25933,6 +25929,7 @@ static void script_hardcoded_constants(void)
script->set_constant("QINFO_HOMUN_LEVEL", QINFO_HOMUN_LEVEL, false, false);
script->set_constant("QINFO_HOMUN_TYPE", QINFO_HOMUN_TYPE, false, false);
script->set_constant("QINFO_QUEST", QINFO_QUEST, false, false);
+ script->set_constant("QINFO_MERCENARY_CLASS", QINFO_MERCENARY_CLASS, false, false);
script->constdb_comment("function types");
script->set_constant("FUNCTION_IS_COMMAND", FUNCTION_IS_COMMAND, false, false);
@@ -25940,6 +25937,20 @@ static void script_hardcoded_constants(void)
script->set_constant("FUNCTION_IS_LOCAL", FUNCTION_IS_LOCAL, false, false);
script->set_constant("FUNCTION_IS_LABEL", FUNCTION_IS_LABEL, false, false);
+ script->constdb_comment("item trade restrictions");
+ script->set_constant("ITR_NONE", ITR_NONE, false, false);
+ script->set_constant("ITR_NODROP", ITR_NODROP, false, false);
+ script->set_constant("ITR_NOTRADE", ITR_NOTRADE, false, false);
+ script->set_constant("ITR_PARTNEROVERRIDE", ITR_PARTNEROVERRIDE, false, false);
+ script->set_constant("ITR_NOSELLTONPC", ITR_NOSELLTONPC, false, false);
+ script->set_constant("ITR_NOCART", ITR_NOCART, false, false);
+ script->set_constant("ITR_NOSTORAGE", ITR_NOSTORAGE, false, false);
+ script->set_constant("ITR_NOGSTORAGE", ITR_NOGSTORAGE, false, false);
+ script->set_constant("ITR_NOMAIL", ITR_NOMAIL, false, false);
+ script->set_constant("ITR_NOAUCTION", ITR_NOAUCTION, false, false);
+ script->set_constant("ITR_ALL", ITR_ALL, false, false);
+
+
script->constdb_comment("Renewal");
#ifdef RENEWAL
script->set_constant("RENEWAL", 1, false, false);
diff --git a/src/map/script.h b/src/map/script.h
index 9c72b793c..549ad3284 100644
--- a/src/map/script.h
+++ b/src/map/script.h
@@ -64,6 +64,9 @@ struct item_data;
#define SCRIPT_EQUIP_TABLE_SIZE 20
+#define MAX_MENU_OPTIONS 0xFF
+#define MAX_MENU_LENGTH 0x800
+
//#define SCRIPT_DEBUG_DISP
//#define SCRIPT_DEBUG_DISASM
//#define SCRIPT_DEBUG_HASH
@@ -177,6 +180,8 @@ struct item_data;
#define BUILDIN(x) bool buildin_ ## x (struct script_state* st)
+#define get_buildin_name(st) ( script->get_str((int)(script_getdata((st), 0)->u.num)) )
+
#define script_fetch(st, n, t) do { \
if( script_hasdata((st),(n)) ) \
(t)=script_getnum((st),(n)); \
@@ -450,6 +455,7 @@ enum script_iteminfo_types {
ITEMINFO_VIEWID,
ITEMINFO_MATK,
ITEMINFO_VIEWSPRITE,
+ ITEMINFO_TRADE,
ITEMINFO_MAX
};
diff --git a/src/map/skill.c b/src/map/skill.c
index 4eaab5457..9857badbe 100644
--- a/src/map/skill.c
+++ b/src/map/skill.c
@@ -4138,7 +4138,7 @@ static int skill_activate_reverberation(struct block_list *bl, va_list ap)
if( su->alive && (sg = su->group) != NULL && sg->skill_id == WM_REVERBERATION && sg->unit_id == UNT_REVERBERATION ) {
int64 tick = timer->gettick();
clif->changetraplook(bl,UNT_USED_TRAPS);
- map->foreachinrange(skill->trap_splash, bl, skill->get_splash(sg->skill_id, sg->skill_lv), sg->bl_flag, bl, tick);
+ skill->trap_do_splash(bl, sg->skill_id, sg->skill_lv, sg->bl_flag, tick);
su->limit = DIFF_TICK32(tick,sg->tick)+1500;
sg->unit_id = UNT_USED_TRAPS;
}
@@ -12644,7 +12644,7 @@ static int skill_unit_onplace(struct skill_unit *src, struct block_list *bl, int
if (sg->src_id == bl->id)
break; //Does not affect the caster.
clif->changetraplook(&src->bl,UNT_USED_TRAPS);
- map->foreachinrange(skill->trap_splash,&src->bl, skill->get_splash(sg->skill_id, sg->skill_lv), sg->bl_flag, &src->bl,tick);
+ skill->trap_do_splash(&src->bl, sg->skill_id, sg->skill_lv, sg->bl_flag, tick);
sg->unit_id = UNT_USED_TRAPS;
sg->limit = DIFF_TICK32(tick,sg->tick) + 1500;
break;
@@ -12938,7 +12938,7 @@ static int skill_unit_onplace_timer(struct skill_unit *src, struct block_list *b
}
- map->foreachinrange(skill->trap_splash, &src->bl, skill->get_splash(sg->skill_id, sg->skill_lv), sg->bl_flag, &src->bl, tick);
+ skill->trap_do_splash(&src->bl, sg->skill_id, sg->skill_lv, sg->bl_flag, tick);
sg->unit_id = UNT_USED_TRAPS; //Changed ID so it does not invoke a for each in area again.
}
break;
@@ -12969,10 +12969,10 @@ static int skill_unit_onplace_timer(struct skill_unit *src, struct block_list *b
case UNT_FREEZINGTRAP:
case UNT_FIREPILLAR_ACTIVE:
case UNT_CLAYMORETRAP:
- if( sg->unit_id == UNT_FIRINGTRAP || sg->unit_id == UNT_ICEBOUNDTRAP || sg->unit_id == UNT_CLAYMORETRAP )
- map->foreachinrange(skill->trap_splash,&src->bl, skill->get_splash(sg->skill_id, sg->skill_lv), sg->bl_flag|BL_SKILL|~BCT_SELF, &src->bl,tick);
+ if (sg->unit_id == UNT_FIRINGTRAP || sg->unit_id == UNT_ICEBOUNDTRAP || sg->unit_id == UNT_CLAYMORETRAP)
+ skill->trap_do_splash(&src->bl, sg->skill_id, sg->skill_lv, sg->bl_flag | BL_SKILL | ~BCT_SELF, tick);
else
- map->foreachinrange(skill->trap_splash,&src->bl, skill->get_splash(sg->skill_id, sg->skill_lv), sg->bl_flag, &src->bl,tick);
+ skill->trap_do_splash(&src->bl, sg->skill_id, sg->skill_lv, sg->bl_flag, tick);
if (sg->unit_id != UNT_FIREPILLAR_ACTIVE)
clif->changetraplook(&src->bl, sg->unit_id==UNT_LANDMINE?UNT_FIREPILLAR_ACTIVE:UNT_USED_TRAPS);
sg->limit=DIFF_TICK32(tick,sg->tick)+1500 +
@@ -13203,9 +13203,7 @@ static int skill_unit_onplace_timer(struct skill_unit *src, struct block_list *b
case UNT_GROUNDDRIFT_POISON:
case UNT_GROUNDDRIFT_WATER:
case UNT_GROUNDDRIFT_FIRE:
- map->foreachinrange(skill->trap_splash,&src->bl,
- skill->get_splash(sg->skill_id, sg->skill_lv), sg->bl_flag,
- &src->bl,tick);
+ skill->trap_do_splash(&src->bl, sg->skill_id, sg->skill_lv, sg->bl_flag, tick);
sg->unit_id = UNT_USED_TRAPS;
//clif->changetraplook(&src->bl, UNT_FIREPILLAR_ACTIVE);
sg->limit=DIFF_TICK32(tick,sg->tick)+1500;
@@ -13266,7 +13264,7 @@ static int skill_unit_onplace_timer(struct skill_unit *src, struct block_list *b
case UNT_REVERBERATION:
clif->changetraplook(&src->bl,UNT_USED_TRAPS);
- map->foreachinrange(skill->trap_splash,&src->bl, skill->get_splash(sg->skill_id, sg->skill_lv), sg->bl_flag, &src->bl,tick);
+ skill->trap_do_splash(&src->bl, sg->skill_id, sg->skill_lv, sg->bl_flag, tick);
sg->limit = DIFF_TICK32(tick,sg->tick)+1500;
sg->unit_id = UNT_USED_TRAPS;
break;
@@ -16630,10 +16628,10 @@ static int skill_detonator(struct block_list *bl, va_list ap)
case UNT_CLAYMORETRAP:
case UNT_FIRINGTRAP:
case UNT_ICEBOUNDTRAP:
- map->foreachinrange(skill->trap_splash,bl,skill->get_splash(su->group->skill_id,su->group->skill_lv),su->group->bl_flag|BL_SKILL|~BCT_SELF,bl,su->group->tick);
+ skill->trap_do_splash(bl, su->group->skill_id, su->group->skill_lv, su->group->bl_flag | BL_SKILL | ~BCT_SELF, su->group->tick);
break;
default:
- map->foreachinrange(skill->trap_splash,bl,skill->get_splash(su->group->skill_id,su->group->skill_lv),su->group->bl_flag,bl,su->group->tick);
+ skill->trap_do_splash(bl, su->group->skill_id, su->group->skill_lv, su->group->bl_flag, su->group->tick);
}
clif->changetraplook(bl, UNT_USED_TRAPS);
su->group->limit = DIFF_TICK32(timer->gettick(),su->group->tick) +
@@ -16766,6 +16764,27 @@ static int skill_chastle_mob_changetarget(struct block_list *bl, va_list ap)
return 0;
}
+/**
+ * Does final adjustments (e.g. count enemies affected by splash) then runs trap splash function (skill_trap_splash).
+ *
+ * @param bl : trap skill unit's bl
+ * @param skill_id : Trap Skill ID
+ * @param skill_lv : Trap Skill Level
+ * @param bl_flag : Flag representing units affected by this trap
+ * @param tick : tick related to this trap
+ */
+static void skill_trap_do_splash(struct block_list *bl, uint16 skill_id, uint16 skill_lv, int bl_flag, int64 tick)
+{
+ int enemy_count = 0;
+
+ if (skill->get_nk(skill_id) & NK_SPLASHSPLIT) {
+ enemy_count = map->foreachinrange(skill->area_sub, bl, skill->get_splash(skill_id, skill_lv), BL_CHAR, bl, skill_id, skill_lv, tick, BCT_ENEMY, skill->area_sub_count);
+ enemy_count = max(1, enemy_count); // Don't let enemy_count be 0 when spliting trap damage
+ }
+
+ map->foreachinrange(skill->trap_splash, bl, skill->get_splash(skill_id, skill_lv), bl_flag, bl, tick, enemy_count);
+}
+
/*==========================================
*
*------------------------------------------*/
@@ -16776,6 +16795,7 @@ static int skill_trap_splash(struct block_list *bl, va_list ap)
struct skill_unit *src_su = NULL;
struct skill_unit_group *sg;
struct block_list *ss;
+ int enemy_count = va_arg(ap, int);
nullpo_ret(bl);
nullpo_ret(src);
@@ -16870,7 +16890,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,0);
+ skill->attack(skill->get_type(sg->skill_id), ss, src, bl, sg->skill_id, sg->skill_lv, tick, enemy_count);
break;
}
return 1;
@@ -17585,7 +17605,7 @@ static int skill_unit_timer_sub(union DBKey key, struct DBData *data, va_list ap
break;
}
clif->changetraplook(bl,UNT_USED_TRAPS);
- map->foreachinrange(skill->trap_splash, bl, skill->get_splash(group->skill_id, group->skill_lv), group->bl_flag, bl, tick);
+ skill->trap_do_splash(bl, group->skill_id, group->skill_lv, group->bl_flag, tick);
group->limit = DIFF_TICK32(tick,group->tick)+1500;
su->limit = DIFF_TICK32(tick,group->tick)+1500;
group->unit_id = UNT_USED_TRAPS;
@@ -18973,7 +18993,7 @@ static int skill_destroy_trap(struct block_list *bl, va_list ap)
case UNT_CLAYMORETRAP:
case UNT_FIRINGTRAP:
case UNT_ICEBOUNDTRAP:
- map->foreachinrange(skill->trap_splash,&su->bl, skill->get_splash(sg->skill_id, sg->skill_lv), sg->bl_flag|BL_SKILL|~BCT_SELF, &su->bl,tick);
+ skill->trap_do_splash(&su->bl, sg->skill_id, sg->skill_lv, sg->bl_flag | BL_SKILL | ~BCT_SELF, tick);
break;
case UNT_LANDMINE:
case UNT_BLASTMINE:
@@ -18982,7 +19002,7 @@ static int skill_destroy_trap(struct block_list *bl, va_list ap)
case UNT_FLASHER:
case UNT_FREEZINGTRAP:
case UNT_CLUSTERBOMB:
- map->foreachinrange(skill->trap_splash,&su->bl, skill->get_splash(sg->skill_id, sg->skill_lv), sg->bl_flag, &su->bl,tick);
+ skill->trap_do_splash(&su->bl, sg->skill_id, sg->skill_lv, sg->bl_flag, tick);
break;
}
// Traps aren't recovered.
@@ -21578,6 +21598,7 @@ void skill_defaults(void)
skill->onskillusage = skill_onskillusage;
skill->cell_overlap = skill_cell_overlap;
skill->timerskill = skill_timerskill;
+ skill->trap_do_splash = skill_trap_do_splash;
skill->trap_splash = skill_trap_splash;
skill->check_condition_mercenary = skill_check_condition_mercenary;
skill->locate_element_field = skill_locate_element_field;
diff --git a/src/map/skill.h b/src/map/skill.h
index 97134224e..0ace19927 100644
--- a/src/map/skill.h
+++ b/src/map/skill.h
@@ -2059,6 +2059,7 @@ struct skill_interface {
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);
int (*timerskill) (int tid, int64 tick, int id, intptr_t data);
+ void (*trap_do_splash) (struct block_list *bl, uint16 skill_id, uint16 skill_lv, int bl_flag, int64 tick);
int (*trap_splash) (struct block_list *bl, va_list ap);
int (*check_condition_mercenary) (struct block_list *bl, int skill_id, int lv, int type);
struct skill_unit_group *(*locate_element_field) (struct block_list *bl);
diff --git a/src/map/status.c b/src/map/status.c
index 2bd3700b3..370432ce7 100644
--- a/src/map/status.c
+++ b/src/map/status.c
@@ -10557,20 +10557,9 @@ static bool status_is_immune_to_status(struct status_change *sc, enum sc_type ty
if (type >= SC_COMMON_MIN && type <= SC_COMMON_MAX) // Confirmed.
return true; // Immune to status ailements
switch (type) {
- case SC_DEEP_SLEEP:
case SC__CHAOS:
- case SC_BURNING:
- case SC_STUN:
- case SC_SLEEP:
- case SC_CURSE:
case SC_STONE:
- case SC_POISON:
- case SC_BLIND:
- case SC_SILENCE:
- case SC_BLOODING:
- case SC_FREEZE:
case SC_FROSTMISTY:
- case SC_COLD:
case SC_TOXIN:
case SC_PARALYSE:
case SC_VENOMBLEED:
@@ -10586,20 +10575,9 @@ static bool status_is_immune_to_status(struct status_change *sc, enum sc_type ty
if (type >= SC_COMMON_MIN && type <= SC_COMMON_MAX)
return true; // Immune to status ailements
switch (type) {
- case SC_POISON:
- case SC_BLIND:
- case SC_STUN:
- case SC_SILENCE:
case SC__CHAOS:
case SC_STONE:
- case SC_SLEEP:
- case SC_BLOODING:
- case SC_CURSE:
- case SC_BURNING:
case SC_FROSTMISTY:
- case SC_FREEZE:
- case SC_COLD:
- case SC_FEAR:
case SC_TOXIN:
case SC_PARALYSE:
case SC_VENOMBLEED:
@@ -10608,7 +10586,6 @@ static bool status_is_immune_to_status(struct status_change *sc, enum sc_type ty
case SC_PYREXIA:
case SC_OBLIVIONCURSE:
case SC_LEECHESEND:
- case SC_DEEP_SLEEP:
case SC_SATURDAY_NIGHT_FEVER:
case SC__BODYPAINT:
case SC__ENERVATION:
diff --git a/src/plugins/HPMHooking/HPMHooking.Defs.inc b/src/plugins/HPMHooking/HPMHooking.Defs.inc
index a8d48546d..81e25f033 100644
--- a/src/plugins/HPMHooking/HPMHooking.Defs.inc
+++ b/src/plugins/HPMHooking/HPMHooking.Defs.inc
@@ -282,6 +282,8 @@ typedef void (*HPMHOOK_pre_battle_drain) (struct map_session_data **sd, struct b
typedef void (*HPMHOOK_post_battle_drain) (struct map_session_data *sd, struct block_list *tbl, int64 rdamage, int64 ldamage, int race, int boss);
typedef void (*HPMHOOK_pre_battle_reflect_damage) (struct block_list **target, struct block_list **src, struct Damage **wd, uint16 *skill_id);
typedef void (*HPMHOOK_post_battle_reflect_damage) (struct block_list *target, struct block_list *src, struct Damage *wd, uint16 skill_id);
+typedef void (*HPMHOOK_pre_battle_reflect_trap) (struct block_list **target, struct block_list **src, struct Damage **md, uint16 *skill_id);
+typedef void (*HPMHOOK_post_battle_reflect_trap) (struct block_list *target, struct block_list *src, struct Damage *md, uint16 skill_id);
typedef int (*HPMHOOK_pre_battle_attr_ratio) (int *atk_elem, int *def_type, int *def_lv);
typedef int (*HPMHOOK_post_battle_attr_ratio) (int retVal___, int atk_elem, int def_type, int def_lv);
typedef int64 (*HPMHOOK_pre_battle_attr_fix) (struct block_list **src, struct block_list **target, int64 *damage, int *atk_elem, int *def_type, int *def_lv);
@@ -2628,6 +2630,8 @@ typedef void (*HPMHOOK_pre_clif_camera_showWindow) (struct map_session_data **sd
typedef void (*HPMHOOK_post_clif_camera_showWindow) (struct map_session_data *sd);
typedef void (*HPMHOOK_pre_clif_camera_change) (struct map_session_data **sd, float *range, float *rotation, float *latitude, enum send_target *target);
typedef void (*HPMHOOK_post_clif_camera_change) (struct map_session_data *sd, float range, float rotation, float latitude, enum send_target target);
+typedef void (*HPMHOOK_pre_clif_item_preview) (struct map_session_data **sd, int *n);
+typedef void (*HPMHOOK_post_clif_item_preview) (struct map_session_data *sd, int n);
#endif // MAP_CLIF_H
#ifdef COMMON_CORE_H /* cmdline */
typedef void (*HPMHOOK_pre_cmdline_init) (void);
@@ -6480,6 +6484,8 @@ typedef bool (*HPMHOOK_pre_quest_questinfo_validate_homunculus_type) (struct map
typedef bool (*HPMHOOK_post_quest_questinfo_validate_homunculus_type) (bool retVal___, struct map_session_data *sd, struct questinfo *qi);
typedef bool (*HPMHOOK_pre_quest_questinfo_validate_quests) (struct map_session_data **sd, struct questinfo **qi);
typedef bool (*HPMHOOK_post_quest_questinfo_validate_quests) (bool retVal___, struct map_session_data *sd, struct questinfo *qi);
+typedef bool (*HPMHOOK_pre_quest_questinfo_validate_mercenary_class) (struct map_session_data **sd, struct questinfo **qi);
+typedef bool (*HPMHOOK_post_quest_questinfo_validate_mercenary_class) (bool retVal___, struct map_session_data *sd, struct questinfo *qi);
typedef void (*HPMHOOK_pre_quest_questinfo_vector_clear) (int *m);
typedef void (*HPMHOOK_post_quest_questinfo_vector_clear) (int m);
#endif // MAP_QUEST_H
@@ -7198,6 +7204,8 @@ typedef int (*HPMHOOK_pre_skill_cell_overlap) (struct block_list **bl, va_list a
typedef int (*HPMHOOK_post_skill_cell_overlap) (int retVal___, struct block_list *bl, va_list ap);
typedef int (*HPMHOOK_pre_skill_timerskill) (int *tid, int64 *tick, int *id, intptr_t *data);
typedef int (*HPMHOOK_post_skill_timerskill) (int retVal___, int tid, int64 tick, int id, intptr_t data);
+typedef void (*HPMHOOK_pre_skill_trap_do_splash) (struct block_list **bl, uint16 *skill_id, uint16 *skill_lv, int *bl_flag, int64 *tick);
+typedef void (*HPMHOOK_post_skill_trap_do_splash) (struct block_list *bl, uint16 skill_id, uint16 skill_lv, int bl_flag, int64 tick);
typedef int (*HPMHOOK_pre_skill_trap_splash) (struct block_list **bl, va_list ap);
typedef int (*HPMHOOK_post_skill_trap_splash) (int retVal___, struct block_list *bl, va_list ap);
typedef int (*HPMHOOK_pre_skill_check_condition_mercenary) (struct block_list **bl, int *skill_id, int *lv, int *type);
diff --git a/src/plugins/HPMHooking/HPMHooking_map.HPMHooksCore.inc b/src/plugins/HPMHooking/HPMHooking_map.HPMHooksCore.inc
index 889faa44c..b0b2e7a32 100644
--- a/src/plugins/HPMHooking/HPMHooking_map.HPMHooksCore.inc
+++ b/src/plugins/HPMHooking/HPMHooking_map.HPMHooksCore.inc
@@ -236,6 +236,8 @@ struct {
struct HPMHookPoint *HP_battle_drain_post;
struct HPMHookPoint *HP_battle_reflect_damage_pre;
struct HPMHookPoint *HP_battle_reflect_damage_post;
+ struct HPMHookPoint *HP_battle_reflect_trap_pre;
+ struct HPMHookPoint *HP_battle_reflect_trap_post;
struct HPMHookPoint *HP_battle_attr_ratio_pre;
struct HPMHookPoint *HP_battle_attr_ratio_post;
struct HPMHookPoint *HP_battle_attr_fix_pre;
@@ -2220,6 +2222,8 @@ struct {
struct HPMHookPoint *HP_clif_camera_showWindow_post;
struct HPMHookPoint *HP_clif_camera_change_pre;
struct HPMHookPoint *HP_clif_camera_change_post;
+ struct HPMHookPoint *HP_clif_item_preview_pre;
+ struct HPMHookPoint *HP_clif_item_preview_post;
struct HPMHookPoint *HP_cmdline_init_pre;
struct HPMHookPoint *HP_cmdline_init_post;
struct HPMHookPoint *HP_cmdline_final_pre;
@@ -5008,6 +5012,8 @@ struct {
struct HPMHookPoint *HP_quest_questinfo_validate_homunculus_type_post;
struct HPMHookPoint *HP_quest_questinfo_validate_quests_pre;
struct HPMHookPoint *HP_quest_questinfo_validate_quests_post;
+ struct HPMHookPoint *HP_quest_questinfo_validate_mercenary_class_pre;
+ struct HPMHookPoint *HP_quest_questinfo_validate_mercenary_class_post;
struct HPMHookPoint *HP_quest_questinfo_vector_clear_pre;
struct HPMHookPoint *HP_quest_questinfo_vector_clear_post;
struct HPMHookPoint *HP_rnd_init_pre;
@@ -5714,6 +5720,8 @@ struct {
struct HPMHookPoint *HP_skill_cell_overlap_post;
struct HPMHookPoint *HP_skill_timerskill_pre;
struct HPMHookPoint *HP_skill_timerskill_post;
+ struct HPMHookPoint *HP_skill_trap_do_splash_pre;
+ struct HPMHookPoint *HP_skill_trap_do_splash_post;
struct HPMHookPoint *HP_skill_trap_splash_pre;
struct HPMHookPoint *HP_skill_trap_splash_post;
struct HPMHookPoint *HP_skill_check_condition_mercenary_pre;
@@ -6831,6 +6839,8 @@ struct {
int HP_battle_drain_post;
int HP_battle_reflect_damage_pre;
int HP_battle_reflect_damage_post;
+ int HP_battle_reflect_trap_pre;
+ int HP_battle_reflect_trap_post;
int HP_battle_attr_ratio_pre;
int HP_battle_attr_ratio_post;
int HP_battle_attr_fix_pre;
@@ -8815,6 +8825,8 @@ struct {
int HP_clif_camera_showWindow_post;
int HP_clif_camera_change_pre;
int HP_clif_camera_change_post;
+ int HP_clif_item_preview_pre;
+ int HP_clif_item_preview_post;
int HP_cmdline_init_pre;
int HP_cmdline_init_post;
int HP_cmdline_final_pre;
@@ -11603,6 +11615,8 @@ struct {
int HP_quest_questinfo_validate_homunculus_type_post;
int HP_quest_questinfo_validate_quests_pre;
int HP_quest_questinfo_validate_quests_post;
+ int HP_quest_questinfo_validate_mercenary_class_pre;
+ int HP_quest_questinfo_validate_mercenary_class_post;
int HP_quest_questinfo_vector_clear_pre;
int HP_quest_questinfo_vector_clear_post;
int HP_rnd_init_pre;
@@ -12309,6 +12323,8 @@ struct {
int HP_skill_cell_overlap_post;
int HP_skill_timerskill_pre;
int HP_skill_timerskill_post;
+ int HP_skill_trap_do_splash_pre;
+ int HP_skill_trap_do_splash_post;
int HP_skill_trap_splash_pre;
int HP_skill_trap_splash_post;
int HP_skill_check_condition_mercenary_pre;
diff --git a/src/plugins/HPMHooking/HPMHooking_map.HookingPoints.inc b/src/plugins/HPMHooking/HPMHooking_map.HookingPoints.inc
index b11e2d61c..508465411 100644
--- a/src/plugins/HPMHooking/HPMHooking_map.HookingPoints.inc
+++ b/src/plugins/HPMHooking/HPMHooking_map.HookingPoints.inc
@@ -135,6 +135,7 @@ struct HookingPointData HookingPoints[] = {
{ HP_POP(battle->delay_damage, HP_battle_delay_damage) },
{ HP_POP(battle->drain, HP_battle_drain) },
{ HP_POP(battle->reflect_damage, HP_battle_reflect_damage) },
+ { HP_POP(battle->reflect_trap, HP_battle_reflect_trap) },
{ HP_POP(battle->attr_ratio, HP_battle_attr_ratio) },
{ HP_POP(battle->attr_fix, HP_battle_attr_fix) },
{ HP_POP(battle->calc_cardfix, HP_battle_calc_cardfix) },
@@ -1134,6 +1135,7 @@ struct HookingPointData HookingPoints[] = {
{ HP_POP(clif->pMemorialDungeonCommand, HP_clif_pMemorialDungeonCommand) },
{ HP_POP(clif->camera_showWindow, HP_clif_camera_showWindow) },
{ HP_POP(clif->camera_change, HP_clif_camera_change) },
+ { HP_POP(clif->item_preview, HP_clif_item_preview) },
/* cmdline_interface */
{ HP_POP(cmdline->init, HP_cmdline_init) },
{ HP_POP(cmdline->final, HP_cmdline_final) },
@@ -2564,6 +2566,7 @@ struct HookingPointData HookingPoints[] = {
{ HP_POP(quest->questinfo_validate_homunculus_level, HP_quest_questinfo_validate_homunculus_level) },
{ HP_POP(quest->questinfo_validate_homunculus_type, HP_quest_questinfo_validate_homunculus_type) },
{ HP_POP(quest->questinfo_validate_quests, HP_quest_questinfo_validate_quests) },
+ { HP_POP(quest->questinfo_validate_mercenary_class, HP_quest_questinfo_validate_mercenary_class) },
{ HP_POP(quest->questinfo_vector_clear, HP_quest_questinfo_vector_clear) },
/* rnd_interface */
{ HP_POP(rnd->init, HP_rnd_init) },
@@ -2923,6 +2926,7 @@ struct HookingPointData HookingPoints[] = {
{ HP_POP(skill->onskillusage, HP_skill_onskillusage) },
{ HP_POP(skill->cell_overlap, HP_skill_cell_overlap) },
{ HP_POP(skill->timerskill, HP_skill_timerskill) },
+ { HP_POP(skill->trap_do_splash, HP_skill_trap_do_splash) },
{ HP_POP(skill->trap_splash, HP_skill_trap_splash) },
{ HP_POP(skill->check_condition_mercenary, HP_skill_check_condition_mercenary) },
{ HP_POP(skill->locate_element_field, HP_skill_locate_element_field) },
diff --git a/src/plugins/HPMHooking/HPMHooking_map.Hooks.inc b/src/plugins/HPMHooking/HPMHooking_map.Hooks.inc
index 6405c03a2..fa80a68fd 100644
--- a/src/plugins/HPMHooking/HPMHooking_map.Hooks.inc
+++ b/src/plugins/HPMHooking/HPMHooking_map.Hooks.inc
@@ -2859,6 +2859,32 @@ void HP_battle_reflect_damage(struct block_list *target, struct block_list *src,
}
return;
}
+void HP_battle_reflect_trap(struct block_list *target, struct block_list *src, struct Damage *md, uint16 skill_id) {
+ int hIndex = 0;
+ if (HPMHooks.count.HP_battle_reflect_trap_pre > 0) {
+ void (*preHookFunc) (struct block_list **target, struct block_list **src, struct Damage **md, uint16 *skill_id);
+ *HPMforce_return = false;
+ for (hIndex = 0; hIndex < HPMHooks.count.HP_battle_reflect_trap_pre; hIndex++) {
+ preHookFunc = HPMHooks.list.HP_battle_reflect_trap_pre[hIndex].func;
+ preHookFunc(&target, &src, &md, &skill_id);
+ }
+ if (*HPMforce_return) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.battle.reflect_trap(target, src, md, skill_id);
+ }
+ if (HPMHooks.count.HP_battle_reflect_trap_post > 0) {
+ void (*postHookFunc) (struct block_list *target, struct block_list *src, struct Damage *md, uint16 skill_id);
+ for (hIndex = 0; hIndex < HPMHooks.count.HP_battle_reflect_trap_post; hIndex++) {
+ postHookFunc = HPMHooks.list.HP_battle_reflect_trap_post[hIndex].func;
+ postHookFunc(target, src, md, skill_id);
+ }
+ }
+ return;
+}
int HP_battle_attr_ratio(int atk_elem, int def_type, int def_lv) {
int hIndex = 0;
int retVal___ = 0;
@@ -28939,6 +28965,32 @@ void HP_clif_camera_change(struct map_session_data *sd, float range, float rotat
}
return;
}
+void HP_clif_item_preview(struct map_session_data *sd, int n) {
+ int hIndex = 0;
+ if (HPMHooks.count.HP_clif_item_preview_pre > 0) {
+ void (*preHookFunc) (struct map_session_data **sd, int *n);
+ *HPMforce_return = false;
+ for (hIndex = 0; hIndex < HPMHooks.count.HP_clif_item_preview_pre; hIndex++) {
+ preHookFunc = HPMHooks.list.HP_clif_item_preview_pre[hIndex].func;
+ preHookFunc(&sd, &n);
+ }
+ if (*HPMforce_return) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.clif.item_preview(sd, n);
+ }
+ if (HPMHooks.count.HP_clif_item_preview_post > 0) {
+ void (*postHookFunc) (struct map_session_data *sd, int n);
+ for (hIndex = 0; hIndex < HPMHooks.count.HP_clif_item_preview_post; hIndex++) {
+ postHookFunc = HPMHooks.list.HP_clif_item_preview_post[hIndex].func;
+ postHookFunc(sd, n);
+ }
+ }
+ return;
+}
/* cmdline_interface */
void HP_cmdline_init(void) {
int hIndex = 0;
@@ -66709,6 +66761,33 @@ bool HP_quest_questinfo_validate_quests(struct map_session_data *sd, struct ques
}
return retVal___;
}
+bool HP_quest_questinfo_validate_mercenary_class(struct map_session_data *sd, struct questinfo *qi) {
+ int hIndex = 0;
+ bool retVal___ = false;
+ if (HPMHooks.count.HP_quest_questinfo_validate_mercenary_class_pre > 0) {
+ bool (*preHookFunc) (struct map_session_data **sd, struct questinfo **qi);
+ *HPMforce_return = false;
+ for (hIndex = 0; hIndex < HPMHooks.count.HP_quest_questinfo_validate_mercenary_class_pre; hIndex++) {
+ preHookFunc = HPMHooks.list.HP_quest_questinfo_validate_mercenary_class_pre[hIndex].func;
+ retVal___ = preHookFunc(&sd, &qi);
+ }
+ if (*HPMforce_return) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.quest.questinfo_validate_mercenary_class(sd, qi);
+ }
+ if (HPMHooks.count.HP_quest_questinfo_validate_mercenary_class_post > 0) {
+ bool (*postHookFunc) (bool retVal___, struct map_session_data *sd, struct questinfo *qi);
+ for (hIndex = 0; hIndex < HPMHooks.count.HP_quest_questinfo_validate_mercenary_class_post; hIndex++) {
+ postHookFunc = HPMHooks.list.HP_quest_questinfo_validate_mercenary_class_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, sd, qi);
+ }
+ }
+ return retVal___;
+}
void HP_quest_questinfo_vector_clear(int m) {
int hIndex = 0;
if (HPMHooks.count.HP_quest_questinfo_vector_clear_pre > 0) {
@@ -76342,6 +76421,32 @@ int HP_skill_timerskill(int tid, int64 tick, int id, intptr_t data) {
}
return retVal___;
}
+void HP_skill_trap_do_splash(struct block_list *bl, uint16 skill_id, uint16 skill_lv, int bl_flag, int64 tick) {
+ int hIndex = 0;
+ if (HPMHooks.count.HP_skill_trap_do_splash_pre > 0) {
+ void (*preHookFunc) (struct block_list **bl, uint16 *skill_id, uint16 *skill_lv, int *bl_flag, int64 *tick);
+ *HPMforce_return = false;
+ for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_trap_do_splash_pre; hIndex++) {
+ preHookFunc = HPMHooks.list.HP_skill_trap_do_splash_pre[hIndex].func;
+ preHookFunc(&bl, &skill_id, &skill_lv, &bl_flag, &tick);
+ }
+ if (*HPMforce_return) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.skill.trap_do_splash(bl, skill_id, skill_lv, bl_flag, tick);
+ }
+ if (HPMHooks.count.HP_skill_trap_do_splash_post > 0) {
+ void (*postHookFunc) (struct block_list *bl, uint16 skill_id, uint16 skill_lv, int bl_flag, int64 tick);
+ for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_trap_do_splash_post; hIndex++) {
+ postHookFunc = HPMHooks.list.HP_skill_trap_do_splash_post[hIndex].func;
+ postHookFunc(bl, skill_id, skill_lv, bl_flag, tick);
+ }
+ }
+ return;
+}
int HP_skill_trap_splash(struct block_list *bl, va_list ap) {
int hIndex = 0;
int retVal___ = 0;
diff --git a/src/tool/Makefile.in b/src/tool/Makefile.in
deleted file mode 100644
index d4c178218..000000000
--- a/src/tool/Makefile.in
+++ /dev/null
@@ -1,88 +0,0 @@
-# This file is part of Hercules.
-# http://herc.ws - http://github.com/HerculesWS/Hercules
-#
-# Copyright (C) 2012-2018 Hercules Dev Team
-# Copyright (C) Athena Dev Teams
-#
-# Hercules is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program. If not, see <http://www.gnu.org/licenses/>.
-
-# @configure_input@
-
-CONFIG_D = ../config
-CONFIG_H = $(wildcard $(CONFIG_D)/*.h) $(wildcard $(CONFIG_D)/*/*.h)
-
-COMMON_D = ../common
-COMMON_H = $(filter-out %.p.h, $(wildcard $(COMMON_D)/*.h))
-SYSINFO_INC = $(COMMON_D)/sysinfo.inc
-COMMON_INCLUDE = -I..
-
-THIRDPARTY_D = ../../3rdparty
-THIRDPARTY_INCLUDE = -I$(THIRDPARTY_D)
-
-LIBCONFIG_D = $(THIRDPARTY_D)/libconfig
-LIBCONFIG_OBJ = $(addprefix $(LIBCONFIG_D)/, libconfig.o grammar.o scanctx.o \
- scanner.o strbuf.o)
-LIBCONFIG_H = $(addprefix $(LIBCONFIG_D)/, libconfig.h grammar.h parsectx.h \
- scanctx.h scanner.h strbuf.h wincompat.h)
-
-@SET_MAKE@
-
-CC = @CC@
-export CC
-
-#####################################################################
-.PHONY: all clean buildclean help
-
-all: Makefile
-
-buildclean:
- @echo " CLEAN tool (build temp files)"
- @rm -rf obj_all/*.o
-
-clean: buildclean
- @echo " CLEAN tool"
-
-help:
- @echo "possible targets are 'all' 'clean' 'help'"
- @echo "'all' - builds all above targets"
- @echo "'clean' - cleans builds and objects"
- @echo "'buildclean' - cleans build temporary (object) files, without deleting the"
- @echo " executables"
- @echo "'help' - outputs this message"
-
-#####################################################################
-
-Makefile: Makefile.in
- @$(MAKE) -C ../.. src/tool/Makefile
-
-$(SYSINFO_INC): $(COMMON_H) $(CONFIG_H) $(LIBCONFIG_H)
- @echo " MAKE $@"
- @$(MAKE) -C ../.. sysinfo
-
-obj_all:
- @echo " MKDIR obj_all"
- @-mkdir obj_all
-
-obj_all/%.o: %.c $(COMMON_H) $(CONFIG_H) $(LIBCONFIG_H) | obj_all
- @echo " CC $<"
- @$(CC) @CFLAGS@ @DEFS@ $(COMMON_INCLUDE) $(THIRDPARTY_INCLUDE) @CPPFLAGS@ -c $(OUTPUT_OPTION) $<
-
-# missing common object files
-$(COMMON_D)/obj_all/common_mini.a:
- @echo " MAKE $@"
- @$(MAKE) -C $(COMMON_D) common_mini
-
-$(LIBCONFIG_OBJ):
- @echo " MAKE $@"
- @$(MAKE) -C $(LIBCONFIG_D)