Coder Social home page Coder Social logo

wzcomparerr2's People

Contributors

butcherchen avatar charlescao460 avatar dependabot[bot] avatar kagamia avatar kennysoft avatar lowrt avatar nanpuhaha avatar pirateizzy avatar sh-cho avatar tanyoucai avatar wangyhzzz avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

wzcomparerr2's Issues

關於怪物掉落

首先很感謝你提供的工具,就想問一下怎麼能看到怪物的掉落物品有哪些,比如綠蝸牛-》金幣、綠蝸牛殼等等...這個可以看到嗎?

some bugs in MapRenderer with the new map MasteriaGL

if you render the map "610010000 幽影森林:曲树", you will find some bricks are lost.
image
and what will it do when i press ctrl+1~9 ?

by the way, the software can not preview the hairstyle, face, etc.
23457

Above all, thank you for developing such an magnificent software.

沒有載入到插件

MapRender 和Avatar 載入不到
開啟about處顯示沒有加載插件
版本2.1

小建議

希望能快點加入保存AVATR造型的功能
有時候模擬好人物很想把圖片保存起來

Inconsistency with Gear Render

1

In-game

Simulated

Item ID: 1004297

  1. 'Magic Attack' should be lowest on the list instead of highest.

2

In-game

Item ID: 1382104
When you added this code of the refactoring of TextRenderer, it made the text of set effect to white color. It should be grey.

This is what the code looked like BEFORE the change:

//T116 合并套装
                var props = IsCombineProperties ? CombineProperties(effect.Value.PropsV5) : effect.Value.PropsV5;
                foreach (KeyValuePair<GearPropType, object> prop in props)
                {
                    if (prop.Key == GearPropType.Option)
                    {
                        List<Potential> ops = (List<Potential>)prop.Value;
                        foreach (Potential p in ops)
                        {
                            GearGraphics.DrawPlainText(g, p.ConvertSummary(), GearGraphics.EquipDetailFont2, 11, 244, ref picHeight, 15);
                        }
                    }
                    else if (prop.Key == GearPropType.OptionToMob)
                    {
                        List<SetItemOptionToMob> ops = (List<SetItemOptionToMob>)prop.Value;
                        foreach (SetItemOptionToMob p in ops)
                        {
                            GearGraphics.DrawPlainText(g, p.ConvertSummary(), GearGraphics.EquipDetailFont2, color, 11, 244, ref picHeight, 15);
                        }
                    }
                    else if (prop.Key == GearPropType.activeSkill)
                    {
                        List<SetItemActiveSkill> ops = (List<SetItemActiveSkill>)prop.Value;
                        foreach (SetItemActiveSkill p in ops)
                        {
                            StringResult sr;
                            if (StringLinker == null || !StringLinker.StringSkill.TryGetValue(p.SkillID, out sr))
                            {
                                sr = new StringResult();
                                sr.Name = p.SkillID.ToString();
                            }
                            string summary = "<" + sr.Name.Replace(Environment.NewLine, "") + "> Active Skill";
                            GearGraphics.DrawPlainText(g, summary, GearGraphics.EquipDetailFont2, color, 11, 244, ref picHeight, 15);
                        }
                    }
                    else
                    {
                        var summary = ItemStringHelper.GetGearPropString(prop.Key, Convert.ToInt32(prop.Value));
                        GearGraphics.DrawPlainText(g, summary, GearGraphics.EquipDetailFont2, color, 11, 244, ref picHeight, 15);

↑ As you can see, it messes up with the alignment of certain text. 

Result BEFORE:

@KENNYSOFT recommended to change the instances of DrawPlainText to DrawString and made this commit.

So, I did. ↓

//T116 合并套装
                var props = IsCombineProperties ? CombineProperties(effect.Value.PropsV5) : effect.Value.PropsV5;
                foreach (KeyValuePair<GearPropType, object> prop in props)
                {
                    if (prop.Key == GearPropType.Option)
                    {
                        List<Potential> ops = (List<Potential>)prop.Value;
                        foreach (Potential p in ops)
                        {
                            GearGraphics.DrawString(g, p.ConvertSummary(), GearGraphics.EquipDetailFont2, 11, 244, ref picHeight, 15, color);
                        }
                    }
                    else if (prop.Key == GearPropType.OptionToMob)
                    {
                        List<SetItemOptionToMob> ops = (List<SetItemOptionToMob>)prop.Value;
                        foreach (SetItemOptionToMob p in ops)
                        {
                            GearGraphics.DrawString(g, p.ConvertSummary(), GearGraphics.EquipDetailFont2, 11, 244, ref picHeight, 15, color);
                        }
                    }
                    else if (prop.Key == GearPropType.activeSkill)
                    {
                        List<SetItemActiveSkill> ops = (List<SetItemActiveSkill>)prop.Value;
                        foreach (SetItemActiveSkill p in ops)
                        {
                            StringResult sr;
                            if (StringLinker == null || !StringLinker.StringSkill.TryGetValue(p.SkillID, out sr))
                            {
                                sr = new StringResult();
                                sr.Name = p.SkillID.ToString();
                            }
                            string summary = "<" + sr.Name.Replace(Environment.NewLine, "") + "> Active Skill";
                            GearGraphics.DrawString(g, summary, GearGraphics.EquipDetailFont2, 11, 244, ref picHeight, 15, color);
                        }
                    }
                    else
                    {
                        var summary = ItemStringHelper.GetGearPropString(prop.Key, Convert.ToInt32(prop.Value));
                        GearGraphics.DrawString(g, summary, GearGraphics.EquipDetailFont2, 11, 244, ref picHeight, 15, color);

Result AFTER

↑ As you can see, the text is rendered perfectly, but the text is white.

(Also, what is this 'Item Skin' about? 😮 )

Skill Variable Issue

Kanna in GMS will soon receive a buff. I compared the old and new version and I noticed that some numbers are missing in the new version.

Example)

BEFORE ↓
1
Skill description

2
Variables

AFTER ↓
3
Skill description

4
Variables > indieMdd was replaced by indiePdd

If you read the skill description in the BEFORE version, you will read: Haku's Blessing - DEF: +200, Hakku's Fan ATT: +20%, Duration: 40 Sec.
However, in the updated version, you will read: Haku's Blessing - DEF: , Hakku's Fan ATT: +20%, Duration: 40 Sec. - The value after DEF is missing.

This happens to other values as well, take a look at the next example.

BEFORE ↓
1
Skill description

2
Variables

AFTER ↓
3
Skill description

4
Variables > x is replaced by indieIgnoreMobpdpR

Checking other skills, I see madX. So far, the issue that is causing this is:
indieMdd and indieIgnoreMobpdpR

Alignment of tooltip icons

Path: WzComparerR2\CharaSimControl\GearTooltipRender2.cs
Line: 1023 in your version (code is below)
Issue: As of the V update, the 'Magic Defense' stat is no longer used and is condensed into simply 'Defense'. Therefore only three icons are used in the tooltip of equipment and they are now centered. Before they were aligned to the left. How can it be fixed?

The three icons can be seen below the level requirements and above the class names.

Simulated version
Simulated version

In-game version
In-game version

Code:

        {
            int value;
            string numValue;
            //Defense tooltip icon
            g.DrawImage(Resource.UIToolTip_img_Item_Equip_Summary_icon_pdd, x, y);
            x += 62;
            DrawReqNum(g, "0", NumberType.LookAhead, x - 5, y + 6, StringAlignment.Near);

            //Boss DMG tooltip icon
            g.DrawImage(Resource.UIToolTip_img_Item_Equip_Summary_icon_bdr, x, y);
            x += 62;
            this.Gear.Props.TryGetValue(GearPropType.bdR, out value);
            numValue = (value > 0 ? "+ " : null) + value + " % ";
            DrawReqNum(g, numValue, NumberType.LookAhead, x - 5, y + 6, StringAlignment.Near);

            //Ignored Monster DEF tooltip icon
            g.DrawImage(Resource.UIToolTip_img_Item_Equip_Summary_icon_igpddr, x, y);
            x += 62;
            this.Gear.Props.TryGetValue(GearPropType.imdR, out value);
            numValue = (value > 0 ? "+ " : null) + value + " % ";
            DrawReqNum(g, numValue, NumberType.LookAhead, x - 5, y + 6, StringAlignment.Near);
        }

Thank you.

Discussion about version 2.1

After a year's continually developing, we a about to the last version of wcR2-2.0.x.

The main theme of version 2.0 is 'Spine and Links', ImageViewer and MapRender are both refactored to support spine skeleton animation rendering, so is the WzComparer module, it has been optimized a lot for linked resource recognizing, and reducing the size of dumped reports.

So what's next?

I have make a list of things to do. The keyword is 'Useless', means that it won't add any major feature in the next time, but funny and useless features among them:
DWrite Font System: Will anyone could see the difference between DWrite and GDI+? And it can't cross-platform.
Mobs AI: - Funny! Can I put a character in MapRender and play with it? - Not supported. - Sad :(
MapRender Chat: Who will use it? I have to maintain a chat server extra, just a waste of time.

In fact, I have got more useless and crazy ideas about new features from QQ group, such as

  • Support Osu!(a rhythm game written by C#) in MapRender.
  • More powerful Sound Player, support loseless sound files and playlist.
  • Momiji integration.
  • Intelligent comparer, could dump human readable report, dump item/skill simulated images before and after patching.
  • Playable MapRender.
  • etc.

Which feature do you like best? Do you have a thought of 'WcR2 must-have feature'?
Let's talk about WcR2 v.next.

Strange characters in KMST 1.2.058 Map001.wz

KMST recently updated to 1.2.058 and now Map.wz is divided to Map.wz and Map001.wz. I updated my code to support that file and seeing this file gives me below result.

image

Its Back folder is just properly works, but there are some strange characters, or a blank entry.

item option show text issue

ms version: KMST 1.2.007
equip id: 1123001 ~ 1123012
option id: 60028+

the option string is like '캐릭터 기준 10레벨 당 STR : +#incSTRlv', cannot find the property from level node.

Medal style bug

I'll just post issues in separate posts as this is better to navigate.

For my GMS version, I have a Stable and Unstable version. The difference is that with Unstable version I can experiment with the code that you and KENNYSOFT provide. My GMS version is based of KENNYSOFT's Korean build.

So far in my Stable version (without the codes of f0845fc, 459b75e and 2e3af70) I simulate the following results:

pinkbeanqueen

However, when I add your new code to my Unstable version I will get the following results:
pinkbeanqueen

How can it be fixed to my Stable version without adding all the other code from your recent commits? Since I am not so sure if your code and that of KENNYSOFT will conflict.

item quick view error

CMST.101 / CMS.123
item id : 2049701

will raise an error :

System.IndexOutOfRangeException: Index was outside the bounds of the array.
at WzComparerR2.CharaSimControl.GearGraphics.DrawString(Graphics g, String s, Font font, Int32 x, Int32 x1, Int32& y, Int32 height)
at WzComparerR2.CharaSimControl.ItemTooltipRender2.RenderItem(Int32& picH)
at WzComparerR2.CharaSimControl.ItemTooltipRender2.Render()
at WzComparerR2.CharaSimControl.AfrmTooltip.PreRender()
at WzComparerR2.CharaSimControl.AfrmTooltip.Refresh()
at WzComparerR2.MainForm.quickView(Node node)
at WzComparerR2.MainForm.advTree2_AfterNodeSelect_2(Object sender, AdvTreeNodeEventArgs e)
at DevComponents.AdvTree.AdvTree.OnAfterNodeSelect(AdvTreeNodeEventArgs args)
at DevComponents.AdvTree.AdvTree.SelectNode(Node node, eTreeAction action)
at DevComponents.AdvTree.AdvTree.set_SelectedNode(Node value)
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 DevComponents.DotNetBar.Controls.ListViewEx.WndProc(Message& m)
at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)

MapRender建議

MapRender建議
W大地圖下拉選單加入滑鼠滾動功能 減少下拉動作 操作會更直覺化
鼠標雙擊地圖光點 MapRender自動跳轉到該張地圖

關於商城組合包

KMS版的WzComparerR2可以秀出商城組合包的資訊內容物與價格
可是英文版的沒有這樣功能 求開發
MapRender也能加入顯示ACR/星力的功能

MaxLv + Additional Lv Preview for Skills

Hey there,

As I was trying this feature:

1

I came across a missing option. Someone was asking me if I could give the data of (MaxLv) + 2**.
I've came to the conclusion that the program only works when the skill has a maximum level of 30. The program ignores other skills that have a maximum level of 15 or 20 when choosing the + 2 option.

Example)

2
Skill: Blessed Harmony (2320013)

2

The person asked me if I could retrieve the data of this skill beyond its max level. I couldn't.
This is the reason ↓

3

The program is missing the fixLevel variable. This variable means that you cannot extend the skill level beyond the maximum level (which is 1 in this case). This can be added with orange text next to 'Undispellable (notRemoved) as 'Fixed Maximum Lv'.
There is another issue, however. The Beast Tamer class has a few skills with a maximum level of 10, 15 and even 20. The program can only recognize a maximum level of 30 which means you cannot obtain skill info beyond the maximum level of those skills.

  • Add fixLevel as 'Fixed Maximum Lv' to skill preview
  • Make it so that the program not only recognize a maximum level of 30, but other values as well.

Avatar

希望可以Avatar增加儲存按鈕
有一些披風造型存在Effect.wz裡
例如1103033或是1103034
模擬人物不會正常顯示

您是我看過修BUG最迅速的!!
補充AVATAR幾個模擬BUG
1932422應該隱藏身體(自帶info\removeBody參數),讀取forcingItem參數加上帽子
1932377人物位置偏移
1932379人物位置偏上
1932209身體圖層前後跑
1983242應該隱藏身體(removeBody參數寫在3015563椅子)
1983247應該隱藏身體(removeBody參數寫在3015656椅子)
1983322應該隱藏身體(removeBody參數寫在3015791椅子)
1983325坐騎圖層前後跑
1983326人物位置偏移(應該跟隨光影 2~10幀異常)
1983329應該隱藏身體(removeBody參數寫在3015800椅子)

198類的都屬於椅子騎寵 讀取這類也許要想個方法反查回椅子 才能讀到removeBody參數

Skill simulation variable bug

Greetings,

I have encountered a bug with the cr variable:

bug

100ising Sun

It should say Rising Sun, but since descriptions start with #c and the letter after it being an R, the program will recognize it as the variable cr used for skills in the data.

Error in Avatar initialization

Hi, long to see you.

There is an error on avatar initialization: cannot load, like below image.

image

I found that you've changed CharaSimLoader_WzFileFinding function in 5cc6402, like below box.

           for (int i = 1; i < fullPath.Length && searchNode != null; i++)
           {
               searchNode = searchNode.Nodes[fullPath[i]];`

Then, Nodes' [] operator does NOT ignore cases, so fullPath must be same with desired WzNode's path, also case matched.

Now, AvatarCanvas.cs#L42 is return LoadZ(PluginBase.PluginManager.FindWz("Base\\Zmap.img")); and KMS has only Base\zmap.img, so this initializing function fails; which means you cannot use Avatar tab functions.

The fix is very simple: just correct Z as z. See KENNYSOFT@21f3f64 for reference.

Thank you.

Crash upon skeleton animation

Hey there,

I've tried saving a few skeleton animations through Map.img and it works. However, when I try to save Map.img\Back\Effect3.img\BossLucid\Lucid.atlas, it gives me an error.

"System.OutOfMemoryException."

System.OutOfMemoryException: Exception of type 'System.OutOfMemoryException' was thrown at WzComparerR2.PictureBoxEx.SaveAsGif(AnimationItem aniItem, String fileName, ImageHandlerConfig config) in C:\Users\Desktop\WzComparerR2 Localization\GMS\Stable\WzComparerR2\WzComparerR2\PictureBoxEx.cs:line 158 at WzComparerR2.MainForm.buttonItemSaveImage_Click(Object sender, EventArgs e) in C:\Users\Desktop\WzComparerR2 Localization\GMS\Stable\WzComparerR2\WzComparerR2\MainForm.cs:line 438 at DevComponents.DotNetBar.BaseItem.RaiseClick(eEventSource source) at DevComponents.DotNetBar.BaseItem.InternalMouseUp(MouseEventArgs objArg) at DevComponents.DotNetBar.PopupItem.InternalMouseUp(MouseEventArgs objArg) at DevComponents.DotNetBar.ButtonItem.InternalMouseUp(MouseEventArgs objArg) at DevComponents.DotNetBar.BaseItem.InternalMouseUp(MouseEventArgs objArg) at DevComponents.DotNetBar.ItemContainer.InternalMouseUp(MouseEventArgs objArg) at DevComponents.DotNetBar.ItemControl.OnMouseUp(MouseEventArgs e) at DevComponents.DotNetBar.RibbonBar.OnMouseUp(MouseEventArgs e) at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks) at System.Windows.Forms.Control.WndProc(Message& m) at System.Windows.Forms.ScrollableControl.WndProc(Message& m) at System.Windows.Forms.ContainerControl.WndProc(Message& m) at DevComponents.DotNetBar.ItemControl.WndProc(Message& m) at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m) at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m) at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)

Update 2:

I tried saving Kinesis character at UI.img\Login.img\RaceSelect_new\Back0\18\Kinesis.atlas. It kind of works, but I get the following error:

System.AggregateException: One or more errors occurred. ---> System.ArgumentException: Value of -252 is not valid for red. Red must be greater than or equal to 0 and less than or equal to 255. at System.Drawing.Color.CheckByte(Int32 value, String name) at System.Drawing.Color.FromArgb(Int32 alpha, Int32 red, Int32 green, Int32 blue) at System.Drawing.Color.FromArgb(Int32 red, Int32 green, Int32 blue) at ImageManipulation.OctreeQuantizer.Octree.OctreeNode.ConstructPalette(ArrayList palette, Int32& paletteIndex) at ImageManipulation.OctreeQuantizer.Octree.OctreeNode.ConstructPalette(ArrayList palette, Int32& paletteIndex) at ImageManipulation.OctreeQuantizer.Octree.OctreeNode.ConstructPalette(ArrayList palette, Int32& paletteIndex) at ImageManipulation.OctreeQuantizer.Octree.OctreeNode.ConstructPalette(ArrayList palette, Int32& paletteIndex) at ImageManipulation.OctreeQuantizer.Octree.OctreeNode.ConstructPalette(ArrayList palette, Int32& paletteIndex) at ImageManipulation.OctreeQuantizer.Octree.Palletize(Int32 colorCount) at ImageManipulation.OctreeQuantizer.GetPalette(ColorPalette original) at ImageManipulation.Quantizer.Quantize(Image source) at WzComparerR2.Common.BuildInGifEncoder.AppendFrame(Bitmap image, Int32 delay) at WzComparerR2.Common.BuildInGifEncoder.AppendFrame(IntPtr pBuffer, Int32 delay) at WzComparerR2.PictureBoxEx.<>c__DisplayClass28_3.<SaveAsGif>b__2() at System.Threading.Tasks.Task.InnerInvoke() at System.Threading.Tasks.Task.Execute() --- End of Internal Exceptional Stackway --- at System.Threading.Tasks.Task.WaitAll(Task[] tasks, Int32 millisecondsTimeout, CancellationToken cancellationToken) at WzComparerR2.PictureBoxEx.<>c__DisplayClass28_0.<SaveAsGif>b__0(Int32 curTime) at WzComparerR2.PictureBoxEx.SaveAsGif(AnimationItem aniItem, String fileName, ImageHandlerConfig config) at WzComparerR2.MainForm.buttonItemSaveImage_Click(Object sender, EventArgs e) at DevComponents.DotNetBar.BaseItem.RaiseClick(eEventSource source) at DevComponents.DotNetBar.BaseItem.InternalMouseUp(MouseEventArgs objArg) at DevComponents.DotNetBar.PopupItem.InternalMouseUp(MouseEventArgs objArg) at DevComponents.DotNetBar.ButtonItem.InternalMouseUp(MouseEventArgs objArg) at DevComponents.DotNetBar.BaseItem.InternalMouseUp(MouseEventArgs objArg) at DevComponents.DotNetBar.ItemContainer.InternalMouseUp(MouseEventArgs objArg) at DevComponents.DotNetBar.ItemControl.OnMouseUp(MouseEventArgs e) at DevComponents.DotNetBar.RibbonBar.OnMouseUp(MouseEventArgs e) at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks) at System.Windows.Forms.Control.WndProc(Message& m) at System.Windows.Forms.ScrollableControl.WndProc(Message& m) at System.Windows.Forms.ContainerControl.WndProc(Message& m) at DevComponents.DotNetBar.ItemControl.WndProc(Message& m) at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m) at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m) at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam) ---> (Internal exception #0) System.ArgumentException: Value of -252 is not valid for red. Red must be greater than or equal to 0 and less than or equal to 255. at System.Drawing.Color.CheckByte(Int32 value, String name) at System.Drawing.Color.FromArgb(Int32 alpha, Int32 red, Int32 green, Int32 blue) at System.Drawing.Color.FromArgb(Int32 red, Int32 green, Int32 blue) at ImageManipulation.OctreeQuantizer.Octree.OctreeNode.ConstructPalette(ArrayList palette, Int32& paletteIndex) at ImageManipulation.OctreeQuantizer.Octree.OctreeNode.ConstructPalette(ArrayList palette, Int32& paletteIndex) at ImageManipulation.OctreeQuantizer.Octree.OctreeNode.ConstructPalette(ArrayList palette, Int32& paletteIndex) at ImageManipulation.OctreeQuantizer.Octree.OctreeNode.ConstructPalette(ArrayList palette, Int32& paletteIndex) at ImageManipulation.OctreeQuantizer.Octree.OctreeNode.ConstructPalette(ArrayList palette, Int32& paletteIndex) at ImageManipulation.OctreeQuantizer.Octree.Palletize(Int32 colorCount) at ImageManipulation.OctreeQuantizer.GetPalette(ColorPalette original) at ImageManipulation.Quantizer.Quantize(Image source) at WzComparerR2.Common.BuildInGifEncoder.AppendFrame(Bitmap image, Int32 delay) at WzComparerR2.Common.BuildInGifEncoder.AppendFrame(IntPtr pBuffer, Int32 delay) at WzComparerR2.PictureBoxEx.<>c__DisplayClass28_3.<SaveAsGif>b__2() at System.Threading.Tasks.Task.InnerInvoke() at System.Threading.Tasks.Task.Execute()<---

Saving the image at UI.img\Login.img\RaceSelect_new\Back0\19\skeleton.atlas (Cadena job) works fine without errors
See: (https://media.giphy.com/media/3o8dFzNF1dvRwPKukM/giphy.gif)

地图过大无法保存问题

CMS V148
地图编号:867123400 冬日城堡度假村:银色山脉下山 Map.img\PL\867123400
使用MapRender模拟 Scroll Lock保存时会失败

Set Effect for Party Quest equips

I noticed that the set effect window in WCR2 is below the list of equipment while it should be next to it.
The window above/next to the set effect mentions (Equip) for all Party Quest equipment. However, other equips that are not part of the Party Quest Set don't have (Equip), but the usual (Hat), (Shoes) etc.

↓ Simulated
test

↓ In-game
test

xml error

It occurs an error when re-importing after exporting xml with WzCompareR2

Error

The file "C:\Users\a\Desktop\String.Mob.img.xml" is invalid and will be skipped. Error: unknown main XML prop dir

Where can I found inner monospaced font "REQ LEV"?

image

image

Like first image, this is a chair, which has a "REQ LEV". It is not matching with second image, which is created with WzComparerR2. It looks simillar with GearTooltip2's font of "REQ ~", but not same. I think the digit part is same with GearTooltip(OLD version)'s font (Like https://github.com/Kagamia/CharaSimResource/blob/master/Resources/ToolTip.Equip.Cannot.3.png), but I can't find localized "REQ LEV" image in KMS client. Where can I found this font?

Ampersand issue

Greetings,

item

There is an issue with the use of an ampersand of this item with fixed Potential. See: ATT _M.ATT: +10
This should be: ATT & M.ATT: +10 - This could easily be fixed by adding another ampersand, however I cannot find the code for this. I've tried searching for "ATT" and "M.ATT" but to no avail.

fileLength of wavHeader is too long

I found fileLength of wavHeader is too long in this line:

Array.Copy(BitConverter.GetBytes(this.dataLength + 44), 0, wavHeader, 4, 4);

The usage of the fileLength field of WAVE file format is:

This is the size of the
entire file in bytes minus 8 bytes for the
two fields not included in this count:
ChunkID and ChunkSize.

The fileLength should be:

Array.Copy(BitConverter.GetBytes(this.dataLength + 44 - 8), 0, wavHeader, 4, 4);

Did I misunderstanding something ?

Avatar模擬騎寵

有一些騎寵的動作不是sit
而是由forceCharacterAction控制動作
例如1983326 用sit模擬會顯得怪異

Network error?

image

I recently adapted your Network plugin code and get this error message on startup. What's this mean and how I fix this?

Ellipsis & Width window Set Effect

Greetings,

TEST

What exact line defines the width of the set effect window? As you can see, the text Invincible for 1 more seconds after getting attacked. overlaps. I don't know how to make it look like this in-game:

ingame

Furthermore, as you can see in the first screenshot there is an ellipsis. However, if you check the in-game version it says Epaulet while mine is cut-off at Epau...

Here is the code: http://pastebin.com/81xwABYu - Do you know how to make it so that I can adjust the maximum characters, so that it'll appear as Epaulet and when it is much longer, the ellipsis will come in.

(TextRenderer.DrawText(g, itemName, GearGraphics.EquipDetailFont2, new Rectangle(50, picHeight, MAX_WIDTH - (int)layoutSize.Width, 40), ((SolidBrush)brush).Color, TextFormatFlags.EndEllipsis);

(TextRenderer.DrawText(g, itemName, GearGraphics.EquipDetailFont2, new Rectangle(8, picHeight, MAX_WIDTH - (int)layoutSize.Width, 18), ((SolidBrush)brush).Color, TextFormatFlags.EndEllipsis);)

(line beginning with var MAX_WIDTH = 261;)

"Unknown char '%'. Error

This only applies to versions with the Beast Tamer class. I was randomly checking out skills, and wanted to preview skill ID: 80011348.

It gave me an error saying: Unknown char '%'
I think I know why it crashed. I exported a .XML file of the respective .img and came across this:

<dir name="common">
        <int32 name="maxLevel" value="4" />
        <string name="mpCon" value="0" />
        <string name="time" value="2+3*x" />
        <string name="cooltime" value="180" />
        <string name="x" value="5+10*(x-1)%" /
        <string name="indieSpeed" value="-50" />
      </dir>

<string name="x" value="5+10*(x-1)%" /

Can you reproduce this @Kagamia since you have CMS installed?

'#' character bug

There are descriptions of items that don't have #c included, but just #. There's a bug where the first letter after the hashtag doesn't appear.

Example)
t

t

Other examples)
t
(Neinheartroid)

t
(Nodestone)

Incorrect Potential tier in fixed weapons

Greetings,

I have also brought this to KENNYSOFT's attention for his version.
In the V update in Korea, players could earn Absolab weapons that have 17 stars and fixed potential.

pot1
↑ This is how it looks like in-game. You will see that there is U (Unique) and 3 lines: Damage +9%, Boss Damage +35% and Critical Rate: +10%

Using KENNYSOFT's build, if we simulate it we get the following result:

pot2
↑ The simulation says the tier is Legendary (L). Is this a bug? It also says L in my GMS version. Unsure how this is in the Chinese version.

Further information:

pot3

Inaccurate comparer report

Today, GMS has updated to version 181. I tried to use the comparer feature from 180 -> 181.
If I look into the comparison folder for 180->181, I see it generates a lot of files - Files that already exist and are probably not being changed or added in this patch. It took this comparison 33 minutes and there's already more than 1.5 GB worth of data in this comparison folder...

The patch itself is 73 MB, so the comparison should be fairly quick.
This is a common issue I've gotten in the past before but I never reported it. But now it is annoying to see my space being taken by redundant data and it taking too much time.
One example, in the Map folder I now see BlackHeaven data - This is old and is not changed at all.
If I click on the HTML file for Character.wz, it says 17911 changes. That's overkill for such a small patch.

Here is a visual example)

test

↑ There is no change with this NPC yet it shows up in the comparison.

Because of this it is hard to distinguish what is really changed and what has been removed and added from looking at the different folders. Checking the String.wz HTML file says a few changes, so that should be accurate, but everything else isn't.

Do you have an idea why it is outputting existing files from any .wz file that shouldn't be there? I believe this is only happening with GMS because I never experienced this with the Korean version.

EDIT: A new patch (version 182) was released for GMS. It does the same thing! Another comparison folder filled with images of data that are already present. This doesn't happen with KMS since I also compared a new patch from the test server today...

Pet's stats misread

1

It says 0 ATT: +3. The 0 shouldn't be there. It should say Weapon.

String:

  <dir name="80000007">
    <string name="name" value="Lv. 1 Demon's Heinous Pact" />
    <string name="desc" value="Better lock your soul up tight! Increases both Attack Power and Magic Attack by 3." />
    <string name="h" value="#Weapon ATT: +#padX, Magic ATT: +#madX" />

It misreads #W.

About scripts in wz files

Hello!

I wonder if there is anyway to figure out where are maplestory's scripts saved. For example, scripts in Map.wz which usually have things to do with portals, and scripts in quest.wz/check.img seems like it contains NPC's actions.

Can you add a function that shows path to those scripts?

Thanks!

Background:

I'm working on a small program that aims to extract maplestory quests. The method is very simple: Given a key word, it searches Quest.wz/QuestInfo.img , if it finds a quest's name matches the key word, it records the quest's id, then extracts Quest.wz/Say.img/questid to get the words NPC saying.

Currently it doesn't work well. For example, I input "Lachelein" and search, the result is like that:
questviewer

As you can see, it only extracted some quests' saying, for other quests, it only extracted their name. And /Saying.img/questid is empty, too.

Then I occasionally found something interestring in Quest.wz/check.img. Most of quests that I can't extract have scripts, like this:
default

I think the script in it contains more information about those quests. How to extract them?

Name of certain item is in Korean gibberish

Greetings,

The Lachelein Arcane Symbol is bugged in its name.

lachelein1
↑ This appears when I simulate it.

lachelein2
↑ The area was just released in GMS, and I do not see the same error there in its item name.

I used an outdated extraction program for reference and I got this:
lachelein3

Export Skill Option Error

qq 20150415125612

System.NullReferenceException: Object reference not set to an instance of an object.
at WzComparerR2.Skill.CreateFromNode(Wz_Node node)
at WzComparerR2.DBConnection.ExportSkillOption(String outputDir)
at WzComparerR2.MainForm.btnExportSkillOption_Click(Object sender, EventArgs e)
at System.Windows.Forms.Control.OnClick(EventArgs e)
at DevComponents.DotNetBar.ButtonX.OnClick(EventArgs e)
at DevComponents.DotNetBar.ButtonX.OnMouseUp(MouseEventArgs e)
at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
at System.Windows.Forms.Control.WndProc(Message& m)
at DevComponents.DotNetBar.PopupItemControl.WndProc(Message& m)
at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)

on CMST 101/102

System.ArgumentOutOfRangeException: Non-negative number required

When comparing the new Private Test Server client of GMS with the public server client, I get the following error after it compares to Map.wz, making the comparer process incomplete.

The comparison was aborted. System.ArgumentOutOfRangeException: Non-negative number required.
Parameter name: count
 at System.IO.FileStream.set_Position(Int64 value)
 at WzComparerR2.WzLib.Wz_Image_GetCheckSum() in C:\Users\Desktop\WzComparerR2 Localization\GMS\Stable\WzComparerR2\WzComparerR2.WzLib\Wz_Image.cs:line 110
 at WzComparerR2.WzLib.Wz_Image_TryExtract(Exception&e) in C:\Users\Desktop\WzComparerR2 Localization\GMS\Stable\WzComparerR2\WzComparerR2.WzLib\Wz_Image.cs:line 57
 at WzComparerR2.Comparer.EasyComparer.CompareImg(Wz_Image imgNew, Wz_Image imgOld, String imgName, String anchorName, String menuAnchorName, String outputDir, StreamWriter sw) in C:\Users\Desktop\WzComparerR2 Localization\GMS\Stable\WzComparerR2\WzCompareR2\Comparer\EasyComparer.cs:line 406
 at WzComparerR2.Comparer.EasyComparer.OutputFile(List`1fileNew, List`1fileOld, Wz_Type type, List`1 diffLst, String outputDir, StreamWriter index) in C:\Users\Desktop\WzComparerR2 Localization\GMS\Stable\WzComparerR2\Comparer\EasyComparer.cs:line 329...

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.