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

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

  • Страница 1 из 1
  • 1
Правки плагинов
LOL0105 Дата: Воскресенье, 19.05.2019, 09:19:46 | Сообщение # 1
Сообщений: 1
Репутация: 0 [ +/- ]
Помогите пожалуйста
КАК СДЕЛАТЬ ЧТОБЫ ПИСАЛО ЛОГ ?

  • Код


}

}

public OnConVarChanged_AdminFlag_Hide(Handle:convar, const String:oldValue[], const String:newValue[])
{
g_iAdminFlag_Hide = ReadFlagString(newValue);
}

public OnConVarChanged_AdminFlag_SeeAll(Handle:convar, const String:oldValue[], const String:newValue[])
{
g_iAdminFlag_SeeAll = ReadFlagString(newValue);
}

public OnConVarChanged_AdminSelection(Handle:convar, const String:oldValue[], const String:newValue[])
{
g_bAdminSelection = GetConVarBool(convar);
}

public OnConVarChanged_SendToChat(Handle:convar, const String:oldValue[], const String:newValue[])
{
g_bSendToChat = GetConVarBool(convar);
}

public OnConVarChanged_ShowCmds(Handle:convar, const String:oldValue[], const String:newValue[])
{
g_bShowCmds = GetConVarBool(convar);
}

public OnConVarChanged_SendAll(Handle:convar, const String:oldValue[], const String:newValue[])
{
g_bSendAll = GetConVarBool(convar);
}

//public Action:Cmd_ShowAdmins(client, args)
Cmd_ShowAdmins(client)
{
if (g_bSendToChat)
{
new iCount = 0;
decl String:sName[MAXPLAYERS + 1][64];
for (new i = 1; i <= MaxClients; i++)
{
if (IsClientInGame(i) && GetUserFlagBits(i) & (ADMFLAG_GENERIC + ADMFLAG_ROOT))
{
if (!(g_iAdminFlag_SeeAll && GetUserFlagBits(client) & g_iAdminFlag_SeeAll))
{
if (g_iAdminFlag_Hide && GetUserFlagBits(i) & g_iAdminFlag_Hide)
continue;
}

GetClientName(i, sName[iCount], sizeof(sName[]));
iCount++;
}
}

decl String:sBuffer[256];
ImplodeStrings(sName, iCount, ", ", sBuffer, sizeof(sBuffer));
if (iCount)
{
CPrintToChat(client, "%s %t", g_sPrefix, "Админы онлайн в чате", sBuffer);
}
else
CPrintToChat(client, "%s %t", g_sPrefix, "Админов нет на сервере");
}
else
Menu_ShowAdmins(client);
}

Menu_ShowAdmins(client)
{
if (!DisplayMenu(Handle:CreateMenu_ShowAdmins(client), client, MENU_TIME_FOREVER))
{
CPrintToChat(client, "%s %t", g_sPrefix, "Админов нет на сервере");
}

ClearVariables(client);
}

Handle:CreateMenu_ShowAdmins(client)
{
new Handle:hMenu = CreateMenu(Handler_ShowAdmins);
SetMenuTitle(hMenu, "☆ Администрация online ☆\n%s \n", g_bAdminSelection ? "Выберите администратора...\n" : "");

decl String:sUserId[16], String:sName[64];
for (new i = 1; i <= MaxClients; i++)
{
if (IsClientInGame(i) && GetUserFlagBits(i) & (ADMFLAG_GENERIC + ADMFLAG_ROOT))
{
if (!(g_iAdminFlag_SeeAll && GetUserFlagBits(client) & g_iAdminFlag_SeeAll))
{
if (g_iAdminFlag_Hide && GetUserFlagBits(i) & g_iAdminFlag_Hide)
continue;
}

IntToString(GetClientUserId(i), sUserId, sizeof(sUserId));
GetClientName(i, sName, sizeof(sName));
AddMenuItem(hMenu, sUserId, sName, g_bAdminSelection ? ITEMDRAW_DEFAULT : ITEMDRAW_DISABLED);
}
}

return hMenu;
}

public Handler_ShowAdmins(Handle:menu, MenuAction:action, client, option)
{
switch (action)
{
case MenuAction_End:
CloseHandle(menu);

case MenuAction_Select:
{
decl String:sUserId[16];
GetMenuItem(menu, option, sUserId, sizeof(sUserId));
new target = GetClientOfUserId(StringToInt(sUserId));

if (target > 0)
{
DisplayMenu(Handle:CreateMenu_AdminSelected(target), client, MENU_TIME_FOREVER);
}
else
CPrintToChat(client, "%s %t", g_sPrefix, "Админа нет на сервере");
}
}
}

Handle:CreateMenu_AdminSelected(target)
{
new Handle:hMenu = CreateMenu(Handler_AdminSelected);
SetMenuTitle(hMenu, "Вы выбрали админа: %N\n \n", target);

decl String:sInfo[16];
IntToString(GetClientUserId(target), sInfo, sizeof(sInfo));
AddMenuItem(hMenu, sInfo, "Написать личное сообщение");
AddMenuItem(hMenu, sInfo, "Админ нарушил правила");
AddMenuItem(hMenu, sInfo, "Показать нарушителя");
AddMenuItem(hMenu, sInfo, "Оставить положительный отзыв");
AddMenuItem(hMenu, sInfo, "Оставить отрицательный отзыв");

SetMenuExitBackButton(hMenu, true);

return hMenu;
}

