• Страница 1 из 1
  • 1
Модератор форума: Dimitro  
Форум » TrinityCore » [TrinityCore] Help » Пару вопросов по "Доделке" сервера
Пару вопросов по "Доделке" сервера
bspublic
Скаут
Доброго времени уважаемые форумчане. Прошу сразу не отправлять курить маны. Значит ситуация такая. Маны читать я могу) Но алгоритм пока понять не могу. Собрал я сервер легиона. Забил базы. Запустил. Законектился. А дальше самое интересное. Беру первый квест, выполняю, но сдать не могу! Т.е кнопка продолжить активна когда сдаешь первый квест(играл за альянс - охотника) но она ничего не сдает. Получается что я не могу сдать первый квест. Есть так же такие небольшие проблемы. После взятия и сдачи другим "квестодателям" то окно квеста само не закрывается. В связи с этим хотелось бы у вас чпрость. В какую сторону копать? Да знаю что есть б.д но вот с чего начать. Truice на этих версиях не работает. Чем тогда править квесты? Так же интересует вопрос как смотреть без аддонов к примеру квесты и как потом их чинить. Я понимаю что мои вопросы для вас элементарных. Но с Английским у меня не важно. Если есть возможность объяснить, расскажите с чего начинать "допиливать" квесты, npc, и все то что относится к миру wow.
К примеру доделать квест - берёте этот софт (или ручками через консоль) и вот такой запрос делаете в ту то таблицу.

Вообще какого алгоритма держатся?
Сообщение # 1 написано 06.11.2016 в 06:37
Ranege
Чемпион
Цитата bspublic ()
Т.е кнопка продолжить активна когда сдаешь первый квест(играл за альянс - охотника) но она ничего не сдает.


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

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

Truice - это удобная интерфейсная программа, которая выводит все значения в БД в красивом и понятном для пользователя виде, но эти же данные можно посмотреть и в другом виде, в том же Navicat, SQLYog и прочих прогах.
Сообщение # 2 написано 06.11.2016 в 10:03
p620
Маршал
Цитата Ranege ()
Truice - это удобная интерфейсная программа, которая выводит все значения в БД в красивом и понятном для пользователя виде, но эти же данные можно посмотреть и в другом виде, в том же Navicat, SQLYog и прочих прогах.

Или писать запросы напрямую через терминал MySQL. В остальном Ranege прав, Легион по очевидным причинам еще очень сырой: пройдет n-нное количество времени прежде, чем он станет сколь-нибудь стабильным.
Если Вы хотите серьезно заниматься разработкой серверных архитектур, подобных искомой - Вам в обязательном порядке необходимо выучить подходящий для этого язык программирования (в данном случае С++), причем на достаточном уровне, чтобы понимать все используемые в TrinityCore языковые конструкции и приемы. Кроме того, Вам необходимо разбираться в архитектуре клиент-серверных приложений хотя бы слегка, остальное почерпнете, анализируя исходный код ядра.
Если же целью стояла ламповая разработка (а-ля добавить существ, насоздавать заданий, предметов, etc., попробовав себя в роли гейм-дизайнера) - то Вам лучше подойдет "флагманская", aka наиболее стабильная, ветка TC, ориентированная на клиент 12340 (3.3.5а). Плюс ее заключается еще и в том, что соответствующая версия клиента уже достаточно разреверсена, чтобы заниматься и ее моддингом.
Сообщение # 3 отредактировано p620 - Воскресенье, 06.11.2016, 15:37
bspublic
Скаут
Спасибо за исчерпывающий ответ. У меня нет какой то конкретной цели вывести в продакшн или топ сервер. Так же понимаю что легион ещё сырой. Да ветка 3.3.5 уже состоявшееся. Это я всё прекрасно понимаю
Следующее по тексту пременимо не только к версии Легиона.
Так же имею небольшой представление по работе с бд. Но вот возникает следующий вопросец к примеру. Как я уже писал выше что охотником не могу сдать квест, но тем же магом смог. Отсюда смею предположить что где то в ядре уже есть такая возможность. Но в бд она не указана. Может конечно я не прав.
Второй момент хотелось бы уточнить. Допустим делаю я запрос в нужную мне таблицу бд. Перезапускаю сервер. Т.е после ребута это изменение должно сохранится? Будь то пути для npc, шмот с них и т.д
Ну и третий вопросик. Допустим я узнаю id квеста. Пишу для пробы .quest complete 28767 квест автовыполняется. Захожу в базу, выбираю world. В ней смотрю quest_template и ну не вижу я id своего квеста. Там первый столбец идёт id Как я понимаю это не id квеста. А что тогда конкретно смотреть? И вообще то ли я смотрю?

За ранее благодарю что уделяете мне время.
Сообщение # 4 написано 07.11.2016 в 01:16
p620
Маршал
Цитата bspublic ()
Как я уже писал выше что охотником не могу сдать квест, но тем же магом смог. Отсюда смею предположить что где то в ядре уже есть такая возможность. Но в бд она не указана.

Не знаю, как это там делается на Легионе, потому не могу ничего сказать по этому поводу кроме того, что Вы можете как и быть правы, так и нет.
Цитата bspublic ()
Допустим делаю я запрос в нужную мне таблицу бд. Перезапускаю сервер. Т.е после ребута это изменение должно сохранится? Будь то пути для npc, шмот с них и т.д

После ребута - всегда, но для некоторых таблиц поддерживается и перезагрузка времени выполнения, чаще всего специальной командой (уточняйте на вики, если там, конечно, Легион документировался, в противном случае можно косвенно понять по списку доступных команд или по исходному коду ядра).
Цитата bspublic ()
Ну и третий вопросик. Допустим я узнаю id квеста. Пишу для пробы .quest complete 28767 квест автовыполняется. Захожу в базу, выбираю world. В ней смотрю quest_template и ну не вижу я id своего квеста. Там первый столбец идёт id Как я понимаю это не id квеста. А что тогда конкретно смотреть? И вообще то ли я смотрю?

Аргументом приведенной команды действительно является ID задания. В таблицы `world.quest_template` содержится основная информация о т.н. шаблонах заданий (аналогично для существ, предметов, игровых объектов, etc.), ключом которой и задается их ID. Вы, скорее всего, просто не разобрались в интерфейсе программы, которой работаете с БД и отобразили лишь малую часть тех данных, которые реально содержатся в таблице. Если же Вы хотите посмотреть статус этого задания для конкретного персонажа - Вам не сюда, а в соответствующую таблицу базы `characters`, например вот.

Здесь, однако, возникает насущная проблема. Видите ли, так уж исторически сложилось, что большинство всей информации по моддингу WoW (как серверных эмуляторов, так и компонентов игрового клиента) проистекает из англоязычного сообщества (прошу, однако, заметить, что это не значит, что русскоязычное сообщество никчемно: например у официальных веток ядра TrinityCore есть постоянные русскоговорящие разработчики), соответственно вся она чаще всего излагается на этом же языке. Кроме того, могу практически гарантировать, что изучение подавляющего большинства языков программирования станет в несколько раз сложнее для людей, плохо знающих английский язык, так что здесь обстоятельства снова против Вас.

И хотя, если Вы по-настоящему захотите в этом всем разбираться, Вам вряд ли удастся успеть "нормально" помоддить Легион, ничего в принципе невыполнимого в соответствующем процессе обучения нет.
Сообщение # 5 отредактировано p620 - Понедельник, 07.11.2016, 02:00
Форум » TrinityCore » [TrinityCore] Help » Пару вопросов по "Доделке" сервера
  • Страница 1 из 1
  • 1
Поиск: