предлагаю сделать невозможным поднять оружие с земли

ptaha525

Новичок
Сообщения
10
Реакции
3
предлагаю сделать невозможным поднять оружие с земли.
пример карты fy_snow оружие на земле или игрок с флагом amx_restrflag "b" бросил оружие
игрок без флага B не мог его поднять.
 
string(7068) "Currently loaded plugins:
id name version author url file status
[ 1] 0 [190] Vanga Detector 25.03.10 SKAJIbnEJIb & Pr unknown vanga_detec running
[ 2] 1 GameCMS_API 5.6.7 zhorzh78 unknown gamecms_api debug
[ 3] 2 DopBan 3.0.9b kanagava http://kanaga.ru dop_ban309- running
[ 4] 3 FreshBans 1.4.8b kanagava unknown fresh_bans_ running
[ 5] 4 fb_forwards 0.2 kanagava + Spie fb_ban_soun running
[ 6] 5 ReAimDetector API 0.2.2 ReHLDS Team reaimdetect running
[ 7] 6 Block DD Spam 1.0 mx?! block_dd_sp running
[ 8] 7 GameCMS_GagManager 2.2.7 ReAp zhorzh78 gamecms_gag running
[ 9] 8 Safe Userinfo 1.0.3 the_hunter safe_userin running
[ 10] 9 Admin Commands 1.10.0.541 AMXX Dev Team admincmd.am running
�� [ 11] 10 Admin Help 1.10.0.546 AMXX Dev Team adminhelp.a running
[ 12] 11 Multi-Lingual System 1.10.0.546 AMXX Dev Team multilingua running
[ 13] 12 Menus Front-End 1.10.0.546 AMXX Dev Team menufront_g running
[ 14] 13 Commands Menu 1.10.0.546 AMXX Dev Team cmdmenu.amx running
[ 15] 14 Players Menu 1.10.0.546 AMXX Dev Team plmenu.amxx running
[ 16] 15 Admin Chat 1.10.0.546 AMXX Dev Team adminchat.a running
[ 17] 16 Anti Flood 1.10.0.546 AMXX Dev Team antiflood.a running
[ 18] 17 Restrict Weapons 25.01.26BE SKAJIbnEJIb & AM unknown restmenu_rb running
[ 19] 18 [190] StatsX Unlimited 25.01.26BE SKAJIbnEJIb unknown statsx_unli running
[ 20] 19 [190] CsStats MySQL 25.01.26BE SKAJIbnEJIb unknown csstats_mys running
[ 21] 20 [190] StatsX RBS 25.01.26BE SKAJIbnEJIb & AM unknown statsx_rbs. running
[ 22] 21 Stats Configuration 24.10.11BE SKAJIbnEJIb & AM unknown statscfg_rb running
[ 23] 22 [190] Stimulation RBS 25.01.26BE SKAJIbnEJIb unknown stimulation running
[ 24] 23 [190] Army Ranks Ultimate 25.01.26BE SKAJIbnEJIb unknown army_ranks_ running
[ 25] 24 [190] Chat RBS 25.01.26BE SKAJIbnEJIb unknown chat_rbs.am running
[ 26] 25 [190] Ad From Server 20.06.06 SKAJIbnEJIb unknown ad_from_ser running
[ 27] 26 [190] DemoRecorder RBS 20.06.06 SKAJIbnEJIb unknown demorecorde running
[ 28] 27 C4 Timer on roundtime 0.3.3a neygomon c4timer.amx running
[ 29] 28 Bullet Damage 0.0.1 ConnorMcLeod unknown bullet_dama running
[ 30] 29 Fake Ping 1.1 MeRcyLeZZ/gyxoBk unknown FakePing.am running
[ 31] 30 AFK Control ReNew 1.3 neygomon afk_control running
[ 32] 31 [ReAPI] Parachute 1.0 Leo_[BH] + ApXuT Parashute-g running
[ 33] 32 Advanced Kill Assists 1.5 Xelson next21_kill running
[ 34] 33 [ReAPI] Healthnade 0.0.25f DEV-CS.RU Commun reapi_healt running
[ 35] 34 Molotov Grenade 1.0.3 medusa molotov_gre running
[ 36] 35 [Discord] Core 1.0 JDW Discord.amx running
[ 37] 36 Discord 1.0 [ReAPI LT Discord_cus running
[ 38] 37 unknown unknown unknown unknown precache.am running
[ 39] 38 AWP Limiter 1.4.0 Nordic Warrior awp_limiter running
[ 40] 39 [ReAPI] resetscore 1.0 Phantom unknown resetscore. running
[ 41] 40 Colored FITH ReAPI 1.3 CHEL74 colored_fit running
[ 42] 41 FakeServerQueries Mana 1.0 Inline fsq_manager running
[ 43] 42 GameCMS_Achievs_Core 1.3 zhorzh78 gamecms_ach running
[ 44] 43 GameCMS_Bomb_Achievs 1.2 zhorzh78 bomb_achiev running
[ 45] 44 GameCMS_Player_Achievs 1.3 zhorzh78 player_achi running
[ 46] 45 GameCMS_Special_Achiev 1.3 zhorzh78 special_ach running
[ 47] 46 CMS Achevs Reward 3.0 ApXuTekToR CMSAchevs_R running
[ 48] 47 Revive Teammates: Core 2.3.17 DEV-CS.RU Commun rt_core.amx running
[ 49] 48 Revive Teammates: Plan 2.3.16 DEV-CS.RU Commun rt_planting running
[ 50] 49 Revive Teammates: Rest 2.3.16 DEV-CS.RU Commun rt_restrict running
[ 51] 50 Revive Teammates: Time 2.3.16 DEV-CS.RU Commun rt_timer.am running
[ 52] 51 Revive Teammates: Effe 2.3.16 DEV-CS.RU Commun rt_effects. running
[ 53] 52 Revive Teammates: Soun 2.3.16 DEV-CS.RU Commun rt_sounds.a running
[ 54] 53 Revive Teammates: Bonu 2.3.16 DEV-CS.RU Commun rt_bonus.am running
[ 55] 54 Revive Teammates: Mode 2.3.16 mx?! rt_revive_m running
[ 56] 55 [ReVIP] System Core 2.5 full pUzzlik re_vip_core running
[ 57] 56 [ReVIP] Menu 2.5 full pUzzlik re_vipmenu_ running
57 plugins, 57 running"
пример карты fy_snow
Я извиняюсь конечно, но за чем на этой карте делать запрет на поднятие оружия даже с флагом доступа, вы бы еще поставили запрет на всех классичиских картах в том числе на aim_map
 
@SergeyPanov,
Код:
#include <amxmodx>
#include <hamsandwich>
#include <cstrike>
#include <fakemeta>
#include <engine>
#include <reapi>

#define MAX_PLAYERS 32
new cstAWPCount[CsTeams], pLimit, pAllowPickup, PlayersWithAWP[CsTeams], Float:fFlood[MAX_PLAYERS+1];

#define IsPlayer(%1) (1<=%1<=MAX_PLAYERS)

public plugin_init()
{
    register_event("TextMsg", "EventRestart", "a", "2&#Game_C", "2&#Game_w");
   
    RegisterHam(Ham_AddPlayerItem, "player", "AddPlayerItem");
    RegisterHookChain(RG_CBasePlayer_HasRestrictItem, "HasRestrictItem", false)

    register_touch("weaponbox", "player", "PlayerTouchWeapon");
    register_touch("armoury_entity", "player", "PlayerTouchWeapon");
   
    register_forward(FM_SetModel , "SetModel");
   
    pLimit = register_cvar("bot_limit", "1");
    pAllowPickup = register_cvar("bot_allowpickup", "1");
}

public SetModel(iEntity, const szModel[])
{  
    new iPlayer, CsTeams:cstTeam;

    if((equal(szModel, "models/w_g3sg1.mdl") || equal(szModel, "models/w_sg550.mdl")) && IsPlayer((iPlayer = pev(iEntity, pev_owner))))
    {
        cstTeam = cs_get_user_team(iPlayer);
        cstAWPCount[cstTeam]--;
        PlayersWithAWP[cstTeam] &= ~(1 << (iPlayer & 31));
    }
}

public AddPlayerItem(iPlayer , iItem)
{  
    new CsTeams:cstTeam;
   
    if(cs_get_weapon_id(iItem) == CSW_G3SG1 || cs_get_weapon_id(iItem) == CSW_SG550)
    {
        cstTeam = cs_get_user_team(iPlayer);
        cstAWPCount[cstTeam]++;
        PlayersWithAWP[cstTeam] |= (1 << (iPlayer & 31));
    }
}

public PlayerTouchWeapon(iTouched, iToucher)
{
    new szClass[32], iWeaponID, CsTeams:cstTeam, bool:bBlocked, Float:fGameTime;

    if(get_pcvar_num(pAllowPickup))
        return PLUGIN_CONTINUE;

    entity_get_string(iTouched, EV_SZ_classname, szClass, charsmax(szClass));

    iWeaponID = (szClass[0] == 'w') ? cs_get_weaponbox_type(iTouched) : cs_get_armoury_type(iTouched);

    if(iWeaponID == CSW_G3SG1 || iWeaponID == CSW_SG550)
    {
        cstTeam = cs_get_user_team(iToucher);

        if(cstAWPCount[cstTeam] == get_pcvar_num(pLimit))
        {
            if(((fGameTime = get_gametime()) - fFlood[iToucher]) >= 5.0)
            {
                client_print(iToucher, print_center, "Your team has reached its limit!");
                fFlood[iToucher] = fGameTime;
                bBlocked = true;
            }
        }
    }
    return bBlocked ? PLUGIN_HANDLED : PLUGIN_CONTINUE;
}

public HasRestrictItem(const this, ItemID:item, ItemRestType:type)
{
    if(type == ITEM_TYPE_BUYING || ITEM_TYPE_TOUCHED || ITEM_TYPE_EQUIPPED)
    {
        switch(item)
        {
            case ITEM_G3SG1, ITEM_SG550:
            {
                new CsTeams:cstTeam = cs_get_user_team(this);
               
                if(!(get_user_flags(this) & ADMIN_BAN))
                {
                    client_print(this, print_center, "This gun ONLY ADMIN!");
                    SetHookChainReturn(ATYPE_BOOL, true);
                    return HC_SUPERCEDE;
                }
                else if(cstAWPCount[cstTeam] == get_pcvar_num(pLimit))
                {
                    client_print(this, print_center, "Your team has reached its limit!");
                    SetHookChainReturn(ATYPE_BOOL, true);
                    return HC_SUPERCEDE;
                }
            }
        }
    }
    return HC_CONTINUE;
}

public client_disconnected(id)
{
    for(new CsTeams:cstTeam = CS_TEAM_T ; cstTeam <= CS_TEAM_CT ; cstTeam++)
    {
        if(PlayersWithAWP[cstTeam] & (1 << (id & 31)))
        {
            cstAWPCount[cstTeam]--;
            PlayersWithAWP[cstTeam] &= ~(1 << (id & 31));
            break;
        }
    }
}

stock cs_get_weaponbox_type(iWeaponBox)
{
    new iWeapon;
    new const XO_CWEAPONBOX = 4;
    new const m_rgpPlayerItems_CWeaponBox[6] = { 34 , 35 , ... };
   
    for(new i = 1 ; i <= 5 ; i++)
    {
        if((iWeapon = get_pdata_cbase(iWeaponBox , m_rgpPlayerItems_CWeaponBox[i] , XO_CWEAPONBOX)) > 0)
        {
            return cs_get_weapon_id(iWeapon);
        }
    }
    return 0;
}

public EventRestart()
{
    cstAWPCount[CS_TEAM_T] = 0;
    cstAWPCount[CS_TEAM_CT] = 0;
    PlayersWithAWP[CS_TEAM_T] = 0;
    PlayersWithAWP[CS_TEAM_CT] = 0;
}
 
Сверху
Назад