[9715][patch] gossip для двойного спека
ревизия:
9661 и новее исправление: позволяет изучать двойную специализацию у классовых тренеров автор: я, хоть и взял идею у оригинального патча :pardon: зы: вынес в функцию дабы соблюдать code style :) Код:
diff --git a/src/game/GossipDef.h b/src/game/GossipDef.h Код:
INSERT INTO `gossip_menu_option` VALUES |
может проверку тоже отдельно типа isCanLearnDualSpec ?
|
лучше заменить
Код:
&& !(getLevel() < 40) Код:
&& (getLevel() >= 40) |
Не учитывается.
|
Цитата:
|
Тогда в запрос и кондицию вставить на 40 левел можно(15,40,1)..)
|
Цитата:
|
С кондицией не будет даже появлятся :)
|
Цитата:
|
Только меню должно быть не в одном окошке. вот пример того, как должно работать обучение двойной специализации. уровень проверяется первым меню, а голды - в самом конце. по аналогии работает и остановка опыта игроком
|
Это проще простого, делается через стандартный госсип меню тренера... Запрос в первом посте - это уже финальная строчка, тогда там точно не надо проверки на 40+, она должна быть в первой части меню))
Текст меню тренера - Learn about Dual Talent Specialization.(15,40,1) - текст меню дуала(+строчка из первого поста) |
Кстати в патче ошибка. id 16 забронирован за банком, поэтому sql не зальется. я давно пользуюсь id 51, вроде проблем не было
|
Код:
+ GOSSIP_OPTION_LEARNDUALSPEC = 18, |
Цитата:
2е поле таблицы короче. к коду отношения не имеет. |
Цитата:
Цитата:
|
Цитата:
|
Цитата:
Цитата:
Insider42 - ПМ... |
снятия золота вроде и проверок нет пока... - но есть соотвевующеи поле...
|
Лучше добавить в кондиции что-то наподобие(состряпал навскидку, просто чтобы показать идею, не проверял):
Код:
diff --git a/src/game/ObjectMgr.cpp b/src/game/ObjectMgr.cpp Пригодится и дя других меню, наподобие инженер гном и т.п..)) |
Цитата:
и Код:
default: |
Как снять деньги с игрока при изучении ДС, дубль №2:
Код:
diff --git a/src/game/Player.cpp b/src/game/Player.cpp Проверено, снимает деньги как положено. само обучение Код:
insert into gossip_scripts values (99999,0,15,63624,2,0,0,0,0,0); |
Никто не видел что выдается при отсутствии денег на оффе?
|
Цитата:
|
Цитата:
|
Тогда должно быть так...
Код:
diff --git a/src/game/Player.cpp b/src/game/Player.cpp 1) box_money из таблицы 2) из ядра 3) сразу оба, т.к. клиент не отвечает серверу что уже получил вопрос от box_money в таблице Во втором и третьем случае нужно так Код:
diff --git a/src/game/Player.cpp b/src/game/Player.cpp |
Ёпрст. Обновил ревизию называется, теперь куча крашей в ActiveSpec, аналогичных как пишут на getmangos.com :(
Ещё вопрос. AT_LOGIN_RESET_TALENTS действует на текущий спец или на оба? Ато не порядок получается :( |
Судя по всему - окончательная версия (но без нормальных данных для базы - не годится для игровых серверов)
Код:
diff --git a/src/game/ObjectMgr.cpp b/src/game/ObjectMgr.cpp В общем кидаю какие есть, заранее бэкапьте таблицу gossip_menu_option, если уж собрались тестить http://paste2.org/p/757587 |
может имеет смысл заменить два условия
Код:
+ if (MoneyTake > 0) Код:
+ if ((MoneyTake > 0) && (GetMoney() >= MoneyTake)) |
Тренеров в базе поправим.. Давно пора все данные перенести в gossip_menu и отказаться вообще от npc_gossip и npc_option ) Также напоминаю, что в gossip_menu_option номера меню в разных базах разные...
Опечатка Цитата:
|
Цитата:
|
Цитата:
|
Как раз у Insider42 все правильно с проверкой
|
Патч корректный но не полный, а данные совершенно не правильные, как я понимаю должен выглядеть пункт меню...
Цитата:
|
Так сейчас и есть - деньги только во втором меню проверяются.
А к ним еще и уровень дописать можно..)) |
до 40го левела меню о дюалспеке вообще не отображается.
После 40го - появляется пункт, что то вроде "узнать подробнее о 2й специализации", после клика на которую появляется много текста с описанием и внизу пункт меню, что то вроде "да, я хочу потратить 1000г" Если не ошибаюсь - после покупки меню больше не отображается. |
Сейчас так и реализовано..)) Но это в основе база... В ядро надо сам патч и строчку для примера, приблизительно так:
Цитата:
|
Цитата:
|
Цитата:
|
Патч в [9715]. Спасибо! Этот же код позволит и некоторые другие покупные варианты реализовать чистой базой. Может некоторые condition_* будут еще нужны.
|
Текущее время: 00:51. Часовой пояс GMT +3. |
ru-mangos.ru - Русское сообщество MaNGOS