少年修仙传客户端代码仓库
client_Hale
2018-09-10 ae64e47345913097aefa4825c4ed4702b668b54f
update
1个文件已修改
2个文件已添加
338 ■■■■■ 已修改文件
Fight/GameActor/GA_Player.cs 159 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Fight/GameActor/GA_PlayerOffLine.cs 167 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Fight/GameActor/GA_PlayerOffLine.cs.meta 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Fight/GameActor/GA_Player.cs
@@ -9,23 +9,14 @@
    // 为守护特殊定义的当前是否装备守护id
    public int serverGuardId;
    // 简易的脱机挂AI草稿
    // 步骤 1. 寻点 2. 移动至 3. 放个普攻
    private byte m_Step;
    private Vector3 m_DestPos;
    private Vector3 m_RecordBornPos;
    private float m_WaitTime;
    public static UnityAction<uint, bool> s_OnSelected;
    public static UnityAction<uint, ulong, ulong> s_OnRefreshLife;
    private H0434_tagAreaPlayerAppearEx m_H0434;
    protected H0434_tagAreaPlayerAppearEx m_H0434;
    private CmdManager m_CmdManager;
    private int m_ComAtkIndex;// 普攻索引
    private Skill m_CastSkill;// 要释放的技能
    protected sealed override void OnInit(GameNetPackBasic package)
    protected override void OnInit(GameNetPackBasic package)
    {
        m_H0434 = package as H0434_tagAreaPlayerAppearEx;
@@ -157,12 +148,6 @@
        RequestName();
        m_CmdManager = new CmdManager();
        if (m_H0434.State == 1)
        {
            m_RecordBornPos = Pos;
            m_Step = 0;
        }
    }
    protected sealed override void OnUnit()
