summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorshennetsind <ind@henn.et>2013-01-28 16:53:27 -0200
committershennetsind <ind@henn.et>2013-01-28 16:53:27 -0200
commite9d07bde3a8c742793ef466cf98322c58f86cfc5 (patch)
tree7570a3dd39a74f0e7a8047b3cda76c57fc6654b3
parent5bc48c6e9eb26ed30016ec2c4911a84837fd73fc (diff)
downloadhercules-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.c11
-rw-r--r--src/map/status.c1
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));