Jump to content

  •  

Bug Tracker Migration

June 3rd
Good news everyone! The staff has decided that it is time to slowly kill off this Bug Tracker. We will begin the process of slowly migrating from this Bug Tracker over to our Github Issues which can be found here: https://github.com/HerculesWS/Hercules/issues

Over the next couple of days, I will be closing off any opportunity to create new reports. However, I still will keep the opportunity to reply to existing Bug Reports. Doing this will allow us to slowly fix any bug reports we have listed here so that we can easily migrate over to our Issue Tracker.

Update - June 7th 2015: Creating new bug posts has been disabled. Please use our https://github.com/HerculesWS/Hercules/issues tracker to post bugs. Users are still able to reply to existing bug posts.

- Administration

Issue Information

Issue Confirmations

  • Yes (0)No (0)
Photo

flag npc with guild id above 64k won't show emblem

Posted by Hercules Bot on 28 September 2009 - 12:36 PM

Originally posted by theultramage
http://www.eathena.w...er&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

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