AlliedModders

AlliedModders (https://forums.alliedmods.net/index.php)
-   Scripting Help (https://forums.alliedmods.net/forumdisplay.php?f=11)
-   -   Weird variable behavior (https://forums.alliedmods.net/showthread.php?t=64013)

orglee 12-05-2007 20:09

Weird variable behavior
 
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]])         }     } }

purple_pixie 12-06-2007 04:33

Re: Weird variable behavior
 
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?


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

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