Szerző Téma: nem kapja meg az értékeket a változó!!!  (Megtekintve 915 alkalommal)

nem kapja meg az értékeket a változó!!!
« Dátum: 2011. augusztus 13. - 03:09:03 »
0 Show voters
Segítsetek nem kapa meg az értékeket a változó miért??:(
 

new str[5][128];
    format(query, sizeof(query), \"SELECT * FROM `userek` WHERE `jatekosnev` = \'%s\' \",playername);
mysql_query(query);
mysql_fetch_row(line);
new AdminLevel,Warns,Level,Kills,Deaths,Cash,Bank,Skin,PrisonTime,Prison,ev,honap,nap;
sscanf(line, \"p<|>ssssddddddddddddd\",str[0],str[1],str[2],str[3],AdminLevel,Warns,Level,Kills,Deaths,Cash,Bank,Skin,PrisonTime,Prison,ev,honap,nap);
AdminLevel = PlayerInfo[playerid][pAdmin];
Warns      = PlayerInfo[playerid][pWarns];
Level       = PlayerInfo[playerid][pLevel];
Kills      = PlayerInfo[playerid][pKills];
Deaths     = PlayerInfo[playerid][pDeaths];
Cash       = PlayerInfo[playerid][pCash];
Bank       = PlayerInfo[playerid][pBank];
Skin       = PlayerInfo[playerid][pSkin];
PrisonTime = PlayerInfo[playerid][pPrisonTime];
Prison     = PlayerInfo[playerid][pPrison];
ev          = PlayerInfo[playerid][pDate3];
honap      = PlayerInfo[playerid][pDate2];
nap        = PlayerInfo[playerid][pDate1];
« Utoljára szerkesztve: 2011. augusztus 13. - 12:42:53 írta kriszrap »

nem kapja meg az értékeket a változó!!!
« Válasz #1 Dátum: 2011. augusztus 13. - 13:48:53 »
0 Show voters
Látom nem ír senki a témába
A sscanf pluginnál a string típusúnak szánt változóknak meg kell adni a méretét is gondolom nem nézted a szerver log fájlt és azt a pár sscanf errort se vetted figyelembe.
[pawn]sscanf(line, \"p<|>s[128]s[128]s[128]s[128]ddddddddddddd\",str[0],....[/pawn]
De sokkal de sokkal egyszerûbben le lehet kérni az adatokat de valahol el kell kezdeni megismerni.
Például mysqlnél le lehetne korlátozni hogy csak azokkal az adatokkal térjen vissza amikre konkrétan szükség van, a játékos adatai közül.
[pawn]format(query, sizeof(query), \"SELECT `Money`,`Kills` FROM `userek` WHERE `jatekosnev` = \'%s\' \",playername);[/pawn]
ebben az esetben a játékosnévnek megfelelõen kettõ darab adattal fog visszatérni (50001|34) pénz `Money` és az ölések `Kills` értékével.
Akkor a sscanf rendelkezik egy enumerációs dologgal is ahol nem kell minden egyes elemét beírni a sscanf kód sorába hanem minden egyes elemét megtölti adattokkal típusuknak megfelelõen.
Én ajánlom jobban átnézni a sscanf plugin topicját vannak példák leírva amikbõl lehet tanulni.
De sokkal több hiba van a bemásolt kódban mintsem hogy végig részletezzem.
Edit:
Azért még egyet mégis mert ez eléggé piszkálja a szemem.
[pawn]Deaths     = PlayerInfo[playerid][pDeaths];[/pawn]
Szerintem nem a Deaths változónak kell megadni az értéket hanem fordítva hogy játékosoknak adja meg.
[pawn]PlayerInfo[playerid][pDeaths] = Deaths;[/pawn]
« Utoljára szerkesztve: 2011. augusztus 13. - 13:53:13 írta Zsolesszka »

nem kapja meg az értékeket a változó!!!
« Válasz #2 Dátum: 2011. augusztus 13. - 16:05:35 »
0 Show voters
hát most az elsõ tömböt hozza csak be:(
 

format(query, sizeof(query), \"SELECT * FROM `userek` WHERE `jatekosnev` = \'%s\' and `IP` = \'%s\'\",playername,pIp);
mysql_query(query);
mysql_store_result();
if(mysql_num_rows() == 1)
   {
new line[200],query2[500];
        format(query2, sizeof(query2), \"SELECT `AdminLevel`,`Warnings` FROM `userek` WHERE `jatekosnev` = \'%s\' \",playername);
mysql_query(query2);
mysql_fetch_row(line);
        sscanf(line, \"p<|>dd\",AdminLevel,Warns);
     PlayerInfo[playerid][pAdmin] = AdminLevel;
        PlayerInfo[playerid][pWarns] = Warns;

 
be írtam fölötte lévõ dolgokat hát ha az az zavar be.
vagy már megint én rontottam el valamit:(
« Utoljára szerkesztve: 2011. augusztus 13. - 16:11:07 írta kriszrap »

Nem elérhető kurta999

  • 2759
  • Éllő fédisznó
    • Profil megtekintése
nem kapja meg az értékeket a változó!!!
« Válasz #3 Dátum: 2011. augusztus 13. - 16:25:02 »
0 Show voters
Én rögtön betölteném a PlayerInfo-ba.
[pawn]
format(query, sizeof(query), \"SELECT * FROM `userek` WHERE `jatekosnev` = \'%s\' and `IP` = \'%s\'\",playername,pIp);
mysql_query(query);
mysql_store_result();
if(mysql_num_rows() == 1)
{
   new
      line[200],
      query2[500];
   format(query2, sizeof(query2), \"SELECT `AdminLevel`,`Warnings` FROM `userek` WHERE `jatekosnev` = \'%s\' \",playername);
   mysql_query(query2);
   mysql_fetch_row(line);
   sscanf(line, \"p<|>dd\",PlayerInfo[playerid][pAdmin], PlayerInfo[playerid][pWarns]);
}
[/pawn]

nem kapja meg az értékeket a változó!!!
« Válasz #4 Dátum: 2011. augusztus 13. - 16:36:56 »
0 Show voters

Nem elérhető kurta999

  • 2759
  • Éllő fédisznó
    • Profil megtekintése
nem kapja meg az értékeket a változó!!!
« Válasz #5 Dátum: 2011. augusztus 13. - 16:47:18 »
0 Show voters
Az tényleg kimaradt.
Szerintem nézegess át rendesen egy MySQL-es scriptet, vagy olvasd el a wikin ezeket a fõ funkciókat, mert ettõl akár a szervered is crashes lehet, ha ilyen hibákat okozol.

nem kapja meg az értékeket a változó!!!
« Válasz #6 Dátum: 2011. augusztus 13. - 23:27:27 »
0 Show voters
na sikerült:)
« Utoljára szerkesztve: 2011. augusztus 14. - 00:50:19 írta kriszrap »

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal