public override void Start() { base.Start(); if (m_nTargetID == 0) { CameraManager.Instance.LookPos(m_TargetPos, CameraMoveOver, m_fDuration); } if (m_nTargetID < 0) { if (null != Singleton <ObjManager> .GetInstance().MainPlayer) { CameraManager.Instance.LookTarget(Singleton <ObjManager> .GetInstance().MainPlayer, CameraMoveOver, m_fDuration); } else { Finish(); } } if (m_nTargetID > 0) { Tab_RoleBaseAttr RoleBase = TableManager.GetRoleBaseAttrByID(m_nTargetID, 0); if (null != RoleBase) { Obj_Character targetCharacter = ObjManager.Instance.FindObjCharacterInSceneByName(RoleBase.Name, true, 20); if (null != targetCharacter) { CameraManager.Instance.LookTarget(targetCharacter, CameraMoveOver, m_fDuration); } } } }
/// <summary> /// 添加模型固有特效 /// </summary> public static void AddCharModelEffects(Obj_Character obj, EEffectBindTargetType type = EEffectBindTargetType.TYPE_CHARACTER) { if (obj == null) { LogModule.ErrorLog("AddCharModelEffects called but parameter obj is null!"); return; } if (type == EEffectBindTargetType.TYPE_CHARACTER) { Tab_CharModel table = TableManager.GetCharModelByID(obj.ModelID, 0); if (table != null) { int totalEffectCountOnModel = table.getEffectIdCount(); int tmpValue; for (int i = 0; i < totalEffectCountOnModel; i++) { tmpValue = table.GetEffectIdbyIndex(i); if (tmpValue >= 0) { obj.PlayEffect(tmpValue); } } } } }
public uint Execute(PacketDistributed ipacket) { GC_PLAY_EFFECT packet = (GC_PLAY_EFFECT)ipacket; if (null == packet) { return((uint)PACKET_EXE.PACKET_EXE_ERROR); } Obj_Character _objChar = Singleton <ObjManager> .GetInstance().FindObjCharacterInScene(packet.ObjID); if (null != _objChar) { _objChar.PlayEffect(packet.EffectID); if (packet.HasStartMotionID && packet.StartMotionID != GlobeVar.INVALID_ID && packet.StartMotionID == (int)CharacterDefine.CharacterAnimId.DizzyId && _objChar.AnimLogic != null) { _objChar.InDizzy = true; _objChar.CurObjAnimState = Games.GlobeDefine.GameDefine_Globe.OBJ_ANIMSTATE.STATE_NORMOR; } //是否需要播放附加动作 if (packet.HasStartMotionID && _objChar.AnimLogic != null) { _objChar.AnimLogic.Stop(); _objChar.AnimLogic.Play(packet.StartMotionID); } } return((uint)PACKET_EXE.PACKET_EXE_CONTINUE); }
public uint Execute(PacketDistributed ipacket) { GC_REMOVEEFFECT packet = (GC_REMOVEEFFECT)ipacket; if (null == packet) { return((uint)PACKET_EXE.PACKET_EXE_ERROR); } //enter your logic Obj_Character _objChar = Singleton <ObjManager> .GetInstance().FindObjCharacterInScene(packet.ObjId); if (_objChar) { if (_objChar.ObjEffectController != null) { _objChar.ObjEffectController.StopEffect(packet.EffectId); } if (packet.HasStartMotionID && packet.StartMotionID != GlobeVar.INVALID_ID && packet.StartMotionID == (int)CharacterDefine.CharacterAnimId.DizzyId && _objChar.AnimLogic != null) { _objChar.InDizzy = false; _objChar.AnimLogic.Stop(); } } return((uint)PACKET_EXE.PACKET_EXE_CONTINUE); }
public uint Execute(PacketDistributed ipacket) { GC_SKILL_FINISH packet = (GC_SKILL_FINISH )ipacket; if (null == packet) { return((uint)PACKET_EXE.PACKET_EXE_ERROR); } //enter your logic int _objId = packet.ObjId; Obj_Character Sender = Singleton <ObjManager> .GetInstance().FindObjCharacterInScene(_objId); if (Sender == null) { return((uint)PACKET_EXE.PACKET_EXE_CONTINUE); } SkillCore _skillCore = Sender.SkillCore; if (_skillCore == null) { return((uint)PACKET_EXE.PACKET_EXE_CONTINUE); } if (packet.FinsjType == (int)SKILLFINISHREASON.BREAK) { _skillCore.BreakCurSkill(); } else if (packet.FinsjType == (int)SKILLFINISHREASON.FINISH) { _skillCore.SkillFinsh(); } return((uint)PACKET_EXE.PACKET_EXE_CONTINUE); }
public uint Execute(PacketDistributed ipacket) { GC_MOUNT_DATA packet = (GC_MOUNT_DATA )ipacket; if (null == packet) { return((uint)PACKET_EXE.PACKET_EXE_ERROR); } //enter your logic int nObjServerID = packet.ObjServerID; int nMountID = packet.MountID; int EnterSceneServerID = GameManager.gameManager.PlayerDataPool.EnterSceneCache.EnterSceneServerID; // Çг¡¾°»º´æ if (EnterSceneServerID == nObjServerID) { GameManager.gameManager.PlayerDataPool.EnterSceneCache.EnterSceneMountID = nMountID; } else { Obj_Character obj = Singleton <ObjManager> .GetInstance().FindObjCharacterInScene(nObjServerID); if (obj) { if (obj.ObjType == Games.GlobeDefine.GameDefine_Globe.OBJ_TYPE.OBJ_MAIN_PLAYER || obj.ObjType == Games.GlobeDefine.GameDefine_Globe.OBJ_TYPE.OBJ_OTHER_PLAYER) { Obj_OtherPlayer Player = obj as Obj_OtherPlayer; Player.ShowRideOnEffect = true; Player.RideOrUnMount(nMountID); } else { if (nMountID == GlobeVar.INVALID_ID) { Obj_MainPlayer main = Singleton <ObjManager> .Instance.MainPlayer; if (main != null) { main.RideOrUnMount(nMountID); } } } } else { if (nMountID == GlobeVar.INVALID_ID) { Obj_MainPlayer main = Singleton <ObjManager> .Instance.MainPlayer; if (main != null) { main.RideOrUnMount(nMountID); } } } } return((uint)PACKET_EXE.PACKET_EXE_CONTINUE); }
void Start() { if (m_BindObj != null) { Obj_OtherPlayer objOtherPlayer = m_BindObj.GetComponent <Obj_OtherPlayer>(); if (null != objOtherPlayer) { // 关于直接创建坐骑上的玩家的名字板高度修正 应该也会执行一次Obj_Mount的RideMount 相当于设置了两次高度 没什么大影响 暂时不删除此处 m_fDeltaHeight = objOtherPlayer.DeltaHeight + objOtherPlayer.GetMountNameBoardHeight(); } else { Obj_Character objCharacter = m_BindObj.GetComponent <Obj_Character>(); if (null != objCharacter) { m_fDeltaHeight = objCharacter.DeltaHeight; } } m_Position = new Vector3(0, m_fDeltaHeight, 0); m_BindObjTrans = m_BindObj.transform; } m_Transform = transform; }
public uint Execute(PacketDistributed ipacket) { GC_USE_LIGHT_SKILL packet = (GC_USE_LIGHT_SKILL)ipacket; if (null == packet) { return((uint)PACKET_EXE.PACKET_EXE_ERROR); } //首先检查场景是否一致 if (GameManager.gameManager.RunningScene != packet.SceneId) { return((uint)PACKET_EXE.PACKET_EXE_CONTINUE); } //再找到该玩家 Obj_Character obj = Singleton <ObjManager> .GetInstance().FindObjCharacterInScene(packet.ObjId); if (null != obj) { Vector3 dstPos = new Vector3((float)packet.DstPosX / 100, 0.0f, (float)packet.DstPosZ / 100); obj.PlayLightSkill(dstPos, packet.Step); } return((uint)PACKET_EXE.PACKET_EXE_CONTINUE); }
public void Awake() { //m_posList = new List<AutoMovePos>(); //必须是Obj_Character才有效 m_BindObj = gameObject.GetComponent <Obj_Character>(); }
void Update() { if (null == m_ObjTransform || null == m_ObjTransform.parent) { return; } Vector3 targetPos; Obj_Character Target = Singleton <ObjManager> .Instance.FindObjCharacterInScene(m_targetID); if (null == Target) { FXController curController = m_ObjTransform.parent.GetComponent <FXController>(); if (null != curController) { curController.Stop(); } return; } targetPos = Target.transform.position; targetPos.y += Height; LightingParent.localScale = new Vector3(1, 1, (targetPos - m_ObjTransform.position).magnitude / OrgLength); transform.LookAt(targetPos); }
public uint Execute(PacketDistributed ipacket) { GC_UPDATE_ANIMATION_STATE packet = (GC_UPDATE_ANIMATION_STATE )ipacket; if (null == packet) { return((uint)PACKET_EXE.PACKET_EXE_ERROR); } //enter your logic Obj_Character _objChar = Singleton <ObjManager> .GetInstance().FindObjCharacterInScene(packet.ObjId); if (_objChar == null) { return((uint)PACKET_EXE.PACKET_EXE_CONTINUE); } //NPC受击动作单独处理 if (_objChar.ObjType == Games.GlobeDefine.GameDefine_Globe.OBJ_TYPE.OBJ_NPC && _objChar.CurObjAnimState == Games.GlobeDefine.GameDefine_Globe.OBJ_ANIMSTATE.STATE_HIT) { return((uint)PACKET_EXE.PACKET_EXE_CONTINUE); } _objChar.CurObjAnimState = (Games.GlobeDefine.GameDefine_Globe.OBJ_ANIMSTATE)(packet.AnimationState); return((uint)PACKET_EXE.PACKET_EXE_CONTINUE); }
public override void Start() { base.Start(); if (m_nTargetID != -1) { // 暂时试试以RoleBaseAttr中的名字来取得Obj Tab_RoleBaseAttr RoleBase = TableManager.GetRoleBaseAttrByID(m_nTargetID, 0); if (null != RoleBase) { Obj_Character character = ObjManager.Instance.FindObjCharacterInSceneByName(RoleBase.Name, true, 20); if (null != character) { Animation animComp = character.AnimLogic.GetAnimation(); if (null != animComp) { // 有些动作竟然会跳出屏幕,这还怎么玩? animComp.cullingType = AnimationCullingType.AlwaysAnimate; character.AnimLogic.Play(m_nAnimID, AnimFinishCallback); } else { Finish(); } } else { Finish(); } } else { Finish(); } } else { Obj_Character character = Singleton <ObjManager> .GetInstance().MainPlayer; if (null != character) { Animation animComp = character.AnimLogic.GetAnimation(); if (null != animComp) { animComp.cullingType = AnimationCullingType.AlwaysAnimate; character.AnimLogic.Play(m_nAnimID, AnimFinishCallback); m_bIsPlayingMainPlayerAnim = true; } else { Finish(); } } else { Finish(); } } }
static void OnLoadHeadInfo(GameObject resObj, object parent, object fun) { if (null != resObj) { if (null != GameManager.gameManager.ActiveScene.NameBoardRoot) { resObj.transform.parent = GameManager.gameManager.ActiveScene.NameBoardRoot.transform; } resObj.transform.localPosition = Vector3.zero; resObj.transform.localRotation = Quaternion.LookRotation(Vector3.forward); BillBoard billboard = resObj.GetComponent <BillBoard>(); if (null == billboard) { billboard = resObj.AddComponent <BillBoard>(); if (null != billboard) { billboard.BindObj = parent as GameObject; } } else { billboard.BindObj = parent as GameObject; billboard.enabled = true; } //由于会复用,所以需要重新设置名字版的高度修正 if (null != billboard && null != billboard.BindObj) { Obj_OtherPlayer objOtherPlayer = billboard.BindObj.GetComponent <Obj_OtherPlayer>(); if (null != objOtherPlayer) { billboard.fDeltaHeight = objOtherPlayer.DeltaHeight + objOtherPlayer.GetMountNameBoardHeight(); } else { Obj_Character objCharacter = billboard.BindObj.GetComponent <Obj_Character>(); if (null != objCharacter) { billboard.fDeltaHeight = objCharacter.DeltaHeight; } } } LoadHeadInfoDelegate delFun = fun as LoadHeadInfoDelegate; if (null != delFun) { delFun(resObj); } } else { LogModule.ErrorLog("load headinfo fail"); } }
public uint Execute(PacketDistributed ipacket) { GC_SYNC_ACTIVETITLE packet = (GC_SYNC_ACTIVETITLE )ipacket; if (null == packet) { return((uint)PACKET_EXE.PACKET_EXE_ERROR); } //enter your logic if (packet.Serverid != Singleton <ObjManager> .GetInstance().MainPlayer.ServerID) { Obj_Character obj = Singleton <ObjManager> .GetInstance().FindObjCharacterInScene(packet.Serverid); if (obj != null) { if (obj.ObjType == Games.GlobeDefine.GameDefine_Globe.OBJ_TYPE.OBJ_OTHER_PLAYER || obj.ObjType == Games.GlobeDefine.GameDefine_Globe.OBJ_TYPE.OBJ_ZOMBIE_PLAYER) { Obj_OtherPlayer objOtherPlayer = (Obj_OtherPlayer)obj; if (objOtherPlayer != null) { Tab_TitleData tabTitleData = TableManager.GetTitleDataByID(packet.Titleid, 0); if (tabTitleData != null) { string strTitle = Utils.GetTitleColor(tabTitleData.ColorLevel); if (tabTitleData.Type >= (int)USERDEF_SUBTYPE.TITLE_DEFTYPE_NUM) { // 系统称号 strTitle += tabTitleData.InvestitiveName; } else if ((int)USERDEF_SUBTYPE.TITLE_DEFTYPE_INVALID < tabTitleData.Type && tabTitleData.Type < (int)USERDEF_SUBTYPE.TITLE_DEFTYPE_NUM) { // 自定义称号 if (packet.HasTitlename) { strTitle += packet.Titlename; } } objOtherPlayer.CurTitleID = packet.Titleid; objOtherPlayer.StrTitleInvestitive = strTitle; objOtherPlayer.ShowTitleInvestitive(); } else { objOtherPlayer.CurTitleID = GlobeVar.INVALID_ID; objOtherPlayer.StrTitleInvestitive = ""; objOtherPlayer.ShowTitleInvestitive(); } } } } } return((uint)PACKET_EXE.PACKET_EXE_CONTINUE); }
public void RecoverHeight() { if (m_BindObj != null) { Obj_Character objChar = m_BindObj.GetComponent <Obj_Character>(); if (null != objChar) { fDeltaHeight = objChar.DeltaHeight; } } }
//显示技能名字 public static void ShowSkillName(int skillId, int senderId, string skillName = "") { Obj_Character skillSender = Singleton <ObjManager> .GetInstance().FindObjCharacterInScene(senderId); if (skillSender == null) { LogModule.DebugLog("MainPlayer is Null:" + senderId); return; } Tab_SkillEx skillExInfo = TableManager.GetSkillExByID(skillId, 0); if (skillExInfo == null) { LogModule.DebugLog("SkillExinfo is Null: " + skillId); return; } int BaseSkillId = skillExInfo.BaseId; Tab_SkillBase skillBase = TableManager.GetSkillBaseByID(BaseSkillId, 0); if (skillBase == null) { LogModule.DebugLog("SkillBaseInfo is Null" + BaseSkillId); return; } //显示技能名字 if (skillName == "") { if ((skillBase.SkillClass & (int)SKILLCLASS.PASSIVITY) != 0) { skillSender.ShowDamageBoard_SkillName(Games.GlobeDefine.GameDefine_Globe.DAMAGEBOARD_TYPE.SKILL_NAME, skillBase.Name, false); } else { if (skillSender.ObjType == Games.GlobeDefine.GameDefine_Globe.OBJ_TYPE.OBJ_MAIN_PLAYER || skillSender.ObjType == Games.GlobeDefine.GameDefine_Globe.OBJ_TYPE.OBJ_OTHER_PLAYER) { skillSender.ShowDamageBoard_SkillName(Games.GlobeDefine.GameDefine_Globe.DAMAGEBOARD_TYPE.SKILL_NAME, skillBase.Name); } else if (skillSender.ObjType == Games.GlobeDefine.GameDefine_Globe.OBJ_TYPE.OBJ_NPC) { skillSender.ShowDamageBoard_SkillName(Games.GlobeDefine.GameDefine_Globe.DAMAGEBOARD_TYPE.SKILL_NAME_NPC, skillBase.Name, false); } else { skillSender.ShowDamageBoard_SkillName(Games.GlobeDefine.GameDefine_Globe.DAMAGEBOARD_TYPE.SKILL_NAME, skillBase.Name, false); } } } else { skillSender.ShowDamageBoard_SkillName(Games.GlobeDefine.GameDefine_Globe.DAMAGEBOARD_TYPE.SKILL_NAME, skillName, false); } }
bool IsGuildBossNpc(Obj_Character targetObj) { if (targetObj.ObjType == Games.GlobeDefine.GameDefine_Globe.OBJ_TYPE.OBJ_NPC) { Obj_NPC rNpc = targetObj as Obj_NPC; if (rNpc != null) { return(rNpc.IsGuildActivityBoss); } } return(false); }
public uint Execute(PacketDistributed ipacket) { GC_TELEMOVE packet = (GC_TELEMOVE )ipacket; if (null == packet) { return((uint)PACKET_EXE.PACKET_EXE_ERROR); } //enter your logic Obj_Character _objChar = Singleton <ObjManager> .GetInstance().FindObjCharacterInScene(packet.ObjId); if (_objChar == null) { return((uint)PACKET_EXE.PACKET_EXE_CONTINUE); } Vector3 targetPos = new Vector3(packet.TargetPosX / 100.0f, 0, packet.TargetPosZ / 100.0f); targetPos = ActiveScene.GetTerrainPosition(targetPos); //如果_objChar为轻功状态,则打断轻功 if (_objChar.IsLightState) { //_objChar.EndLightSkillMove(); _objChar.BeginTeleMoveInLight(targetPos); } //是否需要改变朝向 if (packet.NeedChangeFaceto == 1) { _objChar.FaceTo(targetPos); } else { _objChar.IsMoveToNoFaceTo = true; } AutoMove autoMove = _objChar.AutoMoveComponent; if (autoMove != null) { autoMove.ResetAutoMove(); } //向目标点移动 _objChar.MoveTo(targetPos, null, 0); //是否需要播放附加动作 if (packet.HasAnimaId && _objChar.AnimLogic != null) { _objChar.AnimLogic.Stop(); _objChar.AnimLogic.Play(packet.AnimaId); //现在这里播放击退效果 todo临时的 _objChar.PlayEffect(121); } return((uint)PACKET_EXE.PACKET_EXE_CONTINUE); }
public void PlayMountPlayerAnima(CharacterDefine.MountAction value, Obj_Character obj) { int realAniID = GetMountAnimation(value, obj); if (realAniID < 0) { return; } if (m_MountPlayer && m_MountPlayer.AnimLogic) { m_MountPlayer.AnimLogic.Play(realAniID); } }
//将模型变成变身状态下 public static void ChangeOtherPLayerObjToChangeModel(int nCharmodelID, Obj_Character otherPlayer) { Tab_CharModel charModel = TableManager.GetCharModelByID(nCharmodelID, 0); if (charModel == null) { LogModule.ErrorLog("Tab_CharModel is null == " + nCharmodelID); return; } otherPlayer.AnimationFilePath = charModel.AnimPath; otherPlayer.ModelID = nCharmodelID; LoadModelToRoot(nCharmodelID, EResourceType.CharacterModel, LoadModelComplete, otherPlayer.gameObject, charModel, true); }
/// <summary> /// 获取最近的NPC并接近和他对话 /// </summary> private void getNPC() { Obj_NPC TargetNpc = null; List <Obj_NPC> npcList = new List <Obj_NPC>(); float minDistance = float.PositiveInfinity; Vector3 mainPlayerPos; mainPlayerPos = Singleton <ObjManager> .GetInstance().MainPlayer.Position; foreach (string strName in Singleton <ObjManager> .GetInstance().ObjPools.Keys) {//遍历场景中的npc Obj_Character objChar = Singleton <ObjManager> .GetInstance().ObjPools[strName] as Obj_Character; if (null == objChar) { continue; } TargetNpc = objChar as Obj_NPC; if (TargetNpc == null) { continue; } if (Reputation.IsFriend(TargetNpc)) {//如果是友好NPC则添加进npc列表 npcList.Add(TargetNpc); } } for (int i = 0; i < npcList.Count; i++) {//比较距离,得到最近的那个npc float curDistance = Vector3.Distance(mainPlayerPos, npcList[i].Position); if (curDistance < minDistance) { minDistance = curDistance; TargetNpc = npcList[i]; } } if (TargetNpc == null) { return; } if (null != Singleton <ObjManager> .GetInstance().MainPlayer) { Singleton <ObjManager> .GetInstance().MainPlayer.SelectTarget = TargetNpc; Singleton <ObjManager> .GetInstance().MainPlayer.OnSelectTarget(TargetNpc.gameObject); } }
// Update is called once per frame void Update() { if (mTrans == null || null == mFxController) { return; } // Obj_Character Target = Singleton<ObjManager>.Instance.FindObjCharacterInScene(m_targetID); m_targetGetTimer -= Time.deltaTime; if (null == mTargetTrans || m_targetGetTimer <= 0) { Obj_Character objTarget = Singleton <ObjManager> .Instance.FindObjCharacterInScene(m_targetID); if (objTarget == null) { mFxController.Stop(); return; } else { mTargetTrans = objTarget.transform; m_targetGetTimer = 0.3f; } } Vector3 m_targetTransPos = mTargetTrans.position; m_targetTransPos.y = mTrans.position.y; m_dir = (m_targetTransPos - mTrans.position).normalized; mTrans.position += m_dir * m_speed * Time.deltaTime; mTrans.LookAt(m_targetTransPos); float sqDist = (m_targetTransPos.z - mTrans.position.z) * (m_targetTransPos.z - mTrans.position.z) + (m_targetTransPos.y - mTrans.position.y) * (m_targetTransPos.y - mTrans.position.y) + (m_targetTransPos.x - mTrans.position.x) * (m_targetTransPos.x - mTrans.position.x); if (sqDist < minDistance * minDistance) { if (mFxController != null) { mFxController.Stop(); } } }
// 寻路找怪处理 void FindEnamyTick() { if (m_bNotEnamyNpcFlag != 0) { return; } //如果有目标名字则寻找该目标,进行交互 if (m_Path.AutoSearchTargetName != "") { Obj_Character obj = Singleton <ObjManager> .GetInstance().FindObjCharacterInSceneByName(m_Path.AutoSearchTargetName); if (obj && obj.ObjType == Games.GlobeDefine.GameDefine_Globe.OBJ_TYPE.OBJ_NPC) { Obj_NPC objNpc = obj as Obj_NPC; //根据目标NPC的势力确认是对话还是攻击 if (Reputation.IsEnemy(objNpc) || Reputation.IsNeutral(objNpc)) { Singleton <ObjManager> .GetInstance().MainPlayer.StopMove(); m_Path.AutoSearchPosCache.Clear(); m_Path.ResetPath(); IsAutoSearching = false; m_EndPointCache.Clean(); //如果是地方NPC,则开始攻击 Singleton <ObjManager> .GetInstance().MainPlayer.OnSelectTarget(objNpc.gameObject); Singleton <ObjManager> .GetInstance().MainPlayer.OnEnterCombat(objNpc.GetComponent <Obj_Character>()); m_bNotEnamyNpcFlag = 1; // 杀怪任务寻路结束,如果没在自动战斗状态,则进入自动战斗 Obj_MainPlayer mainPlayer = Singleton <ObjManager> .GetInstance().MainPlayer; if (null != mainPlayer && !mainPlayer.GetAutoCombatState() && Singleton <ObjManager> .Instance.MainPlayer.IsOpenCabalAuto) { mainPlayer.EnterAutoCombat(); GameManager.gameManager.MissionManager.MissionAutoCombat = true; } } else { m_bNotEnamyNpcFlag = 2; return; } } } }
public void InitData(int sendId, int targetId) { mTrans = transform; if (null == mTrans.parent) { mFxController = null; return; } else { mFxController = mTrans.parent.GetComponent <FXController>(); } if (null == mFxController) { return; } Obj_Character Sender = Singleton <ObjManager> .Instance.FindObjCharacterInScene(sendId); Obj_Character Target = Singleton <ObjManager> .Instance.FindObjCharacterInScene(targetId); if (null == Sender || null == Target) { mFxController.Stop(); return; } m_startPos = Sender.transform.position; m_startPos.y += startHeight; mTrans.position = m_startPos; m_targetPos = Target.transform.position; m_targetPos.y += startHeight; m_dir = (m_targetPos - m_startPos); if (m_duration > 0) { m_speed = m_dir.magnitude / m_duration; } m_dir.Normalize(); m_targetID = targetId; m_targetGetTimer = 0; }
public uint Execute(PacketDistributed ipacket) { GC_FORCE_SETPOS packet = (GC_FORCE_SETPOS )ipacket; if (null == packet) { return((uint)PACKET_EXE.PACKET_EXE_ERROR); } //enter your logic Obj obj = Singleton <ObjManager> .Instance.FindObjInScene(packet.ServerID); if (obj != null) { if (obj.ObjType == Games.GlobeDefine.GameDefine_Globe.OBJ_TYPE.OBJ_MAIN_PLAYER || obj.ObjType == Games.GlobeDefine.GameDefine_Globe.OBJ_TYPE.OBJ_OTHER_PLAYER || obj.ObjType == Games.GlobeDefine.GameDefine_Globe.OBJ_TYPE.OBJ_ZOMBIE_PLAYER || obj.ObjType == Games.GlobeDefine.GameDefine_Globe.OBJ_TYPE.OBJ_FELLOW || obj.ObjType == Games.GlobeDefine.GameDefine_Globe.OBJ_TYPE.OBJ_NPC) { Obj_Character objChar = obj as Obj_Character; Vector3 vec = new Vector3((float)packet.PosX / 100, 0, (float)packet.PosZ / 100); if (objChar.NavAgent != null) { UnityEngine.GameObject.DestroyImmediate(objChar.NavAgent); } objChar.Position = ActiveScene.GetTerrainPosition(vec); if (objChar.NavAgent == null) { objChar.InitNavAgent(); } if (obj.ObjType == Games.GlobeDefine.GameDefine_Globe.OBJ_TYPE.OBJ_MAIN_PLAYER && JtddSceneControl.Instance() != null && GameManager.gameManager.RunningScene == (int)Games.GlobeDefine.GameDefine_Globe.SCENE_DEFINE.SCENE_FB_CABALINTRO) { JtddSceneControl.Instance().GotoNextScene(); GameManager.gameManager.SoundManager.PlayBGMusic(180, 0.5f, 0.5f); Cutscene.CutsceneManager.Instance.CloseSyncPos = false; } } } return((uint)PACKET_EXE.PACKET_EXE_CONTINUE); }
public uint Execute(PacketDistributed ipacket) { GC_DELETE_OBJ packet = (GC_DELETE_OBJ)ipacket; if (null == packet) { return((uint)PACKET_EXE.PACKET_EXE_ERROR); } int serverId = packet.ServerId; if (serverId < 0) { return((uint)PACKET_EXE.PACKET_EXE_CONTINUE); } Obj obj = Singleton <ObjManager> .GetInstance().FindObjInScene(serverId); if (null != obj) { //如果删除的目标为选择框目标,则取消选择框 if (obj.gameObject == GameManager.gameManager.ActiveScene.SelectObj) { GameManager.gameManager.ActiveScene.DeactiveSelectCircle(); } //如果删除的目标为当前头像,则取消 if (null != Singleton <ObjManager> .GetInstance().MainPlayer&& Singleton <ObjManager> .GetInstance().MainPlayer.SelectTarget == obj) { Singleton <ObjManager> .GetInstance().MainPlayer.OnSelectTarget(null); } //清除身上的绑定,防止显示错乱 Obj_Character charobj = obj as Obj_Character; if (charobj != null) { charobj.BindParent = -1; List <int> emptylist = new List <int>(); charobj.UpdateBindChildren(emptylist); } } Singleton <ObjManager> .GetInstance().RemoveObj(serverId); return((uint)PACKET_EXE.PACKET_EXE_CONTINUE); }
void SwitchHpInfo(Obj_Character obj) { if (obj == null) { return; } bool bNormal = true; if (obj.ObjType == GameDefine_Globe.OBJ_TYPE.OBJ_NPC) { Obj_NPC npcObj = obj as Obj_NPC; if (null != npcObj) { if (npcObj.NpcType == GameDefine_Globe.NPC_TYPE.BOSS) { bNormal = false; } } } if (bNormal) { m_NormalHPInfo.SetActive(true); m_BossHPInfo.SetActive(false); m_HpInfo.m_TargetHPSprite = m_NormalHPSprite; m_HpInfo.m_TargetHPBakSprite = m_NormalHPBakSprite; m_HpInfo.m_TargetHPText = m_NormalHPText; m_HpInfo.m_TargetHpCount = m_NormalHpCount; m_HpInfo.m_TargetHPotherSprite = null; m_HpInfo.m_TargetHpCount.gameObject.SetActive(true); } else { m_NormalHPInfo.SetActive(false); m_BossHPInfo.SetActive(true); m_HpInfo.m_TargetHPSprite = m_BossHPSprite; m_HpInfo.m_TargetHPBakSprite = m_BossHPBakSprite; m_HpInfo.m_TargetHPText = m_BossHPText; m_HpInfo.m_TargetHpCount = m_BossHpCount; m_HpInfo.m_TargetHPotherSprite = m_BossHPOtherSprite; m_HpInfo.m_TargetHpCount.gameObject.SetActive(false); } }
////////////////////////////////////////////////////////////////////////// //对话相关接口 ////////////////////////////////////////////////////////////////////////// // 弹出最近对话框 --寻路完响应 public void AutoDialog(int nMissionID) { Tab_MissionBase MissionBase = TableManager.GetMissionBaseByID(nMissionID, 0); if (MissionBase == null) { LogModule.ErrorLog("Can not find missionBase {0}", nMissionID); return; } Obj_NPC TargetNpc = null; foreach (string strName in Singleton <ObjManager> .GetInstance().ObjPools.Keys) { Obj_Character objChar = Singleton <ObjManager> .GetInstance().ObjPools[strName] as Obj_Character; if (null == objChar) { return; } if (objChar.BaseAttr.RoleBaseID == MissionBase.AcceptDataID || objChar.BaseAttr.RoleBaseID == MissionBase.CompleteDataID) { TargetNpc = objChar as Obj_NPC; break; } } if (TargetNpc == null) { LogModule.ErrorLog("Can not find TargetNPC of ID: {0} or {1}", MissionBase.AcceptDataID, MissionBase.CompleteDataID); return; } if (null != Singleton <ObjManager> .GetInstance().MainPlayer) { Singleton <ObjManager> .GetInstance().MainPlayer.OnSelectTarget(TargetNpc.gameObject); } if (!TargetNpc.IsHaveMission(nMissionID)) { LogModule.ErrorLog("Do not have mission {0}", nMissionID); return; } Show(TargetNpc); }
public uint Execute(PacketDistributed ipacket) { GC_RET_SELOBJ_INFO packet = (GC_RET_SELOBJ_INFO )ipacket; if (null == packet) { return((uint)PACKET_EXE.PACKET_EXE_ERROR); } // int nObjId = packet.ObjId; int nSelObjId = packet.SeleobjId; Obj_MainPlayer _mainPlayer = Singleton <ObjManager> .GetInstance().MainPlayer; if (_mainPlayer == null) { return((uint)PACKET_EXE.PACKET_EXE_CONTINUE); } Obj_Character selObj = Singleton <ObjManager> .GetInstance().FindObjCharacterInScene(nSelObjId); if (selObj) { _mainPlayer.SelectTarget = selObj; } else { _mainPlayer.SelectTarget = null; } //更新选择目标头像 _mainPlayer.UpdateTargetFrame(selObj); //如果选择的目标在播放技能范围的特效 切换目标时得 修改特效播放的对象 if (_mainPlayer.CurPressSkillId != -1 && _mainPlayer.SelectTarget) { Tab_SkillEx _skillEx = TableManager.GetSkillExByID(_mainPlayer.CurPressSkillId, 0); if (_skillEx != null) { if (_skillEx.RangeEffectType != -1 && _skillEx.RangeEffectTarType == (int)SKILLRANGEEFFECTTAR.SELECTTARGET) { _mainPlayer.SelectTarget.PlaySkillRangeEffect(); } } } //enter your logic return((uint)PACKET_EXE.PACKET_EXE_CONTINUE); }
public uint Execute(PacketDistributed ipacket) { GC_SYNC_FLY_ANIMATION_STATE packet = (GC_SYNC_FLY_ANIMATION_STATE)ipacket; if (null == packet) { return((uint)PACKET_EXE.PACKET_EXE_ERROR); } //enter your logic Obj_Character _objChar = Singleton <ObjManager> .GetInstance().FindObjCharacterInScene(packet.ObjID); if (_objChar != null) { _objChar._FlyStateData = new Obj_Character.FlyStateData(packet.RemainTime, packet.AnimaId, Time.time); _objChar._FlyStateData.SetNstartAnimationTime(_objChar.GetCurFlyStartAnimTime(_objChar._FlyStateData.nStartAnimationId)); } return((uint)PACKET_EXE.PACKET_EXE_CONTINUE); }