Exemplo n.º 1
0
 /// <summary>
 /// 获取实体类型
 /// </summary>
 /// <param name="type">proto里面定义的类型</param>
 /// <returns></returns>
 public static EntityType GetEntityEtype(GameCmd.SceneEntryType type)
 {
     if (type == GameCmd.SceneEntryType.SceneEntry_Player)
     {
         return(EntityType.EntityType_Player);
     }
     else if (type == GameCmd.SceneEntryType.SceneEntry_NPC)
     {
         return(EntityType.EntityType_NPC);
     }
     else if (type == GameCmd.SceneEntryType.SceneEntry_Object)
     {
         return(EntityType.EntityType_Null);
     }
     else
     {
         return(EntityType.EntityType_Null);
     }
 }
Exemplo n.º 2
0
        // 根据服务器类型和id获取实体对象
        public static IEntity GetEntity(GameCmd.SceneEntryType type, uint id)
        {
            Client.EntityType t = GetEntityEtype(type);

            Client.IEntitySystem es = EntitySystem.m_ClientGlobal.GetEntitySystem();
            if (es == null)
            {
                return(null);
            }

            switch (t)
            {
            case EntityType.EntityType_Player:
            {
                return(es.FindPlayer(id));
            }

            case EntityType.EntityType_NPC:
            {
                IEntity en = es.FindNPC(id);
                if (en == null)
                {
                    en = es.FindRobot(id);
                }
                return(en);
            }

            case EntityType.EntityType_Monster:
            {
                return(es.FindMonster(id));
            }

            case EntityType.EntityType_Item:
            {
                return(es.FindItem(id));
            }
            }

            return(null);
        }