ВНИМАНИЕ! Наша конференция посвящена космической тематике и компьютерным играм. Политические вопросы и происходящие в мире события в данный момент на нашем сайте не обсуждаются!
|
» Ковровое сканирование ресурсов | страница 1 |
|
|
|
Канал X4: Foundations: «Ковровое сканирование ресурсов» |
|
|
Mechick
102 EGP
  Рейтинг канала: 5(243) Репутация: 8 Сообщения: 289
Зарегистрирован: 24.07.2010
 |
|
Ковровое сканирование ресурсов
Кратко: Программка помогающая в сканировании ресурсов в секторе.
Внимание! Не для игры, модифицирует сохранение.
Автор: Я
Версия игры: любая
Описание:
Из того, что раздражает в X4 больше всего, задания на поиск ресурсов, пожалуй занимают одно из главных мест. Для меня по крайней мере.
По сути это лото или лотерея на огромной карте, где ни визуально, ни логически невозможно определить где и сколько ресурсов находится.
Цветовая подсказка, так же мало помогает, особенно в секторах полностью покрытых астероидами и/или газом.
Для таких случаев, сделал в помощь программку, которая покрывает часть карты ковром из зондов.
Как пользоваться.
Конечно не без танцев с бубнами, но всё же попроще традиционного способа поиска.
1. В игре разместите в нужном секторе исследовательский зонд и как ни будь его назовите.
В моём случае я дал ему имя "Тест-зонд". Имя можно дать какое угодно, кроме стандартного "Исследовательский зонд". Это будет центр "коврика".
Желательно не находиться в секторе сканирования. В противном случае часть зондов может сорваться и улететь куда-то на запад.
Возможно, что-то прописано у них в xml, а возможно просто реакция на появление внутри астероидов.
2. Сохраните игру.
3. Запустите программку.
4. В поле Имя зонда впишите то имя, которое вы дали зонду в игре.
5. Задайте размеры коврика. Имейте в виду 10 - это 10 в одну и 10 в другую сторону от вашего зонда, т.е. по сути 20 + 1 центральный = 21 зонд по оси. В поле шаг можно проставить расстояние между зондами, стандарт 32км.
6. Нажать "Загрузить XML", выбрать xml или xml.gz.
7. Если всё прошло хорошо, то программа автоматически предложит вам сохранить файл. И по завершении сохранения закроется.
8. Загрузите модифицированное сохранение. В игре вы увидите коврик из зондов. Найдите то что вам нужно, можете сделать для себя скриншот.
9. Вот в общем-то и всё, далее можете загружать игру с обычного сейва и сбрасывать зонд в нужное вам место сверившись со скриншотом.
Наверное важно.
Временные файлы программа создаёт в папке в которой находится.
Если вы переживаете за свой SSD, то вероятно будет лучше хранить её где ни будь на HDD.
Я бы посоветовал отдельную папку, на случай сбоев или ошибок программы.
Временных файлов всего 2, весом по ~1Гб.
mat.rar |
Описание: |
|
Имя файла: |
mat.rar |
Размер файла: |
8.22 KB |
Скачано: |
336 раз(а) |
Последний раз редактировалось: Mechick (07:54 13-06-2021), всего редактировалось 11 раз(а) |
|
|
anDron
571 EGP
      Рейтинг канала: 13(2098) Репутация: 54 Сообщения: 5943 Откуда: Новосибирск Зарегистрирован: 27.11.2013
 |
|
Надо добавить нормальное описание-шапку по программе. По принципу оформления модов. А то, без поллитры, и не сообразишь, сходу, о чем речь.
|
|
|
Mechick
102 EGP
  Рейтинг канала: 5(243) Репутация: 8 Сообщения: 289
Зарегистрирован: 24.07.2010
 |
|
Надеюсь так получше?
|
|
|
Progger
50 EGP Рейтинг канала: 2(20) Репутация: 0 Сообщения: 7
Зарегистрирован: 18.05.2021
 |
|
В игре ресурсы представлены в виде кубов 32x32x32 км, поэтому нет смысла так часто ставить зонды - достаточно по одному в центр каждого куба.
|
|
|
Mechick
102 EGP
  Рейтинг канала: 5(243) Репутация: 8 Сообщения: 289
