Inceputul de baza in crearea unui Plugin [AMXX]Inceputul de baza in crearea unui Plugin*Bine am vazut ca multa lume vrea sa invete cum se face un plugin ... si
m-am gandit sa va fac un tutorial bine sunt incepator ... deci nush
daca am facut tot ca la carte dar sper ca o sa intelegeti .
*Plugin-urile , dupa cum cred ca ati vazut deja (Daca v-ati uitat in
vreun .sma) , sunt alcatuite din public-uri si din stock-uri (Ceea ce
veti invata mai tarziu , deocamdata invatam public-uri) .
*Vom creea un fisier .txt , caruia ii modificam extensia in .sma . Sa
spunem ca am creat fisierul plugin.sma . Il deschidem cu notepad
(Puteti folosi si alte programe ajutatoare in scripting , dar nu
recomand ; este bine sa invatati asa) .
* Incepem prin niste include-uri
. Ce sunt acestea ? Sunt niste linii de comanda care arata amxmodx-ului
ce functii (utilitati) vor fi folosite in acest Plugin . Pentru inceput
, ii aratam ca vom folosi amxmodx :
Lista de
include-uri poate continua , dar deocamdata lasam asa . Veti invata mai tarziu si despre alte include-uri .
Apoi , intregistram Plugin-ul , printr-un public specific , numit
public plugin_init() . Deci , apasam un enter si adaugam :
{
}
*
Intre cele 2 paranteze ( { si } ) , vom adauga codul public-ului
respectiv . Aceste acolade reprezinta inceputul si sfarsitul unei
anumite parti / a intregului public . Mai tarziu vom invata si partea
cu mai multe parti ale unui public , dar deocamdata lasam asa . Intre
paranteze , adaugam
register_plugin("Numele Pluginului","versiunea","autorul") . Register_plugin este o functie a include-ului de mai sus (
amxmodx) , iar celelalte sunt argumentele . Vom avea :
public plugin_init()
{
register_plugin("nume", "versiune", "autor")
}
* Atentie ! Acel spatiu lasat de mine inaintea
register_plugin este absolut necesar pentru a functiona Plugin-ul corect ! Acel spatiu
NU va trebui sa-l lasati cu space , ci cu tasta
TAB . Deasemenea intr-un Plugin
NU va trebui sa folositi
DELOC tasta space (
Decat intre argumente) ! Inlocuim nume cu numele
Plugin-ului, versiune cu versiunea autor cu autorul Plugin-ului (Numele dvs) .
Atentie ! Lasam ghilimelele asa cum sunt ! Modificam doar cuvintele .
Tot in
plugin_init , vom putea sa mai inregistram si niste comenzi . Vom inregistra una . Functia este urmatoarea :
Cod: |
register_concmd("comanda","public",accesul de admin,"Mesaj care apare cand dai amx_help")
|
La
"accesul de admin" , putem pune :
Cod:
ADMIN_RESERVATION
ADMIN_IMMUNITY
ADMIN_KICK
ADMIN_BAN
ADMIN_SLAY
ADMIN_MAP
ADMIN_CVAR
ADMIN_CFG
ADMIN_CHAT
ADMIN_VOTE
ADMIN_PASSWORD
ADMIN_RCON
ADMIN_LEVEL_A
ADMIN_LEVEL_B
ADMIN_LEVEL_C
ADMIN_LEVEL_D
ADMIN_LEVEL_E
ADMIN_LEVEL_F
ADMIN_LEVEL_G
ADMIN_LEVEL_H
Deci , adaugam in
.sma :
Cod: |
register_concmd("amx_ss","admin_ss",ADMIN_LEVEL_C,"Take a snapshot to selected player")
|
La comanda amx_ss , se va executa public-ul admin_ss , doar daca are adminul care executa comanda litera "C" in acces .
* Ok , acum sa facem public-ul .
Adaugam :
{
}
* Dupa cum vedeti , am adaugat un
id in acest public . Acest id reprezinta index-ul pe care va fi executata comanda .
Intre
{ si
}, va trebui sa adaugam code-ul public-ului . De obicei este o combinatie
intre niste functii aici . De exemplu , daca vrem sa ii facem un
snapshot unui Player , vom adauga intre
{ si
} urmatoarea functie :
Cod: |
client_cmd(id, "snapshot")
|
Client_cmd reprezinta functia pentru executare a unei comenzi asupra unui client , iar
id reprezinta cui sa executi comanda .
Snapshot reprezinta comanda .
Adaugam niste tab-uri ca sa fie ordonat bine code-ul . Ok , pana acum ar trebui sa avem urmatoarele :
Cod: |
#include
public plugin_init()
{
register_plugin("nume", "versiune", "autor")
register_concmd("amx_ss","admin_ss",ADMIN_LEVEL_C,"It takes a snapshot to the specified Player .")
}
public admin_ss(id)
{
client_cmd(id, "snapshot")
}
|
* Salvam fisierul , apoi il compilam
AiCi!, dupa care il punem pe Server . La executarea comenzii
amx_ss , i se va face un snapshot Player-ului specificat .
Ei , cam asta a fost . Daca ati urmat toti pasii de mai sus FELICITARI ! Tocmai ati facut primul dvs Plugin . La mai multe .