When I try to restore my chosen weapons I don't get nothing in fact variables witch should store guns (gun_pistol[33], gun_rifle[33]) have wnnnnnnnnone values whats going on ? Maybe I should assign them values other way. But how to do this and how to compare them. As you probably noticed when player connects I'm setting none value to gun storage. Please help me :(
Code:
#include <amxmodx>
#include <amxmisc>
#include <cstrike>
#include <fun>
#define PLUGIN "Guns menu"
#define VERSION "1.0"
#define AUTHOR "orglee"
#define MSG_PREFIX "[GUNMENU]"
new g_guns[31][] = {"", "", "weapon_p228", "weapon_scout", "weapon_hegrenade", "weapon_xm1014",
"weapon_c4", "weapon_mac10", "weapon_aug", "weapon_smokegrenade", "weapon_elite",
"weapon_fiveseven", "weapon_ump45", "weapon_sg550", "weapon_galil", "weapon_famas",
"weapon_usp", "weapon_glock18", "weapon_awp", "weapon_mp5navy", "weapon_m249",
"weapon_m3", "weapon_m4a1", "weapon_tmp", "weapon_g3sg1", "weapon_flashbang",
"weapon_deagle", "weapon_sg552", "weapon_ak47", "weapon_knife", "weapon_p90"}
new g_pistol_names[6][] = {"Glock", "USP",
"Compact", "Deagle",
"Five-Seven", "Dual Bereta"}
new g_pistol_ids[6][] = {"weapon_glock18", "weapon_usp",
"weapon_p228", "weapon_deagle",
"weapon_fiveseven", "weapon_elite"}
new g_rifle_names[14][] = {"Clarion", "M4A1",
"Bullpup", "Galil",
"AK47", "Krieg",
"Scout", "AWP",
"Ingram", "Schmidt",
"UMP", "P90",
"MP5", "M249"}
new g_rifle_ids[14][] = {"weapon_famas", "weapon_m4a1",
"weapon_aug", "weapon_galil",
"weapon_ak47", "weapon_sg552",
"weapon_scout", "weapon_awp",
"weapon_mac10", "weapon_tmp",
"weapon_ump45", "weapon_p90",
"weapon_mp5navy", "weapon_m249"}
new menu_main_keys = MENU_KEY_1|MENU_KEY_2|MENU_KEY_3
new menu_pistol_keys = MENU_KEY_1|MENU_KEY_2|MENU_KEY_3|MENU_KEY_4|MENU_KEY_5|MENU_KEY_6
new menu_rifle_keys = MENU_KEY_0|MENU_KEY_1|MENU_KEY_2|MENU_KEY_3|MENU_KEY_4|MENU_KEY_5|MENU_KEY_6|MENU_KEY_7|MENU_KEY_8|MENU_KEY_9
enum E_PLAYER
{
menu_status = 2,
menu_rifle_page = 3
}
new g_players[33][E_PLAYER], gun_pistol[33], gun_rifle[33]
public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR)
register_concmd("say /guns","menuDisplay")
register_concmd("say guns","menuDisplay")
register_event("ResetHUD", "menuMain", "be")
register_menucmd(register_menuid("Main_Menu"), menu_main_keys, "menuMainHandler")
register_menucmd(register_menuid("Pistol_Menu"), menu_pistol_keys, "menuPistolHandler")
register_menucmd(register_menuid("Rifle_Menu"), menu_rifle_keys, "menuRifleHandler")
}
public client_connect(id)
{
copy(gun_rifle[id], 4, "none")
copy(gun_pistol[id], 4, "none")
g_players[id][menu_status] = 1
g_players[id][menu_rifle_page] = 1
}
public menuDisplay(id)
{
if(!is_user_alive(id)) {
client_print(id, print_chat, "%s Choosing allowed only while player is alive.", MSG_PREFIX)
return
}
g_players[id][menu_status] = 1
menuMain(id)
}
public menuTask(args[])
{
menuMain(args[0])
}
public menuMain(id)
{
if(!is_user_alive(id)) {
new args[1]
args[0] = id
set_task(2.0, "menuTask", id, args, 1)
}
// Add kevlar after respawn
cs_set_user_armor(id, 100, CS_ARMOR_VESTHELM)
new menutext[192]
format(menutext, 191, "\
^n\r1. \wNew set\
^n\r2. \wLoad last")
show_menu(id, menu_main_keys, menutext, -1, "Main_Menu")
}
public menuMainHandler(id, key)
{
// New Set
if(key == 0)
{
new menutext[192]
format(menutext, 191, "\^n\r1. \w%s^n\r2. \w%s^n\r3. \w%s^n\r4. \w%s^n\r5. \w%s^n\r6. \w%s",
g_pistol_names[0],
g_pistol_names[1],
g_pistol_names[2],
g_pistol_names[3],
g_pistol_names[4],
g_pistol_names[5])
show_menu(id, menu_pistol_keys, menutext, -1, "Pistol_Menu")
}
// Load Last
else if(key == 1)
{
if(!equal(gun_rifle[id], "none") && !equal(gun_pistol[id], "none"))
{
weaponsDrop(id)
give_item(id, gun_pistol[id])
give_item(id, gun_rifle[id])
}
else
{
client_print(id, print_chat, "%s You have to select weapon first.", MSG_PREFIX)
menuMain(id)
}
}
return PLUGIN_HANDLED
}
public menuPistolHandler(id, key)
{
weaponsDrop(id)
give_item(id, g_pistol_ids[key])
// Save pistol
copy(gun_pistol[id], 21, g_pistol_ids[key])
menuRifle(id)
}
public menuRifle(id)
{
new menutext[192]
if(g_players[id][menu_rifle_page] == 1)
{
format(menutext, 191, "\^n\r1. \w%s^n\r2. \w%s^n\r3. \w%s^n\r4. \w%s^n\r5. \w%s^n\r6. \w%s^n\r7. \w%s^n\r8. \w%s^n\r9. \wNext",
g_rifle_names[0],
g_rifle_names[1],
g_rifle_names[2],
g_rifle_names[3],
g_rifle_names[4],
g_rifle_names[5],
g_rifle_names[6],
g_rifle_names[7])
}
else
{
format(menutext, 191, "\r1. \w%s^n\r2. \w%s^n\r3. \w%s^n\r4. \w%s^n\r5. \w%s^n\r6. \w%s^n\r0. \wPrevious",
g_rifle_names[8],
g_rifle_names[9],
g_rifle_names[10],
g_rifle_names[11],
g_rifle_names[12],
g_rifle_names[13])
}
show_menu(id, menu_rifle_keys, menutext, -1, "Rifle_Menu")
return PLUGIN_HANDLED
}
public menuRifleHandler(id, key)
{
// Next page btn 9
if(key == 8)
{
if(g_players[id][menu_rifle_page] == 1)
{
g_players[id][menu_rifle_page] = 2
}
menuRifle(id)
}
// Back btn 0
else if(key == 9)
{
if(g_players[id][menu_rifle_page]== 2)
{
g_players[id][menu_rifle_page] = 1
}
menuRifle(id)
}
// Weapon already choosen
else
{
new gun_id;
if(g_players[id][menu_rifle_page] == 1) {
gun_id = key
} else {
gun_id = key + 8
}
give_item(id, g_rifle_ids[gun_id])
// save rifle
copy(gun_rifle[id], strlen(g_rifle_ids[gun_id]), g_rifle_ids[gun_id])
// reset menu page number
g_players[id][menu_rifle_page] = 1
}
return PLUGIN_HANDLED
}
public weaponsDrop(id)
{
new weapons[32]
new i, num_weapons
get_user_weapons(id, weapons, num_weapons)
for(i = 0; i < num_weapons; i++)
{
if(weapons[i] != CSW_HEGRENADE && weapons[i] != CSW_FLASHBANG && weapons[i] != CSW_SMOKEGRENADE && weapons[i] != CSW_KNIFE)
{
engclient_cmd(id, "drop", g_guns[weapons[i]])
}
}
}