Здравствуйте, гость ( Вход | Регистрация )

2 страниц V  1 2 >  
Ответить в эту темуОткрыть новую тему
> Tiledata
Александр Needle™
сообщение 22.10.2017, 0:59
Сообщение #1


********

Mammy's hero
Сообщений: 1.227
Регистрация: 26.5.2009
Группа: Пользователи
Наличность: 0
Из: Украина , Одесса
Пользователь №: 11.891
Возраст: 33



del
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Aimed
сообщение 23.10.2017, 19:36
Сообщение #2


*********

Grandmaster
Сообщений: 2.250
Регистрация: 29.12.2012
Группа: Пользователи
Наличность: 8940
Пользователь №: 15.607



Цитата(Александр Needle™ @ 21.10.2017, 23:59) *

Сообщений ни от кого не поступило, нашел информацию сам. Прошу прикрепить для будущих поколений.

Флаги в tiledata.mul при добавлении описания к новой вещи:
BACKGROUND := 0x00000001; //Фон
WEAPON := 0x00000002; //Оружие
TRANSPARENT := 0x00000004; //Прозрачный
TRANSLUCENT := 0x00000008; //Полупрозрачный
WALL := 0x00000010; //Стена
DAMAGING := 0x00000020; //Повреждающий
IMPASSIBLE := 0x00000040; //Непроходимый
WET := 0x00000080; //Мокрый
UNK := 0x00000100; //Неизвестно
SURFACE := 0x00000200; //Поверхность
BRIDGE := 0x00000400; //Мост
STACKABLE := 0x00000800; //Складывается в стопку
WINDOW := 0x00001000; //Окно
NOSHOOT := 0x00002000; //Не простреливается
PREFIX_A := 0x00004000; //Артикль "A"
PREFIX_AN := 0x00008000; //Артикль "An"
INTERNAL := 0x00010000; //Внутренний (вещи типа волос, бород, и т.д.)
FOILIAGE := 0x00020000; //Листва
PARTIAL_HUE := 0x00040000; //Частично окрашиваемо
UNK1 := 0x00080000; //Неизвестно 1
MAP := 0x00100000; //Карта
CONTAINER := 0x00200000; //Контейнер
WEARABLE := 0x00400000; //Одеваемо
LIGHTSOURCE := 0x00800000; //Источник света
ANIMATED := 0x01000000; //Анимируемо
NODIAGONAL := 0x02000000; //Без диагонали
UNK2 := 0x04000000; //Неизвестно 2
ARMOR := 0x08000000; //Броня
ROOF := 0x10000000; //Крыша
DOOR := 0x20000000; //Дверь
STAIRBACK := 0x40000000; //Лестница задняя
STAIRRIGHT := 0x80000000; //Лестница правая


Это все в фиддлере уже сто лет как отображается, зачем ты это выложил? Или тебе перевод с английского нужен был?
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Sirocco
сообщение 23.10.2017, 19:39
Сообщение #3


******

Expert
Сообщений: 809
Регистрация: 2.2.2012
Группа: Пользователи
Наличность: 15391
Пользователь №: 14.566
Возраст: 30



Зачем ты прокомментировал его сообщение, тем более все целиком? Ты боялся что он не поймет к кому ты обращался?

Притом самое смешное, что реально толку от такого перевода нет, ибо половина флагов нигде не используется, и никак не работает, а половина переведена просто божественно - "лестница задняя". Ну офигенно же?!


Какая разница между этими флагами?
Код

TRANSPARENT := 0x00000004; //Прозрачный
TRANSLUCENT := 0x00000008; //Полупрозрачный



А что делают эти флаги непонятно? перевести то я в состоянии, но влияют ли они на что-то еще?
Код

BACKGROUND := 0x00000001; //Фон
WALL := 0x00000010; //Стена
DAMAGING := 0x00000020; //Повреждающий
UNK := 0x00000100; //Неизвестно
BRIDGE := 0x00000400; //Мост
INTERNAL := 0x00010000; //Внутренний (вещи типа волос, бород, и т.д.)
UNK1 := 0x00080000; //Неизвестно 1
MAP := 0x00100000; //Карта
NODIAGONAL := 0x02000000; //Без диагонали
UNK2 := 0x04000000; //Неизвестно 2
ARMOR := 0x08000000; //Броня



