Ru-MaNGOS

Вернуться   Ru-MaNGOS > Дополнения > Tools

Важная информация

Tools Обсуждение программ для MaNGOS

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
Старый 21.10.2010, 19:16   #121
TOM_RUS
MaNGOS Dev
 
Регистрация: 11.03.2010
Сообщений: 468
Сказал(а) спасибо: 0
Поблагодарили 514 раз(а) в 163 сообщениях
TOM_RUS Как свет с небесTOM_RUS Как свет с небесTOM_RUS Как свет с небесTOM_RUS Как свет с небесTOM_RUS Как свет с небесTOM_RUS Как свет с небес
По умолчанию

Цитата:
Сообщение от Lordronn Посмотреть сообщение
Будет ли поддержка 4.0.1 или нет? На данный момент есть 4.0.3, но структуру ДБС не соответствует 4.0.1.
Там разница минимальная.
TOM_RUS вне форума   Ответить с цитированием
Старый 30.10.2010, 13:55   #122
Warlord123
Пользователь
 
Регистрация: 09.03.2010
Сообщений: 37
Сказал(а) спасибо: 4
Поблагодарили 63 раз(а) в 21 сообщениях
Warlord123 Скоро придёт к известности
По умолчанию

Иногда бывает необходимо получить таблицу заклинаний в виде SQL.
Есть конвертеры dbc в CSV , dbc в SQL. К сожалению, на выходе получается только заготовка, использовать которую достаточно затруднительно. В выходных файлах нет заголовков полей, их типов.
Кроме того, dbc2sql.exe путает типы полей, в итоге выходной файл не полностью соответствует действительности.

Предлагаю патч для добавления функционала по выгрузке заклинаний в SQL скрипт.

Данные для скрипта строятся динамически на основе структуры SpellEntry.
При добавлении новых типов данных (не полей) в SpellEntry , код потребует некоторой доработки.
Часть сформированного скрипта:

CREATE TABLE spells (
ID INT(10) UNSIGNED NOT NULL DEFAULT 0,
Category INT(10) UNSIGNED NOT NULL DEFAULT 0,
Dispel INT(10) UNSIGNED NOT NULL DEFAULT 0,
Mechanic INT(10) UNSIGNED NOT NULL DEFAULT 0,
Attributes INT(10) UNSIGNED NOT NULL DEFAULT 0,
AttributesEx INT(10) UNSIGNED NOT NULL DEFAULT 0,
AttributesEx2 INT(10) UNSIGNED NOT NULL DEFAULT 0,
AttributesEx3 INT(10) UNSIGNED NOT NULL DEFAULT 0,
AttributesEx4 INT(10) UNSIGNED NOT NULL DEFAULT 0,
AttributesEx5 INT(10) UNSIGNED NOT NULL DEFAULT 0,
AttributesEx6 INT(10) UNSIGNED NOT NULL DEFAULT 0,
AttributesExG INT(10) UNSIGNED NOT NULL DEFAULT 0,
Stances INT(20) UNSIGNED NOT NULL DEFAULT 0,
StancesNot INT(20) UNSIGNED NOT NULL DEFAULT 0,
Targets INT(10) UNSIGNED NOT NULL DEFAULT 0,
TargetCreatureType INT(10) UNSIGNED NOT NULL DEFAULT 0,
RequiresSpellFocus INT(10) UNSIGNED NOT NULL DEFAULT 0, .....
Вложения
Тип файла: patch Export.patch (6.8 Кб, 429 просмотров)
Warlord123 вне форума   Ответить с цитированием
3 пользователя(ей) сказали cпасибо:
KiriX (31.10.2010), Konctantin (30.10.2010), Lordronn (30.10.2010)
Старый 30.10.2010, 15:11   #123
Konctantin
RuDB Dev
 
Аватар для Konctantin
 
Регистрация: 01.02.2010
Адрес: localhost
Сообщений: 592
Сказал(а) спасибо: 323
Поблагодарили 283 раз(а) в 122 сообщениях
Записей в дневнике: 2
Konctantin Это имя известно всемKonctantin Это имя известно всемKonctantin Это имя известно всемKonctantin Это имя известно всемKonctantin Это имя известно всемKonctantin Это имя известно всем
По умолчанию

можно доработать, чтоб выгружать все используемые дбц.
предоставить список выбора пользователю, а таблицы называть именем структуры или как угодно...
__________________
Konctantin вне форума   Ответить с цитированием
2 пользователя(ей) сказали cпасибо:
KiriX (31.10.2010), Ranger (07.05.2011)
Старый 30.10.2010, 17:06   #124
Warlord123
Пользователь
 
Регистрация: 09.03.2010
Сообщений: 37
Сказал(а) спасибо: 4
Поблагодарили 63 раз(а) в 21 сообщениях
Warlord123 Скоро придёт к известности
По умолчанию

Сделаю. Тогда займу следующую страничку в tabControl. И сделаю настройки экспорта.
Warlord123 вне форума   Ответить с цитированием
Старый 30.10.2010, 17:10   #125
LordJZ
Супер-модератор
 
Аватар для LordJZ
 
Регистрация: 07.03.2010
Сообщений: 647
Сказал(а) спасибо: 100
Поблагодарили 252 раз(а) в 123 сообщениях
LordJZ Как самоцвет среди гранитаLordJZ Как самоцвет среди гранитаLordJZ Как самоцвет среди гранита
По умолчанию

Зачем изобретать велосипед? И SpellWork это программа для работы со спеллами (внезапно!), а не комплекс для работы с DBC
LordJZ вне форума   Ответить с цитированием
Старый 30.10.2010, 20:25   #126
TOM_RUS
MaNGOS Dev
 
Регистрация: 11.03.2010
Сообщений: 468
Сказал(а) спасибо: 0
Поблагодарили 514 раз(а) в 163 сообщениях
TOM_RUS Как свет с небесTOM_RUS Как свет с небесTOM_RUS Как свет с небесTOM_RUS Как свет с небесTOM_RUS Как свет с небесTOM_RUS Как свет с небес
По умолчанию

Цитата:
Сообщение от LordJZ Посмотреть сообщение
Зачем изобретать велосипед? И SpellWork это программа для работы со спеллами (внезапно!), а не комплекс для работы с DBC
Тем более что уже есть тулзы для экспорта dbc в sql.
TOM_RUS вне форума   Ответить с цитированием
Старый 31.10.2010, 15:32   #127
KiriX
Умный
Старожил
 
Аватар для KiriX
 
Регистрация: 06.03.2010
Сообщений: 886
Сказал(а) спасибо: 698
Поблагодарили 433 раз(а) в 181 сообщениях
Записей в дневнике: 4
KiriX Реально хороший человекKiriX Реально хороший человекKiriX Реально хороший человекKiriX Реально хороший человекKiriX Реально хороший человек
По умолчанию

Но с другой стороны, к чему иметь 43 программы, когда можно совместить в одной, наиболее удобной и часто используемой
KiriX вне форума   Ответить с цитированием
2 пользователя(ей) сказали cпасибо:
lovepsone (06.10.2011), Ranger (07.05.2011)
Старый 31.10.2010, 15:57   #128
virusav
Администратор
 
Аватар для virusav
 
Регистрация: 19.02.2010
Сообщений: 492
Сказал(а) спасибо: 55
Поблагодарили 341 раз(а) в 154 сообщениях
virusav Реально хороший человекvirusav Реально хороший человекvirusav Реально хороший человекvirusav Реально хороший человек
Отправить сообщение для virusav с помощью ICQ
По умолчанию

Не надо распыляться на все подряд, программа для работы со спеллами, надо в этой области добить по-максимуму.
Если не ошибаюсь, то новая прок-система до сих пор не реализована.

Когда программа будет полнофункциональной, тогда уже желающие от нечего делать могут заняться ее модернизацией.
virusav вне форума   Ответить с цитированием
Старый 31.10.2010, 16:03   #129
LordJZ
Супер-модератор
 
Аватар для LordJZ
 
Регистрация: 07.03.2010
Сообщений: 647
Сказал(а) спасибо: 100
Поблагодарили 252 раз(а) в 123 сообщениях
LordJZ Как самоцвет среди гранитаLordJZ Как самоцвет среди гранитаLordJZ Как самоцвет среди гранита
По умолчанию

Цитата:
Сообщение от TOM_RUS Посмотреть сообщение
Я сижу на XP, и все работает нормально, так что траблы на вашей стороне.
У меня на WinXP программа выполняла один цикл отрисовки за 3-4 минуты, каждый раз читая файл.
Цитата:
Сообщение от KiriX Посмотреть сообщение
Но с другой стороны, к чему иметь 43 программы, когда можно совместить в одной, наиболее удобной и часто используемой
И получите вы Nero, или ACDSee, или Opera.
LordJZ вне форума   Ответить с цитированием
Старый 06.11.2010, 23:10   #130
Insider42
Ученый
 
Регистрация: 15.03.2010
Сообщений: 261
Сказал(а) спасибо: 84
Поблагодарили 257 раз(а) в 96 сообщениях
Insider42 Как самоцвет среди гранитаInsider42 Как самоцвет среди гранитаInsider42 Как самоцвет среди гранита
По умолчанию

Что-то с масками школ напутано во вкладке Spell proc event, допустим HOLY считается как 0x04, а в мангосе она вообще другая :/ по-моему инфа устарела, так ещё и заменяет новым значением вместо сложения в случае когда у нас уже отмечен, допустим Holy и Nature, мы тыкаем пару раз на HOLY и выдает неверный подсчет.

Также нехватает ещё одного procEx, который не так давно добавили
__________________
Если ты видишь это сообщение то ты просто обязан нажать "Спасибо"
Insider42 вне форума   Ответить с цитированием
Старый 06.11.2010, 23:22   #131
LordJZ
Супер-модератор
 
Аватар для LordJZ
 
Регистрация: 07.03.2010
Сообщений: 647
Сказал(а) спасибо: 100
Поблагодарили 252 раз(а) в 123 сообщениях
LordJZ Как самоцвет среди гранитаLordJZ Как самоцвет среди гранитаLordJZ Как самоцвет среди гранита
По умолчанию

По поводу проков пилите шура^W Konctantin-а.
LordJZ вне форума   Ответить с цитированием
Старый 08.12.2010, 21:16   #132
Lordronn
Умный
 
Регистрация: 17.06.2010
Сообщений: 397
Сказал(а) спасибо: 58
Поблагодарили 55 раз(а) в 38 сообщениях
Lordronn Скоро придёт к известности
По умолчанию

Не могли бы Вы починить поиск по BasePointEffect(67) Ищет спеллы не совсем верно. Ввожу в поиск БП 10, а находит он

Цитата:
=================================================
Effect 0: Id 58 (SPELL_EFFECT_WEAPON_DAMAGE)
BasePoints = 11 + Level * 2,00
Targets (6, 0) (TARGET_CHAIN_DAMAGE, NO_TARGET)

Effect 1: NO EFFECT

Effect 2: NO EFFECT
Lordronn вне форума   Ответить с цитированием
Старый 08.12.2010, 21:17   #133
virusav
Администратор
 
Аватар для virusav
 
Регистрация: 19.02.2010
Сообщений: 492
Сказал(а) спасибо: 55
Поблагодарили 341 раз(а) в 154 сообщениях
virusav Реально хороший человекvirusav Реально хороший человекvirusav Реально хороший человекvirusav Реально хороший человек
Отправить сообщение для virusav с помощью ICQ
По умолчанию

Попробуй искать значение на 1 меньше, не раз помогало.
10 + 1 => BasePoints = 11 ...
virusav вне форума   Ответить с цитированием
Старый 08.12.2010, 21:24   #134
Lordronn
Умный
 
Регистрация: 17.06.2010
Сообщений: 397
Сказал(а) спасибо: 58
Поблагодарили 55 раз(а) в 38 сообщениях
Lordronn Скоро придёт к известности
По умолчанию

Спасибо! Проблема возникает наверно из-за того,что есть БП 0, и в представлении программы БП0 - 1, БП1 - 2 и т.д
Lordronn вне форума   Ответить с цитированием
Старый 08.12.2010, 21:39   #135
LordJZ
Супер-модератор
 
Аватар для LordJZ
 
Регистрация: 07.03.2010
Сообщений: 647
Сказал(а) спасибо: 100
Поблагодарили 252 раз(а) в 123 сообщениях
LordJZ Как самоцвет среди гранитаLordJZ Как самоцвет среди гранитаLordJZ Как самоцвет среди гранита
По умолчанию

Нет, в клиенте данные так хранятся, см. DBCStructure.h, struct SpellEntry
LordJZ вне форума   Ответить с цитированием
Старый 08.12.2010, 22:01   #136
virusav
Администратор
 
Аватар для virusav
 
Регистрация: 19.02.2010
Сообщений: 492
Сказал(а) спасибо: 55
Поблагодарили 341 раз(а) в 154 сообщениях
virusav Реально хороший человекvirusav Реально хороший человекvirusav Реально хороший человекvirusav Реально хороший человек
Отправить сообщение для virusav с помощью ICQ
По умолчанию

int32 CalculateSimpleValue(SpellEffectIndex eff) const { return EffectBasePoints[eff] + int32(1); }
virusav вне форума   Ответить с цитированием
Старый 10.12.2010, 12:16   #137
Lordronn
Умный
 
Регистрация: 17.06.2010
Сообщений: 397
Сказал(а) спасибо: 58
Поблагодарили 55 раз(а) в 38 сообщениях
Lordronn Скоро придёт к известности
По умолчанию

Добавьте пожалуйста поиск по pereodic. Очень бы помогло искать аура с определенным временем тика
Lordronn вне форума   Ответить с цитированием
Старый 10.12.2010, 13:22   #138
Konctantin
RuDB Dev
 
Аватар для Konctantin
 
Регистрация: 01.02.2010
Адрес: localhost
Сообщений: 592
Сказал(а) спасибо: 323
Поблагодарили 283 раз(а) в 122 сообщениях
Записей в дневнике: 2
Konctantin Это имя известно всемKonctantin Это имя известно всемKonctantin Это имя известно всемKonctantin Это имя известно всемKonctantin Это имя известно всемKonctantin Это имя известно всем
По умолчанию

Зачем? он и так там есть,
Выбираете колонку EffectAmplitude в дополнительном фильтре, задаете ей значение и будет вам счастье.
__________________

Последний раз редактировалось Konctantin; 10.12.2010 в 13:31.
Konctantin вне форума   Ответить с цитированием
Пользователь сказал cпасибо:
Lordronn (10.12.2010)
Старый 20.03.2011, 23:37   #139
LordJZ
Супер-модератор
 
Аватар для LordJZ
 
Регистрация: 07.03.2010
Сообщений: 647
Сказал(а) спасибо: 100
Поблагодарили 252 раз(а) в 123 сообщениях
LordJZ Как самоцвет среди гранитаLordJZ Как самоцвет среди гранитаLordJZ Как самоцвет среди гранита
По умолчанию

Пришел мне на почту патчик, добавляющий тип сравнения для Advanced Filter. Спасибо автору!

https://github.com/LordJZ/spellwork_...b2949b5afac91a

Скомпиленный бинарник где и всегда.
LordJZ вне форума   Ответить с цитированием
Старый 28.03.2011, 22:23   #140
Lordronn
Умный
 
Регистрация: 17.06.2010
Сообщений: 397
Сказал(а) спасибо: 58
Поблагодарили 55 раз(а) в 38 сообщениях
Lordronn Скоро придёт к известности
По умолчанию

Изменение функции проверки подключения на булевую. Замена некоторых foreach на LINQ
И замена некоторых простых условий на выражение ? :
Код:
--- /SpellWork/DataBase/MySQLConnect.cs	Sun Mar 20 14:33:12 2011
+++ /SpellWork/DataBase/MySQLConnect.cs	Mon Mar 28 20:42:46 2011
@@ -11,7 +11,6 @@
         private static MySqlConnection _conn;
         private static MySqlCommand _command;
 
-        public static bool Connected { get; private set; }
         public static List<string> Dropped = new List<string>();
         public static List<SpellProcEventEntry> SpellProcEvent = new List<SpellProcEventEntry>();
 
@@ -31,9 +30,7 @@
         private static String GetSpellName(uint id)
         {
             if (DBC.Spell.ContainsKey(id))
-            {
                 return DBC.Spell[id].SpellNameRank;
-            }
             else
             {
                 Dropped.Add(String.Format("DELETE FROM `spell_proc_event` WHERE `entry` IN ({0});\r\n", id.ToUInt32()));
@@ -158,24 +155,21 @@
             return items;
         }
 
-        public static void TestConnect()
+        public static bool Connected()
         {
             if (!Settings.Default.UseDbConnect)
-            {
-                Connected = false;
-                return;
-            }
+                return false;
 
             try
             {
                 _conn = new MySqlConnection(ConnectionString);
                 _conn.Open();
-                _conn.Close();
-                Connected = true;
+                _conn.Close();
+                return true;
             }
-            catch
-            {
-                Connected = false;
+            catch
+            {
+                return false;
             }
         }
     }
Код:
--- /SpellWork/Extensions/LinqExtensions.cs	Sun Mar 20 14:33:12 2011
+++ /SpellWork/Extensions/LinqExtensions.cs	Mon Mar 28 20:50:57 2011
@@ -1,4 +1,5 @@
-using System;
+using System;
+using System.Linq;
 using System.Reflection;
 
 namespace SpellWork
@@ -40,52 +41,17 @@
                     return Compare(basicValue.ToUlong(), val.ToUlong(), compareType);
                 case "String":
                     return Compare(basicValue.ToString(), val.ToString(), compareType);
-                case @"UInt32[]":
-                    {
-                        foreach (uint el in (uint[])basicValue)
-                        {
-                            if (Compare(el.ToUInt32(), val.ToUInt32(), compareType))
-                                return true;
-                        }
-                        return false;
-                    }
-                case @"Int32[]":
-                    {
-                        foreach (int el in (int[])basicValue)
-                        {
-                            if (Compare(el.ToInt32(), val.ToInt32(), compareType))
-                                return true;
-                        }
-                        return false;
-                    }
-                case @"Single[]":
-                    {
-                        foreach (float el in (float[])basicValue)
-                        {
-                            if (Compare(el.ToFloat(), val.ToFloat(), compareType))
-                                return true;
-                        }
-                        return false;
-                    }
-                case @"UInt64[]":
-                    {
-                        foreach (ulong el in (ulong[])basicValue)
-                        {
-                            if (Compare(el.ToUlong(), val.ToUlong(), compareType))
-                                return true;
-                        }
-                        return false;
-                    }
-                case @"String[]":
-                    {
-                        foreach (uint el in (uint[])basicValue)
-                        {
-                            if (Compare(el.ToString(), val.ToString(), compareType))
-                                return true;
-                        }
-                        return false;
-                    }
-                // todo: more
+                case @"UInt32[]":
+                        return ((uint[]) basicValue).Any(el => Compare(el.ToUInt32(), val.ToUInt32(), compareType));
+                case @"Int32[]":
+                        return ((int[]) basicValue).Any(el => Compare(el.ToInt32(), val.ToInt32(), compareType));
+                case @"Single[]":
+                        return ((float[]) basicValue).Any(el => Compare(el.ToFloat(), val.ToFloat(), compareType));
+                case @"UInt64[]":
+                        return ((ulong[]) basicValue).Any(el => Compare(el.ToUlong(), val.ToUlong(), compareType));
+                case @"String[]":
+                        return ((uint[]) basicValue).Any(el => Compare(el.ToString(), val.ToString(), compareType));
+                    // todo: more
                 default: return false;
             }
         }
