Вход в систему
Логин
Пароль
 

Sprint #26: Terrain.Сейчас на сайте 0 посетителей
WoWCore
История 2.0
История 1.0
SandBox

Ресурсы
Форум
Файлы

Документация
Литература
Ссылки


Sprint #19: Taxi.
← назад к списку

19.09.2011, 12:00

Реализована система Такси, все функции.
- ноды разучиваются, изначально их известно сколько то - эти данные из dbc.
- плеер во время полета перемещается в Мире, что обеспечивает видимость объектов друг другу
- возобновление полета после логаута/дисконнекта с прерванного места
- экспресс перелеты (через несколько узлов)
- точный расчет времени полета и обеспечение синхронизации времени прибытия в точку назначения. Иными словами время когда полет заканчивается визуально в клиенте, он заканчивается и на сервере, ничего не запаздывает. Пакет MOVE_SPLINE_DONE показывает расчетное время прибытия и фактическое время прибытия, максимальная разница по тестам составляла 16 тиков функции GetTickTime().
- синхронизация MoveTimestamp плееров

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

Ограничения.
Из недоработок осталось следующее:
1. Финальная точка пути по снифам не принадлежит ни одной точке пути из dbc. Эта точка где то рядом и эти точки нам неизвестны. Их можно собрать только со снифов. Визуально всё выглядит так, что когда плеер прилетает, он оказывается в последней точке пути, а она находится гораздо выше поверхности земли. И после окончания полета плеер как бы немного падает. Эту проблему можно решить двумя способами:
- собрать финальные точки со снифов и использовать их.
- после реализации карты высот использовать высоту последней точки пути не из dbc, а используя карту высот. Скорее всего так и поступим.
2. В экспресс такси неизвестно, сколько точек в начале и в конце не используются в промежуточных путях. Тесты показали, что универсального значения нет и эти данные можно собрать тоже только со снифов. В данный момент для каждого пути эти поля вынесены в базу и присвоено значение по умолчанию 2. В будущем можно его исправлять для всех этих красивостей.
3. На разных путях может быть разная скорость полета. Тесты показали, что некоторые перелеты выглядят немного заторможенными, по ощущениям вроде бы скорость должна быть чуть больше. Догадки подтвердились сообщениями разработчиков других проектов (спасибо SilverIce). Эта фича будет реализована позже.

Приступаем к реализации самого интересного - к транспортной системе кораблей и зиппелинов :)

#1 BloodWarrior, 04.10.2011, 18:24

Роман надеюсь под кату вы тоже все продумали?
Флай поинты открываются по мере доступа локаций ныне.
Не надо оббегать и учить новую точку, как только зона становится подходящей по уровню, абсолютно все мастера полетов и маршруты в данной локации открываются для игрока.
#2 RomanRom2, 04.10.2011, 18:38

Странно, я оббегал и учил. Было это в 4.1.0.

Безусловно от транка к транку будут различия. Я пишу код и создаю классы так, что бы код логики был максимально отделен (ну, стараюсь так делать). Тогда его можно легко модифицировать без особых затрат, взял имплементацию класса и заменил на другую с другой функциональностью. Он не "цепляется" за всё подряд при выцарапывании :)

Пока мои реализации "классические" (не конкретно для классика, а "в принципе") и по сути не привязаны к какому либо транку детализацией, чесно говоря не до этого :) Но я помню об этом, что в будущем появятся "детали" и оставляю для этого возможности при проектировании и реализации систем.



Copyright © 2005-2024 WoWCore Team