Portal SAMP
[Pedido] Sistema de rival - 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: [Pedido] Sistema de rival (/showthread.php?tid=1798)



Sistema de rival - xxxjhonatan_wi - 01/11/2021

Eu gostaria de criar umas verificações antes de um player usar certos comandos, dizendo se ele está perto de um rival ou não(Rival = equipe/org/fac... diferente da dele).

Ex: /Coletev = comando pra encher o colete sendo vip.

Só que antes de setar o colete dele, fazer uma verificação se algum membro de outra equipe está perto dele(30m) por exemplo.

Imagino que isso é um código de ctrl c e ctrl v em comandos que desejo essa verificação Então deixo aqui meu pedido, ou super dicas pra mim mesmo fazer.


RE: Sistema de rival - xbruno1000x - 01/11/2021

Código:
MembrosProximos(playerid)
{
    new countJFS;
    foreach(new i : Player)
        if(!Player[i][pOrg] == Player[playerid][pOrg])
            if(GetDistanceBetweenPlayers(playerid, i) <= 20) countJFS++;

    return countJFS;
}

Código do JFS. Basta adaptar com as suas variáveis.


RE: Sistema de rival - xxxjhonatan_wi - 01/11/2021

(01/11/2021 17:31)xbruno1000x Escreveu:
Código:
MembrosProximos(playerid)
{
    new countJFS;
    foreach(new i : Player)
        if(!Player[i][pOrg] == Player[playerid][pOrg])
            if(GetDistanceBetweenPlayers(playerid, i) <= 20) countJFS++;

    return countJFS;
}

Código do JFS. Basta adaptar com as suas variáveis.

Como eu uso esse código exatamente? pode dar um exemplo com o cmd: 

CMD:vidaa(playerid)
{
    SetPlayerHealth(playerid, 100);
    return 1;
}


RE: Sistema de rival - MarcosBrazz - 01/11/2021

Código:
CMD:vidaa(playerid)
{
    if(MembrosProximos(playerid) > 0) return SendClientMessage(playerid, -1, "Existem muitos membros rivais proximos!");
    SetPlayerHealth(playerid, 100);
    return 1;
}



RE: Sistema de rival - xxxjhonatan_wi - 02/11/2021

(01/11/2021 22:25)MarcosBrazz Escreveu:
Código:
CMD:vidaa(playerid)
{
    if(MembrosProximos(playerid) > 0) return SendClientMessage(playerid, -1, "Existem muitos membros rivais proximos!");
    SetPlayerHealth(playerid, 100);
    return 1;
}

Eu coloquei assim:

forward MembrosProximos(playerid);
public MembrosProximos(playerid)
{
    new countJFS;
    foreach(new i : PlayerInfo)
        if(!PlayerInfo[i][NomeOrg] == PlayerInfo[playerid][NomeOrg])
            if(GetDistanceBetweenPlayers(playerid, i) <= 20) countJFS++;

    return countJFS;
}
CMD:vidaa(playerid)
{
    if(MembrosProximos(playerid) > 0) return SendClientMessage(playerid, -1, "Existem muitos membros rivais proximos!");
    SetPlayerHealth(playerid, 100);
    return 1;
}


ERRO: too many error messages on one line [2095 1]


RE: Sistema de rival - MrThúúG - 02/11/2021

Aperte Control + G digite o numero da linha do erro copia ela e cole aqui.


RE: Sistema de rival - xxxjhonatan_wi - 02/11/2021

(02/11/2021 09:20)MrThúúG Escreveu: Aperte Control + G digite o numero da linha do erro copia ela e cole aqui.

É dessa linha:   foreach(new i : PlayerInfo)


RE: Sistema de rival - MrThúúG - 02/11/2021

Testei e esta funcionando aumentei pra 35 metros a distancia 20 achei muito proximo...

Código PHP:
stock MembrosProximos(playerid)
{
    new 
countJFS;
      foreach(Playeri)
    {
        if(
GetPlayerOrg(i) != GetPlayerOrg(playerid))
        if(
GetDistanceBetweenPlayers(playeridi) <= 35)countJFS++;
    }
    return 
countJFS;
}

CMD:vidaa(playerid)
{
    if(MembrosProximos(playerid) > 0) return SendClientMessage(playerid, -1"Existem membros rivais proximos!");
    SetPlayerHealth(playerid100);
    SendClientMessage(playerid, -1"Você encheu sua vida!");
    return 1;




RE: Sistema de rival - xbruno1000x - 02/11/2021

(02/11/2021 10:27)MrThúúG Escreveu: Testei e esta funcionando aumentei pra 35 metros a distancia 20 achei muito proximo...

Código PHP:
stock MembrosProximos(playerid)
{
    new 
countJFS;
      foreach(Playeri)
    {
        if(
GetPlayerOrg(i) != GetPlayerOrg(playerid))
        if(
GetDistanceBetweenPlayers(playeridi) <= 35)countJFS++;
    }
    return 
countJFS;
}

CMD:vidaa(playerid)
{
    if(MembrosProximos(playerid) > 0) return SendClientMessage(playerid, -1"Existem membros rivais proximos!");
    SetPlayerHealth(playerid100);
    SendClientMessage(playerid, -1"Você encheu sua vida!");
    return 1;


O problema não é na distância. O problema é que ele não tem a include foreach.

Link:
https://github.com/karimcambridge/samp-foreach