Jump to content

Toggle %s Deathrow Romania Counter-Strike:Global Offensive

www.Deathrow.ro - Forum - ONLINE [DM+FFA] DM.DeathRow.ro - ONLINE [DM+FFA HS Only] HS.DeathRow.ro - ONLINE [Retakes] Retake.DeathRow.ro - ONLINE [Retakes] Retake2.DeathRow.ro - ONLINE [Surf] Surf.DeathRow.ro - ONLINE


Photo

[CS16-Scripting] Inceputul oricarui plugin.


  • Please log in to reply
1 reply to this topic

#1
Andrei;

Andrei;

    Administrator

  • Administrator
  • 3185 posts
  • 396 topics
  • Joined 16-December 12
  • Country: Country Flag

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 "ARTICK"
#define NUMAR 5
#define FORUM "CS16"
#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,artick.

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

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
//Comunitatea CS16.RO

SAU:

/*
Acest plugin este un exemplu
Comunitatea CS16.RO
*/ 

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

 

In cazul in care nu ati inteles ceva,astept intrebari.

 

Astept intrebari.

 


Edited by Artick ;, 28 July 2014 - 06:37 PM.

  • TYGA, nExow, rAr ; and 3 others like this

#2
D3luxe

D3luxe

    Advanced Member

  • Membru
  • 179 posts
  • 22 topics
  • Joined 28-June 14
  • Country: Country Flag
Bravo, mulţumesc pentru tutorial .Pana acum am studiat doar html,am sa incerc sa vad daca reusesc sa fac ceva.
  • Andrei; likes this




0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users