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. 1
Leírások/Útmutatók / [TUT] Moduláris programozás PAWN-ban« Dátum: 2018. március 25. - 16:36:50 »Idézetet írta: Naretev date=1521988394
Ja igen, köszi, hogy szólsz, ezt a részét kifelejtettem. Az IDE-kről nem nagyon akartam itt beszélni, de akkor hozzá teszem a leíráshoz, hogy erre a pawno teljesen képtelen. A y_hooks-ról még később írok, most ezt gyorsan be kellett fejeznem. 2
Leírások/Útmutatók / [TUT] Moduláris programozás PAWN-ban« Dátum: 2018. március 25. - 16:15:30 »
Moduláris Programozás
Mi is ez? A moduláris programozás egy olyan folyamat, amely során a kódot felbontjuk különböző, ú.n modulokra, az alapján, hogy milyen feladatot lát el, milyen logikát tartalmaz. Itt, PAWN-ban ez annyiban nyilvánul meg, hogy ezeket a modulokat külön forrásfájlba tesszük. Ilyenkor lesz egy \"fő\" modul (itt main-nek fogom hívni) ami összekapcsolja az összes többit valamilyen beágyazó mechanizmus segítségével, amely nekünk az include direktíva. Oké, de miért jó? A kérdést nagyjából megválaszoltam az előző pontban az egy vagy több forrásfájlos problémával. Ennek ellenére a hasznosságát szeretném egy egyszerű példával szemléltetni. Például, szeretnél megnézni egy-két dolgot egy gamemode-ban, hogy hogyan oldották meg. A mód egyetlen egy fájl, amely 30-40 ezer soros. Megnyitod, ránézel. Órákig tart, mire kisilabizálod, hogy egyáltalán melyik az a kódrészlet, amelyre neked szükséged van, aztán még lehet órák kérdése az is, hogy felfogd. Felteszek egy őszinte és nagyon fontos kérdést: tetszik az ilyen? Ha igen, akkor (és most ez lehet, hogy egy kicsit durván hangzik) nem valószínű, hogy a fejlesztői pálya neked való. Másik eset: egy nagyobb skáláju projektet tervezel, esetleg egy olyan módot szeretnél írni, ami sok színű, sok mindenre való. Ha felismered, hogy több, független feladatot lát el maga a mód, akkor egyből a rendszerezésen kell gondolkodni, valamint, hogy hogyan szeretnéd felépíteni. Viszont (és ez most egy nagyon nagy viszont), kisebb projektekre is javaslom, a következő pontban leírom, hogy miért. Előnyök
Hátrányok
Hogyan? Először is beszéljük át, hogy egy moduláris projekt hogyan is néz ki élesben. Az alábbi képen látható egy példa: Itt nyilvánvalóan a main.pwn lesz az, ami összeszedi az összeset egyben, valamint ez lesz az a fájl (ez most egy gamemode), amit a szervernek be kell hivatkozni. A nagyobb modulokat egy mappába szervezzük, valamint minden olyan modult, amely feltétlenül szükséges ahhoz, hogy a script fusson egy core mappába egységbe zárjuk. A többi modul, amelyektől egyáltalán nem \"függ\" a script, mehet külön, ezeket \"stand-alone\" moduloknak szokás hívni. A player core modulja tartalmazza a játékos enum-ját és egyéb definícióit, valamint azokat a metódusokat, amelyek hozzá kapcsolhatóak.
Ez után, ezt fogjuk beágyazni a main-be:
...és így tovább. Nyilván modul is behivatkozhat modult, sőt, sokkal szebb, ha nem az összes modult ágyazzuk be a main-be, hanem inkább azt mondjuk, hogy a modulok önmagukban is működnek. Ilyenkor, az adott modulba behivatkozzuk azt, amelyiktől függ.A #include jelentése Mielőtt tovább mennék, beszéljük át, hogy mit is jelent az include direktíva. Egyrészt a hashmark (#) jelzi a fordítónak, hogy ez egy preprocesszor direktíva <- olyan utasítás, amit a fordító fordítás előtt értelmez és végrehajt (magyarul: előfeldolgozó). Az include-ot a PAWN a C-ből örökölte meg, röviden: \"ennek a fájlnak a tartalmát illeszd be ide\". Tehát, amit az include-dal behivatkozunk, annak a forrásfájlnak a tartalmát a fordító az include helyére szépen bedobja. Mi ennek a jelentősége? Sorrendiség. Nem mindegy, hogy bizonyos modulok milyen sorrendben vannak beágyazva. Ha egy modul hivatkozik valamire egy másikból, akkor az utóbbit nyilván előbb be kell ágyazni, mint az előbbit. Viszont pont ezért mondtam, hogy ha egy modul függ a másiktól, akkor a beágyazást az adott modul végezze inkább.y_hooks Ez az include a YSI része. Célja: megfelelően hook-olni a callback-eket, intuitív szintaxissal, minél kevesebb \"fejfájást\" okozva. Mire jó? Arra, amit korábban említettem: többször szerepelhet a kódban egy callback. Így a modulokban egyenként szerepelhet pl. az OnPlayerConnect, minden probléma nélkül. Nem kell ALS guard-okat definiálni (ezek amúgy is boiler plate kódot eredményeznek, erről esetleg később egy másik leírásban). Használata: Minden egyes modulba szépen beágyazzok a y_hooks-t, majd a callback-eket a public kulcsszó helyett a hook kulcsszóval látjuk el. Példa:
Ezek után, ezek a hook-ok a beágyazás sorrendjében fognak lefutni, mikor az eredeti meghívódik. Így, a projektben egyszer szerepelhet public kulcsszóval is egy adott callback és az azt fogja jelenteni, hogy az fusson le legelőször.A static és a stock Nem hiába szerepelnek a PAWN-ban ezek a kulcsszavak. A moduláris projektek különös hasznát veszik. A static jelentése: csak a saját fájljában látható. A stock jelentése: amíg nincs hivatkozva az ezzel ellátott metódus vagy változó, addig az interpreter szimplán \"hozzá sem köti\" a lefordított script-hez, egyszerűen csak lehagyja. Amint használjuk, be lesz kötve, viszont ha nincs többet használva, akkor megint csak kikerül a programból. A static haszna: meggátolni másokat, hogy rosszul használják a kódodat. Az OOP egységbezárás alapelve működik itt: csak azokat a részleteket jelenítsük meg a külvilágnak, amelyek feltétlenül szükségesek. Magyarul: ha valamit más fájlban/modulban nem használsz, az legyen static. Ezzel már kevesebb lehetőséget biztosítasz másoknak arra, hogy hibákba fussanak bele, ha a kódodat használják. A stock haszna: amíg valami nincs használva, addig ne foglalja feleslegesen a helyet a memóriában. Valamint, ha már nincs rá szükség, akkor szabaduljon föl. Érdemes minden modulban a metódusokat ezzel ellátni. Ha viszont biztosra tudod, hogy valami folyamatosan használva lesz, akkor ott el kell hagyni. Kiegészítés Mivel ez a módszer több fájlos projekteket eredményez, ezért nem ajánlom a pawno-t a szerkesztéshez. Nem szeretnék most részletesen bele menni abba, hogy hogyan kell más környezeteket beállítani a PAWN-hoz, rengeteg leírás található neten róla, itt csak megemlítek két példát, amiket én is használok: Sublime Text 3 és Visual Studio Code. Mindenkinek \"szája íze\", de én ezeket találtam erre a célra a legkényelmesebbnek. Köszönet Naretev-nek, hogy szólt.Köszönöm a figyelmet. 3
Fórum Archívum (Témák/Fórumok) / Re:Kép rólatok« Dátum: 2015. október 09. - 10:24:53 »Idézetet írta: metaxa date=1444373948\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"6405\" data-ipsquote-contentclass=\"forums_Topic Igazabol mar 2 honapos lassan.Jó neked, hogy lehet tetkód. :\'( közben én is itt vagyok, de nem tudom honnan jöttem https://scontent-frt3-1.xx.fbcdn.net/hphotos-xpf1/v/t1.0-9/11011232_828618633897494_4684858896126034132_n.jpg?oh=a056ff133060895da898c93b0c231b7d&oe=569A1F37[/img] old picture pls god, ezt a témát még én nyitottam? o.o 4
Beszélgetés / 4.8-as Földrengés Heves megyében.« Dátum: 2013. április 23. - 16:31:23 »
Én Heves-en lakok, és én aludtam... xd
De a fél város kint aludt... spanomra meg ráesett egy határ üveg. o.O 6
Beszélgetés / nosztalgia, Mi volt az elsõ hozzászólásod?!« Dátum: 2012. november 30. - 14:33:56 »
Még egy gamemode publikálás 2009 júniusban, ami egy kis fórum incidens folyamán törölve lett sok sok ezer más témával együtt, de azért így jó érzés visszaemlékezni rá...
7
Hangszerek és előadók / Mit hallgatsz most vol. 2« Dátum: 2012. november 26. - 17:28:19 »Új TDG album. (Y) 8
Off Telep / A világ leggyorsabb ivója« Dátum: 2012. november 24. - 21:15:06 »Ezen behugyoztam... :O 10
Off Telep / Ami ingyen van azzal óvatosan!« Dátum: 2012. november 24. - 12:51:26 »
Errõl írnom kell egy szöveget úgy érzem...
Azért, szerencséd van, hogy tanultál ilyen dolgokat, ezért nem szippantott be... 11
Fórum Archívum (Témák/Fórumok) / Fade zene« Dátum: 2012. november 19. - 19:51:01 »
A szöveget én írtam, de csak úgy helybõl, hogy kéne írni valamit, mikor hazaértem... :whistle:
E: Nyuiban nem bízok meg, úgy hogy delete... :| 12
Fórum Archívum (Témák/Fórumok) / Fade zene« Dátum: 2012. november 19. - 19:28:27 »Idézetet írta: nagynorbi date=1353349606\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"30032\" data-ipsquote-contentclass=\"forums_Topic Oké.. Zene hangosabb legyen, próbálj ritmusosabban énekelni, odafigyelni a rímekre, úszni benne. Szerintem ha már elsõ próbálkozás, akkor pont emiatt ne tedd fel youtubera. Mert csak negatív kommentek érnének-Végre valami, ami segít is... oké ezt tudomásul vettem. Nem listázott a videó amúgy. 13
Fórum Archívum (Témák/Fórumok) / Fade zene« Dátum: 2012. november 19. - 19:25:05 »Idézetet írta: nagynorbi date=1353349352\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"30032\" data-ipsquote-contentclass=\"forums_Topic Ha ezzel arra céloztál, hogy nyíltan kimondjuk a véleményünket és nem a hátad mögött kotyogjuk ki, akkor eltaláltad.. De ezt inkább mondom pozitívumnak, mint negatívumnak..Nem feltétlen a te posztodra céloztam, de az is érdekesen fogadott... Valahol el kell kezdeni, a véleményeket fogadom, ÉS én is \"leírtam a véleményemet a véleményekrõl\"... Amúgy leírtam, hogy elõször próbálom ki az ilyen pörgõs/hadarós rappet, szóval szerintem ebbõl többet nem is bírtam volna kihozni... 14
Fórum Archívum (Témák/Fórumok) / Fade zene« Dátum: 2012. november 19. - 19:21:08 »Idézetet írta: Many date=1353349115\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"30032\" data-ipsquote-contentclass=\"forums_Topic Miután fél percig egyetlen rímet nem találtam benne és a zenei alap is valami 90-es évekbeli nintendóra hajazott, ki is nyomtam.
15
Fórum Archívum (Témák/Fórumok) / Fade zene« Dátum: 2012. november 19. - 19:17:56 »Idézetet írta: nagynorbi date=1353348934\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"30032\" data-ipsquote-contentclass=\"forums_Topic http://fc07.deviantart.net/fs70/f/2010/170/5/6/AreYouFuckingKiddingMe_1200px_by_CrusierPL.png[/img]Tudtommal tilos meméket rakni a fórumra... :| nvm |