Raised This Month: $ Target: $400
 0% 

Menu Save Player Choice [-HELP-]


Post New Thread Reply   
 
Thread Tools Display Modes
KaLoIaN
Senior Member
Join Date: Feb 2013
Old 06-07-2016 , 06:57   Re: Menu Save Player Choice [-HELP-]
Reply With Quote #11

Forget about this way @siriusmd99 told me, it will get really very complicated when I add hundreds of guns LOL

Again we start from zero, how I can save the weapons player lastly selected just like in CSDM by kWo ?

What about this:
Code:
#include <amxmodx> #include <amxmisc> #include <fakemeta> #include <hamsandwich> #include <cstrike> #include <fun> #define OFFSET_PRIMARYWEAPON 116 #define OFFSET_C4_SLOT 372 #define m_iMapZone 235 #define fm_find_ent_by_class(%1,%2) engfunc(EngFunc_FindEntityByString, %1, "classname", %2) #define fm_cs_set_user_nobuy(%1)    set_pdata_int(%1, 235, get_pdata_int(%1, 235) & ~(1<<0)) enum _:CHOICES {     OPTION_NONE, OPTION_NEW, OPTION_OLD, OPTION_SAVE } new const g_szOptions[CHOICES][] = {     "None", "New Guns", "Previous Guns", "Previous + Save" } new g_WeaponBPAmmo[] = {     0, 52, 0, 90, 1, 32, 1, 100, 90, 1, 120, 100, 100, 90, 90, 90, 100, 120, 30,    120, 200, 32, 90, 120, 90, 2, 35, 90, 90, 0, 100 }; new g_WeaponSlots[] = {     0, 2, 0, 1, 4, 1, 5, 1, 1, 4, 2, 2, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 4, 2, 1, 1, 3, 1 };F const m_iBuyingStatus = 34; new g_szWepFile[256], g_FilePointer; new g_pWeaponMenu, g_sWeaponMenu, g_SpawnMenu; new g_bSave[33], g_ipPreviousWeapons[33], g_isPreviousWeapons[33]; new Array:g_PrimaryWeapons, Array:g_SecondaryWeapons; new g_MainMenuTitle, g_PrimaryMenuTitle, g_SecondaryMenuTitle, g_PluginPrefix, g_iToggle, g_iBlockDrop, g_iHENade, g_iFlash, g_iSmoke, g_iArmorAmount, g_iNVG, g_iUnlimitedAmmo, g_iStripMode, g_iTeamMode, g_iFastSwitch, g_iCZBotSupport; new g_szMainMenuTitle[32], g_szPriMenuTitle[32], g_szSecMenuTitle[32], g_szPrefixName[32]; new bool:g_bomb_targ, g_iEnt, iconstatus; new CsTeams:g_MenuTeam, CsTeams:g_iPlayerTeam[33]; public plugin_init() {     register_plugin("Weapon Menu", "0.0.9", "SavSin");         g_MainMenuTitle = register_cvar("wm_mainmenutitle", "Weapons Menu"); //Main Menu Title Cvar.     g_PrimaryMenuTitle = register_cvar("wm_primenutitle", "Primary Weapons"); //Primary Weapons Menu Title Cvar.     g_SecondaryMenuTitle = register_cvar("wm_secmenutitle", "Secondary Weapons"); //Secondary Weapons Menu Title Cvar.     g_PluginPrefix = register_cvar("amx_prefix_name", "WM"); //Prefix Name Cvar.         g_iToggle = register_cvar("wm_switch", "1"); //Turns plugin on and off.     g_iBlockDrop = register_cvar("wm_blockdrop", "1"); //Blocks weapon drop.     g_iHENade = register_cvar("wm_henade", "2"); // Amount of HE Nades given to each player.     g_iFlash = register_cvar("wm_flash", "2"); //Amount of Flash Nades given to each player.     g_iSmoke = register_cvar("wm_smoke", "2"); //Amount of Smoke Nades given to each player.     g_iArmorAmount = register_cvar("wm_armor", "100"); //Amount of Armor Given to each player.     g_iNVG = register_cvar("wm_nvg", "1"); //Give NVG's?     g_iUnlimitedAmmo = register_cvar("wm_unlimitedammo", "1"); //Allow Unlimited ammo?     g_iStripMode = register_cvar("wm_stripmode", "1"); //1 = Strip and keep bomb  2 = Strip All.     g_iFastSwitch = register_cvar("wm_fastswitch", "1"); //1 = Switch to last used weapon 0 = dont         g_iCZBotSupport = register_cvar("wm_czbotsupport", "0"); //1 = Rage method of CZ bot support 0 = no cz bot support.         register_concmd ("amx_teammode", "cmdTeamMode", ADMIN_BAN, "0 = No teams buy. 1 = CT buy. 2 = T buy.");     register_concmd("wmadminmenu", "cmdAdminMenu", ADMIN_RCON, "Opens the admin menu.");     register_concmd("say wmadmin", "cmdAdminMenu", ADMIN_RCON, "Opens the admin menu.");             register_event("CurWeapon", "eCurWeapon", "be", "1=1"); //Unlimited ammo         get_pcvar_string(g_MainMenuTitle, g_szMainMenuTitle, charsmax(g_szMainMenuTitle)); //Main Menu Title Text     get_pcvar_string(g_PrimaryMenuTitle, g_szPriMenuTitle, charsmax(g_szPriMenuTitle)); // Primary Menu Title Text     get_pcvar_string(g_SecondaryMenuTitle, g_szSecMenuTitle, charsmax(g_szSecMenuTitle)); //Secondary Menu Title Text     get_pcvar_string(g_PluginPrefix, g_szPrefixName, charsmax(g_szPrefixName)); //Prefix Name shows infront of plugin chat.         RegisterHam(Ham_Spawn, "player", "fwdPlayerSpawn", 1); //Player Spawn Post         if(get_pcvar_num(g_iCZBotSupport))         RegisterHam(Ham_Spawn, "czbot", "fwdPlayerSpawn", 1); //Player Spawn Post             RegisterHam(Ham_Touch, "func_buyzone", "fwdBuyZoneTouch", 1); //Player touches buyzone     iconstatus = get_user_msgid("StatusIcon");     register_event("HLTV", "Event_HLTV_NewRound", "a", "1=0", "2=0"); //New round start     register_event("TeamInfo", "eTeamInfo", "a"); //Event Team Info.     register_clcmd("say /guns", "cmdGuns"); //Re-Enables Gun menu     register_clcmd("say guns", "cmdGuns"); //Re-Enables Gun menu     register_clcmd("say_team /guns", "cmdGuns"); //Re-Enables Gun menu     register_clcmd("say_team guns", "cmdGuns"); //Re-Enables Gun menu     register_clcmd("drop", "blockDrop"); //Re-Enables Gun menu         CreateWeaponsArray(); //Create the menus and arrays         new szNum[3];     g_SpawnMenu = menu_create(g_szMainMenuTitle, "HandleSpawnMenu"); //Create Main Menu         for(new i = 1; i < sizeof(g_szOptions); i++) //Loop through all the options     {         num_to_str(i, szNum, charsmax(szNum));         menu_additem(g_SpawnMenu, g_szOptions[i], szNum, 0); //Add the options to the menu     }         menu_setprop(g_SpawnMenu , MPROP_EXIT , MEXIT_NEVER); //Dont allow Menu to exit         if (fm_find_ent_by_class(-1, "func_bomb_target") || fm_find_ent_by_class(-1, "info_bomb_target")) //Checks for bombsites     {         g_bomb_targ = true; //If there is a bomb site Set this to true     } } public client_disconnect(id) {     g_ipPreviousWeapons[id] = 0;     g_isPreviousWeapons[id] = 0;     g_bSave[id] = false; } public client_connect(id) {     g_ipPreviousWeapons[id] = 0;     g_isPreviousWeapons[id] = 0;     g_bSave[id] = false; } public plugin_precache() {     g_iTeamMode = register_cvar("wm_teammode", "0"); // 0 = both 1 = T only 2 = CT only.     g_iEnt = engfunc(EngFunc_CreateNamedEntity,engfunc(EngFunc_AllocString,"info_map_parameters"));     dllfunc(DLLFunc_Spawn, g_iEnt);     server_cmd("sv_restart 1"); } public Event_HLTV_NewRound() {         if(!get_pcvar_num(g_iToggle))         return PLUGIN_HANDLED;             new iTeamMode;         switch(clamp(get_pcvar_num(g_iTeamMode), 0, 2))     {         case 0:         {             iTeamMode = 3;         }         case 1:         {             g_MenuTeam = CS_TEAM_T;             iTeamMode = 1;         }         case 2:         {             g_MenuTeam = CS_TEAM_CT;             iTeamMode = 2;         }     }         set_pdata_int(g_iEnt, m_iBuyingStatus, iTeamMode, 4);     return PLUGIN_HANDLED; } public fwdBuyZoneTouch(iEnt, id) {     if(!get_pcvar_num(g_iToggle))         return HAM_IGNORED;     if(is_user_connected(id) && g_iPlayerTeam[id] == g_MenuTeam)     {         message_begin(MSG_ONE, iconstatus, {0,0,0}, id);         write_byte(0);         write_string("buyzone");         write_byte(0);         write_byte(255);         write_byte(0);         message_end();     }     return PLUGIN_HANDLED; } public cmdTeamMode(id) {     if(!get_pcvar_num(g_iToggle))         return PLUGIN_HANDLED;     new arg[2];     read_argv(1, arg, sizeof(arg));         new iArg = str_to_num(arg);         set_pcvar_num(g_iTeamMode, clamp(iArg, 0, 2));     server_cmd("sv_restart 1");         return PLUGIN_HANDLED; } public cmdGuns(id) //Renable Guns Menu {     if(get_pcvar_num(g_iToggle) && g_bSave[id])     {         g_bSave[id] = false;         client_print(id, print_chat, "[%s] Gun menu will be re-enabled next spawn", g_szPrefixName);     } } public fwdPlayerSpawn(id) {     if(is_user_alive(id) && get_pcvar_num(g_iToggle)) //Check if player alive and plugin is active     {         if(get_pcvar_num(g_iTeamMode))         {             if(g_iPlayerTeam[id] == g_MenuTeam)             {                 switch(get_pcvar_num(g_iStripMode))                 {                     case 1: //Strip and keep bomb                     {                         StripUserWeapons(id); //Calls the Strip Function                     }                     case 2: // Strip Everything                     {                         strip_user_weapons(id); //Fun native to strip ALL weapons                         give_item(id, "weapon_knife"); //Fun native to give the knife back                     }                 }             }         }         else         {             switch(get_pcvar_num(g_iStripMode))             {                 case 1: //Strip and keep bomb                 {                     StripUserWeapons(id); //Calls the Strip Function                 }                 case 2: // Strip Everything                 {                     strip_user_weapons(id); //Fun native to strip ALL weapons                     give_item(id, "weapon_knife"); //Fun native to give the knife back                 }             }         }                 if(g_bomb_targ && get_pcvar_num(g_iStripMode) == 1 && g_iPlayerTeam[id] == CS_TEAM_CT)         {             cs_set_user_defuse(id, 1); //If there is a bomb site and your a CT give you a Defuse kit         }             if(get_pcvar_num(g_iHENade)) //Check if Grenades are enabled         {             //g_HeNadesLeft[id] = get_pcvar_num(g_iHENade);             //Gives player the right amount of grenades             give_item(id, "weapon_hegrenade");             cs_set_user_bpammo(id, CSW_HEGRENADE, get_pcvar_num(g_iHENade));         }                 if(get_pcvar_num(g_iFlash)) //Checks if Flashbangs are enabled         {             //Gives player the correct amount of flashbangs             give_item(id, "weapon_flashbang");             cs_set_user_bpammo(id, CSW_FLASHBANG, get_pcvar_num(g_iFlash));         }                 if(get_pcvar_num(g_iSmoke)) //Checks if smoke is enabled         {             //Gives Player the correct amount of Smoke Grenades             give_item(id, "weapon_smokegrenade");             cs_set_user_bpammo(id, CSW_SMOKEGRENADE, get_pcvar_num(g_iSmoke));         }                 //Gives the player the amount of armor based on the cvar above.         cs_set_user_armor(id, get_pcvar_num(g_iArmorAmount), CS_ARMOR_VESTHELM);                 if(get_pcvar_num(g_iNVG)) //Night Vision enabled?         {             cs_set_user_nvg(id, 1); //Gives the user night vision         }                 if(get_pcvar_num(g_iTeamMode))         {             if(g_iPlayerTeam[id] == g_MenuTeam)             {                 if(!is_user_bot(id))                 {                     if(!g_bSave[id]) //Checks weather you have saved your previous weapons or not.                     {                         menu_display(id, g_SpawnMenu); //Shows the menu if you havn't saved your previous                     }                     else                     {                         PreviousWeapons(id); //Gives you the weapons you saved in from the menu                     }                 }                 else                 {                     new iPrimaryArraySize = ArraySize(g_PrimaryWeapons);                     new iSecondaryArraySize = ArraySize(g_SecondaryWeapons);                                        for(new i=0; i< 2; i++)                     {                         new WeaponName[32], szArrayData[32];                         if(i == 0)                         {                             ArrayGetString(g_PrimaryWeapons, iPrimaryArraySize, szArrayData, charsmax(szArrayData)); //Gets the weapon name from the array                         }                         else                         {                             ArrayGetString(g_SecondaryWeapons, iSecondaryArraySize, szArrayData, charsmax(szArrayData)); //Gets the weapon name from the array                         }                                                 replace_all(szArrayData, charsmax(szArrayData), " ", ""); //removes the spaces                         format(WeaponName, charsmax(WeaponName), "weapon_%s", szArrayData); //adds weapon_ to the weapon name                         strtolower(WeaponName);//Converts all to lower case                         GiveWeapons(id, WeaponName); //Gives secondary weapon                     }                 }             }         }         else         {             if(!is_user_bot(id))             {                 if(!g_bSave[id]) //Checks weather you have saved your previous weapons or not.                 {                     menu_display(id, g_SpawnMenu); //Shows the menu if you havn't saved your previous                 }                 else                 {                     PreviousWeapons(id); //Gives you the weapons you saved in from the menu                 }             }             else             {                 new iPrimaryWeapon = random_num(0, ArraySize(g_PrimaryWeapons)-1);                 new iSecondaryWeapon = random_num(0, ArraySize(g_SecondaryWeapons)-1);                              for(new i=0; i< 2; i++)                 {                     new WeaponName[32], szArrayData[32];                     if(i == 0)                     {                         ArrayGetString(g_PrimaryWeapons, iPrimaryWeapon, szArrayData, charsmax(szArrayData)); //Gets the weapon name from the array                     }                     else                     {                         ArrayGetString(g_SecondaryWeapons, iSecondaryWeapon, szArrayData, charsmax(szArrayData)); //Gets the weapon name from the array                     }                                         replace_all(szArrayData, charsmax(szArrayData), " ", ""); //removes the spaces                     format(WeaponName, charsmax(WeaponName), "weapon_%s", szArrayData); //adds weapon_ to the weapon name                     strtolower(WeaponName);//Converts all to lower case                     GiveWeapons(id, WeaponName); //Gives secondary weapon                 }             }         }     } } public eCurWeapon(id) {     if(!get_pcvar_num(g_iToggle) || !get_pcvar_num(g_iUnlimitedAmmo))         return PLUGIN_HANDLED;         new iWeapon = read_data(2); //Gets current Weapon ID CSW weapon constraints         if(g_WeaponSlots[iWeapon] == 1 || g_WeaponSlots[iWeapon] == 2)     {         if(cs_get_user_bpammo(id, iWeapon) < g_WeaponBPAmmo[iWeapon])         {             cs_set_user_bpammo(id, iWeapon, g_WeaponBPAmmo[iWeapon]); //If your bp ammo is lower then the max then set it to the max         }     }     return PLUGIN_CONTINUE; } public blockDrop(id) //Blocks weapon drop {     if(get_pcvar_num(g_iToggle) && get_pcvar_num(g_iBlockDrop) && get_user_weapon(id) != CSW_C4)     {         if(get_pcvar_num(g_iTeamMode))         {             if(g_iPlayerTeam[id] == g_MenuTeam)             {                 client_print(id, print_center, "You are not allowed to drop your weapons.");                 return PLUGIN_HANDLED;             }         }         else         {             client_print(id, print_center, "You are not allowed to drop your weapons.");             return PLUGIN_HANDLED;         }     }     return PLUGIN_CONTINUE; } public HandleSpawnMenu(id, iMenu, iItem) {     new szKey[3], Dummy;     menu_item_getinfo(iMenu, iItem, Dummy, szKey, 2, "", 0, Dummy); //Gets the selection off the menu         switch(str_to_num(szKey))     {         case OPTION_NEW:         {             menu_display(id, g_pWeaponMenu); //Displays primary weapons menu         }         case OPTION_OLD:         {             PreviousWeapons(id); //Gives your previous weapons         }         case OPTION_SAVE:         {             PreviousWeapons(id); //Same as OPTION_OLD but saves it so you get these weapons each spawn.             g_bSave[id] = true;             client_print(id, print_chat, "[%s] say /guns to re-enable the gun menu.", g_szPrefixName);         }     }     return PLUGIN_CONTINUE; } public PreviousWeapons(id) //Access the array to give you the previous weapons used by you. {     new szpData[32], szsData[32];     ArrayGetString(g_PrimaryWeapons, g_ipPreviousWeapons[id], szpData, charsmax(szpData)); //Gets the array item of your previous primary weapon     ArrayGetString(g_SecondaryWeapons, g_isPreviousWeapons[id], szsData, charsmax(szsData)); //Gets the array item of your previous secondary weapon     strtolower(szpData); //Converts it all to lower case     strtolower(szsData); //Converts it all to lower case     replace_all(szpData, charsmax(szpData), " ", ""); //Removes spaces from the array text.     replace_all(szsData, charsmax(szsData), " ", ""); //Removes spaces from the array text.     format(szpData, charsmax(szpData), "weapon_%s", szpData); //adds weapon_ infront of the array text.     format(szsData, charsmax(szsData), "weapon_%s", szsData);//adds weapon_ infront of the array text.     GiveWeapons(id, szpData); //Gives player previous primary weapon     GiveWeapons(id, szsData); //Gives player previous Secondary Weapon } public CreateWeaponsArray() {     get_configsdir(g_szWepFile, charsmax(g_szWepFile));  //gets addons/amxmodx/configs directory     format(g_szWepFile, charsmax(g_szWepFile), "%s/DM_WeaponOrder.ini", g_szWepFile); //formats the file name for the Weapons order INI     g_FilePointer = fopen(g_szWepFile, "r"); //Opens the file     //Arrays     g_PrimaryWeapons = ArrayCreate(15); //Creates the Primary Weapons Array     g_SecondaryWeapons = ArrayCreate(15); //Creates the Secondary Weapons Array         //Weapon Menus     g_pWeaponMenu = menu_create(g_szPriMenuTitle, "HandlePrimaryWeapons"); //Creates the Primary Weapon Menu     g_sWeaponMenu = menu_create(g_szSecMenuTitle, "HandleSecondaryWeapons"); //Creates the Secondary Weapon Menu         new szData[32], szWeaponName[32], szpNum[3], szsNum[3];     new pCounter, sCounter;     if(g_FilePointer) //Makes sure the files open     {         while(!feof(g_FilePointer))         {             fgets(g_FilePointer, szData, charsmax(szData)); //Reads a line of the file             trim(szData); //Removes '^n' new line character from the end of the line             if(containi(szData, ";") != -1) //Checks to see if its a comment and then ignores it                 continue;             //Check Weapon Slot for Menu Placement             copy(szWeaponName, charsmax(szWeaponName), szData); //Copys the file data into a new variable to alter it             replace_all(szWeaponName, charsmax(szWeaponName), " ", ""); //Removes Spaces from the Text             format(szWeaponName, charsmax(szWeaponName), "weapon_%s", szWeaponName); //Adds Weapon_ to the text             strtolower(szWeaponName); //converts the whole thing to lower case             new iWeaponID = get_weaponid(szWeaponName); //Gets the CSW weapon constraint for that weapon                         switch(g_WeaponSlots[iWeaponID]) //Checks which slot the weapon is for             {                 case 1: //Primary Slot                 {                     ArrayPushString(g_PrimaryWeapons, szData); //Adds the original text to the array                     num_to_str(pCounter, szpNum, charsmax(szpNum));                     menu_additem(g_pWeaponMenu, szData, szpNum, 0); //Adds item to the primary weapons menu                     ++pCounter;                 }                 case 2: //Secondary Slot                 {                     ArrayPushString(g_SecondaryWeapons, szData); //Adds the original text to the array                     num_to_str(sCounter, szsNum, charsmax(szsNum));                     menu_additem(g_sWeaponMenu, szData, szsNum, 0);//Adds item to the Secondary Weapons Menu                     ++sCounter;                 }             }         }     }     else     {         set_fail_state("Failed to Open Weapons List");     }     //Blocks exit for both primary and secondary menus     menu_setprop(g_pWeaponMenu , MPROP_EXIT , MEXIT_NEVER);     menu_setprop(g_sWeaponMenu , MPROP_EXIT , MEXIT_NEVER);         fclose(g_FilePointer); //Closes the file } public HandlePrimaryWeapons(id, iMenu, iItem) {     new szKey[3], iSelectedWeapon, Dummy;     menu_item_getinfo(iMenu, iItem, Dummy, szKey, 2, "", 0, Dummy); //Gets the primary weapon selected.         iSelectedWeapon = str_to_num(szKey);     g_ipPreviousWeapons[id] = iSelectedWeapon; //Stores the selected weapon for option 2 and 3 on the main menu         new WeaponName[32], szArrayData[32];     ArrayGetString(g_PrimaryWeapons, iSelectedWeapon, szArrayData, charsmax(szArrayData)); //Gets the weapon name from the array     replace_all(szArrayData, charsmax(szArrayData), " ", ""); //removes the spaces     format(WeaponName, charsmax(WeaponName), "weapon_%s", szArrayData); //adds weapon_ to the weapon name     strtolower(WeaponName);//Converts all to lower case     GiveWeapons(id, WeaponName); //Gives primary weapon         menu_display(id, g_sWeaponMenu); //Displays secondary weapons menu } public HandleSecondaryWeapons(id, iMenu, iItem) {     new szKey[3], iSelectedWeapon, Dummy;     menu_item_getinfo(iMenu, iItem, Dummy, szKey, 2, "", 0, Dummy); //Gets the secondary weapon selected         iSelectedWeapon = str_to_num(szKey);     g_isPreviousWeapons[id] = iSelectedWeapon; //Stores the selected weapon for option 2 and 3 on the main menu         new WeaponName[32], szArrayData[32];     ArrayGetString(g_SecondaryWeapons, iSelectedWeapon, szArrayData, charsmax(szArrayData)); //Gets the weapon name from the array     replace_all(szArrayData, charsmax(szArrayData), " ", ""); //removes the spaces     format(WeaponName, charsmax(WeaponName), "weapon_%s", szArrayData); //adds weapon_ to the weapon name     strtolower(WeaponName);//Converts all to lower case     GiveWeapons(id, WeaponName); //Gives secondary weapon } public grenade_throw(id , greindex , wId) //When a grenade is thrown switch to last inv automatically {     if(get_pcvar_num(g_iToggle) && get_pcvar_num(g_iFastSwitch))     {         client_cmd(id, "lastinv");     } } stock GiveWeapons(id, szWeapon[]) {     if(is_user_connected(id))     {         new iWeaponId = get_weaponid(szWeapon); //Get the weapon id of the weapon given         give_item(id, szWeapon); //Give the weapon         cs_set_user_bpammo(id, iWeaponId, g_WeaponBPAmmo[iWeaponId]); //Set the ammo to max ammo     } } stock StripUserWeapons(id) {     new iC4Ent = get_pdata_cbase(id, OFFSET_C4_SLOT); //Gets the slot for C4         if( iC4Ent > 0 ) //If you have the C4     {         set_pdata_cbase(id, OFFSET_C4_SLOT, FM_NULLENT); //Remove it     }     strip_user_weapons(id); //Strip User weapons     give_item(id, "weapon_knife"); //Give the knife     set_pdata_int(id, OFFSET_PRIMARYWEAPON, 0); //Set primary weapon offset to 0     if( iC4Ent > 0 ) //if you had the c4     {         set_pev(id, pev_weapons, pev(id, pev_weapons) | (1<<CSW_C4)); //Give it back         set_pdata_cbase(id, OFFSET_C4_SLOT, iC4Ent); //Set the offset back to normal         cs_set_user_bpammo(id, CSW_C4, 1); //Give the backpack         cs_set_user_plant(id, 1); //Allow user to plant it     }     return PLUGIN_HANDLED; } public eTeamInfo() {     if(!get_pcvar_num(g_iToggle))         return PLUGIN_HANDLED;             new id = read_data(1);     new szTeam[2];     read_data(2, szTeam, charsmax(szTeam));     switch(szTeam[0])     {         case 'T':         {             g_iPlayerTeam[id] = CS_TEAM_T;         }         case 'C':         {             g_iPlayerTeam[id] = CS_TEAM_CT;         }     }         return PLUGIN_HANDLED; } public cmdAdminMenu(id) {     if(!get_pcvar_num(g_iToggle))         return PLUGIN_HANDLED;             new iAdminMenu = menu_create("WM Admin Menu", "HandleAdminMenu");         switch(get_pcvar_num(g_iTeamMode))     {         case 1:         {             menu_additem(iAdminMenu, "TeamMode:\r T", "0", 0);         }         case 2:         {             menu_additem(iAdminMenu, "TeamMode:\r CT", "0", 0);         }         default:         {             menu_additem(iAdminMenu, "TeamMode:\r Both", "0", 0);         }     }         menu_additem(iAdminMenu, "Save and Exit", "1", 0);         menu_setprop(iAdminMenu , MPROP_EXIT , MEXIT_NEVER); //Dont allow Menu to exit         menu_display(id, iAdminMenu);         return PLUGIN_HANDLED; } public ChangeTeamMode(id, CsTeams:iTeam, iValue) {     set_pcvar_num(g_iTeamMode, iValue);     g_MenuTeam = iTeam;     switch(iTeam)     {         case CS_TEAM_T: client_print(id, print_center, "Team Mode changed to T");         case CS_TEAM_CT: client_print(id, print_center, "Team Mode changed to CT");         default: client_print(id, print_center, "Team Mode changed to Both");     } } public HandleAdminMenu(id, iMenu, iItem) {     new szKey[3], bool:bUpdateMenu, Dummy;     menu_item_getinfo(iMenu, iItem, Dummy, szKey, 2, "", 0, Dummy); //Gets the primary weapon selected.         switch(str_to_num(szKey))     {         case 0:         {             switch(get_pcvar_num(g_iTeamMode))             {                 case 1:                 {                     ChangeTeamMode(id, CS_TEAM_CT, 2);                     bUpdateMenu = true;                 }                 case 2:                 {                     ChangeTeamMode(id, CS_TEAM_UNASSIGNED, 0);                     bUpdateMenu = true;                 }                 default:                 {                     ChangeTeamMode(id, CS_TEAM_T, 1);                     bUpdateMenu = true;                 }             }         }         case 1:         {             server_cmd("sv_restart 1");         }     }         if(bUpdateMenu)     {         menu_destroy(iMenu);         cmdAdminMenu(id);     }     else     {         menu_destroy(iMenu);     } }

