Jump to content
Korean Random
StranikS_Scan

PjOrion - редактирование, компиляция, декомпиляция, обфускация модов (Версия: 1.3.5 Дата: 11.08.2019)

Пользуетесь ли вы Орионом?  

314 members have voted

You do not have permission to vote in this poll, or see the poll results. Please sign in or register to vote in this poll.

Recommended Posts

Чуть подробней опиши как должно выглядеть.

 

Я к тому что в Орионе же нельзя два одновременно скрипта открыть. Вот и вывести экспорт (возможно какой то модуль потребуется, в идеале попап окно )в XML который автоматом откроет нотепад. Во втором Орионе открываем второй скрипт и так же экспортируем ( который так же попадет в уже открытое папап окно. Конечно если б при этом автоматом запускался бы компаре вообще бы была фантастика) нотепад же много вкладка. Самый затык это чтобы изменения внесенные в нотепаде, при сохранении, попадали в скрипт. Вот это и есть на мой взгляд автомат. Тогда просто упрощается погоня за оптимизацией клиента, то есть переделка под патчи.

Share this post


Link to post

Short link
Share on other sites

@StranikS_Scan

 

 

Некоторые моды защищены от декомпиляции, и декомпиляторы выдают на них самые разнообразные ошибки. Про это уже раз 5 точно в этой теме писали. Пользуйтесь поиском по теме, перед тем как писать пост. Простейший поиск по Error: выкидывает 40-50% процентов постов с аналогичными вопросами и ответами.

и это натолкнуло на мысль - в случае, если декомпиляция прерывается с ошибкой, то сообщать пользователю что дескать декомпиляция невозможна ввиду наложения на скрипт защиты от декомпиляции. Куча подобных вопросов отпадет сразу.. а изначально еще и проверку делать на наличии сам знаешь каких сигнальных строк в скрипте (pjorion_protected, mercger и т.п).

  • Upvote 3

Share this post


Link to post

Short link
Share on other sites

а изначально еще и проверку делать на наличии сам знаешь каких сигнальных строк в скрипте (pjorion_protected, mercger и т.п).

Вот это реальная тема будет. И баянов в разы меньше станет. А то еще питон понимать не начали, а уже декомпилить лезут...
  • Upvote 2

Share this post


Link to post

Short link
Share on other sites

Это всё конечно очень хорошо, и я сам не раз обдумывал такую фичу, но есть одно но. Что толку юзверу, который плохо понимает, чем декомпиляция отличается от компиляции, от каких-то там сообщений аля "This script bytecode is obfuscated Mercger method. Standard decompilation impossible."?

 

А тем кто понимает о чем идёт речь - такие сообщения врятли нужны. F3 в TotalCommander и сразу видно в каком виде скомпилен скрипт.

Share this post


Link to post

Short link
Share on other sites

Что толку юзверу, который плохо понимает, чем декомпиляция отличается от компиляции, от каких-то там сообщений аля "This script bytecode has been obfuscated by Mercger method. Standard decompilation is impossible."?

Немного поправил для корректного перевода)

По крайней мере это уже можно скормить гугл-транслейту, чтобы понять в чем прикол. Если юзер догоняет, куда надо ткнуть, чтобы декомпильнуть скрипт, то ему должно хватить мозгов найти чем перевести эту фразу.

Да и найти по этой фразе вопрос-ответ намного проще будет. Только вот то что гуглом многие не умеют пользоваться (хотя все когда-то учились), вот это уже более серьезная проблема.

Share this post


Link to post

Short link
Share on other sites

Немного поправил для корректного перевода)

По крайней мере это уже можно скормить гугл-транслейту, чтобы понять в чем прикол. Если юзер догоняет, куда надо ткнуть, чтобы декомпильнуть скрипт, то ему должно хватить мозгов найти чем перевести эту фразу.

Да и найти по этой фразе вопрос-ответ намного проще будет. Только вот то что гуглом многие не умеют пользоваться (хотя все когда-то учились), вот это уже более серьезная проблема.

А что мешает сделать русский перевод?

Share this post


Link to post

Short link
Share on other sites

А что мешает сделать русский перевод?

 

Отсутствие человеко-часов на локализацию.

Share this post


Link to post

Short link
Share on other sites

Отсутствие человеко-часов на локализацию.

Но в delphi есть отличнейший инструмент локализации.

Только он использует dll для каждого языка...

Share this post


Link to post

Short link
Share on other sites

Но в delphi есть отличнейший инструмент локализации.

gettext вот это весчь. Никаких DLL, файлы без проблем конвертятся в текст и обратно (*.mo<->*.po). Картоха тоже пользуется)

Одну локализацию пилишь (какую удобнее всего), другую просто переведут, ибо смотри строчкой выше.

Насчет прикручивания к делфям - хз. Но к сям точно прикручивают.

Share this post


Link to post

Short link
Share on other sites

Но к сям точно прикручивают.

Я ради картошкиных mo-файлов свой парсер написал для C++...

Share this post


Link to post

Short link
Share on other sites

Я ради картошкиных mo-файлов свой парсер написал для C++...

a gettext разве не вариант прикрутить? Упс)

Share this post


Link to post

Short link
Share on other sites

a gettext разве не вариант прикрутить? Упс)

 

Ребяты, я не знаю как вы, а я вот видел в деле эти утилиты, которые вставку перевода через скан exe делают. Я же делал локализацию для WTV на русский через QT. Приходилось часто слать репорты rextimmy чтобы он косяки правил, то пунктов нужных нет, то не туда, то не так, то интерфейс подгонять надо. Так что вы не думайте там что эта технология - манна небесная.

Share this post


Link to post

Short link
Share on other sites

локализацию для WTV на русский через QT

Эээ, сори, но что такое WTV? А то гугл не дает нормального ответа...

Насколько я понял, WTV DDS File Viewer

Я конечно не разбирался в алгоритмах локализации QT, но gettext работает вполне прозрачно и понятно. Есть подстановочная строка, по ней генерируется путь к файлу локализации и имя параметра - загружается нужное значение. Вряд ли что там может запутаться (без помощи нубокодера). По крайней мере явных багов локализации у картофана мне пока не попадалось. Да и если и были, то на 99% виноваты локализаторы. То что строки на разных языках разной длины - ну тут увы, ничего не поделаешь, нужно заранее продумывать длину с учетом на перевод, т.е. делать поля динамической длины и резиновый макет.

которые вставку перевода через скан exe делают

Эээ, зачем такой гемор? А по нормальному никак что-ли? Не, я понимаю, если речь идет о переводе программы, не запиленной под локализацию (моноязычная). Кому то нечего делать, или очень хочется.

Но если локализация (код) уже интегрирована в прогу, и проге кормятся файлы локализации, тогда все по сути должно быть аккуратно и ровно.

В том то кстати и прикол gettext, что он автономный, и перевод без проблем можно отправить на аутсорс. Он от проги никак не зависит, скорее прога зависит от него.

*.mo без проблем и потерь (контрольная сумма сохраняется) конвертится в *.po и обратно. Вот примеру содержание одного из картохиных файлов.

Ну содержание я немного порезал, ибо очень длинно будет.

Берем NPP или еще что нормальное, и правим как хотим, потом конвертим обратно в *.mo и наслаждаемся.

Радиаликс и прочую неудобную лабуду выкидываем в топку (не, у них есть конечно прикольные финты, но ИМХО править текст в текстовом редакторе удобнее, а поскольку большинство модов локализации работает по принципу поиск-замена, если грамотно подойти к вопросу, текстовый редактор здесь лучшее вооружение на уровне, хотя если очень правильно подойти к вопросу, все делается грамотным скриптом, который во всякие радиаликсы и поэдиты не запихнешь, а вот текстовый файлик... это весчь). Ставим gettext (скорее всего придется ставить его на MinGW или что-то подобное) либо находим онлайн-сервис для конвертирования. Конвертим, правим, конвертим обратно. Плюс имеем весь инструментарий текстового редактора. UTF-8 по сути хавает любой язык (ЕМНИП), так что для перевода нужно чтобы у транслятора он был установлен. Но это не проблема, ибо он уже будет установлен))

msgid ""
msgstr ""
"Project-Id-Version: World Of Tanks\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2010-06-01 10:00+0300\n"
"PO-Revision-Date: 2010-06-01 10:00+0300\n"
"Last-Translator: WoT Translator <[email protected]>\n"
"Language-Team: WoT Team <[email protected]>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"

msgid "WFC2014"
msgstr "«Футболист-2014»"

msgid "WFC2014_condition"
msgstr ""
"• В общий зачёт шла максимальная серия побед подряд.\n"
"• Серия прерывалась поражением.\n"
"• Выдавалась всем игрокам победившей команды в период действия специальной "
"футбольной акции."

msgid "WFC2014_descr"
msgstr "Победить в футбольном матче, управляя T-62A СПОРТ."

msgid "achievement/master1"
msgstr "3 степень"

msgid "achievement/master2"
msgstr "2 степень"

msgid "achievement/master3"
msgstr "1 степень"

msgid "achievement/master4"
msgstr "Мастер"

msgid "achievement/maxMedalValue"
msgstr ">%s"

msgid "achievement/rank"
msgstr "?empty?"

msgid "achievement/rank1"
msgstr " I степени"

msgid "achievement/rank2"
msgstr " II степени"

msgid "achievement/rank3"
msgstr " III степени"

msgid "achievement/rank4"
msgstr " IV степени"

msgid "aimer"
msgstr "«Целеуказатель»"

msgid "aimer_condition"
msgstr ""
"• Победить в бою.\n"
"• Серия увеличивается за каждую 1000 урона, нанесённого союзниками по вашим "
"разведданным в течение одного боя.\n"
"• Серия ведётся для каждой машины отдельно.\n"
"• В общий зачёт идёт максимальная серия.\n"
"• Выдаётся только в Случайных боях."

msgid "aimer_descr"
msgstr ""
"Обеспечить передачу разведданных для нанесения союзниками 1000 единиц урона "
"за один бой."

msgid "armorPiercer"
msgstr "«Бронебойщик»"

msgid "armorPiercer_condition"
msgstr ""
"• Серия прерывается непробитием, рикошетом или промахом.\n"
"• Серия ведётся для каждой машины отдельно и может продолжиться в следующем "
"бою на этой же машине.\n"
"• В общий зачёт идёт максимальная серия.\n"
"• Выдаётся только в Случайных боях."

msgid "armorPiercer_descr"
msgstr "Пробить броню противника не менее 5 раз подряд."

msgid "armoredFist"
msgstr "«Бронетанковый кулак»"

msgid "armoredFist_condition"
msgstr ""
"• Победить в бою.\n"
"• Выдаётся всем членам команды.\n"
"• Выдаётся только в Командных боях."

msgid "armoredFist_descr"
msgstr "Уничтожить всю технику противника, потеряв при этом не более 1 машины."

msgid "arsonist"
msgstr "«Поджигатель»"

msgid "arsonist_condition"
msgstr "• Выдаётся только в Случайных боях."

msgid "arsonist_descr"
msgstr "Уничтожить поджогом как минимум 1 машину противника."

msgid "battleCitizen"
msgstr "Операция «Ностальгия»"

msgid "battleCitizen_condition"
msgstr ""
"• Выдавалась всем игрокам победившей команды.\n"
"• При уничтожении союзника награда не выдавалась.\n"
"• Выдавалась только в Случайных боях.\n"
"• Выдавалась только одна награда за все проведённые бои в течение "
"первоапрельской акции 2014 года."

msgid "battleCitizen_descr"
msgstr "Победить в бою, управляя мортирой «Karl»."

msgid "battleTested"
msgstr "«Проверенный боем %(rank)s»"

msgid "battleTested_condition"
msgstr "• Выдаётся только в Командных боях."

msgid "battleTested_descr"
msgstr "За количество наград, полученных в Командных боях."

msgid "beasthunter"
msgstr "«Зверобой»"

msgid "beasthunter_condition"
msgstr ""
"\t• Aufklärungspanzer Panther\n"
"\t• PzKpfw V Panther\n"
"\t• Panther II\n"
"\t• Panther/M10\n"
"\t• Panther mit 8,8 cm L/71\n"
"\t• Jagdpanther\n"
"\t• Jagdpanther II\n"
"\t• GW Panther\n"
"\n"
"\t• PzKpfw VI Tiger\n"
"\t• PzKpfw VI Tiger (P)\n"
"\t• PzKpfw VI Ausf. B Tiger II\n"
"\t• Jagdtiger\n"
"\t• 8.8 cm Pak 43 Jagdtiger\n"
"\t• GW Tiger\n"
"\t• GW Tiger (P)\n"
"\n"
"\t• Löwe\n"
"\n"
"\t• Leopard Prototype A\n"
"\t• Leopard 1\n"
"\n"
"• Засчитывается сумма результатов по всем машинам.\n"
"• В общем зачёте повторно полученные награды суммируются."

msgid "beasthunter_descr"
msgstr ""
"Уничтожить 100 машин семейства кошачьих.\n"
"Засчитываются:"
Edited by GPCracker

Share this post


Link to post

Short link
Share on other sites

 

 

Насколько я понял, WTV DDS File Viewer

 

Нет, WOT Tank Viewer

 

 

 

Эээ, зачем такой гемор? А по нормальному никак что-ли?

 

Они все так работают, через скан и подмену текстовых констант. А ты сам-то в уме прикинь - вот у тебя проект на X-языке и есть сторонний модуль, который должен делать подмену текста в нем. О каких нормальных способах ты тут глаголишь? ))))

 

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

Share this post


Link to post

Short link
Share on other sites

А ты сам-то в уме прикинь - вот у тебя проект на X-языке и есть сторонний модуль, который должен делать подмену текста в нем. О каких нормальных способах ты тут глаголишь? ))))

Я так и написал, что переводить моноязычные приложения посредством хака ресурсов - это кому-то очень хочется и явно больше нечего делать.

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

Вот об этом я и говорю. Сказал в общем-то то же самое. Просто ты не понял)

Речь идет про локализацию Ориона

А что мешает сделать русский перевод?

Отсутствие человеко-часов на локализацию.

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

гружу текст из них при инициализации интерфейса

прикрутить, то будет очень даже неплохо.

Share this post


Link to post

Short link
Share on other sites
прикрутить, то будет очень даже неплохо.

 

Да не надо это.... по двум причинам:

- интерфейс среды программирования надо юзать в контексте того языка, на котором среда и написана. Питон на инглише написан, значит и интерфейс среды надо на иглише юзать. Переводить интерфейс среды на русский, это как кормить конфетами диабетика. Встречал такое и не раз - ну очень противно.

- прикрутить, значит интерфейс окон адаптировать к переводу, однако слова и текст на русском ни фига не влезут по размеру, а это гемор еще тот.

 

Если бы не п.1, я бы еще может и запилил, но п.1 идёт в разрез с моим мировоззрением по данном вопросу, вот мой посыл - товарищи программисты/скриптовики/мододелы и иже с ними, учите язык, на котором написан язык программирования! Это ни фига не сложно.

Edited by StranikS_Scan

Share this post


Link to post

Short link
Share on other sites

 

 

Питон на инглише написан, значит и интерфейс среды надо на иглише юзать.

Я считаю, что это в корне не верно. Ни один более-менее известный ЯП не использует великий и могучий. Все остальные ЯП используют английский язык, но это не мешает быть мультиязычными среды разработки, как, например, Visual Studio или Eclipse.

 

 

значит интерфейс окон адаптировать к переводу, однако слова и текст на русском ни фига не влезут по размеру, а это гемор еще тот

Каждый элемент интерфейса должен быть "резиновым" - уметь адаптироваться к размерам экрана и своему содержимому.

 

 

вот мой посыл - товарищи программисты/скриптовики/мододелы и иже с ними, учите язык, на котором написан язык программирования!

Фраза имеет запутанный смысл, но посыл верный.

 

Прикрутите gettext, и не заморачивайтесь с переводами. Благодарные пользователи сами всё переведут.

Share this post


Link to post

Short link
Share on other sites
Каждый элемент интерфейса должен быть "резиновым" - уметь адаптироваться к размерам экрана и своему содержимому.

 

Ты же в курсе что такого ни когда не бывает? 

 

Я считаю, что это в корне не верно. Ни один более-менее известный ЯП не использует великий и могучий. Все остальные ЯП используют английский язык, но это не мешает быть мультиязычными среды разработки, как, например, Visual Studio или Eclipse.

 

Дорогой, скажи это врачам, которые рецепты на латыни выписывают ))))) Пока врачи будут писать на латыни, программисты будут юзать тот язык, на котором он разработан. И первое и второе имеют одни и те же корни и причины.

Edited by StranikS_Scan
  • Downvote 1

Share this post


Link to post

Short link
Share on other sites
Ты же в курсе что такого ни когда не бывает?

Бывает. В GTK+, например, все контейнеры не имеют фиксированных размеров и изменяются в зависимости от содержимого и размеров родителя. Никогда не поверю, что в Дельфи нет подобного.

 

 

Дорогой, скажи это врачам, которые рецепты на латыни выписывают

Так это латынь? Я всегда думал, что это какой-то хитрый шифр, который знают только врачи и фармацевты.

 

 

Пока врачи будут писать на латыни, программисты будут юзать тот язык, на котором он разработан. И первое и второе имеют одни и те же корни и причины.

Писание рецептов на латыни позволяет понимать рецепты фармацевтам со всего мира, и это определённо имеет смысл. Но представте, что рецепты теперь пишутся не только на латыни, но и на всех остальных языках. Фармацевт знает русский - получит рецепт на русском, если же фармацевт китаец, но перевода нет, то он получит рецепт на латыни. В этом и есть смысл локализации: если есть нужный перевод, то будет предоставлен он, а в противном случае - текст на универсальном английском.

Edited by Azbuka_slovensko
  • Upvote 1

Share this post


Link to post

Short link
Share on other sites

Переводить интерфейс среды на русский, это как кормить конфетами диабетика.

wtf??? 

 

учите язык, на котором написан язык программирования! Это ни фига не сложно.

Питон на Си написан или на английском? Edited by ShadowHunterRUS
  • Upvote 1

Share this post


Link to post

Short link
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


  • Recently Browsing   1 member

×
×
  • Create New...