Перейти к контенту

Инструмент


Kirgudu

Рекомендуемые сообщения

@Kirgudu 

22 часа назад, Kirgudu сказал:

поскольку это немодифицированный старый ТЧ, пространство имён IO недоступно

Чтобы добавить для лицензионных движков ТЧ пространство имён IO можно использовать расширитель Lua от RvP -  http://code.google.com/p/xrluafix/

Или подобную версию от Artos - https://modsfire.com/DZ87vPi78892CkC

Скрытый текст

xrLuaFix - расширитель Lua для S.T.A.L.K.E.R SHoC|CS|CoP (ТЧ/ЧН/ЗП)

xrLuaFix базируются на исходниках: http://code.google.com/p/xrluafix/ (by RvP)
и совместима со всеми официальными версиями S.T.A.L.K.E.R : ТЧ, ЧН и ЗП (соответственно).

Краткое описание:
-----------------
Добавляемые в игру функции:
    глобальное пространство имен:
        void logf(string1 [, string2, string3, ...]) -- вывод в лог аргументов, каждый аргумент в новой строке.
        void LuaFix([arg])    -- открывает доп. пространства имен io, os, package и debug.
        void LuaExt()    -- расширяет пространства имен math, string, table и добавляет функции куйлоггера.
            set_vKeyCB() -- запуск обработчика нажатия клавиш
            get_vKeyCB() -- запрос из обработчика о нажатых клавишах. out: table[vk] = true
            vKeyPressed(vk1[,vk2]) -- запрос о нажатой клавише (двух славишах)

Дополнительные/возвращенные пространства имен:
    os -- для ТЧ
    io -- для ТЧ
    package -- для ТЧ (добавляет и глобальную функцию require)
    debug -- опционально

Расширители пространств:
    math.random([a[, b]]) -- замена стандартной функции, более быстрая. Использование прежнее
    math.randomseed(x)    -- замена стандартной функции генератора псевдослучайных чисел

    string.trim(str)    -- обрезка строки
    string.trim_l(str)    -- обрезка строки слева
    string.trim_r(str)    -- обрезка строки справа
    string.trim_w(str)    -- обрезка строки по первому слову

    table.keys(t)        -- возвращает таблицу ключей таблицы
    table.values(t)        -- возвращает таблицу значений таблицы
    table.size(t)        -- возвращает реальный размер таблицы
    table.random(t)        -- возвращает случайный елемент таблицы
    
    lfs -- Оригинальная Lua библиотека. Подробное описание и использование: http://keplerproject.github.com/luafilesystem/

Установка:
----------
Для ТЧ (SHoC) (path 1.0004 и выше):
В папке "bin" переименовать файл "xrLua.dll" в "xrLua_GSC.dll" и на его место скопировать xrLuaFix.dll, переименовав его в "xrLua.dll".
Т.е. исходный файл переименовывается (не удалять!), а вместо него копируется модифицированный. Наличие "xrLua_GSC.dll" - обязательно!
Вышеуказанное можно выполнить ввтоматически, скопировав файлы в папку 'bin' и запустив xrLuaFix_install.bat.

Для ЧН/ЗП (CS/CoP):
Скопировать в папку 'bin' соответствующую версию файла 'xrLuaFix.dll' из папок архива 'bin_CS' или 'bin_CoP'.
Внимание: Все исходные библиотеки игры НЕ заменяются.

Использование:
--------------
Для ЧН/ЗП (CS/CoP): Для подключения библиотеки расширителя (DLL) требуется после запуска игры из скриптов вызвать функцию:
    require("xrLuaFix")

Для активизации дополнительных расширений требуется после запуска игры (и подключения DLL в ЧН/ЗП) из скриптов вызвать функцию:
    "LuaFix()" -- аргументы опциональны

Для расширения пространств math, string, table и добавления функций кейлоггера требуется из скриптов вызвать функцию:
    LuaExt()
    
Варианты вызова функции LuaFix:
----------------------------
Вариант 1: Только восстановление namespace: io|os|package (for SHoC)
    LuaFix() --/ or local build_version = LuaFix() - вернет версию библиотеки которая должжна соответствовать xrGame.dll

Вариант 2: Дополнительно к вар.1 добавляется namespace debug
    LuaFix("debug") --/ or LuaFix(true)

Вариант 3: Дополнительно к вар.1/2 создается дебаговый лог-файл
    local fname = getFS():update_path("$logs$", "xray_debug.log") --/ путь и имя дебаг-файла лога
    LuaFix(fname) --/ or LuaFix(fname, '[%x %X]\t')

Практические примеры использования см. в файле: lua_fix.script
------------------------------------------------------------------

12.10.2012
Artos

Добавление в игру очень простое (справятся даже новички), На ранних патчах не проверял, но на 1.0004-1.0006 работает 100%.

Поделиться этим сообщением


Ссылка на сообщение
  • Недавно просматривали   0 пользователей

    • Ни один зарегистрированный пользователь не просматривает эту страницу.
  • Куратор(ы) темы:

×
×
  • Создать...