1
Fork 0
mirror of https://github.com/SapphireServer/Sapphire.git synced 2025-05-08 03:37:45 +00:00

script api changes, fix indenting, some broken cmake shit

This commit is contained in:
GokuWeedLord 2017-12-10 02:13:54 +11:00
parent 230fc78c04
commit 6ff0e7d414
6 changed files with 125 additions and 63 deletions

View file

@ -66,3 +66,5 @@ add_subdirectory("src/tools/exd_struct_gen")
add_subdirectory("src/tools/exd_struct_test") add_subdirectory("src/tools/exd_struct_test")
add_subdirectory("src/tools/quest_parser") add_subdirectory("src/tools/quest_parser")
add_subdirectory("src/tools/pcb_reader") add_subdirectory("src/tools/pcb_reader")
add_subdirectory("scripts/native")

View file

@ -0,0 +1,22 @@
project(Sapphire_Script)
file(GLOB SCRIPT_INCLUDE_FILES "${CMAKE_CURRENT_SOURCE_DIR}/*.h")
file(GLOB_RECURSE SCRIPT_FILES "${CMAKE_CURRENT_SOURCE_DIR}/*.cpp")
foreach(_sourcefile "${SCRIPT_FILES}")
get_filename_component(_file "${_sourcefile}" NAME_WE)
add_library("${_file}" MODULE "${_sourcefile}" "${SCRIPT_INCLUDE_FILES}")
add_dependencies("${_file}" server_zone)
target_link_libraries("${_file}" server_zone)
set_target_properties("${_file}" PROPERTIES
CXX_STANDARD 14
CXX_STANDARD_REQUIRED ON
CXX_EXTENSIONS ON
RUNTIME_OUTPUT_DIRECTORY_DEBUG "${CMAKE_CURRENT_SOURCE_DIR}/../../bin/compiledscripts/"
RUNTIME_OUTPUT_DIRECTORY_RELEASE "${CMAKE_CURRENT_SOURCE_DIR}/../../bin/compiledscripts/"
RUNTIME_OUTPUT_DIRECTORY_RELWITHDEBINFO "${CMAKE_CURRENT_SOURCE_DIR}/../../bin/compiledscripts/"
RUNTIME_OUTPUT_DIRECTORY_MINSIZEREL "${CMAKE_CURRENT_SOURCE_DIR}/../../bin/compiledscripts/"
)
endforeach(_sourcefile "${SCRIPT_FILES}")

View file

@ -0,0 +1,9 @@
#ifndef SAPPHIRE_SCRIPTOBJECT_H
#define SAPPHIRE_SCRIPTOBJECT_H
#include <Server_Zone/Script/NativeScriptApi.h>
#include <Server_Zone/Actor/Actor.h>
#include <Server_Zone/Actor/Player.h>
#endif //SAPPHIRE_SCRIPTOBJECT_H

View file

@ -0,0 +1,15 @@
#include <scripts/native/ScriptObject.h>
class StatusEffect50 : StatusEffectScript
{
public:
StatusEffect50() : StatusEffectScript( "StatusEffect50", 50 )
{}
virtual void onTick( Core::Entity::ActorPtr actor )
{
}
};
EXPORT_STATUSEFFECTSCRIPT( StatusEffect50 )

View file

