PDA

Просмотр полной версии : [Вопрос] Команда /gethere



kala4iks
07.03.2015, 15:32
Всем привет выручайте как сделать проверку на то афк ли игрок или нет.
Вообщем суть такая как сделать чтоб когда админ попытался телепортировать игрока к сибе, а игрок которого пытаються телепортировать стоит афк то ое не будет телепортирован, а админу напишет ты не можешь телепортировать этого игрока к себе так как он афк.
Что-то в этом роде.


//==========================================================================
if(strcmp(cmd, "/gethere", true) == 0){
if(Player[playerid][pAdmin] < 3)return NoRights;
if(AdminDuty[playerid] == 0)return NoAduTy;
if(sscanf(params,"d",params[0]))return send(playerid,COLOR_COMAND,"[КОМАНДЫ] {FFFFFF}/gethere [id игрока]");
new Float:plocx,Float:plocy,Float:plocz;
if(!IsPlayerConnected(params[0]))return send(playerid, 0xff0000ff, NoConnectGivePlayer);
if(params[0] == playerid) return send(playerid,COLOR_RED,"[ОШИБКА] {FFFFFF}Нельзя телепортировать самого себя.");
if(Player[playerid][pAdmin] < 10 && Player[params[0]][pAdmin] > 10)return send(playerid,COLOR_RED,"[ОШИБКА] {FFFFFF}Ты не можешь телепортировать Гл.Администратору к себе.");
GetPlayerPos(playerid, plocx, plocy, plocz);
TeleportTime[params[0]] = 20;
SetPlayerVirtualWorld(params[0],GetPlayerVirtualWorld(playerid));
if(GetPlayerInterior(playerid) > 0) SetPlayerInterior(params[0],GetPlayerInterior(playerid));
if(GetPlayerInterior(playerid) == 0) SetPlayerInterior(params[0],0);
if(plocz > 930.0 && GetPlayerInterior(playerid) == 0) SetPlayerInterior(params[0],GetPlayerInterior(playerid));
if (GetPlayerState(params[0]) == 2) SetVehiclePos(GetPlayerVehicleID(params[0]), plocx, plocy+3, plocz);
else ServerSetPlayerPos(params[0],plocx,plocy+1, plocz);
f(string,"Ты был(а) телепортирован(а) к администратору %s.",sendername(playerid));
send(params[0],COLOR_WHITE,string);
return 1;}

Mazzilla
07.03.2015, 15:40
Мы должны знать, какая переменная в вашем моде отвечает за АФК игроков и какая у вас система АФК в принципе?

gangzone.ini
07.03.2015, 15:43
if(GetPVarInt(params[0], "PlayerInAFK") > 1) return send(playerid, COLOR_RED, "Данный игрок AFK");
Или:

if(AFKSystem(params[0], "AFK_Time") > 1) return send(playerid, COLOR_RED, "Данный игрок AFK");
Не уверина во 2-ом.

kala4iks
07.03.2015, 15:45
Мы должны знать, какая переменная в вашем моде отвечает за АФК игроков и какая у вас система АФК в принципе?


stock AFKSystem()
{
for(new playerid;playerid < GetMaxPlayers();playerid++)
{
if(!IsPlayerConnected(playerid)) continue;
if(GetPVarInt(playerid, "PlayerInAFK") == 0) SetPVarInt(playerid, "PlayerInAFK", -1);
else if(GetPVarInt(playerid, "PlayerInAFK") == -1)
{
SetPVarInt(playerid, "PlayerInAFK", 1);
new string[56];
f(string, "[АФК]: {FFFFFF}%s", ConvertSeconds(GetPVarInt(playerid, "PlayerInAFK")));
SetPlayerChatBubble(playerid, string, 0xFFFF00AA, 20.0, 1200);
}
else if(GetPVarInt(playerid, "PlayerInAFK") > 0)
{
new string[94];
SetPVarInt(playerid, "PlayerInAFK", GetPVarInt(playerid, "PlayerInAFK")+1);
f(string, "[АФК]: {FFFFFF}%s", ConvertSeconds(GetPVarInt(playerid, "PlayerInAFK")));
SetPlayerChatBubble(playerid, string, 0xFFFF00AA, 20.0, 1200);
}
}
}

gangzone.ini
07.03.2015, 15:49
Выше пост.

kala4iks
07.03.2015, 15:50
Выше пост.

Спасибо большое сейчас попробую.

gangzone.ini
07.03.2015, 16:12
Работает ?

kala4iks
07.03.2015, 16:42
Работает ?

да вроде-бы работает.