Иконка ресурса

AIView - Декомпилятор AI для GF / Freya (+source C#) 2021-03-05

Нет прав для скачивания

Иногда при открытии некторых классов есть ошибка:


Код:
Декомпиляция Прервана
Причина:
    не соответствие проекта загруженным данным.


Индекс за пределами диапазона. Индекс должен быть положительным числом, а его размер не должен превышать размер коллекции.
Имя параметра: index

   в System.ThrowHelper.ThrowArgumentOutOfRangeException(ExceptionArgument argument, ExceptionResource resource)
   в System.Collections.Generic.List`1.get_Item(Int32 index)
   в AiView.function.process_class(Int32 startFrom, Int32 vars_commented, Boolean cont, Int32 jumped_from)
   в AiView.DecNasc.GetDecompAi(AiClass iai)
Видимо не хватает поддержки каких то функций которые используются в конкретном AI что открывается.
 
Иногда при открытии некторых классов есть ошибка:


Код:
Декомпиляция Прервана
Причина:
    не соответствие проекта загруженным данным.


Индекс за пределами диапазона. Индекс должен быть положительным числом, а его размер не должен превышать размер коллекции.
Имя параметра: index

   в System.ThrowHelper.ThrowArgumentOutOfRangeException(ExceptionArgument argument, ExceptionResource resource)
   в System.Collections.Generic.List`1.get_Item(Int32 index)
   в AiView.function.process_class(Int32 startFrom, Int32 vars_commented, Boolean cont, Int32 jumped_from)
   в AiView.DecNasc.GetDecompAi(AiClass iai)
Видимо не хватает поддержки каких то функций которые используются в конкретном AI что открывается.
AI.obj каких хроник и на каком выбранном классе такие ошибки? А то метод process_class большой, не понятно на какой строке выбрасывает исключение ThrowArgumentOutOfRangeException
 
Хроники GF. Ощибка на классах которые создавали сами, такие как гм баффер или гм шоп. Скажем так сугубо "кастомные класса".
Возможно не хватает поддержки адвекса :rolleyes:
 
1615026838800.png
Взял непосредственно с сервера npc_pch.txt положил его /data_gf_pts, когда загружаю ai.obj то ошибка вверху на скине.
 
Код:
Подробная информация об использовании оперативной
(JIT) отладки вместо данного диалогового
окна содержится в конце этого сообщения.

************** Текст исключения **************
System.IndexOutOfRangeException: Индекс находился вне границ массива.
   в AiView.DecNasc.loadData()
   в AiView.Main.OnLoadAiClick(Object sender, EventArgs e)
   в System.Windows.Forms.ToolStripItem.RaiseEvent(Object key, EventArgs e)
   в System.Windows.Forms.ToolStripMenuItem.OnClick(EventArgs e)
   в System.Windows.Forms.ToolStripItem.HandleClick(EventArgs e)
   в System.Windows.Forms.ToolStripItem.HandleMouseUp(MouseEventArgs e)
   в System.Windows.Forms.ToolStripItem.FireEventInteractive(EventArgs e, ToolStripItemEventType met)
   в System.Windows.Forms.ToolStripItem.FireEvent(EventArgs e, ToolStripItemEventType met)
   в System.Windows.Forms.ToolStrip.OnMouseUp(MouseEventArgs mea)
   в System.Windows.Forms.ToolStripDropDown.OnMouseUp(MouseEventArgs mea)
   в System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
   в System.Windows.Forms.Control.WndProc(Message& m)
   в System.Windows.Forms.ScrollableControl.WndProc(Message& m)
   в System.Windows.Forms.ToolStrip.WndProc(Message& m)
   в System.Windows.Forms.ToolStripDropDown.WndProc(Message& m)
   в System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
   в System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
   в System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)


************** Загруженные сборки **************
mscorlib
    Версия сборки: 4.0.0.0
    Версия Win32: 4.8.4341.0 built by: NET48REL1LAST_C
    CodeBase: file:///C:/Windows/Microsoft.NET/Framework/v4.0.30319/mscorlib.dll
----------------------------------------
AiView
    Версия сборки: 1.0.0.0
    Версия Win32: 1.0.0.0
    CodeBase: file:///F:/L2/AI/Compile/AiView.exe
----------------------------------------
System.Windows.Forms
    Версия сборки: 4.0.0.0
    Версия Win32: 4.8.4341.0 built by: NET48REL1LAST_C
    CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Windows.Forms/v4.0_4.0.0.0__b77a5c561934e089/System.Windows.Forms.dll
----------------------------------------
System
    Версия сборки: 4.0.0.0
    Версия Win32: 4.8.4300.0 built by: NET48REL1LAST_C
    CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System/v4.0_4.0.0.0__b77a5c561934e089/System.dll
----------------------------------------
System.Drawing
    Версия сборки: 4.0.0.0
    Версия Win32: 4.8.4084.0 built by: NET48REL1
    CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Drawing/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll
----------------------------------------
WindowsFormsIntegration
    Версия сборки: 4.0.0.0
    Версия Win32: 4.8.4084.0 built by: NET48REL1
    CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/WindowsFormsIntegration/v4.0_4.0.0.0__31bf3856ad364e35/WindowsFormsIntegration.dll
----------------------------------------
PresentationCore
    Версия сборки: 4.0.0.0
    Версия Win32: 4.8.4341.0 built by: NET48REL1LAST_C
    CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_32/PresentationCore/v4.0_4.0.0.0__31bf3856ad364e35/PresentationCore.dll
----------------------------------------
WindowsBase
    Версия сборки: 4.0.0.0
    Версия Win32: 4.8.4341.0 built by: NET48REL1LAST_C
    CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/WindowsBase/v4.0_4.0.0.0__31bf3856ad364e35/WindowsBase.dll
----------------------------------------
System.Core
    Версия сборки: 4.0.0.0
    Версия Win32: 4.8.4341.0 built by: NET48REL1LAST_C
    CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Core/v4.0_4.0.0.0__b77a5c561934e089/System.Core.dll
----------------------------------------
ICSharpCode.AvalonEdit
    Версия сборки: 4.2.0.8752
    Версия Win32: 4.2.0.8752
    CodeBase: file:///F:/L2/AI/Compile/ICSharpCode.AvalonEdit.DLL
----------------------------------------
PresentationFramework
    Версия сборки: 4.0.0.0
    Версия Win32: 4.8.4341.0
    CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/PresentationFramework/v4.0_4.0.0.0__31bf3856ad364e35/PresentationFramework.dll
----------------------------------------
System.Xaml
    Версия сборки: 4.0.0.0
    Версия Win32: 4.8.4341.0 built by: NET48REL1LAST_C
    CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Xaml/v4.0_4.0.0.0__b77a5c561934e089/System.Xaml.dll
----------------------------------------
System.Configuration
    Версия сборки: 4.0.0.0
    Версия Win32: 4.8.4190.0 built by: NET48REL1LAST_B
    CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Configuration/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Configuration.dll
----------------------------------------
System.Xml
    Версия сборки: 4.0.0.0
    Версия Win32: 4.8.4084.0 built by: NET48REL1
    CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Xml/v4.0_4.0.0.0__b77a5c561934e089/System.Xml.dll
----------------------------------------
mscorlib.resources
    Версия сборки: 4.0.0.0
    Версия Win32: 4.8.4084.0 built by: NET48REL1
    CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/mscorlib.resources/v4.0_4.0.0.0_ru_b77a5c561934e089/mscorlib.resources.dll
----------------------------------------
PresentationFramework.Aero2
    Версия сборки: 4.0.0.0
    Версия Win32: 4.8.4084.0 built by: NET48REL1
    CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/PresentationFramework.Aero2/v4.0_4.0.0.0__31bf3856ad364e35/PresentationFramework.Aero2.dll
----------------------------------------
PresentationFramework.resources
    Версия сборки: 4.0.0.0
    Версия Win32: 4.8.4084.0
    CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/PresentationFramework.resources/v4.0_4.0.0.0_ru_31bf3856ad364e35/PresentationFramework.resources.dll
----------------------------------------
PresentationCore.resources
    Версия сборки: 4.0.0.0
    Версия Win32: 4.8.4084.0 built by: NET48REL1
    CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/PresentationCore.resources/v4.0_4.0.0.0_ru_31bf3856ad364e35/PresentationCore.resources.dll
----------------------------------------
PresentationFramework-SystemXml
    Версия сборки: 4.0.0.0
    Версия Win32: 4.8.4084.0
    CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/PresentationFramework-SystemXml/v4.0_4.0.0.0__b77a5c561934e089/PresentationFramework-SystemXml.dll
----------------------------------------
UIAutomationTypes
    Версия сборки: 4.0.0.0
    Версия Win32: 4.8.4341.0 built by: NET48REL1LAST_C
    CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/UIAutomationTypes/v4.0_4.0.0.0__31bf3856ad364e35/UIAutomationTypes.dll
----------------------------------------
UIAutomationProvider
    Версия сборки: 4.0.0.0
    Версия Win32: 4.8.4341.0 built by: NET48REL1LAST_C
    CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/UIAutomationProvider/v4.0_4.0.0.0__31bf3856ad364e35/UIAutomationProvider.dll
