diff --git a/client/animationsandfunctions.lua b/client/animationsandfunctions.lua index 2fb9662..521d52b 100644 --- a/client/animationsandfunctions.lua +++ b/client/animationsandfunctions.lua @@ -14,78 +14,73 @@ end function MethCooking() -local animDict, animName = "anim@amb@business@meth@meth_monitoring_cooking@cooking@", "chemical_pour_short_cooker" -lib.requestAnimDict(animDict, 500) -dict = "scr_ornate_heist" -local ped = PlayerPedId() -SetEntityCoords(ped, vector3(1005.773, -3200.402, -38.524)) -Wait(1) -local targetPosition = GetEntityCoords(ped) -local animDuration = GetAnimDuration(animDict, animName) * 800 -FreezeEntityPosition(ped, true) -local scenePos, sceneRot = vector3(1010.656, -3198.445, -38.925), vector3(0.0, 0.0, 0.0) -local netScene = NetworkCreateSynchronisedScene(scenePos, sceneRot, 2, false, false, 1065353216, 0, 1.3) -NetworkAddPedToSynchronisedScene(ped, netScene, animDict, animName, 1.5, -4.0, 1, 16, 1148846080, 0) -local sacid = CreateObjectNoOffset(`bkr_prop_meth_sacid`, targetPosition, 1, 1, 0) -NetworkAddEntityToSynchronisedScene(sacid, netScene, animDict, "chemical_pour_short_sacid", 4.0, -8.0, 1) -local ammonia = CreateObjectNoOffset(`bkr_prop_meth_ammonia`, targetPosition, 1, 1, 0) -NetworkAddEntityToSynchronisedScene(ammonia, netScene, animDict, "chemical_pour_short_ammonia", 4.0, -8.0, 1) -NetworkStartSynchronisedScene(netScene) -Wait(animDuration) -NetworkStopSynchronisedScene(netScene) -DeleteObject(sacid) -DeleteObject(ammonia) -FreezeEntityPosition(ped, false) -lib.requestModel('hei_prop_heist_thermite', 2000) -loadParticle('scr_ornate_heist') - -local thermite = CreateObject('hei_prop_heist_thermite', vector3(1005.76, -3201.3, -39.25), true, false, false) -FreezeEntityPosition(thermite, true) -SetEntityRotation(thermite, 190.0, 90.0, 140.0, 3, true ) -Wait(1000) -local therm = StartParticleFxLoopedOnEntity('scr_heist_ornate_thermal_burn', thermite, 0.0, 1.4, 0.0, 0.0, 0.0, 0.0, 1.5, false, false, false) -Wait(math.random(10000, 20000)) -StopParticleFxLooped(therm, true) + local animDict, animName = "anim@amb@business@meth@meth_monitoring_cooking@cooking@", "chemical_pour_short_cooker" + lib.requestAnimDict(animDict, 500) + SetEntityCoords(PlayerPedId(), vector3(1005.773, -3200.402, -38.524)) + local targetPosition = GetEntityCoords(PlayerPedId()) + local animDuration = GetAnimDuration(animDict, animName) * 800 + FreezeEntityPosition(PlayerPedId(), true) + local scenePos, sceneRot = vector3(1010.656, -3198.445, -38.925), vector3(0.0, 0.0, 0.0) + local netScene = NetworkCreateSynchronisedScene(scenePos, sceneRot, 2, false, false, 1065353216, 0, 1.3) + NetworkAddPedToSynchronisedScene(PlayerPedId(), netScene, animDict, animName, 1.5, -4.0, 1, 16, 1148846080, 0) + local sacid = CreateObjectNoOffset(`bkr_prop_meth_sacid`, targetPosition, 1, 1, 0) + NetworkAddEntityToSynchronisedScene(sacid, netScene, animDict, "chemical_pour_short_sacid", 4.0, -8.0, 1) + local ammonia = CreateObjectNoOffset(`bkr_prop_meth_ammonia`, targetPosition, 1, 1, 0) + NetworkAddEntityToSynchronisedScene(ammonia, netScene, animDict, "chemical_pour_short_ammonia", 4.0, -8.0, 1) + NetworkStartSynchronisedScene(netScene) + Wait(animDuration) + NetworkStopSynchronisedScene(netScene) + DeleteObject(sacid) DeleteObject(ammonia) + FreezeEntityPosition(PlayerPedId(), false) + lib.requestModel('hei_prop_heist_thermite', 2000) + loadParticle('scr_ornate_heist') + local thermite = CreateObject('hei_prop_heist_thermite', vector3(1005.76, -3201.3, -39.25), true, false, false) + FreezeEntityPosition(thermite, true) + SetEntityRotation(thermite, 190.0, 90.0, 140.0, 3, true ) + Wait(1000) + local therm = StartParticleFxLoopedOnEntity('scr_heist_ornate_thermal_burn', thermite, 0.0, 1.4, 0.0, 0.0, 0.0, 0.0, 1.5, false, false, false) + Wait(math.random(10000, 20000)) + StopParticleFxLooped(therm, true) end function SmashMeth() -local ver = "" -local animDict, animName = "anim@amb@business@meth@meth_smash_weight_check@", "break_weigh_"..ver.."char02" -lib.requestAnimDict(animDict, 500) -local ped = PlayerPedId() -local targetPosition = vector3(1012.628, -3194.619, -39.589) -SetEntityCoords(ped, targetPosition) -Wait(1) -local animDuration = GetAnimDuration(animDict, animName) * 800 -FreezeEntityPosition(ped, true) -local scenePos, sceneRot = vector3(1008.734, -3196.646, -39.99), vector3(0.0, 0.0, 1.08) -local netScene = NetworkCreateSynchronisedScene(scenePos, sceneRot, 2, false, false, 1065353216, 0, 1.3) -NetworkAddPedToSynchronisedScene(ped, netScene, animDict, animName, 1.5, -4.0, 1, 16, 1148846080, 0) -local objects, sceneObjects = {}, { - { hash = `w_me_hammer`, animName = "break_weigh_" .. ver .. "hammer"}, - { hash = `bkr_Prop_Meth_SmashedTray_01_frag_`, animName = "break_weigh_"..ver.."tray01"}, - { hash = `bkr_Prop_Meth_Tray_02a`, animName = "break_weigh_"..ver.."tray01^1"}, - { hash = `bkr_Prop_Meth_Tray_02a`, animName = "break_weigh_"..ver.."tray01^2"}, - { hash = `bkr_Prop_Meth_SmashedTray_01_frag_`, animName = "break_weigh_"..ver.."tray01^3"}, -} -for i=1, #sceneObjects, 1 do - local obj = CreateObjectNoOffset(sceneObjects[i].hash, targetPosition, true, true, true) - NetworkAddEntityToSynchronisedScene(obj, netScene, animDict, sceneObjects[i].animName, 4.0, -8.0, 1) - objects[#objects+1] = obj -end -NetworkStartSynchronisedScene(netScene) -Wait(animDuration) -NetworkStopSynchronisedScene(netScene) -for i=1, #objects, 1 do - DeleteObject(objects[i]) -end -RemoveAnimDict(animDict) -FreezeEntityPosition(ped, false) + local ver = "" + local animDict, animName = "anim@amb@business@meth@meth_smash_weight_check@", "break_weigh_"..ver.."char02" + lib.requestAnimDict(animDict, 500) + local ped = PlayerPedId() + local targetPosition = vector3(1012.628, -3194.619, -39.589) + SetEntityCoords(ped, targetPosition) + Wait(1) + local animDuration = GetAnimDuration(animDict, animName) * 800 + FreezeEntityPosition(ped, true) + local scenePos, sceneRot = vector3(1008.734, -3196.646, -39.99), vector3(0.0, 0.0, 1.08) + local netScene = NetworkCreateSynchronisedScene(scenePos, sceneRot, 2, false, false, 1065353216, 0, 1.3) + NetworkAddPedToSynchronisedScene(ped, netScene, animDict, animName, 1.5, -4.0, 1, 16, 1148846080, 0) + local objects, sceneObjects = {}, { + { hash = `w_me_hammer`, animName = "break_weigh_" .. ver .. "hammer"}, + { hash = `bkr_Prop_Meth_SmashedTray_01_frag_`, animName = "break_weigh_"..ver.."tray01"}, + { hash = `bkr_Prop_Meth_Tray_02a`, animName = "break_weigh_"..ver.."tray01^1"}, + { hash = `bkr_Prop_Meth_Tray_02a`, animName = "break_weigh_"..ver.."tray01^2"}, + { hash = `bkr_Prop_Meth_SmashedTray_01_frag_`, animName = "break_weigh_"..ver.."tray01^3"}, + } + for i=1, #sceneObjects, 1 do + local obj = CreateObjectNoOffset(sceneObjects[i].hash, targetPosition, true, true, true) + NetworkAddEntityToSynchronisedScene(obj, netScene, animDict, sceneObjects[i].animName, 4.0, -8.0, 1) + objects[#objects+1] = obj + end + NetworkStartSynchronisedScene(netScene) + Wait(animDuration) + NetworkStopSynchronisedScene(netScene) + for i=1, #objects, 1 do + DeleteObject(objects[i]) + end + RemoveAnimDict(animDict) + FreezeEntityPosition(ped, false) end function BagMeth() -local ver = "" + local ver = "" local animDict, animName = "anim@amb@business@meth@meth_smash_weight_check@", "break_weigh_"..ver.."char01" lib.requestAnimDict(animDict, 500) local animDuration = GetAnimDuration(animDict, animName) * 1000 @@ -142,7 +137,6 @@ for i=1, #scenesList, 1 do end Wait(animDuration-11000) --- Citizen.Wait(45000) for i=1, #scenesList, 1 do NetworkStopSynchronisedScene(scenesList[i]) end @@ -154,18 +148,18 @@ FreezeEntityPosition(ped, false) end function Tray() -local pos = GetEntityCoords(PlayerPedId(), true) -RequestAnimDict('anim@heists@box_carry@') -while (not HasAnimDictLoaded('anim@heists@box_carry@')) do -Wait(7) -end -TaskPlayAnim(PlayerPedId(), 'anim@heists@box_carry@', 'idle', 5.0, -1, -1, 50, 0, false, false, false) -RequestModel("bkr_prop_meth_tray_02a") -while not HasModelLoaded("bkr_prop_meth_tray_02a") do -Wait(0) -end -local trays = CreateObject("bkr_prop_meth_tray_02a", pos.x, pos.y, pos.z, true, true, true) -AttachEntityToEntity(trays, PlayerPedId(), GetPedBoneIndex(PlayerPedId(), 28422), 0.01,-0.2, -0.2, 20.0, 0.0, 0.0, true, true, false, true, 1, true) + local pos = GetEntityCoords(PlayerPedId(), true) + RequestAnimDict('anim@heists@box_carry@') + while (not HasAnimDictLoaded('anim@heists@box_carry@')) do + Wait(7) + end + TaskPlayAnim(PlayerPedId(), 'anim@heists@box_carry@', 'idle', 5.0, -1, -1, 50, 0, false, false, false) + RequestModel("bkr_prop_meth_tray_02a") + while not HasModelLoaded("bkr_prop_meth_tray_02a") do + Wait(0) + end + local trays = CreateObject("bkr_prop_meth_tray_02a", pos.x, pos.y, pos.z, true, true, true) + AttachEntityToEntity(trays, PlayerPedId(), GetPedBoneIndex(PlayerPedId(), 28422), 0.01,-0.2, -0.2, 20.0, 0.0, 0.0, true, true, false, true, 1, true) end @@ -183,52 +177,49 @@ function CutCoke() { hash = `prop_cs_credit_card`, animName = "coke_cut_v5_creditcard"}, { hash = `prop_cs_credit_card`, animName = "coke_cut_v5_creditcard^1"} }, - } -local scenesList, entitiesList = {}, {} -for i=1, #scenes, 1 do - local scene = NetworkCreateSynchronisedScene(scenePos, sceneRot, 2, false, false, 1065353216, 0, 1.3) - NetworkAddPedToSynchronisedScene(ped, scene, animDict, animName, 1.5, -4.0, 1, 16, 1148846080, 0) - for j=1, #scenes[i], 1 do - local s = scenes[i][j] - RequestModel(s.hash) - while not HasModelLoaded(s.hash) do - Wait(0) + local scenesList, entitiesList = {}, {} + for i=1, #scenes, 1 do + local scene = NetworkCreateSynchronisedScene(scenePos, sceneRot, 2, false, false, 1065353216, 0, 1.3) + NetworkAddPedToSynchronisedScene(ped, scene, animDict, animName, 1.5, -4.0, 1, 16, 1148846080, 0) + for j=1, #scenes[i], 1 do + local s = scenes[i][j] + RequestModel(s.hash) + while not HasModelLoaded(s.hash) do + Wait(0) + end + local obj = CreateObjectNoOffset(s.hash, coords, true, true, true) + SetModelAsNoLongerNeeded(s.hash) + entitiesList[#entitiesList+1] = obj + NetworkAddEntityToSynchronisedScene(obj, scene, animDict, s.animName, 4.0, -8.0, 1) end - local obj = CreateObjectNoOffset(s.hash, coords, true, true, true) - SetModelAsNoLongerNeeded(s.hash) - entitiesList[#entitiesList+1] = obj - NetworkAddEntityToSynchronisedScene(obj, scene, animDict, s.animName, 4.0, -8.0, 1) + scenesList[#scenesList+1] = scene + end + DisableCamCollisionForEntity(ped) + FreezeEntityPosition(ped, true) + for i=1, #scenesList, 1 do + NetworkStartSynchronisedScene(scenesList[i]) end - scenesList[#scenesList+1] = scene -end -DisableCamCollisionForEntity(ped) -FreezeEntityPosition(ped, true) -for i=1, #scenesList, 1 do - NetworkStartSynchronisedScene(scenesList[i]) -end -Wait(animDuration-11000) -for i=1, #scenesList, 1 do - NetworkStopSynchronisedScene(scenesList[i]) -end -for i=1, #entitiesList, 1 do - DeleteEntity(entitiesList[i]) -end -RemoveAnimDict(animDict) -FreezeEntityPosition(ped, false) + Wait(animDuration-11000) + for i=1, #scenesList, 1 do + NetworkStopSynchronisedScene(scenesList[i]) + end + for i=1, #entitiesList, 1 do + DeleteEntity(entitiesList[i]) + end + RemoveAnimDict(animDict) + FreezeEntityPosition(ped, false) end CreateThread(function() - BikerCocaine = exports['bob74_ipl']:GetBikerCocaineObject() BikerCocaine.Style.Set(BikerCocaine.Style.upgrade) BikerCocaine.Security.Set(BikerCocaine.Security.upgrade) BikerCocaine.Details.Enable({BikerCocaine.Details.cokeBasic1, BikerCocaine.Details.cokeBasic2, BikerCocaine.Details.cokeBasic3}, true) - end) - function BagCoke() +function BagCoke() local ver = "" local animDict, animName = "anim@amb@business@meth@meth_smash_weight_check@", "break_weigh_"..ver.."char01" lib.requestAnimDict(animDict, 500) @@ -281,7 +272,6 @@ for i=1, #scenesList, 1 do end Wait(animDuration-11000) --- Citizen.Wait(45000) for i=1, #scenesList, 1 do NetworkStopSynchronisedScene(scenesList[i]) end @@ -382,18 +372,18 @@ end local hit = 0 function SpawnCarPedChase() -local ped = GetEntityCoords(PlayerPedId()) -local stoploc = vector3(-1157.63, -3056.71, 13.94) -local start = Config.StartLoc[math.random(1,#Config.StartLoc)] -if started then -- checks if active -else + local stoploc = vector3(-1157.63, -3056.71, 13.94) + local start = Config.StartLoc[math.random(1,#Config.StartLoc)] + if started then + Notify(Lang.lean.act,'error') + else started = true lib.requestModel(`pounder`, Config.RequestModelTime) lib.requestModel("ig_priest", Config.RequestModelTime) lib.requestModel(`cargobob3`, Config.RequestModelTime) - local leancar = CreateVehicle(`pounder`, start.x+3, start.y-2, start.z-1, 52.0, true, true) - local driver = CreatePed(26, "ig_priest", start.x, start.y, start.z, 268.9422, true, false) - local pilot2 = CreatePed(26, "ig_priest", stoploc.x-3, stoploc.y-3, stoploc.z-1, 268.9422, true, false) + local leancar = CreateVehicle(`pounder`, start.x+3, start.y-2, start.z-1, 52.0, true, true) + local driver = CreatePed(26, "ig_priest", start.x, start.y, start.z, 268.9422, true, false) + local pilot2 = CreatePed(26, "ig_priest", stoploc.x-3, stoploc.y-3, stoploc.z-1, 268.9422, true, false) FreezeEntityPosition(pilot2, true) SetEntityInvincible(pilot2, true) SetEntityAsMissionEntity(leancar) @@ -401,16 +391,16 @@ else SetPedIntoVehicle(driver, leancar, -1) SetPedFleeAttributes(driver,false) TaskVehicleDriveToCoordLongrange(driver, leancar, stoploc.x, stoploc.y, stoploc.z-1, 50.0, 524288, 25.0) - SetPedKeepTask(driver, true) -- everything above is ped/ veh spawn - repeat -- repeats Wait(1000) only until + SetPedKeepTask(driver, true) + repeat Wait(1000) - until #(GetEntityCoords(driver) - stoploc) < 20.0 or GetEntityHealth(driver) == 0 -- either the distance is within 20 OR the driver is dead + until #(GetEntityCoords(driver) - stoploc) < 20.0 or GetEntityHealth(driver) == 0 RemoveBlip(leancar) - if GetEntityHealth(driver) == 0 then -- once one of those thing ends, the loop breaks and carries on from here + if GetEntityHealth(driver) == 0 then AddSingleModel(leancar, { name = 'leancar', icon = 'fa-solid fa-car', label = 'Steal From Car', action = function() hit = hit + 1 - if not minigame(2,8) then return end + if not minigame() then return end TriggerServerEvent('md-drugs:server:givelean') started = nil if math.random(1,100) <= 30 or hit == 4 then @@ -421,7 +411,7 @@ else end end}, nil) else - repeat -- this second loop is to spawn the helicopter when the truck is in distance + repeat Wait(1000) until #(GetEntityCoords(driver) - GetEntityCoords(pilot2)) < 25.0 Wait( 3 * 1000) @@ -447,7 +437,8 @@ local stoploc = vector3(-1157.63, -3056.71, 13.94) local start = Config.StartLoc[math.random(1,#Config.StartLoc)] local startedmeth = false -if startedmeth then +if startedmeth then + Notify(Lang.meth.act,'error') else startedmeth = true lib.requestModel(`journey`, Config.RequestModelTime) @@ -471,9 +462,9 @@ else AddSingleModel(methcar,{ name = 'methcar', icon = 'fa-solid fa-car', - label = 'Steal From Car', + label = Lang.targets.meth.stealfromcar, action = function() - if not minigame(2,8) then return end + if not minigame() then return end TriggerServerEvent('md-drugs:server:givemethingridients') startedmeth = nil if math.random(1,100) <= 30 then @@ -507,26 +498,24 @@ end function SetUpPeds() AddRelationshipGroup('setups') -local ped = GetEntityCoords(PlayerPedId()) -local peds = { - {x = ped.x+3, y = ped.y-5, z = ped.z-1, }, - {x = ped.x+6, y = ped.y-10, z = ped.z-1,}, - {x = ped.x+-2,y = ped.y+5, z = ped.z-1,}, - {x = ped.x+8, y = ped.y-12, z = ped.z-1,}, - {x = ped.x+5, y = ped.y-2, z = ped.z-1, }, - {x = ped.x+2, y = ped.y-20, z = ped.z-1,}, - {x = ped.x+1, y = ped.y-10, z = ped.z-1,}, -} -for i = 1, #peds do - local k = peds[i] - print(GetPedRelationshipGroupHash(i) ) - i = CreatePed(0, "g_m_y_famdnf_01", k.x, k.y, k.z, 90.0, true, true) - SetPedRelationshipGroupHash(i, 'setups') - GiveWeaponToPed(i, "weapon_pistol", 1, false, true) - TaskCombatPed(i, PlayerPedId(), 0, 16) - SetPedCombatAttributes(i, 46, true) -end - + local ped = GetEntityCoords(PlayerPedId()) + local peds = { + {x = ped.x+3, y = ped.y-5, z = ped.z-1, }, + {x = ped.x+6, y = ped.y-10, z = ped.z-1,}, + {x = ped.x+-2,y = ped.y+5, z = ped.z-1,}, + {x = ped.x+8, y = ped.y-12, z = ped.z-1,}, + {x = ped.x+5, y = ped.y-2, z = ped.z-1, }, + {x = ped.x+2, y = ped.y-20, z = ped.z-1,}, + {x = ped.x+1, y = ped.y-10, z = ped.z-1,}, + } + for i = 1, #peds do + local k = peds[i] + i = CreatePed(0, "g_m_y_famdnf_01", k.x, k.y, k.z, 90.0, true, true) + SetPedRelationshipGroupHash(i, 'setups') + GiveWeaponToPed(i, "weapon_pistol", 1, false, true) + TaskCombatPed(i, PlayerPedId(), 0, 16) + SetPedCombatAttributes(i, 46, true) + end end RegisterCommand('DrugRep', function() @@ -537,9 +526,10 @@ RegisterCommand('DrugRep', function() title = 'Drug Reputation', options = { {icon = "fa-solid fa-face-flushed", title = 'Cocaine: '..rep.coke}, - {icon = "fa-solid fa-syringe", title = 'Heroin: '..rep.heroin}, - {icon = "fa-solid fa-vial", title = 'LSD: '..rep.lsd}, - {icon = "fa-solid fa-plug", title = 'Dealer: '..rep.dealerrep}, + {icon = "fa-solid fa-syringe", title = 'Heroin: '..rep.heroin}, + {icon = "fa-solid fa-vial", title = 'LSD: '..rep.lsd}, + {icon = "fa-solid fa-plug", title = 'Dealer: '..rep.dealerrep}, + {icon = "fa-solid fa-money-bill", title = 'Corner Selling: ' .. rep.cornerselling.rep, description = 'Rank: ' .. rep.cornerselling.label } } }) lib.showContext('DrugRep') diff --git a/client/cocaine.lua b/client/cocaine.lua index 66ebd51..0c8b0b5 100644 --- a/client/cocaine.lua +++ b/client/cocaine.lua @@ -4,9 +4,9 @@ local cuttingcoke = nil local baggingcoke = nil local function pick(loc) -if not progressbar(Lang.Coke.picking, 4000, 'uncuff') then return end -TriggerServerEvent("coke:pickupCane", loc) -return true + if not progressbar(Lang.Coke.picking, 4000, 'uncuff') then return end + TriggerServerEvent("coke:pickupCane", loc) + return true end RegisterNetEvent('coke:respawnCane', function(loc) @@ -15,7 +15,7 @@ RegisterNetEvent('coke:respawnCane', function(loc) if not CocaPlant[loc] then CocaPlant[loc] = CreateObject(hash, v.location, false, true, true) Freeze(CocaPlant[loc], true, v.heading) - AddSingleModel(CocaPlant[loc], {icon = 'fas fa-hand', label = 'Pick Cocaine', action = function() if not pick(loc) then return end end}, loc) + AddSingleModel(CocaPlant[loc], {icon = "fa-solid fa-seedling", label = Lang.targets.coke.pick, action = function() if not pick(loc) then return end end}, loc) end end) @@ -27,27 +27,15 @@ end) RegisterNetEvent("coke:init", function() for k, v in pairs (GlobalState.CocaPlant) do local hash = GetHashKey(v.model) - if not HasModelLoaded(hash) then LoadModel(hash) end + LoadModel(hash) if not v.taken then CocaPlant[k] = CreateObject(hash, v.location.x, v.location.y, v.location.z, false, true, true) Freeze(CocaPlant[k], true, v.heading) - AddSingleModel(CocaPlant[k], {icon = 'fas fa-hand', label = 'Pick Cocaine', action = function() if not pick(k) then return end end}, k) + AddSingleModel(CocaPlant[k], {icon = "fa-solid fa-seedling", label = Lang.targets.coke.pick, action = function() if not pick(k) then return end end}, k) end end end) -AddEventHandler('onResourceStart', function(resource) - if resource == GetCurrentResourceName() then - LoadModel('prop_plant_01a') - TriggerEvent('coke:init') - end - end) - RegisterNetEvent('QBCore:Client:OnPlayerLoaded', function() - Wait(3000) - LoadModel('prop_plant_01a') - TriggerEvent('coke:init') - end) - AddEventHandler('onResourceStop', function(resourceName) if GetCurrentResourceName() == resourceName then SetModelAsNoLongerNeeded(GetHashKey('prop_plant_01a')) @@ -84,20 +72,19 @@ RegisterNetEvent("md-drugs:client:bagcoke", function() BagCoke() else if not progressbar(Lang.Coke.bagging, 5000, 'uncuff') then baggingcoke = nil return end - end + end TriggerServerEvent("md-drugs:server:bagcoke") baggingcoke = nil - end) CreateThread(function() if Config.FancyCokeAnims == false then - AddBoxZoneMulti('cuttcoke', Config.CuttingCoke, { type = "client", event = "md-drugs:client:cutcokeone", icon = "fas fa-sign-in-alt", label = "Cut Coke"}) - AddBoxZoneMulti('baggcoke', Config.BaggingCoke, { type = "client", event = "md-drugs:client:bagcoke", icon = "fas fa-sign-in-alt", label = "Bag Coke"}) + AddBoxZoneMulti('cuttcoke', Config.CuttingCoke, { type = "client", event = "md-drugs:client:cutcokeone", icon = "fa-solid fa-mortar-pestle", label = Lang.targets.coke.cut}) + AddBoxZoneMulti('baggcoke', Config.BaggingCoke, { type = "client", event = "md-drugs:client:bagcoke", icon = "fa-solid fa-sack-xmark", label = Lang.targets.coke.bag}) else AddBoxZoneSingle('cutcoke', vector3(1093.17, -3195.74, -39.19), - { type = "client", event = "md-drugs:client:cutcokeone", icon = "fas fa-sign-in-alt", label = "cut up", canInteract = function()if cuttingcoke == nil and baggingcoke == nil then return true end end }) + { type = "client", event = "md-drugs:client:cutcokeone", icon = "fa-solid fa-mortar-pestle", label = Lang.targets.coke.cut, canInteract = function()if cuttingcoke == nil and baggingcoke == nil then return true end end }) AddBoxZoneSingle('bagcokepowder', vector3(1090.29, -3195.66, -39.13), - { type = "client", event = "md-drugs:client:bagcoke", icon = "fas fa-sign-in-alt", label = "bagging", canInteract = function() if baggingcoke == nil and cuttingcoke == nil then return true end end }) + { type = "client", event = "md-drugs:client:bagcoke", icon = "fa-solid fa-sack-xmark", label = Lang.targets.coke.bag, canInteract = function() if baggingcoke == nil and cuttingcoke == nil then return true end end }) end end) diff --git a/client/consumables.lua b/client/consumables.lua index 929f9e5..8880f00 100644 --- a/client/consumables.lua +++ b/client/consumables.lua @@ -1,11 +1,9 @@ local QBCore = exports['qb-core']:GetCoreObject() RegisterNetEvent('md-drugs:client:consumedrugs', function(time, effect, anim, progresstext, status, item) - print(time, effect, anim, progresstext, status, item) if not progressbar(progresstext .. GetLabel(item).. "!", time, anim ) then return end TriggerServerEvent('md-drugs:server:removeconsum', item) for k, v in pairs (status) do - print(k,v) if k == 'health' then local cur = GetEntityHealth(PlayerPedId()) SetEntityHealth(PlayerPedId(), cur + v) @@ -21,7 +19,7 @@ RegisterNetEvent('md-drugs:client:consumedrugs', function(time, effect, anim, pr TriggerEvent('md-drugs:client:recievebuff', k, v) end end - TriggerEvent('evidence:client:SetStatus', 'widepupils', 200) if effect == "alien" then AlienEffect() elseif effect == "ecstacy" then EcstasyEffect() elseif effect == "meth" then MethBagEffect() elseif effect == "coke" then CokeBaggyEffect() elseif effect == "trevor" then TrevorEffect() else end if status == nil then return end + TriggerEvent('evidence:client:SetStatus', 'widepupils', 200) if effect == "alien" then AlienEffect() elseif effect == "ecstacy" then EcstasyEffect() elseif effect == "meth" then MethBagEffect() elseif effect == "coke" then CokeBaggyEffect() elseif effect == "trevor" then TrevorEffect() else end if status == nil then return end end) RegisterNetEvent('md-drugs:client:recievebuff', function(type, amount) @@ -36,12 +34,12 @@ if type == 'speed' then end if type == 'strength' then local strength = 0 - SetCurrentPedWeapon(PlayerPedId(), 'weapon_unarmed', true) - SetWeaponDamageModifier(GetHashKey("WEAPON_UNARMED"), 60.0) - repeat - strength = strength + 1 - Wait(1000) - until strength == amount - SetWeaponDamageModifier(GetHashKey("WEAPON_UNARMED"), 1.0) + SetCurrentPedWeapon(PlayerPedId(), 'weapon_unarmed', true) + SetWeaponDamageModifier(GetHashKey("WEAPON_UNARMED"), 50.0) + repeat + strength = strength + 1 + Wait(1000) + until strength == amount + SetWeaponDamageModifier(GetHashKey("WEAPON_UNARMED"), 1.0) end end) diff --git a/client/cornerselling.lua b/client/cornerselling.lua index d862af3..51474fc 100644 --- a/client/cornerselling.lua +++ b/client/cornerselling.lua @@ -2,41 +2,35 @@ local QBCore = exports['qb-core']:GetCoreObject() local sell = false local sold = false local targbusy = false +local inZone = false + +local function reset(targ) + FreezeEntityPosition(targ, false) + ClearPedTasks(targ) + Wait(10000) + DeletePed(targ) + targbusy = false + sold = true +end local function sellDrug(item, amount, price, targ) PoliceCall(20) targbusy = true if IsPedInAnyVehicle(PlayerPedId(), true) then - Notify('STRANGER DANGER, I WONT GET IN THE CAR WITH YOU', 'error') - FreezeEntityPosition(targ, false) - ClearPedTasks(targ) - Wait(10000) - DeletePed(targ) - targbusy = false - sold = true - sell = false + Notify(Lang.Cornerselling.inveh, 'error') + reset(targ) return end - if not progressbar('Selling ' .. GetLabel(item) .. '!', 4000, 'uncuff') then return end + if not progressbar(string.format(Lang.Cornerselling.selling, GetLabel(item), price), 4000, 'uncuff') then return end TriggerServerEvent('md-drugs:server:sellCornerDrugs', item, amount, price) - FreezeEntityPosition(targ, false) - ClearPedTasks(targ) - Wait(10000) - DeletePed(targ) - targbusy = false - sold = true + reset(targ) end local function deny(targ) PoliceCall(20) targbusy = true - if not progressbar('Telling This Dumbass To Leave!', 4000, 'argue5') then return end - FreezeEntityPosition(targ, false) - ClearPedTasks(targ) - Wait(10000) - DeletePed(targ) - targbusy = false - sold = true -end + if not progressbar(Lang.Cornerselling.deny, 4000, 'argue5') then return end + reset(targ) +end function Cornersell() local targ = lib.GetClosestPed(GetEntityCoords(PlayerPedId()), 8) @@ -47,56 +41,52 @@ function Cornersell() Wait(1000) until #(GetEntityCoords(PlayerPedId()) - GetEntityCoords(targ)) < 2.0 lib.requestAnimDict("rcmme_tracey1") - TaskStartScenarioInPlace(targ, "WORLD_HUMAN_STAND_IMPATIENT_UPRIGHT", 0, false) - FreezeEntityPosition(targ, true) + TaskStartScenarioInPlace(targ, "WORLD_HUMAN_STAND_IMPATIENT_UPRIGHT", 0, false) FreezeEntityPosition(targ, true) local item, amount, price = lib.callback.await('md-drugs:server:cornerselling:getAvailableDrugs', false) - if item == 'nothing' then Notify(' You Aint Got Shit', 'error') sell = false FreezeEntityPosition(targ, false) ClearPedTasks(targ) return false end + if item == 'nothing' then Notify(Lang.Cornerselling.nodrugs, 'error') sell = false FreezeEntityPosition(targ, false) ClearPedTasks(targ) return false end local options = { - { label = 'Sell ' .. amount .. ' Of ' .. GetLabel(item) .. ' For $' .. price .. '!', icon = "fas fa-eye", - action = function() - sellDrug(item, amount, price, targ) - end, - onSelect = function() - sellDrug(item, amount, price, targ) - end, + { label = string.format(Lang.targets.CornerSell.sell, amount, GetLabel(item), price), icon ="fa-solid fa-money-bill", + action = function() sellDrug(item, amount, price, targ) end, canInteract = function() if not targbusy then return true end end, }, - { label = 'Deny Price', icon = "fas fa-eye", - action = function() - deny(targ) - end, - onSelect = function() - deny(targ) - end, - canInteract = function() - if not targbusy then return true end end, + { label = Lang.targets.CornerSell.deny, icon = "fa-solid fa-person-harassing", + action = function() deny(targ) end, + canInteract = function() + if not targbusy then return true end end, }, } AddMultiModel(targ, options, nil) repeat Wait(1000) - until sold + until sold if sold then sold = false return true end end RegisterNetEvent('md-drugs:client:cornerselling', function() if not GetCops(QBConfig.MinimumDrugSalePolice) then return end + if inZone then Notify(Lang.Cornerselling.no, 'error') return end local item, amount, price = lib.callback.await('md-drugs:server:cornerselling:getAvailableDrugs', false) if item ~= 'nothing' then - if sell then - Notify('Lazy Ass Cant Even Sell Drugs', 'error') + if sell then + Notify(Lang.Cornerselling.stop, 'error') sell = false else sell = true - Notify('Go Make That Paper', 'success') + Notify(Lang.Cornerselling.start, 'success') repeat Wait(1000) - if not Cornersell() then end - until sell == false + if not Cornersell() then end + until not sell end else - Notify('You Cant Sell Air', 'error') + Notify(Lang.Cornerselling.nodrugs, 'error') end end) +CreateThread(function() +for k, v in pairs (QBConfig.NoSellZones) do + local box = lib.zones.box({ coords = v.loc, size = vec3(v.width, v.length, v.height), rotation = 180.0, debug = true, + onEnter = function() inZone = true end, onExit = function() inZone = false end}) +end +end) \ No newline at end of file diff --git a/client/crack.lua b/client/crack.lua index 0a9b887..c10d4e1 100644 --- a/client/crack.lua +++ b/client/crack.lua @@ -3,7 +3,7 @@ local QBCore = exports['qb-core']:GetCoreObject() RegisterNetEvent("md-drugs:client:makecrackone", function(data) if not ItemCheck('bakingsoda') then return end - if not minigame(2, 8) then TriggerServerEvent("md-drugs:server:failcrackone", data.data) return end + if not minigame() then TriggerServerEvent("md-drugs:server:failcrackone", data.data) return end if not progressbar(Lang.Crack.cookcrack, 4000, 'uncuff') then return end TriggerServerEvent("md-drugs:server:makecrackone", data.data) end) diff --git a/client/deliveries.lua b/client/deliveries.lua index fb3056f..b7c85e7 100644 --- a/client/deliveries.lua +++ b/client/deliveries.lua @@ -1,48 +1,9 @@ local QBCore = exports['qb-core']:GetCoreObject() local isActive = false -RegisterNetEvent('md-drugs:client:opendealermenu', function() - local dealermenu = {} - if Config.StupidassNewQbItemName then - for k, v in pairs (QBConfig.ProductsStupidNameRewrite) do - if QBCore.Functions.GetPlayerData().metadata["dealerrep"] >= v.minrep then - dealermenu[#dealermenu + 1] = { - icon = GetImage(v.name), - title = GetLabel(v.name), - description = v.price, - event = "md-drugs:client:travellingmerchantox", - args = { - item = v.name, - cost = v.price, - amount = v.amount, - table = QBConfig.ProductsStupidNameRewrite, - num = k, - } - } - - lib.registerContext({id = 'dealermenu',title = "Dealer Menu", options = dealermenu}) - end - end - else - for k, v in pairs (QBConfig.Products) do - if QBCore.Functions.GetPlayerData().metadata["dealerrep"] >= v.minrep then - dealermenu[#dealermenu + 1] = { - icon = GetImage(v.name), - title = GetLabel(v.name), - description = v.price, - event = "md-drugs:client:travellingmerchantox", - args = { - item = v.name, - cost = v.price, - amount = v.amount, - table = QBConfig.Products, - num = k, - } - } - lib.registerContext({id = 'dealermenu',title = "Dealer Menu", options = dealermenu}) - end - end - end +RegisterNetEvent('md-drugs:client:opendealermenu', function() + local rep = GetRep() + makeMenu('dealermenu', rep) lib.showContext('dealermenu') end) @@ -56,34 +17,17 @@ CreateThread(function() dealer[k] = CreatePed(0, Ped,loc.x,loc.y, loc.z-1, loc.h, false, false) Freeze(dealer[k], true, loc.h) local options = { - { - icon = 'fas fa-user-secret', - label = "Deliver For " .. v.name, + { icon = 'fas fa-user-secret', label = string.format(Lang.targets.Delivery.Deliver, v.name), action = function() local bool, item, amount, coords = lib.callback.await('md-drugs:server:GetDeliveryItem', false, k) if bool then - Email('Not A Drug Dealer', 'Hurry Up And Get The Package To The Buyer', 'I Swear To God If It Doesnt Get There I Will Tell Your Mom You Said Fuck Just Bring ' .. amount .. ' Of '.. GetLabel(item) .. '!' ) + Email(Lang.Delivery.emailn, Lang.Delivery.emailsub, string.format(Lang.Delivery.emailcon, amount, GetLabel(item))) TriggerEvent('md-drugs:client:setLocation', {bool = bool, item = item, amount = amount, coords = coords}) end end, - onSelect = function() - local bool, item, amount, coords = lib.callback.await('md-drugs:server:GetDeliveryItem', false, k) - if item then - TriggerEvent('md-drugs:client:setLocation', {bool = bool, item = item, amount = amount, coords = coords}) - Email('Not A Drug Dealer', 'Hurry Up And Get The Package To The Buyer', 'I Swear To God If It Doesnt Get There I Will Tell Your Mom You Said Fuck Just Bring ' .. amount .. ' Of '.. GetLabel(item) .. '!' ) - end - end }, - { - icon = 'fas fa-user-secret', - label = "Open " .. v.name .. "'s Shop", - action = function() - TriggerEvent('md-drugs:client:opendealermenu') - end, - onSelect = function() - TriggerEvent('md-drugs:client:opendealermenu') - end - + { icon = "fa-solid fa-store", label = string.format(Lang.targets.Delivery.open, v.name), + action = function() TriggerEvent('md-drugs:client:opendealermenu') end, } } AddMultiModel(dealer[k], options) @@ -92,28 +36,24 @@ end) RegisterNetEvent('md-drugs:client:setLocation', function(data) local coord = json.decode(data.coords) - if isActive then - Blip(vector3(coord.x, coord.y, coord.z), 'Drop Off') - return - end + SetNewWaypoint(coord.x, coord.y) + if isActive then return end isActive = true - Blip(vector3(coord.x, coord.y, coord.z), 'Drop Off') - Buyer = CreatePed(0, "g_m_y_famdnf_01",coord.x, coord.y, coord.z-1, 180.0, false, false) + local Buyer = CreatePed(0, "g_m_y_famdnf_01",coord.x, coord.y, coord.z-1, 180.0, false, false) Freeze(Buyer, true, 180) - AddSingleModel(Buyer, { - icon = 'fas fa-user-secret', - label = "Hand Off", - action = function() - if not progressbar('Delivering The Package', 4000, 'uncuff') then return end - isActive = false - DeletePed(Buyer) - RemoveBlip(deliveryBlip) - TriggerServerEvent('md-drugs:server:giveDeliveryItems', data.item, data.amount) - end, - canInteract = function() - if isActive then - return true - end + AddSingleModel(Buyer, { + icon = 'fas fa-user-secret', + label = Lang.targets.Delivery.hand, + action = function() + if not progressbar(Lang.Delivery.pack, 4000, 'uncuff') then return end + isActive = false + DeletePed(Buyer) + TriggerServerEvent('md-drugs:server:giveDeliveryItems', data.item, data.amount) + end, + canInteract = function() + if isActive then + return true end - }, nil) + end + }, nil) end) \ No newline at end of file diff --git a/client/functions.lua b/client/functions.lua index 480adfd..d4ca65f 100644 --- a/client/functions.lua +++ b/client/functions.lua @@ -53,7 +53,24 @@ function progressbar(text, time, anim) end end - function minigame(tier) +function loadParticle(dict) + if not HasNamedPtfxAssetLoaded(dict) then + RequestNamedPtfxAsset(dict) + end + while not HasNamedPtfxAssetLoaded(dict) do + Wait(0) + end + SetPtfxAssetNextCall(dict) +end + +function LoadModel(hash) + RequestModel(hash) + while not HasModelLoaded(hash) do + Wait(0) + end +end + +function minigame() local time = 0 local game = Config.Minigames if minigametype == 'ps_circle' then @@ -143,13 +160,11 @@ function progressbar(text, time, anim) until successes or time == 100 elseif minigametype == 'none' then return true - else - print"^1 SCRIPT ERROR: Md-Drugs set your minigame with one of the options!" + else + print"^1 SCRIPT ERROR: Md-Drugs set your minigame with one of the options!" end end - - function Notify(text, type) if notifytype =='ox' then lib.notify({title = text, type = type}) @@ -157,36 +172,34 @@ function progressbar(text, time, anim) QBCore.Functions.Notify(text, type) elseif notifytype == 'okok' then exports['okokNotify']:Alert('', text, 4000, type, false) - else + else print"^1 SCRIPT ERROR: Md-DRUGS set your notification with one of the options!" - end + end end function GetImage(img) - if GetResourceState('ox_inventory') == 'started' then - local Items = exports['ox_inventory']:Items() - if Items[img]['client'] then - if Items[img]['client']['image'] then - return Items[img]['client']['image'] - else - return "nui://ox_inventory/web/images/".. img.. '.png' - end - else - return "nui://ox_inventory/web/images/".. img.. '.png' - end - elseif GetResourceState('ps-inventory') == 'started' then - return "nui://ps-inventory/html/images/".. QBCore.Shared.Items[img].image - elseif GetResourceState('lj-inventory') == 'started' then - return "nui://lj-inventory/html/images/".. QBCore.Shared.Items[img].image - elseif GetResourceState('qb-inventory') == 'started' then - return "nui://qb-inventory/html/images/".. QBCore.Shared.Items[img].image - elseif GetResourceState('qs-inventory') == 'started' then - return "nui://qs-inventory/html/img/".. QBCore.Shared.Items[img].image - elseif GetResourceState('origen_inventory') == 'started' then - return "nui://origen_inventory/html/img/".. QBCore.Shared.Items[img].image - elseif GetResourceState('core_inventory') == 'started' then - return "nui://core_inventory/html/img/".. QBCore.Shared.Items[img].image - end + if GetResourceState('ox_inventory') == 'started' then + local Items = exports['ox_inventory']:Items() + local itemClient = Items[img] and Items[img]['client'] + if itemClient and itemClient['image'] then + return itemClient['image'] + else + return "nui://ox_inventory/web/images/" .. img .. '.png' + end + end + local invs = { + ['ps-inventory'] = "nui://ps-inventory/html/images/", + ['lj-inventory'] = "nui://lj-inventory/html/images/", + ['qb-inventory'] = "nui://qb-inventory/html/images/", + ['qs-inventory'] = "nui://qs-inventory/html/img/", + ['origen_inventory'] = "nui://origen_inventory/html/img/", + ['core_inventory'] = "nui://core_inventory/html/img/" + } + for k, v in pairs(invs) do + if GetResourceState(k) == 'started' then + return v .. QBCore.Shared.Items[img].image + end + end end function GetLabel(label) @@ -198,9 +211,49 @@ function GetLabel(label) end end +function GetRep() + local rep = lib.callback.await('md-drugs:server:GetRep', false) + return rep +end + + +function sorter(sorting, value) + table.sort(sorting, function(a, b) return a[value] < b[value] end) +end + +function makeMenu(name, rep) + local menu = {} + local data = lib.callback.await('md-drugs:server:menu', false, name) + for k, v in pairs (data.table) do + local allow = false + if rep == nil then + allow = true + else + if rep.dealerrep >= v.minrep then allow = true end + end + if allow then + menu[#menu + 1] = { + icon = GetImage(v.name), + description = '$'.. v.price, + title = GetLabel(v.name), + onSelect = function() + local settext = "Cost: $"..v.price + local dialog = exports.ox_lib:inputDialog(v.name .."!", { + { type = 'select', label = "Payment Type", default = "cash", options = { { value = "cash"}, { value = "bank"},}}, + { type = 'number', label = "Amount to buy", description = settext, min = 0, max = v.amount, default = 1 }, + }) + if not dialog[1] then return end + TriggerServerEvent("md-drugs:server:purchaseGoods", dialog[2], dialog[1], v.name, v.price, data.table, k) + end, + } + end + end + sorter(menu, 'title') + lib.registerContext({id = data.id, title = data.title, options = menu}) +end + function ItemCheck(item) -local success if GetResourceState('ox_inventory') == 'started' then if exports.ox_inventory:GetItemCount(item) >= 1 then return true else Notify('You Need ' .. GetLabel(item) .. " !", 'error') return false end else @@ -236,7 +289,6 @@ function Email(sender, subject, message) sender = sender, senderDisplayName = sender, content = message, - }, 'phoneNumber', receiver) elseif Config.Phone == 'qs' then TriggerServerEvent('qs-smartphone:server:sendNewMail', { @@ -252,7 +304,7 @@ function Email(sender, subject, message) message = message, }) end -end +end function PoliceCall(chance) local math = math.random(1,100) @@ -269,15 +321,7 @@ function PoliceCall(chance) flash = 0, unique_id = data.unique_id, sound = 1, - blip = { - sprite = 431, - scale = 1.2, - colour = 3, - flashes = false, - text = '420-69 Drug Sale', - time = 5, - radius = 0, - } + blip = { sprite = 431, scale = 1.2, colour = 3, flashes = false, text = '420-69 Drug Sale', time = 5, radius = 0,} }) elseif dispatch == 'core' then exports['core_dispatch']:addCall("420-69", "Drugs Are Being Sold", { @@ -317,22 +361,6 @@ function tele(coords) DoScreenFadeIn(500) end -function Blip(entity, text) - local deliveryBlip = AddBlipForCoord(entity) - SetBlipSprite(deliveryBlip, 1) - SetBlipDisplay(deliveryBlip, 2) - SetBlipScale(deliveryBlip, 1.0) - SetBlipAsShortRange(deliveryBlip, false) - SetBlipColour(deliveryBlip, 27) - BeginTextCommandSetBlipName("STRING") - AddTextComponentSubstringPlayerName(text) - EndTextCommandSetBlipName(deliveryBlip) - SetBlipRoute(deliveryBlip, true) -end - -function RemoveBlips() - RemoveBlip(deliveryBlip) -end function AddBoxZoneSingle(name, loc, data) if Config.Target == 'qb' then @@ -347,7 +375,7 @@ function AddBoxZoneSingle(name, loc, data) data = data.data, canInteract = data.canInteract, } - }, + }, distance = 2.0 }) elseif Config.Target == 'ox' then @@ -404,7 +432,6 @@ function AddBoxZoneMulti(name, table, data) end function AddBoxZoneMultiOptions(name, loc, data) - if Config.Target == 'qb' then exports['qb-target']:AddBoxZone(name , loc, 1.5, 1.75, {name = name, minZ = loc.z-1.50,maxZ = loc.z +1.5}, { options = data, distance = 2.5}) @@ -425,10 +452,17 @@ function AddSingleModel(model, data, num) end function AddMultiModel(model, data, num) + local options = {} + for k, v in pairs (data) do + table.insert(options,{ + icon = v.icon, label = v.label, event = v.event or nil, action = v.action or nil, + onSelect = v.action,data = v.data,canInteract = v.canInteract or nil, distance = 2.0, + }) + end if Config.Target == 'qb' then - exports['qb-target']:AddTargetEntity(model, {options = data, distance = 2.5}) + exports['qb-target']:AddTargetEntity(model, {options = options, distance = 2.5}) elseif Config.Target == 'ox' then - exports.ox_target:addLocalEntity(model, data) + exports.ox_target:addLocalEntity(model, options) end end @@ -523,9 +557,24 @@ end RegisterNetEvent('QBCore:Client:OnPlayerLoaded', function() Wait(3000) + LoadModel('prop_plant_01b') TriggerEvent('heroin:init') + LoadModel('prop_plant_01a') TriggerEvent('coke:init') + LoadModel('prop_cactus_03') TriggerEvent('Mescaline:init') + LoadModel('mushroom') TriggerEvent('shrooms:init') + LoadModel('bkr_prop_weed_lrg_01b') TriggerEvent('weed:init') local check = lib.callback.await('md-drugs:server:GetRep', false) - return + return +end) + +AddEventHandler('onResourceStart', function(resource) + if resource == GetCurrentResourceName() then + LoadModel('prop_plant_01b') TriggerEvent('heroin:init') + LoadModel('prop_plant_01a') TriggerEvent('coke:init') + LoadModel('prop_cactus_03') TriggerEvent('Mescaline:init') + LoadModel('mushroom') TriggerEvent('shrooms:init') + LoadModel('bkr_prop_weed_lrg_01b') TriggerEvent('weed:init') + end end) local active = false RegisterNetEvent('md-drugs:client:minusTier', function(data) diff --git a/client/heroin.lua b/client/heroin.lua index 87407ee..ca626e3 100644 --- a/client/heroin.lua +++ b/client/heroin.lua @@ -2,6 +2,17 @@ local QBCore = exports['qb-core']:GetCoreObject() local PoppyPlants = {} local herointable = false + local function createLabKit(coord, head) + local heroinlabkit = CreateObject("v_ret_ml_tablea", coord.x, coord.y, coord.z - 1, true, false,false) + SetEntityHeading(heroinlabkit, head) + PlaceObjectOnGroundProperly(heroinlabkit) + local options = { + { event = "md-drugs:client:heatliquidheroin", icon = "fa-solid fa-temperature-high", label = Lang.targets.heroin.cook, data = heroinlabkit}, + { event = "md-drugs:client:getheroinkitback", icon = "fas fa-box-circle-check", label = Lang.targets.heroin.up, data = heroinlabkit, canInteract = function() if herointable then return true end end}, + } + AddMultiModel(heroinlabkit, options, heroinlabkit) +end + local function pickher(loc) if not progressbar(Lang.Heroin.pick, 4000, 'uncuff') then return end TriggerServerEvent("heroin:pickupCane", loc) @@ -13,29 +24,24 @@ local Ped = "g_m_y_famdnf_01" local labkitlocation = Config.buyheroinlabkit local heroinkitdealer = CreatePed(0, Ped, labkitlocation.x, labkitlocation.y, labkitlocation.z-1, labkitlocation.w, false, false) Freeze(heroinkitdealer, true, labkitlocation.w) - AddSingleModel(heroinkitdealer, { label = "Buy Heroin Lab Kit", icon = "fas fa-eye", event = "md-drugs:client:buyheroinlabkit", distance = 2.0}, nil ) + AddSingleModel(heroinkitdealer, { label = Lang.targets.heroin.kit, icon = "fa-solid fa-money-bill", event = "md-drugs:client:buyheroinlabkit", distance = 2.0}, nil ) end) ----- plant spawns dont edit RegisterNetEvent('heroin:respawnCane', function(loc) local v = GlobalState.PoppyPlants[loc] local hash = GetHashKey(v.model) if not PoppyPlants[loc] then PoppyPlants[loc] = CreateObject(hash, v.location, false, true, true) Freeze(PoppyPlants[loc], true, v.heading) - AddSingleModel(PoppyPlants[loc], {icon = "fas fa-hand", label = "pick Poppies", action = function() pickher(loc) end}, loc ) + AddSingleModel(PoppyPlants[loc], {icon = "fa-solid fa-seedling", label = Lang.targets.heroin.pick, action = function() pickher(loc) end}, loc ) end end) - - RegisterNetEvent('heroin:removeCane', function(loc) if DoesEntityExist(PoppyPlants[loc]) then DeleteEntity(PoppyPlants[loc]) end PoppyPlants[loc] = nil end) - - RegisterNetEvent("heroin:init", function() for k, v in pairs (GlobalState.PoppyPlants) do local hash = GetHashKey(v.model) @@ -43,24 +49,11 @@ RegisterNetEvent("heroin:init", function() if not v.taken then PoppyPlants[k] = CreateObject(hash, v.location.x, v.location.y, v.location.z, false, true, true) Freeze(PoppyPlants[k], true, v.heading) - AddSingleModel(PoppyPlants[k], {icon = "fas fa-hand", label = "pick Poppies", action = function() pickher(k) end}, k ) + AddSingleModel(PoppyPlants[k], {icon = "fa-solid fa-seedling", label = Lang.targets.heroin.pick, action = function() pickher(k) end}, k ) end end end) -AddEventHandler('onResourceStart', function(resource) - if resource == GetCurrentResourceName() then - LoadModel('prop_plant_01b') - TriggerEvent('heroin:init') - end - end) - - RegisterNetEvent('QBCore:Client:OnPlayerLoaded', function() - Wait(3000) - LoadModel('prop_plant_01b') - TriggerEvent('heroin:init') - end) - AddEventHandler('onResourceStop', function(resourceName) if GetCurrentResourceName() == resourceName then SetModelAsNoLongerNeeded(GetHashKey('prop_plant_01b')) @@ -70,11 +63,7 @@ AddEventHandler('onResourceStart', function(resource) end end end - DeleteObject(heroinlabkit) - DeleteObject(dirtylabkitheroin) end) ----- plant stop end - RegisterNetEvent("md-drugs:client:dryplant", function(data) if not progressbar(Lang.Heroin.dryout, 4000, 'uncuff') then return end @@ -92,32 +81,22 @@ RegisterNetEvent("md-drugs:client:buyheroinlabkit", function() TriggerServerEvent("md-drugs:server:getheroinlabkit") end) - RegisterNetEvent("md-drugs:client:setheroinlabkit", function() -if herointable then - Notify(Lang.Heroin.tableout, 'error') -else - herointable = true - local location, head = StartRay() - if not location then herointable = false TriggerServerEvent('md-drugs:server:getheroinlabkitback') return end - if not progressbar(Lang.Heroin.table, 4000, 'uncuff') then TriggerServerEvent('md-drugs:server:getheroinlabkitback') return end - local heroinlabkit = CreateObject("v_ret_ml_tablea", location.x, location.y, location.z, true, false) - SetEntityHeading(heroinlabkit, head) - PlaceObjectOnGroundProperly(heroinlabkit) - local options = { - { event = "md-drugs:client:heatliquidheroin", icon = "fas fa-box-circle-check", label = "Cook Heroin", data = heroinlabkit}, - { event = "md-drugs:client:getheroinkitback", icon = "fas fa-box-circle-check", label = "Pick Up", data = heroinlabkit, canInteract = function() if herointable then return true end end}, - } - AddMultiModel(heroinlabkit, options, heroinlabkit) -end + if herointable then + Notify(Lang.Heroin.tableout, 'error') + else + herointable = true + local location, head = StartRay() + if not location then herointable = false TriggerServerEvent('md-drugs:server:getheroinlabkitback') return end + if not progressbar(Lang.Heroin.table, 4000, 'uncuff') then TriggerServerEvent('md-drugs:server:getheroinlabkitback') return end + createLabKit(location, head) + end end) - RegisterNetEvent("md-drugs:client:heatliquidheroin", function(data) - local loc = GetEntityCoords(data.data) - local head = GetEntityHeading(data.data) + local loc, head = GetEntityCoords(data.data), GetEntityHeading(data.data) if not ItemCheck('emptyvial') then return end - if not minigame(2, 8) then + if not minigame() then TriggerServerEvent("md-drugs:server:failheatingheroin") DeleteObject(data.data) local dirtylabkitheroin = CreateObject("v_ret_ml_tablea", loc.x, loc.y, loc.z-1, true, false) @@ -127,12 +106,9 @@ RegisterNetEvent("md-drugs:client:heatliquidheroin", function(data) heroinkit = StartParticleFxLoopedOnEntity("exp_air_molotov", dirtylabkitheroin, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.5, false, false, false) SetParticleFxLoopedAlpha(heroinkit, 3.0) SetPedToRagdoll(PlayerPedId(), 1300, 1300, 0, 0, 0, 0) - local options = { - { event = "md-drugs:client:cleanheroinlabkit", icon = "fas fa-box-circle-check", label = "Clean It", data = dirtylabkitheroin} - } - AddMultiModel(dirtylabkitheroin, options, nil ) + AddMultiModel(dirtylabkitheroin, {{event = "md-drugs:client:cleanheroinlabkit",icon = "fa-solid fa-hand-sparkles",label = Lang.targets.heroin.clean, data = dirtylabkitheroin}}, nil ) return end - if not progressbar(Lang.Heroin.success, 4000, 'uncuff') then return end + if not progressbar(Lang.Heroin.success, 4000, 'uncuff') then return end TriggerServerEvent("md-drugs:server:heatliquidheroin") end) @@ -144,21 +120,11 @@ RegisterNetEvent("md-drugs:client:cleanheroinlabkit", function(data) end) RegisterNetEvent("md-drugs:client:deletedirtyheroin", function(data) -local location = GetEntityCoords(data) -local head = GetEntityHeading(data) + local location,head = GetEntityCoords(data), GetEntityHeading(data) DeleteObject(data) - local heroinlabkit = CreateObject("v_ret_ml_tablea", location.x, location.y, location.z-1, true, false) - SetEntityHeading(heroinlabkit, head) - PlaceObjectOnGroundProperly(heroinlabkit) - local options = { - { event = "md-drugs:client:heatliquidheroin", icon = "fas fa-box-circle-check", label = "Cook Heroin", data = heroinlabkit}, - { event = "md-drugs:client:getheroinkitback", icon = "fas fa-box-circle-check", label = "Pick Up", data = heroinlabkit, canInteract = function() if herointable then return true end end}, - } - AddMultiModel(heroinlabkit, options, heroinlabkit) + createLabKit(location, head) end) - - RegisterNetEvent("md-drugs:client:getheroinkitback", function(data) if not progressbar(Lang.Heroin.pickup, 4000, 'uncuff') then return end herointable = false @@ -166,11 +132,8 @@ RegisterNetEvent("md-drugs:client:getheroinkitback", function(data) TriggerServerEvent("md-drugs:server:getheroinlabkitback") end) - -RegisterNetEvent("md-drugs:client:fillneedle", function(data) - if not minigame(2, 8) then TriggerServerEvent("md-drugs:server:failheroin", data.data) return end - if not progressbar(Lang.Heroin.needles, 4000, 'uncuff') then return end +RegisterNetEvent("md-drugs:client:fillneedle", function(data) + if not minigame() then TriggerServerEvent("md-drugs:server:failheroin", data.data) return end + if not progressbar(Lang.Heroin.needles, 4000, 'uncuff') then return end TriggerServerEvent("md-drugs:server:fillneedle", data.data) -end) - - +end) \ No newline at end of file diff --git a/client/lean.lua b/client/lean.lua index 202bcfd..9ad6941 100644 --- a/client/lean.lua +++ b/client/lean.lua @@ -5,11 +5,11 @@ CreateThread(function() lib.requestModel(current, Config.RequestModelTime) local SyrupLocation = CreatePed(0, current,Config.SyrupVendor.x,Config.SyrupVendor.y,Config.SyrupVendor.z-1, Config.SyrupVendor.w, false, false) Freeze(SyrupLocation, true, Config.SyrupVendor.w) - AddSingleModel(SyrupLocation, { type = "client", label = "Get Task", icon = "fas fa-eye", event = "md-drugs:client:getsyruplocationtobuy", distance = 2.0}, nil ) + AddSingleModel(SyrupLocation, { type = "client", label = Lang.targets.lean.git, icon = "fa-solid fa-circle-info", event = "md-drugs:client:getsyruplocationtobuy", distance = 2.0}, nil ) end) -RegisterNetEvent("md-drugs:client:getsyruplocationtobuy", function() +RegisterNetEvent("md-drugs:client:getsyruplocationtobuy", function() Notify(Lang.Lean.marked, "success") SpawnCarPedChase() end) @@ -21,12 +21,8 @@ local items = lib.callback.await('md-drugs:server:GetRecipe', false,'lean', 'cup for k, v in pairs (items) do label = {} local item = '' - for m, d in pairs (items[k].take) do - table.insert(label, GetLabel(m) .. ' X ' .. d) - end - for m,d in pairs (items[k].give) do - item = m - end + for m, d in pairs (items[k].take) do table.insert(label, GetLabel(m) .. ' X ' .. d) end + for m,d in pairs (items[k].give) do item = m end store[#store + 1] = { icon = GetImage(item), description = table.concat(label, ", "), @@ -34,22 +30,23 @@ for k, v in pairs (items) do event = 'md-drugs:client:stirlean', args = { item = item, - recipe = 'weed', + recipe = 'lean', num = k, label = 'Cooking Up ' .. GetLabel(item), - table = 'edibles' - + table = 'cups' } } + sorter(store, 'title') lib.registerContext({id = 'leanCraft',title = "Make Lean", options = store}) end lib.showContext('leanCraft') end) + local busy = false RegisterNetEvent('md-drugs:client:stirlean', function(data) -if busy then return end - busy = true -if not progressbar(data.label, 4000, 'uncuff') then busy = false return end -TriggerServerEvent('md-drugs:server:finishcup', data) -busy = false + if busy then return end + busy = true + if not progressbar(data.label, 4000, 'uncuff') then busy = false return end + TriggerServerEvent('md-drugs:server:finishcup', data) + busy = false end) \ No newline at end of file diff --git a/client/lsd.lua b/client/lsd.lua index ab63013..d4b8ea3 100644 --- a/client/lsd.lua +++ b/client/lsd.lua @@ -2,34 +2,37 @@ local QBCore = exports['qb-core']:GetCoreObject() local tableout = false -local function loadParticle(dict) - if not HasNamedPtfxAssetLoaded(dict) then - RequestNamedPtfxAsset(dict) - end - while not HasNamedPtfxAssetLoaded(dict) do - Wait(0) - end - SetPtfxAssetNextCall(dict) +local function createLabKit(coord, head) + local labkit = CreateObject("v_ret_ml_tablea", coord.x, coord.y, coord.z - 1, true, false) + SetEntityHeading(labkit, head) + PlaceObjectOnGroundProperly(labkit) + local options = { + { event = "md-drugs:client:heatliquid", icon = "fa-solid fa-temperature-high", label = Lang.targets.lsd.heat, data = labkit }, + { event = "md-drugs:client:refinequalityacid", icon = "fa-solid fa-temperature-high", label = Lang.targets.lsd.refine, data = labkit }, + { event = "md-drugs:client:maketabpaper", icon = "fa-regular fa-note-sticky", label = Lang.targets.lsd.dab, data = labkit }, + { event = "md-drugs:client:getlabkitback", icon = "fas fa-box-circle-check", label = Lang.targets.lsd.back, data = labkit, canInteract = function() return tableout end } + } + AddMultiModel(labkit, options, labkit) end CreateThread(function() -local Ped = "g_m_y_famdnf_01" + local Ped = "g_m_y_famdnf_01" lib.requestModel(Ped, Config.RequestModelTime) local tabdealer = CreatePed(0, Ped,Config.buylsdlabkit.x,Config.buylsdlabkit.y,Config.buylsdlabkit.z-1, Config.buylsdlabkit.w, false, false) Freeze(tabdealer, true, Config.buylsdlabkit.w) - AddSingleModel(tabdealer,{ type = "client", label = "Buy LSD Lab Kit", icon = "fas fa-eye", event = "md-drugs:client:buylabkit", distance = 2.0}, tabdealer ) + AddSingleModel(tabdealer,{ type = "client", label = Lang.targets.lsd.buy, icon = "fa-solid fa-money-bill", event = "md-drugs:client:buylabkit", distance = 2.0}, tabdealer ) end) RegisterNetEvent("md-drugs:client:getlysergic", function(data) - if not minigame(2, 8) then return end + if not minigame() then return end if not progressbar(Lang.lsd.steallys, 4000, 'uncuff') then return end TriggerServerEvent("md-drugs:server:getlysergic",data.data) end) RegisterNetEvent("md-drugs:client:getdiethylamide", function(data) - if not minigame(2, 8) then return end + if not minigame() then return end if not progressbar(Lang.lsd.stealdie, 4000, 'uncuff') then return end TriggerServerEvent('md-drugs:server:getdiethylamide', data.data) end) @@ -43,16 +46,7 @@ else local loc, head = StartRay() if not loc then tableout = false TriggerServerEvent('md-drugs:server:getlabkitback') return end if not progressbar(Lang.lsd.place, 4000, 'uncuff') then TriggerServerEvent('md-drugs:server:getlabkitback') return end - local labkit = CreateObject("v_ret_ml_tablea", loc.x, loc.y, loc.z-1, true, false) - SetEntityHeading(labkit, head) - PlaceObjectOnGroundProperly(labkit) - local options = { - { event = "md-drugs:client:heatliquid", icon = "fas fa-box-circle-check", label = "Heat Liquid" , data = labkit, }, - { event = "md-drugs:client:refinequalityacid", icon = "fas fa-box-circle-check", label = "Refine", data = labkit, }, - { event = "md-drugs:client:maketabpaper", icon = "fas fa-box-circle-check", label = "Dab Sheets", data = labkit, }, - { event = "md-drugs:client:getlabkitback", icon = "fas fa-box-circle-check", label = "Pick Up", data = labkit, canInteract = function() if tableout then return true end end}, - } - AddMultiModel(labkit, options, labkit) + createLabKit(loc, head) end end) @@ -64,23 +58,21 @@ RegisterNetEvent("md-drugs:client:getlabkitback", function(data) end) RegisterNetEvent("md-drugs:client:heatliquid", function(data) - local PedCoords = GetEntityCoords(data.data) - dict = "scr_ie_svm_technical2" + local PedCoords, head = GetEntityCoords(data.data), GetEntityHeading(data.data) + local dict = "scr_ie_svm_technical2" if not ItemCheck('lysergic_acid') then return end if not ItemCheck('diethylamide') then return end - if not minigame(2, 8) then + if not minigame() then TriggerServerEvent("md-drugs:server:failheating") DeleteObject(data.data) local dirtylabkit = CreateObject("v_ret_ml_tablea", PedCoords.x, PedCoords.y, PedCoords.z-1, true, false) + SetEntityHeading(dirtylabkit, head) loadParticle(dict) exitPtfx = StartParticleFxLoopedOnEntity("scr_dst_cocaine", dirtylabkit, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.5, false, false, false) PlaceObjectOnGroundProperly(dirtylabkit) SetParticleFxLoopedAlpha(exitPtfx, 3.0) Wait(100) - local options = { - { event = "md-drugs:client:cleanlabkit", icon = "fas fa-box-circle-check", label = "Clean It", data = dirtylabkit} - } - AddMultiModel(dirtylabkit, options, nil ) + AddMultiModel(dirtylabkit, { event = "md-drugs:client:cleanlabkit", icon = "fa-solid fa-hand-sparkles", label = Lang.targets.lsd.clean, data = dirtylabkit}, nil ) return end if not progressbar(Lang.lsd.heat, 7000, 'uncuff') then return end TriggerServerEvent("md-drugs:server:heatliquid") @@ -91,30 +83,22 @@ RegisterNetEvent("md-drugs:client:cleanlabkit", function(data) if not progressbar(Lang.lsd.clean, 4000, 'clean') then return end local check = lib.callback.await('md-drugs:server:removecleaningkit') if check then - local coord = GetEntityCoords(data.data) + local coord, head = GetEntityCoords(data.data), GetEntityHeading(data.data) DeleteObject(data.data) - local labkit = CreateObject("v_ret_ml_tablea", coord.x, coord.y, coord.z-1, true, false) - PlaceObjectOnGroundProperly(labkit) - local options = { - { event = "md-drugs:client:heatliquid", icon = "fas fa-box-circle-check", label = "Heat Liquid" , data = labkit, }, - { event = "md-drugs:client:refinequalityacid", icon = "fas fa-box-circle-check", label = "Refine", data = labkit, }, - { event = "md-drugs:client:maketabpaper", icon = "fas fa-box-circle-check", label = "Dab Sheets", data = labkit, }, - { event = "md-drugs:client:getlabkitback", icon = "fas fa-box-circle-check", label = "Pick Up", data = labkit, canInteract = function() if tableout then return true end end}, - } - AddMultiModel(labkit, options, labkit) + createLabKit(coord, head) end end) RegisterNetEvent("md-drugs:client:refinequalityacid", function() if not ItemCheck('lsd_one_vial') then return end - if not minigame(2, 8) then TriggerServerEvent("md-drugs:server:failrefinequality") return end + if not minigame() then TriggerServerEvent("md-drugs:server:failrefinequality") return end if not progressbar(Lang.lsd.refine, 4000, 'uncuff') then return end TriggerServerEvent("md-drugs:server:refinequalityacid") end) RegisterNetEvent("md-drugs:client:maketabpaper", function() if not ItemCheck('tab_paper') then return end - if not minigame(2, 8) then TriggerServerEvent("md-drugs:server:failtabs") return end + if not minigame() then TriggerServerEvent("md-drugs:server:failtabs") return end if not progressbar(Lang.lsd.dip, 4000, 'uncuff') then return end TriggerServerEvent("md-drugs:server:maketabpaper") end) @@ -126,7 +110,7 @@ end) RegisterNetEvent("md-drugs:client:buylabkit", function() - if QBCore.Functions.HasItem('lsdlabkit') then Notify('You Have One Idiot', 'error') return end + if QBCore.Functions.HasItem('lsdlabkit') then Notify(Lang.lsd.hav, 'error') return end if not progressbar(Lang.lsd.buykit, 4000, 'uncuff') then return end TriggerServerEvent("md-drugs:server:getlabkit") end) diff --git a/client/mescaline.lua b/client/mescaline.lua index b02a55b..12da5e8 100644 --- a/client/mescaline.lua +++ b/client/mescaline.lua @@ -1,36 +1,26 @@ local QBCore = exports['qb-core']:GetCoreObject() local Mescaline = {} -function LoadModel(hash) - hash = GetHashKey(hash) - RequestModel(hash) - while not HasModelLoaded(hash) do - Wait(3000) - end -end local function pick(loc) if not progressbar(Lang.mescaline.pick, 4000, 'uncuff') then return end TriggerServerEvent("Mescaline:pickupCane", loc) end + RegisterNetEvent('Mescaline:respawnCane', function(loc) local v = GlobalState.Mescaline[loc] local hash = GetHashKey(v.model) if not Mescaline[loc] then Mescaline[loc] = CreateObject(hash, v.location, false, true, true) Freeze(Mescaline[loc], true, v.heading) - AddSingleModel(Mescaline[loc], {icon = "fas fa-hand",label = "pick Cactus",action = function() pick(loc) end}, loc ) + AddSingleModel(Mescaline[loc], {icon = "fa-solid fa-seedling",label = Lang.targets.mescaline.pick, action = function() pick(loc) end}, loc ) end end) - - RegisterNetEvent('Mescaline:removeCane', function(loc) if DoesEntityExist(Mescaline[loc]) then DeleteEntity(Mescaline[loc]) end Mescaline[loc] = nil end) - - RegisterNetEvent("Mescaline:init", function() for k, v in pairs (GlobalState.Mescaline) do local hash = GetHashKey(v.model) @@ -38,25 +28,12 @@ RegisterNetEvent("Mescaline:init", function() if not v.taken then Mescaline[k] = CreateObject(hash, v.location.x, v.location.y, v.location.z, false, true, true) Freeze(Mescaline[k], true, v.heading) - AddSingleModel(Mescaline[k], {icon = "fas fa-hand",label = "pick Cactus",action = function() pick(k) end}, k) + AddSingleModel(Mescaline[k], {icon = "fa-solid fa-seedling",label = Lang.targets.mescaline.pick,action = function() pick(k) end}, k) end end end) -AddEventHandler('onResourceStart', function(resource) - if resource == GetCurrentResourceName() then - LoadModel('prop_cactus_03') - TriggerEvent('Mescaline:init') - end - end) - - RegisterNetEvent('QBCore:Client:OnPlayerLoaded', function() - Wait(3000) - LoadModel('prop_cactus_03') - TriggerEvent('Mescaline:init') - end) - - AddEventHandler('onResourceStop', function(resourceName) +AddEventHandler('onResourceStop', function(resourceName) if GetCurrentResourceName() == resourceName then SetModelAsNoLongerNeeded(GetHashKey('prop_cactus_03')) for k, v in pairs(Mescaline) do @@ -67,43 +44,28 @@ AddEventHandler('onResourceStart', function(resource) end end) - - RegisterNetEvent("md-drugs:client:drymescaline", function() if not ItemCheck('cactusbulb') then return end if not progressbar(Lang.mescaline.dry, 4000, 'uncuff') then return end TriggerServerEvent("md-drugs:server:drymescaline") end) - RegisterNetEvent("md-drugs:client:takemescaline", function() -local chance = math.random(1,100) -local chance2 = math.random(1,100) + local chance, chance2 = math.random(1,100), math.random(1,100) + local weapon = '' + if chance2 == 100 then weapon = 'weapon_rpg' else weapon = 'weapon_flaregun' end if not progressbar(Lang.mescaline.eat, 4000, 'uncuff') then return end if chance <= Config.Badtrip then AlienEffect() - clone = ClonePed(PlayerPedId(), false, false, true) + local clone = ClonePed(PlayerPedId(), false, false, true) SetEntityAsMissionEntity(clone) - SetEntityVisible(clone, true) - SetPedRelationshipGroupHash(clone) - SetPedAccuracy(clone) - SetPedArmour(clone) - SetPedCanSwitchWeapon(clone, true) SetPedFleeAttributes(clone, false) - if chance2 <= 99 then - GiveWeaponToPed(clone, "weapon_flaregun", 1, false, true) - TaskCombatPed(clone, PlayerPedId(), 0, 16) - SetPedCombatAttributes(clone, 46, true) - Wait(1000 * 30) - DeleteEntity(clone) - else - GiveWeaponToPed(clone, "weapon_rpg", 1, false, true) - TaskCombatPed(clone, PlayerPedId(), 0, 16) - SetPedCombatAttributes(clone, 46, true) - Wait(1000 * 30) - DeleteEntity(clone) - end + GiveWeaponToPed(clone, weapon, 1, false, true) + TaskCombatPed(clone, PlayerPedId(), 0, 16) + SetPedCombatAttributes(clone, 46, true) + Wait(1000 * 30) + DeleteEntity(clone) else AlienEffect() - end + end end) diff --git a/client/meth.lua b/client/meth.lua index a96aec5..f0c34d8 100644 --- a/client/meth.lua +++ b/client/meth.lua @@ -3,7 +3,6 @@ local amonia = nil local tray = nil local heated = nil local active = nil - local function startcook() if not ItemCheck('empty_weed_bag') then return end if not ItemCheck('acetone') then return end @@ -20,7 +19,7 @@ end local function dials() if amonia == true then - if not minigame(2, 8) then + if not minigame() then AddExplosion(1005.773, -3200.402, -38.524, 49, 10, true, false, true, true) ClearPedTasks(PlayerPedId()) amonia = nil @@ -41,7 +40,17 @@ if tray then Freeze(bucket, true, 90.0) SmashMeth() Wait(100) - AddSingleModel(bucket, {name = 'bucket',icon = 'fa-solid fa-car',label = 'Bag Meth',action = function() DeleteObject(bucket)amonia = nil heated = nil tray = nil active = nil BagMeth() TriggerServerEvent('md-drugs:server:getmeth')end,}, bucket) + AddSingleModel(bucket, + {name = 'bucket',icon = "fa-solid fa-sack-xmark",label = Lang.targets.meth.bag, canInteract = function() if active == nil then return false end end, + action = function() + active = nil + DeleteObject(bucket) + amonia = nil + heated = nil + tray = nil + BagMeth() + TriggerServerEvent('md-drugs:server:getmeth') + end,}, bucket) end end @@ -73,35 +82,35 @@ CreateThread(function() end) CreateThread(function() - - AddBoxZoneSingle("methTeleOut",Config.MethTeleIn, {name = 'teleout', icon = "fas fa-sign-in-alt", label = "Enter Building", action = function() SetEntityCoords(PlayerPedId(), Config.MethTeleOut) end} ) - AddBoxZoneSingle("methtelein",Config.MethTeleOut, {name = 'teleout', icon = "fas fa-sign-in-alt", label = "Exit Building", action = function() SetEntityCoords(PlayerPedId(), Config.MethTeleIn) end} ) + AddBoxZoneSingle("methTeleOut",Config.MethTeleIn, {name = 'teleout', icon = "fa-solid fa-door-open", label = Lang.targets.meth.enter, action = function() SetEntityCoords(PlayerPedId(), Config.MethTeleOut) end} ) + AddBoxZoneSingle("methtelein",Config.MethTeleOut, {name = 'teleout', icon = "fa-solid fa-door-closed", label = Lang.targets.meth.exit, action = function() SetEntityCoords(PlayerPedId(), Config.MethTeleIn) end} ) local options = { - { name = 'methcook', icon = "fas fa-sign-in-alt", label = "Cook Meth", distance = 2.5, action = function() startcook() end, onSelect = function() startcook() end, + { name = 'methcook', icon = "fa-solid fa-temperature-high", label = Lang.targets.meth.cook, distance = 2.5, action = function() startcook() end, canInteract = function() if amonia == nil and active == nil then return true end end, }, - { name = 'grabtray', icon = "fas fa-sign-in-alt", label = "Grab Tray", distance = 2.5, onSelect = function() trayscarry() end, action = function() trayscarry() end, + { name = 'grabtray', icon = "fas fa-sign-in-alt", label = Lang.targets.meth.tray, distance = 2.5, action = function() trayscarry() end, canInteract = function() if heated and amonia and tray == nil then return true end end, }, } AddBoxZoneMultiOptions("cookmeth",vector3(1005.72, -3200.33, -38.52), options ) - AddBoxZoneSingle('boxmeth', vector3(1012.15, -3194.04, -39.20), {name = 'boxmeth',icon = "fas fa-sign-in-alt",label = "Box Up Meth",action = function() smash()end, + AddBoxZoneSingle('boxmeth', vector3(1012.15, -3194.04, -39.20), {name = 'boxmeth',icon = "fas fa-sign-in-alt",label = Lang.targets.meth.box,action = function() smash()end, canInteract = function() if tray then return true end end}) - AddBoxZoneSingle('adjustdials',vector3(1007.89, -3201.17, -38.99),{ name = 'adjustdials', icon = "fas fa-sign-in-alt", label = "Adjust Dials", distance = 5, action = function() dials() end, + AddBoxZoneSingle('adjustdials',vector3(1007.89, -3201.17, -38.99),{ name = 'adjustdials', icon = "fas fa-sign-in-alt", label = Lang.targets.meth.adjust, + distance = 5, action = function() dials() end, canInteract = function() if amonia and heated == nil then return true end end }) if Config.MethHeist == false then - AddBoxZoneMulti('methep', Config.MethEph, {icon = "fas fa-sign-in-alt", label = "Steal Ephedrine", event = 'md-drugs:client:stealeph'}) - AddBoxZoneMulti('methace', Config.Methace, {icon = "fas fa-sign-in-alt", label = "Steal Acetone", event = 'md-drugs:client:stealace'}) + AddBoxZoneMulti('methep', Config.MethEph, {icon = "fas fa-sign-in-alt", label = Lang.targets.meth.eph, event = 'md-drugs:client:stealeph'}) + AddBoxZoneMulti('methace', Config.Methace, {icon = "fas fa-sign-in-alt", label = Lang.targets.meth.ace, event = 'md-drugs:client:stealace'}) end end) @@ -114,7 +123,7 @@ if not Config.MethHeist == false then Freeze(methdealer, true, 220.0) Wait(100) AddSingleModel(methdealer,{ - label = "Get Mission", + label = Lang.targets.meth.mission, icon = "fas fa-eye", action = function() Notify(Lang.meth.mission, "success") diff --git a/client/oxyruns.lua b/client/oxyruns.lua index 69f132c..9ad39a8 100644 --- a/client/oxyruns.lua +++ b/client/oxyruns.lua @@ -1,18 +1,16 @@ local QBCore = exports['qb-core']:GetCoreObject() -local deliveryBlip = nil local carryPackage = nil RegisterNetEvent("md-drugs:client:GetOxyCar", function() lib.requestModel("burrito3", Config.RequestModelTime) local paid = lib.callback.await('md-drugs:server:payfortruck', false) if not paid then return end - local oxycar = CreateVehicle("burrito3",Config.truckspawn.x, Config.truckspawn.y,Config.truckspawn.z, Config.truckspawn.h, true, false) + local oxycar = CreateVehicle("burrito3",Config.truckspawn.x, Config.truckspawn.y,Config.truckspawn.z, Config.truckspawn.w, true, false) exports[Config.Fuel]:SetFuel(oxycar, 100.0) TriggerEvent("vehiclekeys:client:SetOwner", QBCore.Functions.GetPlate(oxycar)) Notify(Lang.oxy.truck, 'success') TriggerEvent("md-drugs:client:getoxylocationroute") - SetVehicleEngineOn(oxycar, true, true) - AddSingleModel(oxycar, { event = "md-drugs:client:getfromtrunk", icon = "fas fa-box-circle-check", label = "Get Package"}, nil ) + AddSingleModel(oxycar, { event = "md-drugs:client:getfromtrunk", icon = "fas fa-box-circle-check", label = Lang.targets.oxy.pack}, nil ) end) @@ -20,16 +18,7 @@ end) RegisterNetEvent("md-drugs:client:getoxylocationroute", function() local CurrentLocation = Config.oxylocations[math.random(#Config.oxylocations)] if CurrentLocation ~= nil then - local deliveryBlip = AddBlipForCoord(CurrentLocation) - SetBlipSprite(deliveryBlip, 1) - SetBlipDisplay(deliveryBlip, 2) - SetBlipScale(deliveryBlip, 1.0) - SetBlipAsShortRange(deliveryBlip, false) - SetBlipColour(deliveryBlip, 27) - BeginTextCommandSetBlipName("STRING") - AddTextComponentSubstringPlayerName(text) - EndTextCommandSetBlipName(deliveryBlip) - SetBlipRoute(deliveryBlip, true) + SetNewWaypoint(CurrentLocation.x, CurrentLocation.y) local current = "g_m_y_famdnf_01" lib.requestModel(current, Config.RequestModelTime) local oxybuyer = CreatePed(0, current,CurrentLocation.x,CurrentLocation.y,CurrentLocation.z-1, CurrentLocation.w, false, false) @@ -37,9 +26,9 @@ RegisterNetEvent("md-drugs:client:getoxylocationroute", function() repeat Wait(1000) until #(GetEntityCoords(PlayerPedId()) - vector3(CurrentLocation.x,CurrentLocation.y,CurrentLocation.z)) < 5.0 - RemoveBlip(deliveryBlip) - PoliceCall(Config.PoliceAlertOxy) - AddSingleModel(oxybuyer, { type = "client", label = "Talk To Buyer", icon = "fas fa-eye", + + PoliceCall(Config.PoliceAlertOxy) + AddSingleModel(oxybuyer, { type = "client", label = Lang.targets.oxy.talk, icon = "fas fa-eye", action = function() if carryPackage then if not progressbar(Lang.oxy.hand, 4000, 'uncuff') then return end @@ -78,7 +67,6 @@ end) RegisterNetEvent("md-drugs:client:giveoxybox", function(data) - if carryPackage then if not progressbar(Lang.oxy.hand, 4000, 'uncuff') then return end TriggerServerEvent("md-drugs:server:giveoxybox") diff --git a/client/pharma.lua b/client/pharma.lua index e608c93..404cd07 100644 --- a/client/pharma.lua +++ b/client/pharma.lua @@ -1,15 +1,16 @@ local QBCore = exports['qb-core']:GetCoreObject() RegisterNetEvent("md-drugs:client:prescriptionpad", function(args) +local icon, event = 'fa-solid fa-file-prescription', 'md-drugs:client:writeprescription' if QBCore.Functions.GetPlayerData().job.type == Config.PharmaJob then lib.registerContext({ id = 'prescriptionpad', title = "Prescription Pad", options = { - {title = 'Give Vics', description = 'Give Vics ', icon = 'fa-solid fa-file-prescription', event = 'md-drugs:client:writeprescription', args = {item = 'vicodin_prescription'}}, - {title = 'Give Madderal', description = 'Give Madderal ', icon = 'fa-solid fa-file-prescription', event = 'md-drugs:client:writeprescription', args = {item = 'adderal_prescription'}}, - {title = 'Give Morphin',description = 'Give Morphin ',icon = 'fa-solid fa-file-prescription', event = 'md-drugs:client:writeprescription', args = {item = 'morphine_prescription'}}, - {title = 'Give Zany', description = 'Give Zany ', icon = 'fa-solid fa-file-prescription', event = 'md-drugs:client:writeprescription', args = {item = 'xanax_prescription'} }, + {title = 'Give Vics', description = 'Give Vics ', icon = icon, event = event, args = {item = 'vicodin_prescription'}}, + {title = 'Give Madderal', description = 'Give Madderal ', icon = icon, event = event, args = {item = 'adderal_prescription'}}, + {title = 'Give Morphin', description = 'Give Morphin ', icon = icon, event = event, args = {item = 'morphine_prescription'}}, + {title = 'Give Zany', description = 'Give Zany ', icon = icon, event = event, args = {item = 'xanax_prescription'} }, } }) lib.showContext('prescriptionpad') @@ -18,20 +19,16 @@ else end end) - - RegisterNetEvent("md-drugs:client:writeprescription", function(args) if not progressbar(Lang.Pharma.write, 4000, 'notepad') then return end TriggerServerEvent("md-drugs:server:giveprescription", args.item) end) - RegisterNetEvent("md-drugs:client:fillprescription", function(data) if not progressbar(Lang.Pharma.fill, 4000, 'uncuff') then return end TriggerServerEvent("md-drugs:server:fillprescription", data.data) end) - RegisterNetEvent("md-drugs:client:unbottle", function(item) if not progressbar(Lang.Pharma.open, 4000, 'uncuff') then return end if item.name == 'vicodinbottle' then item = 'vicodin' end @@ -40,17 +37,3 @@ RegisterNetEvent("md-drugs:client:unbottle", function(item) if item.name == 'xanaxbottle' then item = 'xanax' end TriggerServerEvent('md-drugs:server:unbottle', item) end) - - -RegisterNetEvent('md-drugs:client:takepharma', function(itemName) - if not progressbar(Lang.Pharma.consume, 1000, 'eat') then return end - if itemName == "vicodin" then - exports['ps-buffs']:AddHealthBuff(10000, 20) - elseif itemName == "adderal" then - exports['ps-buffs']:StaminaBuffEffect(5000, 1.3) - elseif itemName == "xanax" then - exports['ps-buffs']:AddStressBuff(10000, 25) - else - exports['ps-buffs']:AddHealthBuff(10000, 40) - end -end) diff --git a/client/shrooms.lua b/client/shrooms.lua index 5507ebc..49054ca 100644 --- a/client/shrooms.lua +++ b/client/shrooms.lua @@ -1,34 +1,27 @@ local QBCore = exports['qb-core']:GetCoreObject() local shrooms = {} - -function LoadModel(hash) - hash = GetHashKey(hash) - RequestModel(hash) - while not HasModelLoaded(hash) do - Wait(3000) - end -end local function pick(loc) if not progressbar(Lang.Shrooms.pick, 4000, 'uncuff') then return end TriggerServerEvent("shrooms:pickupCane", loc) end + +function LoadModel(hash) + RequestModel(hash) + while not HasModelLoaded(hash) do + Wait(0) + end +end + RegisterNetEvent('shrooms:respawnCane', function(loc) local v = GlobalState.shrooms[loc] local hash = GetHashKey(v.model) if not shrooms[loc] then shrooms[loc] = CreateObject(hash, v.location, false, true, true) Freeze(shrooms[loc], true, v.heading) - AddSingleModel(shrooms[loc],{ icon = "fas fa-hand", label = "pick shrooms", action = function() pick(loc) end }, loc ) + AddSingleModel(shrooms[loc],{ icon = "fas fa-hand", label = Lang.targets.shrooms.pick, action = function() pick(loc) end }, loc ) end end) -AddEventHandler('onResourceStart', function(resource) - if resource == GetCurrentResourceName() then - Wait(3000) - LoadModel('mushroom') - TriggerEvent('shrooms:init') - end - end) AddEventHandler('onResourceStop', function(resourceName) if GetCurrentResourceName() == resourceName then @@ -46,26 +39,18 @@ RegisterNetEvent('shrooms:removeCane', function(loc) shrooms[loc] = nil end) - RegisterNetEvent('QBCore:Client:OnPlayerLoaded', function() - Wait(3000) - LoadModel('mushroom') - TriggerEvent('shrooms:init') - end) - - - RegisterNetEvent("shrooms:init", function() +RegisterNetEvent("shrooms:init", function() for k, v in pairs (GlobalState.shrooms) do local hash = GetHashKey(v.model) - if not HasModelLoaded(hash) then LoadModel(hash) end + lib.requestModel(v.model, Config.RequestModelTime) if not v.taken then shrooms[k] = CreateObject(hash, v.location.x, v.location.y, v.location.z, false, true, true) Freeze(shrooms[k], true, v.heading) - AddSingleModel(shrooms[k],{ icon = "fas fa-hand", label = "pick shrooms", action = function() pick(k) end }, k ) + AddSingleModel(shrooms[k],{ icon = "fas fa-hand", label = Lang.targets.shrooms.pick, action = function() pick(k) end }, k ) end end end) - RegisterNetEvent('md-drugs:client:takeshrooms', function() if not progressbar(Lang.Shrooms.eat, 500, 'eat') then return end TriggerEvent("evidence:client:SetStatus", "widepupils", 300) diff --git a/client/target.lua b/client/target.lua index c25572c..d114f66 100644 --- a/client/target.lua +++ b/client/target.lua @@ -1,23 +1,23 @@ local QBCore = exports['qb-core']:GetCoreObject() - +local icon = "fa solid fa-eye" CreateThread(function() - AddBoxZoneMulti('makepowder', Config.MakePowder, { type = "client", event = "md-drugs:client:makepowder", icon = "fas fa-sign-in-alt", label = "chop it up"}) -- coke - AddBoxZoneSingle('telecokein', Config.CokeTeleIn, {name = 'teleout',icon = "fas fa-sign-in-alt",label = "Enter Building",action = function() tele(Config.CokeTeleOut) end,}) -- coke - AddBoxZoneSingle('telecokeout', Config.CokeTeleOut, {name = 'teleout',icon = "fas fa-sign-in-alt",label = "Exit Building",action = function() tele(Config.CokeTeleIn) end,}) -- coke - AddBoxZoneMulti('steallysergic', Config.lysergicacid, { type = "client", event = "md-drugs:client:getlysergic", icon = "fas fa-sign-in-alt", label = "stealing Lysergic"}) -- lsd - AddBoxZoneMulti('stealdiethylamide', Config.diethylamide, {type = "client", event = "md-drugs:client:getdiethylamide", icon = "fas fa-sign-in-alt", label = "stealing Diethylamide"}) -- lsd - AddBoxZoneMulti('gettabs', Config.gettabs, {type = "client", event = "md-drugs:client:buytabs", icon = "fas fa-sign-in-alt", label = "Buy Tabs"}) -- lsd - AddBoxZoneMulti('dryheroin', Config.dryplant, {type = "client",event = "md-drugs:client:dryplant", icon = "fas fa-sign-in-alt", label = "Dry Poppies"}) -- heroin - AddBoxZoneMulti('cutheroin', Config.cutheroinone, {type = "client", event = "md-drugs:client:cutheroin", icon = "fas fa-sign-in-alt", label = "Cut Heroin"}) -- heroin - AddBoxZoneMulti('fillneedle', Config.fillneedle, {type = "client", event = "md-drugs:client:fillneedle", icon = "fas fa-sign-in-alt", label = "Fill Needles"}) -- heroin - AddBoxZoneMulti('makecrack', Config.makecrack, {type = "client", event = "md-drugs:client:makecrackone", icon = "fas fa-sign-in-alt", label = "Cook Crack"}) -- crack - AddBoxZoneMulti('bagcrack', Config.bagcrack, {type = "client", event = "md-drugs:client:bagcrack", icon = "fas fa-sign-in-alt", label = "Bag Crack"}) -- crack - AddBoxZoneMulti('fillprescription', Config.FillPrescription, {type = "client", event = "md-drugs:client:fillprescription", icon = "fas fa-sign-in-alt", label = "Fill Prescription"}) -- pharma - AddBoxZoneSingle('payfortruck', Config.Payfortruck, { event = "md-drugs:client:GetOxyCar", icon = "fas fa-sign-in-alt", label = "Pay For Truck"}) -- oxy runs - AddBoxZoneSingle('drymescaline', Config.DryOut, { type = "client", event = "md-drugs:client:drymescaline", icon = "fas fa-sign-in-alt", label = "Dry Out"}) -- mescaline - AddBoxZoneMulti('stealisosafrole', Config.isosafrole, {type = "client", event = "md-drugs:client:stealisosafrole", icon = "fas fa-sign-in-alt", label = "Steal Isosafrole"}) -- xtc - AddBoxZoneMulti('stealmdp2p', Config.mdp2p, {type = "client", event = "md-drugs:client:stealmdp2p", icon = "fas fa-sign-in-alt", label = "Steal MDP2P"}) -- xtc - AddBoxZoneMulti('rawxtcloc', Config.rawxtcloc, {type = "client", event = "md-drugs:client:makingrawxtc", icon = "fas fa-sign-in-alt", label = "Make Raw XTC"}) -- xtc - AddBoxZoneSingle('buypress', Config.buypress, { type = "client",event = "md-drugs:client:buypress", icon = 'fas fa-eye', label = 'Buy Press'}) -- xtc - AddBoxZoneMulti('stamp', Config.stamp, {type = "client", event = "md-drugs:client:stampwhite", icon = 'fas fa-eye', label = 'Stamp Pills'}) -- xtc + AddBoxZoneSingle('telecokein', Config.CokeTeleIn, {action = function()tele(Config.CokeTeleOut)end, icon = 'fa-solid fa-door-open', label = Lang.targets.coke.enter}) -- coke + AddBoxZoneSingle('telecokeout', Config.CokeTeleOut, {action = function()tele(Config.CokeTeleIn) end, icon = "fa-solid fa-door-closed", label = Lang.targets.coke.exit}) -- coke + AddBoxZoneMulti('makepowder', Config.MakePowder, {event = "md-drugs:client:makepowder", icon = "fa-solid fa-scissors", label = Lang.targets.coke.chop}) -- coke + AddBoxZoneMulti('steallysergic', Config.lysergicacid, {event = "md-drugs:client:getlysergic", icon = icon, label = Lang.targets.lsd.lys}) -- lsd + AddBoxZoneMulti('stealdiethylamide', Config.diethylamide, {event = "md-drugs:client:getdiethylamide", icon = icon, label = Lang.targets.lsd.die}) -- lsd + AddBoxZoneMulti('gettabs', Config.gettabs, {event = "md-drugs:client:buytabs", icon = icon, label = Lang.targets.lsd.buyt}) -- lsd + AddBoxZoneMulti('dryheroin', Config.dryplant, {event = "md-drugs:client:dryplant", icon = icon, label = Lang.targets.heroin.dry}) -- heroin + AddBoxZoneMulti('cutheroin', Config.cutheroinone, {event = "md-drugs:client:cutheroin", icon = icon, label = Lang.targets.heroin.cut}) -- heroin + AddBoxZoneMulti('fillneedle', Config.fillneedle, {event = "md-drugs:client:fillneedle", icon = icon, label = Lang.targets.heroin.fill}) -- heroin + AddBoxZoneMulti('makecrack', Config.makecrack, {event = "md-drugs:client:makecrackone", icon = icon, label = Lang.targets.crack.cook}) -- crack + AddBoxZoneMulti('bagcrack', Config.bagcrack, {event = "md-drugs:client:bagcrack", icon = icon, label = Lang.targets.crack.bag}) -- crack + AddBoxZoneMulti('fillprescription', Config.FillPrescription, {event = "md-drugs:client:fillprescription", icon = icon, label = Lang.targets.pha.fill}) -- pharma + AddBoxZoneSingle('payfortruck', Config.Payfortruck, {event = "md-drugs:client:GetOxyCar", icon = icon, label = Lang.targets.oxy.pay}) -- oxy runs + AddBoxZoneSingle('drymescaline', Config.DryOut, {event = "md-drugs:client:drymescaline", icon = icon, label = Lang.targets.mescaline.dry}) -- mescaline + AddBoxZoneMulti('stealisosafrole', Config.isosafrole, {event = "md-drugs:client:stealisosafrole", icon = icon, label = Lang.targets.xtc.iso}) -- xtc + AddBoxZoneMulti('stealmdp2p', Config.mdp2p, {event = "md-drugs:client:stealmdp2p", icon = icon, label = Lang.targets.xtc.mdp}) -- xtc + AddBoxZoneMulti('rawxtcloc', Config.rawxtcloc, {event = "md-drugs:client:makingrawxtc", icon = icon, label = Lang.targets.xtc.raw}) -- xtc + AddBoxZoneSingle('buypress', Config.buypress, {event = "md-drugs:client:buypress", icon = icon, label = Lang.targets.xtc.press}) -- xtc + AddBoxZoneMulti('stamp', Config.stamp, {event = "md-drugs:client:stampwhite", icon = icon, label = Lang.targets.xtc.stamp}) -- xtc end) diff --git a/client/travellingmerchant.lua b/client/travellingmerchant.lua index bfed39c..fd35cb4 100644 --- a/client/travellingmerchant.lua +++ b/client/travellingmerchant.lua @@ -7,43 +7,9 @@ local current = "g_m_y_famdnf_01" local CurrentLocation = Config.Travellingmerchant[num] local travellingmerchant = CreatePed(0, current,CurrentLocation.x,CurrentLocation.y,CurrentLocation.z-1, CurrentLocation.w, false, false) Freeze(travellingmerchant, true, CurrentLocation.w) - AddSingleModel(travellingmerchant, { label = "Travelling Merchant", icon = "fas fa-eye", action = function() lib.showContext('travellingmerchant') end}, nil) -end) - -CreateThread(function() - local ShopMenu = {} - for k, v in pairs (Config.Items.items) do - ShopMenu[#ShopMenu + 1] = { - icon = GetImage(v.name), - description = '$'.. v.price, - title = GetLabel(v.name), - event = "md-drugs:client:travellingmerchantox", - args = { - item = v.name, - cost = v.price, - amount = v.amount, - table = Config.Items.items, - num = k - } - } - lib.registerContext({id = 'travellingmerchant',title = "Travelling Merchant", options = ShopMenu}) - end -end) - - -RegisterNetEvent("md-drugs:client:travellingmerchantox", function(data) - local price = data.cost - local settext = "Amnt: "..data.amount.." | Cost: "..price or "Cost: "..price - local max = data.amount - local dialog = exports.ox_lib:inputDialog(data.item .."!", { - { type = 'select', label = "Payment Type", default = "cash", - options = { - { value = "cash"}, - { value = "bank"}, - } - }, - { type = 'number', label = "Amount to buy", description = settext, min = 0, max = max, default = 1 }, - }) - if data.cost == "Free" then data.cost = 0 end - TriggerServerEvent("md-drugs:server:travellingmerchantox", dialog[2], dialog[1], data.item, data.cost, data.table, data.num ) + AddSingleModel(travellingmerchant, { label = Lang.targets.travel.travel, icon = "fas fa-eye", + action = function() + makeMenu('travellingMerchant') + lib.showContext('travellingMerchant') + end}, nil) end) diff --git a/client/weed.lua b/client/weed.lua index 0998749..84de243 100644 --- a/client/weed.lua +++ b/client/weed.lua @@ -1,24 +1,15 @@ local QBCore = exports['qb-core']:GetCoreObject() local WeedPlant = {} -local exploded = nil -local drying = false -function LoadModel(hash) - hash = GetHashKey(hash) - RequestModel(hash) - while not HasModelLoaded(hash) do - Wait(3000) - end -end +local exploded, drying = false, false local function hasJob() if Config.Joblock then if QBCore.Functions.GetPlayerData().job.name == Config.weedjob then - return true else return false end + return true else return false end else return true end end - RegisterNetEvent('weed:respawnCane', function(loc) local v = GlobalState.WeedPlant[loc] local hash = GetHashKey(v.model) @@ -26,15 +17,10 @@ RegisterNetEvent('weed:respawnCane', function(loc) if not WeedPlant[loc] then WeedPlant[loc] = CreateObject(hash, v.location.x, v.location.y, v.location.z-3.5, false, true, true) Freeze(WeedPlant[loc],true, v.heading) - AddSingleModel(WeedPlant[loc], - { - icon = "fas fa-hand", - label = "Pick Weed", - action = function() - if not progressbar(Lang.Weed.pick, 4000, 'uncuff') then return end - TriggerServerEvent("weed:pickupCane", loc) - end - }, loc) + AddSingleModel(WeedPlant[loc], + {icon = "fas fa-hand",label = Lang.targets.weed.pick, + action = function()if not progressbar(Lang.Weed.pick, 4000, 'uncuff') then return end TriggerServerEvent("weed:pickupCane", loc) end}, + loc) end end) @@ -51,30 +37,13 @@ RegisterNetEvent("weed:init", function() WeedPlant[k] = CreateObject(hash, v.location.x, v.location.y, v.location.z-3.5, false, true, true) Freeze(WeedPlant[k],true, v.heading) AddSingleModel(WeedPlant[k], - { - icon = "fas fa-hand", - label = "Pick Weed", - action = function() - if not progressbar(Lang.Weed.pick, 4000, 'uncuff') then return end - TriggerServerEvent("weed:pickupCane", k) - end - }, k) + {icon = "fas fa-hand",label = Lang.targets.weed.pick, + action = function()if not progressbar(Lang.Weed.pick, 4000, 'uncuff') then return end TriggerServerEvent("weed:pickupCane", k) end}, + k) end end end) -AddEventHandler('onResourceStart', function(resource) - if resource == GetCurrentResourceName() then - LoadModel('bkr_prop_weed_lrg_01b') - TriggerEvent('weed:init') - end - end) - RegisterNetEvent('QBCore:Client:OnPlayerLoaded', function() - Wait(3000) - LoadModel('bkr_prop_weed_lrg_01b') - TriggerEvent('weed:init') - end) - AddEventHandler('onResourceStop', function(resourceName) if GetCurrentResourceName() == resourceName then SetModelAsNoLongerNeeded(GetHashKey('bkr_prop_weed_lrg_01b')) @@ -90,7 +59,7 @@ CreateThread(function() AddBoxZoneMulti('weeddry', Config.WeedDry, { name = 'dryweed', icon = "fas fa-sign-in-alt", - label = "Dry Weed", + label = Lang.targets.weed.dry, distance = 1, action = function() if not ItemCheck('wetcannabis') then return end @@ -101,12 +70,12 @@ CreateThread(function() local weedplant = CreateObject("bkr_prop_weed_drying_01a", loc.x, loc.y+.2, loc.z, true, false) drying = true FreezeEntityPosition(weedplant, true) - Notify("Wait A little Bit To Dry", "success") + Notify(Lang.Weed.wait, "success") Wait(math.random(1000,5000)) - Notify("Take Down The Weed", "success") + Notify(Lang.Weed.take, "success") AddSingleModel(weedplant, { icon = "fas fa-sign-in-alt", - label = "Pick Up Weed", + label = Lang.targets.weed.dpick, action = function() DeleteEntity(weedplant) drying = false @@ -121,38 +90,38 @@ CreateThread(function() if hasJob() then return true end end }) -AddBoxZoneSingle('teleinweedout', Config.Teleout, { name = 'teleout', icon = "fas fa-sign-in-alt", label = "Enter Building", distance = 2.0, action = function() SetEntityCoords(PlayerPedId(),Config.Telein) end, +AddBoxZoneSingle('teleinweedout', Config.Teleout, { name = 'teleout', icon = "fas fa-sign-in-alt", label = Lang.targets.coke.exit, distance = 2.0, action = function() SetEntityCoords(PlayerPedId(),Config.Telein) end, canInteract = function() if hasJob() then return true end end }) -AddBoxZoneSingle('teleinweedin', Config.Telein, { name = 'teleout', icon = "fas fa-sign-in-alt", label = "Exit Building", distance = 2.0, action = function() SetEntityCoords(PlayerPedId(),Config.Teleout) end, +AddBoxZoneSingle('teleinweedin', Config.Telein, { name = 'teleout', icon = "fas fa-sign-in-alt", label = Lang.targets.coke.enter, distance = 2.0, action = function() SetEntityCoords(PlayerPedId(),Config.Teleout) end, canInteract = function() if hasJob() then return true end end }) -AddBoxZoneSingle('MakeButterCrafting', Config.MakeButter, {label = 'Open Butter Menu', action = function() lib.showContext('ButterCraft') end, icon = "fas fa-sign-in-alt", +AddBoxZoneSingle('MakeButterCrafting', Config.MakeButter, {label = Lang.targets.weed.butt, action = function() lib.showContext('ButterCraft') end, icon = "fas fa-sign-in-alt", canInteract = function() if hasJob() then return true end end }) AddBoxZoneSingle('makeoil',Config.MakeOil, { name = 'Oil', icon = "fas fa-sign-in-alt", - label = "Make Oil", + label = Lang.targets.weed.oil, action = function() if not ItemCheckMulti({'butane', 'grindedweed'}) then return end - if not minigame(2, 8) then + if not minigame() then local explosion = math.random(1,100) - local loc = GetEntityCoords(PlayerPedId()) - if explosion <= 99 then - AddExplosion(loc.x, loc.y, loc.z, 49, 10, true, false, true, true) - exploded = true - Notify(Lang.Weed.stovehot, "error") - Wait(1000 * 30) - exploded = nil - end + local loc = GetEntityCoords(PlayerPedId()) + if explosion <= 99 then + AddExplosion(loc.x, loc.y, loc.z, 49, 10, true, false, true, true) + exploded = true + Notify(Lang.Weed.stovehot, "error") + Wait(1000 * 30) + exploded = false + end return end if not progressbar(Lang.Weed.shat, 4000, 'uncuff') then return end TriggerServerEvent("md-drugs:server:makeoil") end, canInteract = function() - if hasJob() and exploded == nil then return true end + if hasJob() and exploded == false then return true end end, } ) end) @@ -163,20 +132,14 @@ CreateThread(function() BikerWeedFarm.Security.Set(BikerWeedFarm.Security.upgrade) BikerWeedFarm.Details.Enable(BikerWeedFarm.Details.chairs, true) BikerWeedFarm.Details.Enable({BikerWeedFarm.Details.production, BikerWeedFarm.Details.chairs, BikerWeedFarm.Details.drying}, true) - BikerWeedFarm.Plant1.Clear(false) - BikerWeedFarm.Plant2.Clear(false) - BikerWeedFarm.Plant3.Clear(false) - BikerWeedFarm.Plant4.Clear(false) - BikerWeedFarm.Plant5.Clear(false) - BikerWeedFarm.Plant6.Clear(false) - BikerWeedFarm.Plant7.Clear(false) - BikerWeedFarm.Plant8.Clear(false) - BikerWeedFarm.Plant9.Clear(false) + BikerWeedFarm.Plant1.Clear(false) BikerWeedFarm.Plant2.Clear(false) BikerWeedFarm.Plant3.Clear(false) + BikerWeedFarm.Plant4.Clear(false) BikerWeedFarm.Plant5.Clear(false) BikerWeedFarm.Plant6.Clear(false) + BikerWeedFarm.Plant7.Clear(false) BikerWeedFarm.Plant8.Clear(false) BikerWeedFarm.Plant9.Clear(false) RefreshInterior(BikerWeedFarm.interiorId) - stove = CreateObject("prop_cooker_03",vector3(1045.49, -3198.46, -38.15-1), true, false) + local stove = CreateObject("prop_cooker_03",vector3(1045.49, -3198.46, -38.15-1), true, false) SetEntityHeading(stove, 270.00) FreezeEntityPosition(stove, true) - stove2 = CreateObject("prop_cooker_03",vector3(1038.90, -3198.66, -38.17-1), true, false) + local stove2 = CreateObject("prop_cooker_03",vector3(1038.90, -3198.66, -38.17-1), true, false) SetEntityHeading(stove2, 90.00) FreezeEntityPosition(stove2, true) end) @@ -196,113 +159,48 @@ AlienEffect() end) CreateThread(function() -local WeedShop = {} -local current = "u_m_m_jesus_01" - + local current = "u_m_m_jesus_01" lib.requestModel(current, Config.RequestModelTime) local CurrentLocation = Config.WeedSaleman - local WeedGuy = CreatePed(0,current,CurrentLocation.x,CurrentLocation.y,CurrentLocation.z-1, CurrentLocation.h, false, false) - Freeze(WeedGuy, true, CurrentLocation.h) - AddSingleModel(WeedGuy, {label = "Weed Shop",icon = "fas fa-eye",action = function() lib.showContext('WeedShop')end}, nil) - for k, v in pairs (Config.Weed.items) do - WeedShop[#WeedShop + 1] = { - icon = GetImage(v.name), - title = GetLabel(v.name), - description = '$'.. v.price, - event = "md-drugs:client:travellingmerchantox", - args = { - item = v.name, - cost = v.price, - amount = v.amount, - table = Config.Weed.items, - num = k, - } - } - lib.registerContext({id = 'WeedShop',title = "Weed Shop", options = WeedShop}) - end + local WeedGuy = CreatePed(0,current,CurrentLocation.x,CurrentLocation.y,CurrentLocation.z-1, CurrentLocation.w, false, false) + Freeze(WeedGuy, true, CurrentLocation.w) + AddSingleModel(WeedGuy, {label = "Weed Shop",icon = "fas fa-eye", action = function() makeMenu('WeedShop') lib.showContext('WeedShop')end}, nil) end) -CreateThread(function() -local items = lib.callback.await('md-drugs:server:GetRecipe', false,'weed', 'edibles') -local items2 = lib.callback.await('md-drugs:server:GetRecipe', false,'weed', 'blunts') -local items3 = lib.callback.await('md-drugs:server:GetRecipe', false,'weed', 'bluntwrap') -local craft = {} -local blunt = {} -local bluntwrap = {} -local label = {} -for k, v in pairs (items) do - label = {} - local item = '' - for m, d in pairs (items[k].take) do - table.insert(label, GetLabel(m) .. ' X ' .. d) - end - for m,d in pairs (items[k].give) do - item = m - end - craft[#craft + 1] = { - icon = GetImage(item), - description = table.concat(label, ", "), - title = GetLabel(item), - event = "md-drugs:client:MakeWeedItems", - args = { - item = item, - recipe = 'weed', - num = k, - label = 'Cooking Up ' .. GetLabel(item), - table = 'edibles' +local function createBluntOptions(contextId, contextTitle, eventLabelPrefix, tableName) + local options = {} + local items = lib.callback.await('md-drugs:server:GetRecipe', false,'weed',tableName) + for k, v in pairs(items) do + local label = {} + local item = '' + for m, d in pairs(v.take) do table.insert(label, GetLabel(m) .. ' X ' .. d) end + for m, d in pairs(v.give) do item = m end + options[#options + 1] = { + icon = GetImage(item), + description = table.concat(label, ", "), + title = GetLabel(item), + event = "md-drugs:client:MakeWeedItems", + args = { + item = item, + recipe = 'weed', + num = k, + label = eventLabelPrefix .. GetLabel(item), + table = tableName + } + } + end + sorter(options, 'title') + lib.registerContext({ + id = contextId, + title = contextTitle, + options = options + }) +end - } - } - lib.registerContext({id = 'ButterCraft',title = "Edible Cooking", options = craft}) -end -for k, v in pairs (items2) do - label = {} - local item = '' - for m, d in pairs (items2[k].take) do - table.insert(label, GetLabel(m) .. ' X ' .. d) - end - for m, d in pairs (items2[k].give) do - item = m - end - blunt[#blunt + 1] = { - icon = GetImage(item), - description = table.concat(label, ", "), - title = GetLabel(item), - event = "md-drugs:client:MakeWeedItems", - args = { - item = item, - recipe = 'weed', - num = k, - label = 'Rolling A ' .. GetLabel(item), - table = 'blunts' - } - } - lib.registerContext({id = 'mddrugsblunts',title = "Roll Blunts", options = blunt}) -end -for k, v in pairs (items3) do - label = {} - local item = '' - for m, d in pairs (items3[k].take) do - table.insert(label, GetLabel(m) .. ' X ' .. d) - end - for m,d in pairs (items3[k].give) do - item = m - end - bluntwrap[#bluntwrap + 1] = { - icon = GetImage(item), - description = table.concat(label, ", "), - title = GetLabel(item), - event = "md-drugs:client:MakeWeedItems", - args = { - item = item, - recipe = 'weed', - num = k, - label = 'Dipping Syrup To Make ' .. GetLabel(item), - table = 'bluntwrap' - } - } - lib.registerContext({id = 'mddrugsbluntwraps',title = "Dip Blunt Wrap", options = bluntwrap}) -end +CreateThread(function() +createBluntOptions('ButterCraft', "Edible Cooking", 'Cooking A ', 'edibles') +createBluntOptions('mddrugsblunts', "Roll Blunts", 'Rolling A ', 'blunts') +createBluntOptions('mddrugsbluntwraps', "Dipping Syrup", 'Dipping Syrup To Make ', 'bluntwrap') end) RegisterNetEvent("md-drugs:client:MakeWeedItems", function(data) diff --git a/client/wholesale.lua b/client/wholesale.lua index 5c5579c..5a6bc2c 100644 --- a/client/wholesale.lua +++ b/client/wholesale.lua @@ -1,27 +1,18 @@ local QBCore = exports['qb-core']:GetCoreObject() local miss = false -local deliveryBlip = nil + RegisterNetEvent("md-drugs:client:GetLocation", function(drug, notify) if not GetCops(Config.PoliceCount) then return end if miss then - Notify('Already Called Someone', 'error') + Notify(Lang.Wholesale.al, 'error') else TriggerServerEvent('md-drugs:server:RemoveBurner', drug) Notify(notify, 'success') local CurrentLocation = Config.oxylocations[math.random(#Config.oxylocations)] local timer = 0 miss = true - deliveryBlip = AddBlipForCoord(CurrentLocation) - SetBlipSprite(deliveryBlip, 1) - SetBlipDisplay(deliveryBlip, 2) - SetBlipScale(deliveryBlip, 1.0) - SetBlipAsShortRange(deliveryBlip, false) - SetBlipColour(deliveryBlip, 27) - BeginTextCommandSetBlipName("STRING") - AddTextComponentSubstringPlayerName("drug Meet") - EndTextCommandSetBlipName(deliveryBlip) - SetBlipRoute(deliveryBlip, true) + SetNewWaypoint(CurrentLocation.x, CurrentLocation.y) lib.requestModel("g_m_y_famdnf_01", Config.RequestModelTime) local current = "g_m_y_famdnf_01" local drugdealer = CreatePed(0, current,CurrentLocation.x,CurrentLocation.y,CurrentLocation.z-1, 90.0, false, false) @@ -29,28 +20,25 @@ RegisterNetEvent("md-drugs:client:GetLocation", function(drug, notify) SetEntityInvincible(drugdealer, true) AddSingleModel(drugdealer, { type = "client", - label = "Talk To Buyer", + label = Lang.Wholesale.talk, icon = "fas fa-eye", action = function() - local luck = math.random(1,100) - if luck >=101 then - TriggerEvent("md-drugs:client:SuccessSale", drug) - Wait(4000) - DeleteEntity(drugdealer) - else - TriggerEvent("md-drugs:client:SetUp") - Wait(3000) - DeleteEntity(drugdealer) - end - miss = false - end, + local luck = math.random(1,100) + if luck >= Config.SuccessfulChance then + TriggerEvent("md-drugs:client:SuccessSale", drug) + else + TriggerEvent("md-drugs:client:SetUp") + end + Wait(3000) + DeleteEntity(drugdealer) + miss = false + end, },nil ) repeat Wait(1000) timer = timer + 1 until #(GetEntityCoords(PlayerPedId()) - vector3(CurrentLocation.x, CurrentLocation.y, CurrentLocation.z) ) < 4.0 or timer == Config.WholesaleTimeout + 1 PoliceCall(Config.AlertPoliceWholesale) - RemoveBlip(deliveryBlip) if timer <= Config.WholesaleTimeout or #(GetEntityCoords(PlayerPedId()) - vector3(CurrentLocation.x, CurrentLocation.y, CurrentLocation.z) ) < 4.0 then timer = 0 else @@ -62,21 +50,20 @@ end) RegisterNetEvent("md-drugs:client:SuccessSale", function(drug) - if not progressbar("Wholesaling Drugs", 4000, 'uncuff') then return end - if drug == 'coke' then - TriggerServerEvent("md-drugs:server:wholesalecoke") - elseif drug == 'crack' then - TriggerServerEvent("md-drugs:server:wholesalecrack") - elseif drug == 'lsd' then - TriggerServerEvent("md-drugs:server:wholesalelsd") - elseif drug == 'heroin' then - TriggerServerEvent("md-drugs:server:wholesaleheroin") - elseif drug == 'xtc' then - TriggerEvent("md-drugs:client:wholesalextc") - end + if not progressbar("Wholesaling Drugs", 4000, 'uncuff') then return end + if drug == 'coke' then + TriggerServerEvent("md-drugs:server:wholesalecoke") + elseif drug == 'crack' then + TriggerServerEvent("md-drugs:server:wholesalecrack") + elseif drug == 'lsd' then + TriggerServerEvent("md-drugs:server:wholesalelsd") + elseif drug == 'heroin' then + TriggerServerEvent("md-drugs:server:wholesaleheroin") + elseif drug == 'xtc' then + TriggerEvent("md-drugs:client:wholesalextc") + end end) - RegisterNetEvent("md-drugs:client:SetUp", function() progressbar("YOU FUCKED NOW", 4000, 'uncuff') SetUpPeds() diff --git a/client/xtc.lua b/client/xtc.lua index 2909490..d39e192 100644 --- a/client/xtc.lua +++ b/client/xtc.lua @@ -1,104 +1,59 @@ local QBCore = exports['qb-core']:GetCoreObject() local xtcpress = false - RegisterNetEvent("md-drugs:client:setpress", function(type) if xtcpress then Notify(Lang.xtc.out, 'error') else - local coords, head = StartRay2() - xtcpress = true + local coords, head = StartRay2() + xtcpress = true progressbar('Setting Press On The Ground', 4000, 'uncuff') local press = CreateObject("bkr_prop_coke_press_01aa", coords.x, coords.y, coords.z, true, false, false) PlaceObjectOnGroundProperly(press) - SetEntityHeading(press, head) + SetEntityHeading(press, head) local options = { - { - icon = "fas fa-eye", - label = "Make XTC", - distance = 2.0, - action = function() - TriggerEvent("md-drugs:client:XTCMenu", type) - end, - onSelect = function() - TriggerEvent("md-drugs:client:XTCMenu", type) - end, - canInteract = function() - if xtcpress then return true end end + { icon = "fas fa-eye", label = Lang.targets.xtc.make, distance = 2.0, action = function() TriggerEvent("md-drugs:client:XTCMenu", type) end, + canInteract = function() if xtcpress then return true end end }, - { - icon = "fas fa-eye", - label = "Pick Up", - action = function() - TriggerEvent("md-drugs:client:GetPressBack", type, press) - end, - onSelect = function() - TriggerEvent("md-drugs:client:GetPressBack", type, press) - end, - distance = 2.0, - canInteract = function() - if xtcpress then return true end end + {icon = "fas fa-eye", label = Lang.targets.xtc.pick, action = function() TriggerEvent("md-drugs:client:GetPressBack", type, press) end, distance = 2.0, + canInteract = function() if xtcpress then return true end end }, } AddMultiModel(press, options, nil) end -end) +end) RegisterNetEvent("md-drugs:client:XTCMenu", function(type) + local event = "md-drugs:client:MakeXTC" lib.registerContext({ id = 'XTCmenu', title = 'XTC Menu', options = { - { - icon = GetImage('white_xtc'), - title = 'White XTC', - description = '1 X Raw XTC', - event = "md-drugs:client:MakeXTC", - args = { data = type, color = 'white'} - }, - { - icon = GetImage('red_xtc'), - title = 'Red XTC', - description = '1 X Raw XTC and 1 X Loose Coke', - event = "md-drugs:client:MakeXTC", - args = { data = type, color = 'red'} - }, - { - icon = GetImage('orange_xtc'), - title = 'Orange XTC', - description = '1 X Raw XTC and 1 X Heroin Vial', - event = "md-drugs:client:MakeXTC", - args = { data = type, color = 'orange'} - }, - { - icon = GetImage('blue_xtc'), - title = 'Blue XTC', - description = '1 X Raw XTC and 1 X Crack Rock', - event = "md-drugs:client:MakeXTC", - args = { data = type, color = 'blue'} - }, - + {icon = GetImage('white_xtc'), title = 'White XTC', description = '1 X Raw XTC', event = event, args = { data = type, color = 'white'}}, + {icon = GetImage('red_xtc'), title = 'Red XTC', description = '1 X Raw XTC and 1 X Loose Coke', event = event, args = { data = type, color = 'red'}}, + {icon = GetImage('orange_xtc'), title = 'Orange XTC', description = '1 X Raw XTC and 1 X Heroin Vial', event = event, args = { data = type, color = 'orange'}}, + {icon = GetImage('blue_xtc'), title = 'Blue XTC', description = '1 X Raw XTC and 1 X Crack Rock', event = event, args = { data = type, color = 'blue'}}, } }) - lib.showContext('XTCmenu') + lib.showContext('XTCmenu') end) RegisterNetEvent("md-drugs:client:GetPressBack", function(type, press) - if not progressbar('Packing Up The Press', 5000, 'uncuff') then return end + if not progressbar(Lang.xtc.pickup, 5000, 'uncuff') then return end DeleteObject(press) xtcpress = false TriggerServerEvent("md-drugs:server:getpressback", type) end) RegisterNetEvent("md-drugs:client:stealisosafrole", function(data) - if not minigame(2, 8) then Notify(Lang.xtc.fail, "error") return end + if not minigame() then Notify(Lang.xtc.fail, "error") return end if not progressbar(Lang.xtc.iso, 4000, 'uncuff') then return end TriggerServerEvent("md-drugs:server:stealisosafrole",data.data) end) RegisterNetEvent("md-drugs:client:stealmdp2p", function(data) - if not minigame(2, 8) then Notify(Lang.xtc.fail, "error") return end + if not minigame() then Notify(Lang.xtc.fail, "error") return end if not progressbar(Lang.xtc.mdp2p, 4000, 'uncuff') then return end TriggerServerEvent("md-drugs:server:stealmdp2p", data.data) end) @@ -120,75 +75,64 @@ end) ------------------------------------------------------------------ Stamping RegisterNetEvent("md-drugs:client:stampwhite", function(data) - lib.registerContext({ - id = 'stampxtc', - title = 'Stamp XTC Menu', + lib.registerContext({ id = 'stampxtc', title = 'Stamp XTC Menu', options = { - { - icon = GetImage('white_xtc'), - title = 'White XTC', + { icon = GetImage('white_xtc'), title = 'White XTC', onSelect = function() - if not minigame(2, 8) then Notify(Lang.xtc.fail, "error") return end - if not progressbar('Stamping White Pills', 4000, 'uncuff') then return end + if not minigame() then Notify(Lang.xtc.fail, "error") return end + if not progressbar(string.format(Lang.xtc.stamp, 'White'), 4000, 'uncuff') then return end TriggerServerEvent("md-drugs:server:stampwhite",data.data) - end + end }, - { - icon = GetImage('red_xtc'), - title = 'Red XTC', + { icon = GetImage('red_xtc'), title = 'Red XTC', onSelect = function() - if not minigame(2, 8) then Notify(Lang.xtc.fail, "error") return end - if not progressbar('Stamping Red Pills', 4000, 'uncuff') then return end + if not minigame() then Notify(Lang.xtc.fail, "error") return end + if not progressbar(string.format(Lang.xtc.stamp, 'Red'), 4000, 'uncuff') then return end TriggerServerEvent("md-drugs:server:stampred", data.data) end }, - { - icon = GetImage('orange_xtc'), - title = 'Orange XTC', + { icon = GetImage('orange_xtc'), title = 'Orange XTC', onSelect = function() - if not minigame(2, 8) then Notify(Lang.xtc.fail, "error") return end - if not progressbar('Stamping Orange Pills', 4000, 'uncuff') then return end + if not minigame() then Notify(Lang.xtc.fail, "error") return end + if not progressbar(string.format(Lang.xtc.stamp, 'Orange'), 4000, 'uncuff') then return end TriggerServerEvent("md-drugs:server:stamporange", data.data) end, }, - { - icon = GetImage('blue_xtc'), - title = 'Blue XTC', + { icon = GetImage('blue_xtc'), title = 'Blue XTC', onSelect = function() - if not minigame(2, 8) then Notify(Lang.xtc.fail, "error") return end - if not progressbar('Stamping Blue Pills', 4000, 'uncuff') then return end + if not minigame() then Notify(Lang.xtc.fail, "error") return end + if not progressbar(string.format(Lang.xtc.stamp, 'Blue'), 4000, 'uncuff') then return end TriggerServerEvent("md-drugs:server:stampblue", data.data) end }, - } - }) + }) lib.showContext('stampxtc') end) RegisterNetEvent("md-drugs:client:getsinglepress", function() - if not progressbar('Buying Press', 4000, 'uncuff') then return end + if not progressbar(Lang.xtc.buyp, 4000, 'uncuff') then return end TriggerServerEvent("md-drugs:server:buypress") end) RegisterNetEvent("md-drugs:client:exchangepresses", function(data) - if not progressbar('Buying Press', 4000, 'uncuff') then return end + if not progressbar(Lang.xtc.buyp, 4000, 'uncuff') then return end TriggerServerEvent("md-drugs:server:upgradepress", data.data) end) RegisterNetEvent("md-drugs:client:buypress", function() local img = GetImage('singlepress') lib.registerContext({ - id = 'buypresses', - title = 'Purchase Presses', - options = { - { title = 'Single Press', description = 'Buy a single press for 20k', icon = img, event = 'md-drugs:client:getsinglepress'}, - { title = 'Exchange Single For Dual', description = '20 of each unstamped single stack pill and your single press ', icon = img, event = 'md-drugs:client:exchangepresses', args = {data = 'dual'}}, - { title = 'Exchange Dual For Triple', description = '50 of each unstamped dual stack pill and your dual press ', icon = img, event = 'md-drugs:client:exchangepresses', args = {data = 'triple'}}, - { title = 'Exchange Triple For Quad', description = '150 of each unstamped Triple stack pill and your triple press ', icon = img, event = 'md-drugs:client:exchangepresses', args = {data = 'quad'}} - } + id = 'buypresses', + title = 'Purchase Presses', + options = { + {title = Lang.xtc.press.title.single, description = Lang.xtc.des.title.single, icon = img, event = 'md-drugs:client:getsinglepress'}, + {title = Lang.xtc.press.title.dual, description = Lang.xtc.des.title.dual, icon = img, event = 'md-drugs:client:exchangepresses', args = {data = 'dual'}}, + {title = Lang.xtc.press.title.triple, description = Lang.xtc.des.title.triple, icon = img, event = 'md-drugs:client:exchangepresses', args = {data = 'triple'}}, + {title = Lang.xtc.press.title.quad, description = Lang.xtc.des.title.quad, icon = img, event = 'md-drugs:client:exchangepresses', args = {data = 'quad'}} + } }) lib.showContext('buypresses') end) diff --git a/fxmanifest.lua b/fxmanifest.lua index fa027da..fd8c10b 100644 --- a/fxmanifest.lua +++ b/fxmanifest.lua @@ -3,7 +3,7 @@ author "mustache_dom" description "drugs by mustache dom" fx_version "cerulean" game "gta5" -version '3.7.2' +version '3.8.0' client_scripts { 'client/**.lua', } diff --git a/items_install/item_names/ox_inventory.md b/items_install/item_names/ox_inventory.md index ae6540e..608f0f4 100644 --- a/items_install/item_names/ox_inventory.md +++ b/items_install/item_names/ox_inventory.md @@ -3,7 +3,7 @@ ["coke"] = { label = "Raw Cocaine", weight = 1000, - stack = false, + stack =true, close = false, description = "Raw Cocaine", client = { @@ -13,7 +13,7 @@ ["cokebaggy"] = { label = "Bag Of Cocaine", weight = 1000, - stack = false, + stack =true, close = false, description = "A Small Bag Of Weak Cocaine", client = { @@ -23,7 +23,7 @@ ["empty_weed_bag"] = { label = "Empty Bag", weight = 1000, - stack = false, + stack =true, close = false, description = "Empty Bag To Put Product In", client = { @@ -33,7 +33,7 @@ ["coca_leaf"] = { label = "Cocaine leaves", weight = 1500, - stack = false, + stack =true, close = false, description = "Cocaine leaves that must be processed !", client = { @@ -43,7 +43,7 @@ ["poppyresin"] = { label = "Poppy resin", weight = 2000, - stack = false, + stack =true, close = false, description = "It sticks to your fingers when you handle it.", client = { @@ -53,7 +53,7 @@ ["heroin"] = { label = "Weak Heroin Powder", weight = 500, - stack = false, + stack =true, close = true, description = "Dragon Chasin?", client = { @@ -63,7 +63,7 @@ ["bakingsoda"] = { label = "Baking Soda", weight = 300, - stack = false, + stack =true, close = false, description = "Household Baking Soda!", client = { @@ -73,7 +73,7 @@ ["loosecoke"] = { label = "Loose Coke", weight = 100, - stack = false, + stack =true, close = true, description = "Cut Cocaine", client = { @@ -83,7 +83,7 @@ ["loosecokestagetwo"] = { label = "More Pure Loose Coke", weight = 100, - stack = false, + stack =true, close = true, description = "Cut Cocaine", client = { @@ -93,7 +93,7 @@ ["loosecokestagethree"] = { label = "Purest Loose Coke", weight = 100, - stack = false, + stack =true, close = true, description = "Cut Cocaine", client = { @@ -123,7 +123,7 @@ ["cokestagetwo"] = { label = "Better Raw Cocaine", weight = 100, - stack = false, + stack =true, close = false, description = "Raw cocaine", client = { @@ -133,7 +133,7 @@ ["cokestagethree"] = { label = "Best Raw Cocaine", weight = 100, - stack = false, + stack =true, close = false, description = "Raw cocaine", client = { @@ -363,7 +363,7 @@ ["heroinstagetwo"] = { label = "Better Heroin", weight = 250, - stack = false, + stack =true, close = false, description = "Raw Heroin", client = { @@ -373,7 +373,7 @@ ["heroinstagethree"] = { label = "Best Heroin", weight = 250, - stack = false, + stack =true, close = false, description = "Raw Heroin", client = { @@ -383,7 +383,7 @@ ["heroincut"] = { label = "Cut Heroin", weight = 250, - stack = false, + stack =true, close = false, description = "Cut Heroin", client = { @@ -393,7 +393,7 @@ ["heroincutstagetwo"] = { label = "Better Cut Heroin", weight = 250, - stack = false, + stack =true, close = false, description = "Cut Heroin", client = { @@ -403,7 +403,7 @@ ["heroincutstagethree"] = { label = "Best Cut Heroin", weight = 250, - stack = false, + stack =true, close = false, description = "Cut Heroin", client = { @@ -413,7 +413,7 @@ ["heroinlabkit"] = { label = "Heroin Lab Kit", weight = 250, - stack = false, + stack =true, close = false, description = "How Can A Big Ass Table Fit In One Slot", client = { @@ -423,7 +423,7 @@ ["heroinvial"] = { label = "Vial Of Heroin", weight = 250, - stack = false, + stack =true, close = false, description = "Hmm, Maybe A Needle Can Help", client = { @@ -433,7 +433,7 @@ ["heroinvialstagetwo"] = { label = "Better Vial of Heroin", weight = 250, - stack = false, + stack =true, close = false, description = "Hmm, Maybe A Needle Can Help", client = { @@ -443,7 +443,7 @@ ["heroinvialstagethree"] = { label = "Best Vial Of Heroin", weight = 250, - stack = false, + stack =true, close = false, description = "Hmm, Maybe A Needle Can Help", client = { @@ -493,7 +493,7 @@ ["needle"] = { label = "Syringe", weight = 250, - stack = false, + stack =true, close = false, description = "I Swear Officer, Its For Diabetes", client = { @@ -503,7 +503,7 @@ ["crackrock"] = { label = "Crack Rock", weight = 250, - stack = false, + stack =true, close = false, description = "This Isnt The Rock The Hippie Girl Told Me About", client = { @@ -513,7 +513,7 @@ ["crackrockstagetwo"] = { label = "Better Crack Rock", weight = 250, - stack = false, + stack =true, close = false, description = "This Rocks!", client = { @@ -523,7 +523,7 @@ ["crackrockstagethree"] = { label = "Best Crack Rock", weight = 250, - stack = false, + stack =true, close = false, description = "This Rocks!", client = { @@ -583,7 +583,7 @@ ["vicodin_prescription"] = { label = "Vicie Prescription", weight = 250, - stack = false, + stack =true, close = false, description = "If Only This Helped With The Pain inside", client = { @@ -593,7 +593,7 @@ ["adderal_prescription"] = { label = "Mdderal Prescription", weight = 250, - stack = false, + stack =true, close = false, description = "I CAN DO EVERYTHING", client = { @@ -603,7 +603,7 @@ ["morphine_prescription"] = { label = "Morphin Prescription", weight = 250, - stack = false, + stack =true, close = false, description = "I Cant Feel Anything", client = { @@ -613,7 +613,7 @@ ["xanax_prescription"] = { label = "Zany Prescription", weight = 250, - stack = false, + stack =true, close = false, description = "Ahhh Sweet Comfort", client = { diff --git a/langs/arabic.lua b/langs/arabic.lua deleted file mode 100644 index 4376898..0000000 --- a/langs/arabic.lua +++ /dev/null @@ -1,161 +0,0 @@ -Lang = {} - -Lang.Coke = { - -- شريط تقدم العميل - picking = "جمع الأوراق", - makepow = 'تقطيع الأوراق إلى مسحوق', - -- نهاية شريط التقدم - cut = "قمت بتقطيع بعض الكوكا", - nocutcoke = "لا يمكنك تقطيع الكوكا بدونها، أحمق", - bagcoke = "لقد قمت بتعبئة الكوكا", - nobagcoke = "لا يمكنك تعبئة الكوكا بدونها، أحمق", -} -Lang.Crack = { - -- العميل - cookcrack = "طهي الكراك", - bagcrack = 'تعبئة هذا', - -- الخادم - makecrack = 'كراك جيد', - nocoke = 'لا يمكنك صنع هذا بدون الكوكا' -} -Lang.Cornerselling = { - -- إشعارات العميل - toofar = "بعيد جدًا عن زاويتك، صديقي", - inacar = "لا يمكنك البيع أثناء الجلوس في السيارة", - deny = "إلى الجحيم بهذا العرض", - start = "احصل على تلك الأموال", - stop = "لا يمكن للشخص الكسول حتى بيع المخدرات", - nodrugs = "ماذا ستبيع؟ هواء؟", - notcops = "لا يوجد عدد كاف من رجال الشرطة", - -- نهاية إشعارات العميل - -- شريط التقدم - sell = "بيع المخدرات", -} -Lang.Delivery = { - -- العميل - search = "البحث عن توصيل ...", - none = "لا شيء قريب", - busy = "لم تنه أيضًا الذي قلت لك أن تنهيه", - found = "محدد على خريطتك", - already = "بالفعل توصيل", - checkrep = "سمعة البائع الحالية: ", - -- شريط التقدم - pack = 'تسليم الحزمة', - -- نهاية العميل -} -Lang.Heroin = { - -- العميل - pick = "جمع الأفيون", - tableout = 'لديك بالفعل طاولة معدة', - dryout = "تجفيف الأفيون", - cutting = "تقطيع الهيروين مع الصودا الخبز", - secret = "ششششش", - table = "وضع الطاولة", - success = "تسخين الهيروين بشكل جيد", - clean = 'تنظيف طاولة الهيروين', - needles = 'ملء الحقنة', - -- تعيين سيناريو الشخصيات المتوقع إرجاعها بالأمر التالي - cutheroin = 'قمت بتحضير بعض الهيروين المقطوع', - noheroin = "كيف يمكنك تقطيع الهيروين بدونه، أحمق", - vial = 'قمت بصنع قارورة هيروين', - novial = "كيف يمكنك صنع قوارير هيروين بدونه، أحمق", - fail = 'لقد سخنتهم كثيرًا، أحمق', - fill = 'تم ملء الحقنة', - nofill = 'كيف ستملأ الإبر بالهيروين بدونه' -} -Lang.Lean = { - marked = 'تم وضع علامة على السيارة على خريطتك', - lean = 'لقد حصلت على Lean الأرجواني', - dextro = 'لقد حصلت على ديكسترو أحمر' -} - -Lang.lsd = { - steallys = 'سرقة حمض الليزرجيك', - stealdie = 'سرقة حمض الليزرجيك', - tableout = 'لديك بالفعل طاولة معدة', - tablepack = 'تعبئة الطاولة', - heat = 'تسخين السوائل', - clean = 'تنظيف الطاولة', - refine = 'تنقية الجودة', - dip = 'تغميس حمض الليزرجيك في الورق', - buypaper = 'شراء ورق التبن', - buykit = 'شراء مجموعة مختبر', - -- الخادم - lys = 'لقد حصلت على حمض الليزرجيك', - die = 'لقد حصلت على الديثيلاميد', - cleaned = 'لقد قمت بتنظيفه بشكل مثالي', - madelsd = 'لقد صنعت الإل إس دي!', - failed = 'لقد سخنتهم كثيرًا، أحمق', - refined = 'لقد قمت بتنقيتهم!', - broke = 'لا يمكنك تحمل هذا الآن!', - novial = 'لا يوجد قوارير إل إس دي، أحمق', -} -Lang.mescaline = { - pick = "جمع الصبار", - dry = 'تجفيف الصبار', - nocactus = 'لا توجد بصيلات صبار' -} - -Lang.meth = { - inside = 'يوجد بالفعل شيء في الداخل', - increaseheat = 'زيادة الحرارة', - mission = 'تم وضع علامة على السيارة على خريطتك', - ace = 'لقد حصلت على بعض الأستون', - eph = 'لقد حصلت على بعض الإيفيدرين', - mix = 'إضافة أشياء إلى الخليط', - nobag = 'لا توجد حقائب' -} - -Lang.oxy = { - truck = 'سيارتك هنا', - cantcarry = 'أنت لست قويًا لهذا، يمكنك حمل واحد فقط', - hand = 'تسليم الأكسيجين', - empty = 'لا يمكنك أن تكون بلا شيء في يدك، أحمق', - broke = 'لا يمكنك تحمل هذا المبلغ!', - hot = 'السيارة ساخنة، ارمها الآن', - next = 'انتقل إلى الموقع التالي' -} - -Lang.Pharma = { - notems = 'أنت لست شخصًا طبيًا', - write = 'كتابة الوصفة الطبية', - fill = 'ملء الوصفة الطبية', - open = 'فتح الزجاجة', - pills = 'لقد حصلت على بعض الحبوب!', - no = 'ليس لديك وصفة طبية' -} - -Lang.Shrooms = { - pick = 'جمع الفطر', - eat = 'أكل الفطر', - trip = 'رحلة ممتعة!' -} - -Lang.Weed = { - pick = 'حصاد الحشيش', - busy = 'بالفعل تجفيف واحد', - canna = 'صنع زبدة الكانابينويد', - brown = 'صنع براونيز خاصة', - cook = 'صنع كوكيز خاصة', - Choc = 'صنع شوكولاتة خاصة', - muff = 'صنع مافن خاصة', - stovehot = 'الموقد ساخن جدًا، انتظر 30 ثانية ليبرد', - shat = 'صنع شاتر', - roll = 'لف السجائر', - -- - nodry = 'تحتاج إلى حشيش رطب لتجفيفه', - noweed = 'لا يمكنك لف السجائر بالهواء', - noshat = 'تحتاج إلى شاتر للقيام بـ Dab', - notorch = 'تحتاج إلى شعلة بوتان' -} - -Lang.xtc = { - out = 'لديك بالفعل ماكينة برس جاهزة', - pressing = 'ضغط الحبوب', - raw = 'صنع XTC خام', - mdp2p = 'سرقة MDP2P', - iso = 'سرقة إيزوسافرول', - fail = 'رفيق، إنه دائرة ليست علم صواريخ', - -- - cash = 'أحتاج 20 ألف نقدًا' -} diff --git a/langs/danish.lua b/langs/danish.lua deleted file mode 100644 index 3d8be7d..0000000 --- a/langs/danish.lua +++ /dev/null @@ -1,167 +0,0 @@ -Lang = {} - -Lang.Coke = { - -- klient side progressbarer - picking = "Plukker Blade", - makepow = 'Hakker Blade Til Pulver', - cutting = 'Blander Kokain Med Bagepulver', - bagging = "Pakker Denne Lort", - -- slut progressbarer - cut = "Du Har Skåret Noget Kokain", - nocutcoke = "Du Kan Ikke Skære Kokain Uden Kokain, Idiot", - bagcoke = "Du Har Pakket Kokain", - nobagcoke = "Du Kan Ikke Pakke Kokain Uden Kokain, Idiot", -} -Lang.Crack = { - --klient side - cookcrack = "Koger Noget Crack", - bagcrack = 'Pakker Denne Lort', - -- server - makecrack = 'Godt Crack', - nocoke = 'Du Kan Ikke Lave Dette Uden Kokain' -} -Lang.Cornerselling = { - -- klient side beskeder - toofar = "For Langt Væk Fra Dit Hjørne, Homie", - inacar = "Du Kan Ikke Sælge Mens Du Er I En Bil", - deny = "Fuck Det Tilbud", - start = "Tjen De Penge", - stop = "Doven Røv Kan Ikke Engang Sælge Stoffer", - nodrugs = "Hvad Vil Du Sælge? Luft?", - notcops = "Ikke Nok Betjente", - -- slut klient side beskeder - -- progressbarer - sell = "Sælger Stoffer", -} -Lang.Delivery = { - -- klient side - search = "Søger Efter En Levering ...", - none = "Intet I Nærheden", - busy = "Du Har Ikke Engang Færdiggjort Den Jeg Sagde Til Dig", - found = "Markeret På Dit Kort", - already = "Allerede Levering", - checkrep = "Nuværende Forhandler Repræsentation: ", - -- progressbarer - pack = 'Overrækker Pakke', - -- slut klient side -} - -Lang.Heroin = { - --klient - pick = "Plukker Valmuer", - tableout = 'Du Har Allerede Et Bord Ude', - dryout = "Tørrer Valmuer", - cutting = "Blander Heroin Med Bagepulver", - secret = "SHHHHHHHHH", - table = "Sætter Bord Ned", - success = "Opvarmede Heroin Rigtigt", - clean = 'Rengør Heroin Bord', - needles = 'Fylder Sprøjte', - pickup = 'Tager Heroin Bord Op', - -- - cutheroin = 'Du Lavede Noget Blandingsheroin', - noheroin = "Hvordan Kan Du Skære Heroin Uden Heroin, Idiot", - vial = 'Du Lavede Et Vial Med Heroin', - novial = "Hvordan Kan Du Lave Heroin Vialer Uden Heroin, Idiot", - fail = 'Du Overophedede Dem, Idiot', - fill = 'Fyldte Sprøjten', - nofill = 'Hvordan Vil Du Fylde Sprøjter Med Heroin Uden Heroin' -} -Lang.Lean = { - marked = 'Bil Er Markeret På Dit Kort', - lean = 'Du Har Purple Lean', - dextro = 'Du Har Rød Dextro' -} - -Lang.lsd = { - steallys = 'Stjæler Lyserginsyre', - stealdie = 'Stjæler Lyserginsyre', - tableout = 'Du Har Allerede Et Bord Ude', - tablepack = 'Pakker Bord', - heat = 'Opvarmer Væsker', - clean = 'Rengør Bordet', - refine = 'Forfiner Kvaliteten', - dip = 'Dypper LSD På Papir', - buypaper = 'Køber Tab Papir', - buykit = 'Køber Lab Kit', - place = 'Sætter Bord Ned', - -- server - lys = 'Du Har Lyserginsyre', - die = 'Du Har Diethylamid', - cleaned = 'Du Rengjorde Det Perfekt', - madelsd = 'Du Lavede LSD!', - failed = 'Du Overophedede Dem, Idiot', - refined = 'Du Forfinede Dem!', - broke = 'Din Fattige Røv Har Ikke Råd Til Disse!', - novial = 'Ingen LSD Vialer, Idiot', -} -Lang.mescaline = { - pick = "Plukker Kaktus", - dry = 'Tørrer Kaktus', - nocactus = 'Ingen Kaktus Bulbs', - eat = 'Spiser Mescaline' -} - -Lang.meth = { - inside = 'Ting Indeni Allerede', - increaseheat = 'Øger Varme', - mission = 'Bil Er Markeret På Dit Kort', - ace = 'Du Har Noget Aceton', - eph = 'Du Har Noget Efedrin', - mix = 'Tilsætter Ting Til Blandingen', - nobag = 'Ingen Poser' -} - -Lang.oxy = { - truck = 'Din Lastbil Er Her', - cantcarry = 'Du Er Ikke Så Stærk, Du Kan Kun Bære En', - hand = 'Overrækker Oxy', - empty = 'Du Kan Ikke Være Tomhændet, Idiot', - broke = 'Din Fattige Røv Har Ikke Råd Til Dette', - hot = 'Bilen Er Hot, Dump Den Nu', - next = 'Kom Til Den Næste Lokation' -} - -Lang.Pharma = { - notems = 'Du Er Ikke En Medicinsk Person', - write = 'Skriver Recept', - fill = 'Fylder Recept', - open = 'Åbner Flaske', - pills = 'Du Har Nogle Piller!', - no = 'Du Har Ingen Recept' -} - -Lang.Shrooms = { - pick = 'Plukker Svampe', - eat = 'Spiser Svampe', - trip = 'Hav En God Tur!' -} - -Lang.Weed = { - pick = 'Høster Weed', - busy = 'Tørrer Allerede En Ud', - canna = 'Laver Cannabis-smør', - brown = 'Laver Specielle Brownies', - cook = 'Laver Specielle Cookies', - Choc = 'Laver Speciel Chokolade', - muff = 'Laver Speciel Muffin', - stovehot = 'Komfuret Er For Varmt, Vent 30 Sekunder På At Køle Ned', - shat = 'Laver Shatter', - roll = 'Ruller Blunts', - -- - nodry = 'Du Har Brug For Våd Cannabis Til At Tørre', - noweed = 'Kan Ikke Rulle En Blunt Med Luft', - noshat = 'Du Har Brug For Shatter Til At Lave En Dab', - notorch = 'Du Har Brug For En Butanbrænder' -} - -Lang.xtc = { - out = 'Du Har Allerede En Presser Ude', - pressing = 'Presser Piller', - raw = 'Laver Rå XTC', - mdp2p = 'Stjæler MDP2P', - iso = 'Stjæler Isosafrol', - fail = 'Dude, Det Er En Cirkel, Ikke Raketteknologi', - -- - cash = 'Jeg har brug for 20k i kontanter' -} diff --git a/langs/dutch.lua b/langs/dutch.lua deleted file mode 100644 index b973a38..0000000 --- a/langs/dutch.lua +++ /dev/null @@ -1,154 +0,0 @@ -Lang = {} - -Lang.Coke = { - picking = "Bladeren plukken", - makepow = 'Bladeren tot poeder malen', - cutting = 'Coke snijden met bakpoeder', - bagging = "Coke in zakken doen", - cut = "Je hebt wat coke gesneden", - nocutcoke = "Je kunt geen coke snijden zonder coke, idioot", - bagcoke = "Je hebt coke in zakken gedaan", - nobagcoke = "Je kunt geen coke in zakken doen zonder coke, idioot", -} -Lang.Crack = { - cookcrack = "Crack aan het maken", - bagcrack = 'Crack in zakken doen', - makecrack = 'Goede crack', - nocoke = 'Je kunt dit niet maken zonder coke' -} -Lang.Cornerselling = { - toofar = "Te ver van je hoek, maat", - inacar = "Je kunt niet verkopen terwijl je in een auto zit", - deny = "Fuck dat bod", - start = "Verdien wat geld", - stop = "Luie reet, kan niet eens drugs verkopen", - nodrugs = "Wat ga je verkopen? Lucht?", - notcops = "Niet genoeg agenten", - sell = "Drugs verkopen", -} -Lang.Delivery = { - search = "Op zoek naar een bezorging...", - none = "Niets in de buurt", - busy = "Je hebt nog niet eens degene afgemaakt die ik je vertelde", - found = "Gemarkeerd op je kaart", - already = "Al bezig met bezorgen", - checkrep = "Huidige handelaarsreputatie: ", - pack = 'Pakket overhandigen', -} - -Lang.Heroin = { - pick = "Papaver plukken", - tableout = 'Je hebt al een tafel uitstaan', - dryout = "Papaver laten drogen", - cutting = "Heroin snijden met bakpoeder", - secret = "SSSTTTT", - table = "Tafel neerzetten", - success = "Heroin goed verwarmd", - clean = 'Heroïnetafel schoonmaken', - needles = 'Spuit vullen', - pickup = 'Heroïnetafel oppakken', - cutheroin = 'Je hebt wat gesneden heroïne gemaakt', - noheroin = "Hoe kun je heroïne snijden zonder heroïne, idioot", - vial = 'Je hebt een flacon heroïne gemaakt', - novial = "Hoe kun je heroïneflacons maken zonder heroïne, idioot", - fail = 'Je hebt ze te veel verhit, idioot', - fill = 'Vul de spuit', - nofill = 'Hoe ga je heroïne-naalden vullen zonder heroïne' -} - -Lang.Lean = { - marked = 'Auto staat op je kaart', - lean = 'Je hebt paarse lean gekregen', - dextro = 'Je hebt rode dextro gekregen' -} - -Lang.lsd = { - steallys = 'Lyserginezuur stelen', - stealdie = 'Lyserginezuur stelen', - tableout = 'Je hebt al een tafel uitstaan', - tablepack = 'Tafel inpakken', - heat = 'Vloeistoffen verwarmen', - clean = 'Tafel schoonmaken', - refine = 'Kwaliteit verfijnen', - dip = 'LSD op papier dippen', - buypaper = 'Tab-papier kopen', - buykit = 'Lab-kit kopen', - place = 'Tafel neerzetten', - lys = 'Je hebt lyserginezuur', - die = 'Je hebt di-ethylamide', - cleaned = 'Je hebt het perfect schoongemaakt', - madelsd = 'Je hebt LSD gemaakt!', - failed = 'Je hebt ze te veel verhit, idioot', - refined = 'Je hebt ze verfijnd!', - broke = 'Je arme reet kan dit niet betalen!', - novial = 'Geen LSD-flesjes, idioot', -} - -Lang.mescaline = { - pick = "Cactus plukken", - dry = 'Cactus laten drogen', - nocactus = 'Geen cactusbollen', - eat = 'Mescaline eten' -} - -Lang.meth = { - inside = 'Al iets binnen', - increaseheat = 'Hitte verhogen', - mission = 'Auto staat op je kaart', - ace = 'Je hebt wat aceton gekregen', - eph = 'Je hebt wat efedrine gekregen', - mix = 'Dingen toevoegen aan de mix', - nobag = 'Geen tassen' -} - -Lang.oxy = { - truck = 'Je vrachtwagen is hier', - cantcarry = 'Je bent niet zo sterk, je kunt er maar één dragen', - hand = 'Oxy overhandigen', - empty = 'Je kunt niet met lege handen staan, idioot', - broke = 'Je arme reet kan dit niet betalen', - hot = 'Auto is heet, dump het nu', - next = 'Ga naar de volgende locatie' -} - -Lang.Pharma = { - notems = 'Je bent geen medisch persoon', - write = 'Recept schrijven', - fill = 'Recept vullen', - open = 'Fles openen', - pills = 'Je hebt wat pillen!', - no = 'Je hebt geen recept' -} - -Lang.Shrooms = { - pick = 'Paddenstoelen plukken', - eat = 'Paddenstoelen eten', - trip = 'Fijne reis!' -} - -Lang.Weed = { - pick = 'Wiet oogsten', - busy = 'Ben al bezig met eentje te drogen', - canna = 'Wietboter maken', - brown = 'Speciale bruine maken', - cook = 'Speciale koekjes maken', - Choc = 'Speciale chocolade maken', - muff = 'Speciale muffin maken', - stovehot = 'Het fornuis is te heet, wacht 30 seconden om af te koelen', - shat = 'Shatter maken', - roll = 'Blunts rollen', - nodry = 'Je hebt natte cannabis nodig om te drogen', - noweed = 'Kan geen joint rollen zonder wiet', - noshat = 'Je hebt shatter nodig om te dabben', - notorch = 'Je hebt een gasbrander nodig' -} - -Lang.xtc = { - out = 'Je hebt al een persmachine', - pressing = 'Pillen persen', - raw = 'Ruwe XTC maken', - mdp2p = 'MDP2P stelen', - iso = 'Iso safrole stelen', - fail = 'Dude, het is een cirkel, geen raketwetenschap', - cash = 'Ik heb 20k in contanten nodig' -} \ No newline at end of file diff --git a/langs/japanese.lua b/langs/japanese.lua deleted file mode 100644 index 975d885..0000000 --- a/langs/japanese.lua +++ /dev/null @@ -1,154 +0,0 @@ -Lang = {} - -Lang.Coke = { - picking = "葉を摘む", - makepow = '葉を粉にする', - cutting = 'ベーキングソーダでコカインを切る', - bagging = "コカインを袋詰めする", - cut = "コカインを切った", - nocutcoke = "コカインがないと切れないよ、アホ", - bagcoke = "コカインを袋詰めした", - nobagcoke = "コカインがないと袋詰めできないよ、アホ", -} -Lang.Crack = { - cookcrack = "クラックを作る", - bagcrack = 'クラックを袋詰めする', - makecrack = 'いいクラック', - nocoke = 'コカインなしではこれは作れない' -} -Lang.Cornerselling = { - toofar = "あなたのコーナーから遠すぎる", - inacar = "車の中で売ることはできない", - deny = "そのオファーはダメだ", - start = "お金を稼ごう", - stop = "怠け者、薬さえ売れないのか", - nodrugs = "何を売るつもり?空気?", - notcops = "警官が足りない", - sell = "薬を売る", -} -Lang.Delivery = { - search = "配達を検索中...", - none = "近くに何もない", - busy = "まだ完成していないものを終えていない", - found = "あなたの地図にマークされた", - already = "すでに配達中", - checkrep = "現在のディーラーの評判:", - pack = 'パッケージを渡す', -} - -Lang.Heroin = { - pick = "アヘンを摘む", - tableout = 'すでにテーブルが出ている', - dryout = "アヘンを乾燥させる", - cutting = "ベーキングソーダでヘロインを切る", - secret = "ひそかに", - table = "テーブルを置く", - success = "ヘロインを正しく加熱した", - clean = 'ヘロインテーブルを掃除する', - needles = '注射器を満たす', - pickup = 'ヘロインテーブルを拾う', - cutheroin = 'ヘロインを切った', - noheroin = "アヘンがないとヘロインを切れないよ、アホ", - vial = 'ヘロインのびんを作った', - novial = "アヘンがないとヘロインのびんを作れないよ、アホ", - fail = '加熱しすぎた、アホ', - fill = '注射器を満たす', - nofill = 'アヘンがないとヘロインの注射器を満たせないよ、アホ' -} - -Lang.Lean = { - marked = '車が地図にマークされた', - lean = '紫色のリーンを手に入れた', - dextro = '赤いデキストロを手に入れた' -} - -Lang.lsd = { - steallys = 'リゼルグ酸を盗む', - stealdie = 'リゼルグ酸を盗む', - tableout = 'すでにテーブルが出ている', - tablepack = 'テーブルをパッキングする', - heat = '液体を加熱する', - clean = 'テーブルを掃除する', - refine = '品質を高める', - dip = '紙にLSDを浸す', - buypaper = 'タブ用紙を購入する', - buykit = 'ラボキットを購入する', - place = 'テーブルを置く', - lys = 'リゼルグ酸を手に入れた', - die = 'ジエチルアミドを手に入れた', - cleaned = '完璧にきれいにした', - madelsd = 'LSDを作った!', - failed = '加熱しすぎた、アホ', - refined = '高めた!', - broke = 'あなたはこれを買うお金がありません!', - novial = 'LSDのびんがありません、アホ', -} - -Lang.mescaline = { - pick = "サボテンを摘む", - dry = 'サボテンを乾燥させる', - nocactus = 'サボテンの球根がありません', - eat = 'メスカリンを食べる' -} - -Lang.meth = { - inside = '中にはすでに何かある', - increaseheat = '熱を上げる', - mission = '車が地図にマークされた', - ace = 'アセトンを手に入れた', - eph = 'エフェドリンを手に入れた', - mix = '混ぜ物を追加する', - nobag = '袋がない' -} - -Lang.oxy = { - truck = 'あなたのトラックはここにあります', - cantcarry = 'あなたはそんなに強くない、あなたは1つしか運べない', - hand = '酸素を手渡す', - empty = 'あなたは空手ではいられない、アホ', - broke = 'あなたはこれを払うお金がありません', - hot = '車が熱い、すぐにそれを投げ捨てる', - next = '次の場所に行く' -} - -Lang.Pharma = { - notems = '医療関係者ではありません', - write = '処方箋を書く', - fill = '処方箋を埋める', - open = 'ボトルを開ける', - pills = 'いくつかの錠剤を手に入れた!', - no = '処方箋がありません' -} - -Lang.Shrooms = { - pick = 'キノコを摘む', - eat = 'キノコを食べる', - trip = 'いい旅を!' -} - -Lang.Weed = { - pick = '大麻を収穫する', - busy = 'すでに1つを乾かしています', - canna = 'キャナバターを作る', - brown = '特製ブラウニーを作る', - cook = '特製クッキーを作る', - Choc = '特製チョコレートを作る', - muff = '特製マフィンを作る', - stovehot = 'ストーブが熱すぎるので、30秒待って冷ます', - shat = 'シャターを作る', - roll = 'ブラントを巻く', - nodry = '乾燥させるためには湿った大麻が必要です', - noweed = '大麻なしではブラントを巻けません', - noshat = 'ダブするにはシャターが必要です', - notorch = 'ガスバーナーが必要です' -} - -Lang.xtc = { - out = 'すでにプレスがあります', - pressing = '錠剤を押す', - raw = '生のXTCを作る', - mdp2p = 'MDP2Pを盗む', - iso = 'イソサフロールを盗む', - fail = '兄ちゃん、それは円形だ、ロケットサイエンスじゃない', - cash = '現金20kが必要です' -} \ No newline at end of file diff --git a/langs/mandarin.lua b/langs/mandarin.lua deleted file mode 100644 index 5d87c94..0000000 --- a/langs/mandarin.lua +++ /dev/null @@ -1,154 +0,0 @@ -Lang = {} - -Lang.Coke = { - picking = "采摘叶子", - makepow = '将叶子研磨成粉末', - cutting = '用苏打粉切割可乐', - bagging = "包装可乐", - cut = "你切了一些可乐", - nocutcoke = "你不能没有可乐就切可乐,笨蛋", - bagcoke = "你装袋了可乐", - nobagcoke = "你不能没有可乐就装袋可乐,笨蛋", -} -Lang.Crack = { - cookcrack = "制作一些 crack", - bagcrack = '包装 crack', - makecrack = '不错的 crack', - nocoke = '没有可乐不能制作这个' -} -Lang.Cornerselling = { - toofar = "离你的拐角太远了,兄弟", - inacar = "你不能在车里卖东西", - deny = "拒绝那个出价", - start = "赚点钱", - stop = "懒鬼,甚至连卖毒品都不想做", - nodrugs = "你打算卖什么?空气吗?", - notcops = "警察不够", - sell = "正在销售毒品", -} -Lang.Delivery = { - search = "正在寻找交付...", - none = "附近没有东西", - busy = "你甚至还没有完成我告诉你的一个", - found = "标记在你的地图上", - already = "已经在交付中", - checkrep = "当前交易员声誉:", - pack = '交接包裹', -} - -Lang.Heroin = { - pick = "采摘罂粟", - tableout = '你已经摆出了一张桌子', - dryout = "晾干罂粟", - cutting = "用苏打粉切割海洛因", - secret = "嘘", - table = "放置桌子", - success = "正确加热海洛因", - clean = '清洁海洛因桌', - needles = '填充针筒', - pickup = '捡起海洛因桌', - cutheroin = '你制造了一些剪切过的海洛因', - noheroin = "没有海洛因怎么能剪切海洛因?笨蛋", - vial = '你制作了一个海洛因小瓶', - novial = "没有海洛因怎么能制作海洛因小瓶?笨蛋", - fail = '你把它们加热过头了,笨蛋', - fill = '填充针筒', - nofill = '没有海洛因怎么填充海洛因的针筒?' -} - -Lang.Lean = { - marked = '车子已标记在你的地图上', - lean = '你得到了紫色的瘾', - dextro = '你得到了红色的右旋' -} - -Lang.lsd = { - steallys = '偷窃溴酸', - stealdie = '偷窃溴酸', - tableout = '你已经摆出了一张桌子', - tablepack = '打包桌子', - heat = '加热液体', - clean = '清洁桌子', - refine = '提纯品质', - dip = '把 LSD 涂在纸上', - buypaper = '购买标签纸', - buykit = '购买实验室工具', - place = '放置桌子', - lys = '你得到了溴酸', - die = '你得到了二乙酰胺', - cleaned = '你清洁得很好', - madelsd = '你制造了 LSD!', - failed = '你加热过头了,笨蛋', - refined = '你提纯了它们!', - broke = '你穷得买不起这些!', - novial = '没有 LSD 小瓶,笨蛋', -} - -Lang.mescaline = { - pick = "采摘仙人掌", - dry = '晾干仙人掌', - nocactus = '没有仙人掌球', - eat = '吃麦斯卡林' -} - -Lang.meth = { - inside = '里面已经有东西了', - increaseheat = '加热中', - mission = '车子已标记在你的地图上', - ace = '你得到了一些乙酸', - eph = '你得到了一些麻黄碱', - mix = '加入混合物', - nobag = '没有袋子' -} - -Lang.oxy = { - truck = '你的卡车在这里', - cantcarry = '你不那么强壮,你只能搬运一个', - hand = '交付氧气', - empty = '你不能空手,笨蛋', - broke = '你穷得买不起这个', - hot = '车子很热,现在倾倒它', - next = '去下一个地点' -} - -Lang.Pharma = { - notems = '你不是医生', - write = '开具处方', - fill = '填写处方', - open = '打开瓶子', - pills = '你得到了一些药丸!', - no = '你没有处方' -} - -Lang.Shrooms = { - pick = '采摘蘑菇', - eat = '吃蘑菇', - trip = '祝你旅途愉快!' -} - -Lang.Weed = { - pick = '收获大麻', - busy = '已经在晾干一个了', - canna = '制作大麻黄油', - brown = '制作特制棕子', - cook = '制作特制饼干', - Choc = '制作特制巧克力', - muff = '制作特制松饼', - stovehot = '炉子太热了,请等待 30 秒冷却', - shat = '制作特制糖霜', - roll = '卷烟', - nodry = '你需要湿大麻才能晾干', - noweed = '不能用空气卷烟', - noshat = '你需要糖霜来吸食', - notorch = '你需要打火机' -} - -Lang.xtc = { - out = '你已经有一个压片机了', - pressing = '压片', - raw = '制作原始 XTC', - mdp2p = '偷窃 MDP2P', - iso = '偷窃异亚硫酸酯', - fail = '哥们,这是圆的不是火箭科学', - cash = '我需要 20k 现金' -} \ No newline at end of file diff --git a/langs/spanish.lua b/langs/spanish.lua deleted file mode 100644 index 6e50762..0000000 --- a/langs/spanish.lua +++ /dev/null @@ -1,154 +0,0 @@ -Lang = {} - -Lang.Coke = { - picking = "Recogiendo hojas", - makepow = 'Moliendo hojas en polvo', - cutting = 'Cortando coca con bicarbonato de sodio', - bagging = "Empacando coca", - cut = "Has cortado algo de coca", - nocutcoke = "No puedes cortar coca sin coca, idiota", - bagcoke = "Has empacado coca", - nobagcoke = "No puedes empacar coca sin coca, idiota", -} -Lang.Crack = { - cookcrack = "Cocinando crack", - bagcrack = 'Empacando crack', - makecrack = 'Buen crack', - nocoke = 'No puedes hacer esto sin cocaína' -} -Lang.Cornerselling = { - toofar = "Demasiado lejos de tu esquina, amigo", - inacar = "No puedes vender mientras estás en un auto", - deny = "A la mierda esa oferta", - start = "Consigue ese dinero", - stop = "El culo perezoso ni siquiera puede vender drogas", - nodrugs = "¿Qué vas a vender? ¿Aire?", - notcops = "No hay suficientes policías", - sell = "Vendiendo drogas", -} -Lang.Delivery = { - search = "Buscando una entrega...", - none = "Nada cerca", - busy = "Ni siquiera has terminado el que te dije", - found = "Marcado en tu mapa", - already = "Ya entregando", - checkrep = "Reputación actual del vendedor: ", - pack = 'Entregando paquete', -} - -Lang.Heroin = { - pick = "Recogiendo amapolas", - tableout = 'Ya tienes una mesa fuera', - dryout = "Secando amapolas", - cutting = "Cortando heroína con bicarbonato de sodio", - secret = "SHHHHHHHHH", - table = "Colocando mesa", - success = "Calentaste la heroína adecuadamente", - clean = 'Limpiando mesa de heroína', - needles = 'Rellenando jeringa', - pickup = 'Recogiendo mesa de heroína', - cutheroin = 'Hiciste algo de heroína cortada', - noheroin = "¿Cómo puedes cortar heroína sin heroína, idiota?", - vial = 'Hiciste una ampolla de heroína', - novial = "¿Cómo puedes hacer ampollas de heroína sin heroína, idiota?", - fail = 'Los calentaste demasiado, idiota', - fill = 'Llenaste la jeringa', - nofill = '¿Cómo vas a llenar agujas de heroína sin heroína?' -} - -Lang.Lean = { - marked = 'El auto está marcado en tu mapa', - lean = 'Tienes lean morado', - dextro = 'Tienes dextro rojo' -} - -Lang.lsd = { - steallys = 'Robando ácido lisérgico', - stealdie = 'Robando ácido lisérgico', - tableout = 'Ya tienes una mesa fuera', - tablepack = 'Empacando mesa', - heat = 'Calentando líquidos', - clean = 'Limpiando mesa', - refine = 'Refinando la calidad', - dip = 'Sumerjiendo LSD en papel', - buypaper = 'Comprando papel de tab', - buykit = 'Comprando kit de laboratorio', - place = 'Colocando mesa', - lys = 'Tienes ácido lisérgico', - die = 'Tienes dietilamida', - cleaned = 'Lo limpiaste perfectamente', - madelsd = '¡Hiciste LSD!', - failed = 'Los calentaste demasiado, idiota', - refined = '¡Los refinaste!', - broke = '¡Tu culo quebrado no puede pagarlo!', - novial = '¡No hay ampollas de LSD, idiota!', -} - -Lang.mescaline = { - pick = "Recogiendo cactus", - dry = 'Secando cactus', - nocactus = 'Sin bulbos de cactus', - eat = 'Comiendo mescalina' -} - -Lang.meth = { - inside = 'Ya hay algo dentro', - increaseheat = 'Aumentando el calor', - mission = 'El auto está marcado en tu mapa', - ace = 'Tienes acetona', - eph = 'Tienes efedrina', - mix = 'Agregando cosas a la mezcla', - nobag = 'No hay bolsas' -} - -Lang.oxy = { - truck = 'Tu camión está aquí', - cantcarry = 'No eres tan fuerte, solo puedes llevar uno', - hand = 'Entregando oxy', - empty = 'No puedes estar vacío, idiota', - broke = '¡Tu culo quebrado no puede pagarlo!', - hot = 'El auto está caliente, tíralo ahora', - next = 'Ve a la siguiente ubicación' -} - -Lang.Pharma = { - notems = 'No eres una persona médica', - write = 'Escribiendo receta', - fill = 'Llenando receta', - open = 'Abriendo botella', - pills = '¡Tienes algunas píldoras!', - no = 'No tienes una receta' -} - -Lang.Shrooms = { - pick = 'Recogiendo hongos', - eat = 'Comiendo hongos', - trip = '¡Ten un buen viaje!' -} - -Lang.Weed = { - pick = 'Cosechando marihuana', - busy = 'Ya estoy secando uno', - canna = 'Haciendo mantequilla de marihuana', - brown = 'Haciendo brownies especiales', - cook = 'Haciendo galletas especiales', - Choc = 'Haciendo chocolate especial', - muff = 'Haciendo muffin especial', - stovehot = 'La estufa está demasiado caliente, espera 30 segundos para enfriar', - shat = 'Haciendo shatter', - roll = 'Enrollando blunts', - nodry = 'Necesitas marihuana húmeda para secar', - noweed = 'No puedes enrollar un blunt sin marihuana', - noshat = 'Necesitas shatter para hacer un dab', - notorch = 'Necesitas un soplete de butano' -} - -Lang.xtc = { - out = 'Ya tienes una prensa', - pressing = 'Prensando pastillas', - raw = 'Haciendo XTC crudo', - mdp2p = 'Robando MDP2P', - iso = 'Robando isosafrol', - fail = 'Tío, es un círculo, no ciencia de cohetes', - cash = 'Necesito 20k en efectivo' -} diff --git a/langs/swedish.lua b/langs/swedish.lua deleted file mode 100644 index f9652a9..0000000 --- a/langs/swedish.lua +++ /dev/null @@ -1,157 +0,0 @@ - -Lang = {} - -Lang.Coke = { - picking = "Plockar löv", - makepow = 'Mal löv till pulver', - cutting = 'Skär kokain med bikarbonat', - bagging = "Fyller på påsar med kokain", - cut = "Du skar lite kokain", - nocutcoke = "Du kan inte skära kokain utan kokain, idiot", - bagcoke = "Du fyllde på påsar med kokain", - nobagcoke = "Du kan inte fylla på påsar med kokain utan kokain, idiot", -} -Lang.Crack = { - cookcrack = "Kokar crack", - bagcrack = 'Fyller på påsar med crack', - makecrack = 'Bra crack', - nocoke = 'Du kan inte göra detta utan kokain' -} -Lang.Cornerselling = { - toofar = "För långt från din hörna, kompis", - inacar = "Du kan inte sälja medan du är i en bil", - deny = "Fuck det erbjudandet", - start = "Skaffa pengarna", - stop = "Lat röv kan inte ens sälja droger", - nodrugs = "Vad ska du sälja? Luft?", - notcops = "Inte tillräckligt med poliser", - sell = "Säljer droger", -} -Lang.Delivery = { - search = "Söker efter en leverans...", - none = "Inget nära", - busy = "Du har inte ens slutfört den jag sa till dig", - found = "Markerat på din karta", - already = "Redan levererande", - checkrep = "Nuvarande återförsäljares rykte: ", - pack = 'Överlämnar paket', -} - -Lang.Heroin = { - pick = "Plockar opiumvallmo", - tableout = 'Du har redan ett bord ute', - dryout = "Torkar opiumvallmo", - cutting = "Skär heroin med bikarbonat", - secret = "SHHHHHHHHH", - table = "Placerar bord", - success = "Värmt upp heroinet ordentligt", - clean = 'Rengör heroinbordet', - needles = 'Fyller spruta', - pickup = 'Plockar upp heroinbordet', - cutheroin = 'Du gjorde lite skuret heroin', - noheroin = "Hur kan du skära heroin utan heroin, idiot", - vial = 'Du gjorde en flaska med heroin', - novial = "Hur kan du göra heroinflaskor utan heroin, idiot", - fail = 'Du överhettade dem, idiot', - fill = 'Fyllde sprutan', - nofill = 'Hur ska du fylla nålar med heroin utan heroin' -} - -Lang.Lean = { - marked = 'Bilen är markerad på din karta', - lean = 'Du fick lila lean', - dextro = 'Du fick rött dextro' -} - -Lang.lsd = { - steallys = 'Stjäl lysergsyra', - stealdie = 'Stjäl lysergsyra', - tableout = 'Du har redan ett bord ute', - tablepack = 'Packar upp bordet', - heat = 'Värmer upp vätskor', - clean = 'Rengör bordet', - refine = 'Förfinar kvaliteten', - dip = 'Doppa LSD på papper', - buypaper = 'Köp flikpapper', - buykit = 'Köp laboratoriekit', - place = 'Placerar bord', - lys = 'Du fick lysergsyra', - die = 'Du fick dietilamid', - cleaned = 'Du rengjorde det perfekt', - madelsd = 'Du gjorde LSD!', - failed = 'Du överhettade dem, idiot', - refined = 'Du förfinade dem!', - broke = 'Din fattiga röv kan inte ha råd med det här!', - novial = 'Inga LSD-flaskor, idiot' -} - -Lang.mescaline = { - pick = "Plockar kaktus", - dry = 'Torkar ut kaktus', - nocactus = 'Inga kaktusknoppar', - eat = 'Äter mescalin' -} - -Lang.meth = { - inside = 'Något inuti redan', - increaseheat = 'Öka värmen', - mission = 'Bilen är markerad på din karta', - ace = 'Du fick acetone', - eph = 'Du fick efedrin', - mix = 'Lägger till saker i blandningen', - nobag = 'Inga påsar' -} - -Lang.oxy = { - truck = 'Din lastbil är här', - cantcarry = 'Du är inte så stark, du kan bara bära en', - hand = 'Ger över oxy', - empty = 'Du kan inte vara tomhänt, idiot', - broke = 'Din fattiga röv kan inte ha råd med det här', - hot = 'Bilen är het, släng den nu', - next = 'Gå till nästa plats' -} - -Lang.Pharma = { - notems = 'Du är inte en medicinsk person', - write = 'Skriva recept', - fill = 'Fyller recept', - open = 'Öppnar flaska', - - - pills = 'Du fick några piller!', - no = 'Du har inget recept' -} - -Lang.Shrooms = { - pick = 'Plockar svampar', - eat = 'Äter svampar', - trip = 'Ha en trevlig resa!' -} - -Lang.Weed = { - pick = 'Skördar cannabis', - busy = 'Redan torkar en', - canna = 'Gör cannabis-smör', - brown = 'Gör speciella brownies', - cook = 'Gör speciella kakor', - Choc = 'Gör speciell choklad', - muff = 'Gör speciell muffin', - stovehot = 'Spisen är för varm, vänta 30 sekunder för att svalna', - shat = 'Gör shatter', - roll = 'Rullar blunts', - nodry = 'Du behöver fuktig cannabis för att torka', - noweed = 'Kan inte rulla en blunt utan cannabis', - noshat = 'Du behöver shatter för att göra en dab', - notorch = 'Du behöver en butangasbrännare' -} - -Lang.xtc = { - out = 'Du har redan en press', - pressing = 'Pressar piller', - raw = 'Gör rå XTC', - mdp2p = 'Stjäl MDP2P', - iso = 'Stjäl isosafrol', - fail = 'Kille, det är en cirkel, inte raketvetenskap', - cash = 'Jag behöver 20k i kontanter' -} diff --git a/readme.md b/readme.md index 40b1b2f..4f82244 100644 --- a/readme.md +++ b/readme.md @@ -1,4 +1,4 @@ -

