[patch/dev]Переключение специализации и петы
По информации с офа, когда охотник переключает специализацию, его пет должен убираться с возможностью призыва, а у других классов петы просто удаляются:
Код:
diff --git a/src/game/Player.cpp b/src/game/Player.cpp Этот момент пока не стал делать до получения более подробной информации. У кого какая есть информация по данной теме? Какие будут замечания и предложения? |
Одно дополнение: в текущем патче после переключения специализации пета охотника можно вызвать по свистку и при маунте/дисмаунте.
После получения информации о сбросе талантов пета охотника надо сделать, чтобы после переключения специализации пета можно было вызвать ТОЛЬКО по свистку. |
Цитата:
При смене спека очки сбрасываются только в трёх случаях: 1. При смене спека и ПЕРВОМ вызове данного питомца: Пример Охотник находится в Первой ветке (БМ), у него пет Волк. Игрок купил вторую спецификацию. Вторую спецификацию сделал например "Стрелок" (2 ветка). Хотя тут значение ветки не имеет значения. Второй спек может быть таким же, тоесть тоже БМ, но без пары талантов как в первом спеке. Вызывает того же волка, таланты волка сбрасываются, т.к. он в новом спеке вызван был первый раз! При повторном вызове его таланты останутся. Решили дальше вызвать паука опять смотрится, что он во втором спеке вызывается первый раз, тоесть таланты не раскиданы и так с каждым петом который вызывается. 2. При приручении питомца. 3. При сбросе очков талантов у тренера. Из всего этого делается примерно следующее а) Ядро должно первое что проверять это номер специализации (1 или 2). б) Исходя из пункта а) проверяется спек (1-БМ, 2-ММ и 3-Сурв) тоесть сколько очков талантов надо раскинуть на пета. т.к. очки петов зависят от спека и специфики пета. (в БМ например 21 очко талантов, в остальных спеках 17) в) При вызове пета проверяется первый ли он раз запускается в данной специализации (не путать со спеком) и в данном спеке: --- если да, то проверяется спек (сколько очков надо дать пету в данном спеке); --- если нет, то проверяется спек и вызывается пет с уже раскиданными ранее очками талантов. Если надо более подробно или если что-то не понятно то могу более детально описать. |
1 - по идее, должно быть сохранение очков талантов питомца в конкретной специализации, чтобы при переключении брались правильные данные.
2 и 3 - это не сюда, т.к. это не касается переключения специализации. 1. Выходит, что для петов надо делать ключ в соответствующих таблицах пет-специализация и сохранять/загружать данные в зависимости от выбранной специализации игрока, т.е. как это сделано для игроков. 2. Можно как-нибудь убрать пета охотника так, чтобы после смены специализации он вызывался только по свистку, но не при маунте/дисмаунте? |
Цитата:
|
Я не знаю, где это "у меня", можно было просто кинуть код или ссылку на коммит.
|
Цитата:
в коде соотв. функций. что до конкретного коммита - делал полгода назад, вряд ли найду. да и не в одном коммите оно было. о, нашел. оно оказывается еще и не совсем верно. надо: Код:
if (getClass() == CLASS_HUNTER) |
Как я понимаю, в первую очередь надо реализовать сохранение талантов петов в разрезе специализаций игроков, а потом уже править убирание петов при переключении специализации, т.к. в таблицах петов не нашел полей с указанием специализации игрока.
|
Цитата:
|
В таком случае, если патч уже есть, можно выложить его для рассмотрения.
|
Это не поможет. Код петов у меня и в чистом ядре настолько разошелся, что сделать патч "на чистое" проблематично. Да не думаю что смогу поднять даже в свой форк - полгода без мержей, код устарел, уже надо писать с нуля.
|
По просьбам трудящихся - дуалспек для петов :) Упростил до невозможности, желающие могут привинтить на чистое.
https://github.com/mangosR2/mangos/c...a4df52e62be1b3 |
Изменения затронули только `pet_spell`.
А в других таблицах разве не должен быть ключ, например, в `pet_aura`, `pet_spell_cooldown`, `character_pet` ...? С одной стороны у петов охотника свои таланты в разрезе специализаций игрока, а с другой - у игрока разные петы в разрезе специализаций. Вчера собрал сервер на основе https://github.com/mangosR2/mangos, зашел чернокнижником в ветке демонологии, вызвал Стража Скверны, потом переключился в другую ветку - пет остался, т.е. перепризвался, хотя в вругой ветке его нет. Ситуация, как на чистом ядре.:) |
Как выяснилось нет. В предыдущей версии патча все это было, в текущей нет. Кулдауны привязаны к конкретным спеллам и берутся (и это правильно) от спеллов из другой ветки если она была переключена. в данных пета запоминать состояние спека вообще не нужно - он просто берется от хозяина, что подтверждается игроками с оффа.
Не -хантер петов патч не затрагивает вообще никак. Что до вызова стража - этот баг имеет место быть давно, мне все лень его чинить :) к патчу отношения не имеет. PS ну раз уж вспомнил - то и починил :) https://github.com/mangosR2/mangos/c...c3f8fd2f952a0e |
>especially for virusaw
:) |
Текущее время: 15:43. Часовой пояс GMT +3. |
ru-mangos.ru - Русское сообщество MaNGOS