Ami a saját plugin AMXX

Ami a saját plugin AMXX

Írja plugins a nyelv elég kicsi ahhoz, hogy könnyen, és miután egy pár óra, akkor valószínűleg tudja írni a saját plugin AMX. Szóval, azt hiszem, nem kell túl sok levelet, amíg nem kezdenek el önállóan gondolkodni, hogyan kell írni egy plugin (kód).


Persze, ha már írt egy programot, mielőtt ez nagyban segíti. De azt hiszem, a nyelv a Kis - Egy jó kezdet egy kezdő. Remélem, van néhány kulcsfontosságú fogalmak a programozási nyelvek. Ha nem tudja, hogy milyen változók és függvények, akkor kell menni, és információt találni ezekben a kérdésekben. Nem fogom ezt magyarázni neked. Azonban ne ijedjen. Azt hiszem, az én leckéket lesz képes megérteni, mi az, ami.

Írtam ezt plugin divat HL - ellenreformáció Strike. Tehát tudomásul veszik ezt. De azt hiszem, mindent itt elhangzott hasznos lesz az írás szkriptek más módokra HL.
030613
1. lecke
Az első bővítmény
*****************

Kezdjük egy egyszerű: a kijelző üzeneteit. Mi jön egy csapat, amely meg fog tenni: amx_ helloworld, amx_ szia vagy helló. Szükséges, hogy az adminisztrátor lehet, ha azt akarja, hogy, és adja meg a megfelelő parancs jeleníti meg ezt a táblát: hello world, szia vagy „Privet 4 itaki” ().

Minden ellenőrzik? Menjünk!

Plug-in kell plugin_ init () függvény. Minden, ami be van dugva az adott funkciót lesz bejegyezve az AMX, amely tudott használni a plug-in: nyilvános plugin_init () <
register_plugin ( "Hello világ", "0.1", "jghg")
>

De ez nem elég a célra. Kell egy csapat, amely képes lesz használni az admin és ehhez meg kell regisztrálni azt a plugin_ init () függvény. Kiadni a parancsokat a szerver konzolon vagy az ügyfél kell egy nutria plugin_ init (), hogy nem lenne képes élvezni. plugin_ init () fontos sok más okból, ami megtudhatja a későbbi leckéket. Funkció plugin_ init (), mint egy üzenetet AMXMod, hogy suschestvket a beépülő modul, és ha valami történik (a bevezetése a csapat) juzat ego.register_clcmd ( "amx_helloworld", "myFunction" A DMIN_VOTE "Prints Hello world. Mindenkinek")

Így a függvény plugin_ init () így néz ki: public plugin_init () <
register_plugin ( "Hello világ", "0.1", "jghg")
register_clcmd ( "amx_helloworld", "myFunction" ADMIN _VOTE "mondja Hello world. a játék képernyő")

Tartsa a behúzás, vagyis Használja a „fül”, vagy például a hézagok az írásban funkciókat. Nyitott minden. sma fájl mellékelt AMX, és meg fogod érteni, mire gondolok. . * Egyszerűbb összeállításáról és a bővítmény kell összeállítani hatékonyabban. Ahogyan ez megkönnyíti a vizsgálatot a bővítmény más fejlesztők számára. Sokkal könnyebb megérteni a strukturált kódot, mint egy bordélyházban. Vannak még jó ok, de nem megyek bele.

Add a sor adatait. Jelen kell lenniük a plugin: #include
#include

Már írt elég sokat. Kell ehhez hasonló van: / *
Helló világ, v0.1
által JGHG
* /

nyilvános plugin_init () <
register_plugin ( "Hello világ", "0.1", "jghg")
register_clcmd ( "amx_helloworld", "myFunction" ADMIN _VOTE "mondja Hello world. a játék képernyő")

Mindig tartsa írva. Ki tudja, ha a villamosenergia-kikapcsol. Megpróbálja lefordítani a dugó. Ha vannak hibák, azok könnyebben megtalálja őt, mint majd válasszon egy halom kódot. . * Ez sokkal könnyebb megtalálni a hibákat.

Mentse el a dugót, és futtassa a sc. denevér. sc. bat - ez egy batch fájlt, ami meg fogja keresni az összes SMA-fájl a könyvtárban forrást. Lefordítja és hozza egy könyvtárban összeállítani. AMX. Ha azt szeretnénk, hogy csak azokat az plug-in, akkor meg kell kezdeni sc. exe egy paraméter megegyezik a fájl nevét, amelyben az elmentett plugin (sc. exe helloworld. SMA). .amx fájlkiterjesztés tárolja az aktuális könyvtárban.

Ha valami nem fordul le, ellenőrizze a helyesírást a dugó.

Továbbra is írni, az utolsó funkció - egy figyelmeztető üzenet jelenik meg a képernyőn. Mi már lefoglalt egy végrehajtandó parancsot a konzol üzenet jelenik meg a képernyőn is rögzíteni. Most, hogy hozzon létre egy függvényt, amely meg fog tenni mindent: nyilvános myFunction (id, szint, CID) <
if (! cmd_access (id, szint, CID, 1)) <
visszaút PLUGIN_HANDLED
>
>

Nem fogok festeni, hogy a funkció cmd_ hozzáférés (). Csak azt tudom mondani, hogy ellenőrzi, hogy az ügyfél használja ezt a parancsot.

Id használják különböző módon. A cmd_ hozzáférés () által id ellenőrzik a hozzáférés szintjét a felhasználótól folyású, és senki más. Remélem, ez érthető.

A következő sort: client_print (0, print_center "Hello world".)

.* Mi a kódsort, amely felelős a nyomtatást az ügyfél üzenetet. A lient_ nyomat a függvény nevét, amely három paramétert (hosszabb ideig is eltarthat, de más osztályokba). Az első paraméter (0) felelős, akinek a parancs jelenik meg. Ha fel az azonosító számát, a játékos, akkor az üzenet jelenik meg neki, és az Ön számára. Ebben az esetben lenne levezetni mind jelen vannak a szerver (halott vagy élő). Ie mikor kell csinálni az összes, vagy valami, hogy mindenki tudja, hogy kell használni a 0. A második paraméter meghatározza, hogy hol jelenik meg az üzenet. Tudod, hogy egy üzenetet a chat terület - print_ chat, vagy print_ értesíti - csak akkor jelenik meg a konzolon. És a harmadik lehetőség - maga az üzenet. Az a tény, hogy az idézőjelek az az üzenet, hogy lesz nyomtatva a képernyőn. Ne pazarolja az idézetek.

Majdnem írtam az első plugin. Továbbra is csak a hozzá a következő sort myFunction function (): visszatérés PLUGIN_HANDLED

.* Van egy fontos vonalon. Lehetetlen, hogy elveszíti. Ne feledje, ez az utolsó dolog, amit meg kell adni az összes funkciót, amelyek kiváltják a parancsok beírt a konzol a szerver vagy a kliens konzol. Ha nem, az AMX nem fogja tudni, hogy mi a parancs végrehajtásakor, egy üzenet jelenik meg a képernyőn, és a konzol jelenik meg a következő hibaüzenet: Ismeretlen parancs: amx_helloworld

Ezért mindig befejezzük a visszatérés PLUGIN_HANDLED funkciót.

Minden bővítmény a következőképpen néz ki: / *
Helló világ, v0.1
által JGHG
* /

nyilvános myFunction (id, szint, CID) <
if (! cmd_access (id, szint, CID, 1)) <
visszaút PLUGIN_HANDLED
>

nyilvános plugin_init () <
register_plugin ( "Hello világ", "0.1", "jghg")
register_clcmd ( "amx_helloworld", "myFunction" ADMIN _VOTE "kinyomtatja Hello world. mindenkinek")

Minden csatlakozó kész. Fordítsd le, és győződjön meg arról, nincs-e hiba fordításkor. Ha a fordítás során kapsz egy figyelmeztető üzenet, 217: laza behúzás, menj a jelzett helyre, és győződjön meg arról, hogy tovább mélyítheti ( „fül” - emlékszik ...) ugyanaz volt mindenütt a plugin.

Tper tud helloworld fájlt. AMX AMX mappát \ plugins, és regisztrálja a beépülő modult AMX \ config \ plugins. ini. Add a vonal helloworld. AMX, hogy a végén a bővítmények listáját. Most indítsuk el a szervert. Ha a szerver fut, akkor a parancsot, hogy indítsa újra a szerver konzolon. Együtt a kártya újraindul emlékeztetett plug-inek és az újonnan hozzáadott plug-in fogják használni AMX.

Most megy a játék, és felmászik amx_ helloworld és győződjön meg róla, hogy minden úgy tűnik, ahogy kellene. Ügyeljen arra, hogy amikor belép amx_ segítséget parancs leírása megfelel annak, amit használni. Ha a dugó nem működik, írja AMX plugin és ellenőrizze, hogy a dugó be van töltve a szerver konzolon. Talán elfelejtette, hogy regisztrálja magát admin.

Kapcsolódó cikkek