Ru-MaNGOS

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

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

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

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
Старый 15.05.2012, 20:35   #1
Lordronn
Умный
 
Регистрация: 17.06.2010
Сообщений: 397
Сказал(а) спасибо: 58
Поблагодарили 55 раз(а) в 38 сообщениях
Lordronn Скоро придёт к известности
По умолчанию WoWHead Data parser

Представляю вам свой WoWHead Data parser, который я пишу уже довольно долго, когда только появляется свободное время.

Ссылка на репозиторий: https://github.com/Lordron/WoWHead-data-parser
Бинарники в аттаче (.NET 4.0 Client Profile)

Парсер поддерживает 4 вида парсинга:
-По одному Id
-По диапазону Id
-По списку Id
-По фильтру вовхеда (только некоторые парсеры)

Хочу обратить внимание, что список Id я получил с вовхеда, а не брал его из головы.



В первом выпадающем меню выбирается локализация и, соответственно, сервер.
Во втором выпадающем меню выбирается парсер

Single, Multiple, List, WoW Head Filter - вид парсера, я описывал выше.
(Если вы выбрали тип List, то в выпадающем меню в этой вкладке выбирайте ту строку, которая похожа на парсер. Т.е для парсера тренеров - trainer.welf, а для книжек - page.welf)

Программа поддерживает следующие парсеры



С версии 2.1 добавлен конфиг файл, в котором мы можете настроить вывод sql запросов


Welf format


Пожалуйста тестируйте и отписывайтесь о том, что не исправно и чего не хватает. Очень жду ваших отзывов!

Changelog

Вложения
Тип файла: rar 2.3 Release Latest.rar (285.7 Кб, 610 просмотров)
Тип файла: rar 2.3.1 Release Latest.rar (259.9 Кб, 674 просмотров)

Последний раз редактировалось Lordronn; 24.05.2012 в 19:06.
Lordronn вне форума   Ответить с цитированием
4 пользователя(ей) сказали cпасибо:
KiriX (15.05.2012), lovepsone (21.05.2012), partizanes (15.05.2012), srv38 (16.05.2012)
Старый 15.05.2012, 21:06   #2
partizanes
Пользователь
 
Аватар для partizanes
 
Регистрация: 15.03.2010
Адрес: Беларусь,Витебск
Сообщений: 93
Сказал(а) спасибо: 97
Поблагодарили 36 раз(а) в 11 сообщениях
partizanes На верном пути
Отправить сообщение для partizanes с помощью ICQ Отправить сообщение для partizanes с помощью Skype™
По умолчанию

1)не хватает наверно ,или кнопки about или версии в заголовке
2)запретить развертку во все окно ,так как становиться криво.
3)
4)Multiple->1-50->start->abort->yes-abort->yes->crash
вообщем везде если прервать операцию и повторно нажать прервать да ->краш.

5)м.б сохранять последний язык парсинга в конфиге?
6)
p.s В Любом случае интересный продукт ,удачного развития проекта.

add.

7) не помешало бы определенное положение формы (about) и запоминать положение main окна.
8)от опции русского языка я думаю тоже не стоит отказываться


тестирую....
__________________
Когда-нибудь на оффе поставят Mangos...

Последний раз редактировалось partizanes; 15.05.2012 в 22:47.
partizanes вне форума   Ответить с цитированием
Пользователь сказал cпасибо:
Lordronn (15.05.2012)
Старый 15.05.2012, 21:28   #3
Lordronn
Умный
 
Регистрация: 17.06.2010
Сообщений: 397
Сказал(а) спасибо: 58
Поблагодарили 55 раз(а) в 38 сообщениях
Lordronn Скоро придёт к известности
По умолчанию

Цитата:
3)не нашел как работает wowheadFilterTab(WoW head Filter)
он работает только для npc\quest locale\data парсера и только, это для экономии времени. Уже переделываю

add:
1,2,4,5 - готово!
сделал сохранение последнего выбранного парсера и языка
файл добавил

жду еще предложений!

add:
6.Он заблокирован) + так выходит значительно быстрее, чем каждый раз преобразовывать число в текст
7.Не думаю что это нужно
8.Сделаю, как с локализациями разберусь. Тогда все сообщения и интерфейс переведу

