diff --git a/client/client.lua b/client/client.lua new file mode 100644 index 0000000..d38d868 --- /dev/null +++ b/client/client.lua @@ -0,0 +1,331 @@ +local QBCore = exports['qb-core']:GetCoreObject() + +PlayerJob = {} +local onDuty = false +local alcoholCount = 0 +local drugCount = 0 + +local function loadAnimDict(dict) while (not HasAnimDictLoaded(dict)) do RequestAnimDict(dict) Wait(5) end end + +function AlienEffect() + StartScreenEffect("DrugsMichaelAliensFightIn", 3.0, 0) + Wait(math.random(5000, 8000)) + local ped = PlayerPedId() + RequestAnimSet("MOVE_M@DRUNK@VERYDRUNK") + while not HasAnimSetLoaded("MOVE_M@DRUNK@VERYDRUNK") do + Citizen.Wait(0) + end + SetPedCanRagdoll( ped, true ) + ShakeGameplayCam('DRUNK_SHAKE', 2.80) + SetTimecycleModifier("Drunk") + SetPedMovementClipset(ped, "MOVE_M@DRUNK@VERYDRUNK", true) + SetPedMotionBlur(ped, true) + SetPedIsDrunk(ped, true) + Wait(1500) + SetPedToRagdoll(ped, 5000, 1000, 1, false, false, false ) + Wait(13500) + SetPedToRagdoll(ped, 5000, 1000, 1, false, false, false ) + Wait(120500) + ClearTimecycleModifier() + ResetScenarioTypesEnabled() + ResetPedMovementClipset(ped, 0) + SetPedIsDrunk(ped, false) + SetPedMotionBlur(ped, false) + AnimpostfxStopAll() + ShakeGameplayCam('DRUNK_SHAKE', 0.0) + StartScreenEffect("DrugsMichaelAliensFight", 3.0, 0) + Wait(math.random(45000, 60000)) + StartScreenEffect("DrugsMichaelAliensFightOut", 3.0, 0) + StopScreenEffect("DrugsMichaelAliensFightIn") + StopScreenEffect("DrugsMichaelAliensFight") + StopScreenEffect("DrugsMichaelAliensFightOut") +end + +--[[function HealDrug() + if not healing then + healing = true + else + return + end + + local count = 9 + while count > 0 do + Wait(1000) + count = count - 1 + SetEntityHealth(PlayerPedId(), GetEntityHealth(PlayerPedId()) + 6) + end + healing = false +end + +function MethBagEffect() + local startStamina = 8 + --TrevorEffect() + SetRunSprintMultiplierForPlayer(PlayerId(), 1.49) + while startStamina > 0 do + Wait(1000) + if math.random(5, 100) < 10 then + RestorePlayerStamina(PlayerId(), 1.0) + end + startStamina = startStamina - 1 + if math.random(5, 100) < 51 then + --TrevorEffect() + end + end + startStamina = 0 + SetRunSprintMultiplierForPlayer(PlayerId(), 1.0) +end + +function TrevorEffect() + StartScreenEffect("DrugsTrevorClownsFightIn", 3.0, 0) + Wait(3000) + StartScreenEffect("DrugsTrevorClownsFight", 3.0, 0) + Wait(3000) + StartScreenEffect("DrugsTrevorClownsFightOut", 3.0, 0) + StopScreenEffect("DrugsTrevorClownsFight") + StopScreenEffect("DrugsTrevorClownsFightIn") + StopScreenEffect("DrugsTrevorClownsFightOut") +end + +function EcstasyEffect() + local startStamina = 30 + SetFlash(0, 0, 500, 7000, 500) + while startStamina > 0 do + Wait(1000) + startStamina = startStamina - 1 + RestorePlayerStamina(PlayerId(), 1.0) + if math.random(1, 100) < 51 then + SetFlash(0, 0, 500, 7000, 500) + ShakeGameplayCam('SMALL_EXPLOSION_SHAKE', 0.08) + end + end + if IsPedRunning(PlayerPedId()) then + SetPedToRagdoll(PlayerPedId(), math.random(1000, 3000), math.random(1000, 3000), 3, 0, 0, 0) + end + + startStamina = 0 +end + +function JointEffect() + -- if not onWeed then + -- local RelieveOdd = math.random(35, 45) + -- onWeed = true + -- local weedTime = Config.JointEffectTime + -- CreateThread(function() + -- while onWeed do + -- SetPlayerHealthRechargeMultiplier(PlayerId(), 1.8) + -- Wait(1000) + -- weedTime = weedTime - 1 + -- if weedTime == RelieveOdd then + -- TriggerServerEvent('hud:Server:RelieveStress', math.random(14, 18)) + -- end + -- if weedTime <= 0 then + -- onWeed = false + -- end + -- end + -- end) + -- end +end + +function CrackBaggyEffect() + local startStamina = 8 + local ped = PlayerPedId() + --AlienEffect() + SetRunSprintMultiplierForPlayer(PlayerId(), 1.3) + while startStamina > 0 do + Wait(1000) + if math.random(1, 100) < 10 then + RestorePlayerStamina(PlayerId(), 1.0) + end + startStamina = startStamina - 1 + if math.random(1, 100) < 60 and IsPedRunning(ped) then + SetPedToRagdoll(ped, math.random(1000, 2000), math.random(1000, 2000), 3, 0, 0, 0) + end + if math.random(1, 100) < 51 then + --AlienEffect() + end + end + if IsPedRunning(ped) then + SetPedToRagdoll(ped, math.random(1000, 3000), math.random(1000, 3000), 3, 0, 0, 0) + end + + startStamina = 0 + SetRunSprintMultiplierForPlayer(PlayerId(), 1.0) +end + +function CokeBaggyEffect() + local startStamina = 20 + local ped = PlayerPedId() + --AlienEffect() + SetRunSprintMultiplierForPlayer(PlayerId(), 1.1) + while startStamina > 0 do + Wait(1000) + if math.random(1, 100) < 20 then + RestorePlayerStamina(PlayerId(), 1.0) + end + startStamina = startStamina - 1 + if math.random(1, 100) < 10 and IsPedRunning(ped) then + SetPedToRagdoll(ped, math.random(1000, 3000), math.random(1000, 3000), 3, 0, 0, 0) + end + if math.random(1, 300) < 10 then + --AlienEffect() + Wait(math.random(3000, 6000)) + end + end + if IsPedRunning(ped) then + SetPedToRagdoll(ped, math.random(1000, 3000), math.random(1000, 3000), 3, 0, 0, 0) + end + + startStamina = 0 + SetRunSprintMultiplierForPlayer(PlayerId(), 1.0) +end]] + + +local consuming = false +local cancelled = false + +RegisterNetEvent('jim-consumables:Consume', function(itemName, type) + local Player = PlayerPedId() + local emote = Config.Emotes[Config.Consumables[itemName].emote] + local animDict = tostring(emote[1]) + local anim = tostring(emote[2]) + local model, bone, drugeffect = nil + local P1, P2, P3, P4, P5, P6 = table.unpack({0.0, 0.0, 0.0, 0.0, 0.0, 0.0}) + if emote.AnimationOptions.Prop then + model = tostring(emote.AnimationOptions.Prop) + bone = GetPedBoneIndex(PlayerPedId(), emote.AnimationOptions.PropBone) + P1, P2, P3, P4, P5, P6 = table.unpack(emote.AnimationOptions.PropPlacement) + end + local type = Config.Consumables[itemName].type + + if type == "drink" or type == "alcohol" then string = "Drinking " end + if type == "food" then string = "Eating " end + if type == "drug" then string = "Using " end + + if consuming then + cancelled = true + TriggerEvent("QBCore:Notify", "Stopped "..string, "error") + consuming = not consuming + return + end + + if emote.AnimationOptions then + if emote.AnimationOptions.EmoteLoop then MovementType = 1 + if emote.AnimationOptions.EmoteMoving then MovementType = 51 + end + elseif emote.AnimationOptions.EmoteMoving then MovementType = 51 + elseif emote.AnimationOptions.EmoteMoving == false then MovementType = 0 + elseif emote.AnimationOptions.EmoteStuck then MovementType = 50 + end + + else MovementType = 0 end + InVehicle = IsPedInAnyVehicle(PlayerPedId(), true) + if InVehicle == 1 then MovementType = 51 end + + loadAnimDict(animDict) + + TaskPlayAnim(Player, animDict, anim, 1.0, 1.0, -1, MovementType, 0, 0, 0, 0) + + --Prop Spawning + local attachProp = CreateObject(GetHashKey(model), 1.0, 1.0, 1.0, 1, 1, 0) + AttachEntityToEntity(attachProp, PlayerPedId(), bone, P1, P2, P3, P4, P5, P6, true, true, false, true, 1, true) + + local time = math.random(1000, 2000) + + TriggerEvent("QBCore:Notify", string..QBCore.Shared.Items[itemName].label.."..", "success", (time + 1000)) + + consuming = true + while consuming do + if time <= 0 then consuming = false print("complete") end + if IsControlJustPressed(0, 21) then + consuming = false + cancelled = true + end + Wait(10) + time = time - 10 + end + + StopEntityAnim(Player, anim, animDict, 1.0) + DeleteEntity(attachProp) + + if not cancelled then + TriggerEvent("inventory:client:ItemBox", QBCore.Shared.Items[itemName], "remove", 1) + TriggerServerEvent("QBCore:Server:RemoveItem", itemName, 1) + + if QBCore.Shared.Items[itemName].thirst then + TriggerServerEvent("QBCore:Server:SetMetaData", "thirst", QBCore.Functions.GetPlayerData().metadata["thirst"] + QBCore.Shared.Items[itemName].thirst) end + if QBCore.Shared.Items[itemName].hunger then + TriggerServerEvent("QBCore:Server:SetMetaData", "hunger", QBCore.Functions.GetPlayerData().metadata["hunger"] + QBCore.Shared.Items[itemName].hunger) end + + if not QBCore.Shared.Items[itemName].thirst and not QBCore.Shared.Items[itemName].hunger then + if type == "food" then TriggerServerEvent("QBCore:Server:SetMetaData", "hunger", QBCore.Functions.GetPlayerData().metadata["hunger"] + math.random(10,20)) end + if type == "drink" then TriggerServerEvent("QBCore:Server:SetMetaData", "thirst", QBCore.Functions.GetPlayerData().metadata["thirst"] + math.random(10,20)) end + end + + if stress then TriggerServerEvent('hud:server:RelieveStress', math.random(2, 4)) end + + if type == "alcohol" then + alcoholCount = alcoholCount + 1 + if alcoholCount > 1 and alcoholCount < 4 then + TriggerEvent("evidence:client:SetStatus", "alcohol", 200) + elseif alcoholCount >= 4 then + TriggerEvent("evidence:client:SetStatus", "heavyalcohol", 200) + AlienEffect() + end + end + + --[[drugeffect = Config.Consumables[itemName].drugeffect + + if drugeffect ~= nil then + if drugeffect.canOD then + drugCount = drugCount + 2 + if drugCount >= 4 then + SetEntityHealth(PlayerPedId(), GetEntityHealth(PlayerPedId()) - math.random(20,40)) + if drugCount >= 6 then + AlienEffect() + end + end + end + if drugeffect.armour then + end + if drugeffect.health then + HealDrug() + end + if drugeffect.stamina then + MethBagEffect() + if drugCount >= 4 then + TrevorEffect() + end + end + if drugeffect.widepupils then + TriggerEvent("evidence:client:SetStatus", "widepupils", 200) + EcstasyEffect() + end + end]] + + end + cancelled = false + consuming = false +end) + +CreateThread(function() + while true do + Wait(10) + if alcoholCount > 0 then + Wait(1000 * 60 * 15) + alcoholCount = alcoholCount - 1 + else + Wait(2000) + end + end +end) +--[[CreateThread(function() + while true do + Wait(10) + if drugCount > 0 then + Wait(1000 * 60 * 15) + drugCount = drugCount - 1 + else + Wait(2000) + end + end +end)]] \ No newline at end of file diff --git a/config.lua b/config.lua new file mode 100644 index 0000000..f063c8f --- /dev/null +++ b/config.lua @@ -0,0 +1,347 @@ +print("Jim-Consumables v1.0 - Consumables Script by Jimathy") + +-- If you need support I now have a discord available, it helps me keep track of issues and give better support. + +-- https://discord.gg/xKgQZ6wZvS + +Config = {} + +Config.Debug = false -- false to remove green boxes + +Config.Consumables = { + --Normal Drinks + ["cranberry"] = { emote = "wine", stress = true, type = "drink", }, + ["pinejuice"] = { emote = "coffee", stress = true, type = "drink", }, + + -- Default QB food item override + ["vodka"] = { emote = "vodkab", stress = true, type = "alcohol", }, + ["beer"] = { emote = "beer", stress = true, type = "alcohol", }, + ["whiskey"] = { emote = "whiskey", stress = true, type = "alcohol", }, + + ["sandwich"] = { emote = "sandwich", stress = true, type = "food", }, + ["twerks_candy"] = { emote = "egobar", stress = true, type = "food", }, + ["snikkel_candy"] = { emote = "egobar", stress = true, type = "food", }, + ["tosti"] = { emote = "sandwich", stress = true, type = "food", }, + + ["coffee"] = { emote = "coffee", stress = true, type = "drink", }, + ["water_bottle"] = { emote = "drink", stress = true, type = "drink", }, + ["kurkakola"] = { emote = "ecola", stress = true, type = "drink", }, + +--[[ Not working yet + --Drugs + ["cokebaggy"] = { emote = "coke", stress = true, type = "drug", effect = { armor = false, health = false, stamina = false, widepupils = false, canOD = true, screen = 1 } }, + ["crackbaggy"] = { emote = "coke", stress = true, type = "drug", effect = { armor = false, health = false, stamina = false, widepupils = false, canOD = true, screen = 1 } }, + ["xtcbaggy"] = { emote = "oxy", stress = true, type = "drug", effect = { armor = false, health = false, stamina = true, widepupils = false, canOD = true, screen = 1 } }, + ["oxy"] = { emote = "oxy", stress = true, type = "drug", effect = { armor = false, health = true, stamina = false, widepupils = false, canOD = false, screen = 1 } }, + ["meth"] = { emote = "coke", stress = true, type = "drug", effect = { armor = false, health = false, stamina = true, widepupils = false, canOD = true, screen = 1 } }, + ["joint"] = { emote = "joint", stress = true, type = "drug", effect = { armor = true, health = false, stamina = false, widepupils = false, canOD = true, screen = 1 } }, +]] +} + +Config.Emotes = { + ["whiskeyb"] = {"anim@amb@nightclub@mini@drinking@drinking_shots@ped_b@normal@", "glass_hold", "Whiskey Bottle", AnimationOptions = + { Prop = "prop_cs_whiskey_bottle", PropBone = 60309, PropPlacement = {0.08, 0.0, 0.05, 240.0, -60.0}, + EmoteMoving = true, EmoteLoop = true }}, + ["rumb"] = {"anim@amb@nightclub@mini@drinking@drinking_shots@ped_b@normal@", "glass_hold", "Rum Bottle", AnimationOptions = + { Prop = "prop_rum_bottle", PropBone = 60309, PropPlacement = {-0.04, -0.18, 0.12, 240.0, -60.0}, + EmoteMoving = true, EmoteLoop = true }}, + ["icream"] = {"anim@amb@nightclub@mini@drinking@drinking_shots@ped_b@normal@", "glass_hold", "Irish Cream Bottle", AnimationOptions = + { Prop = "prop_bottle_brandy", PropBone = 60309, PropPlacement = {-0.04, -0.18, 0.12, 240.0, -60.0}, + EmoteMoving = true, EmoteLoop = true }}, + ["ginb"] = {"anim@amb@nightclub@mini@drinking@drinking_shots@ped_b@normal@", "glass_hold", "Gin Bottle", AnimationOptions = + { Prop = "prop_tequila_bottle", PropBone = 60309, PropPlacement = {-0.04, -0.18, 0.12, 240.0, -60.0}, + EmoteMoving = true, EmoteLoop = true }}, + ["vodkab"] = {"anim@amb@nightclub@mini@drinking@drinking_shots@ped_b@normal@", "glass_hold", "Vodka Bottle", AnimationOptions = + { Prop = 'prop_vodka_bottle', PropBone = 60309, PropPlacement = {-0.04, -0.18, 0.12, 240.0, -60.0}, + EmoteMoving = true, EmoteLoop = true }}, + ["crisps"] = {"amb@world_human_drinking@coffee@male@idle_a", "idle_c", "Chrisps", AnimationOptions = + { Prop = 'v_ret_ml_chips2', PropBone = 28422, PropPlacement = {0.01, -0.05, -0.1, 0.0, 0.0, 90.0}, + EmoteLoop = true, EmoteMoving = true, }}, + ["beer1"] = {"mp_player_intdrink", "loop_bottle", "Dusche", AnimationOptions = + { Prop = "prop_beerdusche", PropBone = 18905, PropPlacement = {0.04, -0.14, 0.10, 240.0, -60.0}, + EmoteMoving = true, EmoteLoop = true, }}, + ["beer2"] = {"mp_player_intdrink", "loop_bottle", "Logger", AnimationOptions = + { Prop = "prop_beer_logopen", PropBone = 18905, PropPlacement = {0.03, -0.18, 0.10, 240.0, -60.0}, + EmoteMoving = true, EmoteLoop = true, }}, + ["beer3"] = {"mp_player_intdrink", "loop_bottle", "AM Beer", AnimationOptions = + { Prop = "prop_beer_amopen", PropBone = 18905, PropPlacement = {0.03, -0.18, 0.10, 240.0, -60.0}, + EmoteMoving = true, EmoteLoop = true, }}, + ["beer4"] = {"mp_player_intdrink", "loop_bottle", "Pisswasser1", AnimationOptions = + { Prop = "prop_beer_pissh", PropBone = 18905, PropPlacement = {0.03, -0.18, 0.10, 240.0, -60.0}, + EmoteMoving = true, EmoteLoop = true, }}, + ["beer5"] = {"mp_player_intdrink", "loop_bottle", "Pisswasser2", AnimationOptions = + { Prop = "prop_amb_beer_bottle", PropBone = 18905, PropPlacement = {0.12, 0.008, 0.03, 240.0, -60.0}, + EmoteMoving = true, EmoteLoop = true, }}, + ["beer6"] = {"mp_player_intdrink", "loop_bottle", "Pisswasser3", AnimationOptions = + { Prop = "prop_cs_beer_bot_02", PropBone = 18905, PropPlacement = {0.12, 0.008, 0.03, 240.0, -60.0}, + EmoteMoving = true, EmoteLoop = true, }}, + ["ecola"] = {"mp_player_intdrink", "loop_bottle", "E-cola", AnimationOptions = + { Prop = "prop_ecola_can", PropBone = 18905, PropPlacement = {0.12, 0.008, 0.03, 240.0, -60.0}, + EmoteMoving = true, EmoteLoop = true, }}, + ["sprunk"] = {"mp_player_intdrink", "loop_bottle", "Sprunk", AnimationOptions = + { Prop = "v_res_tt_can03", PropBone = 18905, PropPlacement = {0.12, 0.008, 0.03, 240.0, -60.0}, + EmoteMoving = true, EmoteLoop = true, }}, + + --Jim-BeanMachine + ["bmcoffee1"] = {"amb@world_human_drinking@coffee@male@idle_a", "idle_c", "Coffee2", AnimationOptions = + { Prop = 'prop_fib_coffee', PropBone = 28422, PropPlacement = {0.0, 0.0, 0.0, 0.0, 0.0, 0.0}, + EmoteLoop = true, EmoteMoving = true, }}, + + ["bmcoffee2"] = {"amb@world_human_drinking@coffee@male@idle_a", "idle_c", "Coffee3", AnimationOptions = + { Prop = 'ng_proc_coffee_01a', PropBone = 28422, PropPlacement = {0.0, 0.0, -0.06, 0.0, 0.0, 0.0}, + EmoteLoop = true, EmoteMoving = true, }}, + + ["bmcoffee3"] = {"amb@world_human_drinking@coffee@male@idle_a", "idle_c", "Coffee3", AnimationOptions = + { Prop = 'v_club_vu_coffeecup', PropBone = 28422, PropPlacement = {0.0, 0.0, -0.06, 0.0, 0.0, 0.0}, + EmoteLoop = true, EmoteMoving = true, }}, + + --Jim-PizzaThis + ["redwine"] = {"mp_player_intdrink", "loop_bottle", "Red Wine Bottle", AnimationOptions = + { Prop = "prop_wine_rose", PropBone = 18905, PropPlacement = {0.00, -0.26, 0.10, 240.0, -60.0}, + EmoteMoving = true, EmoteLoop = true, }}, + ["whitewine"] = {"mp_player_intdrink", "loop_bottle", "White Wine Bottle", AnimationOptions = + { Prop = "prop_wine_white", PropBone = 18905, PropPlacement = {0.00, -0.26, 0.10, 240.0, -60.0}, + EmoteMoving = true, EmoteLoop = true, }}, + ["pizza"] = {"mp_player_inteat@burger", "mp_player_int_eat_burger_fp", "Pizza", AnimationOptions = + { Prop = "v_res_tt_pizzaplate", PropBone = 18905, PropPlacement = {0.20, 0.038, 0.051, 15.0, 155.0}, + EmoteMoving = true, EmoteLoop = true, }}, + ["bowl"] = {"amb@world_human_drinking@coffee@male@idle_a", "idle_c", "bowl", AnimationOptions = + { Prop = "h4_prop_h4_coke_plasticbowl_01", PropBone = 28422, PropPlacement = {0.0, 0.0, 0.0, 0.0, 0.0, 0.0}, + EmoteMoving = true, EmoteLoop = true, }}, + ["pineapple"] = {"mp_player_inteat@burger", "mp_player_int_eat_burger_fp", "Pizza", AnimationOptions = + { Prop = "prop_pineapple", PropBone = 18905, PropPlacement = {0.10, 0.038, 0.03, 15.0, 50.0}, + EmoteMoving = true, EmoteLoop = true, }}, + ["foodbowl"] = {"amb@world_human_drinking@coffee@male@idle_a", "idle_c", "bowl", AnimationOptions = + { Prop = "prop_cs_bowl_01", PropBone = 28422, PropPlacement = {0.0, 0.0, 0.050, 0.0, 0.0, 0.0}, + EmoteMoving = true, EmoteLoop = true, }}, + + --Jim-BurgerShot + ["milk"] = {"mp_player_intdrink", "loop_bottle", "Milk", AnimationOptions = + { Prop = "v_res_tt_milk", PropBone = 18905, PropPlacement = {0.10, 0.008, 0.07, 240.0, -60.0}, + EmoteMoving = true, EmoteLoop = true, }}, + ["bscoke"] = {"mp_player_intdrink", "loop_bottle", "BS Coke", AnimationOptions = + { Prop = "prop_food_bs_juice01", PropBone = 18905, PropPlacement = {0.04, -0.10, 0.10, 240.0, -60.0}, + EmoteMoving = true, EmoteLoop = true, }}, + ["bscoffee"] = {"mp_player_intdrink", "loop_bottle", "BS Coffee", AnimationOptions = + { Prop = "prop_food_bs_coffee", PropBone = 18905, PropPlacement = {0.08, -0.10, 0.10, 240.0, -60.0}, + EmoteMoving = true, EmoteLoop = true, }}, + ["glass"] = {"amb@world_human_drinking@coffee@male@idle_a", "idle_c", "Tall Glass", AnimationOptions = + { Prop = 'prop_wheat_grass_glass', PropBone = 28422, PropPlacement = {0.0, 0.0, -0.1, 0.0, 0.0, 0.0}, + EmoteLoop = true, EmoteMoving = true, }}, + + ["torpedo"] = {"mp_player_inteat@burger", "mp_player_int_eat_burger_fp", "Torpedo", AnimationOptions = + { Prop = "prop_food_bs_burger2", PropBone = 18905, PropPlacement = {0.10, -0.07, 0.091, 15.0, 135.0}, + EmoteMoving = true, EmoteLoop = true, }}, + ["bsfries"] = {"mp_player_inteat@burger", "mp_player_int_eat_burger_fp", "Fries", AnimationOptions = + { Prop = "prop_food_bs_chips", PropBone = 18905, PropPlacement = {0.09, -0.06, 0.05, 300.0, 150.0}, + EmoteMoving = true, EmoteLoop = true, }}, + ["donut2"] = {"mp_player_inteat@burger", "mp_player_int_eat_burger", "Donut2", AnimationOptions = + { Prop = 'prop_donut_02', PropBone = 18905, PropPlacement = {0.13, 0.05, 0.02, -50.0, 100.0, 270.0}, + EmoteMoving = true, EmoteLoop = true, }}, + + --Jim-CatCafe + ["boba1"] = {"amb@world_human_drinking@coffee@male@idle_a", "idle_c", "Boba 1", AnimationOptions = + { Prop = 'denis3d_catcafe_boobaA', PropBone = 28422, PropPlacement = {0.0, 0.0, -0.1, 0.0, 0.0, 0.0}, + EmoteLoop = true, EmoteMoving = true, }}, + ["boba2"] = {"amb@world_human_drinking@coffee@male@idle_a", "idle_c", "Boba 2", AnimationOptions = + { Prop = 'denis3d_catcafe_boobaB', PropBone = 28422, PropPlacement = {0.0, 0.0, -0.1, 0.0, 0.0, 0.0}, + EmoteLoop = true, EmoteMoving = true, }}, + ["boba3"] = {"amb@world_human_drinking@coffee@male@idle_a", "idle_c", "Boba 3", AnimationOptions = + { Prop = 'denis3d_catcafe_boobaC', PropBone = 28422, PropPlacement = {0.0, 0.0, -0.1, 0.0, 0.0, 0.0}, + EmoteLoop = true, EmoteMoving = true, }}, + ["boba4"] = {"amb@world_human_drinking@coffee@male@idle_a", "idle_c", "Boba 4", AnimationOptions = + { Prop = 'denis3d_catcafe_boobaD', PropBone = 28422, PropPlacement = {0.0, 0.0, -0.1, 0.0, 0.0, 0.0}, + EmoteLoop = true, EmoteMoving = true, }}, + ["mochi"] = {"amb@world_human_drinking@coffee@male@idle_a", "idle_c", "Mochi", AnimationOptions = + { Prop = 'denis3d_catcafe_plateD', PropBone = 28422, PropPlacement = {0.0, 0.0, 0.0, 0.0, 0.0, 0.0}, + EmoteLoop = true, EmoteMoving = true, }}, + + --Jim-Tequilala + ["whiskeyb"] = {"anim@amb@nightclub@mini@drinking@drinking_shots@ped_b@normal@", "glass_hold", "Whiskey Bottle", AnimationOptions = + { Prop = "prop_cs_whiskey_bottle", PropBone = 60309, PropPlacement = {0.08, 0.0, 0.05, 240.0, -60.0}, + EmoteMoving = true, EmoteLoop = true }}, + ["rumb"] = {"anim@amb@nightclub@mini@drinking@drinking_shots@ped_b@normal@", "glass_hold", "Rum Bottle", AnimationOptions = + { Prop = "prop_rum_bottle", PropBone = 60309, PropPlacement = {-0.04, -0.18, 0.12, 240.0, -60.0}, + EmoteMoving = true, EmoteLoop = true }}, + ["icream"] = {"anim@amb@nightclub@mini@drinking@drinking_shots@ped_b@normal@", "glass_hold", "Irish Cream Bottle", AnimationOptions = + { Prop = "prop_bottle_brandy", PropBone = 60309, PropPlacement = {-0.04, -0.18, 0.12, 240.0, -60.0}, + EmoteMoving = true, EmoteLoop = true }}, + ["ginb"] = {"anim@amb@nightclub@mini@drinking@drinking_shots@ped_b@normal@", "glass_hold", "Gin Bottle", AnimationOptions = + { Prop = "prop_tequila_bottle", PropBone = 60309, PropPlacement = {-0.04, -0.18, 0.12, 240.0, -60.0}, + EmoteMoving = true, EmoteLoop = true }}, + ["vodkab"] = {"anim@amb@nightclub@mini@drinking@drinking_shots@ped_b@normal@", "glass_hold", "Vodka Bottle", AnimationOptions = + { Prop = 'prop_vodka_bottle', PropBone = 60309, PropPlacement = {-0.04, -0.18, 0.12, 240.0, -60.0}, + EmoteMoving = true, EmoteLoop = true }}, + + ["browncup"] = {"amb@world_human_drinking@coffee@male@idle_a", "idle_c", "Brown Cup", AnimationOptions = + { Prop = 'v_serv_bs_mug', PropBone = 28422, PropPlacement = {0.03, -0.02, 0.0, 0.0, 0.0, 0.0}, + EmoteLoop = true, EmoteMoving = true, }}, + + ["crisps"] = {"amb@world_human_drinking@coffee@male@idle_a", "idle_c", "Crisps", AnimationOptions = + { Prop = 'v_ret_ml_chips2', PropBone = 28422, PropPlacement = {0.01, -0.05, -0.1, 0.0, 0.0, 90.0}, + EmoteLoop = true, EmoteMoving = true, }}, + ["smoke2"] = {"amb@world_human_aa_smoke@male@idle_a", "idle_c", "Smoke 2", AnimationOptions = + { Prop = 'prop_cs_ciggy_01', PropBone = 28422, PropPlacement = {0.0, 0.0, 0.0, 0.0, 0.0, 0.0}, + EmoteLoop = true, EmoteMoving = true, }}, + ["smoke3"] = {"amb@world_human_aa_smoke@male@idle_a", "idle_b", "Smoke 3", AnimationOptions = + { Prop = 'prop_cs_ciggy_01', PropBone = 28422, PropPlacement = {0.0, 0.0, 0.0, 0.0, 0.0, 0.0}, + EmoteLoop = true, EmoteMoving = true, }}, + ["smoke4"] = {"amb@world_human_smoking@female@idle_a", "idle_b", "Smoke 4", AnimationOptions = + { + Prop = 'prop_cs_ciggy_01', + PropBone = 28422, + PropPlacement = {0.0, 0.0, 0.0, 0.0, 0.0, 0.0}, + EmoteLoop = true, + EmoteMoving = true, + }}, + ["bong"] = {"anim@safehouse@bong", "bong_stage3", "Bong", AnimationOptions = + { + Prop = 'hei_heist_sh_bong_01', + PropBone = 18905, + PropPlacement = {0.10,-0.25,0.0,95.0,190.0,180.0}, + }}, + ["coffee"] = {"amb@world_human_drinking@coffee@male@idle_a", "idle_c", "Coffee", AnimationOptions = + { + Prop = 'p_amb_coffeecup_01', + PropBone = 28422, + PropPlacement = {0.0, 0.0, 0.0, 0.0, 0.0, 0.0}, + EmoteLoop = true, + EmoteMoving = true, + }}, + ["whiskey"] = {"amb@world_human_drinking@coffee@male@idle_a", "idle_c", "Whiskey", AnimationOptions = + { + Prop = 'prop_drink_whisky', + PropBone = 28422, + PropPlacement = {0.01, -0.01, -0.06, 0.0, 0.0, 0.0}, + EmoteLoop = true, + EmoteMoving = true, + }}, + ["beer"] = {"amb@world_human_drinking@coffee@male@idle_a", "idle_c", "Beer", AnimationOptions = + { + Prop = 'prop_amb_beer_bottle', + PropBone = 28422, + PropPlacement = {0.0, 0.0, 0.0, 0.0, 0.0, 0.0}, + EmoteLoop = true, + EmoteMoving = true, + }}, + ["cup"] = {"amb@world_human_drinking@coffee@male@idle_a", "idle_c", "Cup", AnimationOptions = + { + Prop = 'prop_plastic_cup_02', + PropBone = 28422, + PropPlacement = {0.0, 0.0, 0.0, 0.0, 0.0, 0.0}, + EmoteLoop = true, + EmoteMoving = true, + }}, + ["donut"] = {"mp_player_inteat@burger", "mp_player_int_eat_burger", "Donut", AnimationOptions = + { + Prop = 'prop_amb_donut', + PropBone = 18905, + PropPlacement = {0.13, 0.05, 0.02, -50.0, 16.0, 60.0}, + EmoteMoving = true, + }}, + ["burger"] = {"mp_player_inteat@burger", "mp_player_int_eat_burger", "Burger", AnimationOptions = + { + Prop = 'prop_cs_burger_01', + PropBone = 18905, + PropPlacement = {0.13, 0.05, 0.02, -50.0, 16.0, 60.0}, + EmoteMoving = true, + }}, + ["sandwich"] = {"mp_player_inteat@burger", "mp_player_int_eat_burger", "Sandwich", AnimationOptions = + { + Prop = 'prop_sandwich_01', + PropBone = 18905, + PropPlacement = {0.13, 0.05, 0.02, -50.0, 16.0, 60.0}, + EmoteMoving = true, + }}, + ["soda"] = {"amb@world_human_drinking@coffee@male@idle_a", "idle_c", "Soda", AnimationOptions = + { + Prop = 'prop_ecola_can', + PropBone = 28422, + PropPlacement = {0.0, 0.0, 0.0, 0.0, 0.0, 130.0}, + EmoteLoop = true, + EmoteMoving = true, + }}, + ["egobar"] = {"mp_player_inteat@burger", "mp_player_int_eat_burger", "Ego Bar", AnimationOptions = + { + Prop = 'prop_choc_ego', + PropBone = 60309, + PropPlacement = {0.0, 0.0, 0.0, 0.0, 0.0, 0.0}, + EmoteMoving = true, + }}, + ["wine"] = {"anim@heists@humane_labs@finale@keycards", "ped_a_enter_loop", "Wine", AnimationOptions = + { + Prop = 'prop_drink_redwine', + PropBone = 18905, + PropPlacement = {0.10, -0.03, 0.03, -100.0, 0.0, -10.0}, + EmoteMoving = true, + EmoteLoop = true + }}, + ["flute"] = {"anim@heists@humane_labs@finale@keycards", "ped_a_enter_loop", "Flute", AnimationOptions = + { + Prop = 'prop_champ_flute', + PropBone = 18905, + PropPlacement = {0.10, -0.03, 0.03, -100.0, 0.0, -10.0}, + EmoteMoving = true, + EmoteLoop = true + }}, + ["champagne"] = {"anim@heists@humane_labs@finale@keycards", "ped_a_enter_loop", "Champagne", AnimationOptions = + { + Prop = 'prop_drink_champ', + PropBone = 18905, + PropPlacement = {0.10, -0.03, 0.03, -100.0, 0.0, -10.0}, + EmoteMoving = true, + EmoteLoop = true + }}, + ["cigar"] = {"amb@world_human_smoking@male@male_a@enter", "enter", "Cigar", AnimationOptions = + { + Prop = 'prop_cigar_02', + PropBone = 47419, + PropPlacement = {0.010, 0.0, 0.0, 50.0, 0.0, -80.0}, + EmoteMoving = true, + EmoteDuration = 2600 + }}, + ["cigar2"] = {"amb@world_human_smoking@male@male_a@enter", "enter", "Cigar 2", AnimationOptions = + { + Prop = 'prop_cigar_01', + PropBone = 47419, + PropPlacement = {0.010, 0.0, 0.0, 50.0, 0.0, -80.0}, + EmoteMoving = true, + EmoteDuration = 2600 + }}, + ["joint"] = {"amb@world_human_smoking@male@male_a@enter", "enter", "Joint", AnimationOptions = + { + Prop = 'p_cs_joint_02', + PropBone = 47419, + PropPlacement = {0.015, -0.009, 0.003, 55.0, 0.0, 110.0}, + EmoteMoving = true, + EmoteDuration = 2600 + }}, + ["cig"] = {"amb@world_human_smoking@male@male_a@enter", "enter", "Cig", AnimationOptions = + { + Prop = 'prop_amb_ciggy_01', + PropBone = 47419, + PropPlacement = {0.015, -0.009, 0.003, 55.0, 0.0, 110.0}, + EmoteMoving = true, + EmoteDuration = 2600 + }}, + ["clean"] = {"timetable@floyd@clean_kitchen@base", "base", "Clean", AnimationOptions = + { + Prop = "prop_sponge_01", + PropBone = 28422, + PropPlacement = {0.0, 0.0, -0.01, 90.0, 0.0, 0.0}, + EmoteLoop = true, + EmoteMoving = true, + }}, + ["clean2"] = {"amb@world_human_maid_clean@", "base", "Clean 2", AnimationOptions = + { + Prop = "prop_sponge_01", + PropBone = 28422, + PropPlacement = {0.0, 0.0, -0.01, 90.0, 0.0, 0.0}, + EmoteLoop = true, + EmoteMoving = true, + }}, + ["coke"] = { "switch@trevor@trev_smoking_meth", "trev_smoking_meth_loop", "Coke", + AnimationOptions = { EmoteLoop = true, EmoteMoving = true, }}, + ["oxy"] = { "mp_suicide", "pill", "Oxy", + AnimationOptions = { EmoteLoop = true, EmoteMoving = true, }}, +} \ No newline at end of file diff --git a/fxmanifest.lua b/fxmanifest.lua new file mode 100644 index 0000000..bdf6a5e --- /dev/null +++ b/fxmanifest.lua @@ -0,0 +1,18 @@ +name "Jim-Consumables" +author "Jimathy" +version "v1" +description "Consumable Script By Jimathy" +fx_version "cerulean" +game "gta5" + +client_scripts { + 'client/*.lua', +} + +server_scripts { + 'server/*.lua' +} + +shared_scripts { + 'config.lua', +} \ No newline at end of file diff --git a/server/server.lua b/server/server.lua new file mode 100644 index 0000000..4c24ebe --- /dev/null +++ b/server/server.lua @@ -0,0 +1,17 @@ +local QBCore = exports['qb-core']:GetCoreObject() + +--Consumables +CreateThread(function() + for k,v in pairs(Config.Consumables) do + QBCore.Functions.CreateUseableItem(k, function(source, item) + TriggerClientEvent('jim-consumables:Consume', source, item.name) + end) + end + local itemcheck = {} + local emotecheck = {} + for k,v in pairs(Config.Consumables) do + QBCore.Functions.CreateUseableItem(k, function(source, item) TriggerClientEvent('jim-consumables:Consume', source, item.name) end) + if not QBCore.Shared.Items[k] then print("Item check - '"..k.."' not found in the shared lua") elseif QBCore.Shared.Items[k] then end + if not Config.Emotes[v.emote] then print("Emote check - '"..k.."' requested emote '"..v.emote.."' - not found in config.lua") elseif Config.Emotes[v.emote] then end + end +end) \ No newline at end of file