Код:
--- /SpellWork/Spell/SpellCompare.cs	Sun Mar 20 14:33:12 2011
+++ /SpellWork/Spell/SpellCompare.cs	Mon Mar 28 20:54:03 2011
@@ -35,20 +35,9 @@
                 rtb1.Select(pos - str.Length - 1, pos - 1);
 
                 if (rtb2.Find(str, RichTextBoxFinds.WholeWord) != -1)
-                {
-                    if (str.ContainsText(words))
-                    {
-                        rtb1.SelectionBackColor = rtb1.BackColor;
-                    }
-                    else
-                    {
-                        rtb1.SelectionBackColor = Color.Cyan;
-                    }
-                }
+                    rtb1.SelectionBackColor = str.ContainsText(words) ? rtb1.BackColor : Color.Cyan;
                 else
-                {
                     rtb1.SelectionBackColor = Color.Salmon;
-                }
             }
 
             pos = 0;
@@ -58,20 +47,9 @@
                 rtb2.Select(pos - str.Length - 1, pos - 1);
 
                 if (rtb1.Find(str, RichTextBoxFinds.WholeWord) != -1)
-                {
-                    if (str.ContainsText(words))
-                    {
-                        rtb2.SelectionBackColor = rtb2.BackColor;
-                    }
-                    else
-                    {
-                        rtb2.SelectionBackColor = Color.Cyan;
-                    }
-                }
+                    rtb2.SelectionBackColor = str.ContainsText(words) ? rtb2.BackColor : Color.Cyan;
                 else
