Szerző Téma: Elsõ lecke - Bevezetés a projectbe és ismerkedés az alapokkal  (Megtekintve 4536 alkalommal)

Elsõ lecke - Bevezetés a projectbe és ismerkedés az alapokkal
« Dátum: 2012. Szeptember 23. - 19:58:34 »
0
Lecke/fejlesztés tartalma: Bevezetés a projectbe és ismerkedés az alapokkal,


Szükséges pluginok és includék: ZCMD parancsfeldolgozó
Felhívás: A létrehozásnál a leglényegesebb arra figyelnünk, hogy minden funkciónk címkézve legyen. Lásd egyes ábra.
[hs width=50 height=50]http://i.imgur.com/d6xIa.jpg[/hs] (Kattintással nagyítható)
Elsõ lépés:


Az elsõ lépésben a játékmód formaságait fogjuk megadni. Létrehozzuk a létfontosságú beágyazásokat, elõre meghatározunk színkódokat és a játékmódot elnevezzük.
Az alap szervercsomag tartalmazza az \'a_samp\' nevû függvénykönyvtárat így ezt nekünk nem kell külön beszereznünk. Viszont a késõbbiekben nagy segítségünkre lehet a ZCMD (aki nem ismerné itt megtalálja a leírást és a letöltést) parancsfeldolgozó így a késõbbiekben a parancsaink egyszerûbbek és gyorsabbak lesznek. A parancsokkal majd egy késõbbi leckében fogunk foglalkozni.
A játékmód elején adjuk meg a szükséges beágyazásokat. Lényeges, hogy elé semmilyen funkciót ne írjunk mivel okozhat késõbbiekben problémát.
 

#include <a_samp>
#include <zcmd>

 
Így már elérhetõek számunkra a SAMP által nyújtott funkciók. Most adjuk meg azokat az állandókat amiket a késõbbiekben fogunk használni. Ezek most a színek lesznek. Itt elérhetõ egy színpaletta/színkeverõ ami autómatikusan definícióba írja a kikevert színt.
Azt tudnunk kell, hogy átfordításnál fentrõl lefelé kerül a játékmód konvertálásra így a definíciókat már csak az átláthatóság miatt is érdemes a beágyazások alatt létrehozni. A lényeg az, hogy mindig a funkciónk elõtt legyen. Lehet pontosan elé is írni de nem célszerû mivel nagyobb terjedelmû módnál átláthatósági problémákat okoz. Illetve esztétikusabb a módunk ha minden sorban egy helyen található meg lásd egyes ábra.
Tehát kezdjünk el kikeverni olyan 10 színt és definíciókba adjuk meg a színek neveit (fent definíció neve) és a hozzátartozó értékeket. Javaslom a SZIN_ elõtagot így a késõbbiekben könnyebben elkülönülnek a többi állandótól. A webes \'program\' létrehozza nekünk a teljes kódot átalakítani legfeljebb a tabulátorozást kell, viszont ez csak esztétikai dolog nincs kihatással a módunk mûködésére. Persze azért címkézzük fel, hogy itt a színek kerülnek megadásra.
Nekem a webes verzióban a tabulátorok elcsúszhatnak.
 

#define SZIN_PIROS 0xff0000AA
#define SZIN_SARGA 0xffa600AA
#define SZIN_ZOLD 0x227305AA
#define SZIN_KEK 0x08027aAA

 
A késõbbiekben nem kell beírnunk azt, hogy \'0x08027aAA\' csupán elég lesz annyi, hogy SZIN_KEK.
Második lépés:


Ebben a lépésben fogjuk elnevezni a játékmódunkat.
 

