SA-MP Forums Archive
[Ajuda] /Roubar bugado - 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: [Ajuda] /Roubar bugado (/showthread.php?tid=487634)



/Roubar bugado - IGp - 14.01.2014

Bom gente, eu fiz esse /roubar, mas vocк comeзa a roubar, e cai em outra pessoa fala que estб roubando!
Nгo sei se vгo entender, mas aqui um print:
http://i.imgur.com/7zWCBjW.png
/roubar
PHP код:
else if(PlayerToPoint(2.0,playerid,159.7047,-80.1586,1001.8047)) // Zip
            
{
            
GetPlayerName(playeridplayernameMAX_PLAYER_NAME);
            
format(stringsizeof(string), "%s e os %s estгo tentando roubar o cofre da Zip! ID:[%d]"playernameNomeORG(playerid) , playerid);
            
SendClientMessageToAll(GetPlayerColor(playerid), string);
            
SendClientMessage(playeridCOLOR_GRAD5"Espere 60 segundos para terminar de roubar a Zip.");
            
SetPlayerCriminal(playerid,255"Tentativa de Roubo a Zip");
            
SetTimer("RoubandoZip"60000false);
            
roubando[playerid] = 1;
            
SetTimer("Roubei"180000false);
            return 
1;
            } 
Public do roubar:
PHP код:
forward RoubandoZip(playerid);
public 
RoubandoZip(playerid)
{
if(!
IsPlayerInRangeOfPoint(playerid5.0160.1404,-80.5766,1001.8047))
{
SendClientMessage(playeridGetPlayerColor(playerid), "Vocк se afastou do cofre! Tentativa de roubo fracassada!");
new 
playername[MAX_PLAYER_NAME];
new 
string[128];
GetPlayerName(playeridplayernameMAX_PLAYER_NAME);
format(stringsizeof(string), "%s e os %s nгo conseguiram roubar o cofre da Zip!"playernameNomeORG(playerid));
SendClientMessageToAll(GetPlayerColor(playerid), string);
roubando[playerid] = 0;
return 
1;
}
new 
cash random(25000);
new 
msgzip[80];
format(msgzipsizeof(msgzip), "Vocк conseguiu roubar a Zip, e ganhou %d !!",cash);
SendClientMessage(playerid0xFFFAFAFFmsgzip);
new 
playername[MAX_PLAYER_NAME];
new 
string[128];
GetPlayerName(playeridplayernameMAX_PLAYER_NAME);
format(stringsizeof(string), "%s e os %s conseguiram roubar o cofre da Zip!"playernameNomeORG(playerid));
SendClientMessageToAll(GetPlayerColor(playerid), string);
GivePlayerMoney(playeridcash);
return 
1;

Nгo sei oque fiz errado, mas tб um bug feio!


Re: /Roubar bugado - Gii - 14.01.2014

pawn Код:
SetTimer("RoubandoZip", 60000, false);
pawn Код:
SetTimerEx("RoubandoZip", 60000, false, "d", playerid);



Re: /Roubar bugado - FrostyWolf - 14.01.2014

Isso:

Код:
else if(PlayerToPoint(2.0,playerid,159.7047,-80.1586,1001.8047)) // Zip
Nгo deveria estar assim:

Код:
else if(PlayerToPoint(playerid,2.0,159.7047,-80.1586,1001.8047)) // Zip
?
Talvez deve ser isso...


Respuesta: /Roubar bugado - ViniKuliveguisky - 14.01.2014

PlayerToPoint jб estб ultrapassado. Utilize IsPlayerInRangeOfPoint.


Re: /Roubar bugado - IGp - 14.01.2014

Quote:
Originally Posted by iCasTiel
Посмотреть сообщение
pawn Код:
SetTimer("RoubandoZip", 60000, false);
pawn Код:
SetTimerEx("RoubandoZip", 60000, false, "d", playerid);
Qual a diferenзa de SetTimer para SetTimerEx ? Deu certo, compilei, agora vou testar!


Respuesta: /Roubar bugado - ViniKuliveguisky - 14.01.2014

SetTimer nгo й especificado pra quem й, jб o SetTimerEx й especificado.

Exemplo:

Como й SetTimer, digamos que tenha que dizer para todos players que sгo lindos teria que fazer um loop:
pawn Код:
SetTimer("Todos", 60000, false);
public Todos()
{
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
        SendClientMessage(i, -1, "Oi vocк й lindo");
    }
}
Agora se fosse para dizer que um player й lindo seria com SetTimerEx.
pawn Код:
SetTimerEx("Um", 60000, false, "d", playerid);
public Um(playerid)
{
   SendClientMessage(playerid, -1, "Oi vocк й lindo");
}



Re: /Roubar bugado - Gii - 14.01.2014

Resumidamente:

SetTimerEx aceita a passagem de parвmetros!


Re: /Roubar bugado - IGp - 14.01.2014

Quote:
Originally Posted by iCasTiel
Посмотреть сообщение
Resumidamente:

SetTimerEx aceita a passagem de parвmetros!
A public continua a mesma, certo?


Re: /Roubar bugado - Gii - 14.01.2014

Quote:
Originally Posted by IGp
Посмотреть сообщение
A public continua a mesma, certo?
E possнvel melhorar um pouco o cуdigo...

pawn Код:
forward RoubandoZip(playerid);
public RoubandoZip(playerid) {

    new playername[MAX_PLAYER_NAME], str[128];
    GetPlayerName(playerid, playername, MAX_PLAYER_NAME);

    if(!IsPlayerInRangeOfPoint(playerid, 5.0, 160.1404,-80.5766,1001.8047)) {
   
        SendClientMessage(playerid, GetPlayerColor(playerid), "Vocк se afastou do cofre! Tentativa de roubo fracassada!");
        format(str, 128, "%s e os %s nгo conseguiram roubar o cofre da Zip!", playername, NomeORG(playerid));
        SendClientMessageToAll(GetPlayerColor(playerid), string);
        roubando[playerid] = 0;
    }
    else {
   
        new cash = random(25000);
        format(str, 128, "Vocк conseguiu roubar a Zip, e ganhou %d !!", cash);
        SendClientMessage(playerid, 0xFFFAFAFF, str);
        format(str, 128, "%s e os %s conseguiram roubar o cofre da Zip!", playername, NomeORG(playerid));
        SendClientMessageToAll(GetPlayerColor(playerid), str);
        GivePlayerMoney(playerid, cash);
    }
    return 1;
}



Re: /Roubar bugado - IGp - 14.01.2014

Vou ficar com a minha mesmo, mas funcionou! Vlw iCastiel