177 lines
		
	
	
	
		
			8.6 KiB
		
	
	
	
		
			Lua
		
	
	
	
	
	
			
		
		
	
	
			177 lines
		
	
	
	
		
			8.6 KiB
		
	
	
	
		
			Lua
		
	
	
	
	
	
| local QBCore = exports['qb-core']:GetCoreObject() -- Replace with your framework if different
 | |
| 
 | |
| -- Get current weapon in hand
 | |
| RegisterNetEvent('weapon_repair:getWeaponInHand', function()
 | |
|     local ped = PlayerPedId()
 | |
|     local weapon = GetSelectedPedWeapon(ped)
 | |
|     
 | |
|     if weapon ~= GetHashKey('WEAPON_UNARMED') then
 | |
|         local weaponName = GetWeaponNameFromHash(weapon)
 | |
|         if weaponName then
 | |
|             TriggerServerEvent('weapon_repair:repairWeapon', weaponName)
 | |
|         else
 | |
|             QBCore.Functions.Notify("Couldn't identify the weapon", "error")
 | |
|         end
 | |
|     else
 | |
|         QBCore.Functions.Notify("You don't have a weapon in your hand", "error")
 | |
|     end
 | |
| end)
 | |
| 
 | |
| -- Play repair animation
 | |
| RegisterNetEvent('weapon_repair:playRepairAnimation', function()
 | |
|     local ped = PlayerPedId()
 | |
|     
 | |
|     -- Request animation dictionary
 | |
|     RequestAnimDict("mini@repair")
 | |
|     while not HasAnimDictLoaded("mini@repair") do
 | |
|         Wait(10)
 | |
|     end
 | |
|     
 | |
|     -- Play animation
 | |
|     TaskPlayAnim(ped, "mini@repair", "fixing_a_ped", 8.0, -8.0, -1, 49, 0, false, false, false)
 | |
|     
 | |
|     -- Progress bar
 | |
|     QBCore.Functions.Progressbar("repair_weapon", "Repairing weapon...", 5000, false, true, {
 | |
|         disableMovement = true,
 | |
|         disableCarMovement = true,
 | |
|         disableMouse = false,
 | |
|         disableCombat = true,
 | |
|     }, {}, {}, {}, function() -- Done
 | |
|         ClearPedTasks(ped)
 | |
|     end, function() -- Cancel
 | |
|         ClearPedTasks(ped)
 | |
|     end)
 | |
| end)
 | |
| 
 | |
| -- Helper function to convert weapon hash to name
 | |
| function GetWeaponNameFromHash(hash)
 | |
