2018-09-25 07:18:42 -04:00
|
|
|
#include <string>
|
|
|
|
#include <typeinfo>
|
|
|
|
#include <typeindex>
|
|
|
|
#include <Event/EventHandler.h>
|
|
|
|
#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-29 16:55:48 +01:00
|
|
|
void ScriptObject::setFramework( Sapphire::Framework* fw )
|
2018-11-13 21:34:44 +11:00
|
|
|
{
|
|
|
|
assert( fw );
|
|
|
|
m_framework = fw;
|
|
|
|
}
|
|
|
|
|
2018-11-29 16:55:48 +01:00
|
|
|
Sapphire::Framework* ScriptObject::getFramework() const
|
2018-11-13 21:34:44 +11:00
|
|
|
{
|
|
|
|
return m_framework;
|
|
|
|
}
|
|
|
|
|
|
|
|
///////////////////////////////////////////////////////////////////
|
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
|
|
|
|
2018-11-13 21:34:44 +11:00
|
|
|
ActionScript::ActionScript( uint32_t abilityId ) :
|
|
|
|
ScriptObject( abilityId, typeid( ActionScript ).hash_code() )
|
|
|
|
{
|
|
|
|
}
|
2018-09-25 07:18:42 -04:00
|
|
|
|
2018-11-13 21:34:44 +11:00
|
|
|
void ActionScript::onStart( Entity::Chara& sourceActor, Entity::Chara& targetActor )
|
|
|
|
{
|
|
|
|
}
|
2018-09-25 07:18:42 -04:00
|
|
|
|
2018-11-13 21:34:44 +11:00
|
|
|
void ActionScript::onCastFinish( Entity::Player& player, Entity::Chara& targetActor )
|
|
|
|
{
|
|
|
|
}
|
2018-09-25 07:18:42 -04:00
|
|
|
|
2018-11-29 16:55:48 +01:00
|
|
|
void ActionScript::onInterrupt( Entity::Chara& sourceActor/*, Sapphire::Entity::Chara targetActor*/ )
|
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
|
|
|
|
2018-11-13 21:34:44 +11:00
|
|
|
EventScript::EventScript( uint32_t questId ) :
|
|
|
|
ScriptObject( questId, typeid( EventScript ).hash_code() )
|
|
|
|
{
|
|
|
|
}
|
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
|
|
|
|
2018-11-13 21:34:44 +11:00
|
|
|
void
|
|
|
|
EventScript::onEventItem( Entity::Player& player, uint32_t eventItemId, uint32_t eventId, uint32_t castTime, uint64_t targetId )
|
|
|
|
{
|
|
|
|
}
|
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
|
|
|
|
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
|
|
|
|
2018-11-13 21:34:44 +11:00
|
|
|
void InstanceContentScript::onInit( InstanceContentPtr instance )
|
|
|
|
{
|
|
|
|
}
|
2018-09-25 07:18:42 -04:00
|
|
|
|
2018-11-13 21:34:44 +11:00
|
|
|
void InstanceContentScript::onUpdate( InstanceContentPtr instance, uint32_t currTime )
|
|
|
|
{
|
|
|
|
}
|
2018-09-25 07:18:42 -04:00
|
|
|
|
2018-11-29 16:55:48 +01:00
|
|
|
void InstanceContentScript::onEnterTerritory( InstanceContentPtr instance, Entity::Player& player, uint32_t eventId,
|
|
|
|
uint16_t param1, uint16_t param2 )
|
2018-11-13 21:34:44 +11:00
|
|
|
{
|
|
|
|
}
|
2018-09-25 07:18:42 -04:00
|
|
|
|
|
|
|
}
|
|
|
|
|