Заказать игровой сервер Контакты (заказать плагин/исправить ошибки/другое) Поиск

[ вход ]
[ последние сообщения ]

  • Страница 1 из 1
  • 1
Форум » SourceMod >> CS:Source >> CSGO » Уроки SourceMod (SourcePawn) Скриптинга » Загрузка файлов клиентам (Звуки, скины и т.п.)
Загрузка файлов клиентам
_wS_ Дата: Суббота, 14.01.2012, 01:43:11 | Сообщение # 1
Thanks
Загрузка файлов клиентам

AddFileToDownloadsTable(const String:filename[]) - добавить файл в очередь для загрузки.
Если попытаться добавить в очередь один и тот же файл несколько раз, то ничего страшного, он просто не добавится, если он уже в списке.
Используйте эту команду в событии OnMapStart, пример:

Код
#include <sourcemod>
#include <sdktools_stringtables>

public OnMapStart()
{
     AddFileToDownloadsTable("sound/admin_plugin/x.mp3");
     AddFileToDownloadsTable("models/player/ics/ct_gign_fbi/ct_gign.mdl");
}

Загружать нужно только нестандартные файлы, которых нет по умолчанию в игре.
Скины, звуки, .txt и другие файлы (конечно есть какие-то ограничения).
Если файл уже есть у игрока, то новый он уже никак не скачает.

Будет игрок скачивать файл или нет - зависит еще и от его некоторых клиентских настроек:

Код
// all - разрешить скачивать с сервера все файлы
// nosounds - все, кроме звуков
// none - ничего не скачивать
cl_downloadfilter "all"

// 1 - загрузка файлов вкл, 0 - откл
cl_allowdownload "1"

И серверных (server.cfg)

Код
// 1 = игроки могут скачивать, 0 = не могут
sv_allowdownload "1"

// Если указана ссылка, то будут скачивать с вашего сайта, не указана = загрузка с самого сервера (это нехорошо).
// Ссылка должна вести туда, где у вас папки sound/cfg/maps/addons
// Пример: sv_downloadurl  "http://site.ru/cstrike/"
sv_downloadurl ""

Так можно получить список файлов, которые должны загружаться клиенту:

Код
new tblidx = FindStringTable("downloadables"); // dumpstringtables в консоль
if (tblidx == INVALID_STRING_TABLE)
{
    LogError("INVALID_STRING_TABLE");
    return;
}
    
decl String:tmp[256];
new count = GetStringTableNumStrings(tblidx);

for (new i = 0; i < count; i++)
{
    ReadStringTable(tblidx, i, tmp, sizeof(tmp));
    LogError(tmp);
}
 
Naykon Дата: Пятница, 24.02.2012, 14:18:47 | Сообщение # 2
Сообщений: 439
Репутация: -4 [ +/- ]
СПС ВСЕ РАБОТАЕТ =)
 
NewQuattro Дата: Понедельник, 09.07.2012, 13:54:59 | Сообщение # 3
Сообщений: 6
Репутация: 0 [ +/- ]
Привет, подскажи, как вывести здесь текстовой файлик, чтобы плагин брал оттуда адреса файлов для скачивания клиентом
 
_wS_ Дата: Понедельник, 09.07.2012, 14:04:16 | Сообщение # 4
Thanks
Цитата NewQuattro ()
Привет, подскажи, как вывести здесь текстовой файлик, чтобы плагин брал оттуда адреса файлов для скачивания клиентом

Попробуй так:

Код
public OnMapStart()
{
    new Handle:hFile = OpenFile("cfg/downloads.txt", "r");
    if (hFile)
    {
        decl String:path[PLATFORM_MAX_PATH];
        while (!IsEndOfFile(hFile) && ReadFileLine(hFile, path, PLATFORM_MAX_PATH))
        {
            if (TrimString(path) > 2 && IsCharAlpha(path[0]))
                AddFileToDownloadsTable(path);
        }
        CloseHandle(hFile);
    }
    else
        LogError("Не удалось открыть cfg/downloads.txt");
}
 
Lens Дата: Четверг, 19.07.2012, 01:38:48 | Сообщение # 5
Сообщений: 1
Репутация: 0 [ +/- ]
а возможно ли клиенту впихнуть resmenu как в 1.6
 
sssw Дата: Четверг, 19.07.2012, 13:35:33 | Сообщение # 6
Сообщений: 123
Репутация: 14 [ +/- ]
НЕТ
 
Форум » SourceMod >> CS:Source >> CSGO » Уроки SourceMod (SourcePawn) Скриптинга » Загрузка файлов клиентам (Звуки, скины и т.п.)
  • Страница 1 из 1
  • 1
Поиск: