[Tutorial] Inceput
Pagina 1 din 1
[Tutorial] Inceput
**************************************************
**************************************************
AUTOR : ANNAKIN
IMPORTANT DE STIUT :
-
In Pawn / amxx se foloseste in cele mai multe cazuri "{" (acolade);
intre acolade se pun mai multe functii dorite. Daca aveti doar o
functie acoladele nu mai sunt necesare. Pentru citirea mai usoara, dupa
o acolada se va pune un spatiu folosind tasta TAB.
- Un plugin este format din public-uri si stock-uri:
public - poate fi folosit doar in pluginul respectiv[/*]
stock - poate fi folosit si in alte pluginuri; se pune de obicei intr-un fisier in amxmodx/scripting/include[/*]
Pentru inceput invatam public-uri
- La sfaristul unei linii, declarari se pune de obicei caracterul ;
- Se pot adauga si comentarii care nu afecteaza compilarea pluginului
Pt. comentariu de linie : // comentariu[/*]
2. Pt. comentarii mai lungi sau taiere de linie : /*comentariu*/[/*]
**************************************************
**************************************************
1.Totul incepe prin includerea fisierelor care contin functii, necesare pentru a crea pluginul.
Forma generala:
Code:
#include <fisier>
Fisierele sunt citite din amxmodx/scripting/include
In cazul nostru vom facem un plugin pentru amxmodx.Deci vom scrie asa:
Code:
#include <amxmodx>
Mai
jos vom face un plugin care executa o comanda asupra unui jucator.Acest
fisier contine functii utile, care ne vor ajuta in plugin:
Code:
#include <amxmisc>
Mai sunt si alte includuri pentru pluginuri mai complexe.Deocamdata lasam asa.
2. Apoi urmeaza faza de inregistrare a pluginului.Aceasta se face in felul urmator:
- public-ul este plugin_init :
Code:
public plugin_init()
{
}
- inregistrarea se face in felul urmator:
Code:
register_plugin("nume plugin","versiune","autor");
Si am obtinut:
Code:
public plugin_init()
{
register_plugin("nume plugin","versiune","autor");
}
3.
Urmatoarea faza este construirea comenzilor(de exemplu vreti sa faceti
o comanda amx_retry prin care sa reconectati un jucator dorit)
Vom scrie asa in register plugin_init() mai jos de
Forma generala:
Code:
register_concmd("comanda","public",acces,"comentariu (optional)");
* comanda -> comanda voastra : amx_retry
* public -> puneti ce vreti,este un public(pote fi scris orice,care va fi folosit mai jos)
* accessul
-> un admin trebuie sa aiba accesul specificat pentru a putea folosi
comanda . Acesta ese sub forma: ADMIN_SLAY,ADMIN_KICK,ADMIN_BAN,etc..
* comenatariu -> este clar (va aparea in consola cand dati amx_help)
In cazul nostru va arata asa :
Code:
register_concmd("amx_retry","retry_cmd",ADMIN_KICK,"- reconnect a player")
4. Urmatorul pas este publicul(cel care lati pus la register_concmd)
In cazul nostru va fi asa:
Code:
public retry_cmd(id,level,cid)
* id - este "index"-ul...puteti pune ce vreti,dar de preferat este sa lasati asa,sa nu va incurcati,deoarece va fi folosit mai jos
* level,cid - corespund comenzii create...ne vor ajuta sa verificam daca jucatorul are acces la comanda.
5. In continuare,in public,vom folosi o functia care "se va asigura" ca nu oricine poate folosi comanda creeata.
Forma generala:
Code:
cmd_access(id,level,cid,num)
* num
- numarul argumentelor din consola, primul fiind comanda. Deci, in
cazul nostru vom avea num-ul 2, deoarece comanda este amx_retry jucator.
Deci, vom avea asa:
if(!cmd_access(id,level,cid,2))
* if - 'daca'...este o functie care verifica cea ce ati scris, si 'vede' daca este asa.
* ! - opusul comenzii, deci daca nu are acces
Acum ca am verificat daca jucatorul are sau nu acces la comanda, blocam operatia:
Code:
return PLUGIN_HANDLED
- "block further operation" - blocheaza operatia
- return - valoare de 'intoarcere'
Si am obtinut:
Code:
if(!cmd_access(id,level,cid,2))
return PLUGIN_HANDLED;
Alta valoare de intoarcere:
Code:
return PLUGIN_CONTINUE
- "continue with normal operation" - continua cu operatia normala
6. Urmeaza citirea argumentelor din consola :
Code:
new arg[32]*
new - este inceputul unei variabile prin care creati ce vreti
*
32 - se numeste "len" sau "length".Este un numar ce trebuie pun unelor
variabile intre [] pentru stabilirea "lungimi" sirului de elemente. In
cazul numelui este 31, in variabila se pune cu 1 in plus, deoarece se
incepe de la 0.
Argumentul se citeste prin comanda :
read_argv(num,arg,len)
* num - al catelea argument din consola
* arg - variabila care va fi folosita mai departe
* len - lungimea sirului de caractere
Si avem:
Code:
read_argv(1,arg,31)
- va citi primu argument scris dupa comanda.
Sunt 3 tipuri de citire a argumentelor
*read_argv - citeste un singur argument
*read_args - citeste toate argumentele dintr-o linie
*read_argc - citeste numarul de argumente dintr-o linie
7. In continuare se creeaza o variabila la alegere care va fi egalata cu o functie.Sa zicem "player" :
new player = cmd_target(id,arg,flag)
*cmd_target - functie necesara pentru a executa o comanda asupra unui jucator
*arg - argumentul din consola
*flag - este un numar :
Code:
1 - evita imunitatea
2 - poti executa asupra ta
4 - trebuie sa fie in viata
8 - nu poate fi bot
Daca
tu vrei 2 "optiuni" flagurile se aduna...sa zicem sa evite imunitatea
si sa nu poate fi bot in acelasi timp,deci vom avea asa :
new player = cmd_target(id,arg,9)
8. Apoi verificam daca jucatorul specificat in consola exista :
if(!player)
return PLUGIN_HANDLED9
Si la final, comanda :
client_cmd(index,"comanda")
*index - asupra carui jucator se executa comanda
*comanda - comanda ce va fi trimisa in consola jucatorului si executata in acelasi timp.
Deci vom avea asa :
client_cmd(player,"reconnect")
10. Daca vreti sa trimiteti un mesaj jucatorilor.
Forma generala:
client_print(index,type,"mesaj");
* index - cui i se trimite mesajul, 0 - toti jucatorii
* type - unde este trimis:
Code:
print_chat -> mesajul este afisat in chat
print_console -> mesajul este afisat in consola
print_center -> mesajul este afisat in centru ecranului
print_notify -> mesajul este afisat in consola putin diferit
Si avem:
Code:
client_print(0,print_chat,"Un jucator a fost reconectat!");
Daca vreti sa trimiteti si numele adminului respectiv al jucatorului, trebuie mai intai sa aflam numele acestora.
Forma generala:
Code:
new variabila[len];
get_user_name(index,variabila,len-1);
Deci, avem asa....vom crea 2 variabila, una pentru admin si alta pentru jucator:
Code:
new adminname[32],playername[32];
get_user_name(id,adminname,31); // pentru admin
get_user_name(player,playername,31); // pentru jucator
Apoi, trebuie sa stiti ca:
%s - string,sir de caractere
%d, %i - 'decimal integer' -- pentru numere
%c - caracter, pentru un singur caracter, litera,etc...
Deci noi vom folosi %s:
client_print(0,print_chat,"Admin %s: l-a reconectat pe %s",adminname,playername);
- tot ce este la sfarsit, dupa , sunt informatii ce vor fi introduse in mesaj, inlocuid %s,%d,etc...
Si apoi valuare de intoarcere de final,in cazul nostru :
Code:
return PLUGIN_HANDLED;
Daca ati urmarit pasi de mai sus ar trebui sa aveti ceva de genu :
Code:
/*This plugin was made by An[n]akin <3 H.s !
* With this plugin you will able to reconnect a specified player !
* Command : amx_retry player
* Have Fun !
*/
#include <amxmodx>
#include <amxmisc>
public plugin_init()
{
register_plugin("Reconnect Player","1.0","anakin_cstrike");
register_concmd("amx_retry","retry_cmd",ADMIN_KICK,"- <jucator>");
}
public retry_cmd(id,level,cid)
{
if(!cmd_access(id,level,cid,2))
return PLUGIN_HANDLED;
new arg[32];
read_argv(1,arg,31);
new player = cmd_target(id,arg,9);
if(!player) return PLUGIN_HANDLED;
new adminname[32],playername[32];
get_user_name(id,adminname,31);
get_user_name(player,playername,31);
client_cmd(player,"reconnect"); // aceasta este comanda
client_print(0,print_chat,"Admin %s: l-a reconectat pe %s",adminname,playername);
return PLUGIN_HANDLED;
**************************************************
AUTOR : ANNAKIN
IMPORTANT DE STIUT :
-
In Pawn / amxx se foloseste in cele mai multe cazuri "{" (acolade);
intre acolade se pun mai multe functii dorite. Daca aveti doar o
functie acoladele nu mai sunt necesare. Pentru citirea mai usoara, dupa
o acolada se va pune un spatiu folosind tasta TAB.
- Un plugin este format din public-uri si stock-uri:
public - poate fi folosit doar in pluginul respectiv[/*]
stock - poate fi folosit si in alte pluginuri; se pune de obicei intr-un fisier in amxmodx/scripting/include[/*]
Pentru inceput invatam public-uri
- La sfaristul unei linii, declarari se pune de obicei caracterul ;
- Se pot adauga si comentarii care nu afecteaza compilarea pluginului
Pt. comentariu de linie : // comentariu[/*]
2. Pt. comentarii mai lungi sau taiere de linie : /*comentariu*/[/*]
**************************************************
**************************************************
1.Totul incepe prin includerea fisierelor care contin functii, necesare pentru a crea pluginul.
Forma generala:
Code:
#include <fisier>
Fisierele sunt citite din amxmodx/scripting/include
In cazul nostru vom facem un plugin pentru amxmodx.Deci vom scrie asa:
Code:
#include <amxmodx>
Mai
jos vom face un plugin care executa o comanda asupra unui jucator.Acest
fisier contine functii utile, care ne vor ajuta in plugin:
Code:
#include <amxmisc>
Mai sunt si alte includuri pentru pluginuri mai complexe.Deocamdata lasam asa.
2. Apoi urmeaza faza de inregistrare a pluginului.Aceasta se face in felul urmator:
- public-ul este plugin_init :
Code:
public plugin_init()
{
}
- inregistrarea se face in felul urmator:
Code:
register_plugin("nume plugin","versiune","autor");
Si am obtinut:
Code:
public plugin_init()
{
register_plugin("nume plugin","versiune","autor");
}
3.
Urmatoarea faza este construirea comenzilor(de exemplu vreti sa faceti
o comanda amx_retry prin care sa reconectati un jucator dorit)
Vom scrie asa in register plugin_init() mai jos de
Forma generala:
Code:
register_concmd("comanda","public",acces,"comentariu (optional)");
* comanda -> comanda voastra : amx_retry
* public -> puneti ce vreti,este un public(pote fi scris orice,care va fi folosit mai jos)
* accessul
-> un admin trebuie sa aiba accesul specificat pentru a putea folosi
comanda . Acesta ese sub forma: ADMIN_SLAY,ADMIN_KICK,ADMIN_BAN,etc..
* comenatariu -> este clar (va aparea in consola cand dati amx_help)
In cazul nostru va arata asa :
Code:
register_concmd("amx_retry","retry_cmd",ADMIN_KICK,"- reconnect a player")
4. Urmatorul pas este publicul(cel care lati pus la register_concmd)
In cazul nostru va fi asa:
Code:
public retry_cmd(id,level,cid)
* id - este "index"-ul...puteti pune ce vreti,dar de preferat este sa lasati asa,sa nu va incurcati,deoarece va fi folosit mai jos
* level,cid - corespund comenzii create...ne vor ajuta sa verificam daca jucatorul are acces la comanda.
5. In continuare,in public,vom folosi o functia care "se va asigura" ca nu oricine poate folosi comanda creeata.
Forma generala:
Code:
cmd_access(id,level,cid,num)
* num
- numarul argumentelor din consola, primul fiind comanda. Deci, in
cazul nostru vom avea num-ul 2, deoarece comanda este amx_retry jucator.
Deci, vom avea asa:
if(!cmd_access(id,level,cid,2))
* if - 'daca'...este o functie care verifica cea ce ati scris, si 'vede' daca este asa.
* ! - opusul comenzii, deci daca nu are acces
Acum ca am verificat daca jucatorul are sau nu acces la comanda, blocam operatia:
Code:
return PLUGIN_HANDLED
- "block further operation" - blocheaza operatia
- return - valoare de 'intoarcere'
Si am obtinut:
Code:
if(!cmd_access(id,level,cid,2))
return PLUGIN_HANDLED;
Alta valoare de intoarcere:
Code:
return PLUGIN_CONTINUE
- "continue with normal operation" - continua cu operatia normala
6. Urmeaza citirea argumentelor din consola :
Code:
new arg[32]*
new - este inceputul unei variabile prin care creati ce vreti
*
32 - se numeste "len" sau "length".Este un numar ce trebuie pun unelor
variabile intre [] pentru stabilirea "lungimi" sirului de elemente. In
cazul numelui este 31, in variabila se pune cu 1 in plus, deoarece se
incepe de la 0.
Argumentul se citeste prin comanda :
read_argv(num,arg,len)
* num - al catelea argument din consola
* arg - variabila care va fi folosita mai departe
* len - lungimea sirului de caractere
Si avem:
Code:
read_argv(1,arg,31)
- va citi primu argument scris dupa comanda.
Sunt 3 tipuri de citire a argumentelor
*read_argv - citeste un singur argument
*read_args - citeste toate argumentele dintr-o linie
*read_argc - citeste numarul de argumente dintr-o linie
7. In continuare se creeaza o variabila la alegere care va fi egalata cu o functie.Sa zicem "player" :
new player = cmd_target(id,arg,flag)
*cmd_target - functie necesara pentru a executa o comanda asupra unui jucator
*arg - argumentul din consola
*flag - este un numar :
Code:
1 - evita imunitatea
2 - poti executa asupra ta
4 - trebuie sa fie in viata
8 - nu poate fi bot
Daca
tu vrei 2 "optiuni" flagurile se aduna...sa zicem sa evite imunitatea
si sa nu poate fi bot in acelasi timp,deci vom avea asa :
new player = cmd_target(id,arg,9)
8. Apoi verificam daca jucatorul specificat in consola exista :
if(!player)
return PLUGIN_HANDLED9
Si la final, comanda :
client_cmd(index,"comanda")
*index - asupra carui jucator se executa comanda
*comanda - comanda ce va fi trimisa in consola jucatorului si executata in acelasi timp.
Deci vom avea asa :
client_cmd(player,"reconnect")
10. Daca vreti sa trimiteti un mesaj jucatorilor.
Forma generala:
client_print(index,type,"mesaj");
* index - cui i se trimite mesajul, 0 - toti jucatorii
* type - unde este trimis:
Code:
print_chat -> mesajul este afisat in chat
print_console -> mesajul este afisat in consola
print_center -> mesajul este afisat in centru ecranului
print_notify -> mesajul este afisat in consola putin diferit
Si avem:
Code:
client_print(0,print_chat,"Un jucator a fost reconectat!");
Daca vreti sa trimiteti si numele adminului respectiv al jucatorului, trebuie mai intai sa aflam numele acestora.
Forma generala:
Code:
new variabila[len];
get_user_name(index,variabila,len-1);
Deci, avem asa....vom crea 2 variabila, una pentru admin si alta pentru jucator:
Code:
new adminname[32],playername[32];
get_user_name(id,adminname,31); // pentru admin
get_user_name(player,playername,31); // pentru jucator
Apoi, trebuie sa stiti ca:
%s - string,sir de caractere
%d, %i - 'decimal integer' -- pentru numere
%c - caracter, pentru un singur caracter, litera,etc...
Deci noi vom folosi %s:
client_print(0,print_chat,"Admin %s: l-a reconectat pe %s",adminname,playername);
- tot ce este la sfarsit, dupa , sunt informatii ce vor fi introduse in mesaj, inlocuid %s,%d,etc...
Si apoi valuare de intoarcere de final,in cazul nostru :
Code:
return PLUGIN_HANDLED;
Daca ati urmarit pasi de mai sus ar trebui sa aveti ceva de genu :
Code:
/*This plugin was made by An[n]akin <3 H.s !
* With this plugin you will able to reconnect a specified player !
* Command : amx_retry player
* Have Fun !
*/
#include <amxmodx>
#include <amxmisc>
public plugin_init()
{
register_plugin("Reconnect Player","1.0","anakin_cstrike");
register_concmd("amx_retry","retry_cmd",ADMIN_KICK,"- <jucator>");
}
public retry_cmd(id,level,cid)
{
if(!cmd_access(id,level,cid,2))
return PLUGIN_HANDLED;
new arg[32];
read_argv(1,arg,31);
new player = cmd_target(id,arg,9);
if(!player) return PLUGIN_HANDLED;
new adminname[32],playername[32];
get_user_name(id,adminname,31);
get_user_name(player,playername,31);
client_cmd(player,"reconnect"); // aceasta este comanda
client_print(0,print_chat,"Admin %s: l-a reconectat pe %s",adminname,playername);
return PLUGIN_HANDLED;
-RaZoR-- Admin
- Mesaje : 212
Data de inscriere : 28/08/2009
Pagina 1 din 1
Permisiunile acestui forum:
Nu puteti raspunde la subiectele acestui forum
|
|
Mier Aug 03, 2011 2:24 am Scris de Vizitator
» iceland fish oil
Mar Aug 02, 2011 9:33 pm Scris de Vizitator
» гинекология круглосуточно
Lun Aug 01, 2011 8:42 am Scris de Vizitator
» generic cialis online
Vin Iul 29, 2011 4:49 am Scris de Vizitator
» Продвижение неизбежно
Dum Iul 24, 2011 3:01 pm Scris de Vizitator
» Interviul meu:P
Dum Dec 20, 2009 7:01 pm Scris de -W.o.G- Bershka
» Admin..daca se poate
Dum Dec 20, 2009 6:54 pm Scris de -W.o.G- Bershka
» sa imi fie scos banul
Sam Noi 28, 2009 7:28 pm Scris de Vizitator
» slot cs1.6
Sam Noi 21, 2009 4:40 pm Scris de rata