x,y,z koordináták elemekre bontása? (split szerûség)

Indította 1ST_Chr, 2011. október 25. - 19:37:23

Előző téma - Következő téma

1ST_Chr

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?

~BlackStyler~

#1
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]

ZeRo

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 http://sampforum.hu/index.php?topic=4400.0\" rel=\"external nofollow\">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

1ST_Chr

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 :)

kadaradam

Idézetet írta: ~BlackStyler~ date=1319564750\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"12769\" data-ipsquote-contentclass=\"forums_TopicVagyis 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\" rel=\"external nofollow\">http://wiki.sa-mp.com/wiki/Strfind
Példa:
http://forum.sa-mp.com/showthread.php?t=130366\" rel=\"external nofollow\">http://forum.sa-mp.com/showthread.php?t=130366

Zsolesszka

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_TopicVan 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]

Norby

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...

1ST_Chr

köszönöm a segítséget :D az sscanf-el sikerült :)