Ez a szekció lehetővé teszi a felhasználó által írt összes hozzászólás megtekintését. Vedd figyelembe, hogy csak azokba a fórumokba írt hozzászólásokat látod, amelyekhez hozzáférésed van. 31
Segítségkérés / bool mentése játékosnak?« Dátum: 2014. augusztus 25. - 22:11:59 »Idézetet írta: rayle date=1408971984\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"50337\" data-ipsquote-contentclass=\"forums_Topic Betöltésnél:Helyett: Tulaj[playerid] = !!dini_Bool(fájl, \"Tulaj\"); Azért, mert valami miatt a dini_Bool() nem boolean, hanem integer típusú értéket ad vissza. Mivel fordításkor tag mismatch hibát írhat a fordító, át kell konvertálni boolean-re a visszatérési értéket. 32
Segítségkérés / /sveh parancs« Dátum: 2014. augusztus 23. - 01:14:02 »
Írok egy gyors példaszerûséget, ne pont így írd, csak ilyesmit:
Mondjuk létrehozol egy integer tömböt a jármûveknek, amiben megadod, hogy hova tartoznak. A jármûvek betöltésénél kiolvasod, a mentési résznél kíírod az értékét. A kód elején definálod, hogy hova tartozhatnak a jármûvek, pl.: #define FK_CIVIL 0 stb.. Vagy ha már definálva vannak frakció ID-k, akkor azokat használod. Létrehozol egy új parancsot, mondjuk CMD:setvehfk. Itt megadhatod a jármû frakció ID-jét, miután létrehoztad. Aztán a motorbeindítás parancsnál ellenõrzöd, hogy a játékos ugyan abba a frakcióba tartozik-e, mint a jármû, vagy a jármû civil-e. Ha egyik sem, akkor nem tudja beindítani a jármûvet. 33
Segítségkérés / ShowNameTags - /anevek?[kezdõ]« Dátum: 2014. augusztus 22. - 19:22:27 »//Ez arra jó, hogy megállítja a ciklust, hogyha az összes Offline játékoson végigment..[/quote] 34
Segítségkérés / /sveh parancs« Dátum: 2014. augusztus 22. - 19:03:05 »
Ezt a részt cseréld le:
format(svehmentes,sizeof(svehmentes),\"/Cars1/%d.ini\",vehid); // Formázzuk a file változót a mappának megfelelõen Ilyesmire: for(new i = vehid; i < MAX_VEHICLES; i++) // \"i\" kezdeti értéke a jármû jelenlegi ID-je. Minden lefutásnál \"i\" értékét növelje, míg az kisebb, mint MAX_VEHICLES. Ha valamit elírtam, akkor elnézést! Dupla hozzászólás automatikusan összefûzve. ( [time]2014. augusztus 22. 19:37:29[/time] ) Illetve talán jobb, ha 0-tól nézed a fájlokat, nem a jármû ID-jétõl.. for(new i = 0; i < MAX_VEHICLES; i++) De amúgy ezzel a mentési móddal a jármû ID-k sokszor változni fognak.. Szóval nem biztos hogy ez a legjobb megoldás, persze csak ha ez nem gond. 35
Archívum / [HUN/ENG] ~ Cigányok VS Skinheadek DM ~ | v0.1 | Megnyílt!« Dátum: 2014. augusztus 19. - 22:41:36 »
Tetszik a szerver öltet.. Ti aztán tudtok, hallod-e.. :thumbsup:
Biztos felmegyek majd :yes: 36
Segítségkérés / Pozíció mentés« Dátum: 2014. augusztus 19. - 22:15:53 »
Azt elfelejtettem írni, hogy általában azt is le szokták menteni, hogy a játékos merre néz kilépéskor (facing angle). Elõször is módosítod az enumodat: enum JatekosAdatok Hozzáírod: enum JatekosAdatok Majd módosítod az OnPlayerDisconnect (ez a callback automatikusan lefut, mikor a játékos lecsatlakozik) callback-et: public OnPlayerDisconnect(playerid, reason) Valami ilyesmire: public OnPlayerDisconnect(playerid, reason) Módosítod az OnPlayerSpawn (ez a callback akkor fut le, ha a játékos spawnol) callback-et: public OnPlayerSpawn(playerid) Kb. ilyenre: public OnPlayerSpawn(playerid) Módosítod a regisztráció utáni elsõ adat-megadást: public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) Ilyesmire: public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) Ezután módosítod az adatok betöltését: if(dialogid == bejelentkezes) Ilyesmire: if(dialogid == bejelentkezes) Nem teszteltem, lehet hogy valamit elírtam, ezért elnézést! Remélem sikerülni fog 37
Segítségkérés / Változónak nem egész szám megadás[kezdõ]« Dátum: 2014. augusztus 18. - 23:42:58 »
Szia!
Egy változónak csak 1 darab értéke lehet, de te 3-at is próbáltál megadni neki. Ugye 1 játékos pozíció 3 koordinátából áll: X, Y, és Z. A koordináták úgynevezett \"lebegõpontos értékek\" (angolul \"float\"), ezért a változót Float típusúként kell létrehoznod. Kiíráskor pedig dini_IntSet helyett dini_FloatSet, mivel float-ot akarsz kiírni. Így kell kinéznie: new változótípusa:változóneve = kezdetiérték; Szóval 3 koordinátát kell eltárolnod: new Float:posX = 1482.8942; Majd kiírni fájlba: dini_FloatSet(file, \"PosX\", posX); 38
Segítségkérés / Mért nem ad random számot« Dátum: 2014. augusztus 17. - 11:42:44 »
Szerintem túl nagy értéket adtál meg..
39
Segítségkérés / Hibát ír ki« Dátum: 2014. augusztus 16. - 22:13:54 »new id[MAX_PLAYER_NAME]; Helyett: new id; sscanf(params,\"ii\",id,armormennyiseg) Helyett: sscanf(params,\"ui\",id,armormennyiseg) Dupla hozzászólás automatikusan összefûzve. ( [time]2014. Augusztus 16. 22:35:30[/time] ) Mert ugye a felhasználók ID-je integer típusú, de te string-nek defináltad. Nem csoda, hogy nem fogadta el sscanf(params,\"ui\",id,armormennyiseg) sscanf-nél pedig mikor felhasználót kell megadni egy parancs paraméteréül, a formátumnál a \"u\" specifikátort kell megadnod. Így a sscanf a felhasználó ID-jét adja vissza a változónak, akkor is, ha a játékos nevét írták a parancs paraméterében. Pl.: tegyük fel, hogy az \"X_Y\" nevû játékos ID-je 21. Beírod: /setarmor X_Y 100 vagy /setarmor 21 100 Mindkét esetben a sscanf az \"id\" nevû változóba 21-et fog visszaadni. Ha valaki elírta a játékos nevét, vagy ID-jét, vagy a játékos éppen nincs fent a szerveren, a sscanf függvény visszatérési értéke nem 0 lesz. Így lehet ellenõrizni, hogy a játékos megfelelõen használta-e az utasítást. Ha nem 0, akkor kiírjuk neki az utasítás használatát. |