void SkillEvent(int eventID, object param) { if (eventID == (int)GameEventID.SKILLSYSTEM_ADDSKILLCMD) { stSkillCommond st = (stSkillCommond)param; AddCommondQueue(st); } else if (eventID == (int)GameEventID.SKILLSYSTEM_CLEARSKILLCMD) { ClearCommondQueue(); } else if (eventID == (int)GameEventID.SKLL_LONGPRESS) { stSkillLongPress st = (stSkillLongPress)param; m_bSkillLongPress = st.bLongPress; } else if (eventID == (int)GameEventID.ENTITYSYSTEM_ENTITYBEGINMOVE) { stEntityBeginMove move = (stEntityBeginMove)param; if (move.uid == MainPlayerHelper.GetPlayerUID()) { ClearCommondQueue(); } } else if (eventID == (int)GameEventID.ROBOTCOMBAT_START) { stSkillLongPress longPress = new stSkillLongPress(); longPress.bLongPress = false; EventEngine.Instance().DispatchEvent((int)GameEventID.SKLL_LONGPRESS, longPress); } else if (eventID == (int)GameEventID.SKILLSYSTEM_STIFFTIMEOVER) { DoInsertSkill(); } }
void AddSkillCommond(uint uSkillID) { if (IsCommonSkill(uSkillID)) { return; } if (m_bSkillLongPress) { //点击其他技能 解除长按 stSkillLongPress longPress = new stSkillLongPress(); longPress.bLongPress = false; EventEngine.Instance().DispatchEvent((int)GameEventID.SKLL_LONGPRESS, longPress); EventEngine.Instance().DispatchEvent((int)GameEventID.SKILLSYSTEM_CLEARSKILLCMD, null); stSkillCommond cmd = new stSkillCommond(); cmd.type = 0; cmd.skillID = uSkillID; EventEngine.Instance().DispatchEvent((int)GameEventID.SKILLSYSTEM_ADDSKILLCMD, cmd); stSkillCommond st = new stSkillCommond(); st.type = 0; st.skillID = DataManager.Manager <LearnSkillDataManager>().GetCommonSkillIDByJob(); EventEngine.Instance().DispatchEvent((int)GameEventID.SKILLSYSTEM_ADDSKILLCMD, st); } }
//注销长按攻击事件 void CancelPressAttack() { TimerAxis.Instance().KillTimer(m_uSkillLongPressTimerID, this); m_btnCommonAttack.SendMessage("OnPress", false, SendMessageOptions.DontRequireReceiver); stSkillLongPress longPress = new stSkillLongPress(); // longPress.userID = MainPlayerHelper.GetPlayerUID(); longPress.bLongPress = false; EventEngine.Instance().DispatchEvent((int)GameEventID.SKLL_LONGPRESS, longPress); }
public void OnContrllerEvent(int nEventID, object param) { if (m_Host == null) { Engine.Utility.Log.Error("MoveController.OnContrllerEvent: host is null"); return; } if (nEventID == (int)Client.GameEventID.ENTITYSYSTEM_ENTITYSTOPMOVE) { Client.stEntityStopMove stopEntity = (Client.stEntityStopMove)param; if (m_bJoystick && stopEntity.uid == m_Host.GetUID() && !stopEntity.bExternal) // 自行移动停止才需要继续向前预测 { // 继续向前预测 MoveByDir(m_fCalcRotate); } } else if (nEventID == (int)Client.GameEventID.SKLL_LONGPRESS) { stSkillLongPress st = (stSkillLongPress)param; m_bSkillLongPress = st.bLongPress; } else if (nEventID == (int)Client.GameEventID.ENTITYSYSTEM_ENTITYDEAD) { stEntityDead ed = (stEntityDead)param; if (m_ClientGlobal.IsMainPlayer(ed.uid)) { m_bJoystick = false; m_Host.SendMessage(EntityMessage.EntityCommand_StopMove, m_ClientGlobal.MainPlayer.GetPos()); } } else if (nEventID == (int)Client.GameEventID.SKILL_FORBIDDENJOYSTICK) { Client.stForbiddenJoystick info = (Client.stForbiddenJoystick)param; Client.IPlayer player = m_ClientGlobal.MainPlayer; if (player == null) { return; } if (info.playerID == player.GetUID()) { //bForbiddenJoystick = info.bFobidden; //if(bForbiddenJoystick) //{ // // Log.LogGroup( "ZDY" , "摇杆禁用" ); //} //else //{ // // Log.LogGroup( "ZDY" , "摇杆回复" ); //} } } }
//------------------------------------------------------------------------------------------------------- /** * @brief 按一定方向移动 * @param */ public void MoveByDir(float fAngle, bool bSyncPath = true, bool bSync = true) { if (m_bSkillLongPress) { //点击摇杆 解除长按 stSkillLongPress longPress = new stSkillLongPress(); longPress.bLongPress = false; EventEngine.Instance().DispatchEvent((int)GameEventID.SKLL_LONGPRESS, longPress); } //不在禁用摇杆 //if(bForbiddenJoystick) //{ // return; //} IMapSystem mapSys = m_ClientGlobal.GetMapSystem(); if (mapSys != null) { if (m_Host == null) { return; } // 发起移动投票,询问其它系统,是否可以移动 stVoteEntityMove entitymove; entitymove.uid = m_Host.GetUID(); if (!Engine.Utility.EventEngine.Instance().DispatchVote((int)GameVoteEventID.ENTITYSYSTEM_VOTE_ENTITYMOVE, entitymove)) { // 其它系统不允许移动 Engine.Utility.Log.LogGroup("ZDY", " *********************DispatchVote((int)GameVoteEventID.ENTITYSYSTEM_VOTE_ENTITYMOVE, 其它系统不允许移动"); return; } else { Engine.Utility.Log.LogGroup("XXF", " *********************MoveByDir, 允许移动"); } // 移动 向前预测一定距离,寻路 Vector3 pos = m_Host.GetPos(); Vector3 target = new Vector3(); if (!FindLastTarget(pos, fAngle, out target)) { //Engine.Utility.Log.Trace("摇杆方向有障碍,停止移动!"); m_bJoystick = false; m_Host.SendMessage(EntityMessage.EntityCommand_SetRotateY, fAngle); m_Host.SendMessage(EntityMessage.EntityCommand_StopMove, pos); return; } // 移动 只同步当前位置 MoveToTarget(target, null, bSyncPath, bSync); } }
public void OnUseSkill(uint uSkillID) { if (uSkillID == 0) { return; } IControllerSystem cs = ClientGlobal.Instance().GetControllerSystem(); if (cs == null) { Engine.Utility.Log.Error("ExecuteCmd: ControllerSystem is null"); return; } ICombatRobot combot = cs.GetCombatRobot(); if (combot.Status == CombatRobotStatus.RUNNING) { //解除普攻连击 stSkillLongPress longPress = new stSkillLongPress(); longPress.bLongPress = false; EventEngine.Instance().DispatchEvent((int)GameEventID.SKLL_LONGPRESS, longPress); combot.InsertSkill(uSkillID); return; } bool canuse = EventEngine.Instance().DispatchVote((int)GameVoteEventID.SKILL_CANUSE, uSkillID); if (canuse) { table.SkillDatabase db = GameTableManager.Instance.GetTableItem <table.SkillDatabase>(uSkillID, 1); if (db != null) { IControllerSystem ctrl = ClientGlobal.Instance().GetControllerSystem(); if (ctrl != null) { MessageCode code = MessageCode.MessageCode_ButtonX; ctrl.OnMessage(code, uSkillID); } } } else { IPlayer mainPlayer = MainPlayerHelper.GetMainPlayer(); if (mainPlayer != null) { ISkillPart skillPart = mainPlayer.GetPart(EntityPart.Skill) as ISkillPart; if (skillPart != null) { Client.stTipsEvent en = skillPart.GetSkillNotUseReason(uSkillID); if (en.errorID != 0) { EventEngine.Instance().DispatchEvent((int)GameEventID.TIPS_EVENT, en); } } } AddSkillCommond(uSkillID); } }
private void OnThumbDrag(GameObject obj, Vector2 delta) { if (m_bIgnore) { return; } if (MainPlayerHelper.GetMainPlayer().IsDead()) { return; } Vector2 touchPos = UICamera.currentTouch.pos; float fDis = Vector2.Distance(m_LastJoystickBgScreenPos, touchPos); if (m_bJoystickStable) { Vector2 touchDelta2 = touchPos - m_LastJoystickBgScreenPos; m_sprite_joystickThumb.transform.position = UICamera.currentCamera.ScreenToWorldPoint(new Vector3(touchPos.x, touchPos.y, 0)); if (fDis < m_fMaxDis) { Vector2 pos = m_LastJoystickBgScreenPos + touchDelta2; Vector3 pp = UICamera.currentCamera.ScreenToWorldPoint(new Vector3(pos.x, pos.y, 0)); m_sprite_joystickThumb.transform.position = new Vector3(pp.x, pp.y, 0); } else { Vector2 dt = touchDelta2.normalized; Vector2 pos = m_LastJoystickBgScreenPos + dt * m_fMaxDis; Vector3 pp = UICamera.currentCamera.ScreenToWorldPoint(new Vector3(pos.x, pos.y, 0)); m_sprite_joystickThumb.transform.position = new Vector3(pp.x, pp.y, 0); } } else { m_sprite_joystickThumb.transform.position = UICamera.currentCamera.ScreenToWorldPoint(new Vector3(touchPos.x, touchPos.y, 0)); if (fDis > m_fMaxDis) { Vector2 dir = (new Vector2(touchPos.x, touchPos.y) - m_LastJoystickBgScreenPos).normalized; Vector2 pos = dir * (fDis - m_fMaxDis); m_LastJoystickBgScreenPos += pos; m_sprite_joystickBg.transform.position = UICamera.currentCamera.ScreenToWorldPoint(new Vector3(m_LastJoystickBgScreenPos.x, m_LastJoystickBgScreenPos.y, 0)); } } m_LastTouchPos = touchPos; //if (m_bSkillLongPress) //{ // return; //} if (fDis < 10) { return; } Vector2 touchDelta = touchPos - m_LastJoystickBgScreenPos; // 根据 touchDelta 计算角度 垂直向上 float fAngle = Vector2.Angle(Vector2.up, touchDelta); if (touchDelta.x < 0) { fAngle = -fAngle; } fAngle += CameraFollow.Instance.YAngle; Client.IControllerSystem controllerSys = Client.ClientGlobal.Instance().GetControllerSystem(); if (controllerSys != null) { Client.IController ctrl = controllerSys.GetActiveCtrl(); if (ctrl != null) { ctrl.OnMessage(Engine.MessageCode.MessageCode_JoystickChanging, (object)fAngle); if (m_bSkillLongPress) { //点击摇杆 解除长按 Controller.CmdManager.Instance().Clear(); stSkillLongPress longPress = new stSkillLongPress(); longPress.bLongPress = false; EventEngine.Instance().DispatchEvent((int)GameEventID.SKLL_LONGPRESS, longPress); } } } }
void OnEvent(int eventID, object param) { switch ((Client.GameEventID)eventID) { case GameEventID.ENTITYSYSTEM_TARGETCHANGE: { OnTargetChange(param); } break; case GameEventID.SKILLSYSYTEM_TAB: { if (m_effctSelect != null) { Engine.RareEngine.Instance().GetRenderSystem().RemoveEffect(m_effctSelect); m_effctSelect = null; } string strSelectEffct = "effect/UI/[email protected]"; strSelectEffct = strSelectEffct.ToLower(); Engine.RareEngine.Instance().GetRenderSystem().CreateEffect(ref strSelectEffct, ref m_effctSelect, null); InitEffct(m_effctSelect); SetSelectTargetEffectPos(); } break; case GameEventID.SKILLSYSTEM_SHOWDAMAGE: { Client.IEntity entity = ClientGlobal.Instance().GetControllerSystem().GetActiveCtrl().GetCurTarget(); if (entity != null) { } } break; case GameEventID.ENTITYSYSTEM_HPUPDATE: { UpdateProprty(param); } break; case GameEventID.ENTITYSYSTEM_MPUPDATE: { UpdateProprty(param); } break; case GameEventID.ENTITYSYSTEM_PROPUPDATE: { UpdateProprty(param); } break; case GameEventID.PLAYER_FIGHTPOWER_REFRESH: { RefreshFightPower(param); } break; case GameEventID.SKILL_SHOWPETSKILL: { stShowPetSkill st = (stShowPetSkill)param; m_bShowPetQuick = st.bShow; // ShowPetQuickInfo(st.bShow); } break; case Client.GameEventID.CAMP_ADDCOLLECTNPC: { UpdateFBPickBtn(param); } break; case Client.GameEventID.ROBOTCOMBAT_STOP: { if (m_spriteEx_btnAutoFight != null) { m_spriteEx_btnAutoFight.ChangeSprite(1); } } break; case Client.GameEventID.ROBOTCOMBAT_START: { if (m_spriteEx_btnAutoFight != null) { m_spriteEx_btnAutoFight.ChangeSprite(2); } } break; case GameEventID.MAINPANEL_SHOWREDWARING: { stShowMainPanelRedPoint st = (stShowMainPanelRedPoint)param; WarningDirection direction = (WarningDirection)st.direction; WarningEnum model = (WarningEnum)st.modelID; bool bShow = (bool)st.bShowRed; GameObject redPointObj = null; switch ((WarningEnum)st.modelID) { case WarningEnum.LearnSkill: redPointObj = m_sprite_learnskill_warning.gameObject; break; case WarningEnum.SEVENDAY: redPointObj = m_sprite_seven_warning.gameObject; break; case WarningEnum.WELFARE: redPointObj = m_sprite_welfare_warning.gameObject; break; case WarningEnum.TITLE_NEWTITLE: redPointObj = m_sprite_prop_warning.gameObject; break; case WarningEnum.Question: redPointObj = m_sprite_question_warning.gameObject; break; case WarningEnum.Mail: redPointObj = m_sprite_friend_warning.gameObject; break; case WarningEnum.Noble: redPointObj = m_sprite_mall_warning.gameObject; m_sprite_Noble_warning.gameObject.SetActive(bShow); break; case WarningEnum.Clan: redPointObj = m_sprite_clan_warning.gameObject; break; case WarningEnum.Achievement: redPointObj = m_sprite_achievement_warning.gameObject; break; case WarningEnum.Daily: redPointObj = m_sprite_daily_warning.gameObject; break; case WarningEnum.GodWeapen: redPointObj = m_sprite_godweapen_warning.gameObject; break; case WarningEnum.OpenServer: redPointObj = m_sprite_openserver_warning.gameObject; break; case WarningEnum.FirstRechargeReward: redPointObj = m_sprite_FirstRecharge_warning.gameObject; break; case WarningEnum.Activity: redPointObj = m_sprite_activity_warning.gameObject; break; case WarningEnum.Forging: redPointObj = m_sprite_forging_warning.gameObject; break; case WarningEnum.Accumulative: redPointObj = m_sprite_Accumulative_warning.gameObject; break; case WarningEnum.Ride: redPointObj = m_sprite_ride_warning.gameObject; break; case WarningEnum.HttpDown: redPointObj = m_sprite_HttpDown_warning.gameObject; break; } if (redPointObj != null) { redPointObj.SetActive(bShow); } if (direction == WarningDirection.None) { //不涉及到三角标和头像红点提示的系统return; return; } if (!m_lstWarnningSystem.ContainsKey(direction)) { m_lstWarnningSystem.Add(direction, new List <WarningEnum>()); } if (bShow) { if (!m_lstWarnningSystem[direction].Contains(model)) { m_lstWarnningSystem[direction].Add(model); } } else { if (m_lstWarnningSystem[direction].Contains(model)) { m_lstWarnningSystem[direction].Remove(model); } } if (direction == WarningDirection.Right) { bool showRed = m_lstWarnningSystem[direction].Count > 0; m_sprite_leftbtn_warning.gameObject.SetActive(showRed); } else if (direction == WarningDirection.Left) { m_sprite_face_warning.gameObject.SetActive(m_lstWarnningSystem[direction].Count > 0); } } break; //摇杆 case GameEventID.ENTITYSYSTEM_LEAVEMAP: { ResetJoystick(); //小地图 ReleaseTexture(); } break; case GameEventID.SKLL_LONGPRESS: { stSkillLongPress press = (stSkillLongPress)param; //if (press.userID == MainPlayerHelper.GetPlayerUID()) { m_bSkillLongPress = press.bLongPress; } } break; case GameEventID.ENTITYSYSTEM_RELIVE: { stEntityRelive ed = (stEntityRelive)param; if (ed.uid == MainPlayerHelper.GetPlayerUID()) { ResetJoystick(); //清采集按钮 if (DataManager.Manager <ComBatCopyDataManager>().EnterCopyID != 0) { stCampCollectNpc npc = new stCampCollectNpc { enter = false, npcid = 0 }; UpdateFBPickBtn(npc); } } } break; case GameEventID.ENTITYSYSTEM_NEWNAME: { Client.stNewName name = (Client.stNewName)param; UserData.CurrentRole.name = name.newName; m_label_mainroleName.text = name.newName; } break; case GameEventID.EJOYSTICKSTABLE: { if (param != null) { m_bJoystickStable = (bool)param; } SetMainCollider(); } break; case GameEventID.REFRESHTRANSMITPUSHMSGSTATUS: { RefreshBtns(); } break; case GameEventID.SYSTEM_GAME_READY: { ControlMainBtnParticle(m_sprite_FanLi_warning.parent.transform, true); //ControlMainBtnParticle(m_sprite_FirstRecharge_warning.parent.transform, true); //ControlMainBtnParticle(m_sprite_activity_warning.parent.transform, true); //ControlMainBtnParticle(m_sprite_Noble_warning.parent.transform, true); //ControlMainBtnParticle(m_sprite_Accumulative_warning.parent.transform, true); } break; default: break; } }