Форум HeroesWorld-а - Показать сообщение отдельно - Скрипты
Тема: Скрипты
Показать сообщение отдельно
#3321
Старый 10.02.2021, 00:29
  #3321
^
OrnsteinDragonslayer
 
Аватар для OrnsteinDragonslayer
📖
Регистрация: 10.01.2016
Сообщения: 154
Регистрация: 10.01.2016
Сообщения: 154
По умолчанию
Re: Скрипты

Приветствую рабочий класс. Проблема такова - нужно отследить активацию квеста - условия Коэффициент сюжетный и захвачен ли игроком город. Код таков. Стартую поток в начале скрипта, но игра выдает ошибку в консоли при загрузках. Что не так? Другие треды такие же нормально идут, а этот...
Value was NIL when getting global with name 'ActFinalSQ'
ERROR: StartThread first parameter must be a function
startThread(ActFinalSQ)

function ActFinalSQ()
         if A == 2 and SetObjectOwner('humanTown2', 1) then
         MessageBox("/Maps/SingleMissions/ChoiseOTW1/ActFSQ0.txt")
         SetObjectPosition('AratF', 67, 67, 0)
         SetObjectPosition('AstridaF', 69, 70, 0)
         SetObjectPosition('LoggensF', 65, 70, 0)
         sleep(2)
         MoveCamera(67, 67, 0, 2, 1, 285, 1, 0)
         sleep(10)
         MessageBox("/Maps/SingleMissions/ChoiseOTW1/ActFSQ1.txt")
         GetObjectiveState('FSQ', 1, OBJECTIVE_ACTIVE)
end
end


Добавлено через 39 минут
И второй вопрос вам с двух ног распишу. Не понимаю, как работает QuestionBox. Код представлю ниже. Что хочу - при взаимодействии с объектом всплывают диалоги, которые меняются в зависимости от коэффициента внутриигрового. В один из моментов должен быть представлен квешнбокс игроку, но в этот же момент времени воспроизводится функция которая в квешнбоксе забита при нажатии ОК, потом при ОТМЕНА, а потом вдобавок действие, которое делается при другом коэффициенте. У меня тут уже голова трескается, потому что всё вроде и работает - функции выполняются, да только не так, как нужно! Памахите решить траблс - что поменять нужно?
function Ensleg() --функция диалога
        if B == 1 then -- первая официальная встреча, диалог
           MessageBox("/Maps/SingleMissions/ChoiseOTW1/ED1.txt")
           sleep(2)
           MessageBox("/Maps/SingleMissions/ChoiseOTW1/ED2.txt")
           sleep(2)
           MessageBox("/Maps/SingleMissions/ChoiseOTW1/ED3.txt")
           sleep(2)
           B = 5
          if B == 5 then --спрашивает про телепорт к крипте
           QuestionBox("/Maps/SingleMissions/ChoiseOTW1/EQ.txt", AEY(), AEN())
        if B == 0 then -- встреча при неактивном квесте.
               MessageBox("/Maps/SingleMissions/ChoiseOTW1/ED0.txt")
        if B == 2 then -- встреча после тусни в крипте
               SQFinal()
        if B == 3 then -- встреча после прохождения квеста
               MessageBox("/Maps/SingleMissions/ChoiseOTW1/EE.txt")
        if B == 4 then -- есл игрок вступил в диалог рядом с криптой - спрашивает про возвращение назад.
               QuestionBox("/Maps/SingleMissions/ChoiseOTW1/EQ2.txt", AEY2(), AEN())
end
end
end
end
end
end
end

Trigger(OBJECT_TOUCH_TRIGGER, "ensleg", "Ensleg");


function AEY() -- ответ ДА - телепорт к крипте
         MessageBox("/Maps/SingleMissions/ChoiseOTW1/EN1.txt")
         sleep(1)
         MessageBox("/Maps/SingleMissions/ChoiseOTW1/EN2.txt")
         sleep(1)
         MessageBox("/Maps/SingleMissions/ChoiseOTW1/EN21.txt")
         sleep(1)
         MessageBox("/Maps/SingleMissions/ChoiseOTW1/EN3.txt")
         sleep(2)
         ETP()
end

function AEY2() --телепорт домой
           SetObjectPosition('Ohtarig', 100, 84, 0, 2)
           SetObjectPosition('ensleg', 102, 89, 0)
           B = 5
end

function ETP() --отказ телепортироваться
         SetObjectPosition('Ohtarig', 80, 169, 0, 2)
         SetObjectPosition('ensleg', 80, 167, 0)
         B = 4
end


Добавлено через 2 минуты
Там в самом низу некорректный комментарий - ETP -- телепорт к крипте.
OrnsteinDragonslayer вне форума
Ответить с цитированием