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.
Hey there,
What a milestone. Your software has really developed into something beautiful. You can be proud of that and good job for spending your efforts into this. 👏
What I would like to see next in WCR?
- Avatar module improved. The avatar module is a basic module that comes with WCR2 and it is considered a great feature because it shows what the equipment/pet/riding looks like. Right now, there are a few bugs with it such as: not showing specific equipment, action frames missing certain images,
- Comparer module improved. It's great that the program can export a HTML page with differences to show. I even colored mine to red (deletions), green (additions) and yellow. (changes) I'd like to show an advanced export system that makes it easier to post on forums/community boards. Here are some examples of what I mean:
New skill added in Comparer:
Raging Blow (new) Description: Deals multiple blows to enemies in front of you. #cThe final two blows will always be criticals#. New - Level readout (MP Cost: #mpCon, Max Enemies Hit: #mobCount, Damage: #damage%, Number of Attacks: #attackCount, #cThe final two blows will be criticals#) New - maxLevel (30) New - mpCon (20+2u(x/3)) New - damage (165+4x) New - attackCount (5) New - mobCount (8)
Changed skill in Comparer:
Haku Perfected Changed - description (Improves Haku's human-form skills.\nRequired Skill: #cHaku Reborn Lv. 10 or higher# -> Enhances Haku's abilities while in human form.\nRequired Skill: #cHaku Reborn (2nd) Lv. 10 or higher. #) Changed - maxLevel (20 -> 15) Changed - masterLevel (10 -> 15)
New item in Comparer:
Dream Coin Description: A coin you received for taking on Dream Defender. You can trade it for rewards with Mr. Flopsy, the Dreamweaver. Items per slot: 999 Untradeable, Cannot be sold to NPCs
New mob in Comparer:
OMNI-CLN Level: 190 HP: 2,000,000,000 MP: 100,000 EXP: 0 Physical Attack: 22,000 Magic Attack: 24,000 Physical Defense: 120% Magic Defense: 120% Accuracy: 9,999 Avoidability: 750 KB: 1,000,000,000 MP Recovery: 10,000 Elements: Physical resistance, Holy resistance, Fire resistance, Ice resistance, Poison resistance, Lightning resistance, Dark resistance Boss Auto-Aggro Cannot be knock backed Fixed Damage: 1
(This boss has a property named fixedBodyAttackDamageR with a value of 50. Never heard of this property before. I assume it's 50% damage fixed when touching the body?)
etc.
- This issue fixed, so it can be closed? 😛
Kenny is working on a separate plugin that allows you to simulate enhanced equipment instead of clean equipment. He knows more about it.
What's the point of online chat in MapRender?
Great milestone. Also I have some opinions:
-
In fact, KMS and GMS surely use GDI, not GDI+. Its rendered result is completely different for English characters.
-
How about language pack? :)
-
I like Comparer and MapRender's new functions!
@Sunaries
1> Momiji may be more professional on avatar simulation, I made Avatar plugin just for self-use at the beginning. It could provide some programmability functions to other module.
Are we really need a complete version?
2> 😃 Is this idea from southperry.net?
3> I'll fix it on my branch these days.
ex1: Wc1 could create custom equips with any properties, but was dropped after WcR2. I'm worried about someone will use it for fraud. (In fact , existed)
ex2: IME and networking support. Just show our programming skill >.<
@KENNYSOFT
1> Technically, Both GDI and GDI+ use Uniscribe as their shape engine. But it is tooooooo difficult to study. Neither GDI or GDI+ privodes an easy-to-use shape/layout API, even an accurately measure function.
So is there a universal solution for GDI/Monogame? FreeType&harfbuzz? D2D/DWrite?
2> Language pack? Waiting for ver. 2.2 😆 It's really a 'big work'.
3> EKUI is an interesting library, if it is fully open source we could do more things with it.
@Kagamia
2> 😃 Is this idea from southperry.net?
Yup, this way you simplify it and make it a bit better to read. Of course this can be optional for those who prefer to see the old style.
OK!
Ah, I have a question too. Can I compare just about two imgs? When I compare like KMS v1.2.279 and KMST v1.2.41 then Commodity.img changes a lot, also KMST v1.2.41 and KMS v1.2.280 changes a lot. But I believe there's a few changes between KMS v1.2.279 and v1.2.280; so I want to compare just Commodity.img between two KMS versions.
@KENNYSOFT
emmm, You could write test code somewhere, and change EasyComparer.CompareImg to public temporarily.
Oh, thanks. I'll try for that.
Also, my CustomItemRender plugin, which simulates item from some information file, is for integrate with my another project, which gets item info to file from KMS server using mobile application's packet. Yeah, I know that someone could make fake, so I will add some string like "this simulation is made from WcR2".
I have another idea. How about making functions to explore patch files? Before comparing, just seeing inside of patch file would be great function.
@KENNYSOFT Yes! I have imagined that things many years ago, and it can be easily achieved.
A patch file contains a list of instructions, which declare how a new file was built. So we could build a virtual file and load as a WzFile, compare with origin files, and export comparison reports.
sealed class VirtualFile : System.IO.Stream {
public VirtualFile(Stream PatchFilePart, Stream OldFile);
public int Read(byte[], int, int) {
//copy bytes from the patch file and old file to output buffer.
}
public void Seek() {
//binary search from file parts cache.
}
public void Write(byte[], int, int) { throw; //virtual file is read-only. }
private FilePart[] parts;
private void PreLoad();
}
struct FilePart {
public int InstType;
public int Position;
public int OffsetOrByteValue;
public int Length;
}
The patch file itself can't do anything.
OK. The final issue is:
The implemention of Read() will actually access the source files RANDOMIZED, it could cause an efficiency bottleneck and can't avoid.
Is it possible by comparing two versions, let's say KMS and KMST (without patching) to see what's different about it? Maybe a useful feature if you have to download a whole new client but cannot patch.
@Sunaries Yes, you can open two different versions of base.wz (or other wz) together, and then click EasyCompare. It provides the same function as the comparer in the patcher.

@Kagamia Thanks!
I have another suggestion. Add the option (through right-click on the directory) to extract images, like monster images, in bulk.

If you add an option "Extract in bulk", you would need to select a destination folder and then the extraction is in progress. It's useful if you'd like to have a lot of images from different monsters (or items, maps, skill icons etc.)
@Sunaries Okey~ considered as part of v2.1. 😄
Is that bulk exporting supported in LuaConsole?
@KENNYSOFT Yes, Code example => https://github.com/Kagamia/WzComparerR2/blob/master/WzComparerR2.LuaConsole/Examples/DumpXml.lua
Avatar: support mix colored hair would be fun! Already supported in KMS's ranking thumbnails.
@KENNYSOFT 😃 How it looks like?
@Kagamia Here's my character.
^ Yellow twinkle hair (36193)
^ Red twinkle hair (36191)
^ Mixed! (Yellow 50 + Red 50)
^ Mixed 2 (Yellow 50 + Green 50)
@Kagamia Another suggestion: support for APNG format. (animated PNG)

↑ like this? 😃
Yeah~ like HaRepacker :)
@Sunaries I have tried to build a tool-chain to generate APNG animates months ago.
But I don't know the algorithm to reduce the file size (bgra ->indexed png with alpha channel). 😢
I'd like to see a Export Avatar option! So after dressing up my avatar in WzComparer I can save it to my computer
@Dban1 It's already implemented in my KMS version; @craftingmod made it. So @Kagamia you can see the codes :)
@KENNYSOFT Yeapp! I'm aware of your version haha and that's really good, but it's all in Korean ;( Though I can guess my way through the UI, I thought it'd be better if there was an English version of yours :)
😭 I have changed my job last month, and then I'm still busy on business for the government.
As you see, I havn't update any featue since later October, the uncompleted version with D2D font system is also sleeping on my laptop.
Sorry for those are patiently waiting for WCR2 update. I don't know when I'll be free. 😢
@Kagamia Thanks a lot for getting back to us! The most important thing is that you are still responsive to us and the project :) I am taking computer sciences next year and right now I know very little. Hopefully in the future I can contribute lots as well!
Yeah~ Hmm, I think Language pack is the most needed part to give my codes to the main project :)
Is it hard to code?
OMNI-CLN
Level: 190
HP: 2,000,000,000
MP: 100,000
EXP: 0
Physical Attack: 22,000
Magic Attack: 24,000
Physical Defense: 120%
Magic Defense: 120%
Accuracy: 9,999
Avoidability: 750
KB: 1,000,000,000
MP Recovery: 10,000
Elements: Physical resistance, Holy resistance, Fire resistance, Ice resistance, Poison resistance, Lightning resistance, Dark resistance
Boss
Auto-Aggro
Cannot be knock backed
Fixed Damage: 1