Hello there, in the summer, i started working on a patcher for flyff, but i was lazy and then when i dod the basic UI, i threw it in my backup HDD. And then, not more than 1 week ago, i restarted working on it.
This patcher is basic, it has nothing better than the others, so that's why i'm puting it here to get criticized and some suggestions about making it better.
http://i.imgur.com/NcNoaFo.png
The UI is not done yet as you can see it's still ugly.
The different thing that this patcher has over the eflyff patcher is that it's MD5 checking the files, and i still don't know if it's better or worse, but performance wise, the eflyff patcher is faster.
As well, i didn't use a simple list text file, but i used an XML file:
I still don't know if this is better, but i like it more this way, because it's more organized.
exemple:
As you can see, there is a server key, it's used to not let the patcher get stolen and used by other servers. the key is MD5 hashed with a salt, just like neuz's password encryption.Code:<server key='serverkey' version='1.0.0.0'>
<files>
<item id='1' directory='./' name='data.res.gz' md5='a1e30bf3e4a1598f785b42a41a3845a9'/>
<item id='2' directory='./' name='dataSub1.res.gz' md5='11d5b04e7ab6ba0f822050d5d8e9da2d'/>
<item id='3' directory='./' name='dataSub2.res.gz' md5='7df46f0a57b2cdacebc93c9be0ff2c27'/>
<item id='4' directory='./' name='Neuz.exe.gz' md5='28e3e3d210bb11d2c691587a121b1d74'/>
</files>
</server>
And the md5 hash is made before the files got compressed into .gz format.
This is the configuration file of the patcher:
It's basic, it has everything that the patcher needs, including the md5 key.Code:[Patcher]
server=127.0.0.1
version=1.0.0.0
list_file=list.xml
news_file=Info.xml
key=e22d3f2063f416e7a16a204f201162df
And this is the News XML file to display the news on the patcher:
Basicly, the patcher gets the name of the file from the list, compare the MD5, if it's correct, it skips it, if not, it downloads it and patch it.Code:<new>
<patcher1>
<news news="">
<item>No news yet!</item>
</news>
</patcher1>
<patcher2>
<updates updates="">
<item>No updates yet! </item>
</updates>
</patcher2>
<patcher3>
<events events="">
<item>No events yet!</item>
</events>
</patcher3>
</new>
So anyway, as i said, this is codded in C# using a metroFramework for the UI, and the UI is not done yet.
Hope you like it ;D
And sorry for my bad english :p
