Добавлен , опубликован
Раздел:
Триггеры и объекты
Разобравшись с настройками и вкусив все прелести функции require вас наверное посещала гениальная мысль, что можно использовать один и тот же код в нескольких картах. Это помогло бы привести код к единому стилю и не писать одно и то же по много раз.
Чтоб не мудрствовать лукаво и не изобретать велосипеды, было принято простое решение, создать папку asset и распространять её вместе с UjAPI.

Handle Counter

require 'ujapi.asset.HandleCounter'
Подключает Handle Counter.

Order

require 'ujapi.asset.Order'
Позволяет использовать автодополнение в IDE при работе с приказами.

ConvertTypeFix

require 'ujapi.asset.ConvertTypeFix'
Позволяет убрать варнинги при отключенном No Warning при работе с jass переменными, полученными от Convert функций.

PlayerMouseMove

require 'ujapi.asset.PlayerMouseMove'
Добавляет две глобальные таблицы, содержащие синхронизированную позицию позицию мыши игроков.
PlayerMouseWorld = {}
PlayerMouseScreen = {}
Пример использования
local t = PlayerMouseWorld[1]; --В стиле lua индексация начинается с единицы
local wx, wy, wz = t[1], t[2], t[3];

DefaultTextTag

require 'ujapi.asset.DefaultTextTag'
DefaultTextTag позволяет имитировать стандартный плавающий текст. Так же имеет версию на zinc.
Пример использования
DefaultTextTag:widget(GetTriggerUnit()):goldBounty('+' .. tostring(GetRandomInt(1, 1000)))

DefaultTextTag:position(GetSpellTargetX(),GetSpellTargetY()):lumberBounty('+' .. tostring(GetRandomInt(1, 1000)))

RandomSeed

require 'ujapi.asset.RandomSeed'
RandomSeed позволяет генерировать псевдослучайные числа с зерном.
Пример использования
require 'ujapi.asset.RandomSeed'

local rng = RandomSeed:new(10);

for _ = 1, 10 do
    print('uniform: ', rng:uniform());
end

Настройка

Следуя рекомендациям в этой статье, обновите код из репозитория.
cd /D "D:\Warcraft III\lua"
rmdir /s /q ujapi
git clone https://github.com/nazarpunk/wc3-ujapi.git ujapi
Важно! Запуск этого кода сотрёт настройки лаунчера.
При включённом Dev Mode дополнительных действий не требуется. Код подключится из папки с игрой.
Для импорта в релизную версию карты, можете воспользоваться Map Import Manager и импортировать всю папку ujapi/asset.
Для настройки подсветки в IDE, добавьте asset.lua из папки sdk.

Послесловие

Проекты активно разрабатываются силами всего лишь нескольких человек и они не всегда успевают вовремя вносить в них правки. Так что не стесняйтесь поддерживать авторов рублём и писать комментарии.
Ваша поддержка очень важна!
`
ОЖИДАНИЕ РЕКЛАМЫ...