Вопрос Плагин на сервере не работает полноценно

Новичок
Статус
Оффлайн
Регистрация
15 Окт 2021
Сообщения
1
Реакции[?]
0
Поинты[?]
0
Не знаю куда задавать было вопрос, поэтому оставим это тут.

Суть моего вопроса, состоит в том, что plugin на сервере не работает полноценно.
Как сам плагин - работает, но он не выдает на время админку.
Название плагина - Adding admin on time.
#include <sourcemod>

new Handle:g_hKV,
String:g_szPath[PLATFORM_MAX_PATH];

public Plugin:myinfo =
{
name = "Adding Admins on time",
author = "R1KO",
version = "1.3"
}

public OnPluginStart()
{
RegAdminCmd("sm_add_admin", Command_AddAdmin, ADMFLAG_ROOT);

Init_g_hKV();
}

Init_g_hKV()
{
g_hKV = CreateKeyValues("Admins");
BuildPath(Path_SM, g_szPath, sizeof(g_szPath) - 1, "configs/admins.cfg");

if(!FileToKeyValues(g_hKV, g_szPath))
{
LogError("Файл '%s' не найден!", g_szPath);
CloseHandle(g_hKV);
return;
}
}

public Action:Command_AddAdmin(client, args)
{
if(args < 2)
{
ReplyToCommand(client, "[SM] Используйте: sm_add_admin <steam id> <иммунитет:флаги или @Группа> <Время в днях>");
return Plugin_Handled;
}

new String:szSteam[64], String:szFlags[32];
GetCmdArg(1, szSteam, sizeof(szSteam));
GetCmdArg(2, szFlags, sizeof(szFlags));

KvRewind(g_hKV);
KvJumpToKey(g_hKV, szSteam, true);
{
KvSetString(g_hKV, "auth", "steam");
KvSetString(g_hKV, "identity", szSteam);

decl String:msg[255], String:text[2][255];
if(FindCharInString(szFlags, ':', true) != -1)
{
ExplodeString(szFlags, ":", text, sizeof(szFlags), sizeof(text[]));
if(strlen(text[1])>0)
KvSetString(g_hKV, "flags", text[1]);
if(StringToInt(text[0])>0)
KvSetString(g_hKV, "immunity", text[0]);
} else if (FindCharInString(szFlags, '@', true) != -1)
{
ExplodeString(szFlags, "@", text, sizeof(szFlags), sizeof(text[]));
KvSetString(g_hKV, "group", text[1]);
}

if(args > 2)
{
new String:szTime[20];
GetCmdArg(3, szTime, sizeof(szTime));
if(StringToInt(text[0])>0)
KvSetNum(g_hKV, "expiried", GetTime() + StringToInt(szTime) *86400);
Format(msg, sizeof(msg), "\x01, Срок: \x04%d \x01дня(ей)", StringToInt(szTime));
} else Format(msg, sizeof(msg), "");
PrintToChat(client, "\x01Админ успешно добавлен. Steam_ID: \x04%s\x01, Доступ: \x04%s%s", szSteam, szFlags, msg);
}

KvRewind(g_hKV);
KeyValuesToFile(g_hKV, g_szPath);

ServerCommand("sm_reloadadmins");
return Plugin_Handled;
}

public OnClientPostAdminCheck(client)
{
new String:sSteam[64], expiried;
GetClientAuthString(client, sSteam, sizeof(sSteam));
KvRewind(g_hKV);
if(KvJumpToKey(g_hKV, sSteam))
{
expiried = KvGetNum(g_hKV, "expiried", 0);
if(expiried > 0)
{
if(GetTime() > expiried)
{
KvDeleteThis(g_hKV);
KvRewind(g_hKV);
KeyValuesToFile(g_hKV, g_szPath);
PrintToChat(client, "\x04Ваш срок пользования админ правами истек.");
ServerCommand("sm_reloadadmins");

}
else
{
decl String:sEndTime[50];
FormatTime(sEndTime, sizeof(sEndTime), "%d/%m/%Y - %H:%M", expiried);
PrintToChat(client, "\x01Дата окончания админ прав: \x04%s", sEndTime);
}
}
}
}

// Custom admin menu commands.
// For more information:
//
//
Пожалуйста, авторизуйтесь для просмотра ссылки.

//
// Note: This file must be in Valve KeyValues format (no multiline comments)
//

"Commands"
{
"ServerCommands"
{
"Дать админку на время"
{
"cmd" "sm_add_admin #1 #2 @3"
"admin" "sm_unban"
"execute" "player"
"1"
{
"type" "player"
"method" "steamid"
"title" "Кому:"

}
"2"
{
"type" "list"
"title" "Группа"
"1" "admin"
"1." "Admin"
"2" "@Moder"
"2." "Moder"
"3" "@AdminPremium"
"3." "AdminPremium"
}
"3"
{
"type" "list"
"title" "Срок:"
"1" "7"
"1." "Неделя"
"2" "30"
"2." "Месяц"
"3" "60"
"3." "2 Месяца"
}
}
}
}

L 10/22/2021 - 17:06:20: [SM] Exception reported: Client index 0 is invalid L 10/22/2021 - 17:06:20: [SM] Blaming: Adding_admins_on_time.smx L 10/22/2021 - 17:06:20: [SM] Call stack trace: L 10/22/2021 - 17:06:20: [SM] [0] PrintToChat L 10/22/2021 - 17:06:20: [SM] [1] Line 73, C:\Documents and Settings\R1KO???make_plugins\Adding_admins_on_time.sp::Command_AddAdmin
 
Последнее редактирование:
Сверху Снизу