public bool CanEnterSceneEX(GameClient client) { MarriageInstance FubenInstance = this.GetMarriageInstance(client); GameClient clienth = GameManager.ClientMgr.FindClient(FubenInstance.nHusband_ID); bool result; if (clienth == null) { result = false; } else { GameClient clientw = GameManager.ClientMgr.FindClient(FubenInstance.nWife_ID); if (clientw == null) { result = false; } else if (1 != FubenInstance.nHusband_state || 1 != FubenInstance.nWife_state) { this.RemoveMarriageInstance(FubenInstance, true); result = false; } else { result = true; } } return(result); }
public MarryFubenResult ClientReady(GameClient client, int FuBenID) { MarryFubenResult result; if (!client.ClientData.IsMainOccupation) { result = MarryFubenResult.Error_Denied_For_Minor_Occupation; } else if (-1 == client.ClientData.MyMarriageData.byMarrytype) { result = MarryFubenResult.NotMarriaged; } else if (client.ClientData.CopyMapID > 0 && client.ClientData.FuBenSeqID > 0) { result = MarryFubenResult.InFuben; } else { SceneUIClasses sceneType = Global.GetMapSceneType(client.ClientData.MapCode); if (sceneType == SceneUIClasses.ShuiJingHuanJing || sceneType == SceneUIClasses.GuZhanChang) { result = MarryFubenResult.InFuben; } else { GameClient Spouseclient = GameManager.ClientMgr.FindClient(client.ClientData.MyMarriageData.nSpouseID); MarriageInstance FubenInstance = this.GetMarriageInstance(client); if (null == FubenInstance) { result = MarryFubenResult.Error; } else if (1 == FubenInstance.nHusband_state && 1 == FubenInstance.nWife_state && FubenInstance.nHusband_FuBenID == FubenInstance.nWife_FuBenID) { result = MarryFubenResult.IsReaday; } else { if (1 == client.ClientData.MyMarriageData.byMarrytype) { FubenInstance.nHusband_state = 1; FubenInstance.nHusband_FuBenID = FuBenID; } else if (2 == client.ClientData.MyMarriageData.byMarrytype) { FubenInstance.nWife_state = 1; FubenInstance.nWife_FuBenID = FuBenID; } this.GetMarriageInstanceState(client, FubenInstance); this.GetMarriageInstanceState(Spouseclient, FubenInstance); result = MarryFubenResult.Success; } } } return(result); }
private void RemoveMarriageInstance(MarriageInstance FubenInstance, bool bNeedsendtoclient = false) { lock (this.MarriageInstanceDic) { if (bNeedsendtoclient) { GameClient Husbandclient = GameManager.ClientMgr.FindClient(FubenInstance.nHusband_ID); this.GetMarriageInstanceState(Husbandclient, FubenInstance); GameClient Wifeclient = GameManager.ClientMgr.FindClient(FubenInstance.nWife_ID); this.GetMarriageInstanceState(Wifeclient, FubenInstance); } this.MarriageInstanceDic.Remove(FubenInstance.nCreateRole_ID); } }
public MarryFubenResult ClientExitReady(GameClient client) { MarryFubenResult result; if (-1 == client.ClientData.MyMarriageData.byMarrytype) { result = MarryFubenResult.NotMarriaged; } else { GameClient Spouseclient = GameManager.ClientMgr.FindClient(client.ClientData.MyMarriageData.nSpouseID); MarriageInstance FubenInstance = this.GetMarriageInstance(client); if (null != FubenInstance) { if (1 == FubenInstance.nHusband_state && 1 == FubenInstance.nWife_state && FubenInstance.nHusband_FuBenID == FubenInstance.nWife_FuBenID) { result = MarryFubenResult.IsReaday; } else { if (1 == client.ClientData.MyMarriageData.byMarrytype) { FubenInstance.nHusband_state = 0; FubenInstance.nHusband_FuBenID = 0; } else { FubenInstance.nWife_state = 0; FubenInstance.nWife_FuBenID = 0; } this.GetMarriageInstanceState(client, FubenInstance); this.GetMarriageInstanceState(Spouseclient, FubenInstance); result = MarryFubenResult.Success; } } else { result = MarryFubenResult.Error; } } return(result); }
private MarryFubenResult GetMarriageInstanceState(GameClient client, MarriageInstance FubenInstance = null) { MarryFubenResult result; if (null == client) { result = MarryFubenResult.Error; } else { int[] RetArry = new int[6]; if (null == FubenInstance) { FubenInstance = this.GetMarriageInstance(client); } if (null != FubenInstance) { RetArry = new int[] { FubenInstance.nHusband_ID, FubenInstance.nHusband_state, FubenInstance.nWife_ID, FubenInstance.nWife_state, FubenInstance.nHusband_FuBenID, FubenInstance.nWife_FuBenID }; client.sendCmd <int[]>(870, RetArry, false); result = MarryFubenResult.Success; } else { int[] array = new int[6]; array[0] = -1; array[2] = -1; RetArry = array; client.sendCmd <int[]>(870, RetArry, false); result = MarryFubenResult.Success; } } return(result); }
private MarriageInstance GetMarriageInstance(GameClient client) { MarriageInstance result; if (null == client) { result = null; } else { lock (this.MarriageInstanceDic) { MarriageInstance FubenInstance = null; this.MarriageInstanceDic.TryGetValue(client.ClientData.RoleID, out FubenInstance); if (null == FubenInstance) { this.MarriageInstanceDic.TryGetValue(client.ClientData.MyMarriageData.nSpouseID, out FubenInstance); } result = FubenInstance; } } return(result); }