sae 2 #307551 Posted December 28, 2015 (edited) Вот. После обфускации мод ломается, если просто протектор, то работает. Если всё вместе, соответственно, не пашет. Программа по стандарту, из "коробки так сказать", ни чего не меняю, просто открыл, обфускация, протект. RontgenBlur-master.zip P.S. Или объясните, пожалуйста, как проблему избежать? Спасибо. По-моему, дело не в обфускации, а в неудачном способе запуска скрипта. Если в конце вместо: def init(): BigWorld.callback(2, delayInit) Сделать: ВigWorld.callback(2, delayInit) Тогда обфускация не мешает ему запуститься. Edited December 28, 2015 by sae Quote Share this post Link to post Short link Share on other sites
akey 35 #307554 Posted December 28, 2015 (edited) Тогда обфускация не мешает ему запуститься. То есть: BigWorld.callback(2, ModCallBack) return BigWorld.callback(2, delayInit) return ? Edited December 28, 2015 by akey Quote Share this post Link to post Short link Share on other sites
sae 2 #307557 Posted December 28, 2015 (edited) BigWorld.callback(2, ModCallBack) return ВigWorld.callback(2, delayInit) В том посте специально написал так, чтобы были видны, где есть отступы, а где их нет (если вдруг, вы не очень хорошо в питоне). В данном моде запуск производится через функцию init(), но при обфускации имена функций меняются и "волшебный" способ запуска перестаёт работать. ЗЫ. Надеюсь, понимаете, что самый последний (самый нижний) return уже не нужен. Edited December 28, 2015 by sae Quote Share this post Link to post Short link Share on other sites
StranikS_Scan 4,210 #307574 Posted December 28, 2015 (edited) Да всё верно, если сделать обфускацию текста, то имя def init() будет заменено на другое. И тогда загрузчик не сможет вызвать <модуль>.init() И еще момент если накладывать протектор, с включенной опцией "Lock attr review and double import" то будет тот же эффект, протектор не даст загрузчику вызвать какие-либо функции из импортируемого модуля. Так что стоит забить на init() и не пользоваться им, если планируется обфускация мода. Edited December 28, 2015 by StranikS_Scan Quote Share this post Link to post Short link Share on other sites
StranikS_Scan 4,210 #308238 Posted January 2, 2016 @StranikS_Scan, давно хотел попросить галочку в Орионе, чтобы при старте программы он не линковался с питоном. Очень тормознуто стартует. А среда питона в Орионе мне редко нужна. Вопрос вот возник, а какая подсветка синтаксиса должна быть при отключенном подключении, сейчас она вырубается. И нужна вообще какая-то если подключения нет? 1 Quote Share this post Link to post Short link Share on other sites
SkepticalFox 1,445 #308239 Posted January 2, 2016 И нужна вообще какая-то если подключения нет? xml нужен... Quote Share this post Link to post Short link Share on other sites
StranikS_Scan 4,210 #308519 Posted January 5, 2016 (edited) Столкнулся с еще одной интересной ситуацией. О ней первоначально писал spoter. Короче многие наверно обратили внимание что название модулей в коде игры, могут иметь заглавные буквы, однако при этом файлы всех модулей в игре не содержат заглавных букв. Например: res\scripts\client\account.py и видим в нём from account_helpers import AccountSyncData идем по адресу и видим: account_helpers\accountsyncdata.pyc при этом в файле __init__.pyc ни чего про AccountSyncData нет. Однако если глянуть что прописано в co_filename модуля accountsyncdata.pyc в любом редакторе можно увидеть искомую запись "scripts/client/account_helpers/AccountSyncData.py". И вот вопрос - как питон в тынках считывает файл accountsyncdata.pyc при импорте модуля AccountSyncData? Я попытался воспроизвести это вручную: Запилил модуль a1.py с содержимым from aaa import bBb создал файлы aaa\__init__.py aaa\bBb.py Содержащие: __init__.pyc слово pass, а bBb.py команду print 123 Затем скомпилил их, удалил все py, а bBb.pyc переименовал в bbb.pyc Ну, а после этого сделал import a1 в Орионе, однако как и ожидалось словил ошибку, мол модуль bBb не существует ((( Edited January 5, 2016 by StranikS_Scan Quote Share this post Link to post Short link Share on other sites
IzeBerg 128 #308520 Posted January 5, 2016 (edited) .... Регистронезависимость? Не? Попробуй импортить accountsyncdata и AccountSyncData - результат будет одинаковый. Edited January 5, 2016 by IzeBerg Quote Share this post Link to post Short link Share on other sites
StranikS_Scan 4,210 #308522 Posted January 5, 2016 (edited) Регистронезависимость? Не? Попробуй импортить accountsyncdata и AccountSyncData - результат будет одинаковый. У меня два подозрения, либо регистронезависимость включена в игре, либо юзается co_filename вместо имени фала. У меня в Орионе и как я понимаю в стандартном питоне ни чего такого нет. Как это включить и где? Edited January 5, 2016 by StranikS_Scan Quote Share this post Link to post Short link Share on other sites
IzeBerg 128 #308524 Posted January 5, 2016 (edited) У меня два подозрения, либо регистронезависимость включена в игре, либо юзается co_filename вместо имени фала. У меня в Орионе и как я понимаю в стандартном питоне ни чего такого нет. Как это включить и где? Имхо. В игре включена. co_filename вообще никакой роли не играет. Можешь там хоть "ВасяПупкин" написать, клиенту пофиг. Edited January 5, 2016 by IzeBerg Quote Share this post Link to post Short link Share on other sites
SkepticalFox 1,445 #308540 Posted January 5, 2016 в игре включена регистронезависимость +1 Quote Share this post Link to post Short link Share on other sites
StranikS_Scan 4,210 #309050 Posted January 9, 2016 Сел за ковыряние отрисовки текста в TSynEditor, так как уже самому захотелось начать уже юзать табуляцию в тексте да и велосипедная отрисовка всяких плющек через OnPaint уже дает тормоза. Разобрал по полочкам код отрисовки, в принципе он оказался весьма простым и довольно грамотно написанным. В самых общих чертах выглядит вот так (для себя faq делал) 3. Механизм отрисовки строк PaintTextLines (LEVEL-0) [ComputeSelectionInfo] PaintLines (LEVEL-1) AddHighlightToken -----+ (LEVEL-2) PaintHighlightToken <--+ [SetDrawingColors --> fTextDrawer.Color] PaintToken (LEVEL-3) [fTextDrawer.ExtTextOut] Включил поддержка табуляции, кое-чего пришлось немного подработать, реализовал серую подсветку спец. символом, затем встроил подсветку отступов, сейчас сижу переношу в код компонента подсветку выделенных слов, подчеркивание заголовков def и class, подсветку скобок и т.д. Чтоб всё нативное было. Quote Share this post Link to post Short link Share on other sites
SkepticalFox 1,445 #309052 Posted January 9, 2016 (edited) самому захотелось начать уже юзать табуляцию в текстетабуляция не нужна! через OnPaint уже дает тормозаибо нужно канвасом или Direct2D рисовать, хотя наверное канвасом и рисовалось(сам когда-то ICQ писал в Delphi и рисовал смайлы по Memo канвасом)... Direct2D вроде нет в D7... Давно пора с неё переезжать... Edited January 9, 2016 by ShadowHunterRUS Quote Share this post Link to post Short link Share on other sites
StranikS_Scan 4,210 #309055 Posted January 9, 2016 табуляция не нужна! ибо нужно канвасом или Direct2D рисовать, хотя наверное канвасом и рисовалось... Direct2D вроде нет в D7... Давно пора с неё переезжать... Еще как нужна, зацени как прикольно выглядит Там канвас используется, а непосредственно рисование идет через спец модуль SynTextDrawer, в котором есть класс рисовальщика, ему ссылка на канву окна передается. Я в него даже не залазил, оно мне и не надо. А OnPaint тоже самое по сути делает та же отрисовка по конве, но мне там приходиться до кучи лишнего кода писать, вот и тормоза. А когда в нативную часть залазишь, там всё есть под рукой и код в разы меньше становиться и тормоза исчезают. Quote Share this post Link to post Short link Share on other sites
SkepticalFox 1,445 #309056 Posted January 9, 2016 Еще как нужна, зацени как прикольно выглядитНу не знаю. Орион меня отучил от неё) Quote Share this post Link to post Short link Share on other sites
StranikS_Scan 4,210 #309058 Posted January 9, 2016 Ну не знаю. Орион меня отучил от неё) Да у меня также, но вот попробовал табы и понял, что мы просто лишали себя удовольствия )))))) 1 Quote Share this post Link to post Short link Share on other sites
GPCracker 2,088 #309063 Posted January 9, 2016 Да у меня также, но вот попробовал табы и понял, что мы просто лишали себя удовольствия ))))))И не только удовольствия... Берешь такой кусочек кода, где отступы по 2-3 пробела, вставляешь где 4 и ловишь ошибку. Ну или сидишь и добавляешь/удаляешь лишний пробел. А с табами все просто - один отступ - один символ. Нормально работают "стрелочки" (посвящается нелюбителям тянуться после набора на клавиатуре двумя руками ... к мышке для "передвинуть курсор"). Есть на хабре холивар по теме. Quote Share this post Link to post Short link Share on other sites
SkepticalFox 1,445 #309072 Posted January 9, 2016 (edited) И не только удовольствия...Я уже начал ненавидеть Ваши табуляции bitbucket их портит совсем( Edited January 9, 2016 by ShadowHunterRUS Quote Share this post Link to post Short link Share on other sites
GPCracker 2,088 #309077 Posted January 9, 2016 bitbucket их портит совсем(В плане портит? То что отображаются на сайте криво? Так это хрен бы с ним, я надеюсь ты не через сайт правки заносишь)))Кстати, не пробовал делать 'Texture': ( 'normalMap', 'diffuseMap', ... 'crashTileMap' ),Т.е. как со словарем ниже.Плюс еще есть моменты касаемо настройки Git на локальном компе. Тут в двух словах не скажешь. 1 Quote Share this post Link to post Short link Share on other sites
SkepticalFox 1,445 #309078 Posted January 9, 2016 (edited) Кстати, не пробовал делатьТо что нужно, совсем я что-то тупанул) https://bitbucket.org/ShadowHunterRUS/tank-viewer-blender-addon/src/f67528c7cbb6ae4bcefbb491802e6890ce3289b1/blender_io_bigworld_model/common.py?at=master&fileviewer=file-view-default Так это хрен бы с ним, я надеюсь ты не через сайт правки заносишь)))Нотепэдплюсплюс + SourceTree ессно Edited January 9, 2016 by ShadowHunterRUS Quote Share this post Link to post Short link Share on other sites