WzComparerR2
WzComparerR2 copied to clipboard
MSEA v236 的特定道具因出现重复键值导致 QuickView 无法正常输出
已知受影响的道具 ID 为 1006523。
System.ArgumentException: An item with the same key has already been added. Key: reqJob
at System.Collections.Generic.Dictionary`2.TryInsert(TKey key, TValue value, InsertionBehavior behavior)
at WzComparerR2.CharaSim.Gear.CreateFromNode(Wz_Node node, GlobalFindNodeFunction findNode)
at WzComparerR2.MainForm.quickView(Node node)
at WzComparerR2.MainForm.advTree1_AfterNodeSelect_2(Object sender, AdvTreeNodeEventArgs e)
at DevComponents.AdvTree.AdvTree.OnAfterNodeSelect(AdvTreeNodeEventArgs args)
at DevComponents.AdvTree.AdvTree.SelectNode(Node node, eTreeAction action)
at WzComparerR2.MainForm.OnSelectedWzNode(Wz_Node wzNode)
at WzComparerR2.MainForm.listViewExStringFind()
at WzComparerR2.MainForm.listViewExString_MouseDoubleClick(Object sender, MouseEventArgs e)
at System.Windows.Forms.Control.OnMouseDoubleClick(MouseEventArgs e)
at System.Windows.Forms.ListView.WndProc(Message& m)
at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, WM msg, IntPtr wparam, IntPtr lparam)
作为 workaround,修改 Gear.cs 的逻辑可以解决此问题,见以下commit。
https://github.com/HikariCalyx/WzComparerR2-JMS/commit/09ec96ef55812b1630fd607dd3377fc103973c85
"Property可以重复"这个假设真的会把整个wzlib击碎...
我思考了很久,wzlib应该一开始就不支持重复节点,所以这个属性是怎么读取成功的,有img的样本嘛?