public Handler_AdminSelected(Handle:menu, MenuAction:action, client, option)
{
switch (action)
{
case MenuAction_End:
CloseHandle(menu);

case MenuAction_Cancel:
if (option == MenuCancel_ExitBack)
Menu_ShowAdmins(client);

case MenuAction_Select:
{
decl String:sUserId[16];
GetMenuItem(menu, option, sUserId, sizeof(sUserId));
new iUserId = StringToInt(sUserId);

if (GetClientOfUserId(iUserId) > 0)
{
if (option == 2)
{
if (!DisplayMenu(Handle:CreateMenu_ShowPlayers(client), client, MENU_TIME_FOREVER))
{
CPrintToChat(client, "%s %t", g_sPrefix, "Нет игроков");
}
}
else
{
g_iMessageType[client] = option;
CPrintToChat(client, "%s %t", g_sPrefix, "Создание сообщения", g_sMessageType[option]);
CPrintToChat(client, "%s %t", g_sPrefix, "Команды отмены");
}

g_iAdmin[client] = iUserId;
}
else
CPrintToChat(client, "%s %t", g_sPrefix, "Админа нет на сервере");
}
}
}

Handle:CreateMenu_ShowPlayers(client)
{
new Handle:hMenu = CreateMenu(Handler_ShowPlayers);
SetMenuTitle(hMenu, "Выберите игрока\n \n");

decl String:sUserId[16], String:sName[64];
for (new i = 1; i <= MaxClients; i++)
{
if (IsClientInGame(i))
{
IntToString(GetClientUserId(i), sUserId, sizeof(sUserId));
GetClientName(i, sName, sizeof(sName));
AddMenuItem(hMenu, sUserId, sName, (client == i || GetUserFlagBits(i) & (ADMFLAG_GENERIC + ADMFLAG_ROOT)) ? ITEMDRAW_DISABLED : ITEMDRAW_DEFAULT);
}
}

SetMenuExitBackButton(hMenu, true);

return hMenu;
}

public Handler_ShowPlayers(Handle:menu, MenuAction:action, client, option)
{
switch (action)
{
case MenuAction_End:
CloseHandle(menu);

case MenuAction_Cancel:
if (option == MenuCancel_ExitBack)
Menu_ShowAdmins(client);

case MenuAction_Select:
{
decl String:sUserId[16];
GetMenuItem(menu, option, sUserId, sizeof(sUserId));
new iUserId = StringToInt(sUserId);
new target = GetClientOfUserId(iUserId);

if (target > 0)
{
new admin = GetClientOfUserId(g_iAdmin[client]);
if (admin > 0)
{
g_iMessageType[client] = 2;
CPrintToChat(client, "%s %t", g_sPrefix, "Создание сообщения", g_sMessageType[2]);
CPrintToChat(client, "%s %t", g_sPrefix, "Команды отмены");
g_iPlayer[client] = iUserId;
}
else
CPrintToChat(client, "%s %t", g_sPrefix, "Админа нет на сервере");
}
else
CPrintToChat(client, "%s %t", g_sPrefix, "Игрока нет на сервере");
}
}
}

Handle:CreateMenu_Message(String:sText[], iMessageType, target, client)
{
new Handle:hMenu = CreateMenu(Handler_Message);
decl String:sPlayer[128];
new player;
if (g_iPlayer[client] > 0 && (player = GetClientOfUserId(g_iPlayer[client])) > 0)
{
//GetClientName(player, sName, sizeof(sName));
FormatEx(sPlayer, sizeof(sPlayer), "Вы выбрали игрока: %N\n", player);
}
else
sPlayer[0] = 0;

SetMenuTitle(hMenu, "[ %s ]\n%sВы выбрали админа: %N\n \nСообщение:\n%s\n \n", g_sMessageType[iMessageType], sPlayer, target, sText);

decl String:sInfo[2];
IntToString(iMessageType, sInfo, sizeof(sInfo));
AddMenuItem(hMenu, sInfo, "Изменить");
AddMenuItem(hMenu, sText, "Отправить");

SetMenuExitBackButton(hMenu, true);

return hMenu;
}

public Action:OnClientSayCommand(client, const String:command[], const String:sArgs[])
{
if (client > 0 && IsClientInGame(client))
{
if (g_iMessageType[client] > -1)
{
if (strcmp(sArgs, "!отмена", false) == 0
|| strcmp(sArgs, "!cancel", false) == 0)
{
CPrintToChat(client, "%s %t", g_sPrefix, "Отмена", g_sMessageType[g_iMessageType[client]]);

ClearVariables(client);

return Plugin_Stop;
}

if (g_iAdmin[client] > 0)
{
new target = GetClientOfUserId(g_iAdmin[client]);
if (target > 0)
{
if (g_iPlayer[client] > 0 && !(GetClientOfUserId(g_iPlayer[client]) > 0))
{
g_iPlayer[client] = -1;
CPrintToChat(client, "%s %t", g_sPrefix, "Игрока нет на сервере");
return Plugin_Stop;
}

decl String:sText[256];
strcopy(sText, sizeof(sText), sArgs);
DisplayMenu(Handle:CreateMenu_Message(sText, g_iMessageType[client], target, client), client, MENU_TIME_FOREVER);
}
else
{
CPrintToChat(client, "%s %t", g_sPrefix, "Админа нет на сервере");
g_iAdmin[client] = -1;
}
}

g_iMessageType[client] = -1;

return Plugin_Stop;
}

if (strcmp(sArgs, "!admins", false) == 0
|| strcmp(sArgs, "!админы", false) == 0
|| strcmp(sArgs, "!админлист", false) == 0
|| strcmp(sArgs, "!adminlist", false) == 0)
{
Cmd_ShowAdmins(client);

return g_bShowCmds ? Plugin_Continue : Plugin_Handled;
}
}
return Plugin_Continue;
}

public Handler_Message(Handle:menu, MenuAction:action, client, option)
{
switch (action)
{
case MenuAction_End:
CloseHandle(menu);

case MenuAction_Cancel:
if (option == MenuCancel_ExitBack)
Menu_ShowAdmins(client);

case MenuAction_Select:
{
new target = GetClientOfUserId(g_iAdmin[client]);
if (target > 0)
{
new player = 0;
if (g_iPlayer[client] > 0 && !((player = GetClientOfUserId(g_iPlayer[client])) > 0))
{
g_iPlayer[client] = -1;
CPrintToChat(client, "%s %t", g_sPrefix, "Игрока нет на сервере");
return;
}

decl String:sMessageType[2];
GetMenuItem(menu, 0, sMessageType, sizeof(sMessageType));
new iMessageType = StringToInt(sMessageType);

if (option == 0)
{
g_iMessageType[client] = iMessageType;
CPrintToChat(client, "%s %t", g_sPrefix, "Создание сообщения", g_sMessageType[iMessageType]);
CPrintToChat(client, "%s %t", g_sPrefix, "Команды отмены");
}
else
{
decl String:sText[256];
GetMenuItem(menu, 1, sText, sizeof(sText));
SendMessage(client, target, iMessageType, sText, player);
}
}
else
CPrintToChat(client, "%s %t", g_sPrefix, "Админа нет на сервере");
}
}
}

SendMessage(client, target, const iMessageType, const String:sText[], player)
{
switch (iMessageType)
{
case 0:
{
CPrintToChat(target, "%t", "Личное сообщение", client, sText);
LogToFile(g_sLogFile, "[Личное Сообщение] %L отправил администратору %L сообщение: %s", client, target, sText);
}
case 1:
{
LogToFile(g_sLogFile, "[Нарушение Администратора] %L написал о нарушении администратора %L: %s", client, target, sText);
}
case 2:
{
if (g_bSendAll)
{
PrintToAdmins("%s %t", g_sPrefix, "Нарушение игрока", client, player, sText);
}
else
CPrintToChat(target, "%s %t", g_sPrefix, "Нарушение игрока", client, player, sText);
LogToFile(g_sLogFile, "[Нарушение Игрока] %L написал о нарушении игрока %L администратору %L: %s", client, player, target, sText);
}
case 3:
{
LogToFile(g_sLogFile, "[Положительный Отзыв] %L написал положительный отзыв о администраторе %L: %s", client, target, sText);
}
case 4:
{
LogToFile(g_sLogFile, "[Отрицательный Отзыв] %L написал отрицательный отзыв о администраторе %L: %s", client, target, sText);
}
}

CPrintToChat(client, "%s %t", g_sPrefix, "Отправлено", g_sMessageType[iMessageType]);

ClearVariables(client);
}

public OnClientPostAdminCheck(client)
{
ClearVariables(client);
}

PrintToAdmins(const String:sFormat[], any:...)
{
decl String:sBuffer[256];
VFormat(sBuffer, sizeof(sBuffer), sFormat, 2);

for (new i = 1; i <= MaxClients; i++)
{
if (IsClientInGame(i) && GetUserFlagBits(i) & (ADMFLAG_GENERIC + ADMFLAG_ROOT))
{
CPrintToChat(i, sBuffer);
}
}
}

ClearVariables(client)
{
g_iMessageType[client] = -1;
g_iAdmin[client] = -1;
g_iPlayer[client] = -1;
}

Добавлено (19.05.2019, 09:24:03)
---------------------------------------------
У меня логи не ведутся
Если сможете не могли бы помочь чтоб при команде !logadmins выводился лог ?

Добавлено (19.05.2019, 10:22:25)
---------------------------------------------
У меня логи не ведутся
Если сможете не могли бы помочь чтоб при команде !logadmins выводился лог ?



Сообщение отредактировал LOL0105 - Воскресенье, 19.05.2019, 09:22:41
 
  • Страница 1 из 1
  • 1
Поиск: