Форум HeroesWorld-а - Показать сообщение отдельно - Скрипты
Тема: Скрипты
Показать сообщение отдельно
#3727
Старый 22.10.2022, 03:34
  #3727
^
Shiroyasha2910
📖
Регистрация: 07.07.2019
Сообщения: 58
Регистрация: 07.07.2019
Сообщения: 58
По умолчанию
Re: Скрипты

Здравствуйте, решил сделать скрипт, где понадобится один триггер на несколько функции (их планируется 5, сейчас написаны 2), но после использования определенной функции, она должна переставать работать. Проблема в том, что попытался решить данный вопрос через проверку глобальных переменных, однако, столкнулся с тем, что они не работают, а именно вылазит ошибка, что значение false у них не найдено.

FORTUNATE_ADVENTURER_DONE = false -- так ведь делаются глобальные переменные, правильно?
ESTATES_DONE = false

function FORTUNATE_ADVENTURER (hero)
local playerID = GetObjectOwner(hero)
local art_1 = {1,5,8,12,14,18,19,20,27,31,32,34,55,56,57,58,60,6    1,62,64,65,66,70,74,75,80,87}
local art_2 = {2,4,9,16,17,21,23,25,35,36,37,38,40,41,42,43,52,6    3,71,82}
local art_3 = {6,11,13,15,22,33,39,44,45,46,47,48,49,50,51,59,67    ,68,69,76,77,78,79,81,83,85,86}
local id_1 = art_1[random(length(art_1))]
local id_2 = art_2[random(length(art_2))]
local id_3 = art_3[random(length(art_3))]
local LUCK = GetHeroSkillMastery(hero, SKILL_LUCK)
local Fortunate_adventurer = GetHeroSkillMastery(hero, PERK_FORTUNATE_ADVENTURER)
print(hero, playerID)
      if Fortunate_adventurer == 1 then
         if LUCK == 1 then
         GiveArtifact(hero, id_1, 1)
                            elseif LUCK == 2 then
                            GiveArtifact(hero, id_2, 1)
                            elseif LUCK == 3 then
                            GiveArtifact(hero, id_3, 1)
         end
      end
      FORTUNATE_ADVENTURER_DONE = true -- смена значения переменной
end
-----------------------------Dop_Golda------------------------------------------
function ESTATES (hero)
local number = GetObjectOwner(hero)
local playerID = number
local Gold = GetPlayerResource(number,6)
local ESTATE = GetHeroSkillMastery(hero, PERK_ESTATES)
print(hero,playerID)
      if ESTATE == 1 then
         SetPlayerResource(playerID, 6,Gold+8000)
      end
      ESTATES_DONE = true -- смена значения переменной
end

function pp (hero) -- главная функция
if not FORTUNATE_ADVENTURER_DONE then
   FORTUNATE_ADVENTURER(hero)
end
if not ESTATES_DONE then
   ESTATES(hero)
end
end

for i = 1,53 do
    for x = 1,4 do
    Trigger(OBJECT_TOUCH_TRIGGER,"PortalP" .. x.. "_" ..i,"pp")
    end
end
Shiroyasha2910 вне форума
Ответить с цитированием