Фэндом


ВведениеПравить

В программировании декомпиляция – процесс получения исходного кода исполняемого файла, используемый для программирования. Есть несколько причин декомпиляции, особенно в случае с Террарией:

  • Декомпиляция позволяет Вам видеть исходный код, используемый официальными разработчиками.
  • Она позволяет Вам видеть, как элементы и эффекты игры были запрограммированы. Вы можете использовать это как основу.
  • Это позволяет Вам производить любые изменения, которые Вы считаете целесообразным. Именно так начинался проект tConfig


ТребованияПравить

Вы будете нуждаться в следующем:

  • Программа под названием ILSpy
  • Программа для редактирования или просмотра кода


Декомпиляция игрыПравить

  • Загрузите ILSpy, если Вы уже не сделали этого. Поместите архив на рабочий стол и установите его.
  • Запуск ILSpy. Выберите File, затем Open. Перейдите к вашей стимовской Terraria-папке, которая обычно находится в C:\Program Files (x86)\Steam\SteamApps\Common\Terraria\, затем выбираете
файл для декомпиляции
  • Исходная игра (если моды не установлены): Terraria.exe
  • Исходная игра (с tConfig): TerrariaOriginalBackup.exe
  • tConfig: tConfig.exe


  • Независимо от того, какой Вы выбрали файл, сгенерируется древо файла для предварительного просмотра. После этого выберите File, затем Save Code. Выберите папку, чтобы сохранить код.
  • Тогда ILSpy перепроектирует игру в несколько дюжин файлов C# в выбранной папке, это при работе с Visual Studio.

Пожалуйста, отметьте: Этот процесс займет время, наберитесь терпения! На современном высококачественном компьютере потребуется приблизительно 10 минут. Если Ваш компьютер устаревший, то он может находиться 30 минут в рабочем состоянии или даже больше!


  • После того, как ILSpy закончит работу, у Вас должно быть много файлов C# в папке, которую Вы выбрали.


Исследование кодаПравить

  • Теперь Вы можете просмотреть выбранный Вами код с помощью редактора.
  • Отметьте, что структура кода запутана - есть многие, много переменных с именами, такими как "num80" или "num130", что мешает понять, как работают функции. Также отметьте, что в коде нет никаких комментариев.
  • Поскольку код довольно «грязен», вот прием, который я постоянно использую, чтобы найти что-то в коде:
  • Используйте Default Files, чтобы найти элемент, например Деревянная Стрела (Wooden Arrow).
  • Откройте .ini файл и примите во внимание значение "type=40".
  • Если мы хотите изучить поведение элемента, ищите что-то вроде "tupe == 40" в файле Item.cs.
  • Отметьте, что некоторые функции, могут быть не там, где Вы ожидаете! Например, все, что обрабатывает провода и механизмы, находится в классе WorldGen.
  • Пожалуйста, воздержитесь от размещения или ссылок на любые .cs файлы на wiki или официальных форумах. Использование фрагментов кода редко допускается.


Компиляция игры TerrariaПравить

  • Это процесс взятия необработанного кода C#, его изменение и возврат в рабочий .exe файл. Этот раздел в настоящий момент пуст, и нет никаких планов его пополнять.
  • Когда Вы запустите код, может возникнуть одно из следующих сообщений об ошибке (если вы пользуетесь Visual Studio). Они не влияют на код, но должны быть исправлены, если Вы хотите скомпилировать игру.
Error:
color.R = Main.mouseTextColor / 2;
Solution:
color.R = (byte) (Main.mouseTextColor / 2);


Проблема:
this.velocity != value2;
Решение:
Удалите строку!


Проблема:
int num57 = num52 ?? -1;
Решение:
int num57 = num52;
if (num52 == 0) num57 = -1;


Проблема:
int num76 = num71 ?? -1;
Решение:
int num76 = num71;
if(num71==0) num76=-1;

Обнаружено использование расширения AdBlock.


Викия — это свободный ресурс, который существует и развивается за счёт рекламы. Для блокирующих рекламу пользователей мы предоставляем модифицированную версию сайта.

Викия не будет доступна для последующих модификаций. Если вы желаете продолжать работать со страницей, то, пожалуйста, отключите расширение для блокировки рекламы.

Также на Фэндоме

Случайная вики