summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Changelog-Trunk.txt1
-rw-r--r--src/char/char.c2
-rw-r--r--src/char_sql/char.c2
-rw-r--r--src/map/chrif.c6
-rw-r--r--src/map/script.c12
5 files changed, 9 insertions, 14 deletions
diff --git a/Changelog-Trunk.txt b/Changelog-Trunk.txt
index 6e71bd382..af0099ce6 100644
--- a/Changelog-Trunk.txt
+++ b/Changelog-Trunk.txt
@@ -4,6 +4,7 @@ AS OF SVN REV. 5091, WE ARE NOW USING TRUNK. ALL UNTESTED BUGFIXES/FEATURES GO
IF YOU HAVE A WORKING AND TESTED BUGFIX PUT IT INTO STABLE AS WELL AS TRUNK.
2008/04/19
+ * Made some cleanup in changesex [Toms]
* Fixed a bug in (init/start/stop)npctimer [Toms]
2008/04/18
* Fixed a bug when unloading a npc near a shop.
diff --git a/src/char/char.c b/src/char/char.c
index 76312ac0d..5d3975816 100644
--- a/src/char/char.c
+++ b/src/char/char.c
@@ -3000,7 +3000,7 @@ int parse_frommap(int fd)
}
// send answer if a player ask, not if the server ask
- if( acc != -1 ) {
+ if( acc != -1 && type != 5) { // Don't send answer for changesex
WFIFOHEAD(fd,34);
WFIFOW(fd, 0) = 0x2b0f;
WFIFOL(fd, 2) = acc;
diff --git a/src/char_sql/char.c b/src/char_sql/char.c
index e07bd8574..8066dc629 100644
--- a/src/char_sql/char.c
+++ b/src/char_sql/char.c
@@ -2599,7 +2599,7 @@ int parse_frommap(int fd)
Sql_FreeResult(sql_handle);
// send answer if a player ask, not if the server ask
- if( acc != -1 ) {
+ if( acc != -1 && type != 5) { // Don't send answer for changesex
WFIFOHEAD(fd,34);
WFIFOW(fd, 0) = 0x2b0f;
WFIFOL(fd, 2) = acc;
diff --git a/src/map/chrif.c b/src/map/chrif.c
index a2604dcf3..7ca140159 100644
--- a/src/map/chrif.c
+++ b/src/map/chrif.c
@@ -786,7 +786,11 @@ int chrif_changesex(struct map_session_data *sd)
WFIFOSET(char_fd,44);
clif_displaymessage(sd->fd, "Need disconnection to perform change-sex request...");
- map_quit(sd);
+
+ if (sd->fd)
+ clif_authfail_fd(sd->fd, 15);
+ else
+ map_quit(sd);
return 0;
}
diff --git a/src/map/script.c b/src/map/script.c
index 44cf4e37b..364dbc8b9 100644
--- a/src/map/script.c
+++ b/src/map/script.c
@@ -8506,17 +8506,7 @@ BUILDIN_FUNC(changesex)
TBL_PC *sd = NULL;
sd = script_rid2sd(st);
- if (sd->status.sex == 0) {
- sd->status.sex = 1;
- if ((sd->class_&MAPID_UPPERMASK) == MAPID_BARDDANCER)
- sd->status.class_ -= 1;
- } else if (sd->status.sex == 1) {
- sd->status.sex = 0;
- if ((sd->class_&MAPID_UPPERMASK) == MAPID_BARDDANCER)
- sd->status.class_ += 1;
- }
- chrif_char_ask_name(-1, sd->status.name, 5, 0, 0, 0, 0, 0, 0); // type: 5 - changesex
- chrif_save(sd,0);
+ chrif_changesex(sd);
return 0;
}