2024-01-13 22:23:17 -08:00
local QBCore = exports [ 'qb-core' ]: GetCoreObject ()
2024-03-17 20:05:09 -07:00
local xtcpress = false
2024-01-13 22:23:17 -08:00
2024-05-02 18:34:14 -07:00
RegisterNetEvent ( "md-drugs:client:setpress" , function ( type )
if xtcpress then
Notify ( Lang.xtc . out , 'error' )
2024-03-17 20:05:09 -07:00
else
2024-09-24 15:07:41 -07:00
local coords , head = StartRay2 ()
2024-03-17 20:05:09 -07:00
xtcpress = true
2024-05-02 18:34:14 -07:00
progressbar ( 'Setting Press On The Ground' , 4000 , 'uncuff' )
2024-09-24 15:07:41 -07:00
local press = CreateObject ( "bkr_prop_coke_press_01aa" , coords.x , coords.y , coords.z , true , false , false )
2024-05-02 18:34:14 -07:00
PlaceObjectOnGroundProperly ( press )
2024-10-23 17:44:46 -07:00
SetEntityHeading ( press , head )
2024-05-02 18:34:14 -07:00
local options = {
2024-09-24 15:07:41 -07:00
{
2024-05-02 18:34:14 -07:00
icon = "fas fa-eye" ,
2024-10-23 17:44:46 -07:00
label = Lang.targets . xtc.make ,
2024-09-24 15:07:41 -07:00
distance = 2.0 ,
2024-10-23 17:44:46 -07:00
action = function () TriggerEvent ( "md-drugs:client:XTCMenu" , type ) end ,
onSelect = function () TriggerEvent ( "md-drugs:client:XTCMenu" , type ) end ,
2024-05-02 18:34:14 -07:00
canInteract = function ()
if xtcpress then return true end end
},
{
2024-10-23 17:44:46 -07:00
icon = "fas fa-eye" ,
label = Lang.targets . xtc.pick ,
action = function () TriggerEvent ( "md-drugs:client:GetPressBack" , type , press ) end ,
onSelect = function () TriggerEvent ( "md-drugs:client:GetPressBack" , type , press ) end ,
2024-09-24 15:07:41 -07:00
distance = 2.0 ,
2024-10-23 17:44:46 -07:00
canInteract = function ()
if xtcpress then return true end end
2024-05-02 18:34:14 -07:00
},
}
2024-09-24 15:07:41 -07:00
AddMultiModel ( press , options , nil )
2024-05-02 18:34:14 -07:00
end
2024-10-23 17:44:46 -07:00
end )
2024-05-02 18:34:14 -07:00
RegisterNetEvent ( "md-drugs:client:XTCMenu" , function ( type )
lib.registerContext ({
id = 'XTCmenu' ,
title = 'XTC Menu' ,
options = {
{
2024-05-25 20:54:20 -07:00
icon = GetImage ( 'white_xtc' ),
2024-05-02 18:34:14 -07:00
title = 'White XTC' ,
description = '1 X Raw XTC' ,
event = "md-drugs:client:MakeXTC" ,
args = { data = type , color = 'white' }
},
{
2024-05-25 20:54:20 -07:00
icon = GetImage ( 'red_xtc' ),
2024-05-02 18:34:14 -07:00
title = 'Red XTC' ,
description = '1 X Raw XTC and 1 X Loose Coke' ,
event = "md-drugs:client:MakeXTC" ,
args = { data = type , color = 'red' }
},
{
2024-05-25 20:54:20 -07:00
icon = GetImage ( 'orange_xtc' ),
2024-05-02 18:34:14 -07:00
title = 'Orange XTC' ,
description = '1 X Raw XTC and 1 X Heroin Vial' ,
event = "md-drugs:client:MakeXTC" ,
args = { data = type , color = 'orange' }
},
{
2024-05-25 20:54:20 -07:00
icon = GetImage ( 'blue_xtc' ),
2024-05-02 18:34:14 -07:00
title = 'Blue XTC' ,
description = '1 X Raw XTC and 1 X Crack Rock' ,
event = "md-drugs:client:MakeXTC" ,
args = { data = type , color = 'blue' }
},
}
})
lib.showContext ( 'XTCmenu' )
end )
RegisterNetEvent ( "md-drugs:client:GetPressBack" , function ( type , press )
2024-10-23 17:44:46 -07:00
if not progressbar ( Lang.xtc . pickup , 5000 , 'uncuff' ) then return end
2024-05-02 18:34:14 -07:00
DeleteObject ( press )
xtcpress = false
TriggerServerEvent ( "md-drugs:server:getpressback" , type )
end )
RegisterNetEvent ( "md-drugs:client:stealisosafrole" , function ( data )
2024-10-23 17:44:46 -07:00
if not minigame () then Notify ( Lang.xtc . fail , "error" ) return end
2024-05-02 18:34:14 -07:00
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 )
2024-10-23 17:44:46 -07:00
if not minigame () then Notify ( Lang.xtc . fail , "error" ) return end
2024-05-02 18:34:14 -07:00
if not progressbar ( Lang.xtc . mdp2p , 4000 , 'uncuff' ) then return end
TriggerServerEvent ( "md-drugs:server:stealmdp2p" , data.data )
end )
RegisterNetEvent ( "md-drugs:client:makingrawxtc" , function ( data )
if not ItemCheck ( 'isosafrole' ) then return end
if not ItemCheck ( 'mdp2p' ) then return end
if not progressbar ( Lang.xtc . raw , 4000 , 'uncuff' ) then return end
TriggerServerEvent ( "md-drugs:server:makingrawxtc" , data.data )
end )
RegisterNetEvent ( "md-drugs:client:MakeXTC" , function ( data )
if not ItemCheck ( 'raw_xtc' ) then return end
if not progressbar ( Lang.xtc . pressing , 4000 , 'uncuff' ) then return end
TriggerServerEvent ( "md-drugs:server:makextc" , data )
2024-01-13 22:23:17 -08:00
end )
------------------------------------------------------------------ Stamping
2024-05-02 18:34:14 -07:00
RegisterNetEvent ( "md-drugs:client:stampwhite" , function ( data )
2024-10-23 17:44:46 -07:00
lib.registerContext ({ id = 'stampxtc' , title = 'Stamp XTC Menu' ,
2024-05-02 18:34:14 -07:00
options = {
2024-10-23 17:44:46 -07:00
{ icon = GetImage ( 'white_xtc' ), title = 'White XTC' ,
2024-05-02 18:34:14 -07:00
onSelect = function ()
2024-10-23 17:44:46 -07:00
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
2024-05-02 18:34:14 -07:00
TriggerServerEvent ( "md-drugs:server:stampwhite" , data.data )
2024-10-23 17:44:46 -07:00
end
2024-05-02 18:34:14 -07:00
},
2024-10-23 17:44:46 -07:00
{ icon = GetImage ( 'red_xtc' ), title = 'Red XTC' ,
2024-05-02 18:34:14 -07:00
onSelect = function ()
2024-10-23 17:44:46 -07:00
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
2024-05-02 18:34:14 -07:00
TriggerServerEvent ( "md-drugs:server:stampred" , data.data )
end
},
2024-10-23 17:44:46 -07:00
{ icon = GetImage ( 'orange_xtc' ), title = 'Orange XTC' ,
2024-05-02 18:34:14 -07:00
onSelect = function ()
2024-10-23 17:44:46 -07:00
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
2024-05-02 18:34:14 -07:00
TriggerServerEvent ( "md-drugs:server:stamporange" , data.data )
end ,
},
2024-10-23 17:44:46 -07:00
{ icon = GetImage ( 'blue_xtc' ), title = 'Blue XTC' ,
2024-05-02 18:34:14 -07:00
onSelect = function ()
2024-10-23 17:44:46 -07:00
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
2024-05-02 18:34:14 -07:00
TriggerServerEvent ( "md-drugs:server:stampblue" , data.data )
end
},
}
2024-10-23 17:44:46 -07:00
})
2024-05-02 18:34:14 -07:00
lib.showContext ( 'stampxtc' )
2024-01-13 22:23:17 -08:00
end )
2024-05-02 18:34:14 -07:00
RegisterNetEvent ( "md-drugs:client:getsinglepress" , function ()
2024-10-23 17:44:46 -07:00
if not progressbar ( Lang.xtc . buyp , 4000 , 'uncuff' ) then return end
2024-05-02 18:34:14 -07:00
TriggerServerEvent ( "md-drugs:server:buypress" )
2024-01-13 22:23:17 -08:00
end )
2024-05-02 18:34:14 -07:00
RegisterNetEvent ( "md-drugs:client:exchangepresses" , function ( data )
2024-10-23 17:44:46 -07:00
if not progressbar ( Lang.xtc . buyp , 4000 , 'uncuff' ) then return end
2024-05-02 18:34:14 -07:00
TriggerServerEvent ( "md-drugs:server:upgradepress" , data.data )
2024-01-13 22:23:17 -08:00
end )
2024-05-02 18:34:14 -07:00
RegisterNetEvent ( "md-drugs:client:buypress" , function ()
2024-09-24 15:07:41 -07:00
local img = GetImage ( 'singlepress' )
2024-01-13 22:23:17 -08:00
lib.registerContext ({
id = 'buypresses' ,
title = 'Purchase Presses' ,
options = {
2024-05-02 18:34:14 -07:00
{ 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' }}
2024-01-13 22:23:17 -08:00
}
})
lib.showContext ( 'buypresses' )
end )