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