Esempio n. 1
0
        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);
        }
Esempio n. 2
0
        public virtual void BuildLogicWorld(WorldCreationContext world_context)
        {
            m_player_manager.SetPstidAndProxyid(world_context.m_pstid2proxyid, world_context.m_proxyid2pstid);
            IConfigProvider config = GetConfigProvider();

            for (int i = 0; i < world_context.m_players.Count; ++i)
            {
                ObjectCreationContext context = world_context.m_players[i];
                context.m_logic_world = this;
                context.m_type_data   = config.GetObjectTypeData(context.m_object_type_id);
                context.m_proto_data  = config.GetObjectProtoData(context.m_object_proto_id);
                m_player_manager.CreateObject(context);
            }
            OnPlayersCreated();
            for (int i = 0; i < world_context.m_entities.Count; ++i)
            {
                ObjectCreationContext context = world_context.m_entities[i];
                context.m_logic_world = this;
                context.m_type_data   = config.GetObjectTypeData(context.m_object_type_id);
                context.m_proto_data  = config.GetObjectProtoData(context.m_object_proto_id);
                m_entity_manager.CreateObject(context);
            }
            m_player_manager.OnWorldBuilt();
        }
Esempio n. 3
0
        protected virtual void BuildLogicWorld(CombatStartInfo combat_start_info)
        {
            WorldCreationContext world_context = m_combat_factory.CreateWorldCreationContext(combat_start_info);

            m_logic_world.BuildLogicWorld(world_context);
        }
Esempio n. 4
0
        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);
        }