47 lines
		
	
	
	
		
			1.5 KiB
		
	
	
	
		
			Lua
		
	
	
	
	
	
			
		
		
	
	
			47 lines
		
	
	
	
		
			1.5 KiB
		
	
	
	
		
			Lua
		
	
	
	
	
	
local DATA_HOLSTERS <const> = lib.load("data.holster")
 | 
						|
 | 
						|
local function getGender(ped)
 | 
						|
    local model = GetEntityModel(ped)
 | 
						|
    if model == `mp_m_freemode_01` then
 | 
						|
        return "male"
 | 
						|
    elseif model == `mp_f_freemode_01` then
 | 
						|
        return "female"
 | 
						|
    end
 | 
						|
end
 | 
						|
 | 
						|
local function holsterCheck(ped, playerWeapon, shouldUnholster)
 | 
						|
    local gender = getGender(ped)
 | 
						|
    if not gender then return end
 | 
						|
 | 
						|
    for i=1, #DATA_HOLSTERS do
 | 
						|
        local holster = DATA_HOLSTERS[i]
 | 
						|
        local holsterInfo = holster[gender]
 | 
						|
 | 
						|
        if not holsterInfo or not lib.table.contains(holster.weapons, playerWeapon) then goto next end
 | 
						|
 | 
						|
        local playerHolster = GetPedDrawableVariation(ped, holster.variation)
 | 
						|
 | 
						|
        if playerHolster == holsterInfo[1] and shouldUnholster then
 | 
						|
            Wait(200)
 | 
						|
            SetPedComponentVariation(ped, holster.variation, holsterInfo[2], 0, 0)
 | 
						|
            return --print("Gun unholstered")
 | 
						|
        elseif playerHolster == holsterInfo[2] then
 | 
						|
            SetPedComponentVariation(ped, holster.variation, holsterInfo[1], 0, 0)
 | 
						|
            return --print("Gun holstered")
 | 
						|
        end
 | 
						|
 | 
						|
        ::next::
 | 
						|
    end
 | 
						|
end
 | 
						|
 | 
						|
AddEventHandler("ND_GunAnims:updateHolster", function(weapon, hide)
 | 
						|
    holsterCheck(cache.ped, weapon, hide)
 | 
						|
end)
 | 
						|
 | 
						|
if GetResourceState("ox_inventory"):find("start") and GetConvarInt("inventory:weaponanims", 1) == 1 then
 | 
						|
    lib.onCache("weapon", function(value)
 | 
						|
        local weapon = value or cache.weapon
 | 
						|
        Wait(300)
 | 
						|
        holsterCheck(cache.ped, weapon, value)
 | 
						|
    end)
 | 
						|
end
 |