Szerző Téma: x,y,z koordináták elemekre bontása? (split szerûség)  (Megtekintve 1624 alkalommal)

x,y,z koordináták elemekre bontása? (split szerûség)
« Dátum: 2011. október 25. - 19:37:23 »
0 Show voters
Van egy x,y,z koordinátám egy változóban (vmi = 123.12,231.13,213.12). Szeretném úgy a ,-n ként változókba tenni a számokat, hogy utána el tudjam tenni velük a játékost a pozícióra ( valahogy így: SetPlayerPos(playerid,asd[0],asd[1], asd[2]) ) Ezt hogy lehet megoldani?

x,y,z koordináták elemekre bontása? (split szerûség)
« Válasz #1 Dátum: 2011. október 25. - 19:45:50 »
0 Show voters
Vagyis meg akkarod oldani a spawnolást? Ezt nem értem én sem mert azt ugy kell SetPlayerPos(playerid, asd,asd,asd);
[gmod]+20% warn ment ezért, és a többi ilyen stílusú hozzászólásodért.[/gmod]
« Utoljára szerkesztve: 2011. október 25. - 21:09:33 írta Light »

Nem elérhető ZeRo

  • 4620
  • Ex Globális Moderátor
    • Profil megtekintése
x,y,z koordináták elemekre bontása? (split szerûség)
« Válasz #2 Dátum: 2011. október 25. - 19:52:12 »
0 Show voters
Spawnolni szeretne, de nem meghatározott pozícióra, azaz valahonnan ki akarja olvastatni a koordinátákat, ezért nem írhat konstansokat a SetPlayerPos függvénybe.
Szerintem próbáld meg sscanf-al, a leírásban keresd a Karakteres elválasztás alcímû részt. :)
Szerk: azt hiszem én is félreértettem a kérést. :-X

x,y,z koordináták elemekre bontása? (split szerûség)
« Válasz #3 Dátum: 2011. október 25. - 19:54:09 »
0 Show voters
Máshogy:
Van egy Dini-vel mentett x,y,z koordinátám. (mentés formátuma: Positions=123.12,123.12,123.12) Bele kéne tenni az x az y és a z koordinátákat külön változóba (miután beolvastam fájlból) hogy utána el tudjam tenni a játékost arra a pozícióra. SetPlayerPos(playerid, xcoord,ycoord,zcoord);
Ezt szerettem volna megoldani de nem sikerült :S
E: köszi megnézem :)

x,y,z koordináták elemekre bontása? (split szerûség)
« Válasz #4 Dátum: 2011. október 25. - 19:55:29 »
0 Show voters
Idézetet írta: ~BlackStyler~ date=1319564750\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"12769\" data-ipsquote-contentclass=\"forums_Topic
Vagyis meg akkarod oldani a spawnolást? Ezt nem értem én sem mert azt ugy kell SetPlayerPos(playerid, asd,asd,asd);
 
Ha nem érted,minek írsz?
1ST_Chr:
Van egy ötletem,de nem biztos hogy jó,megkeresed,ahol a ,-van és feldarabolod!
http://wiki.sa-mp.com/wiki/Strfind
Példa:
http://forum.sa-mp.com/showthread.php?t=130366

x,y,z koordináták elemekre bontása? (split szerûség)
« Válasz #5 Dátum: 2011. október 25. - 21:21:10 »
0 Show voters
De most komolyan ennél érthetõbben leírni egy kérdést nem is lehet, ezen eléggé csodálkozok hogy ennyi nem értem hozzá szólás van.
 
Idézetet írta: 1ST_Chr date=1319564243\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"12769\" data-ipsquote-contentclass=\"forums_Topic
Van egy x,y,z koordinátám egy változóban (vmi = 123.12,231.13,213.12). Szeretném úgy a ,-n ként változókba tenni a számokat, hogy utána el tudjam tenni velük a játékost a pozícióra ( valahogy így: SetPlayerPos(playerid,asd[0],asd[1], asd[2]) ) Ezt hogy lehet megoldani?
 
Van egy x,y,z koordináta egy változóban (pontosabban egy adatsorban ami egy felhasználófájl (userfile) lehet.
Ekképpen eltárolva: (vmi = 123.12,231.13,213.12). Ezt gondolom beolvassa a fájlból és egy karakterláncban tárolja, viszont õ felszeretné használni, az adatait részekre osztva hogy a SetPlayerPos funkcióba alkalmazni tudja.
Érthetetlen számomra ez a sok nem értem dolog, na mindegy.
Én is plugin sscanf használatát javaslom:
[pawn]   new
   Float:xyzpos[3],
   readdata[32];
readdata = \"123.12,231.13,213.12\";
if(sscanf(readdata, \"p<,>a<f>[3]\", xyzpos)) return print(\"Nem megfelelõ beolvasott karakterlánc\");
printf(\"%f | %f | %f\", xyzpos[0], xyzpos[1], xyzpos[2]);
SetPlayerPos(playerid, xyzpos[0], xyzpos[1], xyzpos[2]);[/pawn]
Másik lehetõség szintén sscanf-el:
[pawn]   new
   Float:xyzpos[3],
   readdata[32];
readdata = \"123.12,231.13,213.12\";
if(sscanf(readdata, \"p<,>fff\", xyzpos[0], xyzpos[1], xyzpos[2])) return print(\"Nem megfelelõ beolvasott karakterlánc\");
printf(\"%f | %f | %f\", xyzpos[0], xyzpos[1], xyzpos[2]);
SetPlayerPos(playerid, xyzpos[0], xyzpos[1], xyzpos[2]);[/pawn]

Nem elérhető Norby

  • 1575
    • Profil megtekintése
x,y,z koordináták elemekre bontása? (split szerûség)
« Válasz #6 Dátum: 2011. október 25. - 21:21:22 »
0 Show voters
Szerintem meg ne ugy mentsd el hogy Positions= bal bala hanem külön mentsd el
X=
Y=
Z=
Ezeket mentsd el egy változoba vagyis (Mátrix)
enum player
{
      X,
      Y,
      Z
};
new Playerinfo[MAX_PLAYERS][player];
És diniben evvel a változoval mented el pl az X et:
Playerinfo[playerid][X];
igy már ha kiolvastatod akkor ebben a változoban olvassa ki és tudsz értéket változtatni stb...

x,y,z koordináták elemekre bontása? (split szerûség)
« Válasz #7 Dátum: 2011. október 26. - 19:08:19 »
0 Show voters
köszönöm a segítséget :D az sscanf-el sikerült :)

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal