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

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

 

Какая локаль на вторую часть ANSI стоит - то редактор и показывает. Поставишь японскую локаль + шрифт выберешь японский, тогда увидишь японские символы в редакторе. А вот чтоб при любой локали показывать любые символы из юникод шрифта - вот этого редактор не может. Редактор при чтении UTF-8 конвертит символы в ANSI текущей локали и их показывает. Известная проблема доюникодовых редакторов.

Share this post


Link to post

Short link
Share on other sites

Редактор при чтении UTF-8 конвертит символы в ANSI текущей локали и их показывает. Известная проблема доюникодовых редакторов

Т.е. получается, что если строку из редактора переправить в питон, и там выполнить что-то типа str.decode('<locale>').encode('utf-8') получится нормальная строка на юникоде?

Share this post


Link to post

Short link
Share on other sites

Т.е. получается, что если строку из редактора переправить в питон, и там выполнить что-то типа str.decode('<locale>').encode('utf-8') получится нормальная строка на юникоде?

 

Угу. Например при exec скрипта, когда подключен Питон3, Орион именно так и делает со скриптом, конвертит его из ANSI в UTF-8 и затем уже передает в py_exec, а вот Питону2 передается ANSI скрипт в текущей локале, потому что Питон2 нормально работает с текущими локалями, а Питон3 подавай юникод.

 

С трансмиттером сложнее, там юзается же текстовый буфер, а он в ANSI-формате, как результат чего-туда не отправляй все равно в игре кракозяблики будут. Потому exec в трансмиттере это exec ANSI как есть. И даже если стоит преамбула с UTF-8 в начале текста, то это ни чего не меняет, питон в exec такое игнорирует. Самый простой выход из этого это юзать Import/Reload в котором идёт компилирование налету. В таких случаях в байт-коде оказывается текст именно в UTF-8 формате и проблем с отображением в клиенте нет. 

 


Выложил архив с файлами теста 0.9.12.

Edited by StranikS_Scan

Share this post


Link to post

Short link
Share on other sites

Что с картохой? Давно не слежу за ней просто...

 

Было "высший сорт", затем "1 сорт", сейчас "2 сорт". Походу патч просто протух, вот ему сорта и понижают с 0.10.0 до 0.9.12.

Последний раз такое было с 0.7.4.5, если я правильно помню. Это как раз канун выхода патча 0.7.5, который изменил всю игру.

Share this post


Link to post

Short link
Share on other sites

Что с картохой? Давно не слежу за ней просто...

В след. патче наконец-то начали выпиливать legacy-куски. Первый на очереди оказался GUI.Text. Впрочем, туда этому тормозному УГ и дорога.

