ПобедительА можно немного подробнее объяснить ?
Поставил вместо "~1" "2", всё равно ничего не происходит. Потом сделал так: при захвате одного города, проверяется, не захвачен ли второй. Теперь, при захвате двух городов игра вылетает . С тем квестом тоже непонятно... Видимо, придётся переделывать.
значит так запускаю цикл: (также у меня здесь проверка на наличие монстра на карте, если его нету - миссия завалена)
while 1 do
if atonce_5==1 then
startThread (lost_PL4);
if IsObjectExists('Lelliana')==nil then
SetObjectiveState ('obj_7',OBJECTIVE_FAILED);
startThread(gameover);
end;
end;
sleep (5);
end;
этой функцией проверяем состояние игрока 4, т.е. тут
если PL_4 в игре не участвует, то задание 'obj_7' выполняется
function lost_PL4()
if
GetPlayerState(PLAYER_4)~=1 then
atonce_5=99;
SetObjectiveState ('obj_7',OBJECTIVE_COMPLETED);
end;
end;
ну и еще при активации задания нужно присвоить
atonce_5=1; а после выполнения задания atonce_5=99; чтоб цикл не затармаживал игру.
Попробуй еще сделать новое задание во вкладке Objectives, не изменяя параметры (сделать только name, description, OBJECTIVE_KIND_MANUAL) , и проверь как оно себя вести будет в случае его выполнения (будет ли миссия сразу выиграна, без выполнения других заданий)