Veteran Member
|
01-25-2021
, 04:33
Re: menu problems
|
#3
|
PHP Code:
/* Plugin generated by AMXX-Studio */
#include <amxmodx> #include <amxmisc> #include <nvault> #include <nvault_array> #include <fun> #include <hamsandwich>
#define PLUGIN "New Plug-In" #define VERSION "1.0" #define AUTHOR "super"
new const nVaultName[] = "nvaultarraytest" new const tag[] = "^4[^3STATE3^4]^1"
static points[MAX_PLAYERS + 1], item[MAX_PLAYERS + 1][33], g_szAuthID[MAX_PLAYERS+1][33], nVault
new items[][] = { "Speed", "Gravity", "AWP" }
new price[] = { 1500, 3500, 5000 }
public plugin_init() { register_plugin(PLUGIN, VERSION, AUTHOR) register_clcmd("say /give", "give_points") register_clcmd("say /menu", "awesomemenu") register_clcmd("say /reset", "items_reset") RegisterHam(Ham_Spawn, "player", "setitem", 1) nVault = nvault_open(nVaultName) if(nVault == INVALID_HANDLE) set_fail_state("[nVaultArray] Error!") }
public client_authorized(id) get_user_authid(id, g_szAuthID[id], charsmax(g_szAuthID[]))
public give_points(id){ points[id] += 1000 }
public items_reset(id){ for (new i=0; i<sizeof(items); i++){ item[id][i] = 0 } client_print_color(id, print_team_default, "%s All items^4 has been reseted^1!", tag) }
public awesomemenu(id){ new iMenu = menu_create("\r[STATE3]\y Test menu", "awesomemenu_handler") new menuformat[1024] for (new i=0; i<sizeof(items); i++){ if(item[id][i] == 0) formatex(menuformat, charsmax(menuformat), "%s \d- \r[\y%d\r]", items[i], price[i]) else if (item[id][i] == 1 || item[id][i] == 2) formatex(menuformat, charsmax(menuformat), "%s \d- \y%s", items[i], item[id][i] == 2 ? "\y[ON]" : "\r[OFF]") menu_additem(iMenu, menuformat[i]) } formatex(menuformat,charsmax(menuformat), "\wPoints\d =\y %i", points[id]) menu_addtext(iMenu, menuformat, 0) menu_setprop(iMenu, MPROP_EXIT, MEXIT_ALL) menu_display(id, iMenu, 0) }
public awesomemenu_handler(id, iMenu, key){ switch(key){ case 0:{ if(item[id][key] == 0){ if(points[id] < price[key]){ client_print_color(id, print_team_default, "%s You can't buy^4 %s^1 because you need^4 %i Points^1!", tag, items[key], price[key] - points[id] ) return PLUGIN_HANDLED }else{ points[id] -= price[key] item[id][key] = 1 client_print_color(id, print_team_default, "%s You just bought^4 %s^1!", tag, items[key]) awesomemenu(id) } } else if(item[id][key] == 1) item[id][key] = 2 else if (item[id][key] == 2) item[id][key] = 1 client_print_color(id, print_team_default, "%s You just %s^4 %s^1!", tag, item[id][key] == 1 ? "disabled" : "enabled", items[key]) awesomemenu(id) return PLUGIN_HANDLED } case 1:{ if(item[id][key] == 0){ if(points[id] < price[key]){ client_print_color(id, print_team_default, "%s You can't buy^4 %s^1 because you need^4 %i Points^1!", tag, items[key], price[key] - points[id] ) return PLUGIN_HANDLED }else{ points[id] -= price[key] item[id][key] = 1 client_print_color(id, print_team_default, "%s You just bought^4 %s^1!", tag, items[key]) awesomemenu(id) } } else if(item[id][key] == 1) item[id][key] = 2 else if (item[id][key] == 2) item[id][key] = 1 client_print_color(id, print_team_default, "%s You just %s^4 %s^1!", tag, item[id][key] == 1 ? "disabled" : "enabled", items[key]) awesomemenu(id) return PLUGIN_HANDLED } case 2:{ if(item[id][key] == 0){ if(points[id] < price[key]){ client_print_color(id, print_team_default, "%s You can't buy^4 %s^1 because you need^4 %i Points^1!", tag, items[key], price[key] - points[id] ) return PLUGIN_HANDLED }else{ points[id] -= price[key] item[id][key] = 1 client_print_color(id, print_team_default, "%s You just bought^4 %s^1!", tag, items[key]) awesomemenu(id) } } else if(item[id][key] == 1) item[id][key] = 2 else if (item[id][key] == 2) item[id][key] = 1 client_print_color(id, print_team_default, "%s You just %s^4 %s^1!", tag, item[id][key] == 1 ? "disabled" : "enabled", items[key]) awesomemenu(id) return PLUGIN_HANDLED } case MENU_EXIT:{ menu_destroy(iMenu) } } return 1; }
public setitem(id){ if(is_user_alive(id)){ switch(item[id][0]){ case 2: set_user_maxspeed(id, 550.0) case 1: client_print_color(id, print_team_default, "%s You just disabled^4 Speed^1!", tag) default: client_print_color(id, print_team_default, "%s You must buy^4 Speed^1!", tag) } switch(item[id][1]){ case 2: set_user_gravity(id, 0.6) case 1: client_print_color(id, print_team_default, "%s You just disabled^4 Gravity^1!", tag) default: client_print_color(id, print_team_default, "%s You must buy^4 Gravity^1!", tag) } switch(item[id][2]){ case 2: give_item(id, "weapon_awp") case 1: client_print_color(id, print_team_default, "%s You just disabled^4 AWP1!", tag) default: client_print_color(id, print_team_default, "%s You must buy^4 AWP^1!", tag) } } }
ok, thanks, but now it looks like this. https://imgur.com/a/WsY7gpN
i used sizeof and i changed items[] with items[][].
a question. can i do somethinglike this.
PHP Code:
switch(key){ case 0..100:{ if(item[id][key] == 0){ if(points[id] < price[key]){ client_print_color(id, print_team_default, "%s You can't buy^4 %s^1 because you need^4 %i Points^1!", tag, items[key], price[key] - points[id] ) return PLUGIN_HANDLED }else{ points[id] -= price[key] item[id][key] = 1 client_print_color(id, print_team_default, "%s You just bought^4 %s^1!", tag, items[key]) awesomemenu(id) } } else if(item[id][key] == 1) item[id][key] = 2 else if (item[id][key] == 2) item[id][key] = 1 client_print_color(id, print_team_default, "%s You just %s^4 %s^1!", tag, item[id][key] == 1 ? "disabled" : "enabled", items[key]) awesomemenu(id) return PLUGIN_HANDLED }
this is just a test plugin i want to learn how to use dd array and how i can save them using nvault array. also, i-m trying to get used with this new menus so, if i'm not doing smth right just show me how should i do
edit: should i use enum? i found this: https://forums.alliedmods.net/showpo...99&postcount=7
Last edited by lexzor; 01-25-2021 at 05:38.
|
|