Jump to content
Korean Random

SerVB

User
  • Content Count

    114
  • Joined

  • Last visited

Community Reputation

34

Contacts

  • Nick
    servbul007

Recent Profile Visitors

898 profile views
  1. Тем временем пришел ответ по лицензии либы PyDDS: LGPL 2.1. IANAL, но получается, что если взять и скопировать код этой либы себе, то придется и свой код под этой лицензией выпускать. Мне кажется, эта лицензия вполне подойдет для мода для разрешения конфликтов. Моды, использующие разрешитель конфликтов, не обязаны будут быть выпущены под LGPL, если они будут использовать разрешитель конфликтов из отдельного wotmod файла и делать как бы динамическую линковку, на которую у LGPL ограничений вроде бы нету. Так что можно и без бинарников обойтись легко, ура. Осталось только кому-нибудь начать, ясных вариантов реализации уже два)
  2. Смысл темы описан в первом посте – там заданы начальные вопросы, на которые у меня не было ответа, и предложено обсуждение. Почему же я не слушаю советы? Здесь написали за это время тонну полезной информации, лично я очень благодарен участникам и благодарил словами и плюсами. С другой стороны, я точно не буду делать то, что мне не кажется правильным. Извините, часть советов мне показались сомнительными, из разряда каких-то традиций, а не опыта. Моды у меня хобби, не работа. Я делаю их для своего удовольствия и для своего опыта. А форум и опенсорс просто помогают достигать своих целей быстрее. Хотелось бы, чтобы мои действия еще и некоторую пользу для сообщества приносили, возможно даже что-то новое открывали, но это уже второстепенное желание и на данный момент я не готов выделять много времени на то, что хочется сообществу, но не мне. А почему Вы считаете, что я обязан подчиняться? Я ожидал, что Вы советуете, а не приказываете. То есть для меня Ваш вопрос вообще неожиданный. Во-первых, я даже еще не знаю, буду ли этим заниматься: в основном моем моде есть еще куча задачек, хочется сначала его до ума довести – велика вероятность, что мод успеет начать кто-то другой. Во-вторых, ну сделаю я не так, как Вам хочется – Вы же ничего не потеряете, можете сами сделать как надо. Конкретно по обращению в ВГ: у меня сейчас нет цели получить статус одобренного мода. Я не знаю, зачем мне это, я не собираюсь публиковаться на WGmods – для меня звучит все это скучно. Зато есть спортивный интерес поуправлять бинарником) Если мне захочется получить одобрение, я напишу. Я услышал. Мы можем пока согласиться не соглашаться по этому вопросу? Просто я бы в свой проект такое скорее не брал, Вы бы в свой скорее взяли – окей, мы разные люди в этом плане. Очень надеюсь, что расписав всю эту лирику я сделал так, чтобы мы лучше поняли друг друга. Не хотелось бы портить отношения) --- Между делом, я поинтересовался, можно ли сократить размер imagemagick как-то, чтоб не 100 МБ было. В итоге оказалось, что там из кучи файлов для работы с DDS нужен только ограниченный набор, в 15 МБ вполне укладывается. Еще я загрузил единственный оставшийся exe файл на virustotal, вроде пока антивирусы его не подозревают – конечно, понимаю, что в боевом режиме это может быть совсем не так, но хоть что-то.
  3. К сожалению, заблуждаетесь. Все ссылки по теме "публикация на гитхабе без лицензии" говорят, что публикация без лицензии ничего не разрешает. Как бы смешно не звучало, но даже читать не разрешено по умолчанию. Вот например про это спрашивают и отвечают: https://qna.habr.com/q/639129 Пока что я не вижу преимуществ, ведь предложенная мной папка mods/imagemagisk не лежит внутри папок микропатчей, а лежит рядом с ними. Насколько я понимаю, такая папка будет вполне нормально жить вместе с игрой. Когда я использовал XVM, у него вроде тоже папка типа mods/xvm была, которая не привязывалась к патчу. Окей, спрошу, но когда уже будет рабочая версия. А если ВГ не понравится, буду уже думать. Может, к тому моменту выяснится что-то про лицензию pydds. По крайней мере, изменения в этом случае затронут только реализацию, а для внешних модов публичный интерфейс останется тот же и им ничего переделывать не придется.
  4. Много времени прошло) Таки инжектор действительно сомнительное ПО. Или нет? Эта штука мне не очень нравится, потому что там ничего не сказано о лицензии. Но кто не боится, конечно могут на свой страх и риск его использовать и положить внутрь своего мода. Я спросил там о лицензии, мб ситуация прояснится. Класть в wotmod не хочется, потому что как раз хочется сократить размер модов с атласами, а размер той проги перебивает размер атласа. Идея грузить по прямой ссылке мне нравится пока больше. Положить в папку mods/imagemagisk и оттуда запускать после этого всегда.
  5. Пример с блокированием модуля от Microsoft конечно настораживает, но за неимением альнернатив придется рискнуть и бандлить бинарник. Но спасибо за предупреждение, морально можно уже готовиться. Тут на самом деле не было требования. Вот Вы говорите, что бинарники не стоит использовать. С учетом того, что не известно, как еще можно работать с DDS, вытекает, что мод вообще не стоит делать. Получается, что это Ваша позиция. В своем вопросе я только попробовал ее уточнить, но опять не услышал прямого ответа, но очень много хамства. Рискну сказать, что что-то могу. Если интересно, полюбопытствуйте темы в моем профиле. Насчет "буду ли я заниматься конкретно этим модом" – не могу обещать. Как уже говорил выше, мне бы больше понравился вариант присоединиться к чьим-то наработкам, особенно если там будет нужна помощь. Но если довольно долго никто не будет начинать, я начну сам, потому что для моего основного мода такая возможность динамической генерации атласа была бы полезна и я бы хотел перевести свой мод полностью на нее. Встречный вопрос, чтобы лучше узнать сообщество: а у Вас какой опыт? Не нашел Ваших тем на форуме...
  6. Сколько токсичности и злости от Вас( Отвечу только по делу, на остальное не буду отвечать, так как не вижу смысла. Не хотите отвечать по делу, а хотите заводить срач – что ж, лучше вообще не пишите... Напомню, что я хочу узнать "по делу": Идея мода в том, чтобы модифицировать атлас на устройстве пользователя. Была предложена идея использовать для этого утилиту imagemagick, которая по-видимому является единственной популярной консольной программой, поддерживающую манипуляцию DDS картинками. Вы высказались, что exe утилиту использовать нельзя. И я хочу знать причину. Если я правильно понял, речь про XFW/XVM. Никого не хочу обидеть, но XVM – довольно неизвестное ПО. Есть ли еще примеры, кроме XVM? Желательно более известных программ. Также я попросил предложить варианты, как обойтись без exe. Вы не ответили. Надо ли это понимать так, что Вы не знаете других вариантов, а значит мод вообще не стоит делать?
  7. Я мододел? Вроде да. Я про него знал? Вроде нет. Так что это заблуждение, будьте терпимее, пожалуйста. Пользуясь случаем, спрошу, описаны ли где-нибудь такие полезные классы или принято получать такие знания в рандомных темах? Или вообще не надо учиться мододелию, потому что опытные мододелы не хотят, чтобы их теснили? Я же не говорю, что все программисты знают, что такое бинарник. Да, я имел в виду набор исполняемых файлов. Скачать можно вот здесь: https://imagemagick.org/script/download.php#windows. Сайт вроде бы не самопальный, а вполне официальный. Exe подписанные. Программа известная, если речь идет о рисовании картинок с помощью консольных команд. Думаю, что из-за известности с антивирусами проблем не будет. А Вы считаете иначе? Аргументируйте, пожалуйста, что значит "exe в модах быть не должно" – чье это требование – и предложите еще варианты.
  8. OMG. Ну хочется. Почему сразу надо так рубить? Если это закрытый код, можно было бы прямо сказать. За примеры спасибо в любом случае. Тем временем я почитал про imagemagick и понял, что оно само умеет рисовать. Это еще сильнее облегчает задачу: не надо тащить питоновские библиотеки с собой, только один бинарник остается. Выглядеть последовательность команд будет как-то так: convert sourceBattleAtlas.dds \ -alpha set -region 20x20+5+5 -alpha transparent -draw 'image srcOver 0,0 20,20 pathToTexture1.png' \ -alpha set -region 20x20+5+25 -alpha transparent -draw 'image srcOver 0,0 20,20 pathToTextrure2.png' \ battleAtlas.dds Для каждой подтекстуры ее область сначала заполняется прозрачным, потом туда рисуется кастомная подтекстура. Возможно, можно как-то более коротко эти команды записать... Получается, процентов 80 задачи уже понятно, как делать. Но еще остаются некоторые вопросы вот отсюда: Ха! Сам бинарник-то imagemagick в районе 100 МБ весит. Не очень приятно... Может быть, потом найдется подходящий инструмент попроще. Хотя можно даже не хранить этот бинарник внутри мода, а просто его скачать при первом запуске.
  9. Ну, в первоначальном варианте нужно будет вообще иметь по png картинке на каждую изменяемую иконку, но и "податласы" потом вполне можно будет поддержать. Пока что идея заключается в генерации атласа единоразово только в момент загрузки игры, но если клиент каждый раз при загрузке боя зачитывает файл атласа и это происходит после того, как из Питона стало видно тип боя, то это тоже вполне можно сделать. Но не в первых версиях мода.
  10. @StranikS_Scan , спасибо! Синглтон (или как это называется) AtlasManager выглядит действительно удобнее. Упоминание ResMgr бесценно! А можно ли где-нибудь о нем поподробнее почитать, например увидеть список доступных методов, описания? Примеры полезные, но хотелось бы и самому посмотреть.
  11. Класс, спасибо за уточнение, что экспериментировать надо с res_mods! Я перепроверил такие поведения: В res_mods при загрузке клиента пусто: загружаемся в ангар, кладем в res_mods свой атлас, идем в бой – загружается измененный атлас – успех. В res_mods при загрузке клиента лежит атлас: загружаемся в ангар, заменяем атлас на свой (операция успешно выполняется), идем в бой – загружается только что положеный атлас – опять успех. Получается, мод вполне сможет работать, манипулируя файлами в папке res_mods. Еще одна причина просить разрабов не убирать эту папку) Моду быть! Как я вижу первоначальную логику его работы: Он предоставляет переменную-список subtextures_to_change, куда другие моды при первом запуске добавляют словари вида {"atlasName": "название-путь целевого атласа", "subTextureName": "имя подтекстуры, которую надо заменить", "subTextureWotmodName": "название wotmod файла, где искать новую подтекстуру – то есть мод, который хочет внести изменения в атлас", "newTexturePath": "путь в wotmod к подтекстуре, которую надо поставить – png файл"}. Когда все моды загрузились, мод вытаскивает атласы из клиента, отрисовывает на них нужные изменения (я в своем моде сейчас это делаю с помощью библиотеки PIL, видимо придется поставлять эту или подобную библиотеку в составе мода, можно внутри его же wotmod), сохраняет DDS картинки в папке res_mods (DDS я в своем моде сейчас генерирую с помощью утилиты imagemagick, видимо придется поставлять эту или подобную утилиту в составе мода, можно внутри его же wotmod). Ура, клиент видит в res_mods файлы (сгенерированные и помещенные туда модом) и показывает модифицированные атласы. Видете ли возможные проблемы или звучит рабоче? Нужен ли мод, работающий по такой схеме, кому-то еще или только мне? Желает ли кто-то этим заняться опенсорсно на ГитХабе? Я бы присоединился. Либо если никто не начнет, я сам когда-нибудь начну потихоньку) Есть вопросы к более опытным мододелам, возможно, кто-то знает, расскажет и избавит от исследований клиента: Можно ли как-то подписаться на событие "все моды загрузились"? Если нет, можно ли на "ангар загружается"? Как принято узнавать текущую версию игры, чтобы находить правильные папки mods/версия и res_mods/версия? Что кроме battleAtlas стоит поддержать? Можно ли в рантайме узнать пути пакетов, или только хардкодить? Например, сейчас вижу, что battleAtlas лежит в res/packages/gui-part1.pkg, но помню, что когда-то был просто gui.pkg, то есть изменения могут быть, и хардкодить не хочется. Можно конечно сканировать все 150 pkg файлов на наличие нужных атласов, это недолго, но если можно прям из мода узнать путь к нужному атласу, то это еще лучше. Окей. Возможно, можно влезть в этот файл с помощью WinAPI. Но эти исследования можно оставить на крайний случай, раз мы пока увидели более легкий способ. Ну, если других вариантов нету, то можно было бы потерпеть перезапуск клиента. Но если можно без перезапуска, зачем терпеть?
  12. Не, тут вопрос скорее к @Kapany3uk: как получилось сменить атлас в ангаре? Даже если вручную какие-то действия были сделаны, все равно интересно
  13. @Kapany3uk, спасибо, отличная новость! Идея просто взять и заменить файл мода с атласом мне в голову не приходила. Я попробовал это сделать в проводнике, но файл заблокирован клиентом и перезаписать его нельзя. Возможно, этого не будет происходить, если модифицировать файл прям из клиента. Надо будет проверить. А Вы каким образом "меняли атлас"?
  14. @StranikS_Scan , а что означает "грузится"-то? Копируется в оперативку?
×
×
  • Create New...