// 2 Teams system... Random Rnd = new Random(); Dictionary<PlayerTeam, int> Teams = new Dictionary<PlayerTeam, int>(4); PlayerTeam[] teams = {PlayerTeam.Team1, PlayerTeam.Team2, PlayerTeam.Team3, PlayerTeam.Team4}; public void OnStartup(){ List<IPlayer> players = new List<IPlayer>(); Teams.Add(PlayerTeam.Team1, 0); Teams.Add(PlayerTeam.Team2, 0); foreach(IObject spawn in Game.GetObjectsByName("SpawnPlayer")){ AvailableSpawns.Add(spawn); } foreach(IPlayer ply in Game.GetPlayers()){ players.Add(ply); } while(true){ int rndIndex = Rnd.Next(players.Count); IPlayer ply = players[rndIndex]; if(ply.GetTeam() == PlayerTeam.Independent){ ply.SetTeam(TeamAvailable()); } ply.SetWorldPosition(AvailableSpawn(ply.GetTeam())); players.Remove(players[rndIndex]); if(players.Count == 0) break; } } private PlayerTeam TeamAvailable(){ PlayerTeam team = PlayerTeam.Independent; int less = Teams[teams[0]]; for(int i = Teams.Count-1; i>=0; i--){ if(Teams[teams] <= less){ team = teams; less = Teams[teams]; Game.WriteToConsole(Teams[teams].ToString()); } } Teams[team] ++; return team; } List<IObject> AvailableSpawns = new List<IObject>(); public Vector2 AvailableSpawn(PlayerTeam team){ string plyTeam = ""; IObject spawn = null; switch(team){ case PlayerTeam.Team1: plyTeam = "blue"; break; case PlayerTeam.Team2: plyTeam = "red"; break; } for(int i = AvailableSpawns.Count-1; i>=0; i--){ if(AvailableSpawns.CustomId == plyTeam){ spawn = AvailableSpawns; AvailableSpawns.Remove(AvailableSpawns); return spawn.GetWorldPosition(); } } if(plyTeam == "" && AvailableSpawns.Count>0){ spawn = AvailableSpawns[0]; AvailableSpawns.Remove(AvailableSpawns[0]); return ((IObject)spawn).GetWorldPosition(); } IObject[] usedSpawns = (IObject[])Game.GetObjectsByCustomId(plyTeam); return (usedSpawns[Rnd.Next(0, usedSpawns.Length)]).GetWorldPosition(); } public void ActivateShooter(TriggerArgs args){ IObject obj01 = Game.GetFirstObject("Object01") as IObject; IObject obj02 = Game.GetFirstObject("Object02") as IObject; if(obj02 != null){ // if object01 still exists Vector2 pos01 = obj01.GetWorldPosition(); Vector2 pos02 = obj02.GetWorldPosition(); Vector2 direction = pos02 - pos01; Game.SpawnProjectile(ProjectileItem.M60, pos01, direction); } } public void ActivateCannon(TriggerArgs args){ IObject obj01 = Game.GetFirstObject("Object01B") as IObject; IObject obj02 = Game.GetFirstObject("Object02B") as IObject; if(obj02 != null){ // if object01 still exists Vector2 pos01 = obj01.GetWorldPosition(); Vector2 pos02 = obj02.GetWorldPosition(); Vector2 direction = pos02 - pos01; Game.SpawnProjectile(ProjectileItem.Grenadelauncher, pos01, direction); } }
You will be mentioned in the credits
Added in 53 minutes 50 seconds:
it says the term for grenade launcher is not right does anyone knows the right one?