Add several cross zone methods to Perl/Lua.

This commit is contained in:
Alex
2020-05-11 20:10:52 -04:00
parent 5e0ab3e37c
commit 5f0d3e9026
7 changed files with 379 additions and 2 deletions
+77
View File
@@ -1926,6 +1926,28 @@ void WorldServer::HandleMessage(uint16 opcode, const EQ::Net::Packet &p)
}
break;
}
case ServerOP_CZSignalRaid:
{
CZRaidSignal_Struct* CZRS = (CZRaidSignal_Struct*)pack->pBuffer;
auto client_list = entity_list.GetClientList();
for (auto client : client_list) {
if (client.second->GetRaid() && client.second->GetRaid()->GetID() == CZRS->raid_id) {
client.second->Signal(CZRS->data);
}
}
break;
}
case ServerOP_CZSignalGuild:
{
CZGuildSignal_Struct* CZGS = (CZGuildSignal_Struct*)pack->pBuffer;
auto client_list = entity_list.GetClientList();
for (auto client : client_list) {
if (client.second->GuildID() > 0 && client.second->GuildID() == CZGS->guild_id) {
client.second->Signal(CZGS->data);
}
}
break;
}
case ServerOP_CZSignalClientByName:
{
CZClientSignalByName_Struct* CZCS = (CZClientSignalByName_Struct*)pack->pBuffer;
@@ -1944,6 +1966,28 @@ void WorldServer::HandleMessage(uint16 opcode, const EQ::Net::Packet &p)
}
break;
}
case ServerOP_CZMessageGroup:
{
CZMessageGroup_Struct* CZGM = (CZMessageGroup_Struct*)pack->pBuffer;
auto client_list = entity_list.GetClientList();
for (auto client : client_list) {
if (client.second->GetGroup() && client.second->GetGroup()->GetID() == CZGM->GroupID) {
client.second->Message(CZGM->Type, CZGM->Message);
}
}
break;
}
case ServerOP_CZMessageRaid:
{
CZMessageRaid_Struct* CZRM = (CZMessageRaid_Struct*)pack->pBuffer;
auto client_list = entity_list.GetClientList();
for (auto client : client_list) {
if (client.second->GetRaid() && client.second->GetRaid()->GetID() == CZRM->RaidID) {
client.second->Message(CZRM->Type, CZRM->Message);
}
}
break;
}
case ServerOP_CZMessageGuild:
{
CZMessageGuild_Struct* CZGM = (CZMessageGuild_Struct*)pack->pBuffer;
@@ -1964,6 +2008,39 @@ void WorldServer::HandleMessage(uint16 opcode, const EQ::Net::Packet &p)
}
break;
}
case ServerOP_CZSetEntityVariableByGroupID:
{
CZSetEntVarByGroupID_Struct* CZCS = (CZSetEntVarByGroupID_Struct*)pack->pBuffer;
auto client_list = entity_list.GetClientList();
for (auto client : client_list) {
if (client.second->GetGroup() && client.second->GetGroup()->GetID() == CZCS->group_id) {
client.second->SetEntityVariable(CZCS->id, CZCS->m_var);
}
}
break;
}
case ServerOP_CZSetEntityVariableByRaidID:
{
CZSetEntVarByRaidID_Struct* CZCS = (CZSetEntVarByRaidID_Struct*)pack->pBuffer;
auto client_list = entity_list.GetClientList();
for (auto client : client_list) {
if (client.second->GetRaid() && client.second->GetRaid()->GetID() == CZCS->raid_id) {
client.second->SetEntityVariable(CZCS->id, CZCS->m_var);
}
}
break;
}
case ServerOP_CZSetEntityVariableByGuildID:
{
CZSetEntVarByGuildID_Struct* CZCS = (CZSetEntVarByGuildID_Struct*)pack->pBuffer;
auto client_list = entity_list.GetClientList();
for (auto client : client_list) {
if (client.second->GuildID() > 0 && client.second->GuildID() == CZCS->guild_id) {
client.second->SetEntityVariable(CZCS->id, CZCS->m_var);
}
}
break;
}
case ServerOP_WWMarquee:
{
WWMarquee_Struct* WWMS = (WWMarquee_Struct*)pack->pBuffer;