Консоль по умолчанию не выдает возвращаемый функциями результат, нужно обернуть принтом. Вот так у меня работает:
@print(GetPlayerHeroes(PLAYER_1))
@print(GetPlayerHeroes(PLAYER_1))
Впервые здесь? Я Роха — провести быструю экскурсию?
В данном примере startThreadOnce запускает функцию только если она не запущена в данный момент. isFunctionRunning проверяет запущена ли функция в данный момент.
local threads = {}
local startExec = function(func)
local threads = threads
errorHook(function()
%threads[%func] = nil
end)
threads[func] = 1
func()
threads[func] = nil
end
function startThreadOnce(func)
if not %threads[func] then
startThread(%startExec, func)
end
end
function isFunctionRunning(func)
return %threads[func]
end
Спасибо. Если функция выдаст ошибку, то она перейдёт в статус завершённой?
errorHook(function()
%threads[%func] = nil
end)
Где в файлах игры прописаны свойства навыков-умений и артефактов?
1) +5%, если у героя и нейтралов одинаковое мировоззрение (добрый/злой – как при расчете Боевого Духа)
2) +5%, если герой и нейтралы принадлежат к одному и тоже же замку
3) +5%, если в армии героя есть точно такие же существа, как и в нейтральной армии (обычные и улучшенные существа считаются разными)
4) +5%, если нейтралы – обычные существа, а в армии героя есть их улучшенный вариант (например, нейтралы – крестьяне, а в армии героя есть ополченцы)
5) +10%, если у героя есть умение «Дипломатия»
6) +20%, если у героя есть специализация на существ из нейтральной армии
if GetObjectOwner(hero) == 1 then
.....
endhero должен быть первым параметром функции, которую вызывает триггер. Например:function message(hero, region)