コード例 #1
0
        public bool HasCombatNpcAlive()
        {
            bool result = false;

            for (LinkedListNode <NpcInfo> linkNode = m_Npcs.FirstValue; null != linkNode; linkNode = linkNode.Next)
            {
                NpcInfo npc = linkNode.Value;
                if (null != npc && npc.IsCombatNpc() && !npc.IsDead())
                {
                    result = true;
                    break;
                }
            }
            return(result);
        }
コード例 #2
0
        public NpcInfo GetNearest(Vector3 pos, ref float minPowDist)
        {
            NpcInfo result  = null;
            float   powDist = 0.0f;

            for (LinkedListNode <NpcInfo> linkNode = m_Npcs.FirstValue; null != linkNode; linkNode = linkNode.Next)
            {
                NpcInfo npc = linkNode.Value;
                if (null != npc && npc.IsCombatNpc())
                {
                    powDist = Geometry.DistanceSquare(pos, npc.GetMovementStateInfo().GetPosition3D());
                    if (minPowDist > powDist)
                    {
                        result     = npc;
                        minPowDist = powDist;
                    }
                }
            }
            return(result);
        }