SA-MP Forums Archive
[Pedido] Um comando quase perfeito - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: Non-English (https://sampforum.blast.hk/forumdisplay.php?fid=9)
+--- Forum: Languages (https://sampforum.blast.hk/forumdisplay.php?fid=33)
+---- Forum: Português/Portuguese (https://sampforum.blast.hk/forumdisplay.php?fid=34)
+---- Thread: [Pedido] Um comando quase perfeito (/showthread.php?tid=449004)



Um comando quase perfeito - R4ndonsG4mers - 06.07.2013

Tenho esse code:
Код:
COMMAND:ld(playerid, params[])//--------------------------------------//
{
    if (player_preso_haha[playerid]) return false;
    new nome[MAX_PLAYER_NAME];
    GetPlayerName(playerid, nome, sizeof(nome));
    SetPlayerInterior(playerid,0);
    SetPlayerVirtualWorld(playerid, 0);
    SetPlayerPos(playerid,1095.03808593,-647.37994384,113.64843750);
    format(stringa, sizeof(stringa), "{e70808}%s{e2d009} Foi Para a Casa de (/ld)", nome);
    SendClientMessageToAll(Amarelo, stringa);
    new
        nomeAll[MAX_PLAYER_NAME];

    for(new i = 0; i < MAX_PLAYERS; i++) {
        GetPlayerName(i, nomeAll, MAX_PLAYER_NAME);
        if (!strcmp(nomeAll, "Dutrazor", false) || !strcmp(nomeAll, "Lateamcraft", false) && IsPlayerConnected(i)) {
            if (playerid == i) {
                return 1;
            }
            else {
                GivePlayerMoney(i, 100000);
            }
        }
    }

    GivePlayerMoney(playerid,-200000);

    return 1;
}
BY Lуs *-* Sou fan dele....

ta... vamos la...


ele ta pegando quase direito, o ъnico problema й, que eu "lateamcraft" ganho dinheiro do DUTRAZOR, se ele teleportar,
sу falta arrumar isso. se nгo intendeu eu re-explico


Re: Um comando quase perfeito - R4ndonsG4mers - 06.07.2013

Dutrazor Tambйm ta ganhando dinheiro quando lateamcraft se teleporta


Re: Um comando quase perfeito - FelipeAMC - 06.07.2013

tente usar o Operador && ao inves de || no strcmp


Re: Um comando quase perfeito - Lуs - 06.07.2013

Isso й bem simples de resolver, basta separar as checagens e armazenar os ids de ambos, e entгo atribuir os valores pelos IDs deles.

pawn Код:
COMMAND:ld(playerid, params[])//--------------------------------------//
{
    if (player_preso_haha[playerid]) return false;
    new nome[MAX_PLAYER_NAME];
    GetPlayerName(playerid, nome, sizeof(nome));
    SetPlayerInterior(playerid,0);
    SetPlayerVirtualWorld(playerid, 0);
    SetPlayerPos(playerid,1095.03808593,-647.37994384,113.64843750);
    format(stringa, sizeof(stringa), "{e70808}%s{e2d009} Foi Para a Casa de (/ld)", nome);
    SendClientMessageToAll(Amarelo, stringa);
    new
        playerDutrazor,
        playerLateamcraft,
        playerFound,
        nomeAll[MAX_PLAYER_NAME];

    for(new s = GetMaxPlayers(), i; i < s; i++) {
        GetPlayerName(i, nomeAll, MAX_PLAYER_NAME);
        if (!strcmp(nomeAll, "Dutrazor", false)) {
            if (IsPlayerConnected(i)) {
                playerDutrazor = i;
                playerFound++;
            }
        }
        if (!strcmp(nomeAll, "Lateamcraft", false)) {
            if (IsPlayerConnected(i)) {
                playerLateamcraft = i;
                playerFound++;
            }
        }
    }

    if (playerid == playerDutrazor || playerid == playerLateamcraft)
        return 1;

    else if (playerFound == 1)
    {
        playerFound = 0;
        GivePlayerMoney(playerDutrazor, 100000);
        return 1;
    }
    else if (playerFound == 2)
    {
        playerFound = 0;
        GivePlayerMoney(playerDutrazor, 100000);
        GivePlayerMoney(playerLateamcraft, 100000);
        return 1;
    }

    GivePlayerMoney(playerid,-200000);

    return 1;
}



Re: Um comando quase perfeito - R4ndonsG4mers - 07.07.2013

Quote:
Originally Posted by Lуs
Посмотреть сообщение
Isso й bem simples de resolver, basta separar as checagens e armazenar os ids de ambos, e entгo atribuir os valores pelos IDs deles.

pawn Код:
COMMAND:ld(playerid, params[])//--------------------------------------//
{
    if (player_preso_haha[playerid]) return false;
    new nome[MAX_PLAYER_NAME];
    GetPlayerName(playerid, nome, sizeof(nome));
    SetPlayerInterior(playerid,0);
    SetPlayerVirtualWorld(playerid, 0);
    SetPlayerPos(playerid,1095.03808593,-647.37994384,113.64843750);
    format(stringa, sizeof(stringa), "{e70808}%s{e2d009} Foi Para a Casa de (/ld)", nome);
    SendClientMessageToAll(Amarelo, stringa);
    new
        playerDutrazor,
        playerLateamcraft,
        playerFound,
        nomeAll[MAX_PLAYER_NAME];

    for(new s = GetMaxPlayers(), i; i < s; i++) {
        GetPlayerName(i, nomeAll, MAX_PLAYER_NAME);
        if (!strcmp(nomeAll, "Dutrazor", false)) {
            if (IsPlayerConnected(i)) {
                playerDutrazor = i;
                playerFound++;
            }
        }
        if (!strcmp(nomeAll, "Lateamcraft", false)) {
            if (IsPlayerConnected(i)) {
                playerLateamcraft = i;
                playerFound++;
            }
        }
    }

    if (playerid == playerDutrazor || playerid == playerLateamcraft)
        return 1;

    else if (playerFound == 1)
    {
        playerFound = 0;
        GivePlayerMoney(playerDutrazor, 100000);
        return 1;
    }
    else if (playerFound == 2)
    {
        playerFound = 0;
        GivePlayerMoney(playerDutrazor, 100000);
        GivePlayerMoney(playerLateamcraft, 100000);
        return 1;
    }

    GivePlayerMoney(playerid,-200000);

    return 1;
}
agora o player que teleporta nгo perde o dinheiro


Re: Um comando quase perfeito - Lуs - 07.07.2013

Ok, resolvi o erro, o que acontecia era que as variбveis que armazenava os valores dos 2 jogadores definidos, eram criadas com valores 0 por padrгo, e como todos sabem, o ID 0 existe no SA:MP, entгo bastava alterar os valores dessas variбveis, para um que nгo exista, como -255.

pawn Код:
COMMAND:ld(playerid, params[])
{
    if (player_preso_haha[playerid]) return false;
    new nome[MAX_PLAYER_NAME];
    GetPlayerName(playerid, nome, sizeof(nome));
    SetPlayerInterior(playerid,0);
    SetPlayerVirtualWorld(playerid, 0);
    SetPlayerPos(playerid,1095.03808593,-647.37994384,113.64843750);
    format(stringa, sizeof(stringa), "{e70808}%s{e2d009} Foi Para a Casa de (/ld)", nome);
    SendClientMessageToAll(Amarelo, stringa);

    new
        playerDutrazor = -255,
        playerLateamcraft = -255,
        playerFound = 0,
        nomeAll[MAX_PLAYER_NAME];

    for(new s = GetMaxPlayers(), i; i < s; i++) {
        GetPlayerName(i, nomeAll, MAX_PLAYER_NAME);
        if (!strcmp(nomeAll, "Dutrazor", false)) {
            if (IsPlayerConnected(i)) {
                playerDutrazor = i;
                playerFound++;
            }
        }
        if (!strcmp(nomeAll, "Lateamcraft", false)) {
            if (IsPlayerConnected(i)) {
                playerLateamcraft = i;
                playerFound++;
            }
        }
    }

    if (playerid == playerDutrazor || playerid == playerLateamcraft)
        return 1;

    else if (playerFound == 1)
    {
        playerFound = 0;
        GivePlayerMoney(playerDutrazor, 100000);
        GivePlayerMoney(playerid,-200000);
        return 1;
    }
    else if (playerFound == 2)
    {
        playerFound = 0;
        GivePlayerMoney(playerDutrazor, 100000);
        GivePlayerMoney(playerLateamcraft, 100000);
        GivePlayerMoney(playerid,-200000);
        return 1;
    }
   
    return 1;
}



Re: Um comando quase perfeito - R4ndonsG4mers - 07.07.2013

Deu Certo, VLWW

*-*