Skip to content

Commit cf17344

Browse files
Add test_vehicles example
1 parent 6a7400d commit cf17344

File tree

8 files changed

+71
-3
lines changed

8 files changed

+71
-3
lines changed

.github/img/ss1.jpg

-373 KB
Binary file not shown.

.github/img/ss1.png

1.03 MB
Loading

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ Get the [Latest Version](https://github.com/Fernando-A-Rocha/mta-add-models/rele
3333

3434
## Media
3535

36-
![Screenshot 1](/.github/img/ss1.jpg)
36+
![Screenshot 1](/.github/img/ss1.png)
3737

3838
## Final Note
3939

[examples]/test_vehicles/meta.xml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
<meta>
2+
<include resource="newmodels_azul" minversion="5.0.0"/>
3+
<script src="s_vehicles.lua" type="server"/>
4+
</meta>
Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
-- Loads newmodels functions, which allow usage of custom model IDs "as if they were normal IDs"
2+
loadstring(exports.newmodels_azul:import())()
3+
4+
-- Vehicle model, x,y,z, rx,ry,rz, interior,dimension
5+
local VEHICLE_SPAWNS = {
6+
{525, -938.74, 1034.21, 23.59, 3.42, 2.85, 20.27, 0, 0},
7+
{490, -941.95, 1043.03, 24.25, 355.90, 356.51, 199.00, 0, 0},
8+
{-1, -951.79, 1069.05, 25.96, 356.28, 356.34, 204.01, 0, 0},
9+
{-5, -944.88, 1051.90, 24.84, 355.97, 356.23, 198.86, 0, 0},
10+
}
11+
12+
local function createVehicles()
13+
for i, data in ipairs(VEHICLE_SPAWNS) do
14+
local model, x, y, z, rx, ry, rz, interior, dimension = unpack(data)
15+
local vehicle = createVehicle(model, x, y, z, rx, ry, rz)
16+
if vehicle then
17+
setElementInterior(vehicle, interior)
18+
setElementDimension(vehicle, dimension)
19+
print("#" .. i .. " - Created vehicle with ID " .. model .. " at " .. x .. ", " .. y .. ", " .. z)
20+
end
21+
end
22+
end
23+
addEventHandler("onResourceStart", resourceRoot, createVehicles, false)
24+
25+
-- Outputs, for example:
26+
-- This vehicle has the custom model ID -1, which is based on the default model ID 490 (FBI Rancher)
27+
addCommandHandler("myvehicle", function(player)
28+
local vehicle = getPedOccupiedVehicle(player)
29+
if not vehicle then
30+
outputChatBox("You are not in a vehicle", player, 255, 0, 0)
31+
return
32+
end
33+
local model = getElementModel(vehicle)
34+
local baseModel = getElementBaseModel(vehicle)
35+
if model == baseModel then
36+
outputChatBox("This vehicle has the default model ID " .. model .. " ("..(tostring(getVehicleNameFromModel(model)) or "")..")", player, 0, 255, 0)
37+
else
38+
if not baseModel then
39+
outputChatBox("This vehicle has the custom model ID " .. model .. ", but the base model ID could not be determined", player, 255, 0, 0)
40+
return
41+
end
42+
outputChatBox("This vehicle has the custom model ID " .. model .. ", which is based on the default model ID " .. baseModel .. " ("..(tostring(getVehicleNameFromModel(baseModel)) or "")..")", player, 0, 255, 0)
43+
end
44+
end, false, false)

newmodels_azul/scripts/core/server_logic.lua

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -186,6 +186,24 @@ if not result then
186186
return
187187
end
188188

189+
-- Save elementModels in root element data to restore on next startup
190+
addEventHandler("onResourceStop", resourceRoot, function()
191+
if next(elementModels) then
192+
setElementData(root, "newmodels_azul:elementModels_backup", elementModels, false)
193+
end
194+
end, false)
195+
196+
-- Restore elementModels from root element data on startup if any
197+
local elementModelsBackup = getElementData(root, "newmodels_azul:elementModels_backup")
198+
if type(elementModelsBackup) == "table" then
199+
for element, id in pairs(elementModelsBackup) do
200+
if isElement(element) then
201+
elementModels[element] = id
202+
end
203+
end
204+
end
205+
206+
189207
addEventHandler("onPlayerResourceStart", root, function(res)
190208
if res == resource then
191209
triggerClientEvent(source, "newmodels_azul:receiveCustomModels", resourceRoot, customModels, elementModels)

newmodels_azul/scripts/core/shared_exported.lua

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -143,7 +143,7 @@ end
143143

144144
newmodelsUtils.setElementResource = function(element, theResource)
145145
if isElement(element) then
146-
theResource = theResource or resource
146+
if not isElement(theResource) then theResource = resource end
147147
if type(newmodelsUtils.resources[theResource]) ~= "table" then
148148
newmodelsUtils.resources[theResource] = {}
149149
end

newmodels_azul/scripts/core/shared_local.lua

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,9 @@ function setElementCustomModel(element, id)
3333
end
3434
if not isClientsideScript then
3535
elementModels[element] = id -- Set serverside
36-
triggerClientEvent(getElementsByType("player"), "newmodels_azul:setElementCustomModel", element, id)
36+
setTimer(function()
37+
triggerClientEvent(getElementsByType("player"), "newmodels_azul:setElementCustomModel", element, id)
38+
end, 50, 1)
3739
else
3840
triggerEvent("newmodels_azul:setElementCustomModel", element, id)
3941
end

0 commit comments

Comments
 (0)