Elite Games - Свобода среди звезд!
.
ВНИМАНИЕ!
Наша конференция посвящена космической тематике и компьютерным играм.
Политические вопросы и происходящие в мире события в данный момент на нашем сайте не обсуждаются!

  » Структура данных X-Tension | страница 5
Конференция предназначена для общения пилотов. Для удобства она разделена на каналы, каждый из которых посвящен определенной игре. Пожалуйста, открывайте темы только в соответствующих каналах и после того, как убедитесь, что данный вопрос не обсуждался ранее.

Поиск | Правила конференции | Фотоальбом | Регистрация | Список пилотов | Профиль | Войти и проверить личные сообщения | Вход

   Страница 5 из 15
На страницу: Пред.  1, 2, 3, 4, 5, 6 ... 13, 14, 15  След.    Перейти:   Все страницы
Поиск в этой теме:
Канал X-Tension/X-BTF: «Структура данных X-Tension»
glory_man
 





У меня все станции вообще стоят. Выработали все ресурсы и стоят. Но вездесущие гонеры шастають по всем секторам и энтими же вратами пользуются. Только вот врата на карте галактики никак не видны.
    Добавлено: 15:56 22-11-2004   
Blueboar
 





Народ, я тут решил проверить сообщение DF
о том, что в файле 001.obj есть скрипты.
Я рассмотрел гораздо большее число команд,
пришел к выводу, что весь файл 001.obj это
большой скрипт.
Вообще, результатов несколько страниц. Сейчас
в основном разбираюсь в вызове подпрограмм
ассемблера и определении точек входа в скрипт.

Само исследование лежит тут
www.Ссылки на narod.ru запрещены! Используйте пожалуйста другие, более нормальные хостинги.\x.zip (прямая ссылка,
на сайте ссылки нет)

Приглашаю энтузиастов продолжить исследования
blueboar_2@rambler.ru
    Добавлено: 07:56 25-11-2004   
Shaddie
 556 EGP


Рейтинг канала: 6(438)
Репутация: 118
Сообщения: 261
Откуда: Томск
Зарегистрирован: 09.09.2004
glory_man :
У меня все станции вообще стоят. Выработали все ресурсы и стоят.

Все станции – это все станции в одном или во всех секторах?

To Blueboar пошли на мыло, а то что с народа не качается.
    Добавлено: 08:03 25-11-2004   
Finist
 1806 EGP


Модератор
Рейтинг канала: 4(80)
Репутация: 391
Сообщения: 12152
Откуда: Рязань РОССИЯ
Зарегистрирован: 25.12.2003
Shaddie :
а то что с народа не качается.

Опера не возьмёт, или IE или качалки заточенные под IE.
_________________
Про модераторов сказать можно много разного, вот только написать нельзя...
    Добавлено: 10:37 25-11-2004   
Shaddie
 556 EGP


Рейтинг канала: 6(438)
Репутация: 118
Сообщения: 261
Откуда: Томск
Зарегистрирован: 09.09.2004
To Blueboar
В архиве X.zip есть только один файл "Устройство данных на диске.doc". Документ интересный Улыбка , но я думаю, это не то, что ты подразумевал под исследованием.
    Добавлено: 12:48 25-11-2004   
glory_man
 





Стоят все станции во всех секторах (или почти во всех - проверил в большинстве открытых - а налетал на открывахе много). Но это скорее всего из-за того что exe-шник у меня не той системы.
А в Аргоне Главном должны быть только одни врата? Это была самая заметная для меня перемена на карте в начале новой игры.
    Добавлено: 19:22 25-11-2004   
Shaddie
 556 EGP


Рейтинг канала: 6(438)
Репутация: 118
Сообщения: 261
Откуда: Томск
Зарегистрирован: 09.09.2004
glory_man :
Стоят все станции во всех секторах…

Странно у меня вроде все нормально, правда, налетал немного - около 30 часов.
To All кто-нибудь еще смотрел?

glory_man :
…а налетал на открывахе много…

А почему на открывахе? В Аргоне Главном не далеко от центра сектора весит Xperimental (неизвестный объект), можешь пересесть на него.

glory_man :
Но это скорее всего из-за того что exe-шник у меня не той системы.

Гранаты у него не той системы. Хы...
Исходный файл 001.obj я брал для версии 2.1а. Если у тебя версия 2.1 или ниже, то странно, что вообще работает.

glory_man :
А в Аргоне Главном должны быть только одни врата?

Да.
Изменений в Аргоне Главном больше нет, только добавил возможность купить в доке Salvage Insurance.

Обрати внимание на то, что производит солярка (ближайшая к западным воротам в секторе Стена) Улыбка
А так же на завод альфа H.E.P.T. и торговую станцию там же.
    Добавлено: 08:14 26-11-2004   
Blueboar
 





Послал свое исследование Shaddie еще раз по мылу.
Кто не может скачать файл с народа, дайте адрес
почты, я вам закачаю.

Хотя, в принципе, если сильно захотеть, я могу
и сюда 5 страниц залить?
    Добавлено: 13:14 26-11-2004   
glory_man
 





У откывахи скорость больше. Я видел ХР, но в начале захотелось посмотреть на то, что стало с картой, на "новый" сектор OreBelt. Поэтому поменял бустер, проапргейдил скорость откывахи и помчался в OreBelt. Когда долетел до него ХР был еще где-то в стене. Ну и врата в Аргоне поразили - по привычке ломанул не глядя на карту в южные, а там ... Задница .
Цитата:
Гранаты у него не той системы.

О гранатах я не писал, но их подразумевал Хы... .
А так - вроде пользуюсь патчем XDron-a с этого сайта. Вот насчет версии - боюсь соврать - дома посмотрю. И вообще, может скинь свой exe-шник куда-нить для чистоты эксперимента.
Еще раз отмечу - врата в OreBelt есть, но на карте галлактики они никак не проявляются.
Солярку, завод и торговую станцию обязательно посмотрю дома.
Вот.!
    Добавлено: 19:13 26-11-2004   
BLY
 





