Aflați pentru a face plugin-uri pentru servere CS - make-amxserv - portal de jocuri

Din acest manual veți învăța cum să creați plugin-uri (plugins) pentru serverul de Counter-Strike. Vei învăța elementele de bază ale acestui.
Acest plugin este scris de HL moda - Strike Contragarantare. Ia act de acest lucru.

Să începem scris primul plug-in.

Să începem cu un simplu: mesaje de afișare.

Am venit cu o echipa care va face:
HelloWorld amx_,
amx_ salut
sau chiar un salut

Este necesar ca administratorul ar putea fi atunci când vrea să, introduceți comanda corespunzătoare și a afișa această inscripție:
Bună ziua lume,
alo
sau chiar „hi all“

Trebuie să fii instalat AmxMod și, prin urmare, ar trebui să fie serverul pe care se află.
Nu voi explica cum să instalați și să configurați AmxMod pe server, deoarece este foarte bine descrisă în documentația pentru AMXMod'u.

Gata? Ei bine, apoi începe!

Orice plug-in trebuie să aibă plugin_ funcția de inițializare ().
Tot ceea ce este introdus în funcția dată va fi înregistrată în AMX, pe care le-ar putea folosi plugin-ul:
plugin_init publică () register_plugin ( "Hello World", "0.1", "viateam.ru")
>

Dar acest lucru nu este suficient pentru scopul nostru. Trebuie să fie o echipă care va fi capabil de a utiliza admin și pentru aceasta au nevoie de noi să-l înregistreze în funcția de inițializare plugin_ (). Comenzile sunt introduse în consola de server sau de la client trebuie să fie în init plugin_ (), astfel încât ar fi în măsură să se bucure. plugin_ init () este important pentru multe alte motive, pe care le veți învăța din lecțiile de mai târziu. Funcția de inițializare plugin_ () este ca un mesaj la AmxMod, acolo plugin.

register_clcmd ( "amx_helloworld", "myFunction", ADMIN_VOTE "tipărește Hello World".)

Astfel, init funcția plugin_ () arata ca acest lucru:
plugin_init publică () register_plugin ( "Hello World", "0.1", "viateam.ru")
register_clcmd ( "amx_helloworld", "myFunction", ADMIN _VOTE "spune Hello World".)
>


Păstrați indentare, și anume Utilizați „tab-ul“ sau, de exemplu, lacune în funcțiile de scriere. Deschideți orice. fișier sma furnizat împreună cu AMX, și veți înțelege ce vreau să spun. Acest lucru va simplifica compilarea și plugin-ul va fi compilat mai eficient. Așa cum va facilita studiul pluginul altor dezvoltatori. Mult mai ușor de înțeles codul structurat decât într-un bordel. Există încă motive bune, dar eu nu voi intra în ele.

Adăugați datele de linie. Ele trebuie să fie prezente în plugin:
#include
#include

Am scris deja destul de mult. Ar trebui să fie similară cu aceasta aici:
/ *
Bună ziua lume, v0.1
de viateam.ru
* /

plugin_init publică () register_plugin ( "Hello World", "0.1", "viateam.ru")
register_clcmd ( "amx_helloworld", "myFunction", ADMIN _VOTE "spune Bună ziua lume. la joc ecran")
>


Păstrați-vă întotdeauna în scris. Cine știe când energia electrică este oprită. Încercați să compila plugin-ul. Dacă există erori, ele sunt acum mai ușor de găsit. Acest lucru simplifică foarte mult de depanare. (Cum de a compila plugin?)

Rămâne să scrie ultima funcție - un mesaj de avertizare pe ecran. Ne-am rezervat o comandă pentru a fi executat în mesajul consola afișată pe ecran este, de asemenea, înregistrate. Acum trebuie să creați o funcție care va face totul:
myFunction publică (id, nivel, cid) if (! cmd_access (id, nivel, cid, 1)) întoarcere PLUGIN_HANDLED
>
>


Eu nu am de gând să picteze modul în care funcționează cmd_access funcția (). Pot spune doar că verifică dacă clientul poate utiliza această comandă.

Id-ul este utilizat în diferite moduri. În acces cmd_ () prin ID-ul este verificat nivelul de acces acestui utilizator care curge, și nimeni altcineva. Sper că acest lucru este de înțeles.

Următoarea linie de cod:
client_print (0, print_center, "Hello World".)


Aceasta este linia de cod care este responsabil pentru tipărirea din mesajul clientului. slient_ de imprimare este numele unei funcții care ia trei parametri (poate dura mai mult, dar că, în alte clase). Primul parametru (0) este responsabil pentru care va fi afișată comanda. Dacă introduceți numărul de identificare al playerului, mesajul va fi afișat pentru el și pentru tine. În acest caz, ar fi derivate pentru toate prezente pe server (mort sau viu). Ie atunci când trebuie să faci cu toate ceva sau să știe toată lumea că este necesar să se utilizeze un 0. Al doilea parametru specifică în cazul în care pentru a afișa mesajul. Puteți pune un mesaj în zona de chat - chat-print_ sau print_ notifică - vor fi afișate în consolă. Și a treia opțiune - mesajul în sine. Faptul că, în cadrul ghilimelele este mesajul care va fi imprimat pe ecran. Nu pierde ghilimele tale.

Aproape că am scris primul nostru plug-in. Rămâne doar să adăugați următoarea linie în funcția
myFunction (): întoarcere PLUGIN_HANDLED

Aceasta este o linie importantă. Este imposibil să-și piardă. Amintiți-vă, acesta este ultimul lucru pe care trebuie să adăugați toate funcțiile care invocă comenzile introduse în consola de server sau de pe consola de client. Dacă nu, AMX nu va ști ce se execută comanda, un mesaj va fi afișat pe ecran, iar următoarea eroare apare în consolă:
Comandă necunoscută: amx_helloworld


Prin urmare, se termină întotdeauna o funcție de întoarcere PLUGIN_HANDLED.

Toate plugin-ul nostru arata ca acest lucru:
/ *
Bună ziua lume, v0.1
de viateam.ru
* /

myFunction publică (id, nivel, cid) if (! cmd_access (id, nivel, cid, 1)) întoarcere PLUGIN_HANDLED
>

plugin_init publică () register_plugin ( "Hello World", "0.1", "viateam.ru")
register_clcmd ( "amx_helloworld", "myFunction", ADMIN _VOTE "tipărește Bună ziua lume. pentru toată lumea")


Toate ștecherul este gata. Compilați-l și asigurați-vă că nu există erori la compilare.
Dacă în timpul compilării primiți mesajul
avertisment 217: indentare vrac,

du-te la linia specificată și asigurați-vă că ar adânci ( „tab“ - amintiți-vă ...) a fost la fel peste tot în plugin.

myplugin.amx poate pune acum fișierul în dosarul plugin-uri și înregistrați-plug-in config / plugins.ini. Nu uitați să reporniți server.

Acum te duci la joc și monta amx_helloworld și asigurați-vă că totul apare așa cum trebuie.
Asigurați-vă că atunci când tastați descrierea comenzii amx_help este în concordanță cu ceea ce am folosit.
Dacă fișa nu funcționează, de tip AMX plugin-uri și asigurați-vă că plugin-ul este încărcat la consola de server.
Poate că a uitat să se înregistreze admin.


Vă mulțumesc pentru a asculta mine