Kagamia / WzComparerR2

Maplestory online Extractor
MIT License
415 stars 134 forks source link

MSEA v236 的特定道具因出现重复键值导致 QuickView 无法正常输出 #281

Open HikariCalyx opened 1 week ago

HikariCalyx commented 1 week ago

已知受影响的道具 ID 为 1006523。 image

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)

image 作为 workaround,修改 Gear.cs 的逻辑可以解决此问题,见以下commit。 https://github.com/HikariCalyx/WzComparerR2-JMS/commit/09ec96ef55812b1630fd607dd3377fc103973c85

Kagamia commented 1 week ago

"Property可以重复"这个假设真的会把整个wzlib击碎...