GTA SAMP spawn szkript útmutató: A kezdőtől a haladó szintig

portalcenter.cl

A San Andreas Multiplayer (rövidítve SA-MP) egy kiegészítő a GTA San Andreas játékhoz, mely egy többjátékos módot tesz lehetővé, ahol saját szervereket, pályákat, módokat is készíthetünk, de akár együtt játszhatunk más játékosokkal is a szerte a világban üzemelő szervereken. Elkezdődik a kliens telepítése, ezután a GTA San Andreas könyvtárát kell kiválasztani, hiszen a kliens futtatásához szükség van a játékra is. A SA-MP-t megtalálhatjuk a Start Menüben, vagy a játék könyvtárában. Szervert keresni alul tudunk az Internet vagy a Hosted-re kattintva, ahol két típusú szerverrel találkozunk: az egyik szabadon elérhető, a másik pedig jelszóval védett (pl. klánszerverek).

SA-MP telepítési folyamat lépései

Kapcsolódni egy szerverhez úgy tudunk, hogy duplán kattintunk a kívánt szerver nevére, majd a megjelenő ablakban a "connect" gombra kattintunk. A settingsnél beállíthatjuk, hogy a jelszavas szervereknél mentse-e a jelszavakat a kliens, és a kedvenc szervereinket is elmenthetjük az alul található Favourites, illetve Add server lehetőségekkel.

Alapfogalmak és kezdő lépések a scriptek világában

A pawno mappa tartalmazza az alapvető programokat a SA-MP scriptek elindításához, valamint az „include” mappa tartalmazza azokat az alapvető include-okat, melyek szükségesek a szkriptek létrehozásához. Az include-ok amolyan beépülők, a pawno/includes mappájából olvassa be őket a konverter. Néhány include megköveteli a pluginokat, melyeket a plugins mappában találunk, és oda is kell őket beilleszteni.

SA-MP pawno szerkezete és include mappa

Az include-ok helyes felhasználásáról érdemes többet olvasni vagy keresni részletes leírásokat. Az alapvető include-ok közé tartozik például az #include <a_samp>, ami minden módban szükséges, vagy az #include <zcmd>, ami parancsfeldolgozásra lett kitalálva, illetve a #include <sscanf2>, mely segíti a paraméterkezelést.

Változók, típusok és műveletek: Az alap scriptelés

A változók nevébe ne adjunk meg ékezetes karaktereket. A változókhoz különböző értékek rendelhetőek, ilyen például:

  • new integer = 1;
  • new Float:value = 3.14;
  • new string[24] = "egy karakterlánc";

A változók értékén műveleteket is végezhetünk: integer++ növeli eggyel, integer-- csökkenti eggyel, integer += 2 kettővel növeli, integer -= 2 kettővel csökkenti, integer *= 2 megszorozza kettővel.

Fontos, hogy az értékátadásnál a változó típusa megfeleljen a tárolandó adatnak. Például, egy integer változó már egy osztásnál (1/2 = 0.5) nem tudja elmenteni a pontos eredményt, hiszen csak egész számokat tud tárolni. Ezért válaszd meg mindig jól a változó típusát!

Változótípusok közti különbségek SAMP-ben

Vezérlési szerkezetek és alap programlogika

Scriptekben a vezérlési szerkezeteket így érdemes alkalmazni, például if, else, vagy switch szerkezeteket:

  • if(változó1 == változó2) - Egyenlőségvizsgálat
  • if(változó1 >= változó2) - Nagyobb vagy egyenlő
  • if(változó1 <= változó2) - Kisebb vagy egyenlő
  • if(változó1 > változó2) - Nagyobb, mint
  • if(változó1 < változó2) - Kisebb, mint

Több lehetőség összehasonlítására a switch szerkezet használata ajánlott.

Alapvető publik (public) függvények és jelentésük

  • public OnGameModeInit() - A szerver indításakor fut le. Itt érdemes megadni a gamemode nevét, vagy bizonyos osztályokat, pozíciókat betölteni.
  • public OnGameModeExit() - A szerver leállásakor fut le.
  • public OnPlayerConnect(playerid) - Játékos csatlakozásakor fut le. Megadhatunk üdvözlő üzeneteket, logolást stb.
  • public OnPlayerDisconnect(playerid, reason) - Játékos lecsatlakozásakor fut le. Itt is adhatunk visszajelzést, vagy feldolgozhatjuk az okot, hogy miért távozott.
  • public OnPlayerRequestClass(playerid, classid) - Játékos kasztválasztásakor fut le.
  • public OnPlayerSpawn(playerid) - Spawn (újraéledés) pillanatában fut le.
  • public OnPlayerDeath(playerid, killerid, reason) - Halál esetén hívódik meg.
  • public OnPlayerText(playerid, text[]) - Amikor egy játékos szöveget ír be (chat).
  • public OnPlayerUpdate(playerid) - Folyamatos frissítés; kb. ezred másodpercenként fut le.
Fő public függvények szerkezete SA-MP-ben

