Перейти к содержанию

Дайджесты за январь-февраль

Обновления гайдов и аддонов

Январь Февраль

Мониторинг серверов и редактор аддонов

Представляем вам две легенды. То, о чем можно было только мечтать, стало реальностью.

Мониторинг серверов Редактор аддонов

Подсказки из игры на вашем сайте

Теперь вы можете отображать сведения о внутриигровых элементах простым наведением курсора мыши.

Подробнее

Апдейтер аддонов

Представляем вам программу для автообновления аддонов и делимся подробностями.

Подробнее Скачать

Изменения API в 15.1 и новый компилятор


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

Обновление 15.0.00.41 от 01.02.2024

Новое API

  1. widget:GetPickChildrenOnly(),  widget:SetPickChildrenOnly( state ) - получение состояния \ изменение свойства PickChildrenOnly
  2. control3D:IsAddedAsWidget3D( widget ) - проверяет что widget добавлен как widget3D в данный control3D
  3. object.GetBuffBySysName( objId, sysName ) - ищет у объекта бафф с указанным sysName и возвращает его objId (int). Если не найден - вернет nil, если несколько - вернет первый найденный (порядок не определен), если объект не найден или не может холдить бафы - упадет в ошибку.
  4. userMods.RegisterEscSequence( state ), userMods.NotifyEscSequence( state, rank ) - обработка ESC последовательностей. Подробности ниже.

Появилась возможность встраивать аддоны в ESC-последовательность. То есть корректно обрабатывать нажатия эскейпа.
Разумеется, есть и некоторые ограничения:

  • Не более 5 эскейпов на аддон
  • Нельзя не реагировать на эскейп
  • Нельзя взять дедлок
  • Нельзя юзать API без проверок корректности

В случае нарушения этих пунктов аддон будет выброшен из EscSequenceManager и "забанен" в нем до релога.

Понять как оно работает можно на примере класса-враппера, который реализует удобную обертку над API.
EscapeSequencePlugInUserMods.lua

 

Ссылка на комментарий
Поделиться на другие сайты

Обновление 15.0.01.XX от 25.04.2024

Переход на LuaJIT версии 2.1

К сожалению, бинарные (скомпилированные) скрипты НЕ совместимы между 2.0 и 2.1
Однако они в любом случае несовместимы между х86 и х64, так что остается лишь принять данность.

LuaCompiller.zip

Отличия данной версии от апстрима luajit 2.1

  1. Недоступны функции: getfenv, setfenv, loadfile, load, dofile, newproxy
  2. Недоступны библиотеки: debug, os, io, package, string.buffer
  3. Добавлен ряд новых функций
    • table.sclone( tab ) - возвращает копию таблицы tab. Нерекурсивно, быстро, метаметоды игнорируются, метатаблица не копируется.
    • table.clone( tab ) - возвращает копию таблицы tab. Рекурсивно, с учетом метатаблиц. Только в составе клиента игры.
    • table.nkeys( tab ) - полный размер таблицы tab (общее число пар key-value где value != nil)
    • table.new \ table.clear включены по умолчанию, отдельно загружать не нужно
    • apitype( any ) - перенос common.GetApiType( any ) в рантайм, реализовано как builtin функция. API функция объявляется deprecated
    • isindexableudata( any ) - проверяет, является ли аргумент индексируемой userdata (см. ниже). Использовать только в отладочных целях.
  4. Вводится понятие индексируемой userdata - теперь большинство юзердат являются индексируемыми и могут использоваться в качестве ключей в таблицах по значению, соответственно сравнение через == и ~= также доступно. Не являются индексируемыми: WString, ValuedText, ValuedObject и ряд других.

ValuedText становится full compareable

Теперь можно использовать ==, ~=, <, >, <=, >= между двумя ValuedText. Сравнение лексикографическое без учета форматирования.

Новые API

  • common.IsWidget( any ) - проверяет что аргумент является виджетом (любого типа)
  • WidgetSafe:CreateChildByDesc( WidgetDesc ) - метод доступен для всех типов виджетов - создает виджет по описателю в качестве ребенка виджета из которого был вызван метод.
    • WidgetSafe:GetWidgetDesc() более не работает для FormSafe и InvalidWidgetSafe (явно падает в ошибку вместо возврата странных значений)
    • FormSafe:CreateWidgetByDesc( WidgetDesc ) остается без изменений, но объявляется deprecated - его функционал полностью замещается WidgetSafe:CreateChildByDesc( WidgetDesc )

Некоторые deprecated функции были удалены (список может расшириться)

  • common.SetTextValues
  • common.ExtractWStringFromValuedText
  • common.GetIntFromWString
  • common.TruncateWString
  • common.GetWStringLength

 

Ссылка на комментарий
Поделиться на другие сайты

Также замечено по сломавшемуся

1) Удален raid.IsPlayerInAvatarsRaidById

2) raid.GetMembers() - индексы теперь начинаются с 1, а не 0

Ссылка на комментарий
Поделиться на другие сайты

Правки API рейда

Изменения

raid.IsLeader
	Добавлен опциональнй аргумент UniqueId || ObjectId
	Если рейдаа нет - вернет false (как и ранее)
	Если аргумент не передан - вернет статус лидерства MainPlayer (как и ранее)
	Если аргумент передан - вернет статус лидерства для данного id
raid.CanInvite
	Теперь аргумент опционален
	Если рейдаа нет - вернет false
	Если аргумент не прередан - вернет статус возможности приглашать в принципе
	Если аргумент передан - вернет статус возможности пригласить конкретного игрока
raid.GetMembers
	Добавлена проверка корректности в API
	Теперь индексация с 1
raid.GetMemberInfo
	Добавлена проверка корректности в API
	Теперь в качестве аргумента можно передать не только UniqueId но и ObjectId
raid.GetMemberRights
	Добавлена проверка корректности в API
	Теперь возвращает результат в виде hash_map< right, true >
raid.IsPlayerInAvatarsRaid
	Теперь принимает в качестве аргумента wstring || UniqueId || ObjectId
	Если рейда нет - вернет false
raid.IsPlayerInAvatarsRaidGroup
	Теперь принимает в качестве аргумента wstring || UniqueId || ObjectId
	Если рейда нет - вернет false


Новые API

raid.GetInviteInfo - Информация о приглашении в рейд
	Параметры - нет
	Возращаемое значение - таблица с полями
		invited - bool - есть активное приглашение
		inviterName - wstring - имя пригласившего (пустая строка при отсутствии)
		inviterShardName - wstring - название сервера пригласившего (пустая строка при отсутствии)

 

Удаленные API

raid.IsPlayerInAvatarsRaidById
raid.IsPlayerInAvatarsRaidGroupById

 

Ссылка на комментарий
Поделиться на другие сайты

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Восстановить форматирование

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

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

Важная информация

Пользуясь сайтом, вы принимаете Условия использования