- Dacă creați un meniu al cărui opțiuni nu se schimbă (permanent), atunci este cel mai bine să îl creați ca unul global. Nu este nevoie să o distrugeți și să o recreați de mai multe ori.
- Dacă trebuie să aliniați textul din meniu spre dreapta, utilizați \ R.
- Meniul nu va fi afișat dacă nu are opțiuni.
- Pentru a ascunde afișarea meniului de pe player pe ecran, puteți folosi codul:
Cod: Selectați toate show_menu (id 0. "^ n" 1) - Lista culorilor care pot fi folosite la crearea meniurilor:
- Alb - \ w
- Galben - \ y
- Roșu -
- Gri - \ d
funcţii:
- Crearea unui meniu
Cod: Selectați toate meniu_create (titlu # 91; # 93; manipulator # 93; # 93; ml = 0)
titlu - titlul meniului care este afișat din partea de sus.
handler - funcția cu care interacțiunea va avea loc când una dintre opțiuni a fost apăsată.
ml - utilizați mai multe limbi atunci când creați meniuri. - Adăugarea unei opțiuni de meniu
Cod: Selectați toate meniurile_additem (meniul # 91; # 93 ;, const comanda # 91; # 93; paccess = 0. apel invers = - 1)
meniu - meniul cu care vom interacționa.
nume - numele opțiunii de meniu (numerotarea este automată).
comandă - informațiile pe care le trimitem când se utilizează această opțiune.
paccess - nivelul accesului la această opțiune (steagul administratorului).
inversarea apelului - dacă această opțiune este setată (aceasta ar trebui să fie rezultatul funcției menu_makecallback), va apela funcția până la afișarea opțiunii, ceea ce va permite schimbarea opțiunii în timp real. - Setați proprietățile meniului
Cod: Selectați toate meniul_setprop (meniu.pro.)
meniu - meniul cu care vom interacționa.
prop este proprietatea meniului. - Afișarea meniului
Cod: Selectați toate meniurile_display (pagina de meniu id)
id este indexul jucatorului care trebuie sa afiseze meniul.
- meniul pe care doriți să îl afișați.
pagina - pagina din meniul din care începe afișarea. - Distrugerea meniului
Cod: Selectați toate meniul_destroy (meniu)
meniu - meniul care urmează să fie distrus. După apelarea acestei funcții, trebuie să utilizați PLUGIN_HANDLED întoarcere. - Obținerea de informații despre opțiunea de meniu
Cod: Selectați toate meniul_item_getinfo (meniul. acces. comandă # 91; # 93; cmdlen. nume # 91; # 93; = "". namelen = 0. apel invers)
meniu - meniul din care doriți să obțineți informații.
este o opțiune pentru a obține informații despre.
acces - nivelul de acces pentru opțiunea specificată.
comandă - datele transmise prin această opțiune.
cmdlen este lungimea datelor.
numele este numele opțiunii de meniu.
namelen este lungimea numelui.
inversarea apelului este valoarea callback-ului. - Adăugați o opțiune goală (spațiu)
Cod: Selectați toate meniurile_addblank (meniu Slot = 1)
- meniul cu care doriți să efectuați acțiunea.
slot - dacă valoarea este mai mare decât 0, crește numărul de spații într-un anumit număr de ori.
Poate fi folosit numai după meniu_additem. - Anulați meniul playerului
Cod: Selectați toate meniu_cancel (player)
player - jucătorul care trebuie să anuleze acțiunea din meniu, meniul va rămâne pe ecranul jucătorului, dar orice acțiune va fi anulată. - Numărul de opțiuni din meniu
Cod: Selectați toate meniurile (meniu)
meniu - meniul, care trebuie să obțină numărul de opțiuni. - Numărul de pagini din meniu
Cod: Selectați toate meniurile (meniu)
meniu - meniul de care aveți nevoie pentru a obține numărul de pagini. - Setați apelul invers la opțiunea de meniu
Cod: Selectați toate meniu_item_setcall (meniu.
meniul este meniul cu care are loc interacțiunea.
este opțiunea de meniu.
inversarea apelului este valoarea pentru apelul invers. - Setați comanda la opțiunea de meniu
Cod: Selectați toate meniu_item_setcmd (meniu. Item.cmd # 91; # 93;)
meniul este meniul cu care are loc interacțiunea.
este opțiunea de meniu.
cmd este o comandă de opțiune. - Setați numele opțiunii de meniu
Cod: Selectați toate numele meniu_item_set (meniu # 91; # 93;)
meniul este meniul cu care are loc interacțiunea.
este opțiunea de meniu.
numele este numele opțiunii. - Crearea unei funcții de apel invers
Cod: Selectați toate meniul_makecallback (funcția # 91; # 93;)
funcția - numele funcției pentru apelul invers.
Această funcție transmite argumentele id-ului jucătorului, id-ul meniului și id-ul opțiunii:
Cod: Selectați toate funcțiile publice (Meniu id.
Funcția poate returna următoarele valori: ITEM_IGNORE, ITEM_ENABLED sau ITEM_DISABLED.
Crearea unui meniu de bază (exemplu de bază)
Cod: Selectați toate #include
public plugin_init ()
// Datele pluginului
// Comanda clientului pentru a apela meniul
register_clcmd ("my_menu". "My_Menu")
>
// Creați funcția care va crea meniul
public My_Menu (id)
// În primul rând, trebuie să creăm o variabilă pentru meniu, cu care vom interacționa în viitor
noul i_Menu = menu_create ("\ rTitlul meniului meu:". "menu_handler")
// Acum adăugați câteva opțiuni pentru meniu
menu_additem (i_Menu. "\ wFirst opțiune # 1." "1." 0)
menu_additem (i_Menu. "\ wA doua opțiune # 2." "2." 0)
menu_additem (i_Menu. "\ wAdmin opțiunea # 3." "3." ADMIN_ADMIN)
// Setați proprietățile meniului
menu_setprop (i_Menu.MPROP_EXIT.MEXIT_ALL)
// Afișați meniul în player
meniu_display (id.i_Menu.0)
>
// Acum creăm funcția de procesare a acțiunilor din meniu
public meniu_handler (element de meniu id.)
// Dacă jucătorul apasă ieșirea din meniu
dacă (element == MENU_EXIT)
// Distrugeți meniul
menu_destroy (meniu)
// Creați acum variabilele necesare pentru a obține informații despre meniu și opțiune
nou s_Data # 91; 6 # 93; s_Name # 91; 64 # 93; i_Access. i_Callback
// Obțineți informații despre opțiune
menu_item_getinfo (meniu. element. i_Access. s_Data. charsmax (s_Data), s_Name. charsmax (s_Name), i_Callback)
// Dacă vă uitați mai devreme la utilizarea meniului_additem, puteți vedea că am trimis câteva informații
// În acest caz, toate informațiile sunt un număr întreg
noul i_Key = str_to_num (s_Data)
// Acum găsiți care opțiune a fost utilizată
comutator (i_Key)
cazul 1:
client_print (id. print_chat. "Ați selectat prima opțiune")
// Distrugeți meniul
menu_destroy (meniu)
returnați PLUGIN_HANDLED
>
cazul 2:
client_print (id. print_chat. "Ați selectat a doua opțiune")
>
cazul 3:
client_print (id. print_chat. "Ați selectat opțiunea de administrare")
>
>
// Distrugeți meniul
menu_destroy (meniu)
returnați PLUGIN_HANDLED
>
Crearea unui meniu format din jucători de pe server
Cod: Selectați toate #include
#include
public plugin_init ()
// Comanda clientului pentru a apela meniul
register_clcmd ("my_menu". "My_Menu")
>
public My_Menu (id)
// În primul rând, trebuie să creăm o variabilă pentru meniu, cu care vom interacționa în viitor
noul i_Menu = menu_create ("\ rPlayer meniu:". "menu_handler")
// Variabilele necesare de care avem nevoie când afișăm meniuri de la jucători
noi s_Playeri # 91; 32 # 93 ;, i_Num. i_Player
// Variabile pentru stocarea informațiilor despre jucători
nou s_Name # 91; 32 # 93; s_Player # 91; 10 # 93;
// Obțineți o gamă largă de jucători
get_players (s_Playeri.i_Num)
// Ciclul pentru toți jucătorii
pentru (noul i; i
// Salvați playerul curent în i_Player
i_Player = s_Playeri # 91; eu # 93;
// Obține numele și ID-ul jucătorului
get_user_name (i_Player.s_Name.charsmax (s_Name))
num_to_str (i_Player.s_Player.charsmax (s_Player))
// Adăugați o opțiune pentru acest jucător
menu_additem (i_Menu.s_Name.s_Player.0)
// Am creat un meniu de jucători prezenți pe server, acum îl afișăm
meniu_display (id.i_Menu.0)
>
public meniu_handler (element de meniu id.)
dacă (element == MENU_EXIT)
menu_destroy (meniu)
returnați PLUGIN_HANDLED
>
nou s_Data # 91; 6 # 93; s_Name # 91; 64 # 93; i_Access. i_Callback
menu_item_getinfo (meniu. element. i_Access. s_Data. charsmax (s_Data), s_Name. charsmax (s_Name), i_Callback)
// Obțineți ID-ul playerului selectat în meniu
noul i_Player = str_to_num (s_Data)
// Verificați dacă playerul este în viață
dacă (is_user_alive (i_Player))
// Stabileste sanatatea sa la 100 CP
set_user_health (i_Player 100)
menu_destroy (meniu)
returnați PLUGIN_HANDLED
>
Crearea unui meniu pentru vot
Cod: Selectați toate #include
// Pentru a stoca meniul jocurilor
noul g_VoteMenu
// Să stocheze voturile pentru fiecare opțiune
g_Votes noi # 91; 2 # 93;
// Pentru a verifica dacă sondajul este deja în desfășurare
nou g_Votare
public plugin_init ()
register_clcmd ("start_vote". "StartVote")
>
public StartVote (id)
// Dacă sondajul este deja în desfășurare, atunci ieșim
dacă (g_Votat)
client_print (id. print_chat. "Există deja un vot.")
// Ne întoarcem PLUGIN_HANDLED astfel încât nu există o comandă necunoscută în consola playerului
returnați PLUGIN_HANDLED
>
g_VoteMenu = menu_create ("Meniu de meniu:". "menu_handler")
menu_additem (g_VoteMenu. "Opțiunea de vot 1". "0". 0)
menu_additem (g_VoteMenu. "Opțiunea de vot 2". "1" .0)
noi s_Playeri # 91; 32 # 93 ;, i_Num. i_Player
get_players (s_Playeri.i_Num)
pentru (noul i; i
meniu_display (i_Player.g_VoteMenu.0)
// Măriți pentru a afla câți jucători votează
g_Voting ++
>
// Opriți votarea în 10 secunde
set_task (10.0. "EndVote")
public meniu_handler (element de meniu id.)
dacă (element == MENU_EXIT)
returnați PLUGIN_HANDLED
nou s_Data # 91; 6 # 93; s_Name # 91; 64 # 93; i_Access. i_Callback
menu_item_getinfo (meniu. element. i_Access. s_Data. charsmax (s_Data), s_Name. charsmax (s_Name), i_Callback)
// Obțineți informații despre opțiunea selectată
noul i_Vote = str_to_num (s_Data)
// Măriți numărul de voturi pentru această opțiune
g_Votes # 91; i_Vote # 93; ++
public EndVote ()
// Dacă prima opțiune are mai multe voturi decât a doua opțiune
dacă (g_Votes # 91; 0 G_Votes # 91; 1 # 93;)
client_print (0. print_chat. "Prima opțiune a primit majoritatea voturilor (.)" g_Votes # 91; 0 # 93;)
// În caz contrar, dacă a doua opțiune are mai multe voturi decât prima opțiune
altfel dacă (g_Votes # 91; 1 G_Votes # 91; 0 # 93;)
client_print (0. print_chat. "A doua opțiune a primit majoritatea voturilor (.)". g_Votes # 91; 1 # 93;)
// În caz contrar numărul egal de voturi
altfel
client_print (0. print_chat. "Votul va fi votat la fiecare vot" # 91; 0 # 93;)
// Resetați informațiile pe care le votează jucătorii
g_Voting = 0
>
Crearea meniurilor utilizând submeniuri
Cod: Selectați toate #include
public plugin_init ()
register_clcmd ("my_menu". "My_Menu")
>
public My_Menu (id)
noul i_Menu = menu_create ("\ rMu meniu:". "meniu_handler")
menu_additem (i_Menu. "\ wFirst opțiune # 1." "1." 0)
menu_additem (i_Menu. "\ wSub-Meniu # 2." "2." 0)
menu_setprop (i_Menu.MPROP_EXIT.MEXIT_ALL)
meniu_display (id.i_Menu.0)
>
public meniu_handler (element de meniu id.)
dacă (element == MENU_EXIT)
menu_destroy (meniu)
returnați PLUGIN_HANDLED
>
nou s_Data # 91; 6 # 93; s_Name # 91; 64 # 93; i_Access. i_Callback
meniu_item_getinfo (meniu, item.i_Access.s_Data.charsmax (s_Data), s_Name.charsmax (s_Name), i_Callback)
noul i_Key = str_to_num (s_Data)
comutator (i_Key)
cazul 1:
client_print (id. print_chat. "Ați selectat prima opțiune")
>
cazul 2:
// Deschideți submeniul
Sub_Menu (id)
>
>
menu_destroy (meniu)
returnați PLUGIN_HANDLED
>
public Sub_Menu (id)
// Creați un nou meniu, dar funcția de procesare a acțiunii va fi diferită
noul i_Menu = menu_create ("\ rSub-Meniu:". "submenu_handler")
menu_additem (i_Menu. "\ wSub-opțiunea # 1." "1." 0)
menu_additem (i_Menu. "\ wSub-opțiunea # 2." "2." 0)
menu_setprop (i_Menu.MPROP_EXIT.MEXIT_ALL)
meniu_display (id.i_Menu.0)
>
public submenu_handler (meniu de meniu id.)
dacă (element == MENU_EXIT)
menu_destroy (meniu)
// Dacă playerul se află pe server, vom afișa meniul principal
dacă (is_user_connected (id))
My_Menu (id)
nou s_Data # 91; 6 # 93; s_Name # 91; 64 # 93; i_Access. i_Callback
meniu_item_getinfo (meniu, item.i_Access.s_Data.charsmax (s_Data), s_Name.charsmax (s_Name), i_Callback)
noul i_Key = str_to_num (s_Data)
comutator (i_Key)
cazul 1:
client_print (id. print_chat. "Ați selectat prima sub-opțiune")
>
cazul 2:
client_print (id. print_chat. "Ați selectat a doua sub-opțiune")
>
>
// Dacă doriți să afișați meniul principal atunci
My_Menu (id)
Nu-mi scrie în droguri. dacă aveți nevoie de ajutor în mod gratuit. Orice întrebări pe forum.