Issue information

Issue ID
#3619
Status
Unable to Fix
Severity
Low
Started
Hercules Elf Bot
Sep 28, 2009 12:36
Last Post
Hercules Elf Bot
Apr 19, 2012 9:24
Confirmation
N/A

Hercules Elf Bot - Sep 28, 2009 12:36

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

Hercules Elf Bot - Jan 4, 2012 1:44

Originally posted by [b]Ind[/b]
the client packet field for that is short, we can't magically turn it into a int unfortunately.