Пример #1
0
lua_State* source_lua::SetupLuaInterface()
{
	lua_State* L = CreateLuaInterface();
	SetupWrappers(L);

	return L;
}
Пример #2
0
BOOL KScriptManager::Load()
{
    BOOL            bResult     = false;
    BOOL            bRetCode    = false;
    ILuaScriptEx*   piScript    = NULL;
    lua_State*      pLuaState   = NULL;

	piScript = CreateLuaInterface(&KMemory::LuaAllocator, NULL);
	KGLOG_PROCESS_ERROR(piScript);

    bRetCode = RegisterScriptFunctions(piScript);
    KGLOG_PROCESS_ERROR(bRetCode);

    piScript->RegisterConstList(g_LuaServerConstList);

    pLuaState = piScript->GetLuaState();
    KGLOG_PROCESS_ERROR(pLuaState);

    Luna<KScene>::Register(pLuaState);
    Luna<KHero>::Register(pLuaState);
    Luna<KPlayer>::Register(pLuaState);
    Luna<KAILogic>::Register(pLuaState);
    Luna<KAIState>::Register(pLuaState);
    Luna<KAIAction>::Register(pLuaState);
    Luna<KGItem>::Register(pLuaState);
    Luna<KGLuaItemInfo>::Register(pLuaState);
    Luna<KBall>::Register(pLuaState);

    bRetCode = LoadScripts(piScript, SERVER_SCRIPTS_DIR);
    KGLOG_PROCESS_ERROR(bRetCode);

    lua_gc(piScript->GetLuaState(), LUA_GCRESTART, 0);
    lua_gc(piScript->GetLuaState(), LUA_GCSETPAUSE, 100);
    lua_gc(piScript->GetLuaState(), LUA_GCSETSTEPMUL, 150);

    KG_COM_RELEASE(m_piScript);
    m_piScript = piScript;
    piScript = NULL;

    bResult = true;
Exit0:
    KG_COM_RELEASE(piScript);
    return bResult;
}
Пример #3
0
BOOL KScriptManager::Load()
{
    BOOL            bResult    = false;
    BOOL            bRetCode   = false;
    ILuaScriptEx*   piScript   = NULL;

	piScript = CreateLuaInterface(&KMemory::LuaAllocator, NULL);
	KGLOG_PROCESS_ERROR(piScript);

    bRetCode = RegisterScriptFunctions(piScript);
    KGLOG_PROCESS_ERROR(bRetCode);

    piScript->RegisterConstList(g_LuaCenterConstList);

    Luna<KGPQ>::Register(piScript->GetLuaState());
    Luna<KGlobalCustomDataManager>::Register(piScript->GetLuaState());
    Luna<KGlobalSystemValueManager>::Register(piScript->GetLuaState());
    Luna<KRole>::Register(piScript->GetLuaState());
    Luna<KTong>::Register(piScript->GetLuaState());
    Luna<KActivityManager>::Register(piScript->GetLuaState());
    Luna<KMentorCenter>::Register(piScript->GetLuaState());
    Luna<KMapInfo>::Register(piScript->GetLuaState());
    Luna<KMapCopy>::Register(piScript->GetLuaState());

    bRetCode = LoadScripts(piScript, CENTER_SCRIPTS_DIR);
    KGLOG_PROCESS_ERROR(bRetCode);

    lua_gc(piScript->GetLuaState(), LUA_GCRESTART, 0);
    lua_gc(piScript->GetLuaState(), LUA_GCSETPAUSE, 100);
    lua_gc(piScript->GetLuaState(), LUA_GCSETSTEPMUL, 150);

    KG_COM_RELEASE(m_piScript);
    m_piScript = piScript;
    piScript = NULL;

    bResult = true;
Exit0:
    KG_COM_RELEASE(piScript);
    return bResult;
}