SA-MP Forums

Go Back   SA-MP Forums > Non-English > Languages > Português/Portuguese

Reply
 
Thread Tools Display Modes
Old 03/02/2016, 11:04 PM   #1
Duk
Banned
 
Join Date: Feb 2015
Posts: 203
Reputation: 5
Default Verificar a quantidade de colete, mesmo que seja maior que 100.

Pessoal Quero que aparece a quantidade de colete que o jogador tem.

Tipo quando um admin dar 300 por cento de colete pra um jogador, o numero 300 precisa aparecer no dialoog

o foda é que quando o o colete de alguem é maior 150 por cento, aparece no dialog só 150 sendo que o jogador tem como por exemplo 300 de colete.

Estou usando floatround mais não deu certo olhem.

pawn Code:
CMD:vercolete(playerid, params[])
{
    new ID_2PESSOA;
    if(sscanf(params,"u", ID_2PESSOA)) return SendClientMessage(playerid,COR_CINZA,"Digite: /infoplayer [ID/NOME]");
    if(!IsPlayerConnected(ID_2PESSOA)) return SendClientMessage(playerid, VERMELHO_BEM_CLARO , "O(a) Jogador(a) não está online!");
    new
    Celulas1[256],
    Celulas2[256],
    Float:Colete;
    GetPlayerArmour(ID_2PESSOA, Colete);
format(Celulas2, sizeof(Celulas2), "{64FF9D}[!] {FFFC8D}Colete: {FFFFFF}%d por cento. \n\n", floatround(Colete));
        strcat(Celulas1, Celulas2, sizeof(Celulas1));
    return true;
}
Duk is offline   Reply With Quote
Old 03/02/2016, 11:33 PM   #2
F1N4L
High-roller
 
F1N4L's Avatar
 
Join Date: Jun 2013
Location: Brazil
Posts: 2,686
Reputation: 246
Default Re: Verificar a quantidade de colete, mesmo que seja maior que 100.

Pelo q percebi, o Inteiro buga se passar dos 255...

