Подведи собственные итоги года совместно с YOUGAME и забери ценные призы! Перейти

Есть люди которые шарят в соли(sol бибиотека для lua)

Забаненный
Забаненный
Статус
Оффлайн
Регистрация
14 Фев 2020
Сообщения
73
Реакции
21
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
при загрузке луа(смотреть сс) крашится игра
unknown.png

функция лоад скрипта:
C++:
Expand Collapse Copy
    sol::state lua;
    lua.open_libraries(sol::lib::base, sol::lib::string, sol::lib::table, sol::lib::math, sol::lib::debug);
    lua.set_function("eventLogPrint", &eventLogPrint);
    lua.set_function("registerCallback", &registerCallbacks);
    lua.set_function("getScreenSize", &getScreenSize);
    lua.set_function("rect_fiiled", &rect_filled);
    g_pLua.loaded.push_back(name);
    lua.script_file("C:\\poxLua\\" + name + ".lua", [](lua_State*, sol::protected_function_result result) {
        if (!result.valid()) {
            sol::error err = result;
            c_event_logs::get().add(err.what(), Color::Red());
            }
        return result;
        });
Функции используемые в луа:
C++:
Expand Collapse Copy
void registerCallbacks(std::string scriptName, std::string eventName, sol::function func) {
    int id = get_script_id(scriptName);
    callbackManager.registerCallback(id, eventName, func);
}

std::tuple<int, int> getScreenSize() {
    int w, h;
    g_pEngine->GetScreenSize(w, h);
    return std::make_tuple(w, h);
}

void rect_filled(int x, int y, int w, int h, int r, int g, int b, int a) {
    g_pSurface->FilledRect(x, y, w, h, Color(r, g, b, a));
}
Получение скрипт ид:

C++:
Expand Collapse Copy
int get_script_id(std::string scriptName) {
    for (size_t i = 0; i < g_pLua.loaded.size(); i++) {
        if (g_pLua.loaded[i] == scriptName) {
            return static_cast<int>(i);
        }
    }
}
 
Назад
Сверху Снизу