From d0301ea03b9d46bc19635dcfa27becb9729e1725 Mon Sep 17 00:00:00 2001 From: rud0lp20 Date: Wed, 30 May 2012 19:10:36 +0000 Subject: Fixed bugreport:5873 sex changed shouldn't now make exploits regarding item bonuses. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@16167 54d463be-8e91-2dee-dedb-b68131a5f0ec --- src/char/char.c | 5 ----- src/map/atcommand.c | 4 ++++ src/map/script.c | 4 ++++ 3 files changed, 8 insertions(+), 5 deletions(-) diff --git a/src/char/char.c b/src/char/char.c index c6c779a00..fbfbce285 100644 --- a/src/char/char.c +++ b/src/char/char.c @@ -2078,11 +2078,6 @@ int parse_fromlogin(int fd) else if( class_[i] == JOB_KAGEROU || class_[i] == JOB_OBORO ) class_[i] = (sex ? JOB_KAGEROU : JOB_OBORO); } - // to avoid any problem with equipment and invalid sex, equipment is unequiped. - if( SQL_ERROR == Sql_Query(sql_handle, "UPDATE `%s` SET `equip` = '0' WHERE `char_id` = '%d'", inventory_db, char_id[i]) ) - Sql_ShowDebug(sql_handle); - if( SQL_ERROR == Sql_Query(sql_handle, "UPDATE `%s` SET `class`='%d', `weapon`='0', `shield`='0', `head_top`='0', `head_mid`='0', `head_bottom`='0' WHERE `char_id`='%d'", char_db, class_[i], char_id[i]) ) - Sql_ShowDebug(sql_handle); if( guild_id[i] )// If there is a guild, update the guild_member data [Skotlex] inter_guild_sex_changed(guild_id[i], acc, char_id[i], sex); diff --git a/src/map/atcommand.c b/src/map/atcommand.c index 8d88566c7..11022f490 100644 --- a/src/map/atcommand.c +++ b/src/map/atcommand.c @@ -6515,8 +6515,12 @@ ACMD_FUNC(uptime) *------------------------------------------*/ ACMD_FUNC(changesex) { + int i; nullpo_retr(-1, sd); pc_resetskill(sd,4); + // to avoid any problem with equipment and invalid sex, equipment is unequiped. + for( i=0; iequip_index[i] >= 0 ) pc_unequipitem(sd, sd->equip_index[i], 3); chrif_changesex(sd); return 0; } diff --git a/src/map/script.c b/src/map/script.c index 5b38a0daf..e7a11309c 100644 --- a/src/map/script.c +++ b/src/map/script.c @@ -9684,10 +9684,14 @@ BUILDIN_FUNC(changebase) *------------------------------------------*/ BUILDIN_FUNC(changesex) { + int i; TBL_PC *sd = NULL; sd = script_rid2sd(st); pc_resetskill(sd,4); + // to avoid any problem with equipment and invalid sex, equipment is unequiped. + for( i=0; iequip_index[i] >= 0 ) pc_unequipitem(sd, sd->equip_index[i], 3); chrif_changesex(sd); return 0; } -- cgit v1.2.3-70-g09d2