Skocz do zawartości

Nowy szablon forum

mygo.pl

Stworzyliśmy dla Was nowy wygląd forum. Z pewnością znajdziesz rzeczy, które wg Ciebie mogą zostać zmienione - wspomnij o tym w specjalnym wątku.

Czytaj więcej

Jak założyć własną sieć

serwerów CS

Zastanawiasz się nad prowadzeniem własnej sieci serwerów? Przeczytaj podstawowe informacje, na które należy zwrócić uwagę, przy takim projekcie.

Czytaj więcej

Tworzymy spis sieci

dodaj swoją

Dodaj sieć do której należysz, pozwoli to na promocję i budowę ogólnopolskiej bazy sieci CS.

Czytaj więcej

RSSBiohazard weaponmenu (restrict on cvar)


MYGO.pl
 Udostępnij

Rekomendowane odpowiedzi

  • RSSy
Hey there!

Biohazard mod compiles with sma+cfg
https://forums.alliedmods.net/showthread.php?t=68523

Weapon is specified in cfg

Is it possible to disable some weapons by cvar? Maybe like this:
new cvar_weapoff
cvar_weapoff = register_cvar("bh_weapoff", "0")

if(get_pcvar_num(cvar_weapoff)){weapon}


Sometimes there's a need to balance some maps due to low players count and switch off some guns

.cfg example:
Code:

new g_primaryweapons[][][] =
{
        { "weapon1",    "weapon_1"    },
        { "weapon2",    "weapon_2"    },
        { "weapon3",    "weapon_3"    },
        { "weapon4",    "weapon_4"    },
        { "weapon5",    "weapon_5"    },
        { "weapon6",    "weapon_6"    },
        { "weapon7",    "weapon_7"    },
        { "weapon8",    "weapon_8"    },
        { "weapon9",    "weapon_9"    },
        { "weapon10",    "weapon_10"    },
        { "weapon11",    "weapon_11"    },
        { "weapon12",    "weapon_12"    },
        { "weapon13",    "weapon_13"    },
        { "weapon14",    "weapon_14"    },
        { "weapon15",    "weapon_15"    },
        { "weapon16",    "weapon_16"    },
        { "weapon17",    "weapon_17"    },
        { "weapon18",    "weapon_18"    }
}

.sma weaponmenu
Code:

public display_weaponmenu(id, menuid, pos)
{
        if(pos < 0 || menuid < 0)
                return
       
        static start
        start = pos * 8
       
        static maxitem
        maxitem = menuid == MENU_PRIMARY ? sizeof g_primaryweapons : sizeof g_secondaryweapons

          if(start >= maxitem)
                    start = pos = g_menuposition[id]
       
        static menubody[512], len
          len = formatex(menubody, 511, "\y%L\w^n^n", id, menuid == MENU_PRIMARY ? "MENU_TITLE2" : "MENU_TITLE3")

        static end
        end = start + 8
        if(end > maxitem)
                    end = maxitem
       
        static keys
        keys = MENU_KEY_0
       
        static a, b
        b = 0
       
          for(a = start; a < end; ++a)
        {
                keys |= (1<<b)
                len += formatex(menubody[len], 511 - len,"\w[\y%d\w] %s^n", ++b, menuid == MENU_PRIMARY ? g_primaryweapons[a][0]: g_secondaryweapons[a][0])
          }

          if(end != maxitem)
        {
                    formatex(menubody[len], 511 - len, "^n\w[\y9\w] %L^n\w[\y0\w] %L", id, "MENU_MORE", id, pos ? "MENU_BACK" : "MENU_EXIT")
                    keys |= MENU_KEY_9
          }
          else       
                formatex(menubody[len], 511 - len, "^n\w[\y0\w] %L", id, pos ? "MENU_BACK" : "MENU_EXIT")
       
          show_menu(id, keys, menubody, -1, menuid == MENU_PRIMARY ? "Primary" : "Secondary")
}

public action_prim(id, key)
{
        if(!is_user_alive(id) || g_zombie[id])
                return PLUGIN_HANDLED

        switch(key)
        {
                    case 8: display_weaponmenu(id, MENU_PRIMARY, ++g_menuposition[id])
                case 9: display_weaponmenu(id, MENU_PRIMARY, --g_menuposition[id])
                    default:
                {
                        g_player_weapons[id][0] = g_menuposition[id] * 8 + key
                        equipweapon(id, EQUIP_PRI)
                       
                        display_weaponmenu(id, MENU_SECONDARY, g_menuposition[id] = 0)
                }
        }
        return PLUGIN_HANDLED
}

public action_sec(id, key)
{
        if(!is_user_alive(id) || g_zombie[id])
                return PLUGIN_HANDLED
       
        switch(key)
        {
                    case 8: display_weaponmenu(id, MENU_SECONDARY, ++g_menuposition[id])
                case 9: display_weaponmenu(id, MENU_SECONDARY, --g_menuposition[id])
                    default:
                {
                        g_menufailsafe[id] = false
                        remove_task(TASKID_WEAPONSMENU + id)
                       
                        g_player_weapons[id][1] = g_menuposition[id] * 8 + key
                        equipweapon(id, EQUIP_SEC)
                        equipweapon(id, EQUIP_GREN)
                }
        }
        return PLUGIN_HANDLED
}

stock equipweapon(id, weapon)
{
        if(!is_user_alive(id))
                return

        static weaponid[2], weaponent, weapname[32]
       
        if(weapon & EQUIP_PRI)
        {
                weaponent = fm_lastprimary(id)
                weaponid[1] = get_weaponid(g_primaryweapons[g_player_weapons[id][0]][1])
               
                if(pev_valid(weaponent))
                {
                        weaponid[0] = fm_get_weapon_id(weaponent)
                        if(weaponid[0] != weaponid[1])
                        {
                                get_weaponname(weaponid[0], weapname, 31)
                                bacon_strip_weapon(id, weapname)
                        }
                }
                else
                        weaponid[0] = -1
               
                if(weaponid[0] != weaponid[1])
                        bacon_give_weapon(id, g_primaryweapons[g_player_weapons[id][0]][1])
               
                fm_set_user_bpammo(id, weaponid[1], g_weapon_ammo[weaponid[1]][MAX_AMMO])
        }

        if(weapon & EQUIP_SEC)
        {
                weaponent = fm_lastsecondry(id)
                weaponid[1] = get_weaponid(g_secondaryweapons[g_player_weapons[id][1]][1])
               
                if(pev_valid(weaponent))
                {
                        weaponid[0] = fm_get_weapon_id(weaponent)
                        if(weaponid[0] != weaponid[1])
                        {
                                get_weaponname(weaponid[0], weapname, 31)
                                bacon_strip_weapon(id, weapname)
                        }
                }
                else
                        weaponid[0] = -1
               
                if(weaponid[0] != weaponid[1])
                        bacon_give_weapon(id, g_secondaryweapons[g_player_weapons[id][1]][1])
               
                fm_set_user_bpammo(id, weaponid[1], g_weapon_ammo[weaponid[1]][MAX_AMMO])
        }
       
        if(weapon & EQUIP_GREN)
        {
                static i
                for(i = 0; i < sizeof g_grenades; i++) if(!user_has_weapon(id, get_weaponid(g_grenades[i])))
                        bacon_give_weapon(id, g_grenades[i])
        }
}

Please, I need a help

Przeczytaj cały wpis

Odnośnik do komentarza
Udostępnij na innych stronach

Gość
Ten temat został zamknięty. Brak możliwości dodania odpowiedzi.
 Udostępnij

  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...