Inainte sa incep as dor sa va zic ca acest tutorial este pentru scripterii intermediari(cei care stiu ce face set_task,stiu sa foloseasca variabilelele, etc).
Bun , incepem incluzand libraria default (nu ne trebuie o librarie speciala) :
Code: Select all
#include <amxmodx>
Code: Select all
public plugin_natives()
{
// codul tau !
}
func1 - numele nativei ( ex : set_user_health...)
func2 - Functia care este chemata cand folosim nativul respectiv + parametrii.
Exemplu :
Code: Select all
register_native("half_hp","_my_function");
_my_function este functia care va fi chemata
Pana acum avem asa :
Code: Select all
#include <amxmodx>
public plugin_natives()
{
register_native("half_hp","_my_function");
}
Code: Select all
public _my_function(client)
{
// codul tau
}
La native ca sa aflam indexul functiei trebuie sa folosim o alta functie (din inauntru publiclui ) numita get_param(1)
get_param(1) - in romana inseamna "afla parametrul 1" adica primul parametru
mai intai facem o variabila la intaimplare , eu o sai pun numele "id" - de la index player...
Code: Select all
new id = get_param(1);
Code: Select all
public _my_function(client)
{
new id = get_param(1);
}
Code: Select all
#include <amxmodx>
public plugin_natives()
{
register_native("half_hp","_my_function");
}
public _my_function(client)
{
new id = get_param(1);
}
Code: Select all
#include <fun>
ex :
set_user_health(id, get_user_health(id) / 2)
adica : seteaza viata jucator ( id, afla viata jucator(id) / imparte la 2) ( de ex daca ai 100, vei avea 50)
In total avem asa :
Code: Select all
#include <amxmodx>
public plugin_natives()
{
register_native("half_hp","_my_function");
}
public _my_function(client)
{
new id = get_param(1);
set_user_health(id, get_user_health(id) / 2)
}
Code: Select all
native half_hp(id);
#include <amxmodx>
public plugin_init()
{
register_clcmd("say /hp","hook_hp");
}
public hook_hp(id)
{
half_hp(id);
}
Acum am creat native cu un singur parametru (id- jucatorului)
noi putem crea si cu 2-3 dar pentru asta vom folosi get_param(numarul parametrului)
get_param(1)
get_param(2)
get_param(3)
doar ca cand faceti publicul nu puneti doar client, de ex pentru a da imparti viata jucatorului :
Code: Select all
public _my_function(client, imp)
{
new id = get_param(1);
new value = get_param(2);
set_user_health(id, get_user_health(id) / value)
}
half_hp(id, 10)
viata jucatorului , impartzit la 10 !
Sper ca ati inteles voi
Credite:
- HamletEagle - de la el am luat idea
- Hawks - tutorialul original in limba Engleza (scris diferit oricum)
- ConnorMcLeod - ma invatat multe despre native