Verificar a quantidade de colete, mesmo que seja maior que 100. -
Duk - 03.02.2016
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 Код:
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;
}
Re: Verificar a quantidade de colete, mesmo que seja maior que 100. -
F1N4L - 03.02.2016
Pelo q percebi, o Inteiro buga se passar dos 255...
PHP код:
CMD:vercolete(playerid, params[])
{
new ID_2PESSOA;
if(sscanf(params,"u", ID_2PESSOA)) return SendClientMessage(playerid, -1,"Digite: /infoplayer [ID/NOME]");
if(!IsPlayerConnected(ID_2PESSOA)) return SendClientMessage(playerid, -1 , "O(a) Jogador(a) nгo estб online!");
new
Celulas1[256],
Celulas2[256],
Float:Colete;
GetPlayerArmour(ID_2PESSOA, Colete);
if(Colete > 100)
{
format(Celulas2, sizeof(Celulas2), "{FF5A5A}[!] {FFFC8D}Colete: {FFFFFF}acima de 100 por cento [%0.f] {FF5A5A}(Suspeito de Xiter/Hack)\n\n", Colete);
strcat(Celulas1, Celulas2, sizeof(Celulas1));
}
else
{
format(Celulas2, sizeof(Celulas2), "{64FF9D}[!] {FFFC8D}Colete: {FFFFFF}%0.f por cento. {64FF9D}(Normal)\n\n", Colete);
strcat(Celulas1, Celulas2, sizeof(Celulas1));
}
ShowPlayerDialog(playerid, 0123, DIALOG_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!
Re: Verificar a quantidade de colete, mesmo que seja maior que 100. -
Duk - 03.02.2016
Quote:
Originally Posted by F1N4L
Pelo q percebi, o Inteiro buga se passar dos 255...
PHP код:
CMD:vercolete(playerid, params[])
{
new ID_2PESSOA;
if(sscanf(params,"u", ID_2PESSOA)) return SendClientMessage(playerid, -1,"Digite: /infoplayer [ID/NOME]");
if(!IsPlayerConnected(ID_2PESSOA)) return SendClientMessage(playerid, -1 , "O(a) Jogador(a) nгo estб online!");
new
Celulas1[256],
Celulas2[256],
Float:Colete;
GetPlayerArmour(ID_2PESSOA, Colete);
if(Colete > 100)
{
format(Celulas2, sizeof(Celulas2), "{FF5A5A}[!] {FFFC8D}Colete: {FFFFFF}acima de 100 por cento [%0.f] {FF5A5A}(Suspeito de Xiter/Hack)\n\n", Colete);
strcat(Celulas1, Celulas2, sizeof(Celulas1));
}
else
{
format(Celulas2, sizeof(Celulas2), "{64FF9D}[!] {FFFC8D}Colete: {FFFFFF}%0.f por cento. {64FF9D}(Normal)\n\n", Colete);
strcat(Celulas1, Celulas2, sizeof(Celulas1));
}
ShowPlayerDialog(playerid, 0123, DIALOG_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
Re: Verificar a quantidade de colete, mesmo que seja maior que 100. -
F1N4L - 03.02.2016
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.
Re: Verificar a quantidade de colete, mesmo que seja maior que 100. -
Duk - 03.02.2016
Quote:
Originally Posted by F1N4L
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.
Re: Verificar a quantidade de colete, mesmo que seja maior que 100. -
F1N4L - 03.02.2016
Quote:
Originally Posted by Duk
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 код:
//TOPO
#define MAX_HEALTH 99.0
//OnPlayerConnect ou OnPlayerSpawn
SetTimerEx("AtualizarVida", 1000, true, "i", playerid);
//Qualquer lugar
forward AtualizarVida(playerid);
public AtualizarVida(playerid)
{
if(!IsPlayerAdmin(playerid))
{
new Float:Health;
GetPlayerHealth(playerid, Health);
if(Health > MAX_HEALTH)
{
SendClientMessage(playerid, COLOR_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!