public virtual void Initializa(long local_player_pstid, CombatStartInfo combat_start_info) { //真正的local_player_pstid在局外,传进来就好;combat_start_info是给所有玩家、观战者、以及录像回放时,都一致的消息 m_local_player_pstid = local_player_pstid; m_level_data = GetConfigProvider().GetLevelData(combat_start_info.m_level_id); m_state = CombatClientState.Loading; m_state_frame_cnt = 0; m_state_start_time = -1; m_last_update_time = -1; m_waiting_cnt = 0; #if UNITY_EDITOR m_is_first_frame = true; #endif AttributeSystem.Instance.InitializeAllDefinition(m_combat_factory.GetConfigProvider()); ComponentTypeRegistry.RegisterDefaultComponents(); BehaviorTreeNodeTypeRegistry.RegisterDefaultNodes(); DamageModifier.RegisterDefaultModifiers(); m_combat_factory.RegisterCommands(); BehaviorTreeFactory.Instance.SetConfigProvider(m_combat_factory.GetConfigProvider()); m_logic_world = m_combat_factory.CreateLogicWorld(); m_logic_world.Initialize(this, combat_start_info.m_world_seed, true); m_render_world = m_combat_factory.CreateRenderWorld(); m_render_world.Initialize(this, m_logic_world); m_logic_world.SetIRenderWorld(m_render_world); m_sync_client = m_combat_factory.CreateSyncClient(); m_sync_client.Init(m_logic_world); BuildLogicWorld(combat_start_info); BuildRenderWorld(m_level_data); }
public void Initialize() { CombatStartInfo csi = new CombatStartInfo(); csi.m_level_id = 1; csi.m_world_seed = 1; m_combat_client = new CombatClient(new MyCombatFactory()); m_combat_client.Initializa(TEST_LOCAL_PLAYER_PSTID, csi); m_combat_client.AddPlayer(TEST_LOCAL_PLAYER_PSTID); m_init = true; }
public virtual void Initializa(CombatStartInfo combat_start_info) { AttributeSystem.Instance.InitializeAllDefinition(m_combat_factory.GetConfigProvider()); m_level_data = GetConfigProvider().GetLevelData(combat_start_info.m_level_id); m_logic_world = m_combat_factory.CreateLogicWorld(); m_logic_world.Initialize(this, combat_start_info.m_world_seed, false); m_sync_server = m_combat_factory.CreateSyncServer(); m_sync_server.Init(m_logic_world); WorldCreationContext world_context = m_combat_factory.CreateWorldCreationContext(combat_start_info); m_logic_world.BuildLogicWorld(world_context); }
protected virtual void BuildLogicWorld(CombatStartInfo combat_start_info) { WorldCreationContext world_context = m_combat_factory.CreateWorldCreationContext(combat_start_info); m_logic_world.BuildLogicWorld(world_context); }
public WorldCreationContext CreateWorldCreationContext(CombatStartInfo combat_start_info) { WorldCreationContext world_context = new WorldCreationContext(); world_context.m_level_id = combat_start_info.m_level_id; world_context.m_game_mode = combat_start_info.m_game_mode; world_context.m_world_seed = combat_start_info.m_world_seed; //本地玩家 world_context.m_pstid2proxyid[CombatTester.TEST_LOCAL_PLAYER_PSTID] = PlayerManager.LOCAL_PLAYER_PROXYID; world_context.m_proxyid2pstid[PlayerManager.LOCAL_PLAYER_PROXYID] = CombatTester.TEST_LOCAL_PLAYER_PSTID; ObjectCreationContext obj_context = new ObjectCreationContext(); obj_context.m_object_proxy_id = PlayerManager.LOCAL_PLAYER_PROXYID; obj_context.m_object_type_id = 3; obj_context.m_object_proto_id = -1; obj_context.m_is_local = true; world_context.m_players.Add(obj_context); //NPC敌人玩家 long proxy_pstid = PlayerManager.AI_ENEMY_PLAYER_PROXYID; world_context.m_pstid2proxyid[proxy_pstid] = PlayerManager.AI_ENEMY_PLAYER_PROXYID; world_context.m_proxyid2pstid[PlayerManager.AI_ENEMY_PLAYER_PROXYID] = proxy_pstid; obj_context = new ObjectCreationContext(); obj_context.m_object_proxy_id = PlayerManager.AI_ENEMY_PLAYER_PROXYID; obj_context.m_object_type_id = 2; obj_context.m_object_proto_id = -1; world_context.m_players.Add(obj_context); //本地玩家的Entity obj_context = new ObjectCreationContext(); obj_context.m_object_proxy_id = PlayerManager.LOCAL_PLAYER_PROXYID; obj_context.m_object_type_id = 111; obj_context.m_object_proto_id = 111001; obj_context.m_birth_info = new BirthPositionInfo(new FixPoint(-5), new FixPoint(0), new FixPoint(-5), new FixPoint(90)); obj_context.m_is_local = true; world_context.m_entities.Add(obj_context); obj_context = new ObjectCreationContext(); obj_context.m_object_proxy_id = PlayerManager.LOCAL_PLAYER_PROXYID; obj_context.m_object_type_id = 101; obj_context.m_object_proto_id = 101002; obj_context.m_birth_info = new BirthPositionInfo(new FixPoint(-5), new FixPoint(0), new FixPoint(0), new FixPoint(90)); obj_context.m_is_local = true; obj_context.m_is_ai = true; world_context.m_entities.Add(obj_context); obj_context = new ObjectCreationContext(); obj_context.m_object_proxy_id = PlayerManager.LOCAL_PLAYER_PROXYID; obj_context.m_object_type_id = 112; obj_context.m_object_proto_id = 112001; obj_context.m_birth_info = new BirthPositionInfo(new FixPoint(-5), new FixPoint(0), new FixPoint(7), new FixPoint(90)); obj_context.m_is_local = true; obj_context.m_is_ai = true; world_context.m_entities.Add(obj_context); //NPC敌人玩家Entity obj_context = new ObjectCreationContext(); obj_context.m_object_proxy_id = PlayerManager.AI_ENEMY_PLAYER_PROXYID; obj_context.m_object_type_id = 101; obj_context.m_object_proto_id = 101001; obj_context.m_birth_info = new BirthPositionInfo(new FixPoint(5), new FixPoint(0), new FixPoint(0), new FixPoint(90));; world_context.m_entities.Add(obj_context); return(world_context); }