[Ajuda] Strings.
#1

qual seria o Modo mais correto de usar uma String ?

Criando uma para cada funзгo ?

Exemplo:

pawn Код:
CMD:test(playerid)
{
    new String[128];
    ....
Ou Criar uma Universal ?

pawn Код:
new String[128];

CMD:test(playerid)
{
    //utilizar ela aqui.
    ...
Reply
#2

Depende,Strings Locais sгo deletadas ao vocк retornar algo no comando.
Jб Globais,ficam armazenadas na memoria.
Eu mesmo uso Strings Globais para armazenar algumas coisas que preciso usar 'Futuramente'.
Reply
#3

Eu uso globais tambйm, pra isto que o gustavo falou e tambйm pra economizar tamanho de arquivo no .amx
Reply
#4

Global fode vбrios comandos que usam strcat, strdel, format entre outros, pois a String nгo й deletada apуs seu uso '-'
Recomendo uma String em cada comando pois se vocк coloca uma STR de 1024 mesmo sendo grande pode pesar atй menos do que vбrias com valores menores em cada comando, mas torna mais lento, ai vocк decide, velocidade ou peso do .amx ...
Reply
#5

Quem disse que global vai foder usando format?
Global sу vai ferrar se vocк ultilizб-las em timers, ou usar strcat.
Se for sу em comandos, ex; new strComando[128], nгo tem o menor problema
Reply
#6

Quote:
Originally Posted by Ricop522
Посмотреть сообщение
Quem disse que global vai foder usando format?
Global sу vai ferrar se vocк ultilizб-las em timers, ou usar strcat.
Se for sу em comandos, ex; new strComando[128], nгo tem o menor problema
Nгo sei se estб correto o exemplo mas vocк irб entender:
pawn Код:
new STR[128];

stock Parte1Mensagem()
{
    format(STR, sizeof(STR), "Olб, eu seu CidadeNovaRP e vim mostrar uma coisa.");
    FormatarMensagem();
    return 1;
}

stock Parte2Mensagem()
{
    return format(STR, sizeof(STR), "%s FORMAT pode dar sim BUG's com vars Globais!", STR);
}

stock FormatarMensagem()
{
    //new STR[128];
    format(STR, sizeof(STR), "Olб, tudo bem %s?", "Ricop");
    return 1;
}
Reply
#7

Quote:
Originally Posted by CidadeNovaRP
Посмотреть сообщение
Nгo sei se estб correto o exemplo mas vocк irб entender:
pawn Код:
new STR[128];

stock Parte1Mensagem()
{
    format(STR, sizeof(STR), "Olб, eu seu CidadeNovaRP e vim mostrar uma coisa.");
    FormatarMensagem();
    return 1;
}

stock Parte2Mensagem()
{
    return format(STR, sizeof(STR), "%s FORMAT pode dar sim BUG's com vars Globais!", STR);
}

stock FormatarMensagem()
{
    //new STR[128];
    format(STR, sizeof(STR), "Olб, tudo bem %s?", "Ricop");
    return 1;
}
Mais cara,quando se usa uma variбvel em um format,no caso STR ela passarб a 'Carregar' o que tem dentro do format,mais ao usar outro format,ela ira 'Substituir',para usar deste tipo que vocк disse,Ou use outra variбvel ou use Strcat.
Ou Seja:
Variбvel Global = Armazenar algo que vocк usa durante toda a execuзгo do Gamemode e quer 'Guarda-la' para consulta-la a qualquer momento.
Variбvel Local = Armazenar algo que logo depois de usado nгo sera mais ъtil no comando.
Reply
#8

Quote:
Originally Posted by Gustavo_Araujo
Посмотреть сообщение
Mais cara,quando se usa uma variбvel em um format,no caso STR ela passarб a 'Carregar' o que tem dentro do format,mais ao usar outro format,ela ira 'Substituir',para usar deste tipo que vocк disse,Ou use outra variбvel ou use Strcat.
Ou Seja
Variбvel Global = Armazenar algo que vocк usa durante toda a execuзгo do Gamemode e quer 'Guarda-la' para consulta-la a qualquer momento.
Variбvel Local = Armazenar algo que logo depois de usado nгo sera mais ъtil no comando.
Sim, mas existem vбrias pessoas que pegam jб o valor (o que ta salvo) na stirng e escreve uma nova string de vez sem precisar ter de criar outras vars e usar strcat+format, veja:
pawn Код:
CMD:hello(playerid)
{
    new String[64];
    static Var = 2;
    if(1 != Var)
    {
        format(String, 64, "Olб %s, tudo bom com seu filho %s que tem %d anos?", "Gustavo", "Moises", 16);
    }
    else
    {
        format(String, 64, "Olб %s, tudo bom com seu filho %s que tem %d anos?", "Gustavo", "Joгo", 4);
    }
   
    format(String, 62, "%s Se sim de um pulinho meu amigo %s!", String, "Gustavo");
    return 1;
}
Exemplo besta e inъtil mas da para entender *-*
Reply
#9

Quote:
Originally Posted by CidadeNovaRP
Посмотреть сообщение
Sim, mas existem vбrias pessoas que pegam jб o valor (o que ta salvo) na stirng e escreve uma nova string de vez sem precisar ter de criar outras vars e usar strcat+format, veja:
pawn Код:
CMD:hello(playerid)
{
    new String[64];
    static Var = 2;
    if(1 != Var)
    {
        format(String, 64, "Olб %s, tudo bom com seu filho %s que tem %d anos?", "Gustavo", "Moises", 16);
    }
    else
    {
        format(String, 64, "Olб %s, tudo bom com seu filho %s que tem %d anos?", "Gustavo", "Joгo", 4);
    }
   
    format(String, 62, "%s Se sim de um pulinho meu amigo %s!", String, "Gustavo");
    return 1;
}
Exemplo besta e inъtil mas da para entender *-*
Para mim vc confundiu com strcat e dps pra disfarзar criou um exemplo que nгo condiz com o dito acima..
Reply
#10

Quote:
Originally Posted by CidadeNovaRP
Посмотреть сообщение
Sim, mas existem vбrias pessoas que pegam jб o valor (o que ta salvo) na stirng e escreve uma nova string de vez sem precisar ter de criar outras vars e usar strcat+format, veja:
pawn Код:
CMD:hello(playerid)
{
    new String[64];
    static Var = 2;
    if(1 != Var)
    {
        format(String, 64, "Olб %s, tudo bom com seu filho %s que tem %d anos?", "Gustavo", "Moises", 16);
    }
    else
    {
        format(String, 64, "Olб %s, tudo bom com seu filho %s que tem %d anos?", "Gustavo", "Joгo", 4);
    }
   
    format(String, 62, "%s Se sim de um pulinho meu amigo %s!", String, "Gustavo");
    return 1;
}
Exemplo besta e inъtil mas da para entender *-*
Sim,intendi o seu exemplo,assim vocк 'Adiciona' uma String a outra String,seria a mesma coisa que Strcat(Alias,sei que й um exemplo,mais o 1°/2° format + 3° format daria mais que 64 cells ,nгo? ^^).
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)