summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/char/int_guild.c1
-rw-r--r--src/char/int_party.c1
-rw-r--r--src/char/inter.c95
-rw-r--r--src/char/inter.h11
-rw-r--r--src/char/mapif.c198
-rw-r--r--src/char/mapif.h13
-rw-r--r--src/common/HPMDataCheck.h4
-rw-r--r--src/common/packets/packets2019_len_main.h52
-rw-r--r--src/common/packets/packets2019_len_re.h52
-rw-r--r--src/common/packets/packets2019_len_zero.h57
-rw-r--r--src/map/atcommand.c23
-rw-r--r--src/map/battle.h4
-rw-r--r--src/map/clif.c79
-rw-r--r--src/map/clif.h7
-rw-r--r--src/map/guild.c22
-rw-r--r--src/map/guild.h1
-rw-r--r--src/map/homunculus.c28
-rw-r--r--src/map/homunculus.h1
-rw-r--r--src/map/intif.c329
-rw-r--r--src/map/intif.h13
-rw-r--r--src/map/itemdb.c5
-rw-r--r--src/map/itemdb.h2
-rw-r--r--src/map/mapdefines.h10
-rw-r--r--src/map/messages_main.h88
-rw-r--r--src/map/messages_re.h88
-rw-r--r--src/map/messages_zero.h102
-rw-r--r--src/map/npc.h2
-rw-r--r--src/map/packets_keys_main.h7
-rw-r--r--src/map/packets_keys_zero.h7
-rw-r--r--src/map/packets_shuffle_main.h39
-rw-r--r--src/map/packets_shuffle_re.h39
-rw-r--r--src/map/packets_shuffle_zero.h35
-rw-r--r--src/map/packets_struct.h34
-rw-r--r--src/map/party.c25
-rw-r--r--src/map/party.h1
-rw-r--r--src/map/pc.c78
-rw-r--r--src/map/pc.h3
-rw-r--r--src/map/script.c191
-rw-r--r--src/map/script.h25
-rw-r--r--src/map/status.c110
-rw-r--r--src/map/status.h15
-rw-r--r--src/map/trade.c6
-rw-r--r--src/plugins/HPMHooking/HPMHooking.Defs.inc98
-rw-r--r--src/plugins/HPMHooking/HPMHooking_char.HPMHooksCore.inc68
-rw-r--r--src/plugins/HPMHooking/HPMHooking_char.HookingPoints.inc17
-rw-r--r--src/plugins/HPMHooking/HPMHooking_char.Hooks.inc463
-rw-r--r--src/plugins/HPMHooking/HPMHooking_map.HPMHooksCore.inc96
-rw-r--r--src/plugins/HPMHooking/HPMHooking_map.HookingPoints.inc24
-rw-r--r--src/plugins/HPMHooking/HPMHooking_map.Hooks.inc649
49 files changed, 1378 insertions, 1940 deletions
diff --git a/src/char/int_guild.c b/src/char/int_guild.c
index 8e05c76e2..87cb3bee0 100644
--- a/src/char/int_guild.c
+++ b/src/char/int_guild.c
@@ -1612,7 +1612,6 @@ static int inter_guild_parse_frommap(int fd)
case 0x3034: mapif->parse_GuildLeave(fd, RFIFOL(fd,2), RFIFOL(fd,6), RFIFOL(fd,10), RFIFOB(fd,14), RFIFOP(fd,15)); break;
case 0x3035: mapif->parse_GuildChangeMemberInfoShort(fd,RFIFOL(fd,2),RFIFOL(fd,6),RFIFOL(fd,10),RFIFOB(fd,14),RFIFOL(fd,15),RFIFOL(fd,19)); break;
case 0x3036: mapif->parse_BreakGuild(fd,RFIFOL(fd,2)); break;
- case 0x3037: mapif->parse_GuildMessage(fd, RFIFOL(fd,4), RFIFOL(fd,8), RFIFOP(fd,12), RFIFOW(fd,2)-12); break;
case 0x3039: mapif->parse_GuildBasicInfoChange(fd, RFIFOL(fd,4), RFIFOW(fd,8), RFIFOP(fd,10), RFIFOW(fd,2)-10); break;
case 0x303A: mapif->parse_GuildMemberInfoChange(fd, RFIFOL(fd,4), RFIFOL(fd,8), RFIFOL(fd,12), RFIFOW(fd,16), RFIFOP(fd,18), RFIFOW(fd,2)-18); break;
case 0x303B: mapif->parse_GuildPosition(fd, RFIFOL(fd,4), RFIFOL(fd,8), RFIFOP(fd,12)); break;
diff --git a/src/char/int_party.c b/src/char/int_party.c
index 8ee03ecc5..c27d708f2 100644
--- a/src/char/int_party.c
+++ b/src/char/int_party.c
@@ -599,7 +599,6 @@ static int inter_party_parse_frommap(int fd)
case 0x3024: mapif->parse_PartyLeave(fd, RFIFOL(fd,2), RFIFOL(fd,6), RFIFOL(fd,10)); break;
case 0x3025: mapif->parse_PartyChangeMap(fd, RFIFOL(fd,2), RFIFOL(fd,6), RFIFOL(fd,10), RFIFOW(fd,14), RFIFOB(fd,16), RFIFOW(fd,17)); break;
case 0x3026: mapif->parse_BreakParty(fd, RFIFOL(fd,2)); break;
- case 0x3027: mapif->parse_PartyMessage(fd, RFIFOL(fd,4), RFIFOL(fd,8), RFIFOP(fd,12), RFIFOW(fd,2)-12); break;
case 0x3029: mapif->parse_PartyLeaderChange(fd, RFIFOL(fd,2), RFIFOL(fd,6), RFIFOL(fd,10)); break;
default:
return 0;
diff --git a/src/char/inter.c b/src/char/inter.c
index 64c840c16..264327289 100644
--- a/src/char/inter.c
+++ b/src/char/inter.c
@@ -53,9 +53,6 @@
#include <stdio.h>
#include <stdlib.h>
-#define WISDATA_TTL (60*1000) // Wis data Time To Live (60 seconds)
-#define WISDELLIST_MAX 256 // Number of elements in the list Delete data Wis
-
static struct inter_interface inter_s;
struct inter_interface *inter;
@@ -70,10 +67,10 @@ int party_share_level = 10;
// recv. packet list
static int inter_recv_packet_length[] = {
- -1,-1, 7,-1, -1,13,36, (2 + 4 + 4 + 4 + NAME_LENGTH), 0, 0, 0, 0, 0, 0, 0, 0, // 3000-
+ 0, 0, 0, 0, -1,13,36, (2 + 4 + 4 + 4 + NAME_LENGTH), 0, 0, 0, 0, 0, 0, 0, 0, // 3000-
6,-1, 6,-1, 0, 0, 0, 0, 10,-1, 0, 0, 0, 0, 0, 0, // 3010- Account Storage, Achievements [Smokexyz]
- -1,10,-1,14, 14,19, 6,-1, 14,14, 0, 0, 0, 0, 0, 0, // 3020- Party
- -1, 6,-1,-1, 55,23, 6,-1, 14,-1,-1,-1, 18,19,186,-1, // 3030-
+ -1,10,-1,14, 14,19, 6, 0, 14,14, 0, 0, 0, 0, 0, 0, // 3020- Party
+ -1, 6,-1,-1, 55,23, 6, 0, 14,-1,-1,-1, 18,19,186,-1, // 3030-
-1, 9, 0, 0, 10,10, 0, 0, 7, 6,10,10, 10,-1, 0, 0, // 3040- Clan System(3044-3045)
-1,-1,10,10, 0,-1,12, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 3050- Auction System [Zephyrus], Item Bound [Mhalicot]
6,-1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 3060- Quest system [Kevin] [Inkfish]
@@ -82,9 +79,6 @@ static int inter_recv_packet_length[] = {
-1,10,-1, 6, 0, 20,10,20, -1,6 + NAME_LENGTH, 0, 0, 0, 0, 0, 0, // 3090- Homunculus packets [albator], RoDEX packets
};
-static struct DBMap *wis_db = NULL; // int wis_id -> struct WisData*
-static int wis_dellist[WISDELLIST_MAX], wis_delnum;
-
#define MAX_JOB_NAMES 150
static char *msg_table[MAX_JOB_NAMES]; // messages 550 ~ 699 are job names
@@ -964,7 +958,6 @@ static int inter_init_sql(const char *file)
Sql_ShowDebug(inter->sql_handle);
}
- wis_db = idb_alloc(DB_OPT_RELEASE_DATA);
inter_guild->sql_init();
inter_storage->sql_init();
inter_party->sql_init();
@@ -985,8 +978,6 @@ static int inter_init_sql(const char *file)
// finalize
static void inter_final(void)
{
- wis_db->destroy(wis_db, NULL);
-
inter_guild->sql_final();
inter_storage->sql_final();
inter_party->sql_final();
@@ -1011,77 +1002,6 @@ static int inter_mapif_init(int fd)
//--------------------------------------------------------
-/**
- * Existence check of WISP data
- * @see DBApply
- */
-static int inter_check_ttl_wisdata_sub(union DBKey key, struct DBData *data, va_list ap)
-{
- int64 tick;
- struct WisData *wd = DB->data2ptr(data);
- nullpo_ret(wd);
- tick = va_arg(ap, int64);
-
- if (DIFF_TICK(tick, wd->tick) > WISDATA_TTL && wis_delnum < WISDELLIST_MAX)
- wis_dellist[wis_delnum++] = wd->id;
-
- return 0;
-}
-
-static int inter_check_ttl_wisdata(void)
-{
- int64 tick = timer->gettick();
- int i;
-
- do {
- wis_delnum = 0;
- wis_db->foreach(wis_db, inter->check_ttl_wisdata_sub, tick);
- for(i = 0; i < wis_delnum; i++) {
- struct WisData *wd = (struct WisData*)idb_get(wis_db, wis_dellist[i]);
- ShowWarning("inter: wis data id=%d time out : from %s to %s\n", wd->id, wd->src, wd->dst);
- // removed. not send information after a timeout. Just no answer for the player
- //mapif->wis_end(wd, 1); // flag: 0: success to send whisper, 1: target character is not logged in?, 2: ignored by target
- idb_remove(wis_db, wd->id);
- }
- } while(wis_delnum >= WISDELLIST_MAX);
-
- return 0;
-}
-
-static struct WisData *inter_add_wisdata(int fd, const unsigned char *src, const unsigned char *dst, const unsigned char *msg, int msg_len)
-{
- static int wisid = 0;
- struct WisData *wd;
-
- CREATE(wd, struct WisData, 1);
-
- // Whether the failure of previous wisp/page transmission (timeout)
- inter->check_ttl_wisdata();
-
- wd->id = ++wisid;
- wd->fd = fd;
- wd->len = msg_len;
- memcpy(wd->src, src, NAME_LENGTH);
- memcpy(wd->dst, dst, NAME_LENGTH);
- memcpy(wd->msg, msg, wd->len);
- wd->tick = timer->gettick();
- idb_put(wis_db, wd->id, wd);
-
- return wd;
-}
-
-static struct WisData *inter_get_wisdata(int id)
-{
- return idb_get(wis_db, id);
-}
-
-static void inter_remove_wisdata(int id)
-{
- idb_remove(wis_db, id);
-}
-
-//--------------------------------------------------------
-
/// Returns the length of the next complete packet to process,
/// or 0 if no complete packet exists in the queue.
///
@@ -1115,10 +1035,6 @@ static int inter_parse_frommap(int fd)
return 2;
switch(cmd) {
- case 0x3000: mapif->parse_broadcast(fd); break;
- case 0x3001: mapif->parse_WisRequest(fd); break;
- case 0x3002: mapif->parse_WisReply(fd); break;
- case 0x3003: mapif->parse_WisToGM(fd); break;
case 0x3004: mapif->parse_Registry(fd); break;
case 0x3005: mapif->parse_RegistryRequest(fd); break;
case 0x3006: mapif->parse_NameChangeRequest(fd); break;
@@ -1167,8 +1083,6 @@ void inter_defaults(void)
inter->log = inter_log;
inter->init_sql = inter_init_sql;
inter->mapif_init = inter_mapif_init;
- inter->check_ttl_wisdata_sub = inter_check_ttl_wisdata_sub;
- inter->check_ttl_wisdata = inter_check_ttl_wisdata;
inter->check_length = inter_check_length;
inter->parse_frommap = inter_parse_frommap;
inter->final = inter_final;
@@ -1176,7 +1090,4 @@ void inter_defaults(void)
inter->config_read_connection = inter_config_read_connection;
inter->accinfo = inter_accinfo;
inter->accinfo2 = inter_accinfo2;
- inter->add_wisdata = inter_add_wisdata;
- inter->get_wisdata = inter_get_wisdata;
- inter->remove_wisdata = inter_remove_wisdata;
}
diff --git a/src/char/inter.h b/src/char/inter.h
index 94ee3ab60..f97c619c0 100644
--- a/src/char/inter.h
+++ b/src/char/inter.h
@@ -30,12 +30,6 @@
struct Sql; // common/sql.h
struct config_t; // common/conf.h
-struct WisData {
- int id, fd, count, len;
- int64 tick;
- unsigned char src[24], dst[24], msg[512];
-};
-
/**
* inter interface
**/
@@ -54,8 +48,6 @@ struct inter_interface {
int (*log) (char* fmt, ...);
int (*init_sql) (const char *file);
int (*mapif_init) (int fd);
- int (*check_ttl_wisdata_sub) (union DBKey key, struct DBData *data, va_list ap);
- int (*check_ttl_wisdata) (void);
int (*check_length) (int fd, int length);
int (*parse_frommap) (int fd);
void (*final) (void);
@@ -66,9 +58,6 @@ struct inter_interface {
void (*accinfo2) (bool success, int map_fd, int u_fd, int u_aid, int account_id, const char *userid, const char *user_pass,
const char *email, const char *last_ip, const char *lastlogin, const char *pin_code, const char *birthdate,
int group_id, int logincount, int state);
- struct WisData *(*add_wisdata) (int fd, const unsigned char *src, const unsigned char *dst, const unsigned char *msg, int msg_len);
- struct WisData *(*get_wisdata) (int id);
- void (*remove_wisdata) (int id);
};
#ifdef HERCULES_CORE
diff --git a/src/char/mapif.c b/src/char/mapif.c
index 8f213ecb5..29be4eaa2 100644
--- a/src/char/mapif.c
+++ b/src/char/mapif.c
@@ -596,22 +596,6 @@ static int mapif_guild_broken(int guild_id, int flag)
return 0;
}
-// Send guild message
-static int mapif_guild_message(int guild_id, int account_id, const char *mes, int len, int sfd)
-{
- unsigned char buf[512];
- nullpo_ret(mes);
- if (len > 500)
- len = 500;
- WBUFW(buf, 0) = 0x3837;
- WBUFW(buf, 2) = len + 12;
- WBUFL(buf, 4) = guild_id;
- WBUFL(buf, 8) = account_id;
- memcpy(WBUFP(buf, 12), mes, len);
- mapif->sendallwos(sfd, buf, len + 12);
- return 0;
-}
-
// Send basic info
static int mapif_guild_basicinfochanged(int guild_id, int type, const void *data, int len)
{
@@ -810,12 +794,6 @@ static int mapif_parse_BreakGuild(int fd, int guild_id)
return 0;
}
-// Forward Guild message to others map servers
-static int mapif_parse_GuildMessage(int fd, int guild_id, int account_id, const char *mes, int len)
-{
- return mapif->guild_message(guild_id,account_id,mes,len, fd);
-}
-
/**
* Changes basic guild information
* The types are available in mmo.h::guild_basic_info
@@ -1319,20 +1297,6 @@ static int mapif_party_broken(int party_id, int flag)
return 0;
}
-//Remarks in the party
-static int mapif_party_message(int party_id, int account_id, const char *mes, int len, int sfd)
-{
- unsigned char buf[512];
- nullpo_ret(mes);
- WBUFW(buf, 0) = 0x3827;
- WBUFW(buf, 2) = len + 12;
- WBUFL(buf, 4) = party_id;
- WBUFL(buf, 8) = account_id;
- memcpy(WBUFP(buf, 12), mes, len);
- mapif->sendallwos(sfd, buf, len + 12);
- return 0;
-}
-
// Create Party
static int mapif_parse_CreateParty(int fd, const char *name, int item, int item2, const struct party_member *leader)
{
@@ -1408,12 +1372,6 @@ static int mapif_parse_BreakParty(int fd, int party_id)
return 0;
}
-//Party sending the message
-static int mapif_parse_PartyMessage(int fd, int party_id, int account_id, const char *mes, int len)
-{
- return mapif->party_message(party_id, account_id, mes, len, fd);
-}
-
static int mapif_parse_PartyLeaderChange(int fd, int party_id, int account_id, int char_id)
{
if (!inter_party->change_leader(party_id, account_id, char_id))
@@ -2034,67 +1992,6 @@ static void mapif_parse_accinfo(int fd)
inter->accinfo(u_fd, aid, castergroup, query, fd);
}
-// broadcast sending
-static int mapif_broadcast(const unsigned char *mes, int len, unsigned int fontColor, short fontType, short fontSize, short fontAlign, short fontY, int sfd)
-{
- unsigned char *buf = (unsigned char*)aMalloc((len)*sizeof(unsigned char));
-
- nullpo_ret(mes);
- Assert_ret(len >= 16);
- WBUFW(buf, 0) = 0x3800;
- WBUFW(buf, 2) = len;
- WBUFL(buf, 4) = fontColor;
- WBUFW(buf, 8) = fontType;
- WBUFW(buf, 10) = fontSize;
- WBUFW(buf, 12) = fontAlign;
- WBUFW(buf, 14) = fontY;
- memcpy(WBUFP(buf, 16), mes, len - 16);
- mapif->sendallwos(sfd, buf, len);
-
- aFree(buf);
- return 0;
-}
-
-// Wis sending
-static int mapif_wis_message(struct WisData *wd)
-{
- unsigned char buf[2048];
- nullpo_ret(wd);
- //if (wd->len > 2047-56) wd->len = 2047-56; //Force it to fit to avoid crashes. [Skotlex]
- if (wd->len < 0)
- wd->len = 0;
- if (wd->len >= (int)sizeof(wd->msg) - 1)
- wd->len = (int)sizeof(wd->msg) - 1;
-
- WBUFW(buf, 0) = 0x3801;
- WBUFW(buf, 2) = 56 + wd->len;
- WBUFL(buf, 4) = wd->id;
- memcpy(WBUFP(buf, 8), wd->src, NAME_LENGTH);
- memcpy(WBUFP(buf, 32), wd->dst, NAME_LENGTH);
- memcpy(WBUFP(buf, 56), wd->msg, wd->len);
- wd->count = mapif->sendall(buf, WBUFW(buf, 2));
-
- return 0;
-}
-
-static void mapif_wis_response(int fd, const unsigned char *src, int flag)
-{
- unsigned char buf[27];
- nullpo_retv(src);
- WBUFW(buf, 0) = 0x3802;
- memcpy(WBUFP(buf, 2), src, 24);
- WBUFB(buf, 26) = flag;
- mapif->send(fd, buf, 27);
-}
-
-// Wis sending result
-static int mapif_wis_end(struct WisData *wd, int flag)
-{
- nullpo_ret(wd);
- mapif->wis_response(wd->fd, wd->src, flag);
- return 0;
-}
-
#if 0
// Account registry transfer to map-server
static void mapif_account_reg(int fd, unsigned char *src)
@@ -2126,89 +2023,6 @@ static int mapif_disconnectplayer(int fd, int account_id, int char_id, int reaso
return 0;
}
-// broadcast sending
-static int mapif_parse_broadcast(int fd)
-{
- mapif->broadcast(RFIFOP(fd, 16), RFIFOW(fd, 2), RFIFOL(fd, 4), RFIFOW(fd, 8), RFIFOW(fd, 10), RFIFOW(fd, 12), RFIFOW(fd, 14), fd);
- return 0;
-}
-
-// Wisp/page request to send
-static int mapif_parse_WisRequest(int fd)
-{
- struct WisData* wd;
- char name[NAME_LENGTH];
- char *data;
- size_t len;
-
- if (fd <= 0) // check if we have a valid fd
- return 0;
-
- if (RFIFOW(fd, 2) - 52 >= sizeof(wd->msg)) {
- ShowWarning("inter: Wis message size too long.\n");
- return 0;
- } else if (RFIFOW(fd, 2) - 52 <= 0) { // normally, impossible, but who knows...
- ShowError("inter: Wis message doesn't exist.\n");
- return 0;
- }
-
- safestrncpy(name, RFIFOP(fd, 28), NAME_LENGTH); //Received name may be too large and not contain \0! [Skotlex]
-
- // search if character exists before to ask all map-servers
- if (!chr->name_exists(name, NULL)) {
- mapif->wis_response(fd, RFIFOP(fd, 4), 1);
- } else {
- // Character exists. So, ask all map-servers
-
- // to be sure of the correct name, rewrite it
- SQL->GetData(inter->sql_handle, 0, &data, &len);
- memset(name, 0, NAME_LENGTH);
- memcpy(name, data, min(len, NAME_LENGTH));
- // if source is destination, don't ask other servers.
- if (strncmp(RFIFOP(fd, 4), name, NAME_LENGTH) == 0) {
- mapif->wis_response(fd, RFIFOP(fd, 4), 1);
- } else {
- wd = inter->add_wisdata(fd, RFIFOP(fd, 4), RFIFOP(fd, 28), RFIFOP(fd, 52), RFIFOW(fd, 2) - 52);
- mapif->wis_message(wd);
- }
- }
-
- SQL->FreeResult(inter->sql_handle);
- return 0;
-}
-
-// Wisp/page transmission result
-static int mapif_parse_WisReply(int fd)
-{
- int id, flag;
- struct WisData *wd;
-
- id = RFIFOL(fd,2);
- flag = RFIFOB(fd,6);
- wd = inter->get_wisdata(id);
- if (wd == NULL)
- return 0; // This wisp was probably suppress before, because it was timeout of because of target was found on another map-server
-
- if ((--wd->count) <= 0 || flag != 1) {
- mapif->wis_end(wd, flag); // flag: 0: success to send whisper, 1: target character is not logged in?, 2: ignored by target
- inter->remove_wisdata(id);
- }
-
- return 0;
-}
-
-// Received wisp message from map-server for ALL gm (just copy the message and resends it to ALL map-servers)
-static int mapif_parse_WisToGM(int fd)
-{
- unsigned char buf[2048]; // 0x3003/0x3803 <packet_len>.w <wispname>.24B <min_gm_level>.w <message>.?B
-
- memcpy(WBUFP(buf,0), RFIFOP(fd,0), RFIFOW(fd,2)); // Message contains the NUL terminator (see intif_wis_message_to_gm())
- WBUFW(buf, 0) = 0x3803;
- mapif->sendall(buf, RFIFOW(fd,2));
-
- return 0;
-}
-
// Save account_reg into sql (type=2)
static int mapif_parse_Registry(int fd)
{
@@ -2532,7 +2346,6 @@ void mapif_defaults(void)
mapif->guild_withdraw = mapif_guild_withdraw;
mapif->guild_memberinfoshort = mapif_guild_memberinfoshort;
mapif->guild_broken = mapif_guild_broken;
- mapif->guild_message = mapif_guild_message;
mapif->guild_basicinfochanged = mapif_guild_basicinfochanged;
mapif->guild_memberinfochanged = mapif_guild_memberinfochanged;
mapif->guild_skillupack = mapif_guild_skillupack;
@@ -2548,7 +2361,6 @@ void mapif_defaults(void)
mapif->parse_GuildLeave = mapif_parse_GuildLeave;
mapif->parse_GuildChangeMemberInfoShort = mapif_parse_GuildChangeMemberInfoShort;
mapif->parse_BreakGuild = mapif_parse_BreakGuild;
- mapif->parse_GuildMessage = mapif_parse_GuildMessage;
mapif->parse_GuildBasicInfoChange = mapif_parse_GuildBasicInfoChange;
mapif->parse_GuildMemberInfoChange = mapif_parse_GuildMemberInfoChange;
mapif->parse_GuildPosition = mapif_parse_GuildPosition;
@@ -2596,7 +2408,6 @@ void mapif_defaults(void)
mapif->party_withdraw = mapif_party_withdraw;
mapif->party_membermoved = mapif_party_membermoved;
mapif->party_broken = mapif_party_broken;
- mapif->party_message = mapif_party_message;
mapif->parse_CreateParty = mapif_parse_CreateParty;
mapif->parse_PartyInfo = mapif_parse_PartyInfo;
mapif->parse_PartyAddMember = mapif_parse_PartyAddMember;
@@ -2604,7 +2415,6 @@ void mapif_defaults(void)
mapif->parse_PartyLeave = mapif_parse_PartyLeave;
mapif->parse_PartyChangeMap = mapif_parse_PartyChangeMap;
mapif->parse_BreakParty = mapif_parse_BreakParty;
- mapif->parse_PartyMessage = mapif_parse_PartyMessage;
mapif->parse_PartyLeaderChange = mapif_parse_PartyLeaderChange;
mapif->pet_created = mapif_pet_created;
mapif->pet_info = mapif_pet_info;
@@ -2644,16 +2454,8 @@ void mapif_defaults(void)
mapif->itembound_ack = mapif_itembound_ack;
mapif->parse_ItemBoundRetrieve = mapif_parse_ItemBoundRetrieve;
mapif->parse_accinfo = mapif_parse_accinfo;
- mapif->broadcast = mapif_broadcast;
- mapif->wis_message = mapif_wis_message;
- mapif->wis_response = mapif_wis_response;
- mapif->wis_end = mapif_wis_end;
mapif->account_reg_reply = mapif_account_reg_reply;
mapif->disconnectplayer = mapif_disconnectplayer;
- mapif->parse_broadcast = mapif_parse_broadcast;
- mapif->parse_WisRequest = mapif_parse_WisRequest;
- mapif->parse_WisReply = mapif_parse_WisReply;
- mapif->parse_WisToGM = mapif_parse_WisToGM;
mapif->parse_Registry = mapif_parse_Registry;
mapif->parse_RegistryRequest = mapif_parse_RegistryRequest;
mapif->namechange_ack = mapif_namechange_ack;
diff --git a/src/char/mapif.h b/src/char/mapif.h
index 71a41f94c..f5b54b6b7 100644
--- a/src/char/mapif.h
+++ b/src/char/mapif.h
@@ -23,7 +23,6 @@
#include "common/hercules.h"
#include "common/mmo.h"
-struct WisData;
struct rodex_item;
/**
@@ -71,7 +70,6 @@ struct mapif_interface {
int (*guild_withdraw) (int guild_id, int account_id, int char_id, int flag, const char *name, const char *mes);
int (*guild_memberinfoshort) (struct guild *g, int idx);
int (*guild_broken) (int guild_id, int flag);
- int (*guild_message) (int guild_id, int account_id, const char *mes, int len, int sfd);
int (*guild_basicinfochanged) (int guild_id, int type, const void *data, int len);
int (*guild_memberinfochanged) (int guild_id, int account_id, int char_id, int type, const void *data, int len);
int (*guild_skillupack) (int guild_id, uint16 skill_id, int account_id);
@@ -87,7 +85,6 @@ struct mapif_interface {
int (*parse_GuildLeave) (int fd, int guild_id, int account_id, int char_id, int flag, const char *mes);
int (*parse_GuildChangeMemberInfoShort) (int fd, int guild_id, int account_id, int char_id, int online, int lv, int class);
int (*parse_BreakGuild) (int fd, int guild_id);
- int (*parse_GuildMessage) (int fd, int guild_id, int account_id, const char *mes, int len);
int (*parse_GuildBasicInfoChange) (int fd, int guild_id, int type, const void *data, int len);
int (*parse_GuildMemberInfoChange) (int fd, int guild_id, int account_id, int char_id, int type, const char *data, int len);
int (*parse_GuildPosition) (int fd, int guild_id, int idx, const struct guild_position *p);
@@ -135,7 +132,6 @@ struct mapif_interface {
int (*party_withdraw) (int party_id,int account_id, int char_id);
int (*party_membermoved) (struct party *p, int idx);
int (*party_broken) (int party_id, int flag);
- int (*party_message) (int party_id, int account_id, const char *mes, int len, int sfd);
int (*parse_CreateParty) (int fd, const char *name, int item, int item2, const struct party_member *leader);
void (*parse_PartyInfo) (int fd, int party_id, int char_id);
int (*parse_PartyAddMember) (int fd, int party_id, const struct party_member *member);
@@ -143,7 +139,6 @@ struct mapif_interface {
int (*parse_PartyLeave) (int fd, int party_id, int account_id, int char_id);
int (*parse_PartyChangeMap) (int fd, int party_id, int account_id, int char_id, unsigned short map, int online, unsigned int lv);
int (*parse_BreakParty) (int fd, int party_id);
- int (*parse_PartyMessage) (int fd, int party_id, int account_id, const char *mes, int len);
int (*parse_PartyLeaderChange) (int fd, int party_id, int account_id, int char_id);
int (*pet_created) (int fd, int account_id, struct s_pet *p);
int (*pet_info) (int fd, int account_id, struct s_pet *p);
@@ -182,16 +177,8 @@ struct mapif_interface {
int (*itembound_ack) (int fd, int aid, int guild_id);
void (*parse_ItemBoundRetrieve) (int fd);
void (*parse_accinfo) (int fd);
- int (*broadcast) (const unsigned char *mes, int len, unsigned int fontColor, short fontType, short fontSize, short fontAlign, short fontY, int sfd);
- int (*wis_message) (struct WisData *wd);
- void (*wis_response) (int fd, const unsigned char *src, int flag);
- int (*wis_end) (struct WisData *wd, int flag);
int (*account_reg_reply) (int fd,int account_id,int char_id, int type);
int (*disconnectplayer) (int fd, int account_id, int char_id, int reason);
- int (*parse_broadcast) (int fd);
- int (*parse_WisRequest) (int fd);
- int (*parse_WisReply) (int fd);
- int (*parse_WisToGM) (int fd);
int (*parse_Registry) (int fd);
int (*parse_RegistryRequest) (int fd);
void (*namechange_ack) (int fd, int account_id, int char_id, int type, int flag, const char *name);
diff --git a/src/common/HPMDataCheck.h b/src/common/HPMDataCheck.h
index ec3479f4d..fd34a1d82 100644
--- a/src/common/HPMDataCheck.h
+++ b/src/common/HPMDataCheck.h
@@ -52,7 +52,6 @@ HPExport const struct s_HPMDataCheck HPMDataCheck[] = {
#define CHAR_GEOIP_H
#endif // CHAR_GEOIP_H
#ifdef CHAR_INTER_H
- { "WisData", sizeof(struct WisData), SERVER_TYPE_CHAR },
{ "inter_interface", sizeof(struct inter_interface), SERVER_TYPE_CHAR },
#else
#define CHAR_INTER_H
@@ -666,6 +665,8 @@ HPExport const struct s_HPMDataCheck HPMDataCheck[] = {
{ "PACKET_ZC_ACK_LEAVE_GUILD1", sizeof(struct PACKET_ZC_ACK_LEAVE_GUILD1), SERVER_TYPE_MAP },
{ "PACKET_ZC_ACK_LEAVE_GUILD2", sizeof(struct PACKET_ZC_ACK_LEAVE_GUILD2), SERVER_TYPE_MAP },
{ "PACKET_ZC_ACK_OPEN_WRITE_MAIL", sizeof(struct PACKET_ZC_ACK_OPEN_WRITE_MAIL), SERVER_TYPE_MAP },
+ { "PACKET_ZC_ACK_RANKING_name", sizeof(struct PACKET_ZC_ACK_RANKING_name), SERVER_TYPE_MAP },
+ { "PACKET_ZC_ACK_RANKING_points", sizeof(struct PACKET_ZC_ACK_RANKING_points), SERVER_TYPE_MAP },
{ "PACKET_ZC_ACK_RANKING_sub", sizeof(struct PACKET_ZC_ACK_RANKING_sub), SERVER_TYPE_MAP },
{ "PACKET_ZC_ACK_REMOVE_ITEM_MAIL", sizeof(struct PACKET_ZC_ACK_REMOVE_ITEM_MAIL), SERVER_TYPE_MAP },
{ "PACKET_ZC_ACK_REQMAKINGITEM", sizeof(struct PACKET_ZC_ACK_REQMAKINGITEM), SERVER_TYPE_MAP },
@@ -742,6 +743,7 @@ HPExport const struct s_HPMDataCheck HPMDataCheck[] = {
{ "PACKET_ZC_SPRITE_CHANGE", sizeof(struct PACKET_ZC_SPRITE_CHANGE), SERVER_TYPE_MAP },
{ "PACKET_ZC_STATUS_CHANGE_ACK", sizeof(struct PACKET_ZC_STATUS_CHANGE_ACK), SERVER_TYPE_MAP },
{ "PACKET_ZC_STYLE_CHANGE_RES", sizeof(struct PACKET_ZC_STYLE_CHANGE_RES), SERVER_TYPE_MAP },
+ { "PACKET_ZC_TALKBOX_CHATCONTENTS", sizeof(struct PACKET_ZC_TALKBOX_CHATCONTENTS), SERVER_TYPE_MAP },
{ "PACKET_ZC_UI_ACTION", sizeof(struct PACKET_ZC_UI_ACTION), SERVER_TYPE_MAP },
{ "PACKET_ZC_UPDATE_ITEM_FROM_BUYING_STORE", sizeof(struct PACKET_ZC_UPDATE_ITEM_FROM_BUYING_STORE), SERVER_TYPE_MAP },
{ "PACKET_ZC_USE_ITEM_ACK", sizeof(struct PACKET_ZC_USE_ITEM_ACK), SERVER_TYPE_MAP },
diff --git a/src/common/packets/packets2019_len_main.h b/src/common/packets/packets2019_len_main.h
index 949aae804..424abe14f 100644
--- a/src/common/packets/packets2019_len_main.h
+++ b/src/common/packets/packets2019_len_main.h
@@ -103,7 +103,11 @@ packetLen(0x007c, 44) // ZC_NOTIFY_STANDENTRY_NPC
packetLen(0x007d, 2) // CZ_NOTIFY_ACTORINIT
// Packet: 0x007e
+#if PACKETVER >= 20190904
+packetLen(0x007e, 46) // CZ_REQUEST_TIME
+#elif PACKETVER >= 20190109
packetLen(0x007e, 105) // CZ_REQUEST_TIME
+#endif
// Packet: 0x007f
packetLen(0x007f, 6) // ZC_NOTIFY_TIME
@@ -916,7 +920,11 @@ packetLen(0x018f, 8) // ZC_ACK_REQMAKINGITEM
packetLen(0x0190, 23) // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
// Packet: 0x0191
+#if PACKETVER >= 20190904
+packetLen(0x0191, 27) // ZC_TALKBOX_CHATCONTENTS
+#elif PACKETVER >= 20190109
packetLen(0x0191, 86) // ZC_TALKBOX_CHATCONTENTS
+#endif
// Packet: 0x0192
packetLen(0x0192, 24) // ZC_UPDATE_MAPINFO
@@ -1966,7 +1974,11 @@ packetLen(0x0365, 8) // CZ_MOVE_ITEM_FROM_STORE_TO_BODY2
packetLen(0x0366, 10) // CZ_USE_SKILL_TOGROUND2
// Packet: 0x0367
+#if PACKETVER >= 20190904
+packetLen(0x0367, 31) // CZ_USE_SKILL_TOGROUND_WITHTALKBOX2
+#elif PACKETVER >= 20190109
packetLen(0x0367, 90) // CZ_USE_SKILL_TOGROUND_WITHTALKBOX2
+#endif
// Packet: 0x0368
packetLen(0x0368, 6) // CZ_REQNAME2
@@ -4710,5 +4722,45 @@ packetLen(0x0b54, 8)
packetLen(0x0b55, -1)
#endif
+// Packet: 0x0b56
+#if PACKETVER >= 20190904
+packetLen(0x0b56, -1)
+#endif
+
+// Packet: 0x0b57
+#if PACKETVER >= 20190904
+packetLen(0x0b57, -1)
+#endif
+
+// Packet: 0x0b58
+#if PACKETVER >= 20190904
+packetLen(0x0b58, 2)
+#endif
+
+// Packet: 0x0b59
+#if PACKETVER >= 20190918
+packetLen(0x0b59, 2)
+#endif
+
+// Packet: 0x0b5a
+#if PACKETVER >= 20190918
+packetLen(0x0b5a, 4)
+#endif
+
+// Packet: 0x0b5b
+#if PACKETVER >= 20190918
+packetLen(0x0b5b, -1)
+#endif
+
+// Packet: 0x0b5c
+#if PACKETVER >= 20190918
+packetLen(0x0b5c, 10)
+#endif
+
+// Packet: 0x0b5d
+#if PACKETVER >= 20190918
+packetLen(0x0b5d, 2)
+#endif
+
#endif /* COMMON_PACKETS2019_LEN_MAIN_H */
diff --git a/src/common/packets/packets2019_len_re.h b/src/common/packets/packets2019_len_re.h
index c31a10191..32c14775d 100644
--- a/src/common/packets/packets2019_len_re.h
+++ b/src/common/packets/packets2019_len_re.h
@@ -103,7 +103,11 @@ packetLen(0x007c, 44) // ZC_NOTIFY_STANDENTRY_NPC
packetLen(0x007d, 2) // CZ_NOTIFY_ACTORINIT
// Packet: 0x007e
+#if PACKETVER >= 20190904
+packetLen(0x007e, 46) // CZ_REQUEST_TIME
+#elif PACKETVER >= 20190109
packetLen(0x007e, 105) // CZ_REQUEST_TIME
+#endif
// Packet: 0x007f
packetLen(0x007f, 6) // ZC_NOTIFY_TIME
@@ -916,7 +920,11 @@ packetLen(0x018f, 8) // ZC_ACK_REQMAKINGITEM
packetLen(0x0190, 23) // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
// Packet: 0x0191
+#if PACKETVER >= 20190904
+packetLen(0x0191, 27) // ZC_TALKBOX_CHATCONTENTS
+#elif PACKETVER >= 20190109
packetLen(0x0191, 86) // ZC_TALKBOX_CHATCONTENTS
+#endif
// Packet: 0x0192
packetLen(0x0192, 24) // ZC_UPDATE_MAPINFO
@@ -1972,7 +1980,11 @@ packetLen(0x0365, 8) // CZ_MOVE_ITEM_FROM_STORE_TO_BODY2
packetLen(0x0366, 10) // CZ_USE_SKILL_TOGROUND2
// Packet: 0x0367
+#if PACKETVER >= 20190904
+packetLen(0x0367, 31) // CZ_USE_SKILL_TOGROUND_WITHTALKBOX2
+#elif PACKETVER >= 20190109
packetLen(0x0367, 90) // CZ_USE_SKILL_TOGROUND_WITHTALKBOX2
+#endif
// Packet: 0x0368
packetLen(0x0368, 6) // CZ_REQNAME2
@@ -4722,5 +4734,45 @@ packetLen(0x0b54, 8)
packetLen(0x0b55, -1)
#endif
+// Packet: 0x0b56
+#if PACKETVER >= 20190904
+packetLen(0x0b56, -1)
+#endif
+
+// Packet: 0x0b57
+#if PACKETVER >= 20190904
+packetLen(0x0b57, -1)
+#endif
+
+// Packet: 0x0b58
+#if PACKETVER >= 20190904
+packetLen(0x0b58, 2)
+#endif
+
+// Packet: 0x0b59
+#if PACKETVER >= 20190918
+packetLen(0x0b59, 2)
+#endif
+
+// Packet: 0x0b5a
+#if PACKETVER >= 20190918
+packetLen(0x0b5a, 4)
+#endif
+
+// Packet: 0x0b5b
+#if PACKETVER >= 20190918
+packetLen(0x0b5b, -1)
+#endif
+
+// Packet: 0x0b5c
+#if PACKETVER >= 20190918
+packetLen(0x0b5c, 10)
+#endif
+
+// Packet: 0x0b5d
+#if PACKETVER >= 20190918
+packetLen(0x0b5d, 2)
+#endif
+
#endif /* COMMON_PACKETS2019_LEN_RE_H */
diff --git a/src/common/packets/packets2019_len_zero.h b/src/common/packets/packets2019_len_zero.h
index abe81796c..9cdc9db05 100644
--- a/src/common/packets/packets2019_len_zero.h
+++ b/src/common/packets/packets2019_len_zero.h
@@ -103,7 +103,11 @@ packetLen(0x007c, 44) // ZC_NOTIFY_STANDENTRY_NPC
packetLen(0x007d, 2) // CZ_NOTIFY_ACTORINIT
// Packet: 0x007e
+#if PACKETVER >= 20190828
+packetLen(0x007e, 46) // CZ_REQUEST_TIME
+#elif PACKETVER >= 20190116
packetLen(0x007e, 105) // CZ_REQUEST_TIME
+#endif
// Packet: 0x007f
packetLen(0x007f, 6) // ZC_NOTIFY_TIME
@@ -916,7 +920,11 @@ packetLen(0x018f, 8) // ZC_ACK_REQMAKINGITEM
packetLen(0x0190, 23) // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
// Packet: 0x0191
+#if PACKETVER >= 20190828
+packetLen(0x0191, 27) // ZC_TALKBOX_CHATCONTENTS
+#elif PACKETVER >= 20190116
packetLen(0x0191, 86) // ZC_TALKBOX_CHATCONTENTS
+#endif
// Packet: 0x0192
packetLen(0x0192, 24) // ZC_UPDATE_MAPINFO
@@ -1966,7 +1974,11 @@ packetLen(0x0365, 8) // CZ_MOVE_ITEM_FROM_STORE_TO_BODY2
packetLen(0x0366, 10) // CZ_USE_SKILL_TOGROUND2
// Packet: 0x0367
+#if PACKETVER >= 20190828
+packetLen(0x0367, 31) // CZ_USE_SKILL_TOGROUND_WITHTALKBOX2
+#elif PACKETVER >= 20190116
packetLen(0x0367, 90) // CZ_USE_SKILL_TOGROUND_WITHTALKBOX2
+#endif
// Packet: 0x0368
packetLen(0x0368, 6) // CZ_REQNAME2
@@ -4697,5 +4709,50 @@ packetLen(0x0b53, 52)
packetLen(0x0b54, 8)
#endif
+// Packet: 0x0b55
+#if PACKETVER >= 20190828
+packetLen(0x0b55, -1)
+#endif
+
+// Packet: 0x0b56
+#if PACKETVER >= 20190828
+packetLen(0x0b56, -1)
+#endif
+
+// Packet: 0x0b57
+#if PACKETVER >= 20190828
+packetLen(0x0b57, -1)
+#endif
+
+// Packet: 0x0b58
+#if PACKETVER >= 20190828
+packetLen(0x0b58, 2)
+#endif
+
+// Packet: 0x0b59
+#if PACKETVER >= 20190918
+packetLen(0x0b59, 2)
+#endif
+
+// Packet: 0x0b5a
+#if PACKETVER >= 20190918
+packetLen(0x0b5a, 4)
+#endif
+
+// Packet: 0x0b5b
+#if PACKETVER >= 20190918
+packetLen(0x0b5b, -1)
+#endif
+
+// Packet: 0x0b5c
+#if PACKETVER >= 20190918
+packetLen(0x0b5c, 10)
+#endif
+
+// Packet: 0x0b5d
+#if PACKETVER >= 20190918
+packetLen(0x0b5d, 2)
+#endif
+
#endif /* COMMON_PACKETS2019_LEN_ZERO_H */
diff --git a/src/map/atcommand.c b/src/map/atcommand.c
index 2fac5b4a4..b472694c4 100644
--- a/src/map/atcommand.c
+++ b/src/map/atcommand.c
@@ -1107,8 +1107,10 @@ ACMD(kami)
sscanf(message, "%199[^\n]", atcmd_output);
if (stristr(info->command, "l") != NULL)
clif->broadcast(&sd->bl, atcmd_output, (int)strlen(atcmd_output) + 1, BC_DEFAULT, ALL_SAMEMAP);
+ else if (info->command[4] == 'b' || info->command[4] == 'B')
+ clif->broadcast(NULL, atcmd_output, (int)strlen(atcmd_output) + 1, BC_BLUE, ALL_CLIENT);
else
- intif->broadcast(atcmd_output, (int)strlen(atcmd_output) + 1, (*(info->command + 4) == 'b' || *(info->command + 4) == 'B') ? BC_BLUE : BC_YELLOW);
+ clif->broadcast(NULL, atcmd_output, (int)strlen(atcmd_output) + 1, BC_YELLOW, ALL_CLIENT);
} else {
if(!*message || (sscanf(message, "%10u %199[^\n]", &color, atcmd_output) < 2)) {
clif->message(fd, msg_fd(fd,981)); // Please enter color and message (usage: @kamic <color> <message>).
@@ -1119,7 +1121,7 @@ ACMD(kami)
clif->message(fd, msg_fd(fd,982)); // Invalid color.
return false;
}
- intif->broadcast2(atcmd_output, (int)strlen(atcmd_output) + 1, color, 0x190, 12, 0, 0);
+ clif->broadcast2(NULL, atcmd_output, (int)strlen(atcmd_output) + 1, color, 0x190, 12, 0, 0, ALL_CLIENT);
}
return true;
}
@@ -5125,7 +5127,7 @@ ACMD(broadcast)
}
safesnprintf(atcmd_output, sizeof(atcmd_output), "%s: %s", sd->status.name, message);
- intif->broadcast(atcmd_output, (int)strlen(atcmd_output) + 1, BC_DEFAULT);
+ clif->broadcast(NULL, atcmd_output, (int)strlen(atcmd_output) + 1, BC_DEFAULT, ALL_CLIENT);
return true;
}
@@ -6748,6 +6750,18 @@ ACMD(changesex)
return true;
}
+ACMD(changecharsex)
+{
+ int i;
+
+ pc->resetskill(sd, PCRESETSKILL_CHSEX);
+ // to avoid any problem with equipment and invalid sex, equipment is unequipped.
+ for (i=0; i<EQI_MAX; i++)
+ if (sd->equip_index[i] >= 0) pc->unequipitem(sd, sd->equip_index[i], PCUNEQUIPITEM_RECALC|PCUNEQUIPITEM_FORCE);
+ chrif->changesex(sd, false);
+ return true;
+}
+
/*================================================
* @mute - Mutes a player for a set amount of time
*------------------------------------------------*/
@@ -8263,7 +8277,7 @@ ACMD(request)
}
safesnprintf(atcmd_output, sizeof(atcmd_output), msg_fd(fd,278), message); // (@request): %s
- intif->wis_message_to_gm(sd->status.name, PC_PERM_RECEIVE_REQUESTS, atcmd_output);
+ pc->wis_message_to_gm(sd->status.name, PC_PERM_RECEIVE_REQUESTS, atcmd_output);
clif_disp_onlyself(sd, atcmd_output);
clif->message(sd->fd,msg_fd(fd,279)); // @request sent.
return true;
@@ -10113,6 +10127,7 @@ static void atcommand_basecommands(void)
ACMD_DEF(clearweather),
ACMD_DEF(uptime),
ACMD_DEF(changesex),
+ ACMD_DEF(changecharsex),
ACMD_DEF(mute),
ACMD_DEF(refresh),
ACMD_DEF(refreshall),
diff --git a/src/map/battle.h b/src/map/battle.h
index 779e360bf..4400d37d1 100644
--- a/src/map/battle.h
+++ b/src/map/battle.h
@@ -103,8 +103,8 @@ enum e_battle_check_target { //New definitions [Skotlex]
enum battle_dmg_type {
BDT_NORMAL = 0, // Normal attack
//BDT_PICKUP = 1, // Pick up item
- //BDT_SITDOWN = 2, // Sit down
- //BDT_STANDUP = 3, // Stand up
+ BDT_SITDOWN = 2, // Sit down
+ BDT_STANDUP = 3, // Stand up
BDT_ENDURE = 4, // Damage (endure)
BDT_SPLASH = 5, // Splash
BDT_SKILL = 6, // Skill
diff --git a/src/map/clif.c b/src/map/clif.c
index 421274b0f..c7f81a471 100644
--- a/src/map/clif.c
+++ b/src/map/clif.c
@@ -4789,9 +4789,9 @@ static void clif_getareachar_unit(struct map_session_data *sd, struct block_list
//Modifies the type of damage according to status changes [Skotlex]
//Aegis data specifies that: 4 endure against single hit sources, 9 against multi-hit.
-static inline int clif_calc_delay(int type, int div, int damage, int delay)
+static inline enum battle_dmg_type clif_calc_delay(enum battle_dmg_type type, int div, int damage, int delay)
{
- return ( delay == 0 && damage > 0 ) ? ( div > 1 ? 9 : 4 ) : type;
+ return ( delay == 0 && damage > 0 ) ? ( div > 1 ? BDT_MULTIENDURE : BDT_ENDURE ) : type;
}
/*==========================================
@@ -4822,7 +4822,7 @@ static int clif_calc_walkdelay(struct block_list *bl, int delay, int type, int d
/// 08c8 <src ID>.L <dst ID>.L <server tick>.L <src speed>.L <dst speed>.L <damage>.L <IsSPDamage>.B <div>.W <type>.B <damage2>.L (ZC_NOTIFY_ACT2)
/// type: @see enum battle_dmg_type
/// for BDT_NORMAL: [ damage: total damage, div: amount of hits, damage2: assassin dual-wield damage ]
-static int clif_damage(struct block_list *src, struct block_list *dst, int sdelay, int ddelay, int64 in_damage, short div, unsigned char type, int64 in_damage2)
+static int clif_damage(struct block_list *src, struct block_list *dst, int sdelay, int ddelay, int64 in_damage, short div, enum battle_dmg_type type, int64 in_damage2)
{
struct packet_damage p;
struct status_change *sc;
@@ -5268,7 +5268,7 @@ static void clif_playerSkillToPacket(struct map_session_data *sd, struct SKILLDA
skillData->sp = 0;
skillData->range2 = 0;
}
-#if PACKETVER_RE_NUM >= 20190807 || PACKETVER_ZERO_NUM >= 20190814
+#if PACKETVER_RE_NUM >= 20190807
if (newSkill)
skillData->level2 = 0;
else
@@ -5419,7 +5419,7 @@ static void clif_skillinfo(struct map_session_data *sd, int skill_id, int inf)
p->sp = 0;
p->range2 = 0;
}
-#if PACKETVER_RE_NUM >= 20190807 || PACKETVER_ZERO_NUM >= 20190814
+#if PACKETVER_RE_NUM >= 20190807
p->level2 = skill_lv;
#endif
if (sd->status.skill[idx].flag == SKILL_FLAG_PERMANENT)
@@ -5573,7 +5573,7 @@ static void clif_skill_cooldown(struct map_session_data *sd, uint16 skill_id, un
/// Skill attack effect and damage.
/// 0114 <skill id>.W <src id>.L <dst id>.L <tick>.L <src delay>.L <dst delay>.L <damage>.W <level>.W <div>.W <type>.B (ZC_NOTIFY_SKILL)
/// 01de <skill id>.W <src id>.L <dst id>.L <tick>.L <src delay>.L <dst delay>.L <damage>.L <level>.W <div>.W <type>.B (ZC_NOTIFY_SKILL2)
-static int clif_skill_damage(struct block_list *src, struct block_list *dst, int64 tick, int sdelay, int ddelay, int64 in_damage, int div, uint16 skill_id, uint16 skill_lv, int type)
+static int clif_skill_damage(struct block_list *src, struct block_list *dst, int64 tick, int sdelay, int ddelay, int64 in_damage, int div, uint16 skill_id, uint16 skill_lv, enum battle_dmg_type type)
{
unsigned char buf[64];
struct status_change *sc;
@@ -5675,7 +5675,7 @@ static int clif_skill_damage(struct block_list *src, struct block_list *dst, int
/// Ground skill attack effect and damage (ZC_NOTIFY_SKILL_POSITION).
/// 0115 <skill id>.W <src id>.L <dst id>.L <tick>.L <src delay>.L <dst delay>.L <x>.W <y>.W <damage>.W <level>.W <div>.W <type>.B
#if 0
-static int clif_skill_damage2(struct block_list *src, struct block_list *dst, int64 tick, int sdelay, int ddelay, int damage, int div, uint16 skill_id, uint16 skill_lv, int type)
+static int clif_skill_damage2(struct block_list *src, struct block_list *dst, int64 tick, int sdelay, int ddelay, int damage, int div, uint16 skill_id, uint16 skill_lv, enum battle_dmg_type type)
{
unsigned char buf[64];
struct status_change *sc;
@@ -8689,14 +8689,14 @@ static void clif_emotion(struct block_list *bl, int type)
/// 0191 <id>.L <contents>.80B
static void clif_talkiebox(struct block_list *bl, const char *talkie)
{
- unsigned char buf[MESSAGE_SIZE+6];
nullpo_retv(bl);
nullpo_retv(talkie);
+ struct PACKET_ZC_TALKBOX_CHATCONTENTS p;
- WBUFW(buf,0) = 0x191;
- WBUFL(buf,2) = bl->id;
- safestrncpy(WBUFP(buf,6),talkie,MESSAGE_SIZE);
- clif->send(buf,packet_len(0x191),bl,AREA);
+ p.PacketType = HEADER_ZC_TALKBOX_CHATCONTENTS;
+ p.aid = bl->id;
+ safestrncpy(&p.message[0], talkie, TALKBOX_MESSAGE_SIZE);
+ clif->send(&p, sizeof(struct PACKET_ZC_TALKBOX_CHATCONTENTS), bl, AREA);
}
/// Displays wedding effect centered on an object (ZC_CONGRATULATION).
@@ -9298,9 +9298,6 @@ static void clif_pcname_ack(int fd, struct block_list *bl)
packet.gid = bl->id;
const struct map_session_data *ssd = BL_UCCAST(BL_PC, bl);
- const struct party_data *p = NULL;
- const struct guild *g = NULL;
- int ps = -1;
if (ssd->fakename[0] != '\0' && ssd->disguise != -1) {
packet.packet_id = reqName;
@@ -9326,9 +9323,12 @@ static void clif_pcname_ack(int fd, struct block_list *bl)
#endif
memcpy(packet.name, ssd->status.name, NAME_LENGTH);
+ const struct party_data *p = NULL;
+ int ps = -1;
if (ssd->status.party_id != 0) {
p = party->search(ssd->status.party_id);
}
+ const struct guild *g = NULL;
if (ssd->status.guild_id != 0) {
if ((g = ssd->guild) != NULL) {
int i;
@@ -9351,6 +9351,12 @@ static void clif_pcname_ack(int fd, struct block_list *bl)
memcpy(packet.guild_name, g->name,NAME_LENGTH);
memcpy(packet.position_name, g->position[ps].name, NAME_LENGTH);
}
+ else if (ssd->status.clan_id != 0) {
+ struct clan *c = clan->search(ssd->status.clan_id);
+ if (c != 0) {
+ memcpy(packet.position_name, c->name, NAME_LENGTH);
+ }
+ }
}
clif->send_selforarea(fd, bl, &packet, len);
@@ -11096,13 +11102,13 @@ static void clif_parse_GetCharNameRequest(int fd, struct map_session_data *sd)
sc = status->get_sc(bl);
if (sc && sc->option&OPTION_INVISIBLE && !clif->isdisguised(bl) &&
bl->type != BL_NPC && //Skip hidden NPCs which can be seen using Maya Purple
- pc_get_group_level(sd) < battle_config.hack_info_GM_level
+ !pc_has_permission(sd, PC_PERM_RECEIVE_HACK_INFO)
) {
char gm_msg[256];
sprintf(gm_msg, "Hack on NameRequest: character '%s' (account: %d) requested the name of an invisible target (id: %d).\n", sd->status.name, sd->status.account_id, id);
ShowWarning(gm_msg);
// information is sent to all online GMs
- intif->wis_message_to_gm(map->wisp_server_name, battle_config.hack_info_GM_level, gm_msg);
+ pc->wis_message_to_gm(map->wisp_server_name, PC_PERM_RECEIVE_HACK_INFO, gm_msg);
return;
}
#endif // 0
@@ -11593,12 +11599,8 @@ static void clif_parse_WisMessage(int fd, struct map_session_data *sd)
dstsd = map->nick2sd(target);
if (dstsd == NULL || strcmp(dstsd->status.name, target) != 0) {
- // player is not on this map-server
- // At this point, don't send wisp/page if it's not exactly the same name, because (example)
- // if there are 'Test' player on an other map-server and 'test' player on this map-server,
- // and if we ask for 'Test', we must not contact 'test' player
- // so, we send information to inter-server, which is the only one which decide (and copy correct name).
- intif->wis_message(sd, target, message, (int)strlen(message));
+ // Character not found (or found through partial match).
+ clif->wis_end(sd->fd, 1);
return;
}
@@ -12691,7 +12693,7 @@ static void clif_parse_UseSkillToPosSub(int fd, struct map_session_data *sd, uin
return;
}
//You can't use Graffiti/TalkieBox AND have a vending open, so this is safe.
- safestrncpy(sd->message, RFIFOP(fd,skillmoreinfo), MESSAGE_SIZE);
+ safestrncpy(sd->message, RFIFOP(fd, skillmoreinfo), TALKBOX_MESSAGE_SIZE);
}
if( sd->ud.skilltimer != INVALID_TIMER )
@@ -15982,18 +15984,18 @@ static void clif_ranklist_sub(struct PACKET_ZC_ACK_RANKING_sub *ranks, enum fame
if (list[i].id > 0) {
const char* name;
if (strcmp(list[i].name, "-") == 0 && (name = map->charid2nick(list[i].id)) != NULL) {
- strncpy(ranks[i].name, name, NAME_LENGTH);
+ strncpy(ranks->names[i].name, name, NAME_LENGTH);
} else {
- strncpy(ranks[i].name, list[i].name, NAME_LENGTH);
+ strncpy(ranks->names[i].name, list[i].name, NAME_LENGTH);
}
} else {
- strncpy(ranks[i].name, "None", 5);
+ strncpy(ranks->names[i].name, "None", 5);
}
- ranks[i].points = list[i].fame; //points
+ ranks->points[i].points = list[i].fame; //points
}
for (;i < 10; i++) { // In case the MAX is less than 10.
- strncpy(ranks[i].name, "Unavailable", 12);
- ranks[i].points = 0;
+ strncpy(ranks->names[i].name, "Unavailable", 12);
+ ranks->points[i].points = 0;
}
#endif
}
@@ -16042,7 +16044,7 @@ static void clif_ranklist(struct map_session_data *sd, enum fame_list_type type)
#if PACKETVER_MAIN_NUM >= 20190731 || PACKETVER_RE_NUM >= 20190703 || PACKETVER_ZERO_NUM >= 20190724
clif->ranklist_sub2(p->chars, p->points, type);
#else
- clif->ranklist_sub(p->ranks, type);
+ clif->ranklist_sub(&p->ranks, type);
#endif
if (pc->famelist_type(sd->job) == type) {
@@ -16402,10 +16404,14 @@ static void clif_parse_AutoRevive(int fd, struct map_session_data *sd)
{
if (pc_istrading(sd) || pc_isvending(sd))
return;
+
if (!pc_isdead(sd))
return;
- int item_position = pc->search_inventory(sd, ITEMID_TOKEN_OF_SIEGFRIED);
+ if (sd->sc.data[SC_HELLPOWER]) //Cannot res while under the effect of SC_HELLPOWER.
+ return;
+
+ int item_position = pc->have_item_chain(sd, ECC_SIEGFRIED);
int hpsp = 100;
if (item_position == INDEX_NOT_FOUND) {
@@ -16415,18 +16421,15 @@ static void clif_parse_AutoRevive(int fd, struct map_session_data *sd)
return;
}
- if (sd->sc.data[SC_HELLPOWER]) //Cannot res while under the effect of SC_HELLPOWER.
- return;
-
if (!status->revive(&sd->bl, hpsp, hpsp))
return;
if (item_position == INDEX_NOT_FOUND)
- status_change_end(&sd->bl,SC_LIGHT_OF_REGENE,INVALID_TIMER);
+ status_change_end(&sd->bl, SC_LIGHT_OF_REGENE, INVALID_TIMER);
else
pc->delitem(sd, item_position, 1, 0, DELITEM_SKILLUSE, LOG_TYPE_CONSUME);
- clif->skill_nodamage(&sd->bl,&sd->bl,ALL_RESURRECTION, 4, 1);
+ clif->skill_nodamage(&sd->bl, &sd->bl, ALL_RESURRECTION, 4, 1);
}
/// Information about character's status values (ZC_ACK_STATUS_GM).
@@ -20612,7 +20615,7 @@ static int clif_delay_damage_sub(int tid, int64 tick, int id, intptr_t data)
*
* @return clif->calc_walkdelay used in further processing
**/
-static int clif_delay_damage(int64 tick, struct block_list *src, struct block_list *dst, int sdelay, int ddelay, int64 in_damage, short div, unsigned char type)
+static int clif_delay_damage(int64 tick, struct block_list *src, struct block_list *dst, int sdelay, int ddelay, int64 in_damage, short div, enum battle_dmg_type type)
{
struct cdelayed_damage *dd;
struct status_change *sc;
diff --git a/src/map/clif.h b/src/map/clif.h
index 07d2ef4a8..f3d7c78eb 100644
--- a/src/map/clif.h
+++ b/src/map/clif.h
@@ -59,6 +59,7 @@ struct s_refine_requirement;
struct PACKET_ZC_ACK_RANKING_sub;
struct SKILLDATA;
+enum battle_dmg_type;
enum clif_messages;
enum rodex_add_item;
enum rodex_get_zeny;
@@ -861,7 +862,7 @@ struct clif_interface {
void (*scriptclear) (struct map_session_data *sd, int npcid);
/* client-user-interface-related */
void (*viewpoint) (struct map_session_data *sd, int npc_id, int type, int x, int y, int id, int color);
- int (*damage) (struct block_list* src, struct block_list* dst, int sdelay, int ddelay, int64 damage, short div, unsigned char type, int64 damage2);
+ int (*damage) (struct block_list* src, struct block_list* dst, int sdelay, int ddelay, int64 damage, short div, enum battle_dmg_type type, int64 damage2);
void (*sitting) (struct block_list* bl);
void (*standing) (struct block_list* bl);
void (*arrow_create_list) (struct map_session_data *sd);
@@ -987,7 +988,7 @@ struct clif_interface {
void (*wedding_effect) (struct block_list *bl);
void (*divorced) (struct map_session_data* sd, const char* name);
void (*callpartner) (struct map_session_data *sd);
- int (*skill_damage) (struct block_list *src, struct block_list *dst, int64 tick, int sdelay, int ddelay, int64 damage, int div, uint16 skill_id, uint16 skill_lv, int type);
+ int (*skill_damage) (struct block_list *src, struct block_list *dst, int64 tick, int sdelay, int ddelay, int64 damage, int div, uint16 skill_id, uint16 skill_lv, enum battle_dmg_type type);
int (*skill_nodamage) (struct block_list *src,struct block_list *dst,uint16 skill_id,int heal,int fail);
void (*skill_poseffect) (struct block_list *src, uint16 skill_id, int val, int x, int y, int64 tick);
void (*skill_estimation) (struct map_session_data *sd,struct block_list *dst);
@@ -1282,7 +1283,7 @@ struct clif_interface {
/* */
void (*notify_bounditem) (struct map_session_data *sd, unsigned short index);
/* */
- int (*delay_damage) (int64 tick, struct block_list *src, struct block_list *dst, int sdelay, int ddelay, int64 in_damage, short div, unsigned char type);
+ int (*delay_damage) (int64 tick, struct block_list *src, struct block_list *dst, int sdelay, int ddelay, int64 in_damage, short div, enum battle_dmg_type type);
int (*delay_damage_sub) (int tid, int64 tick, int id, intptr_t data);
/* NPC Market */
void (*npc_market_open) (struct map_session_data *sd, struct npc_data *nd);
diff --git a/src/map/guild.c b/src/map/guild.c
index aadb55c78..415a46db5 100644
--- a/src/map/guild.c
+++ b/src/map/guild.c
@@ -1137,13 +1137,14 @@ static int guild_recv_memberinfoshort(int guild_id, int account_id, int char_id,
*---------------------------------------------------*/
static int guild_send_message(struct map_session_data *sd, const char *mes)
{
- int len = (int)strlen(mes);
nullpo_ret(sd);
- if (sd->status.guild_id == 0)
+ if (sd->status.guild_id == 0 || sd->guild == NULL)
return 0;
- intif->guild_message(sd->status.guild_id, sd->status.account_id, mes, len);
- guild->recv_message(sd->status.guild_id, sd->status.account_id, mes, len);
+
+ int len = (int)strlen(mes);
+
+ clif->guild_message(sd->guild, sd->status.account_id, mes, len);
// Chat logging type 'G' / Guild Chat
logs->chat(LOG_CHAT_GUILD, sd->status.guild_id, sd->status.char_id, sd->status.account_id, mapindex_id2name(sd->mapindex), sd->bl.x, sd->bl.y, NULL, mes);
@@ -1152,18 +1153,6 @@ static int guild_send_message(struct map_session_data *sd, const char *mes)
}
/*====================================================
- * Guild receive a message, will be displayed to whole member
- *---------------------------------------------------*/
-static int guild_recv_message(int guild_id, int account_id, const char *mes, int len)
-{
- struct guild *g;
- if( (g=guild->search(guild_id))==NULL)
- return 0;
- clif->guild_message(g,account_id,mes,len);
- return 0;
-}
-
-/*====================================================
* Member changing position in guild
*---------------------------------------------------*/
static int guild_change_memberposition(int guild_id, int account_id, int char_id, short idx)
@@ -2480,7 +2469,6 @@ void guild_defaults(void)
guild->change_emblem = guild_change_emblem;
guild->emblem_changed = guild_emblem_changed;
guild->send_message = guild_send_message;
- guild->recv_message = guild_recv_message;
guild->send_dot_remove = guild_send_dot_remove;
guild->skillupack = guild_skillupack;
guild->dobreak = guild_break;
diff --git a/src/map/guild.h b/src/map/guild.h
index 40209b988..d0374103f 100644
--- a/src/map/guild.h
+++ b/src/map/guild.h
@@ -136,7 +136,6 @@ struct guild_interface {
int (*change_emblem) (struct map_session_data *sd,int len,const char *data);
int (*emblem_changed) (int len,int guild_id,int emblem_id,const char *data);
int (*send_message) (struct map_session_data *sd, const char *mes);
- int (*recv_message) (int guild_id,int account_id,const char *mes,int len);
int (*send_dot_remove) (struct map_session_data *sd);
int (*skillupack) (int guild_id,uint16 skill_id,int account_id);
int (*dobreak) (struct map_session_data *sd, const char *name);
diff --git a/src/map/homunculus.c b/src/map/homunculus.c
index 9c0460320..43cb8d84b 100644
--- a/src/map/homunculus.c
+++ b/src/map/homunculus.c
@@ -525,6 +525,21 @@ static bool homunculus_mutate(struct homun_data *hd, int homun_id)
return true;
}
+static int homunculus_gainexp_real(struct homun_data *hd, unsigned int exp)
+{
+ nullpo_ret(hd);
+ nullpo_ret(hd->master);
+
+ hd->homunculus.exp += exp;
+
+ if (hd->master->state.showexp && hd->exp_next > 0) {
+ char output[256];
+ sprintf(output, msg_fd(hd->master->fd, 449), exp, ((float)exp / (float)hd->exp_next * (float)100));
+ clif_disp_onlyself(hd->master, output);
+ }
+ return 1;
+}
+
static int homunculus_gainexp(struct homun_data *hd, unsigned int exp)
{
enum homun_type htype;
@@ -550,16 +565,10 @@ static int homunculus_gainexp(struct homun_data *hd, unsigned int exp)
break;
}
- hd->homunculus.exp += exp;
-
- if (hd->master->state.showexp && hd->exp_next > 0) {
- char output[256];
- sprintf(output, "Homunculus Experience Gained Base:%u (%.2f%%)", exp, ((float)exp / (float)hd->exp_next * (float)100));
- clif_disp_onlyself(hd->master, output);
- }
+ homun->gainexp_real(hd, exp);
- if(hd->homunculus.exp < hd->exp_next) {
- clif->hominfo(hd->master,hd,0);
+ if (hd->homunculus.exp < hd->exp_next) {
+ clif->hominfo(hd->master, hd, 0);
return 0;
}
@@ -1444,6 +1453,7 @@ void homunculus_defaults(void)
homun->evolve = homunculus_evolve;
homun->mutate = homunculus_mutate;
homun->gainexp = homunculus_gainexp;
+ homun->gainexp_real = homunculus_gainexp_real;
homun->add_intimacy = homunculus_add_intimacy;
homun->consume_intimacy = homunculus_consume_intimacy;
homun->healed = homunculus_healed;
diff --git a/src/map/homunculus.h b/src/map/homunculus.h
index 5bb4334cb..2914a26cc 100644
--- a/src/map/homunculus.h
+++ b/src/map/homunculus.h
@@ -178,6 +178,7 @@ struct homunculus_interface {
bool (*evolve) (struct homun_data *hd);
bool (*mutate) (struct homun_data *hd, int homun_id);
int (*gainexp) (struct homun_data *hd, unsigned int exp);
+ int (*gainexp_real) (struct homun_data *hd, unsigned int exp);
unsigned int (*add_intimacy) (struct homun_data * hd, unsigned int value);
unsigned int (*consume_intimacy) (struct homun_data *hd, unsigned int value);
void (*healed) (struct homun_data *hd);
diff --git a/src/map/intif.c b/src/map/intif.c
index e25f56b63..5a62f9644 100644
--- a/src/map/intif.c
+++ b/src/map/intif.c
@@ -153,158 +153,6 @@ static int intif_rename(struct map_session_data *sd, int type, const char *name)
return 0;
}
-// GM Send a message
-static int intif_broadcast(const char *mes, int len, int type)
-{
- int lp = (type&BC_COLOR_MASK) ? 4 : 0;
-
- nullpo_ret(mes);
- Assert_ret(len < 32000);
- // Send to the local players
- clif->broadcast(NULL, mes, len, type, ALL_CLIENT);
-
- if (intif->CheckForCharServer())
- return 0;
-
- if (chrif->other_mapserver_count < 1)
- return 0; //No need to send.
-
- WFIFOHEAD(inter_fd, 16 + lp + len);
- WFIFOW(inter_fd,0) = 0x3000;
- WFIFOW(inter_fd,2) = 16 + lp + len;
- WFIFOL(inter_fd,4) = 0xFF000000; // 0xFF000000 color signals standard broadcast
- WFIFOW(inter_fd,8) = 0; // fontType not used with standard broadcast
- WFIFOW(inter_fd,10) = 0; // fontSize not used with standard broadcast
- WFIFOW(inter_fd,12) = 0; // fontAlign not used with standard broadcast
- WFIFOW(inter_fd,14) = 0; // fontY not used with standard broadcast
- if (type&BC_BLUE)
- WFIFOL(inter_fd,16) = 0x65756c62; //If there's "blue" at the beginning of the message, game client will display it in blue instead of yellow.
- else if (type&BC_WOE)
- WFIFOL(inter_fd,16) = 0x73737373; //If there's "ssss", game client will recognize message as 'WoE broadcast'.
- memcpy(WFIFOP(inter_fd,16 + lp), mes, len);
- WFIFOSET(inter_fd, WFIFOW(inter_fd,2));
- return 0;
-}
-
-static int intif_broadcast2(const char *mes, int len, unsigned int fontColor, short fontType, short fontSize, short fontAlign, short fontY)
-{
- nullpo_ret(mes);
- Assert_ret(len < 32000);
- // Send to the local players
- clif->broadcast2(NULL, mes, len, fontColor, fontType, fontSize, fontAlign, fontY, ALL_CLIENT);
-
- if (intif->CheckForCharServer())
- return 0;
-
- if (chrif->other_mapserver_count < 1)
- return 0; //No need to send.
-
- WFIFOHEAD(inter_fd, 16 + len);
- WFIFOW(inter_fd,0) = 0x3000;
- WFIFOW(inter_fd,2) = 16 + len;
- WFIFOL(inter_fd,4) = fontColor;
- WFIFOW(inter_fd,8) = fontType;
- WFIFOW(inter_fd,10) = fontSize;
- WFIFOW(inter_fd,12) = fontAlign;
- WFIFOW(inter_fd,14) = fontY;
- memcpy(WFIFOP(inter_fd,16), mes, len);
- WFIFOSET(inter_fd, WFIFOW(inter_fd,2));
- return 0;
-}
-
-/// send a message using the main chat system
-/// <sd> the source of message
-/// <message> the message that was sent
-static int intif_main_message(struct map_session_data *sd, const char *message)
-{
- char output[256];
-
- nullpo_ret(sd);
- nullpo_ret(message);
-
- // format the message for main broadcasting
- snprintf( output, sizeof(output), msg_txt(386), sd->status.name, message );
-
- // send the message using the inter-server broadcast service
- intif->broadcast2(output, (int)strlen(output) + 1, 0xFE000000, 0, 0, 0, 0);
-
- // log the chat message
- logs->chat( LOG_CHAT_MAINCHAT, 0, sd->status.char_id, sd->status.account_id, mapindex_id2name(sd->mapindex), sd->bl.x, sd->bl.y, NULL, message );
-
- return 0;
-}
-
-// The transmission of Wisp/Page to inter-server (player not found on this server)
-static int intif_wis_message(struct map_session_data *sd, const char *nick, const char *mes, int mes_len)
-{
- if (intif->CheckForCharServer())
- return 0;
- nullpo_ret(sd);
- nullpo_ret(nick);
- nullpo_ret(mes);
-
- if (chrif->other_mapserver_count < 1) {
- //Character not found.
- clif->wis_end(sd->fd, 1);
- return 0;
- }
-
- WFIFOHEAD(inter_fd,mes_len + 52);
- WFIFOW(inter_fd,0) = 0x3001;
- WFIFOW(inter_fd,2) = mes_len + 52;
- memcpy(WFIFOP(inter_fd,4), sd->status.name, NAME_LENGTH);
- memcpy(WFIFOP(inter_fd,4+NAME_LENGTH), nick, NAME_LENGTH);
- memcpy(WFIFOP(inter_fd,4+2*NAME_LENGTH), mes, mes_len);
- WFIFOSET(inter_fd, WFIFOW(inter_fd,2));
-
- if (battle_config.etc_log)
- ShowInfo("intif_wis_message from %s to %s (message: '%s')\n", sd->status.name, nick, mes);
-
- return 0;
-}
-
-// The reply of Wisp/page
-static int intif_wis_replay(int id, int flag)
-{
- if (intif->CheckForCharServer())
- return 0;
- WFIFOHEAD(inter_fd,7);
- WFIFOW(inter_fd,0) = 0x3002;
- WFIFOL(inter_fd,2) = id;
- WFIFOB(inter_fd,6) = flag; // flag: 0: success to send whisper, 1: target character is not logged in?, 2: ignored by target
- WFIFOSET(inter_fd,7);
-
- if (battle_config.etc_log)
- ShowInfo("intif_wis_replay: id: %d, flag:%d\n", id, flag);
-
- return 0;
-}
-
-// The transmission of GM only Wisp/Page from server to inter-server
-static int intif_wis_message_to_gm(char *wisp_name, int permission, char *mes)
-{
- int mes_len;
- if (intif->CheckForCharServer())
- return 0;
- nullpo_ret(wisp_name);
- nullpo_ret(mes);
- mes_len = (int)strlen(mes) + 1; // + null
- Assert_ret(mes_len > 0 && mes_len <= INT16_MAX - 32);
-
- WFIFOHEAD(inter_fd, mes_len + 32);
- WFIFOW(inter_fd,0) = 0x3003;
- WFIFOW(inter_fd,2) = mes_len + 32;
- memcpy(WFIFOP(inter_fd,4), wisp_name, NAME_LENGTH);
- WFIFOL(inter_fd,4+NAME_LENGTH) = permission;
- memcpy(WFIFOP(inter_fd,8+NAME_LENGTH), mes, mes_len);
- WFIFOSET(inter_fd, WFIFOW(inter_fd,2));
-
- if (battle_config.etc_log)
- ShowNotice("intif_wis_message_to_gm: from: '%s', required permission: %d, message: '%s'.\n", wisp_name, permission, mes);
-
- return 0;
-}
-
//Request for saving registry values.
static int intif_saveregistry(struct map_session_data *sd)
{
@@ -714,27 +562,6 @@ static int intif_break_party(int party_id)
return 0;
}
-// Sending party chat
-static int intif_party_message(int party_id, int account_id, const char *mes, int len)
-{
- if (intif->CheckForCharServer())
- return 0;
-
- if (chrif->other_mapserver_count < 1)
- return 0; //No need to send.
-
- nullpo_ret(mes);
- Assert_ret(len > 0 && len < 32000);
- WFIFOHEAD(inter_fd,len + 12);
- WFIFOW(inter_fd,0)=0x3027;
- WFIFOW(inter_fd,2)=len+12;
- WFIFOL(inter_fd,4)=party_id;
- WFIFOL(inter_fd,8)=account_id;
- memcpy(WFIFOP(inter_fd,12),mes,len);
- WFIFOSET(inter_fd,len+12);
- return 0;
-}
-
// Request a new leader for party
static int intif_party_leaderchange(int party_id, int account_id, int char_id)
{
@@ -931,28 +758,6 @@ static int intif_guild_break(int guild_id)
return 0;
}
-// Send a guild message
-static int intif_guild_message(int guild_id, int account_id, const char *mes, int len)
-{
- if (intif->CheckForCharServer())
- return 0;
-
- if (chrif->other_mapserver_count < 1)
- return 0; //No need to send.
-
- nullpo_ret(mes);
- Assert_ret(len > 0 && len < 32000);
- WFIFOHEAD(inter_fd, len + 12);
- WFIFOW(inter_fd,0)=0x3037;
- WFIFOW(inter_fd,2)=len+12;
- WFIFOL(inter_fd,4)=guild_id;
- WFIFOL(inter_fd,8)=account_id;
- memcpy(WFIFOP(inter_fd,12),mes,len);
- WFIFOSET(inter_fd,len+12);
-
- return 0;
-}
-
/**
* Requests to change a basic guild information, it is parsed via mapif_parse_GuildBasicInfoChange
* To see the information types that can be changed see mmo.h::guild_basic_info
@@ -1166,98 +971,6 @@ static int intif_homunculus_requestdelete(int homun_id)
//-----------------------------------------------------------------
// Packets receive from inter server
-// Wisp/Page reception // rewritten by [Yor]
-static void intif_parse_WisMessage(int fd)
-{
- struct map_session_data* sd;
- const char *wisp_source;
- char name[NAME_LENGTH];
- int id, i;
-
- id=RFIFOL(fd,4);
-
- safestrncpy(name, RFIFOP(fd,32), NAME_LENGTH);
- sd = map->nick2sd(name);
- if(sd == NULL || strcmp(sd->status.name, name) != 0) {
- //Not found
- intif_wis_replay(id,1);
- return;
- }
- if(sd->state.ignoreAll) {
- intif_wis_replay(id, 2);
- return;
- }
- wisp_source = RFIFOP(fd,8); // speed up [Yor]
- for(i=0; i < MAX_IGNORE_LIST &&
- sd->ignore[i].name[0] != '\0' &&
- strcmp(sd->ignore[i].name, wisp_source) != 0
- ; i++);
-
- if (i < MAX_IGNORE_LIST && sd->ignore[i].name[0] != '\0') {
- //Ignored
- intif_wis_replay(id, 2);
- return;
- }
- //Success to send whisper.
- clif->wis_message(sd->fd, wisp_source, RFIFOP(fd,56),RFIFOW(fd,2)-57);
- intif_wis_replay(id,0); // success
-}
-
-// Wisp/page transmission result reception
-static void intif_parse_WisEnd(int fd)
-{
- struct map_session_data* sd;
- const char *playername = RFIFOP(fd, 2);
-
- if (battle_config.etc_log)
- ShowInfo("intif_parse_wisend: player: %s, flag: %d\n", playername, RFIFOB(fd,26)); // flag: 0: success to send whisper, 1: target character is not logged in?, 2: ignored by target
- sd = map->nick2sd(playername);
- if (sd != NULL)
- clif->wis_end(sd->fd, RFIFOB(fd,26));
-
- return;
-}
-
-static int intif_parse_WisToGM_sub(struct map_session_data *sd, va_list va)
-{
- int permission = va_arg(va, int);
- char *wisp_name;
- char *message;
- int len;
-
- nullpo_ret(sd);
- if (!pc_has_permission(sd, permission))
- return 0;
- wisp_name = va_arg(va, char*);
- message = va_arg(va, char*);
- len = va_arg(va, int);
- clif->wis_message(sd->fd, wisp_name, message, len);
- return 1;
-}
-
-// Received wisp message from map-server via char-server for ALL gm
-// 0x3003/0x3803 <packet_len>.w <wispname>.24B <permission>.l <message>.?B
-static void intif_parse_WisToGM(int fd)
-{
- int permission, mes_len;
- char Wisp_name[NAME_LENGTH];
- char mbuf[255] = { 0 };
- char *message;
-
- mes_len = RFIFOW(fd,2) - 33; // Length not including the NUL terminator
- Assert_retv(mes_len > 0 && mes_len < 32000);
- message = (mes_len >= 255 ? aMalloc(mes_len + 1) : mbuf);
-
- permission = RFIFOL(fd,28);
- safestrncpy(Wisp_name, RFIFOP(fd,4), NAME_LENGTH);
- safestrncpy(message, RFIFOP(fd,32), mes_len + 1);
- // information is sent to all online GM
- map->foreachpc(intif->pWisToGM_sub, permission, Wisp_name, message, mes_len);
-
- if (message != mbuf)
- aFree(message);
-}
-
// Request player registre
static void intif_parse_Registers(int fd)
{
@@ -1464,12 +1177,6 @@ static void intif_parse_PartyMove(int fd)
party->recv_movemap(RFIFOL(fd,2),RFIFOL(fd,6),RFIFOL(fd,10),RFIFOW(fd,14),RFIFOB(fd,16),RFIFOW(fd,17));
}
-// ACK party messages
-static void intif_parse_PartyMessage(int fd)
-{
- party->recv_message(RFIFOL(fd,4), RFIFOL(fd,8), RFIFOP(fd,12), RFIFOW(fd,2)-12);
-}
-
// ACK guild creation
static void intif_parse_GuildCreated(int fd)
{
@@ -1619,12 +1326,6 @@ static void intif_parse_GuildEmblem(int fd)
guild->emblem_changed(RFIFOW(fd,2)-12, RFIFOL(fd,4), RFIFOL(fd,8), RFIFOP(fd,12));
}
-// ACK guild message
-static void intif_parse_GuildMessage(int fd)
-{
- guild->recv_message(RFIFOL(fd,4), RFIFOL(fd,8), RFIFOP(fd,12), RFIFOW(fd,2)-12);
-}
-
// Reply guild castle data request
static void intif_parse_GuildCastleDataLoad(int fd)
{
@@ -2915,15 +2616,6 @@ static int intif_parse(int fd)
}
// Processing branch
switch(cmd){
- case 0x3800:
- if (RFIFOL(fd,4) == 0xFF000000) //Normal announce.
- clif->broadcast(NULL, RFIFOP(fd,16), packet_len-16, BC_DEFAULT, ALL_CLIENT);
- else //Color announce.
- clif->broadcast2(NULL, RFIFOP(fd,16), packet_len-16, RFIFOL(fd,4), RFIFOW(fd,8), RFIFOW(fd,10), RFIFOW(fd,12), RFIFOW(fd,14), ALL_CLIENT);
- break;
- case 0x3801: intif->pWisMessage(fd); break;
- case 0x3802: intif->pWisEnd(fd); break;
- case 0x3803: intif->pWisToGM(fd); break;
case 0x3804: intif->pRegisters(fd); break;
case 0x3805: intif->pAccountStorage(fd); break;
case 0x3806: intif->pChangeNameOk(fd); break;
@@ -2939,14 +2631,12 @@ static int intif_parse(int fd)
case 0x3824: intif->pPartyMemberWithdraw(fd); break;
case 0x3825: intif->pPartyMove(fd); break;
case 0x3826: intif->pPartyBroken(fd); break;
- case 0x3827: intif->pPartyMessage(fd); break;
case 0x3830: intif->pGuildCreated(fd); break;
case 0x3831: intif->pGuildInfo(fd); break;
case 0x3832: intif->pGuildMemberAdded(fd); break;
case 0x3834: intif->pGuildMemberWithdraw(fd); break;
case 0x3835: intif->pGuildMemberInfoShort(fd); break;
case 0x3836: intif->pGuildBroken(fd); break;
- case 0x3837: intif->pGuildMessage(fd); break;
case 0x3839: intif->pGuildBasicInfoChanged(fd); break;
case 0x383a: intif->pGuildMemberInfoChanged(fd); break;
case 0x383b: intif->pGuildPosition(fd); break;
@@ -3028,10 +2718,10 @@ static int intif_parse(int fd)
void intif_defaults(void)
{
const int packet_len_table [INTIF_PACKET_LEN_TABLE_SIZE] = {
- -1,-1,27,-1, -1,-1,37,-1, 7, 0, 0, 0, 0, 0, 0, 0, //0x3800-0x380f
+ 0, 0, 0, 0, -1,-1,37,-1, 7, 0, 0, 0, 0, 0, 0, 0, //0x3800-0x380f
-1, 0, 0, 0, 0, 0, 0, 0, -1,11, 0, 0, 0, 0, 0, 0, //0x3810 Achievements [Smokexyz/Hercules]
- 39,-1,15,15, 14,19, 7,-1, 0, 0, 0, 0, 0, 0, 0, 0, //0x3820
- 10,-1,15, 0, 79,25, 7,-1, 0,-1,-1,-1, 14,67,186,-1, //0x3830
+ 39,-1,15,15, 14,19, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, //0x3820
+ 10,-1,15, 0, 79,25, 7, 0, 0,-1,-1,-1, 14,67,186,-1, //0x3830
-1, 0, 0,14, 0, 0, 0, 0, -1,74,-1,11, 11,-1, 0, 0, //0x3840
-1,-1, 7, 7, 7,11, 8, 0, 10, 0, 0, 0, 0, 0, 0, 0, //0x3850 Auctions [Zephyrus] itembound[Akinari] Clan System[Murilo BiO]
-1, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //0x3860 Quests [Kevin] [Inkfish]
@@ -3048,11 +2738,6 @@ void intif_defaults(void)
/* funcs */
intif->parse = intif_parse;
intif->create_pet = intif_create_pet;
- intif->broadcast = intif_broadcast;
- intif->broadcast2 = intif_broadcast2;
- intif->main_message = intif_main_message;
- intif->wis_message = intif_wis_message;
- intif->wis_message_to_gm = intif_wis_message_to_gm;
intif->saveregistry = intif_saveregistry;
intif->request_registry = intif_request_registry;
intif->request_account_storage = intif_request_account_storage;
@@ -3066,7 +2751,6 @@ void intif_defaults(void)
intif->party_leave = intif_party_leave;
intif->party_changemap = intif_party_changemap;
intif->break_party = intif_break_party;
- intif->party_message = intif_party_message;
intif->party_leaderchange = intif_party_leaderchange;
intif->guild_create = intif_guild_create;
intif->guild_request_info = intif_guild_request_info;
@@ -3074,7 +2758,6 @@ void intif_defaults(void)
intif->guild_leave = intif_guild_leave;
intif->guild_memberinfoshort = intif_guild_memberinfoshort;
intif->guild_break = intif_guild_break;
- intif->guild_message = intif_guild_message;
intif->guild_change_gm = intif_guild_change_gm;
intif->guild_change_basicinfo = intif_guild_change_basicinfo;
intif->guild_change_memberinfo = intif_guild_change_memberinfo;
@@ -3138,10 +2821,6 @@ void intif_defaults(void)
intif->achievements_request = intif_achievements_request;
intif->achievements_save = intif_achievements_save;
/* parse functions */
- intif->pWisMessage = intif_parse_WisMessage;
- intif->pWisEnd = intif_parse_WisEnd;
- intif->pWisToGM_sub = intif_parse_WisToGM_sub;
- intif->pWisToGM = intif_parse_WisToGM;
intif->pRegisters = intif_parse_Registers;
intif->pChangeNameOk = intif_parse_ChangeNameOk;
intif->pMessageToFD = intif_parse_MessageToFD;
@@ -3156,14 +2835,12 @@ void intif_defaults(void)
intif->pPartyMemberWithdraw = intif_parse_PartyMemberWithdraw;
intif->pPartyMove = intif_parse_PartyMove;
intif->pPartyBroken = intif_parse_PartyBroken;
- intif->pPartyMessage = intif_parse_PartyMessage;
intif->pGuildCreated = intif_parse_GuildCreated;
intif->pGuildInfo = intif_parse_GuildInfo;
intif->pGuildMemberAdded = intif_parse_GuildMemberAdded;
intif->pGuildMemberWithdraw = intif_parse_GuildMemberWithdraw;
intif->pGuildMemberInfoShort = intif_parse_GuildMemberInfoShort;
intif->pGuildBroken = intif_parse_GuildBroken;
- intif->pGuildMessage = intif_parse_GuildMessage;
intif->pGuildBasicInfoChanged = intif_parse_GuildBasicInfoChanged;
intif->pGuildMemberInfoChanged = intif_parse_GuildMemberInfoChanged;
intif->pGuildPosition = intif_parse_GuildPosition;
diff --git a/src/map/intif.h b/src/map/intif.h
index 8df669217..ffac4a1c9 100644
--- a/src/map/intif.h
+++ b/src/map/intif.h
@@ -60,11 +60,6 @@ struct intif_interface {
int (*parse) (int fd);
int (*create_pet)(int account_id, int char_id, int pet_type, int pet_lv, int pet_egg_id,
int pet_equip, short intimate, short hungry, char rename_flag, char incubate, char *pet_name);
- int (*broadcast) (const char *mes, int len, int type);
- int (*broadcast2) (const char *mes, int len, unsigned int fontColor, short fontType, short fontSize, short fontAlign, short fontY);
- int (*main_message) (struct map_session_data* sd, const char* message);
- int (*wis_message) (struct map_session_data *sd, const char *nick, const char *mes, int mes_len);
- int (*wis_message_to_gm) (char *Wisp_name, int permission, char *mes);
int (*saveregistry) (struct map_session_data *sd);
int (*request_registry) (struct map_session_data *sd, int flag);
void (*request_account_storage) (const struct map_session_data *sd);
@@ -78,7 +73,6 @@ struct intif_interface {
int (*party_leave) (int party_id,int account_id, int char_id);
int (*party_changemap) (struct map_session_data *sd, int online);
int (*break_party) (int party_id);
- int (*party_message) (int party_id, int account_id, const char *mes,int len);
int (*party_leaderchange) (int party_id,int account_id,int char_id);
int (*guild_create) (const char *name, const struct guild_member *master);
int (*guild_request_info) (int guild_id);
@@ -86,7 +80,6 @@ struct intif_interface {
int (*guild_leave) (int guild_id, int account_id, int char_id, int flag, const char *mes);
int (*guild_memberinfoshort) (int guild_id, int account_id, int char_id, int online, int lv, int class);
int (*guild_break) (int guild_id);
- int (*guild_message) (int guild_id, int account_id, const char *mes, int len);
int (*guild_change_gm) (int guild_id, const char *name, int len);
int (*guild_change_basicinfo) (int guild_id, int type, const void *data, int len);
int (*guild_change_memberinfo) (int guild_id, int account_id, int char_id, int type, const void *data, int len);
@@ -151,10 +144,6 @@ struct intif_interface {
void(*achievements_request) (struct map_session_data *sd);
void(*achievements_save) (struct map_session_data *sd);
/* */
- void (*pWisMessage) (int fd);
- void (*pWisEnd) (int fd);
- int (*pWisToGM_sub) (struct map_session_data* sd,va_list va);
- void (*pWisToGM) (int fd);
void (*pRegisters) (int fd);
void (*pAccountStorage) (int fd);
void (*pChangeNameOk) (int fd);
@@ -169,14 +158,12 @@ struct intif_interface {
void (*pPartyMemberWithdraw) (int fd);
void (*pPartyMove) (int fd);
void (*pPartyBroken) (int fd);
- void (*pPartyMessage) (int fd);
void (*pGuildCreated) (int fd);
void (*pGuildInfo) (int fd);
void (*pGuildMemberAdded) (int fd);
void (*pGuildMemberWithdraw) (int fd);
void (*pGuildMemberInfoShort) (int fd);
void (*pGuildBroken) (int fd);
- void (*pGuildMessage) (int fd);
void (*pGuildBasicInfoChanged) (int fd);
void (*pGuildMemberInfoChanged) (int fd);
void (*pGuildPosition) (int fd);
diff --git a/src/map/itemdb.c b/src/map/itemdb.c
index 5c56794d8..bb2732b17 100644
--- a/src/map/itemdb.c
+++ b/src/map/itemdb.c
@@ -1523,6 +1523,11 @@ static void itemdb_read_chains(void)
else
itemdb->chain_cache[ECC_ORE] = i;
+ if (!script->get_constant("ITMCHAIN_SIEGFRIED", &i))
+ ShowWarning("itemdb_read_chains: failed to find 'ITMCHAIN_SIEGFRIED' chain to link to cache!\n");
+ else
+ itemdb->chain_cache[ECC_SIEGFRIED] = i;
+
ShowStatus("Done reading '"CL_WHITE"%d"CL_RESET"' entries in '"CL_WHITE"%s"CL_RESET"'.\n", count, config_filename);
}
diff --git a/src/map/itemdb.h b/src/map/itemdb.h
index f66abe066..7da7609f1 100644
--- a/src/map/itemdb.h
+++ b/src/map/itemdb.h
@@ -139,7 +139,6 @@ enum item_itemid {
ITEMID_COATING_BOTTLE = 7139,
ITEMID_FRAGMENT_OF_CRYSTAL = 7321,
ITEMID_SKULL_ = 7420,
- ITEMID_TOKEN_OF_SIEGFRIED = 7621,
ITEMID_SPECIAL_ALLOY_TRAP = 7940,
ITEMID_CATNIP_FRUIT = 11602,
ITEMID_RED_POUCH_OF_SURPRISE = 12024,
@@ -359,6 +358,7 @@ enum geneticist_item_list {
//
enum e_chain_cache {
ECC_ORE,
+ ECC_SIEGFRIED,
/* */
ECC_MAX,
};
diff --git a/src/map/mapdefines.h b/src/map/mapdefines.h
index df9e9bccb..348ca98fd 100644
--- a/src/map/mapdefines.h
+++ b/src/map/mapdefines.h
@@ -21,6 +21,8 @@
#ifndef MAP_MAPDEFINES_H
#define MAP_MAPDEFINES_H
+#include "common/mmo.h" // packet versions
+
#define MAX_NPC_PER_MAP 512
#define AREA_SIZE (battle->bc->area_size)
#define CHAT_AREA_SIZE (battle->bc->chat_area_size)
@@ -57,8 +59,14 @@
#define MAPID_UPPERMASK 0x0fff
#define MAPID_THIRDMASK (JOBL_THIRD|MAPID_UPPERMASK)
-// Max size for inputs to Graffiti, Talkie Box and Vending text prompts
+// Max size for inputs to Vending text prompts
#define MESSAGE_SIZE (79 + 1)
+// Max size for inputs to Graffiti, Talkie Box text prompts
+#if PACKETVER_MAIN_NUM >= 20190904 || PACKETVER_RE_NUM >= 20190904 || PACKETVER_ZERO_NUM >= 20190828
+#define TALKBOX_MESSAGE_SIZE 21
+#else
+#define TALKBOX_MESSAGE_SIZE (79 + 1)
+#endif
// String length you can write in the 'talking box'
#define CHATBOX_SIZE (70 + 1)
// Chatroom-related string sizes
diff --git a/src/map/messages_main.h b/src/map/messages_main.h
index bc5bcf55d..1ef24d6ab 100644
--- a/src/map/messages_main.h
+++ b/src/map/messages_main.h
@@ -24,7 +24,7 @@
/* This file is autogenerated, please do not commit manual changes
-Latest version: 20190821
+Latest version: 20190918
*/
enum clif_messages {
@@ -21875,6 +21875,92 @@ Sold Out
*/
MSG_ID_E50 = 0xe50,
#endif
+#if PACKETVER >= 20190828
+/*20190828 to latest
+장착 중인 아이템은 교환할 수 없습니다. 장착을 해제한 뒤 시도해 주시길 바랍니다.
+*/
+ MSG_ID_E51 = 0xe51,
+#endif
+#if PACKETVER >= 20190904
+/*20190904 to latest
+길드 창고 이용 중엔 캐릭터 선택창으로 이동 할 수 없습니다.
+*/
+ MSG_ID_E52 = 0xe52,
+/*20190904 to latest
+아이템 태그가 포함되어 있어 사용할 수 없습니다.
+*/
+ MSG_ID_E53 = 0xe53,
+/*20190904 to latest
+Monster
+*/
+ MSG_ID_E54 = 0xe54,
+/*20190904 to latest
+Unknown
+*/
+ MSG_ID_E55 = 0xe55,
+/*20190904 to latest
+Undead
+*/
+ MSG_ID_E56 = 0xe56,
+/*20190904 to latest
+Animal
+*/
+ MSG_ID_E57 = 0xe57,
+/*20190904 to latest
+Plant
+*/
+ MSG_ID_E58 = 0xe58,
+/*20190904 to latest
+Insect
+*/
+ MSG_ID_E59 = 0xe59,
+/*20190904 to latest
+Marine
+*/
+ MSG_ID_E5A = 0xe5a,
+/*20190904 to latest
+Devil
+*/
+ MSG_ID_E5B = 0xe5b,
+/*20190904 to latest
+Human
+*/
+ MSG_ID_E5C = 0xe5c,
+/*20190904 to latest
+Angel
+*/
+ MSG_ID_E5D = 0xe5d,
+/*20190904 to latest
+Dragon
+*/
+ MSG_ID_E5E = 0xe5e,
+#endif
+#if PACKETVER >= 20190918
+/*20190918 to latest
+Balance: %s %c
+*/
+ MSG_ID_E5F = 0xe5f,
+/*20190918 to latest
+ ^ff0000본 아이템을 구매 후 7일 이내에는 청약 철회가 가능합니다. 다만, 7일이 지났거나 아이템을 개봉하시면 청약 철회 대상에서 제외 됩니다.또한 구매시 사용된 무료캐시는 청약철회시 반환되지 않습니다.^000000 정말로 아이템을 구매하시겠습니까? 구매하실 경우 %s캐시가 차감됩니다.
+*/
+ MSG_ID_E60 = 0xe60,
+/*20190918 to latest
+ ^ff0000본 아이템을 구매 후 7일 이내에는 청약 철회가 가능합니다. 다만, 7일이 지났거나 아이템을 개봉하시면 청약 철회 대상에서 제외 됩니다.또한 구매시 사용된 무료캐시는 청약철회시 반환되지 않습니다.^000000 정말로 아이템을 구매하시겠습니까? 구매하실 경우 일반 %s캐시, 무료 %s캐시가 차감됩니다.
+*/
+ MSG_ID_E61 = 0xe61,
+/*20190918 to latest
+[%s]의 호출이 거부되었습니다.
+*/
+ MSG_ID_E62 = 0xe62,
+/*20190918 to latest
+구매 한도액은 소지액을 초과할 수 없습니다.
+*/
+ MSG_ID_E63 = 0xe63,
+/*20190918 to latest
+노점을 여는데 실패하였습니다. 구매노점 개설을 닫아주시기 바랍니다.
+*/
+ MSG_ID_E64 = 0xe64,
+#endif
};
#endif /* MAP_MESSAGES_MAIN_H */
diff --git a/src/map/messages_re.h b/src/map/messages_re.h
index efebecdb2..4ae3dee1d 100644
--- a/src/map/messages_re.h
+++ b/src/map/messages_re.h
@@ -24,7 +24,7 @@
/* This file is autogenerated, please do not commit manual changes
-Latest version: 20190821
+Latest version: 20190918
*/
enum clif_messages {
@@ -21354,6 +21354,92 @@ Sold Out
*/
MSG_ID_E50 = 0xe50,
#endif
+#if PACKETVER >= 20190828
+/*20190828 to latest
+장착 중인 아이템은 교환할 수 없습니다. 장착을 해제한 뒤 시도해 주시길 바랍니다.
+*/
+ MSG_ID_E51 = 0xe51,
+#endif
+#if PACKETVER >= 20190904
+/*20190904 to latest
+길드 창고 이용 중엔 캐릭터 선택창으로 이동 할 수 없습니다.
+*/
+ MSG_ID_E52 = 0xe52,
+/*20190904 to latest
+아이템 태그가 포함되어 있어 사용할 수 없습니다.
+*/
+ MSG_ID_E53 = 0xe53,
+/*20190904 to latest
+Monster
+*/
+ MSG_ID_E54 = 0xe54,
+/*20190904 to latest
+Unknown
+*/
+ MSG_ID_E55 = 0xe55,
+/*20190904 to latest
+Undead
+*/
+ MSG_ID_E56 = 0xe56,
+/*20190904 to latest
+Animal
+*/
+ MSG_ID_E57 = 0xe57,
+/*20190904 to latest
+Plant
+*/
+ MSG_ID_E58 = 0xe58,
+/*20190904 to latest
+Insect
+*/
+ MSG_ID_E59 = 0xe59,
+/*20190904 to latest
+Marine
+*/
+ MSG_ID_E5A = 0xe5a,
+/*20190904 to latest
+Devil
+*/
+ MSG_ID_E5B = 0xe5b,
+/*20190904 to latest
+Human
+*/
+ MSG_ID_E5C = 0xe5c,
+/*20190904 to latest
+Angel
+*/
+ MSG_ID_E5D = 0xe5d,
+/*20190904 to latest
+Dragon
+*/
+ MSG_ID_E5E = 0xe5e,
+#endif
+#if PACKETVER >= 20190918
+/*20190918 to latest
+Balance: %s %c
+*/
+ MSG_ID_E5F = 0xe5f,
+/*20190918 to latest
+ ^ff0000본 아이템을 구매 후 7일 이내에는 청약 철회가 가능합니다. 다만, 7일이 지났거나 아이템을 개봉하시면 청약 철회 대상에서 제외 됩니다.또한 구매시 사용된 무료캐시는 청약철회시 반환되지 않습니다.^000000 정말로 아이템을 구매하시겠습니까? 구매하실 경우 %s캐시가 차감됩니다.
+*/
+ MSG_ID_E60 = 0xe60,
+/*20190918 to latest
+ ^ff0000본 아이템을 구매 후 7일 이내에는 청약 철회가 가능합니다. 다만, 7일이 지났거나 아이템을 개봉하시면 청약 철회 대상에서 제외 됩니다.또한 구매시 사용된 무료캐시는 청약철회시 반환되지 않습니다.^000000 정말로 아이템을 구매하시겠습니까? 구매하실 경우 일반 %s캐시, 무료 %s캐시가 차감됩니다.
+*/
+ MSG_ID_E61 = 0xe61,
+/*20190918 to latest
+호출이 거부되었습니다.
+*/
+ MSG_ID_E62 = 0xe62,
+/*20190918 to latest
+구매 한도액은 소지액을 초과할 수 없습니다.
+*/
+ MSG_ID_E63 = 0xe63,
+/*20190918 to latest
+노점을 여는데 실패하였습니다. 구매노점 개설을 닫아주시기 바랍니다.
+*/
+ MSG_ID_E64 = 0xe64,
+#endif
};
#endif /* MAP_MESSAGES_RE_H */
diff --git a/src/map/messages_zero.h b/src/map/messages_zero.h
index 344dbb29e..039d215ac 100644
--- a/src/map/messages_zero.h
+++ b/src/map/messages_zero.h
@@ -24,7 +24,7 @@
/* This file is autogenerated, please do not commit manual changes
-Latest version: 20190814
+Latest version: 20190918
*/
enum clif_messages {
@@ -17922,8 +17922,10 @@ Sale Start Time
계정 한정
*/
MSG_ID_E48 = 0xe48,
-/*20190814 to latest
+/*20190814 to 20190814
판매기간 : %d월 %d일 ~ %d월 %d일
+20190828 to latest
+판매기간 : %d월 %d일 %d시 %d분
*/
MSG_ID_E49 = 0xe49,
/*20190814 to latest
@@ -17947,6 +17949,102 @@ Sold Out
*/
MSG_ID_E4E = 0xe4e,
#endif
+#if PACKETVER >= 20190828
+/*20190828 to latest
+~ %d월 %d일 %d시 %d분
+*/
+ MSG_ID_E4F = 0xe4f,
+/*20190828 to latest
+상품을 더이상 추가할 수 없습니다
+*/
+ MSG_ID_E50 = 0xe50,
+/*20190828 to latest
+장착 중인 아이템은 교환할 수 없습니다. 장착을 해제한 뒤 시도해 주시길 바랍니다.
+*/
+ MSG_ID_E51 = 0xe51,
+#endif
+#if PACKETVER >= 20190911
+/*20190911 to latest
+길드 창고 이용 중엔 캐릭터 선택창으로 이동 할 수 없습니다.
+*/
+ MSG_ID_E52 = 0xe52,
+/*20190911 to latest
+아이템 태그가 포함되어 있어 사용할 수 없습니다.
+*/
+ MSG_ID_E53 = 0xe53,
+/*20190911 to latest
+Monster
+*/
+ MSG_ID_E54 = 0xe54,
+/*20190911 to latest
+Unknown
+*/
+ MSG_ID_E55 = 0xe55,
+/*20190911 to latest
+Undead
+*/
+ MSG_ID_E56 = 0xe56,
+/*20190911 to latest
+Animal
+*/
+ MSG_ID_E57 = 0xe57,
+/*20190911 to latest
+Plant
+*/
+ MSG_ID_E58 = 0xe58,
+/*20190911 to latest
+Insect
+*/
+ MSG_ID_E59 = 0xe59,
+/*20190911 to latest
+Marine
+*/
+ MSG_ID_E5A = 0xe5a,
+/*20190911 to latest
+Devil
+*/
+ MSG_ID_E5B = 0xe5b,
+/*20190911 to latest
+Human
+*/
+ MSG_ID_E5C = 0xe5c,
+/*20190911 to latest
+Angel
+*/
+ MSG_ID_E5D = 0xe5d,
+/*20190911 to latest
+Dragon
+*/
+ MSG_ID_E5E = 0xe5e,
+/*20190911 to latest
+Balance: %s %c
+*/
+ MSG_ID_E5F = 0xe5f,
+/*20190911 to latest
+ ^ff0000본 아이템을 구매 후 7일 이내에는 청약 철회가 가능합니다. 다만, 7일이 지났거나 아이템을 개봉하시면 청약 철회 대상에서 제외 됩니다.또한 구매시 사용된 무료캐시는 청약철회시 반환되지 않습니다.^000000 정말로 아이템을 구매하시겠습니까? 구매하실 경우 %s캐시가 차감됩니다.
+*/
+ MSG_ID_E60 = 0xe60,
+/*20190911 to latest
+ ^ff0000본 아이템을 구매 후 7일 이내에는 청약 철회가 가능합니다. 다만, 7일이 지났거나 아이템을 개봉하시면 청약 철회 대상에서 제외 됩니다.또한 구매시 사용된 무료캐시는 청약철회시 반환되지 않습니다.^000000 정말로 아이템을 구매하시겠습니까? 구매하실 경우 일반 %s캐시, 무료 %s캐시가 차감됩니다.
+*/
+ MSG_ID_E61 = 0xe61,
+/*20190911 to 20190911
+호출이 거부되었습니다.
+20190918 to latest
+[%s]의 호출이 거부되었습니다.
+*/
+ MSG_ID_E62 = 0xe62,
+#endif
+#if PACKETVER >= 20190918
+/*20190918 to latest
+구매 한도액은 소지액을 초과할 수 없습니다.
+*/
+ MSG_ID_E63 = 0xe63,
+/*20190918 to latest
+노점을 여는데 실패하였습니다. 구매노점 개설을 닫아주시기 바랍니다.
+*/
+ MSG_ID_E64 = 0xe64,
+#endif
};
#endif /* MAP_MESSAGES_ZERO_H */
diff --git a/src/map/npc.h b/src/map/npc.h
index 507635a84..5ff63532d 100644
--- a/src/map/npc.h
+++ b/src/map/npc.h
@@ -151,7 +151,7 @@ enum actor_classes {
#define MAX_NPC_CLASS 1000
// New NPC range
#define MAX_NPC_CLASS2_START 10001
-#define MAX_NPC_CLASS2_END 10310
+#define MAX_NPC_CLASS2_END 10344
//Script NPC events.
enum npce_event {
diff --git a/src/map/packets_keys_main.h b/src/map/packets_keys_main.h
index 565835cd7..b7f25a83d 100644
--- a/src/map/packets_keys_main.h
+++ b/src/map/packets_keys_main.h
@@ -37,7 +37,7 @@
packetKeys(0x49357d72,0x22c370a1,0x5f836591);
#endif
-// 2010-11-23aRagexeRE, 2010-11-24aRagexeRE, 2010-11-24bRagexeRE, 2010-11-25aRagexeRE, 2010-11-26aRagexeRE, 2010-11-30aRagexeRE, 2010-12-07aRagexeRE, 2010-12-14aRagexeRE, 2010-12-21aRagexeRE, 2010-12-23aRagexeRE, 2010-12-28aRagexeRE, 2011-01-04aRagexeRE, 2011-01-05aRagexeRE, 2011-01-11aRagexeRE, 2011-01-18aRagexeRE, 2011-01-25aRagexeRE, 2011-01-26aRagexeRE, 2011-01-26bRagexeRE, 2011-01-31aRagexeRE, 2011-01-31bRagexeRE, 2011-01-31cRagexeRE, 2011-02-08aRagexeRE, 2011-02-15aRagexeRE, 2011-02-22aRagexeRE, 2011-02-23aRagexeRE, 2011-02-23bRagexeRE, 2011-02-24aRagexeRE, 2011-02-25aRagexeRE, 2011-02-28aRagexeRE, 2011-03-08aRagexeRE, 2011-03-09aRagexeRE, 2011-03-09bRagexeRE, 2011-03-09cRagexeRE, 2011-03-09dRagexeRE, 2011-03-15aRagexeRE, 2011-03-22aRagexeRE, 2011-03-29aRagexeRE, 2011-03-30aRagexeRE, 2011-03-30cRagexeRE, 2011-04-05aRagexeRE, 2011-04-12aRagexeRE, 2011-04-19aRagexeRE, 2011-04-20aRagexeRE, 2011-04-26aRagexeRE, 2011-04-27aRagexeRE, 2011-05-03aRagexeRE, 2011-05-11aRagexeRE, 2011-05-17bRagexeRE, 2011-05-24aRagexeRE, 2011-05-26aRagexeRE, 2011-05-31aRagexeRE, 2011-06-07aRagexeRE, 2011-06-08aRagexeRE, 2011-06-08bRagexeRE, 2011-06-08cRagexeRE, 2011-06-09aRagexeRE, 2011-06-14bRagexeRE, 2011-06-22aRagexeRE, 2011-06-28aRagexeRE, 2011-07-06aRagexeRE, 2011-07-13aRagexeRE, 2011-07-13bRagexeRE, 2011-07-13cRagexeRE, 2011-07-19aRagexeRE, 2011-07-26aRagexeRE, 2011-08-03aRagexeRE, 2011-08-03bRagexeRE, 2011-08-10aRagexeRE, 2013-12-23aRagexeRE, 2014-05-08aRagexe, 2014-05-08aRagexeRE, 2014-06-11eRagexe, 2015-02-25hRagexe, 2018-03-15aRagexe, 2018-03-21aRagexe, 2018-03-21aRagexeRE, 2018-03-28bRagexe, 2018-03-28bRagexeRE, 2018-04-04bRagexe, 2018-04-04cRagexeRE, 2018-04-18aRagexe, 2018-04-18bRagexeRE, 2018-04-25cRagexe, 2018-04-25cRagexeRE, 2018-05-02bRagexe, 2018-05-02bRagexeRE, 2018-05-02dRagexeRE, 2018-05-09aRagexe, 2018-05-16cRagexe, 2018-05-16cRagexeRE, 2018-05-23aRagexe, 2018-05-23aRagexeRE, 2018-05-30aRagexe, 2018-05-30bRagexeRE, 2018-05-30cRagexeRE, 2018-06-05bRagexe, 2018-06-05bRagexeRE, 2018-06-12aRagexeRE, 2018-06-12bRagexeRE, 2018-06-20cRagexe, 2018-06-20dRagexeRE, 2018-06-20eRagexe, 2018-06-20eRagexeRE, 2018-06-21aRagexe, 2018-06-21aRagexeRE, 2018-07-04aRagexe, 2018-07-04aRagexeRE, 2018-07-11aRagexeRE, 2018-07-18bRagexe, 2018-07-18bRagexeRE, 2018-07-18bRagexeRE1, 2018-07-18cRagexe, 2018-07-18cRagexeRE, 2018-08-01cRagexe, 2018-08-01cRagexeRE, 2018-08-08bRagexe, 2018-08-08bRagexeRE, 2018-08-22cRagexe, 2018-08-22cRagexeRE, 2018-08-29aRagexe, 2018-08-29aRagexeRE, 2018-08-29bRagexeRE, 2018-08-31aRagexe, 2018-09-12dRagexe, 2018-09-12dRagexeRE, 2018-09-19aRagexe, 2018-09-19aRagexeRE, 2018-10-02aRagexe, 2018-10-02aRagexeRE, 2018-10-02bRagexe, 2018-10-02bRagexeRE, 2018-10-17_02aRagexe, 2018-10-17_02aRagexeRE, 2018-10-17_03aRagexe, 2018-10-17_03aRagexeRE, 2018-10-17bRagexe, 2018-10-17bRagexeRE, 2018-10-24bRagexe, 2018-10-31aRagexe, 2018-10-31bRagexe, 2018-10-31cRagexeRE, 2018-11-07aRagexe, 2018-11-07aRagexeRE, 2018-11-14cRagexe, 2018-11-14cRagexeRE, 2018-11-14dRagexe, 2018-11-14dRagexeRE, 2018-11-21bRagexe, 2018-11-21cRagexeRE, 2018-11-28aRagexe, 2018-11-28aRagexeRE, 2018-11-28bRagexe, 2018-11-28cRagexe, 2018-12-05aRagexe, 2018-12-05bRagexeRE, 2018-12-12aRagexe, 2018-12-12aRagexeRE, 2018-12-12bRagexe, 2018-12-12bRagexeRE, 2018-12-19bRagexe, 2018-12-19bRagexeRE, 2018-12-26aRagexe, 2018-12-26aRagexeRE, 2019-01-09aRagexe, 2019-01-09bRagexeRE, 2019-01-16bRagexe, 2019-01-16bRagexeRE, 2019-01-16cRagexe, 2019-01-16cRagexeRE, 2019-01-23dRagexe, 2019-01-23dRagexeRE, 2019-02-13IRagexeRE, 2019-02-13bRagexe, 2019-02-13eRagexe, 2019-02-20aRagexeRE, 2019-02-27aRagexe, 2019-02-27bRagexeRE, 2019-02-28aRagexe, 2019-02-28aRagexeRE, 2019-03-06bRagexe, 2019-03-06bRagexeRE, 2019-03-06cRagexe, 2019-03-06cRagexeRE, 2019-03-13aRagexe, 2019-03-20aRagexe, 2019-03-20aRagexeRE, 2019-03-22aRagexe, 2019-03-22aRagexeRE, 2019-03-27bRagexe, 2019-03-27bRagexeRE, 2019-04-03aRagexe, 2019-04-03bRagexeRE, 2019-04-03cRagexeRE, 2019-04-17aRagexe, 2019-04-17cRagexeRE, 2019-04-18aRagexe, 2019-04-18aRagexeRE, 2019-05-08cRagexe, 2019-05-08dRagexeRE, 2019-05-08eRagexeRE, 2019-05-22bRagexe, 2019-05-22bRagexeRE, 2019-05-22cRagexe, 2019-05-22cRagexeRE, 2019-05-23aRagexe, 2019-05-29aRagexe, 2019-05-29bRagexeRE, 2019-05-29cRagexe, 2019-05-29cRagexeRE, 2019-05-30aRagexe, 2019-05-30aRagexeRE, 2019-06-05JRagexeRE, 2019-06-05KRagexe, 2019-06-05LRagexeRE, 2019-06-05fRagexe, 2019-06-05hRagexeRE, 2019-06-19bRagexe, 2019-06-19cRagexeRE, 2019-06-19eRagexe, 2019-06-19hRagexe, 2019-06-26bRagexeRE, 2019-07-03aRagexe, 2019-07-03bRagexeRE, 2019-07-17aRagexe, 2019-07-17cRagexeRE, 2019-07-17dRagexe, 2019-07-17dRagexeRE, 2019-07-24aRagexe, 2019-07-24bRagexeRE, 2019-07-31bRagexe, 2019-07-31bRagexeRE, 2019-08-02aRagexe, 2019-08-02aRagexeRE, 2019-08-07aRagexe, 2019-08-07dRagexeRE, 2019-08-21aRagexe, 2019-08-21cRagexeRE, 2019-08-21dRagexeRE
+// 2010-11-23aRagexeRE, 2010-11-24aRagexeRE, 2010-11-24bRagexeRE, 2010-11-25aRagexeRE, 2010-11-26aRagexeRE, 2010-11-30aRagexeRE, 2010-12-07aRagexeRE, 2010-12-14aRagexeRE, 2010-12-21aRagexeRE, 2010-12-23aRagexeRE, 2010-12-28aRagexeRE, 2011-01-04aRagexeRE, 2011-01-05aRagexeRE, 2011-01-11aRagexeRE, 2011-01-18aRagexeRE, 2011-01-25aRagexeRE, 2011-01-26aRagexeRE, 2011-01-26bRagexeRE, 2011-01-31aRagexeRE, 2011-01-31bRagexeRE, 2011-01-31cRagexeRE, 2011-02-08aRagexeRE, 2011-02-15aRagexeRE, 2011-02-22aRagexeRE, 2011-02-23aRagexeRE, 2011-02-23bRagexeRE, 2011-02-24aRagexeRE, 2011-02-25aRagexeRE, 2011-02-28aRagexeRE, 2011-03-08aRagexeRE, 2011-03-09aRagexeRE, 2011-03-09bRagexeRE, 2011-03-09cRagexeRE, 2011-03-09dRagexeRE, 2011-03-15aRagexeRE, 2011-03-22aRagexeRE, 2011-03-29aRagexeRE, 2011-03-30aRagexeRE, 2011-03-30cRagexeRE, 2011-04-05aRagexeRE, 2011-04-12aRagexeRE, 2011-04-19aRagexeRE, 2011-04-20aRagexeRE, 2011-04-26aRagexeRE, 2011-04-27aRagexeRE, 2011-05-03aRagexeRE, 2011-05-11aRagexeRE, 2011-05-17bRagexeRE, 2011-05-24aRagexeRE, 2011-05-26aRagexeRE, 2011-05-31aRagexeRE, 2011-06-07aRagexeRE, 2011-06-08aRagexeRE, 2011-06-08bRagexeRE, 2011-06-08cRagexeRE, 2011-06-09aRagexeRE, 2011-06-14bRagexeRE, 2011-06-22aRagexeRE, 2011-06-28aRagexeRE, 2011-07-06aRagexeRE, 2011-07-13aRagexeRE, 2011-07-13bRagexeRE, 2011-07-13cRagexeRE, 2011-07-19aRagexeRE, 2011-07-26aRagexeRE, 2011-08-03aRagexeRE, 2011-08-03bRagexeRE, 2011-08-10aRagexeRE, 2013-12-23aRagexeRE, 2014-05-08aRagexe, 2014-05-08aRagexeRE, 2014-06-11eRagexe, 2015-02-25hRagexe, 2018-03-15aRagexe, 2018-03-21aRagexe, 2018-03-21aRagexeRE, 2018-03-28bRagexe, 2018-03-28bRagexeRE, 2018-04-04bRagexe, 2018-04-04cRagexeRE, 2018-04-18aRagexe, 2018-04-18bRagexeRE, 2018-04-25cRagexe, 2018-04-25cRagexeRE, 2018-05-02bRagexe, 2018-05-02bRagexeRE, 2018-05-02dRagexeRE, 2018-05-09aRagexe, 2018-05-16cRagexe, 2018-05-16cRagexeRE, 2018-05-23aRagexe, 2018-05-23aRagexeRE, 2018-05-30aRagexe, 2018-05-30bRagexeRE, 2018-05-30cRagexeRE, 2018-06-05bRagexe, 2018-06-05bRagexeRE, 2018-06-12aRagexeRE, 2018-06-12bRagexeRE, 2018-06-20cRagexe, 2018-06-20dRagexeRE, 2018-06-20eRagexe, 2018-06-20eRagexeRE, 2018-06-21aRagexe, 2018-06-21aRagexeRE, 2018-07-04aRagexe, 2018-07-04aRagexeRE, 2018-07-11aRagexeRE, 2018-07-18bRagexe, 2018-07-18bRagexeRE, 2018-07-18bRagexeRE1, 2018-07-18cRagexe, 2018-07-18cRagexeRE, 2018-08-01cRagexe, 2018-08-01cRagexeRE, 2018-08-08bRagexe, 2018-08-08bRagexeRE, 2018-08-22cRagexe, 2018-08-22cRagexeRE, 2018-08-29aRagexe, 2018-08-29aRagexeRE, 2018-08-29bRagexeRE, 2018-08-31aRagexe, 2018-09-12dRagexe, 2018-09-12dRagexeRE, 2018-09-19aRagexe, 2018-09-19aRagexeRE, 2018-10-02aRagexe, 2018-10-02aRagexeRE, 2018-10-02bRagexe, 2018-10-02bRagexeRE, 2018-10-17_02aRagexe, 2018-10-17_02aRagexeRE, 2018-10-17_03aRagexe, 2018-10-17_03aRagexeRE, 2018-10-17bRagexe, 2018-10-17bRagexeRE, 2018-10-24bRagexe, 2018-10-31aRagexe, 2018-10-31bRagexe, 2018-10-31cRagexeRE, 2018-11-07aRagexe, 2018-11-07aRagexeRE, 2018-11-14cRagexe, 2018-11-14cRagexeRE, 2018-11-14dRagexe, 2018-11-14dRagexeRE, 2018-11-21bRagexe, 2018-11-21cRagexeRE, 2018-11-28aRagexe, 2018-11-28aRagexeRE, 2018-11-28bRagexe, 2018-11-28cRagexe, 2018-12-05aRagexe, 2018-12-05bRagexeRE, 2018-12-12aRagexe, 2018-12-12aRagexeRE, 2018-12-12bRagexe, 2018-12-12bRagexeRE, 2018-12-19bRagexe, 2018-12-19bRagexeRE, 2018-12-26aRagexe, 2018-12-26aRagexeRE, 2019-01-09aRagexe, 2019-01-09bRagexeRE, 2019-01-16bRagexe, 2019-01-16bRagexeRE, 2019-01-16cRagexe, 2019-01-16cRagexeRE, 2019-01-23dRagexe, 2019-01-23dRagexeRE, 2019-02-13IRagexeRE, 2019-02-13bRagexe, 2019-02-13eRagexe, 2019-02-20aRagexeRE, 2019-02-27aRagexe, 2019-02-27bRagexeRE, 2019-02-28aRagexe, 2019-02-28aRagexeRE, 2019-03-06bRagexe, 2019-03-06bRagexeRE, 2019-03-06cRagexe, 2019-03-06cRagexeRE, 2019-03-13aRagexe, 2019-03-20aRagexe, 2019-03-20aRagexeRE, 2019-03-22aRagexe, 2019-03-22aRagexeRE, 2019-03-27bRagexe, 2019-03-27bRagexeRE, 2019-04-03aRagexe, 2019-04-03bRagexeRE, 2019-04-03cRagexeRE, 2019-04-17aRagexe, 2019-04-17cRagexeRE, 2019-04-18aRagexe, 2019-04-18aRagexeRE, 2019-05-08cRagexe, 2019-05-08dRagexeRE, 2019-05-08eRagexeRE, 2019-05-22bRagexe, 2019-05-22bRagexeRE, 2019-05-22cRagexe, 2019-05-22cRagexeRE, 2019-05-23aRagexe, 2019-05-29aRagexe, 2019-05-29bRagexeRE, 2019-05-29cRagexe, 2019-05-29cRagexeRE, 2019-05-30aRagexe, 2019-05-30aRagexeRE, 2019-06-05JRagexeRE, 2019-06-05KRagexe, 2019-06-05LRagexeRE, 2019-06-05fRagexe, 2019-06-05hRagexeRE, 2019-06-19bRagexe, 2019-06-19cRagexeRE, 2019-06-19eRagexe, 2019-06-19hRagexe, 2019-06-26bRagexeRE, 2019-07-03aRagexe, 2019-07-03bRagexeRE, 2019-07-17aRagexe, 2019-07-17cRagexeRE, 2019-07-17dRagexe, 2019-07-17dRagexeRE, 2019-07-24aRagexe, 2019-07-24bRagexeRE, 2019-07-31bRagexe, 2019-07-31bRagexeRE, 2019-08-02aRagexe, 2019-08-02aRagexeRE, 2019-08-07aRagexe, 2019-08-07dRagexeRE, 2019-08-21aRagexe, 2019-08-21cRagexeRE, 2019-08-21dRagexeRE, 2019-08-28aRagexe, 2019-08-28aRagexeRE, 2019-09-04aRagexe, 2019-09-04bRagexe, 2019-09-04bRagexeRE, 2019-09-18bRagexe, 2019-09-18cRagexeRE
#if PACKETVER == 20101123 || \
PACKETVER == 20101124 || \
PACKETVER == 20101125 || \
@@ -162,7 +162,10 @@
PACKETVER == 20190731 || \
PACKETVER == 20190802 || \
PACKETVER == 20190807 || \
- PACKETVER >= 20190821
+ PACKETVER == 20190821 || \
+ PACKETVER == 20190828 || \
+ PACKETVER == 20190904 || \
+ PACKETVER >= 20190918
packetKeys(0x00000000,0x00000000,0x00000000);
#endif
diff --git a/src/map/packets_keys_zero.h b/src/map/packets_keys_zero.h
index 0e70ef641..2708d11e1 100644
--- a/src/map/packets_keys_zero.h
+++ b/src/map/packets_keys_zero.h
@@ -30,7 +30,7 @@
/* This file is autogenerated, please do not commit manual changes */
-// 2017-10-18aRagexe_zero, 2017-10-19aRagexe_zero, 2017-10-23aRagexe_zero, 2017-10-23bRagexe_zero, 2017-10-23cRagexe_zero, 2017-10-24aRagexe_2_zero, 2017-10-24aRagexe_zero, 2017-10-25bRagexe_zero, 2017-10-27aRagexe_zero, 2017-10-27bRagexe_zero, 2017-10-30aRagexe_zero, 2017-10-31aRagexe_zero, 2017-11-09aRagexe_zero, 2017-11-13aRagexe_zero, 2017-11-13bRagexe_zero, 2018-03-15aRagexe_zero, 2018-03-21aRagexe_zero, 2018-03-21bRagexe_zero, 2018-03-28_1aRagexe_zero, 2018-03-28cRagexe_zero, 2018-04-11aRagexe_zero, 2018-04-25_3aRagexe_zero, 2018-05-09_3aRagexe_zero, 2018-05-23aRagexe_zero, 2018-06-05bRagexe_zero, 2018-06-05cRagexe_zero, 2018-06-27aRagexe_zero, 2018-07-03aRagexe_zero, 2018-07-11_2aRagexe_zero, 2018-07-25_2aRagexe_zero, 2018-08-01aRagexe_zero, 2018-08-08_2aRagexe_zero, 2018-08-22aRagexe_zero, 2018-08-29aRagexe_zero, 2018-09-05aRagexe_zero, 2018-09-12aRagexe_zero, 2018-09-19aRagexe_zero, 2018-09-28aRagexe_zero, 2018-10-10_2aRagexe_zero, 2018-10-24_2aRagexe_zero, 2018-11-14aRagexe_zero, 2018-11-20aRagexe_zero, 2018-11-28aRagexe_zero, 2018-12-12aRagexe_zero, 2018-12-19aRagexe_zero, 2018-12-26_2aRagexe_zero, 2019-01-16_2aRagexe_zero, 2019-01-17_1aRagexe_zero, 2019-01-30_2aRagexe_zero, 2019-02-13aRagexe_zero, 2019-02-20aRagexe_zero, 2019-02-27aRagexe_zero, 2019-03-13aRagexe_zero, 2019-03-27_2aRagexe_zero, 2019-03-27_3aRagexe_zero, 2019-04-03aRagexe_zero, 2019-04-10bRagexe_zero, 2019-04-24aRagexe_zero, 2019-05-02aRagexe_zero, 2019-05-08_2aRagexe_zero, 2019-05-08aRagexe_zero, 2019-05-15aRagexe_zero, 2019-05-29aRagexe_zero, 2019-05-30aRagexe_zero, 2019-06-05_2aRagexe_zero, 2019-06-26_2aRagexe_zero, 2019-06-26_3aRagexe_zero, 2019-07-09aRagexe_zero, 2019-07-10_3aRagexe_zero, 2019-07-17aRagexe_zero, 2019-07-24aRagexe_zero, 2019-08-14_3aRagexe_zero
+// 2017-10-18aRagexe_zero, 2017-10-19aRagexe_zero, 2017-10-23aRagexe_zero, 2017-10-23bRagexe_zero, 2017-10-23cRagexe_zero, 2017-10-24aRagexe_2_zero, 2017-10-24aRagexe_zero, 2017-10-25bRagexe_zero, 2017-10-27aRagexe_zero, 2017-10-27bRagexe_zero, 2017-10-30aRagexe_zero, 2017-10-31aRagexe_zero, 2017-11-09aRagexe_zero, 2017-11-13aRagexe_zero, 2017-11-13bRagexe_zero, 2018-03-15aRagexe_zero, 2018-03-21aRagexe_zero, 2018-03-21bRagexe_zero, 2018-03-28_1aRagexe_zero, 2018-03-28cRagexe_zero, 2018-04-11aRagexe_zero, 2018-04-25_3aRagexe_zero, 2018-05-09_3aRagexe_zero, 2018-05-23aRagexe_zero, 2018-06-05bRagexe_zero, 2018-06-05cRagexe_zero, 2018-06-27aRagexe_zero, 2018-07-03aRagexe_zero, 2018-07-11_2aRagexe_zero, 2018-07-25_2aRagexe_zero, 2018-08-01aRagexe_zero, 2018-08-08_2aRagexe_zero, 2018-08-22aRagexe_zero, 2018-08-29aRagexe_zero, 2018-09-05aRagexe_zero, 2018-09-12aRagexe_zero, 2018-09-19aRagexe_zero, 2018-09-28aRagexe_zero, 2018-10-10_2aRagexe_zero, 2018-10-24_2aRagexe_zero, 2018-11-14aRagexe_zero, 2018-11-20aRagexe_zero, 2018-11-28aRagexe_zero, 2018-12-12aRagexe_zero, 2018-12-19aRagexe_zero, 2018-12-26_2aRagexe_zero, 2019-01-16_2aRagexe_zero, 2019-01-17_1aRagexe_zero, 2019-01-30_2aRagexe_zero, 2019-02-13aRagexe_zero, 2019-02-20aRagexe_zero, 2019-02-27aRagexe_zero, 2019-03-13aRagexe_zero, 2019-03-27_2aRagexe_zero, 2019-03-27_3aRagexe_zero, 2019-04-03aRagexe_zero, 2019-04-10bRagexe_zero, 2019-04-24aRagexe_zero, 2019-05-02aRagexe_zero, 2019-05-08_2aRagexe_zero, 2019-05-08aRagexe_zero, 2019-05-15aRagexe_zero, 2019-05-29aRagexe_zero, 2019-05-30aRagexe_zero, 2019-06-05_2aRagexe_zero, 2019-06-26_2aRagexe_zero, 2019-06-26_3aRagexe_zero, 2019-07-09aRagexe_zero, 2019-07-10_3aRagexe_zero, 2019-07-17aRagexe_zero, 2019-07-24aRagexe_zero, 2019-08-14_3aRagexe_zero, 2019-08-28_2aRagexe_zero, 2019-08-28_3aRagexe_zero, 2019-09-11aRagexe_zero, 2019-09-18_2aRagexe_zero, 2019-09-18aRagexe_zero
#if PACKETVER == 20171018 || \
PACKETVER == 20171019 || \
PACKETVER == 20171023 || \
@@ -91,7 +91,10 @@
PACKETVER == 20190710 || \
PACKETVER == 20190717 || \
PACKETVER == 20190724 || \
- PACKETVER >= 20190814
+ PACKETVER == 20190814 || \
+ PACKETVER == 20190828 || \
+ PACKETVER == 20190911 || \
+ PACKETVER >= 20190918
packetKeys(0x00000000,0x00000000,0x00000000);
#endif
diff --git a/src/map/packets_shuffle_main.h b/src/map/packets_shuffle_main.h
index 082c940c9..e3e798dd1 100644
--- a/src/map/packets_shuffle_main.h
+++ b/src/map/packets_shuffle_main.h
@@ -9727,7 +9727,7 @@
packet(0x0967,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6
#endif
-// 2018-11-21bRagexe, 2018-11-28aRagexe, 2018-11-28bRagexe, 2018-11-28cRagexe, 2018-12-05aRagexe, 2018-12-12aRagexe, 2018-12-12bRagexe, 2018-12-19bRagexe, 2018-12-26aRagexe, 2019-01-09aRagexe, 2019-01-16bRagexe, 2019-01-16cRagexe, 2019-01-23dRagexe, 2019-02-13bRagexe, 2019-02-13eRagexe, 2019-02-27aRagexe, 2019-02-28aRagexe, 2019-03-06bRagexe, 2019-03-06cRagexe, 2019-03-13aRagexe, 2019-03-20aRagexe, 2019-03-22aRagexe, 2019-03-27bRagexe, 2019-04-03aRagexe, 2019-04-17aRagexe, 2019-04-18aRagexe, 2019-05-08cRagexe, 2019-05-22bRagexe, 2019-05-22cRagexe, 2019-05-23aRagexe, 2019-05-29aRagexe, 2019-05-29cRagexe, 2019-05-30aRagexe, 2019-06-05fRagexe, 2019-06-05KRagexe, 2019-06-19bRagexe, 2019-06-19eRagexe, 2019-06-19hRagexe, 2019-07-03aRagexe, 2019-07-17aRagexe, 2019-07-17dRagexe, 2019-07-24aRagexe, 2019-07-31bRagexe, 2019-08-02aRagexe, 2019-08-07aRagexe, 2019-08-21aRagexe
+// 2018-11-21bRagexe, 2018-11-28aRagexe, 2018-11-28bRagexe, 2018-11-28cRagexe, 2018-12-05aRagexe, 2018-12-12aRagexe, 2018-12-12bRagexe, 2018-12-19bRagexe, 2018-12-26aRagexe, 2019-01-09aRagexe, 2019-01-16bRagexe, 2019-01-16cRagexe, 2019-01-23dRagexe, 2019-02-13bRagexe, 2019-02-13eRagexe, 2019-02-27aRagexe, 2019-02-28aRagexe, 2019-03-06bRagexe, 2019-03-06cRagexe, 2019-03-13aRagexe, 2019-03-20aRagexe, 2019-03-22aRagexe, 2019-03-27bRagexe, 2019-04-03aRagexe, 2019-04-17aRagexe, 2019-04-18aRagexe, 2019-05-08cRagexe, 2019-05-22bRagexe, 2019-05-22cRagexe, 2019-05-23aRagexe, 2019-05-29aRagexe, 2019-05-29cRagexe, 2019-05-30aRagexe, 2019-06-05fRagexe, 2019-06-05KRagexe, 2019-06-19bRagexe, 2019-06-19eRagexe, 2019-06-19hRagexe, 2019-07-03aRagexe, 2019-07-17aRagexe, 2019-07-17dRagexe, 2019-07-24aRagexe, 2019-07-31bRagexe, 2019-08-02aRagexe, 2019-08-07aRagexe, 2019-08-21aRagexe, 2019-08-28aRagexe
#if PACKETVER == 20181121 || \
PACKETVER == 20181128 || \
PACKETVER == 20181205 || \
@@ -9761,7 +9761,8 @@
PACKETVER == 20190731 || \
PACKETVER == 20190802 || \
PACKETVER == 20190807 || \
- PACKETVER >= 20190821
+ PACKETVER == 20190821 || \
+ PACKETVER >= 20190828
packet(0x0202,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26
packet(0x022d,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5
packet(0x023b,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36
@@ -9793,5 +9794,39 @@
packet(0x083c,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 14
#endif
+// 2019-09-04aRagexe, 2019-09-04bRagexe, 2019-09-18bRagexe
+#if PACKETVER == 20190904 || \
+ PACKETVER == 20190918
+ packet(0x0202,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26
+ packet(0x022d,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5
+ packet(0x023b,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36
+ packet(0x0281,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4
+ packet(0x02c4,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26
+ packet(0x035f,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5
+ packet(0x0360,clif->pTickSend,2); // CZ_REQUEST_TIME // 6
+ packet(0x0361,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5
+ packet(0x0362,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6
+ packet(0x0363,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6
+ packet(0x0364,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8
+ packet(0x0365,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8
+ packet(0x0366,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10
+ packet(0x0367,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 31
+ packet(0x0368,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6
+ packet(0x0369,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6
+ packet(0x0436,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19
+ packet(0x0437,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7
+ packet(0x0438,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10
+ packet(0x07e4,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1
+ packet(0x07ec,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8
+ packet(0x0802,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18
+ packet(0x0811,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1
+ packet(0x0815,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2
+ packet(0x0817,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6
+ packet(0x0819,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1
+ packet(0x0835,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1
+ packet(0x0838,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2
+ packet(0x083c,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 14
+#endif
+
#endif /* MAP_PACKETS_SHUFFLE_MAIN_H */
diff --git a/src/map/packets_shuffle_re.h b/src/map/packets_shuffle_re.h
index 044788301..f2a1b96ad 100644
--- a/src/map/packets_shuffle_re.h
+++ b/src/map/packets_shuffle_re.h
@@ -9663,7 +9663,7 @@
packet(0x083c,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 12
#endif
-// 2018-07-04aRagexeRE, 2018-07-11aRagexeRE, 2018-07-18bRagexeRE, 2018-07-18bRagexeRE1, 2018-07-18cRagexeRE, 2018-08-01cRagexeRE, 2018-08-08bRagexeRE, 2018-08-22cRagexeRE, 2018-08-29aRagexeRE, 2018-08-29bRagexeRE, 2018-09-12dRagexeRE, 2018-09-19aRagexeRE, 2018-10-02aRagexeRE, 2018-10-02bRagexeRE, 2018-10-17_02aRagexeRE, 2018-10-17_03aRagexeRE, 2018-10-17bRagexeRE, 2018-10-31cRagexeRE, 2018-11-07aRagexeRE, 2018-11-14cRagexeRE, 2018-11-14dRagexeRE, 2018-11-21cRagexeRE, 2018-11-28aRagexeRE, 2018-12-05bRagexeRE, 2018-12-12aRagexeRE, 2018-12-12bRagexeRE, 2018-12-19bRagexeRE, 2018-12-26aRagexeRE, 2019-01-09bRagexeRE, 2019-01-16bRagexeRE, 2019-01-16cRagexeRE, 2019-01-23dRagexeRE, 2019-02-13IRagexeRE, 2019-02-20aRagexeRE, 2019-02-27bRagexeRE, 2019-02-28aRagexeRE, 2019-03-06bRagexeRE, 2019-03-06cRagexeRE, 2019-03-20aRagexeRE, 2019-03-22aRagexeRE, 2019-03-27bRagexeRE, 2019-04-03bRagexeRE, 2019-04-03cRagexeRE, 2019-04-17cRagexeRE, 2019-04-18aRagexeRE, 2019-05-08dRagexeRE, 2019-05-08eRagexeRE, 2019-05-22bRagexeRE, 2019-05-22cRagexeRE, 2019-05-29bRagexeRE, 2019-05-29cRagexeRE, 2019-05-30aRagexeRE, 2019-06-05hRagexeRE, 2019-06-05JRagexeRE, 2019-06-05LRagexeRE, 2019-06-19cRagexeRE, 2019-06-26bRagexeRE, 2019-07-03bRagexeRE, 2019-07-17cRagexeRE, 2019-07-17dRagexeRE, 2019-07-24bRagexeRE, 2019-07-31bRagexeRE, 2019-08-02aRagexeRE, 2019-08-07dRagexeRE, 2019-08-21cRagexeRE, 2019-08-21dRagexeRE
+// 2018-07-04aRagexeRE, 2018-07-11aRagexeRE, 2018-07-18bRagexeRE, 2018-07-18bRagexeRE1, 2018-07-18cRagexeRE, 2018-08-01cRagexeRE, 2018-08-08bRagexeRE, 2018-08-22cRagexeRE, 2018-08-29aRagexeRE, 2018-08-29bRagexeRE, 2018-09-12dRagexeRE, 2018-09-19aRagexeRE, 2018-10-02aRagexeRE, 2018-10-02bRagexeRE, 2018-10-17_02aRagexeRE, 2018-10-17_03aRagexeRE, 2018-10-17bRagexeRE, 2018-10-31cRagexeRE, 2018-11-07aRagexeRE, 2018-11-14cRagexeRE, 2018-11-14dRagexeRE, 2018-11-21cRagexeRE, 2018-11-28aRagexeRE, 2018-12-05bRagexeRE, 2018-12-12aRagexeRE, 2018-12-12bRagexeRE, 2018-12-19bRagexeRE, 2018-12-26aRagexeRE, 2019-01-09bRagexeRE, 2019-01-16bRagexeRE, 2019-01-16cRagexeRE, 2019-01-23dRagexeRE, 2019-02-13IRagexeRE, 2019-02-20aRagexeRE, 2019-02-27bRagexeRE, 2019-02-28aRagexeRE, 2019-03-06bRagexeRE, 2019-03-06cRagexeRE, 2019-03-20aRagexeRE, 2019-03-22aRagexeRE, 2019-03-27bRagexeRE, 2019-04-03bRagexeRE, 2019-04-03cRagexeRE, 2019-04-17cRagexeRE, 2019-04-18aRagexeRE, 2019-05-08dRagexeRE, 2019-05-08eRagexeRE, 2019-05-22bRagexeRE, 2019-05-22cRagexeRE, 2019-05-29bRagexeRE, 2019-05-29cRagexeRE, 2019-05-30aRagexeRE, 2019-06-05hRagexeRE, 2019-06-05JRagexeRE, 2019-06-05LRagexeRE, 2019-06-19cRagexeRE, 2019-06-26bRagexeRE, 2019-07-03bRagexeRE, 2019-07-17cRagexeRE, 2019-07-17dRagexeRE, 2019-07-24bRagexeRE, 2019-07-31bRagexeRE, 2019-08-02aRagexeRE, 2019-08-07dRagexeRE, 2019-08-21cRagexeRE, 2019-08-21dRagexeRE, 2019-08-28aRagexeRE
#if PACKETVER == 20180704 || \
PACKETVER == 20180711 || \
PACKETVER == 20180718 || \
@@ -9711,7 +9711,8 @@
PACKETVER == 20190731 || \
PACKETVER == 20190802 || \
PACKETVER == 20190807 || \
- PACKETVER >= 20190821
+ PACKETVER == 20190821 || \
+ PACKETVER >= 20190828
packet(0x0202,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26
packet(0x022d,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5
packet(0x023b,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36
@@ -9743,5 +9744,39 @@
packet(0x083c,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 14
#endif
+// 2019-09-04bRagexeRE, 2019-09-18cRagexeRE
+#if PACKETVER == 20190904 || \
+ PACKETVER == 20190918
+ packet(0x0202,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26
+ packet(0x022d,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5
+ packet(0x023b,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36
+ packet(0x0281,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4
+ packet(0x02c4,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26
+ packet(0x035f,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5
+ packet(0x0360,clif->pTickSend,2); // CZ_REQUEST_TIME // 6
+ packet(0x0361,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5
+ packet(0x0362,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6
+ packet(0x0363,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6
+ packet(0x0364,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8
+ packet(0x0365,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8
+ packet(0x0366,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10
+ packet(0x0367,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 31
+ packet(0x0368,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6
+ packet(0x0369,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6
+ packet(0x0436,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19
+ packet(0x0437,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7
+ packet(0x0438,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10
+ packet(0x07e4,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1
+ packet(0x07ec,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8
+ packet(0x0802,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18
+ packet(0x0811,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1
+ packet(0x0815,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2
+ packet(0x0817,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6
+ packet(0x0819,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1
+ packet(0x0835,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1
+ packet(0x0838,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2
+ packet(0x083c,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 14
+#endif
+
#endif /* MAP_PACKETS_SHUFFLE_RE_H */
diff --git a/src/map/packets_shuffle_zero.h b/src/map/packets_shuffle_zero.h
index 109dadaba..4d6da7a8a 100644
--- a/src/map/packets_shuffle_zero.h
+++ b/src/map/packets_shuffle_zero.h
@@ -803,5 +803,40 @@
packet(0x083c,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 14
#endif
+// 2019-08-28_2aRagexe_zero, 2019-08-28_3aRagexe_zero, 2019-09-11aRagexe_zero, 2019-09-18_2aRagexe_zero, 2019-09-18aRagexe_zero
+#if PACKETVER == 20190828 || \
+ PACKETVER == 20190911 || \
+ PACKETVER == 20190918
+ packet(0x0202,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26
+ packet(0x022d,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5
+ packet(0x023b,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36
+ packet(0x0281,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK // 4
+ packet(0x02c4,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ // 26
+ packet(0x035f,clif->pWalkToXY,2); // CZ_REQUEST_MOVE // 5
+ packet(0x0360,clif->pTickSend,2); // CZ_REQUEST_TIME // 6
+ packet(0x0361,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION // 5
+ packet(0x0362,clif->pTakeItem,2); // CZ_ITEM_PICKUP // 6
+ packet(0x0363,clif->pDropItem,2,4); // CZ_ITEM_THROW // 6
+ packet(0x0364,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE // 8
+ packet(0x0365,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY // 8
+ packet(0x0366,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND // 10
+ packet(0x0367,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX // 31
+ packet(0x0368,clif->pGetCharNameRequest,2); // CZ_REQNAME // 6
+ packet(0x0369,clif->pSolveCharName,2); // CZ_REQNAME_BYGID // 6
+ packet(0x0436,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER // 19
+ packet(0x0437,clif->pActionRequest,2,6); // CZ_REQUEST_ACT // 7
+ packet(0x0438,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL // 10
+ packet(0x07e4,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES // -1
+ packet(0x07ec,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD // 8
+ packet(0x0802,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER // 18
+ packet(0x0811,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE // -1
+ packet(0x0815,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE // 2
+ packet(0x0817,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE // 6
+ packet(0x0819,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE // -1
+ packet(0x0835,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO // -1
+ packet(0x0838,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE // 2
+ packet(0x083c,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 14
+#endif
+
#endif /* MAP_PACKETS_SHUFFLE_ZERO_H */
diff --git a/src/map/packets_struct.h b/src/map/packets_struct.h
index d12dc14d4..93b4abcca 100644
--- a/src/map/packets_struct.h
+++ b/src/map/packets_struct.h
@@ -3460,6 +3460,14 @@ struct PACKET_ZC_REFINE_STATUS {
DEFINE_PACKET_HEADER(ZC_REFINE_STATUS, 0x0ada);
#endif
+struct PACKET_ZC_ACK_RANKING_name {
+ char name[NAME_LENGTH];
+} __attribute__((packed));
+
+struct PACKET_ZC_ACK_RANKING_points {
+ uint32 points;
+} __attribute__((packed));
+
#if PACKETVER_MAIN_NUM >= 20190731 || PACKETVER_RE_NUM >= 20190703 || PACKETVER_ZERO_NUM >= 20190724
struct PACKET_ZC_ACK_RANKING_sub {
char name[NAME_LENGTH];
@@ -3476,21 +3484,22 @@ struct PACKET_ZC_ACK_RANKING {
DEFINE_PACKET_HEADER(ZC_ACK_RANKING, 0x0af6);
#elif PACKETVER_MAIN_NUM >= 20130605 || PACKETVER_RE_NUM >= 20130529 || defined(PACKETVER_ZERO)
struct PACKET_ZC_ACK_RANKING_sub {
- char name[NAME_LENGTH];
- uint32 points;
+ struct PACKET_ZC_ACK_RANKING_name names[10];
+ struct PACKET_ZC_ACK_RANKING_points points[10];
} __attribute__((packed));
struct PACKET_ZC_ACK_RANKING {
int16 packetType;
int16 rankType;
- struct PACKET_ZC_ACK_RANKING_sub ranks[10];
+ struct PACKET_ZC_ACK_RANKING_sub ranks;
uint32 myPoints;
} __attribute__((packed));
+
DEFINE_PACKET_HEADER(ZC_ACK_RANKING, 0x097d);
#else
struct PACKET_ZC_ACK_RANKING_sub {
- char name[NAME_LENGTH];
- uint32 points;
+ struct PACKET_ZC_ACK_RANKING_name names[10];
+ struct PACKET_ZC_ACK_RANKING_points points[10];
} __attribute__((packed));
#endif
@@ -3514,7 +3523,7 @@ DEFINE_PACKET_HEADER(ZC_HAT_EFFECT, 0x0a3b);
#endif
// [4144] this struct updated not in all packets in client
-#if PACKETVER_RE_NUM >= 20190807 || PACKETVER_ZERO_NUM >= 20190814
+#if PACKETVER_RE_NUM >= 20190807
struct SKILLDATA {
uint16 id;
int inf;
@@ -3540,7 +3549,7 @@ struct PACKET_ZC_ADD_SKILL {
int16 packetType;
struct SKILLDATA skill;
} __attribute__((packed));
-#if PACKETVER_RE_NUM >= 20190807 || PACKETVER_ZERO_NUM >= 20190814
+#if PACKETVER_RE_NUM >= 20190807
DEFINE_PACKET_HEADER(ZC_ADD_SKILL, 0x0b31);
#else
DEFINE_PACKET_HEADER(ZC_ADD_SKILL, 0x0111);
@@ -3551,13 +3560,13 @@ struct PACKET_ZC_SKILLINFO_LIST {
int16 packetLength;
struct SKILLDATA skills[];
} __attribute__((packed));
-#if PACKETVER_RE_NUM >= 20190807 || PACKETVER_ZERO_NUM >= 20190814
+#if PACKETVER_RE_NUM >= 20190807
DEFINE_PACKET_HEADER(ZC_SKILLINFO_LIST, 0x0b32);
#else
DEFINE_PACKET_HEADER(ZC_SKILLINFO_LIST, 0x010f);
#endif
-#if PACKETVER_RE_NUM >= 20190807 || PACKETVER_ZERO_NUM >= 20190814
+#if PACKETVER_RE_NUM >= 20190807
struct PACKET_ZC_SKILLINFO_UPDATE2 {
int16 packetType;
uint16 id;
@@ -3610,6 +3619,13 @@ struct PACKET_ZC_NPC_MARKET_PURCHASE_RESULT {
DEFINE_PACKET_HEADER(ZC_NPC_MARKET_PURCHASE_RESULT, 0x09d7);
#endif
+struct PACKET_ZC_TALKBOX_CHATCONTENTS {
+ int16 PacketType;
+ uint32 aid;
+ char message[TALKBOX_MESSAGE_SIZE];
+} __attribute__((packed));
+DEFINE_PACKET_HEADER(ZC_TALKBOX_CHATCONTENTS, 0x0191);
+
#if !defined(sun) && (!defined(__NETBSD__) || __NetBSD_Version__ >= 600000000) // NetBSD 5 and Solaris don't like pragma pack but accept the packed attribute
#pragma pack(pop)
#endif // not NetBSD < 6 / Solaris
diff --git a/src/map/party.c b/src/map/party.c
index dc330d92d..9fbe915f3 100644
--- a/src/map/party.c
+++ b/src/map/party.c
@@ -886,17 +886,20 @@ static int party_send_logout(struct map_session_data *sd)
static int party_send_message(struct map_session_data *sd, const char *mes)
{
- int len;
-
nullpo_ret(sd);
nullpo_ret(mes);
- len = (int)strlen(mes);
-
if (sd->status.party_id == 0)
return 0;
- intif->party_message(sd->status.party_id, sd->status.account_id, mes, len);
- party->recv_message(sd->status.party_id, sd->status.account_id, mes, len);
+
+ struct party_data *p = party->search(sd->status.party_id);
+
+ if (p == NULL)
+ return 0;
+
+ int len = (int)strlen(mes);
+
+ clif->party_message(p, sd->status.account_id, mes, len);
// Chat logging type 'P' / Party Chat
logs->chat(LOG_CHAT_PARTY, sd->status.party_id, sd->status.char_id, sd->status.account_id, mapindex_id2name(sd->mapindex), sd->bl.x, sd->bl.y, NULL, mes);
@@ -904,15 +907,6 @@ static int party_send_message(struct map_session_data *sd, const char *mes)
return 0;
}
-static int party_recv_message(int party_id, int account_id, const char *mes, int len)
-{
- struct party_data *p;
- if( (p=party->search(party_id))==NULL)
- return 0;
- clif->party_message(p,account_id,mes,len);
- return 0;
-}
-
static int party_skill_check(struct map_session_data *sd, int party_id, uint16 skill_id, uint16 skill_lv)
{
struct party_data *p;
@@ -1532,7 +1526,6 @@ void party_defaults(void)
party->send_levelup = party_send_levelup;
party->send_logout = party_send_logout;
party->send_message = party_send_message;
- party->recv_message = party_recv_message;
party->skill_check = party_skill_check;
party->send_xy_clear = party_send_xy_clear;
party->exp_share = party_exp_share;
diff --git a/src/map/party.h b/src/map/party.h
index 28e16dff7..1831da414 100644
--- a/src/map/party.h
+++ b/src/map/party.h
@@ -118,7 +118,6 @@ struct party_interface {
void (*send_levelup) (struct map_session_data *sd);
int (*send_logout) (struct map_session_data *sd);
int (*send_message) (struct map_session_data *sd, const char *mes);
- int (*recv_message) (int party_id,int account_id,const char *mes,int len);
int (*skill_check) (struct map_session_data *sd, int party_id, uint16 skill_id, uint16 skill_lv);
int (*send_xy_clear) (struct party_data *p);
int (*exp_share) (struct party_data *p,struct block_list *src,unsigned int base_exp,unsigned int job_exp,int zeny);
diff --git a/src/map/pc.c b/src/map/pc.c
index 9ca35acce..8ac820d79 100644
--- a/src/map/pc.c
+++ b/src/map/pc.c
@@ -10989,7 +10989,7 @@ static int map_day_timer(int tid, int64 tick, int id, intptr_t data)
map->night_flag = 0; // 0=day, 1=night [Yor]
map->foreachpc(pc->daynight_timer_sub);
safestrncpy(tmp_soutput, (data == 0) ? msg_txt(502) : msg_txt(60), sizeof(tmp_soutput)); // The day has arrived!
- intif->broadcast(tmp_soutput, (int)strlen(tmp_soutput) + 1, BC_DEFAULT);
+ clif->broadcast(NULL, tmp_soutput, (int)strlen(tmp_soutput) + 1, BC_DEFAULT, ALL_CLIENT);
return 0;
}
@@ -11010,7 +11010,7 @@ static int map_night_timer(int tid, int64 tick, int id, intptr_t data)
map->night_flag = 1; // 0=day, 1=night [Yor]
map->foreachpc(pc->daynight_timer_sub);
safestrncpy(tmp_soutput, (data == 0) ? msg_txt(503) : msg_txt(59), sizeof(tmp_soutput)); // The night has fallen...
- intif->broadcast(tmp_soutput, (int)strlen(tmp_soutput) + 1, BC_DEFAULT);
+ clif->broadcast(NULL, tmp_soutput, (int)strlen(tmp_soutput) + 1, BC_DEFAULT, ALL_CLIENT);
return 0;
}
@@ -12214,6 +12214,29 @@ static int pc_have_magnifier(struct map_session_data *sd)
}
/**
+ * checks if player have any item that listed in item chain
+ * @param sd map_session_data of Player
+ * @param chain_id unsigned short of item chain id
+ * @return index of inventory, INDEX_NOT_FOUND if it is not found
+ */
+static int pc_have_item_chain(struct map_session_data *sd, unsigned short chain_id)
+{
+ if (chain_id >= itemdb->chain_count) {
+ ShowError("itemdb_chain_item: unknown chain id %d\n", chain_id);
+ return INDEX_NOT_FOUND;
+ }
+
+ for (int n = 0; n < itemdb->chains[chain_id].qty; n++) {
+ struct item_chain_entry *entry = &itemdb->chains[chain_id].items[n];
+ int index = pc->search_inventory(sd, entry->id);
+ if (index != INDEX_NOT_FOUND)
+ return index;
+ }
+
+ return INDEX_NOT_FOUND;
+}
+
+/**
* Checks if player have basic skills learned.
* @param sd Player Data
* @param level Required Level of Novice Skill
@@ -12310,6 +12333,54 @@ static void pc_check_supernovice_call(struct map_session_data *sd, const char *m
}
}
+/**
+ * Sends a message t all online GMs having the specified permission.
+ *
+ * @param sender_name Sender character name.
+ * @param permission The required permission to receive this message.
+ * @param message The message body.
+ *
+ * @return The amount of characters the message was delivered to.
+ */
+// The transmission of GM only Wisp/Page from server to inter-server
+static int pc_wis_message_to_gm(const char *sender_name, int permission, const char *message)
+{
+ nullpo_ret(sender_name);
+ nullpo_ret(message);
+ int mes_len = (int)strlen(message) + 1; // + null
+ int count = 0;
+
+ // information is sent to all online GM
+ map->foreachpc(pc->wis_message_to_gm_sub, permission, sender_name, message, mes_len, &count);
+
+ return count;
+}
+
+/**
+ * Helper function for pc_wis_message_to_gm().
+ */
+static int pc_wis_message_to_gm_sub(struct map_session_data *sd, va_list va)
+{
+ nullpo_ret(sd);
+
+ int permission = va_arg(va, int);
+ if (!pc_has_permission(sd, permission))
+ return 0;
+
+ const char *sender_name = va_arg(va, const char *);
+ const char *message = va_arg(va, const char *);
+ int len = va_arg(va, int);
+ int *count = va_arg(va, int *);
+
+ nullpo_ret(sender_name);
+ nullpo_ret(message);
+ nullpo_ret(count);
+
+ clif->wis_message(sd->fd, sender_name, message, len);
+ ++*count;
+ return 1;
+}
+
static void pc_update_job_and_level(struct map_session_data *sd)
{
nullpo_retv(sd);
@@ -12757,6 +12828,8 @@ void pc_defaults(void)
pc->check_supernovice_call = pc_check_supernovice_call;
pc->process_chat_message = pc_process_chat_message;
+ pc->wis_message_to_gm = pc_wis_message_to_gm;
+ pc->wis_message_to_gm_sub = pc_wis_message_to_gm_sub;
/**
* Autotrade persistency [Ind/Hercules <3]
@@ -12772,6 +12845,7 @@ void pc_defaults(void)
pc->update_idle_time = pc_update_idle_time;
pc->have_magnifier = pc_have_magnifier;
+ pc->have_item_chain = pc_have_item_chain;
pc->check_basicskill = pc_check_basicskill;
diff --git a/src/map/pc.h b/src/map/pc.h
index 0770e13cb..49edea61b 100644
--- a/src/map/pc.h
+++ b/src/map/pc.h
@@ -1184,8 +1184,11 @@ END_ZEROED_BLOCK; /* End */
void (*update_idle_time) (struct map_session_data* sd, enum e_battle_config_idletime type);
int (*have_magnifier) (struct map_session_data *sd);
+ int (*have_item_chain) (struct map_session_data *sd, unsigned short chain_id);
bool (*process_chat_message) (struct map_session_data *sd, const char *message);
+ int (*wis_message_to_gm) (const char *sender_name, int permission, const char *message);
+ int (*wis_message_to_gm_sub) (struct map_session_data *sd, va_list va);
void (*check_supernovice_call) (struct map_session_data *sd, const char *message);
bool (*check_basicskill) (struct map_session_data *sd, int level);
bool (*isDeathPenaltyJob) (uint16 job);
diff --git a/src/map/script.c b/src/map/script.c
index 04c985ea4..4bd8f2c85 100644
--- a/src/map/script.c
+++ b/src/map/script.c
@@ -11914,12 +11914,12 @@ static BUILDIN(announce)
int fontAlign = script_hasdata(st,7) ? script_getnum(st,7) : 0; // default fontAlign
int fontY = script_hasdata(st,8) ? script_getnum(st,8) : 0; // default fontY
size_t len = strlen(mes);
+ send_target target = ALL_CLIENT;
+ struct block_list *bl = NULL;
Assert_retr(false, len < INT_MAX);
if( flag&(BC_TARGET_MASK|BC_SOURCE_MASK) ) {
// Broadcast source or broadcast region defined
- send_target target;
- struct block_list *bl = NULL;
if (flag&BC_NPC) {
// If bc_npc flag is set, use NPC as broadcast source
bl = map->id2bl(st->oid);
@@ -11937,17 +11937,13 @@ static BUILDIN(announce)
case BC_SELF: target = SELF; break;
default: target = ALL_CLIENT; break; // BC_ALL
}
-
- if (fontColor)
- clif->broadcast2(bl, mes, (int)len+1, (unsigned int)strtoul(fontColor, (char **)NULL, 0), fontType, fontSize, fontAlign, fontY, target);
- else
- clif->broadcast(bl, mes, (int)len+1, flag&BC_COLOR_MASK, target);
- } else {
- if (fontColor)
- intif->broadcast2(mes, (int)len+1, (unsigned int)strtoul(fontColor, (char **)NULL, 0), fontType, fontSize, fontAlign, fontY);
- else
- intif->broadcast(mes, (int)len+1, flag&BC_COLOR_MASK);
}
+
+ if (fontColor)
+ clif->broadcast2(bl, mes, (int)len+1, (unsigned int)strtoul(fontColor, (char **)NULL, 0), fontType, fontSize, fontAlign, fontY, target);
+ else
+ clif->broadcast(bl, mes, (int)len+1, flag&BC_COLOR_MASK, target);
+
return true;
}
/*==========================================
@@ -14588,6 +14584,82 @@ static BUILDIN(getiteminfo)
case ITEMINFO_TRADE:
script_pushint(st, it->flag.trade_restriction);
break;
+ case ITEMINFO_ELV_MAX:
+ script_pushint(st, it->elvmax);
+ break;
+ case ITEMINFO_DROPEFFECT_MODE:
+ script_pushint(st, it->dropeffectmode);
+ break;
+ case ITEMINFO_DELAY:
+ script_pushint(st, it->delay);
+ break;
+ case ITEMINFO_CLASS_BASE_1:
+ script_pushint(st, it->class_base[0]);
+ break;
+ case ITEMINFO_CLASS_BASE_2:
+ script_pushint(st, it->class_base[1]);
+ break;
+ case ITEMINFO_CLASS_BASE_3:
+ script_pushint(st, it->class_base[2]);
+ break;
+ case ITEMINFO_CLASS_UPPER:
+ script_pushint(st, it->class_upper);
+ break;
+ case ITEMINFO_FLAG_NO_REFINE:
+ script_pushint(st, it->flag.no_refine);
+ break;
+ case ITEMINFO_FLAG_DELAY_CONSUME:
+ script_pushint(st, it->flag.delay_consume);
+ break;
+ case ITEMINFO_FLAG_AUTOEQUIP:
+ script_pushint(st, it->flag.autoequip);
+ break;
+ case ITEMINFO_FLAG_AUTO_FAVORITE:
+ script_pushint(st, it->flag.auto_favorite);
+ break;
+ case ITEMINFO_FLAG_BUYINGSTORE:
+ script_pushint(st, it->flag.buyingstore);
+ break;
+ case ITEMINFO_FLAG_BINDONEQUIP:
+ script_pushint(st, it->flag.bindonequip);
+ break;
+ case ITEMINFO_FLAG_KEEPAFTERUSE:
+ script_pushint(st, it->flag.keepafteruse);
+ break;
+ case ITEMINFO_FLAG_FORCE_SERIAL:
+ script_pushint(st, it->flag.force_serial);
+ break;
+ case ITEMINFO_FLAG_NO_OPTIONS:
+ script_pushint(st, it->flag.no_options);
+ break;
+ case ITEMINFO_FLAG_DROP_ANNOUNCE:
+ script_pushint(st, it->flag.drop_announce);
+ break;
+ case ITEMINFO_FLAG_SHOWDROPEFFECT:
+ script_pushint(st, it->flag.showdropeffect);
+ break;
+ case ITEMINFO_STACK_AMOUNT:
+ script_pushint(st, it->stack.amount);
+ break;
+ case ITEMINFO_STACK_FLAG:
+ {
+ int stack_flag = 0;
+ if (it->stack.inventory != 0) stack_flag |= 1;
+ if (it->stack.cart != 0) stack_flag |= 2;
+ if (it->stack.storage != 0) stack_flag |= 4;
+ if (it->stack.guildstorage != 0) stack_flag |= 8;
+ script_pushint(st, stack_flag);
+ }
+ break;
+ case ITEMINFO_ITEM_USAGE_FLAG:
+ script_pushint(st, it->item_usage.flag);
+ break;
+ case ITEMINFO_ITEM_USAGE_OVERRIDE:
+ script_pushint(st, it->item_usage.override);
+ break;
+ case ITEMINFO_GM_LV_TRADE_OVERRIDE:
+ script_pushint(st, it->gm_lv_trade_override);
+ break;
default:
ShowError("buildin_getiteminfo: Invalid item type %d.\n", n);
script_pushint(st,-1);
@@ -14857,6 +14929,78 @@ static BUILDIN(setiteminfo)
case ITEMINFO_TRADE:
it->flag.trade_restriction = value;
break;
+ case ITEMINFO_ELV_MAX:
+ it->elvmax = cap_value(value, 0, MAX_LEVEL);
+ break;
+ case ITEMINFO_DROPEFFECT_MODE:
+ it->dropeffectmode = value;
+ break;
+ case ITEMINFO_DELAY:
+ it->delay = value;
+ break;
+ case ITEMINFO_CLASS_BASE_1:
+ it->class_base[0] = value;
+ break;
+ case ITEMINFO_CLASS_BASE_2:
+ it->class_base[1] = value;
+ break;
+ case ITEMINFO_CLASS_BASE_3:
+ it->class_base[2] = value;
+ break;
+ case ITEMINFO_CLASS_UPPER:
+ it->class_upper = value;
+ break;
+ case ITEMINFO_FLAG_NO_REFINE:
+ it->flag.no_refine = cap_value(value, 0, MAX_REFINE);
+ break;
+ case ITEMINFO_FLAG_DELAY_CONSUME:
+ it->flag.delay_consume = value;
+ break;
+ case ITEMINFO_FLAG_AUTOEQUIP:
+ it->flag.autoequip = cap_value(value, 0, 1);
+ break;
+ case ITEMINFO_FLAG_AUTO_FAVORITE:
+ it->flag.auto_favorite = cap_value(value, 0, 1);
+ break;
+ case ITEMINFO_FLAG_BUYINGSTORE:
+ it->flag.buyingstore = cap_value(value, 0, 1);
+ break;
+ case ITEMINFO_FLAG_BINDONEQUIP:
+ it->flag.bindonequip = cap_value(value, 0, 1);
+ break;
+ case ITEMINFO_FLAG_KEEPAFTERUSE:
+ it->flag.keepafteruse = cap_value(value, 0, 1);
+ break;
+ case ITEMINFO_FLAG_FORCE_SERIAL:
+ it->flag.force_serial = cap_value(value, 0, 1);
+ break;
+ case ITEMINFO_FLAG_NO_OPTIONS:
+ it->flag.no_options = cap_value(value, 0, 1);
+ break;
+ case ITEMINFO_FLAG_DROP_ANNOUNCE:
+ it->flag.drop_announce = cap_value(value, 0, 1);
+ break;
+ case ITEMINFO_FLAG_SHOWDROPEFFECT:
+ it->flag.showdropeffect = cap_value(value, 0, 1);
+ break;
+ case ITEMINFO_STACK_AMOUNT:
+ it->stack.amount = cap_value(value, 0, USHRT_MAX);
+ break;
+ case ITEMINFO_STACK_FLAG:
+ it->stack.inventory = ((value & 1) != 0);
+ it->stack.cart = ((value & 2) != 0);
+ it->stack.storage = ((value & 4) != 0);
+ it->stack.guildstorage = ((value & 8) != 0);
+ break;
+ case ITEMINFO_ITEM_USAGE_FLAG:
+ it->item_usage.flag = cap_value(value, 0, 1);
+ break;
+ case ITEMINFO_ITEM_USAGE_OVERRIDE:
+ it->item_usage.override = value;
+ break;
+ case ITEMINFO_GM_LV_TRADE_OVERRIDE:
+ it->gm_lv_trade_override = value;
+ break;
default:
ShowError("buildin_setiteminfo: invalid type %d.\n", n);
script_pushint(st,-1);
@@ -26694,6 +26838,29 @@ static void script_hardcoded_constants(void)
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->set_constant("ITEMINFO_ELV_MAX", ITEMINFO_ELV_MAX, false, false);
+ script->set_constant("ITEMINFO_DROPEFFECT_MODE", ITEMINFO_DROPEFFECT_MODE, false, false);
+ script->set_constant("ITEMINFO_DELAY", ITEMINFO_DELAY, false, false);
+ script->set_constant("ITEMINFO_CLASS_BASE_1", ITEMINFO_CLASS_BASE_1, false, false);
+ script->set_constant("ITEMINFO_CLASS_BASE_2", ITEMINFO_CLASS_BASE_2, false, false);
+ script->set_constant("ITEMINFO_CLASS_BASE_3", ITEMINFO_CLASS_BASE_3, false, false);
+ script->set_constant("ITEMINFO_CLASS_UPPER", ITEMINFO_CLASS_UPPER, false, false);
+ script->set_constant("ITEMINFO_FLAG_NO_REFINE", ITEMINFO_FLAG_NO_REFINE, false, false);
+ script->set_constant("ITEMINFO_FLAG_DELAY_CONSUME", ITEMINFO_FLAG_DELAY_CONSUME, false, false);
+ script->set_constant("ITEMINFO_FLAG_AUTOEQUIP", ITEMINFO_FLAG_AUTOEQUIP, false, false);
+ script->set_constant("ITEMINFO_FLAG_AUTO_FAVORITE", ITEMINFO_FLAG_AUTO_FAVORITE, false, false);
+ script->set_constant("ITEMINFO_FLAG_BUYINGSTORE", ITEMINFO_FLAG_BUYINGSTORE, false, false);
+ script->set_constant("ITEMINFO_FLAG_BINDONEQUIP", ITEMINFO_FLAG_BINDONEQUIP, false, false);
+ script->set_constant("ITEMINFO_FLAG_KEEPAFTERUSE", ITEMINFO_FLAG_KEEPAFTERUSE, false, false);
+ script->set_constant("ITEMINFO_FLAG_FORCE_SERIAL", ITEMINFO_FLAG_FORCE_SERIAL, false, false);
+ script->set_constant("ITEMINFO_FLAG_NO_OPTIONS", ITEMINFO_FLAG_NO_OPTIONS, false, false);
+ script->set_constant("ITEMINFO_FLAG_DROP_ANNOUNCE", ITEMINFO_FLAG_DROP_ANNOUNCE, false, false);
+ script->set_constant("ITEMINFO_FLAG_SHOWDROPEFFECT", ITEMINFO_FLAG_SHOWDROPEFFECT, false, false);
+ script->set_constant("ITEMINFO_STACK_AMOUNT", ITEMINFO_STACK_AMOUNT, false, false);
+ script->set_constant("ITEMINFO_STACK_FLAG", ITEMINFO_STACK_FLAG, false, false);
+ script->set_constant("ITEMINFO_ITEM_USAGE_FLAG", ITEMINFO_ITEM_USAGE_FLAG, false, false);
+ script->set_constant("ITEMINFO_ITEM_USAGE_OVERRIDE", ITEMINFO_ITEM_USAGE_OVERRIDE, false, false);
+ script->set_constant("ITEMINFO_GM_LV_TRADE_OVERRIDE", ITEMINFO_GM_LV_TRADE_OVERRIDE, false, false);
script->constdb_comment("getmercinfo options");
script->set_constant("MERCINFO_ID,", MERCINFO_ID, false, false);
diff --git a/src/map/script.h b/src/map/script.h
index 84a8e3b6e..5dc480a15 100644
--- a/src/map/script.h
+++ b/src/map/script.h
@@ -460,7 +460,30 @@ enum script_iteminfo_types {
ITEMINFO_MATK,
ITEMINFO_VIEWSPRITE,
ITEMINFO_TRADE,
-
+ ITEMINFO_ELV_MAX,
+ ITEMINFO_DROPEFFECT_MODE,
+ ITEMINFO_DELAY,
+ ITEMINFO_CLASS_BASE_1,
+ ITEMINFO_CLASS_BASE_2,
+ ITEMINFO_CLASS_BASE_3,
+ ITEMINFO_CLASS_UPPER,
+ // ITEMINFO_FLAG_AVAILABLE,
+ ITEMINFO_FLAG_NO_REFINE,
+ ITEMINFO_FLAG_DELAY_CONSUME,
+ ITEMINFO_FLAG_AUTOEQUIP,
+ ITEMINFO_FLAG_AUTO_FAVORITE,
+ ITEMINFO_FLAG_BUYINGSTORE,
+ ITEMINFO_FLAG_BINDONEQUIP,
+ ITEMINFO_FLAG_KEEPAFTERUSE,
+ ITEMINFO_FLAG_FORCE_SERIAL,
+ ITEMINFO_FLAG_NO_OPTIONS,
+ ITEMINFO_FLAG_DROP_ANNOUNCE,
+ ITEMINFO_FLAG_SHOWDROPEFFECT,
+ ITEMINFO_STACK_AMOUNT,
+ ITEMINFO_STACK_FLAG,
+ ITEMINFO_ITEM_USAGE_FLAG,
+ ITEMINFO_ITEM_USAGE_OVERRIDE,
+ ITEMINFO_GM_LV_TRADE_OVERRIDE,
ITEMINFO_MAX
};
diff --git a/src/map/status.c b/src/map/status.c
index e9636e214..ba32b267e 100644
--- a/src/map/status.c
+++ b/src/map/status.c
@@ -8847,7 +8847,9 @@ static int status_change_start(struct block_list *src, struct block_list *bl, en
case SC_KAIZEL:
val2 = 10*val1; //% of life to be revived with
break;
- // case SC_ARMORPROPERTY:
+ case SC_ARMORPROPERTY:
+ clif->status_change(bl, (val1 > 0 ? SI_RESIST_PROPERTY_WATER : (val2 > 0 ? SI_RESIST_PROPERTY_GROUND : (val3 > 0 ? SI_RESIST_PROPERTY_FIRE : (val4 > 0 ? SI_RESIST_PROPERTY_WIND : SI_BLANK)))), 1, tick, 0, 0, 0);
+ break;
// case SC_ARMOR_RESIST:
// Mod your resistance against elements:
// val1 = water | val2 = earth | val3 = fire | val4 = wind
@@ -13395,25 +13397,104 @@ static bool status_readdb_sizefix(char *fields[], int columns, int current)
return true;
}
-static bool status_readdb_scconfig(char *fields[], int columns, int current)
+static bool status_read_scdb_libconfig(void)
{
- int val = 0;
- char* type = fields[0];
+ struct config_t status_conf;
+ char filepath[256];
+ safesnprintf(filepath, sizeof(filepath), "%s/%s", map->db_path, "sc_config.conf");
- nullpo_retr(false, fields);
- if( !script->get_constant(type, &val) ){
- ShowWarning("status_readdb_sc_conf: Invalid status type %s specified.\n", type);
+ if (libconfig->load_file(&status_conf, filepath) == CONFIG_FALSE) {
+ ShowError("status_read_scdb_libconfig: can't read %s\n", filepath);
return false;
}
- status->dbs->sc_conf[val] = (int)strtol(fields[1], NULL, 0);
- if (status->dbs->sc_conf[val] & SC_VISIBLE)
- {
- status->dbs->DisplayType[val] = true;
+ int i = 0;
+ int count = 0;
+ struct config_setting_t *it = NULL;
+
+ while ((it = libconfig->setting_get_elem(status_conf.root, i++)) != NULL) {
+ if (status->read_scdb_libconfig_sub(it, i - 1, filepath))
+ ++count;
}
+ libconfig->destroy(&status_conf);
+ ShowStatus("Done reading '"CL_WHITE"%d"CL_RESET"' entries in '"CL_WHITE"%s"CL_RESET"'.\n", count, filepath);
+ return true;
+}
+
+static bool status_read_scdb_libconfig_sub(struct config_setting_t *it, int idx, const char *source)
+{
+ nullpo_retr(false, it);
+ nullpo_retr(false, source);
+
+ int i32;
+ const char *name = config_setting_name(it);
+
+ if (!script->get_constant(name, &i32) || i32 <= SC_NONE || i32 >= SC_MAX) {
+ ShowWarning("status_read_scdb_libconfig_sub: Invalid status type (%s) in \"%s\" entry #%d, skipping.\n", name, source, idx);
+ return false;
+ }
+
+ libconfig->setting_lookup_bool_real(it, "Visible", &status->dbs->DisplayType[i32]);
+
+ struct config_setting_t *fg = libconfig->setting_get_member(it, "Flags");
+ if (fg != NULL)
+ status->read_scdb_libconfig_sub_flag(fg, i32, source);
+
return true;
}
+
+static bool status_read_scdb_libconfig_sub_flag(struct config_setting_t *it, int type, const char *source)
+{
+ nullpo_retr(false, it);
+ nullpo_retr(false, source);
+ Assert_retr(false, type > SC_NONE && type < SC_MAX);
+
+ int i = 0;
+ struct config_setting_t *t = NULL;
+ while ((t = libconfig->setting_get_elem(it, i++)) != NULL) {
+ const char *flag = config_setting_name(t);
+ bool on = libconfig->setting_get_bool_real(t);
+ int j;
+
+ struct {
+ const char *name;
+ enum sc_conf_type value;
+ } flags[] = {
+ { "NoDeathReset", SC_NO_REM_DEATH },
+ { "NoSave", SC_NO_SAVE },
+ { "NoDispelReset", SC_NO_DISPELL },
+ { "NoClearanceReset", SC_NO_CLEARANCE },
+ { "Buff", SC_BUFF },
+ { "Debuff", SC_DEBUFF },
+ { "NoMadoReset", SC_MADO_NO_RESET },
+ { "NoAllReset", SC_NO_CLEAR }
+ };
+
+ ARR_FIND(0, ARRAYLENGTH(flags), j, strcmpi(flag, flags[j].name) == 0);
+ if (j != ARRAYLENGTH(flags)) {
+ if (strcmp(flag, flags[j].name) != 0) {
+ ShowWarning("status_read_scdb_libconfig_sub_flag: flag (%s) for status effect (%d) is casesensitive, correct it to (%s).", flag, type, flags[i].name);
+ }
+ if (on) {
+ status->dbs->sc_conf[type] |= flags[j].value;
+ } else {
+ status->dbs->sc_conf[type] &= ~flags[j].value;
+ }
+ } else {
+ if (!status->read_scdb_libconfig_sub_flag_additional(it, type, source))
+ ShowWarning("status_read_scdb_libconfig_sub_flag: invalid flag (%s) for status effect (%d).", flag, type);
+ }
+ }
+ return true;
+}
+
+static bool status_read_scdb_libconfig_sub_flag_additional(struct config_setting_t *it, int type, const char *source)
+{
+ // to be used by plugins
+ return false;
+}
+
/**
* Read status db
* job1.txt
@@ -13452,7 +13533,7 @@ static int status_readdb(void)
//
sv->readdb(map->db_path, "job_db2.txt", ',', 1, 1+MAX_LEVEL, -1, status->readdb_job2);
sv->readdb(map->db_path, DBPATH"size_fix.txt", ',', MAX_SINGLE_WEAPON_TYPE, MAX_SINGLE_WEAPON_TYPE, ARRAYLENGTH(status->dbs->atkmods), status->readdb_sizefix);
- sv->readdb(map->db_path, "sc_config.txt", ',', 2, 2, SC_MAX, status->readdb_scconfig);
+ status->read_scdb_libconfig();
status->read_job_db();
pc->validate_levels();
@@ -13642,7 +13723,10 @@ void status_defaults(void)
status->natural_heal_timer = status_natural_heal_timer;
status->readdb_job2 = status_readdb_job2;
status->readdb_sizefix = status_readdb_sizefix;
- status->readdb_scconfig = status_readdb_scconfig;
+ status->read_scdb_libconfig = status_read_scdb_libconfig;
+ status->read_scdb_libconfig_sub = status_read_scdb_libconfig_sub;
+ status->read_scdb_libconfig_sub_flag = status_read_scdb_libconfig_sub_flag;
+ status->read_scdb_libconfig_sub_flag_additional = status_read_scdb_libconfig_sub_flag_additional;
status->read_job_db = status_read_job_db;
status->read_job_db_sub = status_read_job_db_sub;
status->set_sc = status_set_sc;
diff --git a/src/map/status.h b/src/map/status.h
index 853a7a1a6..536003d04 100644
--- a/src/map/status.h
+++ b/src/map/status.h
@@ -50,7 +50,7 @@ struct pet_data;
/**
* SC configuration type
- * @see db/sc_config.txt for more information
+ * @see db/sc_config.conf for more information
**/
typedef enum sc_conf_type {
SC_NO_REM_DEATH = 0x001,
@@ -1772,10 +1772,10 @@ enum si_type {
//SI_ATTACK_PROPERTY_TELEKINESIS = 905,
//SI_ATTACK_PROPERTY_UNDEAD = 906,
//SI_RESIST_PROPERTY_NOTHING = 907,
- //SI_RESIST_PROPERTY_WATER = 908,
- //SI_RESIST_PROPERTY_GROUND = 909,
- //SI_RESIST_PROPERTY_FIRE = 910,
- //SI_RESIST_PROPERTY_WIND = 911,
+ SI_RESIST_PROPERTY_WATER = 908,
+ SI_RESIST_PROPERTY_GROUND = 909,
+ SI_RESIST_PROPERTY_FIRE = 910,
+ SI_RESIST_PROPERTY_WIND = 911,
//SI_RESIST_PROPERTY_POISON = 912,
//SI_RESIST_PROPERTY_SAINT = 913,
//SI_RESIST_PROPERTY_DARKNESS = 914,
@@ -2387,7 +2387,10 @@ struct status_interface {
int (*natural_heal_timer) (int tid, int64 tick, int id, intptr_t data);
bool (*readdb_job2) (char *fields[], int columns, int current);
bool (*readdb_sizefix) (char *fields[], int columns, int current);
- bool (*readdb_scconfig) (char *fields[], int columns, int current);
+ bool (*read_scdb_libconfig) (void);
+ bool (*read_scdb_libconfig_sub) (struct config_setting_t *it, int idx, const char *source);
+ bool (*read_scdb_libconfig_sub_flag) (struct config_setting_t *it, int type, const char *source);
+ bool (*read_scdb_libconfig_sub_flag_additional) (struct config_setting_t *it, int type, const char *source);
void (*read_job_db) (void);
void (*read_job_db_sub) (int idx, const char *name, struct config_setting_t *jdb);
void (*set_sc) (uint16 skill_id, sc_type sc, int icon, unsigned int flag);
diff --git a/src/map/trade.c b/src/map/trade.c
index 7096d12e4..ff5c04fc3 100644
--- a/src/map/trade.c
+++ b/src/map/trade.c
@@ -226,9 +226,9 @@ static int impossible_trade_check(struct map_session_data *sd)
if (inventory[index].amount < sd->deal.item[i].amount) {
// if more than the player have -> hack
snprintf(message_to_gm, sizeof(message_to_gm), msg_txt(538), sd->status.name, sd->status.account_id); // Hack on trade: character '%s' (account: %d) try to trade more items that he has.
- intif->wis_message_to_gm(map->wisp_server_name, PC_PERM_RECEIVE_HACK_INFO, message_to_gm);
+ pc->wis_message_to_gm(map->wisp_server_name, PC_PERM_RECEIVE_HACK_INFO, message_to_gm);
snprintf(message_to_gm, sizeof(message_to_gm), msg_txt(539), inventory[index].amount, inventory[index].nameid, sd->deal.item[i].amount); // This player has %d of a kind of item (id: %d), and try to trade %d of them.
- intif->wis_message_to_gm(map->wisp_server_name, PC_PERM_RECEIVE_HACK_INFO, message_to_gm);
+ pc->wis_message_to_gm(map->wisp_server_name, PC_PERM_RECEIVE_HACK_INFO, message_to_gm);
// if we block people
if (battle_config.ban_hack_trade < 0) {
chrif->char_ask_name(-1, sd->status.name, CHAR_ASK_NAME_BLOCK, 0, 0, 0, 0, 0, 0);
@@ -245,7 +245,7 @@ static int impossible_trade_check(struct map_session_data *sd)
// message about the ban
safestrncpy(message_to_gm, msg_txt(508), sizeof(message_to_gm)); // This player hasn't been banned (Ban option is disabled).
- intif->wis_message_to_gm(map->wisp_server_name, PC_PERM_RECEIVE_HACK_INFO, message_to_gm);
+ pc->wis_message_to_gm(map->wisp_server_name, PC_PERM_RECEIVE_HACK_INFO, message_to_gm);
return 1;
}
inventory[index].amount -= sd->deal.item[i].amount; // remove item from inventory
diff --git a/src/plugins/HPMHooking/HPMHooking.Defs.inc b/src/plugins/HPMHooking/HPMHooking.Defs.inc
index dd4dfbe5d..8560d2eff 100644
--- a/src/plugins/HPMHooking/HPMHooking.Defs.inc
+++ b/src/plugins/HPMHooking/HPMHooking.Defs.inc
@@ -1276,8 +1276,8 @@ typedef void (*HPMHOOK_pre_clif_scriptclear) (struct map_session_data **sd, int
typedef void (*HPMHOOK_post_clif_scriptclear) (struct map_session_data *sd, int npcid);
typedef void (*HPMHOOK_pre_clif_viewpoint) (struct map_session_data **sd, int *npc_id, int *type, int *x, int *y, int *id, int *color);
typedef void (*HPMHOOK_post_clif_viewpoint) (struct map_session_data *sd, int npc_id, int type, int x, int y, int id, int color);
-typedef int (*HPMHOOK_pre_clif_damage) (struct block_list **src, struct block_list **dst, int *sdelay, int *ddelay, int64 *damage, short *div, unsigned char *type, int64 *damage2);
-typedef int (*HPMHOOK_post_clif_damage) (int retVal___, struct block_list *src, struct block_list *dst, int sdelay, int ddelay, int64 damage, short div, unsigned char type, int64 damage2);
+typedef int (*HPMHOOK_pre_clif_damage) (struct block_list **src, struct block_list **dst, int *sdelay, int *ddelay, int64 *damage, short *div, enum battle_dmg_type *type, int64 *damage2);
+typedef int (*HPMHOOK_post_clif_damage) (int retVal___, struct block_list *src, struct block_list *dst, int sdelay, int ddelay, int64 damage, short div, enum battle_dmg_type type, int64 damage2);
typedef void (*HPMHOOK_pre_clif_sitting) (struct block_list **bl);
typedef void (*HPMHOOK_post_clif_sitting) (struct block_list *bl);
typedef void (*HPMHOOK_pre_clif_standing) (struct block_list **bl);
@@ -1524,8 +1524,8 @@ typedef void (*HPMHOOK_pre_clif_divorced) (struct map_session_data **sd, const c
typedef void (*HPMHOOK_post_clif_divorced) (struct map_session_data *sd, const char *name);
typedef void (*HPMHOOK_pre_clif_callpartner) (struct map_session_data **sd);
typedef void (*HPMHOOK_post_clif_callpartner) (struct map_session_data *sd);
-typedef int (*HPMHOOK_pre_clif_skill_damage) (struct block_list **src, struct block_list **dst, int64 *tick, int *sdelay, int *ddelay, int64 *damage, int *div, uint16 *skill_id, uint16 *skill_lv, int *type);
-typedef int (*HPMHOOK_post_clif_skill_damage) (int retVal___, struct block_list *src, struct block_list *dst, int64 tick, int sdelay, int ddelay, int64 damage, int div, uint16 skill_id, uint16 skill_lv, int type);
+typedef int (*HPMHOOK_pre_clif_skill_damage) (struct block_list **src, struct block_list **dst, int64 *tick, int *sdelay, int *ddelay, int64 *damage, int *div, uint16 *skill_id, uint16 *skill_lv, enum battle_dmg_type *type);
+typedef int (*HPMHOOK_post_clif_skill_damage) (int retVal___, struct block_list *src, struct block_list *dst, int64 tick, int sdelay, int ddelay, int64 damage, int div, uint16 skill_id, uint16 skill_lv, enum battle_dmg_type type);
typedef int (*HPMHOOK_pre_clif_skill_nodamage) (struct block_list **src, struct block_list **dst, uint16 *skill_id, int *heal, int *fail);
typedef int (*HPMHOOK_post_clif_skill_nodamage) (int retVal___, struct block_list *src, struct block_list *dst, uint16 skill_id, int heal, int fail);
typedef void (*HPMHOOK_pre_clif_skill_poseffect) (struct block_list **src, uint16 *skill_id, int *val, int *x, int *y, int64 *tick);
@@ -2046,8 +2046,8 @@ typedef void (*HPMHOOK_pre_clif_show_modifiers) (struct map_session_data **sd);
typedef void (*HPMHOOK_post_clif_show_modifiers) (struct map_session_data *sd);
typedef void (*HPMHOOK_pre_clif_notify_bounditem) (struct map_session_data **sd, unsigned short *index);
typedef void (*HPMHOOK_post_clif_notify_bounditem) (struct map_session_data *sd, unsigned short index);
-typedef int (*HPMHOOK_pre_clif_delay_damage) (int64 *tick, struct block_list **src, struct block_list **dst, int *sdelay, int *ddelay, int64 *in_damage, short *div, unsigned char *type);
-typedef int (*HPMHOOK_post_clif_delay_damage) (int retVal___, int64 tick, struct block_list *src, struct block_list *dst, int sdelay, int ddelay, int64 in_damage, short div, unsigned char type);
+typedef int (*HPMHOOK_pre_clif_delay_damage) (int64 *tick, struct block_list **src, struct block_list **dst, int *sdelay, int *ddelay, int64 *in_damage, short *div, enum battle_dmg_type *type);
+typedef int (*HPMHOOK_post_clif_delay_damage) (int retVal___, int64 tick, struct block_list *src, struct block_list *dst, int sdelay, int ddelay, int64 in_damage, short div, enum battle_dmg_type type);
typedef int (*HPMHOOK_pre_clif_delay_damage_sub) (int *tid, int64 *tick, int *id, intptr_t *data);
typedef int (*HPMHOOK_post_clif_delay_damage_sub) (int retVal___, int tid, int64 tick, int id, intptr_t data);
typedef void (*HPMHOOK_pre_clif_npc_market_open) (struct map_session_data **sd, struct npc_data **nd);
@@ -3010,8 +3010,6 @@ typedef int (*HPMHOOK_pre_guild_emblem_changed) (int *len, int *guild_id, int *e
typedef int (*HPMHOOK_post_guild_emblem_changed) (int retVal___, int len, int guild_id, int emblem_id, const char *data);
typedef int (*HPMHOOK_pre_guild_send_message) (struct map_session_data **sd, const char **mes);
typedef int (*HPMHOOK_post_guild_send_message) (int retVal___, struct map_session_data *sd, const char *mes);
-typedef int (*HPMHOOK_pre_guild_recv_message) (int *guild_id, int *account_id, const char **mes, int *len);
-typedef int (*HPMHOOK_post_guild_recv_message) (int retVal___, int guild_id, int account_id, const char *mes, int len);
typedef int (*HPMHOOK_pre_guild_send_dot_remove) (struct map_session_data **sd);
typedef int (*HPMHOOK_post_guild_send_dot_remove) (int retVal___, struct map_session_data *sd);
typedef int (*HPMHOOK_pre_guild_skillupack) (int *guild_id, uint16 *skill_id, int *account_id);
@@ -3160,6 +3158,8 @@ typedef bool (*HPMHOOK_pre_homun_mutate) (struct homun_data **hd, int *homun_id)
typedef bool (*HPMHOOK_post_homun_mutate) (bool retVal___, struct homun_data *hd, int homun_id);
typedef int (*HPMHOOK_pre_homun_gainexp) (struct homun_data **hd, unsigned int *exp);
typedef int (*HPMHOOK_post_homun_gainexp) (int retVal___, struct homun_data *hd, unsigned int exp);
+typedef int (*HPMHOOK_pre_homun_gainexp_real) (struct homun_data **hd, unsigned int *exp);
+typedef int (*HPMHOOK_post_homun_gainexp_real) (int retVal___, struct homun_data *hd, unsigned int exp);
typedef unsigned int (*HPMHOOK_pre_homun_add_intimacy) (struct homun_data **hd, unsigned int *value);
typedef unsigned int (*HPMHOOK_post_homun_add_intimacy) (unsigned int retVal___, struct homun_data *hd, unsigned int value);
typedef unsigned int (*HPMHOOK_pre_homun_consume_intimacy) (struct homun_data **hd, unsigned int *value);
@@ -3430,10 +3430,6 @@ typedef int (*HPMHOOK_pre_inter_init_sql) (const char **file);
typedef int (*HPMHOOK_post_inter_init_sql) (int retVal___, const char *file);
typedef int (*HPMHOOK_pre_inter_mapif_init) (int *fd);
typedef int (*HPMHOOK_post_inter_mapif_init) (int retVal___, int fd);
-typedef int (*HPMHOOK_pre_inter_check_ttl_wisdata_sub) (union DBKey *key, struct DBData **data, va_list ap);
-typedef int (*HPMHOOK_post_inter_check_ttl_wisdata_sub) (int retVal___, union DBKey key, struct DBData *data, va_list ap);
-typedef int (*HPMHOOK_pre_inter_check_ttl_wisdata) (void);
-typedef int (*HPMHOOK_post_inter_check_ttl_wisdata) (int retVal___);
typedef int (*HPMHOOK_pre_inter_check_length) (int *fd, int *length);
typedef int (*HPMHOOK_post_inter_check_length) (int retVal___, int fd, int length);
typedef int (*HPMHOOK_pre_inter_parse_frommap) (int *fd);
@@ -3450,12 +3446,6 @@ typedef void (*HPMHOOK_pre_inter_accinfo) (int *u_fd, int *aid, int *castergroup
typedef void (*HPMHOOK_post_inter_accinfo) (int u_fd, int aid, int castergroup, const char *query, int map_fd);
typedef void (*HPMHOOK_pre_inter_accinfo2) (bool *success, int *map_fd, int *u_fd, int *u_aid, int *account_id, const char **userid, const char **user_pass, const char **email, const char **last_ip, const char **lastlogin, const char **pin_code, const char **birthdate, int *group_id, int *logincount, int *state);
typedef void (*HPMHOOK_post_inter_accinfo2) (bool success, int map_fd, int u_fd, int u_aid, int account_id, const char *userid, const char *user_pass, const char *email, const char *last_ip, const char *lastlogin, const char *pin_code, const char *birthdate, int group_id, int logincount, int state);
-typedef struct WisData* (*HPMHOOK_pre_inter_add_wisdata) (int *fd, const unsigned char **src, const unsigned char **dst, const unsigned char **msg, int *msg_len);
-typedef struct WisData* (*HPMHOOK_post_inter_add_wisdata) (struct WisData* retVal___, int fd, const unsigned char *src, const unsigned char *dst, const unsigned char *msg, int msg_len);
-typedef struct WisData* (*HPMHOOK_pre_inter_get_wisdata) (int *id);
-typedef struct WisData* (*HPMHOOK_post_inter_get_wisdata) (struct WisData* retVal___, int id);
-typedef void (*HPMHOOK_pre_inter_remove_wisdata) (int *id);
-typedef void (*HPMHOOK_post_inter_remove_wisdata) (int id);
#endif // CHAR_INTER_H
#ifdef CHAR_INT_MAIL_H /* inter_mail */
typedef int (*HPMHOOK_pre_inter_mail_sql_init) (void);
@@ -3628,16 +3618,6 @@ typedef int (*HPMHOOK_pre_intif_parse) (int *fd);
typedef int (*HPMHOOK_post_intif_parse) (int retVal___, int fd);
typedef int (*HPMHOOK_pre_intif_create_pet) (int *account_id, int *char_id, int *pet_type, int *pet_lv, int *pet_egg_id, int *pet_equip, short *intimate, short *hungry, char *rename_flag, char *incubate, char **pet_name);
typedef int (*HPMHOOK_post_intif_create_pet) (int retVal___, int account_id, int char_id, int pet_type, int pet_lv, int pet_egg_id, int pet_equip, short intimate, short hungry, char rename_flag, char incubate, char *pet_name);
-typedef int (*HPMHOOK_pre_intif_broadcast) (const char **mes, int *len, int *type);
-typedef int (*HPMHOOK_post_intif_broadcast) (int retVal___, const char *mes, int len, int type);
-typedef int (*HPMHOOK_pre_intif_broadcast2) (const char **mes, int *len, unsigned int *fontColor, short *fontType, short *fontSize, short *fontAlign, short *fontY);
-typedef int (*HPMHOOK_post_intif_broadcast2) (int retVal___, const char *mes, int len, unsigned int fontColor, short fontType, short fontSize, short fontAlign, short fontY);
-typedef int (*HPMHOOK_pre_intif_main_message) (struct map_session_data **sd, const char **message);
-typedef int (*HPMHOOK_post_intif_main_message) (int retVal___, struct map_session_data *sd, const char *message);
-typedef int (*HPMHOOK_pre_intif_wis_message) (struct map_session_data **sd, const char **nick, const char **mes, int *mes_len);
-typedef int (*HPMHOOK_post_intif_wis_message) (int retVal___, struct map_session_data *sd, const char *nick, const char *mes, int mes_len);
-typedef int (*HPMHOOK_pre_intif_wis_message_to_gm) (char **Wisp_name, int *permission, char **mes);
-typedef int (*HPMHOOK_post_intif_wis_message_to_gm) (int retVal___, char *Wisp_name, int permission, char *mes);
typedef int (*HPMHOOK_pre_intif_saveregistry) (struct map_session_data **sd);
typedef int (*HPMHOOK_post_intif_saveregistry) (int retVal___, struct map_session_data *sd);
typedef int (*HPMHOOK_pre_intif_request_registry) (struct map_session_data **sd, int *flag);
@@ -3664,8 +3644,6 @@ typedef int (*HPMHOOK_pre_intif_party_changemap) (struct map_session_data **sd,
typedef int (*HPMHOOK_post_intif_party_changemap) (int retVal___, struct map_session_data *sd, int online);
typedef int (*HPMHOOK_pre_intif_break_party) (int *party_id);
typedef int (*HPMHOOK_post_intif_break_party) (int retVal___, int party_id);
-typedef int (*HPMHOOK_pre_intif_party_message) (int *party_id, int *account_id, const char **mes, int *len);
-typedef int (*HPMHOOK_post_intif_party_message) (int retVal___, int party_id, int account_id, const char *mes, int len);
typedef int (*HPMHOOK_pre_intif_party_leaderchange) (int *party_id, int *account_id, int *char_id);
typedef int (*HPMHOOK_post_intif_party_leaderchange) (int retVal___, int party_id, int account_id, int char_id);
typedef int (*HPMHOOK_pre_intif_guild_create) (const char **name, const struct guild_member **master);
@@ -3680,8 +3658,6 @@ typedef int (*HPMHOOK_pre_intif_guild_memberinfoshort) (int *guild_id, int *acco
typedef int (*HPMHOOK_post_intif_guild_memberinfoshort) (int retVal___, int guild_id, int account_id, int char_id, int online, int lv, int class);
typedef int (*HPMHOOK_pre_intif_guild_break) (int *guild_id);
typedef int (*HPMHOOK_post_intif_guild_break) (int retVal___, int guild_id);
-typedef int (*HPMHOOK_pre_intif_guild_message) (int *guild_id, int *account_id, const char **mes, int *len);
-typedef int (*HPMHOOK_post_intif_guild_message) (int retVal___, int guild_id, int account_id, const char *mes, int len);
typedef int (*HPMHOOK_pre_intif_guild_change_gm) (int *guild_id, const char **name, int *len);
typedef int (*HPMHOOK_post_intif_guild_change_gm) (int retVal___, int guild_id, const char *name, int len);
typedef int (*HPMHOOK_pre_intif_guild_change_basicinfo) (int *guild_id, int *type, const void **data, int *len);
@@ -3788,14 +3764,6 @@ typedef void (*HPMHOOK_pre_intif_achievements_request) (struct map_session_data
typedef void (*HPMHOOK_post_intif_achievements_request) (struct map_session_data *sd);
typedef void (*HPMHOOK_pre_intif_achievements_save) (struct map_session_data **sd);
typedef void (*HPMHOOK_post_intif_achievements_save) (struct map_session_data *sd);
-typedef void (*HPMHOOK_pre_intif_pWisMessage) (int *fd);
-typedef void (*HPMHOOK_post_intif_pWisMessage) (int fd);
-typedef void (*HPMHOOK_pre_intif_pWisEnd) (int *fd);
-typedef void (*HPMHOOK_post_intif_pWisEnd) (int fd);
-typedef int (*HPMHOOK_pre_intif_pWisToGM_sub) (struct map_session_data **sd, va_list va);
-typedef int (*HPMHOOK_post_intif_pWisToGM_sub) (int retVal___, struct map_session_data *sd, va_list va);
-typedef void (*HPMHOOK_pre_intif_pWisToGM) (int *fd);
-typedef void (*HPMHOOK_post_intif_pWisToGM) (int fd);
typedef void (*HPMHOOK_pre_intif_pRegisters) (int *fd);
typedef void (*HPMHOOK_post_intif_pRegisters) (int fd);
typedef void (*HPMHOOK_pre_intif_pAccountStorage) (int *fd);
@@ -3824,8 +3792,6 @@ typedef void (*HPMHOOK_pre_intif_pPartyMove) (int *fd);
typedef void (*HPMHOOK_post_intif_pPartyMove) (int fd);
typedef void (*HPMHOOK_pre_intif_pPartyBroken) (int *fd);
typedef void (*HPMHOOK_post_intif_pPartyBroken) (int fd);
-typedef void (*HPMHOOK_pre_intif_pPartyMessage) (int *fd);
-typedef void (*HPMHOOK_post_intif_pPartyMessage) (int fd);
typedef void (*HPMHOOK_pre_intif_pGuildCreated) (int *fd);
typedef void (*HPMHOOK_post_intif_pGuildCreated) (int fd);
typedef void (*HPMHOOK_pre_intif_pGuildInfo) (int *fd);
@@ -3838,8 +3804,6 @@ typedef void (*HPMHOOK_pre_intif_pGuildMemberInfoShort) (int *fd);
typedef void (*HPMHOOK_post_intif_pGuildMemberInfoShort) (int fd);
typedef void (*HPMHOOK_pre_intif_pGuildBroken) (int *fd);
typedef void (*HPMHOOK_post_intif_pGuildBroken) (int fd);
-typedef void (*HPMHOOK_pre_intif_pGuildMessage) (int *fd);
-typedef void (*HPMHOOK_post_intif_pGuildMessage) (int fd);
typedef void (*HPMHOOK_pre_intif_pGuildBasicInfoChanged) (int *fd);
typedef void (*HPMHOOK_post_intif_pGuildBasicInfoChanged) (int fd);
typedef void (*HPMHOOK_pre_intif_pGuildMemberInfoChanged) (int *fd);
@@ -4922,8 +4886,6 @@ typedef int (*HPMHOOK_pre_mapif_guild_memberinfoshort) (struct guild **g, int *i
typedef int (*HPMHOOK_post_mapif_guild_memberinfoshort) (int retVal___, struct guild *g, int idx);
typedef int (*HPMHOOK_pre_mapif_guild_broken) (int *guild_id, int *flag);
typedef int (*HPMHOOK_post_mapif_guild_broken) (int retVal___, int guild_id, int flag);
-typedef int (*HPMHOOK_pre_mapif_guild_message) (int *guild_id, int *account_id, const char **mes, int *len, int *sfd);
-typedef int (*HPMHOOK_post_mapif_guild_message) (int retVal___, int guild_id, int account_id, const char *mes, int len, int sfd);
typedef int (*HPMHOOK_pre_mapif_guild_basicinfochanged) (int *guild_id, int *type, const void **data, int *len);
typedef int (*HPMHOOK_post_mapif_guild_basicinfochanged) (int retVal___, int guild_id, int type, const void *data, int len);
typedef int (*HPMHOOK_pre_mapif_guild_memberinfochanged) (int *guild_id, int *account_id, int *char_id, int *type, const void **data, int *len);
@@ -4954,8 +4916,6 @@ typedef int (*HPMHOOK_pre_mapif_parse_GuildChangeMemberInfoShort) (int *fd, int
typedef int (*HPMHOOK_post_mapif_parse_GuildChangeMemberInfoShort) (int retVal___, int fd, int guild_id, int account_id, int char_id, int online, int lv, int class);
typedef int (*HPMHOOK_pre_mapif_parse_BreakGuild) (int *fd, int *guild_id);
typedef int (*HPMHOOK_post_mapif_parse_BreakGuild) (int retVal___, int fd, int guild_id);
-typedef int (*HPMHOOK_pre_mapif_parse_GuildMessage) (int *fd, int *guild_id, int *account_id, const char **mes, int *len);
-typedef int (*HPMHOOK_post_mapif_parse_GuildMessage) (int retVal___, int fd, int guild_id, int account_id, const char *mes, int len);
typedef int (*HPMHOOK_pre_mapif_parse_GuildBasicInfoChange) (int *fd, int *guild_id, int *type, const void **data, int *len);
typedef int (*HPMHOOK_post_mapif_parse_GuildBasicInfoChange) (int retVal___, int fd, int guild_id, int type, const void *data, int len);
typedef int (*HPMHOOK_pre_mapif_parse_GuildMemberInfoChange) (int *fd, int *guild_id, int *account_id, int *char_id, int *type, const char **data, int *len);
@@ -5050,8 +5010,6 @@ typedef int (*HPMHOOK_pre_mapif_party_membermoved) (struct party **p, int *idx);
typedef int (*HPMHOOK_post_mapif_party_membermoved) (int retVal___, struct party *p, int idx);
typedef int (*HPMHOOK_pre_mapif_party_broken) (int *party_id, int *flag);
typedef int (*HPMHOOK_post_mapif_party_broken) (int retVal___, int party_id, int flag);
-typedef int (*HPMHOOK_pre_mapif_party_message) (int *party_id, int *account_id, const char **mes, int *len, int *sfd);
-typedef int (*HPMHOOK_post_mapif_party_message) (int retVal___, int party_id, int account_id, const char *mes, int len, int sfd);
typedef int (*HPMHOOK_pre_mapif_parse_CreateParty) (int *fd, const char **name, int *item, int *item2, const struct party_member **leader);
typedef int (*HPMHOOK_post_mapif_parse_CreateParty) (int retVal___, int fd, const char *name, int item, int item2, const struct party_member *leader);
typedef void (*HPMHOOK_pre_mapif_parse_PartyInfo) (int *fd, int *party_id, int *char_id);
@@ -5066,8 +5024,6 @@ typedef int (*HPMHOOK_pre_mapif_parse_PartyChangeMap) (int *fd, int *party_id, i
typedef int (*HPMHOOK_post_mapif_parse_PartyChangeMap) (int retVal___, int fd, int party_id, int account_id, int char_id, unsigned short map, int online, unsigned int lv);
typedef int (*HPMHOOK_pre_mapif_parse_BreakParty) (int *fd, int *party_id);
typedef int (*HPMHOOK_post_mapif_parse_BreakParty) (int retVal___, int fd, int party_id);
-typedef int (*HPMHOOK_pre_mapif_parse_PartyMessage) (int *fd, int *party_id, int *account_id, const char **mes, int *len);
-typedef int (*HPMHOOK_post_mapif_parse_PartyMessage) (int retVal___, int fd, int party_id, int account_id, const char *mes, int len);
typedef int (*HPMHOOK_pre_mapif_parse_PartyLeaderChange) (int *fd, int *party_id, int *account_id, int *char_id);
typedef int (*HPMHOOK_post_mapif_parse_PartyLeaderChange) (int retVal___, int fd, int party_id, int account_id, int char_id);
typedef int (*HPMHOOK_pre_mapif_pet_created) (int *fd, int *account_id, struct s_pet **p);
@@ -5144,26 +5100,10 @@ typedef void (*HPMHOOK_pre_mapif_parse_ItemBoundRetrieve) (int *fd);
typedef void (*HPMHOOK_post_mapif_parse_ItemBoundRetrieve) (int fd);
typedef void (*HPMHOOK_pre_mapif_parse_accinfo) (int *fd);
typedef void (*HPMHOOK_post_mapif_parse_accinfo) (int fd);
-typedef int (*HPMHOOK_pre_mapif_broadcast) (const unsigned char **mes, int *len, unsigned int *fontColor, short *fontType, short *fontSize, short *fontAlign, short *fontY, int *sfd);
-typedef int (*HPMHOOK_post_mapif_broadcast) (int retVal___, const unsigned char *mes, int len, unsigned int fontColor, short fontType, short fontSize, short fontAlign, short fontY, int sfd);
-typedef int (*HPMHOOK_pre_mapif_wis_message) (struct WisData **wd);
-typedef int (*HPMHOOK_post_mapif_wis_message) (int retVal___, struct WisData *wd);
-typedef void (*HPMHOOK_pre_mapif_wis_response) (int *fd, const unsigned char **src, int *flag);
-typedef void (*HPMHOOK_post_mapif_wis_response) (int fd, const unsigned char *src, int flag);
-typedef int (*HPMHOOK_pre_mapif_wis_end) (struct WisData **wd, int *flag);
-typedef int (*HPMHOOK_post_mapif_wis_end) (int retVal___, struct WisData *wd, int flag);
typedef int (*HPMHOOK_pre_mapif_account_reg_reply) (int *fd, int *account_id, int *char_id, int *type);
typedef int (*HPMHOOK_post_mapif_account_reg_reply) (int retVal___, int fd, int account_id, int char_id, int type);
typedef int (*HPMHOOK_pre_mapif_disconnectplayer) (int *fd, int *account_id, int *char_id, int *reason);
typedef int (*HPMHOOK_post_mapif_disconnectplayer) (int retVal___, int fd, int account_id, int char_id, int reason);
-typedef int (*HPMHOOK_pre_mapif_parse_broadcast) (int *fd);
-typedef int (*HPMHOOK_post_mapif_parse_broadcast) (int retVal___, int fd);
-typedef int (*HPMHOOK_pre_mapif_parse_WisRequest) (int *fd);
-typedef int (*HPMHOOK_post_mapif_parse_WisRequest) (int retVal___, int fd);
-typedef int (*HPMHOOK_pre_mapif_parse_WisReply) (int *fd);
-typedef int (*HPMHOOK_post_mapif_parse_WisReply) (int retVal___, int fd);
-typedef int (*HPMHOOK_pre_mapif_parse_WisToGM) (int *fd);
-typedef int (*HPMHOOK_post_mapif_parse_WisToGM) (int retVal___, int fd);
typedef int (*HPMHOOK_pre_mapif_parse_Registry) (int *fd);
typedef int (*HPMHOOK_post_mapif_parse_Registry) (int retVal___, int fd);
typedef int (*HPMHOOK_pre_mapif_parse_RegistryRequest) (int *fd);
@@ -5884,8 +5824,6 @@ typedef int (*HPMHOOK_pre_party_send_logout) (struct map_session_data **sd);
typedef int (*HPMHOOK_post_party_send_logout) (int retVal___, struct map_session_data *sd);
typedef int (*HPMHOOK_pre_party_send_message) (struct map_session_data **sd, const char **mes);
typedef int (*HPMHOOK_post_party_send_message) (int retVal___, struct map_session_data *sd, const char *mes);
-typedef int (*HPMHOOK_pre_party_recv_message) (int *party_id, int *account_id, const char **mes, int *len);
-typedef int (*HPMHOOK_post_party_recv_message) (int retVal___, int party_id, int account_id, const char *mes, int len);
typedef int (*HPMHOOK_pre_party_skill_check) (struct map_session_data **sd, int *party_id, uint16 *skill_id, uint16 *skill_lv);
typedef int (*HPMHOOK_post_party_skill_check) (int retVal___, struct map_session_data *sd, int party_id, uint16 skill_id, uint16 skill_lv);
typedef int (*HPMHOOK_pre_party_send_xy_clear) (struct party_data **p);
@@ -6076,8 +6014,8 @@ typedef bool (*HPMHOOK_pre_pc_adoption) (struct map_session_data **p1_sd, struct
typedef bool (*HPMHOOK_post_pc_adoption) (bool retVal___, struct map_session_data *p1_sd, struct map_session_data *p2_sd, struct map_session_data *b_sd);
typedef int (*HPMHOOK_pre_pc_updateweightstatus) (struct map_session_data **sd);
typedef int (*HPMHOOK_post_pc_updateweightstatus) (int retVal___, struct map_session_data *sd);
-typedef int (*HPMHOOK_pre_pc_addautobonus) (struct s_autobonus **bonus, char *max, const char **bonus_script, short *rate, unsigned int *dur, short *atk_type, const char **o_script, unsigned short *pos, bool *onskill);
-typedef int (*HPMHOOK_post_pc_addautobonus) (int retVal___, struct s_autobonus *bonus, char max, const char *bonus_script, short rate, unsigned int dur, short atk_type, const char *o_script, unsigned short pos, bool onskill);
+typedef int (*HPMHOOK_pre_pc_addautobonus) (struct s_autobonus **bonus, char *max, const char **bonus_script, short *rate, unsigned int *dur, short *atk_type, const char **o_script, unsigned int *pos, bool *onskill);
+typedef int (*HPMHOOK_post_pc_addautobonus) (int retVal___, struct s_autobonus *bonus, char max, const char *bonus_script, short rate, unsigned int dur, short atk_type, const char *o_script, unsigned int pos, bool onskill);
typedef int (*HPMHOOK_pre_pc_exeautobonus) (struct map_session_data **sd, struct s_autobonus **bonus);
typedef int (*HPMHOOK_post_pc_exeautobonus) (int retVal___, struct map_session_data *sd, struct s_autobonus *bonus);
typedef int (*HPMHOOK_pre_pc_endautobonus) (int *tid, int64 *tick, int *id, intptr_t *data);
@@ -6436,8 +6374,14 @@ typedef void (*HPMHOOK_pre_pc_update_idle_time) (struct map_session_data **sd, e
typedef void (*HPMHOOK_post_pc_update_idle_time) (struct map_session_data *sd, enum e_battle_config_idletime type);
typedef int (*HPMHOOK_pre_pc_have_magnifier) (struct map_session_data **sd);
typedef int (*HPMHOOK_post_pc_have_magnifier) (int retVal___, struct map_session_data *sd);
+typedef int (*HPMHOOK_pre_pc_have_item_chain) (struct map_session_data **sd, unsigned short *chain_id);
+typedef int (*HPMHOOK_post_pc_have_item_chain) (int retVal___, struct map_session_data *sd, unsigned short chain_id);
typedef bool (*HPMHOOK_pre_pc_process_chat_message) (struct map_session_data **sd, const char **message);
typedef bool (*HPMHOOK_post_pc_process_chat_message) (bool retVal___, struct map_session_data *sd, const char *message);
+typedef int (*HPMHOOK_pre_pc_wis_message_to_gm) (const char **sender_name, int *permission, const char **message);
+typedef int (*HPMHOOK_post_pc_wis_message_to_gm) (int retVal___, const char *sender_name, int permission, const char *message);
+typedef int (*HPMHOOK_pre_pc_wis_message_to_gm_sub) (struct map_session_data **sd, va_list va);
+typedef int (*HPMHOOK_post_pc_wis_message_to_gm_sub) (int retVal___, struct map_session_data *sd, va_list va);
typedef void (*HPMHOOK_pre_pc_check_supernovice_call) (struct map_session_data **sd, const char **message);
typedef void (*HPMHOOK_post_pc_check_supernovice_call) (struct map_session_data *sd, const char *message);
typedef bool (*HPMHOOK_pre_pc_check_basicskill) (struct map_session_data **sd, int *level);
@@ -7994,8 +7938,14 @@ typedef bool (*HPMHOOK_pre_status_readdb_job2) (char **fields[], int *columns, i
typedef bool (*HPMHOOK_post_status_readdb_job2) (bool retVal___, char *fields[], int columns, int current);
typedef bool (*HPMHOOK_pre_status_readdb_sizefix) (char **fields[], int *columns, int *current);
typedef bool (*HPMHOOK_post_status_readdb_sizefix) (bool retVal___, char *fields[], int columns, int current);
-typedef bool (*HPMHOOK_pre_status_readdb_scconfig) (char **fields[], int *columns, int *current);
-typedef bool (*HPMHOOK_post_status_readdb_scconfig) (bool retVal___, char *fields[], int columns, int current);
+typedef bool (*HPMHOOK_pre_status_read_scdb_libconfig) (void);
+typedef bool (*HPMHOOK_post_status_read_scdb_libconfig) (bool retVal___);
+typedef bool (*HPMHOOK_pre_status_read_scdb_libconfig_sub) (struct config_setting_t **it, int *idx, const char **source);
+typedef bool (*HPMHOOK_post_status_read_scdb_libconfig_sub) (bool retVal___, struct config_setting_t *it, int idx, const char *source);
+typedef bool (*HPMHOOK_pre_status_read_scdb_libconfig_sub_flag) (struct config_setting_t **it, int *type, const char **source);
+typedef bool (*HPMHOOK_post_status_read_scdb_libconfig_sub_flag) (bool retVal___, struct config_setting_t *it, int type, const char *source);
+typedef bool (*HPMHOOK_pre_status_read_scdb_libconfig_sub_flag_additional) (struct config_setting_t **it, int *type, const char **source);
+typedef bool (*HPMHOOK_post_status_read_scdb_libconfig_sub_flag_additional) (bool retVal___, struct config_setting_t *it, int type, const char *source);
typedef void (*HPMHOOK_pre_status_read_job_db) (void);
typedef void (*HPMHOOK_post_status_read_job_db) (void);
typedef void (*HPMHOOK_pre_status_read_job_db_sub) (int *idx, const char **name, struct config_setting_t **jdb);
diff --git a/src/plugins/HPMHooking/HPMHooking_char.HPMHooksCore.inc b/src/plugins/HPMHooking/HPMHooking_char.HPMHooksCore.inc
index 9302a8d19..a5f65654e 100644
--- a/src/plugins/HPMHooking/HPMHooking_char.HPMHooksCore.inc
+++ b/src/plugins/HPMHooking/HPMHooking_char.HPMHooksCore.inc
@@ -610,10 +610,6 @@ struct {
struct HPMHookPoint *HP_inter_init_sql_post;
struct HPMHookPoint *HP_inter_mapif_init_pre;
struct HPMHookPoint *HP_inter_mapif_init_post;
- struct HPMHookPoint *HP_inter_check_ttl_wisdata_sub_pre;
- struct HPMHookPoint *HP_inter_check_ttl_wisdata_sub_post;
- struct HPMHookPoint *HP_inter_check_ttl_wisdata_pre;
- struct HPMHookPoint *HP_inter_check_ttl_wisdata_post;
struct HPMHookPoint *HP_inter_check_length_pre;
struct HPMHookPoint *HP_inter_check_length_post;
struct HPMHookPoint *HP_inter_parse_frommap_pre;
@@ -630,12 +626,6 @@ struct {
struct HPMHookPoint *HP_inter_accinfo_post;
struct HPMHookPoint *HP_inter_accinfo2_pre;
struct HPMHookPoint *HP_inter_accinfo2_post;
- struct HPMHookPoint *HP_inter_add_wisdata_pre;
- struct HPMHookPoint *HP_inter_add_wisdata_post;
- struct HPMHookPoint *HP_inter_get_wisdata_pre;
- struct HPMHookPoint *HP_inter_get_wisdata_post;
- struct HPMHookPoint *HP_inter_remove_wisdata_pre;
- struct HPMHookPoint *HP_inter_remove_wisdata_post;
struct HPMHookPoint *HP_inter_mail_sql_init_pre;
struct HPMHookPoint *HP_inter_mail_sql_init_post;
struct HPMHookPoint *HP_inter_mail_sql_final_pre;
@@ -1032,8 +1022,6 @@ struct {
struct HPMHookPoint *HP_mapif_guild_memberinfoshort_post;
struct HPMHookPoint *HP_mapif_guild_broken_pre;
struct HPMHookPoint *HP_mapif_guild_broken_post;
- struct HPMHookPoint *HP_mapif_guild_message_pre;
- struct HPMHookPoint *HP_mapif_guild_message_post;
struct HPMHookPoint *HP_mapif_guild_basicinfochanged_pre;
struct HPMHookPoint *HP_mapif_guild_basicinfochanged_post;
struct HPMHookPoint *HP_mapif_guild_memberinfochanged_pre;
@@ -1064,8 +1052,6 @@ struct {
struct HPMHookPoint *HP_mapif_parse_GuildChangeMemberInfoShort_post;
struct HPMHookPoint *HP_mapif_parse_BreakGuild_pre;
struct HPMHookPoint *HP_mapif_parse_BreakGuild_post;
- struct HPMHookPoint *HP_mapif_parse_GuildMessage_pre;
- struct HPMHookPoint *HP_mapif_parse_GuildMessage_post;
struct HPMHookPoint *HP_mapif_parse_GuildBasicInfoChange_pre;
struct HPMHookPoint *HP_mapif_parse_GuildBasicInfoChange_post;
struct HPMHookPoint *HP_mapif_parse_GuildMemberInfoChange_pre;
@@ -1160,8 +1146,6 @@ struct {
struct HPMHookPoint *HP_mapif_party_membermoved_post;
struct HPMHookPoint *HP_mapif_party_broken_pre;
struct HPMHookPoint *HP_mapif_party_broken_post;
- struct HPMHookPoint *HP_mapif_party_message_pre;
- struct HPMHookPoint *HP_mapif_party_message_post;
struct HPMHookPoint *HP_mapif_parse_CreateParty_pre;
struct HPMHookPoint *HP_mapif_parse_CreateParty_post;
struct HPMHookPoint *HP_mapif_parse_PartyInfo_pre;
@@ -1176,8 +1160,6 @@ struct {
struct HPMHookPoint *HP_mapif_parse_PartyChangeMap_post;
struct HPMHookPoint *HP_mapif_parse_BreakParty_pre;
struct HPMHookPoint *HP_mapif_parse_BreakParty_post;
- struct HPMHookPoint *HP_mapif_parse_PartyMessage_pre;
- struct HPMHookPoint *HP_mapif_parse_PartyMessage_post;
struct HPMHookPoint *HP_mapif_parse_PartyLeaderChange_pre;
struct HPMHookPoint *HP_mapif_parse_PartyLeaderChange_post;
struct HPMHookPoint *HP_mapif_pet_created_pre;
@@ -1254,26 +1236,10 @@ struct {
struct HPMHookPoint *HP_mapif_parse_ItemBoundRetrieve_post;
struct HPMHookPoint *HP_mapif_parse_accinfo_pre;
struct HPMHookPoint *HP_mapif_parse_accinfo_post;
- struct HPMHookPoint *HP_mapif_broadcast_pre;
- struct HPMHookPoint *HP_mapif_broadcast_post;
- struct HPMHookPoint *HP_mapif_wis_message_pre;
- struct HPMHookPoint *HP_mapif_wis_message_post;
- struct HPMHookPoint *HP_mapif_wis_response_pre;
- struct HPMHookPoint *HP_mapif_wis_response_post;
- struct HPMHookPoint *HP_mapif_wis_end_pre;
- struct HPMHookPoint *HP_mapif_wis_end_post;
struct HPMHookPoint *HP_mapif_account_reg_reply_pre;
struct HPMHookPoint *HP_mapif_account_reg_reply_post;
struct HPMHookPoint *HP_mapif_disconnectplayer_pre;
struct HPMHookPoint *HP_mapif_disconnectplayer_post;
- struct HPMHookPoint *HP_mapif_parse_broadcast_pre;
- struct HPMHookPoint *HP_mapif_parse_broadcast_post;
- struct HPMHookPoint *HP_mapif_parse_WisRequest_pre;
- struct HPMHookPoint *HP_mapif_parse_WisRequest_post;
- struct HPMHookPoint *HP_mapif_parse_WisReply_pre;
- struct HPMHookPoint *HP_mapif_parse_WisReply_post;
- struct HPMHookPoint *HP_mapif_parse_WisToGM_pre;
- struct HPMHookPoint *HP_mapif_parse_WisToGM_post;
struct HPMHookPoint *HP_mapif_parse_Registry_pre;
struct HPMHookPoint *HP_mapif_parse_Registry_post;
struct HPMHookPoint *HP_mapif_parse_RegistryRequest_pre;
@@ -2257,10 +2223,6 @@ struct {
int HP_inter_init_sql_post;
int HP_inter_mapif_init_pre;
int HP_inter_mapif_init_post;
- int HP_inter_check_ttl_wisdata_sub_pre;
- int HP_inter_check_ttl_wisdata_sub_post;
- int HP_inter_check_ttl_wisdata_pre;
- int HP_inter_check_ttl_wisdata_post;
int HP_inter_check_length_pre;
int HP_inter_check_length_post;
int HP_inter_parse_frommap_pre;
@@ -2277,12 +2239,6 @@ struct {
int HP_inter_accinfo_post;
int HP_inter_accinfo2_pre;
int HP_inter_accinfo2_post;
- int HP_inter_add_wisdata_pre;
- int HP_inter_add_wisdata_post;
- int HP_inter_get_wisdata_pre;
- int HP_inter_get_wisdata_post;
- int HP_inter_remove_wisdata_pre;
- int HP_inter_remove_wisdata_post;
int HP_inter_mail_sql_init_pre;
int HP_inter_mail_sql_init_post;
int HP_inter_mail_sql_final_pre;
@@ -2679,8 +2635,6 @@ struct {
int HP_mapif_guild_memberinfoshort_post;
int HP_mapif_guild_broken_pre;
int HP_mapif_guild_broken_post;
- int HP_mapif_guild_message_pre;
- int HP_mapif_guild_message_post;
int HP_mapif_guild_basicinfochanged_pre;
int HP_mapif_guild_basicinfochanged_post;
int HP_mapif_guild_memberinfochanged_pre;
@@ -2711,8 +2665,6 @@ struct {
int HP_mapif_parse_GuildChangeMemberInfoShort_post;
int HP_mapif_parse_BreakGuild_pre;
int HP_mapif_parse_BreakGuild_post;
- int HP_mapif_parse_GuildMessage_pre;
- int HP_mapif_parse_GuildMessage_post;
int HP_mapif_parse_GuildBasicInfoChange_pre;
int HP_mapif_parse_GuildBasicInfoChange_post;
int HP_mapif_parse_GuildMemberInfoChange_pre;
@@ -2807,8 +2759,6 @@ struct {
int HP_mapif_party_membermoved_post;
int HP_mapif_party_broken_pre;
int HP_mapif_party_broken_post;
- int HP_mapif_party_message_pre;
- int HP_mapif_party_message_post;
int HP_mapif_parse_CreateParty_pre;
int HP_mapif_parse_CreateParty_post;
int HP_mapif_parse_PartyInfo_pre;
@@ -2823,8 +2773,6 @@ struct {
int HP_mapif_parse_PartyChangeMap_post;
int HP_mapif_parse_BreakParty_pre;
int HP_mapif_parse_BreakParty_post;
- int HP_mapif_parse_PartyMessage_pre;
- int HP_mapif_parse_PartyMessage_post;
int HP_mapif_parse_PartyLeaderChange_pre;
int HP_mapif_parse_PartyLeaderChange_post;
int HP_mapif_pet_created_pre;
@@ -2901,26 +2849,10 @@ struct {
int HP_mapif_parse_ItemBoundRetrieve_post;
int HP_mapif_parse_accinfo_pre;
int HP_mapif_parse_accinfo_post;
- int HP_mapif_broadcast_pre;
- int HP_mapif_broadcast_post;
- int HP_mapif_wis_message_pre;
- int HP_mapif_wis_message_post;
- int HP_mapif_wis_response_pre;
- int HP_mapif_wis_response_post;
- int HP_mapif_wis_end_pre;
- int HP_mapif_wis_end_post;
int HP_mapif_account_reg_reply_pre;
int HP_mapif_account_reg_reply_post;
int HP_mapif_disconnectplayer_pre;
int HP_mapif_disconnectplayer_post;
- int HP_mapif_parse_broadcast_pre;
- int HP_mapif_parse_broadcast_post;
- int HP_mapif_parse_WisRequest_pre;
- int HP_mapif_parse_WisRequest_post;
- int HP_mapif_parse_WisReply_pre;
- int HP_mapif_parse_WisReply_post;
- int HP_mapif_parse_WisToGM_pre;
- int HP_mapif_parse_WisToGM_post;
int HP_mapif_parse_Registry_pre;
int HP_mapif_parse_Registry_post;
int HP_mapif_parse_RegistryRequest_pre;
diff --git a/src/plugins/HPMHooking/HPMHooking_char.HookingPoints.inc b/src/plugins/HPMHooking/HPMHooking_char.HookingPoints.inc
index 60162c1a8..efd72b670 100644
--- a/src/plugins/HPMHooking/HPMHooking_char.HookingPoints.inc
+++ b/src/plugins/HPMHooking/HPMHooking_char.HookingPoints.inc
@@ -333,8 +333,6 @@ struct HookingPointData HookingPoints[] = {
{ HP_POP(inter->vlog, HP_inter_vlog) },
{ HP_POP(inter->init_sql, HP_inter_init_sql) },
{ HP_POP(inter->mapif_init, HP_inter_mapif_init) },
- { HP_POP(inter->check_ttl_wisdata_sub, HP_inter_check_ttl_wisdata_sub) },
- { HP_POP(inter->check_ttl_wisdata, HP_inter_check_ttl_wisdata) },
{ HP_POP(inter->check_length, HP_inter_check_length) },
{ HP_POP(inter->parse_frommap, HP_inter_parse_frommap) },
{ HP_POP(inter->final, HP_inter_final) },
@@ -343,9 +341,6 @@ struct HookingPointData HookingPoints[] = {
{ HP_POP(inter->config_read_connection, HP_inter_config_read_connection) },
{ HP_POP(inter->accinfo, HP_inter_accinfo) },
{ HP_POP(inter->accinfo2, HP_inter_accinfo2) },
- { HP_POP(inter->add_wisdata, HP_inter_add_wisdata) },
- { HP_POP(inter->get_wisdata, HP_inter_get_wisdata) },
- { HP_POP(inter->remove_wisdata, HP_inter_remove_wisdata) },
/* inter_mail_interface */
{ HP_POP(inter_mail->sql_init, HP_inter_mail_sql_init) },
{ HP_POP(inter_mail->sql_final, HP_inter_mail_sql_final) },
@@ -554,7 +549,6 @@ struct HookingPointData HookingPoints[] = {
{ HP_POP(mapif->guild_withdraw, HP_mapif_guild_withdraw) },
{ HP_POP(mapif->guild_memberinfoshort, HP_mapif_guild_memberinfoshort) },
{ HP_POP(mapif->guild_broken, HP_mapif_guild_broken) },
- { HP_POP(mapif->guild_message, HP_mapif_guild_message) },
{ HP_POP(mapif->guild_basicinfochanged, HP_mapif_guild_basicinfochanged) },
{ HP_POP(mapif->guild_memberinfochanged, HP_mapif_guild_memberinfochanged) },
{ HP_POP(mapif->guild_skillupack, HP_mapif_guild_skillupack) },
@@ -570,7 +564,6 @@ struct HookingPointData HookingPoints[] = {
{ HP_POP(mapif->parse_GuildLeave, HP_mapif_parse_GuildLeave) },
{ HP_POP(mapif->parse_GuildChangeMemberInfoShort, HP_mapif_parse_GuildChangeMemberInfoShort) },
{ HP_POP(mapif->parse_BreakGuild, HP_mapif_parse_BreakGuild) },
- { HP_POP(mapif->parse_GuildMessage, HP_mapif_parse_GuildMessage) },
{ HP_POP(mapif->parse_GuildBasicInfoChange, HP_mapif_parse_GuildBasicInfoChange) },
{ HP_POP(mapif->parse_GuildMemberInfoChange, HP_mapif_parse_GuildMemberInfoChange) },
{ HP_POP(mapif->parse_GuildPosition, HP_mapif_parse_GuildPosition) },
@@ -618,7 +611,6 @@ struct HookingPointData HookingPoints[] = {
{ HP_POP(mapif->party_withdraw, HP_mapif_party_withdraw) },
{ HP_POP(mapif->party_membermoved, HP_mapif_party_membermoved) },
{ HP_POP(mapif->party_broken, HP_mapif_party_broken) },
- { HP_POP(mapif->party_message, HP_mapif_party_message) },
{ HP_POP(mapif->parse_CreateParty, HP_mapif_parse_CreateParty) },
{ HP_POP(mapif->parse_PartyInfo, HP_mapif_parse_PartyInfo) },
{ HP_POP(mapif->parse_PartyAddMember, HP_mapif_parse_PartyAddMember) },
@@ -626,7 +618,6 @@ struct HookingPointData HookingPoints[] = {
{ HP_POP(mapif->parse_PartyLeave, HP_mapif_parse_PartyLeave) },
{ HP_POP(mapif->parse_PartyChangeMap, HP_mapif_parse_PartyChangeMap) },
{ HP_POP(mapif->parse_BreakParty, HP_mapif_parse_BreakParty) },
- { HP_POP(mapif->parse_PartyMessage, HP_mapif_parse_PartyMessage) },
{ HP_POP(mapif->parse_PartyLeaderChange, HP_mapif_parse_PartyLeaderChange) },
{ HP_POP(mapif->pet_created, HP_mapif_pet_created) },
{ HP_POP(mapif->pet_info, HP_mapif_pet_info) },
@@ -665,16 +656,8 @@ struct HookingPointData HookingPoints[] = {
{ HP_POP(mapif->itembound_ack, HP_mapif_itembound_ack) },
{ HP_POP(mapif->parse_ItemBoundRetrieve, HP_mapif_parse_ItemBoundRetrieve) },
{ HP_POP(mapif->parse_accinfo, HP_mapif_parse_accinfo) },
- { HP_POP(mapif->broadcast, HP_mapif_broadcast) },
- { HP_POP(mapif->wis_message, HP_mapif_wis_message) },
- { HP_POP(mapif->wis_response, HP_mapif_wis_response) },
- { HP_POP(mapif->wis_end, HP_mapif_wis_end) },
{ HP_POP(mapif->account_reg_reply, HP_mapif_account_reg_reply) },
{ HP_POP(mapif->disconnectplayer, HP_mapif_disconnectplayer) },
- { HP_POP(mapif->parse_broadcast, HP_mapif_parse_broadcast) },
- { HP_POP(mapif->parse_WisRequest, HP_mapif_parse_WisRequest) },
- { HP_POP(mapif->parse_WisReply, HP_mapif_parse_WisReply) },
- { HP_POP(mapif->parse_WisToGM, HP_mapif_parse_WisToGM) },
{ HP_POP(mapif->parse_Registry, HP_mapif_parse_Registry) },
{ HP_POP(mapif->parse_RegistryRequest, HP_mapif_parse_RegistryRequest) },
{ HP_POP(mapif->namechange_ack, HP_mapif_namechange_ack) },
diff --git a/src/plugins/HPMHooking/HPMHooking_char.Hooks.inc b/src/plugins/HPMHooking/HPMHooking_char.Hooks.inc
index 2b7e25e5d..7ce54d288 100644
--- a/src/plugins/HPMHooking/HPMHooking_char.Hooks.inc
+++ b/src/plugins/HPMHooking/HPMHooking_char.Hooks.inc
@@ -7851,66 +7851,6 @@ int HP_inter_mapif_init(int fd) {
}
return retVal___;
}
-int HP_inter_check_ttl_wisdata_sub(union DBKey key, struct DBData *data, va_list ap) {
- int hIndex = 0;
- int retVal___ = 0;
- if (HPMHooks.count.HP_inter_check_ttl_wisdata_sub_pre > 0) {
- int (*preHookFunc) (union DBKey *key, struct DBData **data, va_list ap);
- *HPMforce_return = false;
- for (hIndex = 0; hIndex < HPMHooks.count.HP_inter_check_ttl_wisdata_sub_pre; hIndex++) {
- va_list ap___copy; va_copy(ap___copy, ap);
- preHookFunc = HPMHooks.list.HP_inter_check_ttl_wisdata_sub_pre[hIndex].func;
- retVal___ = preHookFunc(&key, &data, ap___copy);
- va_end(ap___copy);
- }
- if (*HPMforce_return) {
- *HPMforce_return = false;
- return retVal___;
- }
- }
- {
- va_list ap___copy; va_copy(ap___copy, ap);
- retVal___ = HPMHooks.source.inter.check_ttl_wisdata_sub(key, data, ap___copy);
- va_end(ap___copy);
- }
- if (HPMHooks.count.HP_inter_check_ttl_wisdata_sub_post > 0) {
- int (*postHookFunc) (int retVal___, union DBKey key, struct DBData *data, va_list ap);
- for (hIndex = 0; hIndex < HPMHooks.count.HP_inter_check_ttl_wisdata_sub_post; hIndex++) {
- va_list ap___copy; va_copy(ap___copy, ap);
- postHookFunc = HPMHooks.list.HP_inter_check_ttl_wisdata_sub_post[hIndex].func;
- retVal___ = postHookFunc(retVal___, key, data, ap___copy);
- va_end(ap___copy);
- }
- }
- return retVal___;
-}
-int HP_inter_check_ttl_wisdata(void) {
- int hIndex = 0;
- int retVal___ = 0;
- if (HPMHooks.count.HP_inter_check_ttl_wisdata_pre > 0) {
- int (*preHookFunc) (void);
- *HPMforce_return = false;
- for (hIndex = 0; hIndex < HPMHooks.count.HP_inter_check_ttl_wisdata_pre; hIndex++) {
- preHookFunc = HPMHooks.list.HP_inter_check_ttl_wisdata_pre[hIndex].func;
- retVal___ = preHookFunc();
- }
- if (*HPMforce_return) {
- *HPMforce_return = false;
- return retVal___;
- }
- }
- {
- retVal___ = HPMHooks.source.inter.check_ttl_wisdata();
- }
- if (HPMHooks.count.HP_inter_check_ttl_wisdata_post > 0) {
- int (*postHookFunc) (int retVal___);
- for (hIndex = 0; hIndex < HPMHooks.count.HP_inter_check_ttl_wisdata_post; hIndex++) {
- postHookFunc = HPMHooks.list.HP_inter_check_ttl_wisdata_post[hIndex].func;
- retVal___ = postHookFunc(retVal___);
- }
- }
- return retVal___;
-}
int HP_inter_check_length(int fd, int length) {
int hIndex = 0;
int retVal___ = 0;
@@ -8124,86 +8064,6 @@ void HP_inter_accinfo2(bool success, int map_fd, int u_fd, int u_aid, int accoun
}
return;
}
-struct WisData* HP_inter_add_wisdata(int fd, const unsigned char *src, const unsigned char *dst, const unsigned char *msg, int msg_len) {
- int hIndex = 0;
- struct WisData* retVal___ = NULL;
- if (HPMHooks.count.HP_inter_add_wisdata_pre > 0) {
- struct WisData* (*preHookFunc) (int *fd, const unsigned char **src, const unsigned char **dst, const unsigned char **msg, int *msg_len);
- *HPMforce_return = false;
- for (hIndex = 0; hIndex < HPMHooks.count.HP_inter_add_wisdata_pre; hIndex++) {
- preHookFunc = HPMHooks.list.HP_inter_add_wisdata_pre[hIndex].func;
- retVal___ = preHookFunc(&fd, &src, &dst, &msg, &msg_len);
- }
- if (*HPMforce_return) {
- *HPMforce_return = false;
- return retVal___;
- }
- }
- {
- retVal___ = HPMHooks.source.inter.add_wisdata(fd, src, dst, msg, msg_len);
- }
- if (HPMHooks.count.HP_inter_add_wisdata_post > 0) {
- struct WisData* (*postHookFunc) (struct WisData* retVal___, int fd, const unsigned char *src, const unsigned char *dst, const unsigned char *msg, int msg_len);
- for (hIndex = 0; hIndex < HPMHooks.count.HP_inter_add_wisdata_post; hIndex++) {
- postHookFunc = HPMHooks.list.HP_inter_add_wisdata_post[hIndex].func;
- retVal___ = postHookFunc(retVal___, fd, src, dst, msg, msg_len);
- }
- }
- return retVal___;
-}
-struct WisData* HP_inter_get_wisdata(int id) {
- int hIndex = 0;
- struct WisData* retVal___ = NULL;
- if (HPMHooks.count.HP_inter_get_wisdata_pre > 0) {
- struct WisData* (*preHookFunc) (int *id);
- *HPMforce_return = false;
- for (hIndex = 0; hIndex < HPMHooks.count.HP_inter_get_wisdata_pre; hIndex++) {
- preHookFunc = HPMHooks.list.HP_inter_get_wisdata_pre[hIndex].func;
- retVal___ = preHookFunc(&id);
- }
- if (*HPMforce_return) {
- *HPMforce_return = false;
- return retVal___;
- }
- }
- {
- retVal___ = HPMHooks.source.inter.get_wisdata(id);
- }
- if (HPMHooks.count.HP_inter_get_wisdata_post > 0) {
- struct WisData* (*postHookFunc) (struct WisData* retVal___, int id);
- for (hIndex = 0; hIndex < HPMHooks.count.HP_inter_get_wisdata_post; hIndex++) {
- postHookFunc = HPMHooks.list.HP_inter_get_wisdata_post[hIndex].func;
- retVal___ = postHookFunc(retVal___, id);
- }
- }
- return retVal___;
-}
-void HP_inter_remove_wisdata(int id) {
- int hIndex = 0;
- if (HPMHooks.count.HP_inter_remove_wisdata_pre > 0) {
- void (*preHookFunc) (int *id);
- *HPMforce_return = false;
- for (hIndex = 0; hIndex < HPMHooks.count.HP_inter_remove_wisdata_pre; hIndex++) {
- preHookFunc = HPMHooks.list.HP_inter_remove_wisdata_pre[hIndex].func;
- preHookFunc(&id);
- }
- if (*HPMforce_return) {
- *HPMforce_return = false;
- return;
- }
- }
- {
- HPMHooks.source.inter.remove_wisdata(id);
- }
- if (HPMHooks.count.HP_inter_remove_wisdata_post > 0) {
- void (*postHookFunc) (int id);
- for (hIndex = 0; hIndex < HPMHooks.count.HP_inter_remove_wisdata_post; hIndex++) {
- postHookFunc = HPMHooks.list.HP_inter_remove_wisdata_post[hIndex].func;
- postHookFunc(id);
- }
- }
- return;
-}
/* inter_mail_interface */
int HP_inter_mail_sql_init(void) {
int hIndex = 0;
@@ -13498,33 +13358,6 @@ int HP_mapif_guild_broken(int guild_id, int flag) {
}
return retVal___;
}
-int HP_mapif_guild_message(int guild_id, int account_id, const char *mes, int len, int sfd) {
- int hIndex = 0;
- int retVal___ = 0;
- if (HPMHooks.count.HP_mapif_guild_message_pre > 0) {
- int (*preHookFunc) (int *guild_id, int *account_id, const char **mes, int *len, int *sfd);
- *HPMforce_return = false;
- for (hIndex = 0; hIndex < HPMHooks.count.HP_mapif_guild_message_pre; hIndex++) {
- preHookFunc = HPMHooks.list.HP_mapif_guild_message_pre[hIndex].func;
- retVal___ = preHookFunc(&guild_id, &account_id, &mes, &len, &sfd);
- }
- if (*HPMforce_return) {
- *HPMforce_return = false;
- return retVal___;
- }
- }
- {
- retVal___ = HPMHooks.source.mapif.guild_message(guild_id, account_id, mes, len, sfd);
- }
- if (HPMHooks.count.HP_mapif_guild_message_post > 0) {
- int (*postHookFunc) (int retVal___, int guild_id, int account_id, const char *mes, int len, int sfd);
- for (hIndex = 0; hIndex < HPMHooks.count.HP_mapif_guild_message_post; hIndex++) {
- postHookFunc = HPMHooks.list.HP_mapif_guild_message_post[hIndex].func;
- retVal___ = postHookFunc(retVal___, guild_id, account_id, mes, len, sfd);
- }
- }
- return retVal___;
-}
int HP_mapif_guild_basicinfochanged(int guild_id, int type, const void *data, int len) {
int hIndex = 0;
int retVal___ = 0;
@@ -13930,33 +13763,6 @@ int HP_mapif_parse_BreakGuild(int fd, int guild_id) {
}
return retVal___;
}
-int HP_mapif_parse_GuildMessage(int fd, int guild_id, int account_id, const char *mes, int len) {
- int hIndex = 0;
- int retVal___ = 0;
- if (HPMHooks.count.HP_mapif_parse_GuildMessage_pre > 0) {
- int (*preHookFunc) (int *fd, int *guild_id, int *account_id, const char **mes, int *len);
- *HPMforce_return = false;
- for (hIndex = 0; hIndex < HPMHooks.count.HP_mapif_parse_GuildMessage_pre; hIndex++) {
- preHookFunc = HPMHooks.list.HP_mapif_parse_GuildMessage_pre[hIndex].func;
- retVal___ = preHookFunc(&fd, &guild_id, &account_id, &mes, &len);
- }
- if (*HPMforce_return) {
- *HPMforce_return = false;
- return retVal___;
- }
- }
- {
- retVal___ = HPMHooks.source.mapif.parse_GuildMessage(fd, guild_id, account_id, mes, len);
- }
- if (HPMHooks.count.HP_mapif_parse_GuildMessage_post > 0) {
- int (*postHookFunc) (int retVal___, int fd, int guild_id, int account_id, const char *mes, int len);
- for (hIndex = 0; hIndex < HPMHooks.count.HP_mapif_parse_GuildMessage_post; hIndex++) {
- postHookFunc = HPMHooks.list.HP_mapif_parse_GuildMessage_post[hIndex].func;
- retVal___ = postHookFunc(retVal___, fd, guild_id, account_id, mes, len);
- }
- }
- return retVal___;
-}
int HP_mapif_parse_GuildBasicInfoChange(int fd, int guild_id, int type, const void *data, int len) {
int hIndex = 0;
int retVal___ = 0;
@@ -15195,33 +15001,6 @@ int HP_mapif_party_broken(int party_id, int flag) {
}
return retVal___;
}
-int HP_mapif_party_message(int party_id, int account_id, const char *mes, int len, int sfd) {
- int hIndex = 0;
- int retVal___ = 0;
- if (HPMHooks.count.HP_mapif_party_message_pre > 0) {
- int (*preHookFunc) (int *party_id, int *account_id, const char **mes, int *len, int *sfd);
- *HPMforce_return = false;
- for (hIndex = 0; hIndex < HPMHooks.count.HP_mapif_party_message_pre; hIndex++) {
- preHookFunc = HPMHooks.list.HP_mapif_party_message_pre[hIndex].func;
- retVal___ = preHookFunc(&party_id, &account_id, &mes, &len, &sfd);
- }
- if (*HPMforce_return) {
- *HPMforce_return = false;
- return retVal___;
- }
- }
- {
- retVal___ = HPMHooks.source.mapif.party_message(party_id, account_id, mes, len, sfd);
- }
- if (HPMHooks.count.HP_mapif_party_message_post > 0) {
- int (*postHookFunc) (int retVal___, int party_id, int account_id, const char *mes, int len, int sfd);
- for (hIndex = 0; hIndex < HPMHooks.count.HP_mapif_party_message_post; hIndex++) {
- postHookFunc = HPMHooks.list.HP_mapif_party_message_post[hIndex].func;
- retVal___ = postHookFunc(retVal___, party_id, account_id, mes, len, sfd);
- }
- }
- return retVal___;
-}
int HP_mapif_parse_CreateParty(int fd, const char *name, int item, int item2, const struct party_member *leader) {
int hIndex = 0;
int retVal___ = 0;
@@ -15410,33 +15189,6 @@ int HP_mapif_parse_BreakParty(int fd, int party_id) {
}
return retVal___;
}
-int HP_mapif_parse_PartyMessage(int fd, int party_id, int account_id, const char *mes, int len) {
- int hIndex = 0;
- int retVal___ = 0;
- if (HPMHooks.count.HP_mapif_parse_PartyMessage_pre > 0) {
- int (*preHookFunc) (int *fd, int *party_id, int *account_id, const char **mes, int *len);
- *HPMforce_return = false;
- for (hIndex = 0; hIndex < HPMHooks.count.HP_mapif_parse_PartyMessage_pre; hIndex++) {
- preHookFunc = HPMHooks.list.HP_mapif_parse_PartyMessage_pre[hIndex].func;
- retVal___ = preHookFunc(&fd, &party_id, &account_id, &mes, &len);
- }
- if (*HPMforce_return) {
- *HPMforce_return = false;
- return retVal___;
- }
- }
- {
- retVal___ = HPMHooks.source.mapif.parse_PartyMessage(fd, party_id, account_id, mes, len);
- }
- if (HPMHooks.count.HP_mapif_parse_PartyMessage_post > 0) {
- int (*postHookFunc) (int retVal___, int fd, int party_id, int account_id, const char *mes, int len);
- for (hIndex = 0; hIndex < HPMHooks.count.HP_mapif_parse_PartyMessage_post; hIndex++) {
- postHookFunc = HPMHooks.list.HP_mapif_parse_PartyMessage_post[hIndex].func;
- retVal___ = postHookFunc(retVal___, fd, party_id, account_id, mes, len);
- }
- }
- return retVal___;
-}
int HP_mapif_parse_PartyLeaderChange(int fd, int party_id, int account_id, int char_id) {
int hIndex = 0;
int retVal___ = 0;
@@ -16447,113 +16199,6 @@ void HP_mapif_parse_accinfo(int fd) {
}
return;
}
-int HP_mapif_broadcast(const unsigned char *mes, int len, unsigned int fontColor, short fontType, short fontSize, short fontAlign, short fontY, int sfd) {
- int hIndex = 0;
- int retVal___ = 0;
- if (HPMHooks.count.HP_mapif_broadcast_pre > 0) {
- int (*preHookFunc) (const unsigned char **mes, int *len, unsigned int *fontColor, short *fontType, short *fontSize, short *fontAlign, short *fontY, int *sfd);
- *HPMforce_return = false;
- for (hIndex = 0; hIndex < HPMHooks.count.HP_mapif_broadcast_pre; hIndex++) {
- preHookFunc = HPMHooks.list.HP_mapif_broadcast_pre[hIndex].func;
- retVal___ = preHookFunc(&mes, &len, &fontColor, &fontType, &fontSize, &fontAlign, &fontY, &sfd);
- }
- if (*HPMforce_return) {
- *HPMforce_return = false;
- return retVal___;
- }
- }
- {
- retVal___ = HPMHooks.source.mapif.broadcast(mes, len, fontColor, fontType, fontSize, fontAlign, fontY, sfd);
- }
- if (HPMHooks.count.HP_mapif_broadcast_post > 0) {
- int (*postHookFunc) (int retVal___, const unsigned char *mes, int len, unsigned int fontColor, short fontType, short fontSize, short fontAlign, short fontY, int sfd);
- for (hIndex = 0; hIndex < HPMHooks.count.HP_mapif_broadcast_post; hIndex++) {
- postHookFunc = HPMHooks.list.HP_mapif_broadcast_post[hIndex].func;
- retVal___ = postHookFunc(retVal___, mes, len, fontColor, fontType, fontSize, fontAlign, fontY, sfd);
- }
- }
- return retVal___;
-}
-int HP_mapif_wis_message(struct WisData *wd) {
- int hIndex = 0;
- int retVal___ = 0;
- if (HPMHooks.count.HP_mapif_wis_message_pre > 0) {
- int (*preHookFunc) (struct WisData **wd);
- *HPMforce_return = false;
- for (hIndex = 0; hIndex < HPMHooks.count.HP_mapif_wis_message_pre; hIndex++) {
- preHookFunc = HPMHooks.list.HP_mapif_wis_message_pre[hIndex].func;
- retVal___ = preHookFunc(&wd);
- }
- if (*HPMforce_return) {
- *HPMforce_return = false;
- return retVal___;
- }
- }
- {
- retVal___ = HPMHooks.source.mapif.wis_message(wd);
- }
- if (HPMHooks.count.HP_mapif_wis_message_post > 0) {
- int (*postHookFunc) (int retVal___, struct WisData *wd);
- for (hIndex = 0; hIndex < HPMHooks.count.HP_mapif_wis_message_post; hIndex++) {
- postHookFunc = HPMHooks.list.HP_mapif_wis_message_post[hIndex].func;
- retVal___ = postHookFunc(retVal___, wd);
- }
- }
- return retVal___;
-}
-void HP_mapif_wis_response(int fd, const unsigned char *src, int flag) {
- int hIndex = 0;
- if (HPMHooks.count.HP_mapif_wis_response_pre > 0) {
- void (*preHookFunc) (int *fd, const unsigned char **src, int *flag);
- *HPMforce_return = false;
- for (hIndex = 0; hIndex < HPMHooks.count.HP_mapif_wis_response_pre; hIndex++) {
- preHookFunc = HPMHooks.list.HP_mapif_wis_response_pre[hIndex].func;
- preHookFunc(&fd, &src, &flag);
- }
- if (*HPMforce_return) {
- *HPMforce_return = false;
- return;
- }
- }
- {
- HPMHooks.source.mapif.wis_response(fd, src, flag);
- }
- if (HPMHooks.count.HP_mapif_wis_response_post > 0) {
- void (*postHookFunc) (int fd, const unsigned char *src, int flag);
- for (hIndex = 0; hIndex < HPMHooks.count.HP_mapif_wis_response_post; hIndex++) {
- postHookFunc = HPMHooks.list.HP_mapif_wis_response_post[hIndex].func;
- postHookFunc(fd, src, flag);
- }
- }
- return;
-}
-int HP_mapif_wis_end(struct WisData *wd, int flag) {
- int hIndex = 0;
- int retVal___ = 0;
- if (HPMHooks.count.HP_mapif_wis_end_pre > 0) {
- int (*preHookFunc) (struct WisData **wd, int *flag);
- *HPMforce_return = false;
- for (hIndex = 0; hIndex < HPMHooks.count.HP_mapif_wis_end_pre; hIndex++) {
- preHookFunc = HPMHooks.list.HP_mapif_wis_end_pre[hIndex].func;
- retVal___ = preHookFunc(&wd, &flag);
- }
- if (*HPMforce_return) {
- *HPMforce_return = false;
- return retVal___;
- }
- }
- {
- retVal___ = HPMHooks.source.mapif.wis_end(wd, flag);
- }
- if (HPMHooks.count.HP_mapif_wis_end_post > 0) {
- int (*postHookFunc) (int retVal___, struct WisData *wd, int flag);
- for (hIndex = 0; hIndex < HPMHooks.count.HP_mapif_wis_end_post; hIndex++) {
- postHookFunc = HPMHooks.list.HP_mapif_wis_end_post[hIndex].func;
- retVal___ = postHookFunc(retVal___, wd, flag);
- }
- }
- return retVal___;
-}
int HP_mapif_account_reg_reply(int fd, int account_id, int char_id, int type) {
int hIndex = 0;
int retVal___ = 0;
@@ -16608,114 +16253,6 @@ int HP_mapif_disconnectplayer(int fd, int account_id, int char_id, int reason) {
}
return retVal___;
}
-int HP_mapif_parse_broadcast(int fd) {
- int hIndex = 0;
- int retVal___ = 0;
- if (HPMHooks.count.HP_mapif_parse_broadcast_pre > 0) {
- int (*preHookFunc) (int *fd);
- *HPMforce_return = false;
- for (hIndex = 0; hIndex < HPMHooks.count.HP_mapif_parse_broadcast_pre; hIndex++) {
- preHookFunc = HPMHooks.list.HP_mapif_parse_broadcast_pre[hIndex].func;
- retVal___ = preHookFunc(&fd);
- }
- if (*HPMforce_return) {
- *HPMforce_return = false;
- return retVal___;
- }
- }
- {
- retVal___ = HPMHooks.source.mapif.parse_broadcast(fd);
- }
- if (HPMHooks.count.HP_mapif_parse_broadcast_post > 0) {
- int (*postHookFunc) (int retVal___, int fd);
- for (hIndex = 0; hIndex < HPMHooks.count.HP_mapif_parse_broadcast_post; hIndex++) {
- postHookFunc = HPMHooks.list.HP_mapif_parse_broadcast_post[hIndex].func;
- retVal___ = postHookFunc(retVal___, fd);
- }
- }
- return retVal___;
-}
-int HP_mapif_parse_WisRequest(int fd) {
- int hIndex = 0;
- int retVal___ = 0;
- if (HPMHooks.count.HP_mapif_parse_WisRequest_pre > 0) {
- int (*preHookFunc) (int *fd);
- *HPMforce_return = false;
- for (hIndex = 0; hIndex < HPMHooks.count.HP_mapif_parse_WisRequest_pre; hIndex++) {
- preHookFunc = HPMHooks.list.HP_mapif_parse_WisRequest_pre[hIndex].func;
- retVal___ = preHookFunc(&fd);
- }
- if (*HPMforce_return) {
- *HPMforce_return = false;
- return retVal___;
- }
- }
- {
- retVal___ = HPMHooks.source.mapif.parse_WisRequest(fd);
- }
- if (HPMHooks.count.HP_mapif_parse_WisRequest_post > 0) {
- int (*postHookFunc) (int retVal___, int fd);
- for (hIndex = 0; hIndex < HPMHooks.count.HP_mapif_parse_WisRequest_post; hIndex++) {
- postHookFunc = HPMHooks.list.HP_mapif_parse_WisRequest_post[hIndex].func;
- retVal___ = postHookFunc(retVal___, fd);
- }
- }
- return retVal___;
-}
-int HP_mapif_parse_WisReply(int fd) {
- int hIndex = 0;
- int retVal___ = 0;
- if (HPMHooks.count.HP_mapif_parse_WisReply_pre > 0) {
- int (*preHookFunc) (int *fd);
- *HPMforce_return = false;
- for (hIndex = 0; hIndex < HPMHooks.count.HP_mapif_parse_WisReply_pre; hIndex++) {
- preHookFunc = HPMHooks.list.HP_mapif_parse_WisReply_pre[hIndex].func;
- retVal___ = preHookFunc(&fd);
- }
- if (*HPMforce_return) {
- *HPMforce_return = false;
- return retVal___;
- }
- }
- {
- retVal___ = HPMHooks.source.mapif.parse_WisReply(fd);
- }
- if (HPMHooks.count.HP_mapif_parse_WisReply_post > 0) {
- int (*postHookFunc) (int retVal___, int fd);
- for (hIndex = 0; hIndex < HPMHooks.count.HP_mapif_parse_WisReply_post; hIndex++) {
- postHookFunc = HPMHooks.list.HP_mapif_parse_WisReply_post[hIndex].func;
- retVal___ = postHookFunc(retVal___, fd);
- }
- }
- return retVal___;
-}
-int HP_mapif_parse_WisToGM(int fd) {
- int hIndex = 0;
- int retVal___ = 0;
- if (HPMHooks.count.HP_mapif_parse_WisToGM_pre > 0) {
- int (*preHookFunc) (int *fd);
- *HPMforce_return = false;
- for (hIndex = 0; hIndex < HPMHooks.count.HP_mapif_parse_WisToGM_pre; hIndex++) {
- preHookFunc = HPMHooks.list.HP_mapif_parse_WisToGM_pre[hIndex].func;
- retVal___ = preHookFunc(&fd);
- }
- if (*HPMforce_return) {
- *HPMforce_return = false;
- return retVal___;
- }
- }
- {
- retVal___ = HPMHooks.source.mapif.parse_WisToGM(fd);
- }
- if (HPMHooks.count.HP_mapif_parse_WisToGM_post > 0) {
- int (*postHookFunc) (int retVal___, int fd);
- for (hIndex = 0; hIndex < HPMHooks.count.HP_mapif_parse_WisToGM_post; hIndex++) {
- postHookFunc = HPMHooks.list.HP_mapif_parse_WisToGM_post[hIndex].func;
- retVal___ = postHookFunc(retVal___, fd);
- }
- }
- return retVal___;
-}
int HP_mapif_parse_Registry(int fd) {
int hIndex = 0;
int retVal___ = 0;
diff --git a/src/plugins/HPMHooking/HPMHooking_map.HPMHooksCore.inc b/src/plugins/HPMHooking/HPMHooking_map.HPMHooksCore.inc
index c87729dee..1bf974d28 100644
--- a/src/plugins/HPMHooking/HPMHooking_map.HPMHooksCore.inc
+++ b/src/plugins/HPMHooking/HPMHooking_map.HPMHooksCore.inc
@@ -2574,8 +2574,6 @@ struct {
struct HPMHookPoint *HP_guild_emblem_changed_post;
struct HPMHookPoint *HP_guild_send_message_pre;
struct HPMHookPoint *HP_guild_send_message_post;
- struct HPMHookPoint *HP_guild_recv_message_pre;
- struct HPMHookPoint *HP_guild_recv_message_post;
struct HPMHookPoint *HP_guild_send_dot_remove_pre;
struct HPMHookPoint *HP_guild_send_dot_remove_post;
struct HPMHookPoint *HP_guild_skillupack_pre;
@@ -2720,6 +2718,8 @@ struct {
struct HPMHookPoint *HP_homun_mutate_post;
struct HPMHookPoint *HP_homun_gainexp_pre;
struct HPMHookPoint *HP_homun_gainexp_post;
+ struct HPMHookPoint *HP_homun_gainexp_real_pre;
+ struct HPMHookPoint *HP_homun_gainexp_real_post;
struct HPMHookPoint *HP_homun_add_intimacy_pre;
struct HPMHookPoint *HP_homun_add_intimacy_post;
struct HPMHookPoint *HP_homun_consume_intimacy_pre;
@@ -2818,16 +2818,6 @@ struct {
struct HPMHookPoint *HP_intif_parse_post;
struct HPMHookPoint *HP_intif_create_pet_pre;
struct HPMHookPoint *HP_intif_create_pet_post;
- struct HPMHookPoint *HP_intif_broadcast_pre;
- struct HPMHookPoint *HP_intif_broadcast_post;
- struct HPMHookPoint *HP_intif_broadcast2_pre;
- struct HPMHookPoint *HP_intif_broadcast2_post;
- struct HPMHookPoint *HP_intif_main_message_pre;
- struct HPMHookPoint *HP_intif_main_message_post;
- struct HPMHookPoint *HP_intif_wis_message_pre;
- struct HPMHookPoint *HP_intif_wis_message_post;
- struct HPMHookPoint *HP_intif_wis_message_to_gm_pre;
- struct HPMHookPoint *HP_intif_wis_message_to_gm_post;
struct HPMHookPoint *HP_intif_saveregistry_pre;
struct HPMHookPoint *HP_intif_saveregistry_post;
struct HPMHookPoint *HP_intif_request_registry_pre;
@@ -2854,8 +2844,6 @@ struct {
struct HPMHookPoint *HP_intif_party_changemap_post;
struct HPMHookPoint *HP_intif_break_party_pre;
struct HPMHookPoint *HP_intif_break_party_post;
- struct HPMHookPoint *HP_intif_party_message_pre;
- struct HPMHookPoint *HP_intif_party_message_post;
struct HPMHookPoint *HP_intif_party_leaderchange_pre;
struct HPMHookPoint *HP_intif_party_leaderchange_post;
struct HPMHookPoint *HP_intif_guild_create_pre;
@@ -2870,8 +2858,6 @@ struct {
struct HPMHookPoint *HP_intif_guild_memberinfoshort_post;
struct HPMHookPoint *HP_intif_guild_break_pre;
struct HPMHookPoint *HP_intif_guild_break_post;
- struct HPMHookPoint *HP_intif_guild_message_pre;
- struct HPMHookPoint *HP_intif_guild_message_post;
struct HPMHookPoint *HP_intif_guild_change_gm_pre;
struct HPMHookPoint *HP_intif_guild_change_gm_post;
struct HPMHookPoint *HP_intif_guild_change_basicinfo_pre;
@@ -2978,14 +2964,6 @@ struct {
struct HPMHookPoint *HP_intif_achievements_request_post;
struct HPMHookPoint *HP_intif_achievements_save_pre;
struct HPMHookPoint *HP_intif_achievements_save_post;
- struct HPMHookPoint *HP_intif_pWisMessage_pre;
- struct HPMHookPoint *HP_intif_pWisMessage_post;
- struct HPMHookPoint *HP_intif_pWisEnd_pre;
- struct HPMHookPoint *HP_intif_pWisEnd_post;
- struct HPMHookPoint *HP_intif_pWisToGM_sub_pre;
- struct HPMHookPoint *HP_intif_pWisToGM_sub_post;
- struct HPMHookPoint *HP_intif_pWisToGM_pre;
- struct HPMHookPoint *HP_intif_pWisToGM_post;
struct HPMHookPoint *HP_intif_pRegisters_pre;
struct HPMHookPoint *HP_intif_pRegisters_post;
struct HPMHookPoint *HP_intif_pAccountStorage_pre;
@@ -3014,8 +2992,6 @@ struct {
struct HPMHookPoint *HP_intif_pPartyMove_post;
struct HPMHookPoint *HP_intif_pPartyBroken_pre;
struct HPMHookPoint *HP_intif_pPartyBroken_post;
- struct HPMHookPoint *HP_intif_pPartyMessage_pre;
- struct HPMHookPoint *HP_intif_pPartyMessage_post;
struct HPMHookPoint *HP_intif_pGuildCreated_pre;
struct HPMHookPoint *HP_intif_pGuildCreated_post;
struct HPMHookPoint *HP_intif_pGuildInfo_pre;
@@ -3028,8 +3004,6 @@ struct {
struct HPMHookPoint *HP_intif_pGuildMemberInfoShort_post;
struct HPMHookPoint *HP_intif_pGuildBroken_pre;
struct HPMHookPoint *HP_intif_pGuildBroken_post;
- struct HPMHookPoint *HP_intif_pGuildMessage_pre;
- struct HPMHookPoint *HP_intif_pGuildMessage_post;
struct HPMHookPoint *HP_intif_pGuildBasicInfoChanged_pre;
struct HPMHookPoint *HP_intif_pGuildBasicInfoChanged_post;
struct HPMHookPoint *HP_intif_pGuildMemberInfoChanged_pre;
@@ -4440,8 +4414,6 @@ struct {
struct HPMHookPoint *HP_party_send_logout_post;
struct HPMHookPoint *HP_party_send_message_pre;
struct HPMHookPoint *HP_party_send_message_post;
- struct HPMHookPoint *HP_party_recv_message_pre;
- struct HPMHookPoint *HP_party_recv_message_post;
struct HPMHookPoint *HP_party_skill_check_pre;
struct HPMHookPoint *HP_party_skill_check_post;
struct HPMHookPoint *HP_party_send_xy_clear_pre;
@@ -4986,8 +4958,14 @@ struct {
struct HPMHookPoint *HP_pc_update_idle_time_post;
struct HPMHookPoint *HP_pc_have_magnifier_pre;
struct HPMHookPoint *HP_pc_have_magnifier_post;
+ struct HPMHookPoint *HP_pc_have_item_chain_pre;
+ struct HPMHookPoint *HP_pc_have_item_chain_post;
struct HPMHookPoint *HP_pc_process_chat_message_pre;
struct HPMHookPoint *HP_pc_process_chat_message_post;
+ struct HPMHookPoint *HP_pc_wis_message_to_gm_pre;
+ struct HPMHookPoint *HP_pc_wis_message_to_gm_post;
+ struct HPMHookPoint *HP_pc_wis_message_to_gm_sub_pre;
+ struct HPMHookPoint *HP_pc_wis_message_to_gm_sub_post;
struct HPMHookPoint *HP_pc_check_supernovice_call_pre;
struct HPMHookPoint *HP_pc_check_supernovice_call_post;
struct HPMHookPoint *HP_pc_check_basicskill_pre;
@@ -6482,8 +6460,14 @@ struct {
struct HPMHookPoint *HP_status_readdb_job2_post;
struct HPMHookPoint *HP_status_readdb_sizefix_pre;
struct HPMHookPoint *HP_status_readdb_sizefix_post;
- struct HPMHookPoint *HP_status_readdb_scconfig_pre;
- struct HPMHookPoint *HP_status_readdb_scconfig_post;
+ struct HPMHookPoint *HP_status_read_scdb_libconfig_pre;
+ struct HPMHookPoint *HP_status_read_scdb_libconfig_post;
+ struct HPMHookPoint *HP_status_read_scdb_libconfig_sub_pre;
+ struct HPMHookPoint *HP_status_read_scdb_libconfig_sub_post;
+ struct HPMHookPoint *HP_status_read_scdb_libconfig_sub_flag_pre;
+ struct HPMHookPoint *HP_status_read_scdb_libconfig_sub_flag_post;
+ struct HPMHookPoint *HP_status_read_scdb_libconfig_sub_flag_additional_pre;
+ struct HPMHookPoint *HP_status_read_scdb_libconfig_sub_flag_additional_post;
struct HPMHookPoint *HP_status_read_job_db_pre;
struct HPMHookPoint *HP_status_read_job_db_post;
struct HPMHookPoint *HP_status_read_job_db_sub_pre;
@@ -9371,8 +9355,6 @@ struct {
int HP_guild_emblem_changed_post;
int HP_guild_send_message_pre;
int HP_guild_send_message_post;
- int HP_guild_recv_message_pre;
- int HP_guild_recv_message_post;
int HP_guild_send_dot_remove_pre;
int HP_guild_send_dot_remove_post;
int HP_guild_skillupack_pre;
@@ -9517,6 +9499,8 @@ struct {
int HP_homun_mutate_post;
int HP_homun_gainexp_pre;
int HP_homun_gainexp_post;
+ int HP_homun_gainexp_real_pre;
+ int HP_homun_gainexp_real_post;
int HP_homun_add_intimacy_pre;
int HP_homun_add_intimacy_post;
int HP_homun_consume_intimacy_pre;
@@ -9615,16 +9599,6 @@ struct {
int HP_intif_parse_post;
int HP_intif_create_pet_pre;
int HP_intif_create_pet_post;
- int HP_intif_broadcast_pre;
- int HP_intif_broadcast_post;
- int HP_intif_broadcast2_pre;
- int HP_intif_broadcast2_post;
- int HP_intif_main_message_pre;
- int HP_intif_main_message_post;
- int HP_intif_wis_message_pre;
- int HP_intif_wis_message_post;
- int HP_intif_wis_message_to_gm_pre;
- int HP_intif_wis_message_to_gm_post;
int HP_intif_saveregistry_pre;
int HP_intif_saveregistry_post;
int HP_intif_request_registry_pre;
@@ -9651,8 +9625,6 @@ struct {
int HP_intif_party_changemap_post;
int HP_intif_break_party_pre;
int HP_intif_break_party_post;
- int HP_intif_party_message_pre;
- int HP_intif_party_message_post;
int HP_intif_party_leaderchange_pre;
int HP_intif_party_leaderchange_post;
int HP_intif_guild_create_pre;
@@ -9667,8 +9639,6 @@ struct {
int HP_intif_guild_memberinfoshort_post;
int HP_intif_guild_break_pre;
int HP_intif_guild_break_post;
- int HP_intif_guild_message_pre;
- int HP_intif_guild_message_post;
int HP_intif_guild_change_gm_pre;
int HP_intif_guild_change_gm_post;
int HP_intif_guild_change_basicinfo_pre;
@@ -9775,14 +9745,6 @@ struct {
int HP_intif_achievements_request_post;
int HP_intif_achievements_save_pre;
int HP_intif_achievements_save_post;
- int HP_intif_pWisMessage_pre;
- int HP_intif_pWisMessage_post;
- int HP_intif_pWisEnd_pre;
- int HP_intif_pWisEnd_post;
- int HP_intif_pWisToGM_sub_pre;
- int HP_intif_pWisToGM_sub_post;
- int HP_intif_pWisToGM_pre;
- int HP_intif_pWisToGM_post;
int HP_intif_pRegisters_pre;
int HP_intif_pRegisters_post;
int HP_intif_pAccountStorage_pre;
@@ -9811,8 +9773,6 @@ struct {
int HP_intif_pPartyMove_post;
int HP_intif_pPartyBroken_pre;
int HP_intif_pPartyBroken_post;
- int HP_intif_pPartyMessage_pre;
- int HP_intif_pPartyMessage_post;
int HP_intif_pGuildCreated_pre;
int HP_intif_pGuildCreated_post;
int HP_intif_pGuildInfo_pre;
@@ -9825,8 +9785,6 @@ struct {
int HP_intif_pGuildMemberInfoShort_post;
int HP_intif_pGuildBroken_pre;
int HP_intif_pGuildBroken_post;
- int HP_intif_pGuildMessage_pre;
- int HP_intif_pGuildMessage_post;
int HP_intif_pGuildBasicInfoChanged_pre;
int HP_intif_pGuildBasicInfoChanged_post;
int HP_intif_pGuildMemberInfoChanged_pre;
@@ -11237,8 +11195,6 @@ struct {
int HP_party_send_logout_post;
int HP_party_send_message_pre;
int HP_party_send_message_post;
- int HP_party_recv_message_pre;
- int HP_party_recv_message_post;
int HP_party_skill_check_pre;
int HP_party_skill_check_post;
int HP_party_send_xy_clear_pre;
@@ -11783,8 +11739,14 @@ struct {
int HP_pc_update_idle_time_post;
int HP_pc_have_magnifier_pre;
int HP_pc_have_magnifier_post;
+ int HP_pc_have_item_chain_pre;
+ int HP_pc_have_item_chain_post;
int HP_pc_process_chat_message_pre;
int HP_pc_process_chat_message_post;
+ int HP_pc_wis_message_to_gm_pre;
+ int HP_pc_wis_message_to_gm_post;
+ int HP_pc_wis_message_to_gm_sub_pre;
+ int HP_pc_wis_message_to_gm_sub_post;
int HP_pc_check_supernovice_call_pre;
int HP_pc_check_supernovice_call_post;
int HP_pc_check_basicskill_pre;
@@ -13279,8 +13241,14 @@ struct {
int HP_status_readdb_job2_post;
int HP_status_readdb_sizefix_pre;
int HP_status_readdb_sizefix_post;
- int HP_status_readdb_scconfig_pre;
- int HP_status_readdb_scconfig_post;
+ int HP_status_read_scdb_libconfig_pre;
+ int HP_status_read_scdb_libconfig_post;
+ int HP_status_read_scdb_libconfig_sub_pre;
+ int HP_status_read_scdb_libconfig_sub_post;
+ int HP_status_read_scdb_libconfig_sub_flag_pre;
+ int HP_status_read_scdb_libconfig_sub_flag_post;
+ int HP_status_read_scdb_libconfig_sub_flag_additional_pre;
+ int HP_status_read_scdb_libconfig_sub_flag_additional_post;
int HP_status_read_job_db_pre;
int HP_status_read_job_db_post;
int HP_status_read_job_db_sub_pre;
diff --git a/src/plugins/HPMHooking/HPMHooking_map.HookingPoints.inc b/src/plugins/HPMHooking/HPMHooking_map.HookingPoints.inc
index 656cc7737..290c27961 100644
--- a/src/plugins/HPMHooking/HPMHooking_map.HookingPoints.inc
+++ b/src/plugins/HPMHooking/HPMHooking_map.HookingPoints.inc
@@ -1320,7 +1320,6 @@ struct HookingPointData HookingPoints[] = {
{ HP_POP(guild->change_emblem, HP_guild_change_emblem) },
{ HP_POP(guild->emblem_changed, HP_guild_emblem_changed) },
{ HP_POP(guild->send_message, HP_guild_send_message) },
- { HP_POP(guild->recv_message, HP_guild_recv_message) },
{ HP_POP(guild->send_dot_remove, HP_guild_send_dot_remove) },
{ HP_POP(guild->skillupack, HP_guild_skillupack) },
{ HP_POP(guild->dobreak, HP_guild_dobreak) },
@@ -1395,6 +1394,7 @@ struct HookingPointData HookingPoints[] = {
{ HP_POP(homun->evolve, HP_homun_evolve) },
{ HP_POP(homun->mutate, HP_homun_mutate) },
{ HP_POP(homun->gainexp, HP_homun_gainexp) },
+ { HP_POP(homun->gainexp_real, HP_homun_gainexp_real) },
{ HP_POP(homun->add_intimacy, HP_homun_add_intimacy) },
{ HP_POP(homun->consume_intimacy, HP_homun_consume_intimacy) },
{ HP_POP(homun->healed, HP_homun_healed) },
@@ -1446,11 +1446,6 @@ struct HookingPointData HookingPoints[] = {
/* intif_interface */
{ HP_POP(intif->parse, HP_intif_parse) },
{ HP_POP(intif->create_pet, HP_intif_create_pet) },
- { HP_POP(intif->broadcast, HP_intif_broadcast) },
- { HP_POP(intif->broadcast2, HP_intif_broadcast2) },
- { HP_POP(intif->main_message, HP_intif_main_message) },
- { HP_POP(intif->wis_message, HP_intif_wis_message) },
- { HP_POP(intif->wis_message_to_gm, HP_intif_wis_message_to_gm) },
{ HP_POP(intif->saveregistry, HP_intif_saveregistry) },
{ HP_POP(intif->request_registry, HP_intif_request_registry) },
{ HP_POP(intif->request_account_storage, HP_intif_request_account_storage) },
@@ -1464,7 +1459,6 @@ struct HookingPointData HookingPoints[] = {
{ HP_POP(intif->party_leave, HP_intif_party_leave) },
{ HP_POP(intif->party_changemap, HP_intif_party_changemap) },
{ HP_POP(intif->break_party, HP_intif_break_party) },
- { HP_POP(intif->party_message, HP_intif_party_message) },
{ HP_POP(intif->party_leaderchange, HP_intif_party_leaderchange) },
{ HP_POP(intif->guild_create, HP_intif_guild_create) },
{ HP_POP(intif->guild_request_info, HP_intif_guild_request_info) },
@@ -1472,7 +1466,6 @@ struct HookingPointData HookingPoints[] = {
{ HP_POP(intif->guild_leave, HP_intif_guild_leave) },
{ HP_POP(intif->guild_memberinfoshort, HP_intif_guild_memberinfoshort) },
{ HP_POP(intif->guild_break, HP_intif_guild_break) },
- { HP_POP(intif->guild_message, HP_intif_guild_message) },
{ HP_POP(intif->guild_change_gm, HP_intif_guild_change_gm) },
{ HP_POP(intif->guild_change_basicinfo, HP_intif_guild_change_basicinfo) },
{ HP_POP(intif->guild_change_memberinfo, HP_intif_guild_change_memberinfo) },
@@ -1526,10 +1519,6 @@ struct HookingPointData HookingPoints[] = {
{ HP_POP(intif->CheckForCharServer, HP_intif_CheckForCharServer) },
{ HP_POP(intif->achievements_request, HP_intif_achievements_request) },
{ HP_POP(intif->achievements_save, HP_intif_achievements_save) },
- { HP_POP(intif->pWisMessage, HP_intif_pWisMessage) },
- { HP_POP(intif->pWisEnd, HP_intif_pWisEnd) },
- { HP_POP(intif->pWisToGM_sub, HP_intif_pWisToGM_sub) },
- { HP_POP(intif->pWisToGM, HP_intif_pWisToGM) },
{ HP_POP(intif->pRegisters, HP_intif_pRegisters) },
{ HP_POP(intif->pAccountStorage, HP_intif_pAccountStorage) },
{ HP_POP(intif->pChangeNameOk, HP_intif_pChangeNameOk) },
@@ -1544,14 +1533,12 @@ struct HookingPointData HookingPoints[] = {
{ HP_POP(intif->pPartyMemberWithdraw, HP_intif_pPartyMemberWithdraw) },
{ HP_POP(intif->pPartyMove, HP_intif_pPartyMove) },
{ HP_POP(intif->pPartyBroken, HP_intif_pPartyBroken) },
- { HP_POP(intif->pPartyMessage, HP_intif_pPartyMessage) },
{ HP_POP(intif->pGuildCreated, HP_intif_pGuildCreated) },
{ HP_POP(intif->pGuildInfo, HP_intif_pGuildInfo) },
{ HP_POP(intif->pGuildMemberAdded, HP_intif_pGuildMemberAdded) },
{ HP_POP(intif->pGuildMemberWithdraw, HP_intif_pGuildMemberWithdraw) },
{ HP_POP(intif->pGuildMemberInfoShort, HP_intif_pGuildMemberInfoShort) },
{ HP_POP(intif->pGuildBroken, HP_intif_pGuildBroken) },
- { HP_POP(intif->pGuildMessage, HP_intif_pGuildMessage) },
{ HP_POP(intif->pGuildBasicInfoChanged, HP_intif_pGuildBasicInfoChanged) },
{ HP_POP(intif->pGuildMemberInfoChanged, HP_intif_pGuildMemberInfoChanged) },
{ HP_POP(intif->pGuildPosition, HP_intif_pGuildPosition) },
@@ -2275,7 +2262,6 @@ struct HookingPointData HookingPoints[] = {
{ HP_POP(party->send_levelup, HP_party_send_levelup) },
{ HP_POP(party->send_logout, HP_party_send_logout) },
{ HP_POP(party->send_message, HP_party_send_message) },
- { HP_POP(party->recv_message, HP_party_recv_message) },
{ HP_POP(party->skill_check, HP_party_skill_check) },
{ HP_POP(party->send_xy_clear, HP_party_send_xy_clear) },
{ HP_POP(party->exp_share, HP_party_exp_share) },
@@ -2551,7 +2537,10 @@ struct HookingPointData HookingPoints[] = {
{ HP_POP(pc->check_job_name, HP_pc_check_job_name) },
{ HP_POP(pc->update_idle_time, HP_pc_update_idle_time) },
{ HP_POP(pc->have_magnifier, HP_pc_have_magnifier) },
+ { HP_POP(pc->have_item_chain, HP_pc_have_item_chain) },
{ HP_POP(pc->process_chat_message, HP_pc_process_chat_message) },
+ { HP_POP(pc->wis_message_to_gm, HP_pc_wis_message_to_gm) },
+ { HP_POP(pc->wis_message_to_gm_sub, HP_pc_wis_message_to_gm_sub) },
{ HP_POP(pc->check_supernovice_call, HP_pc_check_supernovice_call) },
{ HP_POP(pc->check_basicskill, HP_pc_check_basicskill) },
{ HP_POP(pc->isDeathPenaltyJob, HP_pc_isDeathPenaltyJob) },
@@ -3313,7 +3302,10 @@ struct HookingPointData HookingPoints[] = {
{ HP_POP(status->natural_heal_timer, HP_status_natural_heal_timer) },
{ HP_POP(status->readdb_job2, HP_status_readdb_job2) },
{ HP_POP(status->readdb_sizefix, HP_status_readdb_sizefix) },
- { HP_POP(status->readdb_scconfig, HP_status_readdb_scconfig) },
+ { HP_POP(status->read_scdb_libconfig, HP_status_read_scdb_libconfig) },
+ { HP_POP(status->read_scdb_libconfig_sub, HP_status_read_scdb_libconfig_sub) },
+ { HP_POP(status->read_scdb_libconfig_sub_flag, HP_status_read_scdb_libconfig_sub_flag) },
+ { HP_POP(status->read_scdb_libconfig_sub_flag_additional, HP_status_read_scdb_libconfig_sub_flag_additional) },
{ HP_POP(status->read_job_db, HP_status_read_job_db) },
{ HP_POP(status->read_job_db_sub, HP_status_read_job_db_sub) },
{ HP_POP(status->set_sc, HP_status_set_sc) },
diff --git a/src/plugins/HPMHooking/HPMHooking_map.Hooks.inc b/src/plugins/HPMHooking/HPMHooking_map.Hooks.inc
index 1ccb60e85..325d7407d 100644
--- a/src/plugins/HPMHooking/HPMHooking_map.Hooks.inc
+++ b/src/plugins/HPMHooking/HPMHooking_map.Hooks.inc
@@ -11278,11 +11278,11 @@ void HP_clif_viewpoint(struct map_session_data *sd, int npc_id, int type, int x,
}
return;
}
-int HP_clif_damage(struct block_list *src, struct block_list *dst, int sdelay, int ddelay, int64 damage, short div, unsigned char type, int64 damage2) {
+int HP_clif_damage(struct block_list *src, struct block_list *dst, int sdelay, int ddelay, int64 damage, short div, enum battle_dmg_type type, int64 damage2) {
int hIndex = 0;
int retVal___ = 0;
if (HPMHooks.count.HP_clif_damage_pre > 0) {
- int (*preHookFunc) (struct block_list **src, struct block_list **dst, int *sdelay, int *ddelay, int64 *damage, short *div, unsigned char *type, int64 *damage2);
+ int (*preHookFunc) (struct block_list **src, struct block_list **dst, int *sdelay, int *ddelay, int64 *damage, short *div, enum battle_dmg_type *type, int64 *damage2);
*HPMforce_return = false;
for (hIndex = 0; hIndex < HPMHooks.count.HP_clif_damage_pre; hIndex++) {
preHookFunc = HPMHooks.list.HP_clif_damage_pre[hIndex].func;
@@ -11297,7 +11297,7 @@ int HP_clif_damage(struct block_list *src, struct block_list *dst, int sdelay, i
retVal___ = HPMHooks.source.clif.damage(src, dst, sdelay, ddelay, damage, div, type, damage2);
}
if (HPMHooks.count.HP_clif_damage_post > 0) {
- int (*postHookFunc) (int retVal___, struct block_list *src, struct block_list *dst, int sdelay, int ddelay, int64 damage, short div, unsigned char type, int64 damage2);
+ int (*postHookFunc) (int retVal___, struct block_list *src, struct block_list *dst, int sdelay, int ddelay, int64 damage, short div, enum battle_dmg_type type, int64 damage2);
for (hIndex = 0; hIndex < HPMHooks.count.HP_clif_damage_post; hIndex++) {
postHookFunc = HPMHooks.list.HP_clif_damage_post[hIndex].func;
retVal___ = postHookFunc(retVal___, src, dst, sdelay, ddelay, damage, div, type, damage2);
@@ -14532,11 +14532,11 @@ void HP_clif_callpartner(struct map_session_data *sd) {
}
return;
}
-int HP_clif_skill_damage(struct block_list *src, struct block_list *dst, int64 tick, int sdelay, int ddelay, int64 damage, int div, uint16 skill_id, uint16 skill_lv, int type) {
+int HP_clif_skill_damage(struct block_list *src, struct block_list *dst, int64 tick, int sdelay, int ddelay, int64 damage, int div, uint16 skill_id, uint16 skill_lv, enum battle_dmg_type type) {
int hIndex = 0;
int retVal___ = 0;
if (HPMHooks.count.HP_clif_skill_damage_pre > 0) {
- int (*preHookFunc) (struct block_list **src, struct block_list **dst, int64 *tick, int *sdelay, int *ddelay, int64 *damage, int *div, uint16 *skill_id, uint16 *skill_lv, int *type);
+ int (*preHookFunc) (struct block_list **src, struct block_list **dst, int64 *tick, int *sdelay, int *ddelay, int64 *damage, int *div, uint16 *skill_id, uint16 *skill_lv, enum battle_dmg_type *type);
*HPMforce_return = false;
for (hIndex = 0; hIndex < HPMHooks.count.HP_clif_skill_damage_pre; hIndex++) {
preHookFunc = HPMHooks.list.HP_clif_skill_damage_pre[hIndex].func;
@@ -14551,7 +14551,7 @@ int HP_clif_skill_damage(struct block_list *src, struct block_list *dst, int64 t
retVal___ = HPMHooks.source.clif.skill_damage(src, dst, tick, sdelay, ddelay, damage, div, skill_id, skill_lv, type);
}
if (HPMHooks.count.HP_clif_skill_damage_post > 0) {
- int (*postHookFunc) (int retVal___, struct block_list *src, struct block_list *dst, int64 tick, int sdelay, int ddelay, int64 damage, int div, uint16 skill_id, uint16 skill_lv, int type);
+ int (*postHookFunc) (int retVal___, struct block_list *src, struct block_list *dst, int64 tick, int sdelay, int ddelay, int64 damage, int div, uint16 skill_id, uint16 skill_lv, enum battle_dmg_type type);
for (hIndex = 0; hIndex < HPMHooks.count.HP_clif_skill_damage_post; hIndex++) {
postHookFunc = HPMHooks.list.HP_clif_skill_damage_post[hIndex].func;
retVal___ = postHookFunc(retVal___, src, dst, tick, sdelay, ddelay, damage, div, skill_id, skill_lv, type);
@@ -21332,11 +21332,11 @@ void HP_clif_notify_bounditem(struct map_session_data *sd, unsigned short index)
}
return;
}
-int HP_clif_delay_damage(int64 tick, struct block_list *src, struct block_list *dst, int sdelay, int ddelay, int64 in_damage, short div, unsigned char type) {
+int HP_clif_delay_damage(int64 tick, struct block_list *src, struct block_list *dst, int sdelay, int ddelay, int64 in_damage, short div, enum battle_dmg_type type) {
int hIndex = 0;
int retVal___ = 0;
if (HPMHooks.count.HP_clif_delay_damage_pre > 0) {
- int (*preHookFunc) (int64 *tick, struct block_list **src, struct block_list **dst, int *sdelay, int *ddelay, int64 *in_damage, short *div, unsigned char *type);
+ int (*preHookFunc) (int64 *tick, struct block_list **src, struct block_list **dst, int *sdelay, int *ddelay, int64 *in_damage, short *div, enum battle_dmg_type *type);
*HPMforce_return = false;
for (hIndex = 0; hIndex < HPMHooks.count.HP_clif_delay_damage_pre; hIndex++) {
preHookFunc = HPMHooks.list.HP_clif_delay_damage_pre[hIndex].func;
@@ -21351,7 +21351,7 @@ int HP_clif_delay_damage(int64 tick, struct block_list *src, struct block_list *
retVal___ = HPMHooks.source.clif.delay_damage(tick, src, dst, sdelay, ddelay, in_damage, div, type);
}
if (HPMHooks.count.HP_clif_delay_damage_post > 0) {
- int (*postHookFunc) (int retVal___, int64 tick, struct block_list *src, struct block_list *dst, int sdelay, int ddelay, int64 in_damage, short div, unsigned char type);
+ int (*postHookFunc) (int retVal___, int64 tick, struct block_list *src, struct block_list *dst, int sdelay, int ddelay, int64 in_damage, short div, enum battle_dmg_type type);
for (hIndex = 0; hIndex < HPMHooks.count.HP_clif_delay_damage_post; hIndex++) {
postHookFunc = HPMHooks.list.HP_clif_delay_damage_post[hIndex].func;
retVal___ = postHookFunc(retVal___, tick, src, dst, sdelay, ddelay, in_damage, div, type);
@@ -33667,33 +33667,6 @@ int HP_guild_send_message(struct map_session_data *sd, const char *mes) {
}
return retVal___;
}
-int HP_guild_recv_message(int guild_id, int account_id, const char *mes, int len) {
- int hIndex = 0;
- int retVal___ = 0;
- if (HPMHooks.count.HP_guild_recv_message_pre > 0) {
- int (*preHookFunc) (int *guild_id, int *account_id, const char **mes, int *len);
- *HPMforce_return = false;
- for (hIndex = 0; hIndex < HPMHooks.count.HP_guild_recv_message_pre; hIndex++) {
- preHookFunc = HPMHooks.list.HP_guild_recv_message_pre[hIndex].func;
- retVal___ = preHookFunc(&guild_id, &account_id, &mes, &len);
- }
- if (*HPMforce_return) {
- *HPMforce_return = false;
- return retVal___;
- }
- }
- {
- retVal___ = HPMHooks.source.guild.recv_message(guild_id, account_id, mes, len);
- }
- if (HPMHooks.count.HP_guild_recv_message_post > 0) {
- int (*postHookFunc) (int retVal___, int guild_id, int account_id, const char *mes, int len);
- for (hIndex = 0; hIndex < HPMHooks.count.HP_guild_recv_message_post; hIndex++) {
- postHookFunc = HPMHooks.list.HP_guild_recv_message_post[hIndex].func;
- retVal___ = postHookFunc(retVal___, guild_id, account_id, mes, len);
- }
- }
- return retVal___;
-}
int HP_guild_send_dot_remove(struct map_session_data *sd) {
int hIndex = 0;
int retVal___ = 0;
@@ -35679,6 +35652,33 @@ int HP_homun_gainexp(struct homun_data *hd, unsigned int exp) {
}
return retVal___;
}
+int HP_homun_gainexp_real(struct homun_data *hd, unsigned int exp) {
+ int hIndex = 0;
+ int retVal___ = 0;
+ if (HPMHooks.count.HP_homun_gainexp_real_pre > 0) {
+ int (*preHookFunc) (struct homun_data **hd, unsigned int *exp);
+ *HPMforce_return = false;
+ for (hIndex = 0; hIndex < HPMHooks.count.HP_homun_gainexp_real_pre; hIndex++) {
+ preHookFunc = HPMHooks.list.HP_homun_gainexp_real_pre[hIndex].func;
+ retVal___ = preHookFunc(&hd, &exp);
+ }
+ if (*HPMforce_return) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.homun.gainexp_real(hd, exp);
+ }
+ if (HPMHooks.count.HP_homun_gainexp_real_post > 0) {
+ int (*postHookFunc) (int retVal___, struct homun_data *hd, unsigned int exp);
+ for (hIndex = 0; hIndex < HPMHooks.count.HP_homun_gainexp_real_post; hIndex++) {
+ postHookFunc = HPMHooks.list.HP_homun_gainexp_real_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, hd, exp);
+ }
+ }
+ return retVal___;
+}
unsigned int HP_homun_add_intimacy(struct homun_data *hd, unsigned int value) {
int hIndex = 0;
unsigned int retVal___ = 0;
@@ -36995,141 +36995,6 @@ int HP_intif_create_pet(int account_id, int char_id, int pet_type, int pet_lv, i
}
return retVal___;
}
-int HP_intif_broadcast(const char *mes, int len, int type) {
- int hIndex = 0;
- int retVal___ = 0;
- if (HPMHooks.count.HP_intif_broadcast_pre > 0) {
- int (*preHookFunc) (const char **mes, int *len, int *type);
- *HPMforce_return = false;
- for (hIndex = 0; hIndex < HPMHooks.count.HP_intif_broadcast_pre; hIndex++) {
- preHookFunc = HPMHooks.list.HP_intif_broadcast_pre[hIndex].func;
- retVal___ = preHookFunc(&mes, &len, &type);
- }
- if (*HPMforce_return) {
- *HPMforce_return = false;
- return retVal___;
- }
- }
- {
- retVal___ = HPMHooks.source.intif.broadcast(mes, len, type);
- }
- if (HPMHooks.count.HP_intif_broadcast_post > 0) {
- int (*postHookFunc) (int retVal___, const char *mes, int len, int type);
- for (hIndex = 0; hIndex < HPMHooks.count.HP_intif_broadcast_post; hIndex++) {
- postHookFunc = HPMHooks.list.HP_intif_broadcast_post[hIndex].func;
- retVal___ = postHookFunc(retVal___, mes, len, type);
- }
- }
- return retVal___;
-}
-int HP_intif_broadcast2(const char *mes, int len, unsigned int fontColor, short fontType, short fontSize, short fontAlign, short fontY) {
- int hIndex = 0;
- int retVal___ = 0;
- if (HPMHooks.count.HP_intif_broadcast2_pre > 0) {
- int (*preHookFunc) (const char **mes, int *len, unsigned int *fontColor, short *fontType, short *fontSize, short *fontAlign, short *fontY);
- *HPMforce_return = false;
- for (hIndex = 0; hIndex < HPMHooks.count.HP_intif_broadcast2_pre; hIndex++) {
- preHookFunc = HPMHooks.list.HP_intif_broadcast2_pre[hIndex].func;
- retVal___ = preHookFunc(&mes, &len, &fontColor, &fontType, &fontSize, &fontAlign, &fontY);
- }
- if (*HPMforce_return) {
- *HPMforce_return = false;
- return retVal___;
- }
- }
- {
- retVal___ = HPMHooks.source.intif.broadcast2(mes, len, fontColor, fontType, fontSize, fontAlign, fontY);
- }
- if (HPMHooks.count.HP_intif_broadcast2_post > 0) {
- int (*postHookFunc) (int retVal___, const char *mes, int len, unsigned int fontColor, short fontType, short fontSize, short fontAlign, short fontY);
- for (hIndex = 0; hIndex < HPMHooks.count.HP_intif_broadcast2_post; hIndex++) {
- postHookFunc = HPMHooks.list.HP_intif_broadcast2_post[hIndex].func;
- retVal___ = postHookFunc(retVal___, mes, len, fontColor, fontType, fontSize, fontAlign, fontY);
- }
- }
- return retVal___;
-}
-int HP_intif_main_message(struct map_session_data *sd, const char *message) {
- int hIndex = 0;
- int retVal___ = 0;
- if (HPMHooks.count.HP_intif_main_message_pre > 0) {
- int (*preHookFunc) (struct map_session_data **sd, const char **message);
- *HPMforce_return = false;
- for (hIndex = 0; hIndex < HPMHooks.count.HP_intif_main_message_pre; hIndex++) {
- preHookFunc = HPMHooks.list.HP_intif_main_message_pre[hIndex].func;
- retVal___ = preHookFunc(&sd, &message);
- }
- if (*HPMforce_return) {
- *HPMforce_return = false;
- return retVal___;
- }
- }
- {
- retVal___ = HPMHooks.source.intif.main_message(sd, message);
- }
- if (HPMHooks.count.HP_intif_main_message_post > 0) {
- int (*postHookFunc) (int retVal___, struct map_session_data *sd, const char *message);
- for (hIndex = 0; hIndex < HPMHooks.count.HP_intif_main_message_post; hIndex++) {
- postHookFunc = HPMHooks.list.HP_intif_main_message_post[hIndex].func;
- retVal___ = postHookFunc(retVal___, sd, message);
- }
- }
- return retVal___;
-}
-int HP_intif_wis_message(struct map_session_data *sd, const char *nick, const char *mes, int mes_len) {
- int hIndex = 0;
- int retVal___ = 0;
- if (HPMHooks.count.HP_intif_wis_message_pre > 0) {
- int (*preHookFunc) (struct map_session_data **sd, const char **nick, const char **mes, int *mes_len);
- *HPMforce_return = false;
- for (hIndex = 0; hIndex < HPMHooks.count.HP_intif_wis_message_pre; hIndex++) {
- preHookFunc = HPMHooks.list.HP_intif_wis_message_pre[hIndex].func;
- retVal___ = preHookFunc(&sd, &nick, &mes, &mes_len);
- }
- if (*HPMforce_return) {
- *HPMforce_return = false;
- return retVal___;
- }
- }
- {
- retVal___ = HPMHooks.source.intif.wis_message(sd, nick, mes, mes_len);
- }
- if (HPMHooks.count.HP_intif_wis_message_post > 0) {
- int (*postHookFunc) (int retVal___, struct map_session_data *sd, const char *nick, const char *mes, int mes_len);
- for (hIndex = 0; hIndex < HPMHooks.count.HP_intif_wis_message_post; hIndex++) {
- postHookFunc = HPMHooks.list.HP_intif_wis_message_post[hIndex].func;
- retVal___ = postHookFunc(retVal___, sd, nick, mes, mes_len);
- }
- }
- return retVal___;
-}
-int HP_intif_wis_message_to_gm(char *Wisp_name, int permission, char *mes) {
- int hIndex = 0;
- int retVal___ = 0;
- if (HPMHooks.count.HP_intif_wis_message_to_gm_pre > 0) {
- int (*preHookFunc) (char **Wisp_name, int *permission, char **mes);
- *HPMforce_return = false;
- for (hIndex = 0; hIndex < HPMHooks.count.HP_intif_wis_message_to_gm_pre; hIndex++) {
- preHookFunc = HPMHooks.list.HP_intif_wis_message_to_gm_pre[hIndex].func;
- retVal___ = preHookFunc(&Wisp_name, &permission, &mes);
- }
- if (*HPMforce_return) {
- *HPMforce_return = false;
- return retVal___;
- }
- }
- {
- retVal___ = HPMHooks.source.intif.wis_message_to_gm(Wisp_name, permission, mes);
- }
- if (HPMHooks.count.HP_intif_wis_message_to_gm_post > 0) {
- int (*postHookFunc) (int retVal___, char *Wisp_name, int permission, char *mes);
- for (hIndex = 0; hIndex < HPMHooks.count.HP_intif_wis_message_to_gm_post; hIndex++) {
- postHookFunc = HPMHooks.list.HP_intif_wis_message_to_gm_post[hIndex].func;
- retVal___ = postHookFunc(retVal___, Wisp_name, permission, mes);
- }
- }
- return retVal___;
-}
int HP_intif_saveregistry(struct map_session_data *sd) {
int hIndex = 0;
int retVal___ = 0;
@@ -37479,33 +37344,6 @@ int HP_intif_break_party(int party_id) {
}
return retVal___;
}
-int HP_intif_party_message(int party_id, int account_id, const char *mes, int len) {
- int hIndex = 0;
- int retVal___ = 0;
- if (HPMHooks.count.HP_intif_party_message_pre > 0) {
- int (*preHookFunc) (int *party_id, int *account_id, const char **mes, int *len);
- *HPMforce_return = false;
- for (hIndex = 0; hIndex < HPMHooks.count.HP_intif_party_message_pre; hIndex++) {
- preHookFunc = HPMHooks.list.HP_intif_party_message_pre[hIndex].func;
- retVal___ = preHookFunc(&party_id, &account_id, &mes, &len);
- }
- if (*HPMforce_return) {
- *HPMforce_return = false;
- return retVal___;
- }
- }
- {
- retVal___ = HPMHooks.source.intif.party_message(party_id, account_id, mes, len);
- }
- if (HPMHooks.count.HP_intif_party_message_post > 0) {
- int (*postHookFunc) (int retVal___, int party_id, int account_id, const char *mes, int len);
- for (hIndex = 0; hIndex < HPMHooks.count.HP_intif_party_message_post; hIndex++) {
- postHookFunc = HPMHooks.list.HP_intif_party_message_post[hIndex].func;
- retVal___ = postHookFunc(retVal___, party_id, account_id, mes, len);
- }
- }
- return retVal___;
-}
int HP_intif_party_leaderchange(int party_id, int account_id, int char_id) {
int hIndex = 0;
int retVal___ = 0;
@@ -37695,33 +37533,6 @@ int HP_intif_guild_break(int guild_id) {
}
return retVal___;
}
-int HP_intif_guild_message(int guild_id, int account_id, const char *mes, int len) {
- int hIndex = 0;
- int retVal___ = 0;
- if (HPMHooks.count.HP_intif_guild_message_pre > 0) {
- int (*preHookFunc) (int *guild_id, int *account_id, const char **mes, int *len);
- *HPMforce_return = false;
- for (hIndex = 0; hIndex < HPMHooks.count.HP_intif_guild_message_pre; hIndex++) {
- preHookFunc = HPMHooks.list.HP_intif_guild_message_pre[hIndex].func;
- retVal___ = preHookFunc(&guild_id, &account_id, &mes, &len);
- }
- if (*HPMforce_return) {
- *HPMforce_return = false;
- return retVal___;
- }
- }
- {
- retVal___ = HPMHooks.source.intif.guild_message(guild_id, account_id, mes, len);
- }
- if (HPMHooks.count.HP_intif_guild_message_post > 0) {
- int (*postHookFunc) (int retVal___, int guild_id, int account_id, const char *mes, int len);
- for (hIndex = 0; hIndex < HPMHooks.count.HP_intif_guild_message_post; hIndex++) {
- postHookFunc = HPMHooks.list.HP_intif_guild_message_post[hIndex].func;
- retVal___ = postHookFunc(retVal___, guild_id, account_id, mes, len);
- }
- }
- return retVal___;
-}
int HP_intif_guild_change_gm(int guild_id, const char *name, int len) {
int hIndex = 0;
int retVal___ = 0;
@@ -39146,117 +38957,6 @@ void HP_intif_achievements_save(struct map_session_data *sd) {
}
return;
}
-void HP_intif_pWisMessage(int fd) {
- int hIndex = 0;
- if (HPMHooks.count.HP_intif_pWisMessage_pre > 0) {
- void (*preHookFunc) (int *fd);
- *HPMforce_return = false;
- for (hIndex = 0; hIndex < HPMHooks.count.HP_intif_pWisMessage_pre; hIndex++) {
- preHookFunc = HPMHooks.list.HP_intif_pWisMessage_pre[hIndex].func;
- preHookFunc(&fd);
- }
- if (*HPMforce_return) {
- *HPMforce_return = false;
- return;
- }
- }
- {
- HPMHooks.source.intif.pWisMessage(fd);
- }
- if (HPMHooks.count.HP_intif_pWisMessage_post > 0) {
- void (*postHookFunc) (int fd);
- for (hIndex = 0; hIndex < HPMHooks.count.HP_intif_pWisMessage_post; hIndex++) {
- postHookFunc = HPMHooks.list.HP_intif_pWisMessage_post[hIndex].func;
- postHookFunc(fd);
- }
- }
- return;
-}
-void HP_intif_pWisEnd(int fd) {
- int hIndex = 0;
- if (HPMHooks.count.HP_intif_pWisEnd_pre > 0) {
- void (*preHookFunc) (int *fd);
- *HPMforce_return = false;
- for (hIndex = 0; hIndex < HPMHooks.count.HP_intif_pWisEnd_pre; hIndex++) {
- preHookFunc = HPMHooks.list.HP_intif_pWisEnd_pre[hIndex].func;
- preHookFunc(&fd);
- }
- if (*HPMforce_return) {
- *HPMforce_return = false;
- return;
- }
- }
- {
- HPMHooks.source.intif.pWisEnd(fd);
- }
- if (HPMHooks.count.HP_intif_pWisEnd_post > 0) {
- void (*postHookFunc) (int fd);
- for (hIndex = 0; hIndex < HPMHooks.count.HP_intif_pWisEnd_post; hIndex++) {
- postHookFunc = HPMHooks.list.HP_intif_pWisEnd_post[hIndex].func;
- postHookFunc(fd);
- }
- }
- return;
-}
-int HP_intif_pWisToGM_sub(struct map_session_data *sd, va_list va) {
- int hIndex = 0;
- int retVal___ = 0;
- if (HPMHooks.count.HP_intif_pWisToGM_sub_pre > 0) {
- int (*preHookFunc) (struct map_session_data **sd, va_list va);
- *HPMforce_return = false;
- for (hIndex = 0; hIndex < HPMHooks.count.HP_intif_pWisToGM_sub_pre; hIndex++) {
- va_list va___copy; va_copy(va___copy, va);
- preHookFunc = HPMHooks.list.HP_intif_pWisToGM_sub_pre[hIndex].func;
- retVal___ = preHookFunc(&sd, va___copy);
- va_end(va___copy);
- }
- if (*HPMforce_return) {
- *HPMforce_return = false;
- return retVal___;
- }
- }
- {
- va_list va___copy; va_copy(va___copy, va);
- retVal___ = HPMHooks.source.intif.pWisToGM_sub(sd, va___copy);
- va_end(va___copy);
- }
- if (HPMHooks.count.HP_intif_pWisToGM_sub_post > 0) {
- int (*postHookFunc) (int retVal___, struct map_session_data *sd, va_list va);
- for (hIndex = 0; hIndex < HPMHooks.count.HP_intif_pWisToGM_sub_post; hIndex++) {
- va_list va___copy; va_copy(va___copy, va);
- postHookFunc = HPMHooks.list.HP_intif_pWisToGM_sub_post[hIndex].func;
- retVal___ = postHookFunc(retVal___, sd, va___copy);
- va_end(va___copy);
- }
- }
- return retVal___;
-}
-void HP_intif_pWisToGM(int fd) {
- int hIndex = 0;
- if (HPMHooks.count.HP_intif_pWisToGM_pre > 0) {
- void (*preHookFunc) (int *fd);
- *HPMforce_return = false;
- for (hIndex = 0; hIndex < HPMHooks.count.HP_intif_pWisToGM_pre; hIndex++) {
- preHookFunc = HPMHooks.list.HP_intif_pWisToGM_pre[hIndex].func;
- preHookFunc(&fd);
- }
- if (*HPMforce_return) {
- *HPMforce_return = false;
- return;
- }
- }
- {
- HPMHooks.source.intif.pWisToGM(fd);
- }
- if (HPMHooks.count.HP_intif_pWisToGM_post > 0) {
- void (*postHookFunc) (int fd);
- for (hIndex = 0; hIndex < HPMHooks.count.HP_intif_pWisToGM_post; hIndex++) {
- postHookFunc = HPMHooks.list.HP_intif_pWisToGM_post[hIndex].func;
- postHookFunc(fd);
- }
- }
- return;
-}
void HP_intif_pRegisters(int fd) {
int hIndex = 0;
if (HPMHooks.count.HP_intif_pRegisters_pre > 0) {
@@ -39621,32 +39321,6 @@ void HP_intif_pPartyBroken(int fd) {
}
return;
}
-void HP_intif_pPartyMessage(int fd) {
- int hIndex = 0;
- if (HPMHooks.count.HP_intif_pPartyMessage_pre > 0) {
- void (*preHookFunc) (int *fd);
- *HPMforce_return = false;
- for (hIndex = 0; hIndex < HPMHooks.count.HP_intif_pPartyMessage_pre; hIndex++) {
- preHookFunc = HPMHooks.list.HP_intif_pPartyMessage_pre[hIndex].func;
- preHookFunc(&fd);
- }
- if (*HPMforce_return) {
- *HPMforce_return = false;
- return;
- }
- }
- {
- HPMHooks.source.intif.pPartyMessage(fd);
- }
- if (HPMHooks.count.HP_intif_pPartyMessage_post > 0) {
- void (*postHookFunc) (int fd);
- for (hIndex = 0; hIndex < HPMHooks.count.HP_intif_pPartyMessage_post; hIndex++) {
- postHookFunc = HPMHooks.list.HP_intif_pPartyMessage_post[hIndex].func;
- postHookFunc(fd);
- }
- }
- return;
-}
void HP_intif_pGuildCreated(int fd) {
int hIndex = 0;
if (HPMHooks.count.HP_intif_pGuildCreated_pre > 0) {
@@ -39803,32 +39477,6 @@ void HP_intif_pGuildBroken(int fd) {
}
return;
}
-void HP_intif_pGuildMessage(int fd) {
- int hIndex = 0;
- if (HPMHooks.count.HP_intif_pGuildMessage_pre > 0) {
- void (*preHookFunc) (int *fd);
- *HPMforce_return = false;
- for (hIndex = 0; hIndex < HPMHooks.count.HP_intif_pGuildMessage_pre; hIndex++) {
- preHookFunc = HPMHooks.list.HP_intif_pGuildMessage_pre[hIndex].func;
- preHookFunc(&fd);
- }
- if (*HPMforce_return) {
- *HPMforce_return = false;
- return;
- }
- }
- {
- HPMHooks.source.intif.pGuildMessage(fd);
- }
- if (HPMHooks.count.HP_intif_pGuildMessage_post > 0) {
- void (*postHookFunc) (int fd);
- for (hIndex = 0; hIndex < HPMHooks.count.HP_intif_pGuildMessage_post; hIndex++) {
- postHookFunc = HPMHooks.list.HP_intif_pGuildMessage_post[hIndex].func;
- postHookFunc(fd);
- }
- }
- return;
-}
void HP_intif_pGuildBasicInfoChanged(int fd) {
int hIndex = 0;
if (HPMHooks.count.HP_intif_pGuildBasicInfoChanged_pre > 0) {
@@ -58998,33 +58646,6 @@ int HP_party_send_message(struct map_session_data *sd, const char *mes) {
}
return retVal___;
}
-int HP_party_recv_message(int party_id, int account_id, const char *mes, int len) {
- int hIndex = 0;
- int retVal___ = 0;
- if (HPMHooks.count.HP_party_recv_message_pre > 0) {
- int (*preHookFunc) (int *party_id, int *account_id, const char **mes, int *len);
- *HPMforce_return = false;
- for (hIndex = 0; hIndex < HPMHooks.count.HP_party_recv_message_pre; hIndex++) {
- preHookFunc = HPMHooks.list.HP_party_recv_message_pre[hIndex].func;
- retVal___ = preHookFunc(&party_id, &account_id, &mes, &len);
- }
- if (*HPMforce_return) {
- *HPMforce_return = false;
- return retVal___;
- }
- }
- {
- retVal___ = HPMHooks.source.party.recv_message(party_id, account_id, mes, len);
- }
- if (HPMHooks.count.HP_party_recv_message_post > 0) {
- int (*postHookFunc) (int retVal___, int party_id, int account_id, const char *mes, int len);
- for (hIndex = 0; hIndex < HPMHooks.count.HP_party_recv_message_post; hIndex++) {
- postHookFunc = HPMHooks.list.HP_party_recv_message_post[hIndex].func;
- retVal___ = postHookFunc(retVal___, party_id, account_id, mes, len);
- }
- }
- return retVal___;
-}
int HP_party_skill_check(struct map_session_data *sd, int party_id, uint16 skill_id, uint16 skill_lv) {
int hIndex = 0;
int retVal___ = 0;
@@ -61519,11 +61140,11 @@ int HP_pc_updateweightstatus(struct map_session_data *sd) {
}
return retVal___;
}
-int HP_pc_addautobonus(struct s_autobonus *bonus, char max, const char *bonus_script, short rate, unsigned int dur, short atk_type, const char *o_script, unsigned short pos, bool onskill) {
+int HP_pc_addautobonus(struct s_autobonus *bonus, char max, const char *bonus_script, short rate, unsigned int dur, short atk_type, const char *o_script, unsigned int pos, bool onskill) {
int hIndex = 0;
int retVal___ = 0;
if (HPMHooks.count.HP_pc_addautobonus_pre > 0) {
- int (*preHookFunc) (struct s_autobonus **bonus, char *max, const char **bonus_script, short *rate, unsigned int *dur, short *atk_type, const char **o_script, unsigned short *pos, bool *onskill);
+ int (*preHookFunc) (struct s_autobonus **bonus, char *max, const char **bonus_script, short *rate, unsigned int *dur, short *atk_type, const char **o_script, unsigned int *pos, bool *onskill);
*HPMforce_return = false;
for (hIndex = 0; hIndex < HPMHooks.count.HP_pc_addautobonus_pre; hIndex++) {
preHookFunc = HPMHooks.list.HP_pc_addautobonus_pre[hIndex].func;
@@ -61538,7 +61159,7 @@ int HP_pc_addautobonus(struct s_autobonus *bonus, char max, const char *bonus_sc
retVal___ = HPMHooks.source.pc.addautobonus(bonus, max, bonus_script, rate, dur, atk_type, o_script, pos, onskill);
}
if (HPMHooks.count.HP_pc_addautobonus_post > 0) {
- int (*postHookFunc) (int retVal___, struct s_autobonus *bonus, char max, const char *bonus_script, short rate, unsigned int dur, short atk_type, const char *o_script, unsigned short pos, bool onskill);
+ int (*postHookFunc) (int retVal___, struct s_autobonus *bonus, char max, const char *bonus_script, short rate, unsigned int dur, short atk_type, const char *o_script, unsigned int pos, bool onskill);
for (hIndex = 0; hIndex < HPMHooks.count.HP_pc_addautobonus_post; hIndex++) {
postHookFunc = HPMHooks.list.HP_pc_addautobonus_post[hIndex].func;
retVal___ = postHookFunc(retVal___, bonus, max, bonus_script, rate, dur, atk_type, o_script, pos, onskill);
@@ -66363,6 +65984,33 @@ int HP_pc_have_magnifier(struct map_session_data *sd) {
}
return retVal___;
}
+int HP_pc_have_item_chain(struct map_session_data *sd, unsigned short chain_id) {
+ int hIndex = 0;
+ int retVal___ = 0;
+ if (HPMHooks.count.HP_pc_have_item_chain_pre > 0) {
+ int (*preHookFunc) (struct map_session_data **sd, unsigned short *chain_id);
+ *HPMforce_return = false;
+ for (hIndex = 0; hIndex < HPMHooks.count.HP_pc_have_item_chain_pre; hIndex++) {
+ preHookFunc = HPMHooks.list.HP_pc_have_item_chain_pre[hIndex].func;
+ retVal___ = preHookFunc(&sd, &chain_id);
+ }
+ if (*HPMforce_return) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.pc.have_item_chain(sd, chain_id);
+ }
+ if (HPMHooks.count.HP_pc_have_item_chain_post > 0) {
+ int (*postHookFunc) (int retVal___, struct map_session_data *sd, unsigned short chain_id);
+ for (hIndex = 0; hIndex < HPMHooks.count.HP_pc_have_item_chain_post; hIndex++) {
+ postHookFunc = HPMHooks.list.HP_pc_have_item_chain_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, sd, chain_id);
+ }
+ }
+ return retVal___;
+}
bool HP_pc_process_chat_message(struct map_session_data *sd, const char *message) {
int hIndex = 0;
bool retVal___ = false;
@@ -66390,6 +66038,66 @@ bool HP_pc_process_chat_message(struct map_session_data *sd, const char *message
}
return retVal___;
}
+int HP_pc_wis_message_to_gm(const char *sender_name, int permission, const char *message) {
+ int hIndex = 0;
+ int retVal___ = 0;
+ if (HPMHooks.count.HP_pc_wis_message_to_gm_pre > 0) {
+ int (*preHookFunc) (const char **sender_name, int *permission, const char **message);
+ *HPMforce_return = false;
+ for (hIndex = 0; hIndex < HPMHooks.count.HP_pc_wis_message_to_gm_pre; hIndex++) {
+ preHookFunc = HPMHooks.list.HP_pc_wis_message_to_gm_pre[hIndex].func;
+ retVal___ = preHookFunc(&sender_name, &permission, &message);
+ }
+ if (*HPMforce_return) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.pc.wis_message_to_gm(sender_name, permission, message);
+ }
+ if (HPMHooks.count.HP_pc_wis_message_to_gm_post > 0) {
+ int (*postHookFunc) (int retVal___, const char *sender_name, int permission, const char *message);
+ for (hIndex = 0; hIndex < HPMHooks.count.HP_pc_wis_message_to_gm_post; hIndex++) {
+ postHookFunc = HPMHooks.list.HP_pc_wis_message_to_gm_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, sender_name, permission, message);
+ }
+ }
+ return retVal___;
+}
+int HP_pc_wis_message_to_gm_sub(struct map_session_data *sd, va_list va) {
+ int hIndex = 0;
+ int retVal___ = 0;
+ if (HPMHooks.count.HP_pc_wis_message_to_gm_sub_pre > 0) {
+ int (*preHookFunc) (struct map_session_data **sd, va_list va);
+ *HPMforce_return = false;
+ for (hIndex = 0; hIndex < HPMHooks.count.HP_pc_wis_message_to_gm_sub_pre; hIndex++) {
+ va_list va___copy; va_copy(va___copy, va);
+ preHookFunc = HPMHooks.list.HP_pc_wis_message_to_gm_sub_pre[hIndex].func;
+ retVal___ = preHookFunc(&sd, va___copy);
+ va_end(va___copy);
+ }
+ if (*HPMforce_return) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ va_list va___copy; va_copy(va___copy, va);
+ retVal___ = HPMHooks.source.pc.wis_message_to_gm_sub(sd, va___copy);
+ va_end(va___copy);
+ }
+ if (HPMHooks.count.HP_pc_wis_message_to_gm_sub_post > 0) {
+ int (*postHookFunc) (int retVal___, struct map_session_data *sd, va_list va);
+ for (hIndex = 0; hIndex < HPMHooks.count.HP_pc_wis_message_to_gm_sub_post; hIndex++) {
+ va_list va___copy; va_copy(va___copy, va);
+ postHookFunc = HPMHooks.list.HP_pc_wis_message_to_gm_sub_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, sd, va___copy);
+ va_end(va___copy);
+ }
+ }
+ return retVal___;
+}
void HP_pc_check_supernovice_call(struct map_session_data *sd, const char *message) {
int hIndex = 0;
if (HPMHooks.count.HP_pc_check_supernovice_call_pre > 0) {
@@ -86732,15 +86440,15 @@ bool HP_status_readdb_sizefix(char *fields[], int columns, int current) {
}
return retVal___;
}
-bool HP_status_readdb_scconfig(char *fields[], int columns, int current) {
+bool HP_status_read_scdb_libconfig(void) {
int hIndex = 0;
bool retVal___ = false;
- if (HPMHooks.count.HP_status_readdb_scconfig_pre > 0) {
- bool (*preHookFunc) (char **fields[], int *columns, int *current);
+ if (HPMHooks.count.HP_status_read_scdb_libconfig_pre > 0) {
+ bool (*preHookFunc) (void);
*HPMforce_return = false;
- for (hIndex = 0; hIndex < HPMHooks.count.HP_status_readdb_scconfig_pre; hIndex++) {
- preHookFunc = HPMHooks.list.HP_status_readdb_scconfig_pre[hIndex].func;
- retVal___ = preHookFunc(&fields, &columns, &current);
+ for (hIndex = 0; hIndex < HPMHooks.count.HP_status_read_scdb_libconfig_pre; hIndex++) {
+ preHookFunc = HPMHooks.list.HP_status_read_scdb_libconfig_pre[hIndex].func;
+ retVal___ = preHookFunc();
}
if (*HPMforce_return) {
*HPMforce_return = false;
@@ -86748,13 +86456,94 @@ bool HP_status_readdb_scconfig(char *fields[], int columns, int current) {
}
}
{
- retVal___ = HPMHooks.source.status.readdb_scconfig(fields, columns, current);
+ retVal___ = HPMHooks.source.status.read_scdb_libconfig();
}
- if (HPMHooks.count.HP_status_readdb_scconfig_post > 0) {
- bool (*postHookFunc) (bool retVal___, char *fields[], int columns, int current);
- for (hIndex = 0; hIndex < HPMHooks.count.HP_status_readdb_scconfig_post; hIndex++) {
- postHookFunc = HPMHooks.list.HP_status_readdb_scconfig_post[hIndex].func;
- retVal___ = postHookFunc(retVal___, fields, columns, current);
+ if (HPMHooks.count.HP_status_read_scdb_libconfig_post > 0) {
+ bool (*postHookFunc) (bool retVal___);
+ for (hIndex = 0; hIndex < HPMHooks.count.HP_status_read_scdb_libconfig_post; hIndex++) {
+ postHookFunc = HPMHooks.list.HP_status_read_scdb_libconfig_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___);
+ }
+ }
+ return retVal___;
+}
+bool HP_status_read_scdb_libconfig_sub(struct config_setting_t *it, int idx, const char *source) {
+ int hIndex = 0;
+ bool retVal___ = false;
+ if (HPMHooks.count.HP_status_read_scdb_libconfig_sub_pre > 0) {
+ bool (*preHookFunc) (struct config_setting_t **it, int *idx, const char **source);
+ *HPMforce_return = false;
+ for (hIndex = 0; hIndex < HPMHooks.count.HP_status_read_scdb_libconfig_sub_pre; hIndex++) {
+ preHookFunc = HPMHooks.list.HP_status_read_scdb_libconfig_sub_pre[hIndex].func;
+ retVal___ = preHookFunc(&it, &idx, &source);
+ }
+ if (*HPMforce_return) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.status.read_scdb_libconfig_sub(it, idx, source);
+ }
+ if (HPMHooks.count.HP_status_read_scdb_libconfig_sub_post > 0) {
+ bool (*postHookFunc) (bool retVal___, struct config_setting_t *it, int idx, const char *source);
+ for (hIndex = 0; hIndex < HPMHooks.count.HP_status_read_scdb_libconfig_sub_post; hIndex++) {
+ postHookFunc = HPMHooks.list.HP_status_read_scdb_libconfig_sub_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, it, idx, source);
+ }
+ }
+ return retVal___;
+}
+bool HP_status_read_scdb_libconfig_sub_flag(struct config_setting_t *it, int type, const char *source) {
+ int hIndex = 0;
+ bool retVal___ = false;
+ if (HPMHooks.count.HP_status_read_scdb_libconfig_sub_flag_pre > 0) {
+ bool (*preHookFunc) (struct config_setting_t **it, int *type, const char **source);
+ *HPMforce_return = false;
+ for (hIndex = 0; hIndex < HPMHooks.count.HP_status_read_scdb_libconfig_sub_flag_pre; hIndex++) {
+ preHookFunc = HPMHooks.list.HP_status_read_scdb_libconfig_sub_flag_pre[hIndex].func;
+ retVal___ = preHookFunc(&it, &type, &source);
+ }
+ if (*HPMforce_return) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.status.read_scdb_libconfig_sub_flag(it, type, source);
+ }
+ if (HPMHooks.count.HP_status_read_scdb_libconfig_sub_flag_post > 0) {
+ bool (*postHookFunc) (bool retVal___, struct config_setting_t *it, int type, const char *source);
+ for (hIndex = 0; hIndex < HPMHooks.count.HP_status_read_scdb_libconfig_sub_flag_post; hIndex++) {
+ postHookFunc = HPMHooks.list.HP_status_read_scdb_libconfig_sub_flag_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, it, type, source);
+ }
+ }
+ return retVal___;
+}
+bool HP_status_read_scdb_libconfig_sub_flag_additional(struct config_setting_t *it, int type, const char *source) {
+ int hIndex = 0;
+ bool retVal___ = false;
+ if (HPMHooks.count.HP_status_read_scdb_libconfig_sub_flag_additional_pre > 0) {
+ bool (*preHookFunc) (struct config_setting_t **it, int *type, const char **source);
+ *HPMforce_return = false;
+ for (hIndex = 0; hIndex < HPMHooks.count.HP_status_read_scdb_libconfig_sub_flag_additional_pre; hIndex++) {
+ preHookFunc = HPMHooks.list.HP_status_read_scdb_libconfig_sub_flag_additional_pre[hIndex].func;
+ retVal___ = preHookFunc(&it, &type, &source);
+ }
+ if (*HPMforce_return) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.status.read_scdb_libconfig_sub_flag_additional(it, type, source);
+ }
+ if (HPMHooks.count.HP_status_read_scdb_libconfig_sub_flag_additional_post > 0) {
+ bool (*postHookFunc) (bool retVal___, struct config_setting_t *it, int type, const char *source);
+ for (hIndex = 0; hIndex < HPMHooks.count.HP_status_read_scdb_libconfig_sub_flag_additional_post; hIndex++) {
+ postHookFunc = HPMHooks.list.HP_status_read_scdb_libconfig_sub_flag_additional_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, it, type, source);
}
}
return retVal___;