----------------------------------------
System.Windows.Forms.resources
    Версия сборки: 4.0.0.0
    Версия Win32: 4.8.4084.0 built by: NET48REL1
    CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Windows.Forms.resources/v4.0_4.0.0.0_ru_b77a5c561934e089/System.Windows.Forms.resources.dll
----------------------------------------

************** Оперативная отладка (JIT) **************
Для подключения оперативной (JIT) отладки файл .config данного
приложения или компьютера (machine.config) должен иметь
значение jitDebugging, установленное в секции system.windows.forms.
Приложение также должно быть скомпилировано с включенной
отладкой.

Например:

<configuration>
    <system.windows.forms jitDebugging="true" />
</configuration>

При включенной отладке JIT любое необрабатываемое исключение
пересылается отладчику JIT, зарегистрированному на данном компьютере,
вместо того чтобы обрабатываться данным диалоговым окном.
 
👑THE KING👑, не получилось у меня воспроизвести такую ошибку из тех ai.obj что у меня есть. "Индекс находился вне границ массива" - скорее всего связано с нехваткой данных в одном из следующих фалов:
1615030292889.png
 
Функции неподдерживаемые просто.

Да, кстати, декомпилятор очень кривой, написанный каким-то скрипт кидди. Брать за основу точно не стоит.
 
Вроде тут до вайпа выкладывали полный ai компилятор для AdvExt?
 
Если вдруг вам нужен рабочий -
3 года назад протестирован был очень хорошо (ai.obj -> decompil -> compil -> ai.obj и сравнивались 2 файла эти).
Работает для всех хроник, только датки добавлять надо. Пользуюсь результатами на продакшне больше года уже, все квесты от перекомпила рабочие на 100%.
 
Если вдруг вам нужен рабочий -
видимо не полная поддержка всех функций Адвекса.

Код:
Decompile teleporter_server_postitionPHP Fatal error:  Uncaught RuntimeException: Function 234947206 not found in F:\L2\AI\nasc-decompiler-master\core\data.php:67
Stack trace:
#0 F:\L2\AI\nasc-decompiler-master\core\parser.php(443): Data->getFunction(234947206)
#1 F:\L2\AI\nasc-decompiler-master\core\parser.php(117): Parser->parseFuncCall(Object(Token))
#2 F:\L2\AI\nasc-decompiler-master\core\main.php(271): Parser->parseClass(Object(Token))
#3 F:\L2\AI\nasc-decompiler-master\core\main.php(75): Main->decompile()
#4 F:\L2\AI\nasc-decompiler-master\core\main.php(392): Main->run()
#5 {main}
  thrown in F:\L2\AI\nasc-decompiler-master\core\data.php on line 67
 
видимо не полная поддержка всех функций Адвекса.

Код:
Decompile teleporter_server_postitionPHP Fatal error:  Uncaught RuntimeException: Function 234947206 not found in F:\L2\AI\nasc-decompiler-master\core\data.php:67
Stack trace:
#0 F:\L2\AI\nasc-decompiler-master\core\parser.php(443): Data->getFunction(234947206)
#1 F:\L2\AI\nasc-decompiler-master\core\parser.php(117): Parser->parseFuncCall(Object(Token))
#2 F:\L2\AI\nasc-decompiler-master\core\main.php(271): Parser->parseClass(Object(Token))
#3 F:\L2\AI\nasc-decompiler-master\core\main.php(75): Main->decompile()
#4 F:\L2\AI\nasc-decompiler-master\core\main.php(392): Main->run()
#5 {main}
  thrown in F:\L2\AI\nasc-decompiler-master\core\data.php on line 67
можно донести чего не хватает, там же всё в гите вроде есть

JSON:
    "218234882": {
        "name": "AddTimerEx",
        "arguments": [
            "int",
            "int"
        ],
        "type": "void"
    },
 
да, в data\gf\functions.json есть

Код:
    "218234882": {
        "name": "AddTimerEx",
        "arguments": [
            "int",
            "int"
        ],
        "type": "void"
    },
но при запуке run.bat --chronicles=gf валится с ошибкой что написал вверху.
 
да, в data\gf\functions.json есть

Код:
    "218234882": {
        "name": "AddTimerEx",
        "arguments": [
            "int",
            "int"
        ],
        "type": "void"
    },
но при запуке run.bat --chronicles=gf валится с ошибкой что написал вверху.
ну это же явно примерно просто
тебе нужно найти функцию 234947206, обозвать её и назначить агументы
вот так, судя по логике вещей, он сможет понять, что такое делать с непонятными местами
 
Назад
Сверху Снизу