Цитата(EL-GReeN @ 4.10.2012, 0:33)
Ошибка с осью Z, написано "-128..127 units above/below sea level" а на самом деле без знаковый байт и чем больше тем глубже.(может в каких то файлах так и есть)
Я же говорил там ереси в описаниях навалом, но хуже всего ошибки... =) Но вообщем тут все зависит как его читать если как SBYTE то -128..127 если как BYTE то 0-255, но исторически сложилось что на всех серверах используется интервал -128..127, так что это для многих уже привычнее..
Цитата(EL-GReeN @ 4.10.2012, 0:33)
Идеальный вариант прицепить конечно дллку, но без документации к ним на это способны только програмёры, да и среда не особо мощная может просто не поддерживать что то.
Она с открытым кодом, достаточно проста - один файл - один класс - один мулл (+ несколько общих). В большинстве случае все понятно из названий методов, единственное немного путанно сделана анимация и карта. Для карты надо смотреть TileMatrix он объединяет в себе как мулы статики так и карты, а вот сам Map это уже описание карт и рендинг "миникарты" в битмап, ну а с анимацией не очень хорошо вышло из-за того что они зачем-то растащили ее на разные классы один "просмотрщик" другой "редактор" и между ними надо вечно скакать... )))
ЗЫ а что за среда? советовал бы устроить хард тест оч велика вероятность что у нее будет падение фпс до 0 при большом числе тайлов (в уо очень много тайлов на сцену)... Кроме того камнем предкновения может стать окраска предметов, прозрачность, свет и прочие эффекты.
Цитата(EL-GReeN @ 4.10.2012, 0:33)
А где можно почитать о UltimaUDK, на какой стадии разработка?
Вернее EssenceUDK (Ultima Developer Kit). Проект молодой, сама идея родилась недели 3 назад... В общем его можно охарактеризовать как движок UO, API для работы с мулами и набор компонентов... Основная цель - предоставить гибкий и удобный инструментарий для создания собственного ПО и контролов для работы с УО. На данный момент параллельно с ним ведется разработка на его базе библиотеки контролов, аналога Fiddler'а и генератора карт, в будущем также в планах портирование редактора карт CentrEd+ и если движок окажется достаточно быстрым то и альтернативный клиент... Все пишется на C#4.0 под WPF. Почитать можно будет у нас на сайте dev.uoquint.ru, когда появится что-то достаточно завершенное, пока не вижу смысла замарачиваться т.к. интерес представляет только для разрабов которых всеравно нет (((
ЗЫ пара скринов на затравку:
Все это приложение написано 3мя строчками кода:
Код
// now we need create base uo data storage class, it base class we will use to do any work with uo data, so generally we need to store it as static.
// but just now for testing we dont do it. (Remember shilw we will write controls in EsseceUDK.Add-ins we need to get manager at EsseceUDK assembly)
var manager = new UODataManager(new Uri(clients[0].DirectoryPath), UODataType.ClassicAdventuresOnHighSeas, UOLang.Russian, false);
// ok, we get manager just now let get tiles and set them as sourse to our list. Yeh, it's really simple)
tileItemView1.ItemsSource = manager.GetItemTile(TileFlag.Wall); // lets get all walls to look throw
// just now we use same souce for binding to differen controls. So we represent different data viewer for same data.
var lands = manager.GetLandTile(TileFlag.None).Where(t => t.TileId < 1000); // just now we get first 1000 valid lands for testing (we dont take care what is this)
tileLandView1.ItemsSource = lands;
tileTexmView1.ItemsSource = lands;
Как видно полная абстракция данных, посути мы получаем список тайлов суем его контролу и при этом совершенно не заботимся о том как оно устроенно и работает (например данные могут быть как из мулов так и из уопов).. Помимо прочего эти списки уже содержат полное логическое описание т.е. тайл это и текстура и ленда и тайлдата и данные об анимации если есть и тд и тп. Впринципе фабрика классов работы с мулами почти готова, осталось проработать еще модель карты и заставить все это работать в отдельном потоке...
В коде выше к свойствам исоточника данных контролов tileItemView1 и tileLandView1 просто присваиваются колекиции описывающие тайлы, пример модели объекта LandData. Как видно объединяет в себе данные из тайлдаты, артмула, текстмапов, клилока и все это еще модифицированное дифами при загрузке... Собственно также идет и редактирование просто меняем нужное нам свойство и все автоматом сохраняется....
Код
public sealed class ModelLandData : UOBaseViewModel, ILandTile, ILandData
{
#region Declarations
private readonly ILandTile _data;
#endregion
#region Properties
public uint TileId { get { return _data.TileId; } set { _data.TileId = value; RaisePropertyChanged(() => TileId); } }
public bool IsValid { get { return _data.IsValid; } }
public ISurface Surface { get { return _data.Surface; } set { _data.Surface = value; RaisePropertyChanged(() => Surface); } }
public ISurface Texture { get { return _data.Texture; } set { _data.Texture = value; RaisePropertyChanged(() => Texture); } }
public string Name { get { return _data.Name; } set { _data.Name = value; RaisePropertyChanged(() => Name); } }
public TileFlag Flags { get { return _data.Flags; } set { _data.Flags = value; RaisePropertyChanged(() => Flags); } }
public ushort TexID { get { return _data.TexID; } set { _data.TexID = value; RaisePropertyChanged(() => TexID); } }
#endregion
#region Ctor
public ModelLandData(ILandTile data)
{
_data = data;
}
#endregion
}