guild support for DoF and KoS clients
This commit is contained in:
parent
9b9777257f
commit
d1cee32a3e
@ -11322,7 +11322,7 @@ to zero and treated like placeholders." />
|
|||||||
<Struct Name="WS_GuildMembershipResponse" ClientVersion="1" OpcodeName="OP_GuildMembershipResponseMsg">
|
<Struct Name="WS_GuildMembershipResponse" ClientVersion="1" OpcodeName="OP_GuildMembershipResponseMsg">
|
||||||
<Data ElementName="guild_id" Type="int32" Size="1" />
|
<Data ElementName="guild_id" Type="int32" Size="1" />
|
||||||
<Data ElementName="character_id_to" Type="int32" Size="1" />
|
<Data ElementName="character_id_to" Type="int32" Size="1" />
|
||||||
<Data ElementName="num_membersx" Type="int32" Size="1" />
|
<Data ElementName="num_members" Type="int32" Size="1" />
|
||||||
<Data ElementName="member_array" Type="Array" ArraySizeVariable="num_members" >
|
<Data ElementName="member_array" Type="Array" ArraySizeVariable="num_members" >
|
||||||
<Data ElementName="character_id" Type="int32" Size="1" />
|
<Data ElementName="character_id" Type="int32" Size="1" />
|
||||||
<Data ElementName="name" Type="EQ2_16Bit_String" Size="1" />
|
<Data ElementName="name" Type="EQ2_16Bit_String" Size="1" />
|
||||||
@ -11330,14 +11330,17 @@ to zero and treated like placeholders." />
|
|||||||
<Data ElementName="adventure_level" Type="int32" Size="1" />
|
<Data ElementName="adventure_level" Type="int32" Size="1" />
|
||||||
<Data ElementName="tradeskill_class" Type="int32" Size="1" />
|
<Data ElementName="tradeskill_class" Type="int32" Size="1" />
|
||||||
<Data ElementName="tradeskill_level" Type="int32" Size="1" />
|
<Data ElementName="tradeskill_level" Type="int32" Size="1" />
|
||||||
<Data ElementName="rank" Type="int8" Size="1" />
|
<Data ElementName="rank" Type="int32" Size="1" />
|
||||||
<Data ElementName="member_flags" Type="int8" Size="1" />
|
|
||||||
<Data ElementName="guild_status" Type="int32" Size="1" />
|
<Data ElementName="guild_status" Type="int32" Size="1" />
|
||||||
<Data ElementName="recruiter_id" Type="int32" Size="1" />
|
<Data ElementName="last_login" Type="int32" Size="1" />
|
||||||
|
<Data ElementName="member_flags" Type="int32" Size="1" />
|
||||||
|
<Data ElementName="unknown3" Type="int8" Size="1" />
|
||||||
|
<Data ElementName="unknown2" Type="int8" Size="1" />
|
||||||
<Data ElementName="zone" Type="EQ2_16Bit_String" Size="1" />
|
<Data ElementName="zone" Type="EQ2_16Bit_String" Size="1" />
|
||||||
|
<Data ElementName="unknown4" Type="int8" Size="10" />
|
||||||
<Data ElementName="note" Type="EQ2_16Bit_String" Size="1" />
|
<Data ElementName="note" Type="EQ2_16Bit_String" Size="1" />
|
||||||
<Data ElementName="officer_note" Type="EQ2_16Bit_String" Size="1" />
|
<Data ElementName="officer_note" Type="EQ2_16Bit_String" Size="1" />
|
||||||
<Data ElementName="account_id" Type="int32" Size="1" />
|
<Data ElementName="unknown5_accountid" Type="int8" Size="4" />
|
||||||
</Data>
|
</Data>
|
||||||
<Data ElementName="unknown7" Type="int16" Size="1" />
|
<Data ElementName="unknown7" Type="int16" Size="1" />
|
||||||
</Struct>
|
</Struct>
|
||||||
@ -11430,35 +11433,39 @@ to zero and treated like placeholders." />
|
|||||||
<Data ElementName="name" Type="EQ2_16Bit_String" Size="1" />
|
<Data ElementName="name" Type="EQ2_16Bit_String" Size="1" />
|
||||||
<Data ElementName="adventure_class" Type="int32" Size="1" />
|
<Data ElementName="adventure_class" Type="int32" Size="1" />
|
||||||
<Data ElementName="adventure_level" Type="int32" Size="1" />
|
<Data ElementName="adventure_level" Type="int32" Size="1" />
|
||||||
<Data ElementName="rank" Type="int8" Size="1"/>
|
<Data ElementName="tradeskill_class" Type="int32" Size="1" />
|
||||||
<Data ElementName="member_flags" Type="int8" Size="1" />
|
<Data ElementName="tradeskill_level" Type="int32" Size="1" />
|
||||||
<Data ElementName="unknown2" Type="int8" Size="2" />
|
<Data ElementName="rank" Type="int32" Size="1" />
|
||||||
<Data ElementName="points" Type="float" Size="1" />
|
|
||||||
<Data ElementName="last_login" Type="int32" Size="1" />
|
|
||||||
<Data ElementName="guild_status" Type="int32" Size="1" />
|
<Data ElementName="guild_status" Type="int32" Size="1" />
|
||||||
|
<Data ElementName="last_login" Type="int32" Size="1" />
|
||||||
|
<Data ElementName="member_flagsx" Type="int32" Size="1" />
|
||||||
|
<Data ElementName="unknown3" Type="int8" Size="1" />
|
||||||
|
<Data ElementName="unknown2" Type="int8" Size="1" />
|
||||||
<Data ElementName="zone" Type="EQ2_16Bit_String" Size="1" />
|
<Data ElementName="zone" Type="EQ2_16Bit_String" Size="1" />
|
||||||
|
<Data ElementName="unknown4" Type="int8" Size="10" />
|
||||||
|
<Data ElementName="note" Type="EQ2_16Bit_String" Size="1" />
|
||||||
|
<Data ElementName="officer_note" Type="EQ2_16Bit_String" Size="1" />
|
||||||
|
<Data ElementName="unknown5_accountid" Type="int8" Size="4" />
|
||||||
</Struct>
|
</Struct>
|
||||||
<Struct Name="WS_JoinGuildNotify" ClientVersion="546" OpcodeName="OP_JoinGuildNotifyMsg">
|
<Struct Name="WS_JoinGuildNotify" ClientVersion="546" OpcodeName="OP_JoinGuildNotifyMsg">
|
||||||
<Data ElementName="guild_id" Type="int32" Size="1" />
|
<Data ElementName="guild_id" Type="int32" Size="1" />
|
||||||
<Data ElementName="character_id" Type="int32" Size="1" />
|
<Data ElementName="character_id" Type="int32" Size="1" />
|
||||||
<Data ElementName="account_id" Type="int32" Size="1" />
|
|
||||||
<Data ElementName="name" Type="EQ2_16Bit_String" Size="1" />
|
<Data ElementName="name" Type="EQ2_16Bit_String" Size="1" />
|
||||||
<Data ElementName="unknown2" Type="int8" Size="1" />
|
<Data ElementName="adventure_class" Type="int32" Size="1" />
|
||||||
<Data ElementName="unknown3" Type="int8" Size="1" />
|
<Data ElementName="adventure_level" Type="int32" Size="1" />
|
||||||
<Data ElementName="adventure_class" Type="int8" Size="1" />
|
<Data ElementName="tradeskill_class" Type="int32" Size="1" />
|
||||||
<Data ElementName="adventure_level" Type="int8" Size="1" />
|
<Data ElementName="tradeskill_level" Type="int32" Size="1" />
|
||||||
<Data ElementName="tradeskill_class" Type="int8" Size="1" />
|
<Data ElementName="rank" Type="int32" Size="1" />
|
||||||
<Data ElementName="tradeskill_level" Type="int8" Size="1" />
|
|
||||||
<Data ElementName="rank" Type="int8" Size="1"/>
|
|
||||||
<Data ElementName="member_flags" Type="int8" Size="1" />
|
|
||||||
<Data ElementName="join_date" Type="int32" Size="1" />
|
|
||||||
<Data ElementName="guild_status" Type="int32" Size="1" />
|
<Data ElementName="guild_status" Type="int32" Size="1" />
|
||||||
<Data ElementName="last_login" Type="int32" Size="1" />
|
<Data ElementName="last_login" Type="int32" Size="1" />
|
||||||
<Data ElementName="recruiter_id" Type="int32" Size="1" />
|
<Data ElementName="member_flagsx" Type="int32" Size="1" />
|
||||||
<Data ElementName="points" Type="float" Size="1" />
|
<Data ElementName="unknown3" Type="int8" Size="1" />
|
||||||
|
<Data ElementName="unknown2" Type="int8" Size="1" />
|
||||||
<Data ElementName="zone" Type="EQ2_16Bit_String" Size="1" />
|
<Data ElementName="zone" Type="EQ2_16Bit_String" Size="1" />
|
||||||
|
<Data ElementName="unknown4" Type="int8" Size="10" />
|
||||||
<Data ElementName="note" Type="EQ2_16Bit_String" Size="1" />
|
<Data ElementName="note" Type="EQ2_16Bit_String" Size="1" />
|
||||||
<Data ElementName="officer_note" Type="EQ2_16Bit_String" Size="1" />
|
<Data ElementName="officer_note" Type="EQ2_16Bit_String" Size="1" />
|
||||||
|
<Data ElementName="unknown5_accountid" Type="int8" Size="4" />
|
||||||
</Struct>
|
</Struct>
|
||||||
<Struct Name="WS_JoinGuildNotify" ClientVersion="910" OpcodeName="OP_JoinGuildNotifyMsg">
|
<Struct Name="WS_JoinGuildNotify" ClientVersion="910" OpcodeName="OP_JoinGuildNotifyMsg">
|
||||||
<Data ElementName="guild_id" Type="int32" Size="1" />
|
<Data ElementName="guild_id" Type="int32" Size="1" />
|
||||||
@ -11515,11 +11522,51 @@ to zero and treated like placeholders." />
|
|||||||
<Data ElementName="guild_name" Type="EQ2_16Bit_String" Size="1" />
|
<Data ElementName="guild_name" Type="EQ2_16Bit_String" Size="1" />
|
||||||
<Data ElementName="guild_motd" Type="EQ2_16Bit_String" Size="1" />
|
<Data ElementName="guild_motd" Type="EQ2_16Bit_String" Size="1" />
|
||||||
<Data ElementName="guild_id" Type="int32" Size="1" />
|
<Data ElementName="guild_id" Type="int32" Size="1" />
|
||||||
<Data ElementName="guild_type" Type="int8" Size="1" />
|
<Data ElementName="unknownx" Type="int8" Size="2" />
|
||||||
<Data ElementName="guild_level" Type="int32" Size="1" />
|
<Data ElementName="guild_level" Type="int32" Size="1" />
|
||||||
<Data ElementName="unknown" Type="int32" Size="1" />
|
<Data ElementName="formed_date" Type="int32" Size="1" />
|
||||||
|
<Data ElementName="unique_accounts" Type="int32" Size="1" />
|
||||||
<Data ElementName="exp_current" Type="int64" Size="1" />
|
<Data ElementName="exp_current" Type="int64" Size="1" />
|
||||||
<Data ElementName="exp_to_next_level" Type="int64" Size="1" />
|
<Data ElementName="exp_to_next_level" Type="int64" Size="1" />
|
||||||
|
<Data ElementName="event_filter_retain1" Type="int32" Size="1" />
|
||||||
|
<Data ElementName="event_filter_retain2" Type="int32" Size="1" />
|
||||||
|
<Data ElementName="event_filter_broadcast1" Type="int32" Size="1" />
|
||||||
|
<Data ElementName="event_filter_broadcast2" Type="int32" Size="1" />
|
||||||
|
<Data ElementName="event_filter_broadcast3" Type="int32" Size="1" />
|
||||||
|
<Data ElementName="recuiting_short_description" Type="EQ2_16Bit_String" />
|
||||||
|
<Data ElementName="recruiting_full_description" Type="EQ2_16Bit_String" />
|
||||||
|
<Data ElementName="rank0_name" Type="EQ2_16Bit_String" Size="1" />
|
||||||
|
<Data ElementName="rank0_permissions1" Type="int32" Size="1" />
|
||||||
|
<Data ElementName="rank0_permissions2" Type="int32" Size="1" />
|
||||||
|
<Data ElementName="rank0_permissions_unused" Type="int8" Size="48" />
|
||||||
|
<Data ElementName="rank1_name" Type="EQ2_16Bit_String" Size="1" />
|
||||||
|
<Data ElementName="rank1_permissions1" Type="int32" Size="1" />
|
||||||
|
<Data ElementName="rank1_permissions2" Type="int32" Size="1" />
|
||||||
|
<Data ElementName="rank1_permissions_unused" Type="int8" Size="48" />
|
||||||
|
<Data ElementName="rank2_name" Type="EQ2_16Bit_String" Size="1" />
|
||||||
|
<Data ElementName="rank2_permissions1" Type="int32" Size="1" />
|
||||||
|
<Data ElementName="rank2_permissions2" Type="int32" Size="1" />
|
||||||
|
<Data ElementName="rank2_permissions_unused" Type="int8" Size="48" />
|
||||||
|
<Data ElementName="rank3_name" Type="EQ2_16Bit_String" Size="1" />
|
||||||
|
<Data ElementName="rank3_permissions1" Type="int32" Size="1" />
|
||||||
|
<Data ElementName="rank3_permissions2" Type="int32" Size="1" />
|
||||||
|
<Data ElementName="rank3_permissions_unused" Type="int8" Size="48" />
|
||||||
|
<Data ElementName="rank4_name" Type="EQ2_16Bit_String" Size="1" />
|
||||||
|
<Data ElementName="rank4_permissions1" Type="int32" Size="1" />
|
||||||
|
<Data ElementName="rank4_permissions2" Type="int32" Size="1" />
|
||||||
|
<Data ElementName="rank4_permissions_unused" Type="int8" Size="48" />
|
||||||
|
<Data ElementName="rank5_name" Type="EQ2_16Bit_String" Size="1" />
|
||||||
|
<Data ElementName="rank5_permissions1" Type="int32" Size="1" />
|
||||||
|
<Data ElementName="rank5_permissions2" Type="int32" Size="1" />
|
||||||
|
<Data ElementName="rank5_permissions_unused" Type="int8" Size="48" />
|
||||||
|
<Data ElementName="rank6_name" Type="EQ2_16Bit_String" Size="1" />
|
||||||
|
<Data ElementName="rank6_permissions1" Type="int32" Size="1" />
|
||||||
|
<Data ElementName="rank6_permissions2" Type="int32" Size="1" />
|
||||||
|
<Data ElementName="rank6_permissions_unused" Type="int8" Size="48" />
|
||||||
|
<Data ElementName="rank7_name" Type="EQ2_16Bit_String" Size="1" />
|
||||||
|
<Data ElementName="rank7_permissions1" Type="int32" Size="1" />
|
||||||
|
<Data ElementName="rank7_permissions2" Type="int32" Size="1" />
|
||||||
|
<Data ElementName="rank7_permissions_unused" Type="int8" Size="48" />
|
||||||
</Struct>
|
</Struct>
|
||||||
<Struct Name="WS_GuildUpdate" ClientVersion="562" OpcodeName="OP_GuildUpdateMsg">
|
<Struct Name="WS_GuildUpdate" ClientVersion="562" OpcodeName="OP_GuildUpdateMsg">
|
||||||
<Data ElementName="guild_name" Type="EQ2_16Bit_String" Size="1" />
|
<Data ElementName="guild_name" Type="EQ2_16Bit_String" Size="1" />
|
||||||
|
@ -1826,8 +1826,9 @@ void Guild::SendGuildUpdate(Client* client) {
|
|||||||
packet->setMediumStringByName("bank2_name", banks[1].name.c_str());
|
packet->setMediumStringByName("bank2_name", banks[1].name.c_str());
|
||||||
packet->setMediumStringByName("bank3_name", banks[2].name.c_str());
|
packet->setMediumStringByName("bank3_name", banks[2].name.c_str());
|
||||||
packet->setMediumStringByName("bank4_name", banks[3].name.c_str());
|
packet->setMediumStringByName("bank4_name", banks[3].name.c_str());
|
||||||
//DumpPacket(packet->serialize());
|
EQ2Packet* pack = packet->serialize();
|
||||||
client->QueuePacket(packet->serialize());
|
//DumpPacket(pack);
|
||||||
|
client->QueuePacket(pack);
|
||||||
safe_delete(packet);
|
safe_delete(packet);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -2011,17 +2012,21 @@ void Guild::GuildMemberLogin(Client *client, bool first_login) {
|
|||||||
|
|
||||||
assert(client);
|
assert(client);
|
||||||
|
|
||||||
|
|
||||||
UpdateGuildMemberInfo(client->GetPlayer());
|
UpdateGuildMemberInfo(client->GetPlayer());
|
||||||
if (first_login)
|
if (first_login)
|
||||||
SendGuildMOTD(client);
|
SendGuildMOTD(client);
|
||||||
SendGuildUpdate(client);
|
if(client->GetVersion() > 561) {
|
||||||
if (first_login)
|
if (first_login)
|
||||||
SendGuildMember(client->GetPlayer(), false);
|
SendGuildMember(client->GetPlayer(), false);
|
||||||
|
}
|
||||||
SendGuildRecruiterInfo(client, client->GetPlayer());
|
SendGuildRecruiterInfo(client, client->GetPlayer());
|
||||||
SendGuildEventList(client);
|
SendGuildEventList(client);
|
||||||
SendGuildBankEventList(client);
|
SendGuildBankEventList(client);
|
||||||
SendGuildMember(client->GetPlayer());
|
SendGuildMember(client->GetPlayer());
|
||||||
SendGuildEventDetails(client);
|
SendGuildEventDetails(client);
|
||||||
|
SendGuildUpdate(client);
|
||||||
|
|
||||||
uchar blah5[] = {/*0xFF,0x09,0x01,*/0x01,0x00,0x00,0x00,0x00,0x00,0x00};
|
uchar blah5[] = {/*0xFF,0x09,0x01,*/0x01,0x00,0x00,0x00,0x00,0x00,0x00};
|
||||||
uchar blah6[] = {/*0xFF,0x09,0x01,*/0x01,0x00,0x00,0x00,0x01,0x00,0x00};
|
uchar blah6[] = {/*0xFF,0x09,0x01,*/0x01,0x00,0x00,0x00,0x01,0x00,0x00};
|
||||||
uchar blah7[] = {/*0xFF,0x09,0x01,*/0x01,0x00,0x00,0x00,0x02,0x00,0x00};
|
uchar blah7[] = {/*0xFF,0x09,0x01,*/0x01,0x00,0x00,0x00,0x02,0x00,0x00};
|
||||||
@ -2032,13 +2037,19 @@ void Guild::GuildMemberLogin(Client *client, bool first_login) {
|
|||||||
//DumpPacket(blah7, sizeof(blah7));
|
//DumpPacket(blah7, sizeof(blah7));
|
||||||
//DumpPacket(blah8, sizeof(blah8));
|
//DumpPacket(blah8, sizeof(blah8));
|
||||||
|
|
||||||
|
if(client->GetVersion() > 561) {
|
||||||
client->QueuePacket(new EQ2Packet(OP_RequestGuildBankEventDetailsMs, blah5, sizeof(blah5)));
|
client->QueuePacket(new EQ2Packet(OP_RequestGuildBankEventDetailsMs, blah5, sizeof(blah5)));
|
||||||
client->QueuePacket(new EQ2Packet(OP_RequestGuildBankEventDetailsMs, blah6, sizeof(blah6)));
|
client->QueuePacket(new EQ2Packet(OP_RequestGuildBankEventDetailsMs, blah6, sizeof(blah6)));
|
||||||
client->QueuePacket(new EQ2Packet(OP_RequestGuildBankEventDetailsMs, blah7, sizeof(blah7)));
|
client->QueuePacket(new EQ2Packet(OP_RequestGuildBankEventDetailsMs, blah7, sizeof(blah7)));
|
||||||
client->QueuePacket(new EQ2Packet(OP_RequestGuildBankEventDetailsMs, blah8, sizeof(blah8)));
|
client->QueuePacket(new EQ2Packet(OP_RequestGuildBankEventDetailsMs, blah8, sizeof(blah8)));
|
||||||
|
}
|
||||||
|
|
||||||
if (first_login)
|
if (first_login)
|
||||||
SendAllGuildEvents(client);
|
SendAllGuildEvents(client);
|
||||||
|
if(client->GetVersion() > 561) {
|
||||||
SendGuildMemberList(client);
|
SendGuildMemberList(client);
|
||||||
|
}
|
||||||
|
|
||||||
if (first_login) {
|
if (first_login) {
|
||||||
snprintf(buf, sizeof(buf), "Guildmate: %s has logged in", client->GetPlayer()->GetName());
|
snprintf(buf, sizeof(buf), "Guildmate: %s has logged in", client->GetPlayer()->GetName());
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user