Publikok gyakorlati használata

A szerver elindításánál, vagy játékos csatlakozásánál szokás különböző visszajelzéseket adni, például a konzolba írni szöveges üzenetet print() segítségével, vagy minden játékosnak üzenni SendClientMessageToAll() függvénnyel. Játékosnév lekérdezésére a GetPlayerName() függvény szolgál, mely alapján akár logolhatjuk, hogy ki mikor csatlakozott vagy lépett le.

Public Használata Példa kód
OnPlayerConnect Játékos üdvözlése SendClientMessageToAll(-1, string);
OnPlayerDisconnect Távozás bejelentése switch(reason) { case 0: ... }
OnPlayerSpawn Spawn események SetPlayerPos(), SetPlayerCameraPos()

Parancsok létrehozása: CMD használat és példák

A zcmd beépülővel egyszerűen készíthetünk játékosparancsokat, amit a szerver könnyedén feldolgoz. Például az egyik legegyszerűbb járműhívó parancs:

  • CMD:car(playerid, params[]) - Amikor a játékos beírja ezt a parancsot, automatikusan letesz egy járművet maga alá és beleülteti a játékost.
  • CMD:createcar(playerid, params[]) - Paraméterfüggő parancs, amellyel tetszőleges modellű autót hozhatunk létre.

Mindkét parancs a játékos aktuális pozícióját, szögét lekéri (GetPlayerPos, GetPlayerFacingAngle), majd a CreateVehicle segítségével létrehozza a járművet, végül a PutPlayerInVehicle-lel beülteti a játékost.

SAMP jármű spawn parancspéldák

Hasznos kapcsolódó parancsok és szabályok a szervereken

A SA-MP szervereken elérhető parancsok széles köre hasznos a játékosok, adminok és fejlesztők számára is. Ide tartozik például a /changename (névcsere), /ad (hirdetés feladása), /give (tárgy adása másik játékosnak), /repairvehicle (autó javítása), /setvehiclespawn (jármű spawn helyének beállítása) és sok más, például pénz utalás, tulajdon vásárlás, státuszok kezelése.

Számos parancs köthető autók használatához, például: /carlock (kocsi lezárása), /buyplate (egyedi rendszám vásárlása), /fillup (tankolás), /prevcolor (ideiglenes átfestés) vagy akár a /detach (utánfutó lekapcsolása).

Leggyakoribb használt SA-MP szerver parancsok

Pozíciók mentése és pályaszerkesztés

Lehetőségünk van a játékban az aktuális pozíciónkat is elmenteni; a /Save alapértelmezett parancs segítségével a \GTA San Andreas User Files\SAMP mappában a "savedpositions.txt" fájlba kerülnek a pozíciók, amiket később felhasználhatunk a szkripteknél.

Map vagy objektumok szerkesztésekor a code generálásához PAWN kódot válasszunk, és azt illesszük be szkripteinkbe (CreateObject vagy más). A szerver objektumlimitje 1000 darab, erre figyeljünk!

Pozíciómentés és pályaszerkesztés SAMP-ben

Kiegészítő információk, hibák elkerülése, és vélemények

Nagyon fontos, hogy script szerkesztés vagy létrehozás után nyomjuk meg az F5 billentyűt, mert így frissül az AMX fájl, és minden változtatás mentésre kerül (ha nincs hiba). Léteznek azonban olyan hibák, amelyek csak futásidőben ütköznek ki, ezért mindig teszteljünk több felhasználóval és éles környezetben is.

A programban nem lehet két azonos nevű publikus függvény, például két OnPlayerSpawn - ilyen esetekben a kiegészítő funkciókat vagy ugyanabba a függvénybe ágyazzuk, vagy külön filterscriptként építsük be.

A "Publics" olyan alapfüggvények, amelyeket a szerver bizonyos eseményekkor automatikusan meghív, többek között gamemode indításakor, játékos csatlakozásakor vagy spawnolásakor. A parancsok közül is számos a járműhöz, státuszhoz, tulajdonhoz, pénzügyi tranzakciókhoz vagy egyéb szerepjátékos tevékenységekhez kapcsolódik.

A SA-MP scriptelés folyamatos tanulást igényel, ha elakadunk, érdemes angol vagy magyar fórumokon is keresni példákat és dokumentációt.

Gyakori parancs Leírás
/changename Névcsere (feltételekhez kötve)
/ad Hirdetés feladása
/give Tárgy adása játékosnak
/repairvehicle Jármű javítása PayNSpray-nél
/setvehiclespawn Jármű spawn hely beállítása

SA:MP Scriptelés #2 - Alapok (1. Rész)

SA-MP script hibaelhárítás áttekintő táblázat

Ez az útmutató a kezdőktől a haladó szintig vezeti végig az olvasót a SA-MP szerver scripting alapjain: változók, függvények, vezérlési szerkezetek, parancsok, objektumkezelés, tipikus hibák és használati példák egyaránt helyet kaptak benne.

tags: #gta #samp #spawn #szkript