Jump to content
Korean Random

GPCracker

User
  • Posts

    2,827
  • Joined

  • Last visited

  • Days Won

    62

Everything posted by GPCracker

  1. Ну так в JSON подобное сделать тоже никто не мешает. Единственно придется мозг поднапрячь чуток. Там код открытый. Для себя впиливаешь подобное в дебаггер и вуаля. Тут вообще все проще пареной репы, тем более что сам фикс я уже запилил, там и думать особо не надо. Ну там тоже мозг иногда напрягать приходится. Но можно решить достаточно сложные вопросы. Ну это и ежу понятно. Ну так ясен хрен. Ты почитай доки по питону, там много чего написано. По сути, хукая функцию ты заменяешь в значении переменной указатель на нее указателем на свою функцию. А если кто-то уже импортнул эту функцию, он скопировал к себе в локалспейс указатель на оригинал, и ему уже глубоко до фонаря что ты там его поменял - у него своя персональная копия. В результате ты имеешь дырку от баранки. Отсюда простой вывод: НУЖНО ПАТЧИТЬ ТО, ЧТО НЕ ИМПОРТИРУЕТСЯ НИКЕМ, а используется только внутри изменяемого модуля. Например можно грамотно запилить чтобы кеш переводчиков возвращал не сам переводчик, а враппер. Переводчики никто не кэширует, точнее их кеширует кеш-класс, который ты патчишь. И они никому не нужны вне модуля, всем нужна служба - спросил-ответили. Но опять же это ничем не поможет против тех, кто спросил и засейвил раньше чем ты хукнул - прикол тот же - у них своя персональная копия. Так что если патчить нормально с полным покрытием - нужно грузиться раньше всех. Самый надежный способ - оверлоад файла, который тебе нужно поправить. Есть конечно вариант с хуком на импортах (в инете по этому приколу есть статейки даже), но чтобы поставить хук на импорт, нужно бутнуться до импорта, и возвращаемся туда, откуда пришли. Так что если тебе реально нужно бутнуться в самом начале - придется оверлоадить какой-то файл, который импортится в самом начале. В идеале до импорта i18n, либо дописать свой код к загрузке i18n, чтобы он выполнялся в основном ___, короче при непосредственном импорте модуля. Другого решения на питоне не может быть в принципе. Вот тебе до кучи толковая ссылка. Надеюсь, сообразишь, что я имел ввиду пот патчем кеша.
  2. Картоха его считай уже ввела, разложив ресурсы по папкам. Нужно только мозги включить и по папкам пошариться - место найдется. Оба варианта имеют свои плюсы и минусы. Хотя идея вынести все конфиги в отдельную папку - очень даже неплохая. Если читаешь иногда мою темку, я там рассматривал способ переноса конфига - ремап XML секции. Как раз таки оптимальное решение и для меня, и для юзеров. Можно и конфиг разбить на мелкие как угодно, и сам по себе конфиг положить куда хочется (правда на оригинальном месте придется таки оставить файлик с редиректом). Оверлоад - это перегрузка. Когда ты кидаешь файлик в папку res_mods, который будет читаться заместо оригинала. А то :) Регулярка. Модуль re, в питоне есть такой :) "text" - это типа язык, а "LC_MESSAGES" - это подкатегория типа данных, или что-то такое. Тут почитай, если с инглишем норм. :) Если честно, не совсем понял, что ты имеешь ввиду.
  3. @Wanket, as файл про форматирование вообще видно не слышал... едва глаза не вытекли от таких отступов.
  4. Лично мое мнение - ресурсы нужно хранить в правильном месте, в специально для них отведенном. Либо допустимо рядом с модом, если это конфиг (тут речь о путях поиска конфига при старте мода), если что-то другое - туда где оно должно лежать, потому что путь к этому можно прописать в конфиге. Путь к конфигу в конфиге не пропишешь :) В текущей итерации можно сделать фикс отдельным файлом, запилю как освобожусь. Если у тебя мод не оверлоадит i18n, то на работу игры и твоего мода это никак не скажется. Просто разрешение путей будет работать правильно. Еще очередная доработка :) Рекурсия, она самая :) Только жаль что картоха трейлера не предусмотрела. Не совсем понял. Создать свою папку локализации ничто не мешает, коллизий с картохой не будет, но и двойной уровень вложенности (требоание gettext'а) никуда не денется. А создавать папку в папке с одним файлом внутри - ну не круто. Уж проще рядом с картохиными положить (+читай выше про правильное укладывание ресурсов), только решить проблему с копированием для начала. В том то и дело, что попытка влезть в локализации тянет за собой это тупое и ненужное копирование. Потому что у программистов катохи не хватило соображаловки написать 4 простые как пареная репа строчки кода в свое время. Но судя по масштабности того, что сейчас выкатывается (речь о коде, а не о юзер-фичах), они таки начали исправляться :) Как обещал. Сорц в комплекте. i18n_patch.zip За основу взят файл, который я запостил тут и загрузчики, которые постил тут.
  5. Ждем подтверждения со скринами от @AtotIK что все ОК и идем отдыхать. Нелегкий выдался денек :) Ну если запилить свой слой и его засвопать - то дело. Доберусь - раскурю, что там и куда, и что из этого можно отжать.
  6. Ну это на флешке делать надо... А не на питоне. Тем более, что кроме хендла маркера (ну считай его айдишника) у тебя ничего нет.
  7. Ну так что, делать 6 дубль? В общем, надеюсь последний тест. Перенес CONTAINER_NAME из PERSONAL в ICONS. Надеюсь, это решит проблему с перекрыванием. Эта тестовая версия [пока] финальная. MinimapGunMarkers_0.9.15.1CT_alpha_#6.zip
  8. А если JS onClick заюзать? Или еще каким-то таким методом?
  9. Ну вот я тоже так подумал, просто как-то они странно расположены в "правильном порядке". М.б. потом еще гляну, может найду чего. Кстати, м.б. прокатит переместить маркеры в другой контейнер, в какой посоветуете, чтобы порядок нормальный был (чтобы ничего не перекрывалось, и убрать галочки мод маркеры)?
  10. Ну и само собой спасибо всем, кто помогал поднять систему на ноги. Надеюсь, так жестко падать больше не будет :) )))))))) xD) Не, ну ежу понятно, контейнеры тут вяляются net.wg.gui.battle.views.minimap.containers.MinimapEntriesContainer Походу нужные маркеры просто добавляются на спрайты... А ордер самих спрайтов где зарыт, непонятно...
  11. А порядок отрисовки где задается? Ну всмысле что стрелочка игрока должна быть поверх всего?
  12. Короч, еще одна попытка таки заставить эту систему работать при помощи прибивания костылей болтами. Эта тестовая версия, в принципе работает, но ниже есть лучше :) MinimapGunMarkers_0.9.15.1CT_alpha_#5.zip Раньше был zIndex, что сейчас - не знаю. Наверное контейнеры рулят. До конца еще не разобрался. Короч, поправил там посты с ранними файлами, дописал дисклеймеры. Чтобы тут не бомбили, а то мы и так уже 2 страницы нафлудили.
  13. Это потому что поменяли порядок деструкции. Могу впилить try/except, если тебе от этого станет легче. Это исключение все равно игнорится, там же написано. А вот это называется защита от утечки памяти. Я заюзал слабую ссылку, чтобы объект нормально уничтожался при выходе из боя. И он уничтожается. Потому (я так полагаю, ты поймал это во втором бою) и вылетает такая ошибка. Если его оттуда не прибрать - будет двойная обработка и утечка памяти. Надо будет добавить удаление колобка из ивента. В принципе проксю можно и у класса сохранить. Потому что ивент будет удерживать жексткую ссылку на объект, а __del__ (почитай доки) срабатывает когда ссылок на объект не осталось, т.е. объект просто никогда не будет уничтожен, каждый бой будет создаваться новый, будет утечка памяти и возможно умножение нагрузки. Но начет удаления колобка - я уже написал (точнее писал пока ты свой пост писал). Нужно больше костылей, посоны!
  14. Думаю. все-таки тут более подходящее место для дискуссии. Началось все тут, с перерывами на основной топик, если кому интересно, можете почитать. Оно всегда и везде есть, чего допилить :) Если хорошо поискать. Для простых задач, да. Есть некоторое усложнение. Но в некоторых случаях (в особенности когда дело касается переводов мода, где правится только содержимое), редактировать отдельный *.mo проще, тем более что для этого есть даже специальный софт) А возможность в подстроку забить ключ вместо самой строки - это очень даже неплохо. Например, когда хочешь использовать какую-то картошкину строку, которая уже есть в файлах локализации. Если ты просто короткие строки реплейсишь, то все норм. Как только дело касается чего покрупнее - вот тут начинается самое веселое. Огромные строки просто делают конфиг нечитаемым, либо приходится прилично скриллить вбок. Если в таком раскладе просто делать ремап, а не реплейс - конфиг выглядит чисто и аккуратно, а в файлах локализации ты можешь форматировать как хочешь, или вообще софтину юзать. Опять же, если картоха решит вопрос с копированием текстов, или если просто накатить тот патч, который я им на багтрекер залил путем оверлоада i18n с добавлением кода загрузки оригинала (то, что я в загрузчиках кидал, оттуда фрагмент взять), то можно вполне спокойно с таким играться и в некоторых случаях оно будет очень даже эффективно. Мы немного о разных вещах. Ты про замену текстов, я про использование gettext для локализации своих модов, чтобы строки в конфиге не хранить. Просто ремапнул в файл локализации, как картоха делает, и все. Можно юзать строки любого размера, и конфиг при этом остается читаемым, точнее в нем вообще при изменении строки ничего не меняется. Проблема с копированием возникает если ты пытаешься перегрузить или создать свой файл в папке текстов. То есть вынести строки из конфига в тексты. Ну для мода, который не работает с движком игры оно и не требуется. XML хорошо работает если ты сохраняешь туда вектора или матрицы. Движок (ResMgr по сути является частью BigWorld) умеет их парсить, и тебе не нужно на эту тему напрягаться. Плюс движок еще разруливает вопрос с локацией ресурсов, и не нужно резолвить папку с патчем. Хотя по сути есть функция для этого у того же ResMgr. Да я тут тоже маркеры орудий на миникарте поднять пытаюсь. Картоха с переходом на AS3 перепилила полностью миникарту. В том числе даже Scaleform класс, который ее обслуживал. Поменяли логику zIndex'a, теперь за эту штуку походу контейнер отвечает. Короче, то еще веселье. Начиная с того, что логику мода нужно наполовину вывернуть наизнанку. Хотя в общем-то изменения положительные. Новых возможностей нормально так завезли.
  15. Ну тоже вариант. Только там утечка будет. Нада пофиксить. Ща запилю :) Надеюсь, на этот раз взлетит нормально, а то я чет уже устал это фиксить. Эта тестовая версия, и работает некорректно, нужна рабочая - ищите ниже. MinimapGunMarkers_0.9.15.1CT_alpha_#4.zip Заюзал немного подсказок от @Polar Fox
  16. Ну понятно Как вариант можно мягко пропустить, а потом просто релоад сделать. Или просто отключить для союзников, тогда проблема как-бы решается. Вобщем, тут как ни городи, получается костыль. Чтобы запилить по-нормальному - нужно переделывать логику. Тогда уже проще сделать это при нормальном обновлении. Пока предлагаю просто реально не использовать маркеры для союзников, либо включать их после прогрузки миникарты хоткеем.
  17. На выходе из реплея он и так выходит... А то что исключение в __del__ - они игнорятся, и это прям написано. Забей, главное чтобы реальных вылетов не было. Короч, поправил вроде указки, сейчас их быть не должно. Эта тестовая версия, и работает некорректно, нужна рабочая - ищите ниже. MinimapGunMarkers_0.9.15.1CT_alpha_#3.zip Уже вкурил :) @Polar Fox, вы там наверное уже этот мод вдоль и поперек выучили :) Там по-нормальному фиксить надо, и переделывать половину (давно уже собираюсь, только руки не доходят), пока пытаемся пофиксить как-нибудь.
  18. Всмысле? Показывается только для арты, совзводных и противников. Первых двух на скрине нет. Ну точнее показывает для кого настроишь... Если ты про "будет ли работать для..." - будет для кого сделаешь. Там пофигу вообще. Матрих провайдер правильный покажи и работать будет :) Как убрать маркеры под иконки - нужно создавать свой контейнер скорее всего, тут уже не для хотфикса дело.
  19. Скрин в студию можно? Ооо, уже годно) Ща будем копать как указки отключить. Не, точнее я знаю, что нужно вызвать, теперь нужно понять как.
  20. Возможно у картохи хоткей на миникарту срабатывает. Хоткеи это все побочка. Просто включи все фильтры в конфиге, поставь enable activate True. Чтобы сразу по логике работало. Нужно маркеры отдебажить, остальное потом.
  21. Ошибки есть кроме этих? Вобщем, залатал что ты сказал, версию поправил, сообщение закомментил просто. Эта тестовая версия, и работает некорректно, нужна рабочая - ищите ниже. MinimapGunMarkers_0.9.15.1CT_alpha_#2.zip
  22. , да хрен с ним. Это побочка. Пока руки не дошли. Маркеры-то работают?
×
×
  • Create New...