Portal SAMP
[Ajuda] Símbolos e letras - 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] Símbolos e letras (/showthread.php?tid=1147)



Símbolos e letras - Turv - 29/04/2021

Bom dia galera, este é meu primeiro post e preciso de sua ajuda se possível

Algumas semanas atrás eu comecei um projeto e estou tendo um bug desde então, acontece que o servidor não pega as letras e símbolos como:

ñ
Ñ
!
á
Á

Você sabe como consertar este problema? muito obrigado por ler


RE: Símbolos e letras - xbruno1000x - 29/04/2021

As letras do GTA SA usadas em SA-MP são provenientes da língua inglesa, e por esse motivo a acentuação não é suportada em textdraws.

Felizmente isso pode ser resolvido com um simples código:

Código:
stock FixText(string[])
{
    new szFixed[1024], iPos, iLen;

    for(iLen = strlen(string); iPos < iLen; iPos ++)
        switch(string[iPos])
        {
            case '%':          szFixed[iPos] = 37;
            case '&':          szFixed[iPos] = 38;
            case '¡':          szFixed[iPos] = 64;
            case '°':          szFixed[iPos] = 124;
            case 'À':          szFixed[iPos] = 128;
            case 'Á':          szFixed[iPos] = 129;
            case 'Â':          szFixed[iPos] = 130;
            case 'Ä', 'Ã':     szFixed[iPos] = 131;
            case 'Ç':          szFixed[iPos] = 133;
            case 'È':          szFixed[iPos] = 134;
            case 'É':          szFixed[iPos] = 135;
            case 'Ê':          szFixed[iPos] = 136;
            case 'Ë':          szFixed[iPos] = 137;
            case 'Ì':          szFixed[iPos] = 138;
            case 'Í':          szFixed[iPos] = 139;
            case 'Î':          szFixed[iPos] = 140;
            case 'Ï':          szFixed[iPos] = 141;
            case 'Ò':          szFixed[iPos] = 142;
            case 'Ó':          szFixed[iPos] = 143;
            case 'Ô':          szFixed[iPos] = 144;
            case 'Ö', 'Õ':     szFixed[iPos] = 145;
            case 'Ù':          szFixed[iPos] = 146;
            case 'Ú':          szFixed[iPos] = 147;
            case 'Û':          szFixed[iPos] = 148;
            case 'Ü':          szFixed[iPos] = 149;
            case 'à':          szFixed[iPos] = 151;
            case 'á':          szFixed[iPos] = 152;
            case 'â':          szFixed[iPos] = 153;
            case 'ä', 'ã':     szFixed[iPos] = 154;
            case 'ç':          szFixed[iPos] = 156;
            case 'è':          szFixed[iPos] = 157;
            case 'é':          szFixed[iPos] = 158;
            case 'ê':          szFixed[iPos] = 159;
            case 'ë':          szFixed[iPos] = 160;
            case 'ì':          szFixed[iPos] = 161;
            case 'í':          szFixed[iPos] = 162;
            case 'î':          szFixed[iPos] = 163;
            case 'ï':          szFixed[iPos] = 164;
            case 'ò':          szFixed[iPos] = 165;
            case 'ó':          szFixed[iPos] = 166;
            case 'ô':          szFixed[iPos] = 167;
            case 'ö', 'õ':     szFixed[iPos] = 168;
            case 'ù':          szFixed[iPos] = 169;
            case 'ú':          szFixed[iPos] = 170;
            case 'û':          szFixed[iPos] = 171;
            case 'ü':          szFixed[iPos] = 172;
            case 'Ñ':          szFixed[iPos] = 173;
            case 'ñ':          szFixed[iPos] = 174;
            case '¿':          szFixed[iPos] = 175;
            case '`':          szFixed[iPos] = 177;
            default:           szFixed[iPos] = string[iPos];
          }
    return szFixed;
}

Para utilizar textdraw com caracteres corrigidos, basta usar o formato abaixo:
Código:
GameTextForPlayer(playerid, FixText("~r~VOCÊ SUBIU DE LEVEL!"), 3000, 3);
Use FixText e coloque os caracteres acentuados dentro do parêntesis dele.


RE: Símbolos e letras - Turv - 29/04/2021

(29/04/2021 08:27)xbruno1000x Escreveu: As letras do GTA SA usadas em SA-MP são provenientes da língua inglesa, e por esse motivo a acentuação não é suportada em textdraws.

Felizmente isso pode ser resolvido com um simples código:

