Exemplo n.º 1
0
 public AreaZoneNode(AreaService svc, CreateZoneNodeRequest create, MapTemplateData map_temp)
 {
     Alloc.RecordConstructor(GetType().ToVisibleName() + ":" + map_temp.id);
     this.log      = LoggerFactory.GetLogger(string.Format("{0}-{1}", GetType().Name, create.managerZoneUUID));
     this.service  = svc;
     this.create   = create;
     this.map_temp = map_temp;
     this.uuid     = create.managerZoneUUID;
     this.node     = CreateZoneNode(create);
 }
Exemplo n.º 2
0
        /// <summary>
        /// 从地图配置表,重新构建场景传送点
        /// </summary>
        /// <param name="from_sd"></param>
        /// <param name="from_map"></param>
        protected virtual void FillSceneTransport(SceneData from_sd, MapTemplateData from_map)
        {
            if (from_map.connect == null)
            {
                log.ErrorFormat("from_map connect = null : FromMap={0}", from_map.name);
                return;
            }

            foreach (var link in from_map.connect)
            {
                var from_flag = from_sd.Regions.Find(region => { return(region.Name == link.from_flag_name); });
                if (from_flag == null)
                {
                    log.ErrorFormat("Transport From Flag Not Found : FromMap={0} FromScene={1} >>>FromFlag={2}<<<", from_map, from_sd, link.from_flag_name);
                    continue;
                }
                var to_map = RPGServerTemplateManager.Instance.GetMapTemplate(link.to_map_id);
                if (to_map == null)
                {
                    log.ErrorFormat("Transport Target Map Not Found : FromMap={0} >>>ToMap={1}<<<", from_map, link.to_map_id);
                    continue;
                }
                var to_zone = GetSceneAsCache(to_map.zone_template_id);
                if (to_zone == null)
                {
                    log.ErrorFormat("Transport Target Scene Not Found : FromMap={0} ToMap={1} >>>ToZone={2}<<<", from_map, to_map, to_map.zone_template_id);
                    continue;
                }
                var to_flag = to_zone.Regions.Find(region => { return(region.Name == link.to_flag_name); });
                if (to_flag == null)
                {
                    log.ErrorFormat("Transport Target Flag Not Found : FromMap={0} ToMap={1} ToScene={2} >>>ToFlag={2}<<<", from_map, to_map, to_zone, link.to_flag_name);
                    continue;
                }
                var tp = from_flag.GetAbilityOf <SceneTransportAbilityData>();
                if (tp != null)
                {
                    log.ErrorFormat("Transport Already Exist : FromMap={0} FromZone={1} FromFlag={2} >>>Ability={3}<<<", from_map, from_sd, from_flag.Name, tp);
                }
                else
                {
                    tp = new SceneTransportAbilityData()
                    {
                        AcceptForceForAll = true,
                        Name              = "fill with " + from_map,
                        NextSceneID       = to_map.id,
                        NextScenePosition = link.to_flag_name,
                    };
                    from_flag.Abilities.Add(tp);
                    log.InfoFormat("Fill Scene Transport : FromMap={0} FromZone={1} FromFlag={2} ToMap={3} Ability={4}", from_map, from_sd, from_flag.Name, to_map, tp);
                }
            }
        }
Exemplo n.º 3
0
 protected virtual AreaZoneNode CreateZoneNode(CreateZoneNodeRequest create, MapTemplateData map)
 {
     return(new AreaZoneNode(this, create, map));
 }
Exemplo n.º 4
0
 public virtual bool AllowChangeLine(MapTemplateData data)
 {
     return(false);
 }
Exemplo n.º 5
0
 /// <summary>
 /// 一次性地图,每次都重新分配.
 /// </summary>
 /// <param name="data"></param>
 /// <returns></returns>
 public virtual bool IsDisposableMap(MapTemplateData data)
 {
     return(false);
 }
Exemplo n.º 6
0
 /// <summary>
 /// 是否是连服场景.
 /// </summary>
 /// <param name="data"></param>
 /// <returns></returns>
 public virtual bool IsCrossServerMap(MapTemplateData data)
 {
     return(false);
 }
Exemplo n.º 7
0
        //--------------------------------------------------------------------------------------

        /// <summary>
        /// 野外.
        /// </summary>
        /// <param name="data"></param>
        /// <returns></returns>
        public virtual bool IsPublicMap(MapTemplateData data)
        {
            return(true);
        }