[lua]local spectators = {}
local getPlayerSpectatee = {}
resourceRoot = getResourceRootElement(getThisResource())
thecurrentrunningmaplidu = ""
myskin = {}
function teamstealthgamestart()
killmessageRes = getResourceFromName"killmessages"
call(getResourceFromName("scoreboard"), "addScoreboardColumn", "Score")
call(getResourceFromName("scoreboard"), "addScoreboardColumn", "Status")
call(getResourceFromName("scoreboard"), "addScoreboardColumn", "FPS")
call(getResourceFromName("scoreboard"), "addScoreboardColumn", "kills")
call(getResourceFromName("scoreboard"), "addScoreboardColumn", "deaths")
playingaround = 0
team1 = createTeam("RED",255,0,0)
team2 = createTeam("BLUE",0,0,255)
team3 = createTeam("Waiting",0,255,0)
teamprotect = get("stealth.teamdamage")
if teamprotect == 1 then
setTeamFriendlyFire( team1, false )
setTeamFriendlyFire( team2, false )
elseif teamprotect == 0 then
setTeamFriendlyFire( team1, true )
setTeamFriendlyFire( team2, true )
end
setElementData ( team1, "Score", 0 )
setElementData ( team2, "Score", 0 )
teamswap = 0
for k,v in ipairs(getElementsByType("player")) do
killPed(v)
fadeCamera(v,true)
thisplayer = v
setTimer(triggerClientEvent,2000,1,v,"swaptoggle",getRootElement(), thisplayer, teamswap)
setElementData ( v, "Status", "IDLE" )
setElementData ( v, "kills", 0 )
setElementData ( v, "deaths", 0 )
setPlayerNametagShowing ( v, false )
spectators[v] = true
bindKey ( v, "F3", "down", selectTeamKey )
bindKey ( v, "r", "down", spectateNext )
setElementData(v, "yourarmror", 0)
end
--Enable laser sight
setElementData(getRootElement(),"lasersight",get("stealth.lasersight"))
end
addEventHandler( "onGamemodeStart", resourceRoot, teamstealthgamestart )
function joinTeam( player, team )
setPlayerTeam(player, team)
if team == team1 then
setPlayerNametagColor ( player, 255, 0, 0 )
outputChatBox("You select Team 1 RED", source, 255, 69, 0)
outputChatBox("Counter Strike mode started", source, 255, 69, 0)
outputChatBox("For started new map use command /votemap", source, 255, 69, 0)
outputChatBox("!!Loading map started!!", source, 255, 69, 0)
outputChatBox("!!Loading please Wait +-40 SECONDS for start MAP!!", source, 255, 69, 0)
elseif team == team2 then
setPlayerNametagColor ( player, 0, 0, 255 )
outputChatBox("You select Team 2 BLUE", source, 255, 69, 0)
outputChatBox("Counter Strike mode started", source, 255, 69, 0)
outputChatBox("For started new map use command /votemap", source, 255, 69, 0)
outputChatBox("!!Loading map started!!", source, 255, 69, 0)
outputChatBox("!!Loading please Wait +-40 SECONDS for start MAP!!", source, 255, 69, 0)
waitDisplay = textCreateDisplay()
end
end
addEvent("dojoinTeam1",true )
function joinTeam1( source,theskin )
if (countPlayersInTeam(team1) - countPlayersInTeam(team2) > balanceamount) then
outputChatBox("Can't join RED too many players", source, 255, 69, 0)
triggerClientEvent(source,"doshowTeamWindow",source)
else
joinTeam(source, team1)
myskin[source] = theskin
end
end
addEventHandler ( "dojoinTeam1", getRootElement(), joinTeam1 )
addEvent("toScore", true)
function addToScore(pla, cmd,cmds)
setElementData ( source, "FPS", cmd)
triggerClientEvent("onClientGamemodeMapStart", source, getMapName () )
end
addEventHandler("toScore", getRootElement(), addToScore)
addEvent("dojoinTeam2",true )
function joinTeam2( source, theskin )
if (countPlayersInTeam(team2) - countPlayersInTeam(team1) > balanceamount) then
outputChatBox("Can't join BLUE too many players", source, 255, 69, 0)
triggerClientEvent(source,"doshowTeamWindow",source)
else
joinTeam(source, team2)
myskin[source] = theskin
end
end
addEventHandler ( "dojoinTeam2", getRootElement(), joinTeam2 )
function selectTeam( player )
setPlayerTeam(player, team3)
local thisplayer = player
triggerClientEvent(player,"doshowTeamWindow",getRootElement())
setCameraFixed(player,"cameramode",getRootElement(), thisplayer)
balanceamount = get("stealth.teambalance")
tonumber(balanceamount)
end
function selectTeamKey(source)
ishespawning = getElementData ( source, "cantchangespawns" )
if ( isPedDead ( source ) ) and (ishespawning == 0) then
selectTeam( source )
getPlayerSpectatee[source] = nil
triggerClientEvent(source,"showSpectateText",source,"",false,"none")
unbindKey ( source, "r", "down", spectateNext )
setPlayerTeam(source, team3)
else
outputChatBox("You can only change teams when your dead.", source, 255, 69, 0)
end
end
function onStealthPlayerJoin ()
playersin = getPlayerCount()
if playersin < 3 then
if playingaround == 1 then
outputChatBox("Not enough active players, restarting round.", source, 255, 69, 0)
roundend = setTimer ( stealthroundended, 10000, 1, roundfinish, source )
destroyMissionTimer ( roundfinish )
end
end
setElementData(source, "yourarmror", 0)
selectTeam (source)
setElementHealth(source,0)
setPlayerNametagShowing ( source, false )
spectators[source] = true
bindKey ( source, "F3", "down", selectTeamKey )
bindKey ( source, "r", "down", spectateNext )
thisplayer = source
setCameraFixed(source,"cameramode",getRootElement(), source)
destroyshield = setTimer ( destroyElement, 3000, 1, dummyshield )
setCameraFixed(source,"cameramode",getRootElement(), source)
triggerClientEvent(source,"swaptoggle",getRootElement(), source, teamswap)
textDisplayAddObserver ( waitDisplay, source )
fadeCamera(source,true)
setElementData ( source, "kills", 0 )
setTimer(setElementData,5000,1,source, "deaths", 0 )
setElementData ( source, "Status", "JOINING" )
end