Código:
stock FixText(string[])
{
    new szFixed[1024], iPos, iLen;

    for(iLen = strlen(string); iPos < iLen; iPos ++)
        switch(string[iPos])
        {
            case '%':          szFixed[iPos] = 37;
            case '&':          szFixed[iPos] = 38;
            case '¡':          szFixed[iPos] = 64;
            case '°':          szFixed[iPos] = 124;
            case 'À':          szFixed[iPos] = 128;
            case 'Á':          szFixed[iPos] = 129;
            case 'Â':          szFixed[iPos] = 130;
            case 'Ä', 'Ã':     szFixed[iPos] = 131;
            case 'Ç':          szFixed[iPos] = 133;
            case 'È':          szFixed[iPos] = 134;
            case 'É':          szFixed[iPos] = 135;
            case 'Ê':          szFixed[iPos] = 136;
            case 'Ë':          szFixed[iPos] = 137;
            case 'Ì':          szFixed[iPos] = 138;
            case 'Í':          szFixed[iPos] = 139;
            case 'Î':          szFixed[iPos] = 140;
            case 'Ï':          szFixed[iPos] = 141;
            case 'Ò':          szFixed[iPos] = 142;
            case 'Ó':          szFixed[iPos] = 143;
            case 'Ô':          szFixed[iPos] = 144;
            case 'Ö', 'Õ':     szFixed[iPos] = 145;
            case 'Ù':          szFixed[iPos] = 146;
            case 'Ú':          szFixed[iPos] = 147;
            case 'Û':          szFixed[iPos] = 148;
            case 'Ü':          szFixed[iPos] = 149;
            case 'à':          szFixed[iPos] = 151;
            case 'á':          szFixed[iPos] = 152;
            case 'â':          szFixed[iPos] = 153;
            case 'ä', 'ã':     szFixed[iPos] = 154;
            case 'ç':          szFixed[iPos] = 156;
            case 'è':          szFixed[iPos] = 157;
            case 'é':          szFixed[iPos] = 158;
            case 'ê':          szFixed[iPos] = 159;
            case 'ë':          szFixed[iPos] = 160;
            case 'ì':          szFixed[iPos] = 161;
            case 'í':          szFixed[iPos] = 162;
            case 'î':          szFixed[iPos] = 163;
            case 'ï':          szFixed[iPos] = 164;
            case 'ò':          szFixed[iPos] = 165;
            case 'ó':          szFixed[iPos] = 166;
            case 'ô':          szFixed[iPos] = 167;
            case 'ö', 'õ':     szFixed[iPos] = 168;
            case 'ù':          szFixed[iPos] = 169;
            case 'ú':          szFixed[iPos] = 170;
            case 'û':          szFixed[iPos] = 171;
            case 'ü':          szFixed[iPos] = 172;
            case 'Ñ':          szFixed[iPos] = 173;
            case 'ñ':          szFixed[iPos] = 174;
            case '¿':          szFixed[iPos] = 175;
            case '`':          szFixed[iPos] = 177;
            default:           szFixed[iPos] = string[iPos];
          }
    return szFixed;
}

Para utilizar textdraw com caracteres corrigidos, basta usar o formato abaixo:
Código:
GameTextForPlayer(playerid, FixText("~r~VOCÊ SUBIU DE LEVEL!"), 3000, 3);
Use FixText e coloque os caracteres acentuados dentro do parêntesis dele.

Muito obrigado por ler e responder

Infelizmente não consegui resolver o problema, ao compilar recebo este erro:

Código:
[758]    return szFixed;
C:\Users\Turv2\Desktop\Servidor Oficial\gamemodes\pito.pwn(758) : error 010: invalid function or declaration


OBS: Também tenho o erro no GameModeText, Hostname e Language

[Imagem: ULbbhiv.png]

Mais uma vez, obrigado pela leitura.


RE: Símbolos e letras - xbruno1000x - 29/04/2021

Para corrigir language e outros textos que aparecem no SA-MP, basta assinalar os nomes dentro do gamemode usando SendRconCommand na OnGameModeInit.

Código:
SendRconCommand("language Português");

Código:
SendRconCommand("hostname NOME DO SEU SERVER");

Código:
SendRconCommand("gamemodetext GAMEMODE TEXT");

Código:
SendRconCommand("mapname São Paulo");



RE: Símbolos e letras - Turv - 29/04/2021

(29/04/2021 18:42)xbruno1000x Escreveu: Para corrigir language e outros textos que aparecem no SA-MP, basta assinalar os nomes dentro do gamemode usando SendRconCommand na OnGameModeInit.

Código:
SendRconCommand("language Português");

Código:
SendRconCommand("hostname NOME DO SEU SERVER");

Código:
SendRconCommand("gamemodetext GAMEMODE TEXT");

Código:
SendRconCommand("mapname São Paulo");

Obrigado por responder novamente.

Como antes, o problema permanece. Eu configurei o idioma do server.cfg (então apague a linha do idioma e ela permanece a mesma)
Eu atualizei a_samp.inc, também atualizei samp-server.exe, coloquei o código como você postou (eu já tinha assim antes) e ainda nada funciona. Ainda aparecendo Português

[Imagem: DaNOZx5.png]

Também como eu disse antes, coloco o FixText no GM e recebo o erro mencionado

Obrigado pela leitura


RE: Símbolos e letras - zBL4CK - 29/04/2021

(29/04/2021 20:05)Turv Escreveu:
(29/04/2021 18:42)xbruno1000x Escreveu: Para corrigir language e outros textos que aparecem no SA-MP, basta assinalar os nomes dentro do gamemode usando SendRconCommand na OnGameModeInit.

Código:
SendRconCommand("language Português");

Código:
SendRconCommand("hostname NOME DO SEU SERVER");

