-
квесты
Я создал квест в котором нужно пройти по двум точкам.
Вот так берётся квест:
Код:
SendClientMessage(playerid,0x88AA88AA,"Сидорович: У меня особый заказ. На батарейку, которая водится на нашем кардоне.");
SendClientMessage(playerid,0x88AA88AA,"Сидорович: Вот координатыт. Приниси мне её. Хорошо заплачу");
SetPlayerCheckpoint(playerid, -1604.9066,-2714.2979,48.5335, 1.0); // координаты появившегося чекпоинта
CP_id[playerid] = 2; // ID появившегося чекпоинта
PlayerPlaySound(playerid, 41603, 0.0, 0.0, 0.0);
Код:
if(CP_id[playerid] == 2) //2 миссия // Если ID чекпоинта 2
{
DisablePlayerCheckpoint(playerid);
SendClientMessage(playerid,0xFF0000FF, "Теперь отнеси артефакт бармену");
SetPlayerCheckpoint(playerid, -224.7835,1404.1183,27.7734, 1.0);
CP_id[playerid] = 3; // создаём чекпоинт ID 3
}
if(CP_id[playerid] == 3) //2 миссия // Если ID чекпоинта 3
{
DisablePlayerCheckpoint(playerid);
SendClientMessage(playerid,0xFF0000FF, "Сидорович: Вот, спасибо... Выручил");
pInfo[playerid][pExp] += 5;
pInfo[playerid][pArt2] -= 1;
GameTextForPlayer(playerid, "Mission Complete + 5 Exp", 7000, 1);
PlayerPlaySound(playerid, 5203, 0.0, 0.0, 0.0); // Миссия выполнена
}
Проблемма в том, что когда я касаюсь первого чекпоинта, то вся миссия выполняется, хотя по плану мне нужно ещё коснуться второго чекпоинта.
В первом случае убирал DisablePlayerCheckpoint(playerid);. Не помогло
-
Вы проверяйте условие не два раза, а один. Если первое условие выполнилось, то второе не нужно выполнять, вместо второго условия:
PHP код:
if(CP_id[playerid] == 3)
пишите
PHP код:
else if(CP_id[playerid] == 3)
-
должно быть так?
Код:
if(CP_id[playerid] == 2) //2 ìèññèÿ
{
SendClientMessage(playerid,0xFF0000FF, "Òåïåðü îòíåñè àðòåôàêò áàðìåíó");
SetPlayerCheckpoint(playerid, -224.7835,1404.1183,27.7734, 1.0);
CP_id[playerid] = 3;
}
else if(CP_id[playerid] == 3) //2 ìèññèÿ
{
DisablePlayerCheckpoint(playerid);
SendClientMessage(playerid,0xFF0000FF, "Ñèäîðîâè÷: Âîò, ñïàñèáî... Âûðó÷èë");
pInfo[playerid][pExp] += 5;
pInfo[playerid][pArt2] -= 1;
GameTextForPlayer(playerid, "Mission Complete + 5 Exp", 7000, 1);
PlayerPlaySound(playerid, 5203, 0.0, 0.0, 0.0);
}
-
Да.
И ещё, когда копируете код из редактора, переключайте раскладку на русский язык, чтобы не было крякозябр. Также следите за табуляцией, весь код по разному построен, где-то есть символы табуляции, где-то обычные пробелы, ничего не разобрать почти.