From e9d07bde3a8c742793ef466cf98322c58f86cfc5 Mon Sep 17 00:00:00 2001 From: shennetsind Date: Mon, 28 Jan 2013 16:53:27 -0200 Subject: Fixed Bug #7018 Fixed bug with garments not displaying properly. http://hercules.ws/board/tracker/issue-7018-visible-robegarment-item-disappears-after-relogging-and-moving/ Signed-off-by: shennetsind --- src/map/clif.c | 11 ++++++----- src/map/status.c | 1 + 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/src/map/clif.c b/src/map/clif.c index 961e3bf0c..2c1f904d0 100644 --- a/src/map/clif.c +++ b/src/map/clif.c @@ -1043,6 +1043,8 @@ static int clif_set_unit_idle(struct block_list* bl, unsigned char* buffer, bool } #endif #if PACKETVER >= 20110111 + if( sd ) + ShowDebug("Hi:%d v %d for %s\n",vd->robe,sd->status.robe,sd->status.name); WBUFW(buf,34) = vd->robe; offset+= 2; buf = WBUFP(buffer,offset); @@ -1347,7 +1349,8 @@ int clif_spawn(struct block_list *bl) if (vd->cloth_color) clif_refreshlook(bl,bl->id,LOOK_CLOTHES_COLOR,vd->cloth_color,AREA_WOS); - + + switch (bl->type) { case BL_PC: @@ -1374,10 +1377,8 @@ int clif_spawn(struct block_list *bl) if( sd->sc.data[SC_PUSH_CART] ) clif_status_load_notick(&sd->bl, SI_ON_PUSH_CART, 2, sd->sc.data[SC_PUSH_CART]->val1, 0, 0); #endif - #if PACKETVER <= 20120207 if (sd->status.robe) clif_refreshlook(bl,bl->id,LOOK_ROBE,sd->status.robe,AREA); - #endif } break; case BL_MOB: @@ -4096,7 +4097,6 @@ void clif_getareachar_unit(struct map_session_data* sd,struct block_list *bl) if (vd->cloth_color) clif_refreshlook(&sd->bl,bl->id,LOOK_CLOTHES_COLOR,vd->cloth_color,SELF); - switch (bl->type) { case BL_PC: @@ -4111,6 +4111,8 @@ void clif_getareachar_unit(struct map_session_data* sd,struct block_list *bl) clif_sendbgemblem_single(sd->fd,tsd); if( tsd->sc.data[SC_CAMOUFLAGE] ) clif_status_load(bl,SI_CAMOUFLAGE,1); + if ( tsd->status.robe ) + clif_refreshlook(&sd->bl,bl->id,LOOK_ROBE,tsd->status.robe,SELF); } break; case BL_MER: // Devotion Effects @@ -9122,7 +9124,6 @@ void clif_parse_LoadEndAck(int fd,struct map_session_data *sd) if(sd->vd.cloth_color) 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); diff --git a/src/map/status.c b/src/map/status.c index 8a173f611..e615d5595 100644 --- a/src/map/status.c +++ b/src/map/status.c @@ -6060,6 +6060,7 @@ void status_set_viewdata(struct block_list *bl, int class_) sd->vd.hair_style = cap_value(sd->status.hair,0,battle_config.max_hair_style); sd->vd.hair_color = cap_value(sd->status.hair_color,0,battle_config.max_hair_color); sd->vd.cloth_color = cap_value(sd->status.clothes_color,0,battle_config.max_cloth_color); + sd->vd.robe = sd->status.robe; sd->vd.sex = sd->status.sex; } else if (vd) memcpy(&sd->vd, vd, sizeof(struct view_data)); -- cgit v1.2.3-60-g2f50