Código:
SendRconCommand("gamemodetext GAMEMODE TEXT");

Código:
SendRconCommand("mapname São Paulo");

Obrigado por responder novamente.

Como antes, o problema permanece. Eu configurei o idioma do server.cfg (então apague a linha do idioma e ela permanece a mesma)
Eu atualizei a_samp.inc, também atualizei samp-server.exe, coloquei o código como você postou (eu já tinha assim antes) e ainda nada funciona. Ainda aparecendo Português

[Imagem: DaNOZx5.png]

Também como eu disse antes, coloco o FixText no GM e recebo o erro mencionado

Obrigado pela leitura
você esta usando qual editor? se for o vscode troque a codificação para windows 1252


RE: Símbolos e letras - Turv - 29/04/2021

(29/04/2021 21:01)zBL4CK Escreveu:
(29/04/2021 20:05)Turv Escreveu:
(29/04/2021 18:42)xbruno1000x Escreveu: Para corrigir language e outros textos que aparecem no SA-MP, basta assinalar os nomes dentro do gamemode usando SendRconCommand na OnGameModeInit.

Código:
SendRconCommand("language Português");

Código:
SendRconCommand("hostname NOME DO SEU SERVER");

Código:
SendRconCommand("gamemodetext GAMEMODE TEXT");

Código:
SendRconCommand("mapname São Paulo");

Obrigado por responder novamente.

Como antes, o problema permanece. Eu configurei o idioma do server.cfg (então apague a linha do idioma e ela permanece a mesma)
Eu atualizei a_samp.inc, também atualizei samp-server.exe, coloquei o código como você postou (eu já tinha assim antes) e ainda nada funciona. Ainda aparecendo Português

[Imagem: DaNOZx5.png]

Também como eu disse antes, coloco o FixText no GM e recebo o erro mencionado

Obrigado pela leitura
você esta usando qual editor? se for o vscode troque a codificação para windows 1252
Atualmente, uso o Sublime Text 3.

Tentei com Pawno (integrado) e ainda não funciona


RE: Símbolos e letras - xbruno1000x - 29/04/2021

(29/04/2021 21:08)Turv Escreveu:
(29/04/2021 21:01)zBL4CK Escreveu:
(29/04/2021 20:05)Turv Escreveu:
(29/04/2021 18:42)xbruno1000x Escreveu: Para corrigir language e outros textos que aparecem no SA-MP, basta assinalar os nomes dentro do gamemode usando SendRconCommand na OnGameModeInit.

Código:
SendRconCommand("language Português");

Código:
SendRconCommand("hostname NOME DO SEU SERVER");

Código:
SendRconCommand("gamemodetext GAMEMODE TEXT");

Código:
SendRconCommand("mapname São Paulo");

Obrigado por responder novamente.

Como antes, o problema permanece. Eu configurei o idioma do server.cfg (então apague a linha do idioma e ela permanece a mesma)
Eu atualizei a_samp.inc, também atualizei samp-server.exe, coloquei o código como você postou (eu já tinha assim antes) e ainda nada funciona. Ainda aparecendo Português

[Imagem: DaNOZx5.png]

Também como eu disse antes, coloco o FixText no GM e recebo o erro mencionado

Obrigado pela leitura
você esta usando qual editor? se for o vscode troque a codificação para windows 1252
Atualmente, uso o Sublime Text 3.

Tentei com Pawno (integrado) e ainda não funciona

Intenta con Pawn Community Compiler. Puede descargar en https://github.com/openmultiplayer/compiler .

Utilizo ambos códigos y funcionan correctamente


RE: Símbolos e letras - MarcosBrazz - 29/04/2021

(29/04/2021 21:08)Turv Escreveu:
(29/04/2021 21:01)zBL4CK Escreveu:
(29/04/2021 20:05)Turv Escreveu:
(29/04/2021 18:42)xbruno1000x Escreveu: Para corrigir language e outros textos que aparecem no SA-MP, basta assinalar os nomes dentro do gamemode usando SendRconCommand na OnGameModeInit.

Código:
SendRconCommand("language Português");

Código:
SendRconCommand("hostname NOME DO SEU SERVER");

Código:
SendRconCommand("gamemodetext GAMEMODE TEXT");

Código:
SendRconCommand("mapname São Paulo");

Obrigado por responder novamente.

Como antes, o problema permanece. Eu configurei o idioma do server.cfg (então apague a linha do idioma e ela permanece a mesma)
Eu atualizei a_samp.inc, também atualizei samp-server.exe, coloquei o código como você postou (eu já tinha assim antes) e ainda nada funciona. Ainda aparecendo Português

[Imagem: DaNOZx5.png]

Também como eu disse antes, coloco o FixText no GM e recebo o erro mencionado

Obrigado pela leitura
você esta usando qual editor? se for o vscode troque a codificação para windows 1252
Atualmente, uso o Sublime Text 3.

Tentei com Pawno (integrado) e ainda não funciona

Eu Também uso o Sublime, e para corrigir o problema de acentuação eu clico em File > Save With Encoding > Western (Windows 1252) e compilo.