Последний раз редактировалось Lordronn; 15.05.2012 в 22:48.
Lordronn вне форума   Ответить с цитированием
Старый 15.05.2012, 22:50   #4
partizanes
Пользователь
 
Аватар для partizanes
 
Регистрация: 15.03.2010
Адрес: Беларусь,Витебск
Сообщений: 93
Сказал(а) спасибо: 97
Поблагодарили 36 раз(а) в 11 сообщениях
partizanes На верном пути
Отправить сообщение для partizanes с помощью ICQ Отправить сообщение для partizanes с помощью Skype™
По умолчанию

__________________
Когда-нибудь на оффе поставят Mangos...
partizanes вне форума   Ответить с цитированием
Старый 15.05.2012, 23:12   #5
Lordronn
Умный
 
Регистрация: 17.06.2010
Сообщений: 397
Сказал(а) спасибо: 58
Поблагодарили 55 раз(а) в 38 сообщениях
Lordronn Скоро придёт к известности
По умолчанию

Почему, варианта. Просто в случае с нумерикАпДаун-ом мы увеличиваем каждый раз число на 1 - просто и быстро. А в случае с лейблом надо сначала нужно перевести число в строку, и уже поставить ее лейблу, что значительно медленнее.
Жду дальше предложений и багов!
Lordronn вне форума   Ответить с цитированием
Старый 18.05.2012, 13:15   #6
partizanes
Пользователь
 
Аватар для partizanes
 
Регистрация: 15.03.2010
Адрес: Беларусь,Витебск
Сообщений: 93
Сказал(а) спасибо: 97
Поблагодарили 36 раз(а) в 11 сообщениях
partizanes На верном пути
Отправить сообщение для partizanes с помощью ICQ Отправить сообщение для partizanes с помощью Skype™
По умолчанию

очень долго загружается 15-20 сек на очень мощных машинах (release/debug)
вопрос что так долго подгружает и нельзя ли вынести в отдельный поток *?
__________________
Когда-нибудь на оффе поставят Mangos...
partizanes вне форума   Ответить с цитированием
Старый 18.05.2012, 13:51   #7
Lordronn
Умный
 
Регистрация: 17.06.2010
Сообщений: 397
Сказал(а) спасибо: 58
Поблагодарили 55 раз(а) в 38 сообщениях
Lordronn Скоро придёт к известности
По умолчанию

Хм и правда. Я бы подумал, что дело в дб2 файлах, но тут на них тратиться 36мс. Сейчас покопаю

Нашел! Вся задержка из-за загрузки welf файла. При запуске он автоматом грузит первый файл из списка, и получается так, что этот файл как-раз item.welf, а там 60к записей.

Можно попробовать вынести загрузку в отдельный поток, но может произойти так(как раз таки на такой файле), что он еще будет грузиться, а вы уже будете его использовать. Так что думаю это не вариант.
Думаю надо придумывать какой нибудь другой способ хранения, уже вроде и структуру придумал

Код:
struct MainHeader
{
    string Name; // Имя парсера, для автоассоциации парсера и файла
    int length; // Кол-во записей
}
Код:
struct Block
{
    uint Id
}

Последний раз редактировалось Lordronn; 18.05.2012 в 14:32.
Lordronn вне форума   Ответить с цитированием
Старый 18.05.2012, 15:20   #8
Lordronn
Умный
 
Регистрация: 17.06.2010
Сообщений: 397
Сказал(а) спасибо: 58
Поблагодарили 55 раз(а) в 38 сообщениях
Lordronn Скоро придёт к известности
По умолчанию

https://github.com/Lordron/WoWHead-d...a6718dd6e4bfa4

Исправил, пока welf-ы не переделывал.

Думаю та проверка и вовсе не нужна была. Если генерировать файлы welf креатор (надо будет кстати его переписать основательно), то даблов вообще быть не может
Lordronn вне форума   Ответить с цитированием
Пользователь сказал cпасибо:
partizanes (18.05.2012)
Старый 18.05.2012, 15:21   #9
partizanes
Пользователь
 
Аватар для partizanes
 
Регистрация: 15.03.2010
Адрес: Беларусь,Витебск
Сообщений: 93
Сказал(а) спасибо: 97
Поблагодарили 36 раз(а) в 11 сообщениях
partizanes На верном пути
Отправить сообщение для partizanes с помощью ICQ Отправить сообщение для partizanes с помощью Skype™
По умолчанию

Почему бы у пользователя при надобности не спросить загрузить или нет?
или при первом вызове?*
__________________
Когда-нибудь на оффе поставят Mangos...
partizanes вне форума   Ответить с цитированием
Старый 18.05.2012, 15:31   #10
Lordronn
Умный
 
Регистрация: 17.06.2010
Сообщений: 397
Сказал(а) спасибо: 58
Поблагодарили 55 раз(а) в 38 сообщениях
Lordronn Скоро придёт к известности
По умолчанию

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

https://github.com/Lordron/WoWHead-d...bf1ad6d5a46206

Обновил юзер агенты, и увеличил их кол-во до 20.
Взял теперь новые юзер агенты для новых браузеров (сафари, мозила, опера, хром)
+ фиксы по мелочи
Lordronn вне форума   Ответить с цитированием
Старый 21.05.2012, 18:18   #12
lovepsone
Ученый
 
Регистрация: 07.03.2010
Адрес: Беларусь,Брест
Сообщений: 188
Сказал(а) спасибо: 131
Поблагодарили 34 раз(а) в 27 сообщениях
lovepsone Хрен знает что...lovepsone Хрен знает что...
По умолчанию

Неплохо, пару недель я хотел написать что-то похожее на Delphi, но решил изучать c++.
Насчет проги:
1) хотелось бы видеть русскую прогу;
2) прога немного тормозит, хотя машина у меня не слабая.
__________________
sql-language.ru

Последний раз редактировалось lovepsone; 21.05.2012 в 18:31.
lovepsone вне форума   Ответить с цитированием
Старый 21.05.2012, 19:00   #13
Lordronn
Умный
 
Регистрация: 17.06.2010
Сообщений: 397
Сказал(а) спасибо: 58
Поблагодарили 55 раз(а) в 38 сообщениях
Lordronn Скоро придёт к известности
По умолчанию

1.Сделаю, как только пойму как сделать локализацию нормально
2.Что именно? Знаю парсеры почему-то тормозят дойдя до опр. уровня. Например вендор парсер всегда почему-то тормозит на 950-980 ентри (если использовать список), не знаю даже почему.
Lordronn вне форума   Ответить с цитированием
Старый 21.05.2012, 19:38   #14
lovepsone
Ученый
 
Регистрация: 07.03.2010
Адрес: Беларусь,Брест
Сообщений: 188
Сказал(а) спасибо: 131
Поблагодарили 34 раз(а) в 27 сообщениях
lovepsone Хрен знает что...lovepsone Хрен знает что...
По умолчанию

а если локализацию пихать в отдельный файл, к примеру lang/russian.xml? Далее в настройках пользователь сам будет выбирать нужный ему язык. Правда наверное это увеличит нагрузку, при передачи значений в опции формы. Я наверное так и сделал бы.
__________________
sql-language.ru
lovepsone вне форума   Ответить с цитированием
Старый 21.05.2012, 22:13   #15
Lordronn
Умный
 
Регистрация: 17.06.2010
Сообщений: 397
Сказал(а) спасибо: 58
Поблагодарили 55 раз(а) в 38 сообщениях
Lordronn Скоро придёт к известности
По умолчанию

Тут есть и стандартные средства. Я начал локализацию потихоньку, но что-то не пойму как программно сменить язык.
Lordronn вне форума   Ответить с цитированием
Старый 23.05.2012, 17:28   #16
Lordronn
Умный
 
Регистрация: 17.06.2010
Сообщений: 397
Сказал(а) спасибо: 58
Поблагодарили 55 раз(а) в 38 сообщениях
Lordronn Скоро придёт к известности
По умолчанию

Сделал! Смотрите последние коммиты. Жду отзывов.
Пока нашел только 1 баг: после смены локализации консоль очищается, но в лог файл все пишеться
Lordronn вне форума   Ответить с цитированием
Пользователь сказал cпасибо:
lovepsone (24.05.2012)
Старый 24.05.2012, 19:04   #17
Lordronn
Умный
 
Регистрация: 17.06.2010
Сообщений: 397
Сказал(а) спасибо: 58
Поблагодарили 55 раз(а) в 38 сообщениях
Lordronn Скоро придёт к известности
По умолчанию

