1
Fork 0
mirror of https://github.com/SapphireServer/Sapphire.git synced 2025-05-06 10:47:45 +00:00

Merge pull request #317 from perize/develop

EObj thing
This commit is contained in:
Mordred 2018-06-12 06:22:28 +02:00 committed by GitHub
commit 460175f75d
3 changed files with 37 additions and 0 deletions

View file

@ -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;

View file

@ -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;
}; };
} }
} }

View file

@ -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;