/// <summary> /// Intitialize a new session with the given level number of players and teams. /// </summary> /// <param name="levelIndex"></param> /// <param name="numPlayers"></param> public void Initialize(int levelIndex, int numPlayers, int numTeams) { ScriptMain.DebugPrint("Initializing a new session with {0} players and {1} total teams.", numPlayers, numTeams); LevelManager levelMgr = ScriptThread.GetOrAddExtension <LevelManager>(); InitTeamConstantData(numTeams); current = new SessionInfo(levelIndex, numPlayers); levelMgr.DoLoadLevel(current.LevelIndex); for (int i = 0; i < numPlayers; i++) { TeamData team = FindFreeTeam(); Player player = CreatePlayer(i, team.Index, i < 1); player.OnDead += OnPlayerDead; current.AddPlayer(i, team.Index, player); //ScriptMain.DebugPrint("Added a new player at slot '{0}' with name \"{1}\" teamIdx: {2}", i, player.Name, team.Index); } ScriptThread.SetVar("scr_activesession", true); }
public static string SetVar(params string[] args) { if (args.Length < 2) { return("SetVar: Invalid format."); } var varName = args[0]; if (int.TryParse(args[1], out var i)) { var foundVar = ScriptThread.GetVar <int>(varName); if (foundVar != null) { return(!ScriptThread.SetVar(varName, i) ? "Failed to set the (integer) variable. Is it readonly?" : null); } } if (float.TryParse(args[1], out var f)) { var foundVar = ScriptThread.GetVar <float>(varName); if (foundVar != null) { return(!ScriptThread.SetVar(varName, f) ? "Failed to set the (float) variable. Is it readonly?" : null); } } if (bool.TryParse(args[1], out var b)) { var foundVar = ScriptThread.GetVar <bool>(varName); if (foundVar != null) { return(!ScriptThread.SetVar(varName, b) ? "Failed to set the (bool) variable. Is it readonly?" : null); } } return("Variable '" + args[0] + "' not found."); }