PHP Code:
CMD:vercolete(playeridparams[])
{
    new 
ID_2PESSOA;
    if(
sscanf(params,"u"ID_2PESSOA)) return SendClientMessage(playerid, -1,"Digite: /infoplayer [ID/NOME]");
    if(!
IsPlayerConnected(ID_2PESSOA)) return SendClientMessage(playerid, -"O(a) Jogador(a) não está online!");
    new
    
Celulas1[256],
    
Celulas2[256],
    
Float:Colete;
    
GetPlayerArmour(ID_2PESSOAColete);
    if(
Colete 100)
    {
        
format(Celulas2sizeof(Celulas2), "{FF5A5A}[!] {FFFC8D}Colete: {FFFFFF}acima de 100 por cento [%0.f] {FF5A5A}(Suspeito de Xiter/Hack)\n\n"Colete);
        
strcat(Celulas1Celulas2sizeof(Celulas1));
    }
    else
    {
        
format(Celulas2sizeof(Celulas2), "{64FF9D}[!] {FFFC8D}Colete: {FFFFFF}%0.f por cento. {64FF9D}(Normal)\n\n"Colete);
        
strcat(Celulas1Celulas2sizeof(Celulas1));
    }
    
ShowPlayerDialog(playerid0123DIALOG_STYLE_MSGBOX"TITULO"Celulas1"OK""");
    return 
true;

A substituição é simples, em vez de "%d" coloque "%0.f" e remova o "floatround", pois vc quer o valor inteiro da float e não de um valor inteiro qualquer.
Por ultimo, vc quer uma dialog com os valores da string, se não fizer o code para ela aparecer, ela não vai aparecer sozinha!
F1N4L is offline   Reply With Quote
Old 03/02/2016, 11:58 PM   #3
Duk
Banned
 
Join Date: Feb 2015
Posts: 203
Reputation: 5
Default Re: Verificar a quantidade de colete, mesmo que seja maior que 100.

Quote:
Originally Posted by F1N4L View Post
Pelo q percebi, o Inteiro buga se passar dos 255...

PHP Code:
CMD:vercolete(playeridparams[])
{
    new 
ID_2PESSOA;
    if(
sscanf(params,"u"ID_2PESSOA)) return SendClientMessage(playerid, -1,"Digite: /infoplayer [ID/NOME]");
    if(!
IsPlayerConnected(ID_2PESSOA)) return SendClientMessage(playerid, -"O(a) Jogador(a) não está online!");
    new
    
Celulas1[256],
    
Celulas2[256],
    
Float:Colete;
    
GetPlayerArmour(ID_2PESSOAColete);
    if(
Colete 100)
    {
        
format(Celulas2sizeof(Celulas2), "{FF5A5A}[!] {FFFC8D}Colete: {FFFFFF}acima de 100 por cento [%0.f] {FF5A5A}(Suspeito de Xiter/Hack)\n\n"Colete);
        
strcat(Celulas1Celulas2sizeof(Celulas1));
    }
    else
    {
        
format(Celulas2sizeof(Celulas2), "{64FF9D}[!] {FFFC8D}Colete: {FFFFFF}%0.f por cento. {64FF9D}(Normal)\n\n"Colete);
        
strcat(Celulas1Celulas2sizeof(Celulas1));
    }
    
ShowPlayerDialog(playerid0123DIALOG_STYLE_MSGBOX"TITULO"Celulas1"OK""");
    return 
true;

A substituição é simples, em vez de "%d" coloque "%0.f" e remova o "floatround", pois vc quer o valor inteiro da float e não de um valor inteiro qualquer.
Por ultimo, vc quer uma dialog com os valores da string, se não fizer o code para ela aparecer, ela não vai aparecer sozinha!

Cara o foda é que quando eu coloco em "%0.f" aparece a saude mais em numeros bem maiores.

se o sangue do cara ta 100 por cento.

aparece no dialog 100.000000

o foda é que quando eu seto um valor de life de 1000 por cento no jogador fica por exemplo.

232.0000000 buga cara.

Queria apenas que mostra-se valores pequeno

Se o jogador tiver 100 por cento de colete. tem de aparecer 100 por centro no dialog,

se ele tiver 12000 por cento de colete, ten de aparecer no dialog é foda
Duk is offline   Reply With Quote
Old 04/02/2016, 12:05 AM   #4
F1N4L
High-roller
 
F1N4L's Avatar
 
Join Date: Jun 2013
Location: Brazil
Posts: 2,686
Reputation: 246
Default Re: Verificar a quantidade de colete, mesmo que seja maior que 100.

Eu realmente n manjo de Float, mas se baseando pela Wiki vc tem uma noção e sim, float é um valor "quebrado" composto por "numero > virgula > numero" respectivamente.

Se quer uma dica:
Sete a vida/colete total dos players do seu server para 99.0, pois cerca de 90% dos xiters não tem opção para modificar o valor do colete ou vida, simplesmente seta para 100.0.
F1N4L is offline   Reply With Quote
Old 04/02/2016, 12:38 AM   #5
Duk
Banned
 
Join Date: Feb 2015
Posts: 203
Reputation: 5
Default Re: Verificar a quantidade de colete, mesmo que seja maior que 100.

Quote:
Originally Posted by F1N4L View Post
Eu realmente n manjo de Float, mas se baseando pela Wiki vc tem uma noção e sim, float é um valor "quebrado" composto por "numero > virgula > numero" respectivamente.

Se quer uma dica:
Sete a vida/colete total dos players do seu server para 99.0, pois cerca de 90% dos xiters não tem opção para modificar o valor do colete ou vida, simplesmente seta para 100.0.
Isso seria até bom cara. o problema seria quando eu seta-se um valor do colete para Vip's ou organizações que utilizará 150 por cento de colete.

Você diz algo bom, seria ideal 99.0, mais irei analizar futuramente.
Duk is offline   Reply With Quote
Old 04/02/2016, 12:58 AM   #6
F1N4L
High-roller
 
F1N4L's Avatar
 
Join Date: Jun 2013
Location: Brazil
Posts: 2,686
Reputation: 246
Default Re: Verificar a quantidade de colete, mesmo que seja maior que 100.

Quote:
Originally Posted by Duk View Post
Isso seria até bom cara. o problema seria quando eu seta-se um valor do colete para Vip's ou organizações que utilizará 150 por cento de colete.

Você diz algo bom, seria ideal 99.0, mais irei analizar futuramente.
Ai vem a questão dos Vips/Helpers, mas analisa cmg:

PHP Code:
//TOPO
#define MAX_HEALTH 99.0

//OnPlayerConnect ou OnPlayerSpawn
SetTimerEx("AtualizarVida"1000true"i"playerid);

//Qualquer lugar
forward AtualizarVida(playerid);
public 
AtualizarVida(playerid)
{
    if(!
IsPlayerAdmin(playerid))
    {
        new 
Float:Health;
        
GetPlayerHealth(playeridHealth);
        if(
Health MAX_HEALTH)
        {
            
SendClientMessage(playeridCOLOR_RED"HACK LIXO!");
            
Kick(playerid);
        }
    }
    return 
1;

Você cria a checagem, neste caso, se o player n for admin rcon ele é kickado, mas vc pode adicionar mais variaveis, assim como VIP ou Helper!
Acabei de testar e funciona!
F1N4L is offline   Reply With Quote
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
[Ajuda] Como verificar qual a variável com maior valor Rhayziin Português/Portuguese 5 25/12/2015 11:19 AM
[Ajuda] Verificar quantia maior. Ley Português/Portuguese 3 07/11/2015 10:24 PM
[Ajuda] Verificar Quantidade de Players em Determinado Evento WendeLKILL Português/Portuguese 7 05/06/2014 10:31 PM
[Ajuda] Verificar se o IP é o mesmo que está salvo. davi54723 Português/Portuguese 19 07/01/2014 01:35 PM
[Pedido] Aviso por voz que nao seja FS! dimmy_ Português/Portuguese 4 29/04/2012 04:06 PM


All times are GMT. The time now is 01:14 AM.


Powered by vBulletin® Version 3.8.6
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.