Обновил библиотеку Newtonsoft.Json.dll с 4.0.8.14612 до 4.5.5.14917
Как видно разница большая. Вы почувствуйте уменьшенную нагрузку на процессор при парсинге.
Также новые бинарники 2.3.1

2.3.1
-Обновление библиотеки Newtonsoft.Json.dll, что даст множество улучшений
-Локализация приложений
-Сохранение последнего использованного парсера и локаля
-Исправлено 2 краша
-Добавлена About окошко
-Исправлены найденные баги
-Небольшая оптимизация
Вложения
Тип файла: rar 2.3.1 Release Latest.rar (259.9 Кб, 552 просмотров)
Lordronn вне форума   Ответить с цитированием
2 пользователя(ей) сказали cпасибо:
KiriX (26.05.2012), YuruY (25.05.2012)
Старый 27.05.2012, 14:01   #18
Lordronn
Умный
 
Регистрация: 17.06.2010
Сообщений: 397
Сказал(а) спасибо: 58
Поблагодарили 55 раз(а) в 38 сообщениях
Lordronn Скоро придёт к известности
По умолчанию

Что-то вовхед тупит последнее время, работает медленно. Сильно мешает в разработке npc parser-а. У меня одного такая проблема? А то вдруг они мне что-то сделали, за то что я постоянно парсю вовхед)
Lordronn вне форума   Ответить с цитированием
Старый 27.05.2012, 15:58   #19
Amaru
MaNGOS Dev
 
Регистрация: 16.01.2011
Сообщений: 262
Сказал(а) спасибо: 57
Поблагодарили 73 раз(а) в 59 сообщениях
Amaru На верном пути
По умолчанию

Открыл, нажал List, выбрал item.welf, нажал Start.
И уже часа как полтора Parsing на 64750
Amaru вне форума   Ответить с цитированием
Старый 27.05.2012, 16:00   #20
Lordronn
Умный
 
Регистрация: 17.06.2010
Сообщений: 397
Сказал(а) спасибо: 58
Поблагодарили 55 раз(а) в 38 сообщениях
Lordronn Скоро придёт к известности
По умолчанию

Вот и я о том же. вовхед тупит жестко. Надо будет сделать максимальное время ожидания. Если больше N минут, то останавливать

+ надо будет Abort кнопку переделать, чтобы не ожидать завершения всех операций, а самому их завершать. Придется тогда при создании реквеста помещать его в массив, а после удалять. И после остановки приложения останавливать все существующих на данный момент реквесты

Последний раз редактировалось Lordronn; 27.05.2012 в 16:50.
Lordronn вне форума   Ответить с цитированием
Старый 27.05.2012, 17:13   #21
Amaru
MaNGOS Dev
 
Регистрация: 16.01.2011
Сообщений: 262
Сказал(а) спасибо: 57
Поблагодарили 73 раз(а) в 59 сообщениях
Amaru На верном пути
По умолчанию

Цитата:
Сообщение от Lordronn Посмотреть сообщение
Вот и я о том же. вовхед тупит жестко. Надо будет сделать максимальное время ожидания. Если больше N минут, то останавливать

+ надо будет Abort кнопку переделать, чтобы не ожидать завершения всех операций, а самому их завершать. Придется тогда при создании реквеста помещать его в массив, а после удалять. И после остановки приложения останавливать все существующих на данный момент реквесты
Как я понял, 64750 это последний айди
Amaru вне форума   Ответить с цитированием
Старый 27.05.2012, 17:16   #22
Lordronn
Умный
 
Регистрация: 17.06.2010
Сообщений: 397
Сказал(а) спасибо: 58
Поблагодарили 55 раз(а) в 38 сообщениях
Lordronn Скоро придёт к известности
По умолчанию

Угу. Там вовхед глючит, и не отправляет ответ. А пока ответ не придет так и будет весеть 64750). Хз почему так, всмысле почему вовхед не отдает.

64750 - это не ласт ИД, это последний Ид в списке под номером 64750. На самом деле последний Ид - 79062
Lordronn вне форума   Ответить с цитированием
Старый 02.06.2012, 23:33   #23
Lordronn
Умный
 
Регистрация: 17.06.2010
Сообщений: 397
Сказал(а) спасибо: 58
Поблагодарили 55 раз(а) в 38 сообщениях
Lordronn Скоро придёт к известности
По умолчанию

Обновил DBFilesClient.NET.dll
https://github.com/Lordron/WoWHead-d...18c494471f7244

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

Просматривал кол-во открытых соединений и выяснил причину висяков. Я про те висяки, когда прога бесконечно ожидала данные. Когда висела на 2599 из 2600 например.
Причина такого бага в том, что из-за какой-то неизвестной х**ни кол-во открытых соединений равно 0, в то время как программа еще работает. По какой-то причине новые подключения больше не создаются или же уже были закрыты раньше.
Программа ждет пока все семафоры будут освобождены. Семафоры я освобождаю вместе с закрытием подключения. По этому я думаю, что программа перестает создавать подключения. Только в такой случае может быть такое разногласие, когда семафоры не высвобождаются из-за того, что новые соединения не создаются.

add: да, все верно

Последний раз редактировалось Lordronn; 03.06.2012 в 12:34.
Lordronn вне форума   Ответить с цитированием
Старый 03.06.2012, 12:42   #25
rsa
Почетный флудер
Старожил
 
Аватар для rsa
 
Регистрация: 08.03.2010
Адрес: Мурманск, Россия
Сообщений: 788
Сказал(а) спасибо: 55
Поблагодарили 333 раз(а) в 151 сообщениях
Записей в дневнике: 1
rsa Как самоцвет среди гранитаrsa Как самоцвет среди гранитаrsa Как самоцвет среди гранитаrsa Как самоцвет среди гранита
По умолчанию

Цитата:
Сообщение от Lordronn Посмотреть сообщение
что из-за какой-то неизвестной х**ни кол-во открытых соединений равно 0, в то время как программа еще работает. По какой-то причине новые подключения больше не создаются или же уже были закрыты раньше.
не из-за какой-то неизвестной х..., а из-за особенностей винсока.
я с ним не работаю уже много лет, поэтому знания относятся ко временам WinXP, но думаю ничего не изменилось. количество доступных для процесса сокетов в винсоке - величина динамическая, и вовсе не равна FFFF-(число открытых), ее надо запрашивать спец. методом, и заранее предполагать что число более 1024 - скорее всего неверное...
в реальности проще вести счетчик в софтине самостоятельно, закладываясь на ограничение 256 для клиентской винды и 1024 для серверной.
rsa вне форума   Ответить с цитированием
Старый 03.06.2012, 12:58   #26
Lordronn
Умный
 
Регистрация: 17.06.2010
Сообщений: 397
Сказал(а) спасибо: 58
Поблагодарили 55 раз(а) в 38 сообщениях
Lordronn Скоро придёт к известности
По умолчанию

У меня максимальное кол-во подключений - 100
Lordronn вне форума   Ответить с цитированием
Старый 03.06.2012, 13:46   #27
Lordronn
Умный
 
Регистрация: 17.06.2010
Сообщений: 397
Сказал(а) спасибо: 58
Поблагодарили 55 раз(а) в 38 сообщениях
Lordronn Скоро придёт к известности
По умолчанию

Вот бинарники свежие, версию пока не менял.
Вложения
Тип файла: rar Release.rar (313.4 Кб, 569 просмотров)
Lordronn вне форума   Ответить с цитированием
Старый 03.06.2012, 15:03   #28
rsa
Почетный флудер
Старожил
 
Аватар для rsa
 
Регистрация: 08.03.2010
Адрес: Мурманск, Россия
Сообщений: 788
Сказал(а) спасибо: 55
Поблагодарили 333 раз(а) в 151 сообщениях
Записей в дневнике: 1
rsa Как самоцвет среди гранитаrsa Как самоцвет среди гранитаrsa Как самоцвет среди гранитаrsa Как самоцвет среди гранита
По умолчанию

Цитата:
Сообщение от Lordronn Посмотреть сообщение
У меня максимальное кол-во подключений - 100
в винсоке одно http подключение = 2...4 открытых сокета.
rsa вне форума   Ответить с цитированием
Старый 09.06.2012, 22:43   #29
Lordronn
Умный
 
Регистрация: 17.06.2010
Сообщений: 397
Сказал(а) спасибо: 58
Поблагодарили 55 раз(а) в 38 сообщениях
Lordronn Скоро придёт к известности
По умолчанию

Сижу мучаюсь уже 2 вечер. Выслушаю любые предложения и идеи по оптимизации. За 2 вечера ничего толкового не получилось
Lordronn вне форума   Ответить с цитированием
Старый 10.06.2012, 14:49   #30
Lordronn
Умный
 
Регистрация: 17.06.2010
Сообщений: 397
Сказал(а) спасибо: 58
Поблагодарили 55 раз(а) в 38 сообщениях
Lordronn Скоро придёт к известности
По умолчанию

После долгих опытов и тестов выяснил, что основной висяк идет из-за блокировки
Код:
lock (_threadLock)
Если снят блокировку, то вендоры парсятся с той же скоростью, за тоже время 1 минута 14 секунд. Но блокировка нужна. Надо будет тут подумать, как бы лучше сделать.
Lordronn вне форума   Ответить с цитированием
Старый 14.06.2012, 11:18   #31
Йоха
Умный
 
Регистрация: 02.07.2010
Сообщений: 434
Сказал(а) спасибо: 27
Поблагодарили 73 раз(а) в 45 сообщениях
Йоха Скоро придёт к известности
По умолчанию

Цитата:
Сообщение от rsa Посмотреть сообщение
в винсоке одно http подключение = 2...4 открытых сокета.
Небольшое уточнение: в winsock нет функций для работы с протоколом http.
Этим занимается библиотека Wininet, которая является более высокоуровненвой по сравнению с winsock и включает в себя функции для работы по http и ftp протоколам.
Йоха вне форума   Ответить с цитированием
Старый 15.06.2012, 15:32   #32
Lordronn
Умный
 
Регистрация: 17.06.2010
Сообщений: 397
Сказал(а) спасибо: 58
Поблагодарили 55 раз(а) в 38 сообщениях
Lordronn Скоро придёт к известности
По умолчанию

Сделал пару изменений, пока не пушал. Уже 2 дня тестирую стабильность и вроде крашей нету. Тестировал на вендорах (2.6к записей). Сейчас начал тестировать на item-ах. Там 64750 записей, как раз протестирую полностью

Вот список запланированных изменений для следующей версии
-Автоматически загружать welf файл при выборе парсера. Если используется кастомный файл, то его можно будет потом поменять.
-Перенос парсинга юнитов и квестов с фильтра на обычный лад
-В связи с предыдущей пунктом расширю возможности парсинга юнитов и квестов. Буду вытягивать побольше данных
Lordronn вне форума   Ответить с цитированием
Старый 17.06.2012, 12:13   #33
Lordronn
Умный
 
Регистрация: 17.06.2010
Сообщений: 397
Сказал(а) спасибо: 58
Поблагодарили 55 раз(а) в 38 сообщениях
Lordronn Скоро придёт к известности
По умолчанию

Набросал кошерный npc парсер, не использующий вовхед фильтры. Удалось вытащить следующие поля

Data:
-Level
-Money
-Currency
-Type
-Quotes

Locale:
-Name

К сожалению SubName вытащить пока не удалось
Lordronn вне форума   Ответить с цитированием
Пользователь сказал cпасибо:
lovepsone (29.06.2012)
Старый 17.06.2012, 12:46   #34
virusav
Администратор
 
Аватар для virusav
 
Регистрация: 19.02.2010
Сообщений: 492
Сказал(а) спасибо: 55
Поблагодарили 341 раз(а) в 154 сообщениях
virusav Реально хороший человекvirusav Реально хороший человекvirusav Реально хороший человекvirusav Реально хороший человек
Отправить сообщение для virusav с помощью ICQ
По умолчанию

Я так вытаскиваю name и subname:
Код:
<div class="text">(?:(?!<h1>).+?)<h1>\s*((?!&lt^;|</h1>).+?)\s*(?:&lt^;((?!&gt^;).+?)&gt^;)?<
Далее надо только сделать замены символов и обрезать пробелы по краям.

Пишу на Parser 3.4.1, поэтому спецсимволы экранирую символом ^
virusav вне форума   Ответить с цитированием
Старый 29.06.2012, 14:09   #35
Lordronn
Умный
 
