Hey,

Yeah i know there are some Download DLL's out there, but none that is really working good. Here is my version. Every single file is downloaded in a different thread ==> The Engine window is not blocked BUT you have to pay attention to finish EVERY download (or at least stop and wait a frame) before closing the engine.

You can get the DLL from here: http://techmuc.kilu.de/Download.rar

Following functions are defined:
Code:
//Start the download and returns a unique identifier to the current download process
//example: var id = DownloadStart("http://www.yourserver/file.chm"."file.chm"):
var DownloadStart(char* web,char*,local);

//returns the progress of the id (in Percent)
var DownloadGetProgress(var m_id);

//returns the progress of the id (in KiloBytes)
var DownloadGetProgressInKBytes(var m_id);

//stops a specifc download
var DownloadStop(var id);

//returns the absolute size (to download) of a certain id
var DownloadGetSize(var m_id);

//returns the status of an id (1 = downloading, 0 = not downloading)
var DownloadGetStatus(var m_id);


At last a small sample:

Code:

int m_id = DownloadStart("http://www.server.de/box.rar","box.rar");
wait(15);
while(DownloadGetStatus(m_id))
{
	str_for_num(m_num,(var)DownloadGetProgress(m_id));
	str_cpy(m_str,m_num); str_cat(m_str,"\n");
	str_for_num(m_num,(var)DownloadGetProgressInKBytes(m_id));
	str_cat(m_str,m_num); str_cat(m_str,"\n");
	str_for_num(m_num,(var)DownloadGetSize(m_id));
	str_cat(m_str,m_num); str_cat(m_str,"\n");
	str_for_num(m_num,(var)DownloadGetStatus(m_id));
	str_cat(m_str,m_num); str_cat(m_str,"\n");
	wait(1);
}


best wishes