From 252d46b8642ad4ecebe1a8b9d3a0678913413ebf Mon Sep 17 00:00:00 2001
From: client_Zxw <826696702@qq.com>
Date: 星期三, 14 十一月 2018 15:30:58 +0800
Subject: [PATCH] Merge branch 'master' of http://192.168.0.87:10010/r/snxxz_scripts
---
Fight/GameActor/GA_Guard.cs | 202 +++++++++++++++++++++++++++++++++++++-------------
1 files changed, 148 insertions(+), 54 deletions(-)
diff --git a/Fight/GameActor/GA_Guard.cs b/Fight/GameActor/GA_Guard.cs
index b7a848a..f61a2b2 100644
--- a/Fight/GameActor/GA_Guard.cs
+++ b/Fight/GameActor/GA_Guard.cs
@@ -22,8 +22,10 @@
public static readonly int GuardAction_Run = 3;
#endregion
- public bool IsStateActive { get; set; }//鏄惁鐘舵�佹満寮�鍚�
-
+ public bool IsStateActive { get; set; }//鏄惁鐘舵�佹満寮�鍚�
+
+
+
public bool guardPick { get; private set; }
public float animatorSpeed { get; private set; }
@@ -32,14 +34,21 @@
public GuardState guardState { get; set; }
- public int targetPlayerId { get; private set; }
-
- public int itemID { get; set; }
-
+ public int targetPlayerId { get; private set; }
+
+
+
+ public int itemID { get; set; }
+
+
+
public int[] pickEffectIds { get; private set; }
-
- public bool IsHeroControl { get { return targetPlayerId == PlayerDatas.Instance.PlayerId; } }
-
+
+
+ public bool IsHeroControl { get { return targetPlayerId == PlayerDatas.Instance.PlayerId; } }
+
+
+
public bool IsPlayerDie { get; private set; }
PlayerDeadModel deadModel { get { return ModelCenter.Instance.GetModel<PlayerDeadModel>(); } }
@@ -66,8 +75,10 @@
get; private set;
}
- private DungeonOpenTimeConfig dungeonConfig { get; set; }
-
+ private DungeonOpenTimeConfig dungeonConfig { get; set; }
+
+
+
private SFXController m_SFXController = null;
public sealed override void Die() { }
@@ -101,13 +112,6 @@
{
Object.DestroyImmediate(pickUpBehaviour);
}
- }
-
- if (m_Model)
- {
- m_Model.transform.SetParent(m_Root);
- m_Model.transform.localPosition = Vector3.zero;
- m_Model.transform.localRotation = Quaternion.identity;
}
}
@@ -172,25 +176,44 @@
IEnumerator Co_StagePrepare()
{
yield return null;
- if (Root != null && targetPlayer != null)
- {
- var targetPosition = targetPlayer.Root.position;
- if (MathUtility.CalDistance(Root.position, targetPosition) >
- model.resetDistance * model.resetDistance)
- {
- SetPosition(targetPosition.x, targetPosition.z);
- }
- if (m_SFXController == null || !m_SFXController.gameObject.activeSelf)
- {
- m_SFXController = SFXPlayUtility.Instance.PlayBattleEffect(pickEffectIds[0], this, NpcConfig != null ? NpcConfig.ModeProportion : 1);
- if (m_SFXController != null)
- {
- var mountPoint = Root.GetChildTransformDeeply(GAStaticDefine.MountPointBoneName);
- m_SFXController.duration = 0;
- m_SFXController.transform.SetParent(mountPoint);
- m_SFXController.transform.localPosition = Vector3.zero;
- }
- }
+ if (Root != null && targetPlayer != null)
+
+ {
+
+ var targetPosition = targetPlayer.Root.position;
+
+ if (MathUtility.CalDistance(Root.position, targetPosition) >
+
+ model.resetDistance * model.resetDistance)
+
+ {
+
+ SetPosition(targetPosition.x, targetPosition.z);
+
+ }
+
+ if (m_SFXController == null || !m_SFXController.gameObject.activeSelf)
+
+ {
+
+ m_SFXController = SFXPlayUtility.Instance.PlayBattleEffect(pickEffectIds[0], this, NpcConfig != null ? NpcConfig.ModeProportion : 1);
+
+ if (m_SFXController != null)
+
+ {
+
+ var mountPoint = Root.GetChildTransformDeeply(GAStaticDefine.MountPointBoneName);
+
+ m_SFXController.duration = 0;
+
+ m_SFXController.transform.SetParent(mountPoint);
+
+ m_SFXController.transform.localPosition = Vector3.zero;
+
+ }
+
+ }
+
}
}
@@ -240,23 +263,70 @@
}
}
- private void InitializeModelRes()
+ protected override sealed void OnPrefabLoadFinished(bool result, UnityEngine.Object prefab)
{
- IsStateActive = true;
-
- if (targetPlayer != null)
- {
- var bornpos = targetPlayer.Root.position + targetPlayer.Root.right * 0.6f - targetPlayer.Forward * 0.3f;
- bornpos.y = targetPlayer.Root.position.y + model.height;
- Pos = bornpos;
+ if (!result || prefab == null)
+ {
+ return;
}
-
+ GAMgr.Instance.RemoveNeedDestroyPrefab(prefab as GameObject);
+ m_Model = GameObjectPoolManager.Instance.RequestGameObject(prefab as GameObject);
+
+ var _config = Config.Instance.Get<GuardConfig>(itemID);
+ NpcConfig = Config.Instance.Get<NPCConfig>(_config.npcId);
+
+ if (m_Model)
+ {
+ m_Animator = m_Model.GetComponent<Animator>();
+ if (m_Animator)
+ {
+ RuntimeAnimatorController _controller = null;
+ if (m_LoadDefaultRes)
+ {
+ _controller = InstanceResourcesLoader.LoadDefaultMobAnimatorController_Func();
+ }
+ else
+ {
+ string _name = NpcConfig.MODE;
+ if (_name.Contains("A_Zs"))
+ {
+ _name = "A_Zs";
+ GameObjectPoolManager.Instance.AddDontDestroyGoInstID(m_Model.GetInstanceID());
+ }
+ else if (_name.Contains("A_Fs"))
+ {
+ _name = "A_Fs";
+ GameObjectPoolManager.Instance.AddDontDestroyGoInstID(m_Model.GetInstanceID());
+ }
+ _controller = AnimatorControllerLoader.LoadMobController(AnimatorControllerLoader.controllerSuffix, _name);
+ }
+ if (_controller)
+ {
+ m_Animator.runtimeAnimatorController = _controller;
+ }
+ m_Animator.enabled = true;
+ m_Animator.SetInteger(GAStaticDefine.Param_ActorInstID, (int)ClientInstID);
+ }
+
+ SetupBindNode(m_Model.transform);
+
+ m_Model.transform.SetParent(m_Root);
+ m_Model.transform.localPosition = Vector3.zero;
+ m_Model.transform.localRotation = Quaternion.identity;
+
+ RequestName();
+
+ OnMainModelLoaded();
+ }
+ }
+
+ protected override void OnMainModelLoaded()
+ {
m_Model.SetLayer(LayerUtility.Monster, true);
var mountPoint = Root.GetChildTransformDeeply(GAStaticDefine.MountPointBoneName);
m_SFXController = SFXPlayUtility.Instance.PlayBattleEffect(pickEffectIds[0], this, NpcConfig != null ? NpcConfig.ModeProportion : 1);
-
if (m_SFXController != null)
{
@@ -274,6 +344,23 @@
{
GameObjectPoolManager.Instance.AddDontDestroyGoInstID(m_Model.GetInstanceID());
}
+ }
+
+ private void InitializeModelRes()
+ {
+ IsStateActive = true;
+
+ if (targetPlayer != null)
+ {
+ var bornpos = targetPlayer.Root.position + targetPlayer.Root.right * 0.6f - targetPlayer.Forward * 0.3f;
+
+ bornpos.y = targetPlayer.Root.position.y + model.height;
+
+ Pos = bornpos;
+ }
+
+ var _config = Config.Instance.Get<GuardConfig>(itemID);
+ InstanceResourcesLoader.AsyncLoadNpc(_config.npcId, OnPrefabLoadFinished);
}
private void SetPosition(float x, float z)
@@ -324,7 +411,8 @@
{
var _height = targetPlayer.Root.position.y + model.height;
var targetPosition = targetPlayer.Root.position;
- if (MathUtility.CalDistance(Root.position, targetPosition) >
+ if (MathUtility.CalDistance(Root.position, targetPosition) >
+
model.resetDistance * model.resetDistance)
{
SetPosition(targetPosition.x, targetPosition.z);
@@ -360,7 +448,8 @@
private bool CheckTrack()
{
- if (MathUtility.CalDistance(Root.position, targetPlayer.Root.position) > model.traceRange * model.traceRange
+ if (MathUtility.CalDistance(Root.position, targetPlayer.Root.position) > model.traceRange * model.traceRange
+
&& guardState != GuardState.Track)
{
stopDanceState = true;
@@ -390,15 +479,20 @@
{
if (dungeonConfig != null)
{
- if (dungeonConfig.GuardPick == 0)
- {
+ if (dungeonConfig.GuardPick == 0)
+
+ {
+
return false;
}
}
- if (Root == null)
- {
- return false;
+ if (Root == null)
+
+ {
+
+ return false;
+
}
if (DropItemManager.CheckCanGuardPickUp(Root.position))
--
Gitblit v1.8.0