Portal SAMP
[Ajuda] Ajuda Comadno (Loop) - Versão de Impressão

+- Portal SAMP (https://portalsamp.com)
+-- Fórum: SA-MP (https://portalsamp.com/forumdisplay.php?fid=5)
+--- Fórum: Área de suporte (https://portalsamp.com/forumdisplay.php?fid=6)
+--- Tópico: [Ajuda] Ajuda Comadno (Loop) (/showthread.php?tid=2387)



Ajuda Comadno (Loop) - agi.exe - 13/05/2022

Crie esse comando usando loop e quero que a função seja executada para todos, menos o playerid (Jogador que digitou o comando)
Código PHP:
CMD:matarp(playerid)
{
    new 
Float:Pos[3]; GetPlayerPos(playeridPos[0],Pos[1],Pos[2]);
    foreach(new 
iPlayer)
    {
        if(
IsPlayerInRangeOfPoint(i20.0Pos[0],Pos[1],Pos[2]))
        {
            
SetPlayerHealth(i0);
            
format(Str,sizeof(Str),"Admin: %s matou todos jogadores perto dele",PlayerName(playerid));
            
Msg(i,-1,Str);
        }
    }
    return 
1;




RE: Ajuda Comadno (Loop) - k2bi_YT - 13/05/2022

Se você quer que todos sejam mortos menos o jogador que executou o comando, você deve verificar o loop caso seja igual ao playerid e pular

Código PHP:
CMD:matarp(playerid)
{
    new 
Float:Pos[3]; GetPlayerPos(playeridPos[0],Pos[1],Pos[2]);
    foreach(new 
iPlayer)
    {
        if(
IsPlayerInRangeOfPoint(i20.0Pos[0],Pos[1],Pos[2]) && != playerid)
        {
            
SetPlayerHealth(i0);
            
format(Str,sizeof(Str),"Admin: %s matou todos jogadores perto dele",PlayerName(playerid));
            
Msg(i,-1,Str);
        }
    }
    return 
1;




RE: Ajuda Comadno (Loop) - White_Blue - 13/05/2022

Código PHP:
CMD:matartodos(playerid) {
 foreach(
Playeri) {
 new 
string[128], pnome[MAX_PLAYER_NAME];
 
GetPlayerName(playeridpnomeMAX_PLAYER_NAME);
 if(
!= playerid)
 
SetPlayerHealth(i0.0);
 
SetPlayerArmour(i0.0)
 
format(stringsizeof(string), "O(a) Admin %s[%d] matou todos os jogadores on-line!"pnomeplayerid);
 
SendClientMessageToAll(-1string);
 }
 return 
1;

È somente adicionar uma verificação "if(i != playerid)" assim o loop irá ignorar o playerid que no caso é o player que executa o comando como no exemplo acima.


RE: Ajuda Comadno (Loop) - ipsLuan - 14/05/2022

(13/05/2022 17:28)White_Blue Escreveu:
Código PHP:
CMD:matartodos(playerid) {
 foreach(
Playeri) {
 new 
string[128], pnome[MAX_PLAYER_NAME];
 
GetPlayerName(playeridpnomeMAX_PLAYER_NAME);
 if(
!= playerid)
 
SetPlayerHealth(i0.0);
 
SetPlayerArmour(i0.0)
 
format(stringsizeof(string), "O(a) Admin %s[%d] matou todos os jogadores on-line!"pnomeplayerid);
 
SendClientMessageToAll(-1string);
 }
 return 
1;

È somente adicionar uma verificação "if(i != playerid)" assim o loop irá ignorar o playerid que no caso é o player que executa o comando como no exemplo acima.

É uma péssima prática criar variáveis em loops.