Описание должно быть расширено, хотя бы так:
ANIMATED := 0x01000000; //Анимируемо (это означает что предмет появится в файле AnimData и можно работать с ними как со спрайтовой анимацией: указывать скорость, задержку, порядок кадров)
ROOF := 0x10000000; //Крыша (означает что когда ты заходишь под предмет, то он исчезает с экрана)
STACKABLE := 0x00000800; //Складывается в стопку (означает что предметы при количестве больше 1 будет отображаться продублированным со смещением, а при попытке перетащить будет появляться выбор количества. Одно и на сервере тоже нужно указывать PILE=1)


А если уж писать эту фигню... то нужно писать и другие параметры Name Anim Weight StackOff и так далее...
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Александр Needle™
сообщение 23.10.2017, 19:42
Сообщение #4


********

Mammy's hero
Сообщений: 1.227
Регистрация: 26.5.2009
Группа: Пользователи
Наличность: 0
Из: Украина , Одесса
Пользователь №: 11.891
Возраст: 33



Цитата(Aimed @ 23.10.2017, 19:36) *

Это все в фиддлере уже сто лет как отображается, зачем ты это выложил? Или тебе перевод с английского нужен был?

Да, я прекрасно знаю что это есть в фильдере и в других программах, и дальше что?
Выложил как полезная информация.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Aimed
сообщение 23.10.2017, 20:32
Сообщение #5


*********

Grandmaster
Сообщений: 2.250
Регистрация: 29.12.2012
Группа: Пользователи
Наличность: 8940
Пользователь №: 15.607



Цитата(Sirocco @ 23.10.2017, 18:39) *

Зачем ты прокомментировал его сообщение, тем более все целиком? Ты боялся что он не поймет к кому ты обращался?


Ога, с этим парнем и такое может быть (IMG:style_emoticons/default/biggrin.gif)
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Александр Needle™
сообщение 23.10.2017, 22:03
Сообщение #6


********

Mammy's hero
Сообщений: 1.227
Регистрация: 26.5.2009
Группа: Пользователи
Наличность: 0
Из: Украина , Одесса
Пользователь №: 11.891
Возраст: 33



Цитата(Sirocco @ 23.10.2017, 19:39) *

Притом самое смешное, что реально толку от такого перевода нет, ибо половина флагов нигде не используется, и никак не работает, а половина переведена просто божественно - "лестница задняя". Ну офигенно же?!

Это не перевод, взял из старой статьи.
Практически все флаги используются, кроме unk, именно так отмечены те, которые более не используются.

Цитата(Sirocco @ 23.10.2017, 19:39) *

А если уж писать эту фигню... то нужно писать и другие параметры Name Anim Weight StackOff и так далее...

Есть желание дополнить? А то когда спрашивал, все молчали в тряпочку.
Name Anim Weight StackOff - это не относится к "флагам" / "свойствам".


Цитата(Aimed @ 23.10.2017, 20:32) *

Ога, с этим парнем и такое может быть (IMG:style_emoticons/default/biggrin.gif)

Есть что-то добавить, или очередная показательная болтовня?
Желаешь дополнить тему, пожалуйста, я добавлю текст в шапку темы.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Aimed
сообщение 23.10.2017, 23:08
Сообщение #7


*********

Grandmaster
Сообщений: 2.250
Регистрация: 29.12.2012
Группа: Пользователи
Наличность: 8940
Пользователь №: 15.607



Цитата(Александр Needle™ @ 23.10.2017, 21:03) *

Это не перевод, взял из старой статьи.
Практически все флаги используются, кроме unk, именно так отмечены те, которые более не используются.
Есть желание дополнить? А то когда спрашивал, все молчали в тряпочку.
Name Anim Weight StackOff - это не относится к "флагам" / "свойствам".
Есть что-то добавить, или очередная показательная болтовня?
Желаешь дополнить тему, пожалуйста, я добавлю текст в шапку темы.


А где ты это спрашивал то? Я не могу найти эту тему, хотя это и не важно на самом деле.
"Показная болтовня" это твой первый пост в этой теме и не менее чем 90% твоих сообщений на этом форуме и у тебя на сайте. В данном случае совершенно бесполезная информация, ( хорошо что в этот раз она хотя бы не искаженная ) которая будет в новинку совсем каким-то зеленым новичкам в УО, которые не знают о программе UO Fiddler либо не знают что существует google.

Прямо сейчас я зашёл в гугл и с первой попытки нашел то что ты выложил в первом посту в нескольких экземплярах.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Александр Needle™
сообщение 23.10.2017, 23:19
Сообщение #8


********

Mammy's hero
Сообщений: 1.227
Регистрация: 26.5.2009
Группа: Пользователи
Наличность: 0
Из: Украина , Одесса
Пользователь №: 11.891
Возраст: 33



Цитата(Aimed @ 23.10.2017, 23:08) *

А где ты это спрашивал то? Я не могу найти эту тему, хотя это и не важно на самом деле.
"Показная болтовня" это твой первый пост в этой теме и не менее чем 90% твоих сообщений на этом форуме и у тебя на сайте. В данном случае совершенно бесполезная информация, ( хорошо что в этот раз она хотя бы не искаженная ) которая будет в новинку совсем каким-то зеленым новичкам в УО, которые не знают о программе UO Fiddler либо не знают что существует google.

Прямо сейчас я зашёл в гугл и с первой попытки нашел то что ты выложил в первом посту в нескольких экземплярах.

Тема обновляется, вначале я спрашивал, потом стер сообщение и обновил.
По теме добавить полезную информацию можешь?
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Sirocco
сообщение 24.10.2017, 11:10
Сообщение #9


******

Expert
Сообщений: 809
Регистрация: 2.2.2012
Группа: Пользователи
Наличность: 15391
Пользователь №: 14.566
Возраст: 30



Name Anim Weight StackOff - это не относится к "флагам" / "свойствам".

Да ладно не относится?
А ничего что некоторым флагам нужны дополнительные параметры в тайлдате, иначе толку от них никакого.
например контейнеру нужно Quality.
одеваемым предметам нужен Layer.
непроходимым предметам нужен Height.

Это ж тоже часть Tiledata.




ну и зачем нужны эти офигенно нужные флаги:
Код

BACKGROUND := 0x00000001; //Фон
WALL := 0x00000010; //Стена
DAMAGING := 0x00000020; //Повреждающий
UNK := 0x00000100; //Неизвестно
BRIDGE := 0x00000400; //Мост
INTERNAL := 0x00010000; //Внутренний (вещи типа волос, бород, и т.д.)
UNK1 := 0x00080000; //Неизвестно 1
MAP := 0x00100000; //Карта
NODIAGONAL := 0x02000000; //Без диагонали
UNK2 := 0x04000000; //Неизвестно 2
ARMOR := 0x08000000; //Броня


какую ф-цию они в клиенте несут? или так чисто метки бесполезные.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
StaticZ
сообщение 24.10.2017, 15:15
Сообщение #10


*********

Разработчик проекта "Квинтэссенция"
Сообщений: 2.155
Регистрация: 15.6.2009
Группа: Пользователи
Наличность: 0
Из: РФ, Москва
Пользователь №: 11.948



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

Цитата(Александр Needle™ @ 23.10.2017, 22:03) *
Практически все флаги используются, кроме unk, именно так отмечены те, которые более не используются.
На самом деле большинство не несут никакой смысловой нагрузки и применяются (или даже применялись) лишь в Гад клиенте. Я уже молчу, что в фидлере полно ереси и отсебятины, впрочем как и в сфере и ранке. Лишь как следует покопавшись в клиенте понимаешь какой бред там порой написан.

