command(kickall, playerid, params[]) // Credits to "PotH3Ad" //
{
new reason[100], string[128];
if(sscanf(params, "s", reason)) return SendClientMessage(playerid, COLOR_WHITE, "SYNTAX: /kickall [reason]");
else if(PlayerStatistics[playerid][pAdminLevel] >= 4) return SendClientMessage(playerid, COLOR_WHITE, "SYNTAX: /kickall [reason]");
for(new i=0; i<MAX_PLAYERS; i++)
{
if(i == playerid) continue;
format(string, sizeof(string), "Administrator %s has kicked all players. Reason: %s", GetName(playerid), reason);
SendClientMessageToAll(COLOR_RED, string);
SavePlayerAccount(i);
Kick(i);
}
return 1;
}
command(freeze, playerid, params[]) // Credits to mick88 //
{
if(PlayerStatistics[playerid][pAdminLevel] >= 2) return false;
new pid, string[128];
if(sscanf(params, "u", pid)) return SendClientMessage(playerid, COLOR_WHITE, "SYNTAX: /freeze [player]");
if(pid == INVALID_PLAYER_ID) return SendClientMessage(playerid, COLOR_WHITE, "That player is not connected!");
PlayerFrozen[pid] = !PlayerFrozen[pid];
TogglePlayerControllable(pid, !PlayerFrozen[pid]);
format(string, sizeof(string), "Administrator %s has frozen you!", GetName(playerid));
SendClientMessage(pid, COLOR_LIGHTBLUE, string);
format(string, sizeof(string), "You have frozen player %s", GetName(pid));
SendClientMessage(pid, COLOR_WHITE, string);
return 1;
}
command(pvrepair, playerid, params[])
{
new id, string[128];
if(sscanf(params, "u", id))
{
if(PlayerStatistics[playerid][pAdminLevel] >= 4)
{
SendClientMessage(playerid, COLOR_WHITE, "SYNTAX: /pvrepair [playerid]");
}
}
else
{
if(PlayerStatistics[playerid][pAdminLevel] >= 4)
{
if(IsPlayerConnectedEx(id))
{
if(IsPlayerInAnyVehicle(id))
{
RepairVehicle(GetPlayerVehicleID(id));
format(string, sizeof(string), "Administrator %s has fixed your vehicle!", GetName(playerid));
SendClientMessage(id, COLOR_LIGHTBLUE, string);
format(string, sizeof(string), "You have fixed %s's vehicle!", GetName(id));
SendClientMessage(playerid, COLOR_WHITE, string);
}
else
{
SendClientMessage(playerid, COLOR_LIGHTRED, "ERROR: That player is not in a vehicle!");
}
}
else
{
SendClientMessage(playerid, COLOR_LIGHTRED, "ERROR: That player is either not connected, or not logged in!");
}
}
}
return 1;
}
command(kickall, playerid, params[])
{
new reason[100], string[128];
if(sscanf(params, "s", reason)) return SendClientMessage(playerid, COLOR_WHITE, "SYNTAX: /kickall [reason]");
else if(PlayerStatistics[playerid][pAdminLevel] < 4) return SendClientMessage(playerid, COLOR_WHITE, "SYNTAX: /kickall [reason]");
for(new i=0; i<MAX_PLAYERS; i++)
{
if(i == playerid) continue;
format(string, sizeof(string), "Administrator %s has kicked all players. Reason: %s", GetName(playerid), reason);
SendClientMessageToAll(COLOR_RED, string);
SavePlayerAccount(i);
Kick(i);
}
return 1;
}
You don't assign any value to player_frozen, you should make a public array where you store informations which players are frozen and then check it when you execute command. The variable you used is local...
|
You don't assign any value to player_frozen before you check it, you should make a public array where you store informations which players are frozen and then check it when you execute command. The variable you used is local...
|
new PlayerFrozen[MAX_PLAYERS]; CMD:freeze() { //check if playerid is admin here new pid; //sscanf here PlayerFrozen[pid] = !PlayerFrozen[pid]; return TogglePlayerControllable(pid, !PlayerFrozen[pid]); }
Код:
new PlayerFrozen[MAX_PLAYERS]; CMD:freeze() { //check if playerid is admin here new pid; //sscanf here PlayerFrozen[pid] = !PlayerFrozen[pid]; return TogglePlayerControllable(pid, !PlayerFrozen[pid]); } This is the way i'd do it. I dont use PVars myself, i use arrays/enums for efficiency, but if you use PVars you can share player variables across filterscripts and you can print them out to console easily. |
new PlayerFrozen[MAX_PLAYERS];
CMD:freeze()
{
if(PlayerStatistics[playerid][pAdminLevel])
{
new pid;
if(sscanf(params, "u", id))
{
if(PlayerStatistics[playerid][pAdminLevel] >= 1)
{
SendClientMessage(playerid, COLOR_WHITE, "SYNTAX: /freeze [playerid]");
}
}
PlayerFrozen[pid] = !PlayerFrozen[pid];
return TogglePlayerControllable(pid, !PlayerFrozen[pid]);
}
return 1;
}
new pid; if(sscanf(params, "u", id))
PlayerFrozen[playerid] = false;
Код:
new pid; if(sscanf(params, "u", id)) And check if player id is correct, otherwise command will crash because INVALID_PLAYER_NAME is larger than array size MAX_PLAYERS. Reset by setting player as un-frozen when he connects: Код:
PlayerFrozen[playeris] |