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. 256
Segítségkérés / ProxDetectorS csak id0-án mûködik« Dátum: 2013. július 21. - 09:32:10 »
Mert a new targetid; alapból nulla értékû.
Abszolút nem látni hogy egyáltalán mi is állítaná be/keresné meg, a közelben lévõ játékos azonosító számát a kódodban a targetid változónak. Talán ha végig futtatnál egy for ciklust hogy megkeresd az online játékosok közül azt, aki a legközelebb áll, még jó is lehetne. 258
Segítségkérés / Hogyan lehet for-t átjavítani?« Dátum: 2013. július 20. - 18:36:32 »
Olyan gyorsan lefut hogy semmi hasznát nem veszed.
A \" new adat;\" sima integer változó ahhoz nem kell strlen-t használni. for(new i; i != adat; i++) printf(\"%d\", i); 259
Segítségkérés / mysql sorok számolása« Dátum: 2013. július 19. - 20:47:33 »Idézetet írta: $$David$$ date=1374243309\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"40046\" data-ipsquote-contentclass=\"forums_Topic és ezt R7-es pluginnal hogy csinálom? cache_get_data(&num_rows, &num_fields, connectionHandle = 1); 262
Segítségkérés / String értéke 0« Dátum: 2013. július 18. - 21:41:44 »
Van egy karakter melyet null karakternek neveznek, ez karakterláncoknál a benne szereplõ karakterek végét jelenti.
Igaz hogy ezzel nem törlõdik az egész tartalma teljesen de megjelenítésnél üresként fogja érzékelni. PlayerInfo[playerid][pJegyzet1] = EOS; // End Of String 263
Segítségkérés / Összekeveri a dolgokat :(« Dátum: 2013. július 18. - 10:16:03 »Idézetet írta: ninjo98 date=1374130832\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"39972\" data-ipsquote-contentclass=\"forums_Topic Üdv! :Cry2: 264
Segítségkérés / OnPlayerText hiba« Dátum: 2013. július 17. - 09:21:38 »
Mert a Chat 128 egyes esetekben 144 karaktert képes megjeleníteni.
Ebbe beletartoznak a színezés kódjai is amik igaz nem jelenik meg a szöveg dobozban, de a megjeleníthetõ karakterek számát csökkentik. Mégpedig minden egyes színkód 8 karakternyi értékes helyet vesz el, a te esetedben már 6 darab szerepel az 6*8 = 48 marad 128-48 = 80-van karakter ebbõl lejön a játékos neve majd playerid jelölése és marad ~50-60 karakter ebbe már nem fér el a bevitt 128 maximális karakternyi szöveg (text[]). Ne használj ennyi színezést, írj figyelmeztetõ üzenetet hogy túl sok karakternyi szöveget írt be a játékos. 265
Fórum Archívum (Témák/Fórumok) / Re:MYSQL_WATTAFAKK?!?!?!?!!« Dátum: 2013. július 17. - 09:15:04 »WATTAFAKK?!?!?!?!! (meuu)?[/quote] 266
Segítségkérés / Timer« Dátum: 2013. július 17. - 09:14:03 »
Annyi a baj hogy csak a 0 ID-vel jelölt játékosnak mûködnek a fenti kódok.
Ez helyett: SetTimer(\"Beszivva\", 60000, false); ez: SetTimerEx(\"Beszivva\", 60000, false, \"i\", playerid); 267
Segítségkérés / Else if ág pontosan, hogyan is müködik?« Dátum: 2013. július 14. - 15:23:02 »
Itt jön az amikor bezavarodnak az emberek azzal a dologgal hogy hamis igaz, vagy igaz vagy mégsem?
Gondolkodj visszatérési értéken, amit vissza adnak a különbözõ funkciók, igen mert mindegyik más értékkel tér vissza annak megfelelõen hogyan tudta ellátni feladatát. Például a sscanf 1-es értéket ad vissza ha valamit nem talált rendben. Az strcmp meg 0 értékkel tér vissza ha a kettõ karakterlánc megegyezik. Az IsPlayerConnected is 1-es értéket adott vissza, mikor csatlakozott állapotot küld vissza a játékosról. Az strfind meg (-1)-es értéket ad vissza akkor ha semmilyen egyezést nem talált. Na most ha visszatérési értéken gondolkodsz ami akár lehetne egy karakter is vagy 600 is tök mindegy akkor az if-ben azt vizsgálod, hogy azt kaptad-e vissza vagy sem és akkor már eltudod dönteni a két különbözõ dolognál mi történjen. Az if minden esetben két lehetséges út vonalat biztosít, vagy igaz vagy hamis amit vizsgálsz benne, ennek megfelelõen közvetlen utána vagy az else utasítás után lévõ dolgok futnak le. Itt jön képbe hogy szinte minden más függvénynek más a visszatérési értéke és egy azon dolgot le lehet írni többféleképpen. A következõ pár példa szinte mind ugyanaz csak a kód kinézetük más, és máshol helyezkedik el hogy mikor mi történjen: if(IsPlayerConnected(playerid) == 1) print(\"Csatlakozva\"); else print(\"Nincs csatlakozva.\"); Akkor még pár példa: new Tehát röviden fogalmazva visszatérési értékek összehasonlítása történik a zárójelben, ha ezen értékek a köztük lévõ operátor jeleknek megfelelnek akkor közvetlen az if után írt kód fut le, ellenkezõ esetben az (else) ág illetve az (else if) ág következik, ha egyáltalán szükség van rá. Ui.: Remélem nem rontottam el a példákat mivel nem teszteltem. De bízok benne csak nem tévesztek már ennyi idõ után, de tévedni emberi dolog. Tehát mindig azt figyeld milyen értéket is ad vissza az if zárójelei közt lévõ eljárás/eljárások, az miként felel meg az esetleg köztük lévõ operátor jeleknek, így már remélhetõleg érteni fogod hogy a benne lévõ kritériumoknak van igaz, illetve hamis végeredménye és ez dönti el hogy most közvetlen utána, vagy else utasítás után fut tovább a program. 268
Segítségkérés / mysql sorok csökkenõ sor« Dátum: 2013. július 14. - 14:46:35 »
Így próbáld ki:
new 269
Tanuljunk PAWN nyelvet / Bitmûveletek a gyakorlatban.« Dátum: 2013. július 14. - 01:23:07 »
Mivel látom hogy elég kevesen alkalmazzák ezen dolgokat sa-mp szkriptelés terén ezért megpróbálok pár példát írni alkalmazásukra természetesen ahogy sikerül valami újabb hasznos gyakorlati alkalmazást kitalálnom vagy találnom, frissíteni fogom ezen leírásszerûséget.
Itt nem fogok kitérni a bitmûveletek mûködésre arra ott van Anthony által írt leírás: Bitmûveletek, valamint gyakorlati alkalmazás a SA:MP-ban Az egyik segítség kérés témában felmerült problémára való megoldásként jött az ötlet, mivel ott említettem hogy egyszerûbb lenne bitmûveletekkel megvalósítani a dolgot miszerint szeretnénk egy játékosnak egyszerre több munkát is engedélyezni, úgy hogy minél kevesebb memóriát használunk fel, természetesen egyszerûen törölni akár az összes meglévõ munkát. Ennyit az elõzményrõl. A kiegészítõ szövegek után szereplõ bináris értékek a bitmûveletek után történt változás eredményét szemléltetik! enum Megjegyzés: Nem véletlenül szerepel a MUNKA_32 mivel ennyi a maximálisan állítható bit érték egy változóba 32 bit esetén. Több munka egyszerre történõ megadása: Job[playerid] |= MUNKA_2; // Ez az érték megadása a következõ sor szemléltetése végett szerepel. // 0b00000000000000000000000000000010 Munkák egyesével történõ hozzáadása: Job[playerid] |= MUNKA_5; // 0b00000000000000000000000000011101 Egy munka törlése: Job[playerid] &= ~MUNKA_5; // 0b10100001000010000100001000001101 Egy munka törlése ha aktív, vagy aktiválása ha nincs beállítva: Job[playerid] ^= MUNKA_20; // Ez esetben törlés mivel már aktiválva van. // 0b10100001000000000100001000001101 Több munka egyszerre történõ megadása régi értékek megtartása mellett: Job[playerid] |= MUNKA_11 | MUNKA_31 | MUNKA_22; // 0b11100001001100000100011000001101 <--Ez az érték kerül egy kis ellenõrzésre a példában. (printf(\"%d - %d -> %b\") Az elvállalt munka lehetõség kilistázása for ciklussal: static const A beállított munkák számlálása: stock Ellenõrzés hogy melyik munkát vállalta a játékos: if(Job[playerid] == MUNKA_NONE) printf(\"Nincs egy munka sem: MUNKA_NONE\"); Összes munka törlése. Pl.: OnPlayerConnect-hez printf(\"%d - %d -> %b\", 0b11100001001100000100011000001101, Job[playerid], Job[playerid]); // Egy kis ellenõrzés tényleg jók-e a bitmûveletek. Példa szkript gyors tesztelésre: #include <a_samp> 270
Segítségkérés / távolság« Dátum: 2013. július 12. - 22:05:45 »
Miért kell a floatabs?
Két koordináta pont közötti távolságot kell kiszámolni ha te megváltoztatod a negatív elõjelet akkor a koordináta pozíciót is megváltoztatod, és hamis eredményt kapsz. |