Например в тайлдате таких полей, как Quantity, Unk3, Hue вообще не существует. Конечно возможно они были упразднены, ладно беру самый первый клиент 1.25.35 смотрю и там их тоже нет. Спрашивается откуда пошла эта ересь, которую по кругу потом слизывали друг у друга (я про ранки \сферы и прочее по) и главное под каким веществом автор сочинял этот бред и названия к нему?

Цитата(Sirocco @ 24.10.2017, 11:10) *
какую ф-цию они в клиенте несут? или так чисто метки бесполезные.
Не все




Сообщение отредактировал StaticZ - 24.10.2017, 15:16


--------------------
RP сервер UO: Quintessence, а также ПО: EssenceUCS, EssenceUDK, CentrEd+, Fiddler+ и др.
Game isn't a dream, it is the reality, reality which is coming while we dream...
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Александр Needle™
сообщение 24.10.2017, 16:17
Сообщение #11


********

Mammy's hero
Сообщений: 1.227
Регистрация: 26.5.2009
Группа: Пользователи
Наличность: 0
Из: Украина , Одесса
Пользователь №: 11.891
Возраст: 33



del
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
StaticZ
сообщение 24.10.2017, 18:00
Сообщение #12


*********

Разработчик проекта "Квинтэссенция"
Сообщений: 2.155
Регистрация: 15.6.2009
Группа: Пользователи
Наличность: 0
Из: РФ, Москва
Пользователь №: 11.948



Цитата(Александр Needle™ @ 24.10.2017, 16:17) *
Тут скорей спрос с фидлера, например в клиенте флаг был удален и отмечен как Unk, то фидлер может продолжать подписывать его по старому, к слову, потому может этот флаг у Вас никак не меняет ситуацию в игре, просто потому, что он уже никак не используется, а фиддлер продолжает твердить свое и втыкать Ваши значения в tiledata, которые не имеют уже никакого значения для клиента.
Вы это серьезно? )))))))) Никто ни за чем не следит, никто ничего не меняет, всем уже давно абсолютно на все наплевать. Подавляющее большинство, что писали этот или любой другой код сами не имеют никакого представления о том, что они пишут, вся информация что по протоколу UO, что по файлам клиента или относительно чего-то еще списывается по кругу от одного источника к другому, зачастую при этом добавляется собственная отсебятина или частично заменяется из другого сомнительного и непроверенного источника. Кстати, некоторые сознательно и специально добавляют ошибки в свои работы, чтобы было легче проследить тех кто заимствовал их труды. В результате всего этого тупого списывания ошибки и неточности лишь множатся и растут. Года идут и все начинают свято верить во всякую ересь, лишь потому что это кое как работает и главное все тупо привыкли или попросту пофиг. Это уже становиться догмой, никто не ставит под сомнение бред которому уже десятки лет, никто не ищет доказательств или подтверждений а зачем? кто-то там когда-то написал значит так и есть.

Возьмем те же поля Quantity и Hue откуда информация что они вообще существуют? Откуда название? Где, как и когда они использовались или используется? Нельзя утверждать, что они существуют не имея даже ответов на эти вопрос. Если задуматься то это все просто, то что привыкли видеть в Fiddler на протяжении многих лет. Теперь вспомним кто и как создавал его, изначально по сути это была графическая оболочка некой библиотеки ultimaSDK, последняя как раз и отвечает за работу с файлами клиентами и в частности используется в RunUO. То есть разработчики Fiddler по сути вообще не имели никакого представления о том как устроены файлы, они делали тупо графический интерфейс к библиотеке что с ними работает. Они видят, что в библиотеке при чтении тайлдаты есть такие поля и не думая добавили поля для их редактирования на форму окна. Вроде как-то все работает и клиент не материться, значит все чики-поки. Но давайте пойдем еще дальше и вспомним откуда вообще возник проект ultimaSDK, а это был чистый высер фаст кодинга товарища krrios (разработчик ядра RunUO), данная не лестная характеристика даже не мое личное мнение а его собственное признание. Не сложно догадаться, что так как разработчику было по большому счету пофиг на это дело и задача была написать все как можно скорее, лишь бы оно работало хоть как-то. При этом наверняка, работая над своим высером krrios не занимался собственными изысканиями а воспользовался непроверенной информацией из других источников, скорее всего разобщенных и разной степени достоверности, как и кто составлял их остается лишь гадать. Что изменилось за все время? Да ничего... Откройте файлы анимации и просмотрите на них, там даже до сих пор можно увидеть, что некоторые читаются крайне криво и кадры некоторых анимаций залязят не туда куда надо.

Мало того, я сам могу добавить поля для тайлдаты, сверх того что есть в Fiddler и все тоже будет замечательно работать.


Цитата(Александр Needle™ @ 24.10.2017, 16:17) *
Насколько я подозреваю, значения эти, то появлялись, то исчезали в зависимости от версии клиента, например у меня в версии 3.0.6 есть значение Quantity и Unk3, и более того, даже используется.
Посмотрел 3.0.6а - там их тоже нет. Да и было бы оно крайне странно, вплоть до начала эпохи KR разработчики клиента использовали принцип обратной совместимости, что подразумевает собой расширение без изменения структуры данных, путем добавления нового контента в старые структуры данных, если же это оказывалось не возможно, то расширение структуры данных путем ввода новых файлов данных. По этой причине в клиенте можно до сих пор встретить такие интересные файлики как palette.mul. Именно по этой причине в молодости было возможно скачать client.exe и закинуть его в папку с клиентом особо даже не напрягаясь тем от какой версии там файлы.


--------------------
RP сервер UO: Quintessence, а также ПО: EssenceUCS, EssenceUDK, CentrEd+, Fiddler+ и др.
Game isn't a dream, it is the reality, reality which is coming while we dream...
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Александр Needle™
сообщение 24.10.2017, 18:28
Сообщение #13


********

Mammy's hero
Сообщений: 1.227
Регистрация: 26.5.2009
Группа: Пользователи
Наличность: 0
Из: Украина , Одесса
Пользователь №: 11.891
Возраст: 33



del
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Sirocco
сообщение 24.10.2017, 18:52
Сообщение #14


******

Expert
Сообщений: 809
Регистрация: 2.2.2012
Группа: Пользователи
Наличность: 15391
Пользователь №: 14.566
Возраст: 30



> Height не делает предмет непроходимым , это делает флаг - impassible.

вот и попробуй сделать предмет с флагом и без высоты... и он будет проходимым.
во всяком случае когда я включаю флаг на сервере через CAN - то без поднятия на 1 тайл можно без помех проходить.

> Height - высота предмета в прямом смысле этого слова, Height еще означает, что если включен флаг Conatainer, то показывает сколько вещей он может в себя вмещать.

Открываю тайлдату и не вижу ничего подобного... высота контейнера это обычная высота предмета... с числами типо 3--4.

Нахрена нужны эти флаги Armor и Weapon... ты думаешь клиенту есть до этого какое-то дело?? Да, Н.И.Х.Е.Р.А. да и те же Quality тоже откровенно говоря в Tiledata не нужны.
Все это решается на уровне Сервера там есть type и layer. И я могу их крутить как захочу... и клиент схавает.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
StaticZ
сообщение 24.10.2017, 19:59
Сообщение #15


*********

Разработчик проекта "Квинтэссенция"
Сообщений: 2.155
Регистрация: 15.6.2009
Группа: Пользователи
Наличность: 0
Из: РФ, Москва
Пользователь №: 11.948



Цитата(Александр Needle™ @ 24.10.2017, 18:28) *
Так что если рассматривать клиент в этот период, то следует рассматривать конкретный клиент, я не брал 3.0.6а, у меня 3.0.6j и это огромная разница. Так как в этот период уже шла подготовка к Lord Blackthorn's Revenge и начались вноситься изменения в клиент.
Посмотрел 3.0.6j касательно формата тайлдаты никаких изменений. На грани любого аддона творится мясо, к примеру код чтения uop файлов появился задолго до того как началась замена мулов uop'ами и не только код, но и их обработка, т.е. клиент пытался открыть файлы в формате uop а если их не было то в формате mul. В HS пошла мода на патчи по 50-300 мб из-за того что там полностью перетряхивались uop контейнеры по нескольку раз. Так что тут спора нет чем масштабнее изменения тем большая тряска шла, но это касается новых форматов, файлов и тд но не таких вещей вроде тайлдаты.


Цитата(Sirocco @ 24.10.2017, 18:52) *
Нахрена нужны эти флаги Armor и Weapon... ты думаешь клиенту есть до этого какое-то дело?? Да, Н.И.Х.Е.Р.А. да и те же Quality тоже откровенно говоря в Tiledata не нужны. Все это решается на уровне Сервера там есть type и layer. И я могу их крутить как захочу... и клиент схавает.
Вы правы, но данное поле на самом деле нужно и существует не спроста. Клиент отсылает серверу пакет постфактум, когда пользователь перетащил предмет на папердрол и отпустил ЛКМ, после чего сервер уже решает дальнейшую судьбу предмета. Однако при перетаскивании предмета на папердол до отпускания ЛКМ клиент рисует соответствующий гамп на слое указанном в данном поле даже никак не информируя сервер о данном событии (при условии что установлен флаг Wearable). Так что без указания слоя все будет работать, но немножко по другому. К тому же вы еще забываете, что данное поле для тайлов статики также используется для указания маски освещения для источников света (в случае если задан флаг Lightsource но не задан флаг Wearable).

Флаги Armor и Weapon и иже с ними это по большому счету наследие гад клиента, по ним определяется класс объекта а из поля MiscData берется айди скрипта этого объекта на сервере. Хотя есть и небольшие исключения вроде флага Map для которого клиент создает объекты другого типа, впрочем для фришардов разницы никакой нет, а сами корни всего этого дела растут из тойже ОСИ где можно было путешествовать по картам

Сообщение отредактировал StaticZ - 24.10.2017, 20:00


--------------------
RP сервер UO: Quintessence, а также ПО: EssenceUCS, EssenceUDK, CentrEd+, Fiddler+ и др.
Game isn't a dream, it is the reality, reality which is coming while we dream...
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Frog
сообщение 24.10.2017, 21:14
Сообщение #16


****

Apprentice
Сообщений: 266
Регистрация: 6.9.2005
Группа: Пользователи
Наличность: 0
Пользователь №: 4.172
Возраст: 25



По полям тайлдаты тут кое-что есть, но не все поля на 100% изучены.
Брал напрямую из клиента 203, в 6ххх и может даже 7ххх проверял - кроме размера поля Flags ничего не изменилось.
Подкреплю кусочком псевдокода:
Код
char LoadTiledata()
{
  FILE *file; // esi@1
  char result; // al@2
  char landIndex; // bl@3
  signed int landOffset; // edi@3
  char statiscIndex; // bl@7
  signed int staticsOffset; // edi@7

  file = OpenFile(aTiledata_mul, g_Text_rb);
  if ( file )
  {
    landIndex = 0;
    landOffset = 0;
    do
    {
      if ( !(landIndex & 0x1F) )
        SeekFile(file, 4, 1);
      ReadFileData(&g_LandTiledata[landOffset], 4u, 1u, file);
      ReadFileData(&g_LandTiledata[landOffset].TextureID, 2u, 1u, file);
      ReadFileData(g_LandTiledata[landOffset].Name, 20u, 1u, file);
      ++landOffset;
      ++landIndex;
    }
    while ( landOffset < 0x4000 );
    statiscIndex = 0;
    staticsOffset = 0;
    do
    {
      if ( !(statiscIndex & 0x1F) )
        SeekFile(file, 4, 1);
      ReadFileData(&g_StaticTiledata[staticsOffset], 4u, 1u, file);
      ReadFileData(&g_StaticTiledata[staticsOffset].Weight, 1u, 1u, file);
      ReadFileData(&g_StaticTiledata[staticsOffset].QualityOrLayer, 1u, 1u, file);
      ReadFileData(&g_StaticTiledata[staticsOffset].Count, 4u, 1u, file);
      ReadFileData(&g_StaticTiledata[staticsOffset].AnimID, 2u, 1u, file);
      ReadFileData(&g_StaticTiledata[staticsOffset].Hue, 2u, 1u, file);
      ReadFileData(&g_StaticTiledata[staticsOffset].LightIndex, 2u, 1u, file);
      ReadFileData(&g_StaticTiledata[staticsOffset].Height, 1u, 1u, file);
      ReadFileData(g_StaticTiledata[staticsOffset].Name, 20u, 1u, file);
      ++staticsOffset;
      ++statiscIndex;
    }
    while ( staticsOffset < 0x4000 );
    result = FileManager__CloseFile(file);
  }
  else
  {
    result = TraceUOReportError(aCobjectmanag_0, aTiledata_mul);
  }
  return result;
}


И чуть подробнее о некоторых полях:
Weight - используется для определения статуса Locked предметов, на уровне тайлдаты и при просчете шага
Count, Hue - предположительно, для стандартного количества и цвета (если не задан) для компонент мульти. На 100% не уверен, но использование только в конструкторе объекта статики (в клиенте конечно же).
LightIndex - судя по коду клиента - ИД источника света, но по факту пока не сходится, может быть еще нужно пошаманить с этим значением.


--------------------
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
StaticZ
сообщение 24.10.2017, 21:37
Сообщение #17


*********

Разработчик проекта "Квинтэссенция"
Сообщений: 2.155
Регистрация: 15.6.2009
Группа: Пользователи
Наличность: 0
Из: РФ, Москва
Пользователь №: 11.948



Цитата(Frog @ 24.10.2017, 21:14) *

По полям тайлдаты тут кое-что есть, но не все поля на 100% изучены.
Брал напрямую из клиента 203, в 6ххх и может даже 7ххх проверял - кроме размера поля Flags ничего не изменилось.
Подкреплю кусочком псевдокода:
Код
char LoadTiledata()
{
  FILE *file; // esi@1
  char result; // al@2
  char landIndex; // bl@3
  signed int landOffset; // edi@3
  char statiscIndex; // bl@7
  signed int staticsOffset; // edi@7

  file = OpenFile(aTiledata_mul, g_Text_rb);
  if ( file )
  {
    landIndex = 0;
    landOffset = 0;
    do
    {
      if ( !(landIndex & 0x1F) )
        SeekFile(file, 4, 1);
      ReadFileData(&g_LandTiledata[landOffset], 4u, 1u, file);
      ReadFileData(&g_LandTiledata[landOffset].TextureID, 2u, 1u, file);
      ReadFileData(g_LandTiledata[landOffset].Name, 20u, 1u, file);
      ++landOffset;
      ++landIndex;
    }
    while ( landOffset < 0x4000 );
    statiscIndex = 0;
    staticsOffset = 0;
    do
    {
      if ( !(statiscIndex & 0x1F) )
        SeekFile(file, 4, 1);
      ReadFileData(&g_StaticTiledata[staticsOffset], 4u, 1u, file);
      ReadFileData(&g_StaticTiledata[staticsOffset].Weight, 1u, 1u, file);
      ReadFileData(&g_StaticTiledata[staticsOffset].QualityOrLayer, 1u, 1u, file);
      ReadFileData(&g_StaticTiledata[staticsOffset].Count, 4u, 1u, file);
      ReadFileData(&g_StaticTiledata[staticsOffset].AnimID, 2u, 1u, file);
      ReadFileData(&g_StaticTiledata[staticsOffset].Hue, 2u, 1u, file);
      ReadFileData(&g_StaticTiledata[staticsOffset].LightIndex, 2u, 1u, file);
      ReadFileData(&g_StaticTiledata[staticsOffset].Height, 1u, 1u, file);
      ReadFileData(g_StaticTiledata[staticsOffset].Name, 20u, 1u, file);
      ++staticsOffset;
      ++statiscIndex;
    }
    while ( staticsOffset < 0x4000 );
    result = FileManager__CloseFile(file);
  }
  else
  {
    result = TraceUOReportError(aCobjectmanag_0, aTiledata_mul);
  }
  return result;
}


И чуть подробнее о некоторых полях:
Weight - используется для определения статуса Locked предметов, на уровне тайлдаты и при просчете шага
Count, Hue - предположительно, для стандартного количества и цвета (если не задан) для компонент мульти. На 100% не уверен, но использование только в конструкторе объекта статики (в клиенте конечно же).
LightIndex - судя по коду клиента - ИД источника света, но по факту пока не сходится, может быть еще нужно пошаманить с этим значением.






Ну я ведь о том же самом и говорю, а теперь сопоставим приведенные выше названия с названиями представленными в фидлере на основании их смещений и получим показательную картину:

Weight -> Weight
QualityOrLayer -> Quality
Count -> Miscdata | (Unkn1 << 8) | (Quantity << 16)
AnimID -> Animation
Hue -> Unk2 | (Hue << 8)
LightIndex -> StackingOff | (Value << 8)
Height -> Height

Большой вопрос, кто и каким образом сочинял названия полей в обоих случаях, но как видно названия первого варианта часто приведены вообще не в попад, в то время как во втором лучше, но при этом часть названий была заимствована из первого и разбавлена львиной долей собственного бреда.


--------------------
RP сервер UO: Quintessence, а также ПО: EssenceUCS, EssenceUDK, CentrEd+, Fiddler+ и др.
Game isn't a dream, it is the reality, reality which is coming while we dream...
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Александр Needle™
сообщение 24.10.2017, 23:55
Сообщение #18


********

Mammy's hero
Сообщений: 1.227
Регистрация: 26.5.2009
Группа: Пользователи
Наличность: 0
Из: Украина , Одесса
Пользователь №: 11.891
Возраст: 33



Цитата(Sirocco @ 24.10.2017, 18:52) *

> Height не делает предмет непроходимым , это делает флаг - impassible.
вот и попробуй сделать предмет с флагом и без высоты... и он будет проходимым.
во всяком случае когда я включаю флаг на сервере через CAN - то без поднятия на 1 тайл можно без помех проходить.

Попробовал, не проходит.

Цитата
Нахрена нужны эти флаги Armor и Weapon... ты думаешь клиенту есть до этого какое-то дело?? Да, Н.И.Х.Е.Р.А. да и те же Quality тоже откровенно говоря в Tiledata не нужны.
Все это решается на уровне Сервера там есть type и layer. И я могу их крутить как захочу... и клиент схавает.

Вообще-то да, ему есть дело и они используются. Да, на сервере это есть, но если не заметил, тут обсуждается клиент и плевать на то, что там может делать сервер.
Может тогда 65 тыс. вещам имя давать тоже будешь через скрипты? (IMG:style_emoticons/default/wink.gif)
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Sirocco
сообщение 25.10.2017, 8:20
Сообщение #19


******

Expert
Сообщений: 809
Регистрация: 2.2.2012
Группа: Пользователи
Наличность: 15391
Пользователь №: 14.566
Возраст: 30



Цитата(Александр Needle™ @ 24.10.2017, 23:55) *

Попробовал, не проходит.


Вот ты сам написал, что обсуждаешь клиент - так и пробуй на сервер не класть тайлдату... естественно сервак тебе прохождение блокирует по флагу. ты попробуй только на стороне игрока это проделать, чисто на одной тайлдате.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Александр Needle™
сообщение 25.10.2017, 11:49
Сообщение #20


********

Mammy's hero
Сообщений: 1.227
Регистрация: 26.5.2009
Группа: Пользователи
Наличность: 0
Из: Украина , Одесса
Пользователь №: 11.891
Возраст: 33



Цитата(Sirocco @ 25.10.2017, 8:20) *

Вот ты сам написал, что обсуждаешь клиент - так и пробуй на сервер не класть тайлдату... естественно сервак тебе прохождение блокирует по флагу. ты попробуй только на стороне игрока это проделать, чисто на одной тайлдате.

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

2 страниц V  1 2 >
Ответить в эту темуОткрыть новую тему
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 

- Текстовая версия | Версия для КПК Сейчас: 19.3.2024, 10:59
Designed by Nickostyle