Регистрация: 17.06.2010
Сообщений: 397
Сказал(а) спасибо: 58
Поблагодарили 55 раз(а) в 38 сообщениях
Lordronn Скоро придёт к известности
По умолчанию

Вот предварительный вариант скула для Лорда Ребрада (36612)
Хочу еще вытащить ХП

Код:
-- Dump of 6/29/2012 2:06:48 PM (00:00:02.0161153), Total object count: 1
DROP TABLE IF EXISTS `creature_currency_template`;
CREATE TABLE `creature_currency_template` (
  `entry` int(10) NOT NULL,
  `currencyId` int(10) NOT NULL default '0',
  `currencyAmount` int(10) NOT NULL default '0',
  PRIMARY KEY (`entry`)
  ) ENGINE=MyISAM DEFAULT CHARSET=utf8;

DROP TABLE IF EXISTS `creature_quotes`;
CREATE TABLE `creature_quotes` (
  `entry` mediumint(8) unsigned NOT NULL DEFAULT '0',
  `id` tinyint(3) unsigned NOT NULL DEFAULT '0',
  `type` tinyint(3) unsigned NOT NULL DEFAULT '0',
  `text` longtext,
  PRIMARY KEY (`entry`,`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

INSERT INTO `creature_template` (`entry`, `minlevel`, `maxlevel`) VALUES
('36612', '9999', '9999');

INSERT INTO `creature_template` (`entry`, `mingold`, `maxgold`) VALUES
('36612', '1229967', '1229967');

INSERT INTO `creature_currency_template` (`entry`, `currencyId`, `currencyAmount`) VALUES
('36612', '395', '24');

INSERT INTO `creature_quotes` (`entry`, `id`, `type`, `text`) VALUES
('36612', '0', '14', 'Лорд Ребрад кричит: Костяная хватка!'),
('36612', '1', '14', 'Лорд Ребрад кричит: Кости для жертвоприношений!'),
('36612', '2', '14', 'Лорд Ребрад кричит: Плеть накроет этот мир волной смерти и разрушения!'),
('36612', '3', '14', 'Лорд Ребрад кричит: Постой-ка тут!'),
('36612', '4', '14', 'Лорд Ребрад кричит: Сгинь в вечных муках!'),
('36612', '5', '14', 'Лорд Ребрад кричит: Смертные! Ваш путь закончится, так и не начавшись. Никто не смеет входить в обитель господина!'),
('36612', '6', '14', 'Лорд Ребрад кричит: Я вижу... лишь тьму.'),
('36612', '7', '14', 'Лорд Ребрад кричит: ВИХРЬ КОСТЕЙ!'),
('36612', '8', '14', 'Лорд Ребрад кричит: Единственный выход – это смерть!');

Последний раз редактировалось Lordronn; 29.06.2012 в 14:37.
Lordronn вне форума   Ответить с цитированием
Пользователь сказал cпасибо:
lovepsone (29.06.2012)
Старый 29.06.2012, 20:46   #36
virusav
Администратор
 
Аватар для virusav
 
Регистрация: 19.02.2010
Сообщений: 492
Сказал(а) спасибо: 55
Поблагодарили 341 раз(а) в 154 сообщениях
virusav Реально хороший человекvirusav Реально хороший человекvirusav Реально хороший человекvirusav Реально хороший человек
Отправить сообщение для virusav с помощью ICQ
По умолчанию

По тому же нпц результаты моего скрипта (может, что-то еще доставать будешь):
Код:
INSERT INTO `creature_template_stat` SET `entry`=36612, `Health_N10`=6972500, `Health_N25`=23706500, `Health_H10`=10458750, `Health_H25`=31376250 ON DUPLICATE KEY UPDATE `entry`=36612, `Health_N10`=6972500, `Health_N25`=23706500, `Health_H10`=10458750, `Health_H25`=31376250;

INSERT INTO `creature_template` SET `entry`='36612', `name`='Lord Marrowgar', `mingold`='1214082', `maxgold`='1214082' ON DUPLICATE KEY UPDATE `entry`='36612', `name`='Lord Marrowgar', `mingold`='1214082', `maxgold`='1214082';

UPDATE `creature_template` SET `faction_a`=14, `faction_h`=14 WHERE `entry`=36612;
virusav вне форума   Ответить с цитированием
Старый 29.06.2012, 20:55   #37
Lordronn
Умный
 
Регистрация: 17.06.2010
Сообщений: 397
Сказал(а) спасибо: 58
Поблагодарили 55 раз(а) в 38 сообщениях
Lordronn Скоро придёт к известности
По умолчанию

1.Тебе удобнее, на C# нету такого парсера html
Хп я пока не могу достать, а имя и под_имя - дело локаль парсера, благо он у меня пашет
2.Как ты определил фракцию только по цвету? Не думаю что это верно, есть же куча других factionId которые дают такую же враждебность как и 14 фракция, хотя если фракции вообще нету то как затычка до сниффа сойдет.
Для зеленых и жолтых какие factionId юзаешь?
Lordronn вне форума   Ответить с цитированием
Старый 29.06.2012, 21:11   #38
YuruY
YTDB Dev
 
Аватар для YuruY
 
Регистрация: 01.02.2010
Сообщений: 288
Сказал(а) спасибо: 125
Поблагодарили 97 раз(а) в 53 сообщениях
YuruY Скоро придёт к известностиYuruY Скоро придёт к известности
По умолчанию

Цитата:
хотя если фракции вообще нету то как затычка до сниффа сойдет.
Только для этого, сверху из сниффов шлифуется, а кого недосниффал, пока затычка.))
__________________
http://ytdb.ru/
http://svn2.assembla.com/svn/ytdbase/
YuruY вне форума   Ответить с цитированием
Старый 30.06.2012, 19:43   #39
Lordronn
Умный
 
Регистрация: 17.06.2010
Сообщений: 397
Сказал(а) спасибо: 58
Поблагодарили 55 раз(а) в 38 сообщениях
Lordronn Скоро придёт к известности
По умолчанию

Добавил Health парсер. Поставил парситься. Результат будет через пол часа, надеюсь все предусмотрел

add: Спарсил, обнаружил 9к + мобов у которых я не получил ХП. Проблема вы том что у большенства и правда на вовхеде нету ХП, а у остальных я и не знаю как проверить наличие хп, все 9к страниц я не просмотрю.
Также нашел еще 1 проблему. Я то думал что максимум на вовхеде будет ХП для 4 уровней сложности, а там еще у некоторых есть ХП для поиска рейда, + у некоторых вообще 7 ХП (нормал, героик, 4 сложности + поиск рейда)
http://ru.wowhead.com/npc=14337

Сейчас вроде придумал как распределять ХП
Если кол-во хп = 1, то это обычное ХП
Если кол-во хп = 2, то это обычное и героическое ХП
Если кол-во хп = 4, то это 4 уровня сложности
Если кол-во хп = 5, то это 4 уровня сложности + рандом_рейд
Если кол-во хп = 6, то это нормал, героик + 4 уровня сложности
Если кол-во ХП = 7, то это нормал, героик, 4 уровня сложности + рандом_рейд

Нет, я ошибка.
Может быть и так, что если у моба 6хп, то это нормал, героик, 3 сложности + рандом_рейд
http://ru.wowhead.com/npc=32345

Так что тут придется извратиться

Последний раз редактировалось Lordronn; 30.06.2012 в 20:36.
Lordronn вне форума   Ответить с цитированием
Старый 30.06.2012, 21:40   #40
TOM_RUS
MaNGOS Dev
 
Регистрация: 11.03.2010
Сообщений: 468
Сказал(а) спасибо: 0
Поблагодарили 514 раз(а) в 163 сообщениях
TOM_RUS Как свет с небесTOM_RUS Как свет с небесTOM_RUS Как свет с небесTOM_RUS Как свет с небесTOM_RUS Как свет с небесTOM_RUS Как свет с небес
По умолчанию

Какой может быть уровень сложности у non combat петов и рем бота инженерского? Вы о чем вообще?
TOM_RUS вне форума   Ответить с цитированием
Ответ

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[PHP] Wowhead Items Parser Shadez Tools 3 22.08.2011 15:49
[разработка]Wow Packet Parser alien Tools 78 21.06.2011 23:37
Тултипы wowhead Sid Флудильня 2 18.06.2011 23:19
Parser 4.x.x ANTOMA Tools 3 10.12.2010 18:15
wdb-parser Konctantin Tools 0 23.08.2010 11:14


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


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