1
Fork 0
mirror of https://github.com/SapphireServer/Sapphire.git synced 2025-04-29 07:37:45 +00:00

Object despawning added

This commit is contained in:
Mordred 2018-03-01 23:17:35 +01:00
parent 40fccfb481
commit 78d660a1ce
4 changed files with 14 additions and 4 deletions

View file

@ -104,6 +104,7 @@ namespace Packets {
ActorCast = 0x0162, // updated 4.2 ActorCast = 0x0162, // updated 4.2
HateList = 0x0165, // updated 4.2 HateList = 0x0165, // updated 4.2
ObjectSpawn = 0x0167, // updated 4.2 ObjectSpawn = 0x0167, // updated 4.2
ObjectDespawn = 0x0168, // updated 4.2
UpdateClassInfo = 0x0169, // updated 4.2 UpdateClassInfo = 0x0169, // updated 4.2
InitUI = 0x016B, // updated 4.2 InitUI = 0x016B, // updated 4.2

View file

@ -414,8 +414,7 @@ struct FFXIVIpcPlayerSpawn : FFXIVIpcBasePacket<PlayerSpawn>
*/ */
struct FFXIVIpcNpcSpawn : FFXIVIpcBasePacket<NpcSpawn> struct FFXIVIpcNpcSpawn : FFXIVIpcBasePacket<NpcSpawn>
{ {
uint16_t title; uint32_t mapLinkId; // needs to be existing in the map, mob will snap to it
uint16_t u1b;
uint8_t u2b; uint8_t u2b;
uint8_t u2ab; uint8_t u2ab;
uint8_t gmRank; uint8_t gmRank;
@ -1339,6 +1338,12 @@ struct FFXIVIpcObjectSpawn : FFXIVIpcBasePacket<ObjectSpawn>
int16_t unknown; int16_t unknown;
}; };
struct FFXIVIpcObjectDespawn : FFXIVIpcBasePacket<ObjectDespawn>
{
uint8_t spawnIndex;
uint8_t padding[7];
};
} /* Server */ } /* Server */
} /* Packets */ } /* Packets */

View file

@ -1655,7 +1655,11 @@ void Core::Entity::Player::resetObjSpawnIndex()
void Core::Entity::Player::freeObjSpawnIndexForActorId( uint32_t actorId ) void Core::Entity::Player::freeObjSpawnIndexForActorId( uint32_t actorId )
{ {
m_objSpawnIndexAllocator.freeUsedSpawnIndex( actorId ); auto spawnId = m_objSpawnIndexAllocator.freeUsedSpawnIndex( actorId );
ZoneChannelPacket< FFXIVIpcObjectDespawn > freeObjectSpawnPacket( getId() );
freeObjectSpawnPacket.data().spawnIndex = spawnId;
queuePacket( freeObjectSpawnPacket );
} }
bool Core::Entity::Player::isObjSpawnIndexValid( uint8_t index ) bool Core::Entity::Player::isObjSpawnIndexValid( uint8_t index )