private void SendSneakEnd() { //判断是否是玩家死亡 PVEOverState overState = player.health <= 0 ? PVEOverState.GameOver : PVEOverState.Success; moduleLabyrinth.SendLabyrinthSneakOver(overState); }
public void SendChasePVEState(PVEOverState state) { CsChaseTaskOver chaseMsg = PacketObject.Create <CsChaseTaskOver>(); chaseMsg.state = (sbyte)state; chaseMsg.overData = modulePVE.GetPveDatas(); session.Send(chaseMsg); }
public void SendPVEState(PVEOverState state, float health = 0, byte anger = 0) { Logger.LogDetail("pve end stats is {0}", state); isSendWin = state == PVEOverState.Success; lastSendState = state; if (isTeamMode) { //如果挑战失败,就退出组队房间 if (state == PVEOverState.GameOver) { moduleAwakeMatch.Request_ExitRoom(modulePlayer.id_); } moduleTeam.SendEndRequest(state); } else { switch (reopenPanelType) { case PVEReOpenPanel.ChasePanel: case PVEReOpenPanel.Awake: SendChasePVEState(state); break; case PVEReOpenPanel.PetPanel: SendSpritePVEState(state); break; case PVEReOpenPanel.UnionBoss: moduleUnion.SendGetEnd(state); break; case PVEReOpenPanel.Borderlands: if (state == PVEOverState.Success) { moduleBordlands.SendFightWin(); } else if (state == PVEOverState.GameOver) { moduleBordlands.SendFightLose(); //暂时本地结算 moduleBordlands.OnBordlandStageFail(); } break; case PVEReOpenPanel.Labyrinth: moduleLabyrinth.SendChallengeLabyrinthOver(health, anger, state); break; case PVEReOpenPanel.Dating: moduleNPCDating.ChaseFinish(state); SendChasePVEState(state); break; } } }
public void SendLabyrinthSneakOver(PVEOverState state) { var p = PacketObject.Create <CsMazeSceneSneakOver>(); p.overState = (byte)state; Logger.LogDetail("偷袭完成,发送的偷袭状态是{0}", state); //通过发送消息来决定是否是偷袭成功 isSneakSuccess = state == PVEOverState.Success; session.Send(p); }
public void SendEndRequest(PVEOverState state) { sendTeamEnd = true; var p = PacketObject.Create <CsTeamRequestEnd>(); p.pveState = (byte)state; p.overData = modulePVE.GetPveDatas(); var level = Level.current as Level_Battle; p.hp = level ? level.GetHpForVerification() : new double[] { 0 }; Send(p); }
public void SendPVEState(PVEOverState state, Creature player) { if (Level.current is Level_Train) { return; } //胜利或者失败就设置该关卡可以被销毁了 if (Level.current && Level.current is Level_PVE && state != PVEOverState.RoleDead) { (Level.current as Level_PVE).SetLevelBehaviourCanDestory(); } byte anger = (byte)Mathf.RoundToInt(player.rageRate * 100f); //如果是组队模式,则需要发送EndRequest modulePVE.SendPVEState(state, player.healthRate * 100, anger); }
public void SendChallengeLabyrinthOver(float health, byte anger, PVEOverState overState) { var p = PacketObject.Create <CsMazeChallengeOver>(); p.overData = modulePVE.GetPveDatas(); p.overState = (byte)overState; //失败了要清空怒气 if (overState == PVEOverState.GameOver) { p.overData.anger = 0; } //拷贝发送的消息作为缓存 p.CopyTo(ref m_lastSendOverMsg); session.Send(p); }
private void ClearPveCache() { moduleLabyrinth.isSneakSuccess = false; isSendWin = false; lastSendState = PVEOverState.None; isFirstEnterStage = false; enterForFirstTime = false; maxReviveTimes = -1; rebornItemDic.Clear(); labyrinthBuffPropIds.Clear(); propToBuffDic.Clear(); currentReviveTimes = 0; settlementStar = 0; addFriendPoint = 0; addNpcPoint = 0; settlementReward = null; settlementTask = null; duringTranspostScene = false; totalMonsterDeathDic.Clear(); }