Jump to content

  • Log in with Facebook Log in with Twitter Log In with Google Log In with Steam Sign In
  • Create Account
Photo

Automove

- - - - - release automove autobalance

  • Please log in to reply
1 reply to this topic

#1
OFFLINE   Purple

Purple

    Advanced Member

  • Banned
  • PipPipPipPip
  • 157 posts
56
Getting Better

Always see some sort of automove talk on here, so here is a simple automove that works well and i have been using on my server for months, modified quiet a bit to be usable by anyone. 

-- automove redone.


function et_InitGame(levelTime,randomSeed,restart)
	et.RegisterModname("^1D^0Ri Team Balance")

	players = { }
	players[0] = 0 --all
	players[1] = 0 --axis
	players[2] = 0 --allies
	players[3] = 0 --spectators
end




function et_Obituary(client, killer, death)
	axiskilled = 0
	allieskilled = 0
	count2 = 0
	player_name2 = GetPlayerName(client)
	local game_state = tonumber(et.trap_Cvar_Get("gamestate"))
	local player_team = et.gentity_get(client, "sess.SessionTeam")


	if game_state ~= 1 and game_state ~= 2 then

	players[0] = 0 --all
	players[1] = 0 --axis
	players[2] = 0 --allies
	players[3] = 0 --spectators

	for i = 0, tonumber(et.trap_Cvar_Get("sv_maxclients")) -1, 1 do
	local teamnumber = tonumber(et.gentity_get(i,"sess.sessionTeam"))

	if et.gentity_get(i,"pers.connected") == 2 then
		players[0] = players[0] + 1
		players[teamnumber] = players[teamnumber] + 1
	end
	
end



	if (( (players[1] - players[2]) > 1 and player_team == 1 ) or ( (players[2] - players[1]) > 1 and player_team == 2 )) then
		
		if player_team == 1 then
			axiskilled = 1
		else
			allieskilled = 1
		end
		
		et.trap_SendServerCommand(-1, "chat \"^3Automoving " .. player_name2 .. " ^3as teams were uneven... \"")
		
		end
	end
	return nil
end

function et_RunFrame()
	if axiskilled == 1 then
		delayaxis()
	elseif allieskilled == 1 then
		delayallies()
	end
end

function delayaxis()
count2 = count2 + 1
	if count2 >= 5 then --every 5 deaths move the next player that dies

		et.trap_SendConsoleCommand( et.EXEC_APPEND, "putteam " .. player_name2 .. " b")
		count2 = 0
		axiskilled = 0
	end
end


function delayallies()
count2 = count2 + 1
	if count2 >= 5 then--every 5 deaths move the next player that dies
		et.trap_SendConsoleCommand( et.EXEC_APPEND, "putteam " .. player_name2 .. " r")
		count2 = 0
		allieskilled = 0
	end
end
 
function GetPlayerName(client)
	return et.Q_CleanStr(et.gentity_get(client, "pers.netname"))
end

function et_ShutdownGame(restart)

end



#2
OFFLINE   twt_thunder

twt_thunder

    Regular Member

  • Members
  • PipPipPip
  • 68 posts
13
A step in the right direction
  • LocationNorway

thx for sharing :)







Also tagged with one or more of these keywords: release, automove, autobalance

0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users