Network Behaviour Event Injector

版本 v1.0.0·更新於 2024-02-02

A preload patcher that injects virtual NetworkBehaviour methods on all sub-classes.

模組介紹 作者原文

Network Behaviour Event Preloader

A Preload Patcher that adds the methods OnNetworkSpawn, OnNetworkDespawn, OnGainedOwnership, OnLostOwnership, OnNetworkObjectParentChanged, and OnDestroy to all NetworkBehaviours in 'Assembly-CSharp.dll'.

How It's Implemented

Besides sanity checks, all methods are implemented with the following code snippet (TLDR it calls base.OnXYZ() and returns):

private static void CreateEventMethod(AssemblyDefinition assemblyDefinition, MethodReference methodReference,

TypeDefinition typeDef)

{

var newMethod = new MethodDefinition(

methodReference.Name,

MethodAttributes.Public | MethodAttributes.HideBySig | MethodAttributes.Virtual,

assemblyDefinition.MainModule.TypeSystem.Void);

typeDef.Methods.Add(newMethod);

newMethod.Body.InitLocals = true;

foreach (var paramRef in methodReference.Parameters)

newMethod.Parameters.Add(paramRef.Resolve());

var processor = newMethod.Body.GetILProcessor();

processor.Emit(OpCodes.Ldarg_0);

for (var i = 0; i < methodReference.Parameters.Count; i++)

processor.Emit(OpCodes.Ldarg, i + 1);

processor.Emit(OpCodes.Call, methodReference);

processor.Emit(OpCodes.Ret);

}

References to NetworkBehaviour are resolved from the 'Assembly-CSharp'.

安裝與使用 安裝:BepInEx 外掛

  1. 本站下載的壓縮包就是模組本體,通常是 BepInEx 外掛(解壓後得到 .dll 或外掛資料夾)。
  2. 建議流程:用社群模組管理器(如 r2modman)選中本遊戲後匯入該模組,管理器會自動裝好 BepInEx 前置並處理依賴。
  3. 手動流程:先在遊戲目錄裝好 BepInEx 載入器,再把解壓出的 .dll 或外掛資料夾放進 BepInEx/plugins/。
  4. 啟動遊戲,BepInEx 控制台會列印載入日誌;確認這個模組出現在日誌裡即為安裝成功。

帶「前置依賴」的模組需要一併安裝,否則不會載入。功能開關通常在遊戲內或外掛自帶的設定檔裡調整。

前置依賴

下面這些內容需要先安裝,否則該模組不會生效:

BepInEx-BepInExPack

檔案與校驗

檔案名稱
Network_Behaviour_Event_Injector-1.0.0.zip
檔案大小
80.0 KiB