GTA Közösség - A magyar GTA fórum
San Andreas Multiplayer (SA-MP) => SA-MP: Szerverfejlesztés => Segítségkérés => A témát indította: 1ST_Chr - 2011. október 25. - 19:37:23
-
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?
-
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]
-
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
-
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 :)
-
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
-
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.
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]
-
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...
-
köszönöm a segítséget :D az sscanf-el sikerült :)