Half-Life и Adrenaline Gamer форум
http://aghl.ru/forum/

[INC] HTTP Downloader
http://aghl.ru/forum/viewtopic.php?f=39&t=747
Страница 1 из 1

Автор:  GordonFreeman [ 15 апр 2012, 17:00 ]
Заголовок сообщения:  [INC] HTTP Downloader

HTTP Downloader

Автор: Bugsy
Версия: 0.4
Источник: http://forums.alliedmods.net/showthread.php?t=167847

Инфо:
Данный инклюд представляет возможность загружать любые файлы на сервер во время игры по протоколу HTTP. Загрузка идёт на максимальной скорости, которую может предоставить интернет канал. Работа загрузчика организована по слотам. Максимальное кол-во слотов для загрузки - 10.

Нативы:

HTTP_DownloadFile( const szRemoteFile[], const szLocalFile []) - запуск загрузки файла

  • szRemoteFile[] - URL загружаемого файла
  • szLocalFile[] - Полный для загрузки файла
  • Возвращает ID загрузки или 0, если загрузка не удалась или все слоты забиты

HTTP_AbortTransfer( iDownloadID , bool:bDeleteLocalFile=true ) - прекращение загрузки файла

  • iDownloadID - ID загрузки, которую необходимо прервать (полученной HTTP_DownloadFile)
  • bool:bDeleteLocalFile - удалить загружаемый файл
  • Возвращает 1 в случае успеха и 0, если не удалось

Форварды:

HTTP_Download( const szFile[] , iDownloadID , iBytesReceived , iFileSize , bool:bTransferComplete ) - форвард, вызываемый во время загрузки файла
  • szFile - возвращает полный путь загружаемого файла
  • iDownloadID - возвращает ID загрузки, которая вызвала форвард
  • iBytesReceived - всего получено байт
  • iFileSize - полный размер файла в байтах
  • bTransferComplete - true если завершена и false если нет

Необходимые модули:
engine
sockets

Пример:
Код:
#include <amxmodx>
#include <http>

new const Version[] = "0.3";

public plugin_init()
{
    register_plugin( "HTTP Test" , Version , "bugsy" );
   
    register_concmd( "test" , "DownloadFile" );
}

public DownloadFile()
{
    HTTP_DownloadFile( "http://forums.alliedmods.net/images/misc/am_banner.jpg" , "amxmodx.jpg" );
}

public HTTP_Download( const szFile[] , iDownloadID , iBytesRecv , iFileSize , bool:TransferComplete )
{
    if ( TransferComplete )
    {
        server_print( "%s download complete!" , szFile );
    }
    else
    {
        server_print( "File=[%s] DownloadID=%d BytesTransferred=%d iSize=%d" , szFile , iDownloadID , iBytesRecv , iFileSize );
    }
}

Заметки при работе с инклюдом
:
  • Нету проверки на наличие файла - файл просто перезаписывается
  • Некоторые файлы повреждаются во время передачи, открыть их не представляется возможным(!!!)


Вложения:
http.zip [1.71 КБ]
Скачиваний: 435

Автор:  Extremist [ 15 апр 2012, 20:31 ]
Заголовок сообщения:  Re: [INC] HTTP Downloader

не совсем смысл понял данного плагина
лучшеб сделали поддержку скачки ресурсов по ftp :Bravo:

Автор:  Lev [ 15 апр 2012, 21:05 ]
Заголовок сообщения:  Re: [INC] HTTP Downloader

:D

Автор:  GordonFreeman [ 16 апр 2012, 14:17 ]
Заголовок сообщения:  Re: [INC] HTTP Downloader

я долго думал, но не нашел применение этому инклюду
файл грузится на сам сервер, клиентам отсылать он не умеет

по фтп можно вроде сделать)
 Мой диалог с FTP :D

Автор:  Unreal [ 03 янв 2016, 03:08 ]
Заголовок сообщения:  Re: [INC] HTTP Downloader

подойдёт только как обновление плагинов не заходя на игровой сервер

Страница 1 из 1 Часовой пояс: UTC + 5 часов [ Летнее время ]
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/