2018-09-25 07:18:42 -04:00
|
|
|
#include <string>
|
|
|
|
#include <typeinfo>
|
|
|
|
#include <typeindex>
|
|
|
|
#include "NativeScriptApi.h"
|
2018-11-13 20:43:29 +11:00
|
|
|
#include <cassert>
|
2018-09-25 07:18:42 -04:00
|
|
|
|
|
|
|
#ifdef _MSC_VER
|
|
|
|
#define EXPORT __declspec( dllexport )
|
|
|
|
#else
|
|
|
|
#define EXPORT __attribute__((visibility("default")))
|
|
|
|
#endif
|
|
|
|
|
2018-11-29 16:55:48 +01:00
|
|
|
using namespace Sapphire;
|
2018-09-25 07:18:42 -04:00
|
|
|
|
2018-11-13 21:34:44 +11:00
|
|
|
namespace Sapphire::ScriptAPI
|
2018-09-25 07:18:42 -04:00
|
|
|
{
|
2018-11-13 21:34:44 +11:00
|
|
|
ScriptObject::ScriptObject( uint32_t id, std::size_t type ) :
|
|
|
|
m_id( id ),
|
|
|
|
m_type( type )
|
|
|
|
{
|
|
|
|
}
|
|
|
|
|
|
|
|
uint32_t ScriptObject::getId() const
|
|
|
|
{
|
|
|
|
return m_id;
|
|
|
|
}
|
|
|
|
|
|
|
|
std::size_t ScriptObject::getType() const
|
|
|
|
{
|
|
|
|
return m_type;
|
|
|
|
}
|
2018-09-25 07:18:42 -04:00
|
|
|
|
2018-11-13 21:34:44 +11:00
|
|
|
///////////////////////////////////////////////////////////////////
|
2018-09-25 07:18:42 -04:00
|
|
|
|
2018-11-13 21:34:44 +11:00
|
|
|
StatusEffectScript::StatusEffectScript( uint32_t effectId ) :
|
|
|
|
ScriptObject( effectId, typeid( StatusEffectScript ).hash_code() )
|
|
|
|
{
|
|
|
|
}
|
|
|
|
|
|
|
|
void StatusEffectScript::onTick( Entity::Chara& actor )
|
|
|
|
{
|
|
|
|
}
|
|
|
|
|
|
|
|
void StatusEffectScript::onApply( Entity::Chara& actor )
|
|
|
|
{
|
|
|
|
}
|
|
|
|
|
|
|
|
void StatusEffectScript::onRemove( Entity::Chara& actor )
|
|
|
|
{
|
|
|
|
}
|
2018-09-25 07:18:42 -04:00
|
|
|
|
2018-11-13 21:34:44 +11:00
|
|
|
void StatusEffectScript::onExpire( Entity::Chara& actor )
|
|
|
|
{
|
|
|
|
}
|
|
|
|
|
|
|
|
void StatusEffectScript::onPlayerCollision( Entity::Chara& actor, Entity::Chara& actorHit )
|
|
|
|
{
|
|
|
|
}
|
|
|
|
|
|
|
|
void StatusEffectScript::onPlayerFinishCast( Entity::Chara& actor )
|
|
|
|
{
|
|
|
|
}
|
|
|
|
|
|
|
|
void StatusEffectScript::onPlayerDamaged( Entity::Chara& actor )
|
|
|
|
{
|
|
|
|
}
|
|
|
|
|
|
|
|
void StatusEffectScript::onPlayerDeath( Entity::Chara& actor )
|
|
|
|
{
|
|
|
|
}
|
2018-09-25 07:18:42 -04:00
|
|
|
|
2018-11-13 21:34:44 +11:00
|
|
|
///////////////////////////////////////////////////////////////////
|
2018-09-25 07:18:42 -04:00
|
|
|
|
2019-06-02 00:34:22 +10:00
|
|
|
ActionScript::ActionScript( uint32_t actionId ) :
|
|
|
|
ScriptObject( actionId, typeid( ActionScript ).hash_code() )
|
2018-11-13 21:34:44 +11:00
|
|
|
{
|
|
|
|
}
|
2018-09-25 07:18:42 -04:00
|
|
|
|
2019-06-02 00:34:22 +10:00
|
|
|
void ActionScript::onStart( Sapphire::World::Action::Action& action )
|
2018-11-13 21:34:44 +11:00
|
|
|
{
|
|
|
|
}
|
2018-09-25 07:18:42 -04:00
|
|
|
|
2019-06-02 00:34:22 +10:00
|
|
|
void ActionScript::onExecute( Sapphire::World::Action::Action& action )
|
2018-11-13 21:34:44 +11:00
|
|
|
{
|
|
|
|
}
|
2018-09-25 07:18:42 -04:00
|
|
|
|
2019-06-02 00:34:22 +10:00
|
|
|
void ActionScript::onInterrupt( Sapphire::World::Action::Action& action )
|
2018-11-13 21:34:44 +11:00
|
|
|
{
|
|
|
|
}
|
2018-09-25 07:18:42 -04:00
|
|
|
|
2018-11-13 21:34:44 +11:00
|
|
|
///////////////////////////////////////////////////////////////////
|
2018-09-25 07:18:42 -04:00
|
|
|
|
2019-03-23 17:02:47 +11:00
|
|
|
EventScript::EventScript( uint32_t eventId ) :
|
|
|
|
ScriptObject( eventId, typeid( EventScript ).hash_code() )
|
2018-11-13 21:34:44 +11:00
|
|
|
{
|
|
|
|
}
|
2018-09-25 07:18:42 -04:00
|
|
|
|
2018-11-13 21:34:44 +11:00
|
|
|
void EventScript::onTalk( uint32_t eventId, Entity::Player& player, uint64_t actorId )
|
|
|
|
{
|
|
|
|
}
|
2018-09-25 07:18:42 -04:00
|
|
|
|
2019-02-02 23:32:36 +11:00
|
|
|
void EventScript::onBNpcKill( uint32_t nameId, Entity::Player& player )
|
2018-11-13 21:34:44 +11:00
|
|
|
{
|
|
|
|
}
|
2018-09-25 07:18:42 -04:00
|
|
|
|
2018-11-13 21:34:44 +11:00
|
|
|
void EventScript::onEmote( uint64_t actorId, uint32_t eventId, uint32_t emoteId, Entity::Player& player )
|
|
|
|
{
|
|
|
|
}
|
2018-09-25 07:18:42 -04:00
|
|
|
|
2018-11-13 21:34:44 +11:00
|
|
|
void EventScript::onEnterTerritory( Entity::Player& player, uint32_t eventId, uint16_t param1, uint16_t param2 )
|
|
|
|
{
|
|
|
|
}
|
2018-09-25 07:18:42 -04:00
|
|
|
|
2018-11-13 21:34:44 +11:00
|
|
|
void EventScript::onWithinRange( Entity::Player& player, uint32_t eventId, uint32_t param1, float x, float y, float z )
|
|
|
|
{
|
|
|
|
}
|
2018-09-25 07:18:42 -04:00
|
|
|
|
2018-11-13 21:34:44 +11:00
|
|
|
void EventScript::onOutsideRange( Entity::Player& player, uint32_t eventId, uint32_t param1, float x, float y, float z )
|
|
|
|
{
|
|
|
|
}
|
2018-09-25 07:18:42 -04:00
|
|
|
|
2019-03-23 17:02:47 +11:00
|
|
|
void EventScript::onEventItem( Entity::Player& player, uint32_t eventItemId, uint32_t eventId, uint32_t castTime,
|
|
|
|
uint64_t targetId )
|
2018-11-13 21:34:44 +11:00
|
|
|
{
|
|
|
|
}
|
2018-09-25 07:18:42 -04:00
|
|
|
|
2018-11-13 21:34:44 +11:00
|
|
|
void EventScript::onEventHandlerTradeReturn( Entity::Player& player, uint32_t eventId, uint16_t subEvent, uint16_t param,
|
|
|
|
uint32_t catalogId )
|
|
|
|
{
|
|
|
|
}
|
2018-09-25 07:18:42 -04:00
|
|
|
|
2019-03-19 00:01:34 +11:00
|
|
|
void EventScript::onEObjHit( Sapphire::Entity::Player& player, uint64_t actorId, uint32_t actionId )
|
2019-02-10 22:13:47 +11:00
|
|
|
{
|
|
|
|
}
|
|
|
|
|
2021-08-16 17:18:29 +09:00
|
|
|
void EventScript::onEventYield( Sapphire::Entity::Player& player, uint16_t scene, std::vector< uint32_t > param )
|
|
|
|
{
|
|
|
|
}
|
|
|
|
|
2021-09-08 11:25:16 +02:00
|
|
|
Event::EventHandler::QuestAvailability EventScript::getQuestAvailability( Sapphire::Entity::Player& player, uint32_t eventId )
|
2021-09-07 16:50:13 +02:00
|
|
|
{
|
2021-09-08 11:25:16 +02:00
|
|
|
return Event::EventHandler::QuestAvailability::Available;
|
2021-09-07 16:50:13 +02:00
|
|
|
}
|
|
|
|
|
2018-11-13 21:34:44 +11:00
|
|
|
///////////////////////////////////////////////////////////////////
|
2018-11-30 23:15:58 +11:00
|
|
|
|
|
|
|
EventObjectScript::EventObjectScript( uint32_t eobjId ) :
|
|
|
|
ScriptObject( eobjId, typeid( EventObjectScript ).hash_code() )
|
|
|
|
{
|
|
|
|
}
|
|
|
|
|
|
|
|
void EventObjectScript::onTalk( uint32_t eventId, Sapphire::Entity::Player& player, Entity::EventObject& eobj )
|
|
|
|
{
|
|
|
|
}
|
|
|
|
|
|
|
|
///////////////////////////////////////////////////////////////////
|
2018-09-25 07:18:42 -04:00
|
|
|
|
2018-11-13 21:34:44 +11:00
|
|
|
BattleNpcScript::BattleNpcScript( uint32_t npcId ) :
|
|
|
|
ScriptObject( npcId, typeid( BattleNpcScript ).hash_code() )
|
|
|
|
{
|
|
|
|
}
|
2018-09-25 07:18:42 -04:00
|
|
|
|
2018-11-13 21:34:44 +11:00
|
|
|
///////////////////////////////////////////////////////////////////
|
2018-09-25 07:18:42 -04:00
|
|
|
|
2018-11-13 21:34:44 +11:00
|
|
|
ZoneScript::ZoneScript( uint32_t zoneId ) :
|
|
|
|
ScriptObject( zoneId, typeid( ZoneScript ).hash_code() )
|
|
|
|
{
|
|
|
|
}
|
2018-09-25 07:18:42 -04:00
|
|
|
|
2018-11-13 21:34:44 +11:00
|
|
|
void ZoneScript::onZoneInit()
|
|
|
|
{
|
|
|
|
}
|
2018-09-25 07:18:42 -04:00
|
|
|
|
2018-11-13 21:34:44 +11:00
|
|
|
///////////////////////////////////////////////////////////////////
|
2018-09-25 07:18:42 -04:00
|
|
|
|
2018-11-13 21:34:44 +11:00
|
|
|
InstanceContentScript::InstanceContentScript( uint32_t instanceContentId ) :
|
|
|
|
ScriptObject( uint32_t{ 0x8003 } << 16 | instanceContentId, typeid( InstanceContentScript ).hash_code() )
|
|
|
|
{
|
|
|
|
}
|
2018-09-25 07:18:42 -04:00
|
|
|
|
2019-02-20 19:53:54 +11:00
|
|
|
void InstanceContentScript::onInit( InstanceContent& instance )
|
2018-11-13 21:34:44 +11:00
|
|
|
{
|
|
|
|
}
|
2018-09-25 07:18:42 -04:00
|
|
|
|
2019-04-04 23:29:52 +02:00
|
|
|
void InstanceContentScript::onUpdate( InstanceContent& instance, uint64_t tickCount )
|
2018-11-13 21:34:44 +11:00
|
|
|
{
|
|
|
|
}
|
2018-09-25 07:18:42 -04:00
|
|
|
|
2019-02-20 19:53:54 +11:00
|
|
|
void InstanceContentScript::onEnterTerritory( InstanceContent& instance, Entity::Player& player, uint32_t eventId,
|
2018-11-29 16:55:48 +01:00
|
|
|
uint16_t param1, uint16_t param2 )
|
2018-11-13 21:34:44 +11:00
|
|
|
{
|
|
|
|
}
|
2018-09-25 07:18:42 -04:00
|
|
|
|
2019-03-31 13:48:09 +02:00
|
|
|
///////////////////////////////////////////////////////////////////
|
|
|
|
|
|
|
|
QuestBattleScript::QuestBattleScript( uint32_t questBattleId ) :
|
|
|
|
ScriptObject( uint32_t{ 0x8006 } << 16 | questBattleId, typeid( QuestBattleScript ).hash_code() )
|
|
|
|
{
|
|
|
|
}
|
|
|
|
|
2019-04-07 13:27:56 +02:00
|
|
|
void QuestBattleScript::onDutyComplete( Sapphire::QuestBattle& instance, Entity::Player& player )
|
|
|
|
{
|
|
|
|
|
|
|
|
}
|
|
|
|
|
2019-04-02 00:00:58 +02:00
|
|
|
void QuestBattleScript::onPlayerSetup( Sapphire::QuestBattle& instance, Entity::Player& player )
|
|
|
|
{
|
|
|
|
}
|
|
|
|
|
2019-03-31 13:48:09 +02:00
|
|
|
void QuestBattleScript::onInit( QuestBattle& instance )
|
|
|
|
{
|
|
|
|
}
|
|
|
|
|
2019-04-04 23:29:52 +02:00
|
|
|
void QuestBattleScript::onUpdate( QuestBattle& instance, uint64_t tickCount )
|
2019-03-31 13:48:09 +02:00
|
|
|
{
|
|
|
|
}
|
|
|
|
|
2019-04-17 00:10:32 +02:00
|
|
|
void QuestBattleScript::onDutyCommence( QuestBattle& instance, Entity::Player& player )
|
|
|
|
{
|
|
|
|
}
|
|
|
|
|
2019-03-31 13:48:09 +02:00
|
|
|
void QuestBattleScript::onEnterTerritory( QuestBattle& instance, Entity::Player& player, uint32_t eventId,
|
|
|
|
uint16_t param1, uint16_t param2 )
|
|
|
|
{
|
|
|
|
}
|
|
|
|
|
2021-08-16 17:18:29 +09:00
|
|
|
PublicContentScript::PublicContentScript( uint32_t contentId ) :
|
|
|
|
ScriptObject( uint32_t{ 0x8004 } << 16 | contentId, typeid( PublicContentScript ).hash_code() )
|
|
|
|
{
|
|
|
|
}
|
|
|
|
|
|
|
|
void PublicContentScript::onInit( PublicContent& instance )
|
|
|
|
{
|
|
|
|
}
|
|
|
|
|
|
|
|
void PublicContentScript::onUpdate( PublicContent& instance, uint64_t tickCount )
|
|
|
|
{
|
|
|
|
}
|
|
|
|
|
|
|
|
void PublicContentScript::onPlayerZoneIn( PublicContent& instance, Entity::Player& player )
|
|
|
|
{
|
|
|
|
}
|
|
|
|
|
|
|
|
void PublicContentScript::onLeaveTerritory( PublicContent& instance, Entity::Player& player )
|
|
|
|
{
|
|
|
|
}
|
|
|
|
|
|
|
|
void PublicContentScript::onEnterTerritory( PublicContent& instance, Entity::Player& player, uint32_t eventId,
|
|
|
|
uint16_t param1, uint16_t param2 )
|
|
|
|
{
|
|
|
|
}
|
|
|
|
|
2018-09-25 07:18:42 -04:00
|
|
|
}
|
|
|
|
|