2Blueboar:
Цитата:
Само исследование лежит тут
www.Ссылки на narod.ru запрещены! Используйте пожалуйста другие, более нормальные хостинги.\x.zip (прямая ссылка,


В Вашем файле лежит какое-то "левое" исследование, к ХТ не
имеющее никакого отношения. Тем более к интерпретатору скриптов.

Цитата:
Хотя, в принципе, если сильно захотеть, я могу
и сюда 5 страниц залить?


К чему это и зачем это исследование о формате данных на винте
на этом форуме? Прошу прощения, но непонятно.

Если у Вас есть список команд интерпретатора, то - велкам,
главное - что б по делу было.
    Добавлено: 13:20 27-11-2004   
Пассажир
 

Пассажир




Извините, архив я заменил вчера.
Попробуйте снова.
    Добавлено: 13:48 27-11-2004   
Blueboar
 





Никто не может выслать на мыло скрипты
001 и 002.obj от версии X-T 2.1.

А то у меня 1.1, хочу проверить, чем
отличаются.
А файл уже заменил. Теперь он действительно
про скрипты.
    Добавлено: 09:02 28-11-2004   
BLY
 





2Blueboar:
Цитата:
А файл уже заменил. Теперь он действительно
про скрипты.


Увы, на сайте пока то же самое. Т.е. про винты...
    Добавлено: 14:46 28-11-2004   
Blueboar
 





Ну не знаю. У меня качает...
Можете дать адрес своего мыла, я пошлю
вам копию.
    Добавлено: 15:02 28-11-2004   
Blueboar
 





Ладно, не буду париться. Вот все, что я накопал:

Относительно данных в X-TENSION


Основанием для данного сообщения послужило сообщение DF от 27-10-2004, а также его фраза от 28-10-2004 «…мне показалось, что все приведенные здесь структуры тоже скрипты. Последовательно запихивают в стек данные, а потом все это перегоняется из стека еще куда-нибудь».
DF, ты даже не знаешь, насколько ты прав. Тогда бы не пришлось гадать относительно ZZZZ в новом секторе. Но все по порядку:
Сначала известные мне коды интерпретатора скриптов (те, которые есть у DF и свои) – курсивом выделены данные DF, в истинности которых я не уверен (что, впрочем, не означает, что они не верны)

Слово - Сколько слов данных - Что делает
0001 - 1 - Сохраняет на стеке двойное слово. Старшее слово всегда равно нулю, а младшее – данным
0002 - 2 - Сохраняет на стеке двойное слово
0005 - 1 - Сохранить на стеке двойное слово, находящееся в стеке уровня XX-1, где XX-данные.
0007 - 0 - Скопировать последнее значение стека (из одного значения сделать два)
0009
0028 - 0 - Сохранить на стеке значения 0000-001F
0029 - 1 - По адресу XX(данные) записать двойное слово из стека. Обратите внимание, XX адресует не слова, а двойные слова. Адреса отсчитываются от начала скрипта
002A - 1 - Записать текущее значение стека в стек под номером XX-1, где XX – данные. Текущее значение не теряется. (У DF было наоборот! – это делает команда 0005)
002B - 1 - Сохранить слово в специальном месте (типа стека, но другого)
002C - 0 - Извлечь из стека значение. Оно теряется.
002E - 1 - Извлечь из стека XX значений (XX-данные)
002F - Переменно - Последним значением в стеке является количество параметров. Записывает их (которые идут в стеке далее) куда-то (в недоступное для скрипта место), взамен выдает на стеке идентификатор, позволяющий их адресовать. Вот только команда «прочитать данные по идентификатору» пока не найдена.
0030 - 2 - Берет последние XXXX (данные) значений стека и выдает уникальный идентификатор (как 002Fh), только число параметров не задается в стеке, а содержится в команде. Идентификаторы, выдаваемые командами 002F и 0030 не совпадают.
0031 - 2 - Перейти на слово скрипта под номером XXXX (данные)
0032 - 2 - То же, что и 0031, но переход только если слово в стеке равно нулю
0033 - 2 - То же, что и 0031, но переход только если слово в стеке не равно нулю
0035 - 0 - Возврат из подпрограммы
003D - 0 - Сохранить на стеке FFFFFFFF
003E - 0 - Сложить два значения в стеке
003F - 0 - Вычесть два значения в стеке
0040 - 0 - Умножить два значения в стеке
0041 - 0 - Разделить два значения в стеке
0042 - 0 - Судя по всему, получить остаток от деления двух значений в стеке (неточно определено, возможно, что и нет)
0043 - 0 - Сделать логическое «ИЛИ» над значениями в стеке
0044 - 0 - Сделать логическое «И» над значениями в стеке
0045 - 0 - Сделать логическое «ИСКЛЮЧАЮЩЕЕ ИЛИ» над значениями в стеке
0046 - 0 - Если два последних значения стека равны нулю, сохранить на стеке 0, иначе сохранить на стеке 1 (не проверил, исчезают ли проверяемые значения)
0047 - 0 - Если хотя бы одно из последних двух значений стека не равно нулю, на стеке сохраняется 1, иначе 0
0048 - 0 - Сделать команду SHL [SP-1],SP над значениями в стеке
0049 - 0 - Сделать команду SAR [SP-1],SP над значениями в стеке
004A - 0 - Если A<=B, возвратить в стеке 0, иначе 1. Значения сравниваемых величин теряются.
004B - 0 - То же, что 004A, но условие A>=B
004C - 0 - То же, что 004A, но условие A<B
004D - 0 - То же, что 004A, но условие A>B
004E - 0 - То же, что 004A, но условие A=B
004F - 0 - То же, что 004A, но условие A<>B
0050 - 0 - Изменить знак числа в стеке
0051 - 0 - Если значение в стеке равно нулю, сохранить на стеке 1 иначе 0
0052 - 0 - Логически инвертировать значение в стеке
0056 - 2 - Взять по слову XXXX(данные) относительно начала скрипта слово и записать его в стек
0057 - 2 - Перейти на подпрограмму по адресу в данных
005A - ? - Перейти на подпрограмму ассемблера (правда, неизвестно какую. Известно лишь, что данные показывают смещение названия подпрограммы в области ‘STRG’ файла 001.OBJ (002.OBJ) – откройте его ближе к концу и вы найдете данную область. Проблема в том, что она зашифрована, и настоящие названия подпрограмм видно лишь под отладчиком. Если кто-то возьмется опознать вариант используемого шифра (а может быть и запаковки), я готов дать ему зашифрованный и расшифрованный вариант для сравнения.
    Добавлено: 15:07 28-11-2004   
Blueboar
 





Как отсчитывается адрес для команд перехода и чтения данных? Вы берете двойное слово, например, после команды 0031 (перейти на подпрограмму), умножаете его на 2 (так как команда 0031 адресует слова, а не байты) и добавляете 8 (связано с тем, что первые 8 байт в файле OBJ зарезервированы, наверное, под сигнатуру, которая показывает, что это и правда файл объектов)
Для особо жаждущих известности даю адреса начала подпрограммы ассемблера в интерпретаторе скриптов для каждой команды (искать в XTENSION.EXE)

0000 - Такой нет; 0010 - 00401B30; 0001 - 004018E0
0011 - 00401B50; 0002 – 00401910; 0012 - 00401B70;
0003 – 00401940; 0013 - 00401B90; 0004 - 00401970
0014 - 00401BB0; 0005 - 004019A0 - 0015 - 00401BD0
0006 - 004019D0 - 0016 - 00401BF0; 0007 - 00401A00;
0017 - 00401C10; 0008 - 00401A20 - 0018 - 00401C30;
0009 - 00401A50 - 0019 - 00401C50; 000A - 00401A70
001A - 00401C70; 000B - 00401A90 - 001B - 00401C90
000C - 00401AB0 - 001C - 00401CB0; 000D - 00401AD0;
001D - 00401CD0; 000E - 00401AF0 - 001E - 00401CF0;
000F - 00401B10 - 001F - 00401D10; 0020 - 00401D30
0030 - 00401F40; 0021 - 00401D50 - 0031 - 00401F70
0022 - 00401D70 - 0032 - 00401FA0; 0023 - 00401D90
0033 - 00401FF0; 0024 - 00401DB0 - 0034 – 00402040;
0025 - 00401DD0 - 0035 - 00402180; 0026 - 00401DF0
0036 – 00402230; 0027 - 00401E10 - 0037 - 004024D0
0028 - 00401E30 - 0038 - 004026D0; 0029 - 00401E50
0039 - 004027A0; 002A - 00401E80 - 003A - 004028D0;
002B - 00401EA0 - 003B - 00402A60; 002C - 00401EC0
003C - 00402B80; 002D - 00401ED0 - 003D - 00402BA0
002E - 00401EF0 - 003E - 00402BC0; 002F - 00401F10
003F - 00402BE0; 0040 - 00402C00 - 0050 - 00402E80;
0041 - 00402C20 - 0051 - 00402E90; 0042 - 00402C40
0052 - 00402EB0; 0043 - 00402C60 - 0053 - 00402EC0
0044 - 00402C80 - 0054 – 00403110; 0045 - 00402CA0
0055 - 0040312E; 0046 - 00402CC0 - 0056 – 00403170;
0047 - 00402CF0 - 0057 - 004031A0; 0048 - 00402D20
0058 - 004033B0; 0049 - 00402D40 - 0059 - 00403480
004A - 00402D60 - 005A - 004035B0; 004B - 00402D90
005B - 00403860; 004C - 00402DC0 - 004D - 00402DF0
004E - 00402E20 - 004F - 00402E50


ТЕПЕРЬ САМОЕ ГЛАВНОЕ: ДО НЕДАВНЕГО ВРЕМЕНИ Я ДУМАЛ, ЧТО В ФАЙЛЕ 001.OBJ (И В 002.OBJ) ЕСТЬ ДВА ТИПА ОБЪЕКТОВ – «ОПИСАНИЯ КАРТЫ» И «СКРИПТЫ». ТЕПЕРЬ ЖЕ Я УВЕРЕН – ЕСТЬ ТОЛЬКО СКРИПТЫ.
    Добавлено: 15:10 28-11-2004   
Blueboar
 





Не верите? Нужен пример? Пожалуйста. Цитата из сообщения от 06:13 27-10-2004 – «В общем случае формат записи координат XYZ выглядит следующим образом: 0002 YYYY YYYY 0002 ZZZZ ZZZZ 0002 XXXX XXXX, где YYYY YYYY - 4 байта, координата по оси Y; ZZZZ ZZZZ - 4 байта, координата по оси Z; XXXX XXXX - 4 байта, координата по оси X.»

Почему именно так? Очень просто! Сначала идет код команды – 0002. Смотрим: Это сохранить на стеке двойное слово. И действительно, идет двойное слово – координата Х, потом так же для Y и для Z. Что с ними делается дальше пока непонятно, но разберемся.
Далее, короткие формы. В том же сообщении указывается, что если координата равна 0, то можно написать 0009. Знаете почему? А посмотрите код команды 0009. Это значит записать на стеке 0!!! Вот поэтому она и используется. Но если вас прет, можете написать 0002-0000-0000.
Или когда координаты записываются одним байтом. Тогда используется код 0001. Как указано выше, он позволяет сохранять слово, заполняя старшее слово двойного слова нулями.

· Пойдем еще дальше. Знаете, почему иногда из числа нужно вычитать 9? Например, в приведенном в форуме примере по товарам для Argon Prime в конце указано 0017 002F 000A. 002F передает данные самой X-TENSION для хранения. И последнее слово в стеке она использует как число параметров.
· А команда «сохранить 0» имеет код 09, «сохранить 1» код 0А, и так далее. То есть код команды всегда на 9 больше самих сохраняемых данных. То есть, чтобы указать команде 002F, что у нас 14 объектов, мы должны сохранить число 14 на стеке. А для этого нужна команда 0017H!!. Вот поэтому-то все и больше на 9.

Теперь рассмотрим все, что написал Shaddie по порядку с новой точки зрения:

1. Обнаруженные мной ИС состоят из 12 или 14 байт: 00VV 00YY 00XX 000A [0001] 00ZZ 002F.

Объяснение: Последняя команда 002F передает данные X-TENSION, получая взамен идентификатор, чтобы не хранить большой объем данных. Последним (00ZZ) должно сохраняться число параметров. Судя по записи, их 4 слова (независимо от того, есть ли [0001] или нет, почему поймете позже) – 00VV, 00YY, 00XX и 000A.
Почему же Shaddie написал 00ZZ, а не 000D, что означает «сохранить 4 на стеке»? К тому же, в примере для Argon Prime там стоит 0022 – 19 параметров. Судя по всему, ИС начинается гораздо раньше, чем указал Shaddie и там есть еще какие-то данные.
Почему параметров 4, а не 5, если есть еще [0001], и что он означает? Объясняю – с помощью команд 0009-0028 можно сохранять на стеке числа от 0 до 31. Если данных больше (а для некоторых ИС видимо так и есть), используется команда 0001+значение, например 0001-0004 – сохранить на стеке «00000004»

2. Метка состоит из 6 байтов: 00XX 002F 00YY. XX - количество подчиненных объектов

Полностью подтверждает мою мысль. Только если объектов более 31, будет 0001 00XX 002F 00YY.

Относительно БДО для Free Argon Trading Station – Сначала с помощью команды 002F каждый товар заносится в базу данных и скрипту возвращается идентификатор, например:

0009 0017 000B 002F //Cloth Rimes

Заносим в стек два значения – 0 (0009) и E (0017). Командой 000B (занести в стек 00000002), указываем, что параметра 2. Командой 002F сохраняем их и получаем вместо двух параметров один – идентификатор.
Естественно, хранить 14 идентификаторов нерационально. Поэтому в конце встречаем команды:

0017 002F 000A

Командами 0017 002F мы записываем все 14 полученных идентификаторов и получаем еще один идентификатор. Таким образом, имея его, мы можем адресовать все товары для этой станции. Вот только я еще не нашел обратной команды – «взять идентификатор и занести для него в стек ранее сохраненные данные».
Команда 000A (записать в стек 1) скорее всего используется, чтобы скрипт не забыл, к чему относится данный идентификатор – к станции.

Скрипты используются в игре не только при генерировании секторов, а также при

· Загрузке
· Начале игры (вот эта самая загрузка секторов)
· При самой игре (а может алгоритмы поведения записаны также в виде скриптов?)
· При загрузке игры

Кстати говоря, при запуске новой игры читаются скрипты из 002.OBJ, а не из 001.OBJ. Судя по всему, в 001.OBJ записаны неизменные данные (положения станций, например), а в 002.OBJ – программы, типа «Показать мультик». А может быть, в нем записаны алгоритмы поведения кораблей и станций.
    Добавлено: 15:11 28-11-2004   
BLY
 





Вау!
Блин, что ж вы раньше молчали!!

Цитата:
Если кто-то возьмется опознать вариант используемого шифра (а может быть и запаковки)


Похоже там нет упаковки, потому как встречаются файлы obj,
с длинными последовательностями одинаковых значений. Хотя это
и не факт... Он большой этот список?
    Добавлено: 16:35 28-11-2004   
Blueboar
 





Да нет, не сильно. Щас запишу для примера байт
пятьсот от начала и пошлю. Пишите мыло,
кому нужно послать.
    Добавлено: 17:00 28-11-2004   
CheckerTwo
 550 EGP


Рейтинг канала: 4(90)
Репутация: 103
Сообщения: 412
Откуда: Tomsk
Зарегистрирован: 18.08.2004
Кхм. Простите, а можно мне тоже ознакомиться со списком сиих
имен п/программ? Письмо отправил. Улыбка
    Добавлено: 17:14 28-11-2004   
Канал X-Tension/X-BTF: «Структура данных X-Tension»
На страницу: Пред.  1, 2, 3, 4, 5, 6 ... 13, 14, 15  След.    Перейти:   Все страницы
  
Показать: 
Предыдущая тема | Следующая тема |
К списку каналов | Наверх страницы
Цитата не в тему: Вот в последний месяц все на лазерные башни бросался, как киты на сушу от суицидальных позывов... (forbidden)

  » Структура данных X-Tension | страница 5
Каналы: Новости | Elite | Elite: Dangerous | Freelancer | Star Citizen | X-Tension/X-BTF | X2: The Threat | X3: Reunion | X3: Terran Conflict | X Rebirth | X4: Foundations | EVE Online | Orbiter | Kerbal Space Program | Evochron | VoidExpanse | Космические Миры | Онлайновые игры | Другие игры | Цифровая дистрибуция | play.elite-games.ru | ЗВ 2: Гражданская война | Творчество | Железо | Игра Мечты | Сайт
   Дизайн Elite Games V5 beta.18