История изменений всех версий плагина MoonLoader

Версия Изменения Дата
.022-alpha
  • Некоторые внутренние изменения для большей совместимости с другими модификациями, добавлены диагностические тесты для выявления конфликтов
  • При падении скрипта из-за ошибки выполнения опкода теперь выводится идентификатор этого опкода
  • Исправлена проблема из-за которой скрипты не работали в фоновом режиме с модом на антипаузу
  • Сам плагин больше не включает в себя ядро Lua, а подключает его через lua51.dll, тем самым позволяя использовать модули уже собранные под Lua 5.1 и LuaJIT 2.0, и собирать их самостоятельно без изменения конфигурации
  • Добавлены пути поиска скомпилированных Lua-скриптов с расширением .luac для функций require и script.load
  • Изменены пути загрузки dll-модулей - по умолчанию dll-модули будут загружаться только из директории moonloader\lib\
  • Событие onWindowMessage больше не имеет возвращаемого параметра processScriptKeyhook, вместо этого функция consumeWindowMessage принимает второй необязательный аргумент, который отвечает за эту возможность
  • При выходе из игры скрипты выгружаются немного раньше полного завершения процесса, это должно избавить от некоторых проблем, которые могли возникнуть при использовании событий onScriptTerminate и onExitScript
  • События onScriptTerminate и onExitScript теперь имеют дополнительный аргумент quitGame, который имеет значение true, если скрипт завершается в связи с выходом из игры
  • Добавлены встроенные константы PLAYER_HANDLE и PLAYER_PED, являющиеся аналогом playerHandle и playerPed
  • Функция localClock возвращает время в зависимости от свойства workInPause потока, из которого была вызвана. Это правило распространяется и на основной поток скрипта
  • Исправлен баг, из-за которого свойство потока workInPause не применялось при перезапуске этого потока функцией lua_thread:run
  • Функция lua_thread.create больше не принимает логическое значение, отвечающее за запуск потока приостановленным
  • Функции lua_thread.create и lua_thread:run принимают переменное количество аргументов для передачи их функции-потоку, вместо таблицы
  • Новая функция lua_thread.create_suspended для запуска потока приостановленным
  • Исправлена регистрация функций sampCreate3dText и sampCreate3dTextEx
12.03.2017
.021-alpha
  • Поддержка Windows XP
  • Исправлена функция doFade
  • Устранён конфликт RakNet-хуков в нескольких скриптах
  • Новые функции isGamePaused, gameClock
  • Новая директива script_properties
  • Исправлен баг, приводящий к ошибкам при использовании функции downloadUrlToFile
  • Теперь по умолчанию все скрипты неактивны во время паузы игры. Эту возможность можно включить отдельно для каждого скрипта (см. script_properties)
23.12.2016
.020-alpha
  • Устранена проблема несовместимости добавленных скриптами GXT-записей с одиночной игрой
  • Глобальные внутренние изменения: общая оптимизация системы событий, улучшена обработка ошибок
  • Исправлен вывод сообщения об ошибке при загрузке скрипта
  • Добавлена возможность создания дополнительных обработчиков событий с помощью новой функции addEventHandler
  • Улучшена работа событий onSystemMessage и onScriptMessage - все сообщения добавляются в очередь и затем обрабатываются, благодаря чему будут обработаны все сообщения и в правильном порядке
26.11.2016
.019-alpha
13.11.2016
.018-alpha
  • Добавлена встроенная библиотека для работы с конфигурационными файлами ini - inicfg
  • Добавлена встроенная библиотека для работы с памятью игры - memory
  • Новое условие, при котором скрипт не будет прерывать работу самостоятельно - если отсутствует сопрограмма main, но есть обработчики событий, то скрипт будет продолжать работу, если его не завершить принудительно
  • Исправлен баг, вызывающий неправильную работу некоторых опкодов
04.10.2016
.017-alpha
20.09.2016
.016-alpha
  • Удалена функция 'chdir'
  • Добавлена возможность сравнения объектов информации о скрипте (напр. thisScript() == script.find("name"))
  • Функция print теперь может выводить значения любого типа
  • Исправлен баг, вызывающий некорректное поведение обработчиков команд чата и консоли
  • Исправлен вызов события 'onExitScript'
  • Исправлена функция 'raknetBitStreamDecodeString'
  • Некоторые функции CLEO были заменены встроенными, внешних различий не имеют, так что полностью совместимы:
    • writeMemory
    • readMemory
    • loadDynamicLibrary
    • freeDynamicLibrary
    • getDynamicLibraryProcedure
    • doesFileExist
    • doesDirectoryExist
    • createDirectory
    • popFloat
30.08.2016
.015-alpha Первый релиз 08.08.2016