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. 16
Segítségkérés / tárgy hozzá adás majd elvétele![javítva]« Dátum: 2013. augusztus 26. - 02:11:53 »
több féleképpen meg lehet oldani. A legjobb megoldás talán az hogyha.
minden tárgynak egy tömb de nem bool változó hanem rendes változó mivel lehet hogy valahol szükség van arra hogy több tárgyad is lehessen. Mivel látom nemigazán vagy képbe a programtervezéssel. A lényeg hogy minden elgondolást helyettesítünk valamivel. Vascsõ (ha nem objectre gondoltál hanem csak vascsõ azt kész): Vascsõ nincs a pawnba ^^ ezért kell valamivel helyettesíteni mi lesz az? Hát egy változó. A változó egy számot tárol. Több típusa van. Pawnban nem túl bonyolult van bool: ez lehet igaz és hamis értékû. létrehozni így lehet: new bool:Valtozo; Float: Ez a nem egész szám (Float jelentése Lebegés ami a Lebegõpontos számábrázolásból jött ilyen pl 5.25 vagy -6.973) létrehozni így lehet: new Float:Valtozo; int aminek nincs elõtagja ez az egész szám létrehozni így lehet: new Valtozo; Ebbõl a háromból lehet olyat létrehozni hogy tömb. A tömb sok változó egymás mellett amiken belül úgynevezett indexekkel határozzuk meg azt hogy konkrétan melyik változót akarjuk használni a sokból a tömbön belül. (sok helyen ezért van a for ciklusokban i változó ez az index rövidítése) nah erre példa: new Tomb[MAX_PLAYERS]; ez egy tömb lesz mivel nem raktunk elé elõtagot így egész szám és a MAX_PLAYERS meg megadja hány elemû a tömb. általában ez 500 ha nem definiálod újra a MAX_PLAYERS-t Na most térjünk vissza a vascsõre. hogy akarod? lehessen több belõle egy játékosnál vagy ne. Ha azt akarod lehessen több. Melyik változótipus tûnik a legmegfelelõbbnek? Nyilván az int. Így létrehozunk egy tömböt pl: new Vascso[MAX_PLAYERS]; Mi kell még? Kellmég valami ahol meg tudja venni a vascsövet. pawnba ültetve az elképzelést. A változó értékét módosítani tudja. legyen ez most a példa egyszerüsége kedvééért egy parancs CMD:vascso(playerid,params[]) na mi hiányzik még az elgondolásból? a /leüt parancs feltételezem objectet akarsz létrehozni neki. Most el kell döntened hogy pontosan mit is szeretnél. Egy játékos egyszerre max egy csövet üthessen le és kilépéskor eltünjön? //ez technikailag a legegyszerûbb Egy játékos akár több csövet is leüthessen de legyen egy felsõ határa ennek pl játékosonként max 10 //ez már bonyolultabb valamivel de nem sokkal Egy játékos akárhány csövet le tudjon ütni felsõ határ nélkül //itt már bonyolodik a helyzet be jön a képbe a GVar plugin Ha az elõzõ háromból választottál már csak azt kell eldöntened hogy akarod e hogy ezek kilépés után megmaradjanak e. Mert ha nem akarod hogy megmaradjanak mindent elég csak a játékos ID re tárolni mivel a kilépésig folyamatosan hozzá lehet rendelni az objectet a játékoshoz. hiszen tudod hogy az X objectet a playerid játékos rakta le. Ha el akarod öket menteni akkor dönthetsz hogy hozzá akarod e rendelni ezeket a játékoshoz vagy nem. Tehát tudni akarod hogy a fa melletti csövet Józsi ütötte le vagy lényegtelen. Itt viszont már el érkeztünk oda hogy kelleni fog vagy valami fájlrendszer vagy mysql ami szerintem egyenlõre sok lenne. Feltételezem a legegyszerûbb megoldást Egy játékos egyszerre csak egy csövet üthet le és az kilépéskor eltünik. így kell egy Tömb ami tárolja az object id-jét new LerakottCso[MAX_PLAYERS]; és maga a leut parancs: CMD:leut(playerid,params[]) Ezután már csak kilépésnél törölni kell ha van OnPlayerDisconnect alatt: if(LerakottCso[playerid]){ Ha többet is le akarsz ütni egyszerre. Szimulálni kell játékosonként mondjuk egy 10 elemû listát amit a legegyszerûbben úgy tudsz megtenni hogy: hozzá adunk a LerakottCso tömbhöz még egy dimenziót így lesz: new LerakottCso[MAX_PLAYERS][10]; ilyen kis számoknál nem nagyon számít még az optimalizáltság ezért nem bonyolodnék bele abba hogy sorba legyenek rendezve az elemek a tömb elejére. Na most a következõ probléma amibe beleütközhetsz hogyaz object létrehozásánál (/lerak parancsnál) honnan tudjam melyik indexre rakjam az objectet a 10bõl? erre írunk egy külön függvényt: stock UresLerakottCsoID(playerid) Így a parancs annyiban változik hogy: CMD:leut(playerid,params[]) Kilépésnél pedig: if(LerakottCso[playerid]){ Dupla hozzászólás automatikusan összefûzve. ( 2013. augusztus 26. - 02:38:10 ) bocsi hogy sz*rul vannak a tabulátorok nem volt kedvem pawnba megírni. 17
Segítségkérés / code átírás!« Dátum: 2013. augusztus 26. - 01:57:00 »
A 21. tõl a 27. sor ig ami van azt töröld ki
Kick(playerid); A 20. sorba meg meg tudod adni mit írjon ki ha elrontja a jelszót pl: SendClientMessage(playerid, COLOR_LIGHTRED, \"Elrontottad a jelszót.\"); 18
Segítségkérés / MySQL R31 elözõ mûveletben érintett sorok számának lekérése« Dátum: 2013. augusztus 18. - 09:58:28 »
be tudod másolni esetleg a kódot? egyébként a mysql_affected_rows nak mûködnie kéne ha a THREAD callbackban hívod meg. a \"No Active Cache\" akkor szokott elõjönni amikor egy olyan funkcióban hívsz meg cache függvényt ami nem egy mysql query bõl való visszatéréskor hívódik meg. de ha mégsem errõl lenne szó és bugos a függvény amit kétlek, insertnél muszáj hogy tudd hány sort illesztettél be, mert az a query létrehozásánál látszik
pl itt 1: INSERT INTO tabla (adat1,adat2) VALUES (16,18) Itt meg 2: INSERT INTO tabla (adat1,adat2) VALUES, (16,18),(20,22) vagy még ha egy ciklus is hozza létre a query-t és nem elõre meg van írva pl format(query, sizeof(query), \"INSERT INTO tabla (`adat1`,`adat2`) VALUES \"); még itt is tudnod kell, vagy ha a ciklus egy while ciklus, akkor meg egy változót növelsz minden sor beillesztésénél. más lehetõséget nemigen tudok elképzelni 19
Segítségkérés / Lehetséges Object random mozgatása egy téren?« Dátum: 2013. augusztus 18. - 01:55:59 »
Fogod a négy koordinátát berakod egy tömbbe aztán lesz egy függvény ami elindítja a mozgást (move object random az egyik pozícióra) aztán OnObjectMoved nel újra meghívod az elõzõ object mozgató függvényt (nyilván ha az objectid egyezik)
20
Segítségkérés / MySQL R31 elözõ mûveletben érintett sorok számának lekérése« Dátum: 2013. augusztus 18. - 01:47:14 »
Te magad írtad hogy updatezel EGY sort miért csodálkozol mikor eggyel tér vissza a függvény?
21
Segítségkérés / Több MySQL lekérdezés egy táblából« Dátum: 2013. augusztus 17. - 20:13:21 »
lefelejtettem a zárójeleket bocsi
(SELECT * FROM `tabla` WHERE pont = 1 ORDER BY RAND() LIMIT 15) UNION ALL (SELECT * FROM `tabla` WHERE pont = 2 ORDER BY RAND() LIMIT 5) 22
Segítségkérés / Több MySQL lekérdezés egy táblából« Dátum: 2013. augusztus 17. - 19:22:04 »SELECT * FROM `tabla` WHERE pont = 1 ORDER BY RAND() LIMIT 15 UNION ALL SELECT * FROM `tabla` WHERE pont = 2 ORDER BY RAND() LIMIT 5 Az union egymás mögé rak két táblát aminek azonos mezõszáma van jelen esetben ez a két tábla a két select utasítás (mivel minden select utasítás egy táblázatot ad eredményül) 23
Segítségkérés / Szerveren lévõ kocsik lekérése« Dátum: 2013. augusztus 13. - 23:26:29 »
hát inkább 60 másodperces alá de ezt irtam is
24
Segítségkérés / Jármû színének és paintjobjának lekérése« Dátum: 2013. augusztus 13. - 22:51:52 »25
Segítségkérés / Sztringet hex értékké való alakítás« Dátum: 2013. augusztus 13. - 22:48:56 »
mondjuk így:
stock RGB( red, green, blue, alpha ) A kód egy részét Zamaroht textdraw editorábol vettem. 26
Segítségkérés / Engedélyezett karakterek(betû)« Dátum: 2013. augusztus 13. - 22:29:09 »new const EnglishAlphabet[36] = { //Engedélyezett karakterek, a mód elejére rakd Gyors megírtam egyet ez biztos hogy mûködik. Egyébként még egy lehetõségnek felvetném hogy alakítsd át az ékezetes karaktereket az angol megfelelõjére
27
Segítségkérés / Szerveren lévõ kocsik lekérése« Dátum: 2013. augusztus 13. - 22:23:15 »new Vehicles[MAX_VEHICLES]; Mindig amikor létrehozol egy kocsit átállitasz a vehicleid index-el egy tömb változót vagy GVar változó értékét 1-re pl Vehicles[vehicleid-1] = true; amikor törlöd a kocsit Vehicles[vehicleid] = false; és bizonyos idöközönként lefuttatsz egy loop ot ami törli az összes olyan jármûvet ami mellett a Vehicles[vehicleid-1] értéke false (A -1 azért kell mert a jármûvek azonosítói 1-tõl kezdõdnek nem 0-tól) for(new i; i < MAX_VEHICLES; i++) Hogy mennyire lassú? Viszonylag lassú, de hatásos az is biztos. Viszont arra ügyelni kell hogy ha scriptben hozunk létre játmûveket, akkor ott nem tudjuk a tömbnek az értékét módosítani a módban, maximum CallRemoteFunction-al tudnánk trükközni, de ha ilyen eset van akkor ajánlott a GV ar plugint használni, viszont a GV ar viszonylag lassabb mint a tömb. Bocsi ha kicsit össze vissza van az egész, azért remélem valamit sikerült megérteni belõle. Hogy mennyi idõközönként csináld ezt? Hát semmi képp sem javasolnám egy percnél kisebb idõközönként. 28
Pluginok és Programok / Fixchars IV« Dátum: 2013. augusztus 03. - 21:09:00 »new chlist[][0]={ Ez mintha pontosan ugyanazt tudná. Mivel jobb a plugin mint ez? 29
Segítségkérés / textdraw leírást nem tlaálom« Dátum: 2013. augusztus 03. - 10:17:30 »
Az egy elég régi megoldás és senki sem használja.
A legtöbben már ezt használják. http://forum.sa-mp.com/showthread.php?t=290640 30
Segítségkérés / Random kérdéssor MySql-bõl« Dátum: 2013. július 31. - 21:15:22 »
Nem okoskodásként de ez így szerintem visszatérhet azonos kérdésekkel, ha pont véletlen ugyanazok a számok sorsolódnak ki.
Így 100% hogy nem lesz két egyforma: SELECT DISTINCT * FROM `tablename` ORDER BY RAND() LIMIT 20 |