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

Search | Conference rules | Album | Register | Pilots list | Profile | Log in to check your private messages | Log in

   Page 3 of 4
Go to page: Previous  1, 2, 3, 4  Next | All pages
Поиск в этой теме:
Канал X-Tension/X-BTF: «Раскопки обжа на предмет юзабельных вещей»
yakim81
 300 EGP


Рейтинг канала: 6(361)
: 16
Posts: 213

Joined: 07 Feb 2015
Я тут глянул, он не был на форуме уже почти год. Может у кого есть его контакты, попросить подправить редактор в виду новых возможностей?
    Posted: 22:04 22-06-2016   
yakim81
 300 EGP


Рейтинг канала: 6(361)
: 16
Posts: 213

Joined: 07 Feb 2015
В общем, после некоторых опытов с данными переменными удалось установить, что максимальная матрица (предполагаемая) может иметь максимум 31х31 секторов, дальше возможности упираются в интерпретатор. В любом случае, при выставлении больших значений, начинает ломаться структура obj. Как то так.
Написал уважаемому Shaddie письмо, с просьбой увеличить матрицу в его редакторе, что бы можно было проверить мои предположения. Буду ждать ответа.
    Posted: 12:04 23-06-2016   
AKELLO
 633 EGP


Вожак стаи
Рейтинг канала: 3(33)
: 67
Posts: 3018
Location: [OEG]
Joined: 13 May 2003
Блин. Собрал новую систему - новый проц, мамка. Вот это все это. Запустил Х-Т и.. все тож самое как и было. Во время заставки, которая должна плавно переходить в меню - реакции на клавиши или ESC нулевая. У самой менюшки клавиши ввех или вниз тоже не работают Совсем запутался... Расстроен
_________________
The truth is out there ...
Каждая мина в душе риппер, каждая торпа в душе васп (с) Флекс
    Posted: 22:04 23-06-2016   
yakim81
 300 EGP


Рейтинг канала: 6(361)
: 16
Posts: 213

Joined: 07 Feb 2015
Используйте версию запускного файла 2.2 и будет Вам счастье
    Posted: 22:46 23-06-2016   
AterBatraal
 55 EGP

Рейтинг канала: 1(9)
: 2
Posts: 12
Location: Москва
Joined: 25 Apr 2013
По поводу запуска XT не 2.2 версии (которая по ряду причин мне не по нраву) на винде 7 и выше 64 бит.
Я тоже мучился с тем, что игра не реагировала и вообще поиграть не выходило.
А потом, прочитав совет одного из пилотов...


А насчёт мода от пилота KWON: даже незаконченный, он радовал!

Last edited by AterBatraal on 00:17 24-06-2016; edited 3 times in total
    Posted: 00:10 24-06-2016   
yakim81
 300 EGP


Рейтинг канала: 6(361)
: 16
Posts: 213

Joined: 07 Feb 2015
KWON wrote:
На счет числа 31 я уже давно знаю.
Там такой прикол:
от 0 до 31 добавляется девятка.
А дальше тупо пересчет в гекс без этой беды.
Там Blueboar объяснил почему так:
http://www.elite-games.ru/conference/viewtopic.php?p=682053#682053
http://www.elite-games.ru/conference/viewtopic.php?p=683430#683430

Добавлю.

Это касается также и БТФ. В моем моде:
https://yadi.sk/d/Bt8a9r7RnPveW
Больше 30 ракет на Экспериментал добавить невозможно.
Также по методу магната:
http://www.elite-games.ru/conference/viewtopic.php?p=964377#964377
ставить гонорар за сбитые корабли больше 30 000 невозможно,
будет наоборот минусоваться.
30 в Иксах какое-то заколдованное число.


Я тут покумекал и пришел к выводу:
obj использует некий вид шифрации/сжатия байт-кода (я тут не силён). Если посмотреть этот же код с расшифровкой байт-кода, то можно увидеть, что операция
Code:
00094966: 001D                   |    0            push       20d ; 14h

занимает один байт-код 001D, и расшифровывается как 001Dh - 0009h = 0014h
а если нам надо закинуть в стек большее число, то используется две комманды
Code:
000949FA: 0001 07D1              |    5            pushw      2001d ; 07D1h

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

PS. Просьба к модераторам перенести последние посты, не относящиеся к теме XTNL в раздел Редактор карт или Раскопки обжа, где они будут более логично смотреться по смыслу, начиная с этого сообщения

Last edited by yakim81 on 16:34 24-06-2016; edited 2 times in total
    Posted: 16:32 24-06-2016   
KWON
 311 EGP


Рейтинг канала: 7(508)
: -11
Posts: 120
Location: Україна. Чигирин.
Joined: 24 Nov 2014
yakim81 wrote:
Если посмотреть этот же код с расшифровкой байт-кода, то можно увидеть, что операция
Code:
00094966: 001D                   |    0            push       20d ; 14h

занимает один байт-код 001D, и расшифровывается как 001Dh - 0009h = 0014h
а если нам надо закинуть в стек большее число, то используется две комманды
Code:
000949FA: 0001 07D1              |    5            pushw      2001d ; 07D1h

и занимают 2 байт-кода, при этом ничего не отнимается.

Правильно. А если нужно 4 байта, тогда пишут так (возьму Ваши цифры для примера):
Code:
000949FA: 0002 0000 07D1

Допишу.
Тут доходчивые объяснения:
http://www.elite-games.ru/conference/viewtopic.php?p=674372#674372
_________________
Постраждати за Україну, все одно, що постраждати за Христа!

Last edited by KWON on 09:40 25-06-2016; edited 1 time in total
    Posted: 18:29 24-06-2016   
yakim81
 300 EGP


Рейтинг канала: 6(361)
: 16
Posts: 213

Joined: 07 Feb 2015
В общем печальные новости у меня.
Вчера провел эксперимент на XTNL, добавил вручную сектор на 10-ю горизонталь с северными вратам, установил южные врата на 9-й горизонтали, попробовал влететь - ожидаемо очутился на 1-й горизонтали без корабля (там же северных ворот нету).
Но я не отчаялся, и начал изучать obj на предмет кода
Code:

           push       20d ; 14h
           if SP[0]<=SP[1] then push 0 else push 1
           if SP[0]=0 then jump

и
Code:

push       10d ; 0Ah
           if SP[0]<=SP[1] then push 0 else push 1
           if SP[0]=0 then jump

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

Кстати, участок
Code:

L00094980: push       SP[0] ; loc1
           push       20d ; 14h
           if SP[0]<=SP[1] then push 0 else push 1
           if SP[0]=0 then jump L00094A28
           jump       L000949A8

банальный цикл for или while
    Posted: 10:25 26-06-2016   
AKELLO
 633 EGP


Вожак стаи
Рейтинг канала: 3(33)
: 67
Posts: 3018
Location: [OEG]
Joined: 13 May 2003
yakim81 wrote:
Используйте версию запускного файла 2.2 и будет Вам счастье

Я правильно понимаю, что в папку с Х-Т NL нужно будет вставить старый ЕХЕшник? оО

AterBatraal wrote:
По поводу запуска XT не 2.2 версии (которая по ряду причин мне не по нраву) на винде 7 и выше 64 бит.
Я тоже мучился с тем, что игра не реагировала и вообще поиграть не выходило.
А потом, прочитав совет одного из пилотов...


А насчёт мода от пилота KWON: даже незаконченный, он радовал!


Не помогло Расстроен
_________________
The truth is out there ...
Каждая мина в душе риппер, каждая торпа в душе васп (с) Флекс
    Posted: 14:29 26-06-2016   
yakim81
 300 EGP


Рейтинг канала: 6(361)
: 16
Posts: 213

Joined: 07 Feb 2015
AKELLO wrote:
Я правильно понимаю, что в папку с Х-Т NL нужно будет вставить старый ЕХЕшник? оО


Ответил в профильной ветке
    Posted: 15:14 26-06-2016   
Shaddie
 536 EGP


Рейтинг канала: 6(309)
: 118
Posts: 255
Location: Томск
Joined: 09 Sep 2004
yakim81 wrote:
В общем печальные новости у меня.
Вчера провел эксперимент на XTNL, добавил вручную сектор на 10-ю горизонталь с северными вратам, установил южные врата на 9-й горизонтали, попробовал влететь - ожидаемо очутился на 1-й горизонтали без корабля (там же северных ворот нету).
Но я не отчаялся, и начал изучать obj на предмет кода
Code:

           push       20d ; 14h
           if SP[0]<=SP[1] then push 0 else push 1
           if SP[0]=0 then jump

и
Code:

push       10d ; 0Ah
           if SP[0]<=SP[1] then push 0 else push 1
           if SP[0]=0 then jump

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

Кстати, участок
Code:

L00094980: push       SP[0] ; loc1
           push       20d ; 14h
           if SP[0]<=SP[1] then push 0 else push 1
           if SP[0]=0 then jump L00094A28
           jump       L000949A8

банальный цикл for или while

Всем привет!
Собственно и зашел, что бы что то похожее написать. Что бы изменить размеры матрицы галактики нужно менять не в паре мест.
Собственно сама карта хранится в виде массива размером в 20 элементов, где каждый элемент это то же массив размером в 10 элементов, а вот тут каждый элемент это уже объект сектор (TSECTOR):

Code:
function TGALAXY.Build(arg1)
{
 if(arg1 >= 0)
 {
  return(0);
 }
 P_ViewEBMFullscreen("Loadings", 1);
 global.gs_DelayFactor = 1000;
 global.ga_Sectors = SE_ArrayAlloc(20);
 loc1 = 0;
 for(loc1 < 20; loc1 = loc1 + 1)
 {
  global.ga_Sectors[loc1] = SE_ArrayAlloc(10);
  loc2 = 0;
  for(loc2 < 10; loc2 = loc2 + 1)
  {
   global.ga_Sectors[loc1][loc2] = new(TSECTOR)->Create(loc1, loc2);
  }
 }
 ...


Исправлять нужно по всему коду, как минимум в тех местах где идет обращение к глобальной переменной global.ga_Sectors.

Исходники редактора могу поискать - там думаю реально изменить размер матрицы (возможно сразу предусмотрел такую возможность и там размеры вынесены в константы).
_________________
Быстро едешь, тихо понесут...

Last edited by Shaddie on 15:50 08-07-2016; edited 1 time in total
    Posted: 15:47 08-07-2016   
yakim81
 300 EGP


Рейтинг канала: 6(361)
: 16
Posts: 213

Joined: 07 Feb 2015
Какая радость, с возвращением! Я пошерстил obj и обнаружил уже свыше 37 мест, где используется два цикла со счетчиком 20 и 10 элементов, но это еще не все места. Я уже писал тов. KWON о двух местах, где цифры 20 и 10 передаются в качестве параметров для функции
Code:

           push       10d ; 0Ah
           push       20d ; 14h
           push       1
           callasm    P_Random ; 000000F5

в функции TFACTORY.Production2();
Если Вы присоединитесь к данной разработке, думаю все получится.
    Posted: 13:53 09-07-2016   
yakim81
 300 EGP


Рейтинг канала: 6(361)
: 16
Posts: 213

Joined: 07 Feb 2015
Вопрос на засыпку знающим людям.
1. Есть ли место в obj или каком другом месте, где прописывается принадлежность фабрики или завода той или иной расе?
2. Имеется ли такой же признак у торговой станции?
Если ответ положительный:
3. Имеется ли такой же признак для фабрики игрока?
4. Можно ли использовать этот признак для присвоения его торговой станции?
5. Можно ли всунуть торговую станцию в товары на верфь и присваивать ей признак принадлежности Игроку?

Где то во внутренностях игры видел заготовки принадлежности сектора игроку. Если можно сделать п. 5, то можно будет сделать и сектор, принадлежащий Игроку так, что бы эта информация отображалась на галактической карте. (моя давняя мечта)
    Posted: 15:05 10-07-2016   
AlexYar
 1480 EGP


Рейтинг канала: 5(238)
: 344
Posts: 23387

Joined: 26 Oct 2003
yakim81 wrote:
1. Есть ли место в obj или каком другом месте, где прописывается принадлежность фабрики или завода той или иной расе?


В х2 это TSTATION.st_Owner

Может и тут так.

yakim81 wrote:
2. Имеется ли такой же признак у торговой станции?


У всех подклассов должен быть (либо берётся с родительского класса).

yakim81 wrote:
3. Имеется ли такой же признак для фабрики игрока?


Да, игрок - это тоже раса.

yakim81 wrote:
4. Можно ли использовать этот признак для присвоения его торговой станции?


Да.

yakim81 wrote:
5. Можно ли всунуть торговую станцию в товары на верфь и присваивать ей признак принадлежности Игроку?


Нет. Товар не имеет принадлежности, а на верфь добавить можно только в виде товара.

yakim81 wrote:
Где то во внутренностях игры видел заготовки принадлежности сектора игроку.


TSECTOR.sec_Owner тоже есть в х2, но чтобы назначить сектор игроку - нужно во многих местах код менять, так как изначально это не было предусмотрено. В оригинале принадлежность сектора назначается во время создания вселенной (на старте новой игры) и потом уже не меняется. В разных меню, в алгоритмах поиска кораблей/станций/товара и прочих местах потом проблемы могут быть.
    Posted: 15:27 10-07-2016   
yakim81
 300 EGP


Рейтинг канала: 6(361)
: 16
Posts: 213

Joined: 07 Feb 2015
Т.е. если я правильно понял, то торговая станция как товар отсутствует в XT? но в X2, как я знаю, торговую станцию можно купить на верфи, и она будет принадлежать Игроку?
    Posted: 15:57 10-07-2016   
aL144
 293 EGP


Рейтинг канала: 6(260)
: 21
Posts: 285
Location: Город непуганных идиотов
Joined: 07 May 2014
Ребята сделаете мне расширенную матрицу - я сделаю новые качественные сектора, сделаете 20х40 - сделаю еще 600 секторов в довесок к 800, сделаете размер больше - сделаю больше. Лучше больше, я серьезно настроен.
_________________
Там где я был - смерти никогда не было, там где я есть - ее никогда не будет...
    Posted: 00:04 11-07-2016   
KWON
 311 EGP


Рейтинг канала: 7(508)
: -11
Posts: 120
Location: Україна. Чигирин.
Joined: 24 Nov 2014
yakim81 wrote:
1. Есть ли место в obj или каком другом месте, где прописывается принадлежность фабрики или завода той или иной расе?
2. Имеется ли такой же признак у торговой станции?
3. Имеется ли такой же признак для фабрики игрока?
4. Можно ли использовать этот признак для присвоения его торговой станции?

Возьмите редактор, создайте станцию.
Скопируйте обж, вставте тут же (Копия 001.obj).
Откройте редактором "Копия 001.obj" в созданной станции поменяйте свойства:
расу и тип завода или фабрики (осторожно не сместив координаты).
Сохраните. Откройте оба файла Гекс-идитором, сравните.
И будет вам счастье. Можете приписать таким образом игроку любую станцию заменив код какой то расы на код расы игрока (0012).
Список кодов рас:
000A - 1 Argon
000B - 2 Boron
000C - 3 Split
000D - 4 Paranid
000E - 5 Teladi
000F - 6 Xenon
0010 - 7 Pirate
0011 - 8 Goner
0012 - 9 Player
yakim81 wrote:
5. Можно ли всунуть торговую станцию в товары на верфь и присваивать ей признак принадлежности Игроку?

Вот таблица xmagnat'а:
http://xmagnat. narod.ru/code_obj.html
поиграйтесь сами заменяя на верфи разные предприятия.
Возмите оригинальный обж начните игру в Аргон Прайм, сохранитесь на верфи.
Откройте сейв Гекс-редактором, задайте в поиск, например, Аргонский спутниковый завод.
Код встретится два раза. Из таблицы Магната возмите код любой станции.
Замените в найденных двух местах.
Запускаем сохранеку, смотрим чаво случилось.
И будет видно что доки и торговые станции на верфь добавится не захотят.
_________________
Постраждати за Україну, все одно, що постраждати за Христа!
    Posted: 23:56 11-07-2016   
Shaddie
 536 EGP


Рейтинг канала: 6(309)
: 118
Posts: 255
Location: Томск
Joined: 09 Sep 2004
yakim81 wrote:
Если Вы присоединитесь к данной разработке, думаю все получится.

Времени мало свободного, но постараюсь помочь. Пока подправил редактор под матрицу 30 на 30. Надо теперь подготовить 001.obj под эти размеры.
_________________
Быстро едешь, тихо понесут...
    Posted: 09:11 12-07-2016   
yakim81
 300 EGP


Рейтинг канала: 6(361)
: 16
Posts: 213

Joined: 07 Feb 2015
Shaddie wrote:
yakim81 wrote:
Если Вы присоединитесь к данной разработке, думаю все получится.

Времени мало свободного, но постараюсь помочь. Пока подправил редактор под матрицу 30 на 30. Надо теперь подготовить 001.obj под эти размеры.

Теперь самое главное - заставить игру видеть сектора больше 20 по вертикали и 10 по горизонтали.
Я провел опыт, где добавил на 11 горизонталь сектор, включил отображение всех секторов на карте через чит меню - все сектора отобразились, а вот 11 горизонталь не отобразилась, хотя связь с 10 на 11 горизонт отображалась, но это 00749.bod, проблему с отображением которого мы уже решили.

KWON wrote:
И будет видно что доки и торговые станции на верфь добавится не захотят.


Возможен ли такой вариант - где то в obj должен храниться список станций, которые являются товаром для верфей. Возможно туда нужно добавить торговую станцию в список, или заменить какую нить фабрику на Торговую.
    Posted: 09:26 12-07-2016   
Shaddie
 536 EGP


Рейтинг канала: 6(309)
: 118
Posts: 255
Location: Томск
Joined: 09 Sep 2004
yakim81 wrote:

Теперь самое главное - заставить игру видеть сектора больше 20 по вертикали и 10 по горизонтали.
Я провел опыт, где добавил на 11 горизонталь сектор, включил отображение всех секторов на карте через чит меню - все сектора отобразились, а вот 11 горизонталь не отобразилась, хотя связь с 10 на 11 горизонт отображалась, но это 00749.bod, проблему с отображением которого мы уже решили.

Подправил генерацию файла 00749.bod из редактора на новые размеры, обновил редактор в теме (еще раз скачать).
_________________
Быстро едешь, тихо понесут...
    Posted: 10:01 12-07-2016   
Канал X-Tension/X-BTF: «Раскопки обжа на предмет юзабельных вещей»
Go to page: Previous  1, 2, 3, 4  Next | All pages
  
Display posts from previous: 
View previous topic | View next topic |
К списку каналов | Наверх страницы
Цитата не в тему: Остановите эту вселенную, я с нее слезу... (попросил yura305)

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