Oolite
Имя
Пароль
 Запомнить
  PlanetLand
Не в сети
---Elite---
Аватар пользователя

Зарегистрирован: 15.05.11
Сообщений: 1531
Сегодня подвернулась возможность протестировать посадку на феодальную планету.
Выбор порта через меню - OK, выбирается нужный порт.
Выбор опции Внешний пакет (eXternal OXP) - корабль попадает на Королевский двор, но сразу после посадки картинка из пакета Рамиреса The Feudal States не выводится, вместо нее - черный экран или картинка предыдущего порта (она остается в буфере, если скрипт не назначил новую). При переходе на экран F8, однако, предлагается миссия из феодального пакета, то есть пакет Рамиреса дальше работает нормально, дефект косметический.
Исправить ситуацию конкретно для пакета Рамиреса можно достаточно быстро (и у меня даже на такой случай хорошая картинка есть), но надо решать не частную проблему, а предусмотреть корректную обработку прочих внешних пакетов, где миссия должна запускаться при посадке на планету (их на данный момент практически нет, но предусмотреть такую возможность я обязан).
И господа пилоты, еще раз обращаю ваше внимание: хотите иметь нормальный пакет, доведенный до игрового состояния - принимайте участие. Пакет большой, я не могу протестировать все аспекты в одиночку. Если бы коммандер vasig, к примеру, не обратил мое внимание в прошлом году на то, что внутрипланетный InSystemTaxi иногда выдает задания на доставку пассажира на планету-гигант, мне не пришло бы в голову, что этот случай надо обрабатывать отдельно и создавать особый порт.

P.S. Проблему решил - мои картинки портов теперь при выборе опции eXternal OXP не выводятся. После посадки, правда, появляется не картинка Рамиреса с предложением миссии, а экран состояния корабля F5, но экран миссии запускается клавишей F8, как обычно. Ждите отредактированный пакет (гигабайт картинок скачивать по новой не надо, обошлось маленькой пилюлей на пару строк кода).


  Re: PlanetLand
Не в сети
---Elite---
Аватар пользователя

Зарегистрирован: 15.05.11
Сообщений: 1531
Я отловил еще одну ошибку, но она связана не с PlanetLand, а c System Makeup: ландшафт планеты выводится корректно только если дальняя навигация настроена на местную систему.
Скрипт System Makeup буду править уже завтра на свежую голову.

P.S. Исправлено. Выгрузил апдейт System Makeup 1.7.


  Re: PlanetLand
Не в сети
---Elite---
Аватар пользователя

Зарегистрирован: 15.05.11
Сообщений: 1531
С феодальными системами дело оказалась не так просто, как мне представлялось - пилюля в PlanetLand версии 0.9 проблему полностью не пролечила.
Дело в том, что феодальные системы высокого TL (на первой карте - выше 8 уровня) обрабатываются по особому сценарию. Скрипт в пакете The Feudal States принудительно переключает флаг this.planetFallOverride в скрипте PlanetLand и в результате независимо от того, какой порт вы выбрали в посадочном меню, корабль всегда садится в порту Королевский Двор (Royal Court). Причем я понял, что происходит, только посмотрев код в пакете The Feudal States - изнутри проблему отследить нельзя. Это означало, в частности, что один феодальный город оказался в тени - геймер его никогда не увидит. То же с ландшафтами нескольких Знаменитых планет.
Я переписал кусок кода с выбором порта, теперь Королевский Двор появляется только при выборе в посадочном меню опции 9 - eXternal OXP (или с 10% вероятностью при выборе других портов).
Второй логический дефект целиком на моей совести: при посадке на внешних планетах и лунах при выборе опции 9 - eXternal OXP геймер попадал не на научную станцию, как было мной задумано, а в поля - но с функционирующим рынком! Если не читать, что там написано в заголовке на экране, конечно, можно отнестись к этому как к непринципиальной мелочи. Но для меня это не мелочь. И опять же проблема оказалась не в самом скрипте, а в объявленных спецификациях портов в shipdata.plist.
Но в принципе как раз тот самый случай, когда на ошибках учатся - я понял, как работает еще пара кусков из кода Таргоида, которые до этого использовал как эзотерические заклинания (работает - ну и нефиг трогать).


  Re: PlanetLand
Не в сети
---Elite---
Аватар пользователя

Зарегистрирован: 15.05.11
Сообщений: 1531
Меня давно беспокоит потенциально неограниченный рынок наземных портов и орбитеров. Так как эти порты каждый раз создаются перед посадкой заново, состояние рынка на них не запоминается и в сэйв не пишется. Что в принципе позволяет геймеру челночить до одурения: сел на ферме, набрал лакоголя, взлетел, тут же сел в курортной зоне, сдал лакоголь, вернулся на ферму. И так до тех пор, пока PLC не выработает ресурс.
Можно, конечно, сослаться на то, что планетный рынок в отличие от орбитального в принципе неисчерпаем и такое положение дел логически обосновано. Но наличие такой лазейки не только облегчает жизнь ленивому геймеру, но и вносит необоснованные игровой логикой сложности в игру по правилам. К примеру, до появления пакета In-System Market Restore, который запоминает состояние дополнительных рынков системы, я таскал товары между главной станцией и косморазборкой только в пределах одной игровой сессии, а после перезагрузки из сэйва летел дальше. Теперь я с чистой совестью могу посвятить рейсам внутри системы пару вечеров, продолжив с того состояния дел, в котором рынки остались с предыдущего раза. Увы, по техническим причинам In-System Market Restore запоминать рынки временно возникающих станций не умеет.
В принципе из этой неприятной ситуации можно выкрутиться несколькими путями.
Квалифицированный программер написал бы очередной внушительный скрипт, имеющий дело как раз с такими случаями и запоминающий состояние рынков временно возникающих портов в специальном буферном массиве. Знаний для того, чтобы пойти по этому пути, у меня не хватает, интереса лезть в эти тонкости создания массивов и их сортировки тоже. Даже с виду простой случай обработки рынка орбитеров - там вроде бы всего лишь нужно слегка допилить In-System Market Restore, чтобы он сканировал рынки системы не сразу на старте, а с небольшой задержкой, когда мой скрипт уже засеял орбитеры - в моей дилетантской обработке завершился неудачей. К тому же не хотелось бы пакостить сэйв геймера записями, которые там оставит криво написанный скрипт - сэйв и так уже захламлен сверх меры.
Можно ввести принудительную систему ограничений, чтобы геймер мог посещать сытные кормушки с неисчерпаемым потоком ресурсов лишь ограниченное число раз. Ну там система лицензий с выдачей разрешения на n посадок в такие-то порты, запрет на две посадки на одно небесное тело подряд и прочее. Такая схема технически намного проще и возможно, со временем я ее использую. Что-то подобное реализовал Tch в своем Посадочном модуле: повторную посадку можно совершить только после удаления на три радиуса планеты или стыковки с главной станцией. Очевидно, это тоже полумера, так как главную проблему - неисчерпаемый источник ресурсов - она не решает. С лимитом на число визитов в систему тоже не все так просто: очевидно, что тяжелому Боа, который способен вычерпать рынок стандартной емкости за один заход, хватит и разрешения на один визит, а вот геймер, который захочет отыграть альтернативный стартовый сценарий (маленький корабль с PLC, но без гипердрайва) должен иметь возможность на приобретение корабля с гипердрайвом как-то заработать, не покидая систему. Возможно, лимит следует оформлять не на количество рейсов, а на квоту товара. Выбрал свои 250 тонн, к примеру - лети дальше.
KISS решение. Спрос на товар есть, предложения нет. Прелесть такого подхода в том, что проблема неисчерпаемых источников решена раз и навсегда без трудоемкого изощренного кодирования: их просто нет. Ферма на аграрной планете по прежнему охотно закупает механизмы, но купить на ней больше ничего нельзя. Как только все постоянные рынки вычерпаны, больше на планете делать нечего, пора лететь дальше. Минус решения - получается неуютный мир, похожий на издыхающий Советский Союз 1990 года: дефицит на все и пустые полки.
В конце концов я пока что опять остановился на решении для честных людей. Товар на планетных рынках бывает, но не каждый раз и не всегда дешевле, чем на главной станции. То есть механизмы на ферме возьмут охотно, а вот выгодно загрузить товаром трюм на обратный рейс - как получится. В конце концов, даже у фермера есть свои отработанные каналы поставки продукции и излишки товара у него могут образоваться разве что в сезон хорошего урожая. Что касается заводов - думаю, что там тем более поставки расписаны как минимум на кварталы наперед и распродажа залежалого товара по сниженным ценам бывает тоже далеко не каждый раз.
В пользу более хаотичного вторичного рынка говорит еще и такое соображение. Если на крупном централизованном рынке практически любой товар найдет покупателя, то потребности покупателя при работе с ним напрямую достаточно специфичны. Фермеру не нужны любые механизмы: он охотно возьмет установку климат-контроля для своего аквапонного купола, но вряд ли проявит интерес к технологическим лазерам для резки металла или к горным комбайнам. Если научной станции нужен нейтронный спектрометр для анализа грунта, прибор для снятия звездных спектров вряд ли будет воспринят как равноценная замена. В идеале, конечно, было бы прекрасно иметь систему экспресс-доставки определенной партии товара определенному потребителю. Но пока мы имеем что имеем, остается предполагать по умолчанию, что груз механизмов, который мы везем на ферму, имеет отношение к специфике ее производства. Однако при работе с покупателем напрямую мы не можем знать заранее, насколько товар востребован в данный момент. То ли система климат-контроля на ладан дышит как раз в период перед сбором урожая и новую установку заберут с хорошей доплатой и слезно спасибо скажут, то ли возьмут чисто по себестоимости про запас. То же с расходными продуктами. Вода, кислород, пища и алкоголь где-нибудь на дальней станции всегда ценятся с учетом стоимости их транспортировки и в убытке вы не останетесь, но вы ведь не знаете, заходил ли последний транспортник на далекую станцию неделю назад или не бывал там уже полгода.
Вот эти моменты непредсказуемости я пытался симулировать. Уходя с крупного зарегулированного Галкопом рынка, вы не платите 5% добавленной стоимости плюс издержки логистики, но берете весь риск и все расходы на себя.
По правде говоря, я пока не могу сказать, насколько удачно система настроена - игра покажет.
Возможно, есть простые решения, которые я не вижу. Буду рад любым соображениям на эту тему.


  Re: PlanetLand
Не в сети
---Elite---

Зарегистрирован: 06.10.11
Сообщений: 563
Откуда: Москва
Начиная с "нуля" ставил ОХР с супермаркетами, и сразу шел по карте, обязательно попадался супермаркет, где была офигительная разница в цене (90-95) с главной станцией на продовольствие и текстиль, ну и попутно в супермаркете были очень дешёвые компьютеры, брюлики, золото, платина и артефакты. Вот тут-то и начинал челночить и апгрейдить свой кораблик.
Но, в 1.80 эту лазейку прикрыли, супермаркеты с таким разбросом цен попадаются, однако они уже затарились, привезти к ним можно всего 2-9т, уже не погоняешь туда-обратно, 1-2 рейса всего.


  Re: PlanetLand
Не в сети
---Elite---
Аватар пользователя

Зарегистрирован: 15.05.11
Сообщений: 1531
To ALEX_M и всем остальным.

Было бы интересно знать, какие рынки в 1.82 уже подняты, а какие надо восстанавливать. Я готовлю пакет, который пригодится на первое время как заглушка, пока авторы пакетов не перепишут свои рынки под 1.82.


Новая тема  Ответить  
Показать сообщения за:  Сортировать по:  









Список форумов / Обсуждение игры и OXP

cron