Originally posted by [b]theultramage[/b]
http://www.eathena.ws/board/index.php?autocom=bugtracker&showbug=3619
When a player walks in sight range of a castle flag npc, he/she will receive a 0x78 "unit standing" packet. Flag npcs implement a very strange hack, where fields otherwise belonging to headgear information are used to store the flag npc's associated guild id and emblem id. The client will then request the emblem data for this guild id.
CODE
if( bl->type == BL_NPC && vd->class_ == FLAG_CLASS )
{ //The hell, why flags work like this?
WBUFL(buf,22) = status_get_emblem_id(bl);
WBUFL(buf,26) = status_get_guild_id(bl);
}
When viewing a flag npc that holds a guild id above 64k (65535, 0xffff), the client will send an emblem request containing a truncated guild id - only the first two bytes. This causes the request to fail, the server will not reply to the request, and the client's emblem request pipeline will choke, until relog.
PS: eA fills in the standard unit "guild id" and "emblem id" fields at the end of the packet. This makes the emblem also display under/above the flag npc. On aegis, these fields are left zeroed.
This post has been edited by theultramage: Sep 28 2009, 05:44 AM