安装 Steam
登录
|
语言
繁體中文(繁体中文)
日本語(日语)
한국어(韩语)
ไทย(泰语)
български(保加利亚语)
Čeština(捷克语)
Dansk(丹麦语)
Deutsch(德语)
English(英语)
Español-España(西班牙语 - 西班牙)
Español - Latinoamérica(西班牙语 - 拉丁美洲)
Ελληνικά(希腊语)
Français(法语)
Italiano(意大利语)
Bahasa Indonesia(印度尼西亚语)
Magyar(匈牙利语)
Nederlands(荷兰语)
Norsk(挪威语)
Polski(波兰语)
Português(葡萄牙语 - 葡萄牙)
Português-Brasil(葡萄牙语 - 巴西)
Română(罗马尼亚语)
Русский(俄语)
Suomi(芬兰语)
Svenska(瑞典语)
Türkçe(土耳其语)
Tiếng Việt(越南语)
Українська(乌克兰语)
报告翻译问题
The DPS of a weapon is Damage * Accuracy * (60 / (WarmupTicks + CooldownTicks + BurstTicks * (BurstCount - 1)). Travel time isn't even a factor in it.
Edit: here's an example, I ran a quick patch on this weapon to have a 0.5 projectile speed, but left all of the other stats the same. The mod now thinks the weapon does 3.08 DPS at Touch, when it should be reporting 11.55. 9 damage per shot * 6 projectile = 54 damage per burst. 60 ticks warmup, 102 ticks cooldown, 8 ticks burst * 5 burst count less one = 202 ticks total firing cycle. 72% accuracy at Touch. (54 * 0.72) / (202/60) = 11.5485.
Your mod is factoring in the 10.00s travel time, but as the second image shows, there's 3 volleys in the air and the pawn is aiming for a 4th, clearly showing that the travel time is overlapping with the cooldown (and the subsequence warmup and such, because it's so long). It'll take a good 2 minutes for those rounds to get to his target in this exaggerated example, but once the first burst gets there, it'll be doing 11.54 DPS, not 3.08. In more realistic examples, the projectile(s) would strike the target somewhere during the cooldown or possibly the following warmup, depending on speed and their tick lengths. It'd only be valid to include the travel time in the DPS equation if the cooldown didn't start until the projectile hit the target (which isn't the case, as evidenced in the screenshot).
https://imgur.com/a/dIabR9O
Exception occurred processing mod finalize events! Details: System.TypeInitializationException: The type initializer for 'Mehni.Misc.Modifications.HarmonyPatches' threw an exception. ---> System.FormatException: Method virtual System.Void RimWorld.Dialog_AssignBuildingOwner::DoWindowContents(UnityEngine.Rect inRect) cannot be patched. Reason: Invalid IL code in (wrapper dynamic-method) RimWorld.Dialog_AssignBuildingOwner:RimWorld.Dialog_AssignBuildingOwner.DoWindowContents_Patch0 (RimWorld.Dialog_AssignBuildingOwner,UnityEngine.Rect): IL_022a: ldfld 0x00000073
at HarmonyLib.PatchFunctions.UpdateWrapper (System.Reflection.MethodBase original, HarmonyLib.PatchInfo patchInfo) [0x0008c] in <c38a8c3281a047488dac8c9d063b7abb>:0
at HarmonyLib.PatchProcessor.Patch () [0x000fc] in <c38a8c3281a047488dac8c9d063b7abb>:0
at HarmonyLib.Harmony.Patch (System.Reflection.MethodBase original, HarmonyLib.HarmonyMethod prefix, HarmonyLib.HarmonyMethod postfix, HarmonyLib.HarmonyMethod transpiler, HarmonyLib.HarmonyMethod finalizer) [0x00028] in <c38a8c3281a047488dac8c9d063b7abb>:0
at Mehni.Misc.Modifications.HarmonyPatches..cctor () [0x001dd] in <acf8997ad89f4326bbb89d838e1afb11>:0
--- End of inner exception stack trace ---
at (wrapper managed-to-native) System.Runtime.CompilerServices.RuntimeHelpers.RunClassConstructor(intptr)
at System.Runtime.CompilerServices.RuntimeHelpers.RunClassConstructor (System.RuntimeTypeHandle type) [0x0002a] in <eae584ce26bc40229c1b1aa476bfa589>:0
at BetterLoading.Stage.InitialLoad.StageRunStaticCctors+<StaticConstructAll>d__16.MoveNext () [0x00073] in <1b38b4c8227d46ebb2bf64926b6f02ea>:0
Is an ongamestart error in the latest unstable. May present a problem down the road, may not. No way to be sure until the next version is officially released.
Or after choosing Fluid, choosing your Structure, Memes, and Precepts:
Or just any progression at all to begin a new game with this mod on the latest unstable. Unsure what else to do other than report it this way, let me know if I can help any other way.
Exception from asynchronous event: System.TypeInitializationException: The type initializer for 'Mehni.Misc.Modifications.HarmonyPatches' threw an exception. ---> System.FormatException: Method virtual System.Void RimWorld.Dialog_AssignBuildingOwner::DoWindowContents(UnityEngine.Rect inRect) cannot be patched. Reason: Invalid IL code in (wrapper dynamic-method) RimWorld.Dialog_AssignBuildingOwner:RimWorld.Dialog_AssignBuildingOwner.DoWindowContents_Patch0 (RimWorld.Dialog_AssignBuildingOwner,UnityEngine.Rect): IL_022a: ldfld 0x00000073
1.3.3146 unstable build.
https://gist.github.com/HugsLibRecordKeeper/00a135388fea2ad3b3cf2b8b4c176418
I've reported this bug to Mehni because currently I have no extra time to do modding.
After he finished this bug, I will upload the new version ASAP.
https://gist.github.com/HugsLibRecordKeeper/79059db5f5e55ba5d460e1f947bf853f
Exception ticking CrafterHunter (at (143, 0, 5)): System.TypeInitializationException: The type initializer for 'Mehni.Misc.Modifications.HarmonyPatches' threw an exception. ---> System.FormatException: Method virtual System.Void RimWorld.Dialog_AssignBuildingOwner::DoWindowContents(UnityEngine.Rect inRect) cannot be patched. Reason: Invalid IL code in (wrapper dynamic-method) RimWorld.Dialog_AssignBuildingOwner:RimWorld.Dialog_AssignBuildingOwner.DoWindowContents_Patch0 (RimWorld.Dialog_AssignBuildingOwner,UnityEngine.Rect): IL_022a: ldfld 0x00000073
at HarmonyLib.PatchFunctions.UpdateWrapper (System.Reflection.MethodBase original, HarmonyLib.PatchInfo patchInfo) [0x0008c] in <c38a8c3281a047488dac8c9d063b7abb>:0
at HarmonyLib.PatchProcessor.Patch () [0x000fc] in <c38a8c3281a047488dac8c9d063b7abb>:0
at HarmonyLib.Harmony.Patch (System.Reflection.MethodBase original, HarmonyLib.HarmonyMethod prefix, HarmonyLib.HarmonyMethod postfix, HarmonyLib.HarmonyMethod transpiler, HarmonyLib.HarmonyMethod finalizer) [0x00028] in <c38a8c3281a047488dac8c9d063b7abb>:0
at Mehni.Misc.Modifications.HarmonyPatches..cctor () [0x001dd] in <acf8997ad89f4326bbb89d838e1afb11>:0
--- End of inner exception stack trace ---
at (wrapper dynamic-method) Verse.Pawn.Verse.Pawn.Tick_Patch1(Verse.Pawn)
at (wrapper dynamic-method) Verse.TickList.Verse.TickList.Tick_Patch2(Verse.TickList)
UnityEngine.StackTraceUtility:ExtractStackTrace ()
(wrapper dynamic-method) Verse.Log:Verse.Log.Error_Patch0 (string)
(wrapper dynamic-method) Verse.TickList:Verse.TickList.Tick_Patch2 (Verse.TickList)
(wrapper dynamic-method) Verse.TickManager:Verse.TickManager.DoSingleTick_Patch5 (Verse.TickManager)
Verse.TickManager:TickManagerUpdate ()
(wrapper dynamic-method) Verse.Game:Verse.Game.UpdatePlay_Patch3 (Verse.Game)
(wrapper dynamic-method) Verse.Root_Play:Verse.Root_Play.Update_Patch0 (Verse.Root_Play)
Error in static constructor of Mehni.Misc.Modifications.HarmonyPatches: System.TypeInitializationException: The type initializer for 'Mehni.Misc.Modifications.HarmonyPatches' threw an exception. ---> System.FormatException: Method virtual System.Void RimWorld.Dialog_AssignBuildingOwner::DoWindowContents(UnityEngine.Rect inRect) cannot be patched. Reason: Invalid IL code in (wrapper dynamic-method) RimWorld.Dialog_AssignBuildingOwner:RimWorld.Dialog_AssignBuildingOwner.DoWindowContents_Patch0 (RimWorld.Dialog_AssignBuildingOwner,UnityEngine.Rect): IL_022a: ldfld 0x00000073
at HarmonyLib.PatchFunctions.UpdateWrapper (System.Reflection.MethodBase original, HarmonyLib.PatchInfo patchInfo) [0x0008c] in <c38a8c3281a047488dac8c9d063b7abb>:0
at HarmonyLib.PatchProcessor.Patch () [0x000fc] in <c38a8c3281a047488dac8c9d063b7abb>:0
at HarmonyLib.Harmony.Patch (System.Reflection.MethodBase original, HarmonyLib.HarmonyMethod prefix, HarmonyLib.HarmonyMethod postfix, HarmonyLib.HarmonyMethod transpiler, HarmonyLib.HarmonyMethod finalizer) [0x00028] in <c38a8c3281a047488dac8c9d063b7abb>:0
at Mehni.Misc.Modifications.HarmonyPatches..cctor () [0x001dd] in <acf8997ad89f4326bbb89d838e1afb11>:0
--- End of inner exception stack trace ---
at (wrapper managed-to-native) System.Runtime.CompilerServices.RuntimeHelpers.RunClassConstructor(intptr)
at (wrapper dynamic-method) System.Runtime.CompilerServices.RuntimeHelpers.System.Runtime.CompilerServices.RuntimeHelpers.RunClassConstructor_Patch1(System.RuntimeTypeHandle)
at StartupImpact.Patch.StaticConstructorOnStartupUtilityCallAll.Prefix () [0x00059] in <844a17ebd71c4d8bb5a7958aa41b3802>:0
UnityEngine.StackTraceUtility:ExtractStackTrace ()
(wrapper dynamic-method) Verse.Log:Verse.Log.Error_Patch3 (string)
StartupImpact.Patch.StaticConstructorOnStartupUtilityCallAll:Prefix ()
(wrapper dynamic-method) Verse.StaticConstructorOnStartupUtility:Verse.StaticConstructorOnStartupUtility.CallAll_Patch2 ()
Verse.PlayDataLoader/<>c:<DoPlayLoad>b__4_3 ()
Verse.LongEventHandler:ExecuteToExecuteWhenFinished ()
Verse.LongEventHandler:UpdateCurrentAsynchronousEvent ()
Verse.LongEventHandler:LongEventsUpdate (bool&)
(wrapper dynamic-method) Verse.Root:Verse.Root.Update_Patch1 (Verse.Root)
Verse.Root_Entry:Update ()