В данной теме, написано, как сделать вход куда-либо по пропуску.
Итак, начнём:
) В enum pInfo добавляем:
pPropusk,
2) В public OnPlayerCommandText добавляем:
if(strcmp(cmd, "/givepropusk", true) == 0)
{
if(IsPlayerConnected(playerid))
{
tmp = strtok(cmdtext, idx);
if(!strlen(tmp))return SendClientMessage(playerid, COLOR_GRAD2, " Используйте: /givepropusk [ид игрока]");
new plo;
plo = ReturnUser(tmp);
if (PlayerInfo[playerid][pLeader] == 1 || PlayerInfo[playerid][pMember] == 1) // Вместо 1 можно указать любой номер фракции, какой вам нужно
{
if(IsPlayerConnected(plo))
{
if(PlayerInfo[plo][pPropusk] == 0) // Если у игрока нету пропуска выполняем действие ниже (выдаём пропуск)
{
PlayerInfo[plo][pPropusk] = 1;// Выдаём пропуск
GetPlayerName(playerid, sendername, sizeof(sendername));
GetPlayerName(plo, giveplayer, sizeof(giveplayer));
format(string, sizeof(string), "Вы выдали %s пропуск",giveplayer);
SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
format(string, sizeof(string), "%s выдал вам пропуск",sendername);
SendClientMessage(plo, COLOR_LIGHTBLUE, string);
}
else
{
PlayerInfo[plo][pPropusk] = 0; // если у игрока есть пропуск,то забираем.
GetPlayerName(playerid, sendername, sizeof(sendername));
GetPlayerName(plo, giveplayer, sizeof(giveplayer));
format(string, sizeof(string), "Вы забрали у %s пропуск",giveplayer);
SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
format(string, sizeof(string), "%s забрал у вас пропуск",sendername);
SendClientMessage(plo, COLOR_LIGHTBLUE, string);
}
}//not connected
}
else
{
format(string, sizeof(string), " %d такого игрока нету.", plo);
SendClientMessage(playerid, COLOR_GRAD1, string);
}
}
return 1;
3) В public OnPlayerPickUpPickup ищем что-то типа:
else if(pickupid == vhod)
{
SetPlayerPos(playerid, 2568.3000500,-2421.6999500,12.0000000);
SendClientMessage(playerid, 0x33CCFFAA, "Вы вошли в дверь!");
SetPlayerInterior(playerid, 0);
}
После { вставляем:
if(PlayerInfo[playerid][pPropusk] != 1)
return SendClientMessage(playerid, COLOR_GRAD1, "У вас нету пропуска.");
Т.е. Получается так:
else if(pickupid == vhod)
{
if(PlayerInfo[playerid][pPropusk] != 1)
return SendClientMessage(playerid, COLOR_GRAD1, "У вас нету пропуска.");
SetPlayerPos(playerid, 2568.3000500,-2421.6999500,12.0000000);
SendClientMessage(playerid, 0x33CCFFAA, "Вы вошли в дверь!");
SetPlayerInterior(playerid, 0);
}
Вот и всё.
Итак, начнём:
) В enum pInfo добавляем:
pPropusk,
2) В public OnPlayerCommandText добавляем:
if(strcmp(cmd, "/givepropusk", true) == 0)
{
if(IsPlayerConnected(playerid))
{
tmp = strtok(cmdtext, idx);
if(!strlen(tmp))return SendClientMessage(playerid, COLOR_GRAD2, " Используйте: /givepropusk [ид игрока]");
new plo;
plo = ReturnUser(tmp);
if (PlayerInfo[playerid][pLeader] == 1 || PlayerInfo[playerid][pMember] == 1) // Вместо 1 можно указать любой номер фракции, какой вам нужно
{
if(IsPlayerConnected(plo))
{
if(PlayerInfo[plo][pPropusk] == 0) // Если у игрока нету пропуска выполняем действие ниже (выдаём пропуск)
{
PlayerInfo[plo][pPropusk] = 1;// Выдаём пропуск
GetPlayerName(playerid, sendername, sizeof(sendername));
GetPlayerName(plo, giveplayer, sizeof(giveplayer));
format(string, sizeof(string), "Вы выдали %s пропуск",giveplayer);
SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
format(string, sizeof(string), "%s выдал вам пропуск",sendername);
SendClientMessage(plo, COLOR_LIGHTBLUE, string);
}
else
{
PlayerInfo[plo][pPropusk] = 0; // если у игрока есть пропуск,то забираем.
GetPlayerName(playerid, sendername, sizeof(sendername));
GetPlayerName(plo, giveplayer, sizeof(giveplayer));
format(string, sizeof(string), "Вы забрали у %s пропуск",giveplayer);
SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
format(string, sizeof(string), "%s забрал у вас пропуск",sendername);
SendClientMessage(plo, COLOR_LIGHTBLUE, string);
}
}//not connected
}
else
{
format(string, sizeof(string), " %d такого игрока нету.", plo);
SendClientMessage(playerid, COLOR_GRAD1, string);
}
}
return 1;
3) В public OnPlayerPickUpPickup ищем что-то типа:
else if(pickupid == vhod)
{
SetPlayerPos(playerid, 2568.3000500,-2421.6999500,12.0000000);
SendClientMessage(playerid, 0x33CCFFAA, "Вы вошли в дверь!");
SetPlayerInterior(playerid, 0);
}
После { вставляем:
if(PlayerInfo[playerid][pPropusk] != 1)
return SendClientMessage(playerid, COLOR_GRAD1, "У вас нету пропуска.");
Т.е. Получается так:
else if(pickupid == vhod)
{
if(PlayerInfo[playerid][pPropusk] != 1)
return SendClientMessage(playerid, COLOR_GRAD1, "У вас нету пропуска.");
SetPlayerPos(playerid, 2568.3000500,-2421.6999500,12.0000000);
SendClientMessage(playerid, 0x33CCFFAA, "Вы вошли в дверь!");
SetPlayerInterior(playerid, 0);
}
Вот и всё.