Re: Limit for buying weapon
Check this one:
PHP Code:
/* Plugin generated by AMXX-Studio */
#include <amxmodx> #include <amxmisc> #include <fun>
#define PLUGIN "New Plug-In" #define VERSION "1.0" #define AUTHOR "Alexander" #define MAXPLAYERS 32 + 1
new bool:gbUsed[MAXPLAYERS]; //Made gbUsed as if player has used
public plugin_init() { register_plugin("Weapon Menu", "0.1", "Alex"); register_clcmd( "say /menu","AwesomeMenu"); register_logevent( "eventRoundEnd", 2, "1=Round_End" ) //Registered round end event, so I could make gbUsed to false }
public eventRoundEnd() //That's the event { arrayset( gbUsed, false, MAXPLAYERS ) //On round end made gbUsed to false so player on new round can get the menu }
public client_disconnect(id) //Checks if player disconnects { gbUsed[id] = false; //If he disconnects gbUsed is set to false, so when he connects he can use the menu again }
public AwesomeMenu(id) { if(!gbUsed[id]) //Checks if gbUsed is false, so it lets use the menu, if gbUsed is true stops players getting the menu { //first we need to make a variable that will hold the menu new menu = menu_create("\rChoose your gun!:", "menu_handler"); //Note - menu_create //The first parameter is what the menu will be titled (what is at the very top) //The second parameter is the function that will deal/handle with the menu (which key was pressed, and what to do) //Now lets add some things to select from the menu menu_additem(menu, "\wGet Deagle", "1", ADMIN_LEVEL_G); //menu_additem(menu, "\wI'm Selection #2", "2", 0); //menu_additem(menu, "\wI'm Secret Selection #3", "3", ADMIN_LEVEL_G); //Note - menu_additem //The first parameter is which menu we will be adding this item/selection to //The second parameter is what text will appear on the menu (Note that it is preceeded with a number of which item it is) //The third parameter is data that we want to send with this item //The fourth parameter is which admin flag we want to be able to access this item (Refer to the admin flags from the amxconst.inc) //The fifth parameter is the callback for enabling/disabling items, by default we will omit this and use no callback (default value of -1) Refer to the Menu Items with Callbacks section for more information. //Set a property on the menu menu_setprop(menu, MPROP_EXIT, MEXIT_ALL); //Note - menu_setprop //The first parameter is the menu to modify //The second parameter is what to modify (found in amxconst.inc) //The third parameter is what to modify it to (in this case, we are adding a option to the menu that will exit the menu. setting it to MEXIT_NEVER will disable this option) //Lets display the menu menu_display(id, menu, 0); //Note - menu_display //The first parameter is which index to show it to (you cannot show this to everyone at once) //The second parameter is which menu to show them (in this case, the one we just made) //The third parameter is which page to start them on } } //okay, we showed them the menu, now lets handle it (looking back at menu_create, we are going to use that function) public menu_handler(id, menu, item) { //we don't want to deal with them if they exited a menu if( item == MENU_EXIT ) { menu_destroy(menu); //Note that you will want to destroy the menu after they do something return PLUGIN_HANDLED; } //now lets create some variables that will give us information about the menu and the item that was pressed/chosen new data[6], szName[64]; new access, callback; //heres the function that will give us that information (since it doesnt magicaly appear) menu_item_getinfo(menu, item, access, data,charsmax(data), szName,charsmax(szName), callback); //Note - that you can do this next step how you want, this is just the way I prefer //looking back to menu_additem, we sent data with every item we added, this is where it gets a little fishy for us (where you can do your own method) new key = str_to_num(data); //note that all my datas were numbers (you can do it with whatever type of string you want) //now lets find which item was pressed switch(key) { case 1: { give_item(id, "weapon_deagle") //Give deagle give_item(id,"ammo_50ae") //Gives ammo give_item(id,"ammo_50ae") give_item(id,"ammo_50ae") give_item(id,"ammo_50ae") give_item(id,"ammo_50ae") give_item(id,"ammo_50ae") give_item(id,"ammo_50ae") client_print(id, print_chat, "You got a nice deagle for yourself!"); gbUsed[id] = true; //Set gbUsed to true becouse player has got the deagle, so he can't get another one in this round //note that if we dont want to continue through the function, we can't just end with a return. We want to kill the menu first menu_destroy(menu); return PLUGIN_HANDLED; } case 2: { client_print(id, print_chat, "OH NO! You selected the Awesome 2nd Selection! BEWARE!"); } case 3: //again i don't have experience with the admin limitations, so i don't know if you need to have a check before this (im assuming you don't though ^_^) { client_print(id, print_chat, "You have selected the Awesome Admin Selection! Hail Teh Bail!"); } } //lets finish up this function with a menu_destroy, and a return menu_destroy(menu); return PLUGIN_HANDLED; }
|