protected override void OnJoinRoomLocal(IOnlineConnection Sender, string RoomID, GameClientGroup ActiveGroup) { PVPRoomInformations JoinedRoom = (PVPRoomInformations)ActiveGroup.Room; List <BattleMapPlayer> ListJoiningPlayerInfo = JoinedRoom.GetOnlinePlayer(Sender); foreach (IOnlineConnection ActivePlayer in ActiveGroup.Room.ListOnlinePlayer) { if (ActivePlayer == Sender) { continue; } ActivePlayer.Send(new PlayerJoinedScriptServer(ListJoiningPlayerInfo)); } Dictionary <string, OnlineScript> DicNewScript = OnlineHelper.GetRoomScriptsServer(JoinedRoom, Owner); DicNewScript.Add(AskStartGameBattleScriptServer.ScriptName, new AskStartGameBattleScriptServer(JoinedRoom, (Online.BattleMapClientGroup)ActiveGroup, Owner)); DicNewScript.Add(AskChangeRoomExtrasMissionScriptServer.ScriptName, new AskChangeRoomExtrasMissionScriptServer(JoinedRoom)); Sender.AddOrReplaceScripts(DicNewScript); if (ActiveGroup.CurrentGame != null) { } Sender.Send(new JoinRoomLocalScriptServer(RoomID, JoinedRoom.CurrentDifficulty, ListJoiningPlayerInfo, ActiveGroup)); }
protected override void Execute(IOnlineConnection Sender) { base.Execute(Sender); PVPRoomInformations NewRoom = (PVPRoomInformations)CreatedGroup.Room; foreach (IOnlineConnection ActivePlayer in CreatedGroup.Room.ListOnlinePlayer) { //Add Game Specific scripts Dictionary <string, OnlineScript> DicNewScript = OnlineHelper.GetRoomScriptsServer(NewRoom, Owner); DicNewScript.Add(AskStartGameBattleScriptServer.ScriptName, new AskStartGameBattleScriptServer(NewRoom, (BattleMapClientGroup)CreatedGroup, Owner)); DicNewScript.Add(AskChangeRoomExtrasMissionScriptServer.ScriptName, new AskChangeRoomExtrasMissionScriptServer(NewRoom)); ActivePlayer.AddOrReplaceScripts(DicNewScript); } }
protected override void Execute(IOnlineConnection Sender) { Dictionary <string, List <Squad> > DicSpawnSquadByPlayer = new Dictionary <string, List <Squad> >(); for (int P = 0; P < Owner.ListRoomPlayer.Count; ++P) { DicSpawnSquadByPlayer.Add(Owner.ListRoomPlayer[P].Name, Owner.ListRoomPlayer[P].Inventory.ActiveLoadout.ListSquad); } BattleMap NewMap; if (CreatedGroup.Room.MapPath == "Random") { NewMap = BattleMap.DicBattmeMapType[Owner.MapType].GetNewMap(Owner.RoomType); } else { NewMap = BattleMap.DicBattmeMapType[Owner.MapType].GetNewMap(Owner.RoomType); } NewMap.ListGameScreen = new List <GameScreen>(); NewMap.BattleMapPath = Owner.MapPath; NewMap.DicSpawnSquadByPlayer = DicSpawnSquadByPlayer; NewMap.InitOnlineServer(OnlineServer, CreatedGroup); CreatedGroup.SetGame(NewMap); for (int P = 0; P < CreatedGroup.Room.ListOnlinePlayer.Count; P++) { IOnlineConnection ActiveOnlinePlayer = CreatedGroup.Room.ListOnlinePlayer[P]; BattleMapPlayer ActivePlayer = Owner.ListRoomPlayer[P]; ActivePlayer.OnlineClient = ActiveOnlinePlayer; NewMap.AddLocalPlayer(ActivePlayer); //Add Game Specific scripts Dictionary <string, OnlineScript> DicNewScript = OnlineHelper.GetBattleMapScriptsServer(CreatedGroup, ActivePlayer); ActiveOnlinePlayer.AddOrReplaceScripts(DicNewScript); } for (int P = 0; P < CreatedGroup.Room.ListOnlinePlayer.Count; P++) { IOnlineConnection ActiveOnlinePlayer = CreatedGroup.Room.ListOnlinePlayer[P]; ActiveOnlinePlayer.Send(new CreateGameScriptServer()); } }