Skip to content

Commit 7b66c78

Browse files
authored
play: refactor (#363)
1 parent 11c466a commit 7b66c78

File tree

6 files changed

+264
-184
lines changed

6 files changed

+264
-184
lines changed

[gamemodes]/[play]/play/broph.lua

Lines changed: 0 additions & 176 deletions
This file was deleted.

[gamemodes]/[play]/play/meta.xml

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,14 @@
11
<meta>
2-
<oop>true</oop>
3-
<info author="BrophY" description="A playtest/freeroam mode" version="1.5" type="gamemode" />
4-
<include resource="freeroam" />
5-
<script src="broph.lua"/>
2+
<info author="BrophY" description="A playtest/freeroam mode" version="2.0" type="gamemode"/>
3+
<include resource="freeroam"/>
4+
<script src="play_config.lua" type="server"/>
5+
<script src="play_players.lua" type="server"/>
6+
<script src="play_vehicles.lua" type="server"/>
7+
<script src="play.lua" type="server"/>
68

79
<settings>
8-
<setting name="*playerRespawnTime" value="[4000]" friendlyname="Player respawn time" desc="Player respawn time after dying in milliseconds. Anything below 50 is auto-set to 50" />
9-
<setting name="*vehicleRespawnTime" value="[60000]" friendlyname="Vehicle respawn time" group="Spawnpoint vehicles" desc="Vehicle respawn time after it is taken. Anything below 50 is auto-set to 50" />
10-
<setting name="*vehicleExpireTime" value="[600000]" friendlyname="Vehicle expire time" group="Spawnpoint vehicles" desc="Vehicle disappear time after abandoned, timer resets if any player re-enters the vehicle. Anything below 50 is auto-set to 50" />
10+
<setting name="*playerRespawnTime" value="[4000]" friendlyname="Player respawn time" desc="Player respawn time after dying in milliseconds. Anything below 0 is auto-set to 0"/>
11+
<setting name="*vehicleRespawnTime" value="[60000]" friendlyname="Vehicle respawn time" group="Spawnpoint vehicles" desc="Vehicle respawn time after it is taken. Anything below 0 is auto-set to 0"/>
12+
<setting name="*vehicleExpireTime" value="[600000]" friendlyname="Vehicle expire time" group="Spawnpoint vehicles" desc="Vehicle disappear time after abandoned, timer resets if any player re-enters the vehicle. Anything below 0 is auto-set to 0"/>
1113
</settings>
12-
1314
</meta>

[gamemodes]/[play]/play/play.lua

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
local function onResourceStartPlay()
2+
resetMapInfo()
3+
createVehicles()
4+
5+
local playersTable = getElementsByType("player")
6+
7+
for playerID = 1, #playersTable do
8+
playSpawnPlayer(playersTable[playerID])
9+
end
10+
11+
addEventHandler("onPlayerJoin", root, onPlayerJoin)
12+
addEventHandler("onPlayerWasted", root, onPlayerWasted)
13+
addEventHandler("onPlayerQuit", root, onPlayerQuit)
14+
addEventHandler("onVehicleEnter", resourceRoot, onVehicleEnter)
15+
addEventHandler("onVehicleExit", resourceRoot, onVehicleExit)
16+
addEventHandler("onElementDestroy", resourceRoot, onVehicleElementDestroy)
17+
end
18+
addEventHandler("onResourceStart", resourceRoot, onResourceStartPlay)
Lines changed: 104 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,104 @@
1+
playerSkins = {
2+
0, 1, 2, 7, 9, 10, 11, 12, 13, 14,
3+
15, 16, 17, 18, 19, 20, 21, 22, 23,
4+
24, 25, 26, 27, 28, 29, 30, 31, 32,
5+
33, 34, 35, 36, 37, 38, 39, 40, 41,
6+
43, 44, 45, 46, 47, 48, 49, 50, 51,
7+
52, 53, 54, 55, 56, 57, 58, 59, 60,
8+
61, 62, 63, 64, 66, 67, 68, 69, 70,
9+
71, 72, 73, 75, 76, 77, 78, 79, 80,
10+
81, 82, 83, 84, 85, 87, 88, 89, 90,
11+
91, 92, 93, 94, 95, 96, 97, 98, 99,
12+
100, 101, 102, 103, 104, 105, 106, 107, 108,
13+
109, 110, 111, 112, 113, 114, 115, 116, 117,
14+
118, 120, 121, 122, 123, 124, 125, 126, 127,
15+
128, 129, 130, 131, 132, 133, 134, 135, 136,
16+
137, 138, 139, 140, 141, 142, 143, 144, 145,
17+
146, 147, 148, 150, 151, 152, 153, 154, 155,
18+
156, 157, 158, 159, 160, 161, 162, 163, 164,
19+
165, 166, 167, 168, 169, 170, 171, 172, 173,
20+
174, 175, 176, 177, 178, 179, 180, 181, 182,
21+
183, 184, 185, 186, 187, 188, 189, 190, 191,
22+
192, 193, 194, 195, 196, 197, 198, 199, 200,
23+
201, 202, 203, 204, 205, 206, 207, 209, 210,
24+
211, 212, 213, 214, 215, 216, 217, 218, 219,
25+
220, 221, 222, 223, 224, 225, 226, 227, 228,
26+
229, 230, 231, 232, 233, 234, 235, 236, 237,
27+
238, 239, 240, 241, 242, 243, 244, 245, 246,
28+
247, 248, 249, 250, 251, 252, 253, 254, 255,
29+
256, 257, 258, 259, 260, 261, 262, 263, 264,
30+
265, 266, 267, 268, 269, 270, 271, 272, 274,
31+
275, 276, 277, 278, 279, 280, 281, 282, 283,
32+
284, 285, 286, 287, 288, 290, 291, 292, 293,
33+
294, 295, 296, 297, 298, 299, 300, 301, 302,
34+
303, 304, 305, 306, 307, 308, 309, 310, 311,
35+
312
36+
}
37+
38+
playerSpawns = {
39+
{-711, 957, 12.4, 90},
40+
{2005, 1543, 13.5, 270},
41+
{2485, -1667, 13.3, 0},
42+
{-2405, -598, 132.6, 128}
43+
}
44+
45+
vehicleSpawns = {
46+
{557, -676.43225097656, 962.98449707031, 12.507791519165, 92.063659667969},
47+
{557, -676.67596435547, 968.88238525391, 12.507817268372, 89.458343505859},
48+
{429, -696.71008300781, 947.44274902344, 11.961327552795, 43.260345458984},
49+
{429, -700.66668701172, 946.43811035156, 12.032683372498, 41.218505859375},
50+
{541, -708.88635253906, 939.77947998047, 12.079864501953, 180.60076904297},
51+
{481, -679.98175048828, 931.08044433594, 11.648596763611, 88.025085449219},
52+
{481, -679.97430419922, 932.28381347656, 11.64875125885, 87.565948486328},
53+
{469, -655.177734375, 963.35192871094, 12.175182342529, 89.811737060547},
54+
{468, -681.74114990234, 912.31903076172, 11.776277542114, 189.92042541504},
55+
{468, -680.06512451172, 912.44622802734, 11.779381752014, 191.75022888184},
56+
{468, -678.29089355469, 912.71087646484, 11.77979183197, 200.86720275879},
57+
{493, -649.33892822266, 867.71429443359, -0.10552111268044, 228.00956726074},
58+
{473, -661.28826904297, 876.15618896484, -0.30112856626511, 227.04469299316},
59+
{484, -647.07635498047, 876.42327880859, 0.22773677110672, 226.89099121094},
60+
{568, -696.35430908203, 929.35675048828, 12.135828971863, 178.99200439453},
61+
{511, -696.59759521484, 897.68084716797, 13.838381767273, 176.86285400391},
62+
{402, -686.66400146484, 969.24591064453, 11.975840568542, 89.380676269531},
63+
{475, -687.01416015625, 963.00555419922, 11.94958114624, 89.711608886719},
64+
{457, -686.92352294922, 966.03717041016, 11.767498970032, 89.163909912109},
65+
{469, 2526.2607421875, -1677.2861328125, 19.913991928101, 91.994018554688},
66+
{468, 2508.7177734375, -1680.568359375, 13.305373191833, 47.999267578125},
67+
{468, 2506.615234375, -1682.3544921875, 13.305373191833, 47.999267578125},
68+
{468, 2504.4423828125, -1684.208984375, 13.305373191833, 47.999267578125},
69+
{557, 2512.4736328125, -1675.9833984375, 13.937532424927, 89.983520507813},
70+
{557, 2512.6044921875, -1669.4228515625, 13.869720458984, 90.005493164063},
71+
{402, 2473.427734375, -1692.513671875, 13.326358795166, 0},
72+
{568, 2466.70703125, -1687.779296875, 13.489582061768, 272.4938659668},
73+
{457, 2505.09765625, -1651.40625, 13.352488517761, 135.99975585938},
74+
{475, 2459.9892578125, -1670.1943359375, 13.249677658081, 0},
75+
{541, 2452.68359375, -1670.029296875, 13.199068069458, 0},
76+
{429, 2447.8662109375, -1669.93359375, 13.184649467468, 359.99447631836},
77+
{429, 2443.0263671875, -1669.81640625, 13.260643005371, 359.99447631836},
78+
{557, -2398.5610351563, -611.85290527344, 133.04846191406, 36},
79+
{557, -2393.6850585938, -608.3828125, 133.04846191406, 35.996704101563},
80+
{402, -2393.4907226563, -599.73876953125, 132.58843994141, 125.5},
81+
{568, -2396.79296875, -594.94836425781, 132.74308776855, 125.49682617188},
82+
{457, -2407.7419433594, -577.97015380859, 132.47640991211, 126.00003051758},
83+
{475, -2403.4738769531, -585.46215820313, 132.54843139648, 126.00003051758},
84+
{541, -2399.7482910156, -590.07781982422, 132.34843444824, 123.99987792969},
85+
{429, -2416.1259765625, -589.61535644531, 132.3984375, 213.99717712402},
86+
{429, -2411.0979003906, -586.19421386719, 132.3984375, 213.99717712402},
87+
{468, -2389.4606933594, -604.095703125, 132.53031921387, 123.99996948242},
88+
{468, -2388.0568847656, -606.24896240234, 132.53031921387, 123.99719238281},
89+
{468, -2386.5554199219, -608.55224609375, 132.53031921387, 123.99719238281},
90+
{469, -2444.1838378906, -604.26513671875, 132.51147460938, 300.00003051758},
91+
{468, 2030.5123291016, 1557.0339355469, 10.580312728882, 272},
92+
{468, 2030.7028808594, 1559.1748046875, 10.580312728882, 271.99951171875},
93+
{468, 2031.1046142578, 1561.4478759766, 10.580312728882, 271.99951171875},
94+
{557, 2025.6492919922, 1535.8363037109, 11.120292663574, 270.00003051758},
95+
{557, 2024.8865966797, 1526.9187011719, 11.120292663574, 270.00003051758},
96+
{402, 2024.3311767578, 1519.9007568359, 10.760312080383, 270.00003051758},
97+
{568, 2024.1086425781, 1515.0710449219, 10.79531288147, 270.00003051758},
98+
{457, 2024.5035400391, 1510.8114013672, 10.549660682678, 270.00003051758},
99+
{475, 2024.2908935547, 1506.1636962891, 10.72031211853, 270.00003051758},
100+
{541, 2024.7091064453, 1499.3103027344, 10.520312309265, 270.00003051758},
101+
{429, 2025.9349365234, 1490.2434082031, 10.5703125, 270.00003051758},
102+
{429, 2025.6474609375, 1494.671875, 10.5703125, 270.00003051758},
103+
{469, 2024.5600585938, 1623.0500488281, 12.002040863037, 270.00003051758}
104+
}
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
local spawnsCount = #playerSpawns
2+
local skinsCount = #playerSkins
3+
4+
function playSpawnPlayer(playerElement)
5+
if isElement(playerElement) then
6+
local randomSpawn = math.random(spawnsCount)
7+
local spawnData = playerSpawns[randomSpawn]
8+
local posX, posY, posZ, rotX = unpack(spawnData)
9+
local randomSkin = math.random(skinsCount)
10+
local skinID = playerSkins[randomSkin]
11+
12+
posX, posY = posX + math.random(-3, 3), posY + math.random(-3, 3)
13+
14+
spawnPlayer(playerElement, posX, posY, posZ, rotX, skinID, 0, 0, nil)
15+
fadeCamera(playerElement, true)
16+
setCameraTarget(playerElement)
17+
end
18+
end
19+
20+
function onPlayerJoin()
21+
playSpawnPlayer(source)
22+
end
23+
24+
function onPlayerWasted()
25+
local playerRespawnTime = get("playerRespawnTime")
26+
27+
playerRespawnTime = tonumber(playerRespawnTime) or 5000
28+
playerRespawnTime = playerRespawnTime < 0 and 0 or playerRespawnTime
29+
30+
setTimer(playSpawnPlayer, playerRespawnTime, 1, source)
31+
end
32+
33+
function onPlayerQuit()
34+
destroyPlayerVehicles(source)
35+
end

0 commit comments

Comments
 (0)