Last edited by KaLoIaN; 06-07-2016 at 06:57.
KaLoIaN is offline
KaLoIaN
Senior Member
Join Date: Feb 2013
Old 06-08-2016 , 07:30   Re: Menu Save Player Choice [-HELP-]
Reply With Quote #12

Any ideas?
KaLoIaN is offline
KaLoIaN
Senior Member
Join Date: Feb 2013
Old 06-09-2016 , 02:36   Re: Menu Save Player Choice [-HELP-]
Reply With Quote #13

Somebody ?
KaLoIaN is offline
wickedd
Veteran Member
Join Date: Nov 2009
Old 06-09-2016 , 04:10   Re: Menu Save Player Choice [-HELP-]
Reply With Quote #14

Quote:
Originally Posted by KaLoIaN View Post
Hi guys, how I can save player choice like in CSDM?

I do not really want to leech the CSDM code for this and I was wondering how to do it...
Look at CSDM and see for yourself. Why should we tell you how when you have a working example.

Quote:
Originally Posted by KaLoIaN View Post
I did not want to copy the CSDM code bcoz I am writing better CSDM plugin
You don't want to copy it, yet you want someone to tell how to do it. I doubt you will write anything.
Quote:
Originally Posted by KaLoIaN View Post
how I can save the weapons player lastly selected just like in CSDM by kWo ?

