diff options
author | shennetsind <ind@henn.et> | 2013-01-28 16:53:27 -0200 |
---|---|---|
committer | shennetsind <ind@henn.et> | 2013-01-28 16:53:27 -0200 |
commit | e9d07bde3a8c742793ef466cf98322c58f86cfc5 (patch) | |
tree | 7570a3dd39a74f0e7a8047b3cda76c57fc6654b3 | |
parent | 5bc48c6e9eb26ed30016ec2c4911a84837fd73fc (diff) | |
download | hercules-e9d07bde3a8c742793ef466cf98322c58f86cfc5.tar.gz hercules-e9d07bde3a8c742793ef466cf98322c58f86cfc5.tar.bz2 hercules-e9d07bde3a8c742793ef466cf98322c58f86cfc5.tar.xz hercules-e9d07bde3a8c742793ef466cf98322c58f86cfc5.zip |
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 <ind@henn.et>
-rw-r--r-- | src/map/clif.c | 11 | ||||
-rw-r--r-- | 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)); |