thedim
Участник
- Сообщения
- 23
- Реакции
- 8
Здравствуйте, возник такой вопрос, как можно осуществить загрузку файлов только администраторам из определенной директории?
Прилагаю код: (Это загружает всем)
***********************************************************
Ниже функция которая у меня получилась (не обращайте внимания на квары), работает, но до тех пор пока не зайдет администратор, после него начинает грузиться всем... из за добавление таблици на сервер AddFileToDownloadsTable(sPath);
Собственно это пример хода моих мыслей...
**************************************************************
И все таки как можно еще сделать, что бы файлы подгружались из materials/mapige директории ТОЛЬКО АДМИНАМ?! Ломаю голову 4й день, возможно есть какие то другие средства и ход действий в коде...
Прилагаю код: (Это загружает всем)
C-подобный:
public OnPluginStart()
{
AddFolderToDownloadsTable("materials/mapige");
}
stock AddFolderToDownloadsTable(const String:sDirectory[])
{
decl String:sFile[64], String:sPath[512];
new FileType:iType, Handle:hDir = OpenDirectory(sDirectory);
while(ReadDirEntry(hDir, sFile, sizeof(sFile), iType))
{
if(iType == FileType_File)
{
Format(sPath, sizeof(sPath), "%s/%s", sDirectory, sFile);
AddFileToDownloadsTable(sPath);
}
}
}
Ниже функция которая у меня получилась (не обращайте внимания на квары), работает, но до тех пор пока не зайдет администратор, после него начинает грузиться всем... из за добавление таблици на сервер AddFileToDownloadsTable(sPath);
C-подобный:
#pragma semicolon 1
#include <sourcemod>
#include <sdktools>
new Handle:g_DownloadsType = INVALID_HANDLE;
public OnPluginStart()
{
g_DownloadsType = CreateConVar("sm_downloadstype", "1", "1 = Загружать только Админам, 0 = Загружать всем.");
}
public OnClientAuthorized(client, const String:steamID[])
{
if (GetConVarBool(g_DownloadsType)) {
new AdminId:admin = FindAdminByIdentity(AUTHMETHOD_STEAM, steamID);
if (admin != INVALID_ADMIN_ID) {
AddFolderToDownloadsTable("materials/mapige"); // Downloads Only Admins
}
}
if (!GetConVarBool(g_DownloadsType)) {
AddFolderToDownloadsTable("materials/mapige"); // Downloads All
}
}
stock AddFolderToDownloadsTable(const String:sDirectory[]) {
decl String:sFile[64], String:sPath[512];
new FileType:iType, Handle:hDir = OpenDirectory(sDirectory);
while(ReadDirEntry(hDir, sFile, sizeof(sFile), iType))
{
if(iType == FileType_File) {
Format(sPath, sizeof(sPath), "%s/%s", sDirectory, sFile);
AddFileToDownloadsTable(sPath);
}
}
}
**************************************************************
И все таки как можно еще сделать, что бы файлы подгружались из materials/mapige директории ТОЛЬКО АДМИНАМ?! Ломаю голову 4й день, возможно есть какие то другие средства и ход действий в коде...