Ejemplo n.º 1
0
 public void UpdateRoomInfo(cmd_voice_update_room_info roomInfo)
 {
     UpdateRoomBaseInfo(roomInfo.baseInfo);
     if (roomInfo.baseInfo.nRoomID == nCurrentRoomID)
     {
         nCurrentRoomFlag         = roomInfo.nRoomFlag;
         nCurrentMicOrderMode     = roomInfo.nMicOrderMode;
         nCurrentMicOrderInterval = roomInfo.nMicOrderInterval;
         nCurrentMicUserClientID  = roomInfo.nCurMicUserClientID;
         VoiceRoomRigthInfo info = CalculateRight();
         UISystem.Instance.SendWndMessage(WndMsgID.WND_MSG_VOICESYSTEM_UPDATEROOMRIGHTINFO, info);
     }
 }
Ejemplo n.º 2
0
        public void UpdateUserInfo(cmd_voice_update_user_info userInfo)
        {
            if (userInfo.nClientID == 0)
            {
                return;
            }
            if (null != EntityFactory.MainHeroView && null != EntityFactory.MainHeroView.Property)
            {
                if (userInfo.nPDBID == EntityFactory.MainHeroView.Property.GetNumProp(ENTITY_PROPERTY.PROPERTY_ID))
                {
                    nClientID   = userInfo.nClientID;
                    nWorldID    = userInfo.nWorldID;
                    nPDBID      = userInfo.nPDBID;
                    nUDBID      = userInfo.nUDBID;
                    nUserType   = userInfo.nUserType;
                    nUserRight  = userInfo.nUserRight;
                    nUserState  = userInfo.nUserState;
                    bInMicOrder = userInfo.nMicIndex > 0 ? true : false;
                    VoiceRoomRigthInfo info = CalculateRight();
                    UISystem.Instance.SendWndMessage(WndMsgID.WND_MSG_VOICESYSTEM_UPDATEROOMRIGHTINFO, info);
                }
            }

            if (userInfo.isAdd == 0)
            {
                int index = m_UserInfoList.FindIndex(x => x.nClientID == userInfo.nClientID);
                if (index > -1)
                {
                    m_UserInfoList.RemoveAt(index);
                }
            }
            else
            {
                int index = m_UserInfoList.FindIndex(x => x.nClientID == userInfo.nClientID);
                if (index != -1)
                {
                    m_UserInfoList[index] = userInfo;
                }
                else
                {
                    m_UserInfoList.Add(userInfo);
                }
            }
            UISystem.Instance.SendWndMessage(WndMsgID.WND_MSG_VOICESYSTEM_UPDATEUSERINFO, null);
            UpdateMicOrder(userInfo);
        }
Ejemplo n.º 3
0
        private VoiceRoomRigthInfo CalculateRight()
        {
            VoiceRoomRigthInfo info = new VoiceRoomRigthInfo();

            info.nMicMode = CurrentMicOrderMode;

            if ((nUserRight & (int)EMVoiceRightFlag.VoiceRight_Mic) != 0)
            {
                info.bManageMicMode = true;
            }
            else
            {
                info.bManageMicMode = false;
            }

            if ((nCurrentRoomFlag & (int)EMVoiceRoomStateFlag.VoiceRoomState_AddMicOrder) != 0 && nCurrentMicOrderMode == (int)EMVoiceMicState.VoiceMicState_MicOrder)
            {
                info.bEnableGraspMic = true;
            }
            else
            {
                info.bEnableGraspMic = false;
            }

            info.bInMicOrder = bInMicOrder;

            info.bForbidMic = true;
            if (nUserType == (int)EMVoiceUserType.VoiceUserType_GM || nUserType == (int)EMVoiceUserType.VoiceUserType_OW ||
                nUserType == (int)EMVoiceUserType.VoiceUserType_Admin)
            {
                info.bForbidMic = false;
            }
            else
            {
                if (CurrentMicOrderMode == (int)EMVoiceMicState.VoiceMicState_MicFree)
                {
                    info.bForbidMic = false;
                }
                else if (CurrentMicOrderMode == (int)EMVoiceMicState.VoiceMicState_MicOrder)
                {
                    if (nCurrentMicUserClientID == LogicDataCenter.voiceSystemDataManager.ClientID)
                    {
                        info.bForbidMic = false;
                    }
                }
            }

            if ((nUserState & (int)EMVoiceUserStateFlag.VoiceUserStateFlag_Mic) != 0)
            {
                info.bOpenMicphone = true;
            }
            else
            {
                info.bOpenMicphone = false;
            }

            if ((nUserState & (int)EMVoiceUserStateFlag.VoiceUserStateFlag_NoListen) != 0)
            {
                info.bOpenEarphone = false;
            }
            else
            {
                info.bOpenEarphone = true;
            }

            return(info);
        }