Cum sa faci un meniu amxmodx
Page 1 of 1
Cum sa faci un meniu amxmodx
Sa incepem:
in plugin_init, inregistram meniul:
Cod:
register_menucmd(register_menuid("\yMenu Name:"), 1023, "menu_command" );
Unde e scrie "Menu Name:" e numele meniului; "menu_command" va fi un public in care vom vedea pe ce buton apasa jucatorul.
Facem un public pentru a arata meniul:
Citat:
public show_the_menu(id,level,cid) {
level si cid nu sunt neaparat, te poate ajuta daca vrei sa verifici daca userul are admin
In plugin_init, adaugam si o comanda cu care deschide meniul:
Cod:
register_concmd("display_menu","show_the_menu",-1,"display my menu");
In interioru la "public show_the_menu"
Cod:
// facem 2 varible, una pentru constructia meniului, una pentru a vedea ce buton a apasat jucatorul
new szMenuBody[256];
new keys;
Mai departe, dam nume la meniu si facem butoanele
Cod:
new nLen = format( szMenuBody, 255, "\yMy Menu:^n" );
nLen += format( szMenuBody[nLen], 255-nLen, "^n\w1. Apasa pe butonul 1" );
nLen += format( szMenuBody[nLen], 255-nLen, "^n\w2. Apasa pe butonul 2" );
nLen += format( szMenuBody[nLen], 255-nLen, "^n^n\w0. Iesi din meniu" );
Si ati creat meniul cu 2 butoane ("Apasa pe butonul 1" si "Apasa pe butonul 2" si exitu "Iesi din meniu" );
Mai departe, butoanele is pe biti, deci
Cod:
keys = (1<<0|1<<1|1<<2|1<<3|1<<4|1<<5|1<<6|1<<9)
Acum afisam meniul
Cod:
show_menu( id, keys, szMenuBody, -1 );
In plugin_init am inregistrat meniul cu "menu_command" ; Deci
Cod:
public menu_command(id,key,level,cid)
{
// vedem ce buton a apasa:
switch(key)
{
// daca a apasat pe butonul 1
case 0:
{
client_print(0,print_chat,"Am apasat pe butonul unu");
// mai adaugi ce vrei pe aicea
// Dupa ce apesi pe butonul "1" meniul dispare. Daca vrei sa repara:
show_the_menu(id,level,cid);
}
// daca apas pe butonul 2
case 1:
{
// sa verificam daca are admin
if(!cmd_access(id,level,cid,1))
{
// inseamna ca nu are deci
return PLUGIN_HANDLED;
}
}
}
// inchidem functia:
return PLUGIN_HANDLED;
}
Citeste comentariile ca am scris tot ce trebuia mai sus
Tot code-u
Cod:
#include <amxmodx>
#include <amxmisc>
public plugin_init() {
register_plugin("Test My Menu","0.1","SAMURAI");
// inregistram meniul
register_menucmd(register_menuid("\yMenu Name:"), 1023, "menu_command" );
// inregistram o comanda
register_concmd("display_menu","show_the_menu",-1,"display my menu");
}
public show_the_menu(id,level,cid)
{
// variabile pentru meniu si butoane
new szMenuBody[256];
new keys;
// facem meniul
new nLen = format( szMenuBody, 255, "\yMy Menu:^n" ); // nume
nLen += format( szMenuBody[nLen], 255-nLen, "^n\w1. Apas butonul 1" ); // butonul 1
nLen += format( szMenuBody[nLen], 255-nLen, "^n\w2. Apas butonul 2" ); // butonul 2
nLen += format( szMenuBody[nLen], 255-nLen, "^n^n\w0. Ies din meniu" ); // iesire
// butoanele pe biti
keys = (1<<0|1<<1|1<<2|1<<3|1<<4|1<<5|1<<6|1<<9)
// afisam meniul
show_menu( id, keys, szMenuBody, -1 );
}
public menu_command(id,key,level,cid)
{
// vedem ce buton a apasa:
switch(key)
{
// daca a apasat pe butonul 1
case 0:
{
client_print(0,print_chat,"Am apasat pe butonul unu");
// mai adaugi ce vrei pe aicea
// Dupa ce apesi pe butonul "1" meniul dispare. Daca vrei sa repara:
show_the_menu(id,level,cid);
}
// daca apas pe butonul 2
case 1:
{
// sa verificam daca are admin
if(!cmd_access(id,level,cid,1))
{
// inseamna ca nu are deci
return PLUGIN_HANDLED;
}
}
}
// inchidem functia:
return PLUGIN_HANDLED;
}
in plugin_init, inregistram meniul:
Cod:
register_menucmd(register_menuid("\yMenu Name:"), 1023, "menu_command" );
Unde e scrie "Menu Name:" e numele meniului; "menu_command" va fi un public in care vom vedea pe ce buton apasa jucatorul.
Facem un public pentru a arata meniul:
Citat:
public show_the_menu(id,level,cid) {
level si cid nu sunt neaparat, te poate ajuta daca vrei sa verifici daca userul are admin
In plugin_init, adaugam si o comanda cu care deschide meniul:
Cod:
register_concmd("display_menu","show_the_menu",-1,"display my menu");
In interioru la "public show_the_menu"
Cod:
// facem 2 varible, una pentru constructia meniului, una pentru a vedea ce buton a apasat jucatorul
new szMenuBody[256];
new keys;
Mai departe, dam nume la meniu si facem butoanele
Cod:
new nLen = format( szMenuBody, 255, "\yMy Menu:^n" );
nLen += format( szMenuBody[nLen], 255-nLen, "^n\w1. Apasa pe butonul 1" );
nLen += format( szMenuBody[nLen], 255-nLen, "^n\w2. Apasa pe butonul 2" );
nLen += format( szMenuBody[nLen], 255-nLen, "^n^n\w0. Iesi din meniu" );
Si ati creat meniul cu 2 butoane ("Apasa pe butonul 1" si "Apasa pe butonul 2" si exitu "Iesi din meniu" );
Mai departe, butoanele is pe biti, deci
Cod:
keys = (1<<0|1<<1|1<<2|1<<3|1<<4|1<<5|1<<6|1<<9)
Acum afisam meniul
Cod:
show_menu( id, keys, szMenuBody, -1 );
In plugin_init am inregistrat meniul cu "menu_command" ; Deci
Cod:
public menu_command(id,key,level,cid)
{
// vedem ce buton a apasa:
switch(key)
{
// daca a apasat pe butonul 1
case 0:
{
client_print(0,print_chat,"Am apasat pe butonul unu");
// mai adaugi ce vrei pe aicea
// Dupa ce apesi pe butonul "1" meniul dispare. Daca vrei sa repara:
show_the_menu(id,level,cid);
}
// daca apas pe butonul 2
case 1:
{
// sa verificam daca are admin
if(!cmd_access(id,level,cid,1))
{
// inseamna ca nu are deci
return PLUGIN_HANDLED;
}
}
}
// inchidem functia:
return PLUGIN_HANDLED;
}
Citeste comentariile ca am scris tot ce trebuia mai sus
Tot code-u
Cod:
#include <amxmodx>
#include <amxmisc>
public plugin_init() {
register_plugin("Test My Menu","0.1","SAMURAI");
// inregistram meniul
register_menucmd(register_menuid("\yMenu Name:"), 1023, "menu_command" );
// inregistram o comanda
register_concmd("display_menu","show_the_menu",-1,"display my menu");
}
public show_the_menu(id,level,cid)
{
// variabile pentru meniu si butoane
new szMenuBody[256];
new keys;
// facem meniul
new nLen = format( szMenuBody, 255, "\yMy Menu:^n" ); // nume
nLen += format( szMenuBody[nLen], 255-nLen, "^n\w1. Apas butonul 1" ); // butonul 1
nLen += format( szMenuBody[nLen], 255-nLen, "^n\w2. Apas butonul 2" ); // butonul 2
nLen += format( szMenuBody[nLen], 255-nLen, "^n^n\w0. Ies din meniu" ); // iesire
// butoanele pe biti
keys = (1<<0|1<<1|1<<2|1<<3|1<<4|1<<5|1<<6|1<<9)
// afisam meniul
show_menu( id, keys, szMenuBody, -1 );
}
public menu_command(id,key,level,cid)
{
// vedem ce buton a apasa:
switch(key)
{
// daca a apasat pe butonul 1
case 0:
{
client_print(0,print_chat,"Am apasat pe butonul unu");
// mai adaugi ce vrei pe aicea
// Dupa ce apesi pe butonul "1" meniul dispare. Daca vrei sa repara:
show_the_menu(id,level,cid);
}
// daca apas pe butonul 2
case 1:
{
// sa verificam daca are admin
if(!cmd_access(id,level,cid,1))
{
// inseamna ca nu are deci
return PLUGIN_HANDLED;
}
}
}
// inchidem functia:
return PLUGIN_HANDLED;
}
Page 1 of 1
Permissions in this forum:
You cannot reply to topics in this forum