Форум HeroesWorld-а - Показать сообщение отдельно - Скрипты для начинающих
Показать сообщение отдельно
#258
Старый 28.04.2022, 08:03
  #258
^
}{0TT@6bI4
 
Аватар для }{0TT@6bI4
📖
Регистрация: 05.09.2019
Адрес: Серебряные Города, Аль-Сафир
Сообщения: 2056
Выставка наград
Регистрация: 05.09.2019
Адрес: Серебряные Города, Аль-Сафир
Сообщения: 2056
Выставка наград
По умолчанию
Re: Скрипты для начинающих

Дело в том, что функция GetPlayerHeroes сама возвращает массив, поэтому значение полей массива heroes со 2 по 5 — nil, а первое — table. То же самое относится и к самой таблице "hero", поэтому в вашем случае и IsHeroAlive(hero) и IsHeroAlive(hero[k]) будут ломаться — с указанной вами ошибкой.
Поэтому нужно в локальный массив heroes скинуть таблицу из функции GetPlayerHeroes, потом пройтись по массиву с указанными действиями и всё.
function incom()
local day = GetDate(3)
if day == 2 then
    local heroes = GetPlayerHeroes(5)
    for k, hero in heroes do
    if IsHeroAlive(hero)
    then
        local types = {}
        types[0], types[1], types[2], types[3], types[4], types[5],types[6] = GetHeroCreaturesTypes(hero)
        for i = 0, 6 do
        if HasHeroCreature(hero, types[i])
        then
                local stack = GetCreatureById(types[i]) --Если вы копировали из RW, то, надеюсь, скопировали и функцию GetCreatureByld.
                local amount = GetHeroCreatures(hero, types[i])
                AddHeroCreatures(hero, types[i], amount, i)
                end
                end
            end
        end
    end
end

Trigger(NEW_DAY_TRIGGER, "incom")
__________________
С уважением, }{0TT@6bI4
_________________
Группа картостроителей
Там ответы на вопросы, руководства, гайды и прочее
Discord-сервер "Герои 5: S.T.A.L.K.E.R"
Сервер по модификации "Герои 5: S.T.A.L.K.E.R"
_________________
С уважением, }{0TT@6bI4
_________________
Группа картостроителей
Там ответы на вопросы, руководства, гайды и прочее
Discord-сервер "Герои 5: S.T.A.L.K.E.R"
Сервер по модификации "Герои 5: S.T.A.L.K.E.R"
_________________
}{0TT@6bI4 вне форума
Ответить с цитированием