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

Я юзаю вот такую штуку attachicon.gifUFileDrop.zip

Странно все это!

Этот файл не виноват. Мне нужно знать, что именно происходит при инициализации окна.

Edited by ShadowHunterRUS

Share this post


Link to post

Short link
Share on other sites
при инициализации окна

 

Что ты подразумеваешь под этим словом?

 

Перехват событий и обработка идет именно в UFileDrop. Это позволяем мне ни чего не колбасить самому в коде Ориона. Я только создаю экземпляр класса TFileDropTarget в FormCreate и назначаю ему процедуру юзнания списка файлов на его эвент OnFilesDropped(DropInfo: TDragDropInfo). В процедуре юзаю DropInfo.Files.Count и DropInfo.Files[0], беру имя файла, открываю, читаю и т.д.. На этом моя работа с ДрагЭндДроп заканчивается.

Edited by StranikS_Scan

Share this post


Link to post

Short link
Share on other sites

У меня не получилось запустить скрипт с новым протектором, возникает исключение такое как снизу. Причем не важно откуда запускать, из игры, из консоли или из PjOrion'a - не работает нигде. Пробовал с различными опциями протектора.

 

Traceback (most recent call last):

  File "CameraNode.py", line 22, in load_mods

  File "<string>", line 1, in <module>

  File "test", line 1, in <pjorion_protected>

  File "test", line 1, in

  File "test", line 1, in

NameError: global name '__builtin__' is not defined

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

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

Заманчиво.

Edited by ShadowHunterRUS

Share this post


Link to post

Short link
Share on other sites

Заманчиво. Но на win не вернусь.

 

Вставил обертку, погляди чего напишет 

Edited by StranikS_Scan

Share this post


Link to post

Short link
Share on other sites

Вставил обертку, погляди чего напишет

Такс. И где смотреть?

Попробую сейчас поставит wine beta, может в нем дело.

Я могу перетаскивать окно "Select processor", но не могу ничего в нем нажать)

post-16296-0-97678300-1435339781_thumb.png

Причем это окно появляется рандомно.

Все дело в этом окошке. Я уверен!

Edited by ShadowHunterRUS

Share this post


Link to post

Short link
Share on other sites

У меня не получилось запустить скрипт с новым протектором, возникает исключение такое как снизу. Причем не важно откуда запускать, из игры, из консоли или из PjOrion'a - не работает нигде. Пробовал с различными опциями протектора.

 

 

Поправил косячок. Пробуй Альфу 2 - ТЫЦ.

 

Я могу перетаскивать окно "Select processor", но не могу ничего в нем нажать)

 

 

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

 

Все дело в этом окошке. Я уверен!

 

Ну чего такого с ним может быть? Обычная форма, свойства:

object FProcessorSelection: TFProcessorSelection
  Left = 669
  Top = 446
  BorderIcons = [biSystemMenu]
  BorderStyle = bsDialog
  Caption = 'Select processor'
  ClientHeight = 224
  ClientWidth = 537
  Color = clBtnFace
  Font.Charset = DEFAULT_CHARSET
  Font.Color = clWindowText
  Font.Height = -13
  Font.Name = 'Segoe UI'
  Font.Style = []
  KeyPreview = True
  OldCreateOrder = False
  Position = poDesktopCenter
  OnKeyUp = FormKeyUp
  PixelsPerInch = 120
  TextHeight = 17
  object bOK: TButton
    Left = 136
    Top = 185
    Width = 130
    Height = 28
    Caption = 'OK'
    ModalResult = 1
    TabOrder = 1
  end
  object bCancel: TButton
    Left = 272
    Top = 185
    Width = 130
    Height = 28
    Caption = 'Cancel'
    ModalResult = 2
    TabOrder = 2
  end
  object rgDecompiler: TRadioGroup
    Left = 8
    Top = 3
    Width = 521
    Height = 166
    Columns = 2
    TabOrder = 0
  end
end

Вызывается в обработчике эвента дроппера вот так:

         with TFProcessorSelection.Create(Application) do
          try
          rgDecompiler.Items.Append(aDCUncompyle2.Caption);
          rgDecompiler.Items.Append(aDCDecompylePP.Caption);
          rgDecompiler.Items.Append(aDCFupy.Caption);
          rgDecompiler.Items.Append(aDCUnpyc.Caption);
          rgDecompiler.Items.Append('Show bytecode info (Python 2.3-3.4)');
          rgDecompiler.Items.Append('Disassemble file (Python 2.3-3.4)');
          rgDecompiler.ItemIndex:=Num;
          Result:=ShowModal;
          if Result = mrOK then
           Num:=rgDecompiler.ItemIndex;
          finally
          Free;
          end; 
Edited by StranikS_Scan
  • Upvote 2

Share this post


Link to post

Short link
Share on other sites

 

Разве не так?

ModalResult:=ShowModal;
if ModalResult = mrOK then

 

Мы снаружи а не внутри, Result просто названа Result, это локальная пырменная в OnFilesDropped, код выше находится внутри OnFilesDropped, который срабатывает при ДрагАндДроп. А ModalResult находится внутри TFProcessorSelection и именно значение ModalResult и возвращает функция ShowModal

function OnFilesDropped(...)...;
var Result
begin
...
with TFProcessorSelection.Create(Application) do
          try
...
          Result:=ShowModal;
...
          finally
          Free;
          end;
...
end;
Edited by StranikS_Scan

Share this post


Link to post

Short link
Share on other sites

Мы снаружи а не внутри, Result просто названа Result, это локальная пырменная в OnFilesDropped, код выше находится внутри OnFilesDropped, который срабатывает при ДрагАндДроп. А ModalResult находится внутри TFProcessorSelection и именно значение ModalResult и возвращает функция ShowModal

procedure ShowWoTTwk_dll(handle: THandle);
begin
  application.handle:=handle;
  WotTweakerForm:=TWotTweakerForm.create(application);
  try 
    WotTweakerForm.ShowModal;
  finally
    WotTweakerForm.Free;
  end;
end;
ShowWoTTwk_dll(Application.handle);

Мой твикер работал так. Значит не в форме дело... Дело в кривом Вине!

Edited by ShadowHunterRUS

Share this post


Link to post

Short link
Share on other sites
procedure ShowWoTTwk_dll(handle: THandle);
begin
  application.handle:=handle;
  WotTweakerForm:=TWotTweakerForm.create(application);
  try 
    WotTweakerForm.ShowModal;
  finally
    WotTweakerForm.Free;
  end;
end;
ShowWoTTwk_dll(Application.handle);

Мой твикер работал так. Значит не в форме дело... Дело в кривом Вине!

 

 

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

Share this post


Link to post

Short link
Share on other sites
Может с настройками формы чего не так? Я их вверху приводил, попробуй взять форму настроить также и вызвать модально.

Модальное окно Run->Parameters запускается без ошибок, чем код этого окна отличается от кода Select processor?

Мне кажется не передается управление этому окну.

Edited by ShadowHunterRUS

Share this post


Link to post

Short link
Share on other sites

 

 

чем код этого окна отличается от кода Select processor?

 

Ни чем. 

Share this post


Link to post

Short link
Share on other sites

Ладно. Пофиг на это.

DLL Python 2.7.10 будет?

 

Если вышло - значит будет.

Share this post


Link to post

Short link
Share on other sites

Если вышло - значит будет.

Читал ещё патч есть с более высоких версий что скорость добавляет этой значительно.

  • Downvote 3

Share this post


Link to post

Short link
Share on other sites
Делать сложный анализатор не хочется, я чисто на regExp сделал.

все уже сделано до нас ;)

https://docs.python.org/2/library/ast.html в помощь + погугли решения как из ast обратно собрать исходник (там как раз комменты пропускать можно. под рукой нет сейчас. если что позже скину).

Edited by fecell

Share this post


Link to post

Short link
Share on other sites

все уже сделано до нас ;)

https://docs.python.org/2/library/ast.html в помощь + погугли решения как из ast обратно собрать исходник (там как раз комменты пропускать можно. под рукой нет сейчас. если что позже скину).

 

Ты не понял, я сделал не в питоне а на пасике через TRegExp, он вполне справляется. Под питон есть же минифер, причем новый, можно его заюзать.

Edited by StranikS_Scan
  • 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...