Portal SAMP
[Ajuda] Como usar strings e o que é "format"? - 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] Como usar strings e o que é "format"? (/showthread.php?tid=3780)



Como usar strings e o que é "format"? - Usuário Aleatório - 14/07/2023

Olá,sou um programador novato e n sei quase nada,estava fazendo o comando /regras no meu server (q vai mostrar as regras do server através de uma dialog de MSGBOX e realmente escrevi mt texto nela e entretando surgiu esse erro :error 037: invalid string (possibly non-terminated string) como resolvo ele e como funciona isso de "strings" e formats?alguem explica?pesquisei em muitos foruns,no samp wiki,open mp e tals mas n entendo


RE: Como usar strings e o que é "format"? - xbruno1000x - 14/07/2023

Código?


RE: Como usar strings e o que é "format"? - Usuário Aleatório - 14/07/2023

(14/07/2023 14:35)xbruno1000x Escreveu: Código?

No fundo mesmo gostaria é d entender isso de ´´strings´´ e ´´formats´´,to tentando entender isso há um bom tempo já, li o artigo do samp wiki,open mp e mts outros fóruns e tals mas nunca entendo,é mó confuso,pelo q sei tem como resolver esse erro usando string,porém,já q n entendo nada d string,n sei como resolver usando elas.


RE: Como usar strings e o que é "format"? - xbruno1000x - 14/07/2023

Olha, o ideal seria você me mostrar o código para que eu faça uma explicação dos pontos onde está errando.

Uma explicação geral:
format é para quando você for usar alguma variável num texto. Então você insere %d para números inteiros e %s para string. Exemplo:
Código:
new terkonek[128];
    format(terkonek,sizeof(terkonek),"O seu ID é %d", playerid);
No lugar de %d será colocado o meu playerid.

Para enviar essa mensagem que foi formatada, basta inserir a variável da string dentro da função que deseja. Exemplo:
Código:
SendClientMessage(playerid, -1, terkonek);

Dessa forma irá aparecer meu próprio ID num SendClientMessage.


RE: Como usar strings e o que é "format"? - White_Blue - 14/07/2023

Em termos leigos, string significa literalmente "corda" em inglês, por que é uma "corda" de caracteres(Letras caso prefira) que é basicamente a variável que representa o texto na programação.

No caso do "format" é uma função que formata a string como o nome sugere, ou seja, você pode adicionar/inserir o texto que essa string vai ter por meio da função format, também permitindo a adição de especificadores(Que são %d(Que representa um número inteiro) %f(Que representa um número decimal) %s(Que representa um texto[string]) enfim, no começo pode parecer difícil mas na verdade é bem simples.


RE: Como usar strings e o que é "format"? - Usuário Aleatório - 15/07/2023

Olá glr,dsclp ter demorado tanto pra responder tava com problemas aq,eis o código:
Código PHP:
CMD:regras(playerid)
{
ShowPlayerDialog(playerid,DIALOG_REGRAS,DIALOG_STYLE_MSGBOX"{f50b0b}New Journey Roleplay® - Regras""{f40c0c}DM(DeathMatch):{ffffff}Atacar/agredir outros jogadores usem razão alguma.(Não é válido para minigames ou eventos).Exemplos:\n\n\t{ffffff}•Atacar o veículo de um caminhoneiro ou taxista em trabalho sem razão alguma é considerado DM.\n\t•Atirar em alguém sem o mesmo não ter feito nada contra você é DM.\nAI(Ação Irreal):Fazer uma ação totalmente irreal.Exemplos:\n\n\t•Estar em cima de um veículo em movimento(Não é valido para veículos com compartimento traseiros)""Entendido""");
return 
1;


e dá me dando esses erros aqui ó glr:
Código PHP:
C:\Users\gilma\Downloads\New Journey Roleplay\pawno\nf1.pwn(785) : error 075input line too long (after substitutions)
C:\Users\gilma\Downloads\New Journey Roleplay\pawno\nf1.pwn(786) : error 037invalid string (possibly non-terminated string



RE: Como usar strings e o que é "format"? - White_Blue - 15/07/2023

(15/07/2023 10:00)Usuário Aleatório Escreveu: Olá glr,dsclp ter demorado tanto pra responder tava com problemas aq,eis o código:
Código PHP:
CMD:regras(playerid)
{
ShowPlayerDialog(playerid,DIALOG_REGRAS,DIALOG_STYLE_MSGBOX"{f50b0b}New Journey Roleplay® - Regras""{f40c0c}DM(DeathMatch):{ffffff}Atacar/agredir outros jogadores usem razão alguma.(Não é válido para minigames ou eventos).Exemplos:\n\n\t{ffffff}•Atacar o veículo de um caminhoneiro ou taxista em trabalho sem razão alguma é considerado DM.\n\t•Atirar em alguém sem o mesmo não ter feito nada contra você é DM.\nAI(Ação Irreal):Fazer uma ação totalmente irreal.Exemplos:\n\n\t•Estar em cima de um veículo em movimento(Não é valido para veículos com compartimento traseiros)""Entendido""");
return 
1;


e dá me dando esses erros aqui ó glr:
Código PHP:
C:\Users\gilma\Downloads\New Journey Roleplay\pawno\nf1.pwn(785) : error 075input line too long (after substitutions)
C:\Users\gilma\Downloads\New Journey Roleplay\pawno\nf1.pwn(786) : error 037invalid string (possibly non-terminated string

Compilei esse seu mesmo código aqui e não deu nenhum erro. Suponho que seja um problema com seu compilador. Use o compilador da comunidade.


RE: Como usar strings e o que é "format"? - Usuário Aleatório - 15/07/2023

(15/07/2023 11:09)White_Blue Escreveu:
(15/07/2023 10:00)Usuário Aleatório Escreveu: Olá glr,dsclp ter demorado tanto pra responder tava com problemas aq,eis o código:
Código PHP:
CMD:regras(playerid)
{
ShowPlayerDialog(playerid,DIALOG_REGRAS,DIALOG_STYLE_MSGBOX"{f50b0b}New Journey Roleplay® - Regras""{f40c0c}DM(DeathMatch):{ffffff}Atacar/agredir outros jogadores usem razão alguma.(Não é válido para minigames ou eventos).Exemplos:\n\n\t{ffffff}•Atacar o veículo de um caminhoneiro ou taxista em trabalho sem razão alguma é considerado DM.\n\t•Atirar em alguém sem o mesmo não ter feito nada contra você é DM.\nAI(Ação Irreal):Fazer uma ação totalmente irreal.Exemplos:\n\n\t•Estar em cima de um veículo em movimento(Não é valido para veículos com compartimento traseiros)""Entendido""");
return 
1;


e dá me dando esses erros aqui ó glr:
Código PHP:
C:\Users\gilma\Downloads\New Journey Roleplay\pawno\nf1.pwn(785) : error 075input line too long (after substitutions)
C:\Users\gilma\Downloads\New Journey Roleplay\pawno\nf1.pwn(786) : error 037invalid string (possibly non-terminated string

Compilei esse seu mesmo código aqui e não deu nenhum erro. Suponho que seja um problema com seu compilador. Use o compilador da comunidade.

Fiz algumas modificacoes no code e continua dando o mesmo código,pelo q sei,1 desses erros q tá dando é por o texto ser demasiado longo,existe algum limite d letras pra escrever nas DIALOGS??


RE: Como usar strings e o que é "format"? - White_Blue - 15/07/2023

(15/07/2023 12:10)Usuário Aleatório Escreveu:
(15/07/2023 11:09)White_Blue Escreveu:
(15/07/2023 10:00)Usuário Aleatório Escreveu: Olá glr,dsclp ter demorado tanto pra responder tava com problemas aq,eis o código:
Código PHP:
CMD:regras(playerid)
{
ShowPlayerDialog(playerid,DIALOG_REGRAS,DIALOG_STYLE_MSGBOX"{f50b0b}New Journey Roleplay® - Regras""{f40c0c}DM(DeathMatch):{ffffff}Atacar/agredir outros jogadores usem razão alguma.(Não é válido para minigames ou eventos).Exemplos:\n\n\t{ffffff}•Atacar o veículo de um caminhoneiro ou taxista em trabalho sem razão alguma é considerado DM.\n\t•Atirar em alguém sem o mesmo não ter feito nada contra você é DM.\nAI(Ação Irreal):Fazer uma ação totalmente irreal.Exemplos:\n\n\t•Estar em cima de um veículo em movimento(Não é valido para veículos com compartimento traseiros)""Entendido""");
return 
1;


e dá me dando esses erros aqui ó glr:
Código PHP:
C:\Users\gilma\Downloads\New Journey Roleplay\pawno\nf1.pwn(785) : error 075input line too long (after substitutions)
C:\Users\gilma\Downloads\New Journey Roleplay\pawno\nf1.pwn(786) : error 037invalid string (possibly non-terminated string

Compilei esse seu mesmo código aqui e não deu nenhum erro. Suponho que seja um problema com seu compilador. Use o compilador da comunidade.

Fiz algumas modificacoes no code e continua dando o mesmo código,pelo q sei,1 desses erros q tá dando é por o texto ser demasiado longo,existe algum limite d letras pra escrever nas DIALOGS??

Sim, existe, no texto principal(info) o máximo são 4096 caracteres.

[Imagem: xMDKiON.png]
Reprodução: https://sampwiki.blast.hk/wiki/Limits


RE: Como usar strings e o que é "format"? - xbruno1000x - 15/07/2023

Você não pode pular linhas ao escrever o código de uma string. Tem que colocar um \ ou usar strcat.
Exemplo com strcat:
Código:
    strcat(MEGAString, "Coloque aqui o link da música, rádio ou Youtube:\n\n");
    strcat(MEGAString, "{999999}Exemplo de link (HUNTER FM): {FFFFFF}http://live.hunterfm.com/live\n");
    strcat(MEGAString, "{999999}OBS1: Certifíque-se que o link não esteja inválido, caso estiver a música não irá tocar!\n");
    strcat(MEGAString, "{999999}OBS2: Agora é possível colocar link de musicas do Youtube, nem todas irão tocar.\n");
    strcat(MEGAString, "{FFFFFF}Exemplo de link do youtube: {FFFF00}www.youtube.com/watch?v=YgFyi74DVjc");

    ShowPlayerDialog(playerid, 3499, DIALOG_STYLE_INPUT, "Rádio Portátil", MEGAString, "Tocar", "Sair");

Toda vez que eu pulei uma linha, concatenei.