Kazon
Компетентный
Вот команда /spec /specoff Знаю многие её ищут вот и выложил в 2-х вариантах на обычных и на ZCMD + Sscanf
Команда на ZCMD + Sscanf:
[HR][/HR]
Обычный вид команды:
Команда на ZCMD + Sscanf:
PHP:
CMD:spec(playerid, params[])
{
if(!IsPlayerConnected(playerid)) return true;
if(PlayerInfo[playerid][pAdmin] < 1) return true;
if(GetPVarInt(playerid, "SpecBool") == 1) return SendClientMessage(playerid, COLOR_LIGHTRED, "Вы за кем-то уже наблюдаете!");
if(sscanf(params, "u", params[0])) return SendClientMessage(playerid, COLOR_WHITE, "Введите: /spec [id игрока]");
if(!IsPlayerConnected(params[0])) return true;
if(params[0] == playerid) return SendClientMessage(playerid, COLOR_LIGHTRED, "Вы не можете наблюдать за собой!");
GetPlayerPos(playerid, params[1], params[2], params[3]);
GetPlayerFractingAngle(playerid, params[4]);
SetPVarInt(playerid, "SpecBool", 1);
SetPVarFloat(playerid, "SpecX", params[1]);
SetPVarFloat(playerid, "SpecY", params[2]);
SetPVarFloat(playerid, "SpecZ", params[3]);
SetPVarFloat(playerid, "SpecF", params[4]);
SetPVarInt(playerid, "SpecInt", GetPlayerInterior(playerid));
SetPVarInt(playerid, "SpecWorld", GetPlayerVirtualWorld(playerid));
if(IsPlayerInAnyVehicle(params[0])) PlayerSpectateVehicle(playerid, GetPlayerVehicleID(params[0]));
else PlayerSpectatePlayer(playerid, params[0]);
SetPlayerInterior(playerid, GetPlayerInterior(params[0]));
SetPlayerVirtualWorld(playerid, GetPlayerVirtualWorld(params[0]));
TogglePlayerSpectating(playerid, true);
return SendMes(playerid, COLOR_ORANGE, "Наблюдение за: %s (ID: %d)", sendername(params[0]), params[0]); // Ëó÷øå sendername() çàìåíèòå íà ñâîþ
}
PHP:
CMD:specoff(playerid, params[])
{
if(!IsPlayerConnected(playerid)) return true;
if(PlayerInfo[playerid][pAdmin] < 1) return true;
if(GetPVarInt(playerid, "SpecBool") == 0) return SendClientMessage(playerid, COLOR_LIGHTRED, "Вы не ведёте наблюдение!");
TogglePlayerSpectating(playerid,false);
SetPlayerPos(playerid, GetPVarFloat(playerid, "SpecX"), GetPVarFloat(playerid, "SpecY"), GetPVarFloat(playerid, "SpecZ"));
SetPlayerFacingAngle(playerid, GetPVarFloat(playerid, "SpecF"));
SetPlayerVirtualWorld(playerid, GetPVarFloat(playerid, "SpecWorld"));
SetPlayerInterior(playerid, GetPVarFloat(playerid, "SpecInt"));
DeletePVar(playerid, "SpecBool");
DeletePVar(playerid, "SpecX");
DeletePVar(playerid, "SpecY");
DeletePVar(playerid, "SpecZ");
DeletePVar(playerid, "SpecF");
DeletePVar(playerid, "SpecInt");
DeletePVar(playerid, "SpecWorld");
return SendClientMessage(playerid, COLOR_LIGHTRED, "Наблюдение прекращено!");
}
Обычный вид команды:
PHP:
if(strcmp(cmd, "/spec", true) == 0)
{
if(!IsPlayerConnected(playerid)) return true;
if(PlayerInfo[playerid][pAdmin] < 1) return true;
if(GetPVarInt(playerid, "SpecBool") == 1) return SendClientMessage(playerid, COLOR_LIGHTRED, "Вы за кем-то уже наблюдаете!");
tmp = strtok(cmdtext, idx);
if(!strlen(tmp)) return SendClientMessage(playerid, COLOR_WHITE, "Введите: /spec [id игрока]");
giveplayerid = ReturnUser(tmp);
tmp = strtok(cmdtext, idx);
if(!IsPlayerConnected(giveplayerid)) return true;
if(giveplayerid == playerid) return SendClientMessage(playerid, COLOR_LIGHTRED, "Вы не можете наблюдать за собой!");
new Float:Pos[4];
GetPlayerPos(playerid, Pos[0], Pos[1], Pos[2]);
GetPlayerFractingAngle(playerid, Pos[3]);
SetPVarInt(playerid, "SpecBool", 1);
SetPVarFloat(playerid, "SpecX", Pos[0]);
SetPVarFloat(playerid, "SpecY", Pos[1]);
SetPVarFloat(playerid, "SpecZ", Pos[2]);
SetPVarFloat(playerid, "SpecF", Pos[3]);
SetPVarInt(playerid, "SpecInt", GetPlayerInterior(playerid));
SetPVarInt(playerid, "SpecWorld", GetPlayerVirtualWorld(playerid));
if(IsPlayerInAnyVehicle(giveplayerid)) PlayerSpectateVehicle(playerid, GetPlayerVehicleID(giveplayerid));
else PlayerSpectatePlayer(playerid, giveplayerid);
SetPlayerInterior(playerid, GetPlayerInterior(giveplayerid));
SetPlayerVirtualWorld(playerid, GetPlayerVirtualWorld(giveplayerid));
TogglePlayerSpectating(playerid, true);
return SendMes(playerid, COLOR_ORANGE, "Наблюдение за: %s (ID: %d)", sendername(giveplayerid), giveplayerid); // Ëó÷øå sendername() çàìåíèòå íà ñâîþ
}
PHP:
if(strcmp(cmd, "/specoff", true) == 0)
{
if(!IsPlayerConnected(playerid)) return true;
if(PlayerInfo[playerid][pAdmin] < 1) return true;
if(GetPVarInt(playerid, "SpecBool") == 0) return SendClientMessage(playerid, COLOR_LIGHTRED, "Вы не ведёте наблюдение!");
TogglePlayerSpectating(playerid,false);
SetPlayerPos(playerid, GetPVarFloat(playerid, "SpecX"), GetPVarFloat(playerid, "SpecY"), GetPVarFloat(playerid, "SpecZ"));
SetPlayerFacingAngle(playerid, GetPVarFloat(playerid, "SpecF"));
SetPlayerVirtualWorld(playerid, GetPVarFloat(playerid, "SpecWorld"));
SetPlayerInterior(playerid, GetPVarFloat(playerid, "SpecInt"));
DeletePVar(playerid, "SpecBool");
DeletePVar(playerid, "SpecX");
DeletePVar(playerid, "SpecY");
DeletePVar(playerid, "SpecZ");
DeletePVar(playerid, "SpecF");
DeletePVar(playerid, "SpecInt");
DeletePVar(playerid, "SpecWorld");
return SendClientMessage(playerid, COLOR_LIGHTRED, "Наблюдение прекращено!");
}
Последнее редактирование:
