Portal SAMP
[Ajuda] Float - Versão de Impressão

+- Portal SAMP (https://portalsamp.com)
+-- Fórum: SA-MP (https://portalsamp.com/forumdisplay.php?fid=5)
+--- Fórum: Área de suporte (https://portalsamp.com/forumdisplay.php?fid=6)
+--- Tópico: [Ajuda] Float (/showthread.php?tid=1483)



Float - zBL4CK - 02/08/2021

Bom pessoal to tendo um probleminha meio chato ja tentei varios metodos mas não obtive sucesso.

eu coloquei para salvar a vida do player quando desconectar:

Código PHP:
//onplayerdisconnect
new Float:Vida;
GetPlayerHealth(playeridVida);
DOF2::SetFloat(arquivo"Vida"Vida); 
 
Até ai blz mas quando vou olhar no arquivo ficou salvo assim:

Código PHP:
Vida 50.00000000 

e quando vou setar esse valor com SetPlayerHealth a vida não é setada com o valor que foi salvo, acredito que seja os varios zeros apos o ponto.

como faço para arredondar para 50.0 e etc...?


RE: Float - ProKillerPa - 02/08/2021

Não há nada a ver com os zeros salvos, é assim mesmo.
Seu código está ok, então acredito que o problema seja no carregamento da vida no arquivo do player.

Poste aqui pra nós como voce está carregando a vida do jogador diretamente do arquivo do mesmo.


RE: Float - zBL4CK - 02/08/2021

bom mano ta estranho o bglh agora kkk

bom ta assim:

Código PHP:
// topo da gm
new bool:logou[MAX_PLAYERS];

//onplayerconnect
logou[playerid] = false;


// onplayerspawn

if(logou[playerid] == false) {
   SetPlayerHealth(playerid50.0);
   logou[playerid] = true;


bom quando eu seto a vida dentro do if não vai mas quando eu seto fora do if funciona. ai ja ficou confuso


RE: Float - xbruno1000x - 02/08/2021

Mas se o player spawnou, ele já não logou? Busque pela variável logou e confirme que ela não é setada verdadeira antes do spawn. Além disso, não vi você usar em nenhum lugar a vida que foi salva.


RE: Float - zBL4CK - 03/08/2021

(02/08/2021 23:50)xbruno1000x Escreveu: Mas se o player spawnou, ele já não logou? Busque pela variável logou e confirme que ela não é setada verdadeira antes do spawn. Além disso, não vi você usar em nenhum lugar a vida que foi salva.

Sim como sabemos onplayerspawn é chamado em determinadas situações e como eu declarei aquela bool para somente identificar que o player spawnou apos o login e setei para true para que o que tiver dentro dela não seja chamado novamente caso onplayerspawn seja chamado novamente.

Porem quando eu coloco um print dentro do if junto com a função de setar a vida, mostra o print no console mas nn seta a vida o que é estranho.


RE: Float - ProKillerPa - 05/08/2021

Se printa no console e a vida não é alterada é por que tem algum script rodando que deve estar manipulando a vida. Verifique FS's, verifique alguma callback ou mesmo na onplayerupdate.

Abraços

Edit, lembrei agora: O que gosta de dar muito problema com a vida é anti cheaters.


RE: Float - zBL4CK - 05/08/2021

(05/08/2021 12:44)ProKillerPa Escreveu: Se printa no console e a vida não é alterada é por que tem algum script rodando que deve estar manipulando a vida. Verifique FS's, verifique alguma callback ou mesmo na onplayerupdate.

Abraços

Edit, lembrei agora: O que gosta de dar muito problema com a vida é anti cheaters.

eu também pensei nessa possibilidade porem revisei tudo e não ha nada que esteja interferindo na vida. É isso é meio estranho.


RE: Float - xbruno1000x - 05/08/2021

(05/08/2021 23:25)zBL4CK Escreveu:
(05/08/2021 12:44)ProKillerPa Escreveu: Se printa no console e a vida não é alterada é por que tem algum script rodando que deve estar manipulando a vida. Verifique FS's, verifique alguma callback ou mesmo na onplayerupdate.

Abraços

Edit, lembrei agora: O que gosta de dar muito problema com a vida é anti cheaters.

eu também pensei nessa possibilidade porem revisei tudo e não ha nada que esteja interferindo na vida. É isso é meio estranho.

Se você tirar a if, o SetPlayerHealth funciona?


RE: Float - zBL4CK - 06/08/2021

(05/08/2021 23:35)xbruno1000x Escreveu:
(05/08/2021 23:25)zBL4CK Escreveu:
(05/08/2021 12:44)ProKillerPa Escreveu: Se printa no console e a vida não é alterada é por que tem algum script rodando que deve estar manipulando a vida. Verifique FS's, verifique alguma callback ou mesmo na onplayerupdate.

Abraços

Edit, lembrei agora: O que gosta de dar muito problema com a vida é anti cheaters.

eu também pensei nessa possibilidade porem revisei tudo e não ha nada que esteja interferindo na vida. É isso é meio estranho.

Se você tirar a if, o SetPlayerHealth funciona?
sim funciona porem toda vez que o player morrer ou solicitar essa callback vai setar a vida inicial. ou seja:

Código PHP:
SetPlayerHealth(playeridPlayerInfoplayerid ][ _pHelth ]); 

e o ( PlayerInfo[ playerid ][ _pHelth ] ) e essa var so é atribuido o valor atual da vida do player quando ele desconecta.


RE: Float - xbruno1000x - 06/08/2021

(06/08/2021 06:24)zBL4CK Escreveu:
(05/08/2021 23:35)xbruno1000x Escreveu:
(05/08/2021 23:25)zBL4CK Escreveu:
(05/08/2021 12:44)ProKillerPa Escreveu: Se printa no console e a vida não é alterada é por que tem algum script rodando que deve estar manipulando a vida. Verifique FS's, verifique alguma callback ou mesmo na onplayerupdate.

Abraços

Edit, lembrei agora: O que gosta de dar muito problema com a vida é anti cheaters.

eu também pensei nessa possibilidade porem revisei tudo e não ha nada que esteja interferindo na vida. É isso é meio estranho.

Se você tirar a if, o SetPlayerHealth funciona?
sim funciona porem toda vez que o player morrer ou solicitar essa callback vai setar a vida inicial. ou seja:

Código PHP:
SetPlayerHealth(playeridPlayerInfoplayerid ][ _pHelth ]); 

e o ( PlayerInfo[ playerid ][ _pHelth ] ) e essa var so é atribuido o valor atual da vida do player quando ele desconecta.

Eu fiz esse questionamento por outro motivo, sei que é inviável utilizá-lo dessa forma. Acredito que o problema seja essa if... tente setar a vida na dialog do login ou em outra callback que seja chamada 1 vez antes do spawn.