mirror of
https://github.com/SapphireServer/Sapphire.git
synced 2025-04-25 14:07:46 +00:00
base scripts init code, call init before zone init for onZoneInit callback
This commit is contained in:
parent
aa72e715b6
commit
1bf33c8027
6 changed files with 38 additions and 8 deletions
|
@ -22,4 +22,9 @@ foreach(_sourcefile ${SCRIPT_FILES})
|
||||||
LIBRARY_OUTPUT_DIRECTORY_RELWITHDEBINFO "${CMAKE_CURRENT_SOURCE_DIR}/../../bin/compiledscripts/"
|
LIBRARY_OUTPUT_DIRECTORY_RELWITHDEBINFO "${CMAKE_CURRENT_SOURCE_DIR}/../../bin/compiledscripts/"
|
||||||
LIBRARY_OUTPUT_DIRECTORY_MINSIZEREL "${CMAKE_CURRENT_SOURCE_DIR}/../../bin/compiledscripts/"
|
LIBRARY_OUTPUT_DIRECTORY_MINSIZEREL "${CMAKE_CURRENT_SOURCE_DIR}/../../bin/compiledscripts/"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
add_custom_command(TARGET "${_file}" POST_BUILD
|
||||||
|
COMMAND ${CMAKE_COMMAND} -E remove "${CMAKE_CURRENT_SOURCE_DIR}/../../bin/${_file}.exp"
|
||||||
|
COMMAND ${CMAKE_COMMAND} -E remove "${CMAKE_CURRENT_SOURCE_DIR}/../../bin/${_file}.lib"
|
||||||
|
)
|
||||||
endforeach(_sourcefile ${SCRIPT_FILES})
|
endforeach(_sourcefile ${SCRIPT_FILES})
|
|
@ -105,6 +105,11 @@ namespace Core {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const std::string NativeScript::getModuleExtension()
|
||||||
|
{
|
||||||
|
return m_loader.getModuleExtension();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
boost::shared_ptr< NativeScript > create_script_engine( )
|
boost::shared_ptr< NativeScript > create_script_engine( )
|
||||||
{
|
{
|
||||||
|
|
|
@ -44,6 +44,8 @@ namespace Core {
|
||||||
void loadScript( std::string );
|
void loadScript( std::string );
|
||||||
void unloadScript( std::string );
|
void unloadScript( std::string );
|
||||||
void clearAllScripts();
|
void clearAllScripts();
|
||||||
|
|
||||||
|
const std::string getModuleExtension();
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -19,6 +19,8 @@
|
||||||
#include <boost/format.hpp>
|
#include <boost/format.hpp>
|
||||||
#include <boost/foreach.hpp>
|
#include <boost/foreach.hpp>
|
||||||
|
|
||||||
|
#include <Server_Common/Config/XMLConfig.h>
|
||||||
|
|
||||||
extern Core::Logger g_log;
|
extern Core::Logger g_log;
|
||||||
extern Core::Data::ExdData g_exdData;
|
extern Core::Data::ExdData g_exdData;
|
||||||
extern Core::ServerZone g_serverZone;
|
extern Core::ServerZone g_serverZone;
|
||||||
|
@ -33,7 +35,24 @@ Core::Scripting::ScriptManager::~ScriptManager()
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void Core::Scripting::ScriptManager::loadDir( std::string dirname, std::set<std::string>& chaiFiles )
|
bool Core::Scripting::ScriptManager::init()
|
||||||
|
{
|
||||||
|
std::set< std::string > files;
|
||||||
|
|
||||||
|
loadDir( g_serverZone.getConfig()->getValue< std::string >( "Settings.General.ScriptPath", "./compiledscripts/" ),
|
||||||
|
files, m_nativeScriptHandler->getModuleExtension() );
|
||||||
|
|
||||||
|
for( auto itr = files.begin(); itr != files.end(); ++itr )
|
||||||
|
{
|
||||||
|
auto& path = *itr;
|
||||||
|
|
||||||
|
g_log.debug( "got module: " + path );
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
void Core::Scripting::ScriptManager::loadDir( std::string dirname, std::set<std::string>& files, std::string ext )
|
||||||
{
|
{
|
||||||
|
|
||||||
g_log.info( "ScriptEngine: loading scripts from " + dirname );
|
g_log.info( "ScriptEngine: loading scripts from " + dirname );
|
||||||
|
@ -44,10 +63,9 @@ void Core::Scripting::ScriptManager::loadDir( std::string dirname, std::set<std:
|
||||||
|
|
||||||
BOOST_FOREACH( boost::filesystem::path const& i, make_pair( iter, eod ) )
|
BOOST_FOREACH( boost::filesystem::path const& i, make_pair( iter, eod ) )
|
||||||
{
|
{
|
||||||
if( is_regular_file( i ) && boost::filesystem::extension( i.string() ) == ".chai" ||
|
if( is_regular_file( i ) && boost::filesystem::extension( i.string() ) == ext )
|
||||||
boost::filesystem::extension( i.string() ) == ".inc" )
|
|
||||||
{
|
{
|
||||||
chaiFiles.insert( i.string() );
|
files.insert( i.string() );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -32,7 +32,7 @@ namespace Core
|
||||||
ScriptManager();
|
ScriptManager();
|
||||||
~ScriptManager();
|
~ScriptManager();
|
||||||
|
|
||||||
int32_t init();
|
bool init();
|
||||||
void reload();
|
void reload();
|
||||||
|
|
||||||
void onPlayerFirstEnterWorld( Entity::Player& player );
|
void onPlayerFirstEnterWorld( Entity::Player& player );
|
||||||
|
@ -60,7 +60,7 @@ namespace Core
|
||||||
bool onEventHandlerTradeReturn( Entity::Player& player, uint32_t eventId, uint16_t subEvent, uint16_t param, uint32_t catalogId );
|
bool onEventHandlerTradeReturn( Entity::Player& player, uint32_t eventId, uint16_t subEvent, uint16_t param, uint32_t catalogId );
|
||||||
|
|
||||||
|
|
||||||
void loadDir( std::string dirname, std::set<std::string>& chaiFiles );
|
void loadDir( std::string dirname, std::set<std::string>& files, std::string ext );
|
||||||
|
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
|
@ -222,11 +222,11 @@ void Core::ServerZone::run( int32_t argc, char* argv[] )
|
||||||
Network::HivePtr hive( new Network::Hive() );
|
Network::HivePtr hive( new Network::Hive() );
|
||||||
Network::addServerToHive< Network::GameConnection >( m_ip, m_port, hive );
|
Network::addServerToHive< Network::GameConnection >( m_ip, m_port, hive );
|
||||||
|
|
||||||
|
g_scriptMgr.init();
|
||||||
|
|
||||||
g_log.info( "ZoneMgr: Setting up zones" );
|
g_log.info( "ZoneMgr: Setting up zones" );
|
||||||
g_zoneMgr.createZones();
|
g_zoneMgr.createZones();
|
||||||
|
|
||||||
// g_scriptMgr.init();
|
|
||||||
|
|
||||||
std::vector< std::thread > thread_list;
|
std::vector< std::thread > thread_list;
|
||||||
thread_list.emplace_back( std::thread( std::bind( &Network::Hive::Run, hive.get() ) ) );
|
thread_list.emplace_back( std::thread( std::bind( &Network::Hive::Run, hive.get() ) ) );
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue