Raised This Month: $ Target: $400
 0% 

Weird variable behavior


Post New Thread Reply   
 
Thread Tools Display Modes
Author Message
orglee
Member
Join Date: Dec 2005
Old 12-05-2007 , 20:09   Weird variable behavior
Reply With Quote #1

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]])         }     } }
orglee is offline
purple_pixie
Veteran Member
Join Date: Jun 2007
Location: Winchester, England
Old 12-06-2007 , 04:33   Re: Weird variable behavior
Reply With Quote #2

Just one small thing ... tell me you aren't storing the client's weapon as a string.

Why not just store the index of the gun names array?
purple_pixie is offline
Reply



Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -4. The time now is 11:00.


Powered by vBulletin®
Copyright ©2000 - 2024, vBulletin Solutions, Inc.
Theme made by Freecode