Забыл добавить переделал. его ставили многие проекты как и всякие шаблоны от дкартс. Да и на 2 скрине дизайн кривой рипать не научился.
Отредактирует так что сервер плясать будет
Советую езжай забугорье. Хоть и много в рашке где был но русские курорты так не могут как например Тайланд.
Алёши, вы не так понимаете слово дроп. как выяснилось позже дроп это соотношение уровня перса с уровнем моба. чем выше число тем больше шанс что перс 150 уровня убив моба 30 уровня дропнет с него предмет(ы). Я рад что ты знаешь. Ни в одном редакторе дроп не работает тк его надо править исключительно в элементе.
Дроп не работает :D
А она могут так же находиться в home например? Или чтобы работали должны только www/
2к от силы, и то если настроение будет Бутылка водки для настроения и 1800 +-300
Если редактор твой написанный, то сделай открытие по структуре файла, типа :«если нажать на открыть файл, он предложит версию и структуру как у Ронни например» Бло так то легко сделать. А других способов нет так понимаю
Да я же вроде понятно все написал. Еще раз попробую. Существует такая игра Jade Dynasty и как у всех игр у нее есть версии. Версия игры была 228 а у версии игры 228 версия элемента 138. Потом она обновилась до 301 но версия элемента осталась та же. Только вот в чем проблема у версии игры 228 у элемента структура отличается от версии игры 301. Как быть если я в редакторе сначала спрашиваю какая версия а потом начинаю грузить структуру. То есть при открытии 301 он начинает грузить его по структуре 228. Ну вот как то так P.S int 3 типа 2 не уместилось или так задумано? ;)
5500 никуда уже не лезет :|
Огурец слон купил пещера антибиотик. Как быть с этим? Как это относится к программированию?
Кто кого грузить начинает? У меня есть 2 элемента версии игры 228 и 301 а в элементах версия одинаковая но стркутуры разные. Вот в чем проблема
Ну вообщем проблема такая есть версия игры 228 жд и версия элемента 138 потом открываю версию 301 версия элемента тоже 138 и мне начинает грузить по структуре 228. Как быть с этим?
int i = dataGridView.ItemIndex; if (i > -1) switch (i) { case 0: //Что-то делаем с первым листом break; case 1: //Что-то делаем со вторым листом break; ... } Если всё ещё непонятно, советую дальше изучать основы и писать простые приложения. Бло то есть мы сначала получаем все итемы которые есть в допустим во 2 листе а потом мы тыкаем на него и высвечиваетсяе его ид и имя? Или это только иды и имена самих итемов?
Что то я сижу разбираюсь и никак не могу понять. Вот это структура Dynam... namespace ElementEditor.Resources { struct Object { public int ID; public string Patch; } } А вот это структура 2 и 3 листа элемента namespace ElementEditor.Resources { struct Object { public int ID; public string Name; } } Но я не могу понять как мне обратиться именно ко 2 листу. Проблема в том что код который выше он был на весь файл а тут через какие то промежутки идут разные структуры. Может кто пример написать как она должна выглядеть для 2 листа и как именно к ней обратиться а не к 1 или 3 а то я уже весь мозг сломал :(
Вот есть структура элемента class EQUIPMENT_ADDON { u32 id; wchar_t name[32]; s32 type; s32 num_params; s32 param1; s32 param2; s32 param3; } class EQUIPMENT_MAJOR_TYPE { u32 id; wchar_t name[32]; } class EQUIPMENT_SUB_TYPE { u32 id; wchar_t name[32]; } class EQUIPMENT_ESSENCE { u32 id; u32 id_major_type; u32 id_sub_type; wchar_t name[32]; u32 equip_type; Тут 2 и 3 совершенно одинаковы и как с ними быть? Если допустим я хочу вывести только 1 структуру например EQUIPMENT_MAJOR_TYPE как объяснить чтобы не выводил 3 или хотя бы как правильно их выводить? struct Object { public int ID; public string Name; } ну и сама структура ничем не отличается от DynamicObjects даты По чтению тебе сюда https://github.com/skynet2/tools/blob/master/PW/editor/pwAPI/pwAPI/Readers/ElementReader.cs По выводу тебе сюда https://github.com/skynet2/tools/blob/master/PW/editor/editor/Form1.cs , а конкретней в combobox1 & listbox1 Там чтение из конфига а у меня чуток по другому
Куда выводить? Без описания полной задачи очень сложно угадать, что требуется. Сорян не так выразился как прочитать из элемента 2 структуры 2 и 3
Вот есть структура элемента class EQUIPMENT_ADDON { u32 id; wchar_t name[32]; s32 type; s32 num_params; s32 param1; s32 param2; s32 param3; } class EQUIPMENT_MAJOR_TYPE { u32 id; wchar_t name[32]; } class EQUIPMENT_SUB_TYPE { u32 id; wchar_t name[32]; } class EQUIPMENT_ESSENCE { u32 id; u32 id_major_type; u32 id_sub_type; wchar_t name[32]; u32 equip_type; Тут 2 и 3 совершенно одинаковы и как с ними быть? Если допустим я хочу вывести только 1 структуру например EQUIPMENT_MAJOR_TYPE как объяснить чтобы не выводил 3 или хотя бы как правильно их выводить? struct Object { public int ID; public string Name; } ну и сама структура ничем не отличается от DynamicObjects даты
И есть еще вопрос: в редакторе для DynamicObjects всего 1 структура но есть и файлы в которых их больше 1,2 кто сможет объяснить как обращаться не только к 1 но и к 2 или оболее структурам и получать значения.
Ну как и многие мне интересно написать какой нибудь редактор и начал с самого простого. на форуме нашел тему как делается редактор для DynamicObjects сделал по примеру открывает изменяет но не сохраняет. Подскажите почему он сохраняет исходный файл а больше ничего не изменяет. private void открытьToolStripMenuItem_Click(object sender, EventArgs e) { OpenFileDialog OpenFile = new OpenFileDialog(); OpenFile.Filter = "Data files(*.data)|*.data"; if (OpenFile.ShowDialog() == DialogResult.OK) { Resources.ChangeFile.Open(OpenFile.FileName); } dataGridView1.Rows.Clear(); for (int i = 0; i < Resources.ChangeFile.Objects.Length; i++) { dataGridView1.Rows.Add(Resources.ChangeFile.Objects[I].ID, Resources.ChangeFile.Objects[I].Path); } } private void сохранитьToolStripMenuItem_Click(object sender, EventArgs e) { SaveFileDialog SaveFile = new SaveFileDialog(); SaveFile.Filter = "Data files(*.data)|*.data"; if (SaveFile.ShowDialog() == DialogResult.OK) { byte[] FileArray = Resources.ChangeFile.Save(); Directory.CreateDirectory(Path.GetDirectoryName(SaveFile.FileName)); File.WriteAllBytes(SaveFile.FileName, FileArray); } } namespace Editor.Resources { class ChangeFile { public static int Sign = 1347242308; public static Resources.Object[] Objects; static MemoryStream MemoryStreamReader; static MemoryStream MemoryStreamWriter; static BinaryReader FileReader; static BinaryWriter FileWriter; public static void Open(string FileLoad) { byte[] Filearray = File.ReadAllBytes(FileLoad); MemoryStreamReader = new MemoryStream(Filearray); FileReader = new BinaryReader(MemoryStreamReader); int inSign = FileReader.ReadInt32(); if (inSign != Sign) throw new Exception("Неверный тип файла."); readObjects(); FileReader.Close(); MemoryStreamReader.Close(); } static void readObjects() { int count = FileReader.ReadInt32(); Objects = new Object[count]; for (int i = 0; i < count; i++) { Objects[I].ID = FileReader.ReadInt32(); Objects[I].Path = readString(); } } static string readString() { int Length = FileReader.ReadInt32(); byte[] strArr = FileReader.ReadBytes(Length); string result = Encoding.GetEncoding(936).GetString(strArr, 0, Length); //Кодировка (Encoding.GetEncoding(936)) захардкоженна а не передана в параметре, тк //в PW почти везде используется именно она //Но для гибкости можно передавать кодировку и в параметре return result; } public static byte[] Save() { MemoryStreamWriter = new MemoryStream(GetFileSize()); FileWriter = new BinaryWriter(MemoryStreamWriter); FileWriter.Write(Sign); writeObjects(); byte[] result = MemoryStreamWriter.ToArray(); FileWriter.Close(); MemoryStreamWriter.Close(); return result; } static void writeObjects() { FileWriter.Write(Objects.Length); for (int i = 0; i < Objects.Length; i++) { FileWriter.Write(Objects[I].ID); writeString(Objects[I].Path); } } static int GetFileSize() { int Size = 8; for (int i = 0; i < Objects.Length; i++) { Size += 8; byte[] tmpArr = Encoding.GetEncoding(936).GetBytes(Objects[I].Path); Size += tmpArr.Length; } return Size; } static void writeString(string Value) { byte[] strArr = Encoding.GetEncoding(936).GetBytes(Value); FileWriter.Write(strArr.Length); FileWriter.Write(strArr); } } } И есть еще вопрос: в редакторе для DynamicObjects всего 1 структура но есть и файлы в которых их больше 1,2 кто сможет объяснить как обращаться не только к 1 но и к 2 или оболее структурам и получать значения. Заранее спасибо.
Имена участников (разделяйте запятой).