protected void Tick_LeaveSceneCoin(int deltaTimeMs)
        {
            var  sceneStates        = playerData.playerZoo.scenePlayerDataMSS.sceneStates;
            var  msg                = BroadcastLeaveSceneCoin.PreSend();
            var  leaveSceneCoinData = GlobalDataManager.GetInstance().leaveSceneCoinData;
            bool isAddedCoin        = false;

            for (int i = 0; i < sceneStates.Count; i++)
            {
                var sceneState = sceneStates[i];
                if ((sceneState.enterCount > 0 || sceneState.sceneId == GameConst.First_SceneID) &&
                    sceneState.sceneId != playerData.playerZoo.currSceneID)
                {
                    var perMinCoin = PlayerDataModule.LeaveScenePerMinCoin(sceneState.sceneId, true);
                    perMinCoin = perMinCoin * deltaTimeMs / 60000;
                    if (perMinCoin > 0)
                    {
                        isAddedCoin = true;
                        playerData.playerZoo.playerCoin.AddCoinByScene(sceneState.sceneId, perMinCoin);
                        msg.AddSceneCoin(sceneState.sceneId, perMinCoin);
                        leaveSceneCoinData.AddCoin(sceneState.sceneId, perMinCoin);
                    }
                }
            }

            if (isAddedCoin)
            {
                //发送离开金币收入消息
                BroadcastLeaveSceneCoin.Send();

                //广播金币收入变化
                MessageManager.GetInstance().Send((int)GameMessageDefine.BroadcastCoinOfPlayerDataMSSC);
            }
        }
        /// <summary>
        /// 当前岛屿的所有场景/m收益
        /// </summary>
        /// <param name="isNeedMulBuff">false为不需要增益buff</param>
        /// <returns></returns>
        public static System.Numerics.BigInteger AllScenePerMinCoin(bool isNeedMulBuff)
        {
            var playerData = GlobalDataManager.GetInstance().playerData;
            int idx        = Config.sceneConfig.getInstace().getCell(playerData.playerZoo.currSceneID).scenetype;
            //当前场景/m收益
            var big = CurrScenePerMinCoin(isNeedMulBuff);
            //非当前场景的离线金币奖励
            var sceneStates = playerData.playerZoo.scenePlayerDataMSS.sceneStates;

            for (int i = 0; i < sceneStates.Count; i++)
            {
                var sceneState = sceneStates[i];
                if ((sceneState.enterCount > 0 || sceneState.sceneId == GameConst.First_SceneID) &&
                    sceneState.sceneId != playerData.playerZoo.currSceneID)
                {
                    if (Config.sceneConfig.getInstace().getCell(sceneState.sceneId).scenetype == idx)
                    {
                        var perMinCoin = PlayerDataModule.LeaveScenePerMinCoin(sceneState.sceneId, isNeedMulBuff);
                        big += perMinCoin;
                    }
                }
            }

            return(big);
        }
Exemple #3
0
 /// <summary>
 /// 获取场景每分钟收益
 /// </summary>
 /// <param name="sceneId"></param>
 /// <returns></returns>
 public System.Numerics.BigInteger GetSceneEarningsPerMinute(int sceneId)
 {
     if (sceneId == currSceneId)
     {
         return(PlayerDataModule.CurrScenePerMinCoin(true));
     }
     return(PlayerDataModule.LeaveScenePerMinCoin(sceneId, true));
 }