-                {
                     rtb2.SelectionBackColor = Color.Salmon;
-                }
             }
         }
     }
Код:
--- /SpellWork/Spell/SpellInfo.cs	Sun Mar 20 14:33:12 2011
+++ /SpellWork/Spell/SpellInfo.cs	Mon Mar 28 20:44:21 2011
@@ -445,7 +445,7 @@
 
         private void AppendItemInfo()
         {
-            if (!MySQLConnect.Connected)
+            if (!MySQLConnect.Connected())
                 return;
             
             var items = from   item in DBC.ItemTemplate

--- /SpellWork/Forms/FormMain.cs	Sun Mar 20 14:33:12 2011
+++ /SpellWork/Forms/FormMain.cs	Mon Mar 28 20:44:30 2011
@@ -90,9 +90,7 @@
 
         private void ConnStatus()
         {
-            MySQLConnect.TestConnect();
-
-            if (MySQLConnect.Connected)
+            if (MySQLConnect.Connected())
             {
                 _dbConnect.Text = "Connection is successfully";
                 _dbConnect.ForeColor = Color.Green;
@@ -108,9 +106,7 @@
 
         private void _Connected_Click(object sender, EventArgs e)
         {
-            MySQLConnect.TestConnect();
-
-            if (MySQLConnect.Connected)
+            if (MySQLConnect.Connected())
                 MessageBox.Show("Connection is successfully!", "MySQL Connections!", MessageBoxButtons.OK, MessageBoxIcon.Information);
             else
                 MessageBox.Show("Connection is failed!", "ERROR!", MessageBoxButtons.OK, MessageBoxIcon.Error);
@@ -477,7 +473,7 @@
 
         private void SqlToBase_Click(object sender, EventArgs e)
         {
-            if (MySQLConnect.Connected)
+            if (MySQLConnect.Connected())
                 MySQLConnect.Insert(_rtbSqlLog.Text);
             else
                 MessageBox.Show("Can't connect to database!", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
@@ -531,7 +527,7 @@
 
         private void Select_Click(object sender, EventArgs e)
         {
-            if (!MySQLConnect.Connected)
+            if (!MySQLConnect.Connected())
             {
                 MessageBox.Show("Can't connect to database!", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                 return;
@@ -586,7 +582,7 @@
 
             _rtbSqlLog.AppendText(comment + "\r\n" + drop + "\r\n" + insert + "\r\n\r\n");
             _rtbSqlLog.ColorizeCode();
-            if (MySQLConnect.Connected)
+            if (MySQLConnect.Connected())
                 MySQLConnect.Insert(drop + insert);
 
             ((Button)sender).Enabled = false;

--- /SpellWork/Forms/FormSettings.cs	Sun Mar 20 14:33:12 2011
+++ /SpellWork/Forms/FormSettings.cs	Mon Mar 28 20:44:28 2011
@@ -31,11 +31,9 @@
             Settings.Default.Db_mangos = _tbBase.Text;
             Settings.Default.UseDbConnect = _cbUseDBConnect.Checked;
 
-            MySQLConnect.TestConnect();
-            
             if (((Button)sender).Text != "Save")
             {
-                if (MySQLConnect.Connected)
+                if (MySQLConnect.Connected())
                 {
                     MessageBox.Show("Connection is successfully!", "MySQL Connections!",
                         MessageBoxButtons.OK, MessageBoxIcon.Information);
Lordronn вне форума   Ответить с цитированием
Старый 28.03.2011, 22:35   #141
TOM_RUS
MaNGOS Dev
 
Регистрация: 11.03.2010
Сообщений: 468
Сказал(а) спасибо: 0
Поблагодарили 514 раз(а) в 163 сообщениях
TOM_RUS Как свет с небесTOM_RUS Как свет с небесTOM_RUS Как свет с небесTOM_RUS Как свет с небесTOM_RUS Как свет с небесTOM_RUS Как свет с небес
По умолчанию

Ну тогда уж надо было делать Connected() свойством, а не методом
Код:
public static bool Connected
{
    get
    {
        // insert code here
    }
}
TOM_RUS вне форума   Ответить с цитированием
Старый 29.03.2011, 01:53   #142
Konctantin
RuDB Dev
 
Аватар для Konctantin
 
Регистрация: 01.02.2010
Адрес: localhost
Сообщений: 592
Сказал(а) спасибо: 323
Поблагодарили 283 раз(а) в 122 сообщениях
Записей в дневнике: 2
Konctantin Это имя известно всемKonctantin Это имя известно всемKonctantin Это имя известно всемKonctantin Это имя известно всемKonctantin Это имя известно всемKonctantin Это имя известно всем
По умолчанию

По поводу LINQ, их вообще надо прибить, а использовать обычные циклы for, так как LINQ работают в 3-4 раза медленней чем обычные циклы.
foreach - работает в 1,5 раза медленней чем for
__________________
Konctantin вне форума   Ответить с цитированием
Пользователь сказал cпасибо:
Lordronn (29.03.2011)
Старый 29.03.2011, 12:02   #143
Йоха
Умный
 
Регистрация: 02.07.2010
Сообщений: 434
Сказал(а) спасибо: 27
Поблагодарили 73 раз(а) в 45 сообщениях
Йоха Скоро придёт к известности
По умолчанию

Цитата:
Сообщение от Konctantin Посмотреть сообщение
По поводу LINQ, их вообще надо прибить, а использовать обычные циклы for, так как LINQ работают в 3-4 раза медленней чем обычные циклы.
foreach - работает в 1,5 раза медленней чем for
На rsdn.ru был эпичный флейм на эту тему, по тестам в некоторых частных случаях LINQ медленнее нэйтивного кода раз в 100 или что-то вроде этого (могу наврать давно читал).
Но! как всегда у каждой медали есть обратная сторона. Инструменты подобные LINQ сокращают время написания программ и если быстродействие не критично то почему бы и не использовать.
Йоха вне форума   Ответить с цитированием
Старый 29.03.2011, 12:16   #144
Konctantin
RuDB Dev
 
Аватар для Konctantin
 
Регистрация: 01.02.2010
Адрес: localhost
Сообщений: 592
Сказал(а) спасибо: 323
Поблагодарили 283 раз(а) в 122 сообщениях
Записей в дневнике: 2
Konctantin Это имя известно всемKonctantin Это имя известно всемKonctantin Это имя известно всемKonctantin Это имя известно всемKonctantin Это имя известно всемKonctantin Это имя известно всем
По умолчанию

Ну в нашем случае, это скорость работы фильтров, и скорость тут имеет значение.
__________________
Konctantin вне форума   Ответить с цитированием
Старый 05.04.2011, 18:02   #145
LordJZ
Супер-модератор
 
Аватар для LordJZ
 
Регистрация: 07.03.2010
Сообщений: 647
Сказал(а) спасибо: 100
Поблагодарили 252 раз(а) в 123 сообщениях
LordJZ Как самоцвет среди гранитаLordJZ Как самоцвет среди гранитаLordJZ Как самоцвет среди гранита
По умолчанию

Добавил поддержку SpellDifficulty.dbc, немного переработал типы сравнения Advanced Filter. Теперь AndStrict — это строгая проверка установленности указаных битов на 1, а And проверяет на хотя бы один установленный бит.

Последние бинарники для версии 3.3.5а как всегда в том же месте:
https://github.com/LordJZ/spellwork_.../SpellWork.exe
https://github.com/LordJZ/spellwork_...MySql.Data.dll
LordJZ вне форума   Ответить с цитированием
3 пользователя(ей) сказали cпасибо:
ANTOMA (25.04.2011), Konctantin (05.04.2011), PSZ (05.04.2011)
Старый 05.04.2011, 18:19   #146
LordJZ
Супер-модератор
 
Аватар для LordJZ
 
Регистрация: 07.03.2010
Сообщений: 647
Сказал(а) спасибо: 100
Поблагодарили 252 раз(а) в 123 сообщениях
LordJZ Как самоцвет среди гранитаLordJZ Как самоцвет среди гранитаLordJZ Как самоцвет среди гранита
По умолчанию

Также обновлена века 400 (работает с 4.0.3—4.0.6 билдами). Есть какие-либо предложения по ней?

https://github.com/LordJZ/spellwork_.../SpellWork.exe
https://github.com/LordJZ/spellwork_...MySql.Data.dll
LordJZ вне форума   Ответить с цитированием
4 пользователя(ей) сказали cпасибо:
HuntsMan (06.04.2011), Konctantin (05.04.2011), PSZ (05.04.2011)
Старый 07.04.2011, 11:52   #147
TOM_RUS
MaNGOS Dev
 
Регистрация: 11.03.2010
Сообщений: 468
Сказал(а) спасибо: 0
Поблагодарили 514 раз(а) в 163 сообщениях
TOM_RUS Как свет с небесTOM_RUS Как свет с небесTOM_RUS Как свет с небесTOM_RUS Как свет с небесTOM_RUS Как свет с небесTOM_RUS Как свет с небес
По умолчанию

Цитата:
Сообщение от Konctantin Посмотреть сообщение
По поводу LINQ, их вообще надо прибить, а использовать обычные циклы for, так как LINQ работают в 3-4 раза медленней чем обычные циклы.
foreach - работает в 1,5 раза медленней чем for
Цитата:
Сообщение от Eric Lippert
It's not that "LINQ is slow" per se, rather, it is that most LINQ scenarios create some kind of collection pressure, either by allocating an iterator, or because Join is building a table behind the scenes, or whatever. We have large, long-lived, complex data structures and we're concerned about triggering too many collections.
http://channel9.msdn.com/Shows/Check...77386510000000
TOM_RUS вне форума   Ответить с цитированием
Пользователь сказал cпасибо:
Konctantin (07.04.2011)
Старый 10.04.2011, 11:49   #148
Chameleon
Новичок
 
Регистрация: 04.03.2011
Сообщений: 29
Сказал(а) спасибо: 12
Поблагодарили 9 раз(а) в 7 сообщениях
Chameleon На верном пути
По умолчанию

Я пофиксил несколько мелких багов в Spell Proc Event странице. Коммит. Там в форке еще несколько мелких фиксов, не знаю приглянется что или нет.
Chameleon вне форума   Ответить с цитированием
2 пользователя(ей) сказали cпасибо:
ANTOMA (25.04.2011), LordJZ (10.04.2011)
Старый 30.04.2011, 11:07   #149
Lordronn
Умный
 
Регистрация: 17.06.2010
Сообщений: 397
Сказал(а) спасибо: 58
Поблагодарили 55 раз(а) в 38 сообщениях
Lordronn Скоро придёт к известности
По умолчанию

Версия 4.0.6
С некоторой вероятности при выборе спелла из списка(прок закладка) ловим краш

К примеру: спелл 16492

Код:
************** Exception Text **************
System.NullReferenceException: Object reference not set to an instance of an object.
   at SpellWork.Extensions.ContainsElement(UInt32[] array, UInt32[] value)
   at SpellWork.ProcInfo..ctor(TreeView familyTree, SpellFamilyNames spellfamily)
   at SpellWork.FormMain._tvFamilyTree_SelectedIndexChanged(Object sender, EventArgs e)
   at System.Windows.Forms.ComboBox.OnSelectedIndexChanged(EventArgs e)
   at System.Windows.Forms.ComboBox.set_SelectedIndex(Int32 value)
   at System.Windows.Forms.ListControl.set_SelectedValue(Object value)
   at SpellWork.FormMain.SetProcAtribute(SpellEntry spell)
   at SpellWork.FormMain._lvProcSpellList_SelectedIndexChanged(Object sender, EventArgs e)
   at System.Windows.Forms.ListView.OnSelectedIndexChanged(EventArgs e)
   at System.Windows.Forms.ListView.WmReflectNotify(Message& m)
   at System.Windows.Forms.ListView.WndProc(Message& m)
   at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
   at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
   at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
Lordronn вне форума   Ответить с цитированием
Старый 10.05.2011, 03:28   #150
AlexBolotsin
Гость
 
Сообщений: n/a
По умолчанию

Я немного поковырял SpellWork и добавил кнопочку загрузки dbc из любой папки. Несколько криво вышло, да и много лишнего, но лично я доволен тем, что я достиг задачи.

Буду рад заняться Spell Work'ом. И наконец-то таки сделать его всеядным по отношению к DBC разных версий.
Знаю, что такое делегаты и ивенты. Начал изучать LINQ, но пока лишь => - освоен. Слаб в работе с WinForms, но учусь быстро

ЗЫ В планах сделать порт под Mono.

Аддед: вышел чуточку некропостинг, но вдруг автору всё ещё интересен этот проект.

Added: можно поглазеть что вышло на релизе.
Вложения
Тип файла: patch seach_dir.patch (44.8 Кб, 430 просмотров)
Тип файла: rar Release.rar (249.1 Кб, 395 просмотров)

Последний раз редактировалось AlexBolotsin; 10.05.2011 в 04:29.
  Ответить с цитированием
Старый 10.05.2011, 12:51   #151
AlexBolotsin
Гость
 
Сообщений: n/a
По умолчанию

Таки удалось не только запустить готовый exe под моно, но и скомпилить, однако появилась проблема с System.Deployment. Думаю для повышения навыка переписать GUI под wxWidget или gtk
  Ответить с цитированием
Старый 10.05.2011, 13:00   #152
Konctantin
RuDB Dev
 
Аватар для Konctantin
 
Регистрация: 01.02.2010
Адрес: localhost
Сообщений: 592
Сказал(а) спасибо: 323
Поблагодарили 283 раз(а) в 122 сообщениях
Записей в дневнике: 2
Konctantin Это имя известно всемKonctantin Это имя известно всемKonctantin Это имя известно всемKonctantin Это имя известно всемKonctantin Это имя известно всемKonctantin Это имя известно всем
По умолчанию

учите WPF здался вам этот МОНО...
__________________
Konctantin вне форума   Ответить с цитированием
Старый 10.05.2011, 19:00   #153
AlexBolotsin
Гость
 
Сообщений: n/a
По умолчанию

К великому сожалению он не сильно кроссплатформенный. Да, запустить можно, но это не его заслуга, а скорее 3rd party разрабов.

Можете сравнивать это с полит. убеждениями

Да и что там этот WPF, написать более менее годный интерфейс я смогу, а в GUI-dev я не стремлюсь.
  Ответить с цитированием
Старый 10.05.2011, 22:34   #154
Sid
Ученый
 
Аватар для Sid
 
Регистрация: 02.04.2010
Сообщений: 237
Сказал(а) спасибо: 41
Поблагодарили 99 раз(а) в 44 сообщениях
Sid Скоро придёт к известностиSid Скоро придёт к известности
По умолчанию

Qt в плане кроссплатформенности лучше)
http://ru-mangos.ru/showthread.php?t=3501 конечно не фонтан функционал как у Константина, но основное есть и собирается под разными платформами
__________________
SpellWork Qt4
Sid вне форума   Ответить с цитированием
Старый 18.06.2011, 09:30   #155
Burned
Новичок
 
Аватар для Burned
 
Регистрация: 07.03.2010
Адрес: Украина
Сообщений: 26
Сказал(а) спасибо: 28
Поблагодарили 26 раз(а) в 8 сообщениях
Burned На верном пути
По умолчанию

Есть интересный спел Running Wild (рассовая способность у воргенов бегать).
http://www.wowhead.com/spell=87840
На вовхеде показывает 3 эффекта, а в спелворке всего лишь 2. Где здесь загвоздка?

Использовал этот бинарник http://ru-mangos.ru/showpost.php?p=20665&postcount=146
__________________
Opcode значения правы, понюхал Фрум официально.
Burned вне форума   Ответить с цитированием
Старый 27.09.2011, 19:21   #156
Warlord123
Пользователь
 
Регистрация: 09.03.2010
Сообщений: 37
Сказал(а) спасибо: 4
Поблагодарили 63 раз(а) в 21 сообщениях
Warlord123 Скоро придёт к известности
По умолчанию

Добработал SpellWork до загрузки спелов из таблицы spell_dbc.
Исходники и двоичный файл лежат по ссылке https://github.com/Warlord123/spellwork_cs .

Кроме того, обновлены атрибуты заклинаний, названия аур.
Увеличил объем информации в аурах и спелл-эффектах.
Добавлена информация о стоимости заклинания в рунах ДК.
Добавлена загрузка о зоне, в которой можно использовать заклинание (Взято из репозитория Shauren).

В планах сделать формирование sql-запросов изменных заклинаний в таблицу spell_dbc . Пока программа формирует
данные для функционала DBC_Patcher http://ru-mangos.ru/showthread.php?t=1544 .
Редактор \ эксплорер спелов находиться на последней закладке программы.

Во вложенном файле скомпилированная программа.
Вложения
Тип файла: 7z Release.7z (92.5 Кб, 451 просмотров)
Warlord123 вне форума   Ответить с цитированием
7 пользователя(ей) сказали cпасибо:
Den (29.09.2011), KiriX (29.09.2011), Konctantin (28.09.2011), PSZ (28.09.2011), rsa (27.09.2011), SeT (02.10.2011), Taumer (06.10.2011)
Старый 28.09.2011, 18:47   #157
Warlord123
Пользователь
 
Регистрация: 09.03.2010
Сообщений: 37
Сказал(а) спасибо: 4
Поблагодарили 63 раз(а) в 21 сообщениях
Warlord123 Скоро придёт к известности
По умолчанию

Добавил формирование SQL запроса в таблицу .
Исходники программы находятся в репозитории из моего последнего сообщения, скомпилированный исполняемы файл в архиве.

В конце формируемого запроса программа в комментариях к SQL программа выдает список полей. которые не найдены в структуре SpellEntry . (Если все нормально, то в этом списке должно быть только поле Comment).

Сопоставление идет по именам столбцов при загрузке из таблицы spell_dbc и при формировании SQL. Изменение структуры таблицы изменяет число загружаемых\сохраняемых столбцов.

Об ошибках прошу сообщать сюда .
Вложения
Тип файла: 7z Release.7z (93.0 Кб, 322 просмотров)
Warlord123 вне форума   Ответить с цитированием
4 пользователя(ей) сказали cпасибо:
Den (29.09.2011), KiriX (29.09.2011), SeT (02.10.2011), Taumer (06.10.2011)
Старый 02.10.2011, 21:40   #158
Warlord123
Пользователь
 
Регистрация: 09.03.2010
Сообщений: 37
Сказал(а) спасибо: 4
Поблагодарили 63 раз(а) в 21 сообщениях
Warlord123 Скоро придёт к известности
По умолчанию

Поправил enum CombatRating и отображение механик для ауры SPELL_AURA_MECHANIC_IMMUNITY_MASK.
В первом приближении починил загрузку данных о проках спелов во вкладку Spell Prc Event.
Формируемый этой вкладкой sql запрос теперь тоже правильно формирует данные spell proc event для первого эффекта заклинания.

Обновленный исполняемый файл содержиться во вложении.
Вложения
Тип файла: 7z Release.7z (93.2 Кб, 349 просмотров)
Warlord123 вне форума   Ответить с цитированием
4 пользователя(ей) сказали cпасибо:
Konctantin (03.10.2011), PSZ (03.10.2011), SeT (02.10.2011), Taumer (06.10.2011)
Старый 05.10.2011, 18:50   #159
Warlord123
Пользователь
 
Регистрация: 09.03.2010
Сообщений: 37
Сказал(а) спасибо: 4
Поблагодарили 63 раз(а) в 21 сообщениях
Warlord123 Скоро придёт к известности
По умолчанию

Обновил немного атрибутов спелов.
Поправил загрузку имен спелов из spell_dbc.
Часть повторяющегося кода вынес в методы.
Вложения
Тип файла: 7z Release.7z (93.2 Кб, 332 просмотров)
Warlord123 вне форума   Ответить с цитированием
2 пользователя(ей) сказали cпасибо:
PSZ (05.10.2011), Taumer (06.10.2011)
Старый 11.10.2011, 22:18   #160
Warlord123
Пользователь
 
Регистрация: 09.03.2010
Сообщений: 37
Сказал(а) спасибо: 4
Поблагодарили 63 раз(а) в 21 сообщениях
Warlord123 Скоро придёт к известности
По умолчанию

Добавил расшифровку SpellInterruptFlags флагов и возможность вводить в поля шестнадцатеричные числа в формате 0x....
Вложения
Тип файла: 7z Release.7z (93.8 Кб, 304 просмотров)
Warlord123 вне форума   Ответить с цитированием
Ответ


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.



Текущее время: 10:36. Часовой пояс GMT +3.


ru-mangos.ru - Русское сообщество MaNGOS
Главная цель проекта MaNGOS - обучающая, поэтому разрешается использовать исходный код и собранную программу только для образовательных целей.
Вы не можете использовать MaNGOS в коммерческих целях, а также не разрешается устанавливать публичные серверы на базе MaNGOS.
Любое копирование материалов, информации в любом виде без указания источника - форума Ru-MaNGOS будет считаться нарушением авторских прав и нарушением Уголовного Кодекса РФ, ст. 146 ст. 147.
Перевод vBulletin: zCarot