Szerző Téma: SSCANF probléma | logban ottvan de üres a sor, a rangot nem tölti be  (Megtekintve 861 alkalommal)

0 Show voters
split(data[23], splits, \',\');
   for(new i=0; i < 15; i++)
   {
      strmid(FrakcioInfo[idx][fRangok], splits, 0, strlen(splits), 32);
      //format(FrakcioInfo[idx][fRangok], 32, \"%s\", splits);
      printf(\"%s\", FrakcioInfo[idx][fRangok]);
   }
}
idx++;
}
printf(\"Lekeres: %s\", FrakcioInfo[2][fRangok][5]);
printf(\"\\n================Minden Frakció betoltve================\\n\");
}

 
a probléma:

az strmid után lévõ print arra van, hogy látszódjon a logban, hogy jól tölti-e be a dolgokat a mód.


a logban benne is vannak a rangok, viszont a \"minden frakció betöltve\" print felett lévõ már nem mûködik.


egyszerûen egy üres sort ír a logba.

ebbõl kifolyólag a következõ parancs sem mûködik:
 
if(egyezik(cmd, \"/teszt\"))
{
new  munka = PlayerInfo[playerid][pMember] - 1, rang = PlayerInfo[playerid][pRank];
SendFormatMessage(playerid, 0xFFFFFAA, \"Rang: %s\", FrakcioInfo[munka][fRangok][rang]);
return 1;
}

 

erre a válasz: \"Rang:  \"

 
mi lehet a probléma?

miért nem tölti be a rangot ha a logban ott van?

[mod]Javítottam a

taget

tagre![/mod]
« Utoljára szerkesztve: 2014. augusztus 19. - 15:16:55 írta Dfoglalo »

SSCANF probléma | logban ottvan de üres a sor, a rangot nem tölti be
« Válasz #1 Dátum: 2014. augusztus 19. - 15:05:12 »
0 Show voters
A rang az itt számként van elmentve nem? :P
Egyszerû a megoldás. a \"Rang: %s\"-nél van a hiba.
Hiszen a %s változó az betût jelöl.
A
 
if(egyezik(cmd, \"/teszt\"))
{
new  munka = PlayerInfo[playerid][pMember] - 1, rang = PlayerInfo[playerid][pRank];
SendFormatMessage(playerid, 0xFFFFFAA, \"Rang: %s\", FrakcioInfo[munka][fRangok][rang]);
return 1;
}

 
code-t cseréld ki erre:
 
if(egyezik(cmd, \"/teszt\"))
{
new  munka = PlayerInfo[playerid][pMember] - 1, rang = PlayerInfo[playerid][pRank];
SendFormatMessage(playerid, 0xFFFFFAA, \"Rang: %d\", FrakcioInfo[munka][fRangok][rang]);//a %d számváltozó
return 1;
}

 
Ha úgy lennének elmentve a rangok hogy nem 1,2,3,4..stb hanem Kezdõ,Haladó,Szorgos,Profi...stb akkor a %s maradhatna mert akkor ki bírja írni a szeró. :D
------------------------------------------------------------
Szov lányegében ahol számot kellene betölteni ott a %d helyett %s van és ez a gond a /teszt nél és feljebb is.
------------------------------------------------------------
Remélem tudtam segíteni!
[mod]Javítottam a

taget

tagre![/mod]
« Utoljára szerkesztve: 2014. augusztus 19. - 15:16:33 írta Dfoglalo »

Nem elérhető BackUP

  • 908
    • Profil megtekintése
SSCANF probléma | logban ottvan de üres a sor, a rangot nem tölti be
« Válasz #2 Dátum: 2014. augusztus 19. - 15:14:42 »
0 Show voters
Idézetet írta: SyT3x date=1408453512\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"50097\" data-ipsquote-contentclass=\"forums_Topic
A rang az itt számként van elmentve nem? :P
Egyszerû a megoldás. a \"Rang: %s\"-nél van a hiba.
Hiszen a %s változó az betût jelöl.
 
Majdnem.
A %d, és %i mint integer(egész szám) jelölése A %d, és %i közötti külömbség szerintem nem olyan fontos, %dt használsz mindenhol ahol egész szám kell gondod nem lesz belõle. %f Float, tizedestört, %s pedig karakterlánc(string). Karakterláncba tároljuk a mondatokat, betûket. Te egész számot akarsz kiíratni szerintem(bár nem vagyok biztos benne), ezesetben %d amit használhatsz(mindig ezt használom).
A változó teljesen más dolog, nincs összefüggés a kettõ között.

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal