hlmod.hu
https://hlmod.hu/

exodus Global Offensive 4.0 fegyver váltás
https://hlmod.hu/viewtopic.php?f=9&t=29450
Oldal: 1 / 2

Szerző:  ROL_MESTER [2018.10.15. 20:20 ]
Hozzászólás témája:  exodus Global Offensive 4.0 fegyver váltás

Sziasztok az lenne a kérdésem hogy az exodus Global Offensive 4.0 fegyver váltás animáció lassu esetleg hol lehetne álitani hogy gyorsabban váltsa átt a fegyvert válaszokat elöre is köszönöm :)

Szerző:  JohanCorn [2018.10.16. 13:59 ]
Hozzászólás témája:  Re: exodus Global Offensive 4.0 fegyver váltás

Az animáció sebességét nem tudod módosítani Pluginon keresztül. Olyat tudsz, hogy egy-egy funkció hamarabb elérhető lesz. Pld, Deploy után 2.0 másodperc helyett redukálhatod azt az időt ami az elővétel utáni első lövés sebességét adja meg. Szerintem neked nem erre van szükséged, csak megemlítettem. :)

Szerző:  ROL_MESTER [2018.10.16. 14:08 ]
Hozzászólás témája:  Re: exodus Global Offensive 4.0 fegyver váltás

Hát nem egészen de jo tanács köszönöm szépen :)

és azt meglehetne oldani hogy kivegyem a fegyvermenut a modbol ? mert akkor külsö fegyvermenut használnék mert szeretnék awp mapot is berakni de ugye nincs bene olyan lehetöség hogy wp mapon ne hoza elö a fegyvermenut !

Szerző:  JohanCorn [2018.10.16. 17:59 ]
Hozzászólás témája:  Re: exodus Global Offensive 4.0 fegyver váltás

Egyszerűbb, ha a jelnlegibe írod bele egy adott pálya/pályák elelnőrzését a megnyitás előtt.

Szerző:  ROL_MESTER [2018.10.16. 18:50 ]
Hozzászólás témája:  Re: exodus Global Offensive 4.0 fegyver váltás

Értem és azt hogy irjam bele ? pll awp_inda 35hp_2 stb mapon ne lépjen érvénybe ?

Szerző:  theglorious [2018.10.17. 17:02 ]
Hozzászólás témája:  Re: exodus Global Offensive 4.0 fegyver váltás

ROL_MESTER írta:
Értem és azt hogy irjam bele ? pll awp_inda 35hp_2 stb mapon ne lépjen érvénybe ?

Itt egy példa: Dooz @ [Reapi] Fegyvermenü pályatiltóval

Szerző:  ROL_MESTER [2018.10.30. 11:01 ]
Hozzászólás témája:  Re: exodus Global Offensive 4.0 fegyver váltás

Enek a menu részét lehet szinesiteni ugy értem hogy mikor ki hoza a fegyvermenu pll : M4a1 és én ezt a részét szeretném szinezni :)?

  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.     }

Szerző:  [K]eNu* [2018.10.30. 11:16 ]
Hozzászólás témája:  Re: exodus Global Offensive 4.0 fegyver váltás

Szia.



Igen, lehet színezni.

Szerző:  ROL_MESTER [2018.10.30. 12:53 ]
Hozzászólás témája:  Re: exodus Global Offensive 4.0 fegyver váltás

köszönöm!

Szerző:  ROL_MESTER [2018.10.30. 12:53 ]
Hozzászólás témája:  Re: exodus Global Offensive 4.0 fegyver váltás

köszönöm!

Oldal: 1 / 2 Minden időpont UTC+02:00 időzóna szerinti
Powered by phpBB® Forum Software © phpBB Limited
https://www.phpbb.com/