ProjectEternal
OBJECTIVE STACK REITERATION UNKNOWN - PROBE DEEPER UNTIL ://ERROR

от GTFOModding
Dauda wants to inject things
InjectLib — мод для GTFO (ГТФО) от автора GTFOModding. Dauda wants to inject things
Его скачали 42,1 тыс. раз: это 39-е место среди модов GTFO в нашем каталоге, редкость — «эпический» (топ-20% по скачиваниям). Мод давно не обновлялся — проверьте совместимость с текущей версией игры, актуальная версия — 1.1.0.
Для работы ему нужны: BepInExPack GTFO.
Текст автора на языке оригинала
[BepInDependency("GTFO.InjectLib", BepInDependency.DependencyFlags.HardDependency)]
$(GameFolder)\BepInEx\cache
//Defining Field is reqired in order to set/get data
FieldInjector.DefineValueField(string fieldName);
FieldInjector.DefineManagedField(string fieldName);
//Set data
bool FieldInjector.TrySetValueField(Il2CppType obj, string fieldName, UnmanagedType value);
bool FieldInjector.TrySetManagedField(Il2CppType obj, string fieldName, ManagedType value);
//Load Saved data
bool FieldInjector.TryGetValueField(Il2CppType obj, string fieldName, out UnmanagedType value);
bool FieldInjector.TryGetManagedField(Il2CppType obj, string fieldName, out ManagedType value);
//SetConverter alter the whole json parse behaviour
//Useful if you want to fully alter the content of json
JsonInjector.SetConverter(Il2CppJsonReferenceTypeConverter converter);
JsonInjector.SetConverter(Il2CppJsonUnmanagedTypeConverter converter); //Type must be defined on il2cpp domain!!!
//AddHandler is similar to Harmony Postfix without out ref __result param
//You only can get JToken of parsed json and result object
//So you could inject your own field using FieldInjector
JsonInjector.AddHandler(Il2CppJsonReferenceTypeHandler handler);
JsonInjector.AddHandler(Il2CppJsonUnmanagedTypeHandler handler);
public abstract class Il2CppJsonReferenceTypeConverter : INativeJsonConverter where T : Il2CppObjectBase
{
protected abstract T Read(JToken jToken, T existingValue, JsonSerializer serializer);
protected abstract void Write(JsonWriter writer, T value, JsonSerializer serializer);
}
public abstract class Il2CppJsonUnmanagedTypeConverter : INativeJsonConverter where T : unmanaged
{
protected abstract T Read(JToken jToken, T existingValue, JsonSerializer serializer);
protected abstract void Write(JsonWriter writer, T value, JsonSerializer serializer);
protected abstract Il2CppSystem.Object ToIl2CppObject(T value);
}
public abstract class Il2CppJsonReferenceTypeHandler : INativeJsonHandler where T : Il2CppObjectBase
{
public abstract void OnRead(in Il2CppSystem.Object result, in JToken jToken);
}
public abstract class Il2CppJsonUnmanagedTypeHandler : INativeJsonHandler where T : unmanaged
{
public abstract void OnRead(in Il2CppSystem.Object result, in JToken jToken);
}
JsonInjector.SetConverter(new EventTypeConverter());
JsonInjector.AddHandler(new EventDataHandler());
//This converter alter the behaviour of reading/writing eWardenObjectiveEventType enum
//So you could Parse extended enum types!
internal class EventTypeConverter : Il2CppJsonUnmanagedTypeConverter
{
protected override eWardenObjectiveEventType Read(JToken jToken, eWardenObjectiveEventType existingValue, JsonSerializer serializer)
{
int value = 0;
switch(jToken.Type)
{
case JTokenType.Integer:
value = (int)jToken;
break;
case JTokenType.String:
var str = (string)jToken;
if (Enum.TryParse(str, ignoreCase: true, out var weeResult))
{
value = (int)weeResult;
break;
}
else if (Enum.TryParse(str, ignoreCase: true, out var woResult))
{
value = (int)woResult;
break;
}
return eWardenObjectiveEventType.None;
default:
return eWardenObjectiveEventType.None;
}
return (eWardenObjectiveEventType)value;
}
protected override void Write(JsonWriter writer, eWardenObjectiveEventType value, JsonSerializer serializer)
{
writer.WriteValue((int)value);
}
protected override Il2CppSystem.Object ToIl2CppObject(eWardenObjectiveEventType value)
{
return new Il2CppSystem.Int32() { m_value = (int)value }.BoxIl2CppObject();
}
}
//This one reads Custom Fields from WardenObjectiveEventData type!
internal class EventDataHandler : Il2CppJsonReferenceTypeHandler
{
private readonly static JsonSerializerOptions _JsonOption;
static EventDataHandler()
{
_JsonOption = new JsonSerializerOptions(JSON.DefaultSerializerSettings);
_JsonOption.Converters.Add(new LocalizedTextConverter());
}
public override void OnRead(in Il2CppSystem.Object result, in JToken jToken)
{
var data = result.Cast();
if (Enum.IsDefined((WEE_Type)data.Type))
{
var extData = JSON.Deserialize(jToken.ToString(), _JsonOption);
data.SetWEEData(extData);
}
}
}В r2modman ставится автоматически
29 в каталоге · показаны самые популярные
OBJECTIVE STACK REITERATION UNKNOWN - PROBE DEEPER UNTIL ://ERROR
A modern fork of Flowaria's ExtraEnemyCustomization (EEC), with a few fixes, tweaks, and additions
This is an extremely difficult outline.
A modern fork of Flowaria's AdvancedWardenObjective (AWO). Now with 50+ warden events!
://Survival: The Warden’s new order has come down—we fight as one, carve through the darkness, and escape this damnation with our lives intact! Together, we survive!
A fairly difficult slightly modded but vanilla inspired rundown with its own story. Currently contains 13 levels, with the final level coming soon
Файл скачивается с официального сервера Thunderstore, без перезаливов и сторонних установщиков
Подробная инструкция для GTFOВставьте значок в описание на Thunderstore, в README или в Discord — русскоязычные игроки сразу попадут на страницу с переводом и инструкцией.
[](https://modka.app/gtfo/gtfomodding-injectlib/)<a href="https://modka.app/gtfo/gtfomodding-injectlib/"><img src="https://modka.app/badge.png" alt="Описание на русском — Модка" height="44"></a>[url=https://modka.app/gtfo/gtfomodding-injectlib/]Описание на русском — Модка[/url]Скачайте менеджер модов r2modman (или Gale) и выберите в нём игру GTFO. Создайте профиль — так моды не смешаются с чистой версией игры. Найдите «InjectLib» во вкладке Online и нажмите Download — BepInEx и все зависимости подтянутся сами. Нажмите «Start modded» — игра запустится с модами. Для мультиплеера всем игрокам нужен одинаковый набор модов: в r2modman профиль можно экспортировать кодом и отправить друзьям.
Файл скачивается с официального сервера Thunderstore, куда его загрузил GTFOModding. Мы не перезаливаем и не изменяем моды.
Автор не указал, клиентский это мод или серверный. Безопаснее, чтобы одинаковый набор модов был у всех игроков в лобби: проще всего поделиться профилем r2modman.
Установите вместе с ним: BepInExPack GTFO. В менеджере модов зависимости подтягиваются автоматически.
9 марта 2025, актуальная версия — 1.1.0. Это больше года назад: перед установкой проверьте, работает ли мод на текущей версии игры.
OBJECTIVE STACK REITERATION UNKNOWN - PROBE DEEPER UNTIL ://ERROR
This is an extremely difficult outline.
The ''Deep End'' of GTFO Modded, are you ready? 25 Expeditions. Custom Guns. 150+ Enemy Variants. Team of 4 recommended.
://[OMNI]-Legacy: Superjacent sectors access denied, find a way to disengage lockdown and retrieve ALL resources.
Change the effect value of boosters to optimal value, and they will never be consumed.
Asset bundles for rundown Project: Eternal