mirror of
https://github.com/ChronosX88/mta-ptp.git
synced 2024-10-18 05:21:00 +00:00
121 lines
4.8 KiB
Lua
121 lines
4.8 KiB
Lua
local teamSpawns = {}
|
|
|
|
local function mainOnPlayerJoin()
|
|
setCameraMatrix(source, 1654.3691, -1643.5967, 85.176224, 1658.8364, -1545.6569, 65.482597)
|
|
spawnPlayer(source, 1654.524, -1637.7119, 85.157089, 180.0, 0)
|
|
toggleAllControls(source, false, true, false)
|
|
setPlayerHudComponentVisible(source, "all", false)
|
|
fadeCamera(source, true, 5)
|
|
showCursor(source, true)
|
|
outputChatBox("Please select the class and skin of your player", source, 255, 255, 0)
|
|
end
|
|
|
|
local function giveTerroristsWeapon(player)
|
|
giveWeapon(player, 27, 99999, false) -- Combat Shotgun
|
|
giveWeapon(player, 28, 99999, false) -- Uzi
|
|
giveWeapon(player, 16, 99999, false) -- Grenade
|
|
giveWeapon(player, 30, 99999, false) -- AK47
|
|
end
|
|
|
|
local function givePoliceWeapon(player)
|
|
giveWeapon(player, 29, 99999, false) -- MP5
|
|
giveWeapon(player, 22, 99999, false) -- Colt 45
|
|
giveWeapon(player, 25, 99999, false) -- Shotgun
|
|
giveWeapon(player, 31, 99999, false) -- M4
|
|
end
|
|
|
|
local function giveSecretServiceWeapon(player)
|
|
giveWeapon(player, 29, 99999, false) -- MP5
|
|
giveWeapon(player, 23, 99999, false) -- Silenced
|
|
giveWeapon(player, 25, 99999, false) -- Shotgun
|
|
giveWeapon(player, 3, 1, false) -- Nightstick
|
|
end
|
|
|
|
local function spawnPlayerOnTeamBase(player, x, y, z, rotation, skinID, teamName)
|
|
showCursor(player, false)
|
|
spawnPlayer(player, x, y, z, rotation, skinID)
|
|
setCameraTarget(player)
|
|
--fadeCamera(player, true)
|
|
setPlayerHudComponentVisible(player, "all", true)
|
|
toggleAllControls(player, true, true, true)
|
|
|
|
if teamName == Teams.SECRET_SERVICE then
|
|
giveSecretServiceWeapon(player)
|
|
elseif teamName == Teams.POLICE then
|
|
givePoliceWeapon(player)
|
|
elseif teamName == Teams.TERRORISTS then
|
|
giveTerroristsWeapon(player)
|
|
end
|
|
end
|
|
|
|
local function mainOnPlayerTeamSelected(team, skinID)
|
|
if type(team) ~= "string" or type(skinID) ~= "number" then
|
|
outputDebugString("OnPlayerTeamSelected: Invalid argument type")
|
|
end
|
|
if team == Teams.SECRET_SERVICE then
|
|
local team = getTeamFromName(Teams.SECRET_SERVICE)
|
|
setPlayerTeam(source, team)
|
|
setElementData(source, "team."..Teams.SECRET_SERVICE..".skinID", skinID)
|
|
spawnPlayerOnTeamBase(source, teamSpawns[Teams.SECRET_SERVICE][1], teamSpawns[Teams.SECRET_SERVICE][2], teamSpawns[Teams.SECRET_SERVICE][3], teamSpawns[Teams.SECRET_SERVICE][4], skinID, Teams.SECRET_SERVICE)
|
|
elseif team == Teams.POLICE then
|
|
local team = getTeamFromName(Teams.POLICE)
|
|
setPlayerTeam(source, team)
|
|
setElementData(source, "team."..Teams.POLICE..".skinID", skinID)
|
|
spawnPlayerOnTeamBase(source, teamSpawns[Teams.POLICE][1], teamSpawns[Teams.POLICE][2], teamSpawns[Teams.POLICE][3], teamSpawns[Teams.POLICE][4], skinID, Teams.POLICE)
|
|
elseif team == Teams.TERRORISTS then
|
|
local team = getTeamFromName(Teams.TERRORISTS)
|
|
setPlayerTeam(source, team)
|
|
setElementData(source, "team."..Teams.TERRORISTS..".skinID", skinID)
|
|
spawnPlayerOnTeamBase(source, teamSpawns[Teams.TERRORISTS][1], teamSpawns[Teams.TERRORISTS][2], teamSpawns[Teams.TERRORISTS][3], teamSpawns[Teams.TERRORISTS][4], skinID, Teams.TERRORISTS)
|
|
end
|
|
triggerClientEvent(source, "onPlayerTeamSelectedSuccessful", resourceRoot)
|
|
end
|
|
|
|
addEvent("onPlayerTeamSelected", true)
|
|
addEventHandler("onPlayerTeamSelected", root, mainOnPlayerTeamSelected)
|
|
addEventHandler("onPlayerJoin", root, mainOnPlayerJoin)
|
|
|
|
-- respawn exploded vehicle
|
|
function respawnExplodedVehicle()
|
|
setTimer(respawnVehicle, 9000, 1, source)
|
|
end
|
|
addEventHandler("onVehicleExplode", root, respawnExplodedVehicle)
|
|
--
|
|
|
|
-- respawn wasted player
|
|
addEventHandler("onPlayerWasted", root,
|
|
function()
|
|
local team = getPlayerTeam(source)
|
|
if team then
|
|
local teamName = getTeamName(team)
|
|
setTimer(spawnPlayerOnTeamBase, 3000, 1, source, teamSpawns[teamName][1], teamSpawns[teamName][2], teamSpawns[teamName][3], teamSpawns[teamName][4], getElementData(source, "team."..teamName..".skinID"), teamName)
|
|
end
|
|
end
|
|
)
|
|
--
|
|
|
|
-- respawn drown vehicle
|
|
function respawnDrownVehicle()
|
|
for _, vehicle in ipairs(getElementsByType("vehicle")) do
|
|
if isElementInWater(vehicle) then
|
|
local isOccupied, _ = next(getVehicleOccupants(vehicle))
|
|
if not isOccupied then
|
|
respawnVehicle(vehicle)
|
|
end
|
|
end
|
|
end
|
|
end
|
|
setTimer(respawnDrownVehicle, 20000, 0)
|
|
--
|
|
|
|
addEventHandler("onResourceStart", root,
|
|
function ()
|
|
createTeam(Teams.SECRET_SERVICE, 29, 253, 0)
|
|
createTeam(Teams.POLICE, 0, 23, 252)
|
|
createTeam(Teams.TERRORISTS, 251, 0, 0)
|
|
teamSpawns[Teams.SECRET_SERVICE] = { 2795.0, -1825.0, 9.9, 90 }
|
|
teamSpawns[Teams.POLICE] = { 1532.6, -1677.3, 5.9, 270 }
|
|
teamSpawns[Teams.TERRORISTS] = { 1774.0, -1926.5, 13.5, 270 }
|
|
end
|
|
)
|