PHP код:
new player_checkpint_id[MAX_PLAYERS];
public OnPlayerCommandText(playerid, cmdtext[])
{
if(!strcmp(cmdtext, "/showcp_1", false))
{
if(player_checkpint_id[playerid] != 0)
return SendClientMessage(playerid, 0xFF0000FF, "Ошибка: {FFFFFF}Вам уже был показан один чекпоинт");
player_checkpint_id[playerid] = 1;
SetPlayerCheckpoint(...);
SendClientMessage(playerid, -1, "Показан чекпоинт №1");
return 1;
}
else if(!strcmp(cmdtext, "/showcp_2", false))
{
if(player_checkpint_id[playerid] != 0)
return SendClientMessage(playerid, 0xFF0000FF, "Ошибка: {FFFFFF}Вам уже был показан один чекпоинт");
player_checkpint_id[playerid] = 2;
SetPlayerCheckpoint(...);
SendClientMessage(playerid, -1, "Показан чекпоинт №2");
return 1;
}
else if(!strcmp(cmdtext, "/showcp_3", false))
{
if(player_checkpint_id[playerid] != 0)
return SendClientMessage(playerid, 0xFF0000FF, "Ошибка: {FFFFFF}Вам уже был показан один чекпоинт");
player_checkpint_id[playerid] = 3;
SetPlayerCheckpoint(...);
SendClientMessage(playerid, -1, "Показан чекпоинт №3");
return 1;
}
else if(!strcmp(cmdtext, "/hidecp", false))
{
if(player_checkpint_id[playerid] == 0)
return SendClientMessage(playerid, 0xFF0000FF, "Ошибка: {FFFFFF}Вам не показан ни один чекпоинт");
player_checkpint_id[playerid] = 0;
DisablePlayerCheckpoint(playerid);
SendClientMessage(playerid, -1, "Чекпоинт скрыт");
return 1;
}
}
public OnPlayerEnterCheckpoint(playerid)
{
switch(player_checkpint_id[playerid])
{
case 0:
{
DisablePlayerCheckpoint(playerid);
SendClientMessage(playerid, 0xFF0000FF, "Ошибка: {FFFFFF}Вам не был показан ни один чекпоинт");
}
case 1:
{
SendClientMessage(playerid, -1, "Вы взяли чекпоинт под №1");
DisablePlayerCheckpoint(playerid);
player_checkpint_id[playerid] = 0;
}
case 2:
{
SendClientMessage(playerid, -1, "Вы взяли чекпоинт под №2");
DisablePlayerCheckpoint(playerid);
player_checkpint_id[playerid] = 0;
}
case 3:
{
SendClientMessage(playerid, -1, "Вы взяли чекпоинт под №3");
SendClientMessage(playerid, -1, "Выйдите с него для его исчезновения");
}
}
}
public OnPlayerLeaveCheckpoint(playerid)
{
switch(player_checkpint_id[playerid])
{
case 3:
{
SendClientMessage(playerid, -1, "Вы вышли с чекпоинта под №3");
DisablePlayerCheckpoint(playerid);
player_checkpint_id[playerid] = 0;
}
}
}
Хотя удобнее будет написать свои аналоги функций, а-ля:
PHP код:
stock SetPlayerCheckpointEx(playerid, Float:x, Float:y, Float:z, Float:size, checkpointid)
{
if(checkpointid == 0)
return 0;
player_checkpint_id[playerid] = checkpointid;
return SetPlayerCheckpoint(playerid, x, y, z, size);
}
stock DisablePlayerCheckpointsForPlayer(playerid)
{
player_checkpint_id[playerid] = 0;
return DisablePlayerCheckpoint(playerid);
}
И уже использовать их для создания чекпоинтов