Esempio n. 1
0
        public void OnReceiveGameObjectAppear(GSToGC.GOAppear msg)
        {
            foreach (GSToGC.GOAppear.AppearInfo info in msg.info)
            {
                UInt64 masterGuid = info.masterguid;
                UInt64 objGuid    = info.objguid;
                if (objGuid < 1)
                {
                    DebugEx.LogError("objguid : " + objGuid);
                }
                Int32   camp  = info.camp;
                Vector3 mvPos = VectorUtil.ConvertPosToVector3(info.pos);
                Vector3 mvDir = VectorUtil.ConvertDirToVector3(info.dir);
                mvDir.y = 0.0f;
                EEntityCampType type    = GetEntityCampType(camp);
                GSToGC.ObjType  objType = info.obj_type;

                if (EntityManager.Instance.GetAllEntities().ContainsKey(objGuid))
                {
                    if (objType == GSToGC.ObjType.ObjType_Hero)
                    {
                        // PlayerManager
                    }
                    continue;
                }

                Entity entity = null;
                if (IfTypeHero((EObjectType)info.obj_type_id))
                {
                    Player player = null;
                    if (!PlayerManager.Instance.GetAllPlayers().TryGetValue(masterGuid, out player))
                    {
                        player = (Player)PlayerManager.Instance.HandleCreateEntity(masterGuid, type);
                        PlayerManager.Instance.AddPlayer(masterGuid, player);
                    }
                    player.EntityCamp = type;
                    player.ObjTypeID  = info.obj_type_id;
                    entity            = player;
                    PlayerManager.Instance.CreateEntityModel(entity, objGuid, mvDir, mvPos);
                    CreateCharacterController(entity);
                }
                if (entity != null)
                {
                    entity.GameObjGuid = objGuid;
                    EntityManager.Instance.AddEntity(objGuid, entity);
                    entity.GOSyncInfo.BeginPos = mvPos;
                    entity.GOSyncInfo.SyncPos  = mvPos;
                    entity.EntityFSMChangedata(mvPos, mvDir);
                    entity.OnFSMStateChange(EntityFreeFSM.Instance);
                }
            }
        }
Esempio n. 2
0
        public Entity HandleCreateEntity(UInt64 guid, EEntityCampType campType)
        {
            Player player = null;

            UDK.Output.Dump(UserInfoModel.Instance.IsLocalPlayer(guid), "88888");
            if (true || UserInfoModel.Instance.IsLocalPlayer(guid))
            {
                player = new SelfPlayer(guid, campType);
            }
            else
            {
                player = new Player(guid, campType);
            }
            player.GameUserId = guid;
            return(player);
        }
Esempio n. 3
0
        private EEntityCampType GetEntityCampType(int campId)
        {
            EEntityCampType type = (EEntityCampType)campId;

            if (campId > 0)
            {
                if (campId % 2 == 0)
                {
                    type = EEntityCampType.B;
                }
                else
                {
                    type = EEntityCampType.A;
                }
            }
            return(type);
        }
Esempio n. 4
0
 public Entity(UInt64 guid, EEntityCampType campType)
 {
     GameObjGuid = guid;
     EntityCamp  = campType;
     GOSyncInfo  = new GameObjectSyncInfo();
 }
Esempio n. 5
0
 public SelfPlayer(UInt64 guid, EEntityCampType campType) : base(guid, campType)
 {
 }
Esempio n. 6
0
 public Player(UInt64 guid, EEntityCampType campType) : base(guid, campType)
 {
     BattleData = new PlayerBattleData();
 }