dude fuck off -
FireCat - 07.08.2012
Tipo, quando faзo
pawn Код:
sscanf(gQuery,"e<p<|>{s[25]s[41]}s[16]iii>",PInfo[playerid]);
printf("IP: %s Money: %i Score: %i Level: %i",PInfo[playerid][pIP],PInfo[playerid][Money],PInfo[playerid][Score],PInfo[playerid][Level]);
Faz print de tudo 0 e IP й null.
Quando faзo
pawn Код:
sscanf(gQuery,"e<p<|>s[25]s[41]s[16]iii>",PInfo[playerid]);
printf("IP: %s Money: %i Score: %i Level: %i",PInfo[playerid][pIP],PInfo[playerid][Money],PInfo[playerid][Score],PInfo[playerid][Level]);
Faz print de tudo como deve de ser...
Qual й o problema?
Re: Ajuda com sscanf -
paulor - 07.08.2012
pawn Код:
sscanf(gQuery,"e<p<|>{s[25]s[41]}s[16]iii>",PInfo[playerid]);
//Aki vc ta ignorando duas Str.
sscanf(gQuery,"e<p<|>s[25]s[41]s[16]iii>",PInfo[playerid]);
//Aki nгo, aki ele vai preenche-las
Uma coisa, 'PInfo[playerid]' й esse msm o Enum ? nгo seria: 'PInfo' ?
Re: Ajuda com sscanf -
FireCat - 07.08.2012
Quote:
Originally Posted by paulor
pawn Код:
sscanf(gQuery,"e<p<|>{s[25]s[41]}s[16]iii>",PInfo[playerid]); //Aki vc ta ignorando duas Str.
sscanf(gQuery,"e<p<|>s[25]s[41]s[16]iii>",PInfo[playerid]); //Aki nгo, aki ele vai preenche-las
Uma coisa, 'PInfo[playerid]' й esse msm o Enum ? nгo seria: 'PInfo' ?
|
Eu quero que nao prencha as 2 primeiras strings.
E й uma enum, mas quero que prencha sу as variaveis do playerid, por isso essa parte ta certa >.<
Re: Ajuda com sscanf -
paulor - 07.08.2012
Quote:
Originally Posted by FireCat
Eu quero que nao prencha as 2 primeiras strings.
E й uma enum, mas quero que prencha sу as variaveis do playerid, por isso essa parte ta certa >.<
|
Entгo a 1 estб correta!
Re: Ajuda com sscanf -
FireCat - 07.08.2012
Quote:
Originally Posted by paulor
Entгo a 1 estб correta!
|
Mas nгo estб a fazer o load correcto!
Nem nas prints!
Re: Ajuda com sscanf -
Abravanel - 07.08.2012
Tente.
pawn Код:
sscanf(gQuery,"e<p<|>{s[" #MAX_PLAYER_NAME "]s[41]}s[16]iii>",PInfo[playerid]);
Re: Ajuda com sscanf -
paulor - 08.08.2012
pawn Код:
new Str[25], String[41];
strcat(Str, PInfo[0][ITEM_0]); strcat(String, PInfo[0][ITEM_1]); //Altere com os nome dos Itens.
sscaf(gQuery,"e<p<|>s[25]s[41]s[16]iii>",PInfo[0]);
strmid(PInfo[0][ITEM_0], Str, 0, 25); strmid(PInfo[0][ITEM_1], String, 0, 41); //Altere com os nome dos Itens.
printf("IP: %s Money: %i Score: %i Level: %i",PInfo[0][pIP],PInfo[0][Money],PInfo[0][Score],PInfo[0][Level]);
Ъnica maneira funcional que encontrei...
Re: Ajuda com sscanf -
ipsBruno - 08.08.2012
As strings estгo logo no inicio? Entгo basta passar a string com o caractere inicial acima do ip, й um bom truque de acesso em arrays/strings
Faзa:
sscanf(string ,"e<p<|>{
s[1]s[1]}
dd>", enumVariable[
c]);
A parte em azul vai pular as duas primeiras strings e a segunda parte em vermelho vai aplicar os valores inteiros. A parte verde й a partir de que valor deve ser colocado
Exemplo:
pawn Код:
// declaraзгo
new quesry [] = "127.0.0.1|Bruno|10|10";
enum firefeio {
a[24], // vamos pular estб parte
b[24], // vamos pular estб parte
c , // colocar um valor
d
}
new brunocat[firefeio] ;
// fazer a 'mбgica'
sscanf(quesry ,"e<p<|>{s[1]s[1]}dd>", brunocat[c]);
// imprimir os dados
// ||10|10
printf(
"%s|%s|%d|%d",
brunocat[a],
brunocat[b],
brunocat[c],
brunocat[d]
);
Se der "Overflow" basta aumentar o tamanho de s[
1]s[
1] para o tamanho total das arrays, no meu caso 24
_______
No seu caso ficaria:
sscanf(gQuery,"e<p<|>{s[25]s[41]}s[32]iii>",PInfo[playerid][
pIP]);
Assim iria pular as duas strings e aplicar os valores apуs pIP
Re: Ajuda com sscanf -
FireCat - 08.08.2012
Quote:
Originally Posted by ipsBruno
As strings estгo logo no inicio? Entгo basta passar a string com o caractere inicial acima do ip, й um bom truque de acesso em arrays/strings
Faзa:
sscanf(string ,"e<p<|>{ s[1]s[1]} dd>", enumVariable[ c]);
A parte em azul vai pular as duas primeiras strings e a segunda parte em vermelho vai aplicar os valores inteiros. A parte verde й a partir de que valor deve ser colocado
Exemplo:
pawn Код:
// declaraзгo new quesry [] = "127.0.0.1|Bruno|10|10";
enum firefeio { a[24], // vamos pular estб parte b[24], // vamos pular estб parte c , // colocar um valor d }
new brunocat[firefeio] ;
// fazer a 'mбgica' sscanf(quesry ,"e<p<|>{s[1]s[1]}dd>", brunocat[c]); // imprimir os dados // ||10|10
printf( "%s|%s|%d|%d", brunocat[a], brunocat[b], brunocat[c], brunocat[d] );
Se der "Overflow" basta aumentar o tamanho de s[ 1]s[ 1] para o tamanho total das arrays, no meu caso 24
_______
No seu caso ficaria:
sscanf(gQuery,"e<p<|>{s[25]s[41]}s[32]iii>",PInfo[playerid][ pIP]);
Assim iria pular as duas strings e aplicar os valores apуs pIP
|
pfft odeio essas variaveis! xD
Mas tipo, se eu puser PInfo[playerid][
pIP] nгo vai fazer load na enum toda
Й por isso que estou a fazer no inicio do sscanf e< (para espicificar que й uma enum)
e depois p<|> para saber o delimiter.
Se fizermos PInfo[playerid][
pIP] nгo vai fazer load na enum toda
Re: Ajuda com sscanf -
ipsBruno - 08.08.2012
Vocк quer fazer o que afinal? Cortar as duas primeiras strings e as duas primeiras partes da enum? Й aquilo que fiz.