Hello , does anyone know how to disable ox inv’s pull out weapon animation? Because currently want to use ND Gun Animations, so both of the script will conflict the pull out animation, the animation pull out the weapon twice.Below is the OX inv client.lua .Thanks for your time
if not lib then return end
local Weapon = {}
local Items = require 'modules.items.client'
local Utils = require 'modules.utils.client'
-- generic group animation data
local anims = {}
anims[`GROUP_MELEE`] = { 'melee@holster', 'unholster', 200, 'melee@holster', 'holster', 600 }
anims[`GROUP_PISTOL`] = { 'reaction@intimidation@cop@unarmed', 'intro', 400, 'reaction@intimidation@cop@unarmed', 'outro', 450 }
anims[`GROUP_STUNGUN`] = anims[`GROUP_PISTOL`]
local function vehicleIsCycle(vehicle)
local class = GetVehicleClass(vehicle)
return class == 8 or class == 13
end
function Weapon.Equip(item, data, noWeaponAnim)
local playerPed = cache.ped
local coords = GetEntityCoords(playerPed, true)
local sleep
if client.weaponanims then
if noWeaponAnim or (cache.vehicle and vehicleIsCycle(cache.vehicle)) then
goto skipAnim
end
local anim = data.anim or anims[GetWeapontypeGroup(data.hash)]
if anim == anims[`GROUP_PISTOL`] and not client.hasGroup(shared.police) then
anim = nil
end
sleep = anim and anim[3] or 1200
Utils.PlayAnimAdvanced(sleep, anim and anim[1] or 'reaction@intimidation@1h', anim and anim[2] or 'intro', coords.x, coords.y, coords.z, 0, 0, GetEntityHeading(playerPed), 8.0, 3.0, sleep*2, 50, 0.1)
end
::skipAnim::
item.hash = data.hash
item.ammo = data.ammoname
item.melee = GetWeaponDamageType(data.hash) == 2 and 0
item.timer = 0
item.throwable = data.throwable
item.group = GetWeapontypeGroup(item.hash)
GiveWeaponToPed(playerPed, data.hash, 0, false, true)
if item.metadata.tint then SetPedWeaponTintIndex(playerPed, data.hash, item.metadata.tint) end
if item.metadata.components then
for i = 1, #item.metadata.components do
local components = Items[item.metadata.components[i]].client.component
for v=1, #components do
local component = components[v]
if DoesWeaponTakeWeaponComponent(data.hash, component) then
if not HasPedGotWeaponComponent(playerPed, data.hash, component) then
GiveWeaponComponentToPed(playerPed, data.hash, component)
end
end
end
end
end
if item.metadata.specialAmmo then
local clipComponentKey = ('%s_CLIP'):format(data.model:gsub('WEAPON_', 'COMPONENT_'))
local specialClip = ('%s_%s'):format(clipComponentKey, item.metadata.specialAmmo:upper())
if DoesWeaponTakeWeaponComponent(data.hash, specialClip) then
GiveWeaponComponentToPed(playerPed, data.hash, specialClip)
end
end
local ammo = item.metadata.ammo or item.throwable and 1 or 0
SetCurrentPedWeapon(playerPed, data.hash, true)
SetPedCurrentWeaponVisible(playerPed, true, false, false, false)
SetWeaponsNoAutoswap(true)
SetPedAmmo(playerPed, data.hash, ammo)
SetTimeout(0, function() RefillAmmoInstantly(playerPed) end)
if item.group == `GROUP_PETROLCAN` or item.group == `GROUP_FIREEXTINGUISHER` then
item.metadata.ammo = item.metadata.durability
SetPedInfiniteAmmo(playerPed, true, data.hash)
end
TriggerEvent('ox_inventory:currentWeapon', item)
if client.weaponnotify then
Utils.ItemNotify({ item, 'ui_equipped' })
end
return item, sleep
end
function Weapon.Disarm(currentWeapon, noAnim)
if currentWeapon?.timer then
currentWeapon.timer = nil
TriggerServerEvent('ox_inventory:updateWeapon')
SetPedAmmo(cache.ped, currentWeapon.hash, 0)
if client.weaponanims and not noAnim then
if cache.vehicle and vehicleIsCycle(cache.vehicle) then
goto skipAnim
end
ClearPedSecondaryTask(cache.ped)
local item = Items[currentWeapon.name]
local coords = GetEntityCoords(cache.ped, true)
local anim = item.anim or anims[GetWeapontypeGroup(currentWeapon.hash)]
if anim == anims[`GROUP_PISTOL`] and not client.hasGroup(shared.police) then
anim = nil
end
local sleep = anim and anim[6] or 1400
Utils.PlayAnimAdvanced(sleep, anim and anim[4] or 'reaction@intimidation@1h', anim and anim[5] or 'outro', coords.x, coords.y, coords.z, 0, 0, GetEntityHeading(cache.ped), 8.0, 3.0, sleep, 50, 0)
end
::skipAnim::
if client.weaponnotify then
Utils.ItemNotify({ currentWeapon, 'ui_holstered' })
end
TriggerEvent('ox_inventory:currentWeapon')
end
Utils.WeaponWheel()
RemoveAllPedWeapons(cache.ped, true)
if client.parachute then
local chute = `GADGET_PARACHUTE`
GiveWeaponToPed(cache.ped, chute, 0, true, false)
SetPedGadget(cache.ped, chute, true)
SetPlayerParachuteTintIndex(PlayerData.id, client.parachute?[2] or -1)
end
end
function Weapon.ClearAll(currentWeapon)
Weapon.Disarm(currentWeapon)
if client.parachute then
local chute = `GADGET_PARACHUTE`
GiveWeaponToPed(cache.ped, chute, 0, true, false)
SetPedGadget(cache.ped, chute, true)
end
end
Utils.Disarm = Weapon.Disarm
Utils.ClearWeapons = Weapon.ClearAll
return Weapon