diff --git a/client/cocaine.lua b/client/cocaine.lua index 66ebd51..8553d7a 100644 --- a/client/cocaine.lua +++ b/client/cocaine.lua @@ -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 = 'fas fa-hand', label = Lang.targets.coke.pick, action = function() if not pick(loc) then return end end}, loc) end end) @@ -31,7 +31,7 @@ RegisterNetEvent("coke:init", function() 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 = 'fas fa-hand', label = Lang.targets.coke.pick, action = function() if not pick(k) then return end end}, k) end end end) @@ -92,12 +92,12 @@ 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 = "fas fa-sign-in-alt", label = Lang.targets.coke.cut}) + AddBoxZoneMulti('baggcoke', Config.BaggingCoke, { type = "client", event = "md-drugs:client:bagcoke", icon = "fas fa-sign-in-alt", 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 = "fas fa-sign-in-alt", 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 = "fas fa-sign-in-alt", 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..fea3aff 100644 --- a/client/cornerselling.lua +++ b/client/cornerselling.lua @@ -7,7 +7,7 @@ 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') + Notify(Lang.Cornerselling.inveh, 'error') FreezeEntityPosition(targ, false) ClearPedTasks(targ) Wait(10000) @@ -16,7 +16,7 @@ local function sellDrug(item, amount, price, targ) sold = true sell = false 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) @@ -29,7 +29,7 @@ local function sellDrug(item, amount, price, targ) local function deny(targ) PoliceCall(20) targbusy = true - if not progressbar('Telling This Dumbass To Leave!', 4000, 'argue5') then return end + if not progressbar(Lang.Cornerselling.deny, 4000, 'argue5') then return end FreezeEntityPosition(targ, false) ClearPedTasks(targ) Wait(10000) @@ -50,25 +50,17 @@ function Cornersell() 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 = "fas fa-eye", + action = function() sellDrug(item, amount, price, targ) end, + onSelect = 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, + { label = Lang.targets.CornerSell.deny, icon = "fas fa-eye", + action = function() deny(targ) end, + onSelect = function() deny(targ) end, canInteract = function() if not targbusy then return true end end, }, @@ -85,18 +77,18 @@ RegisterNetEvent('md-drugs:client:cornerselling', function() 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') + 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 end else - Notify('You Cant Sell Air', 'error') + Notify(Lang.Cornerselling.nodrugs, 'error') end end) diff --git a/client/deliveries.lua b/client/deliveries.lua index fb3056f..efdc807 100644 --- a/client/deliveries.lua +++ b/client/deliveries.lua @@ -2,47 +2,47 @@ local QBCore = exports['qb-core']:GetCoreObject() local isActive = false RegisterNetEvent('md-drugs:client:opendealermenu', function() local dealermenu = {} + local rep = GetRep() 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 + if rep.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, + } + } + 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 + if rep.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, + } + } + + end + end end + sorter(dealermenu, 'title') + lib.registerContext({id = 'dealermenu',title = "Dealer Menu", options = dealermenu}) lib.showContext('dealermenu') end) @@ -58,11 +58,11 @@ CreateThread(function() local options = { { icon = 'fas fa-user-secret', - label = "Deliver For " .. v.name, + 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, @@ -70,26 +70,21 @@ CreateThread(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) .. '!' ) + Email(Lang.Delivery.emailn, Lang.Delivery.emailsub, string.format(Lang.Delivery.emailcon, amount, 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 - + label = string.format(Lang.targets.Delivery.openm, v.name), + action = function() TriggerEvent('md-drugs:client:opendealermenu') end, + onSelect = function() TriggerEvent('md-drugs:client:opendealermenu') end } } AddMultiModel(dealer[k], options) end end) - +-- TODO add a blip for the delivery location RegisterNetEvent('md-drugs:client:setLocation', function(data) local coord = json.decode(data.coords) if isActive then @@ -102,9 +97,9 @@ RegisterNetEvent('md-drugs:client:setLocation', function(data) Freeze(Buyer, true, 180) AddSingleModel(Buyer, { icon = 'fas fa-user-secret', - label = "Hand Off", + label = Lang.targets.Delivery.hand, action = function() - if not progressbar('Delivering The Package', 4000, 'uncuff') then return end + if not progressbar(Lang.Delivery.pack, 4000, 'uncuff') then return end isActive = false DeletePed(Buyer) RemoveBlip(deliveryBlip) diff --git a/client/functions.lua b/client/functions.lua index 480adfd..b53e097 100644 --- a/client/functions.lua +++ b/client/functions.lua @@ -198,6 +198,17 @@ 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 ItemCheck(item) local success diff --git a/server/consumables.lua b/server/consumables.lua index 344e086..d832447 100644 --- a/server/consumables.lua +++ b/server/consumables.lua @@ -7,16 +7,15 @@ for k, v in pairs (Consumables.Items) do QBCore.Functions.CreateUseableItem(k, f 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 + if v.add == nil then v.add = {hunger = 0} end TriggerClientEvent("md-drugs:client:consumedrugs", source, v.time, v.effect, v.anim, v.progressbartext, v.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) print(stat,statval) diff --git a/shared/english.lua b/shared/english.lua index 6b8d1d3..9b41502 100644 --- a/shared/english.lua +++ b/shared/english.lua @@ -1,5 +1,22 @@ Lang = {} +Lang.targets = { + coke = { + pick = 'Pick Cocaine', + cut = 'Cut Cocaine', + bag = 'Bag Cocaine' + }, + CornerSell = { + sell = 'Sell %s Of %s For $%s', + deny = 'Deny Price' + }, + Delivery = { + Deliver = 'Deliver For %s', + open = 'Open %s Shop', + hand = 'Hand Over' + } +} + Lang.Coke = { -- client side progressbars picking = "Picking Leaves", @@ -22,8 +39,9 @@ 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", @@ -35,6 +53,9 @@ Lang.Cornerselling = { } 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",