@@ -183,151 +168,13 @@
    {
    }
    protected sealed override void OnUpdate()
    protected override void OnUpdate()
    {
        base.OnUpdate();
        if (m_CmdManager != null)
        {
            m_CmdManager.Update();
        }
        // 脱机挂
        if (m_H0434.State == 1)
        {
            switch (m_Step)
            {
                case 0:
                    //m_DestPos = m_RecordBornPos + Quaternion.Euler(0, Random.Range(0, 359), 0) * Vector3.forward * Random.Range(1f, 2f);
                    //TryGetValidPos(m_DestPos, ref m_DestPos);
                    if (SelectTarget == null)
                    {
                        SelectTarget = GAMgr.Instance.GetCloserFightNpc(Pos);
                    }
                    if (SelectTarget != null)
                    {
                        destForward = Forward = MathUtility.ForwardXZ(SelectTarget.Pos, Pos);
                    }
                    m_Step = 1;
                    break;
                case 1:
                    m_CastSkill = null;
                    for (int i = 0; i < JobSetup.HangupSkillList.Length; ++i)
                    {
                        if (SkillMgr.Get(JobSetup.HangupSkillList[i]).IsValid())
                        {
                            m_CastSkill = SkillMgr.Get(JobSetup.HangupSkillList[i]);
                            break;
                        }
                    }
                    if (m_CastSkill == null)
                    {
                        if (m_ComAtkIndex > JobSetup.ComAtkIdList.Length - 1)
                        {
                            m_ComAtkIndex = 0;
                        }
                        int _comSkillId = JobSetup.ComAtkIdList[m_ComAtkIndex];
                        m_CastSkill = SkillMgr.Get(_comSkillId);
                        m_ComAtkIndex += 1;
                    }
                    m_Step = 2;
                    break;
                case 2:
                    if (m_CastSkill != null)
                    {
                        SkillMgr.CastSkill(ServerInstID, m_CastSkill.id, true);
                        Vector3 _targetPosition = Pos + Forward * (m_CastSkill.skillInfo.config.AtkDist * .5f);
                        _targetPosition.y = 0;
                        UnityEngine.AI.NavMeshHit _navMeshHit;
                        if (UnityEngine.AI.NavMesh.Raycast(Pos, _targetPosition, out _navMeshHit, -1))
                        {
                            _targetPosition = _navMeshHit.position;
                        }
                        _targetPosition.y = Pos.y;
                        m_CastSkill.targetPosition = _targetPosition;
                        if (m_CastSkill.skillInfo.config.Skillactmark > 0
                         && m_CastSkill.skillInfo.config.Skillactmark < 20)
                        {
                            switch (m_CastSkill.skillInfo.config.Skillactmark)
                            {
                                case 10:
                                    Play(GAStaticDefine.State_Attack1Hash, 0);
                                    break;
                                case 11:
                                    Play(GAStaticDefine.State_Attack2Hash, 0);
                                    break;
                                case 12:
                                    Play(GAStaticDefine.State_Attack3Hash, 0);
                                    break;
                                case 13:
                                    Play(GAStaticDefine.State_Attack4Hash, 0);
                                    break;
                            }
                        }
                        else
                        {
                            switch (m_CastSkill.skillInfo.config.Skillactmark)
                            {
                                case 21:
                                    Play(GAStaticDefine.State_Skill21, 0);
                                    break;
                                case 22:
                                    Play(GAStaticDefine.State_Skill22, 0);
                                    break;
                                case 23:
                                    Play(GAStaticDefine.State_Skill23, 0);
                                    break;
                                case 24:
                                    Play(GAStaticDefine.State_Skill24, 0);
                                    break;
                                case 25:
                                    Play(GAStaticDefine.State_Skill25, 0);
                                    break;
                                case 26:
                                    Play(GAStaticDefine.State_Skill26, 0);
                                    break;
                                case 27:
                                    Play(GAStaticDefine.State_Skill27, 0);
                                    break;
                                case 28:
                                    Play(GAStaticDefine.State_Skill28, 0);
                                    break;
                                case 29:
                                    Play(GAStaticDefine.State_Skill29, 0);
                                    break;
                                case 99:
                                    Play(GAStaticDefine.State_RollHash, 0);
                                    break;
                            }
                        }
                    }
                    m_Step = 3;
                    break;
                case 3:
                    if (IsIdle())
                    {
                        m_Step = 0;
                    }
                    break;
            }
        }
    }
Fight/GameActor/GA_PlayerOffLine.cs
New file
@@ -0,0 +1,167 @@
using UnityEngine;
public class GA_PlayerOffLine : GA_Player
{
    // 简易的脱机挂AI草稿
    // 步骤 1. 寻点 2. 移动至 3. 放个普攻
    private byte m_Step;
    private Vector3 m_DestPos;
    private Vector3 m_RecordBornPos;
    private float m_WaitTime;
    private int m_ComAtkIndex;// 普攻索引
    private Skill m_CastSkill;// 要释放的技能
    protected sealed override void OnInit(GameNetPackBasic package)
    {
        base.OnInit(package);
        if (m_H0434.State == 1)
        {
            m_RecordBornPos = Pos;
            m_Step = 0;
        }
    }
    protected sealed override void OnUpdate()
    {
        base.OnUpdate();
        // 脱机挂
        if (m_H0434.State == 1)
        {
            switch (m_Step)
            {
                case 0:
                    //m_DestPos = m_RecordBornPos + Quaternion.Euler(0, Random.Range(0, 359), 0) * Vector3.forward * Random.Range(1f, 2f);
                    //TryGetValidPos(m_DestPos, ref m_DestPos);
                    if (SelectTarget == null)
                    {
                        SelectTarget = GAMgr.Instance.GetCloserFightNpc(Pos);
                    }
                    if (SelectTarget != null)
                    {
                        destForward = Forward = MathUtility.ForwardXZ(SelectTarget.Pos, Pos);
                    }
                    m_Step = 1;
                    break;
                case 1:
                    m_CastSkill = null;
                    for (int i = 0; i < JobSetup.HangupSkillList.Length; ++i)
                    {
                        if (SkillMgr.Get(JobSetup.HangupSkillList[i]).IsValid())
                        {
                            m_CastSkill = SkillMgr.Get(JobSetup.HangupSkillList[i]);
                            break;
                        }
                    }
                    if (m_CastSkill == null)
                    {
                        if (m_ComAtkIndex > JobSetup.ComAtkIdList.Length - 1)
                        {
                            m_ComAtkIndex = 0;
                        }
                        int _comSkillId = JobSetup.ComAtkIdList[m_ComAtkIndex];
                        m_CastSkill = SkillMgr.Get(_comSkillId);
                        m_ComAtkIndex += 1;
                    }
                    m_Step = 2;
                    break;
                case 2:
                    if (m_CastSkill != null)
                    {
                        SkillMgr.CastSkill(ServerInstID, m_CastSkill.id, true);
                        Vector3 _targetPosition = Pos + Forward * (m_CastSkill.skillInfo.config.AtkDist * .5f);
                        _targetPosition.y = 0;
                        UnityEngine.AI.NavMeshHit _navMeshHit;
                        if (UnityEngine.AI.NavMesh.Raycast(Pos, _targetPosition, out _navMeshHit, -1))
                        {
                            _targetPosition = _navMeshHit.position;
                        }
                        _targetPosition.y = Pos.y;
                        m_CastSkill.targetPosition = _targetPosition;
                        if (m_CastSkill.skillInfo.config.Skillactmark > 0
                         && m_CastSkill.skillInfo.config.Skillactmark < 20)
                        {
                            switch (m_CastSkill.skillInfo.config.Skillactmark)
                            {
                                case 10:
                                    Play(GAStaticDefine.State_Attack1Hash, 0);
                                    break;
                                case 11:
                                    Play(GAStaticDefine.State_Attack2Hash, 0);
                                    break;
                                case 12:
                                    Play(GAStaticDefine.State_Attack3Hash, 0);
                                    break;
                                case 13:
                                    Play(GAStaticDefine.State_Attack4Hash, 0);
                                    break;
                            }
                        }
                        else
                        {
                            switch (m_CastSkill.skillInfo.config.Skillactmark)
                            {
                                case 21:
                                    Play(GAStaticDefine.State_Skill21, 0);
                                    break;
                                case 22:
                                    Play(GAStaticDefine.State_Skill22, 0);
                                    break;
                                case 23:
                                    Play(GAStaticDefine.State_Skill23, 0);
                                    break;
                                case 24:
                                    Play(GAStaticDefine.State_Skill24, 0);
                                    break;
                                case 25:
                                    Play(GAStaticDefine.State_Skill25, 0);
                                    break;
                                case 26:
                                    Play(GAStaticDefine.State_Skill26, 0);
                                    break;
                                case 27:
                                    Play(GAStaticDefine.State_Skill27, 0);
                                    break;
                                case 28:
                                    Play(GAStaticDefine.State_Skill28, 0);
                                    break;
                                case 29:
                                    Play(GAStaticDefine.State_Skill29, 0);
                                    break;
                                case 99:
                                    Play(GAStaticDefine.State_RollHash, 0);
                                    break;
                            }
                        }
                    }
                    m_Step = 3;
                    break;
                case 3:
                    if (IsIdle())
                    {
                        m_Step = 0;
                    }
                    break;
            }
        }
    }
}
Fight/GameActor/GA_PlayerOffLine.cs.meta
New file
@@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: 2f3feddd674d7c448880d7b2b4c91e64
timeCreated: 1536378358
licenseType: Free
MonoImporter:
  serializedVersion: 2
  defaultReferences: []
  executionOrder: 0
  icon: {instanceID: 0}
  userData:
  assetBundleName:
  assetBundleVariant: