summaryrefslogtreecommitdiff
path: root/src/map
diff options
context:
space:
mode:
authorai4rei <ai4rei@54d463be-8e91-2dee-dedb-b68131a5f0ec>2011-01-29 10:46:01 +0000
committerai4rei <ai4rei@54d463be-8e91-2dee-dedb-b68131a5f0ec>2011-01-29 10:46:01 +0000
commit9acb21fa52f80cc6ad6a03f09f019821dce3d23c (patch)
tree488f9ed60ecc313f8d1a340b9d682227b0297a64 /src/map
parentd5590087f94f18b2a85980f504b26643eb3f62a1 (diff)
downloadhercules-9acb21fa52f80cc6ad6a03f09f019821dce3d23c.tar.gz
hercules-9acb21fa52f80cc6ad6a03f09f019821dce3d23c.tar.bz2
hercules-9acb21fa52f80cc6ad6a03f09f019821dce3d23c.tar.xz
hercules-9acb21fa52f80cc6ad6a03f09f019821dce3d23c.zip
* Fixed a map-server crash when invalid items are deleted (option 'item_check') from a logging-in character (bugreport:2604).
- This removes the pc_checkitem call from pc_authok, as the check is done in clif_parse_LoadEndAck as well, after first status calc has taken place. - Inventory list is now sent before pc_checkitem in clif_parse_LoadEndAck, so that deleted items do not show up as 'unknown item'. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@14685 54d463be-8e91-2dee-dedb-b68131a5f0ec
Diffstat (limited to 'src/map')
-rw-r--r--src/map/clif.c2
-rw-r--r--src/map/pc.c2
2 files changed, 1 insertions, 3 deletions
diff --git a/src/map/clif.c b/src/map/clif.c
index e36418706..9831ef4c2 100644
--- a/src/map/clif.c
+++ b/src/map/clif.c
@@ -8400,8 +8400,8 @@ void clif_parse_LoadEndAck(int fd,struct map_session_data *sd)
clif_refreshlook(&sd->bl,sd->bl.id,LOOK_CLOTHES_COLOR,sd->vd.cloth_color,SELF);
// item
+ clif_inventorylist(sd); // inventory list first, otherwise deleted items in pc_checkitem show up as 'unknown item'
pc_checkitem(sd);
- clif_inventorylist(sd);
// cart
if(pc_iscarton(sd)) {
diff --git a/src/map/pc.c b/src/map/pc.c
index f745c2f0a..48a085791 100644
--- a/src/map/pc.c
+++ b/src/map/pc.c
@@ -892,9 +892,7 @@ bool pc_authok(struct map_session_data *sd, int login_id2, time_t expiration_tim
if (!(battle_config.display_skill_fail&2))
sd->state.showdelay = 1;
- // アイテムチェック
pc_setinventorydata(sd);
- pc_checkitem(sd);
status_change_init(&sd->bl);
if ((battle_config.atc_gmonly == 0 || pc_isGM(sd)) && (pc_isGM(sd) >= get_atcommand_level(atcommand_hide)))