-
1 Attachment(s)
[C#] Free open source game loader/patcher
Custom Game Loader is a program designed to make game loader/patching easy for both the admins and clients.
In short, it's a program designed for MMOs such as World of Warcraft, Lineage 2, Ragnarok Online 2 and etc. Think of Prana Updater, but better.
http://ultraedge.net:88/graphics/cglload.jpg
http://ultraedge.net:88/graphics/cglwindow.jpg
ZIPs are a bit buggy. A useless error message appears, but it still unzips.
FEATURES
Streamlined and easy to use GUI
Resumable Downloads
RAR and ZIP Support
Game directory auto find. Automatically finds the game directory so you don't have to
Open source! Uses fully documented code so that anyone can customize the program
FREE as in beer and freedom!
Supports multiple MMOs! More MMO support on the way!
Uses the registry to keep file clutter to a minimal
Uses customizable INI files for easy customization (supports older Prana Updater config files!!)
Easy portability. CGL can be placed anywhere on the HDD. No need to stick the exe in the game directory.
HOW TO USE:
Using CGL is easy. For the client, all they need to do is run the program. It'll automatically download the updates, install them and then allow for the user to run the game. There's nothing to set up or configure. Everything is automatic.
CGL searches the registry for the MMO specified by the admin. If it finds it, it can retrieve the game directory and the exe to run. If it doesn't find it, it'll perform a quick hard drive search for the game. For the advanced users, there's a manual find as well.
For the admins, all that needs to be is the updater.cfg and updates.list file needs to be in the same directory as your update files on a website that's accessible through HTTP. I haven't given the program FTP support yet.
Here are those files.
updater.cfg
Quote:
[Config]
# The Config Links go Here!
# This is the location of where your configuration files should be located
Config_Link=https://ultraedge.net/Archive/cgl
# Obviously, your Homepage address goes here
Homepage=https://ultraedge.net
# Edit this field for files used to redirect your clients to your private server.
# For example. If you're running World of Warcraft, you may want to change this to
# realmlist.wtf. For Lineage II, this value is automatically changed to the host file.
# So, for those running L2, skip this
ClientInfo=mclientinfo.xml
# Custom Game Loader automatically sets this.
AppName=102.0
# Place the name of the exe CGL will need to run to start the game
ClientName=wow.exe
# CGL automatically sets this.
FileName=uroLoader
# Put in your server's domain name or IP address. This is used to determine if your server
# is offline or online
IpResolve=ultraedge.shacknet.nu
CGLIpResolve=ultraedge.shacknet.nu
[ClientInfo]
Playlist=track04.mp3
# The Account and Inter are the ports of the login and game servers. Account = Login server. And Inter = Game Server.
Account=3724
Inter=8085
# This is the name of the game. CGL uses this to determine what game it should look for on the client's machine.
# Here is what is supported:
# World of Warcraft
# Lineage II
# Ragnarok Online
# The casing doesn't matter. Just the name of the game will due with no spaces.
Display=World of Warcraft
updates.list
Quote:
#------------------------------------------------------
# This area tells Custom Game Loader which files to download to the client's computer
# The default area is the main game directory.
#------------------------------------------------------
[Updates]
Update_1=https://ultraedge.net/Archive/cgl/music4.rar
Update_2=https://ultraedge.net/Archive/cgl/hosts.rar
#-------------------------------------------------------
# This section tells Custom Game Loader where the updates should be downloaded to on the
# client's computer.
#
# Default -- Main Custom Game Loader Directory
# Hosts -- In the host directory (C:\Windows\System32\drivers\etc)
# Game -- The Main game directory
#--------------------------------------------------------
[Custom]
Readme.rar=Default
music2.rar=Default
music3.rar=Default
notice2.rar=Default
hosts.rar=Hosts
#--------------------------------------------------------
# This area tells custom game loader to run files after it downloads them.
# You have to have the file compressed in a rar or zip file.
# bar.rar=script.exe -- This tells CGL to uncompress bar.rar and execute script.exe
#--------------------------------------------------------
[Execute]
#-----------------------------------------------------
# This will allow Custom Game Loader to display a message after extracting a file.
# bar.rar=This file is a rar file -- This allows a message to appear whenever you
# specify text to a particular file. Very useful if you want to warn users about certain
# files to run or not run.
#-----------------------------------------------------
[Message]
Now, there's one more thing needed to get your clients connected to you. Be sure to give them the main executable. The one provided has the exe and the system.ini file. The system.ini file contains the location to where to download the config files shown above. Once it downloads that, it'll immediately delete the system.ini file and work from the registry.
It's pretty self explanatory.
The software is still in beta stage as there are some bugs I'd need to fix and stuff like that. If you have any questions, please reply to this thread and I'll see if I can respond as quickly as possible.
------------------------------------------------------------------------------------------
The source code appears to be too large for this forum. So, check out the mirror here:
http://ultraedge.net:88/forums/viewtopic.php?f=15&t=5
-
Re: [C#] Free open source game loader/patcher
Very nice! +Karma for you! This is a very good application, I might use it for my server ;)
-
Re: [C#] Free open source game loader/patcher
-
Re: [C#] Free open source game loader/patcher
very nice thanks for releasing this =D
-
Re: [C#] Free open source game loader/patcher
I get this error when running the patcher, and as for the error it cant connect to 127.0.0.1:81 where do I change this? so it connects to my website and not localhost?
Quote:
[Error Count]
Tally=1
[Error Messages]
Error 1=System.Net.WebException: Kan geen verbinding met de externe server maken ---> System.Net.Sockets.SocketException: Kan geen verbinding maken omdat de doelcomputer de verbinding actief heeft geweigerd 127.0.0.1:81
bij System.Net.Sockets.Socket.DoConnect(EndPoint endPointSnapshot, SocketAddress socketAddress)
bij System.Net.Sockets.Socket.InternalConnect(EndPoint remoteEP)
bij System.Net.ServicePoint.ConnectSocketInternal(Boolean connectFailure, Socket s4, Socket s6, Socket& socket, IPAddress& address, ConnectSocketState state, IAsyncResult asyncResult, Int32 timeout, Exception& exception)
--- Einde van intern uitzonderingsstackpad ---
bij System.Net.WebClient.DownloadFile(Uri address, String fileName)
bij System.Net.WebClient.DownloadFile(String address, String fileName)
bij cgl.frmInitialize.dataImport(String location)
Also made support for Anarchy Online, my launcher looks like this, just gotta find out how to change the 127.0.0.1:81 then its done lol
http://playao.no-ip.biz/Launcher.jpg
-
Re: [C#] Free open source game loader/patcher
Very nice share.Whatever you need...post here and don't forget to keep updated the Topic.
Really nice thanks!
-Blane
-
Re: [C#] Free open source game loader/patcher
Quote:
Originally Posted by
Eponyx
I get this error when running the patcher, and as for the error it cant connect to 127.0.0.1:81 where do I change this? so it connects to my website and not localhost?
Also made support for Anarchy Online, my launcher looks like this, just gotta find out how to change the 127.0.0.1:81 then its done lol
http://playao.no-ip.biz/Launcher.jpg
lol! The error is in another language!! I suppose you must not be using the English version of Windows.
As far as it connecting to 127.0.0.1, it shouldn't be. What does your updater.cfg file look like?
-
Re: [C#] Free open source game loader/patcher
I'm not hehe, it's dutch.. heres my cfg file:
Quote:
[Config]
Config_Link=http://playao.no-ip.biz/dimensions.txt
Homepage=http://playao.no-ip.biz
ClientInfo=cd_image\data\launcher\dimensions.txt
AppName=102.0
ClientName=anarchy.exe
FileName=PlayAO Patcher
IpResolve=playao.no-ip.biz
CGLIpResolve=playao.no-ip.biz
[ClientInfo]
Playlist=track04.mp3
Account=7501
Inter=7500
Display=AnarchyOnline
edit; ok fixed the 127.0.0.1 part, i was using a proxy on IE and that was no good :P but now it gives the same error but for the IP: 192.168.0.9:80
-
Re: [C#] Free open source game loader/patcher
Quote:
Originally Posted by
Eponyx
I'm not hehe, it's dutch.. heres my cfg file:
edit; ok fixed the 127.0.0.1 part, i was using a proxy on IE and that was no good :P but now it gives the same error but for the IP: 192.168.0.9:80
The config link shouldn't point to a file. It should point to a directory.
So....
BEFORE: Config_Link=http://playao.no-ip.biz/dimensions.txt
AFTER : Config_Link=http://playao.no-ip.biz/
As for it connecting to 192.168.0.9:80, be sure to check your hosts file. Make sure it isn't redirecting anything. Also, double check the proxy settings in IE. If you observe the code, you'll know that CGL only loads up the web location of whatever you stick in the updater.cfg file. It doesn't make up its own web address.
If you can, I'd be interested if you could translate that dutch error message to English for me. That way I can help you better.
-
Re: [C#] Free open source game loader/patcher
Thanks alot, that worked... the AFTER: part resolved the connection issue aswell.
-
Re: [C#] Free open source game loader/patcher
Quote:
Originally Posted by
Eponyx
Thanks alot, that worked... the AFTER: part resolved the connection issue aswell.
I'd be highly interested in the code you used to get CGL to support Anarchy Online. That way, I can add it to the official build.
-
Re: [C#] Free open source game loader/patcher
-
Re: [C#] Free open source game loader/patcher
When click the image links it comes up this ^^
There is a problem with this website's security certificate
The security certificate presented by this website was not issued by a trusted certificate authority.
Security certificate problems may indicate an attempt to fool you or intercept any data you send to the server.
Click here to close this webpage.
?????
-
Re: [C#] Free open source game loader/patcher
Quote:
Originally Posted by
Extreme,
When click the image links it comes up this ^^
There is a problem with this website's security certificate
The security certificate presented by this website was not issued by a trusted certificate authority.
Security certificate problems may indicate an attempt to fool you or intercept any data you send to the server.
Click here to close this webpage.
?????
Depends on the browser you use. Some will give you the ability to proceed and others will require to do extra. The SSL was made to protect you and what you may get from the site. If you're still having issues, you can go here:
http://ultraedge.net:88
-
Re: [C#] Free open source game loader/patcher
Quote:
Originally Posted by
Qchan
I'd be highly interested in the code you used to get CGL to support Anarchy Online. That way, I can add it to the official build.
I never finished the code, I just used some basic coding to support it but as I no longer dev. AO I kinda quit coding the launcher for it too, source for AO Support was passed over to the left over emu devs and thats all. :P
-
Re: [C#] Free open source game loader/patcher
Quote:
Originally Posted by
Eponyx
I never finished the code, I just used some basic coding to support it but as I no longer dev. AO I kinda quit coding the launcher for it too, source for AO Support was passed over to the left over emu devs and thats all. :P
Oh, I see. Coding CGL for extra game support is easy. Its just one section in CGL. It's heavily documented, so there shouldn't be an issue.
-
Re: [C#] Free open source game loader/patcher
Code:
See the end of this message for details on invoking
just-in-time (JIT) debugging instead of this dialog box.
************** Exception Text **************
System.NullReferenceException: Object reference not set to an instance of an object.
at cgl.frmInitialize.frmInitialize_Load(Object sender, EventArgs e)
at System.Windows.Forms.Form.OnLoad(EventArgs e)
at System.Windows.Forms.Form.OnCreateControl()
at System.Windows.Forms.Control.CreateControl(Boolean fIgnoreVisible)
at System.Windows.Forms.Control.CreateControl()
at System.Windows.Forms.Control.WmShowWindow(Message& m)
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 System.Windows.Forms.Form.WmShowWindow(Message& m)
at System.Windows.Forms.Form.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)
************** Loaded Assemblies **************
mscorlib
Assembly Version: 2.0.0.0
Win32 Version: 2.0.50727.1433 (REDBITS.050727-1400)
CodeBase: file:///C:/WINDOWS/Microsoft.NET/Framework/v2.0.50727/mscorlib.dll
----------------------------------------
cgl
Assembly Version: 1.0.0.0
Win32 Version: 1.0.0.0
CodeBase: file:///C:/DOCUME~1/Intelext/LOCALS~1/Temp/Rar$EX00.312/cgl30/cgl.exe
----------------------------------------
System.Windows.Forms
Assembly Version: 2.0.0.0
Win32 Version: 2.0.50727.1433 (REDBITS.050727-1400)
CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/System.Windows.Forms/2.0.0.0__b77a5c561934e089/System.Windows.Forms.dll
----------------------------------------
System
Assembly Version: 2.0.0.0
Win32 Version: 2.0.50727.1433 (REDBITS.050727-1400)
CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/System/2.0.0.0__b77a5c561934e089/System.dll
----------------------------------------
System.Drawing
Assembly Version: 2.0.0.0
Win32 Version: 2.0.50727.1433 (REDBITS.050727-1400)
CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/System.Drawing/2.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll
----------------------------------------
System.Configuration
Assembly Version: 2.0.0.0
Win32 Version: 2.0.50727.1433 (REDBITS.050727-1400)
CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/System.Configuration/2.0.0.0__b03f5f7f11d50a3a/System.Configuration.dll
----------------------------------------
System.Xml
Assembly Version: 2.0.0.0
Win32 Version: 2.0.50727.1433 (REDBITS.050727-1400)
CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/System.Xml/2.0.0.0__b77a5c561934e089/System.Xml.dll
----------------------------------------
************** JIT Debugging **************
To enable just-in-time (JIT) debugging, the .config file for this
application or computer (machine.config) must have the
jitDebugging value set in the system.windows.forms section.
The application must also be compiled with debugging
enabled.
For example:
<configuration>
<system.windows.forms jitDebugging="true" />
</configuration>
When JIT debugging is enabled, any unhandled exception
will be sent to the JIT debugger registered on the computer
rather than be handled by this dialog box.
-
Re: [C#] Free open source game loader/patcher
Quote:
Originally Posted by
Intelext
Code:
See the end of this message for details on invoking
just-in-time (JIT) debugging instead of this dialog box.
************** Exception Text **************
System.NullReferenceException: Object reference not set to an instance of an object.
at cgl.frmInitialize.frmInitialize_Load(Object sender, EventArgs e)
at System.Windows.Forms.Form.OnLoad(EventArgs e)
at System.Windows.Forms.Form.OnCreateControl()
at System.Windows.Forms.Control.CreateControl(Boolean fIgnoreVisible)
at System.Windows.Forms.Control.CreateControl()
at System.Windows.Forms.Control.WmShowWindow(Message& m)
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 System.Windows.Forms.Form.WmShowWindow(Message& m)
at System.Windows.Forms.Form.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)
************** Loaded Assemblies **************
mscorlib
Assembly Version: 2.0.0.0
Win32 Version: 2.0.50727.1433 (REDBITS.050727-1400)
CodeBase: file:///C:/WINDOWS/Microsoft.NET/Framework/v2.0.50727/mscorlib.dll
----------------------------------------
cgl
Assembly Version: 1.0.0.0
Win32 Version: 1.0.0.0
CodeBase: file:///C:/DOCUME~1/Intelext/LOCALS~1/Temp/Rar$EX00.312/cgl30/cgl.exe
----------------------------------------
System.Windows.Forms
Assembly Version: 2.0.0.0
Win32 Version: 2.0.50727.1433 (REDBITS.050727-1400)
CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/System.Windows.Forms/2.0.0.0__b77a5c561934e089/System.Windows.Forms.dll
----------------------------------------
System
Assembly Version: 2.0.0.0
Win32 Version: 2.0.50727.1433 (REDBITS.050727-1400)
CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/System/2.0.0.0__b77a5c561934e089/System.dll
----------------------------------------
System.Drawing
Assembly Version: 2.0.0.0
Win32 Version: 2.0.50727.1433 (REDBITS.050727-1400)
CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/System.Drawing/2.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll
----------------------------------------
System.Configuration
Assembly Version: 2.0.0.0
Win32 Version: 2.0.50727.1433 (REDBITS.050727-1400)
CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/System.Configuration/2.0.0.0__b03f5f7f11d50a3a/System.Configuration.dll
----------------------------------------
System.Xml
Assembly Version: 2.0.0.0
Win32 Version: 2.0.50727.1433 (REDBITS.050727-1400)
CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/System.Xml/2.0.0.0__b77a5c561934e089/System.Xml.dll
----------------------------------------
************** JIT Debugging **************
To enable just-in-time (JIT) debugging, the .config file for this
application or computer (machine.config) must have the
jitDebugging value set in the system.windows.forms section.
The application must also be compiled with debugging
enabled.
For example:
<configuration>
<system.windows.forms jitDebugging="true" />
</configuration>
When JIT debugging is enabled, any unhandled exception
will be sent to the JIT debugger registered on the computer
rather than be handled by this dialog box.
Umm... What problem are you having here?
-
Re: [C#] Free open source game loader/patcher
does this work with visual C#?
-
Re: [C#] Free open source game loader/patcher
Will this work for a verison of GunZ?
-
Re: [C#] Free open source game loader/patcher
Quote:
Originally Posted by
bounty-hunter
does this work with visual C#?
Yes...
Quote:
Originally Posted by
tagerinator
Will this work for a verison of GunZ?
Currently, it doesn't, but I can add support! I just need some information...
1) Where is the game directory registry key?
2) What folder does the game install in?
I believe that's all the information I need. Once I get that, I can add support for it.
Right now, I'm working on adding split rar file support. So, it'll be easier to divide large update files into chunks and have your clients download it. I'll also enable the WWW browse window (its disabled in the code. You can enable it by uncommenting it in the source code).
-
Re: [C#] Free open source game loader/patcher
yeah make a button and type in System.Diagnostic.Process.Start(Application.StartupPath + "Gunz.exe") i think thats it or something like that. Anyways this is really good
-
Re: [C#] Free open source game loader/patcher
Errr i made one too check it out its my sig... but it has more features and a cp threw the web, Has the following ---- Installer / Updater / Launcher / Uninstaller / Control Panel so all you need to do is give out the install pretty much and control it from the cp on my web. If you need some help or advice msn me at giro58@live.com
-
Re: [C#] Free open source game loader/patcher
Quote:
Originally Posted by
bounty-hunter
yeah make a button and type in System.Diagnostic.Process.Start(Application.StartupPath + "Gunz.exe") i think thats it or something like that. Anyways this is really good
Why add this when you can specify the EXE in the updater.cfg file?
If you want CGL to automatically find the Game Directory, I will need to have CGL point to the registry to find the proper directory.
Quote:
Originally Posted by
giro58
Errr i made one too check it out its my sig... but it has more features and a cp threw the web, Has the following ---- Installer / Updater / Launcher / Uninstaller / Control Panel so all you need to do is give out the install pretty much and control it from the cp on my web. If you need some help or advice msn me at
giro58@live.com
This works the same way except its much easier. You give out the exe file and the configuration files located on your server do the rest.
Nothing needs to be installed here. I made it that way so that the exe can go anywhere on the HDD.
If you wish to contribute to the code, that's fine too! However, be sure to post it on the message forums at Ultra Edge. The reason is so that I can keep a better track of the code.
-
Re: [C#] Free open source game loader/patcher
Wow thats nice. Im going to test. Thanks!
-
Re: [C#] Free open source game loader/patcher
Quote:
Originally Posted by
Thesnowman
Wow thats nice. Im going to test. Thanks!
Enjoy!
I just found a new bug in the loader. If the game hasn't formally been installed and the data is not in the registry, it tends to cause it to crash. I'm working on that as we speak...
Has anyone tried this in Vista yet? Does it work?
-
Re: [C#] Free open source game loader/patcher
I downloaded to test your loader more he calls a filename update.prog and generates error
how do I fix this?
cgl log:
[Error Count]
Tally=1
[Error Messages]
Error 1=System.Net.WebException: O servidor remoto retornou um erro: (404) N
-
Re: [C#] Free open source game loader/patcher
[QUOTE=mp3xviciado;4873616]I downloaded to test your loader more he calls a filename update.prog and generates error
how do I fix this?
cgl log:
[Error Count]
Tally=1
[Error Messages]
Error 1=System.Net.WebException: O servidor remoto retornou um erro: (404) N