Just look at code and see for yourself.

P.S. Stop bumping your thread.
__________________
Just buy the fucking game!!!!
I hate No-Steamers and lazy ass people.
wickedd is offline
zmd94
Veteran Member
Join Date: Nov 2013
Location: Malaysia (9w2zow).
Old 06-09-2016 , 04:47   Re: Menu Save Player Choice [-HELP-]
Reply With Quote #15

I recommend you to follow Sirius method:

1. https://forums.alliedmods.net/showpo...70&postcount=2
2. https://forums.alliedmods.net/showpo...27&postcount=9

I believe that you need to create a menu that will list out all the weapons for primary, secondary and nades.
zmd94 is offline
KaLoIaN
Senior Member
Join Date: Feb 2013
Old 06-09-2016 , 09:10   Re: Menu Save Player Choice [-HELP-]
Reply With Quote #16

Maybe I am doing Sirius's method wrong, but when I do add many guns it is getting complicated and needs hundreds of checks on spawn..
example

if(g_iPlayerChoice[id][1] = 1) GiveWeapon(id)
if(g_iPlayerChoice[id][2] = 2) GiveWeapon(id)
if(g_iPlayerChoice[id][3] = 3) GiveWeapon(id)
if(g_iPlayerChoice[id][4] = 4) GiveWeapon(id)
if(g_iPlayerChoice[id][5] = 5) GiveWeapon(id)
etc etc ...

