Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
71 changes: 71 additions & 0 deletions [examples]/test_vehicles/c_test_gui.lua
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@
local screenW, screenH = guiGetScreenSize()

local windowW, windowH = 300, 200
local windowX, windowY = (screenW - windowW) / 2, (screenH - windowH) / 2
local window = guiCreateWindow(windowX, windowY, windowW, windowH, "Vehicle Spawner", false)

local label = guiCreateLabel(20, 40, 260, 30, "Enter Vehicle ID:", false, window)
guiLabelSetHorizontalAlign(label, "center")

local input = guiCreateEdit(50, 70, 200, 30, "", false, window)

local spawnButton = guiCreateButton(50, 120, 200, 40, "Spawn Vehicle", false, window)

guiSetVisible(window, false)

local function spawnVehicleByID(vehicleID)
if not vehicleID then
outputChatBox("Error: Please enter a valid number!", 255, 0, 0)
return
end

local x, y, z = getElementPosition(localPlayer)
local rot = getPedRotation(localPlayer)
local offsetDistance = 5
local spawnX = x + offsetDistance * math.sin(math.rad(-rot))
local spawnY = y + offsetDistance * math.cos(math.rad(-rot))

triggerServerEvent("newmodels-test_vehicles:requestVehicleSpawn", resourceRoot, localPlayer, vehicleID, spawnX, spawnY, z, rot)
end

local function requestVehicleSpawn()
local vehicleID = tonumber(guiGetText(input))
spawnVehicleByID(vehicleID)
guiSetVisible(window, false)
showCursor(false)
guiSetText(input, "")
end

addEventHandler("onClientGUIClick", spawnButton, requestVehicleSpawn, false)

addEvent("newmodels-test_vehicles:vehicleSpawnResponse", true)
addEventHandler("newmodels-test_vehicles:vehicleSpawnResponse", localPlayer, function(success, message)
if success then
outputChatBox(message, 0, 255, 0)
else
outputChatBox(message, 255, 0, 0)
end
end)

local function onInputEnter()
if source == input then
requestVehicleSpawn()
end
end

addEventHandler("onClientGUIAccepted", input, onInputEnter)

local function toggleSpawnerGUI()
local visible = guiGetVisible(window)
guiSetVisible(window, not visible)
showCursor(not visible)

if not visible then
guiBringToFront(input)
guiFocus(input)
end
end

bindKey("F4", "down", toggleSpawnerGUI)
addCommandHandler("vspawner", toggleSpawnerGUI, false)
addCommandHandler("spawnveh", function(cmd, id) spawnVehicleByID(tonumber(id)) end, false)
1 change: 1 addition & 0 deletions [examples]/test_vehicles/meta.xml
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
<script src="s_vehicles.lua" type="server"/>
<script src="s_vehicles_alt.lua" type="server"/>
<script src="s_test_cmd.lua" type="server"/>
<script src="c_test_gui.lua" type="client"/>
<aclrequest>
<right name="function.loadstring" access="true"/>
</aclrequest>
Expand Down
21 changes: 21 additions & 0 deletions [examples]/test_vehicles/s_test_cmd.lua
Original file line number Diff line number Diff line change
Expand Up @@ -19,3 +19,24 @@ addCommandHandler("myvehicle", function(player)
outputChatBox("This vehicle has the custom model ID " .. customModel .. ", which is based on the default model ID " .. baseModel .. " ("..(tostring(getVehicleNameFromModel(baseModel)) or "")..")", player, 0, 255, 0)
end
end, false, false)

addEvent("newmodels-test_vehicles:requestVehicleSpawn", true)
addEventHandler("newmodels-test_vehicles:requestVehicleSpawn", resourceRoot, function(player, vehicleID, x, y, z, rot)

local customModels = exports['newmodels_azul']:getCustomModels()
local isValidCustomModel = customModels[vehicleID] and true or false
local isValidDefaultID = exports['newmodels_azul']:isDefaultID("vehicle", vehicleID)

if not isValidCustomModel and not isValidDefaultID then
triggerClientEvent(player, "newmodels-test_vehicles:vehicleSpawnResponse", player, false, "Invalid ID")
return
end

local vehicle = exports['newmodels_azul']:createVehicle(vehicleID, x, y, z, 0, 0, rot)

if isElement(vehicle) then
triggerClientEvent(player, "newmodels-test_vehicles:vehicleSpawnResponse", player, true, "Vehicle spawned")
else
triggerClientEvent(player, "newmodels-test_vehicles:vehicleSpawnResponse", player, false, "Failed")
end
end)