mirror of
https://github.com/SapphireServer/Sapphire.git
synced 2025-05-06 02:37:47 +00:00
commit
460175f75d
3 changed files with 37 additions and 0 deletions
|
@ -86,6 +86,18 @@ void Core::Entity::EventObject::setState( uint8_t state )
|
|||
}
|
||||
}
|
||||
|
||||
void Core::Entity::EventObject::setAnimationFlag( uint32_t flag, uint32_t animationFlag ) {
|
||||
for( const auto& player : m_inRangePlayers )
|
||||
{
|
||||
ZoneChannelPacket< FFXIVIpcActorControl142 > eobjUpdatePacket( getId(), player->getId() );
|
||||
eobjUpdatePacket.data().category = Common::ActorControlType::EObjAnimation;
|
||||
eobjUpdatePacket.data().param1 = flag;
|
||||
eobjUpdatePacket.data().param2 = animationFlag;
|
||||
|
||||
player->queuePacket( eobjUpdatePacket );
|
||||
}
|
||||
}
|
||||
|
||||
void Core::Entity::EventObject::setParentInstance( Core::InstanceContentPtr instance )
|
||||
{
|
||||
m_parentInstance = instance;
|
||||
|
|
|
@ -38,6 +38,8 @@ namespace Entity
|
|||
void spawn( PlayerPtr pTarget ) override;
|
||||
void despawn( PlayerPtr pTarget ) override;
|
||||
|
||||
void setAnimationFlag( uint32_t flag, uint32_t animationFlag );
|
||||
|
||||
protected:
|
||||
uint32_t m_gimmickId;
|
||||
uint32_t m_objectId;
|
||||
|
@ -46,6 +48,8 @@ namespace Entity
|
|||
std::string m_name;
|
||||
InstanceContentPtr m_parentInstance;
|
||||
OnTalkEventHandler m_onTalkEventHandler;
|
||||
|
||||
|
||||
};
|
||||
}
|
||||
}
|
||||
|
|
|
@ -29,6 +29,7 @@
|
|||
#include "Zone/Zone.h"
|
||||
#include "Zone/InstanceContent.h"
|
||||
#include "Zone/TerritoryMgr.h"
|
||||
#include "Event/EventDefs.h"
|
||||
|
||||
#include "ServerZone.h"
|
||||
|
||||
|
@ -814,6 +815,26 @@ void Core::DebugCommandHandler::instance( char* data, Entity::Player &player, bo
|
|||
|
||||
obj->setState( state );
|
||||
}
|
||||
else if ( subCommand == "objflag" )
|
||||
{
|
||||
char objName[256];
|
||||
uint32_t state1;
|
||||
uint32_t state2;
|
||||
|
||||
sscanf( params.c_str(), "%s %i %i", objName, &state1, &state2 );
|
||||
|
||||
auto instance = boost::dynamic_pointer_cast< InstanceContent >( player.getCurrentZone() );
|
||||
if( !instance )
|
||||
return;
|
||||
|
||||
auto obj = instance->getEObjByName( objName );
|
||||
if( !obj ) {
|
||||
player.sendDebug( "No eobj found." );
|
||||
return;
|
||||
}
|
||||
|
||||
obj->setAnimationFlag( state1, state2 );
|
||||
}
|
||||
else if( subCommand == "seq" )
|
||||
{
|
||||
uint8_t seq;
|
||||
|
|
Loading…
Add table
Reference in a new issue