main()
{
print(\"\\n----------------------------------\");
print(\" SAMPFORUM.HU PAWN GYAKORLATI tanfolyam\");
print(\"----------------------------------\\n\");
}

 
A main funkció a játékmód indulásakor kerül meghívásra. Ezt nem lehet kihagyni a játékmódból, enélkül nem indul el. Továbbá csak a játékmód indulásakor kerül meghívásra.
A print funkció egy képernyõ üzenetet ír ki. Ezt használhatjuk debugolásra is akár (fõleg erre célszerû).
Térjünk át az
 

public OnGameModeInit()
{
   return 1;
}

 
Callbackhez. Elõször is láthatjuk, hogy nincsenek megadva paraméterek (a paraméterek a zárójelben lévõ részben vesszõvel elválasztva találhatóak), másrészt ez az eljárás is a játékmód indulásakor fut le. Így itt beállíthatunk pár globális dolgot. Elsõnek adjunk hozzá egy skint az AddPlayerClass függvénnyel tehetjük meg. Itt már jóval több paraméterünk van. Én ezeket nem fogom taglalni a linken megtaláljátok.
Ami kérdés, hogy ugyebár mi egy autós játékmódot készítünk akkor miért szükséges karakter hozzáadása? A válasz rá igen egyszerû mivel ha nem adsz hozzá legalább egy karaktert akkor elõfordulhat az, hogy a játékosok kifagynak spawnoláskor (lehet ez már 0.3e verzióban javítva lett). Értékeket nem kell megadnunk az argrumentumokban -vagy másnéven paraméterekben. Tehát nyugodtan írjunk 0 értékeket, kivéve ahol lebegõpontos számot kér ott egy tizedes jegy pontossággal töltsük ki a paramétert. Tehát összesítve ez nekem így néz ki most:
 

public OnGameModeInit()
{
   AddPlayerClass(0, 0.0, 0.0, 0.0, 0.0, 0, 0, 0, 0, 0, 0);
   return 1;
}

 
Itt látszik is egy óriási probléma ha csak erre hivatkozunk, hogy mindössze 3 fegyvert adhatunk a játékosnak. Késõbbiekben egy másik út taglalásra kerül.
Érdemes lenne elnevezni a játékmódot. Amikor a kliensbe a szervert nézed akkor a \'Mode\' felirat alatt olvasható a játékmód neve.
Ehhez a SetGameModeText(string[]) függvény lesz a segítségünkre. Amit tudni érdemes róla, hogy egy darab szöveges argrumentuma van. A szöveget amit megadunk benne lehet akár elõre változóban formázott és úgy hivatkozhatunk rá. De erre nekünk most még nincs szükségünk ezért csak natúr beírjuk a játékmód nevét.
 

public OnGameModeInit()
{
   AddPlayerClass(0, 0.0, 0.0, 0.0, 0.0, 0, 0, 0, 0, 0, 0);
   SetGameModeText(\"Sampforum Carmageddon v0.1b\");
   return 1;
}

 
Amire figyelnünk kell az az, hogy a nem változóból kiolvasandó szövegeket tegyük idézõjelekbe. Ez amolyan elkülönítési mód.
Csupán annyi a teendõnk már, hogy ctrl+s billentyûkombinációval mentsük el a pwn fájlunkat. Konvertálás egyelõre nem szükséges még.


Összesítés:
 

#include <a_samp>
#include <zcmd>
#define SZIN_PIROS 0xff0000AA
#define SZIN_SARGA 0xffa600AA
#define SZIN_ZOLD 0x227305AA
#define SZIN_KEK 0x08027aAA
main()
{
print(\"\\n----------------------------------\");
print(\" SAMPFORUM.HU PAWN GYAKORLATI tanfolyam\");
print(\"----------------------------------\\n\");
}
public OnGameModeInit()
{
   AddPlayerClass(0, 0.0, 0.0, 0.0, 0.0, 0, 0, 0, 0, 0, 0);
   SetGameModeText(\"Sampforum Carmageddon v0.1b\");
   return 1;
}
« Utoljára szerkesztve: 2012. Szeptember 24. - 14:38:47 írta Gentleman »

Nem elérhető ChrisJ

  • 1022
  • Nindzsa
    • Profil megtekintése
Elsõ lecke - Bevezetés a projectbe és ismerkedés az alapokkal
« Válasz #1 Dátum: 2012. Szeptember 24. - 15:53:58 »
0
Cool. Jöhet a következõ  :D

Nem elérhető JackBronson

  • 1499
  • ??
    • Profil megtekintése
Elsõ lecke - Bevezetés a projectbe és ismerkedés az alapokkal
« Válasz #2 Dátum: 2012. Szeptember 25. - 07:50:14 »
0
Jo de nallam  a kep az homalyos kicsit :D

Nem elérhető Csabesz

  • 7827
    • Profil megtekintése
Elsõ lecke - Bevezetés a projectbe és ismerkedés az alapokkal
« Válasz #3 Dátum: 2012. Szeptember 25. - 17:44:22 »
0
Idézetet írta: JaCk date=1348552214\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"27889\" data-ipsquote-contentclass=\"forums_Topic
Jo de nallam  a kep az homalyos kicsit :D
 
Ha kinagyítod a négyzet jobb alsó sarkában van 1 ikon, arra kattintva kiszélesíti.  ;)

Elsõ lecke - Bevezetés a projectbe és ismerkedés az alapokkal
« Válasz #4 Dátum: 2012. Szeptember 25. - 18:00:15 »
0
Nekem valamiért nem jó a nagyítás.

Nem elérhető Fade

  • 322
    • Profil megtekintése
Elsõ lecke - Bevezetés a projectbe és ismerkedés az alapokkal
« Válasz #5 Dátum: 2012. Szeptember 25. - 18:59:51 »
0
Az egyetlen baj, hogy a ZCMD szép, jó, és gyors, de ahogy a téma nevében is benne van \"ALAPOKKAL\", tehát az alap parancs írást kéne megtanítani az újoncoknak, a ZCMD, és egyéb parancsfeldolgozó használata meg lehetne egy extra téma.

Nem elérhető doboka98

  • 1002
    • Profil megtekintése
Elsõ lecke - Bevezetés a projectbe és ismerkedés az alapokkal
« Válasz #6 Dátum: 2012. Szeptember 25. - 19:12:33 »
0
Fade, annál jobb ha a ZCMD -t tanulják meg alapul, mostmár mindenki azt használja.

Nem elérhető Depi

  • 2259
  • Még mindig TrYp. :)
    • Profil megtekintése
Elsõ lecke - Bevezetés a projectbe és ismerkedés az alapokkal
« Válasz #7 Dátum: 2012. Szeptember 25. - 19:13:21 »
0
Idézetet írta: Fade date=1348592391\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"27889\" data-ipsquote-contentclass=\"forums_Topic
Az egyetlen baj, hogy a ZCMD szép, jó, és gyors, de ahogy a téma nevében is benne van \"ALAPOKKAL\", tehát az alap parancs írást kéne megtanítani az újoncoknak, a ZCMD, és egyéb parancsfeldolgozó használata meg lehetne egy extra téma.
 
Igazából már a ZCMD-t is lehetne tekinteni alapnak, kevés ember használja már a régi verziót.

Elsõ lecke - Bevezetés a projectbe és ismerkedés az alapokkal
« Válasz #8 Dátum: 2012. Szeptember 25. - 19:50:00 »
0
Én személy szerint a ZCMD parancsfeldolgozót részesítem elõnyben. Egyszerûbb és átláthatóbb, nem tudok indokot felhozni, hogy miért elõnyösebb a régi logikai elv.

Nem elérhető T0ny

  • 524
    • Profil megtekintése
Elsõ lecke - Bevezetés a projectbe és ismerkedés az alapokkal
« Válasz #9 Dátum: 2012. Szeptember 25. - 20:02:31 »
0
Én is jobban kedvelem a ZCMD-t :)
A Második lecke kb. mikorra várható?:)

Elsõ lecke - Bevezetés a projectbe és ismerkedés az alapokkal
« Válasz #10 Dátum: 2012. Szeptember 25. - 20:04:38 »
0
Idézetet írta: T0ny date=1348596151\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"27889\" data-ipsquote-contentclass=\"forums_Topic
Én is jobban kedvelem a ZCMD-t :)
A Második lecke kb. mikorra várható?:)
 
Hétfõ, Kedd, Szerda húzós nap sajnos a sulimban. Csütörtök nyugisabb én akkor tudnék összedobni egy másodikat. Utána egyeztetni is kellene a szerkesztõkkel, hogy mit mi hol hogyan.
Remélem megértitek. Az iskola kicsit fontosabb de szeretnék heti 1-2 leckét kitenni.

Nem elérhető ChrisJ

  • 1022
  • Nindzsa
    • Profil megtekintése
Elsõ lecke - Bevezetés a projectbe és ismerkedés az alapokkal
« Válasz #11 Dátum: 2012. Szeptember 26. - 16:07:39 »
0
a ZCMD-s link rossz. a feladatot ettõlfüggetlenül megcsináltam, de a ZCMD nincs meg.

Nem elérhető tonyo

  • 1335
  • Moderális Generátor
    • Profil megtekintése
Elsõ lecke - Bevezetés a projectbe és ismerkedés az alapokkal
« Válasz #12 Dátum: 2012. Szeptember 26. - 17:09:21 »
0
Nálam semmi gond a linkkel.

Elsõ lecke - Bevezetés a projectbe és ismerkedés az alapokkal
« Válasz #13 Dátum: 2012. Szeptember 26. - 17:34:07 »
0
Holnap összedobom a következõt utána már meglesz az alap így a \'tanárok\' is tudnak majd dolgozni :)

Nem elérhető Olie

  • 892
  • Roleplay Õrült
    • Profil megtekintése
Elsõ lecke - Bevezetés a projectbe és ismerkedés az alapokkal
« Válasz #14 Dátum: 2012. Szeptember 26. - 18:33:35 »
0
Idézetet írta: Gentleman date=1348673647\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"27889\" data-ipsquote-contentclass=\"forums_Topic
Holnap összedobom a következõt utána már meglesz az alap így a \'tanárok\' is tudnak majd dolgozni :)
 
Végül kik kerültek be \"tanárnak\"? :)

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal