Jump to content
Korean Random

GPCracker

User
  • Posts

    2,827
  • Joined

  • Last visited

  • Days Won

    61

Everything posted by GPCracker

  1. Я так и написал, что переводить моноязычные приложения посредством хака ресурсов - это кому-то очень хочется и явно больше нечего делать. Вот об этом я и говорю. Сказал в общем-то то же самое. Просто ты не понял) Речь идет про локализацию Ориона В общем-то, если ты говоришь, что нет времени на переводы, то может просто вынести тексты из программы в файлы локализации, а добрые люди всегда найдутся) Не знаю, каким образом точно там gettext интегрируется в приложение, не особо разбираюсь в делфях, но если его адекватным образом прикрутить, то будет очень даже неплохо.
  2. Эээ, сори, но что такое WTV? А то гугл не дает нормального ответа...Насколько я понял, WTV DDS File Viewer Я конечно не разбирался в алгоритмах локализации QT, но gettext работает вполне прозрачно и понятно. Есть подстановочная строка, по ней генерируется путь к файлу локализации и имя параметра - загружается нужное значение. Вряд ли что там может запутаться (без помощи нубокодера). По крайней мере явных багов локализации у картофана мне пока не попадалось. Да и если и были, то на 99% виноваты локализаторы. То что строки на разных языках разной длины - ну тут увы, ничего не поделаешь, нужно заранее продумывать длину с учетом на перевод, т.е. делать поля динамической длины и резиновый макет. Эээ, зачем такой гемор? А по нормальному никак что-ли? Не, я понимаю, если речь идет о переводе программы, не запиленной под локализацию (моноязычная). Кому то нечего делать, или очень хочется.Но если локализация (код) уже интегрирована в прогу, и проге кормятся файлы локализации, тогда все по сути должно быть аккуратно и ровно. В том то кстати и прикол gettext, что он автономный, и перевод без проблем можно отправить на аутсорс. Он от проги никак не зависит, скорее прога зависит от него. *.mo без проблем и потерь (контрольная сумма сохраняется) конвертится в *.po и обратно. Вот примеру содержание одного из картохиных файлов.
  3. gettext вот это весчь. Никаких DLL, файлы без проблем конвертятся в текст и обратно (*.mo<->*.po). Картоха тоже пользуется) Одну локализацию пилишь (какую удобнее всего), другую просто переведут, ибо смотри строчкой выше. Насчет прикручивания к делфям - хз. Но к сям точно прикручивают.
  4. Немного поправил для корректного перевода) По крайней мере это уже можно скормить гугл-транслейту, чтобы понять в чем прикол. Если юзер догоняет, куда надо ткнуть, чтобы декомпильнуть скрипт, то ему должно хватить мозгов найти чем перевести эту фразу. Да и найти по этой фразе вопрос-ответ намного проще будет. Только вот то что гуглом многие не умеют пользоваться (хотя все когда-то учились), вот это уже более серьезная проблема.
  5. Смотря о чем идет речь. Аркадный режим вообще отдельная тема. Там все несколько сложнее, чем в снайперском.
  6. Мне кажется, что тебе любой понимающий человек скажет куда пойти поботать питон) Извиняюсь за выражение, без обид, но думаю тебе реально стоит сначала разобраться в питоне (Python) и Флеше (AS) хотя бы на элементарном уровне, перед тем, как браться за моды. Тем более, что это не такая простая тема, как кажется внешне. Для нормальной работы здесь нужно не только понимать (и уметь писать, что тоже немаловажно) оба языка программирования, но и основы их взаимодействия (DAAPI). Если ты реально думаешь, что все так просто запилить, ты ошибаешься. Не, может простые вещи и легко запилить (тупо скопировав код, который тебе дружелюбно сгенерят), но реализовать что-то более менее серьезное без таких же серьезных знаний не получится. По крайней мере сделать это правильно и без костылей-велосипедов. По крайней мере, глянуть тот же код с функцией, что тебе скинул - а что произойдет, если скажем сервак твой будет отключен, или юзер просто настроил файервол на белый список? Фейл, с последующим крашем вьюшки (как минимум эвента кнопки), а м.б. и всего интерфейса. Но ничего прикольного точно. Или например скорость закачки будет полбита в секунду - зависнет интерфейс. Про обрывы и т.д. думаю говорить не нужно. Отсюда напрашивается перевод запроса на поток, вывод прогресса закачки и еще куча вещей. А это усложнит код в несколько раз. В конце концов, писать тут код за тебя вряд ли кто захочет (нахаляву по крайней мере точно), помочь могут, указать направление для поиска или ошибку в коде, но не писать за тебя код. Так что если реально хочешь заняться модостроением - придется немного поботать. Тем более, что языки довольно распространенные и вряд ли будут лишними. З.Ы. def - это объявление функции в питоне. З.Ы.Ы. Гугл - это первый и самый главный инструмент любого программиста и не только. И им жизненно необходимо уметь пользоваться. З.Ы.Ы.Ы. Скачка файла скрипта со стороннего сервера - крайне небезопасное решение. Не следует так делать. Это равносильно написанию вируса-загрузчика. З.Ы.Ы.Ы.Ы. , не обязательно сохранять файл на диск. Можно код выполнить и без этого, просто размаршалив code-object в памяти. Модуль тогда импортировать ручками придется, если он тебе нужен, конечно.
  7. Не могу сказать на вскидку, на каком уровне работает проверка активации опции в конфиге... Некоторые вещи (хуки) выполняются частично независимо от их активации. Т.е. опция может отключать только часть кода, отвечающую непосредственно саму функцию, а код ее интеграции может при этом работать. Надо код смотреть. В любом случае, обновиться не помешает, тем более что значительных изменений в коде в последних версиях нет, только фиксы.
  8. Вот это реальная тема будет. И баянов в разы меньше станет. А то еще питон понимать не начали, а уже декомпилить лезут...
  9. Опцией, желательно бы вообще с вариантами: "отключено (игнорировать изменения)", "автоматически перечитывать (без запроса)", "запрашивать у пользователя". Нужен. Чтобы сбросить изменения в окне Ориона и вернуться к сохраненной версии. Давненько, но тоже просил)) В идеале бы подсветку отступов по табуляции и пробелу разными цветами, чтобы видно было, где переформатировать код надо, чтоб компилятор не ругался. Автосмещение после : и т.д. тоже опцией - лишним не будет.
  10. Хмм. Да, все ок. Сори. Почему-то подумал что автодетект изменений и ReOpen связанные вещи))
  11. Да вроде писал уже ответ... Там камера не в танке, в этом и проблема.
  12. За****и уже баянить! Читайте тему! Некоторые моды защищены от декомпиляции, и декомпиляторы выдают на них самые разнообразные ошибки. Про это уже раз 5 точно в этой теме писали. Пользуйтесь поиском по теме, перед тем как писать пост. Простейший поиск по Error: выкидывает 40-50% процентов постов с аналогичными вопросами и ответами. У каждой программы есть свое назначение. И попытка реализовать крутой интерфейс работы с текстом-кодом в Орионе это изготовление-изобретение костылей-велосипедов. @StranikS_Scan, можно добавить пункт в меню файл (терминал) "reopen (перечитать с диска)"? А в идеале вообще бы автодетект изменений, как реализовано в NPP, чтобы можно было код писать в более удобном редакторе, и сразу его выполнять.
  13. У тебя хук по факту ставится только на один метод __init__, он подсовывает игре нужный класс.@registerEvent(..) это декоратор, по сути функция, которая получает аргументом функцию-хук. registerEvent - функция, которая возвращает декоратор. Есть статья по этой теме на хабре. Что касаемо инструкции на registerEvent, @registerEvent(VibroManager, '__init__') def myVibroManager__init__(self): self._VibroManager__vibrationObject = GamePadVibration(self._VibroManager__vibrationObject)в некотором приближении эквивалентно def myVibroManager__init__(self): self._VibroManager__vibrationObject = GamePadVibration(self._VibroManager__vibrationObject) return wgVibroManager__init__(self) wgVibroManager__init__ = VibroManager.__init__ VibroManager.__init__ = myVibroManager__init__Опять же повторюсь - в приближении. На самом деле там алгоритм несколько сложнее, работает через event'ы. Думаю, тебе стоит проверить вызываются ли методы твоего класса или нет. Принты допиши, посмотри что и как. А дальше уже будет видно, в какую сторону копать. Тоже тут написал одно время немного кода)
  14. И зачем такие танцы, еще и с приватными атрибутами? Не проще сделать import BigWorld from Avatar import PlayerAvatar from Account import PlayerAccount if isinstance(BigWorld.player(), PlayerAvatar): #Battle if isinstance(BigWorld.player(), PlayerAccount): #Hangar А вообще самый четкий вариант все сделать так, чтобы экземпляр класса мода создавался при инициализации нужного класса, и убивался при его деструкции.
  15. Изменяется ARENA_PERIOD или что-то вроде того. Покопайся в скриптах картохи, файлик ClientArena.pyc, ЕМНИП. З.Ы. Вообще, для вопросов по коду есть отдельный раздел.
  16. Да ошибка тут одна, AAS скорее всего без последнего патча, или я еще не успел поправить ошибку с перком эксперт. В остальном у тебя все ОК.
  17. Господа, маленькая просьба: прикрепляйте логи. Без них исправить проблему невозможно. Тем более что я сейчас не играю в танки.
  18. when you aim directly at tank - mod does not work at all, WG scripts are normal in this situation. When locked target moving, distance is being automatically changed. when you blur-focus tank, mod starts correction. It fixes GM drop, but it does not fix GM bounce on close covers due to BCT alhorytm. And it must not. Becase GM shows calculated shell explosion position. And if shell will kick cover, GM bounce. Tester reports that aim correction work nice... Looks like you do something wrong. You can see his post. Можно навестись на танк за камнем и нажать ПКМ. Танк захватится в автоприцел, как будто находится в прямой видимости. Абсолютно верно. Парень понял смысл фичи) Это немного из другой оперы) Это захват цели модом, используется для корректировки дальномера, надписей на экране и т.д. В данном случае ручной захват. У ручного захвата нет таймаута, иногда может быть эффективно, хотя сам не пользуюсь, появилось на ранних версиях, когда дебажил эту автосистему. Автозахват подразумевает получение данных о цели при наведении прицела на нее. Несовместимы в том плане, что если вручную захвачена какая-то цель, автозахват не работает до сброса ручного захвата, т.е. захвата по пустому месту. И ручной захват сбрасывает динамическую цель, хотя она автоматом переназначится при наведении. У ручного захвата нет таймаута сброса, он сбрасывается только вручную. И обладает более высоким приоритетом, чем автоматический. Штука очень полезная для тестов (не нужно постоянно подсвечивать цель - выстрел цели), в бою автоматический удобнее. Не только. От этой темы еще упреждение работало) Потом его картоха поломала. Парень хочет отдельным модом. Сори, но у меня и так не особо много времени на моды и особенно немного в последнее время желания просаживать нервы в танках, а тестить не играя сложно, особенно такеи вещи Для соло есть более интересные вещи, достаточно зайти на ютуб и посмотреть топы за последние 2-3, а то и 4 года, полюбому найдется что-нибудь интересное.
  19. Оно не работает. Спасибо картошке. Поломала вектор скорости.
  20. В одной из последних полных сборок. Там где версия написана. Например, тут. Нашарил поисковичком... Да, далеко уже тема ушла от последнего релиза.
  21. А комментариев в конфиге мало? Они объясняют, что за параметры, и за какие функции они отвечают. А подробное описание алгоритмов работы функционала обсуждается на форуме.
  22. Не совсем. Переведи полностью этот пост, поймешь. Мне лень переписывать его на русском.
  23. @vasbelous, спасибо. Я кажется понял, в чем прикол. Захват цели рентгеном через укрытие. Дистанция выставляется по цели, маркер орудия при наведении на укрытие поднимается. При выезде из укрытия все ок. Это фиксит в некоторой степени недолеты при выездах из-за угла, но рассинхрон никуда не денешь.
×
×
  • Create New...