mirror of
https://github.com/EQEmu/Server.git
synced 2026-06-24 21:58:22 +00:00
Make sure packet stuff is aware of instance_id
This commit is contained in:
+2
-2
@@ -1142,10 +1142,10 @@ struct ServerInstanceUpdateTime_Struct
|
|||||||
uint32 new_duration;
|
uint32 new_duration;
|
||||||
};
|
};
|
||||||
|
|
||||||
struct ServerSpawnStatusChange_Struct
|
struct ServerSpawnStatusChange_Struct {
|
||||||
{
|
|
||||||
uint32 id;
|
uint32 id;
|
||||||
bool new_status;
|
bool new_status;
|
||||||
|
uint32 instance_id;
|
||||||
};
|
};
|
||||||
|
|
||||||
struct ServerQGlobalUpdate_Struct
|
struct ServerQGlobalUpdate_Struct
|
||||||
|
|||||||
@@ -364,6 +364,7 @@ void QuestManager::enable_spawn2(uint32 spawn2_id)
|
|||||||
auto *ssc = (ServerSpawnStatusChange_Struct *) pack->pBuffer;
|
auto *ssc = (ServerSpawnStatusChange_Struct *) pack->pBuffer;
|
||||||
ssc->id = spawn2_id;
|
ssc->id = spawn2_id;
|
||||||
ssc->new_status = true;
|
ssc->new_status = true;
|
||||||
|
scc->instance_id = zone->GetInstanceID();
|
||||||
worldserver.SendPacket(pack);
|
worldserver.SendPacket(pack);
|
||||||
safe_delete(pack);
|
safe_delete(pack);
|
||||||
}
|
}
|
||||||
@@ -375,6 +376,8 @@ void QuestManager::disable_spawn2(uint32 spawn2_id)
|
|||||||
auto *ssc = (ServerSpawnStatusChange_Struct *) pack->pBuffer;
|
auto *ssc = (ServerSpawnStatusChange_Struct *) pack->pBuffer;
|
||||||
ssc->id = spawn2_id;
|
ssc->id = spawn2_id;
|
||||||
ssc->new_status = false;
|
ssc->new_status = false;
|
||||||
|
scc->instance_id = zone->GetInstanceID();
|
||||||
|
|
||||||
worldserver.SendPacket(pack);
|
worldserver.SendPacket(pack);
|
||||||
safe_delete(pack);
|
safe_delete(pack);
|
||||||
}
|
}
|
||||||
|
|||||||
+9
-10
@@ -1729,28 +1729,27 @@ void WorldServer::HandleMessage(uint16 opcode, const EQ::Net::Packet &p)
|
|||||||
if (zone)
|
if (zone)
|
||||||
{
|
{
|
||||||
ServerSpawnStatusChange_Struct *ssc = (ServerSpawnStatusChange_Struct*)pack->pBuffer;
|
ServerSpawnStatusChange_Struct *ssc = (ServerSpawnStatusChange_Struct*)pack->pBuffer;
|
||||||
|
if (ssc->instance_id != zone->GetInstanceID()) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
LinkedListIterator<Spawn2 *> iterator(zone->spawn2_list);
|
LinkedListIterator<Spawn2 *> iterator(zone->spawn2_list);
|
||||||
iterator.Reset();
|
iterator.Reset();
|
||||||
Spawn2 *found_spawn = nullptr;
|
Spawn2 *found_spawn = nullptr;
|
||||||
while (iterator.MoreElements())
|
while (iterator.MoreElements()) {
|
||||||
{
|
|
||||||
Spawn2 *cur = iterator.GetData();
|
Spawn2 *cur = iterator.GetData();
|
||||||
if (cur->GetID() == ssc->id)
|
if (cur->GetID() == ssc->id) {
|
||||||
{
|
|
||||||
found_spawn = cur;
|
found_spawn = cur;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
iterator.Advance();
|
iterator.Advance();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (found_spawn)
|
if (found_spawn) {
|
||||||
{
|
if (ssc->new_status == 0) {
|
||||||
if (ssc->new_status == 0)
|
|
||||||
{
|
|
||||||
found_spawn->Disable();
|
found_spawn->Disable();
|
||||||
}
|
}
|
||||||
else
|
else {
|
||||||
{
|
|
||||||
found_spawn->Enable();
|
found_spawn->Enable();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user