PDA

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



Albert
08.01.2015, 22:39
Я хочу создать работу. Когда игрок берёт дежурство, то появляется чекпоинт. Он на него становится, ему пишет в чат что-нибудь и появялется другой в другом месте. Он на него становится и происходят другие действия.

Я ищу мануалы. Нашёл лишь то что можно создавать на весь сервер один чекпоинт с одним действием. А как сделать по моему?



// На спауне игроку устанавливается чекпоинт
public OnPlayerSpawn(playerid)
{
SetPlayerCheckpoint(playerid, 1982.6150, -220.6680, -0.2432, 3.0);
return 1;
}

// когда игрок входит в чекпоинт, ему дают $1000.
// сам чекпоинт отключается
public OnPlayerEnterCheckpoint(playerid)
{
GivePlayerMoney(playerid, 1000);
DisablePlayerCheckpoint(playerid);
return 1;
}
//Translate by theAlone

Mazzilla
09.01.2015, 13:08
Создаём переменную, либо пвар, в котором будем хранить некий "айди чекпоинта", чтобы, встав на чекпоинт, у нас выполнялись нужные действия:

new CP_id[MAX_PLAYERS]; // к глобальным переменным
Используем так:

SetPlayerCheckPoint(playerid, ...);
CP_id[playerid] = 1;
в OnPlayerEnterCheckpoint(playerid):

if(CP_id[playerid] == 1)
{
DisablePlayerCheckpoint(playerid);
SetPlayerCheckpoint(playerid, ...);
SendClientMessage(playerid, -1, "Иди на следующий чекпоинт");
CP_id[playerid] = 2;
}
else if(CP_id[playerid] == 2)
{
DisablePlayerCheckpoint(playerid);
SendClientMessage(playerid, -1, "Миссия выполнена");
CP_id[playerid] = 0;
}

В OnPlayerConnect:

CP_id[playerid] = 0;

Albert
09.01.2015, 16:21
new CP_id[MAX_PLAYERS]; так и писать?
или может new CP_1[MAX_PLAYERS];
потом new CP_2[MAX_PLAYERS]; и т. д.?

Mazzilla
09.01.2015, 17:19
new CP_id[MAX_PLAYERS]; так и писать?
или может new CP_1[MAX_PLAYERS];
потом new CP_2[MAX_PLAYERS]; и т. д.?
Так и писать.

Albert
09.01.2015, 18:09
Что здесь нужно писать вместо троеточия?
SetPlayerCheckPoint(playerid, ...);

Для чего это писать в коннет?
CP_id[playerid] = 0;

- - - Добавлено - - -

error 017: undefined symbol "SetPlayerCheckPoint"

L0ndl3m
09.01.2015, 18:24
На SetPlayerCheckpoint замените, обнулять надо при коннекте, чтобы сервер "знал", что у игрока не установлен чекпоинт. Всё верно вам посоветовали. Только можно было всё через массив сделать, и от туда брать координаты. Но разницы никакой, разве что код будет проще.

Albert
09.01.2015, 19:05
Как всегда Лондлем всё доходчиво объяснит. И тебе, Мазила, спасибо большое. Всем спасибо большое. Проблема решена. Скоро буду спрашивать про систему бизнесов и домов.