2chに神様が光臨され、色々なことを披露してくれたようです。
無条件でミッションクリア
クエ中の歩く速度30倍
です。
無条件でミッションクリア
ターゲットは、Assembly-CSharp.ilになります。
.method public hidebysig instance bool
GetSuccessFlag(int32 n) cil managed
{
/* コメントアウト
// Code size 131 (0x83)
.maxstack 9
.locals init (class [‘Assembly-CSharp-firstpass’]entityMissionTarget V_0,
bool V_1,
valuetype [‘Assembly-CSharp-firstpass’]eMIT_Category V_2)
IL_0000: ldarg.0
IL_0001: ldfld class [mscorlib]System.Collections.Generic.List`1<class [‘Assembly-CSharp-firstpass’]entityMissionTarget> SubMissionTarget::missionTargetList
IL_0006: ldarg.1
IL_0007: callvirt instance !0 class [mscorlib]System.Collections.Generic.List`1<class [‘Assembly-CSharp-firstpass’]entityMissionTarget>::get_Item(int32)
IL_000c: stloc.0
IL_000d: ldc.i4.1
IL_000e: stloc.1
IL_000f: ldloc.0
IL_0010: ldfld valuetype [‘Assembly-CSharp-firstpass’]eMIT_Category [‘Assembly-CSharp-firstpass’]entityMissionTarget::category
IL_0015: stloc.2
IL_0016: ldloc.2
IL_0017: ldc.i4.1
IL_0018: sub
IL_0019: switch (
IL_0037,
IL_0055,
IL_0064,
IL_0073,
IL_0046)
IL_0032: br IL_0073
IL_0037: ldloc.0
IL_0038: ldfld valuetype [‘Assembly-CSharp-firstpass’]eMIT_Success [‘Assembly-CSharp-firstpass’]entityMissionTarget::btlSuccess
IL_003d: ldc.i4.1
IL_003e: ceq
IL_0040: stloc.1
IL_0041: br IL_0073
IL_0046: ldloc.0
IL_0047: ldfld valuetype [‘Assembly-CSharp-firstpass’]eMIT_Success [‘Assembly-CSharp-firstpass’]entityMissionTarget::clrSuccess
IL_004c: ldc.i4.1
IL_004d: ceq
IL_004f: stloc.1
IL_0050: br IL_0073
IL_0055: ldloc.0
IL_0056: ldfld valuetype [‘Assembly-CSharp-firstpass’]eMIT_Success [‘Assembly-CSharp-firstpass’]entityMissionTarget::equSuccess
IL_005b: ldc.i4.1
IL_005c: ceq
IL_005e: stloc.1
IL_005f: br IL_0073
IL_0064: ldloc.0
IL_0065: ldfld valuetype [‘Assembly-CSharp-firstpass’]eMIT_Success [‘Assembly-CSharp-firstpass’]entityMissionTarget::temSuccess
IL_006a: ldc.i4.1
IL_006b: ceq
IL_006d: stloc.1
IL_006e: br IL_0073
IL_0073: ldarg.0
IL_0074: call instance class [mscorlib]System.Collections.Generic.List`1<bool> SubMissionTarget::get_missionCompFlag()
IL_0079: ldarg.1
IL_007a: callvirt instance !0 class [mscorlib]System.Collections.Generic.List`1<bool>::get_Item(int32)
IL_007f: ldloc.1
IL_0080: ceq
IL_0082: ret
ここまで */
//以下を追加
.maxstack 1
IL_0000: ldc.i4.1
IL_0001: ret
} // end of method SubMissionTarget::GetSuccessFlag
クエ中の歩く速度30倍
ターゲットは、Assembly-CSharp-firstpass.ilになります。
.method public hidebysig specialname static
float32 get_MOVE_SPEED_HIGH() cil managed
{
// Code size 44 (0x2c)
.maxstack 5
.locals init (float32 V_0)
IL_0000: call !0 class SingletonMonoBehaviour`1<class dbVariableMast>::get_instance()
IL_0005: ldstr “MOVE_SPEED_HIGH”
IL_000a: ldc.r4 0.0
IL_000f: callvirt instance float32 dbVariableMast::GetFloat(string,
float32)
IL_0014: stloc.0
IL_0015: ldloc.0
IL_0016: ldc.r4 0.0
IL_001b: ble.un IL_0026
// IL_0020: ldloc.0
IL_0020: ldc.r4 30
IL_0021: br IL_002b
// IL_0026: ldc.r4 1.75
IL_0026: ldc.r4 30
IL_002b: ret
} // end of method GAMEDEFINE_EXT::get_MOVE_SPEED_HIGH
近くに、BATTLE_SPEED_HIGHというのがあって、これが戦闘中の速度になります。似たような感じで書き換えることが出来ます。
では、また。
無条件でミッションクリア の書き換えなんですが、
.maxstack 1
IL_0000: ldc.i4.1
IL_0001: ret
ildasmでdllに戻す時に、IL_0000、 IL0001がダブってますよ!とエラーを吐きます。
resファイルあります。
変換ソフトは何を使ってますか?
ちなみに、IL_0078、IL_0079に変えたら変換出来ますが、
ボスクリア後にローディングから進みません。