Portal SAMP
[Ajuda] Jogadores congelando ao logar - 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] Jogadores congelando ao logar (/showthread.php?tid=3486)



Jogadores congelando ao logar - Kaue.ferreira - 30/03/2023

Bug os players estão nascendo congelado tanto mobile quanto pc ambos nascem congelado, e só  conseguem se mover quando aperta a tecla esc


RE: Jogadores congelando ao logar - White_Blue - 30/03/2023

A função TogglePlayerControllable é o que congela o jogador, provavelmente o jogador está sendo congelado em algum momento do código e não está sendo descongelado.

Para descobrir isso, basta apertar CTRL + F na sua IDE e pesquisar por TogglePlayerControllable.


RE: Jogadores congelando ao logar - zBL4CK - 30/03/2023

(30/03/2023 04:01)White_Blue Escreveu: A função TogglePlayerControllable é o que congela o jogador, provavelmente o jogador está sendo congelado em algum momento do código e não está sendo descongelado.

Para descobrir isso, basta apertar CTRL + F na sua IDE e pesquisar por TogglePlayerControllable.

Acredito que não seja TogglePlayerControllable pois esta função não permite que o player se descongele somente quando no servidor for setado o descongelamento, e como foi dito pelo amigo acima:
Citar:"e só  conseguem se mover quando aperta a tecla esc"

provavelmente os players no inicio foram setados para selecionarem textdraws(SelectTextDraw) então quando eles spawnarem utilize a função:

Código PHP:
CancelSelectTextDraw(playerid); 

Isso fara com que o player saia de modo de seleção de textdraw(que meio que congela o player enquanto ele esta selecionando textdraws) e assim os players spawnaram normalmente!


RE: Jogadores congelando ao logar - White_Blue - 30/03/2023

(30/03/2023 23:15)zBL4CK Escreveu:
(30/03/2023 04:01)White_Blue Escreveu: A função TogglePlayerControllable é o que congela o jogador, provavelmente o jogador está sendo congelado em algum momento do código e não está sendo descongelado.

Para descobrir isso, basta apertar CTRL + F na sua IDE e pesquisar por TogglePlayerControllable.

Acredito que não seja TogglePlayerControllable pois esta função não permite que o player se descongele somente quando no servidor for setado o descongelamento, e como foi dito pelo amigo acima:
Citar:"e só  conseguem se mover quando aperta a tecla esc"

provavelmente os players no inicio foram setados para selecionarem textdraws(SelectTextDraw) então quando eles spawnarem utilize a função:

Código PHP:
CancelSelectTextDraw(playerid); 

Isso fara com que o player saia de modo de seleção de textdraw(que meio que congela o player enquanto ele esta selecionando textdraws) e assim os players spawnaram normalmente!

Se esse for o problema, também será um problema na tela de login, pois se o jogador apertar 'esc' acidentalmente, ele não poderá digitar mais.

Para evitar isso basta usar corretamente o sistema de selecionar textdraws do SA-MP(Que é bem confuso e complicado e limitado por sinal):
Código PHP:
new bool:logado[MAX_PLAYERS] = false// Você vai precisar dessa variável para verificar se o jogador clicou no botão de logar.

public OnPlayerClickPlayerTextdraw(playeridPlayerText:playertextid) {
      if(
playertextid == login[playerid][0]) /* Substitua a variável 'login' pela sua variável de login. */ {
       
CancelSelectTextDraw(playerid);
       
logado[playerid] = true;
      } 
      return 
1;
}

public 
OnPlayerClickTextDraw(playeridText:clickedid) {
       if(
logado[playerid] == falseSelectTextDraw(playerid0xFFFF00AA); // Por algum motivo que desconheço, o SA-MP detecta como 'esc' nessa callback se não há nenhuma textdraw à ser selecionada... Por isso que é bem confuso às vezes. O sistema de selecionar textdraws no SA-MP no geral, eu diria que é o sistema mais difícil de se dominar.
       
return 1;




RE: Jogadores congelando ao logar - Kaue.ferreira - 17/04/2023

(30/03/2023 23:58)White_Blue Escreveu:
(30/03/2023 23:15)zBL4CK Escreveu:
(30/03/2023 04:01)White_Blue Escreveu: A função TogglePlayerControllable é o que congela o jogador, provavelmente o jogador está sendo congelado em algum momento do código e não está sendo descongelado.

Para descobrir isso, basta apertar CTRL + F na sua IDE e pesquisar por TogglePlayerControllable.

Acredito que não seja TogglePlayerControllable pois esta função não permite que o player se descongele somente quando no servidor for setado o descongelamento, e como foi dito pelo amigo acima:
Citar:"e só  conseguem se mover quando aperta a tecla esc"

provavelmente os players no inicio foram setados para selecionarem textdraws(SelectTextDraw) então quando eles spawnarem utilize a função:

Código PHP:
CancelSelectTextDraw(playerid); 

Isso fara com que o player saia de modo de seleção de textdraw(que meio que congela o player enquanto ele esta selecionando textdraws) e assim os players spawnaram normalmente!

Se esse for o problema, também será um problema na tela de login, pois se o jogador apertar 'esc' acidentalmente, ele não poderá digitar mais.

Para evitar isso basta usar corretamente o sistema de selecionar textdraws do SA-MP(Que é bem confuso e complicado e limitado por sinal):
Código PHP:
new bool:logado[MAX_PLAYERS] = false// Você vai precisar dessa variável para verificar se o jogador clicou no botão de logar.

public OnPlayerClickPlayerTextdraw(playeridPlayerText:playertextid) {
      if(playertextid == login[playerid][0]) /* Substitua a variável 'login' pela sua variável de login. */ {
       CancelSelectTextDraw(playerid);
       logado[playerid] = true;
      
      return 1;
}

public 
OnPlayerClickTextDraw(playeridText:clickedid) {
       if(logado[playerid] == falseSelectTextDraw(playerid0xFFFF00AA); // Por algum motivo que desconheço, o SA-MP detecta como 'esc' nessa callback se não há nenhuma textdraw à ser selecionada... Por isso que é bem confuso às vezes. O sistema de selecionar textdraws no SA-MP no geral, eu diria que é o sistema mais difícil de se dominar.
       return 1;


Deu certo pessoal vlw aí