mirror of
https://github.com/SapphireServer/Sapphire.git
synced 2025-05-06 10:47:45 +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 )
|
void Core::Entity::EventObject::setParentInstance( Core::InstanceContentPtr instance )
|
||||||
{
|
{
|
||||||
m_parentInstance = instance;
|
m_parentInstance = instance;
|
||||||
|
|
|
@ -38,6 +38,8 @@ namespace Entity
|
||||||
void spawn( PlayerPtr pTarget ) override;
|
void spawn( PlayerPtr pTarget ) override;
|
||||||
void despawn( PlayerPtr pTarget ) override;
|
void despawn( PlayerPtr pTarget ) override;
|
||||||
|
|
||||||
|
void setAnimationFlag( uint32_t flag, uint32_t animationFlag );
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
uint32_t m_gimmickId;
|
uint32_t m_gimmickId;
|
||||||
uint32_t m_objectId;
|
uint32_t m_objectId;
|
||||||
|
@ -46,6 +48,8 @@ namespace Entity
|
||||||
std::string m_name;
|
std::string m_name;
|
||||||
InstanceContentPtr m_parentInstance;
|
InstanceContentPtr m_parentInstance;
|
||||||
OnTalkEventHandler m_onTalkEventHandler;
|
OnTalkEventHandler m_onTalkEventHandler;
|
||||||
|
|
||||||
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -29,6 +29,7 @@
|
||||||
#include "Zone/Zone.h"
|
#include "Zone/Zone.h"
|
||||||
#include "Zone/InstanceContent.h"
|
#include "Zone/InstanceContent.h"
|
||||||
#include "Zone/TerritoryMgr.h"
|
#include "Zone/TerritoryMgr.h"
|
||||||
|
#include "Event/EventDefs.h"
|
||||||
|
|
||||||
#include "ServerZone.h"
|
#include "ServerZone.h"
|
||||||
|
|
||||||
|
@ -814,6 +815,26 @@ void Core::DebugCommandHandler::instance( char* data, Entity::Player &player, bo
|
||||||
|
|
||||||
obj->setState( state );
|
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" )
|
else if( subCommand == "seq" )
|
||||||
{
|
{
|
||||||
uint8_t seq;
|
uint8_t seq;
|
||||||
|
|
Loading…
Add table
Reference in a new issue