PDA

Просмотр полной версии : TableComparator[C#]


Lordronn
12.06.2011, 22:38
Version 1.0

Решил переписать и выложить программу на общее обозрение. Программа писалась мною для сравнение таблиц(чистых с данными со сниффов) и выводов различия в виде UPDATE запроса.
На данный момент программа сравнивает только 2 таблицы: creature_template & creature_model_info. Для них должны быть соответствующие им таблицы: creature_template_sniff & creature_model_info_sniff.
Программа сравнивает не все поля, а лишь те, данные для которых могут прийти со сниффа, а именно:

public struct Creature
{
public uint entry;
public float speed_run;
public float speed_walk;
public uint faction;
public uint dynamicFlags;
public uint attackPower;
public uint rangeAttackPower;
public uint dmgMultiplier;
public uint baseAttackTime;
public uint rangeAttackTime;
public uint unit_flag;
public uint unit_class;
public float minDamage;
public float maxDamage;
public float scale;
public uint vehicleId;
};

public class ModelInfo
{
public uint modelid;
public float bounding_radius;
public float combat_reach;
public sbyte gender;
};

В будущем добавлю поддержку других таблиц

репозиторий на гите

https://github.com/Lordron/TableComparator/tree/


Version 2.0

https://github.com/Lordron/TableComparator-v-2.0/

Новый репозиторий новой версии. В отличии от старой тут структура хранится в xml. Сравнить можно абсолютно любые таблицы с соответствующими им таблицами с приставкой _sniff. Достаточно лишь описать структуру в xml. Название xml файла соответствует названию таблицы. Пример:

<Table>
<field name="entry"/>
<field name="speed_run"/>
<field name="speed_walk"/>
<field name="faction_a"/>
<field name="faction_h"/>
<field name="dynamicflags"/>
<field name="unit_flags"/>
<field name="rangeattacktime"/>
<field name="baseattacktime"/>
<field name="scale"/>
<field name="unit_class"/>
<field name="mindmg"/>
<field name="maxdmg"/>
<field name="attackpower"/>
<field name="rangedattackpower"/>
<field name="dmg_multiplier"/>
<field name="Vehicle_Id"/>
</Table>

Для использования нужен Microsoft Visual Studio, MySQL Connector

http://www.mysql.com/downloads/connector/net/

пример работы

http://ytdb.ru/showpost.php?p=33774&postcount=223

делалось этой утилиткой

LordJZ
12.06.2011, 23:05
Comparator это сильно :)

Lordronn
12.06.2011, 23:20
Ну я долго подбирал название, ибо до этого было обычное название - ConsoleApplication2. Ну на английском сравнитель будет comparator. Например утилитка
Сравнитель файлов - File Comparator

LordJZ
13.06.2011, 08:48
...
Ну на английском сравнитель будет comparator.
...К этому и было моё «сильно»

Lordronn
13.06.2011, 13:45
Добавил сравнялку для ГО(фракция и флаги). Также вынес конфиг подключения в xml файл, которые десериализуется при запуске.

tempura
13.06.2011, 16:12
Сравнитель файлов - File Comparator

file comparer

Lordronn
13.06.2011, 16:19
Я не переводил, а нашел в интернете такую программу)

http://www.google.com.ua/search?client=opera&rls=ru&q=File+Comparator&sourceid=opera&ie=utf-8&oe=utf-8&channel=suggest

Lordronn
16.06.2011, 18:46
Добавил сравнялку creature_equip_template с соответствующей ей creature_equip_template_sniff.

Lordronn
07.09.2011, 15:43
https://github.com/Lordron/TableComparator-v-2.0/

Новый репозиторий новой версии. В отличии от старой тут структура хранится в xml. Сравнить можно абсолютно любые таблицы с соответствующими им таблицами с приставкой _sniff. Достаточно лишь описать структуру в xml. Название xml файла соответствует названию таблицы. Пример:

<Table>
<field name="entry"/>
<field name="speed_run"/>
<field name="speed_walk"/>
<field name="faction_a"/>
<field name="faction_h"/>
<field name="dynamicflags"/>
<field name="unit_flags"/>
<field name="rangeattacktime"/>
<field name="baseattacktime"/>
<field name="scale"/>
<field name="unit_class"/>
<field name="mindmg"/>
<field name="maxdmg"/>
<field name="attackpower"/>
<field name="rangedattackpower"/>
<field name="dmg_multiplier"/>
<field name="Vehicle_Id"/>
</Table>