mirror of
https://github.com/SapphireServer/Sapphire.git
synced 2025-04-29 07:37:45 +00:00
Basic event play for directors, still buggy. Also some small fixes all around
This commit is contained in:
parent
b3497ee06f
commit
37e7c2e51b
14 changed files with 143 additions and 21 deletions
|
@ -102,16 +102,18 @@ namespace Packets {
|
||||||
NpcSpawn = 0x015D, // updated 4.2
|
NpcSpawn = 0x015D, // updated 4.2
|
||||||
ActorMove = 0x015E, // updated 4.2
|
ActorMove = 0x015E, // updated 4.2
|
||||||
ActorSetPos = 0x0160, // updated 4.2
|
ActorSetPos = 0x0160, // updated 4.2
|
||||||
|
|
||||||
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
|
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
|
||||||
|
|
||||||
ActorOwner = 0x016D, // updated 4.2 ?
|
|
||||||
|
|
||||||
PlayerStats = 0x016C, // updated 4.2
|
PlayerStats = 0x016C, // updated 4.2
|
||||||
|
ActorOwner = 0x016D, // updated 4.2 ?
|
||||||
PlayerStateFlags = 0x016E, // updated 4.2
|
PlayerStateFlags = 0x016E, // updated 4.2
|
||||||
PlayerClassInfo = 0x016F, // updated 4.2
|
PlayerClassInfo = 0x016F, // updated 4.2
|
||||||
ModelEquip = 0x0170, // updated 4.2
|
ModelEquip = 0x0170, // updated 4.2
|
||||||
|
@ -126,6 +128,7 @@ namespace Packets {
|
||||||
UpdateInventorySlot = 0x0181, // updated 4.2
|
UpdateInventorySlot = 0x0181, // updated 4.2
|
||||||
|
|
||||||
EventPlay = 0x018E, // updated 4.2
|
EventPlay = 0x018E, // updated 4.2
|
||||||
|
DirectorPlayScene = 0x0192, // updated 4.2
|
||||||
|
|
||||||
EventStart = 0x0198, // updated 4.2
|
EventStart = 0x0198, // updated 4.2
|
||||||
EventFinish = 0x0199, // updated 4.2
|
EventFinish = 0x0199, // updated 4.2
|
||||||
|
|
|
@ -188,7 +188,7 @@ struct FFXIVIpcLinkshellList : FFXIVIpcBasePacket<LinkshellList>
|
||||||
struct FFXIVIpcStatusEffectList : FFXIVIpcBasePacket<StatusEffectList>
|
struct FFXIVIpcStatusEffectList : FFXIVIpcBasePacket<StatusEffectList>
|
||||||
{
|
{
|
||||||
uint8_t classId;
|
uint8_t classId;
|
||||||
uint8_t classId1;
|
uint8_t level1;
|
||||||
uint16_t level;
|
uint16_t level;
|
||||||
uint32_t current_hp;
|
uint32_t current_hp;
|
||||||
uint32_t max_hp;
|
uint32_t max_hp;
|
||||||
|
@ -414,7 +414,7 @@ struct FFXIVIpcPlayerSpawn : FFXIVIpcBasePacket<PlayerSpawn>
|
||||||
*/
|
*/
|
||||||
struct FFXIVIpcNpcSpawn : FFXIVIpcBasePacket<NpcSpawn>
|
struct FFXIVIpcNpcSpawn : FFXIVIpcBasePacket<NpcSpawn>
|
||||||
{
|
{
|
||||||
uint32_t mapLinkId; // needs to be existing in the map, mob will snap to it
|
uint32_t gimmickId; // needs to be existing in the map, mob will snap to it
|
||||||
uint8_t u2b;
|
uint8_t u2b;
|
||||||
uint8_t u2ab;
|
uint8_t u2ab;
|
||||||
uint8_t gmRank;
|
uint8_t gmRank;
|
||||||
|
@ -565,7 +565,7 @@ struct FFXIVIpcHateList : FFXIVIpcBasePacket<HateList>
|
||||||
struct FFXIVIpcUpdateClassInfo : FFXIVIpcBasePacket<UpdateClassInfo>
|
struct FFXIVIpcUpdateClassInfo : FFXIVIpcBasePacket<UpdateClassInfo>
|
||||||
{
|
{
|
||||||
uint8_t classId;
|
uint8_t classId;
|
||||||
uint8_t classId1;
|
uint8_t level1;
|
||||||
uint16_t level;
|
uint16_t level;
|
||||||
uint32_t nextLevelIndex;
|
uint32_t nextLevelIndex;
|
||||||
uint32_t currentExp;
|
uint32_t currentExp;
|
||||||
|
@ -1021,6 +1021,24 @@ struct FFXIVIpcEventPlay : FFXIVIpcBasePacket<EventPlay>
|
||||||
uint8_t unknown[8];
|
uint8_t unknown[8];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Structural representation of the packet sent by the server
|
||||||
|
* to play an event
|
||||||
|
*/
|
||||||
|
struct FFXIVIpcDirectorPlayScene : FFXIVIpcBasePacket<DirectorPlayScene>
|
||||||
|
{
|
||||||
|
uint64_t actorId;
|
||||||
|
uint32_t eventId;
|
||||||
|
uint16_t scene;
|
||||||
|
uint16_t padding;
|
||||||
|
uint32_t flags;
|
||||||
|
uint32_t param3;
|
||||||
|
uint8_t param4;
|
||||||
|
uint8_t padding1[3];
|
||||||
|
uint32_t param5;
|
||||||
|
uint8_t unknown[0x40];
|
||||||
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Structural representation of the packet sent by the server
|
* Structural representation of the packet sent by the server
|
||||||
* to finish an event
|
* to finish an event
|
||||||
|
@ -1324,7 +1342,7 @@ struct FFXIVIpcObjectSpawn : FFXIVIpcBasePacket<ObjectSpawn>
|
||||||
uint32_t levelId;
|
uint32_t levelId;
|
||||||
uint32_t unknown10;
|
uint32_t unknown10;
|
||||||
uint32_t someActorId14;
|
uint32_t someActorId14;
|
||||||
uint32_t hierachyId;
|
uint32_t gimmickId;
|
||||||
float scale;
|
float scale;
|
||||||
int16_t unknown20a;
|
int16_t unknown20a;
|
||||||
uint16_t rotation;
|
uint16_t rotation;
|
||||||
|
|
|
@ -663,6 +663,9 @@ void Core::Entity::Chara::sendStatusEffectUpdate()
|
||||||
|
|
||||||
ZoneChannelPacket< Server::FFXIVIpcStatusEffectList > statusEffectList( getId() );
|
ZoneChannelPacket< Server::FFXIVIpcStatusEffectList > statusEffectList( getId() );
|
||||||
|
|
||||||
|
statusEffectList.data().classId = static_cast< uint8_t >( getClass() );
|
||||||
|
statusEffectList.data().level = getLevel();
|
||||||
|
statusEffectList.data().level1 = getLevel();
|
||||||
statusEffectList.data().current_hp = getHp();
|
statusEffectList.data().current_hp = getHp();
|
||||||
statusEffectList.data().current_mp = getMp();
|
statusEffectList.data().current_mp = getMp();
|
||||||
statusEffectList.data().currentTp = getTp();
|
statusEffectList.data().currentTp = getTp();
|
||||||
|
|
|
@ -18,11 +18,11 @@ using namespace Core::Network::Packets::Server;
|
||||||
extern Core::Logger g_log;
|
extern Core::Logger g_log;
|
||||||
|
|
||||||
|
|
||||||
Core::Entity::EventObject::EventObject( uint32_t actorId, uint32_t objectId, uint32_t mapLinkId,
|
Core::Entity::EventObject::EventObject( uint32_t actorId, uint32_t objectId, uint32_t gimmickId,
|
||||||
uint8_t initialState, Common::FFXIVARR_POSITION3 pos,
|
uint8_t initialState, Common::FFXIVARR_POSITION3 pos,
|
||||||
float rotation, const std::string& givenName ) :
|
float rotation, const std::string& givenName ) :
|
||||||
Core::Entity::Actor( ObjKind::EventObj ),
|
Core::Entity::Actor( ObjKind::EventObj ),
|
||||||
m_mapLinkId( mapLinkId ),
|
m_gimmickId( gimmickId ),
|
||||||
m_state( initialState ),
|
m_state( initialState ),
|
||||||
m_objectId( objectId ),
|
m_objectId( objectId ),
|
||||||
m_name( givenName )
|
m_name( givenName )
|
||||||
|
@ -34,9 +34,9 @@ Core::Entity::EventObject::EventObject( uint32_t actorId, uint32_t objectId, uin
|
||||||
m_rot = rotation;
|
m_rot = rotation;
|
||||||
}
|
}
|
||||||
|
|
||||||
uint32_t Core::Entity::EventObject::getMapLinkId() const
|
uint32_t Core::Entity::EventObject::getGimmickId() const
|
||||||
{
|
{
|
||||||
return m_mapLinkId;
|
return m_gimmickId;
|
||||||
}
|
}
|
||||||
|
|
||||||
uint32_t Core::Entity::EventObject::getObjectId() const
|
uint32_t Core::Entity::EventObject::getObjectId() const
|
||||||
|
@ -64,9 +64,9 @@ void Core::Entity::EventObject::setOnTalkHandler( Core::Entity::EventObject::OnT
|
||||||
m_onTalkEventHandler = handler;
|
m_onTalkEventHandler = handler;
|
||||||
}
|
}
|
||||||
|
|
||||||
void Core::Entity::EventObject::setMapLinkId( uint32_t mapLinkId )
|
void Core::Entity::EventObject::setGimmickId( uint32_t gimmickId )
|
||||||
{
|
{
|
||||||
m_mapLinkId = mapLinkId;
|
m_gimmickId = gimmickId;
|
||||||
}
|
}
|
||||||
|
|
||||||
uint8_t Core::Entity::EventObject::getState() const
|
uint8_t Core::Entity::EventObject::getState() const
|
||||||
|
@ -110,7 +110,7 @@ void Core::Entity::EventObject::spawn( Core::Entity::PlayerPtr pTarget )
|
||||||
eobjStatePacket.data().objKind = getObjKind();
|
eobjStatePacket.data().objKind = getObjKind();
|
||||||
eobjStatePacket.data().state = getState();
|
eobjStatePacket.data().state = getState();
|
||||||
eobjStatePacket.data().objId = getObjectId();
|
eobjStatePacket.data().objId = getObjectId();
|
||||||
eobjStatePacket.data().hierachyId = getMapLinkId();
|
eobjStatePacket.data().gimmickId = getGimmickId();
|
||||||
eobjStatePacket.data().position = getPos();
|
eobjStatePacket.data().position = getPos();
|
||||||
eobjStatePacket.data().scale = getScale();
|
eobjStatePacket.data().scale = getScale();
|
||||||
eobjStatePacket.data().actorId = getId();
|
eobjStatePacket.data().actorId = getId();
|
||||||
|
|
|
@ -10,13 +10,13 @@ namespace Entity
|
||||||
class EventObject : public Actor
|
class EventObject : public Actor
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
EventObject( uint32_t actorId, uint32_t objectId, uint32_t mapLinkId, uint8_t initialState, Common::FFXIVARR_POSITION3 pos,
|
EventObject( uint32_t actorId, uint32_t objectId, uint32_t gimmickId, uint8_t initialState, Common::FFXIVARR_POSITION3 pos,
|
||||||
float rotation, const std::string& givenName = "none" );
|
float rotation, const std::string& givenName = "none" );
|
||||||
|
|
||||||
using OnTalkEventHandler = std::function< void( Entity::Player&, Entity::EventObjectPtr, InstanceContentPtr, uint64_t ) >;
|
using OnTalkEventHandler = std::function< void( Entity::Player&, Entity::EventObjectPtr, InstanceContentPtr, uint64_t ) >;
|
||||||
|
|
||||||
uint32_t getMapLinkId() const;
|
uint32_t getGimmickId() const;
|
||||||
void setMapLinkId( uint32_t mapLinkId );
|
void setGimmickId( uint32_t gimmickId );
|
||||||
|
|
||||||
uint8_t getState() const;
|
uint8_t getState() const;
|
||||||
void setState( uint8_t state );
|
void setState( uint8_t state );
|
||||||
|
@ -38,7 +38,7 @@ namespace Entity
|
||||||
void despawn( PlayerPtr pTarget ) override;
|
void despawn( PlayerPtr pTarget ) override;
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
uint32_t m_mapLinkId;
|
uint32_t m_gimmickId;
|
||||||
uint32_t m_objectId;
|
uint32_t m_objectId;
|
||||||
uint8_t m_state;
|
uint8_t m_state;
|
||||||
float m_scale;
|
float m_scale;
|
||||||
|
|
|
@ -630,7 +630,7 @@ void Core::Entity::Player::gainLevel()
|
||||||
|
|
||||||
ZoneChannelPacket< FFXIVIpcStatusEffectList > effectListPacket( getId() );
|
ZoneChannelPacket< FFXIVIpcStatusEffectList > effectListPacket( getId() );
|
||||||
effectListPacket.data().classId = static_cast< uint8_t > ( getClass() );
|
effectListPacket.data().classId = static_cast< uint8_t > ( getClass() );
|
||||||
effectListPacket.data().classId1 = static_cast< uint8_t > ( getClass() );
|
effectListPacket.data().level1 = getLevel();
|
||||||
effectListPacket.data().level = getLevel();
|
effectListPacket.data().level = getLevel();
|
||||||
effectListPacket.data().current_hp = getMaxHp();
|
effectListPacket.data().current_hp = getMaxHp();
|
||||||
effectListPacket.data().current_mp = getMaxMp();
|
effectListPacket.data().current_mp = getMaxMp();
|
||||||
|
@ -645,7 +645,7 @@ void Core::Entity::Player::gainLevel()
|
||||||
|
|
||||||
ZoneChannelPacket< FFXIVIpcUpdateClassInfo > classInfoPacket( getId() );
|
ZoneChannelPacket< FFXIVIpcUpdateClassInfo > classInfoPacket( getId() );
|
||||||
classInfoPacket.data().classId = static_cast< uint8_t > ( getClass() );
|
classInfoPacket.data().classId = static_cast< uint8_t > ( getClass() );
|
||||||
classInfoPacket.data().classId1 = static_cast< uint8_t > ( getClass() );
|
classInfoPacket.data().level1 = getLevel();
|
||||||
classInfoPacket.data().level = getLevel();
|
classInfoPacket.data().level = getLevel();
|
||||||
classInfoPacket.data().nextLevelIndex = getLevel();
|
classInfoPacket.data().nextLevelIndex = getLevel();
|
||||||
classInfoPacket.data().currentExp = getExp();
|
classInfoPacket.data().currentExp = getExp();
|
||||||
|
@ -1683,3 +1683,5 @@ bool Core::Entity::Player::isOnEnterEventDone() const
|
||||||
{
|
{
|
||||||
return m_onEnterEventDone;
|
return m_onEnterEventDone;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -57,6 +57,9 @@ public:
|
||||||
void eventStart( uint64_t actorId, uint32_t eventId, Event::EventHandler::EventType eventParam, uint8_t eventParam1, uint32_t eventParam2, uint32_t contentId = 0 );
|
void eventStart( uint64_t actorId, uint32_t eventId, Event::EventHandler::EventType eventParam, uint8_t eventParam1, uint32_t eventParam2, uint32_t contentId = 0 );
|
||||||
/*! play a subevent */
|
/*! play a subevent */
|
||||||
void eventPlay( uint32_t eventId, uint32_t scene, uint32_t flags, uint32_t eventParam2, uint32_t eventParam3 );
|
void eventPlay( uint32_t eventId, uint32_t scene, uint32_t flags, uint32_t eventParam2, uint32_t eventParam3 );
|
||||||
|
|
||||||
|
void directorPlayScene( uint32_t eventId, uint32_t scene, uint32_t flags, uint32_t eventParam2, uint32_t eventParam3 );
|
||||||
|
|
||||||
/*! play a subevent */
|
/*! play a subevent */
|
||||||
void eventPlay( uint32_t eventId, uint32_t scene, uint32_t flags,
|
void eventPlay( uint32_t eventId, uint32_t scene, uint32_t flags,
|
||||||
uint32_t eventParam2, uint32_t eventParam3, Event::EventHandler::SceneReturnCallback eventReturnCallback );
|
uint32_t eventParam2, uint32_t eventParam3, Event::EventHandler::SceneReturnCallback eventReturnCallback );
|
||||||
|
|
|
@ -17,6 +17,7 @@
|
||||||
#include "Network/PacketWrappers/EventStartPacket.h"
|
#include "Network/PacketWrappers/EventStartPacket.h"
|
||||||
#include "Network/PacketWrappers/EventPlayPacket.h"
|
#include "Network/PacketWrappers/EventPlayPacket.h"
|
||||||
#include "Network/PacketWrappers/EventFinishPacket.h"
|
#include "Network/PacketWrappers/EventFinishPacket.h"
|
||||||
|
#include "Network/PacketWrappers/DirectorPlayScenePacket.h"
|
||||||
|
|
||||||
#include "Action/EventAction.h"
|
#include "Action/EventAction.h"
|
||||||
#include "Action/EventItemAction.h"
|
#include "Action/EventItemAction.h"
|
||||||
|
@ -75,6 +76,27 @@ void Core::Entity::Player::checkEvent( uint32_t eventId )
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void Core::Entity::Player::directorPlayScene( uint32_t eventId, uint32_t scene, uint32_t flags, uint32_t eventParam2,
|
||||||
|
uint32_t eventParam3 )
|
||||||
|
{
|
||||||
|
if( flags & 0x02 )
|
||||||
|
setStateFlag( PlayerStateFlag::WatchingCutscene );
|
||||||
|
|
||||||
|
auto pEvent = getEvent( eventId );
|
||||||
|
if( !pEvent )
|
||||||
|
{
|
||||||
|
g_log.error( "Could not find event " + std::to_string( eventId ) + ", event has not been started!" );
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
pEvent->setPlayedScene( true );
|
||||||
|
pEvent->setEventReturnCallback( nullptr );
|
||||||
|
DirectorPlayScenePacket eventPlay( getId(), getId(), pEvent->getId(),
|
||||||
|
scene, flags, eventParam2, eventParam3 );
|
||||||
|
|
||||||
|
queuePacket( eventPlay );
|
||||||
|
}
|
||||||
|
|
||||||
void Core::Entity::Player::eventStart( uint64_t actorId, uint32_t eventId,
|
void Core::Entity::Player::eventStart( uint64_t actorId, uint32_t eventId,
|
||||||
Event::EventHandler::EventType eventType, uint8_t eventParam1,
|
Event::EventHandler::EventType eventType, uint8_t eventParam1,
|
||||||
uint32_t eventParam2, uint32_t contentId )
|
uint32_t eventParam2, uint32_t contentId )
|
||||||
|
|
|
@ -88,6 +88,8 @@ enum ClientTrigger
|
||||||
|
|
||||||
DirectorInitFinish = 0x321,
|
DirectorInitFinish = 0x321,
|
||||||
|
|
||||||
|
SomeDirectorEvent = 0x328, // unsure what exactly triggers it, starts director when returning to instance though
|
||||||
|
|
||||||
EnterTerritoryEventFinished = 0x330,
|
EnterTerritoryEventFinished = 0x330,
|
||||||
|
|
||||||
AchievementCritReq = 0x3E8,
|
AchievementCritReq = 0x3E8,
|
||||||
|
@ -254,6 +256,11 @@ void Core::Network::GameConnection::actionHandler( const Packets::GamePacket& in
|
||||||
player.getCurrentZone()->onInitDirector( player );
|
player.getCurrentZone()->onInitDirector( player );
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
case ClientTrigger::SomeDirectorEvent: // Director init finish
|
||||||
|
{
|
||||||
|
player.getCurrentZone()->onSomeDirectorEvent( player );
|
||||||
|
break;
|
||||||
|
}
|
||||||
case ClientTrigger::EnterTerritoryEventFinished:// this may still be something else. I think i have seen it elsewhere
|
case ClientTrigger::EnterTerritoryEventFinished:// this may still be something else. I think i have seen it elsewhere
|
||||||
{
|
{
|
||||||
player.setOnEnterEventDone( true );
|
player.setOnEnterEventDone( true );
|
||||||
|
|
|
@ -0,0 +1,55 @@
|
||||||
|
#ifndef _DIRECTORPLAYSCENE_H
|
||||||
|
#define _DIRECTORPLAYSCENE_H
|
||||||
|
|
||||||
|
#include <common/Network/GamePacketNew.h>
|
||||||
|
#include "Forwards.h"
|
||||||
|
|
||||||
|
namespace Core {
|
||||||
|
namespace Network {
|
||||||
|
namespace Packets {
|
||||||
|
namespace Server {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief The packet sent to play an event.
|
||||||
|
*/
|
||||||
|
class DirectorPlayScenePacket : public ZoneChannelPacket< FFXIVIpcDirectorPlayScene >
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
DirectorPlayScenePacket( uint32_t playerId,
|
||||||
|
uint64_t actorId,
|
||||||
|
uint32_t eventId,
|
||||||
|
uint16_t scene,
|
||||||
|
uint32_t flags,
|
||||||
|
uint8_t param3,
|
||||||
|
uint32_t param4 = 0,
|
||||||
|
uint32_t param5 = 0 ) :
|
||||||
|
ZoneChannelPacket< FFXIVIpcDirectorPlayScene >( playerId, playerId )
|
||||||
|
{
|
||||||
|
initialize( actorId, eventId, scene, flags, param3, param4, param5 );
|
||||||
|
};
|
||||||
|
|
||||||
|
private:
|
||||||
|
void initialize( uint64_t actorId,
|
||||||
|
uint32_t eventId,
|
||||||
|
uint16_t scene,
|
||||||
|
uint32_t flags,
|
||||||
|
uint8_t param3,
|
||||||
|
uint32_t param4,
|
||||||
|
uint32_t param5 )
|
||||||
|
{
|
||||||
|
m_data.actorId = actorId;
|
||||||
|
m_data.eventId = eventId;
|
||||||
|
m_data.scene = scene;
|
||||||
|
m_data.flags = flags;
|
||||||
|
m_data.param3 = param3;
|
||||||
|
m_data.param4 = param4;
|
||||||
|
m_data.param5 = param5;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif /*_EVENTPLAY_H*/
|
|
@ -1,5 +1,6 @@
|
||||||
#include <ScriptObject.h>
|
#include <ScriptObject.h>
|
||||||
#include <Zone/InstanceContent.h>
|
#include <Zone/InstanceContent.h>
|
||||||
|
#include <Actor/Player.h>
|
||||||
|
|
||||||
class Sastasha : public InstanceContentScript
|
class Sastasha : public InstanceContentScript
|
||||||
{
|
{
|
||||||
|
@ -70,7 +71,7 @@ public:
|
||||||
|
|
||||||
void onEnterTerritory( Entity::Player &player, uint32_t eventId, uint16_t param1, uint16_t param2 ) override
|
void onEnterTerritory( Entity::Player &player, uint32_t eventId, uint16_t param1, uint16_t param2 ) override
|
||||||
{
|
{
|
||||||
|
player.directorPlayScene( getId(), 1, NO_DEFAULT_CAMERA | HIDE_HOTBAR, 0, 0xA );
|
||||||
}
|
}
|
||||||
|
|
||||||
};
|
};
|
|
@ -151,6 +151,12 @@ void Core::InstanceContent::onInitDirector( Entity::Player& player )
|
||||||
player.setDirectorInitialized( true );
|
player.setDirectorInitialized( true );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void Core::InstanceContent::onSomeDirectorEvent( Entity::Player& player )
|
||||||
|
{
|
||||||
|
player.queuePacket( ActorControlPacket143( player.getId(), DirectorUpdate, 0x00110001, 0x80000000, 1 ) );
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
void Core::InstanceContent::setVar( uint8_t index, uint8_t value )
|
void Core::InstanceContent::setVar( uint8_t index, uint8_t value )
|
||||||
{
|
{
|
||||||
if( index > 19 )
|
if( index > 19 )
|
||||||
|
|
|
@ -35,6 +35,7 @@ public:
|
||||||
void onLeaveTerritory( Entity::Player& player ) override;
|
void onLeaveTerritory( Entity::Player& player ) override;
|
||||||
void onFinishLoading( Entity::Player& player ) override;
|
void onFinishLoading( Entity::Player& player ) override;
|
||||||
void onInitDirector( Entity::Player& player ) override;
|
void onInitDirector( Entity::Player& player ) override;
|
||||||
|
void onSomeDirectorEvent( Entity::Player& player ) override;
|
||||||
void onUpdate( uint32_t currTime ) override;
|
void onUpdate( uint32_t currTime ) override;
|
||||||
void onTalk( Entity::Player& player, uint32_t eventId, uint64_t actorId );
|
void onTalk( Entity::Player& player, uint32_t eventId, uint64_t actorId );
|
||||||
void onEnterTerritory( Entity::Player& player, uint32_t eventId, uint16_t param1, uint16_t param2 ) override;
|
void onEnterTerritory( Entity::Player& player, uint32_t eventId, uint16_t param1, uint16_t param2 ) override;
|
||||||
|
|
|
@ -77,6 +77,7 @@ public:
|
||||||
virtual void onPlayerZoneIn( Entity::Player &player );
|
virtual void onPlayerZoneIn( Entity::Player &player );
|
||||||
virtual void onFinishLoading( Entity::Player& player );
|
virtual void onFinishLoading( Entity::Player& player );
|
||||||
virtual void onInitDirector( Entity::Player& player );
|
virtual void onInitDirector( Entity::Player& player );
|
||||||
|
virtual void onSomeDirectorEvent( Entity::Player& player ) {};
|
||||||
virtual void onLeaveTerritory( Entity::Player& player );
|
virtual void onLeaveTerritory( Entity::Player& player );
|
||||||
virtual void onUpdate( uint32_t currTime );
|
virtual void onUpdate( uint32_t currTime );
|
||||||
virtual void onRegisterEObj( Entity::EventObjectPtr object ) {};
|
virtual void onRegisterEObj( Entity::EventObjectPtr object ) {};
|
||||||
|
|
Loading…
Add table
Reference in a new issue