Portal SAMP
[Ajuda] Mensagem grande demais - 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] Mensagem grande demais (/showthread.php?tid=1426)



Mensagem grande demais - MatheuzPatoo - 20/07/2021


Fiz um sistema simples de /d [mensagem] que possibilita policiais se comunicarem, porem a mensagem ficou muito grande, mesmo aumentando o tamanho da string ele não aparece quando uso, não sei se é um bug do proprio samp ou fiz algo errado!



RE: Mensagem grande demais - ipsLuan - 20/07/2021

Cadê o código?


RE: Mensagem grande demais - Luiz - 20/07/2021

A única maneira de corrigir isso é fazendo um sistema automático de quebra de linha ou então diminuindo a mensagem padrão, por exemplo:
Ao invés de:
Código PHP:
Chat-Policia O(APolicial Nick[IDdizOlá 
Reduzir para:
Código PHP:
Chat-Polícia Nick[ID]: Olá
Lembrando que o chat do SAMP aceita até 128 caracteres. Se você, por acaso, definiu a variável da string como menor que 128, mensagens com mais caracteres que o limite não aparecerão no chat.


RE: Mensagem grande demais - MatheuzPatoo - 20/07/2021

(20/07/2021 16:02)Luiz Escreveu: A única maneira de corrigir isso é fazendo um sistema automático de quebra de linha ou então diminuindo a mensagem padrão, por exemplo:
Ao invés de:
Código PHP:
Chat-Policia O(APolicial Nick[IDdizOlá 
Reduzir para:
Código PHP:
Chat-Polícia Nick[ID]: Olá
Lembrando que o chat do SAMP aceita até 128 caracteres. Se você, por acaso, definiu a variável da string como menor que 128, mensagens com mais caracteres que o limite não aparecerão no chat.
Já reduzi muito man, porem não vai tlgd, deixei a string em 1000 porem n vai!



RE: Mensagem grande demais - Luiz - 20/07/2021

(20/07/2021 17:24)MatheuzPatoo Escreveu:
(20/07/2021 16:02)Luiz Escreveu: A única maneira de corrigir isso é fazendo um sistema automático de quebra de linha ou então diminuindo a mensagem padrão, por exemplo:
Ao invés de:
Código PHP:
Chat-Policia O(APolicial Nick[IDdizOlá 
Reduzir para:
Código PHP:
Chat-Polícia Nick[ID]: Olá
Lembrando que o chat do SAMP aceita até 128 caracteres. Se você, por acaso, definiu a variável da string como menor que 128, mensagens com mais caracteres que o limite não aparecerão no chat.
Já reduzi muito man, porem não vai tlgd, deixei a string em 1000 porem n vai!

Poste o código aqui do comando para verificar. 
Se por acaso estiver tentando enviar uma mensagem muito longa no comando, realmente não vai aparecer. O que você pode fazer é evitar que digitem textos muito longos:
Código PHP:
if(strlen(texto) > 100)
    return SendClientMessage(playerid, -1"| ERRO | Mensagem muito grande."); 
Dá para fazer também uma checagem da quantidade de caracteres do nick do(a) jogador(a) e a quantidade de caracteres do ID dele e somar com a mensagem fixa, caso seja maior que 128, retornar a mensagem.


RE: Mensagem grande demais - theCrawler - 21/07/2021

(20/07/2021 08:18)MatheuzPatoo Escreveu:
Fiz um sistema simples de /d [mensagem] que possibilita policiais se comunicarem, porem a mensagem ficou muito grande, mesmo aumentando o tamanho da string ele não aparece quando uso, não sei se é um bug do proprio samp ou fiz algo errado!

Não aparece pq o chat do samp tem um limite de 128 caracters. Não existe como modificar isso de forma nativa.


RE: Mensagem grande demais - Flenex - 21/07/2021

um detalhe importante: as cores também ocupam caracteres, se vc usa por exemplo
Código PHP:
SendClientMessage(playerid, -1"{00ffff}| COPS | %s[%d] diz: {FFFFFF}%s"); 
vai consumir vários espaços, deixando o texto menor, deixe tudo na mesma cor e coloca no "-1" a cor q vc quer


RE: Mensagem grande demais - MatheuzPatoo - 23/07/2021

(21/07/2021 18:14)Flenex Escreveu: um detalhe importante: as cores também ocupam caracteres, se vc usa por exemplo
Código PHP:
SendClientMessage(playerid, -1"{00ffff}| COPS | %s[%d] diz: {FFFFFF}%s"); 
vai consumir vários espaços, deixando o texto menor, deixe tudo na mesma cor e coloca no "-1" a cor q vc quer
Resolvi disponibilizar o codigo pq ta osso!

Código PHP:
CMD:d(playeridparams[])
{
    if(
sscanf(params"s"Mensagem)) return SendClientMessage(playerid0xFF230AFF"{FF0000}[Erro | CMC] {FFFFFF}Você digitou o comando errado!");

    if(
PlayerInformacoes[playerid][pOrg] == 0)
    {
        
SendClientMessage(playerid, -1"{FF0000}[Erro | CMC] {FFFFFF}Você não participa de uma corporação para modular na radio do departamento!");
    }
    
    if(
PlayerInformacoes[playerid][pOrg] >= && PlayerInformacoes[playerid][pOrg] <= 13)
    {
        
SendClientMessage(playerid, -1"{FF0000}[Erro | CMC] {FFFFFF}Você participa de uma facção e não de uma corporação, por isso não pode modular na radio do departamento!");
    }

    if(
PlayerInformacoes[playerid][pOrg] == 1)
    {
        
format(Stringsizeof(String), "{CDC1C5}[DP|%d |PM|CMC] - %s"playeridMensagem);
        
SendMessageRadioToDepartamento(playeridString);
    }

    if(
PlayerInformacoes[playerid][pOrg] == 2)
    {
        
format(Stringsizeof(String), "{CDC1C5}[DP|%d|BOPE|CMC] - %s"playeridMensagem);
        
SendMessageRadioToDepartamento(playeridString);
    }

    if(
PlayerInformacoes[playerid][pOrg] == 3)
    {
        
format(Stringsizeof(String), "{CDC1C5}[DP|%d|PRF|CMC] - %s"playeridMensagem);
        
SendMessageRadioToDepartamento(playeridString);
    }

    if(
PlayerInformacoes[playerid][pOrg] == 4)
    {
        
format(Stringsizeof(String), "{CDC1C5}[DP|%d|PF|CMC] - %s"playeridMensagem);
        
SendMessageRadioToDepartamento(playeridString);
    }

    if(
PlayerInformacoes[playerid][pOrg] == 5)
    {
        
format(Stringsizeof(String), "{CDC1C5}[DP|%d|EB|CMC] - %s"playeridMensagem);
        
SendMessageRadioToDepartamento(playeridString);
    }
    return 
1;
}

SendMessageRadioToDepartamento(playerid, const string[])
{
    if(
PlayerInformacoes[playerid][pOrg] <=&& PlayerInformacoes[playerid][pOrg] == 0)
    {
        foreach(new 
Player)
             if(
PlayerInformacoes[playerid][pOrg] >= && PlayerInformacoes[playerid][pOrg] <= 5)
    
           {
    
             SendClientMessage(i0xFFBD9DFFstring);
            }
    }
    return 1;




RE: Mensagem grande demais - zBL4CK - 23/07/2021

eu utilizo um sistema parecido em minha gamemode para dar quebra de linha:
Código PHP:
//OnplayerText
if(strlen(text) > 75) {
    new 
SegundaLinha[128];
    
format(SegundaLinhasizeof SegundaLinhatext[75]);
    
strdel(text75149);
    
format(stringvsizeof(stringv), "{FF0000}[ tag ]%s{FFFFFF}[%d]: %s"GetPlayerNameEx(playerid), playeridtext);
    
SendClientMessageToAll(-1stringv);
    
SendClientMessageToAll(-1SegundaLinha);
    return 
0;
} else {
    
format(stringvsizeof(stringv), "{FF0000}[ tag™ ]%s{FFFFFF}[%d]: %s"GetPlayerNameEx(playerid), playeridtext);
    
SendClientMessageToAll(-1stringv);
    return 
0;
}

stock GetPlayerNameEx(playerid) {
    new 
PlayerNameLevel[MAX_PLAYER_NAME];
    
GetPlayerName(playeridPlayerNameLevelMAX_PLAYER_NAME);
    return 
PlayerNameLevel;


adapte ao seu gamemode!