LIMITE CHAT GLOBAL - fear - 24/12/2021
Boa noite. eu coloquei pra quando ser staff mostrar no chat global porém... ele esta limitando a quantidade de caracteres tanto pra admin quanto pra player normal.. oque estou fazendo errado?
Código PHP: CMD:cg(playerid, params[]) { if(ChecarPermissoes(playerid)) return 1; new textomsg[256], stringcc[256], nomecc[MAX_PLAYER_NAME]; GetPlayerName(playerid, nomecc, MAX_PLAYER_NAME); if(sscanf(params, "s[256]", textomsg)) return Msg(playerid, Vermelho, "<!> {FFFFFF}Use: {FF0000}/Cg [Menssagem]"); if(playerChatMuted[playerid]) { if(gettime() < playerChatTalkedTime[playerid]) return SendClientMessage(playerid, COLOR_YELLOW, "<!> {FFFFFF}Você foi mutado durante 30 segundos por flood no chat GLOBAL."); else playerChatMuted[playerid] = false, playerChatTalkedTime[playerid] = 0; } if(gettime() < playerChatTalkedTime[playerid]) { playerChatTimesSpoken[playerid]++;
if(playerChatTimesSpoken[playerid] > 1) { playerChatMuted[playerid] = true; playerChatTimesSpoken[playerid] = 0; playerChatTalkedTime[playerid] = gettime() + 30;
return SendClientMessage(playerid, COLOR_YELLOW, "<!> {FFFFFF}Você foi mutado durante 30 segundos por flood no chat GLOBAL."); } } else if(GetPlayerAdminLevel(playerid) <= 0) { playerChatTimesSpoken[playerid] = 0; playerChatTalkedTime[playerid] = gettime() + 5; format(stringcc, sizeof(stringcc), "[CHAT GLOBAL] ** /Cg ** {FFFFFF}%s[ID:%d] {FFFFFF}Diz: {0080C0}%s", nomecc, playerid, textomsg); SendClientMessageToAll(0x0080C0AA, stringcc); } else { format(stringcc, sizeof(stringcc), "{FFFFFF}[{0080C0}CHAT GLOBAL{FFFFFF}] ** /Cg ** {FFFFFF}[{27AE60}%s{FFFFFF}] {FFFFFF}%s[ID:%d] {FFFFFF}Diz: {0080C0}%s", admins(playerid, 1), nomecc, playerid, textomsg); SendClientMessageToAll(0x0080C0AA, stringcc); } return 1; }
Já aumentei as strings e nada.. continua limitando pra ambos..
RE: LIMITE CHAT GLOBAL - ipsLuan - 24/12/2021
É do próprio SA-MP. Você pode criar uma string com 1 bilhão de char, mas o SA-MP irá limitar na tela.
https://sampwiki.blast.hk/wiki/Limits
Mas, você pode fazer uma "gambiarra" e inserir uma nova linha com o restante da frase.
Código: if(strlen(text) > 64) {
SendVehicleMessage(vehicleid, COLOR_WHITE, "** [Janelas Fechadas][Celular] [ID: %d] diz: %.64s", playerid, text);
SendVehicleMessage(vehicleid, COLOR_WHITE, "...%s **", text[64]);
}
else SendVehicleMessage(vehicleid, COLOR_WHITE, "** [Janelas Fechadas][Celular] [ID: %d] diz: %s **", playerid, text);
Explicação: se o texto for acima de 64 caracteres, irá inserir uma nova linha abaixo com o restante da frase a partir do caractere 64.
RE: LIMITE CHAT GLOBAL - fear - 24/12/2021
(24/12/2021 10:42)ipsLuan Escreveu: É do próprio SA-MP. Você pode criar uma string com 1 bilhão de char, mas o SA-MP irá limitar na tela.
https://sampwiki.blast.hk/wiki/Limits
Mas, você pode fazer uma "gambiarra" e inserir uma nova linha com o restante da frase.
Código: if(strlen(text) > 64) {
SendVehicleMessage(vehicleid, COLOR_WHITE, "** [Janelas Fechadas][Celular] [ID: %d] diz: %.64s", playerid, text);
SendVehicleMessage(vehicleid, COLOR_WHITE, "...%s **", text[64]);
}
else SendVehicleMessage(vehicleid, COLOR_WHITE, "** [Janelas Fechadas][Celular] [ID: %d] diz: %s **", playerid, text);
Explicação: se o texto for acima de 64 caracteres, irá inserir uma nova linha abaixo com o restante da frase a partir do caractere 64.
Luan eu sei que tem um limitador no SAMP ... porém ele está limitando sem eu digitar os 64 caracteres.. veja no print abaixo..
Esse e o maximo que sai pra cada um deles... acho que tem algo errado no comando acima
STAFF ¹
PLAYER ²
RE: LIMITE CHAT GLOBAL - ipsLuan - 24/12/2021
Claro, cara.
Isso é questão de lógica: os caracteres contam a partir da primeira letra/número e não apenas a parte de fala.
Ou seja, a partir do [ que está em [CHAT GLOBAL] já começa a contar.
RE: LIMITE CHAT GLOBAL - fear - 24/12/2021
(24/12/2021 13:11)ipsLuan Escreveu: Claro, cara.
Isso é questão de lógica: os caracteres contam a partir da primeira letra/número e não apenas a parte de fala.
Ou seja, a partir do [ que está em [CHAT GLOBAL] já começa a contar.
Eu já removi a escrita antes e mesmo assim eu digito e não aparece tá limitando .. olhou o comando q eu fiz?
RE: LIMITE CHAT GLOBAL - ipsLuan - 24/12/2021
Envia aí o comando atual e a mensagem completa que aparece.
RE: LIMITE CHAT GLOBAL - Luiz - 24/12/2021
Só a própria string pra caso ele seja admin já conta com 110 caracteres aproximadamente. Isso dá um total de 18 caracteres que o jogador pode digitar.
Código PHP: {FFFFFF}[{0080C0}CHAT GLOBAL{FFFFFF}] ** /Cg ** {FFFFFF}[{27AE60}%s{FFFFFF}] {FFFFFF}%s[ID:%d] {FFFFFF}Diz: {0080C0}%s
A forma de corrigir isso é somente tirando esse monte de cores que são alteradas. Vai diminuir os caracteres e vai permitir que o jogador digite textos maiores.
Como exemplo:
Código PHP: [CHAT GLOBAL] ** /Cg ** [%s] %s[ID:%d] Diz: %s
RE: LIMITE CHAT GLOBAL - fear - 24/12/2021
(24/12/2021 14:58)ipsLuan Escreveu: Envia aí o comando atual e a mensagem completa que aparece.
Vou explicar direito pois não expliquei corretamente... antes de eu adc a tag do staff o chat dava pra escrever normalmente.. como na print
Porém quando eu modifiquei adc a tag do staff ele ficou assim tanto pra player como pra staff..
COMANDO:
Código PHP: CMD:cg(playerid, params[]) { if(ChecarPermissoes(playerid)) return 1; new textomsg[256], stringcc[256], nomecc[MAX_PLAYER_NAME]; GetPlayerName(playerid, nomecc, MAX_PLAYER_NAME); if(sscanf(params, "s[256]", textomsg)) return Msg(playerid, Vermelho, "<!> {FFFFFF}Use: {FF0000}/Cg [Menssagem]"); if(playerChatMuted[playerid]) { if(gettime() < playerChatTalkedTime[playerid]) return SendClientMessage(playerid, COLOR_YELLOW, "<!> {FFFFFF}Você foi mutado durante 30 segundos por flood no chat GLOBAL."); else playerChatMuted[playerid] = false, playerChatTalkedTime[playerid] = 0; } if(gettime() < playerChatTalkedTime[playerid]) { playerChatTimesSpoken[playerid]++;
if(playerChatTimesSpoken[playerid] > 1) { playerChatMuted[playerid] = true; playerChatTimesSpoken[playerid] = 0; playerChatTalkedTime[playerid] = gettime() + 30;
return SendClientMessage(playerid, COLOR_YELLOW, "<!> {FFFFFF}Você foi mutado durante 30 segundos por flood no chat GLOBAL."); } } else if(GetPlayerAdminLevel(playerid) <= 0) { playerChatTimesSpoken[playerid] = 0; playerChatTalkedTime[playerid] = gettime() + 5; format(stringcc, sizeof(stringcc), "[CHAT GLOBAL] ** /Cg ** {FFFFFF}%s[ID:%d] {FFFFFF}Diz: {0080C0}%s", nomecc, playerid, textomsg); SendClientMessageToAll(0x0080C0AA, stringcc); } else { format(stringcc, sizeof(stringcc), "{FFFFFF}[{0080C0}CHAT GLOBAL{FFFFFF}] ** /Cg ** {FFFFFF}[{27AE60}%s{FFFFFF}] {FFFFFF}%s[ID:%d] {FFFFFF}Diz: {0080C0}%s", admins(playerid, 1), nomecc, playerid, textomsg); SendClientMessageToAll(0x0080C0AA, stringcc); } return 1; }
Única coisa que fiz foi colocar o else e o if caso não seja admin chat normal e caso seja adc a tag na format. oque eu fiz de errado que eu não entendo pois o [CHAT GLOBAL] existia antes e dava pra digitar normalmente..
ANTES DE MODIFICAR - DEPOIS DE MODIFICAR PLAYER - DEPOIS DE MODIFICAR STAFF
RE: LIMITE CHAT GLOBAL - Luiz - 24/12/2021
Como já dito, "Só a própria string pra caso ele seja admin já conta com 110 caracteres aproximadamente. Isso dá um total de 18 caracteres que o jogador pode digitar."
Os códigos de cores consomem caractere, se ficar alterando toda hora a cor da mensagem, vai diminuir cada vez mais a quantidade de caracteres que o jogador pode digitar.
Anteriormente, como pode ver, não tinha mudanças de cores. Portanto, você podia digitar muito mais coisa.
Como você adicionou várias cores, a mensagem vai ser cortada.
RE: LIMITE CHAT GLOBAL - fear - 24/12/2021
(24/12/2021 19:55)Luiz Escreveu: Como já dito, "Só a própria string pra caso ele seja admin já conta com 110 caracteres aproximadamente. Isso dá um total de 18 caracteres que o jogador pode digitar."
Os códigos de cores consomem caractere, se ficar alterando toda hora a cor da mensagem, vai diminuir cada vez mais a quantidade de caracteres que o jogador pode digitar.
Anteriormente, como pode ver, não tinha mudanças de cores. Portanto, você podia digitar muito mais coisa.
Como você adicionou várias cores, a mensagem vai ser cortada.
blz.. achei que meu comando estava errado.
|