md-drugs

+# MD-Drugs
@@ -7,7 +7,7 @@ Mustache Scripts Discord
-

Credits

+# Credits - I used [Samuel's development](https://fivem.samueldev.shop/) Christmas script global states and prop spawning (with permission obtained prior to release) in the development process. @@ -26,131 +26,148 @@ - [jixeltay](https://jixeltay.tebex.io/category/scripts) for putting out banger after banger. These people help the community learn so much more - Our partner [1of1 Servers]( https://1of1servers.com/) and their [discord](https://discord.gg/1of1servers) for their amazing server hosting! absolutely top notch. - -

Special Thanks To Kamaryn For The Preview

+- Special Thanks To Kamaryn For The Preview - Thanks to Kamaryn for this [install guide video](https://youtu.be/zvuYnUfrqaA?si=FGJuBO5krZMC14Nd) - join their [discord](https://discord.gg/KPRmZqFS) for other videos updates. -

Dependencies

-- [Ox Lib](https://github.com/overextended/ox_lib/releases/tag/v3.12.0) +# Dependencies -- [qb-target](https://github.com/qbcore-framework/qb-target) **or** ox_target +- [ox_lib](https://github.com/overextended/ox_lib/releases/tag/v3.12.0) + +- [qb-target](https://github.com/qbcore-framework/qb-target) **or** [ox_target](https://github.com/overextended/ox_target) -- emote script that uses the animations event (rpemotes, dpemotes, scully emotes all work) +- emote script that uses the animations event + - for example one of these + - [dpemotes](https://github.com/andristum/dpemotes) -- should use RP instead + - [rpemotes](https://github.com/alberttheprince/rpemotes-reborn) + - [scully_emotemenu](https://github.com/Scullyy/scully_emotemenu) + +- [read](https://letters.hookedonphonics.com/us/read-guaranteed-G14.html?vc=HPG1&pc=SHPGBR&tracking_id=102917836048989658da259e8c83e6&url_id=5586&oid=707&vid=1855&cid=4194&hid=14509&utm_source=1855&aff_id2={aff_id2}&utm_campaign=PracticePackHOS&utm_medium=S&utm_content=BrandDollarPacks&gc_id=184380999&h_ad_id=374941048206&src=O&qid=3&msvid=v2) - GAME BUILD 2944 OR LATER +# Preview -

Preview

+### [Preview link](https://www.youtube.com/watch?v=I_x7_oz_SAU) -- [Preview link](https://www.youtube.com/watch?v=I_x7_oz_SAU) -- **Preview** +# How to install like a fuckin boss -![](https://cdn.discordapp.com/attachments/1164709522691076120/1185729686135910582/image.png?ex=6590abd2&is=657e36d2&hm=35c3b2d4f55473d65dd9197a69052b7ec7ac7b28528811f3f59d5f306b7237eb&) +### STEP 1 -

How to install like a fuckin boss

+- qb-inventory users go to md-drugs/items_install/qb-inventory and add the Items to `qb-core/shared/items.lua` and - Add items from md-drugs/items_install/images to qb-inventory/html/images +- ox_inventory users go to md-drugs/items_install/ox_inventory and add the Items to `ox_inventory/data/items.lua` and - Add items from md-drugs/items_install/images to ox_inventory/web/images -- **STEP 1** - - qb-inventory users go to md-drugs/items_install/qb-inventory and add the Items to `qb-core/shared/items.lua` and - Add items from md-drugs/items_install/images to qb-inventory/html/images - - ox_inventory users go to md-drugs/items_install/ox_inventory and add the Items to `ox_inventory/data/items.lua` and - Add items from md-drugs/items_install/images to ox_inventory/web/images +### STEP 2 +- delete `qb-drugs` -- **STEP 2** +### STEP 3 +- Inside the config file change **all** the locations for everything. + - **ps: All locations have been changed to make a preview video easier and with how big of a script this is, Im not going to config it for every city. THESE LOCATION DO NOT DO WELL FOR A LIVE SERVER SO CHANGE THEM** - - delete `qb-drugs` - -- **STEP 3** - - - Inside the config file change **all** the locations for everything. - - **ps: All locations have been changed to make a preview video easier and with how big of a script this is, Im not going to config it for every city. THESE LOCATION DO NOT DO WELL FOR A LIVE SERVER SO CHANGE THEM** - - -- **STEP 4** +### STEP 4 - Head to your emote script search for **uncuff** if it's missing add it - - if rp or dpemotes then do this - -```lua - ["uncuff"] = {"mp_arresting","a_uncuff","Uncuff", AnimationOptions = { EmoteLoop = true, EmoteMoving = true } }, - ["edible"] = { "mp_player_inteat@burger", "mp_player_int_eat_burger", "edible", AnimationOptions = { EmoteLoop = false, EmoteMoving = true }}, - ["shootup"] = { "rcmpaparazzo1ig_4", "miranda_shooting_up", "Shoot Up", AnimationOptions = {EmoteLoop = true,EmoteMoving = true,Prop = 'prop_syringe_01', PansexualPropBone = 18905,PropPlacement = {0.11, 0.03, 0.0, -124.0, 0.0, 0.0},}}, -``` - -- if scully emotes do this in emotes.lua -``` - { - Label = 'Uncuff', - Command = 'uncuff', - Animation = 'a_uncuff', - Dictionary = 'mp_arresting', - Options = { - Flags = { - Loop = true, - Move = true, - }, - } - }, - { - Label = 'Edibles', - Command = 'edible', - Animation = 'mp_player_int_eat_burger', - Dictionary = 'mp_player_inteat@burger', - Options = { - Flags = { - Loop = true, - Move = true, - }, - } - }, -``` -then in prop emotes do -``` -{ - Label = 'Shoot Up', - Command = 'shootup', - Animation = "miranda_shooting_up", - Dictionary = "rcmpaparazzo1ig_4", - Options = { - Flags = { - Loop = true, - }, - Props = { - { - Bone = 18905, - Name = 'prop_syringe_01', - Placement = { - vector3(0.11, 0.03, 0.0), - vector3( -124.0, 0.0, 0.0), + - if rpemotes do this + - go to client/animationListCustom.lua + - add these to the CustomDP.Emotes = {} + ```lua + ["uncuff"] = {"mp_arresting","a_uncuff","Uncuff", AnimationOptions = { EmoteLoop = true, EmoteMoving = true } }, + ["edible"] = { "mp_player_inteat@burger", "mp_player_int_eat_burger", "edible", AnimationOptions = { EmoteLoop = false, EmoteMoving = true }}, + ``` + - Add This to CustomDP.PropEmotes = {} + ```lua + ["shootup"] = { "rcmpaparazzo1ig_4", "miranda_shooting_up", "Shoot Up", AnimationOptions = {EmoteLoop = true,EmoteMoving = true,Prop = 'prop_syringe_01', PansexualPropBone = 18905,PropPlacement = {0.11, 0.03, 0.0, -124.0, 0.0, 0.0},}} + ``` + - elseif dpemotes add this to client/AnimationList.lua + - add these to DP.Emotes = {} + ```lua + ["uncuff"] = {"mp_arresting","a_uncuff","Uncuff", AnimationOptions = { EmoteLoop = true, EmoteMoving = true } }, + ["edible"] = { "mp_player_inteat@burger", "mp_player_int_eat_burger", "edible", AnimationOptions = { EmoteLoop = false, EmoteMoving = true }}, + ``` + - add these to DP.PropEmotes = {} + ```lua + ["shootup"] = { "rcmpaparazzo1ig_4", "miranda_shooting_up", "Shoot Up", AnimationOptions = {EmoteLoop = true,EmoteMoving = true,Prop = 'prop_syringe_01', PansexualPropBone = 18905,PropPlacement = {0.11, 0.03, 0.0, -124.0, 0.0, 0.0},}} + ``` + - elseif scullyemotes then + - add this to emotes.lua + ```lua + { + Label = 'Uncuff', + Command = 'uncuff', + Animation = 'a_uncuff', + Dictionary = 'mp_arresting', + Options = { + Flags = { + Loop = true, + Move = true, + }, + } + }, + { + Label = 'Edibles', + Command = 'edible', + Animation = 'mp_player_int_eat_burger', + Dictionary = 'mp_player_inteat@burger', + Options = { + Flags = { + Loop = true, + Move = true, + }, + } + }, + ``` + - then in prop emotes do + ```lua + { + Label = 'Shoot Up', + Command = 'shootup', + Animation = "miranda_shooting_up", + Dictionary = "rcmpaparazzo1ig_4", + Options = { + Flags = { + Loop = true, + }, + Props = { + { + Bone = 18905, + Name = 'prop_syringe_01', + Placement = { + vector3(0.11, 0.03, 0.0), + vector3( -124.0, 0.0, 0.0), + }, + }, + }, }, }, - }, - }, - }, -``` + ``` -- **STEP 5** - - check `qb-smallresources/config.lua` and if this exists, delete it -``` -[2] = { --Coke Processing Enter/Exit - [1] = { - poly = { coords = vector3(909.49, -1589.22, 30.51), heading = 92.24, length = 2, width = 2 }, - allowVeh = false, - label = '[E] Enter Coke Processing' - }, - [2] = { - poly = { coords = vector3(1088.81, -3187.57, -38.99), heading = 181.7, length = 2, width = 2 }, - allowVeh = false, - label = '[E] Leave' - } - } -``` - -- **STEP 6** -Run SQL - --- **OPTIONAL STEPS** -

Fivemerr

+# STEP 5 +- check `qb-smallresources/config.lua` and if this exists, delete it + - look for this code + ```lua + [2] = { --Coke Processing Enter/Exit + [1] = { + poly = { coords = vector3(909.49, -1589.22, 30.51), heading = 92.24, length = 2, width = 2 }, + allowVeh = false, + label = '[E] Enter Coke Processing' + }, + [2] = { + poly = { coords = vector3(1088.81, -3187.57, -38.99), heading = 181.7, length = 2, width = 2 }, + allowVeh = false, + label = '[E] Leave' + } + } + ``` + +# STEP 6 +- Run SQL + + +# OPTIONAL STEPS + +## Fivemerr This is NOT a requirement but something I personally use and believe in. @@ -166,23 +183,20 @@ As well as a place to offload images and videos from fivem that doesnt rely on d - [Fivemerr Discord](https://discord.com/invite/fivemerr) - [Fivemerr Docs](https://docs.fivemerr.com/) --

Radial Menu

- - head to `qb-radial/config.lua` and search for the following event +# Radial Menu +- head to `qb-radial/config.lua` and search for the following event ```lua event = 'qb-drugs:client:cornerselling', ``` -![](https://cdn.discordapp.com/attachments/1164709522691076120/1185724912648867940/image.png?ex=6590a760&is=657e3260&hm=51534201d8d3e71f79a5c1678879ed8423f381a4a31c62f1bce6caf73782abe0&) - +- and change it to this ```lua event = 'md-drugs:client:cornerselling', ``` -![](https://cdn.discordapp.com/attachments/1164709522691076120/1185725132975644753/image.png?ex=6590a795&is=657e3295&hm=97d7f60ec6c4508af92f758c00669b1d52fe673c6481434b586f81cf29c1f292&) -or just use the command /cornersell -

For Qb-shops users

+# For Qb-shops users - - Head to `qb-shops/config.lua` **Config.Products** and add the folowing items to OR anywhere else you want them. The Only way in this script to get them is to find the travelling merchant +- Head to `qb-shops/config.lua` **Config.Products** and add the folowing items to OR anywhere else you want them. The Only way in this script to get them is to find the travelling merchant ```lua {name = 'bakingsoda', price = 100, amount = 5000, info = {}, type = 'item'}, @@ -190,7 +204,7 @@ or just use the command /cornersell {name = 'needle', price = 100, amount = 5000, info = {}, type = 'item'}, ``` --

Tier System

-Turn On Config.TierSystem after you run the sql file +# Tier System +- Turn On Config.TierSystem after you run the sql file [mlo i use](https://www.gta5-mods.com/maps/mlo-4x-drug-lab-interiors-sp-fivem) heres an option. use it or dont. diff --git a/server/cocaine.lua b/server/cocaine.lua index 171c731..28c85a8 100644 --- a/server/cocaine.lua +++ b/server/cocaine.lua @@ -34,85 +34,81 @@ AddEventHandler("coke:pickupCane", function(loc) end) RegisterServerEvent('md-drugs:server:makepowder', function(num) - local src = source - if CheckDist(src, Config.MakePowder[num]['loc']) then return end - if Config.TierSystem then - local coke = getRep(src, 'coke') - if coke <= Config.Tier1 then - if not GetRecipe(src, 'cocaine', 'cokepowder', 'tier1') then return end - Log(GetName(src) .. ' Made Raw Coke' .. dist(src, Config.MakePowder[num]['loc']) .. ' vectors', 'coke') - elseif coke >= Config.Tier1 and coke <= Config.Tier2 then - if not GetRecipe(src, 'cocaine', 'cokepowder', 'tier2') then return end - Log(GetName(src) .. ' Made Raw Coke tier 2' .. dist(src, Config.MakePowder[num]['loc']) .. ' vectors', 'coke') - else - if not GetRecipe(src, 'cocaine', 'cokepowder', 'tier3') then return end - Log(GetName(src) ..' Made Raw Coke tier 3' .. dist(src, Config.MakePowder[num]['loc']) .. ' vectors', 'coke') - end - else - if not GetRecipe(src, 'cocaine', 'cokepowder', 'tier1') then return end - Log(GetName(src) .. ' Made Raw Coke' .. dist(src, Config.MakePowder[num]['loc']) .. ' vectors', 'coke') - end + local src = source + if CheckDist(src, Config.MakePowder[num]['loc']) then return end + local tier = 'tier1' + local logMessage = ' Made Raw Coke' + if Config.TierSystem then + local coke = getRep(src, 'coke') + if coke > Config.Tier1 and coke <= Config.Tier2 then + tier = 'tier2' + logMessage = ' Made Raw Coke tier 2' + elseif coke > Config.Tier2 then + tier = 'tier3' + logMessage = ' Made Raw Coke tier 3' + end + end + if not GetRecipe(src, 'cocaine', 'cokepowder', tier) then return end + Log(GetName(src) .. logMessage .. dist(src, Config.MakePowder[num]['loc']) .. ' vectors', 'coke') end) RegisterServerEvent('md-drugs:server:cutcokeone', function() - local src = source - local Player = QBCore.Functions.GetPlayer(src) - if Config.TierSystem then - local coke = Player.Functions.GetItemByName('coke') - local coke2 = Player.Functions.GetItemByName('cokestagetwo') - local coke3 = Player.Functions.GetItemByName('cokestagethree') - if coke then - if not GetRecipe(src, 'cocaine', 'cutcoke', 'tier1') then return end - Log(GetName(src) .. ' Cut Coke', 'coke') - elseif coke2 then - if not GetRecipe(src, 'cocaine', 'cutcoke', 'tier2') then return end - Log(GetName(src) .. ' Cut Coke tier 2', 'coke') - elseif coke3 then - if not GetRecipe(src, 'cocaine', 'cutcoke', 'tier3') then return end - Log(GetName(src) .. ' Cut Coke tier 3', 'coke') - else - Notifys(src,Lang.Coke.nocutcoke, "error") - end - else - if not GetRecipe(src, 'cocaine', 'cutcoke', 'tier1') then return end - Log(GetName(src) .. ' Cut Coke', 'coke') - end + local src = source + local Player = getPlayer(src) + local count = 0 + if Config.TierSystem then + local cokeTiers = { + {item = 'coke', tier = 'tier1', log = ' Cut Coke'}, + {item = 'cokestagetwo', tier = 'tier2', log = ' Cut Coke tier 2'}, + {item = 'cokestagethree', tier = 'tier3', log = ' Cut Coke tier 3'} + } + for _, v in ipairs(cokeTiers) do + if count >= 1 then return end + if Player.Functions.GetItemByName(v.item) then + if not GetRecipe(src, 'cocaine', 'cutcoke', v.tier) then return end + Log(GetName(src) .. v.log, 'coke') + return + end + end + Notifys(src, Lang.Coke.nocutcoke, "error") + else + if not GetRecipe(src, 'cocaine', 'cutcoke', 'tier1') then return end + Log(GetName(src) .. ' Cut Coke', 'coke') + end end) RegisterServerEvent('md-drugs:server:bagcoke', function() - local src = source - local Player = QBCore.Functions.GetPlayer(src) - if Config.TierSystem then - local coke = getRep(source, 'coke') - local locoke = Player.Functions.GetItemByName('loosecoke') - local locoke2 = Player.Functions.GetItemByName('loosecokestagetwo') - local locoke3 = Player.Functions.GetItemByName('loosecokestagethree') - if locoke then - if not GetRecipe(src, 'cocaine', 'bagcoke', 'tier1') then return end - AddRep(src, 'coke') - Log(GetName(src) .. ' Bagged Coke and now has a rep of ' .. coke + 1, 'coke') - elseif locoke2 then - if not GetRecipe(src, 'cocaine', 'bagcoke', 'tier1') then return end - AddRep(src, 'coke') - Log(GetName(src) .. ' Bagged Coke tier 2 and now has a rep of ' .. coke + 1, 'coke') - elseif locoke3 then - if not GetRecipe(src, 'cocaine', 'bagcoke', 'tier3') then return end - AddRep(src, 'coke') - Log(GetName(source) .. ' Bagged Coke tier 3 and now has a rep of ' .. coke + 1, 'coke') - else - Notifys(src, Lang.Coke.nobagcoke, "error") - end - else - if not GetRecipe(src, 'cocaine', 'bagcoke', 'tier1') then return end - Log(GetName(source) .. ' Bagged Coke', 'coke') - end + local src = source + local Player = getPlayer(src) + local count = 0 + if Config.TierSystem then + local coke = getRep(src, 'coke') + local cokeTiers = { + {item = 'loosecoke', tier = 'tier1', log = ' Bagged Coke'}, + {item = 'loosecokestagetwo', tier = 'tier2', log = ' Bagged Coke tier 2'}, + {item = 'loosecokestagethree', tier = 'tier3', log = ' Bagged Coke tier 3'} + } + for _, v in ipairs(cokeTiers) do + if Player.Functions.GetItemByName(v.item) then + if count >= 1 then return end + if not GetRecipe(src, 'cocaine', 'bagcoke', v.tier) then return end + AddRep(src, 'coke') + Log(GetName(src) .. v.log .. ' and now has a rep of ' .. coke + 1, 'coke') + return + end + end + Notifys(src, Lang.Coke.nobagcoke, "error") + else + if not GetRecipe(src, 'cocaine', 'bagcoke', 'tier1') then return end + Log(GetName(src) .. ' Bagged Coke', 'coke') + end end) local cokecut = {loosecokestagetwo = 2, loosecokestagethree = 3} for k, v in pairs (cokecut) do QBCore.Functions.CreateUseableItem(k, function(source, item) local src = source - local Player = QBCore.Functions.GetPlayer(src) + local Player = getPlayer(src) if Player.Functions.GetItemByName(item.name) then if not Itemcheck(src, 'bakingsoda', 1) then return end TriggerClientEvent('md-drugs:client:minusTier', src, {type = 'coke', xt = 'bakingsoda', item = k, amount = v,recieve = 'loosecoke'}) diff --git a/server/consumables.lua b/server/consumables.lua index 23701ad..1236bdf 100644 --- a/server/consumables.lua +++ b/server/consumables.lua @@ -1,26 +1,24 @@ local QBCore = exports['qb-core']:GetCoreObject() -for k, v in pairs (Consumables.Items) do QBCore.Functions.CreateUseableItem(k, function(source, item) - local src = source - local Player = QBCore.Functions.GetPlayer(src) - if v.time == nil then v.time = Consumables.defaulttime end - if v.effect == nil then v.effect = 0 end - if v.anim == nil then v.anim = Consumables.defaultanim end - if v.progressbartext == nil then v.progressbartext = Consumables.defaultprogresstext end - if v.add == nil then v.add = 'none' end - TriggerClientEvent("md-drugs:client:consumedrugs", source, v.time, v.effect, v.anim, v.progressbartext, v.add, k) - end) +for k, v in pairs(Consumables.Items) do + QBCore.Functions.CreateUseableItem(k, function(source, item) + if not Itemcheck(source, k, 1) then return end + local time = v.time or Consumables.defaulttime + local effect = v.effect or 0 + local anim = v.anim or Consumables.defaultanim + local progressbartext = v.progressbartext or Consumables.defaultprogresstext + local add = v.add or {hunger = 0} + TriggerClientEvent("md-drugs:client:consumedrugs", source, time, effect, anim, progressbartext, add, k) + end) end RegisterNetEvent('md-drugs:server:removeconsum', function(item) - local src = source - RemoveItem(source,item, 1) - Log(GetName(source) .. ' Got High With ' .. item .. '!', 'consuming') -end) + RemoveItem(source,item, 1) + Log(GetName(source) .. ' Got High With ' .. item .. '!', 'consuming') +end) RegisterNetEvent('md-drugs:server:updatestatus', function(stat, statval) - - local Player = QBCore.Functions.GetPlayer(source) + local Player = getPlayer(source) if stat == "thirst" then local value = Player.PlayerData.metadata.thirst + statval Player.Functions.SetMetaData('hunger', value) diff --git a/server/cornerselling.lua b/server/cornerselling.lua index fbedc37..02ad356 100644 --- a/server/cornerselling.lua +++ b/server/cornerselling.lua @@ -1,7 +1,8 @@ local QBCore = exports['qb-core']:GetCoreObject() lib.callback.register('md-drugs:server:cornerselling:getAvailableDrugs', function(source, cb) - local Player = QBCore.Functions.GetPlayer(source) + local Player = getPlayer(source) + local rep = getRep(source, 'cornerselling') if not Player then return nil end local type = 0 for k, v in pairs(QBConfig.DrugsPrice) do @@ -12,7 +13,8 @@ lib.callback.register('md-drugs:server:cornerselling:getAvailableDrugs', functio local amount = math.random(1,item.amount) if amount >= 15 then amount = 15 end local price = math.random(QBConfig.DrugsPrice[k]['min'], QBConfig.DrugsPrice[k]['max']) * amount - return item.name, amount, price + local result = math.floor(price * rep.price) + return item.name, amount, result end end if type == 0 then @@ -23,8 +25,9 @@ end) RegisterNetEvent('md-drugs:server:sellCornerDrugs', function(item, amount, price) local src = source - local Player = QBCore.Functions.GetPlayer(src) + local Player = getPlayer(src) if RemoveItem(src, item, amount) then + AddRep(src, 'cornerselling', QBConfig.DrugsPrice[item].rep * amount) Log(GetName(src) .. ' Sold ' .. amount .. ' Of ' .. item .. ' For A Price Of ' .. price .. '!' , 'cornerselling') if QBConfig.MarkedBills then if price >= QBConfig.DrugsPrice[item]['min'] * amount and price <= QBConfig.DrugsPrice[item]['max'] * amount then @@ -44,11 +47,10 @@ end) lib.addCommand('cornersell', { help = 'Sell Things On The Corner', params = { - }, }, function(source, args, raw) local src = source - local Player = QBCore.Functions.GetPlayer(source) + local Player = getPlayer(src) Log(GetName(source) .. ' Used Command cornersell!' , 'cornerselling') TriggerClientEvent('md-drugs:client:cornerselling', src) end) diff --git a/server/crack.lua b/server/crack.lua index 6652f9c..24ae1a0 100644 --- a/server/crack.lua +++ b/server/crack.lua @@ -1,66 +1,61 @@ local QBCore = exports['qb-core']:GetCoreObject() - RegisterServerEvent('md-drugs:server:makecrackone', function(num) - local src = source - local Player = QBCore.Functions.GetPlayer(src) + local src = source + local Player = getPlayer(src) + local count,type, tier = 0, 'cookcrack', 'tier1' if CheckDist(src, Config.makecrack[num]['loc']) then return end - if Config.TierSystem then - local locoke = Player.Functions.GetItemByName('loosecoke') - local locoke2 = Player.Functions.GetItemByName('loosecokestagetwo') - local locoke3 = Player.Functions.GetItemByName('loosecokestagethree') - if locoke then - if not GetRecipe(src, 'crack', 'cookcrack', 'tier1') then return end - Log(GetName(src) .. ' Cut Crack', 'crack') - elseif locoke2 then - if not GetRecipe(src, 'crack', 'cookcrack', 'tier2') then return end - Log(GetName(src) .. ' Cut Crack', 'crack') - elseif locoke3 then - if not GetRecipe(src, 'crack', 'cookcrack', 'tier3') then return end - Log(GetName(src) .. ' Cut Crack', 'crack') - else - Notifys(src,Lang.Crack.nocoke, 'error') - end - else - if not GetRecipe(src, 'crack', 'cookcrack', 'tier1') then return end - Log(GetName(src) .. ' Cut Crack', 'crack') - end + if Config.TierSystem then + local crackTiers = { + {item = 'loosecoke', tier = 'tier1', log = ' Cut Crack'}, + {item = 'loosecokestagetwo', tier = 'tier2', log = ' Cut Crack tier 2'}, + {item = 'loosecokestagethree', tier = 'tier3', log = ' Cut Crack tier 3'} + } + for _, v in ipairs(crackTiers) do + if count >= 1 then break end + print(v.item) + if Player.Functions.GetItemByName(v.item) then + tier = v.tier + count = count + 1 + Log(GetName(src) .. v.log, 'crack') + end + end + end + print(tier) + if not GetRecipe(src, 'crack', type, tier) then return end end) + RegisterServerEvent('md-drugs:server:bagcrack', function(num) - local src = source - local Player = QBCore.Functions.GetPlayer(src) - if CheckDist(src, Config.bagcrack[num]['loc']) then return end - if Config.TierSystem then - local rock = Player.Functions.GetItemByName('crackrock') - local rock2 = Player.Functions.GetItemByName('crackrockstagetwo') - local rock3 = Player.Functions.GetItemByName('crackrockstagethree') - if rock then - if not GetRecipe(src, 'crack', 'bagcrack', 'tier1') then return end - Log(GetName(src) .. ' Bagged Crack', 'crack') - elseif rock2 then - if not GetRecipe(src, 'crack', 'bagcrack', 'tier2') then return end - Log(GetName(src) .. ' Bagged Crack', 'crack') - elseif rock3 then - if not GetRecipe(src, 'crack', 'bagcrack', 'tier3') then return end - Log(GetName(src) .. ' Bagged Crack', 'crack') - else - Notifys(src, Lang.Crack.nocoke, "error") - end - else - if not GetRecipe(src, 'crack', 'bagcrack', 'tier1') then return end - Log(GetName(src) .. ' Bagged Crack', 'crack') - end + local src = source + local Player = getPlayer(src) + local count,type, tier = 0, 'bagcrack', 'tier1' + if Config.TierSystem then + local crackTiers = { + {item = 'crackrock', tier = 'tier1', log = ' Bagged Crack'}, + {item = 'crackrockstagetwo', tier = 'tier2', log = ' Bagged Crack tier 2'}, + {item = 'crackrockstagethree', tier = 'tier3', log = ' Bagged Crack tier 3'} + } + for _, v in ipairs(crackTiers) do + if count >= 1 then break end + if Player.Functions.GetItemByName(v.item) then + tier = v.tier + count = count + 1 + Log(GetName(src) .. v.log, 'crack') + end + end + end + if not GetRecipe(src, 'crack', type, tier) then return end end) local cokecut = {crackrockstagetwo = 2, crackrockstagethree = 3} for k, v in pairs (cokecut) do QBCore.Functions.CreateUseableItem(k, function(source, item) local src = source - local Player = QBCore.Functions.GetPlayer(src) + local Player = getPlayer(src) if Player.Functions.GetItemByName(item.name) then if not Itemcheck(src, 'bakingsoda', 1) then return end TriggerClientEvent('md-drugs:client:minusTier', src, {type = 'crack', xt = 'bakingsoda', item = k, amount = v,recieve = 'crackrock'}) end end) -end \ No newline at end of file +end diff --git a/server/deliveries.lua b/server/deliveries.lua index 920bf3e..6f17ca4 100644 --- a/server/deliveries.lua +++ b/server/deliveries.lua @@ -18,7 +18,7 @@ end) lib.callback.register('md-drugs:server:GetDeliveryItem', function(data) local src = source - local Player = QBCore.Functions.GetPlayer(src) + local Player = getPlayer(src) local item = math.random(1, #QBConfig.DeliveryItems) local amount = math.random(1,4) local check = MySQL.query.await('SELECT * FROM deliveriesdealer WHERE cid = ?', {Player.PlayerData.citizenid}) @@ -44,7 +44,7 @@ end) RegisterNetEvent('md-drugs:server:giveDeliveryItems', function(item, amount) local src = source - local Player = QBCore.Functions.GetPlayer(src) + local Player = getPlayer(src) local check = MySQL.query.await('SELECT * FROM deliveriesdealer WHERE cid = ?', {Player.PlayerData.citizenid}) if not check[1] then return end local time = os.time() @@ -69,7 +69,7 @@ end) QBCore.Commands.Add("newdealer", "Place a dealer (Admin Only)", {{ name = "name", help = "Dealer name"}, { name = "min", help = "Minimum Time"}, {name = "max", help = "Maximum Time"}}, true, function(source, args) local ped = GetPlayerPed(source) local coords = GetEntityCoords(ped) - local Player = QBCore.Functions.GetPlayer(source) + local Player = getPlayer(source) if not Player then return end local dealerName = args[1] local minTime = tonumber(args[2]) @@ -113,7 +113,8 @@ QBCore.Commands.Add("deletedealer", "Delete a dealer (Admin Only)", {{ end, "admin") RegisterServerEvent("md-drugs:server:Dealershop", function(amount, value, item, info) - local src = source local Player = QBCore.Functions.GetPlayer(src) + local src = source + local Player = getPlayer(src) local balance = Player.Functions.GetMoney(tostring(value)) if Player.Functions.RemoveMoney(tostring(value), tonumber(info) * tonumber(amount)) then TriggerClientEvent('inventory:client:ItemBox', src, item.name, "add", amount) diff --git a/server/functions.lua b/server/functions.lua index a5924ba..0b0494e 100644 --- a/server/functions.lua +++ b/server/functions.lua @@ -66,50 +66,16 @@ else inventory = 'qb' end end) ------------------------------------- functions ---- ---- -function Notifys(source, text, type) +------------------------------------ Player Stuff functions +function getPlayer(source) local src = source - if notify == 'qb' then - TriggerClientEvent("QBCore:Notify", src, text, type) - elseif notify == 'ox' then - lib.notify(src, { title = text, type = type}) - elseif notify == 'okok' then - TriggerClientEvent('okokNotify:Alert', src, '', text, 4000, type, false) - else - print"^1 Look At The Config For Proper Alert Options" - end + local Player = QBCore.Functions.GetPlayer(src) + return Player end -function GetLabels(item) - if inventory == 'qb' then - return QBCore.Shared.Items[item].label - elseif inventory == 'ox' then - local items = exports.ox_inventory:Items() - return items[item].label - end -end - -function Itemcheck(source, item, amount) - if inventory == 'qb' then - local Player = QBCore.Functions.GetPlayer(source) - local itemchecks = Player.Functions.GetItemByName(item) - if itemchecks and itemchecks.amount >= amount then - return true - else - Notifys(source, 'You Need ' .. amount .. ' Of ' .. GetLabels(item) .. ' To Do this', 'error') - return false - end - elseif inventory == 'ox' then - local items = exports.ox_inventory:GetItem(source, item, nil, false) - if items.count >= amount then - return true - else - Notifys(source, 'You Need ' .. amount .. ' Of ' .. GetLabels(item) .. ' To Do This', 'error') - return false - end - end +function GetName(source) + local Player = getPlayer(source) + return Player.PlayerData.charinfo.firstname .. ' ' .. Player.PlayerData.charinfo.lastname end function GetCoords(source) @@ -137,22 +103,53 @@ function CheckDist(source, coords) end end -function checkTable(table) - local need = 0 - local have = 0 - for k, v in pairs (table) do - need = need + 1 - if Itemcheck(source, k, v) then have = have + 1 end - end - if need == have then - return true - else - end + +function Notifys(source, text, type) + local src = source + if notify == 'qb' then + TriggerClientEvent("QBCore:Notify", src, text, type) + elseif notify == 'ox' then + lib.notify(src, { title = text, type = type}) + elseif notify == 'okok' then + TriggerClientEvent('okokNotify:Alert', src, '', text, 4000, type, false) + else + print"^1 Look At The Config For Proper Alert Options" + end +end + +function GetLabels(item) + if inventory == 'qb' then + return QBCore.Shared.Items[item].label + elseif inventory == 'ox' then + local items = exports.ox_inventory:Items() + return items[item].label + end +end + +function Itemcheck(source, item, amount) + if inventory == 'qb' then + local Player = getPlayer(source) + local itemchecks = Player.Functions.GetItemByName(item) + if itemchecks and itemchecks.amount >= amount then + return true + else + Notifys(source, 'You Need ' .. amount .. ' Of ' .. GetLabels(item) .. ' To Do this', 'error') + return false + end + elseif inventory == 'ox' then + local items = exports.ox_inventory:GetItem(source, item, nil, false) + if items.count >= amount then + return true + else + Notifys(source, 'You Need ' .. amount .. ' Of ' .. GetLabels(item) .. ' To Do This', 'error') + return false + end + end end function RemoveItem(source, item, amount) if inventory == 'qb' then - local Player = QBCore.Functions.GetPlayer(source) + local Player = getPlayer(source) if Player.Functions.RemoveItem(item, amount) then TriggerClientEvent(invname ..":client:ItemBox", source, QBCore.Shared.Items[item], "remove", amount) return true @@ -170,7 +167,7 @@ end function AddItem(source, item, amount) if inventory == 'qb' then - local Player = QBCore.Functions.GetPlayer(source) + local Player = getPlayer(source) if Player.Functions.AddItem(item, amount) then TriggerClientEvent(invname ..":client:ItemBox", source, QBCore.Shared.Items[item], "add", amount) return true @@ -190,14 +187,9 @@ function AddItem(source, item, amount) end end -function GetName(source) - local Player = QBCore.Functions.GetPlayer(source) - return Player.PlayerData.charinfo.firstname .. ' ' .. Player.PlayerData.charinfo.lastname - -end function getRep(source, type) - local Player = QBCore.Functions.GetPlayer(source) + local Player = getPlayer(source) local sql = MySQL.query.await('SELECT * FROM drugrep WHERE cid = ?', {Player.PlayerData.citizenid}) if not sql[1] then local table = json.encode({ @@ -205,11 +197,20 @@ function getRep(source, type) lsd = Player.PlayerData.metadata.lsd or 0, heroin = Player.PlayerData.metadata.heroin or 0, dealerrep = Player.PlayerData.metadata.dealerrep or 0, + cornerselling = { + price = QBConfig.SellLevel[1].price, + rep = 0, + label = QBConfig.SellLevel[1].label, + level = 1 + } }) MySQL.insert('INSERT INTO drugrep SET cid = ?, drugrep = ?, name = ?', {Player.PlayerData.citizenid, table, GetName(source)}) - return 0 + Wait(1000) + return json.decode(table) else - local rep = json.decode(sql[1].drugrep) + local reps = json.decode(sql[1].drugrep) + local rep = '' + if reps.coke == nil then rep = reps[1] else rep = reps end if type == 'coke' then return rep.coke elseif type == 'heroin' then @@ -218,6 +219,8 @@ function getRep(source, type) return rep.lsd elseif type == 'dealerrep' then return rep.dealerrep + elseif type == 'cornerselling' then + return rep.cornerselling else print('^1 Error: No Valid Drug Rep Option Chosen') end @@ -226,7 +229,7 @@ function getRep(source, type) end function GetAllRep(source) - local Player = QBCore.Functions.GetPlayer(source) + local Player = getPlayer(source) local sql = MySQL.query.await('SELECT * FROM drugrep WHERE cid = ?', {Player.PlayerData.citizenid}) if not sql[1] then local table = json.encode({ @@ -234,38 +237,89 @@ function GetAllRep(source) lsd = Player.PlayerData.metadata.lsd or 0, heroin = Player.PlayerData.metadata.heroin or 0, dealerrep = Player.PlayerData.metadata.dealerrep or 0, + cornerselling = { + price = QBConfig.SellLevel[1].price, + rep = 0, + label = QBConfig.SellLevel[1].label, + level = 1 + } }) MySQL.insert('INSERT INTO drugrep SET cid = ?, drugrep = ?, name = ?', {Player.PlayerData.citizenid, table, GetName(source)}) Wait(1000) - return 0 + return json.decode(table) else - local rep = json.decode(sql[1].drugrep) + local rep = json.decode(sql[1].drugrep) + if rep.coke == nil then return rep[1] end return rep end end -function AddRep(source, type) - local Player = QBCore.Functions.GetPlayer(source) +function AddRep(source, type, amount) + if not amount then amount = 1 end + local Player = getPlayer(source) local sql = MySQL.query.await('SELECT * FROM drugrep WHERE cid = ?', {Player.PlayerData.citizenid}) - local rep = json.decode(sql[1].drugrep) - local update - if type == 'coke' then - update = json.encode({coke = rep.coke + 1, heroin = rep.heroin, lsd = rep.lsd, dealerrep = rep.dealerrep}) + local reps = json.decode(sql[1].drugrep) + local update + local rep = '' + if reps.coke == nil then rep = reps[1] else rep = reps end + if type == 'cornerselling' then + for k, v in pairs (QBConfig.SellLevel) do + if rep.cornerselling.level == k then + if rep.cornerselling.rep + amount >= v.maxrep then + update = json.encode({coke = rep.coke, heroin = rep.heroin, lsd = rep.lsd, dealerrep = rep.dealerrep, cornerselling = {label = v.label, price = v.price, rep = rep.cornerselling.rep + amount, level = k + 1}}) + else + update = json.encode({coke = rep.coke, heroin = rep.heroin, lsd = rep.lsd, dealerrep = rep.dealerrep, cornerselling = {label = v.label, price = v.price, rep = rep.cornerselling.rep + amount, level = k}}) + end + end + end + elseif type == 'coke' then + update = json.encode({coke = rep.coke + amount, heroin = rep.heroin, lsd = rep.lsd, dealerrep = rep.dealerrep, cornerselling = rep.cornerselling}) elseif type == 'heroin' then - update = json.encode({coke = rep.coke, heroin = rep.heroin + 1, lsd = rep.lsd, dealerrep = rep.dealerrep}) + update = json.encode({coke = rep.coke, heroin = rep.heroin + amount, lsd = rep.lsd, dealerrep = rep.dealerrep, cornerselling = rep.cornerselling}) elseif type == 'lsd' then - update = json.encode({coke = rep.coke, heroin = rep.heroin, lsd = rep.lsd +1 , dealerrep = rep.dealerrep}) + update = json.encode({coke = rep.coke, heroin = rep.heroin, lsd = rep.lsd +amount , dealerrep = rep.dealerrep, cornerselling = rep.cornerselling}) elseif type == 'dealerrep' then - update = json.encode({coke = rep.coke, heroin = rep.heroin, lsd = rep.lsd, dealerrep = rep.dealerrep + 1}) + update = json.encode({coke = rep.coke, heroin = rep.heroin, lsd = rep.lsd, dealerrep = rep.dealerrep + amount, cornerselling = rep.cornerselling}) end if update == '' then return false end MySQL.update('UPDATE drugrep SET drugrep = ? WHERE cid = ?', {update, Player.PlayerData.citizenid}) return true end - + +lib.addCommand('addCornerSellingTOREP', { + help = 'RUN THIS ONCE AND DELETE', + restricted = 'group.admin' +}, function(source, args, raw) + local sql = MySQL.query.await('SELECT * FROM drugrep', {}) + for k, v in pairs (sql) do + local new = {} + local old = json.decode(v.drugrep) + local get = old[1] or old + table.insert(new, { + coke = get.coke, + lsd = get.lsd, + heroin = get.heroin, + dealerrep = get.dealerrep, + cornerselling = { + price = QBConfig.SellLevel[1].price, + rep = 0, + label = QBConfig.SellLevel[1].label, + level = 1 + } + }) + local news = json.encode(new) + MySQL.query.await('UPDATE drugrep SET drugrep = ? WHERE cid = ?', {news, v.cid}) + end +end) + +function sortTab(tbl, type) + table.sort(tbl, function(a, b) + return a[type] < b[type] + end) +end function ChecknRemove(source, table) - local Player = QBCore.Functions.GetPlayer(source) + local Player = getPlayer(source) local hass = 0 local need = 0 for k, v in pairs (table) do @@ -282,7 +336,7 @@ function ChecknRemove(source, table) if items.count >= v then hass = hass + 1 else - Notifys(source, 'You Need ' .. amount .. ' Of ' .. GetLabels(item) .. ' To Do This', 'error') + Notifys(source, 'You Need ' .. v .. ' Of ' .. GetLabels(k) .. ' To Do This', 'error') end end end diff --git a/server/heroin.lua b/server/heroin.lua index c013391..fb9b258 100644 --- a/server/heroin.lua +++ b/server/heroin.lua @@ -68,7 +68,7 @@ end) RegisterServerEvent('md-drugs:server:cutheroin', function(num) local src = source - local Player = QBCore.Functions.GetPlayer(src) + local Player = getPlayer(src) if CheckDist(source, Config.cutheroinone[num]['loc']) then return end if not Itemcheck(src, 'bakingsoda', 1) then return end if Config.TierSystem then @@ -95,7 +95,7 @@ end) RegisterServerEvent('md-drugs:server:getheroinlabkit', function() local src = source - local Player = QBCore.Functions.GetPlayer(src) + local Player = getPlayer(src) if CheckDist(source, vector3(Config.buyheroinlabkit.x,Config.buyheroinlabkit.y,Config.buyheroinlabkit.z)) then return end if Player.Functions.RemoveMoney('cash', Config.heroinlabkitprice) then @@ -108,7 +108,7 @@ end) RegisterServerEvent('md-drugs:server:getheroinlabkitback', function() local src = source -local Player = QBCore.Functions.GetPlayer(src) +local Player = getPlayer(src) if AddItem(src, "heroinlabkit", 1) then Log(GetName(src) ..' Picked Up Their Heroin Lab Kit Back At ' .. GetCoords(src) .. '!', 'heroin') end @@ -116,7 +116,7 @@ end) QBCore.Functions.CreateUseableItem('heroinlabkit', function(source, item) local src = source -local Player = QBCore.Functions.GetPlayer(src) +local Player = getPlayer(src) if not Itemcheck(source, 'heroinlabkit', 1) then return end if TriggerClientEvent("md-drugs:client:setheroinlabkit", src) then RemoveItem(src, "heroinlabkit", 1) @@ -128,7 +128,7 @@ end) RegisterServerEvent('md-drugs:server:heatliquidheroin', function() local src = source -local Player = QBCore.Functions.GetPlayer(src) +local Player = getPlayer(src) if not Itemcheck(source, 'emptyvial', 1) then return end if Config.TierSystem then local cuth = Player.Functions.GetItemByName('heroincut') @@ -154,7 +154,7 @@ end) RegisterServerEvent('md-drugs:server:failheatingheroin', function() local src = source -local Player = QBCore.Functions.GetPlayer(src) +local Player = getPlayer(src) local cuth = Player.Functions.GetItemByName('heroincut') local cuth2 = Player.Functions.GetItemByName('heroincutstagetwo') local cuth3 = Player.Functions.GetItemByName('heroincutstagethree') @@ -174,7 +174,7 @@ end) RegisterServerEvent('md-drugs:server:fillneedle', function(num) local src = source - local Player = QBCore.Functions.GetPlayer(src) + local Player = getPlayer(src) if CheckDist(source, Config.fillneedle[num]['loc']) then return end if not Itemcheck(src, 'needle', 1) then return end if Config.TierSystem then @@ -207,7 +207,7 @@ end) RegisterServerEvent('md-drugs:server:failheroin', function() local src = source - local Player = QBCore.Functions.GetPlayer(src) + local Player = getPlayer(src) Log(GetName(src) ..' Sucks And Burned Their Heroin', 'heroin') if Config.TierSystem then local vh = Player.Functions.GetItemByName('heroinvial') diff --git a/server/lean.lua b/server/lean.lua index 81b22d6..ff05933 100644 --- a/server/lean.lua +++ b/server/lean.lua @@ -1,31 +1,27 @@ local QBCore = exports['qb-core']:GetCoreObject() RegisterServerEvent('md-drugs:server:givelean', function() - local src = source local chance = math.random(1,100) local amount = math.random(1,5) if chance <= 50 then - if AddItem(src, 'mdlean', amount) then + if AddItem(source, 'mdlean', amount) then Notifys(Lang.Lean.lean, "success") - Log(GetName(src) .. ' Got ' .. amount .. ' Of Lean' , 'lean') + Log(GetName(source) .. ' Got ' .. amount .. ' Of Lean' , 'lean') end else - if AddItem(src, 'mdreddextro', amount) then + if AddItem(source, 'mdreddextro', amount) then Notifys(Lang.Lean.dextro, "success") - Log(GetName(src) .. ' Got ' .. amount .. ' Of Red Dextro' , 'lean') + Log(GetName(source) .. ' Got ' .. amount .. ' Of Red Dextro' , 'lean') end end end) QBCore.Functions.CreateUseableItem('leancup', function(source, item) - local src = source - local Player = QBCore.Functions.GetPlayer(src) - if Itemcheck(src, 'leancup', 1) then - TriggerClientEvent('md-drugs:client:leancraft', src) + if Itemcheck(source, 'leancup', 1) then + TriggerClientEvent('md-drugs:client:leancraft', source) end end) RegisterServerEvent('md-drugs:server:finishcup', function(data) - local src = source if not GetRecipe(source, 'lean','cups', data.item) then return end end) \ No newline at end of file diff --git a/server/lsd.lua b/server/lsd.lua index 477c928..3691c40 100644 --- a/server/lsd.lua +++ b/server/lsd.lua @@ -9,8 +9,7 @@ RegisterServerEvent('md-drugs:server:getlysergic', function(num) end) RegisterServerEvent('md-drugs:server:getdiethylamide', function(num) -local src = source -local Player = QBCore.Functions.GetPlayer(src) + local src = source if CheckDist(src, Config.diethylamide[num]['loc']) then return end if AddItem(src,'diethylamide', 2) then Log(GetName(src) ..' Got Diethylamide with a distance of ' .. dist(source, Config.diethylamide[num]['loc']) .. '!', 'lsd') @@ -28,7 +27,7 @@ end) lib.callback.register('md-drugs:server:removecleaningkit', function(source) -local src = source + local src = source if not Itemcheck(src, 'cleaningkit', 1) then return end if RemoveItem(src,"cleaningkit", 1) then Log(GetName(src) ..' Wiped Down Their LSD Lab Kit!' , 'lsd') @@ -37,21 +36,21 @@ local src = source end) RegisterServerEvent('md-drugs:server:getlabkitback', function() -local src = source + local src = source if AddItem(src,"lsdlabkit", 1) then Log(GetName(src) ..' Picked Up Their LSD Lab Kit Back At ' .. GetCoords(src) .. '!', 'lsd') end end) RegisterServerEvent('md-drugs:server:heatliquid', function() -local src = source + local src = source if not GetRecipe(src, 'lsd', 'vial', 'heat') then return end Log(GetName(src) ..' Heated Basic LSD!', 'lsd') end) RegisterServerEvent('md-drugs:server:failheating', function() -local src = source -if not ChecknRemove(source, {lysergic_acid = 1, diethylamide = 1}) then return end + local src = source + if not ChecknRemove(source, {lysergic_acid = 1, diethylamide = 1}) then return end Notifys(src,Lang.lsd.failed, "error") Log(GetName(src) ..' Failed Basic LSD Like An Idiot!', 'lsd') end) @@ -59,7 +58,6 @@ end) RegisterServerEvent('md-drugs:server:refinequalityacid', function() local src = source -local randomchance = math.random(1,100) if not Itemcheck(src, 'lsd_one_vial', 1) then return end if Config.TierSystem then local lsd = getRep(src, 'lsd') @@ -79,6 +77,7 @@ if not Itemcheck(src, 'lsd_one_vial', 1) then return end Log(GetName(src) ..' Refined Acid and Now Has A Rep Of ' .. lsd + 1 .. '!', 'lsd') end else + local randomchance = math.random(1,100) if RemoveItem(src,'lsd_one_vial', 1) then if randomchance <= 60 then AddItem(src,'lsd_vial_two', 1) @@ -105,7 +104,7 @@ end) RegisterServerEvent('md-drugs:server:gettabpaper', function(num) local src = source - local Player = QBCore.Functions.GetPlayer(src) + local Player = getPlayer(src) if CheckDist(source, Config.gettabs[num]['loc']) then return end if Player.Functions.RemoveMoney('cash', Config.tabcost * 10) then AddItem(src,'tab_paper', 10) @@ -117,7 +116,7 @@ end) RegisterServerEvent('md-drugs:server:getlabkit', function() local src = source - local Player = QBCore.Functions.GetPlayer(src) + local Player = getPlayer(src) if CheckDist(source, vector3(Config.buylsdlabkit.x, Config.buylsdlabkit.y, Config.buylsdlabkit.z)) then return end if Player.Functions.RemoveMoney('cash', Config.lsdlabkitcost) then AddItem(src,'lsdlabkit', 1) @@ -127,39 +126,36 @@ RegisterServerEvent('md-drugs:server:getlabkit', function() end end) - - - RegisterServerEvent('md-drugs:server:maketabpaper', function() -local src = source -local Player = QBCore.Functions.GetPlayer(src) -if not Itemcheck(src,'tab_paper', 1) then return end - if RemoveItem(src,'lsd_one_vial', 1) then - RemoveItem(src,'tab_paper', 1) - AddItem(src,'smileyfacesheet', 1) - Log(GetName(src) ..' Made A Smiley Face Sheet', 'lsd') - elseif Player.Functions.RemoveItem('lsd_vial_two', 1) then - RemoveItem(src,'tab_paper', 1) - AddItem(src,'wildcherrysheet', 1) - Log(GetName(src) ..' Made A Wild Cherry Sheet', 'lsd') - elseif Player.Functions.RemoveItem('lsd_vial_three', 1) then - RemoveItem(src,'tab_paper', 1) - AddItem(src,'yinyangsheet', 1) - Log(GetName(src) ..' Made A Yin Yang Sheet', 'lsd') - elseif Player.Functions.RemoveItem('lsd_vial_four', 1) then - RemoveItem(src,'tab_paper', 1) - AddItem(src,'pineapplesheet', 1) - Log(GetName(src) ..' Made A Pine Apple Sheet', 'lsd') - elseif Player.Functions.RemoveItem('lsd_vial_five', 1) then - RemoveItem(src,'tab_paper', 1) - AddItem(src,'bartsheet', 1) - Log(GetName(src) ..' Made A Cluckin Bell Sheet', 'lsd') - elseif Player.Functions.RemoveItem('lsd_vial_six', 1) then - RemoveItem(src,'tab_paper', 1) - AddItem(src,'gratefuldeadsheet', 1) - Log(GetName(src) ..' Made A Maze Sheet', 'lsd') - else - Notifys(Lang.lsd.novial, "error") + local src = source + local Player = getPlayer(src) + if not Itemcheck(src,'tab_paper', 1) then return end + local count = 0 + local items, recieve = nil, nil + local vialdata = { + {vial = 'lsd_one_vial', sheet = 'smileyfacesheet', log = 'Made A Smiley Face Sheet'}, + {vial = 'lsd_vial_two', sheet = 'wildcherrysheet', log = 'Made A Wild Cherry Sheet'}, + {vial = 'lsd_vial_three', sheet = 'yinyangsheet', log = 'Made A Yin Yang Sheet'}, + {vial = 'lsd_vial_four', sheet = 'pineapplesheet', log = 'Made A Pine Apple Sheet'}, + {vial = 'lsd_vial_five', sheet = 'bartsheet', log = 'Made A Cluckin Bell Sheet'}, + {vial = 'lsd_vial_six', sheet = 'gratefuldeadsheet', log = 'Made A Maze Sheet'} + } + sortTab(vialdata, 'vial') + for k, v in pairs (vialdata) do + if count >= 1 then break end + local check = Player.Functions.GetItemByName(v.vial) + + if check and check.amount >= 1 then + items = v.vial + recieve = v.sheet + Log(GetName(src) ..' ' .. v.log, 'lsd') + count = count + 1 + end + end + if count >= 1 then + if RemoveItem(src, items, 1) and RemoveItem(src, 'tab_paper', 1) then + AddItem(src, recieve, 1) + end end end) @@ -175,7 +171,7 @@ local sheets = { for k, v in pairs (sheets) do QBCore.Functions.CreateUseableItem(v.item, function(source) local src = source - local Player = QBCore.Functions.GetPlayer(src) + local Player = getPlayer(src) local math = math.random(1,10) if RemoveItem(src, v.item, 1) then AddItem(src, v.recieve, math) diff --git a/server/mescaline.lua b/server/mescaline.lua index 2ecbe49..63a361f 100644 --- a/server/mescaline.lua +++ b/server/mescaline.lua @@ -1,14 +1,12 @@ local QBCore = exports['qb-core']:GetCoreObject() GlobalState.Mescaline = Config.Mescaline - Citizen.CreateThread(function() for _, v in pairs(Config.Mescaline) do v.taken = false end end) - function MescalineCooldown(loc) CreateThread(function() Wait(Config.respawnTime * 1000) @@ -22,7 +20,7 @@ end RegisterNetEvent("Mescaline:pickupCane", function(loc) - if CheckDist(source, Config.Mescaline[loc].location) then return end + if CheckDist(source, Config.Mescaline[loc].location) then return end if not Config.Mescaline[loc].taken then Config.Mescaline[loc].taken = true GlobalState.Mescaline = Config.Mescaline diff --git a/server/meth.lua b/server/meth.lua index d539aef..d510837 100644 --- a/server/meth.lua +++ b/server/meth.lua @@ -1,14 +1,14 @@ local QBCore = exports['qb-core']:GetCoreObject() RegisterServerEvent('md-drugs:server:startcook', function() - local src = source + local src = source if not GetRecipe(source, 'meth', 'cook', 'heat') then return end Notifys(src, "Adding Things To The Mix", "success") Log(GetName(source) .. ' Started A Meth Batch', 'Meth') end) RegisterServerEvent('md-drugs:server:givemethingridients', function() - local src = source + local src = source local chance = math.random(1,100) local amount = math.random(1,5) if chance <= 50 then @@ -30,18 +30,18 @@ end) RegisterServerEvent('md-drugs:server:geteph', function(num) local src = source - if CheckDist(src, Config.MethEph[num]['loc']) then return end - if AddItem(src, 'ephedrine', 1) then - Notifys(src, 'Got Ephedrine!', "success") - Log(GetName(src) .. ' Got ' .. 1 .. 'Of Ephedrine', 'Meth') - end + if CheckDist(src, Config.MethEph[num]['loc']) then return end + if AddItem(src, 'ephedrine', 1) then + Notifys(src, 'Got Ephedrine!', "success") + Log(GetName(src) .. ' Got ' .. 1 .. 'Of Ephedrine', 'Meth') + end end) RegisterServerEvent('md-drugs:server:getace', function(num) local src = source - if CheckDist(src, Config.Methace[num]['loc']) then return end - if AddItem(src, 'acetone', 1) then - Log(GetName(src) .. ' Got ' .. 1 .. 'Of Acetone', 'Meth') - Notifys(src, 'Got Acetone!', "success") - end + if CheckDist(src, Config.Methace[num]['loc']) then return end + if AddItem(src, 'acetone', 1) then + Log(GetName(src) .. ' Got ' .. 1 .. 'Of Acetone', 'Meth') + Notifys(src, 'Got Acetone!', "success") + end end) \ No newline at end of file diff --git a/server/oxyruns.lua b/server/oxyruns.lua index 610067f..283c520 100644 --- a/server/oxyruns.lua +++ b/server/oxyruns.lua @@ -2,7 +2,7 @@ QBCore = exports['qb-core']:GetCoreObject() lib.callback.register('md-drugs:server:payfortruck', function() local src = source - local Player = QBCore.Functions.GetPlayer(src) + local Player = getPlayer(src) if Player.Functions.RemoveMoney('cash', Config.TruckPrice ) or Player.Functions.RemoveMoney('bank', Config.TruckPrice ) then Log(GetName(src) .. ' Rented A Van For OxyRuns', 'oxy') return true @@ -15,7 +15,7 @@ end) RegisterServerEvent('md-drugs:server:giveoxybox', function() local src = source - local Player = QBCore.Functions.GetPlayer(src) + local Player = getPlayer(src) local chance = math.random(1,100) local cash = Config.OxyRunCompleteCash local itemchance = math.random(1,100) diff --git a/server/pharma.lua b/server/pharma.lua index 7b00214..0c80fc9 100644 --- a/server/pharma.lua +++ b/server/pharma.lua @@ -2,7 +2,7 @@ local QBCore = exports['qb-core']:GetCoreObject() local function GetJob(source) local src = source - local Player = QBCore.Functions.GetPlayer(src) + local Player = getPlayer(src) if Player.PlayerData.job.type == 'ems' then return true else @@ -42,19 +42,10 @@ QBCore.Functions.CreateUseableItem(d, function(source, item) end) end -local pharmadrugs = { "adderal", "vicodin", "xanax", "morphine"} -for k, v in pairs (pharmadrugs) do QBCore.Functions.CreateUseableItem(v, function(source, item) -local src = source - if TriggerClientEvent('md-drugs:client:takepharma', src, item.name) then - RemoveItem(src, item.name, 1) - Log(GetName(source) .. ' Took ' .. item.name .. '!', 'pharma') - end -end) -end RegisterServerEvent('md-drugs:server:fillprescription', function() local src = source - local Player = QBCore.Functions.GetPlayer(src) + local Player = getPlayer(src) local vic = Player.Functions.GetItemByName('vicodin_prescription') local add = Player.Functions.GetItemByName('adderal_prescription') local mor = Player.Functions.GetItemByName('morphine_prescription') @@ -70,13 +61,11 @@ RegisterServerEvent('md-drugs:server:fillprescription', function() elseif mor then RemoveItem(src,'morphine_prescription', 1 ) AddItem(src,'morphinebottle', 1) - Notifys(src,Lang.Pharma.pills, "success") - + Notifys(src,Lang.Pharma.pills, "success") elseif xan then RemoveItem(src,'xanax_prescription', 1 ) AddItem(src,'xanaxbottle', 1) - Notifys(src,Lang.Pharma.pills, "success") - + Notifys(src,Lang.Pharma.pills, "success") else Notifys(src,Lang.Pharma.no, "error") end diff --git a/server/recipes.lua b/server/recipes.lua index 66f0ff0..361ba0b 100644 --- a/server/recipes.lua +++ b/server/recipes.lua @@ -137,7 +137,7 @@ local recipe = { function GetRecipe(source, type, method, tier) local src = source - local Player = QBCore.Functions.GetPlayer(source) + local Player = getPlayer(source) local has = 0 local need = 0 for k, v in pairs (recipe[type][method][tier].take) do diff --git a/server/shrooms.lua b/server/shrooms.lua index 5e4f718..fcb2c59 100644 --- a/server/shrooms.lua +++ b/server/shrooms.lua @@ -20,10 +20,7 @@ function shroomsCooldown(loc) end) end - -RegisterNetEvent("shrooms:pickupCane") -AddEventHandler("shrooms:pickupCane", function(loc) - local chance = math.random(1,10) +RegisterNetEvent("shrooms:pickupCane", function(loc) if CheckDist(source, Config.shrooms[loc].location) then return end if not Config.shrooms[loc].taken then Config.shrooms[loc].taken = true diff --git a/server/travellingmerchant.lua b/server/travellingmerchant.lua index 0867d9f..427d561 100644 --- a/server/travellingmerchant.lua +++ b/server/travellingmerchant.lua @@ -1,15 +1,84 @@ local QBCore = exports['qb-core']:GetCoreObject() local loc = math.random(1, #Config.Travellingmerchant) -RegisterServerEvent("md-drugs:server:travellingmerchantox", function(amount, money, item, price,table,num) - local src = source local Player = QBCore.Functions.GetPlayer(src) - if not table[num]['name'] == item then return end - if Player.Functions.RemoveMoney(tostring(money), tonumber(price) * tonumber(amount)) then - AddItem(source, item, amount) - Log(GetName(source) .. ' Bought ' .. amount .. ' Of ' .. item .. ' For ' .. tonumber(price) * tonumber(amount) .. '!', 'merchant') - end +local stores = { + travel = { + {name = "tab_paper", price = 50, amount = 50, }, + {name = "bakingsoda", price = 25, amount = 50, }, + {name = "isosafrole", price = 25, amount = 50, }, + {name = "mdp2p", price = 25, amount = 50, }, + {name = "lysergic_acid", price = 25, amount = 50, }, + {name = "diethylamide", price = 25, amount = 50, }, + {name = "lockpick", price = 2, amount = 1000, }, + {name = "emptyvial", price = 2, amount = 1000, }, + {name = "needle", price = 2, amount = 1000, }, + {name = "cokeburner", price = 25, amount = 50, }, + {name = "crackburner", price = 2, amount = 50, }, + {name = "lsdburner", price = 2, amount = 50, }, + {name = "heroinburner", price = 2, amount = 50, }, + {name = "mdlean", price = 50, amount = 50, }, + {name = "weedgrinder", price = 25, amount = 50, }, + {name = "mdbutter", price = 25, amount = 50, }, + {name = "flour", price = 25, amount = 50, }, + {name = "chocolate", price = 25, amount = 50, }, + {name = "butane", price = 25, amount = 50, }, + {name = "butanetorch", price = 2, amount = 1000, }, + {name = "dabrig", price = 2, amount = 1000, }, + {name = "mdwoods", price = 2, amount = 1000, }, + {name = "leancup", price = 25, amount = 50, }, + {name = "xtcburner", price = 25, amount = 50, }, + }, + Weed = { + {name = "weedgrinder", price = 25, amount = 50, }, + {name = "mdbutter", price = 25, amount = 50, }, + {name = "flour", price = 25, amount = 50, }, + {name = "chocolate", price = 25, amount = 50, }, + {name = "butane", price = 25, amount = 50, }, + {name = "butanetorch", price = 2, amount = 1000,}, + {name = "dabrig", price = 2, amount = 1000,}, + {name = "mdwoods", price = 2, amount = 1000}, + }, + Products = { + {name = "weed_white-widow_seed", price = 15, amount = 150, minrep = 0}, + {name = "weed_skunk_seed", price = 15, amount = 150, minrep = 0}, + {name = "weed_purple-haze_seed", price = 15, amount = 150, minrep = 0}, + {name = "weed_og-kush_seed", price = 15, amount = 150, minrep = 0}, + {name = "weed_amnesia_seed", price = 15, amount = 150, minrep = 0}, + }, + ProductsStupidNameRewrite = { + {name = "weed_whitewidow_seed", price = 15, amount = 150, minrep = 0}, + {name = "weed_skunk_seed", price = 15, amount = 150, minrep = 0}, + {name = "weed_purplehaze_seed", price = 15, amount = 150, minrep = 0}, + {name = "weed_ogkush_seed", price = 15, amount = 150, minrep = 0}, + {name = "weed_amnesia_seed", price = 15, amount = 150, minrep = 0}, + } +} +lib.callback.register('md-drugs:server:menu', function(source, data) + local src = source + if data == 'travellingMerchant' then + return {table = stores.travel, des = '$', id = 'travellingMerchant', title = 'travelling Merchant'} + elseif data == 'dealermenu' then + local table + if Config.StupidassNewQbItemName then table = stores.ProductsStupidNameRewrite else table = stores.Products end + return {table = table, id = 'dealermenu', title = "Dealer Menu"} + elseif data == 'WeedShop' then + return {table = stores.Weed, id = 'WeedShop', title = "Weed Shop"} + end +end) + +RegisterServerEvent("md-drugs:server:purchaseGoods", function(amount, money, item, price,table,num) + local src = source local Player = getPlayer(src) + for i = 1, #table do + if table[i].name == item then + if not table[i].price == price then return end + if Player.Functions.RemoveMoney(tostring(money), tonumber(table[i].price) * tonumber(amount)) then + AddItem(src, item, amount) + Log(GetName(src) .. ' Bought ' .. amount .. ' Of ' .. item .. ' For ' .. tonumber(price) * tonumber(amount) .. '!', 'merchant') + end + end + end end) lib.callback.register('md-drugs:server:GetMerchant', function(source) -return loc + return loc end) \ No newline at end of file diff --git a/server/weed.lua b/server/weed.lua index e4acd3c..7bd8cf2 100644 --- a/server/weed.lua +++ b/server/weed.lua @@ -20,8 +20,7 @@ function WeedCooldown(loc) end) end -RegisterNetEvent("weed:pickupCane") -AddEventHandler("weed:pickupCane", function(loc) +RegisterNetEvent("weed:pickupCane", function(loc) local src = source if not Config.WeedPlant[loc].taken then Config.WeedPlant[loc].taken = true @@ -30,14 +29,13 @@ AddEventHandler("weed:pickupCane", function(loc) WeedCooldown(loc) AddItem(src, 'wetcannabis', 1) Log(GetName(source) .. ' Picked Weed With a distance of ' .. dist(source, Config.WeedPlant[loc].location) .. ' vectors', 'weed') - end end) --------------- events RegisterServerEvent('md-drugs:server:dryoutweed', function() local src = source - local Player = QBCore.Functions.GetPlayer(src) + local Player = getPlayer(src) if RemoveItem(src,"wetcannabis", 1) then AddItem(src,"drycannabis", 1) Log(GetName(source) .. ' Dried Weed', 'weed') @@ -66,21 +64,21 @@ end RegisterServerEvent('md-drugs:server:MakeWeedItems', function(data) local src = source - local Player = QBCore.Functions.GetPlayer(src) + local Player = getPlayer(src) if not Player then return end if not GetRecipe(src, data.recipe, data.table, data.item) then return end -end) - -RegisterServerEvent('md-drugs:server:makeoil', function(data) - local src = source - local Player = QBCore.Functions.GetPlayer(src) - if not Player then return end - if not GetRecipe(src, 'weed', 'oil', 'shatter') then return end +end) + +RegisterServerEvent('md-drugs:server:makeoil', function(data) + local src = source + local Player = getPlayer(src) + if not Player then return end + if not GetRecipe(src, 'weed', 'oil', 'shatter') then return end end) QBCore.Functions.CreateUseableItem("dabrig", function(source, item) local src = source -local Player = QBCore.Functions.GetPlayer(src) +local Player = getPlayer(src) if Player.Functions.GetItemByName("butanetorch") then if RemoveItem(src, "shatter", 1) then @@ -91,24 +89,24 @@ end end) QBCore.Functions.CreateUseableItem("weedgrinder", function(source, item) -local src = source -if RemoveItem(src, "drycannabis",1 ) then - AddItem(src, "grindedweed", 1) - TriggerClientEvent("md-drugs:client:grind", src) -else - Notifys(src,'You Need Dried Weed', 'error') -end + local src = source + if RemoveItem(src, "drycannabis",1 ) then + AddItem(src, "grindedweed", 1) + TriggerClientEvent("md-drugs:client:grind", src) + else + Notifys(src,'You Need Dried Weed', 'error') + end end) QBCore.Functions.CreateUseableItem("mdwoods", function(source, item) -local src = source -local Player = QBCore.Functions.GetPlayer(src) -TriggerClientEvent("md-drugs:client:rollanim", src) -Wait(4000) -if RemoveItem(src, "mdwoods",1 ) then - AddItem(src, "bluntwrap", 5) - AddItem(src, "tobacco", 5) -end + local src = source + local Player = getPlayer(src) + TriggerClientEvent("md-drugs:client:rollanim", src) + Wait(4000) + if RemoveItem(src, "mdwoods",1 ) then + AddItem(src, "bluntwrap", 5) + AddItem(src, "tobacco", 5) + end end) diff --git a/server/wholesale.lua b/server/wholesale.lua index ba64a0e..21961f3 100644 --- a/server/wholesale.lua +++ b/server/wholesale.lua @@ -7,15 +7,14 @@ local xtc = {"white_playboys", "white_playboys2", "white_playboys3", "white_p QBCore.Functions.CreateUseableItem("cokeburner", function(source, item) local src = source - local Player = QBCore.Functions.GetPlayer(source) + local Player = getPlayer(source) TriggerClientEvent("md-drugs:client:GetLocation", src, 'coke', "Bring Me All The Coke You Have") end) - + RegisterServerEvent('md-drugs:server:wholesalecoke', function() local src = source - local Player = QBCore.Functions.GetPlayer(src) + local Player = getPlayer(src) local price = math.random(Config.Wcoke.min, Config.Wcoke.max) - for k, v in pairs(coke) do local item = Player.Functions.GetItemByName(v) @@ -28,19 +27,16 @@ RegisterServerEvent('md-drugs:server:wholesalecoke', function() end end) - QBCore.Functions.CreateUseableItem("crackburner", function(source, item) local src = source - local Player = QBCore.Functions.GetPlayer(source) - + local Player = getPlayer(source) TriggerClientEvent("md-drugs:client:GetLocation", src, 'crack', "Bring Me All The Crack You Have") end) RegisterServerEvent('md-drugs:server:wholesalecrack', function() local src = source - local Player = QBCore.Functions.GetPlayer(src) + local Player = getPlayer(src) local price = math.random(Config.Wcrack.min, Config.Wcrack.max) - for k, v in pairs(crack) do local item = Player.Functions.GetItemByName(v) if item and item.amount > 0 then @@ -55,15 +51,13 @@ end) QBCore.Functions.CreateUseableItem("lsdburner", function(source, item) local src = source - local Player = QBCore.Functions.GetPlayer(source) - + local Player = getPlayer(source) TriggerClientEvent("md-drugs:client:GetLocation", src, 'lsd', "Bring Me All The lsd You Have") - end) RegisterServerEvent('md-drugs:server:wholesalelsd', function() local src = source - local Player = QBCore.Functions.GetPlayer(src) + local Player = getPlayer(src) local price = math.random(Config.Wlsd.min, Config.Wlsd.max) for k, v in pairs(lsd) do @@ -81,16 +75,14 @@ end) QBCore.Functions.CreateUseableItem("heroinburner", function(source, item) local src = source - local Player = QBCore.Functions.GetPlayer(source) - + local Player = getPlayer(source) TriggerClientEvent("md-drugs:client:GetLocation", src, 'heroin', "Bring Me All The Heroin You Have") end) RegisterServerEvent('md-drugs:server:wholesaleheroin', function() local src = source - local Player = QBCore.Functions.GetPlayer(src) + local Player = getPlayer(src) local price = math.random(Config.WHeroin.min, Config.WHeroin.max) - for k, v in pairs(heroin) do local item = Player.Functions.GetItemByName(v) @@ -105,16 +97,14 @@ end) ---- xtc QBCore.Functions.CreateUseableItem("xtcburner", function(source, item) local src = source - local Player = QBCore.Functions.GetPlayer(source) - + local Player = getPlayer(source) TriggerClientEvent("md-drugs:client:GetLocation", src, 'xtc', "Bring Me All The xtc You Have") end) RegisterServerEvent('md-drugs:server:wholesalextc', function() local src = source - local Player = QBCore.Functions.GetPlayer(src) + local Player = getPlayer(src) local price = math.random(Config.WXTC.min, Config.WXTC.max) - for k, v in pairs(xtc) do local item = Player.Functions.GetItemByName(v) @@ -130,34 +120,34 @@ end) RegisterServerEvent('md-drugs:server:RemoveBurner', function(item) local src = source - local Player = QBCore.Functions.GetPlayer(src) + local Player = getPlayer(src) if item == 'coke' then if Player.Functions.RemoveItem('cokeburner', 1) then else DropPlayer(src, 'How Did You Trigger The Event Without The Item?') - end + end elseif item == 'crack' then if Player.Functions.RemoveItem('crackburner', 1) then else DropPlayer(src, 'How Did You Trigger The Event Without The Item?') - end + end elseif item == 'heroin' then if Player.Functions.RemoveItem('heroinburner', 1) then else DropPlayer(src, 'How Did You Trigger The Event Without The Item?') - end + end elseif item == 'lsd' then if Player.Functions.RemoveItem('lsdburner', 1) then else DropPlayer(src, 'How Did You Trigger The Event Without The Item?') - end + end elseif item == 'xtc' then if Player.Functions.RemoveItem('xtcburner', 1) then else DropPlayer(src, 'How Did You Trigger The Event Without The Item?') - end - end + end + end end) diff --git a/server/xtc.lua b/server/xtc.lua index 52431d1..31a0e70 100644 --- a/server/xtc.lua +++ b/server/xtc.lua @@ -2,7 +2,7 @@ local QBCore = exports['qb-core']:GetCoreObject() -------------------- stealing ingridients RegisterServerEvent('md-drugs:server:stealisosafrole', function(num) local src = source - local Player = QBCore.Functions.GetPlayer(src) + local Player = getPlayer(src) if CheckDist(source, Config.isosafrole[num]['loc']) then return end if AddItem(src, "isosafrole", 1) then Log(GetName(source) .. ' Stole isosafrole with a distance of ' .. dist(source, Config.isosafrole[num]['loc']) .. ' vectors!', 'xtc') @@ -11,7 +11,7 @@ end) RegisterServerEvent('md-drugs:server:stealmdp2p', function(num) local src = source - local Player = QBCore.Functions.GetPlayer(src) + local Player = getPlayer(src) if CheckDist(source, Config.mdp2p[num]['loc']) then return end if AddItem(src,"mdp2p", 1) then Log(GetName(source) .. ' Stole MDP2P with a distance of ' .. dist(source, Config.mdp2p[num]['loc']) .. ' vectors!', 'xtc') @@ -27,7 +27,7 @@ local presses = { for k, v in pairs (presses) do QBCore.Functions.CreateUseableItem(v.item, function(source, item) local src = source -local Player = QBCore.Functions.GetPlayer(src) +local Player = getPlayer(src) if TriggerClientEvent("md-drugs:client:setpress", src, v.data) then RemoveItem(src, v.item, 1) Log(GetName(source) .. ' Placed A ' .. v.item .. ' At ' .. GetCoords(source) .. '!', 'xtc') @@ -37,7 +37,7 @@ end RegisterServerEvent('md-drugs:server:getpressback', function(type) local src = source -local Player = QBCore.Functions.GetPlayer(src) +local Player = getPlayer(src) if type == 'single' then if Player.Functions.GetItemByName('singlepress') then Notifys(src, 'You Already Have A Kit') return end AddItem(src, 'singlepress', 1) @@ -60,7 +60,7 @@ end) RegisterServerEvent('md-drugs:server:makextc', function(data) local src = source - local Player = QBCore.Functions.GetPlayer(src) + local Player = getPlayer(src) if not Itemcheck(src, 'raw_xtc', 1) then return end if data.data == 'single' then if data.color == 'white' then @@ -123,7 +123,7 @@ end) RegisterServerEvent('md-drugs:server:buypress', function() local src = source - local Player = QBCore.Functions.GetPlayer(src) + local Player = getPlayer(src) if Player.Functions.RemoveMoney("cash", 20000) then AddItem(src, "singlepress", 1) @@ -154,7 +154,7 @@ end) ------------- making powder RegisterServerEvent('md-drugs:server:makingrawxtc', function(num) local src = source - local Player = QBCore.Functions.GetPlayer(src) + local Player = getPlayer(src) if CheckDist(source, Config.rawxtcloc[num]['loc']) then return end if not GetRecipe(src, 'xtc', 'raw', 'raw_xtc') then return end Log(GetName(source) .. ' Made Raw XTC With A Distance Of ' .. dist(source, Config.rawxtcloc[num]['loc']) .. '!', 'xtc') @@ -162,7 +162,7 @@ end) RegisterServerEvent('md-drugs:server:stampwhite', function(num) local src = source - local Player = QBCore.Functions.GetPlayer(src) + local Player = getPlayer(src) local one = {'white_playboys', 'white_aliens', 'white_pl', 'white_trolls', 'white_cats'} local chance = math.random(#one) local two = {'white_playboys2', 'white_aliens2', 'white_pl2', 'white_trolls2', 'white_cats2'} @@ -192,7 +192,7 @@ end) RegisterServerEvent('md-drugs:server:stampred', function(num) local src = source - local Player = QBCore.Functions.GetPlayer(src) + local Player = getPlayer(src) local one = {'red_playboys', 'red_aliens', 'red_pl', 'red_trolls', 'red_cats'} local chance = math.random(#one) local two = {'red_playboys2', 'red_aliens2', 'red_pl2', 'red_trolls2', 'red_cats2'} @@ -223,7 +223,7 @@ end) RegisterServerEvent('md-drugs:server:stamporange', function(num) local src = source - local Player = QBCore.Functions.GetPlayer(src) + local Player = getPlayer(src) local one = {'orange_playboys', 'orange_aliens', 'orange_pl', 'orange_trolls', 'orange_cats'} local chance = math.random(#one) local two = {'orange_playboys2', 'orange_aliens2', 'orange_pl2', 'orange_trolls2', 'orange_cats2'} @@ -254,7 +254,7 @@ end) RegisterServerEvent('md-drugs:server:stampblue', function(num) local src = source - local Player = QBCore.Functions.GetPlayer(src) + local Player = getPlayer(src) local one = {'blue_playboys', 'blue_aliens', 'blue_pl', 'blue_trolls', 'blue_cats'} local chance = math.random(#one) local two = {'blue_playboys2', 'blue_aliens2', 'blue_pl2', 'blue_trolls2', 'blue_cats2'} diff --git a/shared/config.lua b/shared/config.lua index 4222fa3..8cfc0fb 100644 --- a/shared/config.lua +++ b/shared/config.lua @@ -18,20 +18,20 @@ Config.Phone = 'qb' -- either 'qb' or 'yflip' or 'qs' Config.Dispatch = 'ps' -- either 'ps', 'cd', 'core', 'aty' Config.Minigames = { - ps_circle = { amount = 2, speed = 8,}, - ps_maze = { timelimit = 15}, - ps_scrambler = { type = 'numeric', time = 15, mirrored = 0}, - ps_var = { numBlocks = 5, time = 10}, - ps_thermite = { time = 10, gridsize = 5, incorrect = 3}, - ox = { 'easy', 'easy'}, --easy medium or hard each one corresponds to how many skillchecks and the difficulty - blcirprog = { amount = 2, speed = 50}, -- speed = 1-100 - blprog = { amount = 1, speed = 50}, -- speed = 1-100 - blkeyspam = { amount = 1, difficulty = 50}, -- difficulty = 1-100 - blkeycircle = { amount = 1, difficulty = 50, keynumbers = 3}, - blnumberslide = { amount = 1, difficulty = 50, keynumbers = 3}, - blrapidlines = { amount = 1, difficulty = 50, numberofline = 3}, - blcircleshake = { amount = 1, difficulty = 50, stages = 3}, - glpath = { gridSize = 19, lives = 3, timelimit = 10000}, + ps_circle = {amount = 2, speed = 8,}, + ps_maze = {timelimit = 15}, + ps_scrambler = {type = 'numeric', time = 15, mirrored = 0}, + ps_var = {numBlocks = 5, time = 10}, + ps_thermite = {time = 10, gridsize = 5, incorrect = 3}, + ox = {'easy', 'easy'}, --easy medium or hard each one corresponds to how many skillchecks and the difficulty + blcirprog = {amount = 2, speed = 50}, -- speed = 1-100 + blprog = {amount = 1, speed = 50}, -- speed = 1-100 + blkeyspam = {amount = 1, difficulty = 50}, -- difficulty = 1-100 + blkeycircle = {amount = 1, difficulty = 50, keynumbers = 3}, + blnumberslide = {amount = 1, difficulty = 50, keynumbers = 3}, + blrapidlines = {amount = 1, difficulty = 50, numberofline = 3}, + blcircleshake = {amount = 1, difficulty = 50, stages = 3}, + glpath = {gridSize = 19, lives = 3, timelimit = 10000}, glspot = {gridSize = 6, timeLimit = 999999, charSet = "alphabet", required = 10}, glmath = {timeLimit = 300000}, @@ -134,7 +134,6 @@ Config.StartLoc = { vector3(-224.89, 6388.32, 31.59) } - ---------- Pharma Config.FillPrescription = {---------- this is where you want people to take their prescription to get a bottle of pills. They use bottle to get a random amount of prescription pills @@ -142,14 +141,12 @@ Config.FillPrescription = {---------- this is where you want people to take thei } Config.PharmaJob = "ems" -- what TYPE role you need to be on to get the command - - -------------- weed Config.Teleout = vector3(1066.31, -3183.36, -39.16) -- where you target to tele in Config.Telein = vector3(244.74, 374.54, 105.74) -- where you target to tele out Config.MakeButter = vector3(1045.48, -3198.49, -38.22) -- where you make cannabutter and baked edibles Config.MakeOil = vector3(1038.90, -3198.66, -38.17) -- where you make shatter -Config.WeedSaleman = vector4(1030.46, -3203.63, -38.2, 180.0) +Config.WeedSaleman = vector4(1030.77, -3203.18, -38.2, 262.37) Config.WeedDry = { -- where you dry leaves {loc = vector3(1043.0, -3191.59, -38.39),}, @@ -160,20 +157,6 @@ Config.WeedDry = { -- where you dry leaves Config.Joblock = false -- if you want weed to be a job Config.weedjob = "" -- what the job name is -Config.Weed = { --- this is the store for the weed ingridients - label = "Weed Shop", - slots = 8, - items = { - {name = "weedgrinder", price = 25, amount = 50, }, - {name = "mdbutter", price = 25, amount = 50, }, - {name = "flour", price = 25, amount = 50, }, - {name = "chocolate", price = 25, amount = 50, }, - {name = "butane", price = 25, amount = 50, }, - {name = "butanetorch", price = 2, amount = 1000,}, - {name = "dabrig", price = 2, amount = 1000,}, - {name = "mdwoods", price = 2, amount = 1000,}, - } -} ----------------- Wholesale Config.SuccessfulChance = 90 --- this is the chance of a Success wholesale 1-100 @@ -181,9 +164,9 @@ Config.AlertPoliceWholesale = 90 -- 1-100 of how often it will alert police Config.WholesaleTimeout = 600 -- time in seconds to get to the location Config.PoliceCount = 0 -- Amount of police required Config.Wcoke = { min = 20, max = 60} -- pricings per item -Config.Wcrack = { min = 20, max = 60} -Config.Wlsd = { min = 20, max = 60} -Config.WXTC = { min = 20, max = 60} +Config.Wcrack = { min = 20, max = 60} -- pricings per item +Config.Wlsd = { min = 20, max = 60} -- pricings per item +Config.WXTC = { min = 20, max = 60} -- pricings per item --- travelling merchant @@ -193,35 +176,7 @@ Config.Travellingmerchant = { ------------ these are the random locations the me vector4(-1522.93, 1476.01, 111.45, 41.25), vector4(-3278.98, 973.38, 5.35, 101.53), } -Config.Items = { --- this is the store for the travelling merchant - items = { - {name = "tab_paper", price = 50, amount = 50,}, - {name = "bakingsoda", price = 25, amount = 50, }, - {name = "isosafrole", price = 25, amount = 50, }, - {name = "mdp2p", price = 25, amount = 50, }, - {name = "lysergic_acid", price = 25, amount = 50, }, - {name = "diethylamide", price = 25, amount = 50, }, - {name = "lockpick", price = 2, amount = 1000, }, - {name = "emptyvial", price = 2, amount = 1000, }, - {name = "needle", price = 2, amount = 1000, }, - {name = "cokeburner", price = 25, amount = 50, }, - {name = "crackburner", price = 2, amount = 50, }, - {name = "lsdburner", price = 2, amount = 50, }, - {name = "heroinburner", price = 2, amount = 50, }, - {name = "mdlean", price = 50, amount = 50, }, - {name = "weedgrinder", price = 25, amount = 50, }, - {name = "mdbutter", price = 25, amount = 50, }, - {name = "flour", price = 25, amount = 50, }, - {name = "chocolate", price = 25, amount = 50, }, - {name = "butane", price = 25, amount = 50, }, - {name = "butanetorch", price = 2, amount = 1000, }, - {name = "dabrig", price = 2, amount = 1000, }, - {name = "mdwoods", price = 2, amount = 1000, }, - {name = "leancup", price = 25, amount = 50, }, - {name = "xtcburner", price = 25, amount = 50, }, - - } -} + --------------------------------------- oxy runs ---- How oxyruns work. You pay for a truck, you get in it and it gives a route. There is a 20% chance that the car will be "hot" and you have to ditch it. No Routes will spawn if that pops up ----- when you get to the drop off point third eye the truck. You will carry a box to the ped. He will give you cash, some oxy and maybe a random item. Rinse and repeat diff --git a/shared/consumables.lua b/shared/consumables.lua index cca4b1f..435a921 100644 --- a/shared/consumables.lua +++ b/shared/consumables.lua @@ -1,141 +1,147 @@ -Consumables = {} -Consumables.defaulttime = 4000 -Consumables.defaultanim = 'pflag2' -Consumables.defaultprogresstext = 'Consuming ' -- it will always show the label of the item being used after what you put here, make sure to keep the space at the end :) -Consumables.defaultstatval = 0 ---[[ - effect options - alien - ecstacy - meth - coke - trevor - none -]] - ---[[ -add = {} -health = number -- amount of health to give -stress = number -- number of stress to give -speed = number -- number of seconds you a fast boi -hunger = number -- number of hunger to fill -thirst = number -- same shit -strength = number -- how long you are strong boi - -]] -Consumables.Items = { - -- meth - ["methbags"] = { time = 4000, effect = 'meth', anim = "smoke", progressbartext = "Injesting", - add = {health = -20, stress = -10, speed = 40, strength = 10, thirst = -30}}, - ["cokebaggy"] = { anim = 'smell', time = 1000, effect = 'coke', add = { stress = -10 }}, -["cokebaggystagetwo"] = { anim = 'smell', time = 1000, effect = 'coke', add = { stress = -10 }}, -["cokebaggystagethree"] = { anim = 'smell', time = 1000, effect = 'coke', add = { stress = -10 }}, --- heroin -["heroin_ready"] = { anim = 'shootup', time = 1000, effect = 'ecstacy', add = { stress = -10 }}, -["heroin_readystagetwo"] = { anim = 'shootup', time = 1000, effect = 'ecstacy', add = { stress = -10 }}, -["heroin_readystagethree"] = { anim = 'shootup', time = 1000, effect = 'ecstacy', add = { stress = -10 }}, --- crack -["baggedcracked"] = { anim = 'smell', time = 1000, effect = 'coke', add = { stress = -10 }}, -["baggedcrackedstagetwo"] = { anim = 'smell', time = 1000, effect = 'coke', add = { stress = -10 }}, -["baggedcrackedstagethree"] = { anim = 'smell', time = 1000, effect = 'ecstacy', add = { stress = -10 }}, --- xtc -["white_playboys"] = { anim = 'edible', time = 1000, effect = 'ecstacy', add = { stress = -10 }}, -["white_playboys2"] = { anim = 'edible', time = 1000, effect = 'ecstacy', add = { stress = -10 }}, -["white_playboys3"] = { anim = 'edible', time = 1000, effect = 'ecstacy', add = { stress = -10 }}, -["white_playboys4"] = { anim = 'edible', time = 1000, effect = 'ecstacy', add = { stress = -10 }}, -["blue_playboys"] = { anim = 'edible', time = 1000, effect = 'ecstacy', add = { stress = -10 }}, -["blue_playboys2"] = { anim = 'edible', time = 1000, effect = 'ecstacy', add = { stress = -10 }}, -["blue_playboys3"] = { anim = 'edible', time = 1000, effect = 'ecstacy', add = { stress = -10 }}, -["blue_playboys4"] = { anim = 'edible', time = 1000, effect = 'ecstacy', add = { stress = -10 }}, -["red_playboys"] = { anim = 'edible', time = 1000, effect = 'ecstacy', add = { stress = -10 }}, -["red_playboys2"] = { anim = 'edible', time = 1000, effect = 'ecstacy', add = { stress = -10 }}, -["red_playboys3"] = { anim = 'edible', time = 1000, effect = 'ecstacy', add = { stress = -10 }}, -["red_playboys4"] = { anim = 'edible', time = 1000, effect = 'ecstacy', add = { stress = -10 }}, -["orange_playboys"] = { anim = 'edible', time = 1000, effect = 'ecstacy', add = { stress = -10 }}, -["orange_playboy2s"] = { anim = 'edible', time = 1000, effect = 'ecstacy', add = { stress = -10 }}, -["orange_playboys3"] = { anim = 'edible', time = 1000, effect = 'ecstacy', add = { stress = -10 }}, -["orange_playboys4"] = { anim = 'edible', time = 1000, effect = 'ecstacy', add = { stress = -10 }}, -["white_aliens"] = { anim = 'edible', time = 1000, effect = 'ecstacy', add = { stress = -10 }}, -["white_aliens2"] = { anim = 'edible', time = 1000, effect = 'ecstacy', add = { stress = -10 }}, -["white_aliens3"] = { anim = 'edible', time = 1000, effect = 'ecstacy', add = { stress = -10 }}, -["white_aliens4"] = { anim = 'edible', time = 1000, effect = 'ecstacy', add = { stress = -10 }}, -["blue_aliens"] = { anim = 'edible', time = 1000, effect = 'ecstacy', add = { stress = -10 }}, -["blue_aliens2"] = { anim = 'edible', time = 1000, effect = 'ecstacy', add = { stress = -10 }}, -["blue_aliens3"] = { anim = 'edible', time = 1000, effect = 'ecstacy', add = { stress = -10 }}, -["blue_aliens4"] = { anim = 'edible', time = 1000, effect = 'ecstacy', add = { stress = -10 }}, -["red_aliens"] = { anim = 'edible', time = 1000, effect = 'ecstacy', add = { stress = -10 }}, -["red_aliens3"] = { anim = 'edible', time = 1000, effect = 'ecstacy', add = { stress = -10 }}, -["red_aliens2"] = { anim = 'edible', time = 1000, effect = 'ecstacy', add = { stress = -10 }}, -["red_aliens4"] = { anim = 'edible', time = 1000, effect = 'ecstacy', add = { stress = -10 }}, -["orange_aliens"] = { anim = 'edible', time = 1000, effect = 'ecstacy', add = { stress = -10 }}, -["orange_aliens2"] = { anim = 'edible', time = 1000, effect = 'ecstacy', add = { stress = -10 }}, -["orange_aliens3"] = { anim = 'edible', time = 1000, effect = 'ecstacy', add = { stress = -10 }}, -["orange_aliens4"] = { anim = 'edible', time = 1000, effect = 'ecstacy', add = { stress = -10 }}, -["white_pl"] = { anim = 'edible', time = 1000, effect = 'ecstacy', add = { stress = -10 }}, -["white_pl2"] = { anim = 'edible', time = 1000, effect = 'ecstacy', add = { stress = -10 }}, -["white_pl3"] = { anim = 'edible', time = 1000, effect = 'ecstacy', add = { stress = -10 }}, -["white_pl4"] = { anim = 'edible', time = 1000, effect = 'ecstacy', add = { stress = -10 }}, -["blue_pl"] = { anim = 'edible', time = 1000, effect = 'ecstacy', add = { stress = -10 }}, -["blue_pl2"] = { anim = 'edible', time = 1000, effect = 'ecstacy', add = { stress = -10 }}, -["blue_pl3"] = { anim = 'edible', time = 1000, effect = 'ecstacy', add = { stress = -10 }}, -["blue_pl4"] = { anim = 'edible', time = 1000, effect = 'ecstacy', add = { stress = -10 }}, -["red_pl"] = { anim = 'edible', time = 1000, effect = 'ecstacy', add = { stress = -10 }}, -["red_pl2"] = { anim = 'edible', time = 1000, effect = 'ecstacy', add = { stress = -10 }}, -["red_pl3"] = { anim = 'edible', time = 1000, effect = 'ecstacy', add = { stress = -10 }}, -["red_pl4"] = { anim = 'edible', time = 1000, effect = 'ecstacy', add = { stress = -10 }}, -["orange_pl"] = { anim = 'edible', time = 1000, effect = 'ecstacy', add = { stress = -10 }}, -["orange_pl2"] = { anim = 'edible', time = 1000, effect = 'ecstacy', add = { stress = -10 }}, -["orange_pl3"] = { anim = 'edible', time = 1000, effect = 'ecstacy', add = { stress = -10 }}, -["orange_pl4"] = { anim = 'edible', time = 1000, effect = 'ecstacy', add = { stress = -10 }}, - ["white_trolls"] = { anim = 'edible', time = 1000, effect = 'ecstacy', add = { stress = -10 }}, - ["white_trolls2"] = { anim = 'edible', time = 1000, effect = 'ecstacy', add = { stress = -10 }}, - ["white_trolls3"] = { anim = 'edible', time = 1000, effect = 'ecstacy', add = { stress = -10 }}, - ["white_trolls4"] = { anim = 'edible', time = 1000, effect = 'ecstacy', add = { stress = -10 }}, - ["blue_trolls"] = { anim = 'edible', time = 1000, effect = 'ecstacy', add = { stress = -10 }}, - ["blue_trolls2"] = { anim = 'edible', time = 1000, effect = 'ecstacy', add = { stress = -10 }}, - ["blue_trolls3"] = { anim = 'edible', time = 1000, effect = 'ecstacy', add = { stress = -10 }}, - ["blue_trolls4"] = { anim = 'edible', time = 1000, effect = 'ecstacy', add = { stress = -10 }}, - ["red_trolls"] = { anim = 'edible', time = 1000, effect = 'ecstacy', add = { stress = -10 }}, - ["red_trolls2"] = { anim = 'edible', time = 1000, effect = 'ecstacy', add = { stress = -10 }}, - ["red_trolls3"] = { anim = 'edible', time = 1000, effect = 'ecstacy', add = { stress = -10 }}, - ["red_trolls4"] = { anim = 'edible', time = 1000, effect = 'ecstacy', add = { stress = -10 }}, - ["orange_trolls"] = { anim = 'edible', time = 1000, effect = 'ecstacy', add = { stress = -10 }}, - ["orange_trolls2"] = { anim = 'edible', time = 1000, effect = 'ecstacy', add = { stress = -10 }}, - ["orange_trolls3"] = { anim = 'edible', time = 1000, effect = 'ecstacy', add = { stress = -10 }}, - ["orange_trolls4"] = { anim = 'edible', time = 1000, effect = 'ecstacy', add = { stress = -10 }}, - ["white_cats2"] = { anim = 'edible', time = 1000, effect = 'ecstacy', add = { stress = -10 }}, - ["white_cats3"] = { anim = 'edible', time = 1000, effect = 'ecstacy', add = { stress = -10 }}, - ["white_cats4"] = { anim = 'edible', time = 1000, effect = 'ecstacy', add = { stress = -10 }}, - ["white_cats"] = { anim = 'edible', time = 1000, effect = 'ecstacy', add = { stress = -10 }}, - ["blue_cats"] = { anim = 'edible', time = 1000, effect = 'ecstacy', add = { stress = -10 }}, - ["blue_cats3"] = { anim = 'edible', time = 1000, effect = 'ecstacy', add = { stress = -10 }}, - ["blue_cats2"] = { anim = 'edible', time = 1000, effect = 'ecstacy', add = { stress = -10 }}, - ["blue_cats4"] = { anim = 'edible', time = 1000, effect = 'ecstacy', add = { stress = -10 }}, - ["red_cats"] = { anim = 'edible', time = 1000, effect = 'ecstacy', add = { stress = -10 }}, - ["red_cats2"] = { anim = 'edible', time = 1000, effect = 'ecstacy', add = { stress = -10 }}, - ["red_cats3"] = { anim = 'edible', time = 1000, effect = 'ecstacy', add = { stress = -10 }}, - ["red_cats4"] = { anim = 'edible', time = 1000, effect = 'ecstacy', add = { stress = -10 }}, - ["orange_cats"] = { anim = 'edible', time = 1000, effect = 'ecstacy', add = { stress = -10 }}, - ["orange_cats2"] = { anim = 'edible', time = 1000, effect = 'ecstacy', add = { stress = -10 }}, - ["orange_cats3"] = { anim = 'edible', time = 1000, effect = 'ecstacy', add = { stress = -10 }}, - ["orange_cats4"] = { anim = 'edible', time = 1000, effect = 'ecstacy', add = { stress = -10 }}, +Consumables = {} +Consumables.defaulttime = 4000 +Consumables.defaultanim = 'pflag2' +Consumables.defaultprogresstext = 'Consuming ' -- it will always show the label of the item being used after what you put here, make sure to keep the space at the end :) +Consumables.defaultstatval = 0 +--[[ + effect options + alien + ecstacy + meth + coke + trevor + none +]] + +--[[ +add = {} +health = number -- amount of health to give +stress = number -- number of stress to give +speed = number -- number of seconds you a fast boi +hunger = number -- number of hunger to fill +thirst = number -- same shit +strength = number -- how long you are strong boi + +]] +Consumables.Items = { + -- meth + methbags = { time = 4000, effect = 'meth', anim = "smoke", progressbartext = "Injesting", + add = {health = -20, stress = -10, speed = 40, strength = 10, thirst = -30}}, + cokebaggy = { anim = 'smell', time = 1000, effect = 'coke', add = { stress = -10 }}, + cokebaggystagetwo = { anim = 'smell', time = 1000, effect = 'coke', add = { stress = -10 }}, + cokebaggystagethree = { anim = 'smell', time = 1000, effect = 'coke', add = { stress = -10 }}, + -- heroin + heroin_ready = { anim = 'shootup', time = 1000, effect = 'ecstacy', add = { stress = -10 }}, + heroin_readystagetwo = { anim = 'shootup', time = 1000, effect = 'ecstacy', add = { stress = -10 }}, + heroin_readystagethree = { anim = 'shootup', time = 1000, effect = 'ecstacy', add = { stress = -10 }}, + -- crack + baggedcracked = { anim = 'smell', time = 1000, effect = 'coke', add = { stress = -10 }}, + baggedcrackedstagetwo = { anim = 'smell', time = 1000, effect = 'coke', add = { stress = -10 }}, + baggedcrackedstagethree = { anim = 'smell', time = 1000, effect = 'ecstacy', add = { stress = -10 }}, + -- xtc + white_playboys = { anim = 'edible', time = 1000, effect = 'ecstacy', add = { stress = -10 }}, + white_playboys2 = { anim = 'edible', time = 1000, effect = 'ecstacy', add = { stress = -10 }}, + white_playboys3 = { anim = 'edible', time = 1000, effect = 'ecstacy', add = { stress = -10 }}, + white_playboys4 = { anim = 'edible', time = 1000, effect = 'ecstacy', add = { stress = -10 }}, + blue_playboys = { anim = 'edible', time = 1000, effect = 'ecstacy', add = { stress = -10 }}, + blue_playboys2 = { anim = 'edible', time = 1000, effect = 'ecstacy', add = { stress = -10 }}, + blue_playboys3 = { anim = 'edible', time = 1000, effect = 'ecstacy', add = { stress = -10 }}, + blue_playboys4 = { anim = 'edible', time = 1000, effect = 'ecstacy', add = { stress = -10 }}, + red_playboys = { anim = 'edible', time = 1000, effect = 'ecstacy', add = { stress = -10 }}, + red_playboys2 = { anim = 'edible', time = 1000, effect = 'ecstacy', add = { stress = -10 }}, + red_playboys3 = { anim = 'edible', time = 1000, effect = 'ecstacy', add = { stress = -10 }}, + red_playboys4 = { anim = 'edible', time = 1000, effect = 'ecstacy', add = { stress = -10 }}, + orange_playboys = { anim = 'edible', time = 1000, effect = 'ecstacy', add = { stress = -10 }}, + orange_playboy2s = { anim = 'edible', time = 1000, effect = 'ecstacy', add = { stress = -10 }}, + orange_playboys3 = { anim = 'edible', time = 1000, effect = 'ecstacy', add = { stress = -10 }}, + orange_playboys4 = { anim = 'edible', time = 1000, effect = 'ecstacy', add = { stress = -10 }}, + white_aliens = { anim = 'edible', time = 1000, effect = 'ecstacy', add = { stress = -10 }}, + white_aliens2 = { anim = 'edible', time = 1000, effect = 'ecstacy', add = { stress = -10 }}, + white_aliens3 = { anim = 'edible', time = 1000, effect = 'ecstacy', add = { stress = -10 }}, + white_aliens4 = { anim = 'edible', time = 1000, effect = 'ecstacy', add = { stress = -10 }}, + blue_aliens = { anim = 'edible', time = 1000, effect = 'ecstacy', add = { stress = -10 }}, + blue_aliens2 = { anim = 'edible', time = 1000, effect = 'ecstacy', add = { stress = -10 }}, + blue_aliens3 = { anim = 'edible', time = 1000, effect = 'ecstacy', add = { stress = -10 }}, + blue_aliens4 = { anim = 'edible', time = 1000, effect = 'ecstacy', add = { stress = -10 }}, + red_aliens = { anim = 'edible', time = 1000, effect = 'ecstacy', add = { stress = -10 }}, + red_aliens3 = { anim = 'edible', time = 1000, effect = 'ecstacy', add = { stress = -10 }}, + red_aliens2 = { anim = 'edible', time = 1000, effect = 'ecstacy', add = { stress = -10 }}, + red_aliens4 = { anim = 'edible', time = 1000, effect = 'ecstacy', add = { stress = -10 }}, + orange_aliens = { anim = 'edible', time = 1000, effect = 'ecstacy', add = { stress = -10 }}, + orange_aliens2 = { anim = 'edible', time = 1000, effect = 'ecstacy', add = { stress = -10 }}, + orange_aliens3 = { anim = 'edible', time = 1000, effect = 'ecstacy', add = { stress = -10 }}, + orange_aliens4 = { anim = 'edible', time = 1000, effect = 'ecstacy', add = { stress = -10 }}, + white_pl = { anim = 'edible', time = 1000, effect = 'ecstacy', add = { stress = -10 }}, + white_pl2 = { anim = 'edible', time = 1000, effect = 'ecstacy', add = { stress = -10 }}, + white_pl3 = { anim = 'edible', time = 1000, effect = 'ecstacy', add = { stress = -10 }}, + white_pl4 = { anim = 'edible', time = 1000, effect = 'ecstacy', add = { stress = -10 }}, + blue_pl = { anim = 'edible', time = 1000, effect = 'ecstacy', add = { stress = -10 }}, + blue_pl2 = { anim = 'edible', time = 1000, effect = 'ecstacy', add = { stress = -10 }}, + blue_pl3 = { anim = 'edible', time = 1000, effect = 'ecstacy', add = { stress = -10 }}, + blue_pl4 = { anim = 'edible', time = 1000, effect = 'ecstacy', add = { stress = -10 }}, + red_pl = { anim = 'edible', time = 1000, effect = 'ecstacy', add = { stress = -10 }}, + red_pl2 = { anim = 'edible', time = 1000, effect = 'ecstacy', add = { stress = -10 }}, + red_pl3 = { anim = 'edible', time = 1000, effect = 'ecstacy', add = { stress = -10 }}, + red_pl4 = { anim = 'edible', time = 1000, effect = 'ecstacy', add = { stress = -10 }}, + orange_pl = { anim = 'edible', time = 1000, effect = 'ecstacy', add = { stress = -10 }}, + orange_pl2 = { anim = 'edible', time = 1000, effect = 'ecstacy', add = { stress = -10 }}, + orange_pl3 = { anim = 'edible', time = 1000, effect = 'ecstacy', add = { stress = -10 }}, + orange_pl4 = { anim = 'edible', time = 1000, effect = 'ecstacy', add = { stress = -10 }}, + white_trolls = { anim = 'edible', time = 1000, effect = 'ecstacy', add = { stress = -10 }}, + white_trolls2 = { anim = 'edible', time = 1000, effect = 'ecstacy', add = { stress = -10 }}, + white_trolls3 = { anim = 'edible', time = 1000, effect = 'ecstacy', add = { stress = -10 }}, + white_trolls4 = { anim = 'edible', time = 1000, effect = 'ecstacy', add = { stress = -10 }}, + blue_trolls = { anim = 'edible', time = 1000, effect = 'ecstacy', add = { stress = -10 }}, + blue_trolls2 = { anim = 'edible', time = 1000, effect = 'ecstacy', add = { stress = -10 }}, + blue_trolls3 = { anim = 'edible', time = 1000, effect = 'ecstacy', add = { stress = -10 }}, + blue_trolls4 = { anim = 'edible', time = 1000, effect = 'ecstacy', add = { stress = -10 }}, + red_trolls = { anim = 'edible', time = 1000, effect = 'ecstacy', add = { stress = -10 }}, + red_trolls2 = { anim = 'edible', time = 1000, effect = 'ecstacy', add = { stress = -10 }}, + red_trolls3 = { anim = 'edible', time = 1000, effect = 'ecstacy', add = { stress = -10 }}, + red_trolls4 = { anim = 'edible', time = 1000, effect = 'ecstacy', add = { stress = -10 }}, + orange_trolls = { anim = 'edible', time = 1000, effect = 'ecstacy', add = { stress = -10 }}, + orange_trolls2 = { anim = 'edible', time = 1000, effect = 'ecstacy', add = { stress = -10 }}, + orange_trolls3 = { anim = 'edible', time = 1000, effect = 'ecstacy', add = { stress = -10 }}, + orange_trolls4 = { anim = 'edible', time = 1000, effect = 'ecstacy', add = { stress = -10 }}, + white_cats2 = { anim = 'edible', time = 1000, effect = 'ecstacy', add = { stress = -10 }}, + white_cats3 = { anim = 'edible', time = 1000, effect = 'ecstacy', add = { stress = -10 }}, + white_cats4 = { anim = 'edible', time = 1000, effect = 'ecstacy', add = { stress = -10 }}, + white_cats = { anim = 'edible', time = 1000, effect = 'ecstacy', add = { stress = -10 }}, + blue_cats = { anim = 'edible', time = 1000, effect = 'ecstacy', add = { stress = -10 }}, + blue_cats3 = { anim = 'edible', time = 1000, effect = 'ecstacy', add = { stress = -10 }}, + blue_cats2 = { anim = 'edible', time = 1000, effect = 'ecstacy', add = { stress = -10 }}, + blue_cats4 = { anim = 'edible', time = 1000, effect = 'ecstacy', add = { stress = -10 }}, + red_cats = { anim = 'edible', time = 1000, effect = 'ecstacy', add = { stress = -10 }}, + red_cats2 = { anim = 'edible', time = 1000, effect = 'ecstacy', add = { stress = -10 }}, + red_cats3 = { anim = 'edible', time = 1000, effect = 'ecstacy', add = { stress = -10 }}, + red_cats4 = { anim = 'edible', time = 1000, effect = 'ecstacy', add = { stress = -10 }}, + orange_cats = { anim = 'edible', time = 1000, effect = 'ecstacy', add = { stress = -10 }}, + orange_cats2 = { anim = 'edible', time = 1000, effect = 'ecstacy', add = { stress = -10 }}, + orange_cats3 = { anim = 'edible', time = 1000, effect = 'ecstacy', add = { stress = -10 }}, + orange_cats4 = { anim = 'edible', time = 1000, effect = 'ecstacy', add = { stress = -10 }}, -- weed - ["specialbrownie"] = { anim = 'edible', effect = 'alien', add = { hunger = 10, stress = -10 }}, - ["specialcookie"] = { anim = 'edible', effect = 'alien', add = { hunger = 10, stress = -10 }}, - ["specialchocolate"] = { anim = 'edible', effect = 'alien', add = { hunger = 10, stress = -10 }}, - ["specialmuffin"] = { anim = 'edible', effect = 'alien', add = { hunger = 10, stress = -10 }}, - ["blunt"] = { anim = 'smokeweed', effect = 'alien', add = { stress = -10 }}, - ["dextroblunts"] = { anim = 'smokeweed', effect = 'alien', add = { stress = -10 }}, - ["leanblunts"] = { anim = 'smokeweed', effect = 'alien', add = { stress = -10 }}, - ["chewyblunt"] = { anim = 'smokeweed', effect = 'alien', add = { stress = -10 }}, + specialbrownie = { anim = 'edible', effect = 'alien', add = { hunger = 10, stress = -10 }}, + specialcookie = { anim = 'edible', effect = 'alien', add = { hunger = 10, stress = -10 }}, + specialchocolate = { anim = 'edible', effect = 'alien', add = { hunger = 10, stress = -10 }}, + specialmuffin = { anim = 'edible', effect = 'alien', add = { hunger = 10, stress = -10 }}, + blunt = { anim = 'smokeweed', effect = 'alien', add = { stress = -10 }}, + dextroblunts = { anim = 'smokeweed', effect = 'alien', add = { stress = -10 }}, + leanblunts = { anim = 'smokeweed', effect = 'alien', add = { stress = -10 }}, + chewyblunt = { anim = 'smokeweed', effect = 'alien', add = { stress = -10 }}, -- lean - ["cupofdextro"] = { anim = 'cup', effect = 'alien', add = { stress = -10 }}, - ["cupoflean"] = { anim = 'cup', effect = 'alien', add = { stress = -10 }}, + cupofdextro = { anim = 'cup', effect = 'alien', add = { stress = -10 }}, + cupoflean = { anim = 'cup', effect = 'alien', add = { stress = -10 }}, -- lsd - ["smiley_tabs"] = { anim = 'edible', effect = 'trevor', add = { stress = -10 }}, - ["wildcherry_tabs"] = { anim = 'edible', effect = 'trevor', add = { stress = -10 }}, - ["yinyang_tabs"] = { anim = 'edible', effect = 'trevor', add = { stress = -10 }}, - ["pineapple_tabs"] = { anim = 'edible', effect = 'trevor', add = { stress = -10 }}, - ["bart_tabs"] = { anim = 'edible', effect = 'trevor', add = { stress = -10 }}, - ["gratefuldead_tabs"] = { anim = 'edible', effect = 'trevor', add = { stress = -10 }}, + smiley_tabs = { anim = 'edible', effect = 'trevor', add = { stress = -10 }}, + wildcherry_tabs = { anim = 'edible', effect = 'trevor', add = { stress = -10 }}, + yinyang_tabs = { anim = 'edible', effect = 'trevor', add = { stress = -10 }}, + pineapple_tabs = { anim = 'edible', effect = 'trevor', add = { stress = -10 }}, + bart_tabs = { anim = 'edible', effect = 'trevor', add = { stress = -10 }}, + gratefuldead_tabs = { anim = 'edible', effect = 'trevor', add = { stress = -10 }}, + + -- pharma + vicodin = { anim = 'pill', effect = 'none', add = { health = 20 }}, + adderal = { anim = 'pill', effect = 'none', add = { stress = -20 }}, + morphine = { anim = 'pill', effect = 'none', add = { health = 40 }}, + xanax = { anim = 'pill', effect = 'none', add = { stress = -40 }}, } diff --git a/shared/english.lua b/shared/english.lua index 6b8d1d3..e576893 100644 --- a/shared/english.lua +++ b/shared/english.lua @@ -1,5 +1,107 @@ Lang = {} +Lang.targets = { + coke = { + pick = 'Pick Cocaine', + cut = 'Cut Cocaine', + bag = 'Bag Cocaine', + enter = 'Enter Building', + exit = 'Exit Building', + chop = 'Chop Coca Leaves', + + }, + CornerSell = { + sell = 'Sell %s Of %s For $%s', + deny = 'Deny Price' + }, + crack = { + cook = 'Cook Crack', + bag = 'Bag Crack' + }, + Delivery = { + Deliver = 'Deliver For %s', + open = 'Open %s Shop', + hand = 'Hand Over' + }, + heroin = { + pick = 'Pick Poppies', + up = 'Pick Up Table', + dry = 'Dry Poppies', + cut = 'Cut Heroin', + cook = 'Cook Heroin', + kit = 'Buy Heroin Lab Kit', + clean = 'Clean Table', + fill = 'Fill Syringe', + vial = 'Make Vial', + }, + lean = { + git = 'Get Task' + }, + lsd = { + buy = 'Buy LSD Lab Kit', + heat = 'Heat Liquid', + refine = 'Refine Quality', + paper = 'Make Tab Paper', + back = 'Pick Up Lab Kit', + dab = 'Dab LSD on sheets', + clean = 'Clean Table', + lys = 'Steal Lysergic Acid', + die = 'Steal Diethylamide', + buyt = 'Buy Tabs', + }, + mescaline = { + pick = 'Pick Cactus', + dry = 'Dry Out Cactus', + }, + meth = { + bag = 'Bag Up Meth', + enter = 'Enter Buidling', + exit = 'Exit Building', + cook = 'Cook Meth', + tray = 'Grab Tray', + box = 'Box Up Meth', + adjust = 'Adjust Temperature', + eph = 'Steal Ephedrine', + ace = 'Steal Acetone', + mission = 'Get Mission', + stealfromcar = 'Steal From Car', + }, + oxy = { + pack = 'Get Oxy Package', + talk = 'Talk To Buyer', + pay = 'Pay For Truck', + }, + pha = { + fill = 'Fill Prescription', + }, + shrooms = { + pick = 'Pick Shrooms', + }, + travel = { + travel = 'Open Travelling Merchant', + }, + xtc = { + iso = 'Steal Isosafrole', + mdp = 'Steal MDP2P', + raw = 'Make Raw XTC', + press = 'Buy XTC Press', + stamp = 'Stamp Pills', + make = 'Make XTC', + pick = 'Pick Up Press', + }, + weed = { + pick = 'Pick Weed', + dry = 'Dry Weed', + dpick = 'Pick Dried Weed', + butt = 'Open Edible Menu', + oil = 'Make Oil' + }, + Wholesale = { + talk = 'Talk To Buyer' + }, + +} + Lang.Coke = { -- client side progressbars picking = "Picking Leaves", @@ -22,19 +124,24 @@ Lang.Crack = { } Lang.Cornerselling = { -- client side notifys + inveh = 'STRANGER DANGER, I WONT GET IN THE CAR WITH YOU', toofar = "To Far From Your Corner Homie", - inacar = " You Cant Sell While In A Car", + selling = 'Selling %s For $%s', deny = "Fuck That Offer", start = "Get That Paper", stop = "Lazy Ass Cant Even Sell Drugs", nodrugs = "What You Gonna sell? Air?", notcops = "Not Enough Cops", + no = 'You Cant Sell Drugs Here!', -- end client side notifys -- progressbars sell = "Selling Drugs", } Lang.Delivery = { -- client side + emailn = 'Not A Drug Dealer', + emailsub = 'Hurry Up And Get The Package To The Buyer', + emailcon = 'I Swear To God If It Doesnt Get There I Will Tell Your Mom You Said Fuck Just Bring %s Of %s', search = "Searching For A Delivery ...", none = "Nothing Close By", busy = "You Havent Even Finished The One I Told You Too", @@ -70,7 +177,8 @@ Lang.Heroin = { Lang.Lean = { marked = ' Car Has Been Marked On Your Map', lean = 'You Got Purple Lean', - dextro = ' You Got Red Dextro' + dextro = ' You Got Red Dextro', + act = 'You Already Have A Lean Task', } Lang.lsd = { @@ -85,6 +193,7 @@ Lang.lsd = { buypaper = 'Buying Tab Paper', buykit = 'Buying Lab Kit', place = 'Placing Table Down', + hav = 'You Already Have A Table', -- server lys = 'You Got Lysergic Acid', die = 'You Got Diethylamide', @@ -109,7 +218,8 @@ Lang.meth = { ace = 'You Got Some Acetone', eph = 'You Got Some Ephedrine', mix = 'Adding Things To The Mix', - nobag = 'No Bags' + nobag = 'No Bags', + act = 'You Already Have A Meth Task', } Lang.oxy = { @@ -148,6 +258,8 @@ Lang.Weed = { stovehot = 'Stove Is Too Hot Wait 30 Seconds To Cool Down', shat = 'Making Shatter', roll = 'Rolling Blunts', + wait = 'Wait A Little Bit For To Drive', + take = 'Taking Down The Weed', -- nodry = 'You Need Wet Cannabis To Dry', noweed = 'Cant Roll A Blunt With Air', @@ -162,6 +274,19 @@ Lang.xtc = { mdp2p = 'Stealing MDP2P', iso = 'Stealing Isosafrole', fail = 'Dude Its A Circle Not Rocket Science', + pickup = 'Picking Up The Press', + stamp = 'Stamping %s Pills', + buyp = "Buying Press", -- - cash = 'I need 20k In Cash' + cash = 'I need 20k In Cash', + press = { + title = {single = 'Single Press', dual = 'Dual Press', triple = 'Triple Press', quad = 'Quad Press'}, + des = {single ='Buy a single press for 20k', dual = '20 of each unstamped single stack pill and your single press ', + triple = '50 of each unstamped dual stack pill and your dual press ', quad = '150 of each unstamped Triple stack pill and your triple press' + } + } +} + +Lang.Wholesale = { + al = 'Already Called Someone!' } \ No newline at end of file diff --git a/shared/qbdrugsrewrite.lua b/shared/qbdrugsrewrite.lua index aace4f3..cc0e6dc 100644 --- a/shared/qbdrugsrewrite.lua +++ b/shared/qbdrugsrewrite.lua @@ -10,162 +10,137 @@ QBConfig.CustomDirtyMoneyitem = '' QBConfig.DrugsPrice = { -- base qb - ["weed_white-widow"] = {min = 15, max = 24 }, - ["weed_og-kush"] = {min = 15, max = 28}, - ["weed_skunk"] = {min = 15, max = 31 }, - ["weed_amnesia"] = {min = 18, max = 34}, - ["weed_purple-haze"] = {min = 18, max = 37}, - ["weed_ak47"] = {min = 18, max = 40}, - ["crack_baggy"] = {min = 18, max = 34}, - ["cokebaggy"] = {min = 18, max = 37}, - -- coke - ["cokebaggystagetwo"] = {min = 18, max = 40}, - ["cokebaggystagethree"] = {min = 18, max = 40}, - -- heroin - ["heroin_ready"] = {min = 18, max = 40}, - ["heroin_readystagetwo"] = {min = 18, max = 40}, - ["heroin_readystagethree"] = {min = 18, max = 40}, - -- crack - ["baggedcracked"] = {min = 18, max = 40}, - ["baggedcrackedstagetwo"] = {min = 18, max = 40}, - ["baggedcrackedstagethree"] = {min = 18, max = 40}, - -- xtc - ["white_playboys"] = {min = 18, max = 40}, - ["white_playboys2"] = {min = 18, max = 40}, - ["white_playboys3"] = {min = 18, max = 40}, - ["white_playboys4"] = {min = 18, max = 40}, - ["blue_playboys"] = {min = 18, max = 40}, - ["blue_playboys2"] = {min = 18, max = 40}, - ["blue_playboys3"] = {min = 18, max = 40}, - ["blue_playboys4"] = {min = 18, max = 40}, - ["red_playboys"] = {min = 18, max = 40}, - ["red_playboys2"] = {min = 18, max = 40}, - ["red_playboys3"] = {min = 18, max = 40}, - ["red_playboys4"] = {min = 18, max = 40}, - ["orange_playboys"] = {min = 18, max = 40}, - ["orange_playboys2"] = {min = 18, max = 40}, - ["orange_playboys3"] = {min = 18, max = 40}, - ["orange_playboys4"] = {min = 18, max = 40}, - ["white_aliens"] = {min = 18, max = 40}, - ["white_aliens2"] = {min = 18, max = 40}, - ["white_aliens3"] = {min = 18, max = 40}, - ["white_aliens4"] = {min = 18, max = 40}, - ["blue_aliens"] = {min = 18, max = 40}, - ["blue_aliens2"] = {min = 18, max = 40}, - ["blue_aliens3"] = {min = 18, max = 40}, - ["blue_aliens4"] = {min = 18, max = 40}, - ["red_aliens"] = {min = 18, max = 40}, - ["red_aliens2"] = {min = 18, max = 40}, - ["red_aliens3"] = {min = 18, max = 40}, - ["red_aliens4"] = {min = 18, max = 40}, - ["orange_aliens"] = {min = 18, max = 40}, - ["orange_aliens2"] = {min = 18, max = 40}, - ["orange_aliens3"] = {min = 18, max = 40}, - ["orange_aliens4"] = {min = 18, max = 40}, - ["white_pl"] = {min = 18, max = 40}, - ["white_pl2"] = {min = 18, max = 40}, - ["white_pl3"] = {min = 18, max = 40}, - ["white_pl4"] = {min = 18, max = 40}, - ["blue_pl"] = {min = 18, max = 40}, - ["blue_pl2"] = {min = 18, max = 40}, - ["blue_pl3"] = {min = 18, max = 40}, - ["blue_pl4"] = {min = 18, max = 40}, - ["red_pl"] = {min = 18, max = 40}, - ["red_pl2"] = {min = 18, max = 40}, - ["red_pl3"] = {min = 18, max = 40}, - ["red_pl4"] = {min = 18, max = 40}, - ["orange_pl"] = {min = 18, max = 40}, - ["orange_pl2"] = {min = 18, max = 40}, - ["orange_pl3"] = {min = 18, max = 40}, - ["orange_pl4"] = {min = 18, max = 40}, - ["white_trolls"] = {min = 18, max = 40}, - ["white_trolls2"] = {min = 18, max = 40}, - ["white_trolls3"] = {min = 18, max = 40}, - ["white_trolls4"] = {min = 18, max = 40}, - ["blue_trolls"] = {min = 18, max = 40}, - ["blue_trolls2"] = {min = 18, max = 40}, - ["blue_trolls3"] = {min = 18, max = 40}, - ["blue_trolls4"] = {min = 18, max = 40}, - ["red_trolls"] = {min = 18, max = 40}, - ["red_trolls2"] = {min = 18, max = 40}, - ["red_trolls3"] = {min = 18, max = 40}, - ["red_trolls4"] = {min = 18, max = 40}, - ["orange_trolls"] = {min = 18, max = 40}, - ["orange_trolls2"] = {min = 18, max = 40}, - ["orange_trolls3"] = {min = 18, max = 40}, - ["orange_trolls4"] = {min = 18, max = 40}, - ["white_cats"] = {min = 18, max = 40}, - ["white_cats2"] = {min = 18, max = 40}, - ["white_cats3"] = {min = 18, max = 40}, - ["white_cats4"] = {min = 18, max = 40}, - ["blue_cats"] = {min = 18, max = 40}, - ["blue_cats2"] = {min = 18, max = 40}, - ["blue_cats3"] = {min = 18, max = 40}, - ["blue_cats4"] = {min = 18, max = 40}, - ["red_cats"] = {min = 18, max = 40}, - ["red_cats2"] = {min = 18, max = 40}, - ["red_cats3"] = {min = 18, max = 40}, - ["red_cats4"] = {min = 18, max = 40}, - ["orange_cats"] = {min = 18, max = 40}, - ["orange_cats2"] = {min = 18, max = 40}, - ["orange_cats3"] = {min = 18, max = 40}, - ["orange_cats4"] = {min = 18, max = 40}, - -- weed stuff - ["blunts"] = {min = 18, max = 40}, - ["leanblunts"] = {min = 18, max = 40}, - ["dextroblunts"] = {min = 18, max = 40}, - ["chewyblunt"] = {min = 18, max = 40}, - ["blunt"] = {min = 18, max = 40}, - ["specialchocolate"] = {min = 18, max = 40}, - ["specialbrownie"] = {min = 18, max = 40}, - ["specialcookie"] = {min = 18, max = 40}, - ["specialmuffin"] = {min = 18, max = 40}, - ["shatter"] = {min = 18, max = 40}, - ["ciggie"] = {min = 18, max = 40}, - -- meth - ["methbags"] = {min = 18, max = 40}, - -- mescaline - ["driedmescaline"] = {min = 18, max = 40}, - -- shrooms - ["shrooms"] = {min = 18, max = 40}, - -- LSD - ["gratefuldead_tabs"] = {min = 18, max = 40}, - ["bart_tabs"] = {min = 18, max = 40}, - ["pineapple_tabs"] = {min = 18, max = 40}, - ["yinyang_tabs"] = {min = 18, max = 40}, - ["wildcherry_tabs"] = {min = 18, max = 40}, - ["smiley_tabs"] = {min = 18, max = 40}, + ["weed_white-widow"] = {rep = 1,min = 15, max = 24 }, + ["weed_og-kush"] = {rep = 1,min = 15, max = 28 }, + ["weed_skunk"] = {rep = 1,min = 15, max = 31 }, + ["weed_amnesia"] = {rep = 1,min = 18, max = 34 }, + ["weed_purple-haze"] = {rep = 1,min = 18, max = 37}, + ["weed_ak47"] = {rep = 1,min = 18, max = 40}, + ["crack_baggy"] = {rep = 1,min = 18, max = 34}, + ["cokebaggy"] = {rep = 1,min = 18, max = 37}, + -- cokerep = 1, + ["cokebaggystagetwo"] = {rep = 1,min = 18, max = 40}, + ["cokebaggystagethree"] = {rep = 1,min = 18, max = 40}, + -- heroin rep = 1, + ["heroin_ready"] = {rep = 1,min = 18, max = 40}, + ["heroin_readystagetwo"] = {rep = 1,min = 18, max = 40}, + ["heroin_readystagethree"] = {rep = 1,min = 18, max = 40}, + -- crackrep = 1, + ["baggedcracked"] = {rep = 1,min = 18, max = 40}, + ["baggedcrackedstagetwo"] = {rep = 1,min = 18, max = 40}, + ["baggedcrackedstagethree"] = {rep = 1,min = 18, max = 40}, + -- xtc rep = 1, + ["white_playboys"] = {rep = 1,min = 18, max = 40}, + ["white_playboys2"] = {rep = 1,min = 18, max = 40}, + ["white_playboys3"] = {rep = 1,min = 18, max = 40}, + ["white_playboys4"] = {rep = 1,min = 18, max = 40}, + ["blue_playboys"] = {rep = 1,min = 18, max = 40}, + ["blue_playboys2"] = {rep = 1,min = 18, max = 40}, + ["blue_playboys3"] = {rep = 1,min = 18, max = 40}, + ["blue_playboys4"] = {rep = 1,min = 18, max = 40}, + ["red_playboys"] = {rep = 1,min = 18, max = 40}, + ["red_playboys2"] = {rep = 1,min = 18, max = 40}, + ["red_playboys3"] = {rep = 1,min = 18, max = 40}, + ["red_playboys4"] = {rep = 1,min = 18, max = 40}, + ["orange_playboys"] = {rep = 1,min = 18, max = 40}, + ["orange_playboys2"] = {rep = 1,min = 18, max = 40}, + ["orange_playboys3"] = {rep = 1,min = 18, max = 40}, + ["orange_playboys4"] = {rep = 1,min = 18, max = 40}, + ["white_aliens"] = {rep = 1,min = 18, max = 40}, + ["white_aliens2"] = {rep = 1,min = 18, max = 40}, + ["white_aliens3"] = {rep = 1,min = 18, max = 40}, + ["white_aliens4"] = {rep = 1,min = 18, max = 40}, + ["blue_aliens"] = {rep = 1,min = 18, max = 40}, + ["blue_aliens2"] = {rep = 1,min = 18, max = 40}, + ["blue_aliens3"] = {rep = 1,min = 18, max = 40}, + ["blue_aliens4"] = {rep = 1,min = 18, max = 40}, + ["red_aliens"] = {rep = 1,min = 18, max = 40}, + ["red_aliens2"] = {rep = 1,min = 18, max = 40}, + ["red_aliens3"] = {rep = 1,min = 18, max = 40}, + ["red_aliens4"] = {rep = 1,min = 18, max = 40}, + ["orange_aliens"] = {rep = 1,min = 18, max = 40}, + ["orange_aliens2"] = {rep = 1,min = 18, max = 40}, + ["orange_aliens3"] = {rep = 1,min = 18, max = 40}, + ["orange_aliens4"] = {rep = 1,min = 18, max = 40}, + ["white_pl"] = {rep = 1,min = 18, max = 40}, + ["white_pl2"] = {rep = 1,min = 18, max = 40}, + ["white_pl3"] = {rep = 1,min = 18, max = 40}, + ["white_pl4"] = {rep = 1,min = 18, max = 40}, + ["blue_pl"] = {rep = 1,min = 18, max = 40}, + ["blue_pl2"] = {rep = 1,min = 18, max = 40}, + ["blue_pl3"] = {rep = 1,min = 18, max = 40}, + ["blue_pl4"] = {rep = 1,min = 18, max = 40}, + ["red_pl"] = {rep = 1,min = 18, max = 40}, + ["red_pl2"] = {rep = 1,min = 18, max = 40}, + ["red_pl3"] = {rep = 1,min = 18, max = 40}, + ["red_pl4"] = {rep = 1,min = 18, max = 40}, + ["orange_pl"] = {rep = 1,min = 18, max = 40}, + ["orange_pl2"] = {rep = 1,min = 18, max = 40}, + ["orange_pl3"] = {rep = 1,min = 18, max = 40}, + ["orange_pl4"] = {rep = 1,min = 18, max = 40}, + ["white_trolls"] = {rep = 1,min = 18, max = 40}, + ["white_trolls2"] = {rep = 1,min = 18, max = 40}, + ["white_trolls3"] = {rep = 1,min = 18, max = 40}, + ["white_trolls4"] = {rep = 1,min = 18, max = 40}, + ["blue_trolls"] = {rep = 1,min = 18, max = 40}, + ["blue_trolls2"] = {rep = 1,min = 18, max = 40}, + ["blue_trolls3"] = {rep = 1,min = 18, max = 40}, + ["blue_trolls4"] = {rep = 1,min = 18, max = 40}, + ["red_trolls"] = {rep = 1,min = 18, max = 40}, + ["red_trolls2"] = {rep = 1,min = 18, max = 40}, + ["red_trolls3"] = {rep = 1,min = 18, max = 40}, + ["red_trolls4"] = {rep = 1,min = 18, max = 40}, + ["orange_trolls"] = {rep = 1,min = 18, max = 40}, + ["orange_trolls2"] = {rep = 1,min = 18, max = 40}, + ["orange_trolls3"] = {rep = 1,min = 18, max = 40}, + ["orange_trolls4"] = {rep = 1,min = 18, max = 40}, + ["white_cats"] = {rep = 1,min = 18, max = 40}, + ["white_cats2"] = {rep = 1,min = 18, max = 40}, + ["white_cats3"] = {rep = 1,min = 18, max = 40}, + ["white_cats4"] = {rep = 1,min = 18, max = 40}, + ["blue_cats"] = {rep = 1,min = 18, max = 40}, + ["blue_cats2"] = {rep = 1,min = 18, max = 40}, + ["blue_cats3"] = {rep = 1,min = 18, max = 40}, + ["blue_cats4"] = {rep = 1,min = 18, max = 40}, + ["red_cats"] = {rep = 1,min = 18, max = 40}, + ["red_cats2"] = {rep = 1,min = 18, max = 40}, + ["red_cats3"] = {rep = 1,min = 18, max = 40}, + ["red_cats4"] = {rep = 1,min = 18, max = 40}, + ["orange_cats"] = {rep = 1,min = 18, max = 40}, + ["orange_cats2"] = {rep = 1,min = 18, max = 40}, + ["orange_cats3"] = {rep = 1,min = 18, max = 40}, + ["orange_cats4"] = {rep = 1,min = 18, max = 40}, + -- weed stuffrep = 1, + ["blunts"] = {rep = 1,min = 18, max = 40}, + ["leanblunts"] = {rep = 1,min = 18, max = 40}, + ["dextroblunts"] = {rep = 1,min = 18, max = 40}, + ["chewyblunt"] = {rep = 1,min = 18, max = 40}, + ["blunt"] = {rep = 1,min = 18, max = 40}, + ["specialchocolate"] = {rep = 1,min = 18, max = 40}, + ["specialbrownie"] = {rep = 1,min = 18, max = 40}, + ["specialcookie"] = {rep = 1,min = 18, max = 40}, + ["specialmuffin"] = {rep = 1,min = 18, max = 40}, + ["shatter"] = {rep = 1,min = 18, max = 40}, + ["ciggie"] = {rep = 1,min = 18, max = 40}, + -- methrep = 1, + ["methbags"] = {rep = 1,min = 18, max = 40}, + -- mescalinerep = 1, + ["driedmescaline"] = {rep = 1,min = 18, max = 40}, + -- shroomsrep = 1, + ["shrooms"] = {rep = 1,min = 18, max = 40}, + -- LSDrep = 1, + ["gratefuldead_tabs"] = {rep = 1,min = 18, max = 40}, + ["bart_tabs"] = {rep = 1,min = 18, max = 40}, + ["pineapple_tabs"] = {rep = 1,min = 18, max = 40}, + ["yinyang_tabs"] = {rep = 1,min = 18, max = 40}, + ["wildcherry_tabs"] = {rep = 1,min = 18, max = 40}, + ["smiley_tabs"] = {rep = 1,min = 18, max = 40}, -- lean - ["cupoflean"] = {min = 18, max = 40}, - ["cupofdextro"] = {min = 18, max = 40}, + ["cupoflean"] = {rep = 1,min = 18, max = 40}, + ["cupofdextro"] = {rep = 1,min = 18, max = 40}, } - QBConfig.Dealers = {} - - - -- Shop QBConfig -QBConfig.Products = { - [1] = {name = "weed_white-widow_seed", price = 15, amount = 150, minrep = 0}, - [2] = {name = "weed_skunk_seed", price = 15, amount = 150, minrep = 0}, - [3] = {name = "weed_purple-haze_seed", price = 15, amount = 150, minrep = 0}, - [4] = {name = "weed_og-kush_seed", price = 15, amount = 150, minrep = 0}, - [5] = {name = "weed_amnesia_seed", price = 15, amount = 150, minrep = 0}, -} - -QBConfig.ProductsStupidNameRewrite = { - [1] = {name = "weed_whitewidow_seed", price = 15, amount = 150, minrep = 0}, - [2] = {name = "weed_skunk_seed", price = 15, amount = 150, minrep = 0}, - [3] = {name = "weed_purplehaze_seed", price = 15, amount = 150, minrep = 0}, - [4] = {name = "weed_ogkush_seed", price = 15, amount = 150, minrep = 0}, - [5] = {name = "weed_amnesia_seed", price = 15, amount = 150, minrep = 0}, -} - -QBConfig.UseMarkedBills = false -- true for marked bills, false for cash -QBConfig.DeliveryRepGain = 1 -- amount of rep gained per delivery -QBConfig.DeliveryRepLoss = 1 -- amount of rep lost if delivery wrong or late -QBConfig.PoliceDeliveryModifier = 2 -- amount to multiply active cop count by -QBConfig.WrongAmountFee = 2 -- divide the payout by this value for wrong delivery amount -QBConfig.OverdueDeliveryFee = 4 -- divide the payout by this value for overdue delivery +QBConfig.Dealers = {} QBConfig.DeliveryItems = { { item = "weed_brick", minrep = 0, payout = {min = 10, max = 50}}, @@ -254,3 +229,15 @@ QBConfig.DeliveryLocations = { [79] = { ["label"] = "Bahama Mamas", ["coords"] = vector3(-1383.1, -639.99, 28.67),}, } +QBConfig.NoSellZones = { + {loc = vector3(445.11, -991.3, 30.69), width = 10.0, length = 10.0, height = 10.0, rot = 180.0}, +} +QBConfig.SellLevel = { + {price = 0.5, minrep = 0, maxrep = 240, label = 'Rookie'}, + {price = 1.0, minrep = 240, maxrep = 600, label = 'Corner Boy'}, + {price = 1.1, minrep = 600, maxrep = 1200, label = 'Corner Man'}, + {price = 1.2, minrep = 1200, maxrep = 1800, label = 'Dope Peddler'}, + {price = 1.3, minrep = 1800, maxrep = 2400, label = 'Drug Supplier'}, + {price = 1.5, minrep = 2400, maxrep = 4800, label = 'Drug Pusher'}, + {price = 1.75, minrep = 4800, maxrep = 99999999999999, label = 'Drug Lord'}, +} \ No newline at end of file diff --git a/version.txt b/version.txt index cdcb353..6641052 100644 --- a/version.txt +++ b/version.txt @@ -1,2 +1,2 @@ -3.7.2 +3.8.0