Приветствую рабочий класс. Проблема такова - нужно отследить активацию квеста - условия Коэффициент сюжетный и захвачен ли игроком город. Код таков. Стартую поток в начале скрипта, но игра выдает ошибку в консоли при загрузках. Что не так? Другие треды такие же нормально идут, а этот...
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 -- телепорт к крипте.