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); } }
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); }
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); }