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 28840bca52
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
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 )
{
m_parentInstance = instance;

View file

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

View file

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