|     local weapons = {
 | |
|         -- Melee weapons
 | |
|         [GetHashKey('WEAPON_DAGGER')] = 'weapon_dagger',
 | |
|         [GetHashKey('WEAPON_BAT')] = 'weapon_bat',
 | |
|         [GetHashKey('WEAPON_BOTTLE')] = 'weapon_bottle',
 | |
|         [GetHashKey('WEAPON_CROWBAR')] = 'weapon_crowbar',
 | |
|         [GetHashKey('WEAPON_FLASHLIGHT')] = 'weapon_flashlight',
 | |
|         [GetHashKey('WEAPON_GOLFCLUB')] = 'weapon_golfclub',
 | |
|         [GetHashKey('WEAPON_HAMMER')] = 'weapon_hammer',
 | |
|         [GetHashKey('WEAPON_HATCHET')] = 'weapon_hatchet',
 | |
|         [GetHashKey('WEAPON_KNUCKLE')] = 'weapon_knuckle',
 | |
|         [GetHashKey('WEAPON_KNIFE')] = 'weapon_knife',
 | |
|         [GetHashKey('WEAPON_MACHETE')] = 'weapon_machete',
 | |
|         [GetHashKey('WEAPON_SWITCHBLADE')] = 'weapon_switchblade',
 | |
|         [GetHashKey('WEAPON_NIGHTSTICK')] = 'weapon_nightstick',
 | |
|         [GetHashKey('WEAPON_WRENCH')] = 'weapon_wrench',
 | |
|         [GetHashKey('WEAPON_BATTLEAXE')] = 'weapon_battleaxe',
 | |
|         [GetHashKey('WEAPON_POOLCUE')] = 'weapon_poolcue',
 | |
|         [GetHashKey('WEAPON_STONE_HATCHET')] = 'weapon_stone_hatchet',
 | |
|         
 | |
|         -- Handguns
 | |
|         [GetHashKey('WEAPON_PISTOL')] = 'weapon_pistol',
 | |
|         [GetHashKey('WEAPON_PISTOL_MK2')] = 'weapon_pistol_mk2',
 | |
|         [GetHashKey('WEAPON_COMBATPISTOL')] = 'weapon_combatpistol',
 | |
|         [GetHashKey('WEAPON_APPISTOL')] = 'weapon_appistol',
 | |
|         [GetHashKey('WEAPON_STUNGUN')] = 'weapon_stungun',
 | |
|         [GetHashKey('WEAPON_PISTOL50')] = 'weapon_pistol50',
 | |
|         [GetHashKey('WEAPON_SNSPISTOL')] = 'weapon_snspistol',
 | |
|         [GetHashKey('WEAPON_SNSPISTOL_MK2')] = 'weapon_snspistol_mk2',
 | |
|         [GetHashKey('WEAPON_HEAVYPISTOL')] = 'weapon_heavypistol',
 | |
|         [GetHashKey('WEAPON_VINTAGEPISTOL')] = 'weapon_vintagepistol',
 | |
|         [GetHashKey('WEAPON_FLAREGUN')] = 'weapon_flaregun',
 | |
|         [GetHashKey('WEAPON_MARKSMANPISTOL')] = 'weapon_marksmanpistol',
 | |
|         [GetHashKey('WEAPON_REVOLVER')] = 'weapon_revolver',
 | |
|         [GetHashKey('WEAPON_REVOLVER_MK2')] = 'weapon_revolver_mk2',
 | |
|         [GetHashKey('WEAPON_DOUBLEACTION')] = 'weapon_doubleaction',
 | |
|         [GetHashKey('WEAPON_RAYPISTOL')] = 'weapon_raypistol',
 | |
|         [GetHashKey('WEAPON_CERAMICPISTOL')] = 'weapon_ceramicpistol',
 | |
|         [GetHashKey('WEAPON_NAVYREVOLVER')] = 'weapon_navyrevolver',
 | |
|         [GetHashKey('WEAPON_GADGETPISTOL')] = 'weapon_gadgetpistol',
 | |
|         [GetHashKey('WEAPON_STUNGUN_MP')] = 'weapon_stungun_mp',
 | |
|         
 | |
|         -- Submachine Guns
 | |
|         [GetHashKey('WEAPON_MICROSMG')] = 'weapon_microsmg',
 | |
|         [GetHashKey('WEAPON_SMG')] = 'weapon_smg',
 | |
|         [GetHashKey('WEAPON_SMG_MK2')] = 'weapon_smg_mk2',
 | |
|         [GetHashKey('WEAPON_ASSAULTSMG')] = 'weapon_assaultsmg',
 | |
|         [GetHashKey('WEAPON_COMBATPDW')] = 'weapon_combatpdw',
 | |
|         [GetHashKey('WEAPON_MACHINEPISTOL')] = 'weapon_machinepistol',
 | |
|         [GetHashKey('WEAPON_MINISMG')] = 'weapon_minismg',
 | |
|         [GetHashKey('WEAPON_RAYCARBINE')] = 'weapon_raycarbine',
 | |
|         
 | |
|         -- Shotguns
 | |
|         [GetHashKey('WEAPON_PUMPSHOTGUN')] = 'weapon_pumpshotgun',
 | |
|         [GetHashKey('WEAPON_PUMPSHOTGUN_MK2')] = 'weapon_pumpshotgun_mk2',
 | |
|         [GetHashKey('WEAPON_SAWNOFFSHOTGUN')] = 'weapon_sawnoffshotgun',
 | |
|         [GetHashKey('WEAPON_ASSAULTSHOTGUN')] = 'weapon_assaultshotgun',
 | |
|         [GetHashKey('WEAPON_BULLPUPSHOTGUN')] = 'weapon_bullpupshotgun',
 | |
|         [GetHashKey('WEAPON_MUSKET')] = 'weapon_musket',
 | |
|         [GetHashKey('WEAPON_HEAVYSHOTGUN')] = 'weapon_heavyshotgun',
 | |
|         [GetHashKey('WEAPON_DBSHOTGUN')] = 'weapon_dbshotgun',
 | |
|         [GetHashKey('WEAPON_AUTOSHOTGUN')] = 'weapon_autoshotgun',
 | |
|         [GetHashKey('WEAPON_COMBATSHOTGUN')] = 'weapon_combatshotgun',
 | |
|         
 | |
|         -- Assault Rifles
 | |
|         [GetHashKey('WEAPON_ASSAULTRIFLE')] = 'weapon_assaultrifle',
 | |
|         [GetHashKey('WEAPON_ASSAULTRIFLE_MK2')] = 'weapon_assaultrifle_mk2',
 | |
|         [GetHashKey('WEAPON_CARBINERIFLE')] = 'weapon_carbinerifle',
 | |
|         [GetHashKey('WEAPON_CARBINERIFLE_MK2')] = 'weapon_carbinerifle_mk2',
 | |
|         [GetHashKey('WEAPON_ADVANCEDRIFLE')] = 'weapon_advancedrifle',
 | |
|         [GetHashKey('WEAPON_SPECIALCARBINE')] = 'weapon_specialcarbine',
 | |
|         [GetHashKey('WEAPON_SPECIALCARBINE_MK2')] = 'weapon_specialcarbine_mk2',
 | |
|         [GetHashKey('WEAPON_BULLPUPRIFLE')] = 'weapon_bullpuprifle',
 | |
|         [GetHashKey('WEAPON_BULLPUPRIFLE_MK2')] = 'weapon_bullpuprifle_mk2',
 | |
|         [GetHashKey('WEAPON_COMPACTRIFLE')] = 'weapon_compactrifle',
 | |
|         [GetHashKey('WEAPON_MILITARYRIFLE')] = 'weapon_militaryrifle',
 | |
|         [GetHashKey('WEAPON_HEAVYRIFLE')] = 'weapon_heavyrifle',
 | |
|         [GetHashKey('WEAPON_TACTICALRIFLE')] = 'weapon_tacticalrifle',
 | |
|         
 | |
|         -- Light Machine Guns
 | |
|         [GetHashKey('WEAPON_MG')] = 'weapon_mg',
 | |
|         [GetHashKey('WEAPON_COMBATMG')] = 'weapon_combatmg',
 | |
|         [GetHashKey('WEAPON_COMBATMG_MK2')] = 'weapon_combatmg_mk2',
 | |
|         [GetHashKey('WEAPON_GUSENBERG')] = 'weapon_gusenberg',
 | |
|         
 | |
|         -- Sniper Rifles
 | |
|         [GetHashKey('WEAPON_SNIPERRIFLE')] = 'weapon_sniperrifle',
 | |
|         [GetHashKey('WEAPON_HEAVYSNIPER')] = 'weapon_heavysniper',
 | |
|         [GetHashKey('WEAPON_HEAVYSNIPER_MK2')] = 'weapon_heavysniper_mk2',
 | |
|         [GetHashKey('WEAPON_MARKSMANRIFLE')] = 'weapon_marksmanrifle',
 | |
|         [GetHashKey('WEAPON_MARKSMANRIFLE_MK2')] = 'weapon_marksmanrifle_mk2',
 | |
|         [GetHashKey('WEAPON_PRECISIONRIFLE')] = 'weapon_precisionrifle',
 | |
|         
 | |
|         -- Heavy Weapons
 | |
|         [GetHashKey('WEAPON_RPG')] = 'weapon_rpg',
 | |
|         [GetHashKey('WEAPON_GRENADELAUNCHER')] = 'weapon_grenadelauncher',
 | |
|         [GetHashKey('WEAPON_GRENADELAUNCHER_SMOKE')] = 'weapon_grenadelauncher_smoke',
 | |
|         [GetHashKey('WEAPON_MINIGUN')] = 'weapon_minigun',
 | |
|         [GetHashKey('WEAPON_FIREWORK')] = 'weapon_firework',
 | |
|         [GetHashKey('WEAPON_RAILGUN')] = 'weapon_railgun',
 | |
|         [GetHashKey('WEAPON_HOMINGLAUNCHER')] = 'weapon_hominglauncher',
 | |
|         [GetHashKey('WEAPON_COMPACTLAUNCHER')] = 'weapon_compactlauncher',
 | |
|         [GetHashKey('WEAPON_RAYMINIGUN')] = 'weapon_rayminigun',
 | |
|         [GetHashKey('WEAPON_EMPLAUNCHER')] = 'weapon_emplauncher',
 | |
|         
 | |
|         -- Throwables
 | |
|         [GetHashKey('WEAPON_GRENADE')] = 'weapon_grenade',
 | |
|         [GetHashKey('WEAPON_BZGAS')] = 'weapon_bzgas',
 | |
|         [GetHashKey('WEAPON_MOLOTOV')] = 'weapon_molotov',
 | |
|         [GetHashKey('WEAPON_STICKYBOMB')] = 'weapon_stickybomb',
 | |
|         [GetHashKey('WEAPON_PROXMINE')] = 'weapon_proxmine',
 | |
|         [GetHashKey('WEAPON_SNOWBALL')] = 'weapon_snowball',
 | |
|         [GetHashKey('WEAPON_PIPEBOMB')] = 'weapon_pipebomb',
 | |
|         [GetHashKey('WEAPON_BALL')] = 'weapon_ball',
 | |
|         [GetHashKey('WEAPON_SMOKEGRENADE')] = 'weapon_smokegrenade',
 | |
|         [GetHashKey('WEAPON_FLARE')] = 'weapon_flare',
 | |
|         
 | |
|         -- Miscellaneous
 | |
|         [GetHashKey('WEAPON_PETROLCAN')] = 'weapon_petrolcan',
 | |
|         [GetHashKey('WEAPON_FIREEXTINGUISHER')] = 'weapon_fireextinguisher',
 | |
|         [GetHashKey('WEAPON_HAZARDCAN')] = 'weapon_hazardcan',
 | |
|         [GetHashKey('WEAPON_FERTILIZERCAN')] = 'weapon_fertilizercan',
 | |
|         
 | |
|         -- DLC Weapons
 | |
|         [GetHashKey('WEAPON_CANDYCANE')] = 'weapon_candycane',
 | |
|         [GetHashKey('WEAPON_METALDETECTOR')] = 'weapon_metaldetector',
 | |
|     }
 | |
|     
 | |
|     return weapons[hash]
 | |
| end
 | 
