mirror of
https://github.com/SapphireServer/Sapphire.git
synced 2025-04-26 22:37:45 +00:00
Simplified syntax for eobj registering, added test script for thousand maws
This commit is contained in:
parent
67c2cb7971
commit
e548e148e5
6 changed files with 48 additions and 10 deletions
|
@ -59,7 +59,8 @@ std::string Core::Event::getEventName( uint32_t eventId )
|
|||
auto contentInfo = g_exdDataGen.get< Core::Data::InstanceContent >( eventId & 0xFFFF );
|
||||
std::string name = contentInfo->name;
|
||||
|
||||
name.erase( boost::remove_if( name, boost::is_any_of( "_ '()[]" ) ), name.end() );
|
||||
name.erase( boost::remove_if( name, boost::is_any_of( "★_ '()[]-\x1a\x1\x2\x1f\x1\x3.:" ) ), name.end() );
|
||||
name[0] = toupper( name[0] );
|
||||
return name;
|
||||
}
|
||||
|
||||
|
|
|
@ -251,9 +251,8 @@ void Core::Network::GameConnection::actionHandler( const Packets::GamePacket& in
|
|||
player.getCurrentZone()->onInitDirector( player );
|
||||
break;
|
||||
}
|
||||
case ClientTrigger::EnterTerritoryEventFinished:
|
||||
case ClientTrigger::EnterTerritoryEventFinished:// this may still be something else. I think i have seen it elsewhere
|
||||
{
|
||||
g_log.debug( "[DOOOOOOOOOOOOOOOOOOOOOOONE]" );
|
||||
player.setOnEnterEventDone( true );
|
||||
break;
|
||||
}
|
||||
|
|
|
@ -0,0 +1,33 @@
|
|||
#include <ScriptObject.h>
|
||||
#include <Zone/InstanceContent.h>
|
||||
|
||||
class TheThousandMawsOfTotoRak : public InstanceContentScript
|
||||
{
|
||||
public:
|
||||
TheThousandMawsOfTotoRak() : InstanceContentScript( 1 )
|
||||
{ }
|
||||
|
||||
void onInit( InstanceContentPtr instance ) override
|
||||
{
|
||||
instance->registerEObj( "Exit", EXIT_OBJECT, 0, EXIT_OBJECT_STATE, { 237, -39, -144 } );
|
||||
instance->registerEObj( "Entrance", START_CIRCLE, START_CIRCLE_MAPLINK, START_CIRCLE_STATE, { -322, 12, -78 } );
|
||||
}
|
||||
|
||||
void onUpdate( InstanceContentPtr instance, uint32_t currTime ) override
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
void onEnterTerritory( Entity::Player &player, uint32_t eventId, uint16_t param1, uint16_t param2 ) override
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
private:
|
||||
static constexpr auto EXIT_OBJECT = 2000683;
|
||||
static constexpr auto EXIT_OBJECT_STATE = 4;
|
||||
|
||||
static constexpr auto START_CIRCLE = 2000182;
|
||||
static constexpr auto START_CIRCLE_MAPLINK = 4127435;
|
||||
static constexpr auto START_CIRCLE_STATE = 5;
|
||||
};
|
|
@ -9,13 +9,8 @@ public:
|
|||
|
||||
void onInit( InstanceContentPtr instance ) override
|
||||
{
|
||||
Common::FFXIVARR_POSITION3 pos = { 0, 0, -10 };
|
||||
auto exit = Entity::make_EventObject( EXIT_OBJECT, 0, EXIT_OBJECT_STATE, pos, "Exit" );
|
||||
instance->registerEObj( exit );
|
||||
|
||||
Common::FFXIVARR_POSITION3 pos1 = { 0, 0, 24 };
|
||||
auto start = Entity::make_EventObject( START_CIRCLE, START_CIRCLE_MAPLINK, START_CIRCLE_STATE, pos1, "Entrance" );
|
||||
instance->registerEObj( start );
|
||||
instance->registerEObj( "Exit", EXIT_OBJECT, 0, EXIT_OBJECT_STATE, { 0, 0, -10 } );
|
||||
instance->registerEObj( "Entrance", START_CIRCLE, START_CIRCLE_MAPLINK, START_CIRCLE_STATE, { 0, 0, 24 } );
|
||||
}
|
||||
|
||||
void onUpdate( InstanceContentPtr instance, uint32_t currTime ) override
|
||||
|
|
|
@ -716,3 +716,10 @@ uint32_t Core::Zone::getNextEObjId()
|
|||
{
|
||||
return ++m_nextEObjId;
|
||||
}
|
||||
|
||||
void Core::Zone::registerEObj( const std::string &name, uint32_t objectId, uint32_t mapLink, uint8_t state,
|
||||
FFXIVARR_POSITION3 pos )
|
||||
{
|
||||
auto eObj = Entity::make_EventObject( objectId, mapLink, state, pos, name );
|
||||
registerEObj( eObj );
|
||||
}
|
||||
|
|
|
@ -108,6 +108,9 @@ public:
|
|||
|
||||
void updateSessions( bool changedWeather );
|
||||
|
||||
void registerEObj( const std::string& name, uint32_t objectId, uint32_t mapLink,
|
||||
uint8_t state, Common::FFXIVARR_POSITION3 pos );
|
||||
|
||||
void registerEObj( Entity::EventObjectPtr object );
|
||||
Entity::EventObjectPtr getEObj( uint32_t objId );
|
||||
void updateEObj( Entity::EventObjectPtr object );
|
||||
|
|
Loading…
Add table
Reference in a new issue