mirror of
https://github.com/SapphireServer/Sapphire.git
synced 2025-04-28 23:27:45 +00:00
Object despawning added
This commit is contained in:
parent
40fccfb481
commit
78d660a1ce
4 changed files with 14 additions and 4 deletions
|
@ -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
|
||||||
|
|
||||||
|
|
|
@ -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 */
|
||||||
|
|
|
@ -120,7 +120,7 @@ void Core::Entity::EventObject::despawn( Core::Entity::PlayerPtr pTarget )
|
||||||
{
|
{
|
||||||
g_log.debug( "despawn eobj: " + std::to_string( getId() ) );
|
g_log.debug( "despawn eobj: " + std::to_string( getId() ) );
|
||||||
|
|
||||||
pTarget->freeObjSpawnIndexForActorId( getId( ));
|
pTarget->freeObjSpawnIndexForActorId( getId( ) );
|
||||||
}
|
}
|
||||||
|
|
||||||
const std::string& Core::Entity::EventObject::getName() const
|
const std::string& Core::Entity::EventObject::getName() const
|
||||||
|
|
|
@ -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 )
|
||||||
|
|
Loading…
Add table
Reference in a new issue