diff options
-rw-r--r-- | src/char/int_guild.c | 12 | ||||
-rw-r--r-- | src/common/mmo.h | 1 | ||||
-rw-r--r-- | src/map/clif.c | 3 |
3 files changed, 10 insertions, 6 deletions
diff --git a/src/char/int_guild.c b/src/char/int_guild.c index aabf562a2..8e05c76e2 100644 --- a/src/char/int_guild.c +++ b/src/char/int_guild.c @@ -319,8 +319,8 @@ static int inter_guild_tosql(struct guild *g, int flag) SQL->EscapeStringLen(inter->sql_handle, esc_name, e->name, strnlen(e->name, NAME_LENGTH)); SQL->EscapeStringLen(inter->sql_handle, esc_mes, e->mes, strnlen(e->mes, sizeof(e->mes))); - if( SQL_ERROR == SQL->Query(inter->sql_handle, "REPLACE INTO `%s` (`guild_id`,`account_id`,`name`,`mes`) " - "VALUES ('%d','%d','%s','%s')", guild_expulsion_db, g->guild_id, e->account_id, esc_name, esc_mes) ) + if( SQL_ERROR == SQL->Query(inter->sql_handle, "REPLACE INTO `%s` (`guild_id`,`account_id`, `char_id`, `name`,`mes`) " + "VALUES ('%d','%d','%d','%s','%s')", guild_expulsion_db, g->guild_id, e->account_id, e->char_id, esc_name, esc_mes) ) Sql_ShowDebug(inter->sql_handle); } } @@ -494,7 +494,7 @@ static struct guild *inter_guild_fromsql(int guild_id) } //printf("- Read guild_expulsion %d from sql \n",guild_id); - if( SQL_ERROR == SQL->Query(inter->sql_handle, "SELECT `account_id`,`name`,`mes` FROM `%s` WHERE `guild_id`='%d'", guild_expulsion_db, guild_id) ) + if( SQL_ERROR == SQL->Query(inter->sql_handle, "SELECT `account_id`,`char_id`,`name`,`mes` FROM `%s` WHERE `guild_id`='%d'", guild_expulsion_db, guild_id) ) { Sql_ShowDebug(inter->sql_handle); aFree(g); @@ -505,8 +505,9 @@ static struct guild *inter_guild_fromsql(int guild_id) struct guild_expulsion *e = &g->expulsion[i]; SQL->GetData(inter->sql_handle, 0, &data, NULL); e->account_id = atoi(data); - SQL->GetData(inter->sql_handle, 1, &data, &len); memcpy(e->name, data, min(len, NAME_LENGTH)); - SQL->GetData(inter->sql_handle, 2, &data, &len); memcpy(e->mes, data, min(len, sizeof(e->mes))); + SQL->GetData(inter->sql_handle, 1, &data, NULL); e->char_id = atoi(data); + SQL->GetData(inter->sql_handle, 2, &data, &len); memcpy(e->name, data, min(len, NAME_LENGTH)); + SQL->GetData(inter->sql_handle, 3, &data, &len); memcpy(e->mes, data, min(len, sizeof(e->mes))); } //printf("- Read guild_skill %d from sql \n",guild_id); @@ -1044,6 +1045,7 @@ static bool inter_guild_leave(int guild_id, int account_id, int char_id, int fla } // Save the expulsion entry g->expulsion[j].account_id = account_id; + g->expulsion[j].char_id = char_id; safestrncpy(g->expulsion[j].name, g->member[i].name, NAME_LENGTH); safestrncpy(g->expulsion[j].mes, mes, 40); } diff --git a/src/common/mmo.h b/src/common/mmo.h index a29b0f2db..aafa54008 100644 --- a/src/common/mmo.h +++ b/src/common/mmo.h @@ -856,6 +856,7 @@ struct guild_expulsion { char name[NAME_LENGTH]; char mes[40]; int account_id; + int char_id; }; struct guild_skill { diff --git a/src/map/clif.c b/src/map/clif.c index a7bcc5801..336bbb752 100644 --- a/src/map/clif.c +++ b/src/map/clif.c @@ -8405,6 +8405,7 @@ static void clif_guild_expulsion(struct map_session_data *sd, const char *name, #endif safestrncpy(&p.reason[0], mes, 40); +// version unconfirmed #if PACKETVER < 20100803 memset(&p.account_name, 0, NAME_LENGTH); // account name (not used for security reasons) #endif @@ -8437,7 +8438,7 @@ static void clif_guild_expulsionlist(struct map_session_data *sd) if (e->account_id > 0) { #if PACKETVER_MAIN_NUM >= 20161019 || PACKETVER_RE_NUM >= 20160921 || defined(PACKETVER_ZERO) - packet->chars[c].char_id = 0; // for now char_id unknown [4144] + packet->chars[c].char_id = e->char_id; // version unconfirmed #elif PACKETVER >= 20100803 memcpy(packet->chars[c].char_name, e->name, NAME_LENGTH); |