Character stat research
Хочу сделать пхп класс, чтобы он извлекал данные перса из бд в массив, и затем эти данные можно было бы где-то использовать. Например, на основе этого я хотел сделать настраиваемый юзербар, с разными картинками, разными видами, оптимизированный и кешируемый. Но своего вов сервера уже не имею, и толком не играл в вов). И тем более, не знаю откуда брать статы из бд.
Ниже все статы, для части из них я нашел как извлечь. А для всех остальных статов прошу помочь найти откуда брать инфу конкретно по каждому. То, что становится известно - буду обновлять в этом сообщении. Если что не так - поправляйте. [Item level] Items Level [Arhievements] Achv Points (SELECT SUM (`points`) FROM `dbc_achievement` WHERE `id` IN (SELECT `achievement` FROM `character_achievement` WHERE `guid`=?d) ) [Basic stats] Health (таблица: сharacter.character_stats, поле: maxhealth) Mana (таблица: сharacter.character_stats, поле: maxpowerX, индекс: 1) Stamina (таблица: сharacter.character_stats, поле: stamina) Intellect (таблица: сharacter.character_stats, поле: intellect) Strength (таблица: сharacter.character_stats, поле: strength) Agility (таблица: сharacter.character_stats, поле: agility) Spirit (таблица: сharacter.character_stats, поле: spirit) [Melee] AP (таблица: сharacter.character_stats, поле: attackPower) Armor Pen Crit (таблица: сharacter.character_stats, поле: critPct) Expertise Hit Hit Perc Energy (таблица: сharacter.character_stats, поле: maxpowerX, индекс: 4) Melee Haste [Ranged] RAP (таблица: сharacter.character_stats, поле: rangedAttackPower) Ranged Crit (таблица: сharacter.character_stats, поле: rangedCritPct) Ranged Hit Ranged Hit Perc Ranged Haste [Spells] Spell Power (таблица: сharacter.character_stats, поле: spellPower) Spell Crit (таблица: сharacter.character_stats, поле: spellCritPct) Spell Hit Spell Hit Perc Spell Pen Spell Haste MP5 Mana Reg Healing ≈ Spell Power Arcane Crit ≈ Crit Power Arcane Dmg ≈ Spell Power Fire Crit ≈ Crit Power Fire Dmg ≈ Spell Power Frost Crit ≈ Crit Power Frost Dmg ≈ Spell Power Holy Crit ≈ Crit Power Holy Dmg ≈ Spell Power Nature Crit ≈ Crit Power Nature Dmg ≈ Spell Power Shadow Crit ≈ Crit Power Shadow Dmg ≈ Spell Power [Defence] Avoidance Armor (таблица: сharacter.character_stats, поле: armor) Block Block Rtng (таблица: сharacter.character_stats, поле: blockPct) Defense Dodge (таблица: сharacter.character_stats, поле: dodgePct) Parry (таблица: сharacter.character_stats, поле: parryPct) Resilience [PvP] 2v2 Rating 3v3 Rating 5v5 Rating Kills (таблица: сharacter.characters, поле: totalKills) [Special cases] Cat AP Cat Crit Откуда взять две основные профессии персонажа? Профессии хранятся там же, где скиллы. Сначала берутся все скиллы из таблицы character_skills, сортируя по полю value по убыванию, затем из них отбираются профессии (пример). Откуда взять значения 3х основных талантов? http://ru-mangos.ru/showpost.php?p=11467&postcount=20 Список статов взят с http://www.zetbit.com/ Много полезного по теме в вики http://wiki.ytdb.ru/index.php/Charactersdb_struct Так же часть полезностей в Blizzlike userbar от SergiK_KilleR http://svn.assembla.com/svn/webmango....character.php |
Цитата:
Цитата:
character_skills |
Ок. Но я пока не ориентируюсь что и где в таблицах находится. Идеально было бы получить алгоритм извлечения каждой статы из списка выше.
Например, в character_skills 2 поля value и max, какое из них нужно? Чтобы получить 3 основных профессии, я так понимаю, надо отсортировать по убыванию по одному из этих полей и взять 3 профессии? Далее, character_talent. То же самое: сортировка по убыванию, лимит в 2. current_rank - это то поле, которое нужно? Ещё очень хорошо было бы, если кто-то выложит дамп нескольких персов из бд character. Или можно всю бд, если нескольких, отдельно со всеми нужными таблицами, сложно вытащить. |
Цитата:
|
Цитата:
Я понимаю это касательно жизней, например. А вот профессия как может быть текущей и максимальной не понимаю. |
Точно так же как и жизнь. Есть максимальное значение, и то что у тебя на текущий момент. Что тут непонятного ?
З.Ы. ааа ты не играл в вов... понятно Уровень владения профессией выражается числом, а не просто знаю/не знаю. Изначально после посещения соответствующего тренера твой навык владения профой = 0. И ограничен сверху некоторым лимитом. Когда ты делаешь какие-то дествия связанные с твоей профой (собираешь руду/траву, что-то крафтишь ...) твой текущий навык повышается, позволяя учить у тренера новые возможности. Выучить профессию выше максимального уровня невозможно. |
Для жизни надо использовать максимальное, т.к. нет смысла выводить текущее, если у чара в момент забора статистики 1 хитпоинт.
А для профессии я так и не понял, надо использовать текущее или максимальное значение? Она может уменьшаться, как жизни, или как? :) |
для проф надо выводить текущее/максимальное. Ибо максимальное ограничено текущим патчем. Новый лимит будет в катаклизме.
Уменьшаться она не может, можно только полностью сбросить профессию. Посмотри в армори, там все хорошо видно |
Йоха, теперь понял)
Как насчет всего остального? :) |
не, я не силен в структуре таблиц мангоса, могу только что-то по игре рассказать
|
Цитата:
Вот таблица сharacter_talent, там поле current_rank. Этот ранк и есть единица измерения таланта? |
Вложений: 1
current_rank - это сколько очков вложено в талант. Ты дерево талантов представляешь ? у некоторых талантов есть ранки, вот это оно и есть
|
Вот перс на вовармори, там колдовство 61.
Значит у него current_rank = 61? Тогда что означает текст в вики "(для талантов имеющих более одного ранга)"? |
61 - это общее количество очков вложенных во всю ветку
Улучшенное проклятие агонии 2/2 - это ранк таланта два из двух |
Уже яснее) Значит надо суммировать все таланты перса, входящие в колдовство.
Тогда что такое колдовство, и как я узнаю, принадлежит ли ему данный талант? |
Spell Dmg = Healing=Arcane Dmg=Fire DmgFrost Dmg=Holy Dmg=
Nature Dmg=Shadow Dmg Spell Crit=Fire Crit=Arcane Crit=Frost Crit=Holy Crit=Nature Crit=Shadow Crit Crit - http://wiki.ytdb.ru/index.php/Charac...s#spellCritPct Dmg - http://wiki.ytdb.ru/index.php/Charac...ats#spellPower Тоесть демаг и крит для всех одинаков |
Цитата:
Healing, надеюсь, опечаткой был? И вопрос, зачем тогда на zetbit.com добавили все эти Crit и Dmg? |
Нет Healing не опечатка.
Цитата:
А вообще не проще ли глянуть в реализацию WowArmory? |
Цитата:
|
Подсчет талантов:
сам скрипт - http://paste2.org/p/928574 таблица dbc_talents - http://filebeam.com/591fdb6f95600a90993eca07e7e705ca Заливать в базу персонажей. Использование: http://localhost/talents.php?guid=1 Цитата:
|
Цитата:
Как определить в данном случае не знаю, может в мангосе есть какая-то еще таблица в которой прописаны принадлежности талантов к определенной ветке. Если нет, тогда выкручиваться как-то по другому, например завести эти таблицы самому или определить в программе 3 массива с перечнем талантов принадлежащих каждой ветке. |
Эти данные есть в DBC
|
Цитата:
все школы магии могут иметь различные значения у одного персонажа. Ибо есть всякие енчанты, таланты, проки предметов и.т.д. которые влияют не на весь спел дмг, а на конкретную школу. Например енчант, Крит у холи паладинов всегда выше у школы холи магии чем у остальных, особенность класса. см талант священная сила. |
Я запутался с дамагами и критами. Все же их можно к одному стату свести или есть отличия у некоторых классов персонажей?
Если отличия есть, то как их взять из бд? Красным пометил то, что мне пока непонятно откуда брать. Мне очень нужна база "character", чтобы прямо на ней тестировать. Если кто-то поделится полным дампом, буду премного благодарен. Лучше базу, где персов побольше - будет проще улучшить производительность. |
ну для упрощения можно сделать все равным, однако по факту значения спд разных школ могут отличаться, крит может быть другим у холи паладина
|
Цитата:
и http://wiki.ytdb.ru/index.php/Charac...s#spellCritPct а дальше уже накладываются все возможные таланты и так далее. То есть в самой БД нету разделения на школы. Все эти разделения накладываются талантами, чантами Цитата:
|
Цитата:
PHP код:
|
Такой запрос я взял с этого юзербара http://svn.assembla.com/svn/webmango....character.php. Может там имеется в виду что-то другое?
PHP код:
Ну поделится кто дампом базы персов? :) Только персы - аккаунты не нужны. |
Цитата:
Цитата:
|
К сожалению, просто структура без данных (и без того, с чем эти данные соотносятся) мне ни о чем не говорит.
Теперь ещё хорошо бы получить актуальные Talents.dbc, TalentTab.dbc и Achievement.dbc (клиента игры у меня нет). И я не понимаю, почему никто не хочет (или не может?) выложить базу персов... Увы, но без неё ничего с места не сдвинется. :( |
а что мешает скачать клиент?
|
Цитата:
пробовал переписать код мангоса на пхп, осилил совсем не много, при чем только класс player +1500 строк; и запутался уже окончательно ... имхо проще написать на С++ мод для апачи используя исходники мангоса, чем биться головой о пхп... скриншот http://img294.imageshack.us/img294/8168/16862449.jpg |
|
для того что бы получить статы, минимум необходимо :
1. загрузить базовые значения PHP код:
3. "обнулить" модификаторы 4. загрузить все скилы, в том числе расовые(не все хранятся в character_skills, часть в playercreateinfo_spell) 5. загрузить equip - применить бонусы с вещей 6. загрузить все ауры ( с учетом того, что некоторые имеют отрицательное значение ) 7. пересчитать все рейтинги, защитные навыки 8. применить сохраненные значение хп и повер |
Ауры (если это баффы) учитывать не надо.
|
Цитата:
пример: http://ru.wowhead.com/spell=168 будет кривой расчет брони... http://ru.wowhead.com/spell=1245 неверное макс хп |
Цитата:
|
Текущее время: 19:29. Часовой пояс GMT +3. |
ru-mangos.ru - Русское сообщество MaNGOS