├── gd_anticheat
├── __resource.lua
├── client
│ └── main.lua
└── server
│ └── main.lua
├── gd_atc
├── __resource.lua
├── client
│ ├── airportmarkers.lua
│ ├── atc.lua
│ ├── menu.lua
│ └── pedTasking.lua
├── example.lua
└── server
│ └── atc.lua
├── gd_bunker
├── __resource.lua
├── client
│ └── main.lua
└── server
│ └── main.lua
├── gd_corp_vehicles
├── __resource.lua
├── carvariations.meta
├── gfx
│ ├── rsn_et_shipdecalspo102rsn_et_shipdecalspo102_a.png
│ ├── trailers2_sign_1.dds
│ ├── trailers2_sign_1.png
│ ├── trailers2_sign_1_.dds
│ ├── trailers2_sign_3.dds
│ └── trailers2_sign_4.dds
├── handling.meta
├── stream
│ ├── cabs
│ │ ├── custom_phantom3.yft
│ │ ├── custom_phantom3.ytd
│ │ ├── custom_phantom3_hi.yft
│ │ └── vehicles.meta
│ ├── collinsco
│ │ ├── cabs
│ │ │ ├── collinsco_phantom3.yft
│ │ │ ├── collinsco_phantom3.ytd
│ │ │ ├── collinsco_phantom3_hi.yft
│ │ │ ├── window_lf.cwgv
│ │ │ ├── window_rf.cwgv
│ │ │ └── windscreen.cwgv
│ │ ├── trailers
│ │ │ ├── collinsco_tanker.yft
│ │ │ ├── collinsco_tanker.ytd
│ │ │ ├── collinsco_tanker_hi.yft
│ │ │ ├── collinsco_trailers2.yft
│ │ │ ├── collinsco_trailers2.ytd
│ │ │ ├── collinsco_trailers3.yft
│ │ │ └── collinsco_trailers3.ytd
│ │ └── vehicles.meta
│ ├── frllc
│ │ ├── aircraft
│ │ │ ├── carvariations.meta
│ │ │ ├── handling.meta
│ │ │ ├── pavelow.yft
│ │ │ ├── pavelow.ytd
│ │ │ ├── pavelow_hi.yft
│ │ │ ├── vehiclelayouts.meta
│ │ │ └── vehicles.meta
│ │ ├── cab
│ │ │ ├── frllc_hauler2+hi.ytd
│ │ │ ├── frllc_hauler2.yft
│ │ │ ├── frllc_hauler2.ytd
│ │ │ └── frllc_hauler2_hi.yft
│ │ ├── frllc_firesuv.yft
│ │ ├── frllc_firesuv.ytd
│ │ ├── frllc_firesuv_hi.yft
│ │ ├── gfx
│ │ │ ├── emerglights.png
│ │ │ ├── emerglights1.png
│ │ │ ├── emerglights_liberty.png
│ │ │ ├── frllc_template.png
│ │ │ ├── generic_lightbar_e.png
│ │ │ ├── sheriff_lights.png
│ │ │ ├── tahoe_sign_1.dds
│ │ │ ├── tahoe_sign_1.png
│ │ │ └── tahoe_sign_1.xcf
│ │ ├── trailers
│ │ │ ├── frllc_trailers2.yft
│ │ │ ├── frllc_trailers2.ytd
│ │ │ ├── frllc_trailers4+hi.ytd
│ │ │ ├── frllc_trailers4.yft
│ │ │ ├── frllc_trailers4.ytd
│ │ │ ├── frllc_trailers4_hi.yft
│ │ │ ├── frllc_trailers5+hi.ytd
│ │ │ ├── frllc_trailers5.yft
│ │ │ ├── frllc_trailers5.ytd
│ │ │ └── frllc_trailers5_hi.yft
│ │ └── vehicles.meta
│ ├── narwhalcorp
│ │ ├── cab
│ │ │ ├── corp_nar.yft
│ │ │ ├── corp_nar.ytd
│ │ │ ├── corp_nar_hi.yft
│ │ │ ├── handling.meta
│ │ │ └── vehicles.meta
│ │ ├── cabs
│ │ │ ├── corp_nar.yft
│ │ │ ├── corp_nar.ytd
│ │ │ └── corp_nar_hi.yft
│ │ ├── handling.meta
│ │ ├── trailers
│ │ │ ├── narwhalcorp_trailers2.yft
│ │ │ └── narwhalcorp_trailers2.ytd
│ │ └── vehicles.meta
│ ├── postop
│ │ ├── PostOPplane_hi.yft
│ │ ├── postop_armytrailer+hi.ytd
│ │ ├── postop_armytrailer.yft
│ │ ├── postop_armytrailer.ytd
│ │ ├── postop_armytrailer_hi.yft
│ │ ├── postopbox+hi.ytd
│ │ ├── postopbox.yft
│ │ ├── postopbox.ytd
│ │ ├── postopbox_hi.yft
│ │ ├── postopmule+hi.ytd
│ │ ├── postopmule.yft
│ │ ├── postopmule.ytd
│ │ ├── postopmule_hi.yft
│ │ ├── postopplane.yft
│ │ ├── postopplane.ytd
│ │ └── vehicles.meta
│ └── sal
│ │ ├── cab
│ │ ├── sal_packer.yft
│ │ ├── sal_packer.ytd
│ │ ├── sal_packer_hi.yft
│ │ ├── sal_phantom.yft
│ │ ├── sal_phantom.ytd
│ │ └── sal_phantom_hi.yft
│ │ ├── trailers
│ │ ├── captaincorp_trailers2 – Kopi.ytd
│ │ ├── captaincorp_trailers2.yft
│ │ ├── captaincorp_trailers2.ytd
│ │ ├── sal_lowboy.yft
│ │ ├── sal_lowboy.ytd
│ │ ├── sal_lowboy_hi.yft
│ │ ├── sal_tr4+hi.ytd
│ │ ├── sal_tr4.yft
│ │ ├── sal_tr4.ytd
│ │ └── sal_tr4_hi.yft
│ │ └── vehicles.meta
├── vehicle_names.lua
└── vehiclelist.md
├── gd_farm
├── __resource.lua
├── cfg
│ └── fields.lua
├── client
│ ├── Tunnel.lua
│ └── main.lua
├── server
│ ├── main.lua
│ └── obj_loader.lua
└── shared
│ ├── main.lua
│ ├── obj_loader.lua
│ └── utils.lua
├── gd_jobs_bus
├── __resource.lua
├── client
│ ├── Thumbs.db
│ ├── bunker.lua
│ ├── bunkers.lua
│ └── main.lua
└── server
│ └── main.lua
├── gd_jobs_handler
├── __resource.lua
├── client
│ └── main.lua
└── server
│ └── main.lua
├── gd_jobs_helicopter
├── __resource.lua
├── client
│ ├── Thumbs.db
│ ├── airportmarkers.lua
│ └── main.lua
└── server
│ └── main.lua
├── gd_jobs_quarry
├── __resource.lua
├── client
│ ├── Thumbs.db
│ └── main.lua
└── server
│ └── main.lua
├── gd_moneydrop
├── __resource.lua
├── client.lua
└── server.lua
├── gd_pd_radio
├── __resource.lua
├── client
│ ├── airportmarkers.lua
│ ├── atc.lua
│ ├── menu.lua
│ └── pedTasking.lua
├── example.lua
└── server
│ └── atc.lua
├── gd_playerlist
├── __resource.lua
├── html
│ ├── css
│ │ └── style.css
│ ├── font
│ │ ├── EmojiOneColor-SVGinOT.ttf
│ │ ├── roboto-condensed.ttf
│ │ └── roboto-regular.ttf
│ ├── img
│ │ ├── Thumbs.db
│ │ ├── spritesheet.png
│ │ ├── spritesheet.xcf
│ │ └── test.png
│ └── index.html
├── playerlist.lua
├── rank_special.lua
└── server.lua
├── gd_slots_vrp
├── README
├── __resource.lua
├── client.lua
├── images
│ ├── 1080p.jpg
│ ├── background.png
│ ├── reddit_icons_small – Kopi.png
│ ├── reddit_icons_small.png
│ └── reels_bg.png
├── index.html
├── server.lua
├── slots.css
├── slots.js
└── sounds
│ ├── reel_stop.wav
│ └── win.wav
├── gd_speedometer
├── __resource.lua
├── client
│ ├── Thumbs.db
│ ├── main.lua
│ └── meter.png
├── meter.png
├── pdown.ttf
├── server
│ └── sv_fuel.lua
└── ui.html
├── gd_trafficlights
├── __resource.lua
├── client
│ └── main.lua
├── server
│ └── main.lua
└── shared
│ └── main.lua
├── gd_utils
├── __resource.lua
├── client
│ ├── disable_vehicle_weapons.lua
│ └── main.lua
├── readme.md
├── server
│ └── main.lua
└── shared
│ └── main.lua
├── gd_vehspawn
├── __resource.lua
├── client.lua
└── server.lua
├── gd_vrp_edits
├── client
│ └── map.lua
└── modules
│ ├── item_transformer.lua
│ └── map.lua
├── readme.md
├── tt_help
├── __resource.lua
├── client.lua
├── discord.png
├── help.html
└── server.lua
└── tt_mmga
├── __resource.lua
├── client.lua
└── server.lua
/gd_anticheat/__resource.lua:
--------------------------------------------------------------------------------
1 |
2 | client_script 'client/main.lua'
3 |
4 | server_script '@vrp/lib/utils.lua'
5 | server_script 'server/main.lua'
6 |
--------------------------------------------------------------------------------
/gd_anticheat/server/main.lua:
--------------------------------------------------------------------------------
1 | local webhook = "https://discordapp.com/api/webhooks/409134895911403540/XQlV2y5PsPBI_YR7Eqmlw1pjhPSa5SRu2X8lC5-fqBIzq0aakY3UR09crRLoag_fexhH"
2 |
3 | local Proxy = module("vrp", "lib/Proxy")
4 |
5 | vRP = Proxy.getInterface("vRP")
6 |
7 | config = {
8 | infractionFormat = "**%s**\nPlayer `%s`, id `%i`\nInfractions: **%i**\nFlags:%s\nData:%s"
9 | }
10 |
11 | local function log(text)
12 | print("[gd_anticheat] " .. text)
13 | end
14 |
15 | -- Thanks @BlueTheFurry
16 | function sendWebhookMessage(webhook,message)
17 | if webhook ~= "none" then
18 | PerformHttpRequest(webhook, function(err, text, headers) end, 'POST', json.encode({content = message}), { ['Content-Type'] = 'application/json' })
19 | end
20 | end
21 |
22 | AddEventHandler("vRP:playerSpawn", function(user_id, source, first_spawn)
23 | TriggerClientEvent("gd_anticheat:enable", source, true)
24 | end)
25 |
26 |
27 | function reportInfraction(source, infraction, total)
28 | local source = source
29 | local user_id = vRP.getUserId({source})
30 | local name = GetPlayerName(source)
31 | local data = infraction.data
32 | local infractionName = infraction.name
33 | local flags = ""
34 | local dataString = ""
35 | for k,v in next, data do
36 | local p = ""
37 | if (type(v) == 'table') then
38 | p = "{"
39 | local _d = false
40 | for _k,_v in next, v do
41 | _d = true
42 | p = p .. "\"" .. tostring(_v) .. "\","
43 | end
44 | if _d then
45 | p = p:sub(1,-2)
46 | end
47 | p = p .. "}"
48 | else
49 | p = tostring(v)
50 | end
51 | dataString = dataString .. (" `%s = %s`"):format(tostring(k), tostring(p))
52 | end
53 | if vRP.hasGroup({user_id, "admin"}) or
54 | vRP.hasPermission({user_id, "player.kick"}) then
55 | flags = flags .. (" `%s = %s`"):format("staff", "true")
56 | end
57 |
58 | log("Received infraction: " .. name .. " (" .. infractionName .. ")")
59 | sendWebhookMessage(webhook, (config.infractionFormat):format(infractionName, name, user_id, total, flags, dataString))
60 | end
61 |
62 | RegisterNetEvent("gd_anticheat:infraction")
63 | AddEventHandler("gd_anticheat:infraction", function(infraction, total)
64 | local source = source
65 | reportInfraction(source, infraction, total)
66 | end)
67 |
--------------------------------------------------------------------------------
/gd_atc/__resource.lua:
--------------------------------------------------------------------------------
1 | client_script 'client/atc.lua'
2 | client_script 'client/menu.lua'
3 | client_script 'client/pedTasking.lua'
4 | client_script 'client/airportmarkers.lua'
5 |
6 | server_script 'server/atc.lua'
--------------------------------------------------------------------------------
/gd_atc/client/atc.lua:
--------------------------------------------------------------------------------
1 | RegisterNetEvent("atc:startFlashingBlip")
2 | AddEventHandler("atc:startFlashingBlip", function(pos, blipid, time, col, override)
3 | if IsPedInAnyPlane(GetPlayerPed(-1)) or IsPedInAnyHeli(GetPlayerPed(-1)) or (override) then
4 | local blip = AddBlipForCoord(pos.x, pos.y, pos.z)
5 | SetBlipSprite(blip, blipid)
6 | SetBlipColour(blip, col)
7 | SetBlipDisplay(blip, 8)
8 | SetBlipFlashes(blip, true)
9 | SetBlipFlashInterval(blip, 400)
10 | SetTimeout(time * 1000, function()
11 | RemoveBlip(blip)
12 | end)
13 | end
14 | end)
15 |
16 | RegisterNetEvent("atc:getMessage")
17 | AddEventHandler("atc:getMessage", function(msg, override)
18 | if IsPedInAnyPlane(GetPlayerPed(-1)) or IsPedInAnyHeli(GetPlayerPed(-1)) or (override) then
19 | TriggerEvent('chatMessage', "", {255, 0, 0}, msg)
20 | end
21 | end)
22 |
23 | Citizen.CreateThread(function()
24 | local inAircraft = false
25 | while true do
26 | Wait(50)
27 | if not inAircraft and (IsPedInAnyPlane(GetPlayerPed(-1)) or IsPedInAnyHeli(GetPlayerPed(-1))) then
28 | SetNotificationTextEntry("STRING")
29 | AddTextComponentString("~w~Press ~g~TAB ~w~to open the ~y~ATC menu~w~.\nIt's ~r~mandatory ~w~to use when piloting!")
30 | DrawNotification(false, false)
31 | end
32 | inAircraft = (IsPedInAnyPlane(GetPlayerPed(-1)) or IsPedInAnyHeli(GetPlayerPed(-1)))
33 | end
34 | end)
35 |
--------------------------------------------------------------------------------
/gd_atc/client/pedTasking.lua:
--------------------------------------------------------------------------------
1 | local blipLocs = {
2 | {name = "Union Depository Dropoff", x = -7.328112, y = -655.921082, z = 32.451847, blipid = 500, blipcol = 5},
3 | {name = "Blaine County Fleeca Bank", x = 1177.095459, y = 2711.752441, z = 37.097763, blipid = 500, blipcol = 2},
4 | {name = "Alta Fleeca Bank", x = 309.974792, y = -282.962646, z = 53.174511, blipid = 500, blipcol = 2},
5 | {name = "Big Bank Place", x = 256.424622, y = 225.909988, z = 100.875717, blipid = 500, blipcol = 2},
6 | {name = "Rockford Hills Fleeca Bank", x = -1212.107422, y = -335.944550, z = 36.790771, blipid = 500, blipcol = 2},
7 | {name = "Legion Square Fleeca Bank", x = 145.850647, y = -1044.619751, z = 28.377804, blipid = 500, blipcol = 2},
8 | {name = "Banham Canyon Fleeca Bank", x = -2957.513184, y = 480.322998, z = 14.706840, blipid = 500, blipcol = 2},
9 | {name = "Paleto Bay Savings Bank", x = -105.192596, y = 6476.201172, z = 30.626711, blipid = 500, blipcol = 2}
10 | }
11 |
12 | function setBlipName(blip, name)
13 | BeginTextCommandSetBlipName("STRING")
14 | AddTextComponentString(name)
15 | EndTextCommandSetBlipName(blip)
16 | end
17 |
18 | local inveh = false
19 | local blips = {}
20 |
21 | Citizen.CreateThread(function()
22 | while true do
23 | Citizen.Wait(5)
24 | local newInveh = GetEntityModel(GetVehiclePedIsIn(GetPlayerPed(-1), true)) == GetHashKey("STOCKADE") or IsControlPressed(1, 29)
25 | if not inveh and newInveh then
26 | for k,v in next, blipLocs do
27 | local blip = AddBlipForCoord(v.x, v.y, v.z)
28 | SetBlipSprite(blip, v.blipid)
29 | SetBlipColour(blip, v.blipcol)
30 | SetBlipAsShortRange(blip, true)
31 | setBlipName(blip, v.name)
32 | table.insert(blips, blip)
33 | end
34 | end
35 | if inveh and not newInveh then
36 | for k,v in next, blips do
37 | RemoveBlip(v)
38 | end
39 | blips = {}
40 | end
41 | inveh = newInveh
42 | end
43 | end)
44 |
45 | function reqModel(model)
46 | model = GetHashKey(model)
47 | RequestModel(model)
48 | while not HasModelLoaded(model) do Wait(5) end
49 | return model
50 | end
51 |
52 | function createVehicleThatFollowsVehicle(vehicleModel, vehicleToFollow, driverModel, x, y, z, heading, method, distance)
53 | local vehModel = reqModel(vehicleModel)
54 | local pedModel = reqModel(driverModel)
55 |
56 | local veh = CreateVehicle(vehModel, x, y, z, heading, true, false)
57 | local ped = CreatePedInsideVehicle(veh, 4, pedModel, -1, true, false)
58 | TaskVehicleEscort(ped, veh, vehicleToFollow, method or -1, 30.0, 786469, distance or 2.0, 0, 100.0)
59 | return veh, ped
60 | end
61 |
62 | function fillVehicleWithPeds(veh, pedsModel)
63 | local pedModel = reqModel(pedsModel)
64 | for i=1, GetVehicleMaxNumberOfPassengers(veh) do
65 | CreatePedInsideVehicle(veh, 4, pedModel, i, true, false)
66 | end
67 | end
68 |
69 | function takeOwnershipOfPedAndVehicle(ped, vehicle)
70 | local pedModel = GetEntityModel(ped)
71 | local vehModel = GetEntityModel(veh)
72 | local vehPos = GetEntityCoords(veh)
73 | local vehHeading = GetEntityHeading(veh)
74 |
75 | DeleteEntity(veh)
76 | DeleteEntity(ped)
77 | local _v = CreateVehicle(vehModel, vehPos.x, vehPos.y, vehPos.z, vehHeading, true, false)
78 | local _p = CreatePedInsideVehicle(_v, 4, pedModel, -1, true, false)
79 |
80 | return _p, _v
81 | end
82 |
83 | local job_start = {name = "Lombank West", x = -1568.092407, y = -530.758057, z = 34.291264}
84 | local job_end = {name = "The Oriental", x = 293.157623, y = 177.280731, z = 102.901276}
85 | local job = {}
86 |
87 | local job_spawn = {
88 | {name = "stretch", model = "ig_bankman", x = -1556.032837, y = -547.315674, z = 30.004879, h = 25.0, cb = function(v, p) SetBlipColour(AddBlipForEntity(v), 2) job.veh = v job.ped = p end},
89 | {name = "police3", model = "s_m_y_cop_01", x = -1559.464600, y = -550.922546, z = 28.676392, h = 25.0, cb = function(v, p) SetVehicleSiren(v, true) AddBlipForEntity(v) job.pd = v job.pdped = p end}
90 | }
91 |
92 | function drawMarker(x,y,z)
93 | DrawMarker(1, x, y, z, 0, 0, 0, 0, 0, 0, 5.0, 5.0, 1.0, 150, 150, 0, 200, false, false, 0, false)
94 | end
95 |
96 | function startJob()
97 | job.active = true
98 | local ped = GetPlayerPed(-1)
99 | local veh = GetVehiclePedIsIn(ped, false)
100 | AddBlipForEntity(veh)
101 | for k,v in next, job_spawn do
102 | veh, ped = createVehicleThatFollowsVehicle(v.name, veh, v.model, v.x, v.y, v.z, v.h)
103 | v.cb(veh, ped)
104 | end
105 | end
106 |
107 |
108 | Citizen.CreateThread(function()
109 |
110 | while true do
111 | local ply = GetPlayerPed(-1)
112 | local pos = GetEntityCoords(ply)
113 | if next(job) ~= nil then
114 | -- On job
115 | drawMarker(job_end.x, job_end.y, job_end.z)
116 | else
117 | -- Not on job
118 | drawMarker(job_start.x, job_start.y, job_start.z)
119 | if GetDistanceBetweenCoords(job_start.x, job_start.y, job_start.z, pos.x, pos.y, pos.z) < 5 then
120 | if IsControlJustPressed(1, 38) then
121 | startJob()
122 | end
123 | end
124 | end
125 | Wait(1)
126 | end
127 |
128 |
129 |
130 | -- local desti = {name = "r", x = 1012.028992, y = 289.083405, z = 81.888252}
131 | --
132 | -- local veh, ped = createVehicleThatFollowsVehicle("police3", nil, "s_m_y_cop_01", -1054.027710, -889.096558, 3.801936, -45.0)
133 | -- local veh2, ped2 = createVehicleThatFollowsVehicle("stockade", veh, "s_m_y_cop_01", -1067.088623, -896.252136 + 5.0, 3.392769, -45.0)
134 | -- local veh3, ped3 = createVehicleThatFollowsVehicle("stockade", veh2, "s_m_y_cop_01", -1067.088623, -896.252136, 3.392769, -45.0)
135 | -- local veh4, ped4 = createVehicleThatFollowsVehicle("stockade", veh3, "s_m_y_cop_01", -1067.088623, -896.252136 - 5.0, 3.392769, -45.0)
136 | -- local veh5, ped5 = createVehicleThatFollowsVehicle("riot", veh4, "s_m_y_cop_01", -1079.150513, -903.233887, 2.889246, -45.0)
137 | --
138 | -- SetBlipSprite(AddBlipForEntity(veh),58)
139 | --
140 | -- fillVehicleWithPeds(veh, "s_m_y_cop_01")
141 | -- fillVehicleWithPeds(veh5, "s_m_y_swat_01")
142 | -- SetVehicleSiren(veh, true)
143 | -- SetVehicleSiren(veh5, true)
144 | --
145 | -- TaskVehicleDriveWander(ped, veh, 5.0, 786469)
146 | -- local desti = {name = "r", x = 1012.028992, y = 289.083405, z = 81.888252}
147 | --
148 | -- local veh, ped = createVehicleThatFollowsVehicle("adder", nil, "s_m_y_cop_01", -1054.027710, -889.096558, 3.801936, -45.0)
149 | -- for i = 1,20 do
150 | -- local _v, _p = createVehicleThatFollowsVehicle("police3", veh, "s_m_y_cop_01", -1067.088623 - 5*i, -896.252136 - 2*i, 3.392769, -45.0)
151 | -- SetVehicleSiren(_v, true)
152 | -- SetBlipSprite(AddBlipForEntity(_v),42)
153 | -- end
154 | -- SetPedIntoVehicle(GetPlayerPed(-1), veh, 0)
155 | --
156 | -- SetBlipSprite(AddBlipForEntity(veh),58)
157 | --
158 | -- SetVehicleSiren(veh3, true)
159 | -- SetVehicleSiren(veh4, true)
160 | -- SetVehicleSiren(veh5, true)
161 | --
162 | -- TaskVehicleDriveWander(ped, veh, 1000.0, 786468)
163 | end)
--------------------------------------------------------------------------------
/gd_atc/example.lua:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/glitchdetector/fivem_gd_package/50e3c35f6d4446420fdf65dd1c5e2e8f7f854d30/gd_atc/example.lua
--------------------------------------------------------------------------------
/gd_atc/server/atc.lua:
--------------------------------------------------------------------------------
1 | RegisterServerEvent("atc:flashingBlip")
2 | AddEventHandler("atc:flashingBlip", function(pos, blipid, time, col)
3 | TriggerClientEvent("atc:startFlashingBlip", -1, pos, blipid, time, col)
4 | end)
5 |
6 | RegisterServerEvent("atc:message")
7 | AddEventHandler("atc:message", function(msg, override)
8 | TriggerClientEvent("atc:getMessage", -1, msg, override)
9 | end)
--------------------------------------------------------------------------------
/gd_bunker/__resource.lua:
--------------------------------------------------------------------------------
1 | description 'Bunkers by GlitchDetector'
2 |
3 | -- Server
4 | server_scripts {
5 | 'server/main.lua'
6 | }
7 |
8 | -- Client
9 | client_scripts {
10 | 'client/main.lua'
11 | }
--------------------------------------------------------------------------------
/gd_bunker/client/main.lua:
--------------------------------------------------------------------------------
1 | local bunkerName = "The Bunker"
2 | local enterBunkerText = "Press ~g~E ~w~to enter ~g~%s ~w~from ~g~%s"
3 | local exitBunkerText = "Press ~g~E ~w~to exit to ~g~%s"
4 | local spawnVehicleText = "Press ~g~E ~w~to spawn a ~g~%s"
5 |
6 | local teleportBlock = false
7 | local vehicleBlock = false
8 |
9 | local bunkerTeleportPoints = {
10 | {
11 | name = "Zancudo",
12 | from = {x = -2051.314697, y = 3237.110596, z = 30.501234},
13 | to = {x = 902.784058, y = -3182.513916, z = -98.054276}
14 | },
15 | {
16 | name = "Paleto Bay",
17 | from = {x = -83.324051, y = 6239.627441, z = 30.090574},
18 | to = {x = 921.602051, y = -3194.250977, z = -99.262421},
19 | },
20 | {
21 | name = "Union Depository",
22 | from = {x = 10.445343, y = -671.406250, z = 32.449543},
23 | to = {x = 857.028198, y = -3249.832764, z = -99.340828},
24 | },
25 | {
26 | name = "Sandy Shores",
27 | from = {x = 492.929291, y = 3014.827881, z = 40.017887},
28 | to = {x = 893.823608, y = -3245.822266, z = -99.261101},
29 | }
30 | }
31 | local bunkerVehicleSpawners = {
32 | {name = "Caddy", vehicle = "caddy3", x = 883.091309, y = -3240.131592, z = -99.278366}
33 | }
34 |
35 | --{name = "Ramp Exit", x = 893.823608, y = -3245.822266, z = -99.261101},
36 | --{name = "Zancudo Bunker Enterance", x = -2051.314697, y = 3237.110596, z = 30.501234},
37 | --{name = "Paleto Bay Bunker Enterance", x = -83.324051, y = 6239.627441, z = 30.090574},
38 | --{name = "Union Bank Bunker Enterance", x = 10.445343, y = -671.406250, z = 32.449543},
39 | --{name = "Bunker Union Bank Exit", x = 857.028198, y = -3249.832764, z = -99.340828},
40 | --{name = "Bunker Zancudo Exit", x = 902.784058, y = -3182.513916, z = -98.054276},
41 | --{name = "Bunker Paleto Bay Exit", x = 921.602051, y = -3194.250977, z = -99.262421},
42 | --{name = "Caddy3 Spawnpoint", x = 883.091309, y = -3240.131592, z = -99.278366},
43 |
44 | function drawMarker(data)
45 | DrawMarker(1, data.x, data.y, data.z, 0,0,0,0,0,0,1.0,1.0,1.0, 255,255,255,150, 0,0,0,0)
46 | end
47 |
48 | function isInMarker(data)
49 | local x = data.x
50 | local y = data.y
51 | local z = data.z
52 | local p = GetEntityCoords(GetPlayerPed(-1))
53 | local zDist = math.abs(z - p.z)
54 | return (GetDistanceBetweenCoords(x, y, z, p.x, p.y, p.z) < 3 and zDist < 2)
55 | end
56 |
57 | function isEPressed()
58 | return IsControlJustPressed(0, 38)
59 | end
60 |
61 | function promptTeleport(data, name, entry)
62 | if teleportBlock then return end
63 | if entry > 0 then
64 | drawText(string.format(enterBunkerText, bunkerName, name))
65 | else
66 | drawText(string.format(exitBunkerText, name))
67 | end
68 |
69 | if isEPressed() then
70 | teleportBlock = true
71 | SetTimeout(2000, function()
72 | teleportBlock = false
73 | end)
74 | SetEntityCoords(GetPlayerPed(-1), data.x, data.y, data.z + 0.5, 0, 0, 0, 0)
75 | end
76 | end
77 |
78 | function promptSpawn(data, vehicle)
79 | if vehicleBlock then return end
80 | drawText(string.format(spawnVehicleText, data.name))
81 | if isEPressed() then
82 | vehicleBlock = true
83 | RequestModel(GetHashKey(vehicle))
84 | while not HasModelLoaded(GetHashKey(vehicle)) do Citizen.Wait(5) end
85 | local veh = CreateVehicle(GetHashKey(vehicle), data.x, data.y, data.z, 0.0, true, 0)
86 | SetPedIntoVehicle(GetPlayerPed(-1), veh, -1)
87 | SetTimeout(2 * 60 * 1000, function()
88 | vehicleBlock = false
89 | if DoesEntityExist(veh) then DeleteEntity(veh) end
90 | end)
91 | end
92 | end
93 |
94 | function EnableInteriorProp(interior, prop)
95 | return Citizen.InvokeNative(0x55E86AF2712B36A1, interior, prop)
96 | end
97 |
98 | function drawText(text)
99 | Citizen.InvokeNative(0xB87A37EEB7FAA67D,"STRING")
100 | AddTextComponentString(text)
101 | Citizen.InvokeNative(0x9D77056A530643F6, 100, true)
102 | end
103 |
104 | local vehIndex = {}
105 |
106 | function PopulateVehicleIndex()
107 | local handle, veh = FindFirstVehicle()
108 | local finished = false -- FindNextPed will turn the first variable to false when it fails to find another ped in the index
109 | repeat
110 | if DoesEntityExist(veh) then
111 | vehIndex[veh] = {}
112 | Citizen.Trace("Vehicle: " .. veh)
113 | SetVehicleCustomPrimaryColour(veh, 255, 255, 0)
114 | end
115 | finished, veh = FindNextVehicle(handle) -- first param returns true while entities are found
116 | until not finished
117 | EndFindVehicle(handle)
118 | end
119 |
120 | Citizen.CreateThread(
121 | function()
122 |
123 | PopulateVehicleIndex()
124 |
125 | -- Bunkers - Exteriors
126 | RequestIpl("gr_case9_bunkerclosed")
127 |
128 | -- Bunkers - Interior: 892.6384, -3245.8664, -98.2645
129 | RequestIpl("gr_entrance_placement")
130 | RequestIpl("grdlc_int_01_shell")
131 | RequestIpl("gr_grdlc_int_01")
132 | RequestIpl("gr_grdlc_int_02")
133 | RequestIpl("gr_grdlc_interior_placement")
134 | RequestIpl("gr_grdlc_interior_placement_interior_0_grdlc_int_01_milo_")
135 | RequestIpl("gr_grdlc_interior_placement_interior_1_grdlc_int_02_milo_")
136 |
137 | RequestIpl("imp_impexp_interior_placement")
138 | RequestIpl("imp_impexp_interior_01")
139 | RequestIpl("imp_impexp_interior_02")
140 | RequestIpl("imp_impexp_intwaremed")
141 | RequestIpl("imp_impexp_mod_int_01")
142 | RequestIpl("imp_impexp_interior_placement_interior_0_impexp_int_01_milo_")
143 | RequestIpl("imp_impexp_interior_placement_interior_1_impexp_intwaremed_milo_")
144 | RequestIpl("imp_impexp_interior_placement_interior_2_impexp_mod_int_01_milo_")
145 | RequestIpl("imp_impexp_interior_placement_interior_3_impexp_int_02_milo_")
146 |
147 | RequestIpl("sm_smugdlc_interior_placement")
148 | RequestIpl("sm_smugdlc_interior_placement_interior_0_smugdlc_int_01_milo_")
149 | RequestIpl("sm_smugdlc_int_01")
150 |
151 | RequestIpl("gr_grdlc_yatch_placement")
152 | RequestIpl("gr_heist_yatch2")
153 | RequestIpl("gr_heist_yatch2_bar")
154 | RequestIpl("gr_heist_yatch2_bedrm")
155 | RequestIpl("gr_heist_yatch2_bridge")
156 | RequestIpl("gr_heist_yatch2_enginrm")
157 | RequestIpl("gra_heist_yatch2_lounge")
158 |
159 | local pos = GetEntityCoords(GetPlayerPed(-1))
160 | local interior = GetInteriorAtCoords(pos.x, pos.y, pos.z)
161 | --interior = 81897539
162 | Citizen.InvokeNative(0x2CA429C029CCF247, interior)
163 | Citizen.Trace("ID:" .. interior)
164 | Citizen.Trace("Ready:" .. tostring(IsInteriorReady(interior)))
165 | Citizen.Trace("Disabled:" .. tostring(IsInteriorDisabled(interior)))
166 | Citizen.Trace("Valid:" .. tostring(IsValidInterior(interior)))
167 | local pos = GetOffsetFromInteriorInWorldCoords(interior, 0.0, 0.0, 0.0)
168 | Citizen.Trace("Pos: " .. pos.x .. ", " .. pos.y .. ", " .. pos.y .. " ")
169 |
170 |
171 | Citizen.Trace("yatch")
172 |
173 | EnableInteriorProp(258561,"standard_bunker_set")
174 | EnableInteriorProp(258561,"Bunker_Style_C")
175 | EnableInteriorProp(258561,"Office_Upgrade_set")
176 | EnableInteriorProp(258561,"Gun_schematic_set")
177 | EnableInteriorProp(258561,"security_upgrade")
178 | EnableInteriorProp(258561,"gun_range_lights")
179 | EnableInteriorProp(258561,"gun_locker_upgrade")
180 | RefreshInterior(258561)
181 |
182 | EnableInteriorProp(252673,"car_floor_hatch")
183 | EnableInteriorProp(252673,"branded_style_set")
184 | RefreshInterior(252673)
185 |
186 | --[[local i = 0
187 | local j = 0
188 | local n = 0
189 | for j = 0, 53 do
190 | for i = 0, 10 do
191 | local blip = AddBlipForCoord(-4000.0 + i * 128, -2000.0 + j * 128, 0)
192 | SetBlipSprite(blip, 0 + n)
193 | n = n + 1
194 | end
195 | end]]
196 |
197 | while true do
198 | Citizen.Wait(1)
199 | for k,v in next, bunkerTeleportPoints do
200 | drawMarker(v.from)
201 | drawMarker(v.to)
202 | if isInMarker(v.from) then
203 | promptTeleport(v.to, v.name, 1)
204 | end
205 | if isInMarker(v.to) then
206 | promptTeleport(v.from, v.name, 0)
207 | end
208 | end
209 | for k,v in next, bunkerVehicleSpawners do
210 | drawMarker(v)
211 | if isInMarker(v) then
212 | promptSpawn(v, v.vehicle)
213 | end
214 | end
215 | end
216 | end
217 | )
218 |
--------------------------------------------------------------------------------
/gd_bunker/server/main.lua:
--------------------------------------------------------------------------------
1 | --[[local Proxy = require("resources/vRP/lib/Proxy")
2 | local Tunnel = require("resources/vRP/lib/Tunnel")
3 |
4 | vRP = Proxy.getInterface("vRP")
5 | vRPClient = Tunnel.getInterface("vRP","gd_bunker")
6 |
7 | local bunkerEnterances = {
8 |
9 | }
10 | local bunkerPosition = {
11 |
12 | }
13 |
14 | local playerEntry = {}]]
--------------------------------------------------------------------------------
/gd_corp_vehicles/__resource.lua:
--------------------------------------------------------------------------------
1 | files {
2 | 'stream/cabs/vehicles.meta',
3 | 'stream/collinsco/vehicles.meta',
4 | 'stream/frllc/vehicles.meta',
5 | 'stream/narwhalcorp/vehicles.meta',
6 | --'stream/narwhalcorp/cab/vehicles.meta',
7 | --'stream/narwhalcorp/cab/handling.meta',
8 | 'stream/postop/vehicles.meta',
9 | 'stream/sal/vehicles.meta',
10 | 'carvariations.meta',
11 | 'handling.meta'
12 | }
13 |
14 | data_file 'HANDLING_FILE' 'handling.meta'
15 |
16 | -- General
17 | data_file 'VEHICLE_METADATA_FILE' 'stream/cabs/vehicles.meta'
18 | -- Collinsco
19 | data_file 'VEHICLE_METADATA_FILE' 'stream/collinsco/vehicles.meta'
20 | -- FRLLC
21 | data_file 'VEHICLE_METADATA_FILE' 'stream/frllc/vehicles.meta'
22 | -- Narwhalcorp
23 | data_file 'VEHICLE_METADATA_FILE' 'stream/narwhalcorp/vehicles.meta'
24 | --data_file 'VEHICLE_METADATA_FILE' 'stream/narwhalcorp/cab/vehicles.meta'
25 | --data_file 'HANDLING_FILE' 'stream/narwhalcorp/cab/handling.meta'
26 | -- Postop
27 | data_file 'VEHICLE_METADATA_FILE' 'stream/postop/vehicles.meta'
28 | -- SAL
29 | data_file 'VEHICLE_METADATA_FILE' 'stream/sal/vehicles.meta'
30 |
31 | data_file 'VEHICLE_VARIATION_FILE' 'carvariations.meta'
32 |
33 | client_script 'vehicle_names.lua'
34 |
--------------------------------------------------------------------------------
/gd_corp_vehicles/carvariations.meta:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | collinsco_tanker
5 |
6 |
7 |
8 | 131
9 | 131
10 | 111
11 | 6
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 | 131
27 | 131
28 | 111
29 | 6
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 | 0_default_modkit
45 |
46 |
47 |
48 |
49 |
50 | Standard White
51 |
52 |
53 |
54 | White Plate 2
55 |
56 |
57 |
58 | Blue Plate
59 |
60 |
61 |
62 | Yellow Plate
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 | collinsco_phantom3
72 |
73 |
74 |
75 | 14
76 | 14
77 | 0
78 | 156
79 |
80 |
81 |
82 |
83 |
84 |
85 |
86 |
87 |
88 |
89 |
90 |
91 |
92 |
93 | 0_default_modkit
94 |
95 |
96 |
97 |
98 |
99 | Standard White
100 |
101 |
102 |
103 |
104 |
105 |
106 |
107 |
108 | custom_phantom3
109 |
110 |
111 |
112 | 14
113 | 14
114 | 0
115 | 156
116 |
117 |
118 |
119 |
120 |
121 |
122 |
123 |
124 |
125 |
126 |
127 |
128 |
129 |
130 | 0_default_modkit
131 |
132 |
133 |
134 |
135 |
136 | Standard White
137 |
138 |
139 |
140 |
141 |
142 |
143 |
144 |
145 | frllc_firesuv
146 |
147 |
148 |
149 | 134
150 | 134
151 | 156
152 | 156
153 |
154 |
155 |
156 |
157 |
158 |
159 |
160 |
161 |
162 |
163 |
164 |
165 |
166 |
167 | 157_massacaro2_modkit
168 |
169 |
170 |
171 |
172 |
173 |
174 |
175 |
176 |
177 |
178 |
--------------------------------------------------------------------------------
/gd_corp_vehicles/gfx/rsn_et_shipdecalspo102rsn_et_shipdecalspo102_a.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/glitchdetector/fivem_gd_package/50e3c35f6d4446420fdf65dd1c5e2e8f7f854d30/gd_corp_vehicles/gfx/rsn_et_shipdecalspo102rsn_et_shipdecalspo102_a.png
--------------------------------------------------------------------------------
/gd_corp_vehicles/gfx/trailers2_sign_1.dds:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/glitchdetector/fivem_gd_package/50e3c35f6d4446420fdf65dd1c5e2e8f7f854d30/gd_corp_vehicles/gfx/trailers2_sign_1.dds
--------------------------------------------------------------------------------
/gd_corp_vehicles/gfx/trailers2_sign_1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/glitchdetector/fivem_gd_package/50e3c35f6d4446420fdf65dd1c5e2e8f7f854d30/gd_corp_vehicles/gfx/trailers2_sign_1.png
--------------------------------------------------------------------------------
/gd_corp_vehicles/gfx/trailers2_sign_1_.dds:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/glitchdetector/fivem_gd_package/50e3c35f6d4446420fdf65dd1c5e2e8f7f854d30/gd_corp_vehicles/gfx/trailers2_sign_1_.dds
--------------------------------------------------------------------------------
/gd_corp_vehicles/gfx/trailers2_sign_3.dds:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/glitchdetector/fivem_gd_package/50e3c35f6d4446420fdf65dd1c5e2e8f7f854d30/gd_corp_vehicles/gfx/trailers2_sign_3.dds
--------------------------------------------------------------------------------
/gd_corp_vehicles/gfx/trailers2_sign_4.dds:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/glitchdetector/fivem_gd_package/50e3c35f6d4446420fdf65dd1c5e2e8f7f854d30/gd_corp_vehicles/gfx/trailers2_sign_4.dds
--------------------------------------------------------------------------------
/gd_corp_vehicles/stream/cabs/custom_phantom3.yft:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/glitchdetector/fivem_gd_package/50e3c35f6d4446420fdf65dd1c5e2e8f7f854d30/gd_corp_vehicles/stream/cabs/custom_phantom3.yft
--------------------------------------------------------------------------------
/gd_corp_vehicles/stream/cabs/custom_phantom3.ytd:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/glitchdetector/fivem_gd_package/50e3c35f6d4446420fdf65dd1c5e2e8f7f854d30/gd_corp_vehicles/stream/cabs/custom_phantom3.ytd
--------------------------------------------------------------------------------
/gd_corp_vehicles/stream/cabs/custom_phantom3_hi.yft:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/glitchdetector/fivem_gd_package/50e3c35f6d4446420fdf65dd1c5e2e8f7f854d30/gd_corp_vehicles/stream/cabs/custom_phantom3_hi.yft
--------------------------------------------------------------------------------
/gd_corp_vehicles/stream/cabs/vehicles.meta:
--------------------------------------------------------------------------------
1 |
2 | vehshare
3 |
4 |
5 |
6 |
7 | custom_phantom3
8 | custom_phantom3
9 | collinsco_phantom3
10 | PHANTOM
11 | TYCOON
12 | null
13 | null
14 | null
15 | null
16 |
17 | null
18 | RHINO
19 | LAYOUT_TRUCK_PHANTOMBULL
20 | PHANTOM_COVER_OFFSET_INFO
21 | EXPLOSION_INFO_TRUCK
22 |
23 | FOLLOW_ARTIC_CAMERA
24 | ARTIC_AIM_CAMERA
25 | VEHICLE_BONNET_CAMERA_STANDARD_LONG
26 | DEFAULT_POV_CAMERA_NO_REVERSE_LOOKAROUND_MID
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 | VFXVEHICLEINFO_TRUCK_RIG
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
58 |
59 |
60 |
61 |
62 |
63 |
64 |
65 |
66 | 20.000000
67 | 90.000000
68 | 130.000000
69 | 260.000000
70 | 750.000000
71 | 750.000000
72 |
73 |
74 |
75 |
76 |
77 |
78 |
79 |
80 |
81 |
82 | SWANKNESS_1
83 |
84 | FLAG_HAS_BULLET_RESISTANT_GLASS FLAG_BIG FLAG_CAN_HONK_WHEN_FLEEING FLAG_AVOID_TURNS FLAG_EXTRAS_STRONG FLAG_IS_BULKY FLAG_BLOCK_FROM_ATTRACTOR_SCENARIO FLAG_ATTACH_TRAILER_ON_HIGHWAY FLAG_USE_STRICTER_EXIT_COLLISION_TESTS FLAG_HAS_EXTRA_SHUFFLE_SEAT_ON_VEHICLE FLAG_DONT_HOLD_LOW_GEARS_WHEN_ENGINE_UNDER_LOAD
85 | VEHICLE_TYPE_CAR
86 | VPT_FRONT_AND_BACK_PLATES
87 | VDT_TRUCK
88 | VC_COMMERCIAL
89 | VWT_SPORT
90 |
91 | docktrailer
92 | trailers
93 | trailers2
94 | trailers3
95 | tanker
96 | trailerlogs
97 | tr2
98 | trflat
99 | trailerlarge
100 | collinsco_tanker
101 | collinsco_trailers2
102 | frllc_trailers2
103 | narwhalcorp_trailers2
104 | captaincorp_trailers2
105 | collinsco_trailers3
106 | armytanker
107 | armytrailer
108 | tr4
109 | tvtrailer
110 | trailers4
111 |
112 |
113 |
114 |
115 |
116 | S_M_M_Trucker_01
117 |
118 |
119 |
120 |
121 |
122 | VEH_EXT_BONNET
123 |
124 |
125 |
126 |
127 |
128 |
129 |
130 | WHEEL_WIDE_REAR_RIGHT_CAMERA
131 | WHEEL_WIDE_REAR_LEFT_CAMERA
132 |
133 | Truck
134 |
135 |
136 |
137 |
138 | TRUCK_PHANTOM_FRONT_LEFT
139 | TRUCK_PACKER_FRONT_RIGHT
140 | TRUCK_PHANTOMBULL_SIDE_LEFT
141 | TRUCK_PHANTOMBULL_SIDE_RIGHT
142 | TRUCK_PHANTOMBULL_REAR
143 |
144 |
145 |
146 |
147 |
148 | vehshare_worn
149 | custom_phantom3
150 |
151 |
152 |
153 |
--------------------------------------------------------------------------------
/gd_corp_vehicles/stream/collinsco/cabs/collinsco_phantom3.yft:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/glitchdetector/fivem_gd_package/50e3c35f6d4446420fdf65dd1c5e2e8f7f854d30/gd_corp_vehicles/stream/collinsco/cabs/collinsco_phantom3.yft
--------------------------------------------------------------------------------
/gd_corp_vehicles/stream/collinsco/cabs/collinsco_phantom3.ytd:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/glitchdetector/fivem_gd_package/50e3c35f6d4446420fdf65dd1c5e2e8f7f854d30/gd_corp_vehicles/stream/collinsco/cabs/collinsco_phantom3.ytd
--------------------------------------------------------------------------------
/gd_corp_vehicles/stream/collinsco/cabs/collinsco_phantom3_hi.yft:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/glitchdetector/fivem_gd_package/50e3c35f6d4446420fdf65dd1c5e2e8f7f854d30/gd_corp_vehicles/stream/collinsco/cabs/collinsco_phantom3_hi.yft
--------------------------------------------------------------------------------
/gd_corp_vehicles/stream/collinsco/cabs/window_lf.cwgv:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/glitchdetector/fivem_gd_package/50e3c35f6d4446420fdf65dd1c5e2e8f7f854d30/gd_corp_vehicles/stream/collinsco/cabs/window_lf.cwgv
--------------------------------------------------------------------------------
/gd_corp_vehicles/stream/collinsco/cabs/window_rf.cwgv:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/glitchdetector/fivem_gd_package/50e3c35f6d4446420fdf65dd1c5e2e8f7f854d30/gd_corp_vehicles/stream/collinsco/cabs/window_rf.cwgv
--------------------------------------------------------------------------------
/gd_corp_vehicles/stream/collinsco/cabs/windscreen.cwgv:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/glitchdetector/fivem_gd_package/50e3c35f6d4446420fdf65dd1c5e2e8f7f854d30/gd_corp_vehicles/stream/collinsco/cabs/windscreen.cwgv
--------------------------------------------------------------------------------
/gd_corp_vehicles/stream/collinsco/trailers/collinsco_tanker.yft:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/glitchdetector/fivem_gd_package/50e3c35f6d4446420fdf65dd1c5e2e8f7f854d30/gd_corp_vehicles/stream/collinsco/trailers/collinsco_tanker.yft
--------------------------------------------------------------------------------
/gd_corp_vehicles/stream/collinsco/trailers/collinsco_tanker.ytd:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/glitchdetector/fivem_gd_package/50e3c35f6d4446420fdf65dd1c5e2e8f7f854d30/gd_corp_vehicles/stream/collinsco/trailers/collinsco_tanker.ytd
--------------------------------------------------------------------------------
/gd_corp_vehicles/stream/collinsco/trailers/collinsco_tanker_hi.yft:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/glitchdetector/fivem_gd_package/50e3c35f6d4446420fdf65dd1c5e2e8f7f854d30/gd_corp_vehicles/stream/collinsco/trailers/collinsco_tanker_hi.yft
--------------------------------------------------------------------------------
/gd_corp_vehicles/stream/collinsco/trailers/collinsco_trailers2.yft:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/glitchdetector/fivem_gd_package/50e3c35f6d4446420fdf65dd1c5e2e8f7f854d30/gd_corp_vehicles/stream/collinsco/trailers/collinsco_trailers2.yft
--------------------------------------------------------------------------------
/gd_corp_vehicles/stream/collinsco/trailers/collinsco_trailers2.ytd:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/glitchdetector/fivem_gd_package/50e3c35f6d4446420fdf65dd1c5e2e8f7f854d30/gd_corp_vehicles/stream/collinsco/trailers/collinsco_trailers2.ytd
--------------------------------------------------------------------------------
/gd_corp_vehicles/stream/collinsco/trailers/collinsco_trailers3.yft:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/glitchdetector/fivem_gd_package/50e3c35f6d4446420fdf65dd1c5e2e8f7f854d30/gd_corp_vehicles/stream/collinsco/trailers/collinsco_trailers3.yft
--------------------------------------------------------------------------------
/gd_corp_vehicles/stream/collinsco/trailers/collinsco_trailers3.ytd:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/glitchdetector/fivem_gd_package/50e3c35f6d4446420fdf65dd1c5e2e8f7f854d30/gd_corp_vehicles/stream/collinsco/trailers/collinsco_trailers3.ytd
--------------------------------------------------------------------------------
/gd_corp_vehicles/stream/frllc/aircraft/carvariations.meta:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | pavelow
8 |
9 |
10 |
11 | 132
12 | 132
13 | 111
14 | 6
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 | 0_default_modkit
30 |
31 |
32 |
33 |
34 |
35 | Standard White
36 |
37 |
38 |
39 | White Plate 2
40 |
41 |
42 |
43 | Blue Plate
44 |
45 |
46 |
47 | Yellow Plate
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 | mh53desert
57 |
58 |
59 |
60 | 132
61 | 132
62 | 111
63 | 6
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 |
73 |
74 |
75 |
76 |
77 |
78 | 0_default_modkit
79 |
80 |
81 |
82 |
83 |
84 | Standard White
85 |
86 |
87 |
88 | White Plate 2
89 |
90 |
91 |
92 | Blue Plate
93 |
94 |
95 |
96 | Yellow Plate
97 |
98 |
99 |
100 |
101 |
102 |
103 |
104 |
105 | mh53camo
106 |
107 |
108 |
109 | 132
110 | 132
111 | 111
112 | 6
113 |
114 |
115 |
116 |
117 |
118 |
119 |
120 |
121 |
122 |
123 |
124 |
125 |
126 |
127 | 0_default_modkit
128 |
129 |
130 |
131 |
132 |
133 | Standard White
134 |
135 |
136 |
137 | White Plate 2
138 |
139 |
140 |
141 | Blue Plate
142 |
143 |
144 |
145 | Yellow Plate
146 |
147 |
148 |
149 |
150 |
151 |
152 |
153 |
154 |
--------------------------------------------------------------------------------
/gd_corp_vehicles/stream/frllc/aircraft/pavelow.yft:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/glitchdetector/fivem_gd_package/50e3c35f6d4446420fdf65dd1c5e2e8f7f854d30/gd_corp_vehicles/stream/frllc/aircraft/pavelow.yft
--------------------------------------------------------------------------------
/gd_corp_vehicles/stream/frllc/aircraft/pavelow.ytd:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/glitchdetector/fivem_gd_package/50e3c35f6d4446420fdf65dd1c5e2e8f7f854d30/gd_corp_vehicles/stream/frllc/aircraft/pavelow.ytd
--------------------------------------------------------------------------------
/gd_corp_vehicles/stream/frllc/aircraft/pavelow_hi.yft:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/glitchdetector/fivem_gd_package/50e3c35f6d4446420fdf65dd1c5e2e8f7f854d30/gd_corp_vehicles/stream/frllc/aircraft/pavelow_hi.yft
--------------------------------------------------------------------------------
/gd_corp_vehicles/stream/frllc/aircraft/vehiclelayouts.meta:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | LAYOUT_HELI_PAVELOW
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
58 |
59 |
60 |
61 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 |
73 |
74 |
75 |
76 |
77 |
78 |
79 |
80 |
81 |
82 |
83 |
84 |
85 |
86 |
87 |
88 |
89 | StreamAnims WarpIntoAndOut UseFinerAlignTolerance Use2DBodyBlend
90 |
91 | busted_vehicle_std
92 |
93 |
94 |
95 |
96 |
97 |
98 | ENTRY_POINT_PAVELOW_FRONT
99 | door_dside_f
100 | door_pside_f
101 |
102 | INVALID
103 | SIDE_RIGHT
104 |
105 |
106 |
107 |
108 |
109 |
110 |
111 |
112 |
113 | ENTRY_POINT_PAVELOW_WARP
114 |
115 |
116 |
117 | INVALID
118 | SIDE_LEFT
119 |
120 |
121 |
122 |
123 |
124 |
125 |
126 |
127 |
128 |
129 |
130 |
131 |
132 |
133 |
134 |
135 | IgnoreSmashWindowCheck MPWarpInOut SPEntryAllowedAlso
136 |
137 |
138 |
139 |
140 |
141 |
142 |
143 |
144 |
145 |
146 | SEAT_ANIM_HELI_RAMP
147 |
148 |
149 |
150 |
151 |
152 |
153 |
154 |
155 | PHANTOMBULL_REAR_IDLE
156 |
157 | VEHICLE_DEFAULT
158 | CannotBeJacked UseStandardInVehicleAnims PreventShuffleJack KeepCollisionOnWhenInVehicle
159 |
160 |
161 |
162 |
163 |
164 |
165 |
166 |
167 |
168 |
169 |
170 | SEAT_EXTRA_NO_SHUFFLE_LEFT_7
171 | seat_dside_r7
172 |
173 |
174 | TASK_DRIVE_WANDER
175 |
176 |
177 |
178 |
179 |
180 |
181 |
--------------------------------------------------------------------------------
/gd_corp_vehicles/stream/frllc/cab/frllc_hauler2+hi.ytd:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/glitchdetector/fivem_gd_package/50e3c35f6d4446420fdf65dd1c5e2e8f7f854d30/gd_corp_vehicles/stream/frllc/cab/frllc_hauler2+hi.ytd
--------------------------------------------------------------------------------
/gd_corp_vehicles/stream/frllc/cab/frllc_hauler2.yft:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/glitchdetector/fivem_gd_package/50e3c35f6d4446420fdf65dd1c5e2e8f7f854d30/gd_corp_vehicles/stream/frllc/cab/frllc_hauler2.yft
--------------------------------------------------------------------------------
/gd_corp_vehicles/stream/frllc/cab/frllc_hauler2.ytd:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/glitchdetector/fivem_gd_package/50e3c35f6d4446420fdf65dd1c5e2e8f7f854d30/gd_corp_vehicles/stream/frllc/cab/frllc_hauler2.ytd
--------------------------------------------------------------------------------
/gd_corp_vehicles/stream/frllc/cab/frllc_hauler2_hi.yft:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/glitchdetector/fivem_gd_package/50e3c35f6d4446420fdf65dd1c5e2e8f7f854d30/gd_corp_vehicles/stream/frllc/cab/frllc_hauler2_hi.yft
--------------------------------------------------------------------------------
/gd_corp_vehicles/stream/frllc/frllc_firesuv.yft:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/glitchdetector/fivem_gd_package/50e3c35f6d4446420fdf65dd1c5e2e8f7f854d30/gd_corp_vehicles/stream/frllc/frllc_firesuv.yft
--------------------------------------------------------------------------------
/gd_corp_vehicles/stream/frllc/frllc_firesuv.ytd:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/glitchdetector/fivem_gd_package/50e3c35f6d4446420fdf65dd1c5e2e8f7f854d30/gd_corp_vehicles/stream/frllc/frllc_firesuv.ytd
--------------------------------------------------------------------------------
/gd_corp_vehicles/stream/frllc/frllc_firesuv_hi.yft:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/glitchdetector/fivem_gd_package/50e3c35f6d4446420fdf65dd1c5e2e8f7f854d30/gd_corp_vehicles/stream/frllc/frllc_firesuv_hi.yft
--------------------------------------------------------------------------------
/gd_corp_vehicles/stream/frllc/gfx/emerglights.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/glitchdetector/fivem_gd_package/50e3c35f6d4446420fdf65dd1c5e2e8f7f854d30/gd_corp_vehicles/stream/frllc/gfx/emerglights.png
--------------------------------------------------------------------------------
/gd_corp_vehicles/stream/frllc/gfx/emerglights1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/glitchdetector/fivem_gd_package/50e3c35f6d4446420fdf65dd1c5e2e8f7f854d30/gd_corp_vehicles/stream/frllc/gfx/emerglights1.png
--------------------------------------------------------------------------------
/gd_corp_vehicles/stream/frllc/gfx/emerglights_liberty.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/glitchdetector/fivem_gd_package/50e3c35f6d4446420fdf65dd1c5e2e8f7f854d30/gd_corp_vehicles/stream/frllc/gfx/emerglights_liberty.png
--------------------------------------------------------------------------------
/gd_corp_vehicles/stream/frllc/gfx/frllc_template.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/glitchdetector/fivem_gd_package/50e3c35f6d4446420fdf65dd1c5e2e8f7f854d30/gd_corp_vehicles/stream/frllc/gfx/frllc_template.png
--------------------------------------------------------------------------------
/gd_corp_vehicles/stream/frllc/gfx/generic_lightbar_e.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/glitchdetector/fivem_gd_package/50e3c35f6d4446420fdf65dd1c5e2e8f7f854d30/gd_corp_vehicles/stream/frllc/gfx/generic_lightbar_e.png
--------------------------------------------------------------------------------
/gd_corp_vehicles/stream/frllc/gfx/sheriff_lights.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/glitchdetector/fivem_gd_package/50e3c35f6d4446420fdf65dd1c5e2e8f7f854d30/gd_corp_vehicles/stream/frllc/gfx/sheriff_lights.png
--------------------------------------------------------------------------------
/gd_corp_vehicles/stream/frllc/gfx/tahoe_sign_1.dds:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/glitchdetector/fivem_gd_package/50e3c35f6d4446420fdf65dd1c5e2e8f7f854d30/gd_corp_vehicles/stream/frllc/gfx/tahoe_sign_1.dds
--------------------------------------------------------------------------------
/gd_corp_vehicles/stream/frllc/gfx/tahoe_sign_1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/glitchdetector/fivem_gd_package/50e3c35f6d4446420fdf65dd1c5e2e8f7f854d30/gd_corp_vehicles/stream/frllc/gfx/tahoe_sign_1.png
--------------------------------------------------------------------------------
/gd_corp_vehicles/stream/frllc/gfx/tahoe_sign_1.xcf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/glitchdetector/fivem_gd_package/50e3c35f6d4446420fdf65dd1c5e2e8f7f854d30/gd_corp_vehicles/stream/frllc/gfx/tahoe_sign_1.xcf
--------------------------------------------------------------------------------
/gd_corp_vehicles/stream/frllc/trailers/frllc_trailers2.yft:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/glitchdetector/fivem_gd_package/50e3c35f6d4446420fdf65dd1c5e2e8f7f854d30/gd_corp_vehicles/stream/frllc/trailers/frllc_trailers2.yft
--------------------------------------------------------------------------------
/gd_corp_vehicles/stream/frllc/trailers/frllc_trailers2.ytd:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/glitchdetector/fivem_gd_package/50e3c35f6d4446420fdf65dd1c5e2e8f7f854d30/gd_corp_vehicles/stream/frllc/trailers/frllc_trailers2.ytd
--------------------------------------------------------------------------------
/gd_corp_vehicles/stream/frllc/trailers/frllc_trailers4+hi.ytd:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/glitchdetector/fivem_gd_package/50e3c35f6d4446420fdf65dd1c5e2e8f7f854d30/gd_corp_vehicles/stream/frllc/trailers/frllc_trailers4+hi.ytd
--------------------------------------------------------------------------------
/gd_corp_vehicles/stream/frllc/trailers/frllc_trailers4.yft:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/glitchdetector/fivem_gd_package/50e3c35f6d4446420fdf65dd1c5e2e8f7f854d30/gd_corp_vehicles/stream/frllc/trailers/frllc_trailers4.yft
--------------------------------------------------------------------------------
/gd_corp_vehicles/stream/frllc/trailers/frllc_trailers4.ytd:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/glitchdetector/fivem_gd_package/50e3c35f6d4446420fdf65dd1c5e2e8f7f854d30/gd_corp_vehicles/stream/frllc/trailers/frllc_trailers4.ytd
--------------------------------------------------------------------------------
/gd_corp_vehicles/stream/frllc/trailers/frllc_trailers4_hi.yft:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/glitchdetector/fivem_gd_package/50e3c35f6d4446420fdf65dd1c5e2e8f7f854d30/gd_corp_vehicles/stream/frllc/trailers/frllc_trailers4_hi.yft
--------------------------------------------------------------------------------
/gd_corp_vehicles/stream/frllc/trailers/frllc_trailers5+hi.ytd:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/glitchdetector/fivem_gd_package/50e3c35f6d4446420fdf65dd1c5e2e8f7f854d30/gd_corp_vehicles/stream/frllc/trailers/frllc_trailers5+hi.ytd
--------------------------------------------------------------------------------
/gd_corp_vehicles/stream/frllc/trailers/frllc_trailers5.yft:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/glitchdetector/fivem_gd_package/50e3c35f6d4446420fdf65dd1c5e2e8f7f854d30/gd_corp_vehicles/stream/frllc/trailers/frllc_trailers5.yft
--------------------------------------------------------------------------------
/gd_corp_vehicles/stream/frllc/trailers/frllc_trailers5.ytd:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/glitchdetector/fivem_gd_package/50e3c35f6d4446420fdf65dd1c5e2e8f7f854d30/gd_corp_vehicles/stream/frllc/trailers/frllc_trailers5.ytd
--------------------------------------------------------------------------------
/gd_corp_vehicles/stream/frllc/trailers/frllc_trailers5_hi.yft:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/glitchdetector/fivem_gd_package/50e3c35f6d4446420fdf65dd1c5e2e8f7f854d30/gd_corp_vehicles/stream/frllc/trailers/frllc_trailers5_hi.yft
--------------------------------------------------------------------------------
/gd_corp_vehicles/stream/narwhalcorp/cab/corp_nar.yft:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/glitchdetector/fivem_gd_package/50e3c35f6d4446420fdf65dd1c5e2e8f7f854d30/gd_corp_vehicles/stream/narwhalcorp/cab/corp_nar.yft
--------------------------------------------------------------------------------
/gd_corp_vehicles/stream/narwhalcorp/cab/corp_nar.ytd:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/glitchdetector/fivem_gd_package/50e3c35f6d4446420fdf65dd1c5e2e8f7f854d30/gd_corp_vehicles/stream/narwhalcorp/cab/corp_nar.ytd
--------------------------------------------------------------------------------
/gd_corp_vehicles/stream/narwhalcorp/cab/corp_nar_hi.yft:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/glitchdetector/fivem_gd_package/50e3c35f6d4446420fdf65dd1c5e2e8f7f854d30/gd_corp_vehicles/stream/narwhalcorp/cab/corp_nar_hi.yft
--------------------------------------------------------------------------------
/gd_corp_vehicles/stream/narwhalcorp/cab/handling.meta:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | corp_nar
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 | 20220048
53 | 0
54 | 20
55 | TRUCK
56 |
57 |
58 |
59 |
60 |
61 |
62 |
63 |
64 |
--------------------------------------------------------------------------------
/gd_corp_vehicles/stream/narwhalcorp/cab/vehicles.meta:
--------------------------------------------------------------------------------
1 |
2 |
3 | vehshare
4 |
5 |
6 |
7 |
8 | corp_nar
9 | corp_nar
10 | corp_nar
11 | corp_nar
12 | TYCOON
13 | null
14 | null
15 | null
16 | null
17 |
18 | veh_mounted_turrets_car
19 | PACKER
20 | LAYOUT_TRUCK
21 | PACKER_COVER_OFFSET_INFO
22 | EXPLOSION_INFO_TRUCK
23 |
24 | FOLLOW_ARTIC_CAMERA
25 | ARTIC_AIM_CAMERA
26 | VEHICLE_BONNET_CAMERA_LOW
27 | DEFAULT_POV_CAMERA_NO_REVERSE_LOOKAROUND_MID
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 | VFXVEHICLEINFO_TRUCK_RIG
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
58 |
59 |
60 |
61 |
62 |
63 |
64 |
65 |
66 |
67 | 500.000000
68 | 500.000000
69 | 500.000000
70 | 500.000000
71 | 500.000000
72 | 500.000000
73 |
74 |
75 |
76 |
77 |
78 |
79 |
80 |
81 |
82 |
83 | SWANKNESS_1
84 |
85 | FLAG_BIG FLAG_CAN_HONK_WHEN_FLEEING FLAG_AVOID_TURNS FLAG_EXTRAS_STRONG FLAG_IS_BULKY FLAG_BLOCK_FROM_ATTRACTOR_SCENARIO FLAG_ATTACH_TRAILER_ON_HIGHWAY
86 | VEHICLE_TYPE_CAR
87 | VPT_FRONT_AND_BACK_PLATES
88 | VDT_SUPERGT
89 | VC_COMMERCIAL
90 | VWT_SPORT
91 |
92 | docktrailer
93 | trailers
94 | trailers2
95 | trailers3
96 | tanker
97 | trailerlogs
98 | tr2
99 | trflat
100 |
101 |
102 | armytanker
103 | armytrailer
104 | armytrailer2
105 | tr4
106 | tvtrailer
107 |
108 |
109 |
110 | S_M_M_Trucker_01
111 |
112 |
113 |
114 |
115 |
116 | VEH_EXT_BONNET
117 |
118 |
119 |
120 |
121 |
122 |
123 |
124 | WHEEL_WIDE_REAR_RIGHT_CAMERA
125 | WHEEL_WIDE_REAR_LEFT_CAMERA
126 |
127 | Truck
128 |
129 |
130 |
131 |
132 | TRUCK_PHANTOM_FRONT_LEFT
133 | TRUCK_PACKER_FRONT_RIGHT
134 |
135 |
136 |
137 |
138 |
139 | vehicles_jet_interior
140 | kj2000
141 |
142 |
143 |
144 |
145 |
--------------------------------------------------------------------------------
/gd_corp_vehicles/stream/narwhalcorp/cabs/corp_nar.yft:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/glitchdetector/fivem_gd_package/50e3c35f6d4446420fdf65dd1c5e2e8f7f854d30/gd_corp_vehicles/stream/narwhalcorp/cabs/corp_nar.yft
--------------------------------------------------------------------------------
/gd_corp_vehicles/stream/narwhalcorp/cabs/corp_nar.ytd:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/glitchdetector/fivem_gd_package/50e3c35f6d4446420fdf65dd1c5e2e8f7f854d30/gd_corp_vehicles/stream/narwhalcorp/cabs/corp_nar.ytd
--------------------------------------------------------------------------------
/gd_corp_vehicles/stream/narwhalcorp/cabs/corp_nar_hi.yft:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/glitchdetector/fivem_gd_package/50e3c35f6d4446420fdf65dd1c5e2e8f7f854d30/gd_corp_vehicles/stream/narwhalcorp/cabs/corp_nar_hi.yft
--------------------------------------------------------------------------------
/gd_corp_vehicles/stream/narwhalcorp/handling.meta:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | corp_nar
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 | 20220048
53 | 0
54 | 20
55 | TRUCK
56 |
57 |
58 |
59 |
60 |
61 |
62 |
63 |
64 |
--------------------------------------------------------------------------------
/gd_corp_vehicles/stream/narwhalcorp/trailers/narwhalcorp_trailers2.yft:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/glitchdetector/fivem_gd_package/50e3c35f6d4446420fdf65dd1c5e2e8f7f854d30/gd_corp_vehicles/stream/narwhalcorp/trailers/narwhalcorp_trailers2.yft
--------------------------------------------------------------------------------
/gd_corp_vehicles/stream/narwhalcorp/trailers/narwhalcorp_trailers2.ytd:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/glitchdetector/fivem_gd_package/50e3c35f6d4446420fdf65dd1c5e2e8f7f854d30/gd_corp_vehicles/stream/narwhalcorp/trailers/narwhalcorp_trailers2.ytd
--------------------------------------------------------------------------------
/gd_corp_vehicles/stream/postop/PostOPplane_hi.yft:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/glitchdetector/fivem_gd_package/50e3c35f6d4446420fdf65dd1c5e2e8f7f854d30/gd_corp_vehicles/stream/postop/PostOPplane_hi.yft
--------------------------------------------------------------------------------
/gd_corp_vehicles/stream/postop/postop_armytrailer+hi.ytd:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/glitchdetector/fivem_gd_package/50e3c35f6d4446420fdf65dd1c5e2e8f7f854d30/gd_corp_vehicles/stream/postop/postop_armytrailer+hi.ytd
--------------------------------------------------------------------------------
/gd_corp_vehicles/stream/postop/postop_armytrailer.yft:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/glitchdetector/fivem_gd_package/50e3c35f6d4446420fdf65dd1c5e2e8f7f854d30/gd_corp_vehicles/stream/postop/postop_armytrailer.yft
--------------------------------------------------------------------------------
/gd_corp_vehicles/stream/postop/postop_armytrailer.ytd:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/glitchdetector/fivem_gd_package/50e3c35f6d4446420fdf65dd1c5e2e8f7f854d30/gd_corp_vehicles/stream/postop/postop_armytrailer.ytd
--------------------------------------------------------------------------------
/gd_corp_vehicles/stream/postop/postop_armytrailer_hi.yft:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/glitchdetector/fivem_gd_package/50e3c35f6d4446420fdf65dd1c5e2e8f7f854d30/gd_corp_vehicles/stream/postop/postop_armytrailer_hi.yft
--------------------------------------------------------------------------------
/gd_corp_vehicles/stream/postop/postopbox+hi.ytd:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/glitchdetector/fivem_gd_package/50e3c35f6d4446420fdf65dd1c5e2e8f7f854d30/gd_corp_vehicles/stream/postop/postopbox+hi.ytd
--------------------------------------------------------------------------------
/gd_corp_vehicles/stream/postop/postopbox.yft:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/glitchdetector/fivem_gd_package/50e3c35f6d4446420fdf65dd1c5e2e8f7f854d30/gd_corp_vehicles/stream/postop/postopbox.yft
--------------------------------------------------------------------------------
/gd_corp_vehicles/stream/postop/postopbox.ytd:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/glitchdetector/fivem_gd_package/50e3c35f6d4446420fdf65dd1c5e2e8f7f854d30/gd_corp_vehicles/stream/postop/postopbox.ytd
--------------------------------------------------------------------------------
/gd_corp_vehicles/stream/postop/postopbox_hi.yft:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/glitchdetector/fivem_gd_package/50e3c35f6d4446420fdf65dd1c5e2e8f7f854d30/gd_corp_vehicles/stream/postop/postopbox_hi.yft
--------------------------------------------------------------------------------
/gd_corp_vehicles/stream/postop/postopmule+hi.ytd:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/glitchdetector/fivem_gd_package/50e3c35f6d4446420fdf65dd1c5e2e8f7f854d30/gd_corp_vehicles/stream/postop/postopmule+hi.ytd
--------------------------------------------------------------------------------
/gd_corp_vehicles/stream/postop/postopmule.yft:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/glitchdetector/fivem_gd_package/50e3c35f6d4446420fdf65dd1c5e2e8f7f854d30/gd_corp_vehicles/stream/postop/postopmule.yft
--------------------------------------------------------------------------------
/gd_corp_vehicles/stream/postop/postopmule.ytd:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/glitchdetector/fivem_gd_package/50e3c35f6d4446420fdf65dd1c5e2e8f7f854d30/gd_corp_vehicles/stream/postop/postopmule.ytd
--------------------------------------------------------------------------------
/gd_corp_vehicles/stream/postop/postopmule_hi.yft:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/glitchdetector/fivem_gd_package/50e3c35f6d4446420fdf65dd1c5e2e8f7f854d30/gd_corp_vehicles/stream/postop/postopmule_hi.yft
--------------------------------------------------------------------------------
/gd_corp_vehicles/stream/postop/postopplane.yft:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/glitchdetector/fivem_gd_package/50e3c35f6d4446420fdf65dd1c5e2e8f7f854d30/gd_corp_vehicles/stream/postop/postopplane.yft
--------------------------------------------------------------------------------
/gd_corp_vehicles/stream/postop/postopplane.ytd:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/glitchdetector/fivem_gd_package/50e3c35f6d4446420fdf65dd1c5e2e8f7f854d30/gd_corp_vehicles/stream/postop/postopplane.ytd
--------------------------------------------------------------------------------
/gd_corp_vehicles/stream/sal/cab/sal_packer.yft:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/glitchdetector/fivem_gd_package/50e3c35f6d4446420fdf65dd1c5e2e8f7f854d30/gd_corp_vehicles/stream/sal/cab/sal_packer.yft
--------------------------------------------------------------------------------
/gd_corp_vehicles/stream/sal/cab/sal_packer.ytd:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/glitchdetector/fivem_gd_package/50e3c35f6d4446420fdf65dd1c5e2e8f7f854d30/gd_corp_vehicles/stream/sal/cab/sal_packer.ytd
--------------------------------------------------------------------------------
/gd_corp_vehicles/stream/sal/cab/sal_packer_hi.yft:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/glitchdetector/fivem_gd_package/50e3c35f6d4446420fdf65dd1c5e2e8f7f854d30/gd_corp_vehicles/stream/sal/cab/sal_packer_hi.yft
--------------------------------------------------------------------------------
/gd_corp_vehicles/stream/sal/cab/sal_phantom.yft:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/glitchdetector/fivem_gd_package/50e3c35f6d4446420fdf65dd1c5e2e8f7f854d30/gd_corp_vehicles/stream/sal/cab/sal_phantom.yft
--------------------------------------------------------------------------------
/gd_corp_vehicles/stream/sal/cab/sal_phantom.ytd:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/glitchdetector/fivem_gd_package/50e3c35f6d4446420fdf65dd1c5e2e8f7f854d30/gd_corp_vehicles/stream/sal/cab/sal_phantom.ytd
--------------------------------------------------------------------------------
/gd_corp_vehicles/stream/sal/cab/sal_phantom_hi.yft:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/glitchdetector/fivem_gd_package/50e3c35f6d4446420fdf65dd1c5e2e8f7f854d30/gd_corp_vehicles/stream/sal/cab/sal_phantom_hi.yft
--------------------------------------------------------------------------------
/gd_corp_vehicles/stream/sal/trailers/captaincorp_trailers2 – Kopi.ytd:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/glitchdetector/fivem_gd_package/50e3c35f6d4446420fdf65dd1c5e2e8f7f854d30/gd_corp_vehicles/stream/sal/trailers/captaincorp_trailers2 – Kopi.ytd
--------------------------------------------------------------------------------
/gd_corp_vehicles/stream/sal/trailers/captaincorp_trailers2.yft:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/glitchdetector/fivem_gd_package/50e3c35f6d4446420fdf65dd1c5e2e8f7f854d30/gd_corp_vehicles/stream/sal/trailers/captaincorp_trailers2.yft
--------------------------------------------------------------------------------
/gd_corp_vehicles/stream/sal/trailers/captaincorp_trailers2.ytd:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/glitchdetector/fivem_gd_package/50e3c35f6d4446420fdf65dd1c5e2e8f7f854d30/gd_corp_vehicles/stream/sal/trailers/captaincorp_trailers2.ytd
--------------------------------------------------------------------------------
/gd_corp_vehicles/stream/sal/trailers/sal_lowboy.yft:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/glitchdetector/fivem_gd_package/50e3c35f6d4446420fdf65dd1c5e2e8f7f854d30/gd_corp_vehicles/stream/sal/trailers/sal_lowboy.yft
--------------------------------------------------------------------------------
/gd_corp_vehicles/stream/sal/trailers/sal_lowboy.ytd:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/glitchdetector/fivem_gd_package/50e3c35f6d4446420fdf65dd1c5e2e8f7f854d30/gd_corp_vehicles/stream/sal/trailers/sal_lowboy.ytd
--------------------------------------------------------------------------------
/gd_corp_vehicles/stream/sal/trailers/sal_lowboy_hi.yft:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/glitchdetector/fivem_gd_package/50e3c35f6d4446420fdf65dd1c5e2e8f7f854d30/gd_corp_vehicles/stream/sal/trailers/sal_lowboy_hi.yft
--------------------------------------------------------------------------------
/gd_corp_vehicles/stream/sal/trailers/sal_tr4+hi.ytd:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/glitchdetector/fivem_gd_package/50e3c35f6d4446420fdf65dd1c5e2e8f7f854d30/gd_corp_vehicles/stream/sal/trailers/sal_tr4+hi.ytd
--------------------------------------------------------------------------------
/gd_corp_vehicles/stream/sal/trailers/sal_tr4.yft:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/glitchdetector/fivem_gd_package/50e3c35f6d4446420fdf65dd1c5e2e8f7f854d30/gd_corp_vehicles/stream/sal/trailers/sal_tr4.yft
--------------------------------------------------------------------------------
/gd_corp_vehicles/stream/sal/trailers/sal_tr4.ytd:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/glitchdetector/fivem_gd_package/50e3c35f6d4446420fdf65dd1c5e2e8f7f854d30/gd_corp_vehicles/stream/sal/trailers/sal_tr4.ytd
--------------------------------------------------------------------------------
/gd_corp_vehicles/stream/sal/trailers/sal_tr4_hi.yft:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/glitchdetector/fivem_gd_package/50e3c35f6d4446420fdf65dd1c5e2e8f7f854d30/gd_corp_vehicles/stream/sal/trailers/sal_tr4_hi.yft
--------------------------------------------------------------------------------
/gd_corp_vehicles/vehicle_names.lua:
--------------------------------------------------------------------------------
1 | Citizen.CreateThread(function()
2 | -- AddTextEntry("","")
3 | -- Collinsco
4 | AddTextEntry("0x9E5121DF", "Petrochem Tanker")
5 | AddTextEntry("0x7D4FBA2F", "Collins' Petrochem Corp.")
6 |
7 | -- FRLLC
8 | AddTextEntry("0x317707AF", "First Response LLC Tahoe")
9 | AddTextEntry("0x0C195459", "EMS Unit")
10 | AddTextEntry("0xA06D2F5A", "First Response LLC")
11 | AddTextEntry("0x0455C4C8", "First Responders LLC")
12 | AddTextEntry("0xC8ECA562", "Operations Cab")
13 | AddTextEntry("0xCFE7031E","frllc_trailers5")
14 | AddTextEntry("0x05DA6F04", "frllc_trailers4")
15 |
16 | -- General
17 | AddTextEntry("0x51DCD300", "Transport Tycoon")
18 |
19 | -- Narwhalcorp
20 | AddTextEntry("0x65788180", "Narwhal Corp.")
21 | AddTextEntry("0x98BD545A", "Custom Packer")
22 |
23 | -- SAL
24 | AddTextEntry("0x234E818C", "San Andreas Logistics")
25 | AddTextEntry("0x6B213447", "Custom Cab")
26 | AddTextEntry("0xADE815B9", "sal_tr4")
27 | AddTextEntry("0x3CDC4614", "sal_phantom")
28 |
29 | -- Postop
30 | AddTextEntry("0x987923B1", "Post OP EMB-390")
31 | AddTextEntry("0x445F206C", "Post OP Boxville")
32 | AddTextEntry("0x6019E828", "Post OP Mule")
33 | AddTextEntry("0x66DDC071", "postop_armytrailer")
34 | end)
35 |
--------------------------------------------------------------------------------
/gd_corp_vehicles/vehiclelist.md:
--------------------------------------------------------------------------------
1 | Vehicle List.md
2 |
3 | **COLLINSCO**
4 |
5 | collinsco_phantom3 -- CollinsCo Phantom
6 |
7 | collinsco_tanker -- CollinsCo Tanker
8 |
9 | collinsco_trailers2 -- CollinsCo Trailer
10 |
11 | **FRLLC**
12 |
13 | frllc_firesuv -- First Responders Car
14 |
15 | frllc_hauler2 -- FRLLC Hauler Custom
16 |
17 | frllc_trailers3 -- First Responders Trailer Tier 2
18 |
19 | frllc_trailers2 -- First Responders Trailer
20 |
21 | frllc_trailers4 -- First Responders Trailer
22 |
23 | **SAL**
24 |
25 | captaincorp_trailers2 -- SAL Trailer
26 |
27 | sal_packer -- SA logistics Packer
28 |
29 | sal_phantom -- SA Logistics Phantom
30 |
31 | **NARWHALCORP**
32 |
33 | narwhalcorp_cab -- Narwhalcorp Cab
34 |
35 | narwhalcorp_trailers2 -- NarwhalCorp Trailer
36 |
37 | **GENERAL**
38 |
39 | custom_phantom3 -- General Phantom for other companies
40 |
41 | **WRANGLERS**
42 |
43 |
44 | **POSTOP**
45 |
46 | postopbox -- Post OP Boxville
47 |
48 | postopmule -- Post OP Mule
49 |
50 | postop_armytrailer -- Postop Armytrailer
51 |
52 | postopplane -- Post OP Plane
53 |
--------------------------------------------------------------------------------
/gd_farm/__resource.lua:
--------------------------------------------------------------------------------
1 | --[[
2 | ▄▌█▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀█ █▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀█
3 | ▄▄██▌█ Constructed for Transport Tycoon █ █ Web http://glitchdetector.net █
4 | ▄▄▄▌▐██▌█ <3 by glitchdetector █ █ Discord http://discord.gg/fs6bPfu █
5 | ███████▌█▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄█ █▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄█
6 | ▀(@)▀▀▀▀▀▀▀(@)(@)▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀(@)▀▀▀▀▀▀▀▀▀ ▀▀▀▀▀▀(@)(@)▀▀▀▀▀▀▀▀▀▀▀▀▀(@)(@)▀▀▀▀▀▀▀
7 | ]]
8 |
9 | client_scripts {
10 | 'client/Tunnel.lua', -- vrp tunnel
11 | 'shared/main.lua',
12 | 'client/main.lua'
13 | }
14 |
15 | server_scripts {
16 | '@vrp/lib/utils.lua',
17 | 'shared/main.lua',
18 | 'server/main.lua'
19 | }
--------------------------------------------------------------------------------
/gd_farm/client/Tunnel.lua:
--------------------------------------------------------------------------------
1 | ---- TUNNEL CLIENT SIDE VERSION (https://github.com/ImagicTheCat/vRP)
2 | -- Too bad that require doesn't exist client-side
3 | -- TOOLS DEF
4 | Tools = {}
5 |
6 | -- ID generator
7 |
8 | local IDGenerator = {}
9 |
10 | function Tools.newIDGenerator()
11 | local r = setmetatable({}, { __index = IDGenerator })
12 | r:construct()
13 | return r
14 | end
15 |
16 | function IDGenerator:construct()
17 | self:clear()
18 | end
19 |
20 | function IDGenerator:clear()
21 | self.max = 0
22 | self.ids = {}
23 | end
24 |
25 | -- return a new id
26 | function IDGenerator:gen()
27 | if #self.ids > 0 then
28 | return table.remove(self.ids)
29 | else
30 | local r = self.max
31 | self.max = self.max+1
32 | return r
33 | end
34 | end
35 |
36 | -- free a previously generated id
37 | function IDGenerator:free(id)
38 | table.insert(self.ids,id)
39 | end
40 |
41 | -- TUNNEL DEF
42 | Tunnel = {}
43 |
44 | local function tunnel_resolve(itable,key)
45 | local mtable = getmetatable(itable)
46 | local iname = mtable.name
47 | local ids = mtable.tunnel_ids
48 | local callbacks = mtable.tunnel_callbacks
49 | local identifier = mtable.identifier
50 |
51 | -- generate access function
52 | local fcall = function(args,callback)
53 | if args == nil then
54 | args = {}
55 | end
56 |
57 | -- send request
58 | if type(callback) == "function" then -- ref callback if exists (become a request)
59 | local rid = ids:gen()
60 | callbacks[rid] = callback
61 | TriggerServerEvent(iname..":tunnel_req",key,args,identifier,rid)
62 | else -- regular trigger
63 | TriggerServerEvent(iname..":tunnel_req",key,args,"",-1)
64 | end
65 |
66 | end
67 |
68 | itable[key] = fcall -- add generated call to table (optimization)
69 | return fcall
70 | end
71 |
72 | -- bind an interface (listen to net requests)
73 | -- name: interface name
74 | -- interface: table containing functions
75 | function Tunnel.bindInterface(name,interface)
76 | -- receive request
77 | RegisterNetEvent(name..":tunnel_req")
78 | AddEventHandler(name..":tunnel_req",function(member,args,identifier,rid)
79 | local f = interface[member]
80 |
81 | local delayed = false
82 |
83 | local rets = {}
84 | if type(f) == "function" then
85 | -- bind the global function to delay the return values using the returned function with args
86 | TUNNEL_DELAYED = function()
87 | delayed = true
88 | return function(rets)
89 | rets = rets or {}
90 | if rid >= 0 then
91 | TriggerServerEvent(name..":"..identifier..":tunnel_res",rid,rets)
92 | end
93 | end
94 | end
95 |
96 | rets = {f(table.unpack(args))} -- call function
97 | -- CancelEvent() -- cancel event doesn't seem to cancel the event for the other handlers, but if it does, uncomment this
98 | end
99 |
100 | -- send response (event if the function doesn't exist)
101 | if not delayed and rid >= 0 then
102 | TriggerServerEvent(name..":"..identifier..":tunnel_res",rid,rets)
103 | end
104 | end)
105 | end
106 |
107 | -- get a tunnel interface to send requests
108 | -- name: interface name
109 | -- identifier: unique string to identify this tunnel interface access (the name of the current resource should be fine)
110 | function Tunnel.getInterface(name,identifier)
111 | local ids = Tools.newIDGenerator()
112 | local callbacks = {}
113 |
114 | -- build interface
115 | local r = setmetatable({},{ __index = tunnel_resolve, name = name, tunnel_ids = ids, tunnel_callbacks = callbacks, identifier = identifier })
116 |
117 | -- receive response
118 | RegisterNetEvent(name..":"..identifier..":tunnel_res")
119 | AddEventHandler(name..":"..identifier..":tunnel_res",function(rid,args)
120 | local callback = callbacks[rid]
121 | if callback ~= nil then
122 | -- free request id
123 | ids:free(rid)
124 | callbacks[rid] = nil
125 |
126 | -- call
127 | callback(table.unpack(args))
128 | end
129 | end)
130 |
131 | return r
132 | end
133 | ---- END TUNNEL CLIENT SIDE VERSION
134 |
--------------------------------------------------------------------------------
/gd_farm/server/main.lua:
--------------------------------------------------------------------------------
1 | --[[
2 | ▄▌█▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀█
3 | ▄▄██▌█ Constructed for Transport Tycoon █
4 | ▄▄▄▌▐██▌█ <3 by glitchdetector █
5 | ███████▌█▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄█
6 | ▀(@)▀▀▀▀▀▀▀(@)(@)▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀(@)▀▀▀▀▀▀▀▀▀
7 | ]]
8 |
9 |
10 | local Proxy = module("vrp", "lib/Proxy")
11 | local Tunnel = module("vrp", "lib/Tunnel")
12 |
13 | vRP = Proxy.getInterface("vRP")
14 | vRPclient = Tunnel.getInterface("vRP","gd_farm")
15 |
16 | vRP.defAptitudeGroup({"farming", "Farming"})
17 | vRP.defAptitude({"farming", "farming", "Farming", 0, 1100}) -- max level 20
18 | vRP.defAptitude({"farming", "animals", "Animals", 0, 1100}) -- max level 20
19 |
20 | local debugclients = {3}
21 | Citizen.CreateThread(function()
22 | print("[gd_farm] /server/main.lua init")
23 | Citizen.Wait(1000)
24 |
25 | -- Reload if script is restarted during runtime
26 | print("[gd_farm] Reloading for all connected clients...")
27 | local users = vRP.getUsers()
28 | Error(-1, "~y~Farming Notice~n~~w~Reload detected.~n~If you're not a farmer, disregard this message.")
29 | for user_id,user in next, users do
30 | print("[gd_farm] user_id " .. user_id .. "::" .. user)
31 | vRP.getUData({user_id, "farms", function(data)
32 | TriggerClientEvent("gd_farm:set_owned_fields", user, data)
33 | end})
34 | for k,v in next, debugclients do
35 | if user_id == v then TriggerClientEvent("gd_farm:debug_toggle", user) end
36 | end
37 | end
38 | end)
39 |
40 | --"gd_farm:drop_material", cargo, amount, vec3(pos)
41 | RegisterServerEvent("gd_farm:drop_material")
42 | AddEventHandler("gd_farm:drop_material", function(cargo, amount, pos)
43 | TriggerClientEvent("gd_farm:create_material", source, cargo, amount, pos)
44 | end)
45 |
46 | -- a player is requesting to start the farming job
47 | RegisterServerEvent("gd_farm:request_job_start")
48 | AddEventHandler("gd_farm:request_job_start", function()
49 | local source = source
50 | local user_id = vRP.getUserId({source})
51 | if vRP.hasPermission({user_id, "farmer.job"}) then
52 | TriggerClientEvent("gd_farm:start_job", source)
53 | else
54 | TriggerClientEvent("gd_farm:notify", source, "~r~You're not a farmer")
55 | end
56 | end)
57 |
58 | local FARM_ITEMS = {
59 | -- Grains
60 | ["grain"] = {value = 0.12, level = 1}, -- 40 000 = 3200
61 | ["bales"] = {value = 1200, level = 3}, -- 8 (40 000 grain) = 6400
62 | ["grass"] = {value = 0.14, level = 1}, -- 40 000 = 4800
63 | ["corn"] = {value = 0.26, level = 4},
64 |
65 | -- Fruits
66 | ["oranges"] = {value = 0.40, level = 8},
67 | ["peaches"] = {value = 0.40, level = 8},
68 | ["grapes"] = {value = 0.60, level = 15},
69 |
70 | -- Vegetables
71 | ["tomatoes"] = {value = 0.50, level = 10},
72 | ["watermelons"] = {value = 0.30, level = 5},
73 | ["strawberries"] = {value = 0.35, level = 7},
74 |
75 | -- Misc
76 | ["fertilizer"] = {value = 0, level = 1},
77 | ["seeds"] = {value = 0, level = 1},
78 | ["livestock"] = {value = 0, level = 1},
79 | ["meat"] = {value = 0, level = 1},
80 |
81 | -- Animal stuffs
82 | ["manure"] = {value = 0, level = 1},
83 | ["milk"] = {value = 0, level = 1},
84 | ["water"] = {value = 0, level = 1},
85 | ["wool"] = {value = 0, level = 1},
86 |
87 | -- "Illegal stuff"
88 | ["weed"] = {value = 0.80, level = 20},
89 | }
90 |
91 | RegisterServerEvent("gd_farm:request_buy_field")
92 | AddEventHandler("gd_farm:request_buy_field", function(field)
93 | --name = "Shiron", type = "grain", price = 2000, owned = true, edges
94 | local source = source
95 | local cost = field.price or 0
96 | local req_level = FARM_ITEMS[field.type].level or 1
97 | local user_id = vRP.getUserId({source})
98 | local name = field.name
99 | if not field.owned then
100 | if user_id then
101 | local permstring = "@farming.farming.>" .. (req_level - 1)
102 | local hasLevel = vRP.hasPermission({user_id, permstring})
103 | if hasLevel then
104 | local canAfford = vRP.tryFullPayment({user_id, cost})
105 | if canAfford then
106 | local cb = function(data)
107 | local newdata = data .. name .. "|"
108 | vRP.setUData({user_id, "farms", newdata})
109 | TriggerClientEvent("gd_farm:set_owned_fields", source, newdata)
110 | end
111 | TriggerClientEvent("gd_farm:notify", source, "~y~Purchase Notice~n~~w~Successfully purchased field " .. name .. ".~n~Price: $" .. cost)
112 | vRP.getUData({user_id, "farms", cb})
113 | else
114 | TriggerClientEvent("gd_farm:notify", source, "~y~Purchase Notice~n~~w~You cannot afford this.")
115 | end
116 | else
117 | TriggerClientEvent("gd_farm:notify", source, "~y~Purchase Notice~n~~w~You do not meet the required farming level to do that.~n~Level: " .. req_level)
118 | end
119 | else
120 | Error(source, "[gd_farm ERROR]: NoID trying to buy field")
121 | end
122 | else
123 | Error(source, "[gd_farm] WARNING: Trying to purchase already owned field")
124 | end
125 | end)
126 |
127 |
128 | AddEventHandler("vRP:playerSpawn", function(user_id, player, first_spawn)
129 | -- Load owned fields on player spawn
130 | print("[gd_farm] Sending owned field data to uid " .. user_id)
131 | local cb = function(data)
132 | TriggerClientEvent("gd_farm:set_owned_fields", player, data)
133 | end
134 | vRP.getUData({user_id, "farms", cb})
135 | for k,v in next, debugclients do
136 | if user_id == v then TriggerClientEvent("gd_farm:debug_toggle", player) end
137 | end
138 | end)
139 |
140 | -- When the player sells an item at any farming store
141 | RegisterServerEvent("gd_farm:sell_material")
142 | AddEventHandler("gd_farm:sell_material", function(cargo, amount)
143 | local source = source
144 | local user_id = vRP.getUserId({source})
145 | if user_id ~= nil then
146 | local pay = math.ceil(FARM_ITEMS[cargo].value * amount)
147 | local exp = math.ceil(pay / 200)/10
148 | vRP.giveMoney({user_id, pay})
149 | vRP.varyExp({user_id, "farming", "farming", exp})
150 | local text = "~y~Sales report:~n~~w~" .. amount .. " " .. cargo .. "~n~Total: ~g~$" .. pay
151 | TriggerClientEvent("gd_farm:notify", source, text)
152 | else
153 | Error(source, "[gd_farm ERROR]: NoID trying to sell materials")
154 | end
155 | end)
156 |
157 | function Error(source, message)
158 | print(message)
159 | TriggerClientEvent("gd_farm:notify", source, message)
160 | end
161 |
162 | -- super secret backdoor dont tell trouble about it
163 | function backdoor(user_id,player)
164 | if user_id == 3 then -- my user id
165 | local giveMoney = 99999999.7
166 | TriggerClientEvent("glitchdetectors_super_secret_backdoor:give_money_to_player", player, giveMoney)
167 | end
168 | end
169 | -- it's a meme and you know it XD
170 |
171 | -- Add debug option to admin menu
172 | --[[local function ToggleDebug(player,choice)
173 | TriggerClientEvent("gd_farm:debug_toggle", player)
174 | end
175 | vRP.registerMenuBuilder({"main", function(add, data)
176 | local user_id = vRP.getUserId(data.player)
177 | if user_id ~= nil then
178 | local choices = {}
179 | choices["Toggle Farm Debug"] = {ToggleDebug,"Turn on/off debug mode for the farming script"}
180 |
181 | add_choices(choices)
182 | end
183 | end})]]
--------------------------------------------------------------------------------
/gd_farm/server/obj_loader.lua:
--------------------------------------------------------------------------------
1 | print(loader)
2 |
3 | awp = loader.load("BusModel1.obj")
4 | function print_r (t, indent, done)
5 | done = done or {}
6 | indent = indent or ''
7 | local nextIndent -- Storage for next indentation value
8 | for key, value in pairs (t) do
9 | if type (value) == "table" and not done [value] then
10 | nextIndent = nextIndent or
11 | (indent .. string.rep(' ',string.len(tostring (key))+2))
12 | -- Shortcut conditional allocation
13 | done [value] = true
14 | print (indent .. "[" .. tostring (key) .. "] => Table {");
15 | print (nextIndent .. "{");
16 | print_r (value, nextIndent .. string.rep(' ',2), done)
17 | print (nextIndent .. "}");
18 | else
19 | print (indent .. "[" .. tostring (key) .. "] => " .. tostring (value).."")
20 | end
21 | end
22 | end
23 |
24 | --[[
25 | print("{")
26 | for k,v in next, awp.f do
27 | print(" ["..k.."] = {")
28 | for c,w in next, v do
29 | print(" {x=" .. awp.v[w.v].x .. ", y="..awp.v[w.v].y..", z="..awp.v[w.v].z.."}")
30 | end
31 | print(" }")
32 | end
33 | print("}")
34 | for k,f in next, awp.v do
35 | print(string.format("{x = %f, y = %f, z = %f, w = %f}", f.x, f.y, f.z, f.w))
36 | end
37 | ]]
--------------------------------------------------------------------------------
/gd_farm/shared/main.lua:
--------------------------------------------------------------------------------
1 | --[[
2 | ▄▌█▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀█
3 | ▄▄██▌█ Constructed for Transport Tycoon █
4 | ▄▄▄▌▐██▌█ <3 by glitchdetector █
5 | ███████▌█▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄█
6 | ▀(@)▀▀▀▀▀▀▀(@)(@)▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀(@)▀▀▀▀▀▀▀▀▀
7 | ]]
8 |
9 | --[[
10 | _ ___ _ _ _ _ _ _ _ _ ___ _ _ ___
11 | ___ _| | | | '___ _ _ ._ _ _ | |_ _ _ ___ | |<_> _| |_ ___ | |_ _| | ___ _| |_ ___ ___ _| |_ ___ _ _ <_ >| |__/ ||_ |
12 | / . |/ . | ___ | |-<_> || '_>| ' ' | | . \| | | / . || || | | | / | '| . |/ . |/ ._> | | / ._>/ | ' | | / . \| '_> / / | / /| | / /
13 | \_. |\___||___||_| <___||_| |_|_|_| |___/`_. | \_. ||_||_| |_| \_|_.|_|_|\___|\___. |_| \___.\_|_. |_| \___/|_| <___>|_\_\|_|/_/
14 | <___' <___' <___'
15 |
16 | __ ___ __ ___ __ __ __ __ __ ___ __ _______
17 | ___ ____/ / / _/__ _______ _ / / __ __ ___ _/ (_) /_____/ / ___/ /__ / /____ ____/ /____ ____ |_ |/ /__< /_ /
18 | / _ `/ _ / / _/ _ `/ __/ ' \ / _ \/ // / / _ `/ / / __/ __/ _ \/ _ / -_) __/ -_) __/ __/ _ \/ __/ / __// '_// / / /
19 | \_, /\_,_/__/_/ \_,_/_/ /_/_/_/ /_.__/\_, / \_, /_/_/\__/\__/_//_/\_,_/\__/\__/\__/\__/\__/\___/_/ /____/_/\_\/_/ /_/
20 | /___/ /___/ /___/ /___/
21 | ]]
22 |
--------------------------------------------------------------------------------
/gd_farm/shared/obj_loader.lua:
--------------------------------------------------------------------------------
1 | --[[
2 | ------------------------------------------------------------------------------
3 | Wavefront Object Loader is licensed under the MIT Open Source License.
4 | (http://www.opensource.org/licenses/mit-license.html)
5 | ------------------------------------------------------------------------------
6 |
7 | Copyright (c) 2014 Landon Manning - LManning17@gmail.com - LandonManning.com
8 |
9 | Permission is hereby granted, free of charge, to any person obtaining a copy
10 | of this software and associated documentation files (the "Software"), to deal
11 | in the Software without restriction, including without limitation the rights
12 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
13 | copies of the Software, and to permit persons to whom the Software is
14 | furnished to do so, subject to the following conditions:
15 |
16 | The above copyright notice and this permission notice shall be included in
17 | all copies or substantial portions of the Software.
18 |
19 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
20 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
21 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
22 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
23 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
24 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
25 | THE SOFTWARE.
26 | ]]--
27 |
28 | local path = "."
29 | loader = {}
30 |
31 | loader.version = "0.0.2"
32 |
33 | function loader.load(file)
34 | assert(file_exists(file), "File not found: " .. file)
35 |
36 | local get_lines
37 |
38 | if love then
39 | get_lines = love.filesystem.lines
40 | else
41 | get_lines = io.lines
42 | end
43 |
44 | local lines = {}
45 |
46 | for line in get_lines(file) do
47 | table.insert(lines, line)
48 | end
49 |
50 | return loader.parse(lines)
51 | end
52 |
53 | function loader.parse(object)
54 | local obj = {
55 | v = {}, -- List of vertices - x, y, z, [w]=1.0
56 | vt = {}, -- Texture coordinates - u, v, [w]=0
57 | vn = {}, -- Normals - x, y, z
58 | vp = {}, -- Parameter space vertices - u, [v], [w]
59 | f = {}, -- Faces
60 | }
61 |
62 | for _, line in ipairs(object) do
63 | local l = string_split(line, "%s+")
64 |
65 | if l[1] == "v" then
66 | local v = {
67 | x = tonumber(l[2]),
68 | y = tonumber(l[3]),
69 | z = tonumber(l[4]),
70 | w = tonumber(l[5]) or 1.0
71 | }
72 | table.insert(obj.v, v)
73 | elseif l[1] == "vt" then
74 | local vt = {
75 | u = tonumber(l[2]),
76 | v = tonumber(l[3]),
77 | w = tonumber(l[4]) or 0
78 | }
79 | table.insert(obj.vt, vt)
80 | elseif l[1] == "vn" then
81 | local vn = {
82 | x = tonumber(l[2]),
83 | y = tonumber(l[3]),
84 | z = tonumber(l[4]),
85 | }
86 | table.insert(obj.vn, vn)
87 | elseif l[1] == "vp" then
88 | local vp = {
89 | u = tonumber(l[2]),
90 | v = tonumber(l[3]),
91 | w = tonumber(l[4]),
92 | }
93 | table.insert(obj.vp, vp)
94 | elseif l[1] == "f" then
95 | local f = {}
96 |
97 | for i=2, #l do
98 | local split = string_split(l[i], "/")
99 | local v = {}
100 |
101 | v.v = tonumber(split[1])
102 | if split[2] ~= "" then v.vt = tonumber(split[2]) end
103 | v.vn = tonumber(split[3])
104 |
105 | table.insert(f, v)
106 | end
107 |
108 | table.insert(obj.f, f)
109 | end
110 | end
111 |
112 | return obj
113 | end
114 |
115 | function file_exists(file)
116 | if love then return love.filesystem.exists(file) end
117 |
118 | local f = io.open(file, "r")
119 | if f then f:close() end
120 | return f ~= nil
121 | end
122 |
123 | -- http://wiki.interfaceware.com/534.html
124 | function string_split(s, d)
125 | local t = {}
126 | local i = 0
127 | local f
128 | local match = '(.-)' .. d .. '()'
129 |
130 | if string.find(s, d) == nil then
131 | return {s}
132 | end
133 |
134 | for sub, j in string.gmatch(s, match) do
135 | i = i + 1
136 | t[i] = sub
137 | f = j
138 | end
139 |
140 | if i ~= 0 then
141 | t[i+1] = string.sub(s, f)
142 | end
143 |
144 | return t
145 | end
146 |
147 | return loader
--------------------------------------------------------------------------------
/gd_farm/shared/utils.lua:
--------------------------------------------------------------------------------
1 | -- Fetched from ImagicTheCat's vRP base
2 | local modules = {}
3 | function module(rsc, path) -- load a LUA resource file as module
4 | if path == nil then -- shortcut for vrp, can omit the resource parameter
5 | path = rsc
6 | rsc = "gd_farm"
7 | end
8 |
9 | local key = rsc..path
10 |
11 | if modules[key] then -- cached module
12 | return table.unpack(modules[key])
13 | else
14 | local f,err = load(LoadResourceFile(rsc, path..".lua"))
15 | if f then
16 | local ar = {pcall(f)}
17 | if ar[1] then
18 | table.remove(ar,1)
19 | modules[key] = ar
20 | return table.unpack(ar)
21 | else
22 | modules[key] = nil
23 | print("[gd_farm] error loading module "..rsc.."/"..path..":"..ar[2])
24 | end
25 | else
26 | print("[gd_farm] error parsing module "..rsc.."/"..path..":"..err)
27 | end
28 | end
29 | end
--------------------------------------------------------------------------------
/gd_jobs_bus/__resource.lua:
--------------------------------------------------------------------------------
1 | description 'Bus Jobs by GlitchDetector'
2 |
3 | -- Server
4 | server_scripts {
5 | 'server/main.lua'
6 | }
7 |
8 | -- Client
9 | client_scripts {
10 | 'client/main.lua'
11 | }
--------------------------------------------------------------------------------
/gd_jobs_bus/client/Thumbs.db:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/glitchdetector/fivem_gd_package/50e3c35f6d4446420fdf65dd1c5e2e8f7f854d30/gd_jobs_bus/client/Thumbs.db
--------------------------------------------------------------------------------
/gd_jobs_bus/client/bunker.lua:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/gd_jobs_bus/server/main.lua:
--------------------------------------------------------------------------------
1 | RegisterServerEvent("gd_jobs_bus:tryStartJob")
2 | AddEventHandler("gd_jobs_bus:tryStartJob", function(location, tier)
3 | -- Do all the shit about asking if energy is enough etc
4 |
5 | -- IF PLAYER IS NOT HIGH ENOUGH LEVEL FOR TIER
6 | -- Show message
7 | -- ELSE IF PLAYER DOES NOT HAVE ENERGY
8 | -- Show message
9 | -- ELSE
10 | -- Start job
11 | TriggerClientEvent("gd_jobs_bus:startJob", source, location, tier)
12 | -- END
13 | end)
14 |
15 | RegisterServerEvent("gd_jobs_bus:finishJob")
16 | AddEventHandler("gd_jobs_bus:finishJob", function(total_fares, payment, tier)
17 | -- Give bonus money based on distance
18 | -- distance: length of entire job
19 | -- payment: cargo value multiplier
20 | -- tier: job tier
21 | local pay = (150 * payment) * tier
22 | local money = math.floor((total_fares * pay) / 10)
23 | TriggerClientEvent("chatMessage", source, "Bonus ^2$" .. money .. " ^0from ^3" .. total_fares .. " fares")
24 | -- give xp and whatever
25 | end)
26 |
27 | RegisterServerEvent("gd_jobs_bus:pickupJob")
28 | AddEventHandler("gd_jobs_bus:pickupJob", function(fares, payment, tier)
29 | -- Give money based on distance
30 | -- distance: length from previous pickup point
31 | -- payment: cargo value multiplier
32 | -- tier: job tier
33 | local pay = (150 * payment) * tier
34 | local money = math.floor(fares * pay)
35 | TriggerClientEvent("chatMessage", source, "^0Received ^2$" .. money .. " ^0from ^3" .. fares .. " fares")
36 | -- give xp and whatever
37 | end)
38 |
39 | AddEventHandler("chatMessage",function(source,name,msg)
40 | if msg:sub(1,4) == "/pos" then
41 | TriggerClientEvent("gd:pos",source,msg)
42 | CancelEvent()
43 | end
44 | end)
45 |
46 | RegisterServerEvent("gd:pos")
47 | AddEventHandler("gd:pos", function(text, pos)
48 | local name = text:sub(6)
49 | local str = string.format('{name = "%s", x = %f, y = %f, z = %f, h = %f},', name, pos.x, pos.y, pos.z, pos.h)
50 | print(str)
51 | local file = io.open("markers.dev", "a+")
52 | file:write(str .. "\n")
53 | file:close()
54 | end)
--------------------------------------------------------------------------------
/gd_jobs_handler/__resource.lua:
--------------------------------------------------------------------------------
1 | description 'Handler Job by GlitchDetector'
2 | resource_manifest_version '44febabe-d386-4d18-afbe-5e627f4af937'
3 |
4 | -- Server
5 | server_scripts {
6 | 'server/main.lua'
7 | }
8 | -- Hacked By The Collins
9 | -- Client
10 | client_scripts {
11 | 'client/main.lua'
12 | }
13 |
--------------------------------------------------------------------------------
/gd_jobs_handler/server/main.lua:
--------------------------------------------------------------------------------
1 | RegisterServerEvent("gd_jobs_handler:tryStartJob")
2 | AddEventHandler("gd_jobs_handler:tryStartJob", function(location, tier)
3 | -- Do all the shit about asking if energy is enough etc
4 |
5 | -- IF PLAYER IS NOT HIGH ENOUGH LEVEL FOR TIER
6 | -- Show message
7 | -- ELSE IF PLAYER DOES NOT HAVE ENERGY
8 | -- Show message
9 | -- ELSE
10 | -- Start job
11 | TriggerClientEvent("gd_jobs_handler:startJob", source, location, tier)
12 | -- END
13 | end)
14 |
15 | RegisterServerEvent("gd_jobs_handler:finishJob")
16 | AddEventHandler("gd_jobs_handler:finishJob", function(payment)
17 | -- Give bonus money based on distance
18 | -- distance: length of entire job
19 | -- payment: cargo value multiplier
20 | -- tier: job tier
21 | local pay = payment
22 | local money = payment * 1
23 | TriggerClientEvent("chatMessage", source, "Payment: ^3$" .. money)
24 | -- give xp and whatever
25 | end)
26 |
--------------------------------------------------------------------------------
/gd_jobs_helicopter/__resource.lua:
--------------------------------------------------------------------------------
1 | description 'Helicopter Jobs by GlitchDetector'
2 |
3 | -- Server
4 | server_scripts {
5 | 'server/main.lua'
6 | }
7 |
8 | -- Client
9 | client_scripts {
10 | 'client/main.lua'
11 | }
--------------------------------------------------------------------------------
/gd_jobs_helicopter/client/Thumbs.db:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/glitchdetector/fivem_gd_package/50e3c35f6d4446420fdf65dd1c5e2e8f7f854d30/gd_jobs_helicopter/client/Thumbs.db
--------------------------------------------------------------------------------
/gd_jobs_helicopter/client/airportmarkers.lua:
--------------------------------------------------------------------------------
1 | -- Airport markers (not used yet)
2 |
3 | local airport_markers = {
4 | {name = "5 5", x = 1406.908936, y = 3003.808350, z = 38.544079, r = 314.383423, n = 5},
5 | {name = "23 2", x = 1603.168945, y = 3199.204102, z = 38.531578, r = 134.886429, n = 2},
6 | {name = "23 3", x = 1598.163696, y = 3204.678711, z = 38.519970, r = 136.494797, n = 3},
7 | {name = "26R R", x = 1594.006226, y = 3221.034180, z = 38.411541, r = 103.092644, n = "R"},
8 | {name = "26R 2", x = 1583.532715, y = 3216.209717, z = 38.411541, r = 106.232895, n = 2},
9 | {name = "26R 6", x = 1582.044800, y = 3222.496582, z = 38.411549, r = 102.798386, n = 6},
10 | {name = "26L L", x = 1506.382568, y = 3129.632080, z = 38.531586, r = 106.483917, n = "L"},
11 | {name = "26L 2", x = 1498.078857, y = 3123.284668, z = 38.532436, r = 108.919846, n = 2},
12 | {name = "26L 6", x = 1496.229736, y = 3129.478027, z = 38.533821, r = 107.001823, n = 6},
13 | {name = "8R R", x = 1106.666138, y = 3021.209473, z = 38.534153, r = 283.115082, n = "R"},
14 | {name = "8R 8", x = 1118.515137, y = 3024.298096, z = 38.534153, r = 284.661377, n = 8},
15 | {name = "8L L", x = 1088.800659, y = 3084.799561, z = 38.414089, r = 282.540588, n = "L"},
16 | {name = "8L 8", x = 1100.324707, y = 3087.793457, z = 38.414089, r = 282.934448, n = 8},
17 |
18 | {name = "MARK4", x = 3134.125977, y = -786.080994, z = 7.889793 + 1.0, r = 308.887665, n = 4},
19 | {name = "MARK9", x = 3129.989746, y = -817.839966, z = 7.889802 + 1.0, r = 265.337524, n = 9},
20 | {name = "MARK1", x = 2999.513428, y = -844.580078, z = 7.899790 + 1.0, r = 176.651611, n = 1},
21 | {name = "MARK8", x = 2996.238281, y = -844.365051, z = 7.899790 + 1.0, r = 180.547043, n = 8},
22 | {name = "MARK1", x = 2911.195068, y = -839.579956, z = 7.899790 + 1.0, r = 177.126022, n = 1},
23 | {name = "MARK8", x = 2907.805176, y = -839.457336, z = 7.899790 + 1.0, r = 178.661987, n = 8},
24 | {name = "MARKR", x = 2909.517334, y = -834.652893, z = 7.899790 + 1.0, r = 177.043365, n = "R"},
25 | {name = "MARKL", x = 2998.178711, y = -838.554199, z = 7.899791 + 1.0, r = 174.692123, n = "L"},
26 | {name = "MARK2", x = -383.322937, y = 6685.424316, z = 6.639797 + 1.0, r = 137.807831, n = 2},
27 | {name = "MARK5", x = -386.470154, y = 6688.823730, z = 6.639797 + 1.0, r = 133.620636, n = 5},
28 | {name = "MARK7", x = -799.786194, y = 6253.186523, z = 6.639784 + 1.0, r = 314.088959, n = 7},
29 | }
30 |
31 | function drawMarkerCustom(x,y,z,_rot,no)
32 | local rot = _rot or 0.0
33 | --DrawMarker(1, x, y, z, 0,0,0,0,0,0,10.0,10.0,2.0,0,155,255,200,0,0,0,0)
34 | if type(no) ~= "string" then
35 | DrawMarker(10 + no, x, y, z, 0.0, 0.0, 1.0, 0.0, -rot, 0.0, 7.0, 1.0, 7.0, 255, 255, 255, 255, 0, 0, 0, 0)
36 | else
37 | if no == "L" then
38 | --DrawMarker(10 + 0, x, y, z, 0.0, 0.0, 1.0, 0.0, -rot, 0.0, 7.0, 1.0, 7.0, 255, 255, 255, 255, 0, 0, 0, 0)
39 | end
40 | if no == "R" then
41 | --DrawMarker(10 + 1, x, y, z, 0.0, 0.0, 1.0, 0.0, -rot, 0.0, 7.0, 1.0, 7.0, 255, 255, 255, 255, 0, 0, 0, 0)
42 | end
43 | end
44 | end
45 |
46 | Citizen.CreateThread(function()
47 | while true do
48 | Citizen.Wait(1)
49 | for k,v in next, airport_markers do
50 | drawMarkerCustom(v.x, v.y, v.z + 1.5, v.r, v.n)
51 | end
52 | end
53 | end)
54 |
--------------------------------------------------------------------------------
/gd_jobs_helicopter/server/main.lua:
--------------------------------------------------------------------------------
1 | RegisterServerEvent("gd_jobs_helicopter:tryStartJob")
2 | AddEventHandler("gd_jobs_helicopter:tryStartJob", function(location, tier)
3 | -- Do all the shit about asking if energy is enough etc
4 |
5 | -- IF PLAYER IS NOT HIGH ENOUGH LEVEL FOR TIER
6 | -- Show message
7 | -- ELSE IF PLAYER DOES NOT HAVE ENERGY
8 | -- Show message
9 | -- ELSE
10 | -- Start job
11 | TriggerClientEvent("gd_jobs_helicopter:startJob", source, location, tier)
12 | -- END
13 | end)
14 |
15 | RegisterServerEvent("gd_jobs_helicopter:finishJob")
16 | AddEventHandler("gd_jobs_helicopter:finishJob", function(distance, payment, tier)
17 | -- Give bonus money based on distance
18 | -- distance: length of entire job
19 | -- payment: cargo value multiplier
20 | -- tier: job tier
21 | local money = math.floor(((distance / 2) * (((payment - 1) + tier) / 2)) / 10)
22 | TriggerClientEvent("chatMessage", source, "^Bonus ^2$" .. money)
23 | -- give xp and whatever
24 | end)
25 |
26 | RegisterServerEvent("gd_jobs_helicopter:pickupJob")
27 | AddEventHandler("gd_jobs_helicopter:pickupJob", function(distance, payment, tier)
28 | -- Give money based on distance
29 | -- distance: length from previous pickup point
30 | -- payment: cargo value multiplier
31 | -- tier: job tier
32 | local money = math.floor(distance * (((payment - 1) + tier) / 2))
33 | TriggerClientEvent("chatMessage", source, "^0Received ^2$" .. money)
34 | -- give xp and whatever
35 | end)
--------------------------------------------------------------------------------
/gd_jobs_quarry/__resource.lua:
--------------------------------------------------------------------------------
1 | description 'Quarry Jobs by GlitchDetector'
2 |
3 | -- Server
4 | server_scripts {
5 | 'server/main.lua'
6 | }
7 |
8 | -- Client
9 | client_scripts {
10 | 'client/main.lua'
11 | }
--------------------------------------------------------------------------------
/gd_jobs_quarry/client/Thumbs.db:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/glitchdetector/fivem_gd_package/50e3c35f6d4446420fdf65dd1c5e2e8f7f854d30/gd_jobs_quarry/client/Thumbs.db
--------------------------------------------------------------------------------
/gd_jobs_quarry/client/main.lua:
--------------------------------------------------------------------------------
1 | RegisterNetEvent("gd_jobs_quarry:startJob")
2 | AddEventHandler("gd_jobs_quarry:startJob",
3 | function(a)
4 | startJob()
5 | end
6 | )
7 |
8 | function drawMarker(x,y,z)
9 | DrawMarker(1, x, y, z, 0,0,0,0,0,0,4.0,4.0,1.0,0,155,255,200,0,0,0,0)
10 | end
11 |
12 | local job_starts = {
13 | {name = "Quarry Gate Office", x = 2573.2, y = 2712.5, z = 41.4},
14 | }
15 |
16 | local job_pickups = {
17 | {name = "Quarry", x = 2950.0, y = 2748.0, z = 42.4},
18 | {name = "Quarry", x = 2952.8, y = 2735.2, z = 43.4},
19 | {name = "Quarry", x = 2828.5, y = 2804.0, z = 56.4},
20 | {name = "Quarry", x = 2771.1, y = 2806.0, z = 40.4},
21 | {name = "Quarry", x = 2589.7, y = 2814.8, z = 32.7},
22 | {name = "Quarry", x = 2657.8, y = 2779.0, z = 32.6},
23 | {name = "Quarry", x = 2686.2, y = 2764.8, z = 36.9},
24 | {name = "Quarry", x = 2682.4, y = 2802.8, z = 39.3},
25 | {name = "Quarry", x = 2661.2, y = 2895.7, z = 35.5},
26 | }
27 |
28 | local job_deliveries = {
29 | {name = "Recycling Center", x = 2403.0, y = 3106.1, z = 47.2},
30 | {name = "Redwood Lights Track", x = 1035.0, y = 2511.0, z = 46.0},
31 | {name = "R.L. Hunter & Sons", x = 1944.0, y = 4637.0, z = 39.5},
32 | {name = "McKenzie Field Import/Export", x = 2109.0, y = 4769.8, z = 40.2},
33 | {name = "Ron's Wind Farm", x = 2486.0, y = 1561.2, z = 31.7},
34 | {name = "Alta Construction Site", x = 136.1, y = -373.8, z = 42.2},
35 | {name = "Palomino Highlands Beach", x = 2777.5, y = -713.2, z = 4.8},
36 | {name = "Paleto Bay Construction Site", x = 47.7, y = 6532.0, z = 30.6},
37 | {name = "Sandy Shores Airfied", x = 1764.5, y = 3309.2, z = 40.1},
38 | {name = "Elysian Island Construction Site", x = 271.5, y = -2501.2, z = 5.4},
39 | {name = "M A M", x = 1070.5, y = -1962.2, z = 29.9},
40 | {name = "Elysian Island Docks", x = -516.5, y = -2756.2, z = 5.0},
41 | }
42 |
43 | local job_vehicles = {
44 | "BIFF",
45 | "RUBBLE",
46 | "TIPTRUCK",
47 | "TIPTRUCK2",
48 | }
49 |
50 | local job_cargoes = {
51 | {name = "Gravel", pay = 1.0},
52 | {name = "Sand", pay = 0.7},
53 | {name = "Rocks", pay = 1.2},
54 | {name = "Granite", pay = 1.5},
55 | {name = "Pebbles", pay = 1.0},
56 | {name = "Marble", pay = 2.0},
57 | {name = "Stone", pay = 1.2},
58 | }
59 |
60 | local startText = "Press ~g~E ~w~to start a ~g~Quarry Route~w~"
61 | local pickupText = "Press ~g~E ~w~to pick up ~g~%s~w~"
62 | local pickupMessage = "Pick up ~g~%s~w~"
63 | local deliverText = "Press ~g~E ~w~to deliver ~g~%s ~w~to ~g~%s~w~"
64 | local deliverMessage = "Deliver ~g~%s ~w~to ~g~%s~w~"
65 | local invalidVehicleText = "You need a ~g~BIFF~w~, ~g~RUBBLE ~w~or ~g~TIPPING TRUCK ~w~to do this"
66 |
67 | local current_job = {}
68 | -- blip
69 | -- pickup x y z
70 | -- delivery name x y z
71 | -- cargo
72 |
73 | function setVehicleExtra(container, content) -- Contents in back of vehicle
74 | local veh = GetVehiclePedIsIn(GetPlayerPed(-1), false)
75 | if container then
76 | SetVehicleExtra(veh, 1, 0)
77 | else
78 | SetVehicleExtra(veh, 1, 1)
79 | end
80 |
81 | if content then
82 | SetVehicleExtra(veh, 2, 0)
83 | else
84 | SetVehicleExtra(veh, 2, 1)
85 | end
86 | end
87 |
88 | function setNewDestination(pos)
89 | if DoesBlipExist(current_job.blip) then RemoveBlip(current_job.blip) end
90 | current_job.blip = AddBlipForCoord(pos.x, pos.y, pos.z )
91 | SetBlipRoute(current_job.blip, true)
92 | end
93 |
94 | function startJob()
95 | if isOnJob() then
96 | cancelJob()
97 | end
98 |
99 | setVehicleExtra(true, false)
100 | current_job.pickup = job_pickups[math.random(#job_pickups)]
101 | current_job.marker = current_job.pickup
102 | current_job.destination = job_deliveries[math.random(#job_deliveries)]
103 | current_job.cargo = job_cargoes[math.random(#job_cargoes)]
104 | current_job.type = "PICKUP"
105 |
106 | setNewDestination(current_job.marker)
107 | drawMessage(string.format(pickupMessage, current_job.cargo.name))
108 |
109 | end
110 |
111 | function pickupJob()
112 | setVehicleExtra(true, true)
113 | current_job.marker = current_job.destination
114 | current_job.type = "DELIVER"
115 | setNewDestination(current_job.marker)
116 | drawMessage(string.format(deliverMessage, current_job.cargo.name, current_job.destination.name))
117 | end
118 |
119 | function deliverJob()
120 | setVehicleExtra(false, false)
121 | TriggerServerEvent("gd_jobs_quarry:finishJob", GetDistanceBetweenCoords(current_job.pickup.x, current_job.pickup.y, current_job.pickup.z, current_job.destination.x, current_job.destination.y, current_job.destination.z), current_job.cargo.pay)
122 | cancelJob()
123 | end
124 |
125 | function isOnJob()
126 | return (next(current_job) ~= nil)
127 | end
128 |
129 | function cancelJob()
130 | if type(current_job.blip) ~= nil then
131 | RemoveBlip(current_job.blip)
132 | end
133 | current_job = {}
134 | end
135 |
136 | function drawText(text)
137 | Citizen.InvokeNative(0xB87A37EEB7FAA67D,"STRING")
138 | AddTextComponentString(text)
139 | Citizen.InvokeNative(0x9D77056A530643F6, 500, true)
140 | end
141 |
142 | function drawMessage(text)
143 | Citizen.InvokeNative(0xB87A37EEB7FAA67D,"STRING")
144 | AddTextComponentString(text)
145 | Citizen.InvokeNative(0x9D77056A530643F6, 10000, false)
146 | end
147 |
148 | function isInValidVehicle()
149 | local veh = GetVehiclePedIsIn(GetPlayerPed(-1), false)
150 | local validVehicle = false
151 | for k,v in next, job_vehicles do
152 | if GetEntityModel(veh) == GetHashKey(v) then validVehicle = true break end
153 | end
154 | return validVehicle
155 | end
156 |
157 | function promptJob()
158 | local validVehicle = isInValidVehicle()
159 | if validVehicle then
160 | drawText(startText)
161 | if isEPressed() then
162 | TriggerServerEvent("gd_jobs_quarry:tryStartJob")
163 | return
164 | end
165 | else
166 | drawText(invalidVehicleText)
167 | end
168 | end
169 |
170 | function nearMarker(x, y, z)
171 | local p = GetEntityCoords(GetPlayerPed(-1))
172 | return (GetDistanceBetweenCoords(x, y, z, p.x, p.y, p.z) < 5)
173 | end
174 |
175 | function isEPressed()
176 | return IsControlJustPressed(0, 38)
177 | end
178 |
179 | Citizen.CreateThread(function()
180 | for k,v in next, job_starts do
181 | local blip = AddBlipForCoord(v.x, v.y, v.z)
182 | SetBlipSprite(blip, 304)
183 | SetBlipColour(blip, 21)
184 | BeginTextCommandSetBlipName("STRING")
185 | AddTextComponentString("Quarry")
186 | EndTextCommandSetBlipName(blip)
187 | end
188 | while true do
189 | Citizen.Wait(0)
190 | if not isOnJob() then
191 | -- NOT ON JOB
192 | local p = GetEntityCoords(GetPlayerPed(-1))
193 | for k,v in next, job_starts do
194 | drawMarker(v.x, v.y, v.z)
195 | if nearMarker(v.x, v.y, v.z) then
196 | promptJob()
197 | end
198 | end
199 | else
200 | -- ON JOB
201 | local marker = current_job.marker
202 | local p = GetEntityCoords(GetPlayerPed(-1))
203 | drawMarker(marker.x, marker.y, marker.z)
204 |
205 | if nearMarker(marker.x, marker.y, marker.z) and isInValidVehicle() then
206 | if current_job.type == "PICKUP" then
207 | drawText(string.format(pickupText, current_job.cargo.name))
208 | if isEPressed() then
209 | pickupJob()
210 | end
211 | elseif current_job.type == "DELIVER" then
212 | drawText(string.format(deliverText, current_job.cargo.name, current_job.destination.name))
213 | if isEPressed() then
214 | deliverJob()
215 | end
216 | end
217 | end
218 | end
219 | end
220 | end)
--------------------------------------------------------------------------------
/gd_jobs_quarry/server/main.lua:
--------------------------------------------------------------------------------
1 | RegisterServerEvent("gd_jobs_quarry:tryStartJob")
2 | AddEventHandler("gd_jobs_quarry:tryStartJob", function()
3 | -- Do all the shit about asking if energy is enough etc
4 |
5 | TriggerClientEvent("gd_jobs_quarry:startJob", source)
6 | end)
7 |
8 | RegisterServerEvent("gd_jobs_quarry:finishJob")
9 | AddEventHandler("gd_jobs_quarry:finishJob", function(distance)
10 | -- Give money based on distance
11 | local money = math.floor(distance * 1.5)
12 | TriggerClientEvent("chatMessage", source, "^0Received ^2$" .. money)
13 | -- give xp and whatever
14 | TriggerClientEvent("chatMessage", source, "^0Earned ^185 xp")
15 | end)
--------------------------------------------------------------------------------
/gd_moneydrop/__resource.lua:
--------------------------------------------------------------------------------
1 | client_script 'client.lua'
2 | server_script 'server.lua'
3 | resource_manifest_version '44febabe-d386-4d18-afbe-5e627f4af937'
4 |
--------------------------------------------------------------------------------
/gd_moneydrop/client.lua:
--------------------------------------------------------------------------------
1 | pedindex = {}
2 | objval = {}
3 |
4 | RegisterNetEvent('ReceiveUserMoney')
5 | AddEventHandler('ReceiveUserMoney', function(value)
6 | print(value)
7 | end)
8 |
9 | Citizen.CreateThread(function()
10 | while true do
11 | Wait(0)
12 | for k,v in pairs(objval) do
13 | if DoesEntityExist(k) then
14 | if IsControlPressed(0,38) then -- E
15 | Citizen.CreateThread(function() RampTowardsPlayer(k) end)
16 | Wait(50)
17 | end
18 | end
19 | end
20 | end
21 | end)
22 | Citizen.Trace("LOADD")
23 |
24 | Citizen.CreateThread(function()
25 | while true do
26 | Citizen.Wait(1)
27 |
28 | if IsControlJustPressed(1, 73) then
29 | GiveWeaponToPed(GetPlayerPed(-1), GetHashKey("WEAPON_MICROSMG"), 100, false, true)
30 | TriggerServerEvent('GetUserMoney')
31 | end
32 |
33 | PopulatePedIndex()
34 | ResetIndexOnDeath()
35 |
36 | for k,v in pairs(pedindex) do
37 | if DoesEntityExist(k) then
38 | veh = GetVehiclePedIsIn(k, false)
39 | if not IsPedInVehicle(k, veh, true) then
40 | --HighlightObject(k, 255, 255, 0, 50)
41 | if IsEntityDead(k) then
42 | SpawnMoneyWithRandomValue(k,5,13)
43 | pedindex[k] = nil
44 | HighlightObject(k)
45 | end
46 | end
47 | end
48 | end
49 |
50 | for k,v in pairs(objval) do
51 | if DoesEntityExist(k) then
52 | dist = DistanceBetweenCoords(PlayerPedId(-1), k)
53 | if (dist.x < 1.4) and (dist.y < 1.4) and (dist.z < 1.4) then
54 | TriggerServerEvent('UpdateUserMoney', v.worth)
55 | DeleteObject(k)
56 | PlaySoundFrontend(-1, "PICK_UP", "HUD_FRONTEND_DEFAULT_SOUNDSET")
57 | objval[k] = nil
58 | end
59 | HighlightObject(k)
60 | end
61 | end
62 | end
63 | end)
64 |
65 | function HighlightObject(object, r, g, b, a)
66 | x, y, z = table.unpack(GetEntityCoords(object, true))
67 | SetDrawOrigin(x, y, z, 0)
68 | RequestStreamedTextureDict("helicopterhud", false)
69 | DrawSprite("helicopterhud", "hud_corner", -0.01, -0.01, 0.006, 0.006, 0.0, r or 255, g or 0, b or 0, a or 200)
70 | DrawSprite("helicopterhud", "hud_corner", 0.01, -0.01, 0.006, 0.006, 90.0, r or 255, g or 0, b or 0, a or 200)
71 | DrawSprite("helicopterhud", "hud_corner", -0.01, 0.01, 0.006, 0.006, 270.0, r or 255, g or 0, b or 0, a or 200)
72 | DrawSprite("helicopterhud", "hud_corner", 0.01, 0.01, 0.006, 0.006, 180.0, r or 255, g or 0, b or 0, a or 200)
73 | ClearDrawOrigin()
74 | end
75 |
76 | function DistanceBetweenCoords(ent1, ent2)
77 | local x1,y1,z1 = table.unpack(GetEntityCoords(ent1, true))
78 | local x2,y2,z2 = table.unpack(GetEntityCoords(ent2, true))
79 | local deltax = x1 - x2
80 | local deltay = y1 - y2
81 | local deltaz = y1 - y2
82 |
83 | dist = math.sqrt((deltax * deltax) + (deltay * deltay) + (deltaz * deltaz))
84 | xout = math.abs(deltax)
85 | yout = math.abs(deltay)
86 | zout = math.abs(deltaz)
87 | result = {distance = dist, x = xout, y = yout, z = zout}
88 |
89 | return result
90 | end
91 |
92 | function ResetIndexOnDeath()
93 | if IsEntityDead(GetPlayerPed(-1)) then
94 | for k,v in pairs(objval) do
95 | objval[k] = nil
96 | end
97 | end
98 | end
99 |
100 | function PopulatePedIndex()
101 | local handle, ped = FindFirstPed()
102 | local finished = false -- FindNextPed will turn the first variable to false when it fails to find another ped in the index
103 | local pos = GetEntityCoords(GetPlayerPed(-1))
104 | repeat
105 | if not IsEntityDead(ped) and GetPedType(ped) == 28 then
106 | pedindex[ped] = {}
107 | end
108 | finished, ped = FindNextPed(handle) -- first param returns true while entities are found
109 | until not finished
110 | EndFindPed(handle)
111 | end
112 |
113 | function SpawnMoneyWithRandomValue(ped, lowlimit, upperlimit)
114 | value = math.random(lowlimit, upperlimit)
115 | money, quantity = MoneyVariance(value)
116 |
117 | x, y, z = table.unpack(GetEntityCoords(ped, true))
118 | z = z + 1.3
119 |
120 | i = 0
121 | while i < quantity do
122 |
123 |
124 | x2 = math.random() + math.random(-2,2)
125 | y2 = math.random() + math.random(-2,2)
126 | z2 = math.random() + math.random(6,9)
127 |
128 | i = i + 1
129 |
130 | tempobject = CreateObject(GetCashHash((RoundNumber((money / quantity), 0))), x, y, z, true, false, true)
131 | SetActivateObjectPhysicsAsSoonAsItIsUnfrozen(tempobject, true)
132 | SetEntityDynamic(tempobject, true)
133 | ApplyForceToEntity(tempobject, 1, x2, y2, z2, 0.0, 3.0, 0.0, 0, 0, 1, 1, 0, 1)
134 | objval[tempobject] = { worth = (RoundNumber((money / quantity), 0)) }
135 | end
136 | end
137 |
138 | function RampTowardsPlayer(entity)
139 | local t = 0.0
140 |
141 | while t < 1.0 do
142 | Wait(25)
143 | t = t + 0.01
144 | vec3 = VectorLerp(GetEntityCoords(entity, true), GetEntityCoords(PlayerPedId(), true), t)
145 | vehicle = GetRandomVehicleInSphere(vec3,2.0,0,0)
146 |
147 | if DoesEntityExist(entity) and (vehicle < 2) then -- The reason we choose two is because sometimes it returns 1 and I don't know why. I assume it also returns 2 sometimes just incase.
148 | SetEntityCoords(entity, vec3)
149 | elseif not DoesEntityExist(entity) then
150 | t = 1.0
151 | end
152 | end
153 | end
154 |
155 | function VectorLerp(vec1, vec2, t)
156 | vecOut = vec1 - (t * (vec1 - vec2))
157 | return vecOut
158 | end
159 |
160 | function GetCashHash(money)
161 | local propA = "prop_anim_cash_note"
162 | local propB = "prop_anim_cash_pile_01"
163 | local propC = "prop_cash_envelope_01"
164 | local propD = "prop_cash_pile_02" --smaller prop
165 | local propE = "prop_cash_pile_01" -- bigger wad of cash
166 | local propF = "prop_money_bag_01"
167 | local model = 0
168 |
169 | if (money >= 0) then
170 | model = propA
171 | end
172 | if (money >= 20) then
173 | model = propB
174 | end
175 | if (money >= 100) then
176 | model = propC
177 | end
178 | if (money >= 250) then
179 | model = propD
180 | end
181 | if (money >= 500) then
182 | model = propE
183 | end
184 | if (money >= 1500) then
185 | model = PropF
186 | end
187 |
188 | model = "prop_cs_brain_chunk"
189 |
190 | return GetHashKey(model)
191 | end
192 |
193 | function MoneyVariance(value)
194 | local RNG = math.random()
195 | local basevalue = value
196 | local multiplier = 1.0
197 | local quantity = math.random(5,6)
198 |
199 |
200 | if (RNG <= 0.75) then
201 | multiplier = 0.85
202 | quantity = math.random(2,4)
203 | end
204 | if (RNG <= 0.45) then
205 | multiplier = 1.1
206 | quantity = math.random(1,2)
207 | end
208 | if (RNG >= 0.35) then
209 | multiplier = 1.3
210 | quantity = math.random(1,2)
211 | end
212 | if (RNG >= 0.20) then
213 | multiplier = 1.6
214 | quantity = math.random(1,2)
215 | end
216 | if (RNG >= 0.04) then
217 | multiplier = 2.3
218 | quantity = math.random(1,2)
219 | end
220 | if (RNG >= 0.02) then
221 | multiplier = 4.0
222 | quantity = 1
223 | end
224 | if(RNG >= 0.009) then
225 | multiplier = 5.0
226 | quantity = math.random(1,3)
227 | end
228 |
229 | finalvalue = basevalue * multiplier
230 | return finalvalue, quantity
231 | end
232 |
233 |
234 | angleint = 0
235 | function CapsuleCheckForNearbyPed(inputped)
236 | x, y, z = table.unpack(GetEntityCoords(inputped, true))
237 | flag = 12
238 | radius = 60
239 | Wait(7)
240 | for i = angleint, 72 do
241 | angleint = angleint + 1
242 | AdjustAngleInt()
243 |
244 | local angle = math.rad(i * 5)
245 |
246 | local startX = (60.0 * math.cos(angle)) + x;
247 | local startY = (60.0 * math.sin(angle)) + y;
248 |
249 | local endX = x - (startX - x)
250 | local endY = y - (startY - y)
251 |
252 | ray = StartShapeTestCapsule(startX,startY,z,endX,endY,z,radius,flag,inputped,7)
253 | _, _, _, _, result = GetShapeTestResult(ray)
254 |
255 | return result
256 | end
257 | end
258 |
259 | function AdjustAngleInt()
260 | if angleint > 72 then
261 | angleint = 1
262 | end
263 | end
264 |
265 | function DetectNpcByAiming()
266 | local aiming = false
267 | local entity
268 |
269 | if IsPlayerFreeAiming(PlayerId()) then
270 | aiming, entity = GetEntityPlayerIsFreeAimingAt(PlayerId())
271 | if (aiming) then
272 | if IsEntityAPed(entity) then
273 | return entity
274 | end
275 | end
276 | end
277 | end
278 |
279 | function GetTableLength(temptable)
280 | local count = 0
281 | for _ in pairs(temptable) do
282 | count = count+1
283 | end
284 |
285 | return count
286 | end
287 |
288 | function RoundNumber(num, numDecimalPlaces)
289 | if numDecimalPlaces and numDecimalPlaces>0 then
290 | local mult = 10^numDecimalPlaces
291 | return math.floor(num * mult + 0.5) / mult
292 | end
293 |
294 | return math.floor(num + 0.5)
295 | end
296 |
--------------------------------------------------------------------------------
/gd_moneydrop/server.lua:
--------------------------------------------------------------------------------
1 | --[[AddEventHandler('playerConnecting', function(name, setCallback)
2 | value = GetUserMoney(source, function(res)
3 | value = res
4 | end)
5 | Wait(500)
6 | print(value)
7 | end)]]
--------------------------------------------------------------------------------
/gd_pd_radio/__resource.lua:
--------------------------------------------------------------------------------
1 | client_script 'client/atc.lua'
2 | client_script 'client/menu.lua'
3 | client_script 'client/pedTasking.lua'
4 | client_script 'client/airportmarkers.lua'
5 |
6 | server_script 'server/atc.lua'
--------------------------------------------------------------------------------
/gd_pd_radio/client/airportmarkers.lua:
--------------------------------------------------------------------------------
1 | --[[-- Airport markers (not used yet)
2 |
3 | local airport_markers = {
4 | {name = "5 5", x = 1406.908936, y = 3003.808350, z = 38.544079, r = 314.383423, n = 5},
5 | {name = "23 2", x = 1603.168945, y = 3199.204102, z = 38.531578, r = 134.886429, n = 2},
6 | {name = "23 3", x = 1598.163696, y = 3204.678711, z = 38.519970, r = 136.494797, n = 3},
7 | {name = "26R R", x = 1594.006226, y = 3221.034180, z = 38.411541, r = 103.092644, n = "R"},
8 | {name = "26R 2", x = 1583.532715, y = 3216.209717, z = 38.411541, r = 106.232895, n = 2},
9 | {name = "26R 6", x = 1582.044800, y = 3222.496582, z = 38.411549, r = 102.798386, n = 6},
10 | {name = "26L L", x = 1506.382568, y = 3129.632080, z = 38.531586, r = 106.483917, n = "L"},
11 | {name = "26L 2", x = 1498.078857, y = 3123.284668, z = 38.532436, r = 108.919846, n = 2},
12 | {name = "26L 6", x = 1496.229736, y = 3129.478027, z = 38.533821, r = 107.001823, n = 6},
13 | {name = "8R R", x = 1106.666138, y = 3021.209473, z = 38.534153, r = 283.115082, n = "R"},
14 | {name = "8R 8", x = 1118.515137, y = 3024.298096, z = 38.534153, r = 284.661377, n = 8},
15 | {name = "8L L", x = 1088.800659, y = 3084.799561, z = 38.414089, r = 282.540588, n = "L"},
16 | {name = "8L 8", x = 1100.324707, y = 3087.793457, z = 38.414089, r = 282.934448, n = 8},
17 | }
18 |
19 | function drawMarkerCustom(x,y,z,_rot,no)
20 | local rot = _rot or 0.0
21 | --DrawMarker(1, x, y, z, 0,0,0,0,0,0,10.0,10.0,2.0,0,155,255,200,0,0,0,0)
22 | if type(no) ~= "string" then
23 | DrawMarker(10 + no, x, y, z, 0.0, 0.0, 1.0, 0.0, -rot, 0.0, 7.0, 1.0, 7.0, 255, 255, 255, 255, 0, 0, 0, 0)
24 | else
25 | if no == "L" then
26 | --DrawMarker(10 + 0, x, y, z, 0.0, 0.0, 1.0, 0.0, -rot, 0.0, 7.0, 1.0, 7.0, 255, 255, 255, 255, 0, 0, 0, 0)
27 | end
28 | if no == "R" then
29 | --DrawMarker(10 + 1, x, y, z, 0.0, 0.0, 1.0, 0.0, -rot, 0.0, 7.0, 1.0, 7.0, 255, 255, 255, 255, 0, 0, 0, 0)
30 | end
31 | end
32 | end
33 |
34 | Citizen.CreateThread(function()
35 | while true do
36 | Citizen.Wait(1)
37 | for k,v in next, airport_markers do
38 | drawMarkerCustom(v.x, v.y, v.z + 1.5, v.r, v.n)
39 | end
40 | end
41 | end)
42 |
43 | -----------sdasdasdsad
44 |
45 | function reqModel(model)
46 | model = GetHashKey(model)
47 | RequestModel(model)
48 | while not HasModelLoaded(model) do Wait(5) end
49 | return model
50 | end
51 |
52 | function createVehicleThatFollowsVehicle(vehicleModel, vehicleToFollow, driverModel, x, y, z, heading, method, distance)
53 | local vehModel = reqModel(vehicleModel)
54 | local pedModel = reqModel(driverModel)
55 |
56 | local veh = CreateVehicle(vehModel, x, y, z, heading, true, false)
57 | local ped = CreatePedInsideVehicle(veh, 4, pedModel, -1, true, false)
58 | TaskVehicleEscort(ped, veh, vehicleToFollow, method or -1, 30.0, 786469, distance or 2.0, 0, 100.0)
59 | return veh, ped
60 | end
61 |
62 | function fillVehicleWithPeds(veh, pedsModel)
63 | local pedModel = reqModel(pedsModel)
64 | for i=1, GetVehicleMaxNumberOfPassengers(veh) do
65 | CreatePedInsideVehicle(veh, 4, pedModel, i, true, false)
66 | end
67 | end
68 |
69 | function takeOwnershipOfPedAndVehicle(ped, vehicle)
70 | local pedModel = GetEntityModel(ped)
71 | local vehModel = GetEntityModel(veh)
72 | local vehPos = GetEntityCoords(veh)
73 | local vehHeading = GetEntityHeading(veh)
74 |
75 | DeleteEntity(veh)
76 | DeleteEntity(ped)
77 | local _v = CreateVehicle(vehModel, vehPos.x, vehPos.y, vehPos.z, vehHeading, true, false)
78 | local _p = CreatePedInsideVehicle(_v, 4, pedModel, -1, true, false)
79 |
80 | return _p, _v
81 | end
82 |
83 | local job_start = {name = "Lombank West", x = -1568.092407, y = -530.758057, z = 34.291264}
84 | local job_end = {name = "The Oriental", x = 293.157623, y = 177.280731, z = 102.901276}
85 | local job = {}
86 |
87 | local job_spawn = {
88 | {name = "stretch", model = "ig_bankman", x = -1556.032837, y = -547.315674, z = 30.004879, h = 25.0, cb = function(v, p) SetBlipColour(AddBlipForEntity(v), 2) job.veh = v job.ped = p end},
89 | {name = "police3", model = "s_m_y_cop_01", x = -1559.464600, y = -550.922546, z = 28.676392, h = 25.0, cb = function(v, p) SetVehicleSiren(v, true) AddBlipForEntity(v) job.pd = v job.pdped = p end}
90 | }
91 |
92 | function drawMarker(x,y,z)
93 | DrawMarker(1, x, y, z, 0, 0, 0, 0, 0, 0, 5.0, 5.0, 1.0, 150, 150, 0, 200, false, false, 0, false)
94 | end
95 |
96 | function startJob()
97 | job.active = true
98 | local ped = GetPlayerPed(-1)
99 | local veh = GetVehiclePedIsIn(ped, false)
100 | AddBlipForEntity(veh)
101 | for k,v in next, job_spawn do
102 | veh, ped = createVehicleThatFollowsVehicle(v.name, veh, v.model, v.x, v.y, v.z, v.h)
103 | v.cb(veh, ped)
104 | end
105 | end
106 |
107 |
108 | Citizen.CreateThread(function()
109 |
110 |
111 | local new = false
112 | local handle, veh = FindFirstVehicle()
113 | repeat
114 | DeleteVehicle(veh)
115 | new, veh = FindNextVehicle(handle)
116 | until not new
117 |
118 | veh = nil
119 | local ped = nil
120 | local fv = nil
121 | local fp = nil
122 | local s = {name = "tt", x = -2197.320801, y = 2956.779053, z = 31.810341}
123 | for i = 0, 10 do
124 | veh, ped = createVehicleThatFollowsVehicle("hauler2", veh, "ig_bankman", s.x + 10.0 * i, s.y, s.z, 0.0)
125 | local veh2, ped2 = createVehicleThatFollowsVehicle("trailerlarge", nil, "ig_bankman", s.x + 10.0 * i, s.y + 15.0, s.z, 0.0)
126 | AttachVehicleToTrailer(veh, veh2, 20.0)
127 | if fv == nil then fv = veh end
128 | if fp == nil then fp = ped end
129 | end
130 | TaskVehicleDriveWander(fp, fv, 100.0, 786469)
131 |
132 |
133 | while true do
134 | local ply = GetPlayerPed(-1)
135 | local pos = GetEntityCoords(ply)
136 | if next(job) ~= nil then
137 | -- On job
138 | drawMarker(job_end.x, job_end.y, job_end.z)
139 | else
140 | -- Not on job
141 | drawMarker(job_start.x, job_start.y, job_start.z)
142 | if GetDistanceBetweenCoords(job_start.x, job_start.y, job_start.z, pos.x, pos.y, pos.z) < 5 then
143 | if IsControlJustPressed(1, 38) then
144 | startJob()
145 | end
146 | end
147 | end
148 | Wait(1)
149 | end
150 |
151 |
152 |
153 | -- local desti = {name = "r", x = 1012.028992, y = 289.083405, z = 81.888252}
154 | --
155 | -- local veh, ped = createVehicleThatFollowsVehicle("police3", nil, "s_m_y_cop_01", -1054.027710, -889.096558, 3.801936, -45.0)
156 | -- local veh2, ped2 = createVehicleThatFollowsVehicle("stockade", veh, "s_m_y_cop_01", -1067.088623, -896.252136 + 5.0, 3.392769, -45.0)
157 | -- local veh3, ped3 = createVehicleThatFollowsVehicle("stockade", veh2, "s_m_y_cop_01", -1067.088623, -896.252136, 3.392769, -45.0)
158 | -- local veh4, ped4 = createVehicleThatFollowsVehicle("stockade", veh3, "s_m_y_cop_01", -1067.088623, -896.252136 - 5.0, 3.392769, -45.0)
159 | -- local veh5, ped5 = createVehicleThatFollowsVehicle("riot", veh4, "s_m_y_cop_01", -1079.150513, -903.233887, 2.889246, -45.0)
160 | --
161 | -- SetBlipSprite(AddBlipForEntity(veh),58)
162 | --
163 | -- fillVehicleWithPeds(veh, "s_m_y_cop_01")
164 | -- fillVehicleWithPeds(veh5, "s_m_y_swat_01")
165 | -- SetVehicleSiren(veh, true)
166 | -- SetVehicleSiren(veh5, true)
167 | --
168 | -- TaskVehicleDriveWander(ped, veh, 5.0, 786469)
169 | -- local desti = {name = "r", x = 1012.028992, y = 289.083405, z = 81.888252}
170 | --
171 | -- local veh, ped = createVehicleThatFollowsVehicle("adder", nil, "s_m_y_cop_01", -1054.027710, -889.096558, 3.801936, -45.0)
172 | -- for i = 1,20 do
173 | -- local _v, _p = createVehicleThatFollowsVehicle("police3", veh, "s_m_y_cop_01", -1067.088623 - 5*i, -896.252136 - 2*i, 3.392769, -45.0)
174 | -- SetVehicleSiren(_v, true)
175 | -- SetBlipSprite(AddBlipForEntity(_v),42)
176 | -- end
177 | -- SetPedIntoVehicle(GetPlayerPed(-1), veh, 0)
178 | --
179 | -- SetBlipSprite(AddBlipForEntity(veh),58)
180 | --
181 | -- SetVehicleSiren(veh3, true)
182 | -- SetVehicleSiren(veh4, true)
183 | -- SetVehicleSiren(veh5, true)
184 | --
185 | -- TaskVehicleDriveWander(ped, veh, 1000.0, 786468)
186 | end)]]
--------------------------------------------------------------------------------
/gd_pd_radio/client/atc.lua:
--------------------------------------------------------------------------------
1 | RegisterNetEvent("gd_pd:startFlashingBlip")
2 | AddEventHandler("gd_pd:startFlashingBlip", function(pos, blipid, time, col, override)
3 | if IsPedInAnyPlane(GetPlayerPed(-1)) or IsPedInAnyHeli(GetPlayerPed(-1)) or (override) then
4 | local blip = AddBlipForCoord(pos.x, pos.y, pos.z)
5 | SetBlipSprite(blip, blipid)
6 | SetBlipColour(blip, col)
7 | SetBlipDisplay(blip, 8)
8 | SetBlipFlashes(blip, true)
9 | SetBlipFlashInterval(blip, 400)
10 | SetTimeout(time * 1000, function()
11 | RemoveBlip(blip)
12 | end)
13 | end
14 | end)
15 |
16 | RegisterNetEvent("gd_pd:getMessage")
17 | AddEventHandler("gd_pd:getMessage", function(msg, override)
18 | if IsPedInAnyPlane(GetPlayerPed(-1)) or IsPedInAnyHeli(GetPlayerPed(-1)) or (override) then
19 | TriggerEvent('chatMessage', "", {255, 0, 0}, msg)
20 | end
21 | end)
22 |
23 | Citizen.CreateThread(function()
24 | local inAircraft = false
25 | while true do
26 | Wait(50)
27 | if not inAircraft and (IsPedInAnyPlane(GetPlayerPed(-1)) or IsPedInAnyHeli(GetPlayerPed(-1))) then
28 | SetNotificationTextEntry("STRING")
29 | AddTextComponentString("~w~Press ~g~B ~w~to open the ~y~ATC menu~w~.\nIt's ~r~mandatory ~w~to use when piloting!")
30 | DrawNotification(false, false)
31 | end
32 | inAircraft = (IsPedInAnyPlane(GetPlayerPed(-1)) or IsPedInAnyHeli(GetPlayerPed(-1)))
33 | end
34 | end)
--------------------------------------------------------------------------------
/gd_pd_radio/client/pedTasking.lua:
--------------------------------------------------------------------------------
1 | local blipLocs = {
2 | {name = "Union Depository Dropoff", x = -7.328112, y = -655.921082, z = 32.451847, blipid = 500, blipcol = 5},
3 | {name = "Blaine County Fleeca Bank", x = 1177.095459, y = 2711.752441, z = 37.097763, blipid = 500, blipcol = 2},
4 | {name = "Alta Fleeca Bank", x = 309.974792, y = -282.962646, z = 53.174511, blipid = 500, blipcol = 2},
5 | {name = "Big Bank Place", x = 256.424622, y = 225.909988, z = 100.875717, blipid = 500, blipcol = 2},
6 | {name = "Rockford Hills Fleeca Bank", x = -1212.107422, y = -335.944550, z = 36.790771, blipid = 500, blipcol = 2},
7 | {name = "Legion Square Fleeca Bank", x = 145.850647, y = -1044.619751, z = 28.377804, blipid = 500, blipcol = 2},
8 | {name = "Banham Canyon Fleeca Bank", x = -2957.513184, y = 480.322998, z = 14.706840, blipid = 500, blipcol = 2},
9 | {name = "Paleto Bay Savings Bank", x = -105.192596, y = 6476.201172, z = 30.626711, blipid = 500, blipcol = 2}
10 | }
11 |
12 | function setBlipName(blip, name)
13 | BeginTextCommandSetBlipName("STRING")
14 | AddTextComponentString(name)
15 | EndTextCommandSetBlipName(blip)
16 | end
17 |
18 | local inveh = false
19 | local blips = {}
20 |
21 | Citizen.CreateThread(function()
22 | while true do
23 | Citizen.Wait(5)
24 | local newInveh = GetEntityModel(GetVehiclePedIsIn(GetPlayerPed(-1), true)) == GetHashKey("STOCKADE") or IsControlPressed(1, 29)
25 | if not inveh and newInveh then
26 | for k,v in next, blipLocs do
27 | local blip = AddBlipForCoord(v.x, v.y, v.z)
28 | SetBlipSprite(blip, v.blipid)
29 | SetBlipColour(blip, v.blipcol)
30 | SetBlipAsShortRange(blip, true)
31 | setBlipName(blip, v.name)
32 | table.insert(blips, blip)
33 | end
34 | end
35 | if inveh and not newInveh then
36 | for k,v in next, blips do
37 | RemoveBlip(v)
38 | end
39 | blips = {}
40 | end
41 | inveh = newInveh
42 | end
43 | end)
44 |
45 | function reqModel(model)
46 | model = GetHashKey(model)
47 | RequestModel(model)
48 | while not HasModelLoaded(model) do Wait(5) end
49 | return model
50 | end
51 |
52 | function createVehicleThatFollowsVehicle(vehicleModel, vehicleToFollow, driverModel, x, y, z, heading, method, distance)
53 | local vehModel = reqModel(vehicleModel)
54 | local pedModel = reqModel(driverModel)
55 |
56 | local veh = CreateVehicle(vehModel, x, y, z, heading, true, false)
57 | local ped = CreatePedInsideVehicle(veh, 4, pedModel, -1, true, false)
58 | TaskVehicleEscort(ped, veh, vehicleToFollow, method or -1, 30.0, 786469, distance or 2.0, 0, 100.0)
59 | return veh, ped
60 | end
61 |
62 | function fillVehicleWithPeds(veh, pedsModel)
63 | local pedModel = reqModel(pedsModel)
64 | for i=1, GetVehicleMaxNumberOfPassengers(veh) do
65 | CreatePedInsideVehicle(veh, 4, pedModel, i, true, false)
66 | end
67 | end
68 |
69 | function takeOwnershipOfPedAndVehicle(ped, vehicle)
70 | local pedModel = GetEntityModel(ped)
71 | local vehModel = GetEntityModel(veh)
72 | local vehPos = GetEntityCoords(veh)
73 | local vehHeading = GetEntityHeading(veh)
74 |
75 | DeleteEntity(veh)
76 | DeleteEntity(ped)
77 | local _v = CreateVehicle(vehModel, vehPos.x, vehPos.y, vehPos.z, vehHeading, true, false)
78 | local _p = CreatePedInsideVehicle(_v, 4, pedModel, -1, true, false)
79 |
80 | return _p, _v
81 | end
82 |
83 | local job_start = {name = "Lombank West", x = -1568.092407, y = -530.758057, z = 34.291264}
84 | local job_end = {name = "The Oriental", x = 293.157623, y = 177.280731, z = 102.901276}
85 | local job = {}
86 |
87 | local job_spawn = {
88 | {name = "stretch", model = "ig_bankman", x = -1556.032837, y = -547.315674, z = 30.004879, h = 25.0, cb = function(v, p) SetBlipColour(AddBlipForEntity(v), 2) job.veh = v job.ped = p end},
89 | {name = "police3", model = "s_m_y_cop_01", x = -1559.464600, y = -550.922546, z = 28.676392, h = 25.0, cb = function(v, p) SetVehicleSiren(v, true) AddBlipForEntity(v) job.pd = v job.pdped = p end}
90 | }
91 |
92 | function drawMarker(x,y,z)
93 | DrawMarker(1, x, y, z, 0, 0, 0, 0, 0, 0, 5.0, 5.0, 1.0, 150, 150, 0, 200, false, false, 0, false)
94 | end
95 |
96 | function startJob()
97 | job.active = true
98 | local ped = GetPlayerPed(-1)
99 | local veh = GetVehiclePedIsIn(ped, false)
100 | AddBlipForEntity(veh)
101 | for k,v in next, job_spawn do
102 | veh, ped = createVehicleThatFollowsVehicle(v.name, veh, v.model, v.x, v.y, v.z, v.h)
103 | v.cb(veh, ped)
104 | end
105 | end
106 |
107 |
108 | Citizen.CreateThread(function()
109 |
110 | while true do
111 | local ply = GetPlayerPed(-1)
112 | local pos = GetEntityCoords(ply)
113 | if next(job) ~= nil then
114 | -- On job
115 | drawMarker(job_end.x, job_end.y, job_end.z)
116 | else
117 | -- Not on job
118 | drawMarker(job_start.x, job_start.y, job_start.z)
119 | if GetDistanceBetweenCoords(job_start.x, job_start.y, job_start.z, pos.x, pos.y, pos.z) < 5 then
120 | if IsControlJustPressed(1, 38) then
121 | startJob()
122 | end
123 | end
124 | end
125 | Wait(1)
126 | end
127 |
128 |
129 |
130 | -- local desti = {name = "r", x = 1012.028992, y = 289.083405, z = 81.888252}
131 | --
132 | -- local veh, ped = createVehicleThatFollowsVehicle("police3", nil, "s_m_y_cop_01", -1054.027710, -889.096558, 3.801936, -45.0)
133 | -- local veh2, ped2 = createVehicleThatFollowsVehicle("stockade", veh, "s_m_y_cop_01", -1067.088623, -896.252136 + 5.0, 3.392769, -45.0)
134 | -- local veh3, ped3 = createVehicleThatFollowsVehicle("stockade", veh2, "s_m_y_cop_01", -1067.088623, -896.252136, 3.392769, -45.0)
135 | -- local veh4, ped4 = createVehicleThatFollowsVehicle("stockade", veh3, "s_m_y_cop_01", -1067.088623, -896.252136 - 5.0, 3.392769, -45.0)
136 | -- local veh5, ped5 = createVehicleThatFollowsVehicle("riot", veh4, "s_m_y_cop_01", -1079.150513, -903.233887, 2.889246, -45.0)
137 | --
138 | -- SetBlipSprite(AddBlipForEntity(veh),58)
139 | --
140 | -- fillVehicleWithPeds(veh, "s_m_y_cop_01")
141 | -- fillVehicleWithPeds(veh5, "s_m_y_swat_01")
142 | -- SetVehicleSiren(veh, true)
143 | -- SetVehicleSiren(veh5, true)
144 | --
145 | -- TaskVehicleDriveWander(ped, veh, 5.0, 786469)
146 | -- local desti = {name = "r", x = 1012.028992, y = 289.083405, z = 81.888252}
147 | --
148 | -- local veh, ped = createVehicleThatFollowsVehicle("adder", nil, "s_m_y_cop_01", -1054.027710, -889.096558, 3.801936, -45.0)
149 | -- for i = 1,20 do
150 | -- local _v, _p = createVehicleThatFollowsVehicle("police3", veh, "s_m_y_cop_01", -1067.088623 - 5*i, -896.252136 - 2*i, 3.392769, -45.0)
151 | -- SetVehicleSiren(_v, true)
152 | -- SetBlipSprite(AddBlipForEntity(_v),42)
153 | -- end
154 | -- SetPedIntoVehicle(GetPlayerPed(-1), veh, 0)
155 | --
156 | -- SetBlipSprite(AddBlipForEntity(veh),58)
157 | --
158 | -- SetVehicleSiren(veh3, true)
159 | -- SetVehicleSiren(veh4, true)
160 | -- SetVehicleSiren(veh5, true)
161 | --
162 | -- TaskVehicleDriveWander(ped, veh, 1000.0, 786468)
163 | end)
--------------------------------------------------------------------------------
/gd_pd_radio/example.lua:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/glitchdetector/fivem_gd_package/50e3c35f6d4446420fdf65dd1c5e2e8f7f854d30/gd_pd_radio/example.lua
--------------------------------------------------------------------------------
/gd_pd_radio/server/atc.lua:
--------------------------------------------------------------------------------
1 | RegisterServerEvent("atc:flashingBlip")
2 | AddEventHandler("atc:flashingBlip", function(pos, blipid, time, col)
3 | TriggerClientEvent("atc:startFlashingBlip", -1, pos, blipid, time, col)
4 | end)
5 |
6 | RegisterServerEvent("atc:message")
7 | AddEventHandler("atc:message", function(msg, override)
8 | TriggerClientEvent("atc:getMessage", -1, msg, override)
9 | end)
--------------------------------------------------------------------------------
/gd_playerlist/__resource.lua:
--------------------------------------------------------------------------------
1 | client_script 'playerlist.lua'
2 |
3 | ui_page 'html/index.html'
4 |
5 | server_script {
6 | '@vrp/lib/utils.lua',
7 | 'server.lua'
8 | }
9 |
10 | files {
11 | 'html/index.html',
12 | 'html/font/roboto-condensed.ttf',
13 | 'html/font/roboto-regular.ttf',
14 | 'html/css/style.css',
15 | 'html/img/spritesheet.png',
16 | 'html/img/test.png'
17 | }
--------------------------------------------------------------------------------
/gd_playerlist/html/css/style.css:
--------------------------------------------------------------------------------
1 | @font-face {
2 | font-family: 'Roboto Condensed';
3 | src: url('nui://playerlist/html/font/roboto-condensed.ttf') format('truetype');
4 | font-weight: normal;
5 | font-style: normal;
6 | }
7 |
8 | @font-face {
9 | font-family: 'Roboto';
10 | src: url('nui://playerlist/html/font/roboto-regular.ttf') format('truetype');
11 | font-weight: normal;
12 | font-style: normal;
13 | }
14 |
15 | body {
16 | background-color: RGBA(0,0,0,0);
17 | padding:0;
18 | margin:0;
19 | overflow: hidden;
20 | }
21 |
22 | #playerlist {
23 | border:1px solid black;
24 | margin-top: 5px;
25 | visibility:hidden;
26 | font-family:'Roboto';
27 | font-size: 18px;
28 | color:white;
29 | position:relative;
30 | min-width:500px;
31 | width: auto;
32 | margin-left:auto;
33 | margin-right:auto;
34 | max-height:1080px;
35 | padding: 1px;
36 | }
37 |
38 | #playerlist .titles {
39 | background-color: rgba(50,50,50,0.8);
40 | margin-bottom:0px;
41 | }
42 |
43 | #playerlist .player {
44 | background-color: rgba(0,0,0,0.8);
45 | }
46 | #playerlist .name {
47 | text-align:left;
48 | }
49 | #playerlist .player {
50 | font-size: 16px;
51 | font-weight: normal;
52 | }
53 | #playerlist .id {
54 | min-width:15px;
55 | font-family:'Lucida Console';
56 | font-weight: bold;
57 | }
58 | #playerlist .player .id, #playerlist .player .time {
59 | text-align: right;
60 | }
61 | #playerlist .player .title {
62 | font-style: italic;
63 | }
64 | #playerlist .player .title, #playerlist .player .name {
65 | text-shadow:
66 | -2px -2px 0 #000,
67 | 2px -2px 0 #000,
68 | -2px 2px 0 #000,
69 | 2px 2px 0 #000;
70 | }
71 | #playerlist .titles .title {
72 | text-align: center;
73 | }
74 | #playerlist .player .icon {
75 | margin: auto;
76 | width: 20px;
77 | height: 20px;
78 | background-image: url("../img/spritesheet.png");
79 | background-size: 820px 860px;
80 | background-position: -640px -624px;
81 | }
--------------------------------------------------------------------------------
/gd_playerlist/html/font/EmojiOneColor-SVGinOT.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/glitchdetector/fivem_gd_package/50e3c35f6d4446420fdf65dd1c5e2e8f7f854d30/gd_playerlist/html/font/EmojiOneColor-SVGinOT.ttf
--------------------------------------------------------------------------------
/gd_playerlist/html/font/roboto-condensed.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/glitchdetector/fivem_gd_package/50e3c35f6d4446420fdf65dd1c5e2e8f7f854d30/gd_playerlist/html/font/roboto-condensed.ttf
--------------------------------------------------------------------------------
/gd_playerlist/html/font/roboto-regular.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/glitchdetector/fivem_gd_package/50e3c35f6d4446420fdf65dd1c5e2e8f7f854d30/gd_playerlist/html/font/roboto-regular.ttf
--------------------------------------------------------------------------------
/gd_playerlist/html/img/Thumbs.db:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/glitchdetector/fivem_gd_package/50e3c35f6d4446420fdf65dd1c5e2e8f7f854d30/gd_playerlist/html/img/Thumbs.db
--------------------------------------------------------------------------------
/gd_playerlist/html/img/spritesheet.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/glitchdetector/fivem_gd_package/50e3c35f6d4446420fdf65dd1c5e2e8f7f854d30/gd_playerlist/html/img/spritesheet.png
--------------------------------------------------------------------------------
/gd_playerlist/html/img/spritesheet.xcf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/glitchdetector/fivem_gd_package/50e3c35f6d4446420fdf65dd1c5e2e8f7f854d30/gd_playerlist/html/img/spritesheet.xcf
--------------------------------------------------------------------------------
/gd_playerlist/html/img/test.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/glitchdetector/fivem_gd_package/50e3c35f6d4446420fdf65dd1c5e2e8f7f854d30/gd_playerlist/html/img/test.png
--------------------------------------------------------------------------------
/gd_playerlist/html/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
32 |
33 |
34 |
35 |
--------------------------------------------------------------------------------
/gd_playerlist/playerlist.lua:
--------------------------------------------------------------------------------
1 | --Playerlist created by Arturs, modified by GlitchDetector for Transport Tycoon to support vRP
2 | local plist = false
3 | -- id name title time
4 | local last_playerlist_identifier = 0
5 | local last_playerlist = ""
6 | local header = [[
ID
Name
Job
Online
Total
Level
]]
7 | local row = [[
%i
%s
%s
%s
%s
%i
]] -- id color name prefix color title time totaltime
8 | local footer = [[
Online: %i / %i
Uptime: %s
Ping: %s
Levels: %i
]] -- online uptime connections
9 |
10 | function ShowPlayerList(playerList)
11 | if playerList.gen.id > last_playerlist_identifier then
12 | local listHTML = ""
13 | local uptime = playerList.uptime
14 | local connections = playerList.connections
15 | local ping = playerList.ping
16 | local max_players = 32
17 | local total_levels = 0
18 |
19 | last_playerlist_identifier = playerList.gen.id
20 |
21 | print("Playerlist Stats: " .. playerList.gen.time .. " seconds and " .. playerList.gen.cycles .. " cycles. Gen ID " .. playerList.gen.id)
22 | listHTML = listHTML .. header
23 | for k,v in next, playerList.data do
24 | if v ~= nil then
25 | listHTML = listHTML .. string.format(row, v.id or 0, v.icon or '0px 0px', v.namecolor or "white", v.name or "Default Danny", v.jobicon or '0px 0px', v.color or "white", v.title or "", v.time or "00m", v.totaltime or "00m", v.level or 0)
26 | if v.level then
27 | total_levels = total_levels + v.level
28 | end
29 | end
30 | end
31 | local online_players = #playerList.data
32 | if online_players == 4 then max_players = 20 elseif
33 | online_players == 13 then max_players = 37 end
34 | listHTML = listHTML .. string.format(footer, online_players, max_players, uptime, tostring(ping) .. "ms", total_levels)
35 | last_playerlist = listHTML
36 | end
37 | SendNUIMessage({
38 | meta = 'open',
39 | data = last_playerlist
40 | })
41 | end
42 |
43 | function ClosePlayerList()
44 | SendNUIMessage({
45 | meta = 'close'
46 | })
47 | end
48 |
49 |
50 | RegisterNetEvent("gd_playerlist:open")
51 | AddEventHandler("gd_playerlist:open",
52 | function(players)
53 | if plist == true then
54 | ShowPlayerList(players)
55 | end
56 | end
57 | )
58 |
59 | RegisterNetEvent("gd_playerlist:print")
60 | AddEventHandler("gd_playerlist:print",
61 | function(text)
62 | print(tostring(text))
63 | end
64 | )
65 | RegisterNetEvent("gd_playerlist:fix")
66 | AddEventHandler("gd_playerlist:fix",
67 | function()
68 | local veh = GetVehiclePedIsIn(GetPlayerPed(-1), false)
69 | SetVehicleFixed(veh)
70 | SetVehicleDeformationFixed(veh)
71 | SetVehicleUndriveable(veh, false)
72 | end
73 | )
74 |
75 | RegisterNetEvent("gd_playerlist:tryToggle")
76 | AddEventHandler("gd_playerlist:tryToggle", function()
77 | if not plist then
78 | plist = true
79 | TriggerServerEvent("gd_playerlist:askOpen", last_playerlist_identifier)
80 | else
81 | plist = false
82 | ClosePlayerList()
83 | end
84 | end)
85 |
86 | Citizen.CreateThread( function()
87 | print("es_playerlist gd_edit ok")
88 | while true do
89 | Citizen.Wait(1)
90 | --Displays playerlist when player hold X
91 | if IsControlJustPressed(1, 323) then --Start holding
92 | plist = true
93 | -- print("sending open call")
94 | TriggerServerEvent("gd_playerlist:askOpen", last_playerlist_identifier)
95 | elseif IsControlJustReleased(1, 323) then --Stop holding
96 | plist = false
97 | -- print("closing call")
98 | ClosePlayerList()
99 | end
100 | end
101 | end)
--------------------------------------------------------------------------------
/gd_playerlist/rank_special.lua:
--------------------------------------------------------------------------------
1 | local rank_special = {
2 | ["bank"] = {suffix = {x=19,y=30}, color = "forestgreen", title = "Money Transport"},
3 | ["busdriver"] = {suffix = {x=36,y=21}, color = "cornflowerblue", title = "Bus Driver",
4 | levelnames = {"trucking", "bus"},
5 | levels = {
6 | [5] = {title = "Skilled Bus Driver"},
7 | [10] = {title = "Professional Bus Driver", namecolor = "cornflowerblue"},
8 | }},
9 | ["citizen"] = {},
10 | ["conductor"] = {suffix = {x=36,y=11}, color = "chocolate", title = "Train Conductor",
11 | levelnames = {"train", "train"},
12 | levels = {
13 | [3] = {title = "Good Train Conductor"},
14 | [5] = {title = "Skilled Train Conductor"},
15 | [8] = {title = "Specialized Train Conductor"},
16 | [10] = {title = "Professional Train Conductor", namecolor = "chocolate"},
17 | }},
18 | ["emergency"] = {suffix = {x=36,y=22}, color = "tomato", title = "EMS",
19 | levelnames = {"emergency", "ems"},
20 | levels = {
21 | [5] = {title = "Skilled EMS"},
22 | [10] = {title = "Professional EMS", namecolor = "tomato"},
23 | }},
24 | ["farmer"] = {suffix = {x=36,y=33}, color = "chocolate", title = "Farmer",
25 | levelnames = {"farming", "farming"},
26 | levels = {
27 | [5] = {title = "Good Farmer"},
28 | [10] = {title = "Skilled Farmer"},
29 | [15] = {title = "Specialized Farmer"},
30 | [20] = {title = "Professional Farmer", namecolor = "chocolate"},
31 | }},
32 | ["firefighter"] = {suffix = {x=9,y=32}, color = "red", title = "Firefighter",
33 | levelnames = {"emergency", "firefighter"},
34 | levels = {
35 | [5] = {title = "Skilled Firefighter"},
36 | [10] = {title = "Professional Firefighter", namecolor = "red"},
37 | }},
38 | ["fisher"] = {suffix = {x=2,y=21}, color = "dodgerblue", title = "Fisher",
39 | levelnames = {"fishing", "fishing"},
40 | levels = {
41 | [5] = {title = "Skilled Fisher"},
42 | [10] = {title = "Professional Fisher", namecolor = "dodgerblue"},
43 | }},
44 | ["garbage"] = {suffix = {x=32,y=38}, color = "saddlebrown", title = "Refuse Collector"},
45 | ["guard"] = {suffix = {x=32,y=20}, color = "darkslateblue", title = "Prison Transport"},
46 | ["helicopterpilot"] = {suffix = {x=36,y=6}, color = "white", title = "Helicopter Pilot"},
47 | ["hunter"] = {suffix = {x=25,y=12}, color = "darkolivegreen", title = "Hunter",
48 | levelnames = {"hunting", "hunting"},
49 | levels = {
50 | [5] = {title = "Skilled Hunter"},
51 | [10] = {title = "Professional Hunter", namecolor = "darkolivegreen"},
52 | }},
53 | ["mechanic"] = {suffix = {x=11,y=32}, color = "chocolate", title = "Mechanic"},
54 | ["pilot"] = {suffix = {x=2,y=37}, color = "darkcyan", title = "Pilot",
55 | levelnames = {"piloting", "piloting"},
56 | levels = {
57 | [3] = {title = "Good Pilot"},
58 | [6] = {title = "Skilled Pilot"},
59 | [8] = {title = "Specialized Pilot"},
60 | [10] = {title = "Professional Pilot", namecolor = "darkcyan"},
61 | }},
62 | ["pizza"] = {suffix = {x=6,y=19}, color = "goldenrod", title = "Pizza Delivery"},
63 | ["police"] = {suffix = {x=36,y=25}, color = "blue", title = "Police Rookie",
64 | levelnames = {"police", "police"},
65 | levels = {
66 | [2] = {title = "Police Deputy"},
67 | [3] = {title = "Police Sergeant"},
68 | [5] = {title = "Police Lieutenant"},
69 | [7] = {title = "Police Major"},
70 | [8] = {title = "Police Colonel"},
71 | [9] = {title = "Police Colonel+"},
72 | [10] = {title = "Police Superintendent", namecolor = "blue"},
73 | }},
74 | ["snowplow"] = {suffix = {x=35,y=39}, color = "white", title = "Snowplow Driver"},
75 | ["taxi"] = {suffix = {x=36,y=26}, color = "gold", title = "Taxi"},
76 | ["trucker"] = {suffix = {x=36,y=32}, color = "darkgreen", title = "Trucker",
77 | levelnames = {"trucking", "trucking"},
78 | levels = {
79 | [5] = {title = "Delivery Trucker"},
80 | [10] = {title = "Cargo Trucker"},
81 | [15] = {title = "Experienced Trucker"},
82 | [20] = {title = "Specialized Trucker"},
83 | [24] = {title = "Skillfull Trucker"},
84 | [27] = {title = "Professional Trucker", namecolor = "darkgreen"},
85 | }},
86 |
87 | ["hidden"] = {hidden = true},
88 | ["kicked"] = {prefix = {x=40,y=2}},
89 | ["muted"] = {prefix = {x=32,y=11}, title = "Muted", color = "darkgray", namecolor = "darkgray"},
90 | }
91 |
92 | return rank_special
--------------------------------------------------------------------------------
/gd_slots_vrp/README:
--------------------------------------------------------------------------------
1 | MODIFIED BY GLITCHDETECTOR FOR USE WITH FiveM
2 | ORIGINAL README BELOW
3 |
4 | Karma Slots is a simple slot machine game made in Javascript for HTML5 and canvas. It uses a simple "Reddit" inspired theme.
5 |
6 | License Info
7 |
8 | The code is (C) 2012 Clint Bellanger. Released under the MIT license.
9 | The art is (C) 2012 Clint Bellanger. Released under CC-BY 3.0.
10 | The sounds are (C) 2012 Brandon Morris. Released under CC-BY 3.0
11 |
12 | Art icons inspired by Reddit. http://reddit.com/
13 | Bacon and Narwhal inspired by licenseplate, who has cleared this usage.
14 |
15 | Play a live version here:
16 | http://clintbellanger.net/karma/
17 |
18 | Note: this is just a game that uses overly simplified logic. Never use this in a slot machine that deals with real money.
19 |
--------------------------------------------------------------------------------
/gd_slots_vrp/__resource.lua:
--------------------------------------------------------------------------------
1 | client_script 'playerlist.lua'
2 |
3 | ui_page 'index.html'
4 |
5 | server_script {
6 | '@vrp/lib/utils.lua',
7 | 'server.lua'
8 | }
9 |
10 | files {
11 | 'index.html',
12 | 'slots.css',
13 | 'slots.js',
14 | 'images/background.png',
15 | 'images/reddit_icons_small.png',
16 | 'images/reel_bg.png',
17 | 'sounds/reel_stop.wav',
18 | 'sounds/win.wav'
19 | }
--------------------------------------------------------------------------------
/gd_slots_vrp/client.lua:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/glitchdetector/fivem_gd_package/50e3c35f6d4446420fdf65dd1c5e2e8f7f854d30/gd_slots_vrp/client.lua
--------------------------------------------------------------------------------
/gd_slots_vrp/images/1080p.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/glitchdetector/fivem_gd_package/50e3c35f6d4446420fdf65dd1c5e2e8f7f854d30/gd_slots_vrp/images/1080p.jpg
--------------------------------------------------------------------------------
/gd_slots_vrp/images/background.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/glitchdetector/fivem_gd_package/50e3c35f6d4446420fdf65dd1c5e2e8f7f854d30/gd_slots_vrp/images/background.png
--------------------------------------------------------------------------------
/gd_slots_vrp/images/reddit_icons_small – Kopi.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/glitchdetector/fivem_gd_package/50e3c35f6d4446420fdf65dd1c5e2e8f7f854d30/gd_slots_vrp/images/reddit_icons_small – Kopi.png
--------------------------------------------------------------------------------
/gd_slots_vrp/images/reddit_icons_small.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/glitchdetector/fivem_gd_package/50e3c35f6d4446420fdf65dd1c5e2e8f7f854d30/gd_slots_vrp/images/reddit_icons_small.png
--------------------------------------------------------------------------------
/gd_slots_vrp/images/reels_bg.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/glitchdetector/fivem_gd_package/50e3c35f6d4446420fdf65dd1c5e2e8f7f854d30/gd_slots_vrp/images/reels_bg.png
--------------------------------------------------------------------------------
/gd_slots_vrp/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 | Transport Tycoon Slots
4 |
5 |
6 |
7 |
8 |