Jump to content

[Tutorial] Inceputul unui plugin


Recommended Posts

Posted

Acesta este al doilea tutorial care ne ajuta sa punem bazele unui plugin. Tutorialul a fost selectat de pe un forum de counter-strike random, urmand ca acesta sa fie corectat prin unele locuri de catre mine.

 

AMXX Studio genereaza codul de inceput pentru orice plugin:

 

/* Plugin generated by AMXX-Studio */

#include <amxmodx>

#define PLUGIN "New Plug-In"
#define VERSION "1.0"
#define AUTHOR "author"


public plugin_init() {
    register_plugin(PLUGIN, VERSION, AUTHOR)
    
    
// Add your code here...
}

 

 

Inainte de a trece mai departe, trebuie sa stim ce reprezinta liniile de mai sus.

 

1. #include < librarie >

 
Face exact ce spune si numele, include fisierul respectiv. O librarie este o colectie de functii.
Pentru a putea crea un plugin avem nevoie de anumite native/forwarduri(functii) pe care sa le folosim. Ele sa gasesc in fisierele inc din addons/amxmodx/scripting/include/
Ele pot sa provina din module sau din alte pluginuri.
Nu este nimic gresit daca folositi librarie.inc sau doar librarie.
 
2. #define TEXT VALOARE
 
Cu ajutorul directivei define putem sa declaram o noua constanta simbolica, sau mai simplu definim ceva. In propozitia "Cainele este un animal" am definit cainele ca fiind animal, cam asta face si atribuirea de mai sus...
 
#define AUTOR "Nume"
#define NUMAR 5
#define FORUM "FAIRSIDE"
#define CEVA "ALTCEVA"
 
In pluginul de mai sus:
 
#define PLUGIN "New Plug-In" //am definit PLUGIN cu valoarea New Plug-in
#define VERSION "1.0" //am definit VERSION cu valoarea 1.0
#define AUTHOR "author" //am definit AUTHOR cu valoarea author
 
In fiecare loc in care utilizam constanta simbolica, ea este inlocuita(in timpul compilarii) de valoarea ei, deci folosind #define sau scriind direct valoarea nu este nicio diferenta, doar ne ajuta(in unele cazuri) sa tinem totul organizat sau sa editam mai usor anumite linii.
 
#define VALOARE 5
new a = 5 new a = VALOARE
new b = 5 new b = VALOARE
new c = 5 new c = VALOARE
new d = 5 new d = VALOARE
 
Vedeti ca este mult mai simplu sa schimbam in #define VALOARE din 5 in altceva, decat sa schimbam in new a, new b, new c, new d. In momentul compilarii ele devin echivalente.
 
3. public nume
 
In orice plugin lucram cu publicuri(exista si functii private, stockuri, dar asta vom discuta mai tarziu). Ele ne ajuta sa ne tinem codul organizat + ca fara ele nu am putea sa facem nimic. Majoritatea publicurilor trebuie chemate de anumite functii/forwarduri/native sau din alte publicuri. Insa, exista cateva publicuri default de care are grija amxmodx si pe care noi nu trebuie sa le definim in vreun fel.
 
4.register_plugin(PLUGIN, VERSION, AUTHOR)
 
Inregistreaza pluginul, cand dati amx_plugins sau amxx list veti vedea autorul, versiunea si numele pluginului.
 
Urmatoarele linii sunt echivalente(considerand ca am definit plugin, version, author cu test, 0.0.1, nume..

 

register_plugin(PLUGIN, VERSION, AUTHOR)
register_plugin("Test", "0.0.1", "nume")

 

Aici vorbesc despre metoda, pentru compiler nu este nicio diferenta.

 

5. Acoladele { }

 

Marcheaza locul unde incepe si unde se termina un plugin, v-as recomanda sa le puneti la inceput de rand( arata mai ordonat ).

 

public plugin_init ( )

{


}

 

6. Comentariile

 

Comentariile sunt de 2 tipuri:

  •  pe un rand
  •  pe mai multe randuri randuri 

//Acest plugin este un exemplu

//Comunitatea FAIRSIDE.RO
 
SAU:
 
/*
Acest plugin este un exemplu
Comunitatea FAIRSIDE.RO
*/ 
Guest
This topic is now closed to further replies.
×
×
  • Create New...