Sziasztok!Most azt fogom fogom leírni, hogyan készítsünk inc-et. Ezeket sok mindenre lehet használni. Pl.: Pluginok közötti kommunikáció, stock több pluginban alkalmazása, forward készítése stb.
1. Inc fájl kezdete, fájlnév:Az inc fájloknak az első négy sorának igy kell kinéznie:
#if defined _pelda_included
#endinput
#endif
#define _pelda_included
A példa szerint nekem majd ezt kell a plugin elejére írnom:
És a fájl neve ez lesz:
Kód:
pelda.inc
Értelemszerűen ha a "pelda" szót megváltoztathatod.
2. StockAz inc fájlba lehet stock-ot írni. Ezzel azt érjük el, hogy ha egy stock-ot több plugin-ba szeretnénk használni, akkor nem kell az összesbe beleírni.
Egy példa:
Színes chat + ékezetekDe hogy itt is legyen valami írok még egy példát:
(Ha valakit érdekel bomba csíkot lehet vele csinálni
)
Van például ez a stock-om:
stock progress_bar(index,pbtime)
{
message_begin(MSG_ONE,108,{0,0,0},index)
write_byte(pbtime)
write_byte(0)
message_end()
}
Ezt szeretném több plugin-ban használni, inc-et csinálok neki.
Kezdés:
#if defined _progressbar_included
#endinput
#endif
#define _progressbar_included
Stocknál ha másik inc-et használunk azt is fel kell tüntetni:
Es a végére a stock:
stock progress_bar(index,pbtime)
{
message_begin(MSG_ONE,108,{0,0,0},index)
write_byte(pbtime)
write_byte(0)
message_end()
}
És végül így fog kinézni:
#if defined _progressbar_included
#endinput
#endif
#define _progressbar_included
#include <amxmodx> //stock-hoz szükséges include
stock progress_bar(index,pbtime) //a stock
{
message_begin(MSG_ONE,108,{0,0,0},index)
write_byte(pbtime)
write_byte(0)
message_end()
}
Egy inc-be több stock-ot is rakhatunk.
3. ForwardAmit az előbbiben leírtam nem fogom még egyszer leírni! A forward-ot arra lehet használni, amikor "történik valami" a játékban (pl.: Zombi módban megfertőznek, stb.) arra valamilyen funkciót rakni. Sokszor ezt több plugin-ban is használni szeretnénk erre vannak az inc-ek.
Szükségünk lesz egy vezérlő plugin-ra, ebből fogjuk irányítani...
A kezdést nem írom le. Az esemény amit használni fogok, az ha valaki chat-be írja a "teszt" szót.
Példa: forwardtest.inc:
#if defined _forwardtest_included
#endinput
#endif
#define _forwardtest_included
forward test_command(id) //forward amit_szeretnél(pl:játékos ID)
"vezér plugin":
#include <amxmodx>
new fwd_testcmd //Egy változóra lesz szükségünk a forward-hoz
public plugin_init()
{
register_plugin("[INC] Forward teszt","1.0","Nandee") //Plugin neve, verzió, készítő
fwd_testcmd=CreateMultiForward("test_command", ET_IGNORE, FP_CELL) //Funkciók: 1.amit az incbe a "forward" és a "(" közé írtunk
register_clcmd("say teszt","cmd_teszt")
}
public cmd_teszt(id)
{
client_print(id,print_chat,"Beirtad a chat-be a teszt szot!") //Chat üzenet
new fwdtestret
ExecuteForward(fwd_testcmd,fwdtestret,id) //1. a változó amitez elején megadtunk, 2.visszatérés, 3. A játékos ID-je
}
Forward használata:
#include <amxmodx>
#include <forwardtest> //inc
public plugin_init()
{
register_plugin("[INC] Forward teszt próba","1.0","Nandee") //Plugin neve, verzió, készítő
}
public test_command(id)
{
client_print(id,print_chat,"A forward mukodik!") //Visszajelzés a chat-ben
}
4. NativeEhhez is ugyanúgy "vezér plugin"-ra lesz szükségünk mint a forward-hoz. Ez is sok mindenre használható, én a példámban egy olyan változót fogok készíteni, mint zombi módban a lőszer csomag(aki nem ismeri fizető eszköz). Ehhez már csak példákat írok szerintem ezekből már érteni lehet
forintmod.inc:
#if defined _forintmod_included
#endinput
#endif
#define _forintmod_included
native get_user_forint(id)
native set_user_forint(id,amount)
Vezér plugin:
#include <amxmodx>
new forint[33] //Egy változó amin a forintot tároljuk
public plugin_init()
{
register_plugin("[INC] Forint mod","1.0","Nandee") //Plugin neve, verzió, készítő
}
public plugin_natives()
{
register_native("set_user_forint","native_set_user_forint",1)
register_native("get_user_forint","native_get_user_forint",1)
}
public native_get_user_forint(index)
{
return forint[index]
}
public native_set_user_forint(index,amount)
{
forint[index]=amount
}
Példa a felhasználásra:
#include <amxmodx>
#include <forintmod> //inc
public plugin_init()
{
register_plugin("[INC] Forint mod teszt","1.0","Nandee") //Plugin neve, verzió, készítő
register_clcmd("say /penz","cmd_penz") //játékos parancs
register_clcmd("say /penzkell","cmd_penzkell") //játékos parancs
}
public cmd_penz(id)
{
client_print(id,print_chat,"A penzed:%d",get_user_forint(id))
}
public cmd_penzkell(id)
{
client_print(id,print_chat,"Kaptal 300 forintot!")
set_user_forint(id,get_user_forint(id)+300)
}
Vége!UI:Szerintem elég konyhanyelven fogalmaztam, aki nem érti az írjon hozzászólást, aki érti és hibát talált vagy valamit jobban írna le az jelezzen nekem.
Aki nem találja a köszönöm gombot annak a hozzászólás jobb alsó sarkában van