Salut, am si eu 2 probleme pe care nu imi pot da seama cum le pot rezolva.
1.problema cu /specoff
merge sa dau /spec, dar cand dau /specoff ma scoate dupa spec si imi da respawn.
CMD:spec(playerid, params[])
{
if(gPlayerLogged[playerid] == 0) return SendClientMessage(playerid, COLOR_LIGHTRED, "You need to login first.");
if(IsPlayerConnected(playerid))
{
if(PlayerInfo[playerid][pAdmin] >= 1 || PlayerInfo[playerid][pHelper] >= 1)
{
new id,giveplayer[25],string[100];
if(sscanf(params, "u", id)) return SCM(playerid,COLOR_WHITE,"{B8DBFF}Synthax: /spec <Name/Playerid>");
{
if(IsPlayerConnected(id))
{
if(id != INVALID_PLAYER_ID)
{
Spectate[playerid] = id;
new Float:health;
GetPlayerHealthEx(Spectate[playerid], health);
GetPlayerName(Spectate[playerid], giveplayer, sizeof(giveplayer));
new cash = GetPlayerCash(Spectate[playerid]);
format(string, sizeof(string), "Watch: (%d) %s $%s Heal:%.0f",Spectate[playerid],giveplayer,FormatNumber(cash),health);
SendClientMessage(playerid, COLOR_GREEN, string);
TogglePlayerSpectating(playerid, 1);
if(IsPlayerInAnyVehicle(Spectate[playerid]))
{
new carid = GetPlayerVehicleID(Spectate[playerid]);
PlayerSpectateVehicle(playerid, carid);
}
else
{
PlayerSpectatePlayer(playerid, Spectate[playerid]);
}
}
}
else
{
SendClientMessage(playerid, COLOR_WHITE, "{FFFFCC}Error: Player not connected.");
}
}
}
else
{
SendClientMessage(playerid, COLOR_WHITE, AdminOnly);
return 1;
}
}
return 1;
}
CMD:specoff(playerid, params[])
{
if(gPlayerLogged[playerid] == 0) return SendClientMessage(playerid, COLOR_LIGHTRED, "You need to login first.");
if(IsPlayerConnected(playerid))
{
if(PlayerInfo[playerid][pAdmin] >= 1 || PlayerInfo[playerid][pHelper] >= 1)
{
if(Spectate[playerid] < 253 && Spectate[playerid] != 255)
{
TogglePlayerControllable(playerid, 1);
TogglePlayerSpectating(playerid, 0);
SetPlayerInterior(playerid,Unspec[playerid][sPint]);
PlayerInfo[playerid][pInt] = Unspec[playerid][sPint];
PlayerInfo[playerid][pLocal] = Unspec[playerid][sLocal];
Unspec[playerid][sLocal] = 255;
gTeam[playerid] = PlayerInfo[playerid][pTeam];
SetPlayerToTeamColor(playerid);
SendClientMessage(playerid, COLOR_GREEN, "You stopped watching a player.");
TextDrawHideForPlayer(playerid, TextDrawSpec[playerid][1]);
TextDrawHideForPlayer(playerid, TextDrawSpec[playerid][2]);
TextDrawHideForPlayer(playerid, TextDrawSpec[playerid][3]);
TextDrawHideForPlayer(playerid, TextDrawSpec[playerid][4]);
TextDrawHideForPlayer(playerid, TextDrawSpec[playerid][5]);
SpawnPlayer(playerid);
Spectate[playerid] = 255;
return 1;
}
}
else return SendClientMessage(playerid, COLOR_WHITE, AdminOnly);
}
return 1;
}
2.Problema spam /report
la gm-ul meu se poate da /report unul dupa altul, fara ca sa existe un timp anume, am incercat o gramada de modalitati dar nu reusesc.
CMD:report(playerid, params[])
{
if(gPlayerLogged[playerid] == 0) return SendClientMessage(playerid, COLOR_LIGHTRED, "You need to login first.");
if(IsPlayerConnected(playerid))
{
if(PlayerInfo[playerid][pAdmin] >= 1) return SCM(playerid,0xFFFFFFFF, "{FFB870}Error: Esti admin.");
new sendername[MAX_PLAYER_NAME],string[300],helptext[250];
GetPlayerName(playerid, sendername, sizeof(sendername));
if(sscanf(params, "s[250]",helptext)) return SCM(playerid,COLOR_WHITE,"{B8DBFF}Syntax: /report <Message>");
format(string, sizeof(string), "Report from %s (%d): %s.(/accept al %d)", sendername,playerid,helptext,playerid);
ABroadCast(COLOR_LIGHTRED,string,1);
reportsend[playerid] = 1;
if(rTime[playerid] == 1) return SendClientMessage(playerid, COLOR_WHITE, "{C90000}Info: {FFFFFF}Poti trimite un report o data la un minut.");
format(string, sizeof(string), "{006699}Report{ffffff}-ul tau a fost trimis catre {006699}admini{ffffff}: ''%s'' .",helptext);
SendClientMessage(playerid,COLOR_WHITE,string);
SetPVarString(playerid, "Report", helptext);
}
return 1;
}