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_NpcFunc.cs | 207 +++++++++++++++++++++++++++++++++++----------------
1 files changed, 140 insertions(+), 67 deletions(-)
diff --git a/Fight/GameActor/GA_NpcFunc.cs b/Fight/GameActor/GA_NpcFunc.cs
index dc711be..e6a39e7 100644
--- a/Fight/GameActor/GA_NpcFunc.cs
+++ b/Fight/GameActor/GA_NpcFunc.cs
@@ -24,6 +24,7 @@
protected override void OnInit(GameNetPackBasic package)
{
+ base.OnInit(package);
m_H0406 = package as H0406_tagNPCAppear;
if (m_H0406 == null)
@@ -58,8 +59,6 @@
PlayerTaskDatas.Event_TaskResponse += OnTaskRefresh;
- RequestMissionSign();
-
bool _needHide = (NpcConfig.Show == 0);
PlayerTaskDatas _model = ModelCenter.Instance.GetModel<PlayerTaskDatas>();
@@ -73,6 +72,101 @@
{
Pos = Constants.Special_Hide_Position;
}
+ }
+
+ protected override void OnMainModelLoaded()
+ {
+ if (string.IsNullOrEmpty(NpcConfig.Equips))
+ {
+ return;
+ }
+
+ string[] _ids = NpcConfig.Equips.Split('|');
+ int _weaponId = int.Parse(_ids[0]);
+ int _secondaryId = _ids.Length > 1 ? int.Parse(_ids[1]) : -1;
+ int _horseId = _ids.Length > 2 ? int.Parse(_ids[2]) : -1;
+ int _wingId = _ids.Length > 3 ? int.Parse(_ids[3]) : -1;
+
+ // Debug.LogFormat("weapon: {0}, secondary: {1}, horse: {2}, wing: {3}", _weaponId, _secondaryId, _horseId, _weaponId);
+
+ if (_weaponId > 0)
+ {
+ SetEquipWeapon(_weaponId);
+ }
+
+ if (_secondaryId > 0)
+ {
+ SetEquipSecondary(_secondaryId);
+ }
+
+ if (_wingId > 0)
+ {
+ SetEquipWing(_wingId);
+ }
+
+ if (_horseId > 0)
+ {
+ SetEquipHorse(_horseId);
+ }
+
+ RequestMissionSign();
+ }
+
+ private void SetEquipHorse(int horseID)
+ {
+ if (horseID > 0)
+ {
+ m_HorseID = horseID;
+ var _horseConfig = Config.Instance.Get<HorseConfig>(horseID);
+ InstanceResourcesLoader.AsyncLoadModelRes(_horseConfig.Model, OnHorseLoaded);
+ }
+ }
+
+ private void SetEquipSecondary(int resID)
+ {
+ if (resID > 0)
+ {
+ m_SecondaryID = resID;
+ InstanceResourcesLoader.AsyncLoadModelRes(resID, OnSecondaryLoaded);
+ }
+ }
+
+ private void SetEquipWeapon(int resID)
+ {
+ if (resID > 0)
+ {
+ m_WeaponID = resID;
+ InstanceResourcesLoader.AsyncLoadModelRes(resID, OnWeaponLoaded);
+ }
+ }
+
+ private void SetEquipWing(int resID)
+ {
+ if (resID > 0)
+ {
+ m_WingID = resID;
+ InstanceResourcesLoader.AsyncLoadModelRes(resID, OnWingLoaded);
+ }
+ }
+
+ private void OnHorseLoaded(bool result, UnityEngine.Object prefab)
+ {
+ if (!result || !prefab)
+ {
+ return;
+ }
+
+ var _horseConfig = Config.Instance.Get<HorseConfig>(m_HorseID);
+ var _modelResConfig = Config.Instance.Get<ModelResConfig>(_horseConfig.Model);
+
+ m_HorseModel = GameObjectPoolManager.Instance.RequestGameObject(prefab as GameObject);
+ var _animator = m_HorseModel.GetComponent<Animator>();
+ if (_animator)
+ {
+ _animator.runtimeAnimatorController = AnimatorControllerLoader.LoadMobController(AnimatorControllerLoader.controllerSuffix,
+ _modelResConfig.ResourcesName);
+ _animator.enabled = true;
+ }
if (m_HorseModel)
{
@@ -80,8 +174,6 @@
m_HorseModel.transform.localPosition = Vector3.zero;
m_HorseModel.transform.localRotation = Quaternion.identity;
- var _horseConfig = Config.Instance.Get<HorseConfig>(m_HorseID);
- var _modelResConfig = Config.Instance.Get<ModelResConfig>(_horseConfig.Model);
var _horseBindNode = m_HorseModel.transform.GetChildTransformDeeply(_modelResConfig.BindPoint);
if (_horseBindNode)
@@ -89,7 +181,7 @@
m_Model.transform.SetParent(_horseBindNode);
m_Model.transform.localPosition = Vector3.zero;
m_Model.transform.localEulerAngles = new Vector3(90, 0, 0);
- var _animator = m_Model.GetComponent<Animator>();
+ _animator = m_Model.GetComponent<Animator>();
_animator.SetInteger(GAStaticDefine.Param_Action, GAStaticDefine.Act_HorseIdle);
switch (_horseConfig.ActionType)
{
@@ -111,83 +203,64 @@
}
}
}
- else if (m_Model)
- {
- m_Model.transform.SetParent(m_Root);
- m_Model.transform.localPosition = Vector3.zero;
- m_Model.transform.localRotation = Quaternion.identity;
- }
}
- public override void InitPerformance(uint clientInstID, int npcID)
+ private void OnWingLoaded(bool result, UnityEngine.Object prefab)
{
- base.InitPerformance(clientInstID, npcID);
-
- if (string.IsNullOrEmpty(NpcConfig.Equips))
+ if (!result || !prefab)
{
return;
}
- string[] _ids = NpcConfig.Equips.Split('|');
- int _weaponId = int.Parse(_ids[0]);
- int _secondaryId = _ids.Length > 1 ? int.Parse(_ids[1]) : -1;
- int _horseId = _ids.Length > 2 ? int.Parse(_ids[2]) : -1;
- int _wingId = _ids.Length > 3 ? int.Parse(_ids[3]) : -1;
-
- // Debug.LogFormat("weapon: {0}, secondary: {1}, horse: {2}, wing: {3}", _weaponId, _secondaryId, _horseId, _weaponId);
-
- int _job = NpcConfig.MODE.Contains("A_Zs") ? 1 : 2;
-
- if (_weaponId > 0)
+ m_WingModel = GameObjectPoolManager.Instance.RequestGameObject(prefab as GameObject);
+ var _animator = m_WingModel.GetComponent<Animator>();
+ if (_animator)
{
- SetEquip(_weaponId, GAStaticDefine.WeaponBindBoneName, ref m_WeaponModel, ref m_WeaponID);
- }
-
- if (_secondaryId > 0)
- {
- SetEquip(_secondaryId, GAStaticDefine.SecondaryBindBoneName[_job - 1], ref m_SecondaryModel, ref m_SecondaryID);
- }
-
- if (_wingId > 0)
- {
- SetEquip(_wingId, GAStaticDefine.WingBindBoneName, ref m_WingModel, ref m_WingID);
- }
-
- if (_horseId > 0)
- {
- var _horseConfig = Config.Instance.Get<HorseConfig>(_horseId);
- var _modelResConfig = Config.Instance.Get<ModelResConfig>(_horseConfig.Model);
- var _prefab = InstanceResourcesLoader.LoadModelRes(_modelResConfig.ID);
- m_HorseModel = GameObjectPoolManager.Instance.RequestGameObject(_prefab);
- var _animator = m_HorseModel.GetComponent<Animator>();
- if (_animator)
- {
- _animator.runtimeAnimatorController = AnimatorControllerLoader.LoadMobController(AnimatorControllerLoader.controllerSuffix,
- _modelResConfig.ResourcesName);
-
- }
_animator.enabled = true;
- m_HorseID = _horseId;
}
+ Transform _bindNode = m_Model.transform.GetChildTransformDeeply(GAStaticDefine.WingBindBoneName);
+ m_WingModel.transform.SetParent(_bindNode);
+ m_WingModel.transform.localPosition = Vector3.zero;
+ m_WingModel.transform.localRotation = Quaternion.identity;
}
- private void SetEquip(int resID, string bindNodeName, ref GameObject model, ref int id)
+ private void OnSecondaryLoaded(bool result, UnityEngine.Object prefab)
{
- if (resID > 0)
+ if (!result || !prefab)
{
- GameObject _prefab = InstanceResourcesLoader.LoadModelRes(resID);
- model = GameObjectPoolManager.Instance.RequestGameObject(_prefab);
- var _animator = model.GetComponent<Animator>();
- if (_animator)
- {
- _animator.enabled = true;
- }
- Transform _weaponNode = m_Model.transform.GetChildTransformDeeply(bindNodeName);
- model.transform.SetParent(_weaponNode);
- model.transform.localPosition = Vector3.zero;
- model.transform.localRotation = Quaternion.identity;
- id = resID;
+ return;
}
+
+ m_SecondaryModel = GameObjectPoolManager.Instance.RequestGameObject(prefab as GameObject);
+ var _animator = m_SecondaryModel.GetComponent<Animator>();
+ if (_animator)
+ {
+ _animator.enabled = true;
+ }
+ int _job = NpcConfig.MODE.Contains("A_Zs") ? 1 : 2;
+ Transform _bindNode = m_Model.transform.GetChildTransformDeeply(GAStaticDefine.SecondaryBindBoneName[_job - 1]);
+ m_SecondaryModel.transform.SetParent(_bindNode);
+ m_SecondaryModel.transform.localPosition = Vector3.zero;
+ m_SecondaryModel.transform.localRotation = Quaternion.identity;
+ }
+
+ private void OnWeaponLoaded(bool result, UnityEngine.Object prefab)
+ {
+ if (!result || !prefab)
+ {
+ return;
+ }
+
+ m_WeaponModel = GameObjectPoolManager.Instance.RequestGameObject(prefab as GameObject);
+ var _animator = m_WeaponModel.GetComponent<Animator>();
+ if (_animator)
+ {
+ _animator.enabled = true;
+ }
+ Transform _bindNode = m_Model.transform.GetChildTransformDeeply(GAStaticDefine.WeaponBindBoneName);
+ m_WeaponModel.transform.SetParent(_bindNode);
+ m_WeaponModel.transform.localPosition = Vector3.zero;
+ m_WeaponModel.transform.localRotation = Quaternion.identity;
}
protected override void OnUnit()
--
Gitblit v1.8.0