#include <amxmodx>
#include <amxmisc>
#include <fun>
#include <cstrike>
#define ADMINJOG ADMIN_KICK
new speed2, speed3;
new speed[33]
public plugin_init()
{
//..egyéb dolgok a pluginban, érdemes regisztrálni a plugint ha csak magában fogod használni!
register_clcmd( "say /speed","AwesomeMenu");
register_event("CurWeapon", "curWeap", "be", "1=1")
speed2 = register_cvar("knife_speed2", "340");
speed3 = register_cvar("knife_speed3", "600");
//Regisztráljuk a parancsot, a kliens parancsot, ez esetben a játékosnak ezt kell beírnia a konzolba: "say /alapmenu"
//Erre a parancsra fog teljesülni az "AwesomeMenu" függvény, persze ennek lehet más is a neve, ezt te nevezed el, lehetőleg
//ne olyan nevet adj ami már van, mert akkor hibát fog dobni!
}
public client_disconnect(id) // ha lecsatlakozik a kliens lenullázuk a tömb id értékét
speed[id] = 0
//Ez a függvény fog teljesülni a parancsunk beírására, ez esetben ez fogja megnyitni a menünket!
public curWeap(id)
{
if(!is_user_alive(id) || !is_user_connected(id) || speed[id] == 0 )
return PLUGIN_CONTINUE
if(speed[id] == 1)
set_user_maxspeed(id, get_pcvar_float(speed2))
else
set_user_maxspeed(id, get_pcvar_float(speed3))
return PLUGIN_CONTINUE
}
public AwesomeMenu(id)
{
if(get_user_flags(id) & ADMINJOG)
{
//Első lépés a menü készítéséhez, azaz ez csinálja meg a menünket persze ennek még nincsennek menüpontjai!
new menu = menu_create("\rValasz a menumbol:", "menu_handler", 0);
//Jegyzet - menu_create
//Az első paraméter a menü neve, ez lesz a menüpontok felett pár centivel (Jelen esetben: "\rValasz a menumbol:") \r-ről a lap alján írokű!
//A második paraméter a menü végrehajtására szolgáló függvény elérése. (Jelen esetben "menu_handler") és ( public menu_handler(id, menu, item) )
//A menüpontok készítése:
menu_additem(menu, "\wElso Menupont", "1", 0);
menu_additem(menu, "\w340 es gyorsasa'g", "2", 0);
menu_additem(menu, "\w600 as gyorsasa'", "3", 0);
//Jegyzet - menu_additem
//Jelen esetben az első menüpont az "Elso Menupont", ez fog látszódni a menüdben! (Erre egy üzenetet fogunk kapni. Bővebben: Lejebb, és a menüt is megsemisítjük!)
//A második menüpontunk az "Ingyen Pénz" lett, erre pénzt fogunk kapni!
//A harmadik menüpont egy üzenetet fog kapni a játékos a képernyője közepén!
//A harmadik menüpont csak adminoknak elérhető, azaz akinek van menü joga("u" betű) (Az admin jogokat az amxconst.inc-ben találod!)
//Az ötödik egyben utolsó paraméter a visszatérés, alapértéke -1 (Magam sem tudom mire jó ez)
//Set a property on the menu
menu_setprop(menu, MPROP_EXIT, MEXIT_ALL);
//Jegyzet - menu_setprop
//Az első paraméter a menü, tehát a menüd változója!
//A második paraméter:
//A harmadik paraméter:
//Menü megnyitása, az elkészített menüt meg is kell jeleníteni, ne gondoljuk hogy magától megnyitódik!
menu_display(id, menu, 0);
//Jegyzet - menu_display
//Az első paraméter az index, azaz az azonosítója a játékosnak!
//Második paraméter az hogy melyik menüt mutassa (Jelen esetben amit én csináltam azaz: "menu")
//Harmadik paraméter az oldalszámot jelöli, az oldalszámolás 0áról indul!
}
}
//Jöhetnek a menüpontokra történő dolgok (azé menu_handler mert azt adtuk meg a menü készítésénél)
public menu_handler(id, menu, item)
{
//Ez az elágazás akkor fut le ha az illető a bezárásra kattint!
if( item == MENU_EXIT )
{
menu_destroy(menu);
//Ez megsemmisíti a menünket, majd vissza tér PLUGIN_HANDLEDDEl, azaz hogy ne folytassa!
return PLUGIN_HANDLED;
}
//Hozzuk létre ezt a néhány változót:
new data[6], szName[64];
new access, callback;
//Ez a funkció lekéri nekünk az információkat
menu_item_getinfo(menu, item, access, data,charsmax(data), szName,charsmax(szName), callback);
//visszatekintunk a menu_additem parancsra, minden egyes menuponthoz kuldtunk adatot is, itt lesz "gyanus" a dolog (ezzel adhatod meg a funkciodat)
new key = str_to_num(data);
//en minden adathoz szamot hasznaltam (te barmilyen stringet hasznalhatsz)
//Nos itt vannak a menüpontok, azaz hogy mi történik egy-egy menüponton!
switch(key)
{
case 1:
{
client_print(id, print_chat, "csmester elso pluginja!");
//Ezt a fenti üzenetet fogja megkapni a játékos, majd a menü megintcsak megsemmisül, és vissza térünk PLUGIN_HANDLEDel!
menu_destroy(menu);
return PLUGIN_HANDLED;
}
case 2:
{
set_user_maxspeed(id, get_pcvar_float(speed2))
speed[id] = 1
}
//Ez a második menüpont, a játékosunk kap 3000ezer dollárt a jelenlegi pénzéhez!
case 3:
{
//Ez a harmadik menüpont, ez csak adminoknak működik mint fentebb írtam!
set_user_maxspeed(id, get_pcvar_float(speed3))
speed[id] = 2
}
}
//Majd zárjuk be a menüt, és térjünk vissza PLUGIN_HANDLEDel!
menu_destroy(menu);
return PLUGIN_HANDLED;
}