17.04.2010, 20:35 | #1 |
Супер-модератор
Регистрация: 07.03.2010
Сообщений: 647
Сказал(а) спасибо: 100
Поблагодарили 252 раз(а) в 123 сообщениях
|
SpellWork C#
Мы тут с Konctantin начали переписывать SpellWork на C#.
Репозиторий тут: http://github.com/LordJZ/spellwork_cs/ Пока что реализованы не все функции оригинального spell_work-а, но вроде бы все работает. Скриншоты: (пока что не все реализовано) Ссылка на скомпилированный файл во вложении. Пожалуйста пишите свои пожелания и баг-репорты. Последний раз редактировалось Konctantin; 18.04.2010 в 21:58. |
20 пользователя(ей) сказали cпасибо: |
17.04.2010, 21:01 | #3 |
Пользователь
Регистрация: 07.03.2010
Сообщений: 79
Сказал(а) спасибо: 3
Поблагодарили 10 раз(а) в 8 сообщениях
|
Хотел спросить, имена в 3.3.3 в Spell.dbc уже не используются? Использую enGB. Вроде всегда имена были, а тут не видно.
|
Пользователь сказал cпасибо: | Konctantin (17.04.2010) |
17.04.2010, 21:13 | #4 |
RuDB Dev
Регистрация: 01.02.2010
Адрес: localhost
Сообщений: 592
Сказал(а) спасибо: 323
Поблагодарили 283 раз(а) в 122 сообщениях
Записей в дневнике: 2
|
у нас тут автодетект, проверялось только на русских, щас проверю не английски
==== Поправлено, спасибо. Последний раз редактировалось Konctantin; 17.04.2010 в 21:25. |
17.04.2010, 22:44 | #5 |
MaNGOS Dev
Регистрация: 11.03.2010
Сообщений: 468
Сказал(а) спасибо: 0
Поблагодарили 514 раз(а) в 163 сообщениях
|
Небольшой патчик http://paste2.org/p/778934, добавлен sln файл для VS2010 (компиляция в VS2008 не проверялась, теоретически должно компилится с варнингами о неподдерживаемой версии .NET Framework), перенесена часть кода в класс Extensions...
Последний раз редактировалось TOM_RUS; 17.04.2010 в 23:01. |
3 пользователя(ей) сказали cпасибо: |
17.04.2010, 22:51 | #6 |
Пользователь
Регистрация: 07.03.2010
Сообщений: 79
Сказал(а) спасибо: 3
Поблагодарили 10 раз(а) в 8 сообщениях
|
|
17.04.2010, 23:03 | #7 |
MaNGOS Dev
Регистрация: 11.03.2010
Сообщений: 468
Сказал(а) спасибо: 0
Поблагодарили 514 раз(а) в 163 сообщениях
|
Кстати, содержимое файла Utility.cs тоже можно переделать в Extensions (хотя эти методы все равно не используются)...
А что мешает поставить? Если VS установлена (не Express), то даже места на винте дополнительного не потребуется... Последний раз редактировалось TOM_RUS; 17.04.2010 в 23:15. |
17.04.2010, 23:11 | #8 |
RuDB Dev
Регистрация: 01.02.2010
Адрес: localhost
Сообщений: 592
Сказал(а) спасибо: 323
Поблагодарили 283 раз(а) в 122 сообщениях
Записей в дневнике: 2
|
Патч накатил, и сразу пришлось null на "" менять, кстати вопрос, а зачем было делать в структуре приват переменные пабликами, я их специально скрыл, чтоб недоступны были из списка выбора, а то там и так всего много, да и null устраивал
Пока пускай будет, мало ли. исходник прилепил |
Пользователь сказал cпасибо: | PSZ (24.04.2010) |
17.04.2010, 23:14 | #9 |
MaNGOS Dev
Регистрация: 11.03.2010
Сообщений: 468
Сказал(а) спасибо: 0
Поблагодарили 514 раз(а) в 163 сообщениях
|
|
Пользователь сказал cпасибо: | Konctantin (17.04.2010) |
17.04.2010, 23:27 | #11 |
MaNGOS Dev
Регистрация: 11.03.2010
Сообщений: 468
Сказал(а) спасибо: 0
Поблагодарили 514 раз(а) в 163 сообщениях
|
В GenerateSpellDesc не лучше ли заменить str += ... на StringBuilder? А то выглядит ужасно
Код:
return String.Format("SpellRange: ID - {0} {1} (unk = {2}) MinRange = {3}, MinRangeFriendly = {4}, MaxRange = {5}, MaxRangeFriendly = {6}\r\n", q.Key, q.Value.Description1, q.Value.Description2, q.Value.Field5, q.Value.MinRange, q.Value.MinRangeFriendly, q.Value.MaxRange, q.Value.MaxRangeFriendly); Код:
static String GetFormInfo(ulong val, string name) { int i = 1; Код:
public ulong Stances; // 12-13 m_shapeshiftMask public ulong StancesNot; // 14-15 m_shapeshiftExclude Код:
"\r\n" Код:
public static StringBuilder AppendFormatLine(this StringBuilder sb, string format, params object[] args) { return sb.AppendFormat(format, args).AppendLine(); } Для Код:
"" так: Код:
var str = "abc"; if(str.IsNullOrEmpty()) { ... } Код:
var str = "abc"; if(String.IsNullOrEmpty(str)) { ... } В файле Structure.cs опечатка curent -> current Код:
GetAuraModTypeName() GenerateSpellDesc() GetProcInfo() GetTriggerSpell() ... Код:
var spell = (from s in DBC.Spell where s.Key == spellId select s.Value).First(); Код:
sb.Append(Environment.NewLine); Код:
sb.AppendFormat("CasterAuraState 0x{0:X8}, TargetAuraState 0x{1:X8}\r\n", spell.CasterAuraState, spell.TargetAuraState); Последний раз редактировалось TOM_RUS; 18.04.2010 в 01:17. |
5 пользователя(ей) сказали cпасибо: | ANTOMA (29.04.2010), Fear (18.04.2010), Konctantin (17.04.2010), LordJZ (18.04.2010), sven (19.04.2010) |
18.04.2010, 12:04 | #13 |
MaNGOS Dev
Регистрация: 11.03.2010
Сообщений: 468
Сказал(а) спасибо: 0
Поблагодарили 514 раз(а) в 163 сообщениях
|
Еще патчик http://paste2.org/p/779518.
|
4 пользователя(ей) сказали cпасибо: |
18.04.2010, 12:34 | #14 | |
Супер-модератор
Регистрация: 07.03.2010
Сообщений: 647
Сказал(а) спасибо: 100
Поблагодарили 252 раз(а) в 123 сообщениях
|
Цитата:
|
|
18.04.2010, 14:16 | #15 |
MaNGOS Dev
Регистрация: 11.03.2010
Сообщений: 468
Сказал(а) спасибо: 0
Поблагодарили 514 раз(а) в 163 сообщениях
|
Последний раз редактировалось TOM_RUS; 18.04.2010 в 14:25. |
3 пользователя(ей) сказали cпасибо: |
18.04.2010, 17:31 | #17 |
MaNGOS Dev
Регистрация: 11.03.2010
Сообщений: 468
Сказал(а) спасибо: 0
Поблагодарили 514 раз(а) в 163 сообщениях
|
|
3 пользователя(ей) сказали cпасибо: |
18.04.2010, 22:20 | #18 |
RuDB Dev
Регистрация: 01.02.2010
Адрес: localhost
Сообщений: 592
Сказал(а) спасибо: 323
Поблагодарили 283 раз(а) в 122 сообщениях
Записей в дневнике: 2
|
Все-таки используем контрол, для отображения текста который допускает форматирование, начал заменять StringBuilder на расширения класса RichTextBox подобными методами.
Спасибо Kirix за замечание. Сделал, вот как это будет примерно выглядеть: осталось только расставить стили и выделить важную информацию. Последний раз редактировалось Konctantin; 18.04.2010 в 23:04. |
19.04.2010, 20:08 | #19 |
RuDB Dev
Регистрация: 01.02.2010
Адрес: localhost
Сообщений: 592
Сказал(а) спасибо: 323
Поблагодарили 283 раз(а) в 122 сообщениях
Записей в дневнике: 2
|
Я зашел в тупик, не знаю от куда и как берутся некоторые поля для таблицы spell_proc_event, а именно:
-ProcFlagEx - подозреваю что это spell.ProcFlags - но не уверен -PPMRate - даже не представляю с каких полей dbc составляются эти данные? и чуточку не уверен в Cooldown, так что нужна помощь, или хотя бы намек или пинок в нужном направлении. Вот пока последняя на данный момент скомпилированая версия SpellWork Последний раз редактировалось Konctantin; 19.04.2010 в 20:12. |
2 пользователя(ей) сказали cпасибо: | PSZ (24.04.2010) |
20.04.2010, 06:44 | #20 | |
MaNGOS Dev
Регистрация: 09.03.2010
Сообщений: 33
Сказал(а) спасибо: 27
Поблагодарили 26 раз(а) в 11 сообщениях
|
Цитата:
PPMRate - шанс прока в зависимости от скорости оружия, в старом спеллворке было просто поле для ввода Cooldown - тоже было просто поле для ввода |
|
Пользователь сказал cпасибо: | Konctantin (20.04.2010) |
20.04.2010, 07:18 | #21 |
RuDB Dev
Регистрация: 01.02.2010
Адрес: localhost
Сообщений: 592
Сказал(а) спасибо: 323
Поблагодарили 283 раз(а) в 122 сообщениях
Записей в дневнике: 2
|
Cooldown - я взял spell.RecoveryTime / 1000f - но если не устраивает можем поставить свое
PPMRate, procEx - это то чего нету в dbc но то что мы хотим видеть. Спасибо, вот я и получил тот пинок в нужном направлении. так, с проками кажется разобрался полностью, по ходу будет видно, как будет время сегодня сделаю полностью эту вкладку и приведу ее к нужному функционалу. Какие есть у кого пожелания, что бы вы еще хотели видеть? |
20.04.2010, 09:25 | #22 |
MaNGOS Dev
Регистрация: 09.03.2010
Сообщений: 33
Сказал(а) спасибо: 27
Поблагодарили 26 раз(а) в 11 сообщениях
|
|
20.04.2010, 15:03 | #24 |
Супер-модератор
Регистрация: 07.03.2010
Сообщений: 647
Сказал(а) спасибо: 100
Поблагодарили 252 раз(а) в 123 сообщениях
|
Кстати да, поиск было бы классно расширить и спрятать в отдельный блок
|
20.04.2010, 22:24 | #25 |
RuDB Dev
Регистрация: 01.02.2010
Адрес: localhost
Сообщений: 592
Сказал(а) спасибо: 323
Поблагодарили 283 раз(а) в 122 сообщениях
Записей в дневнике: 2
|
У меня опять вопрос, как для таблицы spell_proc_event надо брать данные по столбцам SpellFamilyMask0, SpellFamilyMask1, SpellFamilyMask2, они берутся прямо из dbc и не меняются или как-то генерируются?
Просто не нашел в исходниках СпеллВорка как это дело обрабатывается |
21.04.2010, 21:36 | #26 |
RuDB Dev
Регистрация: 01.02.2010
Адрес: localhost
Сообщений: 592
Сказал(а) спасибо: 323
Поблагодарили 283 раз(а) в 122 сообщениях
Записей в дневнике: 2
|
Реализована работа с базой данных для таблицы spell_proc_event (пока немного кривовато, надо проверок натыкать).
Остался открытым вопрос с моего предыдущего поста. Необходимо проверять, но я сейчас не могу, сделал все чисто теоретически. Прикрепил последнюю скомпилированную версию, там же и MySql.Data.dll для работы с базой данных. http://filekeeper.org/download/share...3a__11723_.rar |
23.04.2010, 15:20 | #27 |
RuDB Dev
Регистрация: 01.02.2010
Адрес: localhost
Сообщений: 592
Сказал(а) спасибо: 323
Поблагодарили 283 раз(а) в 122 сообщениях
Записей в дневнике: 2
|
+ Добавил фильтр на выборку из базы данных
+ Добавлено несколько проверок для роботы с базой данных + Добавил форму для подсчета флагов + Добавил бинарные файлы "SpellWork.exe" и "MySql.Data.dll" в репозитарий скачать можно тут http://github.com/LordJZ/spellwork_c...k/bin/Release/ |
24.04.2010, 13:50 | #29 |
Ученый
Регистрация: 07.03.2010
Сообщений: 138
Сказал(а) спасибо: 200
Поблагодарили 143 раз(а) в 49 сообщениях
|
Предлагаю сделать не одну вкладку Spell Info, а две - удобно сравнивать спеллы.
|
2 пользователя(ей) сказали cпасибо: | Konctantin (24.04.2010), LordJZ (24.04.2010) |
24.04.2010, 20:29 | #31 |
RuDB Dev
Регистрация: 01.02.2010
Адрес: localhost
Сообщений: 592
Сказал(а) спасибо: 323
Поблагодарили 283 раз(а) в 122 сообщениях
Записей в дневнике: 2
|
Я уже работаю над этим, хочу сделать что-то на подобии TortoiseIDiff, с 2 полями, и выделение цветом разбежностей (красным) и совпадений (зеленым)
|
24.04.2010, 20:43 | #32 | |
RuDB Dev
Регистрация: 01.02.2010
Адрес: localhost
Сообщений: 592
Сказал(а) спасибо: 323
Поблагодарили 283 раз(а) в 122 сообщениях
Записей в дневнике: 2
|
Цитата:
Если мешают дополнительные панели во вкладке "Spell Proc Event" - их легко можно сдвинуть, и они не будут мешать. |
|
28.04.2010, 09:18 | #33 |
RuDB Dev
Регистрация: 01.02.2010
Адрес: localhost
Сообщений: 592
Сказал(а) спасибо: 323
Поблагодарили 283 раз(а) в 122 сообщениях
Записей в дневнике: 2
|
Помогите с задачей, для реализации расширенного фильтра в SpellWork
Есть структура: Код:
public struct SpellEntry { public uint ID; .... }; Я частично решил проблему, чтобы заполнить ComboBox нужными данными из структуры сделал такой метод расширения: Код:
public static void SetStructFields<T>(this ComboBox cb) where T : struct { cb.Items.Clear(); DataTable dt = new DataTable(); dt.Columns.Add("ID"); dt.Columns.Add("NAME"); var type = typeof(T).GetMembers(); int i = 0; foreach (var str in type) { dt.Rows.Add(new object[] { str, String.Format("({0:000}) {1}", i, str.Name) }); i++; } cb.DataSource = dt; cb.DisplayMember = "NAME"; cb.ValueMember = "ID"; } все данные у меня хранятся в Dictionary<uint, SpellEntry> Spell; Что я имею ввиду: скажем есть такой простенький запрос: Код:
var query = from s in DBC.Spell.Value where s.SpellName == val select s; чтобы было что-то на подобии: Код:
var field = ((ComboBox)sender).SelectedValue; var query = from s in DBC.Spell.Value where s[field] == val select s; И возможно ли вообще присвоение переменной в єтом участке кода: Код:
DBC.Spell.Value where s[field] |
01.05.2010, 23:09 | #34 |
RuDB Dev
Регистрация: 01.02.2010
Адрес: localhost
Сообщений: 592
Сказал(а) спасибо: 323
Поблагодарили 283 раз(а) в 122 сообщениях
Записей в дневнике: 2
|
пока ничего серьезного не делал, но в последней версии ускорил загрузку программы, теперь ДБЦ читаются быстрее.
Так же должна показываться ошибка, если структура не подходит к ДБЦ файлу. От нечего делать добавил иконки в SpellFamilyTree Последний раз редактировалось Konctantin; 01.05.2010 в 23:11. |
12.05.2010, 07:51 | #38 |
RuDB Dev
Регистрация: 01.02.2010
Адрес: localhost
Сообщений: 592
Сказал(а) спасибо: 323
Поблагодарили 283 раз(а) в 122 сообщениях
Записей в дневнике: 2
|
я собираю на 3.5 .NetFramework, попробуйте установить его.
Да и там еще библиотека для работы с базой данных, вы ее скачали? http://github.com/LordJZ/spellwork_c...MySql.Data.dll |
12.05.2010, 14:28 | #39 |
RuDB Dev
Регистрация: 01.02.2010
Адрес: localhost
Сообщений: 592
Сказал(а) спасибо: 323
Поблагодарили 283 раз(а) в 122 сообщениях
Записей в дневнике: 2
|
Реализован дополнительный фильтр, теперь можно выбрать поле и задать ему значение. Фильтр можно использовать самостоятельно и с основным фильтром.
Спасибо всем за идеи, жду новых пожеланий. |
12.05.2010, 14:41 | #40 |
Новичок
Регистрация: 07.03.2010
Сообщений: 18
Сказал(а) спасибо: 17
Поблагодарили 5 раз(а) в 5 сообщениях
|
Можно ли прок перенести в спел прок ивент, как было ранее сделано в старом спелл ворке?
И не могу разобраться, как выбрать маску для прока? Последний раз редактировалось crAwling; 12.05.2010 в 14:48. |