Exemple #1
0
        public SP_ScoreBoard(Room Room)
        {
            newPacket(30032);
            addBlock(1);
            addBlock((Room.mode == (int)RoomMode.Explosive || Room.mode == (int)RoomMode.HeroMode ? Room.DerbRounds : 0));
            addBlock((Room.mode == (int)RoomMode.Explosive || Room.mode == (int)RoomMode.HeroMode ? Room.NIURounds : 0));

            RoomMode mode = (RoomMode)Room.mode;

            Log.WriteInfo(">---ScoreBrd-29 mode:  " + mode);
            switch (mode)
            {
            case RoomMode.HeroMode:
            {
                addBlock(Room.derbHeroKill);
                addBlock(Room.niuHeroKill);
                Log.WriteInfo(">---ScoreBrd-60 derbHeroKill: " + Room.derbHeroKill + "  niuHeroKill: " + Room.niuHeroKill);          //>---
                break;
            }

            case RoomMode.FFA:
            {
                addBlock(Room.ffakillpoints);
                addBlock(Room.highestkills);
                break;
            }

            case RoomMode.FourVersusFour:
            case RoomMode.TDM:
            case RoomMode.Conquest:
            case RoomMode.TotalWar:
            case RoomMode.BGExplosive:
            {
                addBlock(Room.KillsDerbaranLeft);
                addBlock(Room.KillsNIULeft);
                Log.WriteInfo(">---ScoreBrd-60 KillsDerbaranLeft: " + Room.KillsDerbaranLeft + "  KillsNIULeft: " + Room.KillsNIULeft);          //>---
                break;
            }

            default:
            {
                addBlock(0);
                addBlock(0);
                break;
            }
            }
            // 30032 1 0 0 3 4 8 0 0 0 0 0 0 0 1 0 0 0 0 0 0 2 0 0 0 0 0 0 3 0 0 0 0 0 0 4 0 0 0 0 0 0 5 0 0 0 0 0 0 6 0 0 0 0 0 0 7 0 0 0 0 0 0
            addBlock(Room.users.Count);
            Log.WriteInfo(">---ScoreBrd-87  users.Count: " + Room.users.Count);
            foreach (User RoomUser in Room.users.Values)
            {
                //5 0 0 0 0 0 0
                //0 2 0 0 2 0 0 0 <-- AI
                //0 1 0 0 1 0 0 0 <-- AI
                addBlock(RoomUser.roomslot);
                addBlock(RoomUser.rKills);
                addBlock(RoomUser.rDeaths);
                addBlock(RoomUser.rFlags);
                addBlock(RoomUser.rPoints);
                addBlock(1); // Assist in chapter 1
            }
        }
 public List <IChatRoom> GetSessionChatRooms(string sessionId, RoomMode chatRoomMode)
 {
     return(ChatRooms.Where(i => i.ChatRoomMode == chatRoomMode && i.CurrentUsers.Any(j => j.SessionID == sessionId)).ToList());
 }
Exemple #3
0
        public void GetOrCreateChatRoom(string nickName, string chatRoomId, string chatRoomName = "", RoomMode roomMode = RoomMode.Public)
        {
            long userId = 0;

            if (FrameworkSettings.CurrentUser != null)
            {
                userId = FrameworkSettings.CurrentUser.ID;
            }

            var       chatUser = new ChatUser(Session.SessionID, nickName, userId);
            IChatRoom chatRoom = null;

            if (chatRoomId != "" && chatRoomId != "0" && chatRoomId != "null")
            {
                chatRoom = ChatManager.GetChatRoomByID(new Guid(chatRoomId));

                if (chatRoom != null && chatRoom.ChatRoomMode != roomMode)
                {
                    chatRoom = null;
                }
            }

            if (chatRoom == null)
            {
                if (chatRoomName == "")
                {
                    if (roomMode == RoomMode.Public)
                    {
                        chatRoomName = _chatRoomName;
                    }
                    else if (roomMode == RoomMode.Private)
                    {
                        if (nickName != "")
                        {
                            chatRoomName = nickName;
                        }
                        else
                        {
                            chatRoomName = Session.SessionID;
                        }
                    }
                }

                chatRoom = ChatManager.GetOrCreateChatRoom(roomMode, chatRoomName, chatUser);
            }
            else
            {
                var foundUserInChatRoom = chatRoom.GetUserInChatRoom(chatUser);

                if (foundUserInChatRoom == null)
                {
                    var foundUserWithNickName = chatRoom.CurrentUsers.FirstOrDefault(i => i.NickName == chatUser.NickName);

                    /*if(foundUserWithNickName != null && FrameworkSettings.CurrentUser!= null && foundUserWithNickName.LoggedInUserID == FrameworkSettings.CurrentUser?.ID)
                     * {
                     *  chatRoom.RemoveUser(foundUserWithNickName);
                     *  foundUserWithNickName = null;
                     * }*/

                    if (foundUserWithNickName == null)
                    {
                        chatRoom.JoinChatRoom(chatUser);
                    }
                    else
                    {
                        chatRoom = null;
                    }
                }
                else if (!foundUserInChatRoom.IsActive)
                {
                    chatRoom.RemoveUser(foundUserInChatRoom);

                    var chatRooms = ChatManager.GetChatRooms(roomMode).ToList();

                    foreach (var room in chatRooms)
                    {
                        room.RemoveUser(foundUserInChatRoom);

                        if (room.CurrentUsers.Count == 0)
                        {
                            ChatManager.DeleteChatRoom(room.ChatRoomID);
                        }
                    }

                    chatRoom = null;
                }
            }

            WriteJSON(StringHelper.ObjectToJson(chatRoom));
        }