struct PACKET_ZC_NOTIFY_STANDENTRY { /* this+0x0 */ short PacketType /* this+0x2 */ unsigned char objecttype /* this+0x3 */ unsigned long GID /* this+0x7 */ short speed /* this+0x9 */ short bodyState /* this+0xb */ short healthState /* this+0xd */ short effectState /* this+0xf */ short job /* this+0x11 */ short head /* this+0x13 */ short weapon /* this+0x15 */ short accessory /* this+0x17 */ short shield /* this+0x19 */ short accessory2 /* this+0x1b */ short accessory3 /* this+0x1d */ short headpalette /* this+0x1f */ short bodypalette /* this+0x21 */ short headDir /* this+0x23 */ unsigned long GUID /* this+0x27 */ short GEmblemVer /* this+0x29 */ short honor /* this+0x2b */ short virtue /* this+0x2d */ bool isPKModeON /* this+0x2e */ unsigned char sex /* this+0x2f */ unsigned char[0x3] PosDir /* this+0x32 */ unsigned char xSize /* this+0x33 */ unsigned char ySize /* this+0x34 */ unsigned char state /* this+0x35 */ short clevel } --- ours p.PacketType = idle_unit2Type; p.objecttype = clif_bl_type(bl); p.GID = bl->id; p.speed = iStatus->get_speed(bl); p.bodyState = (sc) ? sc->opt1 : 0; p.healthState = (sc) ? sc->opt2 : 0; p.effectState = (sc) ? sc->option : bl->type == BL_NPC ? ((TBL_NPC*)bl)->option : 0; p.job = vd->class_; p.head = vd->hair_style; p.weapon = vd->weapon; p.accessory = vd->head_bottom; p.shield = vd->shield; p.accessory2 = vd->head_top; p.accessory3 = vd->head_mid; if( bl->type == BL_NPC && vd->class_ == FLAG_CLASS ) { //The hell, why flags work like this? p.shield = iStatus->get_emblem_id(bl); p.accessory2 = GetWord(g_id, 1); p.accessory3 = GetWord(g_id, 0); } p.headpalette = vd->hair_color; p.bodypalette = vd->cloth_color; p.headDir = (sd)? sd->head_dir : 0; p.GUID = g_id; p.GEmblemVer = iStatus->get_emblem_id(bl); p.honor = (sd) ? sd->status.manner : 0; p.virtue = (sc) ? sc->opt3 : 0; p.isPKModeON = (sd) ? sd->status.karma : 0; p.sex = vd->sex; WBUFPOS(&p.PosDir[0],0,bl->x,bl->y,unit_getdir(bl)); p.xSize = p.ySize = (sd) ? 5 : 0; p.state = vd->dead_sit; p.clevel = clif_setlevel(bl); --- ceres memset(buf,0,packet_len(0x78)); WBUFW(buf,0)=0x78; WBUFL(buf,2)=bl->id; WBUFW(buf,6)=status_get_speed(bl); if (sc) { WBUFW(buf,8)=sc->opt1; WBUFW(buf,10)=sc->opt2; WBUFW(buf,12)=sc->option; WBUFW(buf,42)=sc->opt3; } WBUFW(buf,14)=vd->class_; WBUFW(buf,16)=vd->hair_style; WBUFW(buf,18)=vd->weapon; WBUFW(buf,20)=vd->head_bottom; WBUFW(buf,22)=vd->shield; WBUFW(buf,24)=vd->head_top; WBUFW(buf,26)=vd->head_mid; WBUFW(buf,28)=vd->hair_color; WBUFW(buf,30)=vd->cloth_color; WBUFW(buf,32)=sd?sd->head_dir:0; WBUFL(buf,34)=guild_id; WBUFW(buf,38)=emblem_id; if (sd) { WBUFW(buf,40)=sd->status.manner; WBUFB(buf,44)=sd->status.karma; } WBUFB(buf,45)=vd->sex; WBUFPOS(buf,46,bl->x,bl->y,dir); WBUFB(buf,49)=5; WBUFB(buf,50)=5; WBUFB(buf,51)=vd->dead_sit; WBUFW(buf,52)=clif_setlevel(lv); return packet_len(0x78);