@ -46,6 +46,7 @@ set_target_properties(server_zone PROPERTIES
CXX_STANDARD 14 CXX_STANDARD 14
CXX_STANDARD_REQUIRED ON CXX_STANDARD_REQUIRED ON
CXX_EXTENSIONS ON CXX_EXTENSIONS ON
ENABLE_EXPORTS ON
RUNTIME_OUTPUT_DIRECTORY_DEBUG "${CMAKE_CURRENT_SOURCE_DIR}/../../../bin/" RUNTIME_OUTPUT_DIRECTORY_DEBUG "${CMAKE_CURRENT_SOURCE_DIR}/../../../bin/"
RUNTIME_OUTPUT_DIRECTORY_RELEASE "${CMAKE_CURRENT_SOURCE_DIR}/../../../bin/" RUNTIME_OUTPUT_DIRECTORY_RELEASE "${CMAKE_CURRENT_SOURCE_DIR}/../../../bin/"
RUNTIME_OUTPUT_DIRECTORY_RELWITHDEBINFO "${CMAKE_CURRENT_SOURCE_DIR}/../../../bin/" RUNTIME_OUTPUT_DIRECTORY_RELWITHDEBINFO "${CMAKE_CURRENT_SOURCE_DIR}/../../../bin/"

View file

@ -19,19 +19,17 @@ extern "C" __declspec( dllexport ) __cdecl base* get##base() \
class ScriptObject class ScriptObject
{ {
protected: protected:
const std::string m_scriptName; const std::string m_scriptName;
public: public:
ScriptObject( std::string name ) : ScriptObject( std::string name ) :
m_scriptName( name ) m_scriptName( name )
{ } { }
std::string getName() const const std::string getName()
{ {
return m_scriptName; return m_scriptName;
} }
virtual void onScriptUnload( ) { }
}; };
@ -39,91 +37,106 @@ class StatusEffectScript : ScriptObject
{ {
protected: protected:
const uint32_t m_effectId; const uint32_t m_effectId;
const uint32_t m_baseDuration;
public: public:
StatusEffectScript( std::string name, uint32_t effectId, uint32_t duration ) : StatusEffectScript( std::string name, uint32_t effectId ) :
ScriptObject( name ), ScriptObject( name ),
m_effectId( effectId ), m_effectId( effectId )
m_baseDuration( duration ) { }
{ }
uint32_t getEffectId( ) const const uint32_t getEffectId( )
{ {
return m_effectId; return m_effectId;
} }
uint32_t getBaseDuration( ) const
{
return m_baseDuration;
}
virtual Core::StatusEffect::StatusEffect applyEffect( Core::Entity::Actor sourceActor, Core::Entity::Actor targetActor ) { } virtual Core::StatusEffect::StatusEffect applyEffect( Core::Entity::Actor sourceActor, Core::Entity::Actor targetActor ) { }
virtual void onTick(Core::Entity::ActorPtr actor) { } virtual void onTick(Core::Entity::ActorPtr actor) { }
virtual void onApply(Core::Entity::ActorPtr actor) { } virtual void onApply(Core::Entity::ActorPtr actor) { }
virtual void onRemove( Core::Entity::Actor actor ) { } virtual void onRemove( Core::Entity::Actor actor ) { }
virtual void onExpire(Core::Entity::ActorPtr actor) { } virtual void onExpire(Core::Entity::ActorPtr actor) { }
virtual void onPlayerCollision( Core::Entity::Actor actor, Core::Entity::Actor actorHit ) { } virtual void onPlayerCollision( Core::Entity::Actor actor, Core::Entity::Actor actorHit ) { }
virtual void onPlayerFinishCast( Core::Entity::Actor actor ) { } virtual void onPlayerFinishCast( Core::Entity::Actor actor ) { }
virtual void onPlayerDamaged( Core::Entity::Actor actor ) { } virtual void onPlayerDamaged( Core::Entity::Actor actor ) { }
virtual bool onPlayerDeath( Core::Entity::Actor actor ) { } virtual bool onPlayerDeath( Core::Entity::Actor actor ) { }
}; };
class AbilityScript : ScriptObject class AbilityScript : ScriptObject
{ {
protected: protected:
uint32_t m_abilityId; const uint32_t m_abilityId;
public: public:
AbilityScript( std::string name, uint32_t abilityId ) : AbilityScript( std::string name, uint32_t abilityId ) :
ScriptObject( name ), ScriptObject( name ),
m_abilityId( abilityId ) m_abilityId( abilityId )
{ } { }
uint32_t GetAbilityId( ) const uint32_t GetAbilityId( )
{ {
return m_abilityId; return m_abilityId;
} }
virtual void onStart( Core::Entity::Actor sourceActor, Core::Entity::Actor targetActor ) { } virtual void onStart( Core::Entity::Actor sourceActor, Core::Entity::Actor targetActor ) { }
virtual bool onCastFinish(Core::Entity::Player player, Core::Entity::ActorPtr targetActor) { } virtual bool onCastFinish(Core::Entity::Player player, Core::Entity::ActorPtr targetActor) { }
virtual void onInterrupt( Core::Entity::Actor sourceActor/*, Core::Entity::Actor targetActor*/ ) { } virtual void onInterrupt( Core::Entity::Actor sourceActor/*, Core::Entity::Actor targetActor*/ ) { }
}; };
class QuestScript : ScriptObject class QuestScript : ScriptObject
{ {
protected: protected:
uint32_t QuestId; const uint32_t m_questId;
public:
QuestScript( std::string name, uint32_t questId ) :
ScriptObject( name ),
QuestId( questId )
{ }
virtual void onTalk(uint32_t eventId, Core::Entity::Player player, uint64_t actorId) { } public:
virtual void onNpcKill( uint32_t npcId, Core::Entity::Player player ) { } QuestScript( std::string name, uint32_t questId ) :
virtual void onEmote( uint64_t actorId, uint32_t eventId, uint32_t emoteId, Core::Entity::Player player ) { } ScriptObject( name ),
m_questId( questId )
{ }
const uint32_t getQuestId()
{
return m_questId;
}
virtual void onTalk(uint32_t eventId, Core::Entity::Player player, uint64_t actorId) { }
virtual void onNpcKill( uint32_t npcId, Core::Entity::Player player ) { }
virtual void onEmote( uint64_t actorId, uint32_t eventId, uint32_t emoteId, Core::Entity::Player player ) { }
}; };
class BattleNpcScript : ScriptObject class BattleNpcScript : ScriptObject
{ {
protected:
const uint32_t m_npcId;
public: public:
BattleNpcScript( std::string name ) : BattleNpcScript( std::string name, uint32_t npcId ) :
ScriptObject( name ) ScriptObject( name ),
{ } m_npcId( npcId )
{ }
const uint32_t getNpcId()
{
return m_npcId;
}
}; };
class ZoneScript : ScriptObject class ZoneScript : ScriptObject
{ {
public: protected:
ZoneScript( std::string name ) : const uint32_t m_zoneId;
ScriptObject( name )
{ }
virtual void onZoneInit() { } public:
virtual void onEnterZone( Core::Entity::Player pPlayer, uint32_t eventId, uint16_t param1, uint16_t param2 ) { } ZoneScript( std::string name, uint32_t zoneId ) :
ScriptObject( name ),
m_zoneId( zoneId )
{ }
virtual void onZoneInit() { }
virtual void onEnterZone( Core::Entity::Player pPlayer, uint32_t eventId, uint16_t param1, uint16_t param2 ) { }
}; };
#endif #endif