Portal SAMP
[Ajuda] Player mobile travando ao utilizar comando específico - Versão de Impressão

+- Portal SAMP (https://portalsamp.com)
+-- Fórum: SA-MP Mobile (https://portalsamp.com/forumdisplay.php?fid=11)
+--- Fórum: Área de suporte (https://portalsamp.com/forumdisplay.php?fid=12)
+--- Tópico: [Ajuda] Player mobile travando ao utilizar comando específico (/showthread.php?tid=4735)



Player mobile travando ao utilizar comando específico - Ryzen_ - 30/04/2024

Olá pessoal, boa noite a todos. Estou com um problema, onde sempre que o player mobile (apenas mobile) utiliza o comando /profissao, simplesmente somem os botões da tela dele, e o mesmo precisa reiniciar seu jogo para voltar. O que poderia estar causando isso? Segue abaixo o código do comando em específico. Outra coisa que gostaria de saber também relacionado aos jogadores mobile, é que o checkpoint para eles sempre ficam brancos, enquanto os do PC continuam vermelhos. Existe alguma forma de mudar isso? Desde já, agreço a todos por toda e qualquer ajuda, muito obrigado!

Código PHP:
CMD:profissao(playerid) {
    new 
cmd_profissao[500];

    switch(
GetPlayerJob(playerid)) {
        case 
PROF_DESEMPREGADOSendClientMessage(playeridVermelho"| INFO | Você não possui um emprego. Vá até a agência de empregos para adquirir o seu.");
        case 
PROF_GARIformat(cmd_profissaosizeof(cmd_profissao), "{00FF00}x Recolher o lixo da cidade e a transformar em um local mais limpo\n\n\
                                                                        {FFFF00}/cp {FFFFFF}- Chat Profissão\n"
);
        case 
PROF_MECANICOformat(cmd_profissaosizeof(cmd_profissao), "{00FF00}x Consertar veículos pela cidade sempre que for solicitado\n\n\
                                                                            {FFFF00}/cp {FFFFFF}- Chat Profissão\n\
                                                                            {FFFF00}/repararmec {FFFFFF}- Repara veículo quebrado próximo\n"
);
        case 
PROF_CAMINHONEIROformat(cmd_profissaosizeof(cmd_profissao), "{00FF00}x Realizar entrega de mercadorias pela cidade, o mais rapidamente possível\n\n\
                                                                                {FFFF00}/cp {FFFFFF}- Chat Profissão\n\
                                                                                {FFFF00}/carregarcaminhao {FFFFFF}- Indica o checkpoint para carregar o caminhão\n\
                                                                                {FFFF00}/descarregarcaminhao {FFFFFF}- Realiza a entrega no local indicado\n\
                                                                                {FFFF00}/cancelarentrega {FFFFFF}- Cancela a entrega atual\n"
);
        case 
PROF_ENTREGADOR_DE_JORNALformat(cmd_profissaosizeof(cmd_profissao), "{00FF00}x Levar os jornais até as residências, permitindo que cada morador veja as notícias atuais\n\n\
                                                                                        {FFFF00}/cp {FFFFFF}- Chat Profissão\n\
                                                                                        {FFFF00}/entregarjornais {FFFFFF}- Inicia a rota para entrega de jornais\n\
                                                                                        {FFFF00}/finalizarjornais {FFFFFF}- Finaliza a rota de entrega dos jornais"
);
        default: 
SendClientMessage(playeridLaranja"| ERRO | Essa profissão ainda não foi documentada");
    }

    
ShowPlayerDialog(playerid32DIALOG_STYLE_MSGBOX"Comandos de sua profissão"cmd_profissao"Fechar""");

    return 
1;


Eu também não tenho tanta experiência quanto a otimização de strings. Creio que exista uma forma melhor de construir algo com muito texto, ficarei feliz se também conseguirem me ajudar quanto a isso.


RE: Player mobile travando ao utilizar comando específico - pushline - 30/04/2024

A questão da string está de boa, recomendaria usar strcat invés de re-formatar a string toda vez, já que mesmo que o comande rode denovo, a string não é estática e vai ser re-criada no processamento do comando.

Sobre o comando não há nada de errado no código, já tentasse pedir pra usarem outro launcher, ou acontece com qualquer um?
E sobre o checkpoint também pode ser algum launcher mobile quebrado.


RE: Player mobile travando ao utilizar comando específico - Ryzen_ - 30/04/2024

(30/04/2024 10:23)pushline Escreveu: A questão da string está de boa, recomendaria usar strcat invés de re-formatar a string toda vez, já que mesmo que o comande rode denovo, a string não é estática e vai ser re-criada no processamento do comando.

Sobre o comando não há nada de errado no código, já tentasse pedir pra usarem outro launcher, ou acontece com qualquer um?
E sobre o checkpoint também pode ser algum launcher mobile quebrado.

Mas o "strcat" não iria concatenar as strings? Creio não ser possível utilizar ele nesse caso, já que o texto é diferente de acordo com a profissão do jogador. Outro erro que está acontecendo agora, é que os checkpoints não estão aparecendo para eles. Existe algum erro referente ao uso dos CP's do Stream para jogadores mobile?


RE: Player mobile travando ao utilizar comando específico - Ryzen_ - 30/04/2024

Consegui resolver o problema do checkpoint não aparecer. Na verdade, o CP era criado, porém o MapIcon não era criado devido a algum problema na cor para os players mobile. Na documentação diz para utilizar uma cor hexadecimal RGBA (utilizei 0xFFFFFFFF "Vermelho"), ou uma cor de número inteiro. Utilizando a cor hexadecimal, funcionava para o player em um PC, mas não para os mobiles. Primeiro aparecia em branco, e depois parou até mesmo de aparecer. Alterei para uma cor em valor inteiro (3) que também corresponde a cor vermelha, e funcionou corretamente. O problema de travamento, creio que possivelmente seja realmente devido ao launcher utilizado. Testei utilizando o launcher oficial que tem na Google Play, e entrou normalmente, e outros players também fizeram o teste e não houve erro algum. Muito obrigado pelas respostas dadas.


RE: Player mobile travando ao utilizar comando específico - pushline - 02/05/2024

"Mas o "strcat" não iria concatenar as strings"
Não, por que ia ser re-criado ao rodar o comando novamente, justamente pela variavel "cmd_profissao" não ser estática.