and when someone gets AK47 from menu I write in case
g_iPlayerChoice[id][1] = 1
and so for all guns, m4a1 = 2, glock = 3 etc etc

@OciXCrom told me in skype that the code becomes too complicated and does not wanna look at it and I decided to delete it and find another way?

Last edited by KaLoIaN; 06-09-2016 at 09:13.
KaLoIaN is offline
zmd94
Veteran Member
Join Date: Nov 2013
Location: Malaysia (9w2zow).
Old 06-09-2016 , 11:45   Re: Menu Save Player Choice [-HELP-]
Reply With Quote #17

Just see code from below plugin:

https://forums.alliedmods.net/showthread.php?t=244579
zmd94 is offline
KaLoIaN
Senior Member
Join Date: Feb 2013
Old 06-09-2016 , 12:08   Re: Menu Save Player Choice [-HELP-]
Reply With Quote #18

It is a big code, what I must look for?

new const WeaponsData[][WEAPONSWAR] =

This variable?

Any explainations ?

Last edited by KaLoIaN; 06-09-2016 at 12:09.
KaLoIaN is offline
KaLoIaN
Senior Member
Join Date: Feb 2013
Old 06-11-2016 , 13:09   Re: Menu Save Player Choice [-HELP-]
Reply With Quote #19

Any ideas ???
KaLoIaN is offline
KaLoIaN
Senior Member
Join Date: Feb 2013
Old 06-12-2016 , 03:27   Re: Menu Save Player Choice [-HELP-]
Reply With Quote #20

Oh c'mon...
KaLoIaN 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 04:24.


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