GUILDBANKFRAME_CLOSED вызывается клиентом только если игрок не использует банк, если игрок использует банк, то вызывается EVENT_GUILDBANKBAGSLOTS_CHANGED
Код:
Packet_SMSG_GUILD_BANK_LIST
...
v8 = qword_C1DC10 == 0;
dword_C13598[2129 * v40] = 0;
if ( v8 )
{
if ( !qword_C1DC18 )
{
FrameScript::SignalEvent(EVENT_GUILDBANKFRAME_CLOSED, 0);
CGGameUI::ClearInteractTarget(0, st7_0, (int)&qword_C1DC10, 0);
qword_C1DC10 = 0i64;
qword_C1DC18 = 0i64;
return 1;
}
CGGameUI::SetInteractTarget(st7_0, (int)&qword_C1DC18);
qword_C1DC10 = qword_C1DC18;
FrameScript::SignalEvent(EVENT_GUILDBANKFRAME_OPENED, 0);
}
else
{
if ( !dword_C1DC28 )
{
FrameScript::SignalEvent(EVENT_GUILDBANKBAGSLOTS_CHANGED, 0);
return 1;
}
}
По хорошему этот пакет должен отправляться только тем, кто сейчас использует банк, а не всем членам гильдии. Это и необходимо исправить.