Exemplo n.º 1
0
        public bool GetItem3D(string name, out Mesh Mesh, out Material[] Materials)
        {
            Mesh      = new Mesh();
            Materials = new Material[0];
            if (!isReady)
            {
                return(false);
            }

            byte[] data;
            if (!name.Contains("ITEMS3D"))
            {
                data = dataFileReader.GetFile(Path.Combine("ITEMS3D", name));
            }
            else
            {
                data = dataFileReader.GetFile(name);
            }


            if (data.Length == 0)
            {
                Wizardry8Unity.LogMessage(string.Format("Unknown Item '{0}'.", name), true);
            }
            var file = new ItemsFile(data, System.IO.Path.GetFileNameWithoutExtension(name));

            Mesh      = file.ItemMesh;
            Materials = file.ItemMaterials;

            return(true);
        }
Exemplo n.º 2
0
        /// 조회
        private void InitModel()
        {
            ItemsSelect.Clear();
            ItemsFile.Clear();

            //저장된 shp파일 목록
            DirectoryInfo di = new DirectoryInfo(BizUtil.GetDataFolder("shape"));

            //foreach (FileInfo fi in di.GetFiles().Where(f=> f.Extension.Contains("shp") || f.Extension.Contains("dbf") || f.Extension.Contains("prj") || f.Extension.Contains("shx")))
            foreach (FileInfo fi in di.GetFiles().Where(f => f.Extension.Contains("shp")))
            {
                try
                {
                    FileDtl dtl = new FileDtl();
                    dtl.DWN_NAM = fi.Name;
                    dtl.FIL_TYP = fi.Extension.Replace(".", "");
                    dtl.FIL_SIZ = fi.Length.ToString();

                    //파일객체
                    ItemsSelect.Add(dtl);
                }
                catch (Exception e)
                {
                    Console.WriteLine(e.Message);
                }
            }
        }
Exemplo n.º 3
0
    public IModable copyDeep()
    {
        var result = new ItemsFile();

        result.Items = Modable.copyDeep(Items);
        return(result);
    }
Exemplo n.º 4
0
        /// <summary>
        /// Initial implementation just dumps ItemDescription to JSON.
        /// </summary>
        /// <param name="fallExePath">Path to FALL.EXE containing item database.</param>
        /// <param name="outputPath">Output path for JSON file.</param>
        public static void CreateJSON(string fallExePath, string outputPath)
        {
            ItemsFile itemsFile = new ItemsFile(fallExePath);
            List <ItemDescription> itemDescriptions = new List <ItemDescription>(itemsFile.ItemsCount);

            for (int i = 0; i < itemsFile.ItemsCount; i++)
            {
                itemDescriptions.Add(itemsFile.GetItemDescription(i));
            }
        }
Exemplo n.º 5
0
        /// <summary>
        /// Initial implementation just dumps ItemDescription to JSON.
        /// </summary>
        /// <param name="fallExePath">Path to FALL.EXE containing item database.</param>
        /// <param name="outputPath">Output path for JSON file.</param>
        public static void CreateJSON(string fallExePath, string outputPath)
        {
            ItemsFile           itemsFile        = new ItemsFile(fallExePath);
            List <ItemTemplate> itemDescriptions = new List <ItemTemplate>(itemsFile.ItemsCount);

            for (int i = 0; i < itemsFile.ItemsCount; i++)
            {
                itemDescriptions.Add(itemsFile.GetItemDescription(i));
            }

            string json = SaveLoadManager.Serialize(itemDescriptions.GetType(), itemDescriptions);

            File.WriteAllText(outputPath, json);
        }
Exemplo n.º 6
0
        public void DropRecord(List <FileInfo> filesData)
        {
            foreach (FileInfo fi in filesData)
            {
                if (!ItemsFile.Any(x => x.FullName == fi.FullName))
                {
                    //파일객체
                    ItemsFile.Add(fi);

                    //파일db객체
                    FileDtl dtl = new FileDtl();
                    dtl.DWN_NAM = fi.Name;
                    dtl.FIL_TYP = fi.Extension.Replace(".", "");
                    dtl.FIL_SIZ = fi.Length.ToString();
                    ItemsSelect.Add(dtl);
                }
            }
        }
Exemplo n.º 7
0
        private void AnaForm_Load(object sender, EventArgs e)
        {
            ShowForm();

            timer1.Interval = 1000;
            timer1.Start();
            saatGoster();

            calendar1.TimeUnitsOffset = -16;

            lbltarih.Text = DateTime.Now.ToShortDateString();
            this.Text     = "** Önal Kuaför ve Güzellik Salonu ** www.onalkuafor.com.tr";

            //NotifyIcon başlıyor.
            onalKuafor.ShowBalloonTip(2000, "Önal Kuaför Programı", "Hoşgeldiniz...", ToolTipIcon.Info);

            if (DateTime.Now.DayOfWeek.ToString() == "Friday")
            {
                timer1.Start();
            }

            //Ajanda

            if (ItemsFile.Exists)
            {
                List <ItemInfo> lst = new List <ItemInfo>();
                XmlSerializer   xml = new XmlSerializer(lst.GetType());
                using (Stream s = ItemsFile.OpenRead())
                {
                    lst = xml.Deserialize(s) as List <ItemInfo>;
                }
                foreach (ItemInfo item in lst)
                {
                    CalendarItem cal = new CalendarItem(calendar1, item.StartTime, item.EndTime, item.Text);
                    if (!(item.R == 0 && item.G == 0 && item.B == 0))
                    {
                        cal.ApplyColor(Color.FromArgb(item.A, item.R, item.G, item.B));
                    }
                    _items.Add(cal);
                }
                PlaceItems();
            }
        }
Exemplo n.º 8
0
    // Use this for initialization
    void Start()
    {
        var slf     = new SLFFile(@"W8\Data\DATA.SLF");
        var itemstr = @"ITEMS3D\BOOKFOUR.ITM";
        var data    = slf.GetFile(itemstr);

        // var file2 = new ItemsFile(@"W8\Data\ITEMS3D\JACKHAMMER.ITM");
        var file = new ItemsFile(data, System.IO.Path.GetFileNameWithoutExtension(itemstr));
        var go   = new GameObject();

        go.name = file.Name;

        var meshfilter = go.AddComponent <MeshFilter>();

        meshfilter.sharedMesh = file.ItemMesh;

        var meshRend = go.AddComponent <MeshRenderer>();

        meshRend.sharedMaterial = file.ItemMaterials[0];
        meshRend.materials      = file.ItemMaterials;
    }
