Добро пожаловать на Pro Pawn - Портал о PAWN-скриптинге.
Показано с 1 по 4 из 4

Тема: квесты

  1. #1
    Аватар для Albert
    Пользователь

    Статус
    Оффлайн
    Регистрация
    24.12.2014
    Сообщений
    109
    Репутация:
    0 ±

    квесты

    Я создал квест в котором нужно пройти по двум точкам.
    Вот так берётся квест:
    Код:
    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);. Не помогло
    Не злитесь. Я всего лишь учусь скриптить

  2. #2
    Аватар для L0ndl3m
    Пользователь

    Статус
    Оффлайн
    Регистрация
    19.10.2013
    Адрес
    Ярославль
    Сообщений
    1,366
    Репутация:
    774 ±
    Вы проверяйте условие не два раза, а один. Если первое условие выполнилось, то второе не нужно выполнять, вместо второго условия:
    PHP код:
    if(CP_id[playerid] == 3
    пишите
    PHP код:
    else if(CP_id[playerid] == 3

  3. Пользователь сказал cпасибо:
    Albert (13.01.2015)
  4. #3
    Аватар для Albert
    Пользователь

    Статус
    Оффлайн
    Регистрация
    24.12.2014
    Сообщений
    109
    Репутация:
    0 ±
    должно быть так?
    Код:
    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);
    
    }
    Не злитесь. Я всего лишь учусь скриптить

  5. #4
    Аватар для L0ndl3m
    Пользователь

    Статус
    Оффлайн
    Регистрация
    19.10.2013
    Адрес
    Ярославль
    Сообщений
    1,366
    Репутация:
    774 ±
    Да.

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

 

 

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •