Oolite
Имя
Пароль
 Запомнить
  Re: Stranger's World: замечания и предложения
Не в сети
Dangerous
Аватар пользователя

Зарегистрирован: 25.01.16
Сообщений: 110
stranger, согласно документации как раз можно ) Хотя точно помню, что где-то видел запрет на изменение текстуры после отработки популятора.
Если можно в shipWillLaunchFromStation, то и до этого можно. А значит startUpComplete вполне допустим.
Но вот с переходом в другую галактику придется думать - там кроме playerEnteredNewGalaxy ничего нет. Или придется завязываться на shipWillExitWitchspace.


  Re: Stranger's World: замечания и предложения
Не в сети
Dangerous
Аватар пользователя

Зарегистрирован: 25.01.16
Сообщений: 110
Ответ на релиз System Makeup 2.1, чтобы не засорять оригинальную ветку.
stranger:
Вот такая получилась химера. Издержки дилетантского подхода "я тебя слепила из того что было". Работает как ты хотел? Ну и нефиг трогать!
На самом деле это скорее профессиональный подход, обычно выражается в "Работает? Не трогай!". Как раз желание все переписать и является дилетантским подходом. Но каждое решение в первую очередь должно быть осознанным и взвешенным. В данном случае я тоже изначально ограничился минимальной правкой - вернул и переделал выбор текстуры при показе экрана F7. Но вылезло 2 проблемы:
1. Экран F7 позволяет показывать все планеты по плану полета. А менялась текстура только для целевой системы.
2. Из-за кривой оригинальной очистки изменения текстуры получился эффект, что после перелета экран F7 возвращал оригинальную текстуру текущей планете.

Если решить 2ю проблему можно было комментированием одной строки кода, то для решения 1й проблемы этого было мало. Нет, можно было добавить цикл, обойти весь путь полета... Но как и сказал stranger, оригинальный код надо "накрыть дерюжкой и спрятать где-нибудь". Поэтому проще оказалось переписать все. Тот же цикл, но не по пути полета, а по всей галактике. И осталось 25 строк кода вместо оригинальных 150. При этом весь функционал - это одна функция на 10 строк кода.

stranger:
Логика выбора текстур в скрипте system_makeup_library.js осталась прежней, но поскольку прежний метод выбора текстуры из набора через system.scrambledPseudoRandomNumber() для удаленных систем не работает, SMax предложил альтернативный генератор псевдослучайных чисел, который использует как семя параметр random_seed (набор из 6 чисел в диапазоне 0...255, уникальный для каждой системы).
Оригинальный scrambledPseudoRandomNumber тоже работает на базе random_seed, только считает иначе. Повторить оригинальный счет можно, но неоправданно сложный код получится. Сделал свой, относительно простой, вариант.

stranger:
SMax присвоил начисто переписанному скрипту system_makeup.js номер 3.0.0. Я понял деликатный намек, но по историческим причинам предпочитаю придерживаться сквозной нумерации версий пакета.
Деликатный намек был на изменение API, несовместимое с предыдущими версиями. При подобных изменениях необходимо менять мажорную версию. Подробнее: http://semver.org/lang/ru/. К слову, в файле system_makeup.js версия обозначена как "3.0.0".

stranger:
System Makeup может запуститься после Famous Planets ST и перекрыть его настройки. Я решил эту проблему таким образом: назначение текстур Famous Planets ST вызывается по событию this.startUpComplete, то есть после того, как отработала аналогичная процедура в пакете System Makeup по событию this.startUp.
Тем не менее потенциальная уязвимость в синхронизации пакетов осталась. При переходе на новую карту оба обработчика будут вызваны по событию this.playerEnteredNewGalaxy(galaxyNumber) и какой из них будет запущен первым, без тестов сказать трудно (я сдержанно опасаюсь, что это может зависеть от индивидуальной организации пакетов в папке AddOns геймера). В этом случае System Makeup может навязать свои текстуры вместо текстур Famous Planets ST. Проблема временная - она может возникнуть только при переходе с 1 карты на 2 и с 8 на 1 и решится после первой же загрузки из сохраненной позиции.
Перфекционист во мне немного напрягся. Если код работает, то он должен работать в 100% случаев. У меня есть идея, как исправить возможную проблему. Протестирую и выложу скрипт.

stranger:
Так как на эту функцию сейчас передается входная информация о системе, я внес изменение в скрипт PlanetLand. Возможно, это и не обязательно, так как SMax предусмотрел ситуацию, когда информация о системе не будет передана в явном виде.
Да, там есть возможность вызов без параметров. Совместимость с оригинальным кодом всегда должна оставаться максимальной.

P.S. stranger, не планировал ли выложить дополнения во встроенный диспетчер дополнений? Да и на оригинальный форум / wiki тоже можно.
Единственная проблема, которую я вижу - негде хостить файлы. Есть Wiki, но там ограничения на размер файла (150 МБ). Местами надо будет пересобрать пакеты с текстурами на более мелкие части.
Кроме того, в ночных сборках сейчас полностью HTTPS поддерживается, что дает множество мест для хостинга. Начиная от DropBox и заканчивая BitBucket / GitHub.
Правда, придется привести пакеты в порядок - сейчас при старте множество замечаний выдается.


  Re: Stranger's World: замечания и предложения
Не в сети
---Elite---
Аватар пользователя

Зарегистрирован: 15.05.11
Сообщений: 1531
Max:
P.S. stranger, не планировал ли выложить дополнения во встроенный диспетчер дополнений? Да и на оригинальный форум / wiki тоже можно.
Единственная проблема, которую я вижу - негде хостить файлы.

Есть еще две проблемы.
1. На данном этапе мои пакеты оформления Оониверсума довольно сложно зацеплены, это уже экосистема. Нет смысла выгружать отдельно PlanetLand, так как для него нужен System Makeup, для которого нужен Sun Gear. Я знаю, это неправильно - плагины должны быть по возможности автономны. Но делал в первую очередь для себя.
2. Есть вопросы по авторским правам на графический контент. Даже те же текстуры пустынных планет Duael Design, которые у меня в System Makeup - они были одно время в ресурсных паках для Additional Planets SR, но сейчас там остались только страшные процедурно сгенерированные текстуры.
В принципе решение обеих проблем одно - сделать экспортные версии пакетов (версии Lite) с минимальным графическим наполнением (до тех самых 150 MB, возможно). Но это же делать надо.
И да, надо преодолеть психологический барьер и не стесняясь себя презентовать, искать хостинги и так далее. Лениво, стремно, но и правда надо.


  Re: Stranger's World: замечания и предложения
Не в сети
Dangerous
Аватар пользователя

Зарегистрирован: 25.01.16
Сообщений: 110
Max:
stranger:
System Makeup может запуститься после Famous Planets ST и перекрыть его настройки. Я решил эту проблему таким образом: назначение текстур Famous Planets ST вызывается по событию this.startUpComplete, то есть после того, как отработала аналогичная процедура в пакете System Makeup по событию this.startUp.
Тем не менее потенциальная уязвимость в синхронизации пакетов осталась. При переходе на новую карту оба обработчика будут вызваны по событию this.playerEnteredNewGalaxy(galaxyNumber) и какой из них будет запущен первым, без тестов сказать трудно (я сдержанно опасаюсь, что это может зависеть от индивидуальной организации пакетов в папке AddOns геймера). В этом случае System Makeup может навязать свои текстуры вместо текстур Famous Planets ST. Проблема временная - она может возникнуть только при переходе с 1 карты на 2 и с 8 на 1 и решится после первой же загрузки из сохраненной позиции.
Перфекционист во мне немного напрягся. Если код работает, то он должен работать в 100% случаев. У меня есть идея, как исправить возможную проблему. Протестирую и выложу скрипт.
Попробовал подправить скрипт и обнаружил, что в Oolite 1.85 нарушен порядок событий - playerEnteredNewGalaxy происходит после shipWillExitWitchspace, хотя должно быть все наоборот. Написал багрепорт (Issue #208). Если интересно, то "исправленный" скрипт.
Но из-за озвученной баги System Makeup гарантированно имеет приоритет. Впрочем, без исправлений все нормально работает (если System Makeup и Famous Planets ST в одной папке).

P.S. вообще, я правлю скрипт не из-за возможности приоритета Famous Planets ST над System Makeup, а потому, что никто не знает, почему приоритет именно у System Makeup (UPD: вернее приоритет у Famous Planets ST). А раз четкого объяснения нет, то и ситуация может в любой момент измениться.


Последний раз редактировалось Max 16.10.16, всего редактировалось 2 раз(а).

  Re: Stranger's World: замечания и предложения
Не в сети
---Elite---
Аватар пользователя

Зарегистрирован: 15.05.11
Сообщений: 1531
Макс, я правильно понял? Приоритет System Makeup над Famous Planets ST означает, что система получает текстуру System Makeup?
Должно быть как раз наоборот!
Или речь идет о порядке срабатывания - сперва отрабатывает System Makeup, а потом Famous Planets ST переписывает текстуры по своим правилам? Тогда все в порядке.


  Re: Stranger's World: замечания и предложения
Не в сети
Dangerous
Аватар пользователя

Зарегистрирован: 25.01.16
Сообщений: 110
Я немного оговорился... Сейчас приоритет именно у Famous Planets ST. Т.е. "последнее слово" за Famous Planets ST. С моим кодом это нарушается - т.к. документация не соответсвует действительности. Т.е. мой скрипт гарантированно даст приоритет не Famous Planets ST, а System Makeup что будет неправильным. Так что использование этого скрипта не рекомендуется.
В принципе, если в моем скрипте вынести код обновления из shipWillExitWitchspace в shipExitedWitchspace, то приоритет будет правильным - за Famous Planets ST всегда будет "последнее слово". Но согласно документации в shipExitedWitchspace текстуру планеты менять нельзя.


  Re: Stranger's World: замечания и предложения
Не в сети
Dangerous
Аватар пользователя

Зарегистрирован: 25.01.16
Сообщений: 110
Если гора не идет к Магомету, то Магомет пойдет к горе
Сначала хотел переделать скрипт System Makeup, чтобы он раньше отрабатывал (в shipWillEnterWitchspace передается тип прыжка и целевая система / галактика). Раз "не хочет" Famous Planets ST гарантированно "позже" отработать.
Но потом подумал... А что мешает сразу, в startUp/startUpComplete проставить текстуры планет во всех галактиках?

Единственная возможная сложность - сильная задержка при старте. Засек время для System Makeup (Famous Planets ST практически мгновенно отрабатывает). Простановка текущей галактике - 26мс. Простановка всем 8 галактикам - 200мс (на моем Intel i5. Но и для остальных ЦП время не столь критично будет).

Однократный запуск скрипта на 1/5 секунды при старте игры - вполне достойная цена за то, что все текстуры всегда правильные.

Итого, скрипт для System Makeup: https://jbt.github.io/markdown-editor/# ... 2CIEmS4A8=
Аналогичная переделка Famous Planets ST еще и упростит скрипт (хотя в 0.9 он уже и так достаточно простой).


  Re: Stranger's World: замечания и предложения
Не могли бы вы привести лицензии, используемые в ваших oxp. Я скачал все 2 с лишним гигабайта в вашей личной рубрике, но не могу найти, где указано авторство и лицензии на картинки.


  Re: Stranger's World: замечания и предложения
Не в сети
---Elite---
Аватар пользователя

Зарегистрирован: 15.05.11
Сообщений: 1531
анон:
Не могли бы вы привести лицензии, используемые в ваших oxp. Я скачал все 2 с лишним гигабайта в вашей личной рубрике, но не могу найти, где указано авторство и лицензии на картинки.

Вот это как раз больной вопрос. Картинки я нагуглил в свое время без спросу и сейчас даже авторов по большей части не знаю, в любой момент могут накатить предъяву и их придется с гуглодиска убирать.
Ну что поделаешь, я три категории граждан не люблю - вертухаев, ПВОшников и копирастов.


  Re: Stranger's World: замечания и предложения
stranger:
анон:
Не могли бы вы привести лицензии, используемые в ваших oxp. Я скачал все 2 с лишним гигабайта в вашей личной рубрике, но не могу найти, где указано авторство и лицензии на картинки.

Вот это как раз больной вопрос. Картинки я нагуглил в свое время без спросу и сейчас даже авторов по большей части не знаю, в любой момент могут накатить предъяву и их придется с гуглодиска убирать.
Ну что поделаешь, я три категории граждан не люблю - вертухаев, ПВОшников и копирастов.


Очень жаль, для меня неприемлемо использовать не лицензионный софт и контент. Я с вами полностью согласен в той части, где вы опамянаете копирастов (с другими категориями граждан я не пересекался), поэтому уже как 7 лет я пересел на линукс и использую только свободный софт и контент под лицензиями creative commons, разрешающие дальнейшее распространение. Мне, например, очень импонирует, что создатели Oolite следять за лицензиями пакетов. Читал на ихнем форуме, что у них, как разработчиков игры, были проблемы с создателями пакетов и поэтому они ввели правило указывать лицензии. Это очень правильный поступок, который позволяет находится не в серой зоне, когда не знаешь можно или нет использовать контент, а вполне в легальной, где четко прописано что я могу делать с пакетом и с находящимся в нем контентом.


  Re: Stranger's World: замечания и предложения
Не в сети
---Elite---

Зарегистрирован: 06.10.11
Сообщений: 563
Откуда: Москва
stranger:
я три категории граждан не люблю

А ПВОшники то чем провинились?


  Re: Stranger's World: замечания и предложения
Не в сети
---Elite---
Аватар пользователя

Зарегистрирован: 15.05.11
Сообщений: 1531
ALEX_M:
stranger:
я три категории граждан не люблю

А ПВОшники то чем провинились?

Сами не летают и другим не дают :)
Со служивых, понятно, какой спрос - им приказ бдить сверху спущен. А вот с тех, кто в семидесятые целенаправленно уничтожил в Союзе планерный спорт - очень даже. Эти граждане явно не по указке из-за бугра работали.
Хочу пояснить отчетливо: все эти перечисленные и неперечисленные органы контроля и надзора в любом государстве безусловно нужны, никуда от этого не денешься. Но вот граждане государства теплых чувств к ним испытывать не обязаны. Мне как-то по жизни ближе идеология кота Леопольда: ребята, давайте жить дружно :) Если бы небо было открыто для всех, как открыт для всех Мировой океан, мир был бы замечательным местом. Но идея летать где хочешь и ездить в гости к кому хочешь, ни у кого не испрашивая разрешения - понятно, в нынешнем мире утопия. Да и в любом мыслимом будущем тоже.
Впрочем, зря я эту тему вообще затронул. Боюсь, она может вылится в контрпродуктивный срач.
Алекс, если я Вас каким-либо образом лично затронул, лучшее, что я могу предложить - это принести извинения и удалить вообще этот дурацкий коммент.

To anon

Безусловно да, даже самые дурацкие законы соблюдать надо. Можно, конечно, сослаться на то, что по большей части графический контент был добыт при поиске по категории wallpapers - и стало быть, может использоваться, распространяться и модифицироваться в частном порядке в некоммерческих целях без ограничений. Но формально этот тезис в моих пакетах и правда не обозначен явно и и недвусмысленно. Согласен, порядок навести надо.


  Re: Stranger's World: замечания и предложения
Не в сети
---Elite---

Зарегистрирован: 06.10.11
Сообщений: 563
Откуда: Москва
stranger:
если я Вас каким-либо образом лично затронул

Никоим образом, просто любопытно стало, в чём они виноваты.
stranger:
кто в семидесятые целенаправленно уничтожил в Союзе планерный спорт

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


  Re: Stranger's World: замечания и предложения
Не в сети
Archangel
Аватар пользователя

Зарегистрирован: 21.11.09
Сообщений: 511
Главное не превратиться в того раввина шо ест свинину называя ее белым мясом.
Закон всегда двуликий.И абсолютно любой может быть признан нарушителем чего угодно. Как и номинальный нарушитель вполне законно может быть оправдан. Суть закона это легитимизировать насильствнные действия государств всех времен.
Разработчик может рассчитывать на продажи лецензий простым смертным. А может на шару раздать пиратки чтобы всех присадить на это дело.
Oolite вообще проект против авторских прав. Возник именно потому что Бребен решил засудить Белла и запретить делать ремейк Элиты. И запретил. Если бы у него уже не появились инвесторы и бизнес план по созданию Elite Dangerous то и Oolite была бы тоже закрыта.

анон:

Очень жаль, для меня неприемлемо использовать не лицензионный софт и контент. Я с вами полностью согласен в той части, где вы опамянаете копирастов (с другими категориями граждан я не пересекался), поэтому уже как 7 лет я пересел на линукс и использую только свободный софт и контент под лицензиями creative commons, разрешающие дальнейшее распространение. Мне, например, очень импонирует, что создатели Oolite следять за лицензиями пакетов. Читал на ихнем форуме, что у них, как разработчиков игры, были проблемы с создателями пакетов и поэтому они ввели правило указывать лицензии. Это очень правильный поступок, который позволяет находится не в серой зоне, когда не знаешь можно или нет использовать контент, а вполне в легальной, где четко прописано что я могу делать с пакетом и с находящимся в нем контентом.


  Re: Stranger's World: замечания и предложения
Не в сети
Average
Аватар пользователя

Зарегистрирован: 09.09.15
Сообщений: 20
Всех приветствую. Накатила очередная волна ностальгии… Всего пару лет здесь не был, а вы тут столько "такого всего" поизменяли/понаписали… Не сомневаюсь, что почти всё к лучшему!
А уж сколько трумблов, траблов и багов, поди, понаплодили!...
Обновилcя до 1.84, скачал почти весь ST-мир (остались System Makeup Texture Packs, но им еще сутки качаться, канал сейчас у меня «тот ещё»). Начал с нуля по классическому пути с Cobra Mark III.
Почти сразу обнаружилось, что что-то, или кто-то во время полета почти всегда «загаживает» экран статусных сообщений сообщениями типа: «Docking clearance status: …». И не говорите, что только у меня так? Хоть и не Станиславский, но «не верю». Подходим к ГОС, запрашиваем стыковку. Получаем ответ. И еще раз 6-7 запрашиваем-получаем. Потом стыкуемся. Решаем вопросы, вылетаем, уходим за зону ГОС. И, думаю, что теперь любой, как и я, может наслаждаться возможностью постоянно видеть эти сообщения, а потом еще и радостную новость, что «протокол стыковки заморожен». Причем обратите внимание, что сообщения идут не переставая и куда чаще, чем раз в минуту.
Не иначе как «Stranger's World» вывел породу особых электронных «трумблов», которые плодятся не на экране, а в терминале управления МОИМ кораблем. И эти животины теперь от меня скрывают всю важнейшую информацию, которой меня столь обильно снабжает экран моего бортового компьютера (БК). Ну расстояние до цели, например.
Как никем неуполномоченный представитель «Ассоциации Независимых ООвозщиков» (АНОО!) я выражаю «Stranger's World» и Stranger-у лично решительный протест против заселения в мой бортовой компьютер этих самых «трумблов» (или «траблов», кто их там разберет). Тем более что именно эта их разновидность от звездного жара никак не выводится («плавали-знаем»). И прошу, нет, требую, обязательно вывести эту гадость из моего БК.
Например так:
Код:
this.playerRequestedDockingClearance = function(message)
    {
    if (player.ship.target != system.mainStation || player.bounty > 50 || system.mainStation.alertCondition == 3)
        { return; }
   if(this.dockTimer)
      {
      this.dockTimer.stop();
      delete this.dockTimer;
      }

    if (player.ship.aftShield < 0.25 * player.ship.maxAftShield)
        {
        system.mainStation.requiresDockingClearance = false;
        }
    else
        {
        this.dockTimer = new Timer(this, this.setClearance, 0, 1);
        }
    }

Тут, я подозреваю, дело в том, что мы получили подарок от «толерантности» JScript. При многократном вызове «запроса на стыковку», каждый раз создается дополнительный счетчик. И в результате this.dockTimer становится, видимо, массивом. А может и просто переназначается. Не суть. Счетчиков становится много, а в shipDied () «убиваем» мы только один.
Поэтому добавлено:
Код:
if(this.dockTimer)
      {
      this.dockTimer.stop();
      delete this.dockTimer;
      }

Возможно мое предположение о сути проблемы и не совсем верно, но предложенный метод, вроде бы, работает, и именно эти «трумблы-траблы» у меня в БК уже больше не живут. Ну, или, по крайней мере, пока больше себя никак не проявляют…


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









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

cron