Автозапись демо / Auto Demo Record 1.0.0

Плагины и дополнения / Plugins and add-ons

Модераторы: Dame-danners, Longipongeoos

Аватар пользователя
Longipongeoos
Сообщений: 191
Зарегистрирован: 12 апр 2017, 16:50

Автозапись демо / Auto Demo Record 1.0.0

Сообщение Longipongeoos » 12 ноя 2021, 10:08

Автозапись демо / Auto Demo Record 1.0.0
Описание:
При заходе на сервер предлагается записывать демо от их лица.
Установка:
Скомпилировать при необходимости
Раскидать файлы плагина sourcemod по папкам
Исходный код

Код: Выбрать все

#pragma semicolon 1
#include <sourcemod>

new String:command_record[128];

public Plugin:myinfo =
{
   name   =   "DemoRecord client",
   author   =   "Mumuxtarka",
   version   =   "1.0"
};

public OnPluginStart()
{
   decl String:map[40],
       String:time[20];
   
   GetCurrentMap(map, 60);
   FormatTime(time, 40, "%d-%m-%Y_%H-%M");
   FormatEx(command_record, sizeof(command_record), "record SAVE/%s_%s", time, map);
}

public OnClientPutInServer(client)
{
   CreateTimer(4.0, RecordPanel, GetClientUserId(client));
}

public Action:RecordPanel(Handle:timer, any:userid)
{
   new client = GetClientOfUserId(userid);
   if (client && GetClientTeam(client) > 0)
   {
      WelcomePalen(client);
      return Plugin_Stop;
   }
   else
   {
      CreateTimer(4.0, RecordPanel, GetClientUserId(client));
   }
   return Plugin_Continue;
}

WelcomePalen(client)
{
   decl String:name[32],
       String:buffer[64];
   GetClientName(client, name, sizeof(name));

   new Handle:panel = CreatePanel();
   SetPanelTitle(panel, "[DemoRecord] Автоматическая запись демо.\n");
      
   Format(buffer, sizeof(buffer), "Добро пожаловать, %s!", name);
   DrawPanelText(panel, buffer);

   DrawPanelText(panel, "Хочешь записать свою игру?");
   DrawPanelText(panel, " ");
   DrawPanelItem(panel, "Да.");
   DrawPanelItem(panel, "Нет.");
   DrawPanelText(panel, " ");
   DrawPanelItem(panel, "Как это работает?");

   SendPanelToClient(panel, client, Select_Record_Panel, 0);
   
   CloseHandle(panel);
}

public Select_Record_Panel(Handle:panel, MenuAction:action, client, index)
{
   if (action == MenuAction_Select)
   {
      switch(index)
      {
         case 1:   Recorder(client);
         case 2: PrintToChat(client, "\x04[DemoRecord] \x01Вы отказались от записи демо!");
         case 3:   RulesPanel(client);
      }
   }
}

RulesPanel(client)
{
   new Handle:panel = CreatePanel();
   SetPanelTitle(panel, "[DemoRecord] Как это работает?");
   DrawPanelText(panel, " ");

   DrawPanelText(panel, "С Вашего соглашения автоматически запишется демо,");
   DrawPanelText(panel, "которое будет сохранено в папке cssv34/cstrike/save/");
   DrawPanelText(panel, "В случае бана или других спорных моментов,");
   DrawPanelText(panel, "при предоставлении демо вопросы будут решаться быстрей.");
   DrawPanelText(panel, " ");
   DrawPanelText(panel, "С уважением, администрация!");
   DrawPanelItem(panel, "Вернуться назад...");

   SendPanelToClient(panel, client, Select_Rules_Panel, 0);
   
   CloseHandle(panel);
}

public Select_Rules_Panel(Handle:panel, MenuAction:action, client, index)
{
   if (action == MenuAction_Select)
   {
      if (index == 1)
      {
         WelcomePalen(client);
      }
   }
}

Recorder(client)
{
   new Handle:KV = CreateKeyValues("DemoRecord");
   KvSetString(KV, "cmd", command_record);
   ShowVGUIPanel(client, "info", KV);
   CloseHandle(KV);
}
Вложения
demo_record.zip
(7.07 KiB) Загружено 126 раз

Вернуться в «SourceMod»

Кто сейчас на форуме

Количество пользователей, которые сейчас просматривают этот форум: нет зарегистрированных пользователей и 1 гость