А вообще - ничего нового. За джва 2 года таки запилили круг обзора, но не смогли даже в это и в придачу жиденько обосрались с dynamic alterations (ака газовая атака в новом режиме, которая сломала как обзор (в тесте союзники и совзводные могли пропасть на пустом месте). Ну и с кругом обзора на текущих картах в 70% сломался накуй геймплей. В худшую сторону. Короче, работают люди, сразу видно. На месте не стоят.

Edited by Polar Fox

Share this post


Link to post

Short link
Share on other sites

 

 

Первый на очереди оказался GUI.Text. Впрочем, туда этому тормозному УГ и дорога.

 

Всё на месте. С каких это он тормознутый?  

Share this post


Link to post

Short link
Share on other sites

Всё на месте. С каких это он тормознутый?  

 

9.12 ещё не качал. В 10 его почти не не было (там куски были, но они скорее всего были к чему-то слинкованы, поэтому просто так их не выпилить). Походу 12 будет просто контент-патчем. Но задатки уже есть.

Тормознутый он с самого начала. Просто в нем нет простора для говнокода (ака AS). Если использовать весь потенциал scaleform, то все эти древние костыли будут на глубочайшем подсосе по производительности. Он считается быстрым исключительно потому, что там есть ТОЛЬКО интерфейс для поключения (attach/dispose/detach). Дай волю - и тормозить будет пуще флеша.

Share this post


Link to post

Short link
Share on other sites
Просто в нем нет простора для говнокода (ака AS).

 

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

 

Он считается быстрым исключительно потому, что там есть ТОЛЬКО интерфейс для поключения (attach/dispose/detach).

 

Угу, как же, попробуй передачу данных сделать 100 вызовов в секунду и сравни фпс при реализации через флэш и через гуи.

 

ЗЫ: Откуда ты вообще таких идей набрался?

Edited by StranikS_Scan

Share this post


Link to post

Short link
Share on other sites

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

 

 

Угу, как же, попробуй передачу данных сделать 100 вызовов в секунду и сравни фпс при реализации через флэш и через гуи.

 

ЗЫ: Откуда ты вообще таких идей набрался?

 

Для многих флеш - это как текст, только красивый. В этом вся разница (с)

 

Scaleforn дает доступ к нативному API DirectX. Про 100 вызовов в секунду сходи в юбисофт, заодно последний nfs из ea поправишь (и предыдущие тоже), а то посоны без тебя пропадают. В картохе хоть и лажают на каждом шагу, но общий подход там верный. То что не сделано, ещё не значит что этого сделать нельзя.

 

ЗЫ: Откуда ты вообще таких идей набрался?

:)

Про 100 вызовов в секунду сходи в юбисофт

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

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

Edited by Polar Fox

Share this post


Link to post

Short link
Share on other sites

 

 

тех же танках

 

Так вот, возвращаясь от потока сумбурно-отвлеченных мыслей к ВОТ-танкам, что меньшее падение фпс даст при частоте обновления 100 раз в сек - GUI.Text или Флеш текст?

Share this post


Link to post

Short link
Share on other sites

Так вот, возвращаясь от потока сумбурно-отвлеченных мыслей к ВОТ-танкам, что меньшее падение фпс даст при частоте обновления 100 раз в сек - GUI.Text или Флеш текст?

 

Вот если без амбиций - то флешка будет держаться на уровне того же гуй.текста. Даже быстрее. Ты ведь видел сорцы БВ, и знаешь как оно работает. Поскольку всё в танкаче сделано на флеше, то нативная флешка (без костылей) будет держать тот же уровень перфоманса, а поскольку реализована система событий - то нет нужды гонять пустые циклы. И, кстати, флешки можно гонять через питоновский multithreading.dummy, что куда дешевле (и быстрее) контейнеров БВ.

 

Если можно и гуи так же - то буду благодарен за подсказку как это сделать.

Кстати, баг-репорт. Всё забывал написать, ибо некритично, но неприятно. Орион хавает ВСЮ опертивку через какое-то время (точно не замечал, но где-то около 2-х суток). (и не в тему, но - добавь, пожалуйста, в заголовок окна путь/имя открытого файла)

_______________________________

P.P.S. Может откроешь исходники самой среды ориона (кроме крипта), думаю часть людей заинтересовалась бы, и сделала бы удобный инструмент. Ну или сам допили, если будет время@желание.

 

Сейчас по сути лично мне не хватает следующих вещей:

- фолдинг

- десяток мелочей в гуи

- подсветка синтаксиса. Оно сейчас вроде работает, но немного криво, и совершенно не различает варианты отступов, и ещё часть мелочей.

Edited by Polar Fox

Share this post


Link to post

Short link
Share on other sites

Первый на очереди оказался GUI.Text.

Нехорошо это. Лежал себе никого не трогал, а теперь взяли и выпилили...

Угу, как же, попробуй передачу данных сделать 100 вызовов в секунду и сравни фпс при реализации через флэш и через гуи.

+100500 DAAPI и ExternalInterface могут не справиться с такой частоты запросов...

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

Зачастую хватает и циферок в принципе...

Вот если без амбиций - то флешка будет держаться на уровне того же гуй.текста. Даже быстрее. Ты ведь видел сорцы БВ, и знаешь как оно работает. Поскольку всё в танкаче сделано на флеше, то нативная флешка (без костылей) будет держать тот же уровень перфоманса, а поскольку реализована система событий - то нет нужды гонять пустые циклы. И, кстати, флешки можно гонять через питоновский multithreading.dummy, что куда дешевле (и быстрее) контейнеров БВ.

Не стоит забывать про вызовы DAAPI или ExternalInterface для передачи данных из Python в ActionScript. Данные из AS берутся редко, чаще всего они считаются питоном. Насколько мне известно, GUI обновляется с интервалом всего 0,03 сек (ЕМНИП), это где-то 30 к/с. Но там в основном числа передаются. Насколько быстро будет идти сериализация/десериализация строк при передаче, не тестил.

А что за multithreading.dummy заместо контейнеров BW?

С трансмиттером сложнее, там юзается же текстовый буфер, а он в ANSI-формате, как результат чего-туда не отправляй все равно в игре кракозяблики будут. Потому exec в трансмиттере это exec ANSI как есть. И даже если стоит преамбула с UTF-8 в начале текста, то это ни чего не меняет, питон в exec такое игнорирует. Самый простой выход из этого это юзать Import/Reload в котором идёт компилирование налету. В таких случаях в байт-коде оказывается текст именно в UTF-8 формате и проблем с отображением в клиенте нет.

Хммм... А что мешает добавить в трансмиттер декодер? Передать ему параметром кодировку локали редактора и выполнять вместо

exec script
exec script.decode('<locale>')
?

Ну бинарный режим и Marshaled Code Object не предлагаю, ибо у тебя нет питоновской стороны в редакторе, и пилить ее ты вряд ли будешь...

 

З.Ы. Попробую, отпишусь))

Share this post


Link to post

Short link
Share on other sites

Нехорошо это. Лежал себе никого не трогал, а теперь взяли и выпилили...

+100500 DAAPI и ExternalInterface могут не справиться с такой частоты запросов...

Зачастую хватает и циферок в принципе...

Не стоит забывать про вызовы DAAPI или ExternalInterface для передачи данных из Python в ActionScript. Данные из AS берутся редко, чаще всего они считаются питоном. Насколько мне известно, GUI обновляется с интервалом всего 0,03 сек (ЕМНИП), это где-то 30 к/с. Но там в основном числа передаются. Насколько быстро будет идти сериализация/десериализация строк при передаче, не тестил.

А что за multithreading.dummy заместо контейнеров BW?

Хммм... А что мешает добавить в трансмиттер декодер? Передать ему параметром кодировку локали редактора и выполнять вместо

exec script
exec script.decode('<locale>')
?

Ну бинарный режим и Marshaled Code Object не предлагаю, ибо у тебя нет питоновской стороны в редакторе, и пилить ее ты вряд ли будешь...

 

З.Ы. Попробую, отпишусь))

 

 

Лень цитировать, поэтому пихнул цитату в спойлер:)

 

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

2. Если нужна такая частота запросов - что-то не так в коде. Нужен либо рефакторинг либо выброс в море. Раз. Вся картинка сейчас рендерится не волшебными гномиками, а тем же флешем (GUI.Text тоже становится флешем, хоть и условно и частично) Два.

3. 0.02 мсек. А теперь...сюрпразйр, мазафака, это костыль картохи. Т.е. разница в middle и high-level API вылазит наружу.

4.Питоновский multiprocessing работает с процессами, а multiprocessing.dummy с тредами. Т.е. проблемы гарбадж коллектора его не ***ут. Там целая экосистема (в питоне 2.7). Если интересно в личку напишу подробнее как оно работает, там увлекательные_истории.жпг

5. А что там с текстами? Может я древний, но у меня всё работает если у файла стоят флаги ютф8.

Edited by Polar Fox

Share this post


Link to post

Short link
Share on other sites

думаю часть людей заинтересовалась бы

Я так не думаю.

Заинтересованные давно уже юзают норм среды программирования под питон.

Один PyCharm чего стоит...

 

десяток мелочей в гуи

Используемая Странниксом версия Delphi не может просто так взять и предоставить тебе функционал, по созданию мелочей в GUI.

Здесь нужно делать выбор - лезть сквозь дебри Delphi и делать свои компоненты/допиливать чужие, или писать проект с нуля на каком-нибудь мощном ЯП с мощным набором библиотек.

Я давно предлагал второй путь.

Написать PjOrion на C++ или на другом мощном языке.

 


Я давно использую Delphi. Писать на нем легко. Он мощный. Но как только дело заходит в сторону GUI, то VCL радует своими багами отрисовки.

Edited by ShadowHunterRUS

Share this post


Link to post

Short link
Share on other sites

Я так не думаю.

Заинтересованные давно уже юзают норм среды программирования под питон.

Один PyCharm чего стоит...

 

Используемая Странниксом версия Delphi не может просто так взять и предоставить тебе функционал, по созданию мелочей в GUI.

Здесь нужно делать выбор - лезть сквозь дебри Delphi и делать свои компоненты/допиливать чужие, или писать проект с нуля на каком-нибудь мощном ЯП с мощными подключенными библиотеками.

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

 

Я давно использую Delphi. Писать на нем легко. Он мощный. Но как только дело заходит в сторону GUI, то VCL радует своими МАТЬ ЕГО багами отрисовки.

Смари фокус! :) Попросуй нарисовать компонентов, а затем получить их сслыки через гуй. Там будет сюрзпрайз, мазафака))))

Edited by Polar Fox

Share this post


Link to post

Short link
Share on other sites

Попросуй нарисовать компонентов, а затем получить их сслыки через гуй

А это к чему? Я совсем не понял, что ты хочешь? Edited by ShadowHunterRUS

Share this post


Link to post

Short link
Share on other sites

А это к чему? Я совсем не понял, что ты хочешь?

 

Нарисуй боевку, потом перегрузи через флеш свои методы. Через 2-4- боя ты порадуешься)))))

Нарисуй боевку, потом перегрузи через флеш свои методы. Через 2-4- боя ты порадуешься)))))

 

P.S. Гарбадж коллектор их не соберет.

Edited by Polar Fox

Share this post


Link to post

Short link
Share on other sites

 

 

Орион хавает ВСЮ опертивку через какое-то время

 

Не сам по себе же хавает. Два дня наверно гонял его без перезапуска? Погляжу где накапливаться может.

 

 

 

добавь, пожалуйста, в заголовок окна путь/имя открытого файла

 

Эээ, путь там отображается. Ты какую версию используешь-то?

 

 

 

Может откроешь исходники самой среды ориона (кроме крипта), думаю часть людей заинтересовалась бы, и сделала бы удобный инструмент. Ну или сам допили, если будет время@желание.
 

 

Эээ, о чем речь? Орион на Delphi6 написан, текстовый редактор, это TSynEditor из SynEditStudio, исходники тут, взаимодействие с питоном идет через TPython4Delphi ссылка на исходники есть в окне About (F1). Однако всё это давно померло, еще до юникодового периода, единственный кто там чего-то ковыряет в этом коде так это я, юзая его в XCPad и в Орионе, фикся баги и впиливая кой какой функционал. Если кто-то этим и сможет воспользоваться, то только такие же динозавры как я.

 

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

 

 

 

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

 

Не, если тебе нужен полноценный гуи, то юзай Notepad++ или PyCharm.... В Орионе все такие гуи - это уровень блокнота.

 

Отступы через \t это я допилю.

  • 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   0 members

    No registered users viewing this page.

×
×
  • Create New...