Exemple #1
0
        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);
        }
Exemple #2
0
        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);
        }
Exemple #3
0
 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);
     }
 }
Exemple #4
0
        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);
        }
Exemple #5
0
        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);
        }
Exemple #6
0
        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);
        }