> > > > >

weapon_on_ammo [Маленький вопрос]

Статус
В этой теме нельзя размещать новые ответы.
Сообщения
59
Рейтинг
6
#1
Привет всем , ребят подскажите как мне сделать что бы в оружия M249 не востанавливались патроны при убийстве в голову (Стоит только в голову ) так как на сервере стоит миниган и получается трабла )))
Пробывал убирать "100" но с миниган востанавливается теперь 8 патронов :DD

new const g_iMaxClip[CSW_P90+1] = { -1, 13, -1, 10, 1, 7, 1, 30, 30, 1, 30, 20, 25, 30,
35, 25, 12, 20, 10, 30, 100, 8, 30, 30, 20, 2, 7, 30, 30, -1, 50
}




Код:
//============================ CONFIG START ===========================//
#define ONLY_ACTIVE_WEAPON
#define ONLY_HEADSHOT_KILL
#define PLAY_SOUND
//============================= CONFIG END ============================//

#define VERSION "0.0.2"

#include <amxmodx>
#include <fakemeta>
#include <hamsandwich>

#define get_user_active_weapon(%1)        get_pdata_cbase(%1, m_pActiveItem)
#define get_user_last_hitgroup(%1)        get_pdata_int(%1, m_LastHitGroup)
#define fm_get_weapon_id(%1)            get_pdata_int(%1, m_iId, XO_WEAPON)
#define fm_set_weapon_ammo(%1,%2)        set_pdata_int(%1, m_iClip, %2, XO_WEAPON)

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

const NOCLIP_WPN_BS = ((1<<CSW_HEGRENADE)|(1<<CSW_SMOKEGRENADE)|(1<<CSW_FLASHBANG)|(1<<CSW_KNIFE)|(1<<CSW_C4))
const MAX_ITEM_TYPES = 6

// Offsets
const m_pNext = 42
const m_iId = 43
const m_iClip = 51
const m_pActiveItem = 373
const m_LastHitGroup = 75
const XO_WEAPON = 4
#if !defined ONLY_ACTIVE_WEAPON
new const m_rgpPlayerItems_CBasePlayer[MAX_ITEM_TYPES] = {367, 368, ...}
#endif

new const g_iMaxClip[CSW_P90+1] = { -1, 13, -1, 10, 1, 7, 1, 30, 30, 1, 30, 20, 25, 30,
    35, 25, 12, 20, 10, 30, 100, 8, 30, 30, 20, 2, 7, 30, 30, -1, 50
}

new g_iMaxPlayers

public plugin_init()
{
    #if defined ONLY_HEADSHOT_KILL
    register_plugin("Refill Clip On Hs Kill", VERSION, "Vaqtincha")
    #else
    register_plugin("Refill Clip On Kill", VERSION, "Vaqtincha")
    #endif
    RegisterHam(Ham_Killed, "player", "PlayerKilled_Post", .Post = true)
    g_iMaxPlayers = get_maxplayers()
}

public PlayerKilled_Post(id, iKiller, iGib)
{
    if(!IsPlayer(iKiller) || id == iKiller || !is_user_alive(iKiller))
        return HAM_IGNORED
    
    #if defined ONLY_HEADSHOT_KILL
    if(get_user_last_hitgroup(id) != HIT_HEAD)
        return HAM_IGNORED
    #endif
    
    #if defined ONLY_ACTIVE_WEAPON
    new iActiveWeapon = get_user_active_weapon(iKiller)
    if(iActiveWeapon > 0)
    {
        new iId = fm_get_weapon_id(iActiveWeapon)
        if(!(NOCLIP_WPN_BS & (1<<iId)))
        {
            fm_set_weapon_ammo(iActiveWeapon, g_iMaxClip[iId])
            #if defined PLAY_SOUND
            client_cmd(iKiller, "spk ^"items/9mmclip1.wav^"")
            #endif
        }
    }
    #else
    for(new slot = 1; slot<= 2; slot++)
    {
        new iWeapon = get_pdata_cbase(iKiller, m_rgpPlayerItems_CBasePlayer[slot])
        while(iWeapon > 0)
        {
            new iId = fm_get_weapon_id(iWeapon)
            // if(!(NOCLIP_WPN_BS & (1<<iId)))    // not necessary
            // {
            fm_set_weapon_ammo(iWeapon, g_iMaxClip[iId])
            iWeapon = get_pdata_cbase(iWeapon, m_pNext, XO_WEAPON)
            #if defined PLAY_SOUND
            client_cmd(iKiller, "spk ^"items/9mmclip1.wav^"")
            #endif
            // }
        }
    }
    #endif
    return HAM_IGNORED
}
 
  1
Сообщения
860
Рейтинг
760
#2
andrei123123,
Diff:
-const NOCLIP_WPN_BS = ((1<<CSW_HEGRENADE)|(1<<CSW_SMOKEGRENADE)|(1<<CSW_FLASHBANG)|(1<<CSW_KNIFE)|(1<<CSW_C4))
+const NOCLIP_WPN_BS = ((1<<CSW_HEGRENADE)|(1<<CSW_SMOKEGRENADE)|(1<<CSW_FLASHBANG)|(1<<CSW_KNIFE)|(1<<CSW_C4)|(1<<CSW_M249))
 
  3
Статус
В этой теме нельзя размещать новые ответы.

Похожие темы

> > > > >