PDA

Просмотр полной версии : [Вопрос] квесты



Albert
13.01.2015, 22:00
Я создал квест в котором нужно пройти по двум точкам.
Вот так берётся квест:


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);. Не помогло

L0ndl3m
13.01.2015, 22:06
Вы проверяйте условие не два раза, а один. Если первое условие выполнилось, то второе не нужно выполнять, вместо второго условия:

if(CP_id[playerid] == 3)
пишите

else if(CP_id[playerid] == 3)

Albert
13.01.2015, 22:09
должно быть так?


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);

}

L0ndl3m
13.01.2015, 22:11
Да.

И ещё, когда копируете код из редактора, переключайте раскладку на русский язык, чтобы не было крякозябр. Также следите за табуляцией, весь код по разному построен, где-то есть символы табуляции, где-то обычные пробелы, ничего не разобрать почти.