Зарегистрирован: 24.07.2010
 |
|
Progger : |
В игре ресурсы представлены в виде кубов 32x32x32 км, поэтому нет смысла так часто ставить зонды - достаточно по одному в центр каждого куба.
|
Не знал. Можно сделать изменяемый шаг.
добавлено спустя 27 минут:
Обновил, добавил возможность смены шага.
Последний раз редактировалось: Mechick (08:57 05-06-2021), всего редактировалось 1 раз |
|
|
ayes
92 EGP
 Рейтинг канала: 5(112) Репутация: -37 Сообщения: 1016 Откуда: Чебоксары Зарегистрирован: 22.02.2008
 |
|
И теперь главный вопрос: А как потом удалить зонды?
|
|
|
Mechick
102 EGP
  Рейтинг канала: 5(243) Репутация: 8 Сообщения: 289
Зарегистрирован: 24.07.2010
 |
|
ayes : |
И теперь главный вопрос: А как потом удалить зонды?
|
Ты же не собираешься продолжать игру с модифицированным сейвом? См. п. 12
Сделал скриншот, и уже в нормальной игре сбросил зонд там где тебе нужно.
|
|
|
anDron
571 EGP
      Рейтинг канала: 13(2098) Репутация: 54 Сообщения: 5943 Откуда: Новосибирск Зарегистрирован: 27.11.2013
 |
|
Mechick : |
Надеюсь так получше?
|
Получше.
Следущее в первом посте есть, но:
вообще-то есть еще пожелание, как-то более заметно выделить предупреждение (возможно дополнительно добавить в шапку), что программа безвозвратно модифицирует сейв и соответственно требует предварительного его "перепрятывания". (bold-ом ли, цветом или курсивом).
ЗЫ. Если что, я не как модератор пишу, а как обычный участник канала. Т.е. написанное - не требование администрации, а просто пожелания...
добавлено спустя 22 минуты:
ЗЫ2. Общие пожелания на развитие:
- автоматически разархивировать сейв (если он "пожат")
- заполнять зондами все сектора (т.е. делать сейв-общую_карту распределения ресов); без всякого "опорного зонда".
- сохранять сейв с измененным именем (тогда его можно хранить в общей папке с сейвами, но потребуются уже ручные манипуляции для загрузки); либо автоматически бэкапить старый сейв.
Последний раз редактировалось: anDron (12:54 05-06-2021), всего редактировалось 2 раз(а) |
|
|
Mechick
102 EGP
  Рейтинг канала: 5(243) Репутация: 8 Сообщения: 289
Зарегистрирован: 24.07.2010
 |
|
anDron : |
- автоматически разархивировать сейв (если он "пожат")
|
Если его возьмёт стандартный zip архиватор, то можно попробовать.
anDron : |
- заполнять зондами все сектора (т.е. делать сейв-общую_карту распределения ресов); без всякого "опорного зонда".
|
Это вряд ли. Чёрт ногу сломит в их XML, да и не лучшее это дело ковырять сейвы.
В идеале хорошо бы сделать скрипт или мод как в X3, но с этим движком я пока не знаком.
anDron : |
- сохранять сейв с измененным именем (тогда его можно хранить в общей папке с сейвами, но потребуются уже ручные манипуляции для загрузки); либо автоматически бэкапить старый сейв.
|
Тоже думал как лучше, сделаю что ни будь.
|
|
|
anDron
571 EGP
      Рейтинг канала: 13(2098) Репутация: 54 Сообщения: 5943 Откуда: Новосибирск Зарегистрирован: 27.11.2013
 |
|
7-zip, винрар? ну и gunzip - gz-тку берут.
Mechick : |
Тоже думал как лучше, сделаю что ни будь.
|
Можно делать папку в папке сейвов. А там парочку папочек Модифиед и Бэкап. И туда соответствующие копии скинуть.
|
|
|
alexusvm
660 EGP
        Рейтинг канала: 14(2359) Репутация: 31 Сообщения: 1592 Откуда: Москва Зарегистрирован: 30.08.2012
 |
|
Mechick : |
Если его возьмёт стандартный zip архиватор, то можно попробовать.
|
Если написано на .NET, есть штатный метод фреймворка, прекрасно это делающий без сторонних бубнов.
добавлено спустя 38 минут:
Progger : |
ресурсы представлены в виде кубов 32x32x32 км
|
Даже беглый взгляд на region_definitions покажет что это не так
Последний раз редактировалось: alexusvm (00:23 06-06-2021), всего редактировалось 1 раз |
|
|
Mechick
102 EGP
  Рейтинг канала: 5(243) Репутация: 8 Сообщения: 289
Зарегистрирован: 24.07.2010
 |
|
alexusvm : |
Mechick : |
Если его возьмёт стандартный zip архиватор, то можно попробовать.
|
Если написано на .NET, есть штатный метод фреймворка, прекрасно это делающий без сторонних бубнов.
|
Я его и имел в виду под стандартным архиватором. В данном случае всё сработало. Обновил 1-й пост.
|
|
|
Progger
50 EGP Рейтинг канала: 2(20) Репутация: 0 Сообщения: 7
Зарегистрирован: 18.05.2021
 |
|
alexusvm : |
Даже беглый взгляд на region_definitions покажет что это не так
|
А неторопливый взгляд в сейв покажет, что ресурсы хранятся так:
Cкрытый текст (кликните здесь для просмотра)
Код: |
<component class="sector" macro="cluster_18_sector001_macro" connection="cluster" code="QIF-571" owner="paranid" knownto="player" known="1" id="[0xbeff]">
<resourceareas>
...
<area x="192000" y="32000" z="-32000">
<wares>
<ware ware="nividium">
<recharge max="20" current="18" time="604800"/>
</ware>
<ware ware="ore">
<recharge max="15952" current="489" time="144000"/>
</ware>
<ware ware="silicon">
<recharge max="15972" time="144000"/>
</ware>
</wares>
<yields>
<ware ware="nividium">
<yield name="medium"/>
</ware>
<ware ware="ore">
<yield name="medium"/>
</ware>
<ware ware="silicon">
<yield name="medium"/>
</ware>
</yields>
</area>
...
</resourceareas>
</component> |
|
region_definitions используется для генерации этих кубов при создании вселенной. Собственно я это выяснил, изменяя region_definitions и удивляясь, почему в игре нет никаких изменений
|
|
|
Mechick
102 EGP
  Рейтинг канала: 5(243) Репутация: 8 Сообщения: 289
Зарегистрирован: 24.07.2010
 |
|
Progger : |
alexusvm : |
Даже беглый взгляд на region_definitions покажет что это не так
|
А неторопливый взгляд в сейв покажет, что ресурсы хранятся так:
Cкрытый текст (кликните здесь для просмотра)
Код: |
<component class="sector" macro="cluster_18_sector001_macro" connection="cluster" code="QIF-571" owner="paranid" knownto="player" known="1" id="[0xbeff]">
<resourceareas>
...
<area x="192000" y="32000" z="-32000">
<wares>
<ware ware="nividium">
<recharge max="20" current="18" time="604800"/>
</ware>
<ware ware="ore">
<recharge max="15952" current="489" time="144000"/>
</ware>
<ware ware="silicon">
<recharge max="15972" time="144000"/>
</ware>
</wares>
<yields>
<ware ware="nividium">
<yield name="medium"/>
</ware>
<ware ware="ore">
<yield name="medium"/>
</ware>
<ware ware="silicon">
<yield name="medium"/>
</ware>
</yields>
</area>
...
</resourceareas>
</component> |
|
region_definitions используется для генерации этих кубов при создании вселенной. Собственно я это выяснил, изменяя region_definitions и удивляясь, почему в игре нет никаких изменений
|
Странно, что никто ещё не сделал карту ресурсов. Или я просто не знаю?
Возможно получится упростить программку вываливая зонды в координатах с наивысшим содержанием ресурсов.
|
|
|
Progger
50 EGP Рейтинг канала: 2(20) Репутация: 0 Сообщения: 7
Зарегистрирован: 18.05.2021
 |
|
Mechick : |
Странно, что никто ещё не сделал карту ресурсов. Или я просто не знаю?
|
Скорее всего ей было бы очень трудно воспользоваться. Т.к. отсутствует возможность послать корабль по заданным координатам, то очень сложно прилететь у богатому месторождению, находящемуся значительно выше или ниже эклиптики, чтобы развернуть там зонд.
|
|
|
gotis
50 EGP Рейтинг канала: 4(64) Репутация: 0 Сообщения: 19
Зарегистрирован: 31.12.2018
 |
|
Я, наверное, чего-то напрочь не понимаю в этой жизни.
Cкрытый текст (кликните здесь для просмотра)
Я могу понять людей, которые не играют с модами "принципиально" (Но не "принять" - для меня игра есть средство получения удовольствия и "разминка мозга". Если нечто меня напрягает сверх меры буквально или раздражает - я спокойно использую мод.) Я могу понять тех, кому "до зарезу" нужны "венчуры", и он борется "за чистоту сейва" (Хотя как пор мне - профит от этого сомнительного занятия просто смешон. А ресурсов для модификаций любой курьер, правильно настроенный на "сбор грузов" в секторе "с активностью", даст во много раз больше.) В общем, я многое могу понять...
Но если вы по определению намерены "обманывать игру" и "облегчать игровую механику сторонними программами" - какая религия мешает вам, например, поставить мод Sector Satellites с его ресурсными спутниками? Чтобы точно так же увидеть все ресурсы в секторе. Там можно настроить вид ресурсов, "порог обнаружения", количество дополнительных зондов для "обозначения" и проч., и проч. Не хотите метку на сейв - сделайте так же: найдите, заскриньте, удалите мод, загрузите... Хотите "своё" непременно - посмотрите скрипты мода, разберите, сделайте своё "так же, но лучше" для себя...
Ну вот честно, не в обиду. Лично я только радуюсь, когда люди "активничают", что-то пишут, делают... Просто тупо не понимаю, правда: зачем изобретать велосипед на гусеницах - когда давно есть на колёсах?
И да, простите за резкость, если кому так показалось - всем желаю только благ. И активных пилотов (и людей) - реально уважаю. Если anDron'у покажется, что "не по теме" я тут написал или "чересчур" - пусть аннигилирует. Но написал - как думал.
|
Последний раз редактировалось: gotis (17:11 06-06-2021), всего редактировалось 2 раз(а) |
|
|
Mechick
102 EGP
  Рейтинг канала: 5(243) Репутация: 8 Сообщения: 289
Зарегистрирован: 24.07.2010
 |
|
gotis : |
Я, наверное, чего-то напрочь не понимаю в этой жизни.
Cкрытый текст (кликните здесь для просмотра)
Я могу понять людей, которые не играют с модами "принципиально" (Но не "принять" - для меня игра есть средство получения удовольствия и "разминка мозга". Если нечто меня напрягает сверх меры буквально или раздражает - я спокойно использую мод.) Я могу понять тех, кому "до зарезу" нужны "венчуры", и он борется "за чистоту сейва" (Хотя как пор мне - профит от этого сомнительного занятия просто смешон. А ресурсов для модификаций любой курьер, правильно настроенный на "сбор грузов" в секторе "с активностью", даст во много раз больше.) В общем, я многое могу понять...
Но если вы по определению намерены "обманывать игру" и "облегчать игровую механику сторонними программами" - какая религия мешает вам, например, поставить мод Sector Satellites с его ресурсными спутниками? Чтобы точно так же увидеть все ресурсы в секторе. Там можно настроить вид ресурсов, "порог обнаружения", количество дополнительных зондов для "обозначения" и проч., и проч. Не хотите метку на сейв - сделайте так же: найдите, заскриньте, удалите мод, загрузите... Хотите "своё" непременно - посмотрите скрипты мода, разберите, сделайте своё "так же, но лучше" для себя...
Ну вот честно, не в обиду. Лично я только радуюсь, когда люди "активничают", что-то пишут, делают... Просто тупо не понимаю, правда: зачем изобретать велосипед на гусеницах - когда давно есть на колёсах?
И да, простите за резкость, если кому так показалось - всем желаю только благ. И активных пилотов (и людей) - реально уважаю. Если anDron'у покажется, что "не по теме" я тут написал или "чересчур" - пусть аннигилирует. Но написал - как думал.
|
|
Каждому своё и по ситуации. Насчёт мода, да посмотрел, слишком долго. В моём случае мне нужен быстрый результат. Мне не ресурсы сектора нужны, а поскорее выполнить "очень лёгкое" задание, завязанное, повторюсь, на принципе лото или лотереи. Что было под рукой (C#), то и использую. Знал бы скриптовый движок на X4, использовал бы его.
Progger : |
Скорее всего ей было бы очень трудно воспользоваться. Т.к. отсутствует возможность послать корабль по заданным координатам, то очень сложно прилететь у богатому месторождению, находящемуся значительно выше или ниже эклиптики, чтобы развернуть там зонд.
|
Со времён X3 egosoft прошла долгий путь и сделала наконец космос плоским, так что никаких полётов выше/ниже эклиптики. Все основные жирные ресурсы похоже собраны на уровне 0 и в обозримой части сектора, иначе их было бы тупо не найти с навигацией, позволяющей летать только по плоскости. По идее на той же карте из Builder-а, можно к примеру расставить указатели богатых месторождений. Впрочем причину похоже нашёл.
Мне удалось сделать консольное приложение, которое раскидывает зонды по самым жирным точкам ресурсов. Только вот... Оказалось что координаты кубов не бьются с реальностью. Либо они закодированы, либо имеют свою особую точку отбивки, либо вообще все объекты отбиваются друг от дружки. Приконнекчивание зондов в разных местах сохранения выдаёт абсолютно разные координаты в игре.
Последний раз редактировалось: Mechick (03:46 07-06-2021), всего редактировалось 3 раз(а) |
|
|
Progger
50 EGP Рейтинг канала: 2(20) Репутация: 0 Сообщения: 7
Зарегистрирован: 18.05.2021
 |
|
Mechick : |
Со времён X3 egosoft прошла долгий путь и сделала наконец космос плоским, так что никаких полётов выше/ниже эклиптики. Все основные жирные ресурсы похоже собраны на уровне 0 и в обозримой части сектора, иначе их было бы тупо не найти с навигацией, позволяющей летать только по плоскости.
|
На самом деле можно указать позицию не только на эклиптике, но это не очевидно и очень неудобно: нужно указать позицию, наклонить карту и появляется возможность поднять / опустить эту позицию.
Mechick : |
Оказалось что координаты кубов не бьются с реальностью. Либо они закодированы, либо имеют свою особую точку отбивки, либо вообще все объекты отбиваются друг от дружки.
|
У них там как-то всё сложно организовано - сектора состоят из зон, которые цепляются к сектору с разными смещениями. Судя по всему координаты зондов задаются относительно зоны, в которой они расположены. Как узнать смещение зоны я так и не понял.
|
|
|
Mechick
102 EGP
  Рейтинг канала: 5(243) Репутация: 8 Сообщения: 289
Зарегистрирован: 24.07.2010
 |
|
Progger : |
На самом деле можно указать позицию не только на эклиптике, но это не очевидно и очень неудобно: нужно указать позицию, наклонить карту и появляется возможность поднять / опустить эту позицию.
|
Я к тому, что сколько ни летал по удалённым залежам астероидам (в Большой бирже например - натуральные американские горки и выше и ниже эклиптики) там всегда только мусор, как правило всё самое жирное лежит в зоне доступности. Видимо, чтобы игрок имел возможность добраться до них летая в одной плоскости.
|
|
|
Shadowman
265 EGP
   Рейтинг канала: 5(205) Репутация: 42 Сообщения: 1395 Откуда: Альфа Центавра Зарегистрирован: 03.12.2003
 |
|
Вылетает с ошибкой при открытии сейва.
Cкрытый текст (кликните здесь для просмотра)
Код: |
<Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
<System>
<Provider Name=".NET Runtime" />
<EventID Qualifiers="0">1026</EventID>
<Level>2</Level>
<Task>0</Task>
<Keywords>0x80000000000000</Keywords>
<TimeCreated SystemTime="2021-06-07T13:27:44.000000000Z" />
<EventRecordID>1763948</EventRecordID>
<Channel>Application</Channel>
<Computer>Komp113</Computer>
<Security />
</System>
<EventData>
<Data>Приложение: Ковровое сканирование.exe Версия платформы: v4.0.30319 Описание. Процесс был завершен из-за необработанного исключения. Сведения об исключении: System.IO.IOException в System.IO.__Error.WinIOError(Int32, System.String) в System.IO.FileStream.Init(System.String, System.IO.FileMode, System.IO.FileAccess, Int32, Boolean, System.IO.FileShare, Int32, System.IO.FileOptions, SECURITY_ATTRIBUTES, System.String, Boolean, Boolean, Boolean) в System.IO.FileStream..ctor(System.String, System.IO.FileMode, System.IO.FileAccess, System.IO.FileShare, Int32, System.IO.FileOptions, System.String, Boolean) в System.IO.FileStream..ctor(System.String, System.IO.FileMode) в Satellites.MainWindow.<OpenXML>g__Zip|16_3(System.String, System.String) в Satellites.MainWindow+<>c__DisplayClass16_0.<OpenXML>g__StartProcess|0(System.String) в Satellites.MainWindow+<>c__DisplayClass16_1.<OpenXML>b__4() в System.Threading.Tasks.Task`1[[System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]].InnerInvoke() в System.Threading.Tasks.Task.Execute() в System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() в System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(System.Threading.Tasks.Task) в Satellites.MainWindow+<OpenXML>d__16.MoveNext() в System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() в System.Windows.Threading.ExceptionWrapper.InternalRealCall(System.Delegate, System.Object, Int32) в System.Windows.Threading.ExceptionWrapper.TryCatchWhen(System.Object, System.Delegate, System.Object, Int32, System.Delegate) в System.Windows.Threading.DispatcherOperation.InvokeImpl() в MS.Internal.CulturePreservingExecutionContext.CallbackWrapper(System.Object) в System.Threading.ExecutionContext.RunInternal(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean) в System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean) в System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object) в MS.Internal.CulturePreservingExecutionContext.Run(MS.Internal.CulturePreservingExecutionContext, System.Threading.ContextCallback, System.Object) в System.Windows.Threading.DispatcherOperation.Invoke() в System.Windows.Threading.Dispatcher.ProcessQueue() в System.Windows.Threading.Dispatcher.WndProcHook(IntPtr, Int32, IntPtr, IntPtr, Boolean ByRef) в MS.Win32.HwndWrapper.WndProc(IntPtr, Int32, IntPtr, IntPtr, Boolean ByRef) в MS.Win32.HwndSubclass.DispatcherCallbackOperation(System.Object) в System.Windows.Threading.ExceptionWrapper.InternalRealCall(System.Delegate, System.Object, Int32) в System.Windows.Threading.ExceptionWrapper.TryCatchWhen(System.Object, System.Delegate, System.Object, Int32, System.Delegate) в System.Windows.Threading.Dispatcher.LegacyInvokeImpl(System.Windows.Threading.DispatcherPriority, System.TimeSpan, System.Delegate, System.Object, Int32) в MS.Win32.HwndSubclass.SubclassWndProc(IntPtr, Int32, IntPtr, IntPtr) в MS.Win32.UnsafeNativeMethods.DispatchMessage(System.Windows.Interop.MSG ByRef) в System.Windows.Threading.Dispatcher.PushFrameImpl(System.Windows.Threading.DispatcherFrame) в System.Windows.Application.RunDispatcher(System.Object) в System.Windows.Application.RunInternal(System.Windows.Window) в Satellites.App.Main()</Data>
</EventData>
</Event> |
|
Win7 x64 SP1
Последний раз редактировалось: Shadowman (16:30 07-06-2021), всего редактировалось 1 раз |
|
|
|
|
|
Канал X4: Foundations: «Ковровое сканирование ресурсов» |
|
К списку каналов | Наверх страницы |
Цитата не в тему: Я не призрак коммунизма, я призрак админизма. Щас буду бродить по аппаратной и греметь серверами. (Alone)
|
» Ковровое сканирование ресурсов | страница 1 |
|