81 lines
2.6 KiB
Lua
81 lines
2.6 KiB
Lua
local QBCore = exports['qb-core']:GetCoreObject()
|
|
|
|
Citizen.CreateThread(function()
|
|
while QBCore == nil do
|
|
TriggerEvent('QBCore:GetObject', function(obj) QBCore = obj end)
|
|
Citizen.Wait(0)
|
|
end
|
|
end)
|
|
|
|
local headMask = false;
|
|
|
|
RegisterNetEvent('RemoveHeadBag', function(player)
|
|
DeleteEntity(Object);
|
|
SetEntityAsNoLongerNeeded(Object);
|
|
SendNUIMessage({
|
|
["action"] = "remove"
|
|
})
|
|
headMask = false;
|
|
end)
|
|
|
|
RegisterNetEvent("StartThread", function(player)
|
|
local ped = PlayerPedId();
|
|
local handsup = IsEntityPlayingAnim(ped, "missminuteman_1ig_2", "handsup_base", 1);
|
|
if handsup then
|
|
Object = CreateObject(GetHashKey("prop_money_bag_01"), 0, 0, 0, true, true, true);
|
|
AttachEntityToEntity(Object, ped, GetPedBoneIndex(ped, 12844), 0.2, 0.04, 0, 0, 270.0, 60.0, true, true, false, true, 1, true);
|
|
SetEntityCompletelyDisableCollision(Object, false, true);
|
|
SendNUIMessage({
|
|
["action"] = "open"
|
|
})
|
|
headMask = true;
|
|
end
|
|
end)
|
|
|
|
AddEventHandler("playerSpawned", function()
|
|
DeleteEntity(Object);
|
|
SetEntityAsNoLongerNeeded(Object);
|
|
headMask = false;
|
|
end)
|
|
|
|
RegisterNetEvent("CheckThread")
|
|
AddEventHandler("CheckThread", function()
|
|
local closestPlayer, closestDistance = GetClosestPlayer();
|
|
local player = GetPlayerPed(-1);
|
|
if closestPlayer == -1 or closestDistance > 2.0 then
|
|
TriggerEvent("notification", "Ingen spiller i nærheden!", "error");
|
|
else
|
|
local handsup = IsEntityPlayingAnim(GetPlayerPed(closestPlayer), "missminuteman_1ig_2", "handsup_base", 1);
|
|
if not headMask then
|
|
if handsup then
|
|
TriggerServerEvent("nc-headbag:getClosestPlayer", GetPlayerServerId(closestPlayer));
|
|
headMask = true;
|
|
end
|
|
else
|
|
TriggerServerEvent("nc-headbag:getClosestPlayer2", GetPlayerServerId(closestPlayer));
|
|
headMask = false;
|
|
end
|
|
end
|
|
end)
|
|
|
|
function GetClosestPlayer()
|
|
local closestPlayers = QBCore.Functions.GetPlayersFromCoords();
|
|
local closestDistance = -1;
|
|
local closestPlayer = -1;
|
|
local coords = GetEntityCoords(GetPlayerPed(-1));
|
|
|
|
for i=1, #closestPlayers, 1 do
|
|
if closestPlayers[i] ~= PlayerId() then;
|
|
local pos = GetEntityCoords(GetPlayerPed(closestPlayers[i]));
|
|
local distance = GetDistanceBetweenCoords(pos.x, pos.y, pos.z, coords.x, coords.y, coords.z, true);
|
|
|
|
if closestDistance == -1 or closestDistance > distance then
|
|
closestPlayer = closestPlayers[i];
|
|
closestDistance = distance;
|
|
end
|
|
end
|
|
end
|
|
|
|
return closestPlayer, closestDistance;
|
|
end
|