void OnToggleStart() { if (!m_bOpening) { m_Tween.Play(!m_bFunctionOpen); m_bOpening = true; if (FunctionButtonLogic.Instance() != null) { FunctionButtonLogic.Instance().ShowNewServerActivityEffect(m_bFunctionOpen); } if (SkillBarLogic.Instance() != null) { SkillBarLogic.Instance().ShowSkillChangeStateEffect(m_bFunctionOpen); } if (m_nNewPlayerGuideIndex == 17 || m_nNewPlayerGuideIndex == 19 || m_nNewPlayerGuideIndex == 21 || m_nNewPlayerGuideIndex == 23) { NewPlayerGuide(m_nNewPlayerGuideIndex + 1); } else if (m_nNewPlayerGuideIndex == 8) { NewPlayerGuide(11); } } }
public override void Start() { base.Start(); // XP教学特殊 if (SkillBarLogic.Instance() != null) { if (m_nIdx == 1) { SkillBarLogic.Instance().NewPlayerGuide(1); base.Finish(); } else if (m_nIdx == 8) { SkillBarLogic.Instance().NewPlayerGuide(8); base.Finish(); } else { Messenger.AddListener(MessengerConst.OnNewPlayerGuideClose, OnNewPlayerGuideClose); SkillBarLogic.Instance().NewPlayerGuide(m_nIdx); } } else { base.Finish(); } }
// 技能按钮 static void SkillBarUI(int nIndex) { if (SkillBarLogic.Instance()) { SkillBarLogic.Instance().NewPlayerGuide(nIndex); } }
void Update() { if (m_bShow) { if (m_firstShowTime > m_continueShowTime) { m_firstShowTime = 0; if (SkillBarLogic.Instance() != null) { SkillBarLogic.Instance().UpdateSkillBarInfo(); } UIManager.CloseUI(UIInfo.NewItemGetRoot); m_bShow = false; if (OpenServer.Instance()) { OpenServer.Instance().onClickOpenServer(); } UIManager.CloseUI(UIInfo.OpenServer); } else { m_firstShowTime += Time.deltaTime; } } }
public void NewPlayerGuide(int nIndex) { m_NewPlayerStep = nIndex; switch (nIndex) { case 1: if (SkillBarLogic.Instance() != null) { SkillBarLogic.Instance().ShowAndHide(false); } NewPlayerGuidLogic.OpenWindow_Circle(gameObject, 224, StrDictionary.GetClientDictionaryString("#{10293}"), "center", (int)NewPlayerGuidLogic.MotionType.FromL2R, true, true, true, null, null, false); GameManager.gameManager.SoundManager.PlaySoundEffect(226); break; // 取消坐骑冲锋摇杆教学 // case 2: // NewPlayerGuidLogic.OpenWindow_Circle(gameObject, 224, StrDictionary.GetClientDictionaryString("#{10299}"), "right", 0, true); // GameManager.gameManager.SoundManager.PlaySoundEffect(232); // break; case 3: //无需处理 break; default: break; } }
void OnDisable() { if (SkillBarLogic.Instance() != null) { SkillBarLogic.Instance().ShowSkillChangeStateEffect(true); } }
public override void Execute(UnityOSC.OSCPacket packet) { if (SkillBarLogic.Instance() != null) { SkillBarLogic.Instance().SwitchTarget(); } }
void OnEnable() { if (SkillBarLogic.Instance() != null) { SkillBarLogic.Instance().ShowSkillChangeStateEffect(false); } }
void OnDrag(Vector2 delta) { //m_SkillBarSwitch.Drag(delta); m_Turntable.Drag(delta); if (SkillBarLogic.Instance() && SkillBarLogic.Instance().NewPlayerGuide_Step == 4) { NewPlayerGuidLogic.CloseWindow(); SkillBarLogic.Instance().NewPlayerGuide_Step = -1; GameManager.gameManager.PlayerDataPool.ForthSkillFlag = false; } }
void OnClickOK() { UIManager.CloseUI(UIInfo.StoryCopySceneInfoRoot); GameManager.gameManager.PlayerDataPool.JuQingCopySceneData.ReqOpenStoryCopyScene(m_nStoryCopySceneID); if (m_nStoryCopySceneID == 0 && SkillBarLogic.Instance() != null) { if (!GameManager.gameManager.PlayerDataPool.JuQingCopySceneData.IsPass(0)) { SkillBarLogic.Instance().HideTransformButtonWithLock(); } } }
public void SwitchAllWhenPopUIShow(bool isShow) { if (MissionDialogAndLeftTabsLogic.Instance()) { MissionDialogAndLeftTabsLogic.Instance().PlayTween(!isShow); } if (TargetFrameLogic.Instance()) { TargetFrameLogic.Instance().PlayTween(!isShow); } if (FunctionButtonLogic.Instance()) { FunctionButtonLogic.Instance().PlayTween(!isShow); } if (ExpLogic.Instance()) { ExpLogic.Instance().PlayTween(!isShow); } if (ChatFrameLogic.Instance()) { ChatFrameLogic.Instance().PlayTween(!isShow); } if (SkillBarLogic.Instance()) { SkillBarLogic.Instance().PlayTween(!isShow); } if (PlayerHitsLogic.Instance()) { PlayerHitsLogic.Instance().PlayTween(!isShow); } if (RechargeBarLogic.Instance()) { RechargeBarLogic.Instance().PlayTween(!isShow); } if (!isShow) { if (JoyStickLogic.Instance()) { JoyStickLogic.Instance().CloseWindow(); } } else { if (JoyStickLogic.Instance()) { JoyStickLogic.Instance().OpenWindow(); } } }
void Check_NewPlayerGuide() { if (SkillBarLogic.Instance() != null && SkillBarLogic.Instance().NewPlayerGuide_Step == 3) { SkillBarLogic.Instance().NewPlayerGuide_Step = 0; NewPlayerGuide(1); } if (SkillBarLogic.Instance() != null && SkillBarLogic.Instance().NewPlayerGuide_Step == 5) { SkillBarLogic.Instance().NewPlayerGuide_Step = 0; NewPlayerGuidLogic.CloseWindow(); } }
public uint Execute(PacketDistributed ipacket) { GC_SKILL_STUDY packet = (GC_SKILL_STUDY )ipacket; if (null == packet) { return((uint)PACKET_EXE.PACKET_EXE_ERROR); } //enter your logic Obj_MainPlayer _mainPlayer = Singleton <ObjManager> .GetInstance().MainPlayer; if (_mainPlayer) { if (!packet.HasAttachSkillId) { _mainPlayer.StudySkillOpt(packet.SkillId, packet.Skillindex); } else { _mainPlayer.StudySkillOpt(packet.SkillId, packet.Skillindex, packet.AttachSkillId, packet.AttachSkillIndex); } } if (SkillLevelUpRoot.Instance()) { SkillLevelUpRoot.Instance().UpdateSkillInfo(); if (SkillLevelUpRoot.Instance().DelUpdateSkillMenu != null) { SkillLevelUpRoot.Instance().DelUpdateSkillMenu(); } } if (GUIData.delMasterDataUpdate != null) { GUIData.delMasterDataUpdate(); } //新手引导-突刺第一步 for (int i = 0; i < GlobeVar.SKILL_GUIDE_START_IDS.Length; i++) { if (GlobeVar.SKILL_GUIDE_START_IDS[i] == packet.SkillId && GameManager.gameManager.RunningScene == (int)Games.GlobeDefine.GameDefine_Globe.SCENE_DEFINE.SCENE_FB_CABALINTRO) { SkillBarLogic.Instance().NewPlayerGuide(3); break; } } return((uint)PACKET_EXE.PACKET_EXE_CONTINUE); }
public void ComboNewPlayerGuideOver() { if (NewPlayerGuide_Step == 1) { if (GameManager.gameManager.RunningScene == (int)Games.GlobeDefine.GameDefine_Globe.SCENE_DEFINE.SCENE_FB_CABALINTRO) { m_NewPlayerGuide_Step = 0; if (SkillBarLogic.Instance() != null) { SkillBarLogic.Instance().NewPlayerGuide(5); } } } }
/// <summary> /// 动画完成 /// </summary> public void OnOverAnimation() { CameraManager.Instance.CameraCullingMask(Color.black, 0); if (JtddSceneControl.Instance() != null) { JtddSceneControl.Instance().ShowSceneObject("SceneModel/Suidao"); } if (BackCamerControll.Instance() != null) { BackCamerControll.Instance().InitBlackScreenTween(Color.black, 1.0f, 1.0f, 0.0f); BackCamerControll.Instance().PlayBlackScreenTween(); BackCamerControll.Instance().SetAutoClose(true); } if (Singleton <ObjManager> .GetInstance() != null) { Singleton <ObjManager> .GetInstance().CreateMainPlayer(); } ProcessInput.IsProcessInput = true; if (null != GameManager.gameManager.SceneLogic) { GameManager.gameManager.SceneLogic.CharacterDisplayFilter = Games.Scene.SceneLogic.ECharacterDisplayFilter.ShowAll; } Time.timeScale = 1; if (PlayerFrameLogic.Instance() != null) { PlayerFrameLogic.Instance().HideHPAndMPText(); } if (SkillBarLogic.Instance() != null) { SkillBarLogic.Instance().HideTransformButtonInDemo(); } GameManager.gameManager.SoundManager.StopSoundEffect(210); GameManager.gameManager.SoundManager.StopSoundEffect(211); GameManager.gameManager.SoundManager.StopSoundEffect(212); GameManager.gameManager.SoundManager.StopSoundEffect(213); GameManager.gameManager.SoundManager.PlayBGMusic(248, 0.5f, 0.5f); //删除该物体 Destroy(this.gameObject); Resources.UnloadUnusedAssets(); GC.Collect(); }
private bool CheckXpSkill(Tab_SkillBase tabSkillBase) { //玩家已经点击过了变身按钮 tween正在进行 if ((tabSkillBase.SkillClass & (int)SKILLCLASS.XP) != 0) { if (SkillBarLogic.Instance() != null) { if (SkillBarLogic.Instance().m_isXpBtnOpen) { return(false); } } } return(true); }
void OnClickButton() { UIManager.CloseUI(UIInfo.PicGuideRoot); if (m_NewPlayerGuideIndex == 0) { m_NewPlayerGuideIndex = GlobeVar.INVALID_ID; if (SkillBarLogic.Instance() != null) { SkillBarLogic.Instance().CrashBtnIntroGuide = true; SkillBarLogic.Instance().m_CrashBtn.SetActive(true); SkillBarLogic.Instance().NewPlayerGuide(6); } } }
public TransformController(SkillBarLogic root) { m_TransStep = TransStep.None; m_SkillBarLogic = root; // m_BeginDataPVE = new TransformerBeginData(); // m_BeginDataPVE.m_vSpriteBeginPos_Local = root.m_SpritePVE.transform.localPosition; // m_BeginDataPVE.m_vBeginPos_Local = root.m_PVEBtn.transform.localPosition; // m_BeginDataPVE.m_vAnchorPos_Local = root.m_PVEBtn.transform.parent.localPosition; // m_BeginDataPVE.m_vLblPos_Local = root.m_LblPvE.transform.localPosition; // m_BeginDataPVE.m_nBeginWidth = root.m_SpritePVEBG.width; // // m_BeginDataPVP = new TransformerBeginData(); // m_BeginDataPVP.m_vSpriteBeginPos_Local = root.m_SpritePVP.transform.localPosition; // m_BeginDataPVP.m_vBeginPos_Local = root.m_PVPBtn.transform.localPosition; // m_BeginDataPVP.m_vAnchorPos_Local = root.m_PVPBtn.transform.parent.localPosition; // m_BeginDataPVP.m_vLblPos_Local = root.m_LblPvP.transform.localPosition; // m_BeginDataPVP.m_nBeginWidth = root.m_SpritePVPBG.width; m_listPVEWidgetData = new List <WidgetData>(); m_listPVPWidgetData = new List <WidgetData>(); //PVE m_listPVEWidgetData.Add(GenWidgetDataFromObj(root.m_PVEBtn.transform.parent.gameObject)); m_listPVEWidgetData.Add(GenWidgetDataFromObj(root.m_PVEBtn.gameObject)); for (int i = 0; i < root.m_PVEBtn.transform.childCount; i++) { GameObject obj = root.m_PVEBtn.transform.GetChild(i).gameObject; WidgetData wd = GenWidgetDataFromObj(obj); if (wd != null) { m_listPVEWidgetData.Add(wd); } } //PVP m_listPVEWidgetData.Add(GenWidgetDataFromObj(root.m_PVPBtn.transform.parent.gameObject)); m_listPVPWidgetData.Add(GenWidgetDataFromObj(root.m_PVPBtn.gameObject)); for (int i = 0; i < root.m_PVPBtn.transform.childCount; i++) { GameObject obj = root.m_PVPBtn.transform.GetChild(i).gameObject; WidgetData wd = GenWidgetDataFromObj(obj); if (wd != null) { m_listPVPWidgetData.Add(wd); } } }
public void ComboNewPlayerGuideAutoOver() { if (NewPlayerGuide_Step == 1) { if (GameManager.gameManager.RunningScene == (int)Games.GlobeDefine.GameDefine_Globe.SCENE_DEFINE.SCENE_FB_CABALINTRO) { if (SkillBarLogic.Instance() != null) { SkillBarLogic.Instance().UnlockSkillAtForFTE(1); SkillBarLogic.Instance().UnlockSkillAtForFTE(2); SkillBarLogic.Instance().UnlockSkillAtForFTE(3); NewPlayerGuidLogic.txtFteIndex = 1; } } } }
//void InitXPEnergySlot() //{ // CircleEnergySlotLogic.CircleEnergyInfo energyInfo = new CircleEnergySlotLogic.CircleEnergyInfo(); // energyInfo.zeroSpriteFill = 0; // energyInfo.maxSpriteFill = 1; // energyInfo.zeroEffectRotation = 10.0f; // energyInfo.maxEffectRotation = -125.0f; // energyInfo.deleEnergyFull = PlayXPEffect; // m_SkillXPEnergy.InitInfo(energyInfo); //} public void ChangeXPEnergy(int nValue, int maxXP) { if (maxXP <= 0 || nValue < 0) { return; } if (SkillBarLogic.Instance() != null) { SkillBarLogic.Instance().ChangeXpValueBtn(nValue, maxXP); } int nXPPercent = 0; nXPPercent = (int)(((float)nValue / (float)maxXP) * 100); if (SkillBarLogic.Instance() != null) { SkillBarLogic.Instance().UpdateXpBtnState(nXPPercent); } // int nIndex = 0; // // //小于最小变身值 // if (nXPPercent < GlobeVar.XP_CHNAGE_MODE_1) // { // //一个也不显示 // nIndex = 0; // }//1变 // else if (nXPPercent >= GlobeVar.XP_CHNAGE_MODE_1 && nXPPercent < GlobeVar.XP_CHANGE_MODE_2) // { // nIndex = 1; // }//2变 // else if(nXPPercent >= GlobeVar.XP_CHANGE_MODE_2 && nXPPercent < GlobeVar.XP_CHANGE_MODE_3) // { // nIndex = 2; // }//3变 // else if (nXPPercent >= GlobeVar.XP_CHANGE_MODE_3) // { // nIndex = 3; // } // if (SkillBarLogic.Instance() != null) // { // SkillBarLogic.Instance().PlayXPActiveEffect(nIndex); // } }
/// <summary> /// 按下/抬起响应 /// </summary> /// <param name='bPressed'> /// 是否被按下 /// </param> void OnPress(bool bPressed) { if (!ProcessInput.IsProcessInput) { return; } #if UNITY_EDITOR if (m_NewPlayerStep == 1 && NewPlayerGuidLogic.Instance() != null && NewPlayerGuidLogic.Instance().gameObject.activeInHierarchy) { m_NewPlayerStep = 0; GameManager.gameManager.SoundManager.StopSoundEffect(226); if (SkillBarLogic.Instance() != null) { SkillBarLogic.Instance().NewPlayerGuide(2); } } if (m_NewPlayerStep == 2) { m_NewPlayerStep = 0; //GameManager.gameManager.SoundManager.StopSoundEffect(232); NewPlayerGuidLogic.CloseWindow(); } if (m_NewPlayerStep == 3) { m_NewPlayerStep = 0; //GameManager.gameManager.SoundManager.StopSoundEffect(232); NewPlayerGuidLogic.CloseWindow(); } if (!Singleton <ObjManager> .GetInstance().MainPlayer.IsDie() && !UIManager.IsSubUIShow()) { if (!Singleton <ObjManager> .GetInstance().MainPlayer.BaseAttr.Die) { if (bPressed) { // 重置移动后事件 if (Singleton <ObjManager> .GetInstance().MainPlayer) { Singleton <ObjManager> .GetInstance().MainPlayer.MoveOverEvent.Reset(); } // 记录鼠标位置 m_MouseBuffer = Input.mousePosition; // 拖动时重设精灵透明度 m_JoyStickSprite.alpha = 1.0f; m_BackGround1.alpha = 1.0f; m_BackGround2.alpha = 1.0f; m_BackGround1.gameObject.transform.localScale = new Vector3(1.2f, 1.2f, 1.0f); if (null != m_BackGround1.gameObject.GetComponent <Spin>()) { m_BackGround1.gameObject.GetComponent <Spin>().enabled = true; } // 重置Tween动画 TweenPosition nTween = gameObject.GetComponent <TweenPosition>(); if (null != nTween) { nTween.from = gameObject.transform.localPosition; nTween.Reset(); } } else { // 恢复摇杆精灵透明度 m_JoyStickSprite.alpha = 0.5f; m_BackGround1.alpha = 0.5f; m_BackGround2.alpha = 0.5f; m_BackGround1.gameObject.transform.localScale = new Vector3(1.0f, 1.0f, 1.0f); if (null != m_BackGround1.gameObject.GetComponent <Spin>()) { m_BackGround1.gameObject.GetComponent <Spin>().enabled = false; } // 发送摇杆状态-复位 玩家不再移动 m_ProcessInput.ResetStickState(); // 播放Tween动画摇杆回归 TweenPosition nTween = gameObject.GetComponent <TweenPosition>(); if (null != nTween) { nTween.from = gameObject.transform.localPosition; nTween.Play(); } } } } #endif }
public void AfterTweenPosition() { if (m_ItemType == NEWITEMTYPE.TYPE_SKILL) { if (!hasAttachSkill) { if (SkillBarLogic.Instance() != null) { if (GetItemListSkillCount() == 0) { //播放新技能特效 SkillBarLogic.Instance().SkillBtnShowEffect = SkillBarLogic.Instance().ShowSkillButtonEffect; SkillBarLogic.Instance().PlayNewSkillEffect(m_destGameObject); SkillBarLogic.Instance().UpdateSkillBarInfo(); } if (m_NewPlayerGuide_Step != 0) { m_NewPlayerGuide_Step = 0; } } } } else { if (m_ItemType == NEWITEMTYPE.TYPE_MENUBAR || m_ItemType == NEWITEMTYPE.TYPE_FELLOW3DSHOW) { if (MenuBarLogic.Instance() != null) { MenuBarLogic.Instance().InitButtonActive(); } if (PlayerFrameLogic.Instance() != null) { PlayerFrameLogic.Instance().AddRemindNum(); } } else if (m_ItemType == NEWITEMTYPE.TYPE_FUNCTION) { if (FunctionButtonLogic.Instance() != null) { FunctionButtonLogic.Instance().InitButtonActive(); FunctionButtonLogic.Instance().PlayNewButtonEffect(); } } MissionNewPlayerGuide(m_IntParam); } m_ItemTween.enabled = false; //如果有附带技能 if (hasAttachSkill) { NewPlayerGuider(2); } else { m_AttachItemTween.enabled = false; if (m_ItemListBuffer.Count > 0) { InitDataInfo curInfo = m_ItemListBuffer[0]; NewItemGetLogic.Instance().Init(curInfo._spriteName, curInfo._destGameObject, curInfo._type, curInfo._nNewSkillID, curInfo._attachGameObject, curInfo._ItemName, curInfo._strFuncName, curInfo._strDec); m_ItemListBuffer.RemoveAt(0); } else { UIManager.CloseUI(UIInfo.NewItemGetRoot); m_bShow = false; } } }
static void OnLoadItemGetRoot(bool bSuccess, object param) { // 异常 如果资源加载失败 if (bSuccess == false) { InitDataInfo curInfo = param as InitDataInfo; if (curInfo == null) { return; } if (curInfo._type == NEWITEMTYPE.TYPE_SKILL) { if (SkillBarLogic.Instance() != null) { SkillBarLogic.Instance().UpdateSkillBarInfo(); if (GameManager.gameManager.PlayerDataPool.ForthSkillFlag == true) { if (SkillBarLogic.Instance()) { SkillBarLogic.Instance().NewPlayerGuide(4); } } } } else { if (curInfo._type == NEWITEMTYPE.TYPE_MENUBAR || curInfo._type == NEWITEMTYPE.TYPE_FELLOW3DSHOW) { if (MenuBarLogic.Instance() != null) { MenuBarLogic.Instance().InitButtonActive(); } if (PlayerFrameLogic.Instance() != null) { PlayerFrameLogic.Instance().AddRemindNum(); } } else if (curInfo._type == NEWITEMTYPE.TYPE_FUNCTION) { if (FunctionButtonLogic.Instance() != null) { FunctionButtonLogic.Instance().InitButtonActive(); FunctionButtonLogic.Instance().PlayNewButtonEffect(); } } } return; } if (NewItemGetLogic.Instance() != null) { InitDataInfo curInfo = param as InitDataInfo; NewItemGetLogic.Instance().Init(curInfo._spriteName, curInfo._destGameObject, curInfo._type, curInfo._nNewSkillID, curInfo._attachGameObject, curInfo._ItemName, curInfo._strFuncName, curInfo._strDec); if (JoyStickLogic.Instance() != null) { ProcessInput.Instance().ReleaseTouch(); JoyStickLogic.Instance().ReleaseJoyStick(); } } }
//开始使用轻功技能 public void PlayLightSkill(Vector3 dstPos, int nStep) { //首先判断是否为二段跳 //if (IsLightState && m_bIsLightSecondStepState) //{ // m_bIsLightSecondStepActived = true; //} //暂时只支持一段跳 if (nStep != 1) { return; } //判断场景内是否可以使用轻功 Tab_SceneClass sceneClass = TableManager.GetSceneClassByID(GameManager.gameManager.RunningScene, 0); if (null != sceneClass && sceneClass.IsCanUseLight != 1) { return; } Tab_LightSkill lightSkill = TableManager.GetLightSkillByID(nStep, 0); if (null == lightSkill) { return; } //设置开始时间和持续时间 m_fLightStartTime = Time.time; //将目标点的Y进行赋值,由于不考虑落差,所以先按照当前点的y值进行计算 if (null != ObjTransform) { Vector3 targetPos = new Vector3(dstPos.x, ActiveScene.GetTerrainPosition(dstPos).y, dstPos.z); if (BaseAttr.MoveSpeed > 0) { Vector2 vecSrc = new Vector2(ObjTransform.position.x, ObjTransform.position.z); Vector2 vecDst = new Vector2(dstPos.x, dstPos.z); m_fLightLastTime = Vector2.Distance(vecSrc, vecDst) / BaseAttr.MoveSpeed; if (BaseAttr.MoveSpeed > 5.0f) { // 如果客户端因为乘骑,加速等,速度大于5,则按5的速度计算轻功所需时间 m_fLightLastTime = Vector2.Distance(vecSrc, vecDst) / 5.0f; // 轻功一律按照5的速度算 } m_fLightWantHight = 0.1f + (Vector2.Distance(vecSrc, vecDst) / 3f); // 计算轻功最高的高度,防止距离短但是飞的高 if (m_fLightWantHight < 0.1f) { m_fLightWantHight = 0.1f; } if (m_fLightWantHight > 3) { m_fLightWantHight = 3; } } m_fMoveSpeed = BaseAttr.MoveSpeed; if (m_fLightLastTime <= 0 || m_fLightLastTime > 5.0f) { m_fLightLastTime = 5.0f; //否则给默认值5秒,和服务器的最长时间相同 } StartLightSkillMove(lightSkill.AnimId, targetPos); if (ObjType == Games.GlobeDefine.GameDefine_Globe.OBJ_TYPE.OBJ_MAIN_PLAYER && null != SkillBarLogic.Instance()) { //SkillBarLogic.Instance().BeginLightCD(); } } }
public void SkillFinsh() { if (m_nLastSkillId == -1 || m_bIsUsingSkill == false) { return; } //清除数据 m_bIsUsingSkill = false; m_fLastUseSkillTime = 0; m_nLastSkillId = -1; if (m_UsingSkillBaseInfo == null || m_UsingSkillExInfo == null || m_SkillSender == null) { return; } m_SkillSender.EnableMovingRotation(true); if (m_SkillSender.ObjType == Games.GlobeDefine.GameDefine_Globe.OBJ_TYPE.OBJ_MAIN_PLAYER || m_SkillSender.ObjType == Games.GlobeDefine.GameDefine_Globe.OBJ_TYPE.OBJ_OTHER_PLAYER) { Obj_OtherPlayer player = m_SkillSender as Obj_OtherPlayer; if (null != player) { player.UpdateVisualAfterSkill(); } if ((m_UsingSkillBaseInfo.SkillClass & (int)SKILLCLASS.CrashMove) != 0) { Obj_MainPlayer _mainPlayer = (Obj_MainPlayer)player; _mainPlayer.IsFirstUseCrash = false; } } ////XP 阳关三叠 放完 恢复之前的视角 //if ((m_UsingSkillBaseInfo.SkillClass & (int)SKILLCLASS.XP) != 0 || // m_UsingSkillBaseInfo.Id == (int)SKILLBASEID.YGSDID) //{ // CameraController camController = Singleton<ObjManager>.GetInstance().MainPlayer.GetComponent<CameraController>(); // if (camController != null) // { // if (m_OldCameraScan !=-1) // { // camController.m_Scale = m_OldCameraScan; // } // } //} for (int i = 0; i < m_UsingSkillBaseInfo.getIsNeedStopEffectIdCount(); i++) { int nIsNeedStopEffectId = m_UsingSkillBaseInfo.GetIsNeedStopEffectIdbyIndex(i); //如果需要在技能结束的时候 停止对应的特效 则停止 if (nIsNeedStopEffectId != -1) { m_SkillSender.StopEffect(nIsNeedStopEffectId); } } if (m_SkillSender.ObjType == Games.GlobeDefine.GameDefine_Globe.OBJ_TYPE.OBJ_MAIN_PLAYER) { Obj_MainPlayer player = m_SkillSender as Obj_MainPlayer; if (null != player) { player.SyncPosToServer(true); } if ((m_UsingSkillBaseInfo.SkillClass & (int)SKILLCLASS.XP) != 0 && SkillBarLogic.Instance() != null) { //SkillBarLogic.Instance().TransformCon.End(); } if (SkillBarLogic.Instance() != null) { SkillBarLogic.Instance().SetAttackBarCanUseNext(true); } } //清除数据 m_UsingSkillBaseInfo = null; m_UsingSkillExInfo = null; m_SkillSender = null; }
//释放技能 public void UseSkill(int skillId, int senderId, int targetId, string skillname = "") { if (m_bIsUsingSkill) { BreakCurSkill(); } m_fLastUseSkillTime = Time.time; m_SkillSender = Singleton <ObjManager> .GetInstance().FindObjCharacterInScene(senderId); if (m_SkillSender == null) { LogModule.DebugLog("MainPlayer is Null:" + senderId); return; } m_UsingSkillExInfo = TableManager.GetSkillExByID(skillId, 0); if (m_UsingSkillExInfo == null) { LogModule.DebugLog("SkillExinfo is Null: " + skillId); return; } int BaseSkillId = m_UsingSkillExInfo.BaseId; m_UsingSkillBaseInfo = TableManager.GetSkillBaseByID(BaseSkillId, 0); if (m_UsingSkillBaseInfo == null) { LogModule.DebugLog("SkillBaseInfo is Null" + BaseSkillId); return; } if (m_SkillSender.IsMoving)//可以攻击了且在移动 停止移动 { m_SkillSender.StopMove(); } //!!!使用的是旋风则 屏蔽旋转 //if (m_UsingSkillBaseInfo.Id ==(int)SKILLBASEID.XFZBASEID) //{ // m_SkillSender.EnableMovingRotation(false); //} if (m_UsingSkillBaseInfo.Id == (int)SKILLBASEID.RIDE_SKILLID) { GameManager.gameManager.SoundManager.PlaySoundEffect(244); } //如果有目标 朝向目标 Obj_Character _targetObjCharacter = Singleton <ObjManager> .GetInstance().FindObjCharacterInScene(targetId); if (_targetObjCharacter && _targetObjCharacter.ServerID != m_SkillSender.ServerID) { m_SkillSender.FaceTo(_targetObjCharacter.Position); } //如果有目标缓存一下目标位置 TargetData.Clear(); if (_targetObjCharacter != null) { TargetData._targetId = targetId; TargetData._targetPos = _targetObjCharacter.transform.position; TargetData._hasSet = true; } //开始播放动画 PlayAnimation(m_UsingSkillExInfo.SatrtMotionId); m_UsingSkillStartAni = m_UsingSkillExInfo.SatrtMotionId; //子弹播放 int nBulletNum = m_UsingSkillExInfo.getBulletEffectIDCount(); for (int i = 0; i < nBulletNum; i++) { int _nBulletId = m_UsingSkillExInfo.GetBulletEffectIDbyIndex(i); if (_nBulletId != -1) { if (_nBulletId == 93 || _nBulletId == 94 || _nBulletId == 95) //大理子弹 特殊处理下 { m_SkillSender.PlayEffect(_nBulletId); } else { BulletData bulletData = new BulletData(senderId, targetId); m_SkillSender.PlayEffect(_nBulletId, OnLoadBullet, bulletData); } } } //显示技能名字 if (m_UsingSkillBaseInfo.IsShowSkillName == 1 && m_SkillSender.ObjType != Games.GlobeDefine.GameDefine_Globe.OBJ_TYPE.OBJ_OTHER_PLAYER) { if (skillname == "") { if (m_SkillSender.ObjType == Games.GlobeDefine.GameDefine_Globe.OBJ_TYPE.OBJ_MAIN_PLAYER) { m_SkillSender.ShowDamageBoard_SkillName(Games.GlobeDefine.GameDefine_Globe.DAMAGEBOARD_TYPE.SKILL_NAME, m_UsingSkillBaseInfo.Name); } else if (m_SkillSender.ObjType == Games.GlobeDefine.GameDefine_Globe.OBJ_TYPE.OBJ_NPC) { m_SkillSender.ShowDamageBoard_SkillName(Games.GlobeDefine.GameDefine_Globe.DAMAGEBOARD_TYPE.SKILL_NAME_NPC, m_UsingSkillBaseInfo.Name, false); } else { m_SkillSender.ShowDamageBoard_SkillName(Games.GlobeDefine.GameDefine_Globe.DAMAGEBOARD_TYPE.SKILL_NAME, m_UsingSkillBaseInfo.Name, false); } } else { m_SkillSender.ShowDamageBoard_SkillName(Games.GlobeDefine.GameDefine_Globe.DAMAGEBOARD_TYPE.SKILL_NAME, skillname, false); } } //主角的一些的 特殊处理 if (m_SkillSender.ObjType == Games.GlobeDefine.GameDefine_Globe.OBJ_TYPE.OBJ_MAIN_PLAYER) { Obj_MainPlayer _mainPlayer = Singleton <ObjManager> .GetInstance().MainPlayer; if (_mainPlayer) { // 使用XP技能,如果有新手指引就 关掉 if ((m_UsingSkillBaseInfo.SkillClass & (int)SKILLCLASS.XP) != 0 && SkillBarLogic.Instance() && SkillBarLogic.Instance().NewPlayerGuide_Step == 1) { NewPlayerGuidLogic.CloseWindow(); } //当前释放的Xp技能成功了 if ((m_UsingSkillBaseInfo.SkillClass & (int)SKILLCLASS.XP) != 0 && SkillBarLogic.Instance() != null) { SkillBarLogic.Instance().m_isUseSkillClick = true; SkillBarLogic.Instance().OnClickXpShowBtn(); SkillBarLogic.Instance().TransformCon.TakeEffect(); } int nSkillIndx = _mainPlayer.GetSkillIndexById(skillId); int nChangeState = _mainPlayer.GetCurrentChangeState(); if (nSkillIndx >= 0 && nSkillIndx < _mainPlayer.OwnSkillInfo.Length) { //常规技能 if (m_UsingSkillBaseInfo.GetChangeModebyIndex(nChangeState) == 0) { Tab_CoolDownTime _coolDownTime = TableManager.GetCoolDownTimeByID(m_UsingSkillExInfo.CDTimeId, 0); //吟唱技不在这里加CD 吟唱技能生效后才走CD 服务器同步过来 if (_coolDownTime != null && m_UsingSkillBaseInfo.UseType != (int)SKILLUSETYPE.YINCHANG) { _mainPlayer.OwnSkillInfo[nSkillIndx].CDTime = _coolDownTime.CDTime; } //非连续技 增加公共CD int nPublicSkillCDId = (int)SKILLDEFINE.PUBLICCDID; Tab_CoolDownTime _publicCDTime = TableManager.GetCoolDownTimeByID(nPublicSkillCDId, 0); if (_publicCDTime != null && m_UsingSkillBaseInfo.HasPublicCd == 1) { _mainPlayer.SkillPublicTime = _publicCDTime.CDTime; } } } //如果是冲撞技能 if ((m_UsingSkillBaseInfo.SkillClass & (int)SKILLCLASS.CrashMove) != 0) { Tab_CoolDownTime _coolDownTime = TableManager.GetCoolDownTimeByID(m_UsingSkillExInfo.CDTimeId, 0); _mainPlayer.CrashSkillCDTime = _coolDownTime.CDTime; //非连续技 增加公共CD int nPublicSkillCDId = (int)SKILLDEFINE.PUBLICCDID; Tab_CoolDownTime _publicCDTime = TableManager.GetCoolDownTimeByID(nPublicSkillCDId, 0); if (_publicCDTime != null && m_UsingSkillBaseInfo.HasPublicCd == 1) { _mainPlayer.SkillPublicTime = _publicCDTime.CDTime; } } if (CanShowSkillProgress(skillId)) { //如果是吟唱技则 显示引导条 if (m_UsingSkillBaseInfo.UseType == (int)SKILLUSETYPE.YINCHANG) { //吟唱时间为当前动作的长度 float fYinChangTime = m_UsingSkillExInfo.YinChangTime / 1000.0f;//转换成秒 //设置持续时间 if (SkillProgressLogic.Instance() != null) { SkillProgressLogic.Instance().PlaySkillProgress(SkillProgressLogic.ProgressModel.ORDERMODEL, fYinChangTime); } } else if ((m_UsingSkillBaseInfo.SkillClass & (int)SKILLCLASS.DUTIAO) != 0) { //技能长度为当前引导条的长度 float fContiueTime = m_UsingSkillExInfo.SkillContinueTime / 1000.0f;//转换成秒 //设置持续时间 if (SkillProgressLogic.Instance() != null) { SkillProgressLogic.Instance().PlaySkillProgress(SkillProgressLogic.ProgressModel.REVERSEDMODE, fContiueTime); } } } if (m_SkillSender.Controller != null && m_SkillSender.Controller.CombatFlag) { _mainPlayer.AutoComabat = true; } //add by mawenbin //移植天龙3D TT15398 死亡复活*复活点自动寻路过程中释放六脉神剑立马被打断 //清除自动寻路 加个开关限制 if (GameManager.gameManager.PlayerDataPool.IsServerFlagOpen(SERVER_FLAGS_ENUM.FLAG_SKILLBREAKAUTOMOVE)) { if (null != GameManager.gameManager.AutoSearch && GameManager.gameManager.AutoSearch.IsAutoSearching) { GameManager.gameManager.AutoSearch.Stop(); } } } } //npc和主角自身放技能 可以自带震屏效果 if (m_SkillSender.ObjType == Games.GlobeDefine.GameDefine_Globe.OBJ_TYPE.OBJ_MAIN_PLAYER || m_SkillSender.ObjType == Games.GlobeDefine.GameDefine_Globe.OBJ_TYPE.OBJ_NPC) { //摄像机的 操作 CameraOpt(); } //测试用代码 if (m_UsingSkillExInfo.HasRangeWarning == 1 && m_SkillSender.ObjEffectController != null) { m_SkillSender.ObjEffectController.PlaySkillWarningEffect(skillId); } m_nLastSkillId = skillId; m_nLastSendId = senderId; m_nLastTargetId = targetId; m_bIsUsingSkill = true; }
public uint Execute(PacketDistributed ipacket) { GC_UPDATE_NEEDIMPACTINFO packet = (GC_UPDATE_NEEDIMPACTINFO)ipacket; if (null == packet) { return((uint)PACKET_EXE.PACKET_EXE_ERROR); } //enter your logic bool bHasRemoveOP = false; for (int nImpactIndex = 0; nImpactIndex < packet.impactIdCount; nImpactIndex++) { if (packet.GetImpactId(nImpactIndex) == -1) { continue; } //添加 if (nImpactIndex < packet.isAddCount && packet.GetIsAdd(nImpactIndex) == 1) { ClientImpactInfo _impactInfo = new ClientImpactInfo(); _impactInfo.CleanUp(); _impactInfo.ImpactId = packet.GetImpactId(nImpactIndex); if (nImpactIndex < packet.impactLogicIdCount) { _impactInfo.ImpactLogicId = packet.GetImpactLogicId(nImpactIndex); } if (nImpactIndex < packet.isForeverCount) { _impactInfo.IsForever = (packet.GetIsForever(nImpactIndex) == 1 ? true : false); } if (nImpactIndex < packet.remainTimeCount) { _impactInfo.RemainTime = packet.GetRemainTime(nImpactIndex) / 1.0f; } GameManager.gameManager.PlayerDataPool.ClientImpactInfo.Add(_impactInfo); if (_impactInfo.ImpactId == GlobeVar.MOUNTCRASH_IMPACTID) { if (BackCamerControll.Instance() != null) { BackCamerControll.Instance().PlaySceneEffect(434); } } } else //移除 { for (int i = 0; i < GameManager.gameManager.PlayerDataPool.ClientImpactInfo.Count; i++) { if (GameManager.gameManager.PlayerDataPool.ClientImpactInfo[i].ImpactId == packet.GetImpactId(nImpactIndex)) { if (GameManager.gameManager.PlayerDataPool.ClientImpactInfo[i].ImpactId == GlobeVar.MOUNTCRASH_IMPACTID) { if (BackCamerControll.Instance() != null) { BackCamerControll.Instance().StopSceneEffect(434, false); } } if (GameManager.gameManager.PlayerDataPool.ClientImpactInfo[i].ImpactId >= GlobeVar.XP_IMPACT_MIN_ID && GameManager.gameManager.PlayerDataPool.ClientImpactInfo[i].ImpactId <= GlobeVar.XP_IMPACT_MAX_ID) { bHasRemoveOP = true; } ClientImpactInfo _TmpInfo = new ClientImpactInfo(); _TmpInfo.CleanUp(); GameManager.gameManager.PlayerDataPool.ClientImpactInfo[i] = _TmpInfo; } } } } //清除无效的 List <ClientImpactInfo> impactList = new List <ClientImpactInfo>(); for (int i = 0; i < GameManager.gameManager.PlayerDataPool.ClientImpactInfo.Count; ++i) { if (GameManager.gameManager.PlayerDataPool.ClientImpactInfo[i].IsVaild() == false) { impactList.Add(GameManager.gameManager.PlayerDataPool.ClientImpactInfo[i]); } } for (int i = 0; i < impactList.Count; ++i) { GameManager.gameManager.PlayerDataPool.ClientImpactInfo.Remove(impactList[i]); } //更新主角头像图标 if (PlayerFrameLogic.Instance() != null) { PlayerFrameLogic.Instance().UpdateBuffIcon(); } Obj_MainPlayer _mainPlayer = Singleton <ObjManager> .GetInstance().MainPlayer; if (_mainPlayer != null && _mainPlayer.GetCurrentChangeState() != _mainPlayer.CurChangeState) { _mainPlayer.CurChangeState = _mainPlayer.GetCurrentChangeState(); if (SkillBarLogic.Instance() != null) { SkillBarLogic.Instance().OnClickXpClose(); } if ((int)Games.GlobeDefine.GameDefine_Globe.ChangeModeState.CHANGE_2 == _mainPlayer.CurChangeState || (int)Games.GlobeDefine.GameDefine_Globe.ChangeModeState.CHANGE_1 == _mainPlayer.CurChangeState) { Singleton <ObjManager> .GetInstance().ChangeMainPlayer(); } else { if ((int)Games.GlobeDefine.GameDefine_Globe.ChangeModeState.NORMAL == _mainPlayer.CurChangeState) { Singleton <ObjManager> .GetInstance().ChangeMainPlayerToNormal(); } } if (SkillBarLogic.Instance() != null) { SkillBarLogic.Instance().CleanUpSkillBarInfo(); SkillBarLogic.Instance().UpdateSkillBarInfo(); SkillBarLogic.Instance().CleanUpAttackBarInfo(); SkillBarLogic.Instance().SetChangeModeAttackBtn(); SkillBarLogic.Instance().UpdateSkillActiveByChangeState(_mainPlayer.CurChangeState); } } // //当移除了变身之后,需要恢复原先的技能 // if ( bHasRemoveOP && _mainPlayer != null && SkillBarLogic.Instance() // && _mainPlayer.CurChangeState == (int)Games.GlobeDefine.GameDefine_Globe.ChangeModeState.NORMAL) // { // SkillBarLogic.Instance().ShowAfterChangeSkill(false); // SkillBarLogic.Instance().CleanUpSkillBarInfo(); // SkillBarLogic.Instance().SaveNotChangeModeSkillBarInfo(); // SkillBarLogic.Instance().OnClickXpClose(); // } return((uint)PACKET_EXE.PACKET_EXE_CONTINUE); }
public uint Execute(PacketDistributed ipacket) { GC_COPYSCENE_RESULT packet = (GC_COPYSCENE_RESULT )ipacket; if (null == packet) { return((uint)PACKET_EXE.PACKET_EXE_ERROR); } //enter your logic if (packet.Result == 0) { UIManager.ShowUI(UIInfo.FailRoot); } else { VictoryScoreRoot.Clear(); VictoryScoreRoot.m_nResult = packet.Result; VictoryScoreRoot.m_nSceneId = packet.SceneID; VictoryScoreRoot.m_Difficult = packet.Difficult; VictoryScoreRoot.m_nSolo = packet.IsSolo; VictoryScoreRoot.m_nStar = packet.Star; VictoryScoreRoot.m_nScore = packet.Score; VictoryScoreRoot.m_nCarom = packet.Carom; VictoryScoreRoot.m_nTime = packet.Time; VictoryScoreRoot.m_nExp = packet.Exp; VictoryScoreRoot.m_nMoney = packet.Money; VictoryScoreRoot.m_nDrawIndex = packet.DrawIndex; VictoryScoreRoot.m_nDrawIndexTwo = packet.DrawIndexTwo; VictoryScoreRoot.m_nPetExp = packet.PetExp; if (VictoryScoreRoot.m_nStar >= 5) { VictoryScoreRoot.m_FanPaiNumber = 2; } else { VictoryScoreRoot.m_FanPaiNumber = 1; } if (VictoryScoreRoot.m_nStar < 5) { VictoryScoreRoot.m_nDrawIndexTwo = -1; } for (int i = 0; i < packet.RewardTypeCount; i++) { VictoryScoreRoot.addRewardList(packet.GetRewardType(i), packet.GetRewardItemId(i), packet.GetRewardCount(i)); } for (int i = 0; i < packet.DrawTypeCount; i++) { VictoryScoreRoot.addDrawList(packet.GetDrawType(i), packet.GetDrawItemId(i), packet.GetDrawCount(i)); } for (int i = 0; i < packet.UserInSceneCount; i++) { if (packet.GetUserInScene(i) != Games.GlobeDefine.GlobeVar.INVALID_GUID) { VictoryScoreRoot.addUserInScene(packet.GetUserInScene(i)); } } UIManager.ShowUI(UIInfo.VictoryScoreRoot); } if (SkillBarLogic.Instance() != null) { SkillBarLogic.Instance().TransformCon.End(); } return((uint)PACKET_EXE.PACKET_EXE_CONTINUE); }
void UpdateWithTouch() { // 特殊判断 如果新手指引开着 且有屏蔽 防止在设备上按到摇杆 if (m_NewPlayerStep == 0 && NewPlayerGuidLogic.Instance() != null && NewPlayerGuidLogic.Instance().gameObject.activeInHierarchy&& NewPlayerGuidLogic.Instance().IsMaskEnable) { return; } if (m_FingerID == -1) { if (null == UICamera.mainCamera) { return; } for (int i = 0; i < Input.touchCount; i++) { Touch touch = Input.GetTouch(i); Vector3 vecTouchPos = touch.position; Ray rayTouch = UICamera.mainCamera.ScreenPointToRay(vecTouchPos); RaycastHit hitTouch; if (Physics.Raycast(rayTouch, out hitTouch)) { // 如果点中二级界面 拦截 打开二级菜单时摇杆隐藏 取消判断 防止出错 // if (hitTouch.collider.gameObject.tag == "SubUI") // { // return; // } // 点中摇杆 if (hitTouch.collider.gameObject.transform.parent == gameObject.transform.parent) { if (touch.phase == TouchPhase.Began) { if (m_NewPlayerStep == 1 && NewPlayerGuidLogic.Instance() != null && NewPlayerGuidLogic.Instance().gameObject.activeInHierarchy) { m_NewPlayerStep = 0; if (SkillBarLogic.Instance() != null) { SkillBarLogic.Instance().NewPlayerGuide(2); } } if (m_NewPlayerStep == 2) { m_NewPlayerStep = 0; //GameManager.gameManager.SoundManager.StopSoundEffect(232); NewPlayerGuidLogic.CloseWindow(); } if (m_NewPlayerStep == 3) { m_NewPlayerStep = 0; //GameManager.gameManager.SoundManager.StopSoundEffect(232); NewPlayerGuidLogic.CloseWindow(); } // 记录fingerID m_FingerID = touch.fingerId; ProcessInput.Instance().SceneTouchFingerID = -1; //m_JoyStickCamera.GetComponent<UICamera>().JoyStickFingerID = m_FingerID; // 摇杆开始移动 JoyStickStartMove(); #if (UNITY_ANDROID || UNITY_WP8) && !UNITY_EDITOR _differenceX = touch.position.x; _differenceY = touch.position.y; #endif } } } } } else { for (int i = 0; i < Input.touchCount; i++) { Touch touch = Input.GetTouch(i); if (touch.fingerId == m_FingerID && touch.phase == TouchPhase.Moved) { #if (UNITY_ANDROID || UNITY_WP8) && !UNITY_EDITOR JoyStickInMoving(touch.position); #else JoyStickInMoving(touch.deltaPosition); #endif } else if (touch.fingerId == m_FingerID && touch.phase == TouchPhase.Ended) { m_FingerID = -1; //m_JoyStickCamera.GetComponent<UICamera>().JoyStickFingerID = m_FingerID; JoyStickEndMove(); } } } }
public uint Execute(PacketDistributed ipacket) { GC_RET_USE_SKILL packet = (GC_RET_USE_SKILL)ipacket; if (null == packet) { return((uint)PACKET_EXE.PACKET_EXE_ERROR); } //enter your logic int nSkillId = packet.HasFixedSkillId ? packet.FixedSkillId : packet.SkillId; int nSenderId = packet.SenderId; int nTargetID = packet.TargetId; Obj_Character Sender = Singleton <ObjManager> .GetInstance().FindObjCharacterInScene(nSenderId); if (Sender == null) { return((uint)PACKET_EXE.PACKET_EXE_CONTINUE); } if (Sender.SkillCore == null) { return((uint)PACKET_EXE.PACKET_EXE_CONTINUE); } int nFailType = (int)SKILLUSEFAILTYPE.INVALID; if (packet.HasSkillfailType) { nFailType = packet.SkillfailType; } string szSkillName = ""; if (packet.HasSkillname) { szSkillName = packet.Skillname; } if (nFailType == (int)SKILLUSEFAILTYPE.DISTANCE) { if (Sender.ObjType == Games.GlobeDefine.GameDefine_Globe.OBJ_TYPE.OBJ_MAIN_PLAYER) { //服务器认定 距离不够 再往前走点 Obj_Character targetCharacter = Singleton <ObjManager> .GetInstance().FindObjCharacterInScene(nTargetID); if (targetCharacter) { Tab_SkillEx _skillEx = TableManager.GetSkillExByID(nSkillId, 0); if (_skillEx != null) { if (Sender.SkillCore.IsUsingSkill) { Sender.SkillCore.BreakCurSkill(); } Singleton <ObjManager> .GetInstance().MainPlayer.CurUseSkillId = nSkillId; Singleton <ObjManager> .GetInstance().MainPlayer.MoveTo(targetCharacter.Position, targetCharacter.gameObject, _skillEx.Radius - 2.0f); } } } } else { //结婚相关特殊表现 if (nSkillId == GlobeVar.MARRY_SKILL_2) { Sender.SkillCore.BreakCurSkill(); Sender.FaceTo(new UnityEngine.Vector3(13.79419f, 0.9015087f, 30.36249f)); } //结婚相关特殊表现 if (nSkillId == GlobeVar.MARRY_SKILL_1) { Sender.SkillCore.BreakCurSkill(); Sender.FaceTo(new UnityEngine.Vector3(13.79419f, 0.9015087f, 4.068859f)); } if (szSkillName != "") { Sender.SkillCore.UseSkill(nSkillId, nSenderId, nTargetID, szSkillName); } else { Sender.SkillCore.UseSkill(nSkillId, nSenderId, nTargetID); } Tab_SkillEx _skillEx = TableManager.GetSkillExByID(nSkillId, 0); } if (Sender is Obj_MainPlayer) { //if the main player in the state of changing mode int nImpactCount = GameManager.gameManager.PlayerDataPool.ClientImpactInfo.Count; Obj_MainPlayer _mainPlayer = Singleton <ObjManager> .Instance.MainPlayer; Tab_SkillEx _skillEx = TableManager.GetSkillExByID(nSkillId, 0); Tab_SkillBase _skillBase = null; int nSkillIndex = -1; int nChangeState = -1; if (null != _mainPlayer) { for (int i = 0; i < _mainPlayer.OwnSkillInfo.Length; i++) { if (_mainPlayer.OwnSkillInfo[i].SkillId == nSkillId) { nSkillIndex = i; break; } } nChangeState = _mainPlayer.GetCurrentChangeState(); // added by mawenbin // 缓存玩家使用的技能,用于挂机连续技的判定 AI_PlayerCombat aiPlayerCombat = _mainPlayer.GetComponent <AI_PlayerCombat>(); if (null != aiPlayerCombat && Games.GlobeDefine.GameDefine_Globe.OBJ_TYPE.OBJ_MAIN_PLAYER == Sender.ObjType) { aiPlayerCombat.CurUseSkillId = nSkillId; } } if (null != _skillEx) { _skillBase = TableManager.GetSkillBaseByID(_skillEx.BaseId, 0); } if (null != _skillBase) { if (null != SkillBarLogic.Instance()) { //if the skill is xp skill and can put into skillbar if ((_skillBase.SkillClass & (int)SKILLCLASS.AUTOREPEAT) == 0 && (_skillBase.SkillClass & (int)SKILLCLASS.XP) == 0 && (_skillBase.GetChangeModebyIndex(_mainPlayer.CurChangeState) > 0) && (_skillBase.SkillClass & (int)SKILLCLASS.PASSIVITY) == 0) { for (int i = 0; i < SkillBarLogic.Instance().MySkillBarInfo.Length; i++) { if (nSkillId == SkillBarLogic.Instance().MySkillBarInfo[i].CurSkillId) { SkillBarLogic.Instance().MySkillBarInfo[i].nPreSkillId = nSkillId; SkillBarLogic.Instance().MySkillBarInfo[i].fCurrentStartTime = Time.realtimeSinceStartup; SkillBarLogic.Instance().MySkillBarInfo[i].fCurDisabledStartTime = Time.realtimeSinceStartup; SkillBarLogic.Instance().MySkillBarInfo[i].nCurrentCDTime = _skillEx.NextSkillEffectTime / 1000.0f; SkillBarLogic.Instance().MySkillBarInfo[i].fRemainCDTime = _skillEx.NextSkillEffectTime / 1000.0f; SkillBarLogic.Instance().MySkillBarInfo[i].fDisabledRemTime = _skillEx.NextSkillDisabledTime / 1000.0f; SkillBarLogic.Instance().MySkillBarInfo[i].fCurDisabedTime = _skillEx.NextSkillDisabledTime / 1000.0f; SkillBarLogic.Instance().MySkillBarInfo[i].SkillCount++; if (false == GameManager.gameManager.PlayerDataPool.CommonData.GetCommondFlag((int)USER_COMMONFLAG.CF_COMBO_FIRSTUSED)) { if (nSkillId == GlobeVar.SHUANGJIANSHI_SKILL1_COMBO1 || nSkillId == GlobeVar.SHUANGJIANSHI_SKILL1_COMBO2) { SkillBarLogic.Instance().MySkillBarInfo[i].nCurrentCDTime = 10; SkillBarLogic.Instance().MySkillBarInfo[i].fRemainCDTime = 10; } } SkillBarLogic.Instance().SetSkillBarInfoForNext(i, _skillEx.NextContinueSkillId); //第一个连续技能来了,要有提示 if (nSkillIndex != -1 && nSkillIndex == SkillBarLogic.Instance().MySkillBarInfo[i].SkillIndex) { if (null != ComboSkillTipLogic.Instance()) { System.Collections.Generic.List <string> iconList = SkillBarLogic.Instance().GetContinueSkillIcons(_skillBase); ComboSkillTipLogic.Instance().Show(i, iconList.Count, iconList); } } if (null != ComboSkillTipLogic.Instance()) { ComboSkillTipLogic.Instance().SetStep(i, SkillBarLogic.Instance().MySkillBarInfo[i].SkillCount); } if (_skillBase.NextIndex == _skillBase.FirstIndex) { SkillBarLogic.Instance().MySkillBarInfo[i].isCompleted = true; SkillBarLogic.Instance().MySkillBarInfo[i].SkillCount = 0; } break; } } } } //if it is xpSkill and attackSkill if (((_skillBase.SkillClass & (int)SKILLCLASS.AUTOREPEAT) != 0) && _skillBase.GetChangeModebyIndex(_mainPlayer.CurChangeState) >= 0 && SkillBarLogic.Instance()._AttackBarInfo != null) { SkillBarLogic.Instance()._AttackBarInfo.fCurrentStartTime = Time.realtimeSinceStartup; SkillBarLogic.Instance()._AttackBarInfo.fCurDisabledStartTime = Time.realtimeSinceStartup; SkillBarLogic.Instance()._AttackBarInfo.nCurrentCDTime = _skillEx.NextSkillEffectTime; SkillBarLogic.Instance()._AttackBarInfo.fRemainCDTime = _skillEx.NextSkillEffectTime; SkillBarLogic.Instance()._AttackBarInfo.fDisabledRemTime = _skillEx.NextSkillDisabledTime; SkillBarLogic.Instance()._AttackBarInfo.fCurDisabledTime = _skillEx.NextSkillDisabledTime; SkillBarLogic.Instance()._AttackBarInfo.nCurSkillId = _skillEx.NextContinueSkillId; } } } return((uint)PACKET_EXE.PACKET_EXE_CONTINUE); }