4en3rgY Romania
Tutorial scripting [AMXX] 2z8bv910
Welcome To 4EN3RGY Romania
Register now to gain access to all of our features. Once registered and logged in, you will be able to create topics, post replies to existing threads, give reputation to your fellow members, get your own private messenger, post status updates, manage your profile and so much more. If you already have an account, login here - otherwise create an account for free today!

4en3rgY Romania


Nu sunteti conectat. Conectați-vă sau înregistrați-vă

Tutorial scripting [AMXX]

Vezi subiectul anterior Vezi subiectul urmator In jos  Mesaj [Pagina 1 din 1]

1Tutorial scripting [AMXX] Empty Tutorial scripting [AMXX] Lun 09 Ian 2012, 21:09

KiddOx <3.

KiddOx <3.Membru

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.

1. INCLUDEREA FISIERELOR
Includerea fisierelor se realizeaza prin 2 cai:
Cod:
#include

Cod:
#include "fisierul"

Folosind prima cale , fisierul este cautat in directoarele standard(In cazul AMXX directorul standard este include).
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

Daca pluginul contine si comenzi care pot fi folosite de admini , atunci va trebui sa includem si amxmisc:
Cod:
#include


2. CONSTANTE SIMBOLICE
Definirea constantelor simbolice se face astfel:
Cod:
#define NUMELE_CONSTANTEI VALOAREA_CONSTANTEI

Acest lucru face ca in toata sursa , NUMELE_CONSTANTEI sa fie inlocuit cu VALOAREA_CONSTANTEI(exceptie comentariile).
Scopul acestora este de a usura editarea surselor.
Exemplu:
Cod:
#define COMUNITATE eXtreamCS


3. PRINTAREA MESAJELOR
Exista patru tipuri de mesaje: mesaje hud , mesaje in chat , mesaje in consola si mesaje centrate.

3.1. MESAJE HUD
Printarea mesajelor hud se face prin intermediul:
Cod:
set_hudmessage(...)
shoe_hudmessage

Vom vorbi acum despre set_hudmessage.Este alcatuit din:
Cod:
set_hudmessage ( red, green, blue, Float:x, Float:y, effects, Float:fxtime, Float:holdtime, Float:fadeintime, Float:fadeouttime, channel )

red , green , blue reprezinta culoarea mesajului.
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:fxtime , Float:fadeintime , Float:fadeouttime reprezinta timpii la care efectele se schimba
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 )

Dupa ce am stabilit setarile mesajului , este timpul sa il printam cu show_hudmessage:
Cod:
show_hudmessage ( index, message[], ... )

index reprezinta jucatorul cui i se va afisa mesajul [ 0 - tuturor ] [ id - doar acelui jucator care a actionat comanda]
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, "[Trebuie sa fiti inscris si conectat pentru a vedea acest link]


4. FOLOSIREA CONSTANTELOR SIMBOLICE
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!")

Acum vom face o modificare pentru a citi valoarea constantei:
Cod:
client_print(0, print_chat, "Tutorial facut pentru comunitatea %s!", COMUNITATE)


5. COMPILAREA CU CONDITII
Compilarea cu conditii permite includerea/excluderea unor portiuni din sursa in functie de conditiile puse.
Aceasta se face astfel:
Cod:
#if CONDITIE
SECTIUNE
#endif

Pentru ca aceasta parte de cod sa fie valida , conditia trebuie definita.Uitati mai jos un exemplu:
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


6. COMENTARII IN SURSA
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*/

Daca doriti sa folositi prima forma , iar comentariul se intinde pe mai multe randuri , trebuie sa adaugati // in fata fiecarui rand de comentariu.
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

7. INREGISTRAREA PLUGINULUI
Inregistrarea pluginului se foloseste pentru a printa informatii despre plugin(Numele pluginului , Versiune , Autor).
Se face astfel:
Cod:
register_plugin("Numele pluginului", "Versiunea", "Autorul")

Acest cod poate fi folosit in:
Cod:
public plugin_init

Cod:
public plugin_precache

De asemenea pot fi folosite si constantele simbolice:
Cod:
#define PLUGIN "Plugin eXtreamCS"
#define VERSIUNE "1.0"
#define AUTOR "KronoS"

public plugin_init()
{
register_plugin( PLUGIN, VERSIUNE, AUTOR)
}


8. INREGISTRAREA COMENZILOR
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")
}

Cand un jucator tasteaza in chat , team_chat sau consola comanda , in chat va aparea mesajul:
Cod:
Tutorial facut de KronoS


9. INREGISTRAREA COMENZILOR DE ADMIN
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,"- Omori jucatorul respectiv")

Acum facem un nou public numit kill_player:
Cod:
public kill_player(id,level,cid)
{
}

In publicul kill_player , verificam daca jucatorul este admin.Daca nu este , comanda nu este executata si apare un mesaj:
Cod:
if(!cmd_access(id,level,cid,2))
{
client_print(id, console_print, "Nu ai acces la aceasta comanda")
return PLUGIN_HANDLED
}

Dupa aceste linii , adaugam:
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

In final va arata asa:
Cod:
#include
#include

public_plugin_init()
{
register_concmd("amx_kill","kill_player",ADMIN_KICK,"- 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
}

2Tutorial scripting [AMXX] Empty Re: Tutorial scripting [AMXX] Sam 21 Ian 2012, 11:41

*sHocK*

*sHocK*Membru

Bun Tutorial

Vezi subiectul anterior Vezi subiectul urmator Sus  Mesaj [Pagina 1 din 1]

Permisiunile acestui forum:
Nu puteti raspunde la subiectele acestui forum

 

Copyright @ 2010-2024 by 4en3rgY ~> All rights reserved.