hlmod.hu

Magyar Half-Life Mód közösség!
Pontos idő: 2024.06.16. 07:37



Jelenlévő felhasználók

Jelenleg 381 felhasználó van jelen :: 0 regisztrált, 0 rejtett és 381 vendég

A legtöbb felhasználó (1565 fő) 2020.11.21. 11:26-kor tartózkodott itt.

Regisztrált felhasználók: nincs regisztrált felhasználó az elmúlt 5 percben aktív felhasználók alapján

Utoljára aktív
Ahhoz hogy lásd ki volt utoljára aktív, be kell jelentkezned.



Az oldal teljeskörű
használatához regisztrálj.

Regisztráció

Kereső


Új téma nyitása  Hozzászólás a témához  [ 10 hozzászólás ] 
Szerző Üzenet
 Hozzászólás témája: [Reapi] Fegyvermenü pályatiltóval
HozzászólásElküldve: 2018.06.06. 15:34 
Offline
Senior Tag

Csatlakozott: 2015.11.20. 17:59
Hozzászólások: 270
Megköszönt másnak: 33 alkalommal
Megköszönték neki: 2 alkalommal
Hali,

Valaki megtudja nekem csinálni hogy a reapi fegyvermenüben legyen pályatiltó ?

Köszönöm Előre is!

_________________
Kép


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: [Reapi] Fegyvermenü pályatiltóval
HozzászólásElküldve: 2018.06.07. 09:14 
Offline
Felfüggesztve
Avatar

Csatlakozott: 2013.06.09. 18:47
Hozzászólások: 2004
Megköszönt másnak: 1 alkalommal
Megköszönték neki: 220 alkalommal
matkoimre írta:
Hali,

Valaki megtudja nekem csinálni hogy a reapi fegyvermenüben legyen pályatiltó ?

Köszönöm Előre is!


Forráskód pls..

_________________
Ha elnyerte valamelyik témában a hozzászólásom a tetszésedet melyet olvastál, akkor egy egyszerű gombnyomással kifejezheted, hogy tetszett.


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: [Reapi] Fegyvermenü pályatiltóval
HozzászólásElküldve: 2018.06.07. 15:29 
Offline
Senior Tag

Csatlakozott: 2015.11.20. 17:59
Hozzászólások: 270
Megköszönt másnak: 33 alkalommal
Megköszönték neki: 2 alkalommal
Anonymous1337 írta:
matkoimre írta:
Hali,

Valaki megtudja nekem csinálni hogy a reapi fegyvermenüben legyen pályatiltó ?

Köszönöm Előre is!


Forráskód pls..


  1. /*
  2.             Extended Weapon Menu
  3.                 v1.4 by mforce
  4.        
  5.         Changes:
  6.        
  7.         v1.1 - Multilang added, strip_user_weapons fixed, "hardcoded" things fixed,
  8.         unnecessary cvar removed, using Safety1st method for money block, ColorChat included.
  9.        
  10.         v1.2 - AMXX 1.8.3 support fixed, minimal improvements (less cvar hook)
  11.         v1.21 - Multilang fix.
  12.         v1.3 - Plugin pause removed. Added files for modify weapon menu items.
  13.         v1.4 - Added give and drop by Safety1st, menu builds by Vaqtincha's plugin.
  14.     */
  15.      
  16.      
  17.     #include <amxmodx>
  18.     #include <reapi>
  19.      
  20.     new const PLUGIN[] = "[ReApi] Extended Weapon Menu";
  21.     new const VERSION[] = "1.4";
  22.     new const AUTHOR[] = "mforce";
  23.      
  24.      
  25.     new const PREFIX[] = "^4[EWM]";
  26.      
  27.     #if AMXX_VERSION_NUM < 183
  28.     #include <colorchat>
  29.     const MAX_PLAYERS = 32;
  30.     #endif
  31.     const HUD_HIDE_MONEY = 1<<5;
  32.      
  33.     new Array:g_Primary_MenuItems, Array:g_Secondary_MenuItems;
  34.     new g_iPrim_TotalItems, g_iSec_TotalItems;
  35.     new g_iPrim_EquipMenuID, g_iSec_EquipMenuID;
  36.     enum _:weapinfo {weap_name[32], bpammo};
  37.     enum _:PCVARS {AwpMinPlayers, MaxAwps, PistolMenu, MaxHeg, MaxFlash, MaxSmoke}
  38.     enum _:TEAMS {TE, CT};
  39.     enum _:MAXGRENADES {HE, FLASH, SMOKE};
  40.     enum _:AWPCVARS {MinPlayers, MaxAwp};
  41.     new g_Cvars[PCVARS], bool:g_AllowAWP, g_Awps[TEAMS], bool:g_Used[MAX_PLAYERS+1], g_Grenades[MAXGRENADES], g_AWPCvarHook[AWPCVARS];
  42.      
  43.      
  44.     new const g_szWeaponNames[CSW_P90+1][] = {
  45.         "","weapon_p228","weapon_shield","weapon_scout","weapon_hegrenade","weapon_xm1014","weapon_c4",
  46.         "weapon_mac10","weapon_aug","weapon_smokegrenade","weapon_elite","weapon_fiveseven","weapon_ump45",
  47.         "weapon_sg550","weapon_galil","weapon_famas","weapon_usp","weapon_glock18","weapon_awp",
  48.         "weapon_mp5navy","weapon_m249","weapon_m3","weapon_m4a1","weapon_tmp","weapon_g3sg1",
  49.         "weapon_flashbang","weapon_deagle","weapon_sg552","weapon_ak47","weapon_knife","weapon_p90"
  50.     }
  51.      
  52.     public plugin_init() {
  53.         register_plugin(PLUGIN, VERSION, AUTHOR);
  54.         register_dictionary("extended_weapon_menu.txt");
  55.         g_Cvars[AwpMinPlayers] = register_cvar("ewm_awpminplayers", "4")
  56.         g_Cvars[MaxAwps] = register_cvar("ewm_maxawp", "3")
  57.         g_Cvars[PistolMenu] = register_cvar("ewm_pistolmenu", "0")
  58.         g_Cvars[MaxHeg] = register_cvar("ewm_maxheg", "1")
  59.         g_Cvars[MaxFlash] = register_cvar("ewm_maxflash", "2")
  60.         g_Cvars[MaxSmoke] = register_cvar("ewm_maxsmoke", "1")
  61.         RegisterHookChain(RG_CBasePlayer_Spawn, "weapmenu", true);
  62.         register_event("HLTV", "Event_NewRound", "a", "1=0", "2=0");
  63.        
  64.         new const commands[][] = {"say /gun", "say /guns", "say /weap", "say_team /gun", "say_team /guns", "say_team /weap"};
  65.         for(new i; i < sizeof(commands); i++) {
  66.             register_clcmd(commands[i], "weapmenu");
  67.         }
  68.        
  69.         set_member_game(m_bMapHasBuyZone, false);
  70.         register_event("ResetHUD", "Event_ResetHUD", "b")
  71.         register_event("HideWeapon", "Event_HideWeapon", "b")
  72.         set_msg_block(get_user_msgid("Money"), BLOCK_SET)
  73.        
  74.         g_Primary_MenuItems = ArrayCreate(weapinfo);
  75.         g_Secondary_MenuItems = ArrayCreate(weapinfo);
  76.     }
  77.      
  78.     public plugin_cfg() {
  79.         new sBuffer[256], sFile[128], sData[2][32], pFile;
  80.         get_localinfo("amxx_configsdir", sFile, charsmax(sFile));
  81.         add(sFile, charsmax(sFile), "/ewm_weapons.ini");
  82.      
  83.         pFile = fopen(sFile, "rt");
  84.         if(!pFile) set_fail_state("Error reading weapon menu items config file.");
  85.        
  86.         new Trie:tCheckWeaponName = TrieCreate();
  87.         new Trie:tCheckAddedItems = TrieCreate()
  88.        
  89.         for(new i = 0; i< sizeof(g_szWeaponNames); i++)
  90.             TrieSetCell(tCheckWeaponName, g_szWeaponNames[i], 1);
  91.        
  92.         new bSection, menudata[weapinfo];
  93.        
  94.         while(!feof(pFile)) {
  95.             fgets(pFile, sBuffer, charsmax(sBuffer)); trim(sBuffer);
  96.             if(!sBuffer[0] || sBuffer[0] == ';' || sBuffer[0] == '#') continue;
  97.            
  98.             if(sBuffer[0] == '[') {
  99.                 if(equali(sBuffer, "[weapons]")) bSection = 1;
  100.                 else if(equali(sBuffer, "[pistols]")) bSection = 2;
  101.                 else bSection = 0;
  102.                
  103.                 continue;
  104.             }
  105.      
  106.             if(parse(sBuffer, sData[0], charsmax(sData[]), sData[1], charsmax(sData[]))) {
  107.                 format(sData[0], charsmax(sData[]), "weapon_%s", sData[0]);
  108.                 strtolower(sData[0]);
  109.                
  110.                 if(!sData[0][0] || !TrieKeyExists(tCheckWeaponName, sData[0])) {
  111.                     server_print("WARNING: Invalid weapon name ^"%s^" will be skipped!", sData[0]);
  112.                     continue;
  113.                 }
  114.                 if(TrieKeyExists(tCheckAddedItems, sData[0])) {
  115.                     server_print("WARNING: Item ^"%s^" is already added!", sData[0]);
  116.                     continue;
  117.                 }
  118.                
  119.                 copy(menudata[weap_name], charsmax(menudata[weap_name]), sData[0]);
  120.                 menudata[bpammo] = str_to_num(sData[1]);
  121.                 TrieSetCell(tCheckAddedItems, sData[0], 1);
  122.                
  123.                 if(bSection == 1) {
  124.                     ArrayPushArray(g_Primary_MenuItems, menudata);
  125.                     g_iPrim_TotalItems++
  126.                 }
  127.                 else if(bSection == 2) {
  128.                     ArrayPushArray(g_Secondary_MenuItems, menudata);
  129.                     g_iSec_TotalItems++
  130.                 }
  131.             }
  132.         }
  133.        
  134.         fclose(pFile);
  135.         TrieDestroy(tCheckWeaponName);
  136.         TrieDestroy(tCheckAddedItems);
  137.        
  138.         if(!g_iPrim_TotalItems || !g_iSec_TotalItems) set_fail_state("Error! The menu doesn't contain any weapons.");
  139.        
  140.         build_menu();
  141.     }
  142.      
  143.     build_menu() {
  144.         g_iPrim_EquipMenuID = menu_create(PLUGIN, "Prim_WeaponMenuHandler")
  145.         g_iSec_EquipMenuID = menu_create(PLUGIN, "Sec_WeaponMenuHandler")
  146.         // menu_setprop(g_iPrim_EquipMenuID, MPROP_NUMBER_COLOR, "\r")
  147.      
  148.         new szMenuText[64], menudata[weapinfo], szNum[3], i;
  149.        
  150.         for(i = 0; i < g_iPrim_TotalItems; i++) {
  151.             ArrayGetArray(g_Primary_MenuItems, i, menudata)
  152.             strtoupper(menudata[weap_name]);
  153.             formatex(szMenuText, charsmax(szMenuText), "%s", menudata[weap_name][7]);
  154.             num_to_str(i, szNum, charsmax(szNum))
  155.             menu_additem(g_iPrim_EquipMenuID, szMenuText, szNum, 0)
  156.         }
  157.        
  158.         for(i = 0; i < g_iSec_TotalItems; i++) {
  159.             ArrayGetArray(g_Secondary_MenuItems, i, menudata)
  160.             strtoupper(menudata[weap_name]);
  161.             formatex(szMenuText, charsmax(szMenuText), "%s", menudata[weap_name][7]);
  162.             num_to_str(i, szNum, charsmax(szNum))
  163.             menu_additem(g_iSec_EquipMenuID, szMenuText, szNum, 0)
  164.         }
  165.        
  166.         menu_setprop(g_iPrim_EquipMenuID, MPROP_EXIT, MEXIT_ALL);
  167.         menu_setprop(g_iSec_EquipMenuID, MPROP_EXIT, MEXIT_ALL);
  168.         formatex(szMenuText, charsmax(szMenuText), "%L", LANG_SERVER, "EWM_MENU_BACK");
  169.         menu_setprop(g_iPrim_EquipMenuID, MPROP_BACKNAME, szMenuText);
  170.         menu_setprop(g_iSec_EquipMenuID, MPROP_BACKNAME, szMenuText);
  171.         formatex(szMenuText, charsmax(szMenuText), "%L", LANG_SERVER, "EWM_MENU_NEXT");
  172.         menu_setprop(g_iPrim_EquipMenuID, MPROP_NEXTNAME, szMenuText);
  173.         menu_setprop(g_iSec_EquipMenuID, MPROP_NEXTNAME, szMenuText);
  174.         formatex(szMenuText, charsmax(szMenuText), "%L", LANG_SERVER, "EWM_MENU_EXIT");
  175.         menu_setprop(g_iPrim_EquipMenuID, MPROP_EXITNAME, szMenuText);
  176.         menu_setprop(g_iSec_EquipMenuID, MPROP_EXITNAME, szMenuText);
  177.     }
  178.      
  179.     public Prim_WeaponMenuHandler(id, iMenu, iItem) {
  180.         if(iItem == MENU_EXIT) return PLUGIN_HANDLED;
  181.      
  182.         new szNum[3], iAccess, cb;
  183.         menu_item_getinfo(iMenu, iItem, iAccess, szNum, charsmax(szNum), _, _, cb);
  184.      
  185.         new iItemIndex = str_to_num(szNum);
  186.         new menudata[weapinfo];
  187.        
  188.         ArrayGetArray(g_Primary_MenuItems, iItemIndex, menudata);
  189.        
  190.         if(equal(menudata[weap_name], "weapon_awp")) {
  191.             if(!g_AllowAWP) {
  192.                 client_print_color(id, print_team_default, "%s^1 %L", PREFIX, LANG_SERVER, "EWM_AWP_ALLOWFROM", g_AWPCvarHook[MinPlayers], g_AWPCvarHook[MinPlayers]);
  193.                 weapmenu(id);
  194.                 return PLUGIN_HANDLED;
  195.             }
  196.             else if(g_AWPCvarHook[MaxAwp]) {
  197.                 switch(get_member(id, m_iTeam)) {
  198.                     case TEAM_TERRORIST: {
  199.                         if(g_Awps[TE] < g_AWPCvarHook[MaxAwp]) g_Awps[TE]++;
  200.                         else {
  201.                             client_print_color(id, print_team_default, "%s^1 %L", PREFIX, LANG_SERVER, "EWM_AWP_TOOMANY", g_AWPCvarHook[MaxAwp]);
  202.                             weapmenu(id);
  203.                             return PLUGIN_HANDLED;
  204.                         }
  205.                     }
  206.                     case TEAM_CT: {
  207.                         if(g_Awps[CT] < g_AWPCvarHook[MaxAwp]) g_Awps[CT]++;
  208.                         else {
  209.                             client_print_color(id, print_team_default, "%s^1 %L", PREFIX, LANG_SERVER, "EWM_AWP_TOOMANY", g_AWPCvarHook[MaxAwp]);
  210.                             weapmenu(id);
  211.                             return PLUGIN_HANDLED;
  212.                         }
  213.                     }
  214.                 }
  215.             }
  216.         }
  217.        
  218.         if(get_pcvar_num(g_Cvars[PistolMenu]) == 1) {
  219.             menu_display(id, g_iSec_EquipMenuID, 0);
  220.         }
  221.         else {
  222.             rg_give_item(id, "weapon_deagle", GT_REPLACE);
  223.             rg_set_user_bpammo(id, WEAPON_DEAGLE, 35);
  224.         }
  225.        
  226.         add_weapon(id, menudata[weap_name], menudata[bpammo]);
  227.         rg_set_user_armor(id, 100, ARMOR_VESTHELM);
  228.         give_grenades(id);
  229.         strtoupper(menudata[weap_name]);
  230.         client_print_color(id, print_team_default, "%s^1 %L", PREFIX, LANG_SERVER, "EWM_CHOOSED", menudata[weap_name][7]);
  231.         g_Used[id] = true;
  232.      
  233.         return PLUGIN_HANDLED;
  234.     }
  235.      
  236.     stock add_weapon(id, const weapname[], bp_ammo) {
  237.         rg_give_item(id, weapname, GT_REPLACE);
  238.         new weaponid = rg_get_weapon_info(weapname, WI_ID);
  239.         rg_set_user_bpammo(id, WeaponIdType:weaponid, bp_ammo);
  240.     }
  241.      
  242.     public Sec_WeaponMenuHandler(id, iMenu, iItem) {
  243.         if(iItem == MENU_EXIT) return PLUGIN_HANDLED;
  244.      
  245.         new szNum[3], iAccess, cb;
  246.         menu_item_getinfo(iMenu, iItem, iAccess, szNum, charsmax(szNum), _, _, cb);
  247.      
  248.         new iItemIndex = str_to_num(szNum);
  249.         new menudata[weapinfo];
  250.        
  251.         ArrayGetArray(g_Secondary_MenuItems, iItemIndex, menudata);
  252.        
  253.         add_weapon(id, menudata[weap_name], menudata[bpammo]);
  254.        
  255.         return PLUGIN_HANDLED;
  256.     }
  257.      
  258.     public Event_NewRound() {
  259.         arrayset(g_Used, false, sizeof(g_Used));
  260.         arrayset(g_Awps, 0, sizeof(g_Awps));
  261.         g_AWPCvarHook[MinPlayers] = get_pcvar_num(g_Cvars[AwpMinPlayers]);
  262.         g_AllowAWP = (get_member_game(m_iNumTerrorist) >= g_AWPCvarHook[MinPlayers] && get_member_game(m_iNumCT) >= g_AWPCvarHook[MinPlayers]) ? true : false;
  263.         g_Grenades[HE] = get_pcvar_num(g_Cvars[MaxHeg]);
  264.         g_Grenades[FLASH] = get_pcvar_num(g_Cvars[MaxFlash]);
  265.         g_Grenades[SMOKE] = get_pcvar_num(g_Cvars[MaxSmoke]);
  266.         g_AWPCvarHook[MaxAwp] = get_pcvar_num(g_Cvars[MaxAwps]);
  267.     }
  268.      
  269.     public weapmenu(id) {
  270.         if (!is_user_alive(id) || g_Used[id]) return;
  271.        
  272.         menu_display(id, g_iPrim_EquipMenuID, 0);
  273.     }
  274.      
  275.     give_grenades(id) {
  276.         if(g_Grenades[HE])
  277.             add_weapon(id, "weapon_hegrenade", g_Grenades[HE]);
  278.      
  279.         if(g_Grenades[FLASH])
  280.             add_weapon(id, "weapon_flashbang", g_Grenades[FLASH]);
  281.      
  282.         if(g_Grenades[SMOKE])
  283.             add_weapon(id, "weapon_smokegrenade", g_Grenades[SMOKE]);
  284.     }
  285.      
  286.     public Event_ResetHUD(id) {
  287.         set_member(id, m_iClientHideHUD, 0)
  288.         set_member(id, m_iHideHUD, HUD_HIDE_MONEY)
  289.     }
  290.      
  291.     public Event_HideWeapon(id) {
  292.         // for compatibility with other plugins using that message; ZP for example
  293.         new iFlags = read_data(1)
  294.         if(~iFlags & HUD_HIDE_MONEY) {
  295.             set_member(id, m_iClientHideHUD, 0)
  296.             set_member(id, m_iHideHUD, iFlags|HUD_HIDE_MONEY)
  297.         }
  298.     }
  299.      
  300.     public plugin_end() {
  301.         ArrayDestroy(g_Primary_MenuItems);
  302.         ArrayDestroy(g_Secondary_MenuItems);
  303.     }

_________________
Kép


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: [Reapi] Fegyvermenü pályatiltóval
HozzászólásElküldve: 2018.06.11. 18:03 
Offline
Senior Tag

Csatlakozott: 2015.11.20. 17:59
Hozzászólások: 270
Megköszönt másnak: 33 alkalommal
Megköszönték neki: 2 alkalommal
matkoimre írta:
Anonymous1337 írta:
matkoimre írta:
Hali,

Valaki megtudja nekem csinálni hogy a reapi fegyvermenüben legyen pályatiltó ?

Köszönöm Előre is!


Forráskód pls..


  1. /*
  2.             Extended Weapon Menu
  3.                 v1.4 by mforce
  4.        
  5.         Changes:
  6.        
  7.         v1.1 - Multilang added, strip_user_weapons fixed, "hardcoded" things fixed,
  8.         unnecessary cvar removed, using Safety1st method for money block, ColorChat included.
  9.        
  10.         v1.2 - AMXX 1.8.3 support fixed, minimal improvements (less cvar hook)
  11.         v1.21 - Multilang fix.
  12.         v1.3 - Plugin pause removed. Added files for modify weapon menu items.
  13.         v1.4 - Added give and drop by Safety1st, menu builds by Vaqtincha's plugin.
  14.     */
  15.      
  16.      
  17.     #include <amxmodx>
  18.     #include <reapi>
  19.      
  20.     new const PLUGIN[] = "[ReApi] Extended Weapon Menu";
  21.     new const VERSION[] = "1.4";
  22.     new const AUTHOR[] = "mforce";
  23.      
  24.      
  25.     new const PREFIX[] = "^4[EWM]";
  26.      
  27.     #if AMXX_VERSION_NUM < 183
  28.     #include <colorchat>
  29.     const MAX_PLAYERS = 32;
  30.     #endif
  31.     const HUD_HIDE_MONEY = 1<<5;
  32.      
  33.     new Array:g_Primary_MenuItems, Array:g_Secondary_MenuItems;
  34.     new g_iPrim_TotalItems, g_iSec_TotalItems;
  35.     new g_iPrim_EquipMenuID, g_iSec_EquipMenuID;
  36.     enum _:weapinfo {weap_name[32], bpammo};
  37.     enum _:PCVARS {AwpMinPlayers, MaxAwps, PistolMenu, MaxHeg, MaxFlash, MaxSmoke}
  38.     enum _:TEAMS {TE, CT};
  39.     enum _:MAXGRENADES {HE, FLASH, SMOKE};
  40.     enum _:AWPCVARS {MinPlayers, MaxAwp};
  41.     new g_Cvars[PCVARS], bool:g_AllowAWP, g_Awps[TEAMS], bool:g_Used[MAX_PLAYERS+1], g_Grenades[MAXGRENADES], g_AWPCvarHook[AWPCVARS];
  42.      
  43.      
  44.     new const g_szWeaponNames[CSW_P90+1][] = {
  45.         "","weapon_p228","weapon_shield","weapon_scout","weapon_hegrenade","weapon_xm1014","weapon_c4",
  46.         "weapon_mac10","weapon_aug","weapon_smokegrenade","weapon_elite","weapon_fiveseven","weapon_ump45",
  47.         "weapon_sg550","weapon_galil","weapon_famas","weapon_usp","weapon_glock18","weapon_awp",
  48.         "weapon_mp5navy","weapon_m249","weapon_m3","weapon_m4a1","weapon_tmp","weapon_g3sg1",
  49.         "weapon_flashbang","weapon_deagle","weapon_sg552","weapon_ak47","weapon_knife","weapon_p90"
  50.     }
  51.      
  52.     public plugin_init() {
  53.         register_plugin(PLUGIN, VERSION, AUTHOR);
  54.         register_dictionary("extended_weapon_menu.txt");
  55.         g_Cvars[AwpMinPlayers] = register_cvar("ewm_awpminplayers", "4")
  56.         g_Cvars[MaxAwps] = register_cvar("ewm_maxawp", "3")
  57.         g_Cvars[PistolMenu] = register_cvar("ewm_pistolmenu", "0")
  58.         g_Cvars[MaxHeg] = register_cvar("ewm_maxheg", "1")
  59.         g_Cvars[MaxFlash] = register_cvar("ewm_maxflash", "2")
  60.         g_Cvars[MaxSmoke] = register_cvar("ewm_maxsmoke", "1")
  61.         RegisterHookChain(RG_CBasePlayer_Spawn, "weapmenu", true);
  62.         register_event("HLTV", "Event_NewRound", "a", "1=0", "2=0");
  63.        
  64.         new const commands[][] = {"say /gun", "say /guns", "say /weap", "say_team /gun", "say_team /guns", "say_team /weap"};
  65.         for(new i; i < sizeof(commands); i++) {
  66.             register_clcmd(commands[i], "weapmenu");
  67.         }
  68.        
  69.         set_member_game(m_bMapHasBuyZone, false);
  70.         register_event("ResetHUD", "Event_ResetHUD", "b")
  71.         register_event("HideWeapon", "Event_HideWeapon", "b")
  72.         set_msg_block(get_user_msgid("Money"), BLOCK_SET)
  73.        
  74.         g_Primary_MenuItems = ArrayCreate(weapinfo);
  75.         g_Secondary_MenuItems = ArrayCreate(weapinfo);
  76.     }
  77.      
  78.     public plugin_cfg() {
  79.         new sBuffer[256], sFile[128], sData[2][32], pFile;
  80.         get_localinfo("amxx_configsdir", sFile, charsmax(sFile));
  81.         add(sFile, charsmax(sFile), "/ewm_weapons.ini");
  82.      
  83.         pFile = fopen(sFile, "rt");
  84.         if(!pFile) set_fail_state("Error reading weapon menu items config file.");
  85.        
  86.         new Trie:tCheckWeaponName = TrieCreate();
  87.         new Trie:tCheckAddedItems = TrieCreate()
  88.        
  89.         for(new i = 0; i< sizeof(g_szWeaponNames); i++)
  90.             TrieSetCell(tCheckWeaponName, g_szWeaponNames[i], 1);
  91.        
  92.         new bSection, menudata[weapinfo];
  93.        
  94.         while(!feof(pFile)) {
  95.             fgets(pFile, sBuffer, charsmax(sBuffer)); trim(sBuffer);
  96.             if(!sBuffer[0] || sBuffer[0] == ';' || sBuffer[0] == '#') continue;
  97.            
  98.             if(sBuffer[0] == '[') {
  99.                 if(equali(sBuffer, "[weapons]")) bSection = 1;
  100.                 else if(equali(sBuffer, "[pistols]")) bSection = 2;
  101.                 else bSection = 0;
  102.                
  103.                 continue;
  104.             }
  105.      
  106.             if(parse(sBuffer, sData[0], charsmax(sData[]), sData[1], charsmax(sData[]))) {
  107.                 format(sData[0], charsmax(sData[]), "weapon_%s", sData[0]);
  108.                 strtolower(sData[0]);
  109.                
  110.                 if(!sData[0][0] || !TrieKeyExists(tCheckWeaponName, sData[0])) {
  111.                     server_print("WARNING: Invalid weapon name ^"%s^" will be skipped!", sData[0]);
  112.                     continue;
  113.                 }
  114.                 if(TrieKeyExists(tCheckAddedItems, sData[0])) {
  115.                     server_print("WARNING: Item ^"%s^" is already added!", sData[0]);
  116.                     continue;
  117.                 }
  118.                
  119.                 copy(menudata[weap_name], charsmax(menudata[weap_name]), sData[0]);
  120.                 menudata[bpammo] = str_to_num(sData[1]);
  121.                 TrieSetCell(tCheckAddedItems, sData[0], 1);
  122.                
  123.                 if(bSection == 1) {
  124.                     ArrayPushArray(g_Primary_MenuItems, menudata);
  125.                     g_iPrim_TotalItems++
  126.                 }
  127.                 else if(bSection == 2) {
  128.                     ArrayPushArray(g_Secondary_MenuItems, menudata);
  129.                     g_iSec_TotalItems++
  130.                 }
  131.             }
  132.         }
  133.        
  134.         fclose(pFile);
  135.         TrieDestroy(tCheckWeaponName);
  136.         TrieDestroy(tCheckAddedItems);
  137.        
  138.         if(!g_iPrim_TotalItems || !g_iSec_TotalItems) set_fail_state("Error! The menu doesn't contain any weapons.");
  139.        
  140.         build_menu();
  141.     }
  142.      
  143.     build_menu() {
  144.         g_iPrim_EquipMenuID = menu_create(PLUGIN, "Prim_WeaponMenuHandler")
  145.         g_iSec_EquipMenuID = menu_create(PLUGIN, "Sec_WeaponMenuHandler")
  146.         // menu_setprop(g_iPrim_EquipMenuID, MPROP_NUMBER_COLOR, "\r")
  147.      
  148.         new szMenuText[64], menudata[weapinfo], szNum[3], i;
  149.        
  150.         for(i = 0; i < g_iPrim_TotalItems; i++) {
  151.             ArrayGetArray(g_Primary_MenuItems, i, menudata)
  152.             strtoupper(menudata[weap_name]);
  153.             formatex(szMenuText, charsmax(szMenuText), "%s", menudata[weap_name][7]);
  154.             num_to_str(i, szNum, charsmax(szNum))
  155.             menu_additem(g_iPrim_EquipMenuID, szMenuText, szNum, 0)
  156.         }
  157.        
  158.         for(i = 0; i < g_iSec_TotalItems; i++) {
  159.             ArrayGetArray(g_Secondary_MenuItems, i, menudata)
  160.             strtoupper(menudata[weap_name]);
  161.             formatex(szMenuText, charsmax(szMenuText), "%s", menudata[weap_name][7]);
  162.             num_to_str(i, szNum, charsmax(szNum))
  163.             menu_additem(g_iSec_EquipMenuID, szMenuText, szNum, 0)
  164.         }
  165.        
  166.         menu_setprop(g_iPrim_EquipMenuID, MPROP_EXIT, MEXIT_ALL);
  167.         menu_setprop(g_iSec_EquipMenuID, MPROP_EXIT, MEXIT_ALL);
  168.         formatex(szMenuText, charsmax(szMenuText), "%L", LANG_SERVER, "EWM_MENU_BACK");
  169.         menu_setprop(g_iPrim_EquipMenuID, MPROP_BACKNAME, szMenuText);
  170.         menu_setprop(g_iSec_EquipMenuID, MPROP_BACKNAME, szMenuText);
  171.         formatex(szMenuText, charsmax(szMenuText), "%L", LANG_SERVER, "EWM_MENU_NEXT");
  172.         menu_setprop(g_iPrim_EquipMenuID, MPROP_NEXTNAME, szMenuText);
  173.         menu_setprop(g_iSec_EquipMenuID, MPROP_NEXTNAME, szMenuText);
  174.         formatex(szMenuText, charsmax(szMenuText), "%L", LANG_SERVER, "EWM_MENU_EXIT");
  175.         menu_setprop(g_iPrim_EquipMenuID, MPROP_EXITNAME, szMenuText);
  176.         menu_setprop(g_iSec_EquipMenuID, MPROP_EXITNAME, szMenuText);
  177.     }
  178.      
  179.     public Prim_WeaponMenuHandler(id, iMenu, iItem) {
  180.         if(iItem == MENU_EXIT) return PLUGIN_HANDLED;
  181.      
  182.         new szNum[3], iAccess, cb;
  183.         menu_item_getinfo(iMenu, iItem, iAccess, szNum, charsmax(szNum), _, _, cb);
  184.      
  185.         new iItemIndex = str_to_num(szNum);
  186.         new menudata[weapinfo];
  187.        
  188.         ArrayGetArray(g_Primary_MenuItems, iItemIndex, menudata);
  189.        
  190.         if(equal(menudata[weap_name], "weapon_awp")) {
  191.             if(!g_AllowAWP) {
  192.                 client_print_color(id, print_team_default, "%s^1 %L", PREFIX, LANG_SERVER, "EWM_AWP_ALLOWFROM", g_AWPCvarHook[MinPlayers], g_AWPCvarHook[MinPlayers]);
  193.                 weapmenu(id);
  194.                 return PLUGIN_HANDLED;
  195.             }
  196.             else if(g_AWPCvarHook[MaxAwp]) {
  197.                 switch(get_member(id, m_iTeam)) {
  198.                     case TEAM_TERRORIST: {
  199.                         if(g_Awps[TE] < g_AWPCvarHook[MaxAwp]) g_Awps[TE]++;
  200.                         else {
  201.                             client_print_color(id, print_team_default, "%s^1 %L", PREFIX, LANG_SERVER, "EWM_AWP_TOOMANY", g_AWPCvarHook[MaxAwp]);
  202.                             weapmenu(id);
  203.                             return PLUGIN_HANDLED;
  204.                         }
  205.                     }
  206.                     case TEAM_CT: {
  207.                         if(g_Awps[CT] < g_AWPCvarHook[MaxAwp]) g_Awps[CT]++;
  208.                         else {
  209.                             client_print_color(id, print_team_default, "%s^1 %L", PREFIX, LANG_SERVER, "EWM_AWP_TOOMANY", g_AWPCvarHook[MaxAwp]);
  210.                             weapmenu(id);
  211.                             return PLUGIN_HANDLED;
  212.                         }
  213.                     }
  214.                 }
  215.             }
  216.         }
  217.        
  218.         if(get_pcvar_num(g_Cvars[PistolMenu]) == 1) {
  219.             menu_display(id, g_iSec_EquipMenuID, 0);
  220.         }
  221.         else {
  222.             rg_give_item(id, "weapon_deagle", GT_REPLACE);
  223.             rg_set_user_bpammo(id, WEAPON_DEAGLE, 35);
  224.         }
  225.        
  226.         add_weapon(id, menudata[weap_name], menudata[bpammo]);
  227.         rg_set_user_armor(id, 100, ARMOR_VESTHELM);
  228.         give_grenades(id);
  229.         strtoupper(menudata[weap_name]);
  230.         client_print_color(id, print_team_default, "%s^1 %L", PREFIX, LANG_SERVER, "EWM_CHOOSED", menudata[weap_name][7]);
  231.         g_Used[id] = true;
  232.      
  233.         return PLUGIN_HANDLED;
  234.     }
  235.      
  236.     stock add_weapon(id, const weapname[], bp_ammo) {
  237.         rg_give_item(id, weapname, GT_REPLACE);
  238.         new weaponid = rg_get_weapon_info(weapname, WI_ID);
  239.         rg_set_user_bpammo(id, WeaponIdType:weaponid, bp_ammo);
  240.     }
  241.      
  242.     public Sec_WeaponMenuHandler(id, iMenu, iItem) {
  243.         if(iItem == MENU_EXIT) return PLUGIN_HANDLED;
  244.      
  245.         new szNum[3], iAccess, cb;
  246.         menu_item_getinfo(iMenu, iItem, iAccess, szNum, charsmax(szNum), _, _, cb);
  247.      
  248.         new iItemIndex = str_to_num(szNum);
  249.         new menudata[weapinfo];
  250.        
  251.         ArrayGetArray(g_Secondary_MenuItems, iItemIndex, menudata);
  252.        
  253.         add_weapon(id, menudata[weap_name], menudata[bpammo]);
  254.        
  255.         return PLUGIN_HANDLED;
  256.     }
  257.      
  258.     public Event_NewRound() {
  259.         arrayset(g_Used, false, sizeof(g_Used));
  260.         arrayset(g_Awps, 0, sizeof(g_Awps));
  261.         g_AWPCvarHook[MinPlayers] = get_pcvar_num(g_Cvars[AwpMinPlayers]);
  262.         g_AllowAWP = (get_member_game(m_iNumTerrorist) >= g_AWPCvarHook[MinPlayers] && get_member_game(m_iNumCT) >= g_AWPCvarHook[MinPlayers]) ? true : false;
  263.         g_Grenades[HE] = get_pcvar_num(g_Cvars[MaxHeg]);
  264.         g_Grenades[FLASH] = get_pcvar_num(g_Cvars[MaxFlash]);
  265.         g_Grenades[SMOKE] = get_pcvar_num(g_Cvars[MaxSmoke]);
  266.         g_AWPCvarHook[MaxAwp] = get_pcvar_num(g_Cvars[MaxAwps]);
  267.     }
  268.      
  269.     public weapmenu(id) {
  270.         if (!is_user_alive(id) || g_Used[id]) return;
  271.        
  272.         menu_display(id, g_iPrim_EquipMenuID, 0);
  273.     }
  274.      
  275.     give_grenades(id) {
  276.         if(g_Grenades[HE])
  277.             add_weapon(id, "weapon_hegrenade", g_Grenades[HE]);
  278.      
  279.         if(g_Grenades[FLASH])
  280.             add_weapon(id, "weapon_flashbang", g_Grenades[FLASH]);
  281.      
  282.         if(g_Grenades[SMOKE])
  283.             add_weapon(id, "weapon_smokegrenade", g_Grenades[SMOKE]);
  284.     }
  285.      
  286.     public Event_ResetHUD(id) {
  287.         set_member(id, m_iClientHideHUD, 0)
  288.         set_member(id, m_iHideHUD, HUD_HIDE_MONEY)
  289.     }
  290.      
  291.     public Event_HideWeapon(id) {
  292.         // for compatibility with other plugins using that message; ZP for example
  293.         new iFlags = read_data(1)
  294.         if(~iFlags & HUD_HIDE_MONEY) {
  295.             set_member(id, m_iClientHideHUD, 0)
  296.             set_member(id, m_iHideHUD, iFlags|HUD_HIDE_MONEY)
  297.         }
  298.     }
  299.      
  300.     public plugin_end() {
  301.         ArrayDestroy(g_Primary_MenuItems);
  302.         ArrayDestroy(g_Secondary_MenuItems);
  303.     }



Valaki beleírja nekem a pályatiltót ? Előre is köszönöm! ;)

_________________
Kép


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: [Reapi] Fegyvermenü pályatiltóval
HozzászólásElküldve: 2018.06.11. 22:34 
Offline
Felfüggesztve
Avatar

Csatlakozott: 2013.06.09. 18:47
Hozzászólások: 2004
Megköszönt másnak: 1 alkalommal
Megköszönték neki: 220 alkalommal
Milyen Pályatiltót? Nem értem. Pátyát akarsz tiltani? Töröld a .bsp fájlt a maps mappából. :D

matkoimre írta:
Valaki beleírja nekem a pályatiltót ? Előre is köszönöm! ;)

_________________
Ha elnyerte valamelyik témában a hozzászólásom a tetszésedet melyet olvastál, akkor egy egyszerű gombnyomással kifejezheted, hogy tetszett.


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: [Reapi] Fegyvermenü pályatiltóval
HozzászólásElküldve: 2018.06.12. 07:21 
Offline
Senior Tag

Csatlakozott: 2015.11.20. 17:59
Hozzászólások: 270
Megköszönt másnak: 33 alkalommal
Megköszönték neki: 2 alkalommal
Anonymous1337 írta:
Milyen Pályatiltót? Nem értem. Pátyát akarsz tiltani? Töröld a .bsp fájlt a maps mappából. :D

matkoimre írta:
Valaki beleírja nekem a pályatiltót ? Előre is köszönöm! ;)



Látom nem érted, Fun,aim,gg,fy,awp pályákon legyen tiltva a fegyvermenü :D

_________________
Kép


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: [Reapi] Fegyvermenü pályatiltóval
HozzászólásElküldve: 2018.06.12. 09:57 
Offline
Tag

Csatlakozott: 2012.05.14. 15:23
Hozzászólások: 51
Megköszönt másnak: 10 alkalommal
Megköszönték neki: 1 alkalommal
Ezt viszonylag egyszerű megcsinálni! Bemész a amxmodx/config mappába, ott létrehozol egy 'maps' mappát (szó szerint). Létre hozol benne egy 'plugins-gg.ini' fájlt (szó szerint) és bele irod a következőket:

"reapi_ExtendedWeaponMenu.amxx disabled"

...elmented és az összes 'gg_' mapokon nem lesz aktív a Fegyvermenü.

Ezt nevezik 'mapconfig'-nak!


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: [Reapi] Fegyvermenü pályatiltóval
HozzászólásElküldve: 2018.06.12. 10:54 
Offline
Senior Tag

Csatlakozott: 2015.11.20. 17:59
Hozzászólások: 270
Megköszönt másnak: 33 alkalommal
Megköszönték neki: 2 alkalommal
RihO írta:
Ezt viszonylag egyszerű megcsinálni! Bemész a amxmodx/config mappába, ott létrehozol egy 'maps' mappát (szó szerint). Létre hozol benne egy 'plugins-gg.ini' fájlt (szó szerint) és bele irod a következőket:

"reapi_ExtendedWeaponMenu.amxx disabled"

...elmented és az összes 'gg_' mapokon nem lesz aktív a Fegyvermenü.

Ezt nevezik 'mapconfig'-nak!



Látom nem nagyon értem mit szeretnék,

[Reapi] Fegyvermenü adott nekem valaki beleírná a pályatiltót a fegyvermenübe.

_________________
Kép


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: [Reapi] Fegyvermenü pályatiltóval
HozzászólásElküldve: 2018.06.12. 11:44 
Offline
Jómunkásember
Avatar

Csatlakozott: 2016.02.10. 12:46
Hozzászólások: 429
Megköszönt másnak: 61 alkalommal
Megköszönték neki: 157 alkalommal
Üdv. Parancsolj:

  1. /*
  2.             Extended Weapon Menu
  3.                 v1.4 by mforce
  4.        
  5.         Changes:
  6.        
  7.         v1.1 - Multilang added, strip_user_weapons fixed, "hardcoded" things fixed,
  8.         unnecessary cvar removed, using Safety1st method for money block, ColorChat included.
  9.        
  10.         v1.2 - AMXX 1.8.3 support fixed, minimal improvements (less cvar hook)
  11.         v1.21 - Multilang fix.
  12.         v1.3 - Plugin pause removed. Added files for modify weapon menu items.
  13.         v1.4 - Added give and drop by Safety1st, menu builds by Vaqtincha's plugin.
  14.     */
  15.      
  16.      
  17.     #include <amxmodx>
  18.     #include <reapi>
  19.      
  20.     new const PLUGIN[] = "[ReApi] Extended Weapon Menu";
  21.     new const VERSION[] = "1.4";
  22.     new const AUTHOR[] = "mforce";
  23.    
  24.     new const Maps[][] = {     
  25.      "de_dust2",
  26.      "fy_snow"
  27.     }
  28.      
  29.     new const PREFIX[] = "^4[EWM]";
  30.      
  31.     #if AMXX_VERSION_NUM < 183
  32.     #include <colorchat>
  33.     const MAX_PLAYERS = 32;
  34.     #endif
  35.     const HUD_HIDE_MONEY = 1<<5;
  36.      
  37.     new Array:g_Primary_MenuItems, Array:g_Secondary_MenuItems;
  38.     new g_iPrim_TotalItems, g_iSec_TotalItems;
  39.     new g_iPrim_EquipMenuID, g_iSec_EquipMenuID;
  40.     enum _:weapinfo {weap_name[32], bpammo};
  41.     enum _:PCVARS {AwpMinPlayers, MaxAwps, PistolMenu, MaxHeg, MaxFlash, MaxSmoke}
  42.     enum _:TEAMS {TE, CT};
  43.     enum _:MAXGRENADES {HE, FLASH, SMOKE};
  44.     enum _:AWPCVARS {MinPlayers, MaxAwp};
  45.     new g_Cvars[PCVARS], bool:g_AllowAWP, g_Awps[TEAMS], bool:g_Used[MAX_PLAYERS+1], g_Grenades[MAXGRENADES], g_AWPCvarHook[AWPCVARS];
  46.     new GunMenuOff;
  47.      
  48.     new const g_szWeaponNames[CSW_P90+1][] = {
  49.         "","weapon_p228","weapon_shield","weapon_scout","weapon_hegrenade","weapon_xm1014","weapon_c4",
  50.         "weapon_mac10","weapon_aug","weapon_smokegrenade","weapon_elite","weapon_fiveseven","weapon_ump45",
  51.         "weapon_sg550","weapon_galil","weapon_famas","weapon_usp","weapon_glock18","weapon_awp",
  52.         "weapon_mp5navy","weapon_m249","weapon_m3","weapon_m4a1","weapon_tmp","weapon_g3sg1",
  53.         "weapon_flashbang","weapon_deagle","weapon_sg552","weapon_ak47","weapon_knife","weapon_p90"
  54.     }
  55.      
  56.     public plugin_init() {
  57.         register_plugin(PLUGIN, VERSION, AUTHOR);
  58.         register_dictionary("extended_weapon_menu.txt");
  59.         g_Cvars[AwpMinPlayers] = register_cvar("ewm_awpminplayers", "4")
  60.         g_Cvars[MaxAwps] = register_cvar("ewm_maxawp", "3")
  61.         g_Cvars[PistolMenu] = register_cvar("ewm_pistolmenu", "0")
  62.         g_Cvars[MaxHeg] = register_cvar("ewm_maxheg", "1")
  63.         g_Cvars[MaxFlash] = register_cvar("ewm_maxflash", "2")
  64.         g_Cvars[MaxSmoke] = register_cvar("ewm_maxsmoke", "1")
  65.         RegisterHookChain(RG_CBasePlayer_Spawn, "weapmenu", true);
  66.         register_event("HLTV", "Event_NewRound", "a", "1=0", "2=0");
  67.        
  68.         new const commands[][] = {"say /gun", "say /guns", "say /weap", "say_team /gun", "say_team /guns", "say_team /weap"};
  69.         for(new i; i < sizeof(commands); i++) {
  70.             register_clcmd(commands[i], "weapmenu");
  71.         }
  72.        
  73.         new Map[32];
  74.         get_mapname(Map, charsmax(Map));
  75.  
  76.         for(new i; i < sizeof(Maps); i++){
  77.             if(equal(Map,Maps[i])){
  78.                 GunMenuOff = 1;
  79.                 break;
  80.             }
  81.         }
  82.        
  83.         set_member_game(m_bMapHasBuyZone, false);
  84.         register_event("ResetHUD", "Event_ResetHUD", "b")
  85.         register_event("HideWeapon", "Event_HideWeapon", "b")
  86.         set_msg_block(get_user_msgid("Money"), BLOCK_SET)
  87.        
  88.         g_Primary_MenuItems = ArrayCreate(weapinfo);
  89.         g_Secondary_MenuItems = ArrayCreate(weapinfo);
  90.     }
  91.      
  92.     public plugin_cfg() {
  93.         new sBuffer[256], sFile[128], sData[2][32], pFile;
  94.         get_localinfo("amxx_configsdir", sFile, charsmax(sFile));
  95.         add(sFile, charsmax(sFile), "/ewm_weapons.ini");
  96.      
  97.         pFile = fopen(sFile, "rt");
  98.         if(!pFile) set_fail_state("Error reading weapon menu items config file.");
  99.        
  100.         new Trie:tCheckWeaponName = TrieCreate();
  101.         new Trie:tCheckAddedItems = TrieCreate()
  102.        
  103.         for(new i = 0; i< sizeof(g_szWeaponNames); i++)
  104.             TrieSetCell(tCheckWeaponName, g_szWeaponNames[i], 1);
  105.        
  106.         new bSection, menudata[weapinfo];
  107.        
  108.         while(!feof(pFile)) {
  109.             fgets(pFile, sBuffer, charsmax(sBuffer)); trim(sBuffer);
  110.             if(!sBuffer[0] || sBuffer[0] == ';' || sBuffer[0] == '#') continue;
  111.            
  112.             if(sBuffer[0] == '[') {
  113.                 if(equali(sBuffer, "[weapons]")) bSection = 1;
  114.                 else if(equali(sBuffer, "[pistols]")) bSection = 2;
  115.                 else bSection = 0;
  116.                
  117.                 continue;
  118.             }
  119.      
  120.             if(parse(sBuffer, sData[0], charsmax(sData[]), sData[1], charsmax(sData[]))) {
  121.                 format(sData[0], charsmax(sData[]), "weapon_%s", sData[0]);
  122.                 strtolower(sData[0]);
  123.                
  124.                 if(!sData[0][0] || !TrieKeyExists(tCheckWeaponName, sData[0])) {
  125.                     server_print("WARNING: Invalid weapon name ^"%s^" will be skipped!", sData[0]);
  126.                     continue;
  127.                 }
  128.                 if(TrieKeyExists(tCheckAddedItems, sData[0])) {
  129.                     server_print("WARNING: Item ^"%s^" is already added!", sData[0]);
  130.                     continue;
  131.                 }
  132.                
  133.                 copy(menudata[weap_name], charsmax(menudata[weap_name]), sData[0]);
  134.                 menudata[bpammo] = str_to_num(sData[1]);
  135.                 TrieSetCell(tCheckAddedItems, sData[0], 1);
  136.                
  137.                 if(bSection == 1) {
  138.                     ArrayPushArray(g_Primary_MenuItems, menudata);
  139.                     g_iPrim_TotalItems++
  140.                 }
  141.                 else if(bSection == 2) {
  142.                     ArrayPushArray(g_Secondary_MenuItems, menudata);
  143.                     g_iSec_TotalItems++
  144.                 }
  145.             }
  146.         }
  147.        
  148.         fclose(pFile);
  149.         TrieDestroy(tCheckWeaponName);
  150.         TrieDestroy(tCheckAddedItems);
  151.        
  152.         if(!g_iPrim_TotalItems || !g_iSec_TotalItems) set_fail_state("Error! The menu doesn't contain any weapons.");
  153.        
  154.         build_menu();
  155.     }
  156.      
  157.     build_menu() {
  158.         g_iPrim_EquipMenuID = menu_create(PLUGIN, "Prim_WeaponMenuHandler")
  159.         g_iSec_EquipMenuID = menu_create(PLUGIN, "Sec_WeaponMenuHandler")
  160.         // menu_setprop(g_iPrim_EquipMenuID, MPROP_NUMBER_COLOR, "\r")
  161.      
  162.         new szMenuText[64], menudata[weapinfo], szNum[3], i;
  163.        
  164.         for(i = 0; i < g_iPrim_TotalItems; i++) {
  165.             ArrayGetArray(g_Primary_MenuItems, i, menudata)
  166.             strtoupper(menudata[weap_name]);
  167.             formatex(szMenuText, charsmax(szMenuText), "%s", menudata[weap_name][7]);
  168.             num_to_str(i, szNum, charsmax(szNum))
  169.             menu_additem(g_iPrim_EquipMenuID, szMenuText, szNum, 0)
  170.         }
  171.        
  172.         for(i = 0; i < g_iSec_TotalItems; i++) {
  173.             ArrayGetArray(g_Secondary_MenuItems, i, menudata)
  174.             strtoupper(menudata[weap_name]);
  175.             formatex(szMenuText, charsmax(szMenuText), "%s", menudata[weap_name][7]);
  176.             num_to_str(i, szNum, charsmax(szNum))
  177.             menu_additem(g_iSec_EquipMenuID, szMenuText, szNum, 0)
  178.         }
  179.        
  180.         menu_setprop(g_iPrim_EquipMenuID, MPROP_EXIT, MEXIT_ALL);
  181.         menu_setprop(g_iSec_EquipMenuID, MPROP_EXIT, MEXIT_ALL);
  182.         formatex(szMenuText, charsmax(szMenuText), "%L", LANG_SERVER, "EWM_MENU_BACK");
  183.         menu_setprop(g_iPrim_EquipMenuID, MPROP_BACKNAME, szMenuText);
  184.         menu_setprop(g_iSec_EquipMenuID, MPROP_BACKNAME, szMenuText);
  185.         formatex(szMenuText, charsmax(szMenuText), "%L", LANG_SERVER, "EWM_MENU_NEXT");
  186.         menu_setprop(g_iPrim_EquipMenuID, MPROP_NEXTNAME, szMenuText);
  187.         menu_setprop(g_iSec_EquipMenuID, MPROP_NEXTNAME, szMenuText);
  188.         formatex(szMenuText, charsmax(szMenuText), "%L", LANG_SERVER, "EWM_MENU_EXIT");
  189.         menu_setprop(g_iPrim_EquipMenuID, MPROP_EXITNAME, szMenuText);
  190.         menu_setprop(g_iSec_EquipMenuID, MPROP_EXITNAME, szMenuText);
  191.     }
  192.      
  193.     public Prim_WeaponMenuHandler(id, iMenu, iItem) {
  194.         if(iItem == MENU_EXIT) return PLUGIN_HANDLED;
  195.      
  196.         new szNum[3], iAccess, cb;
  197.         menu_item_getinfo(iMenu, iItem, iAccess, szNum, charsmax(szNum), _, _, cb);
  198.      
  199.         new iItemIndex = str_to_num(szNum);
  200.         new menudata[weapinfo];
  201.        
  202.         ArrayGetArray(g_Primary_MenuItems, iItemIndex, menudata);
  203.        
  204.         if(equal(menudata[weap_name], "weapon_awp")) {
  205.             if(!g_AllowAWP) {
  206.                 client_print_color(id, print_team_default, "%s^1 %L", PREFIX, LANG_SERVER, "EWM_AWP_ALLOWFROM", g_AWPCvarHook[MinPlayers], g_AWPCvarHook[MinPlayers]);
  207.                 weapmenu(id);
  208.                 return PLUGIN_HANDLED;
  209.             }
  210.             else if(g_AWPCvarHook[MaxAwp]) {
  211.                 switch(get_member(id, m_iTeam)) {
  212.                     case TEAM_TERRORIST: {
  213.                         if(g_Awps[TE] < g_AWPCvarHook[MaxAwp]) g_Awps[TE]++;
  214.                         else {
  215.                             client_print_color(id, print_team_default, "%s^1 %L", PREFIX, LANG_SERVER, "EWM_AWP_TOOMANY", g_AWPCvarHook[MaxAwp]);
  216.                             weapmenu(id);
  217.                             return PLUGIN_HANDLED;
  218.                         }
  219.                     }
  220.                     case TEAM_CT: {
  221.                         if(g_Awps[CT] < g_AWPCvarHook[MaxAwp]) g_Awps[CT]++;
  222.                         else {
  223.                             client_print_color(id, print_team_default, "%s^1 %L", PREFIX, LANG_SERVER, "EWM_AWP_TOOMANY", g_AWPCvarHook[MaxAwp]);
  224.                             weapmenu(id);
  225.                             return PLUGIN_HANDLED;
  226.                         }
  227.                     }
  228.                 }
  229.             }
  230.         }
  231.        
  232.         if(get_pcvar_num(g_Cvars[PistolMenu]) == 1) {
  233.             menu_display(id, g_iSec_EquipMenuID, 0);
  234.         }
  235.         else {
  236.             rg_give_item(id, "weapon_deagle", GT_REPLACE);
  237.             rg_set_user_bpammo(id, WEAPON_DEAGLE, 35);
  238.         }
  239.        
  240.         add_weapon(id, menudata[weap_name], menudata[bpammo]);
  241.         rg_set_user_armor(id, 100, ARMOR_VESTHELM);
  242.         give_grenades(id);
  243.         strtoupper(menudata[weap_name]);
  244.         client_print_color(id, print_team_default, "%s^1 %L", PREFIX, LANG_SERVER, "EWM_CHOOSED", menudata[weap_name][7]);
  245.         g_Used[id] = true;
  246.      
  247.         return PLUGIN_HANDLED;
  248.     }
  249.      
  250.     stock add_weapon(id, const weapname[], bp_ammo) {
  251.         rg_give_item(id, weapname, GT_REPLACE);
  252.         new weaponid = rg_get_weapon_info(weapname, WI_ID);
  253.         rg_set_user_bpammo(id, WeaponIdType:weaponid, bp_ammo);
  254.     }
  255.      
  256.     public Sec_WeaponMenuHandler(id, iMenu, iItem) {
  257.         if(iItem == MENU_EXIT) return PLUGIN_HANDLED;
  258.      
  259.         new szNum[3], iAccess, cb;
  260.         menu_item_getinfo(iMenu, iItem, iAccess, szNum, charsmax(szNum), _, _, cb);
  261.      
  262.         new iItemIndex = str_to_num(szNum);
  263.         new menudata[weapinfo];
  264.        
  265.         ArrayGetArray(g_Secondary_MenuItems, iItemIndex, menudata);
  266.        
  267.         add_weapon(id, menudata[weap_name], menudata[bpammo]);
  268.        
  269.         return PLUGIN_HANDLED;
  270.     }
  271.      
  272.     public Event_NewRound() {
  273.         arrayset(g_Used, false, sizeof(g_Used));
  274.         arrayset(g_Awps, 0, sizeof(g_Awps));
  275.         g_AWPCvarHook[MinPlayers] = get_pcvar_num(g_Cvars[AwpMinPlayers]);
  276.         g_AllowAWP = (get_member_game(m_iNumTerrorist) >= g_AWPCvarHook[MinPlayers] && get_member_game(m_iNumCT) >= g_AWPCvarHook[MinPlayers]) ? true : false;
  277.         g_Grenades[HE] = get_pcvar_num(g_Cvars[MaxHeg]);
  278.         g_Grenades[FLASH] = get_pcvar_num(g_Cvars[MaxFlash]);
  279.         g_Grenades[SMOKE] = get_pcvar_num(g_Cvars[MaxSmoke]);
  280.         g_AWPCvarHook[MaxAwp] = get_pcvar_num(g_Cvars[MaxAwps]);
  281.     }
  282.      
  283.     public weapmenu(id) {
  284.         if (!is_user_alive(id) || g_Used[id] || GunMenuOff) return;
  285.        
  286.         menu_display(id, g_iPrim_EquipMenuID, 0);
  287.     }
  288.      
  289.     give_grenades(id) {
  290.         if(g_Grenades[HE])
  291.             add_weapon(id, "weapon_hegrenade", g_Grenades[HE]);
  292.      
  293.         if(g_Grenades[FLASH])
  294.             add_weapon(id, "weapon_flashbang", g_Grenades[FLASH]);
  295.      
  296.         if(g_Grenades[SMOKE])
  297.             add_weapon(id, "weapon_smokegrenade", g_Grenades[SMOKE]);
  298.     }
  299.      
  300.     public Event_ResetHUD(id) {
  301.         set_member(id, m_iClientHideHUD, 0)
  302.         set_member(id, m_iHideHUD, HUD_HIDE_MONEY)
  303.     }
  304.      
  305.     public Event_HideWeapon(id) {
  306.         // for compatibility with other plugins using that message; ZP for example
  307.         new iFlags = read_data(1)
  308.         if(~iFlags & HUD_HIDE_MONEY) {
  309.             set_member(id, m_iClientHideHUD, 0)
  310.             set_member(id, m_iHideHUD, iFlags|HUD_HIDE_MONEY)
  311.         }
  312.     }
  313.      
  314.     public plugin_end() {
  315.         ArrayDestroy(g_Primary_MenuItems);
  316.         ArrayDestroy(g_Secondary_MenuItems);
  317.     }


A 24. sorban levő Const-ba beleírod, hogy melyik pályákon szeretnéd tíltani a fegyver menüt.


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: [Reapi] Fegyvermenü pályatiltóval
HozzászólásElküldve: 2018.06.12. 12:01 
Offline
Senior Tag

Csatlakozott: 2015.11.20. 17:59
Hozzászólások: 270
Megköszönt másnak: 33 alkalommal
Megköszönték neki: 2 alkalommal
Dooz írta:
Üdv. Parancsolj:

  1. /*
  2.             Extended Weapon Menu
  3.                 v1.4 by mforce
  4.        
  5.         Changes:
  6.        
  7.         v1.1 - Multilang added, strip_user_weapons fixed, "hardcoded" things fixed,
  8.         unnecessary cvar removed, using Safety1st method for money block, ColorChat included.
  9.        
  10.         v1.2 - AMXX 1.8.3 support fixed, minimal improvements (less cvar hook)
  11.         v1.21 - Multilang fix.
  12.         v1.3 - Plugin pause removed. Added files for modify weapon menu items.
  13.         v1.4 - Added give and drop by Safety1st, menu builds by Vaqtincha's plugin.
  14.     */
  15.      
  16.      
  17.     #include <amxmodx>
  18.     #include <reapi>
  19.      
  20.     new const PLUGIN[] = "[ReApi] Extended Weapon Menu";
  21.     new const VERSION[] = "1.4";
  22.     new const AUTHOR[] = "mforce";
  23.    
  24.     new const Maps[][] = {     
  25.      "de_dust2",
  26.      "fy_snow"
  27.     }
  28.      
  29.     new const PREFIX[] = "^4[EWM]";
  30.      
  31.     #if AMXX_VERSION_NUM < 183
  32.     #include <colorchat>
  33.     const MAX_PLAYERS = 32;
  34.     #endif
  35.     const HUD_HIDE_MONEY = 1<<5;
  36.      
  37.     new Array:g_Primary_MenuItems, Array:g_Secondary_MenuItems;
  38.     new g_iPrim_TotalItems, g_iSec_TotalItems;
  39.     new g_iPrim_EquipMenuID, g_iSec_EquipMenuID;
  40.     enum _:weapinfo {weap_name[32], bpammo};
  41.     enum _:PCVARS {AwpMinPlayers, MaxAwps, PistolMenu, MaxHeg, MaxFlash, MaxSmoke}
  42.     enum _:TEAMS {TE, CT};
  43.     enum _:MAXGRENADES {HE, FLASH, SMOKE};
  44.     enum _:AWPCVARS {MinPlayers, MaxAwp};
  45.     new g_Cvars[PCVARS], bool:g_AllowAWP, g_Awps[TEAMS], bool:g_Used[MAX_PLAYERS+1], g_Grenades[MAXGRENADES], g_AWPCvarHook[AWPCVARS];
  46.     new GunMenuOff;
  47.      
  48.     new const g_szWeaponNames[CSW_P90+1][] = {
  49.         "","weapon_p228","weapon_shield","weapon_scout","weapon_hegrenade","weapon_xm1014","weapon_c4",
  50.         "weapon_mac10","weapon_aug","weapon_smokegrenade","weapon_elite","weapon_fiveseven","weapon_ump45",
  51.         "weapon_sg550","weapon_galil","weapon_famas","weapon_usp","weapon_glock18","weapon_awp",
  52.         "weapon_mp5navy","weapon_m249","weapon_m3","weapon_m4a1","weapon_tmp","weapon_g3sg1",
  53.         "weapon_flashbang","weapon_deagle","weapon_sg552","weapon_ak47","weapon_knife","weapon_p90"
  54.     }
  55.      
  56.     public plugin_init() {
  57.         register_plugin(PLUGIN, VERSION, AUTHOR);
  58.         register_dictionary("extended_weapon_menu.txt");
  59.         g_Cvars[AwpMinPlayers] = register_cvar("ewm_awpminplayers", "4")
  60.         g_Cvars[MaxAwps] = register_cvar("ewm_maxawp", "3")
  61.         g_Cvars[PistolMenu] = register_cvar("ewm_pistolmenu", "0")
  62.         g_Cvars[MaxHeg] = register_cvar("ewm_maxheg", "1")
  63.         g_Cvars[MaxFlash] = register_cvar("ewm_maxflash", "2")
  64.         g_Cvars[MaxSmoke] = register_cvar("ewm_maxsmoke", "1")
  65.         RegisterHookChain(RG_CBasePlayer_Spawn, "weapmenu", true);
  66.         register_event("HLTV", "Event_NewRound", "a", "1=0", "2=0");
  67.        
  68.         new const commands[][] = {"say /gun", "say /guns", "say /weap", "say_team /gun", "say_team /guns", "say_team /weap"};
  69.         for(new i; i < sizeof(commands); i++) {
  70.             register_clcmd(commands[i], "weapmenu");
  71.         }
  72.        
  73.         new Map[32];
  74.         get_mapname(Map, charsmax(Map));
  75.  
  76.         for(new i; i < sizeof(Maps); i++){
  77.             if(equal(Map,Maps[i])){
  78.                 GunMenuOff = 1;
  79.                 break;
  80.             }
  81.         }
  82.        
  83.         set_member_game(m_bMapHasBuyZone, false);
  84.         register_event("ResetHUD", "Event_ResetHUD", "b")
  85.         register_event("HideWeapon", "Event_HideWeapon", "b")
  86.         set_msg_block(get_user_msgid("Money"), BLOCK_SET)
  87.        
  88.         g_Primary_MenuItems = ArrayCreate(weapinfo);
  89.         g_Secondary_MenuItems = ArrayCreate(weapinfo);
  90.     }
  91.      
  92.     public plugin_cfg() {
  93.         new sBuffer[256], sFile[128], sData[2][32], pFile;
  94.         get_localinfo("amxx_configsdir", sFile, charsmax(sFile));
  95.         add(sFile, charsmax(sFile), "/ewm_weapons.ini");
  96.      
  97.         pFile = fopen(sFile, "rt");
  98.         if(!pFile) set_fail_state("Error reading weapon menu items config file.");
  99.        
  100.         new Trie:tCheckWeaponName = TrieCreate();
  101.         new Trie:tCheckAddedItems = TrieCreate()
  102.        
  103.         for(new i = 0; i< sizeof(g_szWeaponNames); i++)
  104.             TrieSetCell(tCheckWeaponName, g_szWeaponNames[i], 1);
  105.        
  106.         new bSection, menudata[weapinfo];
  107.        
  108.         while(!feof(pFile)) {
  109.             fgets(pFile, sBuffer, charsmax(sBuffer)); trim(sBuffer);
  110.             if(!sBuffer[0] || sBuffer[0] == ';' || sBuffer[0] == '#') continue;
  111.            
  112.             if(sBuffer[0] == '[') {
  113.                 if(equali(sBuffer, "[weapons]")) bSection = 1;
  114.                 else if(equali(sBuffer, "[pistols]")) bSection = 2;
  115.                 else bSection = 0;
  116.                
  117.                 continue;
  118.             }
  119.      
  120.             if(parse(sBuffer, sData[0], charsmax(sData[]), sData[1], charsmax(sData[]))) {
  121.                 format(sData[0], charsmax(sData[]), "weapon_%s", sData[0]);
  122.                 strtolower(sData[0]);
  123.                
  124.                 if(!sData[0][0] || !TrieKeyExists(tCheckWeaponName, sData[0])) {
  125.                     server_print("WARNING: Invalid weapon name ^"%s^" will be skipped!", sData[0]);
  126.                     continue;
  127.                 }
  128.                 if(TrieKeyExists(tCheckAddedItems, sData[0])) {
  129.                     server_print("WARNING: Item ^"%s^" is already added!", sData[0]);
  130.                     continue;
  131.                 }
  132.                
  133.                 copy(menudata[weap_name], charsmax(menudata[weap_name]), sData[0]);
  134.                 menudata[bpammo] = str_to_num(sData[1]);
  135.                 TrieSetCell(tCheckAddedItems, sData[0], 1);
  136.                
  137.                 if(bSection == 1) {
  138.                     ArrayPushArray(g_Primary_MenuItems, menudata);
  139.                     g_iPrim_TotalItems++
  140.                 }
  141.                 else if(bSection == 2) {
  142.                     ArrayPushArray(g_Secondary_MenuItems, menudata);
  143.                     g_iSec_TotalItems++
  144.                 }
  145.             }
  146.         }
  147.        
  148.         fclose(pFile);
  149.         TrieDestroy(tCheckWeaponName);
  150.         TrieDestroy(tCheckAddedItems);
  151.        
  152.         if(!g_iPrim_TotalItems || !g_iSec_TotalItems) set_fail_state("Error! The menu doesn't contain any weapons.");
  153.        
  154.         build_menu();
  155.     }
  156.      
  157.     build_menu() {
  158.         g_iPrim_EquipMenuID = menu_create(PLUGIN, "Prim_WeaponMenuHandler")
  159.         g_iSec_EquipMenuID = menu_create(PLUGIN, "Sec_WeaponMenuHandler")
  160.         // menu_setprop(g_iPrim_EquipMenuID, MPROP_NUMBER_COLOR, "\r")
  161.      
  162.         new szMenuText[64], menudata[weapinfo], szNum[3], i;
  163.        
  164.         for(i = 0; i < g_iPrim_TotalItems; i++) {
  165.             ArrayGetArray(g_Primary_MenuItems, i, menudata)
  166.             strtoupper(menudata[weap_name]);
  167.             formatex(szMenuText, charsmax(szMenuText), "%s", menudata[weap_name][7]);
  168.             num_to_str(i, szNum, charsmax(szNum))
  169.             menu_additem(g_iPrim_EquipMenuID, szMenuText, szNum, 0)
  170.         }
  171.        
  172.         for(i = 0; i < g_iSec_TotalItems; i++) {
  173.             ArrayGetArray(g_Secondary_MenuItems, i, menudata)
  174.             strtoupper(menudata[weap_name]);
  175.             formatex(szMenuText, charsmax(szMenuText), "%s", menudata[weap_name][7]);
  176.             num_to_str(i, szNum, charsmax(szNum))
  177.             menu_additem(g_iSec_EquipMenuID, szMenuText, szNum, 0)
  178.         }
  179.        
  180.         menu_setprop(g_iPrim_EquipMenuID, MPROP_EXIT, MEXIT_ALL);
  181.         menu_setprop(g_iSec_EquipMenuID, MPROP_EXIT, MEXIT_ALL);
  182.         formatex(szMenuText, charsmax(szMenuText), "%L", LANG_SERVER, "EWM_MENU_BACK");
  183.         menu_setprop(g_iPrim_EquipMenuID, MPROP_BACKNAME, szMenuText);
  184.         menu_setprop(g_iSec_EquipMenuID, MPROP_BACKNAME, szMenuText);
  185.         formatex(szMenuText, charsmax(szMenuText), "%L", LANG_SERVER, "EWM_MENU_NEXT");
  186.         menu_setprop(g_iPrim_EquipMenuID, MPROP_NEXTNAME, szMenuText);
  187.         menu_setprop(g_iSec_EquipMenuID, MPROP_NEXTNAME, szMenuText);
  188.         formatex(szMenuText, charsmax(szMenuText), "%L", LANG_SERVER, "EWM_MENU_EXIT");
  189.         menu_setprop(g_iPrim_EquipMenuID, MPROP_EXITNAME, szMenuText);
  190.         menu_setprop(g_iSec_EquipMenuID, MPROP_EXITNAME, szMenuText);
  191.     }
  192.      
  193.     public Prim_WeaponMenuHandler(id, iMenu, iItem) {
  194.         if(iItem == MENU_EXIT) return PLUGIN_HANDLED;
  195.      
  196.         new szNum[3], iAccess, cb;
  197.         menu_item_getinfo(iMenu, iItem, iAccess, szNum, charsmax(szNum), _, _, cb);
  198.      
  199.         new iItemIndex = str_to_num(szNum);
  200.         new menudata[weapinfo];
  201.        
  202.         ArrayGetArray(g_Primary_MenuItems, iItemIndex, menudata);
  203.        
  204.         if(equal(menudata[weap_name], "weapon_awp")) {
  205.             if(!g_AllowAWP) {
  206.                 client_print_color(id, print_team_default, "%s^1 %L", PREFIX, LANG_SERVER, "EWM_AWP_ALLOWFROM", g_AWPCvarHook[MinPlayers], g_AWPCvarHook[MinPlayers]);
  207.                 weapmenu(id);
  208.                 return PLUGIN_HANDLED;
  209.             }
  210.             else if(g_AWPCvarHook[MaxAwp]) {
  211.                 switch(get_member(id, m_iTeam)) {
  212.                     case TEAM_TERRORIST: {
  213.                         if(g_Awps[TE] < g_AWPCvarHook[MaxAwp]) g_Awps[TE]++;
  214.                         else {
  215.                             client_print_color(id, print_team_default, "%s^1 %L", PREFIX, LANG_SERVER, "EWM_AWP_TOOMANY", g_AWPCvarHook[MaxAwp]);
  216.                             weapmenu(id);
  217.                             return PLUGIN_HANDLED;
  218.                         }
  219.                     }
  220.                     case TEAM_CT: {
  221.                         if(g_Awps[CT] < g_AWPCvarHook[MaxAwp]) g_Awps[CT]++;
  222.                         else {
  223.                             client_print_color(id, print_team_default, "%s^1 %L", PREFIX, LANG_SERVER, "EWM_AWP_TOOMANY", g_AWPCvarHook[MaxAwp]);
  224.                             weapmenu(id);
  225.                             return PLUGIN_HANDLED;
  226.                         }
  227.                     }
  228.                 }
  229.             }
  230.         }
  231.        
  232.         if(get_pcvar_num(g_Cvars[PistolMenu]) == 1) {
  233.             menu_display(id, g_iSec_EquipMenuID, 0);
  234.         }
  235.         else {
  236.             rg_give_item(id, "weapon_deagle", GT_REPLACE);
  237.             rg_set_user_bpammo(id, WEAPON_DEAGLE, 35);
  238.         }
  239.        
  240.         add_weapon(id, menudata[weap_name], menudata[bpammo]);
  241.         rg_set_user_armor(id, 100, ARMOR_VESTHELM);
  242.         give_grenades(id);
  243.         strtoupper(menudata[weap_name]);
  244.         client_print_color(id, print_team_default, "%s^1 %L", PREFIX, LANG_SERVER, "EWM_CHOOSED", menudata[weap_name][7]);
  245.         g_Used[id] = true;
  246.      
  247.         return PLUGIN_HANDLED;
  248.     }
  249.      
  250.     stock add_weapon(id, const weapname[], bp_ammo) {
  251.         rg_give_item(id, weapname, GT_REPLACE);
  252.         new weaponid = rg_get_weapon_info(weapname, WI_ID);
  253.         rg_set_user_bpammo(id, WeaponIdType:weaponid, bp_ammo);
  254.     }
  255.      
  256.     public Sec_WeaponMenuHandler(id, iMenu, iItem) {
  257.         if(iItem == MENU_EXIT) return PLUGIN_HANDLED;
  258.      
  259.         new szNum[3], iAccess, cb;
  260.         menu_item_getinfo(iMenu, iItem, iAccess, szNum, charsmax(szNum), _, _, cb);
  261.      
  262.         new iItemIndex = str_to_num(szNum);
  263.         new menudata[weapinfo];
  264.        
  265.         ArrayGetArray(g_Secondary_MenuItems, iItemIndex, menudata);
  266.        
  267.         add_weapon(id, menudata[weap_name], menudata[bpammo]);
  268.        
  269.         return PLUGIN_HANDLED;
  270.     }
  271.      
  272.     public Event_NewRound() {
  273.         arrayset(g_Used, false, sizeof(g_Used));
  274.         arrayset(g_Awps, 0, sizeof(g_Awps));
  275.         g_AWPCvarHook[MinPlayers] = get_pcvar_num(g_Cvars[AwpMinPlayers]);
  276.         g_AllowAWP = (get_member_game(m_iNumTerrorist) >= g_AWPCvarHook[MinPlayers] && get_member_game(m_iNumCT) >= g_AWPCvarHook[MinPlayers]) ? true : false;
  277.         g_Grenades[HE] = get_pcvar_num(g_Cvars[MaxHeg]);
  278.         g_Grenades[FLASH] = get_pcvar_num(g_Cvars[MaxFlash]);
  279.         g_Grenades[SMOKE] = get_pcvar_num(g_Cvars[MaxSmoke]);
  280.         g_AWPCvarHook[MaxAwp] = get_pcvar_num(g_Cvars[MaxAwps]);
  281.     }
  282.      
  283.     public weapmenu(id) {
  284.         if (!is_user_alive(id) || g_Used[id] || GunMenuOff) return;
  285.        
  286.         menu_display(id, g_iPrim_EquipMenuID, 0);
  287.     }
  288.      
  289.     give_grenades(id) {
  290.         if(g_Grenades[HE])
  291.             add_weapon(id, "weapon_hegrenade", g_Grenades[HE]);
  292.      
  293.         if(g_Grenades[FLASH])
  294.             add_weapon(id, "weapon_flashbang", g_Grenades[FLASH]);
  295.      
  296.         if(g_Grenades[SMOKE])
  297.             add_weapon(id, "weapon_smokegrenade", g_Grenades[SMOKE]);
  298.     }
  299.      
  300.     public Event_ResetHUD(id) {
  301.         set_member(id, m_iClientHideHUD, 0)
  302.         set_member(id, m_iHideHUD, HUD_HIDE_MONEY)
  303.     }
  304.      
  305.     public Event_HideWeapon(id) {
  306.         // for compatibility with other plugins using that message; ZP for example
  307.         new iFlags = read_data(1)
  308.         if(~iFlags & HUD_HIDE_MONEY) {
  309.             set_member(id, m_iClientHideHUD, 0)
  310.             set_member(id, m_iHideHUD, iFlags|HUD_HIDE_MONEY)
  311.         }
  312.     }
  313.      
  314.     public plugin_end() {
  315.         ArrayDestroy(g_Primary_MenuItems);
  316.         ArrayDestroy(g_Secondary_MenuItems);
  317.     }


A 24. sorban levő Const-ba beleírod, hogy melyik pályákon szeretnéd tíltani a fegyver menüt.




Nekem olyanra lenne szükségem hogy a fegyvermenü.tiltó.ini fájt hozza létre, amibe belehet írni a pályákat ahol nem fusson.

Előre is köszönöm!

_________________
Kép


Hozzászólás jelentése
Vissza a tetejére
   
Hozzászólások megjelenítése:  Rendezés  
Új téma nyitása  Hozzászólás a témához  [ 10 hozzászólás ] 


Ki van itt

Jelenlévő fórumozók: nincs regisztrált felhasználó valamint 78 vendég


Nyithatsz új témákat ebben a fórumban.
Válaszolhatsz egy témára ebben a fórumban.
Nem szerkesztheted a hozzászólásaidat ebben a fórumban.
Nem törölheted a hozzászólásaidat ebben a fórumban.
Nem küldhetsz csatolmányokat ebben a fórumban.

Keresés:
Ugrás:  
Powered by phpBB® Forum Software © phpBB Limited
Magyar fordítás © Magyar phpBB Közösség
Portal: Kiss Portal Extension © Michael O'Toole