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); } } }
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); }
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); }
public Entity(UInt64 guid, EEntityCampType campType) { GameObjGuid = guid; EntityCamp = campType; GOSyncInfo = new GameObjectSyncInfo(); }
public SelfPlayer(UInt64 guid, EEntityCampType campType) : base(guid, campType) { }
public Player(UInt64 guid, EEntityCampType campType) : base(guid, campType) { BattleData = new PlayerBattleData(); }