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

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

   Страница 3 из 5
На страницу: Пред.  1, 2, 3, 4, 5  След. | Все страницы
Поиск в этой теме:
Канал X-Tension/X-BTF: «Раскопки обжа на предмет юзабельных вещей»
yakim81
 305 EGP


Рейтинг канала: 6(373)
Репутация: 16
Сообщения: 217

Зарегистрирован: 07.02.2015
Я тут глянул, он не был на форуме уже почти год. Может у кого есть его контакты, попросить подправить редактор в виду новых возможностей?
    Добавлено: 22:04 22-06-2016   
yakim81
 305 EGP


Рейтинг канала: 6(373)
Репутация: 16
Сообщения: 217

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


Вожак стаи
Рейтинг канала: 3(45)
Репутация: 69
Сообщения: 3037
Откуда: [OEG]
Зарегистрирован: 13.05.2003
Блин. Собрал новую систему - новый проц, мамка. Вот это все это. Запустил Х-Т и.. все тож самое как и было. Во время заставки, которая должна плавно переходить в меню - реакции на клавиши или ESC нулевая. У самой менюшки клавиши ввех или вниз тоже не работают Совсем запутался... Расстроен
_________________
The truth is out there ...
Каждая мина в душе риппер, каждая торпа в душе васп (с) Флекс
    Добавлено: 22:04 23-06-2016   
yakim81
 305 EGP


Рейтинг канала: 6(373)
Репутация: 16
Сообщения: 217

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

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


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

Последний раз редактировалось: AterBatraal (00:17 24-06-2016), всего редактировалось 3 раз(а)
    Добавлено: 00:10 24-06-2016   
yakim81
 305 EGP


Рейтинг канала: 6(373)
Репутация: 16
Сообщения: 217

Зарегистрирован: 07.02.2015
KWON :
На счет числа 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 использует некий вид шифрации/сжатия байт-кода (я тут не силён). Если посмотреть этот же код с расшифровкой байт-кода, то можно увидеть, что операция
Код:
00094966: 001D                   |    0            push       20d ; 14h

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

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

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

Последний раз редактировалось: yakim81 (16:34 24-06-2016), всего редактировалось 2 раз(а)
    Добавлено: 16:32 24-06-2016   
KWON
 328 EGP


Рейтинг канала: 7(586)
Репутация: -10
Сообщения: 136
Откуда: Україна. Чигирин.
Зарегистрирован: 24.11.2014
yakim81 :
Если посмотреть этот же код с расшифровкой байт-кода, то можно увидеть, что операция
Код:
00094966: 001D                   |    0            push       20d ; 14h

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

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

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

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

Последний раз редактировалось: KWON (09:40 25-06-2016), всего редактировалось 1 раз
    Добавлено: 18:29 24-06-2016   
yakim81
 305 EGP


Рейтинг канала: 6(373)
Репутация: 16
Сообщения: 217

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

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

и
Код:

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

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

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

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
    Добавлено: 10:25 26-06-2016   
AKELLO
 641 EGP


Вожак стаи
Рейтинг канала: 3(45)
Репутация: 69
Сообщения: 3037
Откуда: [OEG]
Зарегистрирован: 13.05.2003
yakim81 :
Используйте версию запускного файла 2.2 и будет Вам счастье

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

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


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


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


Рейтинг канала: 6(373)
Репутация: 16
Сообщения: 217

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


Ответил в профильной ветке
    Добавлено: 15:14 26-06-2016   
Shaddie
 550 EGP


Рейтинг канала: 6(387)
Репутация: 118
Сообщения: 259
Откуда: Томск
Зарегистрирован: 09.09.2004
yakim81 :
В общем печальные новости у меня.
Вчера провел эксперимент на XTNL, добавил вручную сектор на 10-ю горизонталь с северными вратам, установил южные врата на 9-й горизонтали, попробовал влететь - ожидаемо очутился на 1-й горизонтали без корабля (там же северных ворот нету).
Но я не отчаялся, и начал изучать obj на предмет кода
Код:

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

и
Код:

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

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

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

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):

Код:
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.

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

Последний раз редактировалось: Shaddie (15:50 08-07-2016), всего редактировалось 1 раз
    Добавлено: 15:47 08-07-2016   
yakim81
 305 EGP


Рейтинг канала: 6(373)
Репутация: 16
Сообщения: 217

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

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

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


Рейтинг канала: 6(373)
Репутация: 16
Сообщения: 217

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

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


Рейтинг канала: 5(238)
Репутация: 342
Сообщения: 24564

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


В х2 это TSTATION.st_Owner

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

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


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

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


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

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


Да.

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


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

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


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


Рейтинг канала: 6(373)
Репутация: 16
Сообщения: 217

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


Рейтинг канала: 6(284)
Репутация: 25
Сообщения: 349
Откуда: Город непуганных идиотов
Зарегистрирован: 07.05.2014
Ребята сделаете мне расширенную матрицу - я сделаю новые качественные сектора, сделаете 20х40 - сделаю еще 600 секторов в довесок к 800, сделаете размер больше - сделаю больше. Лучше больше, я серьезно настроен.
_________________
Там где я был - смерти никогда не было, там где я есть - ее никогда не будет...
    Добавлено: 00:04 11-07-2016   
KWON
 328 EGP


Рейтинг канала: 7(586)
Репутация: -10
Сообщения: 136
Откуда: Україна. Чигирин.
Зарегистрирован: 24.11.2014
yakim81 :
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 :
5. Можно ли всунуть торговую станцию в товары на верфь и присваивать ей признак принадлежности Игроку?

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


Рейтинг канала: 6(387)
Репутация: 118
Сообщения: 259
Откуда: Томск
Зарегистрирован: 09.09.2004
yakim81 :
Если Вы присоединитесь к данной разработке, думаю все получится.

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


Рейтинг канала: 6(373)
Репутация: 16
Сообщения: 217

Зарегистрирован: 07.02.2015
Shaddie :
yakim81 :
Если Вы присоединитесь к данной разработке, думаю все получится.

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

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

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


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


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

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

Подправил генерацию файла 00749.bod из редактора на новые размеры, обновил редактор в теме (еще раз скачать).
_________________
Быстро едешь, тихо понесут...
    Добавлено: 10:01 12-07-2016   
Канал X-Tension/X-BTF: «Раскопки обжа на предмет юзабельных вещей»
На страницу: Пред.  1, 2, 3, 4, 5  След. | Все страницы
  
Показать: 
Предыдущая тема | Следующая тема |
К списку каналов | Наверх страницы
Цитата не в тему: Только что вернулись из Новгорода ... шашлыки - опасны... (вывод Осьмы)

  » Раскопки обжа на предмет юзабельных вещей | страница 3
Каналы: Новости | 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