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. 406
Szkript kérések / Automata hostnév váltó« Dátum: 2015. május 28. - 15:14:08 »Idézetet írta: Nátha date=1432814143\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"54511\" data-ipsquote-contentclass=\"forums_Topic Hogy \"zárod\" egy adott verzióra? 407
Segítségkérés / Felvono próbléma« Dátum: 2015. május 28. - 09:00:29 »
Tesztelni nem tudtam, majd írd meg milyen
#include <a_samp> 408
Segítségkérés / Mit jelent "pazarlóan" megírni egy játékmódot?« Dátum: 2015. május 27. - 13:45:26 »
erőforrásnál:
- 256 cellás tömbök Chat max 128 karaktert jelenít meg, szóval nagyrészt felesleges! De pl amikor 8-10 karaktert raknak bele oda is 256 cellát hoznak létre, mert úgy szokták meg. pl: format(string,sizeof(string),\"%s kinyitotta a kocsiját. (Jármű: %d)\",name,vehid); \" kinyitotta a kocsiját. (Jármű: )\" = 33 name = 20 (max hosszal számolva!) vid = 4 (2000-es limit mellett!) szöveg végi \\0 = 1 szóval: 33+20+4+1=58 new string[256]; Annyi cellát hoznék létre amennyire tényleg szükség van. - 30-50-100 slotos szerveren 1000x futó ciklusok (MAX_PLAYERS) Elég lenne egy 30 slotos szerveren 0-29-ig futni, de a legjobb az lenne ha mondjuk 10 játékos van fent (pl: 0-9 ID akkor 9-ig futna, ha 0-13 között vannak az ID-k akkor 13-ig, szóval a legnagyobb ID-jú játékosig) Újra kell definiálni a MAX_PLAYERS-t SLOT számra és a mód/script indulásnál ellenőrizni, hogy a slot nagyobb e mint az új érték... És itt megemlíteném még a MAX_VEHICLES és a többi sokáig futó ciklust...házaknál, üzleteknél... Ezeknél is el lehetne tárolni az utolsó ID-t... Én pl amibe utoljára belekezdtem mód abban már az első és az utolsó ID + az első \"lyukas\" ID is el volt tárolva, hogy sebességet nyerjek...persze memóriát foglalok, de a processzort kímélem... - Több azonos ciklus egymás alatt, nem végig gondolt kód Arra gondolok, hogy 3x egymás alatt végig megy az összes játékoson...GFRP-ben találkoztam olyan kóddal, hogy 3-4x volt egymás alatt az összes játékoson végig haladó ciklus Egy ciklusba kellene rakni - Sok időzítő Ez egyértelmű szerintem, ami sokszor kiváltja, hogy pl OnPlayerConnect alatt indul időzítő a játékosnak, DE SEHOL nincs KillTimer...tehát minden loginnál SetTimer, fut a szerver leállásáig... Itt vagy KillTimer-el kell leállítani az időzítőt, vagy nem kell annyit indítani! - Több if egymás alatt return nélkül Parancsnál ha valaki ezt rosszul használja akkor végig ellenőrzi az összes parancsot minden parancs beírásánál if(...) Van amikor erre van szükség! Csak sokszor mondjuk dialog id-kat látok így. Itt else if-et ajánlom, vagy a return használatát - Többször lekérdezett adat Mondjuk van egy CountPlayerHouses függvény ami végig megy az összes házon és összeszámolja a játékos házainak számát for(new i = 0; i < CountPlayerHouses(playerid); i++) Legyen mondjuk 500 ház és legyen a játékosnak 3 háza: 1500x fut le a kód Ciklus előtt kérdezzük le: new count = CountPlayerHouses(playerid); Ez még fokozható, ha végig megy 100 játékoson és mellette átlagban lefut 500x a CountPlayerHouses - Felesleges kódok Tegnap egy példában olyannal találkoztam, hogy GetPlayerName-el lekérdezte a játékos nevét egy tömbbe aztán a következő sorban format-al felülírta, de nem használta a saját értékét a formázás során, szóval feleslegesen kérte le a nevet. Ezeket mellőzni - SQL queryk Bonyolult SQL query-k amiket egyszerűbben is meglehetne oldani. Többször lekérdezni az adatokat, akár egy táblából le lehetne kérdezni egy query-ben azt 4 helyen kérdezi le külön szedve. Query-k optimalizálása ajánlott Hirtelen ezek jutottak eszembe... \"jó lesz az úgy\" hozzáállás nem magyar mentalitású! a hanyag, vagy épp másra koncentráló programozók is vétenek ilyeneket...például egy német scripter ismerősöm csinált egy HQ-t és a parancsot úgy csinálta meg, hogy mindenki tudta nyitni a kaput, nem csak a tulajok...azért így, mert nem akart 20mp rászánni arra, hogy beírja feltételnek, hogy a adminok és a tulajok tudják nyitni... Régen GFRP-ben volt a \"Date Hack\", amikor regisztrációnál \"99/99/999999999\" szöveggel hazalehetett vágni az egész szervert. Ma már nem hiszem, hogy 1%-nál több szerveren jelen lenne ez a bug. Ez talán nem hanyagságból, hanem hozzá nem értésből, vagy nem számításból következett be. Sajnos a GFRP tele van szeméttel. Én személy szerint sok rossz szokást vettem át onnan, amiknek nagy részét szerencsére már kisöpörtem az agyamból...tanulni jó volt szép volt, de egy bizonyos szint után elég csúnya az a kód Még a német scripter példájához hasonlókat is találtam már és én magam is vétettem hasonló hibákat. Ez azonnal nem mindig akkora probléma, viszont később nagy gondot okozhat... Sokan (én is szokszor ) az új fejlesztésekre hajtanak és nem javítják a bugokat. Scripter: óóóó de jó lesz ez az új ház rendszer 409
Segítségkérés / Mit jelent "pazarlóan" megírni egy játékmódot?« Dátum: 2015. május 27. - 08:16:46 »
itt az erőforrás pazarlásra gondolsz? vagy az igénytelenségre, hogy \"jó lesz az úgy\" hozzáállás miatt akkora bugok és át nem gondolt dolgok vannak a kódban ami már szégyen?
410
Segítségkérés / /fix parancs probléma!« Dátum: 2015. május 26. - 12:53:42 »public Kocsijavito(playerid, vehicleid) Javitas = SetTimer(\"Kocsijavito\", 800, true); ez így nagyon nem jó...főleg ha 2x írod be akkor 2x indul el a timer... if(!IsPlayerInAnyVehicle(playerid))return SendClientMessage (playerid,0xFFFF00FF,\"Ezt a parancsot, csak kocsiban használhatod!\"); itt nem kell blokkot nyitni, mivel az if-hez tartozó kód a return SendClientMessage alakítsd át, hogy vagy 1 timer legyen és akkor abban ciklussal javítasz, vagy játékosonként timer de akkor SetTimerEx-et használd! http://wiki.sa-mp.com/wiki/SetTimerEx 411
Segítségkérés / Névváltás parancsal« Dátum: 2015. május 26. - 08:32:49 »
Az elején így kezded a feltételeket aztán váltasz:
if(FELTÉTEL) Itt a { felesleges, mivel szöveget írsz ki...el van írva, 1700 pontot ellenőrzöl és 1600-at írsz ki a szövegben... if (APlayerData[playerid][PlayerScore] < 1700) return SendClientMessage(playerid, 0xFFFFFFFF, \"{FF0000} Sajnos 1600 pont kell ahoz hogy nevet tudj változtatni!\"); Itt van még egy elírás: if(strlen(params) > 20) return SendClientMessage(playerid, -1, \"{FFFF00}Maximum 24 karakter lehet a neved!\"); van még pár elírás azokat nem sorolom fel... GetPlayerName(playerid, NovoNick, sizeof(NovoNick)); felesleges lekérned a játékos nevét GetPlayerName-el ha a következő sorban felülírod... Itt a helyedben az elfogadható karaktereket sorolnám fel...mert rengeteg olyan van amit az SA-MP nem fogad el... for(new asd; asd < sizeof(badnames); ++asd) Vagy simán az átnevezés visszatérési értéke alapján írnék ki egy üzenetet... http://wiki.sa-mp.com/wiki/SetPlayerName A háznál direkt törölted a járműveket? ha igen akkor azt a részt rakd vissza, mert töröltem... Ezt nézd meg, hogy jó e: COMMAND:nick(playerid, params[]) nem tudom fordításnál lehet e hiba, mert munkahelyen vagyok, nincs pawno-m 412
Segítségkérés / [MySQL] Hibás parancs« Dátum: 2015. május 20. - 07:40:41 »`%s` helyett: \'%s\' a mező neveknél kell `, az értékeknél \' kell 413
Segítségkérés / [MySQL] Hibás parancs« Dátum: 2015. május 18. - 08:40:37 »\'username\', \'int1\', \'int2\', \'int3\' itt nem \' kell hanem ` vagy üresen hagyhatod...de jobb ` (ALT GR + 7) közé tenni, mert vannak olyan mező nevek amik parancsot jelölhetnek a nyelvben és akkor megint hiba lép fel... 414
RolePlay / Fallout - Role Play« Dátum: 2015. május 08. - 13:34:55 »
Én a 3-at játszottam ki 2x is...az alap történet mint kb minden általam ismert \"komolyabb\" RPG játékban: rövid...
Maga a történet ötletes...pl a kutya meg a saját mutáns ötlet tetszik...maga a különböző ruhák is tetszenek...régi korabeli fegyverek is megtalálhatóak...te dönthetsz arról, hogy felrobbantod e az atombombát vagy sem...meg a végén, hogy hős leszel e vagy sem...multiplayer-ben is próbáltam házi szerverrel...mint az SA-MP...üres játéktér... 415
Segítségkérés / Leggazdagabb Játékos« Dátum: 2015. május 08. - 08:45:54 »
kódot tudok adni ha ez segít
for(var i = 0; i < GetMaxPlayers(); i++) 416
Segítségkérés / Attacholós-editelős beírós cucc« Dátum: 2015. május 02. - 15:29:54 »
inputtext az string és oda intet vár...
strval(inputtext) de még ellenőrizném is, hogy nagyobb e mint 0... 417
Társalgó / Crew Hosting[FREE]« Dátum: 2015. április 30. - 11:20:01 »
\"Webadmin\" erre a linkre mutat:
http://starliferpg.esy.es/37.221.209.85/webadmin gondoltam jelzem ezt a hibát is... am meg a \"román\" szöveg az egy random szöveg: http://hu.lipsum.com/ 418
Idézetet írta: ProPeti date=1430327371\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"54017\" data-ipsquote-contentclass=\"forums_Topic Sziasztok! email($register_data[\'email\'], \'Aktivációs levél\',\"Hello \". $register_user[\'username\'] . \"!\\n\\n); . \"!\\n\\n); a szöveg végén nincs \" 419
Segítségkérés / Samp Sorompó nem zárle« Dátum: 2015. április 29. - 18:15:14 »
mivel ugyanaz a 2 koordináta...
420
Segítségkérés / Samp Sorompó nem zárle« Dátum: 2015. április 29. - 16:36:50 »
Nyit
MoveDynamicObject(rkapu,-954.7742, 2710.1985, 45.7119, 5); Zár MoveDynamicObject(hatarkapu,-954.7742, 2710.1985, 45.7119,5); Ugyanaz a koordináta...de más-más kaput mozgatsz...biztos így akartad? |