Tutorial scripting [AMXX]
:: Diverse :: Counter Strike 1.6 :: Tutoriale
Pagina 1 din 1
Tutorial scripting [AMXX]
]Salut!Mi-a venit ideea de a face un tutorial pentru a ii invata pe cei dornici sa "scripteze".Probabil nu sunt in masura sa fac acest tutorial pentru ca pe acest forum exista scripteri foarte buni dar totusi o sa incerc.
[size=150]1. INCLUDEREA FISIERELOR[/size]
Includerea fisierelor se realizeaza prin 2 cai:
Folosind a doua cale , fisierul este cautat in directorul curent , apoi in cele standard(In cazul AMXX directorul curent este scripting).Aceasta forma
Atunci cand facem un plugin AMXX , va trebui sa includem mereu amxmodx:
[size=150]2. CONSTANTE SIMBOLICE[/size]
Definirea constantelor simbolice se face astfel:
Scopul acestora este de a usura editarea surselor.
Exemplu:
[size=150]3. PRINTAREA MESAJELOR[/size]
Exista patru tipuri de mesaje: mesaje hud , mesaje in chat , mesaje in consola si mesaje centrate.
[size=150]3.1. MESAJE HUD[/size]
Printarea mesajelor hud se face prin intermediul:
Float:x , Float:y reprezinta pozitia mesajului.
effects reprezinta efectele mesajului:
Float:holdtime reprezinta cat timp apare mesajul pe ecran.
channel reprezinta canalul pe care este trimis mesajul.Exista 4 canale per jucator.
Uitati aici un exemplu:
message[] reprezinta mesajul ce va fi afisat
Exemplu:
[size=150]4. FOLOSIREA CONSTANTELOR SIMBOLICE[/size]
Pentru ca NUMELE_CONSTANTEI sa ia valoarea VALOAREA_CONSTANTEI trebuie sa efectuam niste modificari in sursa.
Am definit mai sus o constanta numita COMUNITATE cu valoarea eXtreamCS.
Mai jos avem o linie de cod ce printeaza un mesaj in chat:
[size=150]5. COMPILAREA CU CONDITII[/size]
Compilarea cu conditii permite includerea/excluderea unor portiuni din sursa in functie de conditiile puse.
Aceasta se face astfel:
[size=150]6. COMENTARII IN SURSA[/size]
Comentariile din sursa sunt foarte folositoare deoarece putem explica ce am facut prin niste linii de cod.Exista doua moduri prin care puteam sa facem comentarii:
A doua forma este recomandata deoarece la inceputul comentariului se pune /* iar la sfarsit se pune */
Avantajul este ca nu mai trebuie sa puneti simbolurile in fata fiecarui rand!
ATENTIE: Comentariile din sursa nu sunt compilate
[size=150]7. INREGISTRAREA PLUGINULUI[/size]
Inregistrarea pluginului se foloseste pentru a printa informatii despre plugin(Numele pluginului , Versiune , Autor).
Se face astfel:
[size=150]8. INREGISTRAREA COMENZILOR[/size]
Inregistrarea comenzilor se foloseste pentru a executa anumite linii de cod pe jucatorii care folosesc acele comenzi.
De exemplu:
[size=150]9. INREGISTRAREA COMENZILOR DE ADMIN[/size]
Inregistrarea comenzilor de admin se foloseste pentru a executa anumite linii de cod pe jucatorii pe care au fost folosite acele comenzi.Vom inregistra comanda amx_kill care omoara jucatorul pe care este folosita comanda.
In public plugin_init adaugam:
Autor: KronoS
Voi mai completa!
[size=150]1. INCLUDEREA FISIERELOR[/size]
Includerea fisierelor se realizeaza prin 2 cai:
- Cod:
#include <fisierul>
- Cod:
#include "fisierul"
Folosind a doua cale , fisierul este cautat in directorul curent , apoi in cele standard(In cazul AMXX directorul curent este scripting).Aceasta forma
Atunci cand facem un plugin AMXX , va trebui sa includem mereu amxmodx:
- Cod:
#include <amxmodx>
- Cod:
#include <amxmisc>
[size=150]2. CONSTANTE SIMBOLICE[/size]
Definirea constantelor simbolice se face astfel:
- Cod:
#define NUMELE_CONSTANTEI VALOAREA_CONSTANTEI
Scopul acestora este de a usura editarea surselor.
Exemplu:
- Cod:
#define COMUNITATE eXtreamCS
[size=150]3. PRINTAREA MESAJELOR[/size]
Exista patru tipuri de mesaje: mesaje hud , mesaje in chat , mesaje in consola si mesaje centrate.
[size=150]3.1. MESAJE HUD[/size]
Printarea mesajelor hud se face prin intermediul:
- Cod:
set_hudmessage(...)
shoe_hudmessage
- Cod:
set_hudmessage ( red, green, blue, Float:x, Float:y, effects, Float:fxtime, Float:holdtime, Float:fadeintime, Float:fadeouttime, channel )
Float:x , Float:y reprezinta pozitia mesajului.
effects reprezinta efectele mesajului:
- Cod:
0 = fade in/fade out
1 = flickery credits
2 = write out (training room)
Float:holdtime reprezinta cat timp apare mesajul pe ecran.
channel reprezinta canalul pe care este trimis mesajul.Exista 4 canale per jucator.
Uitati aici un exemplu:
- Cod:
set_hudmessage ( 200, 100, 0, -1.0, 0.35, 0, 6.0, 12.0, 0.1, 0.2, 4 )
- Cod:
show_hudmessage ( index, message[], ... )
message[] reprezinta mesajul ce va fi afisat
Exemplu:
- Cod:
set_hudmessage(200, 255, 0, 0.04, 0.48, 0, 6.0, 12.0)
show_hudmessage(id, "www.eXtreamCS.com)
[size=150]4. FOLOSIREA CONSTANTELOR SIMBOLICE[/size]
Pentru ca NUMELE_CONSTANTEI sa ia valoarea VALOAREA_CONSTANTEI trebuie sa efectuam niste modificari in sursa.
Am definit mai sus o constanta numita COMUNITATE cu valoarea eXtreamCS.
Mai jos avem o linie de cod ce printeaza un mesaj in chat:
- Cod:
client_print(0, print_chat, "Tutorial facut pentru comunitatea eXtreamCS!")
- Cod:
client_print(0, print_chat, "Tutorial facut pentru comunitatea %s!", COMUNITATE)
[size=150]5. COMPILAREA CU CONDITII[/size]
Compilarea cu conditii permite includerea/excluderea unor portiuni din sursa in functie de conditiile puse.
Aceasta se face astfel:
- Cod:
#if CONDITIE
SECTIUNE
#endif
- Cod:
#define ARATA_COMUNITATEA 1
#define COMUNITATE eXtreamCS
#if ARATA_COMUNITATEA
client_print(0, print_chat, "Tutorial facut pentru comunitatea %s!", COMUNITATE)
#else
client_print(0, print_chat, "Tutorial facut de KronoS")
#endif
[size=150]6. COMENTARII IN SURSA[/size]
Comentariile din sursa sunt foarte folositoare deoarece putem explica ce am facut prin niste linii de cod.Exista doua moduri prin care puteam sa facem comentarii:
- Cod:
//Tutorial facut pentru comunitatea eXtreamCS
- Cod:
/*Tutorial facut pentru comunitatea eXtreamCS*/
A doua forma este recomandata deoarece la inceputul comentariului se pune /* iar la sfarsit se pune */
Avantajul este ca nu mai trebuie sa puneti simbolurile in fata fiecarui rand!
ATENTIE: Comentariile din sursa nu sunt compilate
[size=150]7. INREGISTRAREA PLUGINULUI[/size]
Inregistrarea pluginului se foloseste pentru a printa informatii despre plugin(Numele pluginului , Versiune , Autor).
Se face astfel:
- Cod:
register_plugin("Numele pluginului", "Versiunea", "Autorul")
- Cod:
public plugin_init
- Cod:
public plugin_precache
- Cod:
#define PLUGIN "Plugin eXtreamCS"
#define VERSIUNE "1.0"
#define AUTOR "KronoS"
public plugin_init()
{
register_plugin( PLUGIN, VERSIUNE, AUTOR)
}
[size=150]8. INREGISTRAREA COMENZILOR[/size]
Inregistrarea comenzilor se foloseste pentru a executa anumite linii de cod pe jucatorii care folosesc acele comenzi.
De exemplu:
- Cod:
public plugin_init()
{
register_clcmd("say comanda", "executa_comanda")
register_clcmd("say_team comanda", "executa_comanda")
register_clcmd("comanda", "executa_comanda")
}
public executa_comanda(id)
{
client_print(id, print_chat, "Tutorial facut de KronoS")
}
- Cod:
Tutorial facut de KronoS
[size=150]9. INREGISTRAREA COMENZILOR DE ADMIN[/size]
Inregistrarea comenzilor de admin se foloseste pentru a executa anumite linii de cod pe jucatorii pe care au fost folosite acele comenzi.Vom inregistra comanda amx_kill care omoara jucatorul pe care este folosita comanda.
In public plugin_init adaugam:
- Cod:
register_concmd("amx_kill","kill_player",ADMIN_KICK,"-<nume> Omori jucatorul respectiv")
- Cod:
public kill_player(id,level,cid)
{
}
- Cod:
if(!cmd_access(id,level,cid,2))
{
client_print(id, console_print, "Nu ai acces la aceasta comanda")
return PLUGIN_HANDLED
}
- Cod:
new arg[32]
read_argv(1,arg,31)
new player = cmd_target(id,arg,7)
if(!is_user_alive(id)) /*Verifica daca jucatorul este in viata*/
return PLUGIN_HANDLED
client_cmd(player,"kill") /*Omoara jucatorul*/
return PLUGIN_HANDLED
- Cod:
#include <amxmodx>
#include <amxmisc>
public_plugin_init()
{
register_concmd("amx_kill","kill_player",ADMIN_KICK,"-<nume> Omori jucatorul respectiv")
}
public kill_player(id,level,cid)
{
if(!cmd_access(id,level,cid,2))
{
client_print(id, console_print, "Nu ai acces la aceasta comanda")
return PLUGIN_HANDLED
}
new arg[32]
read_argv(1,arg,31)
new player = cmd_target(id,arg,7)
if(!is_user_alive(id)) /*Verifica daca jucatorul este in viata*/
return PLUGIN_HANDLED
client_cmd(player,"kill") /*Omoara jucatorul*/
return PLUGIN_HANDLED
}
Autor: KronoS
Voi mai completa!
BABILONIA- Membru, skill +10
- Mesaje : 644
Data de inscriere : 29/08/2012
Varsta : 27
Localizare : Bucuresti
:: Diverse :: Counter Strike 1.6 :: Tutoriale
Pagina 1 din 1
Permisiunile acestui forum:
Nu puteti raspunde la subiectele acestui forum
|
|