Szerző Téma: /enter - Nem állítja át a pozíciót,virtualworld-t,interiorid-t.  (Megtekintve 1036 alkalommal)

0 Show voters
Sziasztok!
Nem tudom mi lehet a gond vele.
A /ujhaz parancsom beír egy sora a hazak táblámba, ez hibátlan.
Utána a /enter parancs végigmegy a sorokon, és ha a player közel van valamelyikhez (IsPlayerRangeOfPoint) akkor vw, interior, és pos váltás.
De valamiért nem változtatja meg.
Most használatam elõszõr mysql_fetch_row_format függvényt, szerintem azzal lehet a gond.
Így próbálkoztam:
 
CMD:enter(playerid, params[])
{
format(query, 256, \"SELECT virtualworld FROM \"HAZTABLA\" WHERE virtualworld = MAX(\'virtualworld\')\");
mysql_store_result(); new lastid = mysql_fetch_int(); mysql_free_result();
new Float:posx, Float:posy, Float:posz, Float:interiorx, Float:interiory, Float:interiorz, interiorid, virtualworld;
        mysql_real_escape_string(PlayerName(playerid),nev);
for(new i = 0; i < lastid; i++){
format(query, 256, \"SELECT x,y,z FROM \"HAZTABLA\" WHERE virtualworld = \'%i\'\",i);
mysql_query(query);
mysql_store_result();
mysql_fetch_row_format(sor);
if(!sscanf(sor, \"fff\", posx,posy,posz)){
    if(IsPlayerInRangeOfPoint(playerid, 2.0, posx,posy,posz)){
      hazid[playerid] = i;
      hazban[playerid] = true;
      format(query, 256, \"SELECT interiorx,interiory,interiorz,interiorid,virtualworld FROM \"HAZTABLA\" WHERE                 virtualworld = \'%i\'\", hazid[playerid]);
                                mysql_query(query);
                                mysql_store_result();
                                mysql_fetch_row(sor);
      if(!sscanf(sor, \"fffii\", interiorx,interiory,interiorz,interiorid,virtualworld)){
                 SetPlayerPos(playerid, interiorx,interiory,interiorz);
                 SetPlayerInterior(playerid, interiorid);
            SetPlayerVirtualWorld(playerid, virtualworld);
          break;
      }
   }
}
}
return 1;
}

/enter - Nem állítja át a pozíciót,virtualworld-t,interiorid-t.
« Válasz #1 Dátum: 2012. január 02. - 19:19:45 »
0 Show voters


Ennyire egy össze ***** kódot.
 
Ha bemásolod a mysql adat tábla szerkezetét ( \"HAZTABLA\" ) írok neked egy változatot errõl a parancsról, ha gondolod.

/enter - Nem állítja át a pozíciót,virtualworld-t,interiorid-t.
« Válasz #2 Dátum: 2012. január 02. - 19:38:56 »
0 Show voters
Azt megköszönném :)
Szerkezet export:
 
CREATE TABLE IF NOT EXISTS `hazak` (
`virtualworld` int(12) NOT NULL AUTO_INCREMENT,
`tulaj` varchar(24) NOT NULL,
`statusz` int(12) NOT NULL,
`eladasiar` int(12) NOT NULL,
`berletidij` int(12) NOT NULL,
`x` varchar(15) NOT NULL,
`y` varchar(15) NOT NULL,
`z` varchar(15) NOT NULL,
`interiorid` int(12) NOT NULL,
`interiorx` varchar(15) NOT NULL,
`interiory` varchar(15) NOT NULL,
`interiorz` varchar(15) NOT NULL,
PRIMARY KEY (`virtualworld`)) ENGINE=InnoDB  DEFAULT CHARSET=utf8 AUTO_INCREMENT=8 ;

/enter - Nem állítja át a pozíciót,virtualworld-t,interiorid-t.
« Válasz #3 Dátum: 2012. január 02. - 19:57:43 »
0 Show voters
A virtualworld részét nem értem ha van 1500 ház elmentve akkor a virtualworld értékének ~1500-nak kell lenni?  (SetPlayerVirtualWorld)
Mert jelen esetben így van megírva.

/enter - Nem állítja át a pozíciót,virtualworld-t,interiorid-t.
« Válasz #4 Dátum: 2012. január 02. - 20:04:58 »
0 Show voters
Azért csináltam így, mert nem tudtam hogy oldjam meg.
Az a cél hogy ne találkozhassanak egymással a házukban, ha ugyan az az interior van benne.
« Utoljára szerkesztve: 2012. január 02. - 20:11:50 írta mauladam »

/enter - Nem állítja át a pozíciót,virtualworld-t,interiorid-t.
« Válasz #5 Dátum: 2012. január 02. - 20:14:22 »
0 Show voters
Ok.
Írtam egy változatot nem teszteltem:
[pawn]CMD:enter(playerid)
{
new
   bool:kozelben = true,
   query[256],
   Float:h_xyz[3],
   Float:i_xyz[3],
   interiorid,
   virtualworld;
    mysql_query(\"SELECT `virtualworld`,`x`,`y`,`z`,`interiorid`,`interiorx`,`interiory`,`interiorz` FROM `hazak`\"); // \"HAZTABLA\"
    mysql_store_result();
    if(mysql_num_rows() > 0)
    {
        while(mysql_fetch_row(query))
        {
      sscanf(query, \"p<|>dfffdfff\", virtualworld, h_xyz[0], h_xyz[1], h_xyz[2], interiorid, i_xyz[0], i_xyz[1], i_xyz[2]);
//         printf(\"%d,%f,%f,%f,%d,%f,%f,%f\", virtualworld, h_xyz[0], h_xyz[1], h_xyz[2], interiorid, i_xyz[0], i_xyz[1], i_xyz[2]);
      if(IsPlayerInRangeOfPoint(playerid, 2.0, h_xyz[0], h_xyz[1], h_xyz[2]))
      {
         kozelben = false;
         hazid[playerid] = virtualworld;
         hazban[playerid] = true;
         SetPlayerPos(playerid, i_xyz[0], i_xyz[1], i_xyz[2]);
         SetPlayerInterior(playerid, interiorid);
         SetPlayerVirtualWorld(playerid, virtualworld);
         break;
      }
   }
} else print(\"Az adat tábla nem tartalmaz adat sorokat.\");
mysql_free_result();
if(kozelben) SendClientMessage(playerid, -1, \"Egy ház közelében se tartózkodsz.\");
return 1;
}[/pawn]
Edit: vesszõ hiba javítva.
« Utoljára szerkesztve: 2012. január 04. - 12:02:22 írta ɐʞzssǝlosz »

/enter - Nem állítja át a pozíciót,virtualworld-t,interiorid-t.
« Válasz #6 Dátum: 2012. január 02. - 20:17:42 »
0 Show voters
Tesztelem, köszönöm.
E.: Nem mûködik :S Nem találja valamiért a sorokat, pedig beíródnak.
« Utoljára szerkesztve: 2012. január 02. - 20:30:12 írta mauladam »

/enter - Nem állítja át a pozíciót,virtualworld-t,interiorid-t.
« Válasz #7 Dátum: 2012. január 03. - 00:31:07 »
0 Show voters
Idézetet írta: mauladam date=1325531862\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"15159\" data-ipsquote-contentclass=\"forums_Topic
Tesztelem, köszönöm.
E.: Nem mûködik :S Nem találja valamiért a sorokat, pedig beíródnak.
 
Phpmyadminon látod az adatokat benne?
Akkor ebben a sorban lehet valami hiba:
 

    mysql_query(\"SELECT `virtualworld`,`x`,`y`,`z`,`interiorid``interiorx`,`interiory`,`interiorz` FROM `hazak`\"); // \"HAZTABLA\"[/quote]
elõfordulhat  hogy az elérési utat nem jól adtam meg ezt neked kellene tudni javítani már.
Ilyenkor szoktam megcsinálni az adat táblát és letesztelni. De majd holnap estére, ha nem felejtem el.

/enter - Nem állítja át a pozíciót,virtualworld-t,interiorid-t.
« Válasz #8 Dátum: 2012. január 03. - 04:57:27 »
0 Show voters
Igen, benne van a táblában.
Oké, köszi.
Megpróbálom javítani addig.
Sikerült!
Hiányzott egy vesszõ. Végre sikerült. Köszönöm a segítséget! :) :)
« Utoljára szerkesztve: 2012. január 03. - 05:18:40 írta mauladam »

Nem elérhető Sheet

  • 1508
  • Támogató
    • Profil megtekintése
/enter - Nem állítja át a pozíciót,virtualworld-t,interiorid-t.
« Válasz #9 Dátum: 2012. január 03. - 06:42:11 »
0 Show voters
[mod]Máskor zárd a témát! Zárok[/mod]

/enter - Nem állítja át a pozíciót,virtualworld-t,interiorid-t.
« Válasz #10 Dátum: 2012. január 03. - 18:22:51 »
0 Show voters
Idézetet írta: mauladam date=1325563047\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"15159\" data-ipsquote-contentclass=\"forums_Topic
Igen, benne van a táblában.
Oké, köszi.
Megpróbálom javítani addig.
Sikerült!
Hiányzott egy vesszõ. Végre sikerült. Köszönöm a segítséget! :) :)
 
Ahogy leírtad hiányzik egy vesszõ észre is vettem rögtön.
Nm.

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal