Exemplo n.º 1
0
        private void InitNpc()
        {
            for (int i = 0; i < Config.Npcs.Count; i++)
            {
                MapNpc mapdata = Config.Npcs[i];

                int            entityId = GameEntry.Entity.GenerateSerialId();
                RoleEntityData data     = new RoleEntityData(entityId, mapdata.Id, ActorType.Npc, BattleCampType.Neutral)
                {
                    Position = mapdata.Position,
                    Rotation = Quaternion.Euler(mapdata.Euler),
                    Scale    = mapdata.Scale
                };
                GameEntry.Entity.ShowRole <NpcRole>(data);
            }
        }
Exemplo n.º 2
0
        public override XmlObject Export()
        {
            MapNpc data = new MapNpc
            {
                Id       = Id,
                Position = Position,
                Euler    = Euler,
                Talks    = Talks,
                Scale    = Scale
            };

            if (PatrolPathNodeSet != null)
            {
                data.PatrolPathNodeSet = (MapPathNodeSet)PatrolPathNodeSet.Export();
            }
            return(data);
        }
Exemplo n.º 3
0
        public override void Import(XmlObject pData, bool pBuild)
        {
            MapNpc data = pData as MapNpc;

            Id = data.Id;

            Position = data.Position;
            Euler    = data.Euler;
            Talks    = data.Talks;
            Scale    = data.Scale;

            if (data.PatrolPathNodeSet != null)
            {
                GameObject go = new GameObject();
                go.transform.parent           = transform;
                go.transform.localPosition    = Vector3.zero;
                go.transform.localEulerAngles = Vector3.zero;
                PatrolPathNodeSet             = go.AddComponent <LevelPathNodeSet>();
                PatrolPathNodeSet.Import(data.PatrolPathNodeSet, pBuild);
            }

            this.Build();
            this.SetName();
        }
Exemplo n.º 4
0
        public override void Read(XmlNode os)
        {
            foreach (XmlNode current in XmlObject.GetChilds(os))
            {
                switch (current.Name)
                {
                case "Id":
                    this.Id = ReadInt(current);
                    break;

                case "Delay":
                    this.Delay = ReadFloat(current);
                    break;

                case "MapName":
                    this.MapName = ReadString(current);
                    break;

                case "MapPath":
                    this.MapPath = ReadString(current);
                    break;

                case "AllowRide":
                    this.AllowRide = ReadBool(current);
                    break;

                case "AllowPK":
                    this.AllowPK = ReadBool(current);
                    break;

                case "AllowTrade":
                    this.AllowTrade = ReadBool(current);
                    break;

                case "AllowFight":
                    this.AllowFight = ReadBool(current);
                    break;

                case "Ally":
                    this.Ally = new MapBorn();
                    this.Ally.Read(current);
                    break;

                case "Enemy":
                    this.Enemy = new MapBorn();
                    this.Enemy.Read(current);
                    break;

                case "Neutral":
                    this.Neutral = new MapBorn();
                    this.Neutral.Read(current);
                    break;

                case "Barriers":
                    XmlObject.GetChilds(current).ForEach(delegate(XmlNode pNode)
                    {
                        MapBarrier data = new MapBarrier();
                        data.Read(pNode);
                        this.Barriers.Add(data);
                    });
                    break;

                case "Portals":
                    XmlObject.GetChilds(current).ForEach(delegate(XmlNode pNode)
                    {
                        MapPortal data = new MapPortal();
                        data.Read(pNode);
                        this.Portals.Add(data);
                    });
                    break;

                case "Regions":
                    XmlObject.GetChilds(current).ForEach(delegate(XmlNode pNode)
                    {
                        MapRegion data = ReadDynamicObject <MapRegion>(pNode);
                        this.Regions.Add(data);
                    });
                    break;

                case "MonsterGroups":
                    XmlObject.GetChilds(current).ForEach(delegate(XmlNode pNode)
                    {
                        MapMonsterGroup data = new MapMonsterGroup();
                        data.Read(pNode);
                        this.MonsterGroups.Add(data);
                    });
                    break;

                case "MineGroups":
                    XmlObject.GetChilds(current).ForEach(delegate(XmlNode pNode)
                    {
                        MapMineGroup data = new MapMineGroup();
                        data.Read(pNode);
                        this.MineGroups.Add(data);
                    });
                    break;

                case "WaveSets":
                    XmlObject.GetChilds(current).ForEach(delegate(XmlNode pNode)
                    {
                        MapWaveSet data = new MapWaveSet();
                        data.Read(pNode);
                        this.WaveSets.Add(data);
                    });
                    break;

                case "Npcs":
                    XmlObject.GetChilds(current).ForEach(delegate(XmlNode pNode)
                    {
                        MapNpc data = new MapNpc();
                        data.Read(pNode);
                        this.Npcs.Add(data);
                    });
                    break;
                }
            }
        }