[Ajuda] Colocar o outro que ta na outra pos pra fazer comparaзхes
#1

To querendo fazer um sistema de roubo em dupla, mas pra isso preciso terminar esse meu comando
Queria setar na variavel ID o player que ta na outra posiзгo, olhando o codigo vcs vao entender
pawn Код:
if (strcmp("/partnerrob", cmdtext, true, 10) == 0) {
    new id;
        if(PlayerToPoint(10.0, playerid,2453.3315,-1978.8077,13.5469) || PlayerToPoint(10.0, playerid,2457.8135,-1964.7483,13.5382,358) )
        {
            if(PlayerToPoint(10.0, playerid,2453.3315,-1978.8077,13.5469)
            {
                for(new i = 0; i < MAX_PLAYERS; i++)
                {
                    PlayerToPoint(10.0, i,2457.8135,-1964.7483,13.5382,358)
                }
            }
            else if(PlayerToPoint(10.0, playerid,2457.8135,-1964.7483,13.5382,358) )
            {
                for(new i = 0; i < MAX_PLAYERS; i++)
                {
                    PlayerToPoint(10.0, i,2453.3315,-1978.8077,13.5469)
                }
            }
        }
    }
Reply
#2

PlayerToPoint nгo seta posiзгo, vocк tem que usar SetPlayerPos.
Reply
#3

Faz variбveis sem arrays. Mais fбcil criar 2 checkpoints e detectar quando ficarem em cima por um determinado tempo... Para um melhor resultado, vocк deve infelizmente utilizar o OnPlayerUpdate

Se um player pisou na checkpoint A, espera dominar por 5 segundos. Irб aparecer: "Aguarde o Lado B, nгo saia do CheckPoint". ( ou vice-versa ) Ai vocк jб seta A = 1;

se um player pisou na checkpoint B, espera dominar por 5 segundos. Irб aparecer: "Aguarde o Lado A, nгo saia do CheckPoint" ( Ou vice-versa ). Ai vocк jб seta B = 1;


Pega a verificaзгo

if(A == 1 & B == 1) jб era
Reply
#4

@cr7
Nгo quero setar ninguem em posiзгo nenhuma bro, й sу pra checar qm й o player x e o player y de cada posiзгo

@jhona
Vai ficar meio ruim assim fazendo checagens desnecessбrias o tempo todo, fora que ainda vai ficar ruim pra quem quiser roubar em grupo, atй pq vгo ser varios locais esse й sу um dos locais
Reply
#5

Quote:
Originally Posted by oliverarrow
Посмотреть сообщение
@cr7
Nгo quero setar ninguem em posiзгo nenhuma bro, й sу pra checar qm й o player x e o player y de cada posiзгo

@jhona
Vai ficar meio ruim assim fazendo checagens desnecessбrias o tempo todo, fora que ainda vai ficar ruim pra quem quiser roubar em grupo, atй pq vгo ser varios locais esse й sу um dos locais
Boa ideia, da pra fazer umas funзхes maneiras, como roubo em dupla interage os jogadores a jogarem em equip
Reply
#6

Se for o que entendi, essa й uma das formas que й possнvel fazer:

pawn Код:
if(strcmp(cmdtext, "/partnerrob", true) == 0)
{
    new iddocarinha = -1, Float: Poss[3], str[90];
    if(IsPlayerInRangeOfPoint(playerid, 10.0, 2453.3315,-1978.8077,13.5469))
    {
        Poss[0] = 2453.3315;
        Poss[1] = -1978.8077;
        Poss[2] = 13.5469;
    }
    else if(IsPlayerInRangeOfPoint(playerid, 10.0, 2457.8135,-1964.7483,13.5382))
    {
        Poss[0] = 2453.3315;
        Poss[1] = -1978.8077;
        Poss[2] = 13.5469;
    }
    for(new p = 0; p < MAX_PLAYERS; p++)
    {
        if(IsPlayerInRangeOfPoint(p, 10.0, Poss[0], Poss[1], Poss[2]) /* && PlayerInfo[p][Org] == PlayerInfo[playerid][Org] */)
        {
            iddocarinha = p;
            break;
        }
    }
    format(str, sizeof(str),"Seu parceiro й o ID %d", iddocarinha);
    SendClientMessage(playerid, -1, str);
    return 1;
}
Desculpe-me qualquer erro, fiz com pressa, rs.
OBS№: Deixei uma verificaзгo comentada ali, que seria pra checar se o jogador que estб no outro lugar й da mesma org/gang/sei lб do jogador que digitou o comando. Achei que seria importante para evitar alguns problemas. Caso for usar, altera para a variбvel que vocк usa.
OBSІ: Vocк havia dito "assalto em dupla" no primeiro post, mas se sua intenзгo й que haja assaltos em grupos, retire o "break" do loop.
Reply
#7

Quote:
Originally Posted by humildadeforever
Посмотреть сообщение
Se for o que entendi, essa й uma das formas que й possнvel fazer:

pawn Код:
if(strcmp(cmdtext, "/partnerrob", true) == 0)
{
    new iddocarinha = -1, Float: Poss[3], str[90];
    if(IsPlayerInRangeOfPoint(playerid, 10.0, 2453.3315,-1978.8077,13.5469))
    {
        Poss[0] = 2453.3315;
        Poss[1] = -1978.8077;
        Poss[2] = 13.5469;
    }
    else if(IsPlayerInRangeOfPoint(playerid, 10.0, 2457.8135,-1964.7483,13.5382))
    {
        Poss[0] = 2453.3315;
        Poss[1] = -1978.8077;
        Poss[2] = 13.5469;
    }
    for(new p = 0; p < MAX_PLAYERS; p++)
    {
        if(IsPlayerInRangeOfPoint(p, 10.0, Poss[0], Poss[1], Poss[2]) /* && PlayerInfo[p][Org] == PlayerInfo[playerid][Org] */)
        {
            iddocarinha = p;
            break;
        }
    }
    format(str, sizeof(str),"Seu parceiro й o ID %d", iddocarinha);
    SendClientMessage(playerid, -1, str);
    return 1;
}
Desculpe-me qualquer erro, fiz com pressa, rs.
OBS№: Deixei uma verificaзгo comentada ali, que seria pra checar se o jogador que estб no outro lugar й da mesma org/gang/sei lб do jogador que digitou o comando. Achei que seria importante para evitar alguns problemas. Caso for usar, altera para a variбvel que vocк usa.
OBSІ: Vocк havia dito "assalto em dupla" no primeiro post, mas se sua intenзгo й que haja assaltos em grupos, retire o "break" do loop.
Muito obrigado, jб ta dando pra fazeer o que eu queria, sу to com um problema, como faz pra tipo se nгo tiver alguem em um dos dois

if(naotemparceiro) return Vc estб sem parceiro para roubo

Isso se nгo tiver alguem em uma das marcas
Reply
#8

pawn Код:
if(iddocarinha == -1) return //...
Seguindo a lуgica dela...
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)