Jump to content
Sign in to follow this  
cossy.

Tutorial [-Scripting] Începutul oricărui plugin [2]

Recommended Posts

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 sa trecem 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 creea 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 "paperwings"
#define NUMAR 5
#define FORUM "EXTREAMCS"
#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 edita 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 el nu am putea sa facem nimic. Majoritatea publicurile 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.

 

Sa analizam publicul din exemplu:

public plugin_init ( )
plugin_init este unul din publicurile amxmodx, este al doilea public chemat cand serverul porneste/se da restart/mapa se schimba. Primul este plugin_precache,despre care vom vorbi in alt tutorial.  Vedem parantezele ( ) dupa numele publicului. Ele sunt headerul functiei/publicului,acolo se adauga paramurile pe care le foloseste publicul. plugin_init nu foloseste niciun param,deci nu trecem nimic.

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,paperwings.

register_plugin(PLUGIN, VERSION, AUTHOR)
register_plugin("Test", "0.0.1", "paperwings")
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

// Add your code here...
Un comentariu este un comentariu ( stiu ca nu prea are sens ce am zis,dar asta este). Se foloseste pentru a explica linia,codul,publicul respectiv. Am folosit si eu comentarile la partea a 2-a.

 

Comentariile sunt de 2 tipuri:

  •   
  • pe un rand
       
  • pe mai multe randuri randuri

//Acest plugin este un exemplu
*Comunitate rivala*

SAU:

/*
Acest plugin este un exemplu
*Comunitate rivala"
*/

Comentariile se pot sterge fara nicio problema,ele dispar in momentul compilarii.

NOTĂ: NU SUNT EU AUTORUL TUTORIALULUI.
Dar sper să vă ajute.

Share this post


Link to post
Share on other sites
Guest
This topic is now closed to further replies.
Sign in to follow this  

×