comando buga o servidor todo - fear - 31/01/2025
boa tarde.
Estou com um problema que quando o staff da /espiar o servidor para de funciona tudo.. parece que tu desligo os plugins e o gm.. ele nao da erro algum no chat mas tb nao funciona comandos e mais nada..
comando espiar e esparioff
oque ta de errado?
Código PHP: CMD:espiar(playerid, params[]) { new id,string[128]; if(PlayerInfo[playerid][Admin] < 1) return SendClientMessage(playerid,Vermelho,"[ ERRO ] Voce nao tem permissao!");
if(sscanf(params, "u", id)) return SendClientMessage(playerid, Vermelho, "[ ERRO ] Digite: /Espiar [id ou nick]");
if(PlayerInfo[id][Admin] > PlayerInfo[playerid][Admin]) return SendClientMessage(playerid, Vermelho, "[ ERRO ] Voce nao pode aplicar esse tipo de comando em seus Superiores!");
if(!IsPlayerConnected(id)) return SendClientMessage(playerid,Vermelho,"[ ERRO ] Player nao Conectado!"); new Status = GetPlayerState(id);
GetPlayerPos(playerid, PlayerInfo[playerid][posEspiar][0], PlayerInfo[playerid][posEspiar][1], PlayerInfo[playerid][posEspiar][2]);
if(Status == PLAYER_STATE_DRIVER || Status == PLAYER_STATE_PASSENGER) { SetPlayerInterior(playerid,GetPlayerInterior(id)); SetPlayerVirtualWorld(playerid,GetPlayerVirtualWorld(id)); TogglePlayerSpectating(playerid, 1); PlayerSpectateVehicle(playerid, GetPlayerVehicleID(id));
gSpectateID[playerid] = id; gSpectateType[playerid] = ADMIN_SPEC_TYPE_VEHICLE;
format(string,sizeof(string),"Player: ~r~%s[%d]",pName[id],id); PlayerTextDrawSetString(playerid, ESPIANDO[1][playerid],string);
format(string,sizeof(string),"Mundo: ~r~%s",modosq(id)); PlayerTextDrawSetString(playerid, ESPIANDO[2][playerid],string); for(new i = 0; i < sizeof(ESPIANDO); i++)PlayerTextDrawShow(playerid,ESPIANDO[i][playerid]); SendClientMessage(playerid,COR_ZONE,"| ZP - Admin | Voce esta espiando!"); } else { SetPlayerInterior(playerid,GetPlayerInterior(id)); SetPlayerVirtualWorld(playerid,GetPlayerVirtualWorld(id)); TogglePlayerSpectating(playerid, 1); PlayerSpectatePlayer(playerid, id);
gSpectateID[playerid] = id; gSpectateType[playerid] = ADMIN_SPEC_TYPE_PLAYER;
format(string,sizeof(string),"Player: ~r~%s[%d]",pName[id],id); PlayerTextDrawSetString(playerid, ESPIANDO[1][playerid],string);
format(string,sizeof(string),"Mundo: ~r~%s",modosq(id)); PlayerTextDrawSetString(playerid, ESPIANDO[2][playerid],string); for(new i = 0; i < sizeof(ESPIANDO); i++)PlayerTextDrawShow(playerid,ESPIANDO[i][playerid]); SendClientMessage(playerid,COR_ZONE,"| ZP - Admin | Voce esta espiando!"); }
return 1; }
Código PHP: CMD:pr(playerid, params[]) { if(PlayerInfo[playerid][Admin] < 1) return SendClientMessage(playerid,Vermelho,"[ ERRO ] Voce nao tem permissao!");
if(gSpectateID[playerid] == -1) { return SendClientMessage(playerid, Vermelho, "[ ERRO ] Voce nao esta espiando nenhum player"); }
TogglePlayerSpectating(playerid, 0); SetPlayerSkin(playerid,PlayerInfo[playerid][skin]); SetPlayerInterior(playerid,0); gSpectateID[playerid] = INVALID_PLAYER_ID; gSpectateType[playerid] = ADMIN_SPEC_TYPE_NONE;
for(new i = 0; i < sizeof(ESPIANDO); i++) PlayerTextDrawHide(playerid,ESPIANDO[i][playerid]); SetPlayerPos(playerid, PlayerInfo[playerid][posEspiar][0], PlayerInfo[playerid][posEspiar][1], PlayerInfo[playerid][posEspiar][2]); SetPlayerFacingAngle(playerid,275.7067); return 1; }
RE: comando buga o servidor todo - Cifra Modder - 31/01/2025
(31/01/2025 12:14)fear Escreveu: boa tarde.
Estou com um problema que quando o staff da /espiar o servidor para de funciona tudo.. parece que tu desligo os plugins e o gm.. ele nao da erro algum no chat mas tb nao funciona comandos e mais nada..
comando espiar e esparioff
oque ta de errado?
Código PHP: CMD:espiar(playerid, params[]) { new id,string[128]; if(PlayerInfo[playerid][Admin] < 1) return SendClientMessage(playerid,Vermelho,"[ ERRO ] Voce nao tem permissao!");
if(sscanf(params, "u", id)) return SendClientMessage(playerid, Vermelho, "[ ERRO ] Digite: /Espiar [id ou nick]");
if(PlayerInfo[id][Admin] > PlayerInfo[playerid][Admin]) return SendClientMessage(playerid, Vermelho, "[ ERRO ] Voce nao pode aplicar esse tipo de comando em seus Superiores!");
if(!IsPlayerConnected(id)) return SendClientMessage(playerid,Vermelho,"[ ERRO ] Player nao Conectado!"); new Status = GetPlayerState(id);
GetPlayerPos(playerid, PlayerInfo[playerid][posEspiar][0], PlayerInfo[playerid][posEspiar][1], PlayerInfo[playerid][posEspiar][2]);
if(Status == PLAYER_STATE_DRIVER || Status == PLAYER_STATE_PASSENGER) { SetPlayerInterior(playerid,GetPlayerInterior(id)); SetPlayerVirtualWorld(playerid,GetPlayerVirtualWorld(id)); TogglePlayerSpectating(playerid, 1); PlayerSpectateVehicle(playerid, GetPlayerVehicleID(id));
gSpectateID[playerid] = id; gSpectateType[playerid] = ADMIN_SPEC_TYPE_VEHICLE;
format(string,sizeof(string),"Player: ~r~%s[%d]",pName[id],id); PlayerTextDrawSetString(playerid, ESPIANDO[1][playerid],string);
format(string,sizeof(string),"Mundo: ~r~%s",modosq(id)); PlayerTextDrawSetString(playerid, ESPIANDO[2][playerid],string); for(new i = 0; i < sizeof(ESPIANDO); i++)PlayerTextDrawShow(playerid,ESPIANDO[i][playerid]); SendClientMessage(playerid,COR_ZONE,"| ZP - Admin | Voce esta espiando!"); } else { SetPlayerInterior(playerid,GetPlayerInterior(id)); SetPlayerVirtualWorld(playerid,GetPlayerVirtualWorld(id)); TogglePlayerSpectating(playerid, 1); PlayerSpectatePlayer(playerid, id);
gSpectateID[playerid] = id; gSpectateType[playerid] = ADMIN_SPEC_TYPE_PLAYER;
format(string,sizeof(string),"Player: ~r~%s[%d]",pName[id],id); PlayerTextDrawSetString(playerid, ESPIANDO[1][playerid],string);
format(string,sizeof(string),"Mundo: ~r~%s",modosq(id)); PlayerTextDrawSetString(playerid, ESPIANDO[2][playerid],string); for(new i = 0; i < sizeof(ESPIANDO); i++)PlayerTextDrawShow(playerid,ESPIANDO[i][playerid]); SendClientMessage(playerid,COR_ZONE,"| ZP - Admin | Voce esta espiando!"); }
return 1; }
Código PHP: CMD:pr(playerid, params[]) { if(PlayerInfo[playerid][Admin] < 1) return SendClientMessage(playerid,Vermelho,"[ ERRO ] Voce nao tem permissao!");
if(gSpectateID[playerid] == -1) { return SendClientMessage(playerid, Vermelho, "[ ERRO ] Voce nao esta espiando nenhum player"); }
TogglePlayerSpectating(playerid, 0); SetPlayerSkin(playerid,PlayerInfo[playerid][skin]); SetPlayerInterior(playerid,0); gSpectateID[playerid] = INVALID_PLAYER_ID; gSpectateType[playerid] = ADMIN_SPEC_TYPE_NONE;
for(new i = 0; i < sizeof(ESPIANDO); i++) PlayerTextDrawHide(playerid,ESPIANDO[i][playerid]); SetPlayerPos(playerid, PlayerInfo[playerid][posEspiar][0], PlayerInfo[playerid][posEspiar][1], PlayerInfo[playerid][posEspiar][2]); SetPlayerFacingAngle(playerid,275.7067); return 1; }
Os 2 comandos está bem estruturados. Você já verificou se o log retorna algo?
RE: comando buga o servidor todo - fear - 31/01/2025
(31/01/2025 13:46)Cifra Modder Escreveu: (31/01/2025 12:14)fear Escreveu: boa tarde.
Estou com um problema que quando o staff da /espiar o servidor para de funciona tudo.. parece que tu desligo os plugins e o gm.. ele nao da erro algum no chat mas tb nao funciona comandos e mais nada..
comando espiar e esparioff
oque ta de errado?
Código PHP: CMD:espiar(playerid, params[]) { new id,string[128]; if(PlayerInfo[playerid][Admin] < 1) return SendClientMessage(playerid,Vermelho,"[ ERRO ] Voce nao tem permissao!");
if(sscanf(params, "u", id)) return SendClientMessage(playerid, Vermelho, "[ ERRO ] Digite: /Espiar [id ou nick]");
if(PlayerInfo[id][Admin] > PlayerInfo[playerid][Admin]) return SendClientMessage(playerid, Vermelho, "[ ERRO ] Voce nao pode aplicar esse tipo de comando em seus Superiores!");
if(!IsPlayerConnected(id)) return SendClientMessage(playerid,Vermelho,"[ ERRO ] Player nao Conectado!"); new Status = GetPlayerState(id);
GetPlayerPos(playerid, PlayerInfo[playerid][posEspiar][0], PlayerInfo[playerid][posEspiar][1], PlayerInfo[playerid][posEspiar][2]);
if(Status == PLAYER_STATE_DRIVER || Status == PLAYER_STATE_PASSENGER) { SetPlayerInterior(playerid,GetPlayerInterior(id)); SetPlayerVirtualWorld(playerid,GetPlayerVirtualWorld(id)); TogglePlayerSpectating(playerid, 1); PlayerSpectateVehicle(playerid, GetPlayerVehicleID(id));
gSpectateID[playerid] = id; gSpectateType[playerid] = ADMIN_SPEC_TYPE_VEHICLE;
format(string,sizeof(string),"Player: ~r~%s[%d]",pName[id],id); PlayerTextDrawSetString(playerid, ESPIANDO[1][playerid],string);
format(string,sizeof(string),"Mundo: ~r~%s",modosq(id)); PlayerTextDrawSetString(playerid, ESPIANDO[2][playerid],string); for(new i = 0; i < sizeof(ESPIANDO); i++)PlayerTextDrawShow(playerid,ESPIANDO[i][playerid]); SendClientMessage(playerid,COR_ZONE,"| ZP - Admin | Voce esta espiando!"); } else { SetPlayerInterior(playerid,GetPlayerInterior(id)); SetPlayerVirtualWorld(playerid,GetPlayerVirtualWorld(id)); TogglePlayerSpectating(playerid, 1); PlayerSpectatePlayer(playerid, id);
gSpectateID[playerid] = id; gSpectateType[playerid] = ADMIN_SPEC_TYPE_PLAYER;
format(string,sizeof(string),"Player: ~r~%s[%d]",pName[id],id); PlayerTextDrawSetString(playerid, ESPIANDO[1][playerid],string);
format(string,sizeof(string),"Mundo: ~r~%s",modosq(id)); PlayerTextDrawSetString(playerid, ESPIANDO[2][playerid],string); for(new i = 0; i < sizeof(ESPIANDO); i++)PlayerTextDrawShow(playerid,ESPIANDO[i][playerid]); SendClientMessage(playerid,COR_ZONE,"| ZP - Admin | Voce esta espiando!"); }
return 1; }
Código PHP: CMD:pr(playerid, params[]) { if(PlayerInfo[playerid][Admin] < 1) return SendClientMessage(playerid,Vermelho,"[ ERRO ] Voce nao tem permissao!");
if(gSpectateID[playerid] == -1) { return SendClientMessage(playerid, Vermelho, "[ ERRO ] Voce nao esta espiando nenhum player"); }
TogglePlayerSpectating(playerid, 0); SetPlayerSkin(playerid,PlayerInfo[playerid][skin]); SetPlayerInterior(playerid,0); gSpectateID[playerid] = INVALID_PLAYER_ID; gSpectateType[playerid] = ADMIN_SPEC_TYPE_NONE;
for(new i = 0; i < sizeof(ESPIANDO); i++) PlayerTextDrawHide(playerid,ESPIANDO[i][playerid]); SetPlayerPos(playerid, PlayerInfo[playerid][posEspiar][0], PlayerInfo[playerid][posEspiar][1], PlayerInfo[playerid][posEspiar][2]); SetPlayerFacingAngle(playerid,275.7067); return 1; }
Os 2 comandos está bem estruturados. Você já verificou se o log retorna algo?
Retorna isso e para de funciona tudo.
Array index out of bounds
RE: comando buga o servidor todo - BitSain - 31/01/2025
Use o crash detect e compile com a flag -d3 para debug profundo (irá retornar a linha no código).
Execute o servidor novamente e veja onde o erro ("Índice da array fora dos limites", você quis acessar um índice que é maior do que o definido) ocorre.
RE: comando buga o servidor todo - fear - 31/01/2025
(31/01/2025 14:47)BitSain Escreveu: Use o crash detect e compile com a flag -d3 para debug profundo (irá retornar a linha no código).
Execute o servidor novamente e veja onde o erro ("Índice da array fora dos limites", você quis acessar um índice que é maior do que o definido) ocorre.
Flag -d3 não sei isso mano.
RE: comando buga o servidor todo - BitSain - 31/01/2025
(31/01/2025 15:12)fear Escreveu: (31/01/2025 14:47)BitSain Escreveu: Use o crash detect e compile com a flag -d3 para debug profundo (irá retornar a linha no código).
Execute o servidor novamente e veja onde o erro ("Índice da array fora dos limites", você quis acessar um índice que é maior do que o definido) ocorre.
Flag -d3 não sei isso mano. Se você usa o programa pawn.exe:
Pasta pawno -> settings.ini -> params -> adicione: -d3
Se você usa o vscode, vá no arquivo tasks.json (na gm, na pasta ".vscode") e adicione em: "args": o -d3
RE: comando buga o servidor todo - LOS_SANTOS - 13/02/2025
(31/01/2025 19:31)BitSain Escreveu: (31/01/2025 15:12)fear Escreveu: (31/01/2025 14:47)BitSain Escreveu: Use o crash detect e compile com a flag -d3 para debug profundo (irá retornar a linha no código).
Execute o servidor novamente e veja onde o erro ("Índice da array fora dos limites", você quis acessar um índice que é maior do que o definido) ocorre.
Flag -d3 não sei isso mano. Se você usa o programa pawn.exe:
Pasta pawno -> settings.ini -> params -> adicione: -d3
Se você usa o vscode, vá no arquivo tasks.json (na gm, na pasta ".vscode") e adicione em: "args": o -d3 Se eu entendi bem você está usando um comando para spiar o player né isso?! Porém quando vc usa o servidor desliga por algum motivo e isso?! Se for isso tentei usar esse código e altere o If(IsPlayerAdmin) para a variável do seu admin a do seu servidor , bem não sou nenhum expert no assunto mas se isso não te ajudou só ignora blz
Código: //------------------------------------------------------------------------------
#define ADMIN_SPEC_TYPE_NONE 0
#define ADMIN_SPEC_TYPE_PLAYER 1
new gSpectateID[MAX_PLAYERS];
new gSpectateType[MAX_PLAYERS];
CMD:spec(playerid, params[])
{
if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid,-1,"» voce nao tem permissao de usar esse comando");
new specplayerid;
if (sscanf(params, "u", specplayerid))return SendClientMessage(playerid, -1, "» /spec[playerid]");
if (!IsPlayerConnected(specplayerid))return SendClientMessage(playerid, -1, "» specplayer: esse jogador nao esta ativo.");
TogglePlayerSpectating(playerid, 1);
PlayerSpectatePlayer(playerid, specplayerid);
SetPlayerInterior(playerid, GetPlayerInterior(specplayerid));
gSpectateID[playerid] = specplayerid;
gSpectateType[playerid] = ADMIN_SPEC_TYPE_PLAYER;
return 1;
}
CMD:specoff(playerid, params[])
{
if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid,-1,"» voce nao tem permissao de usar esse comando");
TogglePlayerSpectating(playerid, 0);
gSpectateID[playerid] = INVALID_PLAYER_ID;
gSpectateType[playerid] = ADMIN_SPEC_TYPE_NONE;
return 1;
}
|