Exemplo n.º 9
0
        public ItemFactory(OtbFile otbFile, DatFile datFile, ItemsFile itemsFile)
        {
            metadatas = new Dictionary <ushort, ItemMetadata>(datFile.Items.Count);

            foreach (var otbItem in otbFile.Items)
            {
                if (otbItem.Group != ItemGroup.Deprecated)
                {
                    metadatas.Add(otbItem.OpenTibiaId, new ItemMetadata()
                    {
                        TibiaId = otbItem.TibiaId,

                        OpenTibiaId = otbItem.OpenTibiaId
                    });
                }
            }

            var lookup = otbFile.Items.ToLookup(otbItem => otbItem.TibiaId, otbItem => otbItem.OpenTibiaId);

            foreach (var datItem in datFile.Items)
            {
                foreach (var openTibiaId in lookup[datItem.TibiaId])
                {
                    ItemMetadata metadata = metadatas[openTibiaId];

                    if (datItem.Flags.Is(ItemFlags.IsGround))
                    {
                        metadata.TopOrder = TopOrder.Ground;
                    }
                    else if (datItem.Flags.Is(ItemFlags.AlwaysOnTop1))
                    {
                        metadata.TopOrder = TopOrder.HighPriority;
                    }
                    else if (datItem.Flags.Is(ItemFlags.AlwaysOnTop2))
                    {
                        metadata.TopOrder = TopOrder.MediumPriority;
                    }
                    else if (datItem.Flags.Is(ItemFlags.AlwaysOnTop3))
                    {
                        metadata.TopOrder = TopOrder.LowPriority;
                    }
                    else
                    {
                        metadata.TopOrder = TopOrder.Other;
                    }

                    if (datItem.Flags.Is(ItemFlags.IsContainer))
                    {
                        metadata.Flags |= ItemMetadataFlags.IsContainer;
                    }

                    if (datItem.Flags.Is(ItemFlags.Stackable))
                    {
                        metadata.Flags |= ItemMetadataFlags.Stackable;
                    }

                    if (datItem.Flags.Is(ItemFlags.Useable))
                    {
                        metadata.Flags |= ItemMetadataFlags.Useable;
                    }

                    if (datItem.Flags.Is(ItemFlags.NotWalkable))
                    {
                        metadata.Flags |= ItemMetadataFlags.NotWalkable;
                    }

                    if (datItem.Flags.Is(ItemFlags.NotMoveable))
                    {
                        metadata.Flags |= ItemMetadataFlags.NotMoveable;
                    }

                    if (datItem.Flags.Is(ItemFlags.BlockProjectile))
                    {
                        metadata.Flags |= ItemMetadataFlags.BlockProjectile;
                    }

                    if (datItem.Flags.Is(ItemFlags.BlockPathFinding))
                    {
                        metadata.Flags |= ItemMetadataFlags.BlockPathFinding;
                    }

                    if (datItem.Flags.Is(ItemFlags.Pickupable))
                    {
                        metadata.Flags |= ItemMetadataFlags.Pickupable;
                    }

                    if (datItem.Flags.Is(ItemFlags.Rotatable))
                    {
                        metadata.Flags |= ItemMetadataFlags.Rotatable;
                    }

                    if (datItem.ItemHeight > 0)
                    {
                        metadata.Flags |= ItemMetadataFlags.HasHeight;
                    }

                    metadata.Speed = datItem.Speed;

                    if (datItem.LightLevel > 0 || datItem.LightColor > 0)
                    {
                        metadata.Light = new Light((byte)datItem.LightLevel, (byte)datItem.LightColor);
                    }
                }
            }

            foreach (var xmlItem in itemsFile.Items)
            {
                if (xmlItem.OpenTibiaId < 20000)
                {
                    ItemMetadata metadata = metadatas[xmlItem.OpenTibiaId];

                    metadata.Name = xmlItem.Name;

                    metadata.Capacity = xmlItem.ContainerSize;

                    metadata.FloorChange = xmlItem.FloorChange;
                }
            }
        }
Exemplo n.º 10
0
        public void Start()
        {
            dispatcher = new Dispatcher();

            scheduler = new Scheduler(dispatcher);

            listeners = new List <Listener>();

            listeners.Add(new Listener(7171, socket => new LoginConnection(this, socket)));

            listeners.Add(new Listener(7172, socket => new GameConnection(this, socket)));

            Clock = new Clock(12, 0);

            Logger = new Logger();

            Channels = new ChannelCollection();

            RuleViolations = new RuleViolationCollection();

            PacketsFactory = new PacketsFactory();

            using (Logger.Measure("Loading items", true))
            {
                var otb = OtbFile.Load("data/items/items.otb");

                var dat = DatFile.Load("data/items/tibia.dat");

                var items = ItemsFile.Load("data/items/items.xml");

                ItemFactory = new ItemFactory(otb, dat, items);
            }

            using (Logger.Measure("Loading monsters", true))
            {
                var monsters = MonsterFile.Load("data/monsters");

                MonsterFactory = new MonsterFactory(monsters);
            }

            using (Logger.Measure("Loading npcs", true))
            {
                var npcs = NpcFile.Load("data/npcs");

                NpcFactory = new NpcFactory(npcs);
            }

            using (Logger.Measure("Loading map", true))
            {
                var otbm = OtbmFile.Load("data/map/pholium3.otbm");

                Map = new Map(ItemFactory, otbm);
            }

            Pathfinding = new Pathfinding(Map);

            Events = new EventsCollection();

            Scripts = new ScriptsCollection();

            using (Logger.Measure("Loading scripts", true))
            {
                Scripts.Start(this);
            }

            dispatcher.Start();

            scheduler.Start();

            foreach (var listener in listeners)
            {
                listener.Start();
            }

            Logger.WriteLine("Server online");
        }