Серый™
CS:S Server
- Сообщения
- 2,925
- Реакции
- 1,376
@666FoX666, нет.
пробуй эту версию.
время начало записи
#pragma semicolon 1
#include <sourcemod>
#define PATH_DEMO_RECORD "SAVE"
new Handle:KV, Handle:ST,
String:g_sMap[32];
public Plugin:myinfo =
{
name = "DemoRecord client",
author = "Mumuxtarka & AlmazON edition",
version = "1.3.1e"
};
public OnPluginStart()
{
HookEvent("player_team", Event_PlayerTeam);
KV = CreateKeyValues("DemoRecord");
KvSetString(ST = CreateKeyValues("DemoStoped"), "msg", "[DemoRecord] Вы отказались от записи демо");
KvSetString(ST, "cmd", "stop");
}
public OnConfigsExecuted() GetCurrentMap(g_sMap, sizeof(g_sMap));
public Event_PlayerTeam(Handle:event, const String:name[], bool:dontBroadcast)
{
if (GetEventInt(event, "oldteam") == 0 && GetEventBool(event, "disconnect") == false)
WelcomePanel(GetClientOfUserId(GetEventInt(event, "userid")));
}
WelcomePanel(client)
{
decl Handle:panel, String:buffer[66];
SetPanelTitle(panel = CreatePanel(), "[DemoRecord] Автоматическая запись демо");
FormatEx(buffer, sizeof(buffer), "Добро пожаловать, %N!", client);
DrawPanelText(panel, buffer);
DrawPanelText(panel, "Хочешь записать свою игру?\n \n");
DrawPanelItem(panel, "Да");
DrawPanelItem(panel, "Нет\n \n");
DrawPanelItem(panel, "Как это работает?");
SendPanelToClient(panel, client, Select_Record_Panel, 90);
CloseHandle(panel);
}
public Select_Record_Panel(Handle:panel, MenuAction:action, client, index)
{
if (action == MenuAction_Select)
{
switch (index)
{
case 1:
{
decl String:time_show[6], String:time_demo[17], String:message_record[256];
FormatTime(time_show, sizeof(time_show), "%H:%M");
FormatTime(time_demo, sizeof(time_demo), "%d-%m-%Y_%H-%M");
FormatEx(message_record, sizeof(message_record), "stop;record %s/%s_%s", PATH_DEMO_RECORD, time_demo, g_sMap);
KvSetString(KV, "cmd", message_record);
FormatEx(message_record, sizeof(message_record), "[DemoRecord] Запись демо началась в %s на %s\n[DemoRecord] Место хранения демо css/cstrike/%s", time_show, g_sMap, PATH_DEMO_RECORD);
KvSetString(KV, "msg", message_record);
ShowVGUIPanel(client, "info", KV);
}
case 2: ShowVGUIPanel(client, "info", ST);
case 3: RulesPanel(client);
}
}
}
RulesPanel(client)
{
decl String:buffer[128], Handle:panel;
SetPanelTitle(panel = CreatePanel(), "[DemoRecord] Как это работает?\n \n");
DrawPanelText(panel, "С Вашего соглашения автоматически запишется демо,");
FormatEx(buffer, sizeof(buffer), "которое будет сохранено в папке cssv34/cstrike/%s/", PATH_DEMO_RECORD);
DrawPanelText(panel, buffer);
DrawPanelText(panel, "В случае бана или других спорных моментов,");
DrawPanelText(panel, "при предоставлении демо, вопросы будут решаться быстрей.\n \n");
DrawPanelText(panel, "С уважением, администрация!");
DrawPanelItem(panel, "Вернуться назад...");
SendPanelToClient(panel, client, Select_Rules_Panel, MENU_TIME_FOREVER);
CloseHandle(panel);
}
public Select_Rules_Panel(Handle:panel, MenuAction:action, client, index)
{
if (action == MenuAction_Select)
WelcomePanel(client);
}
Где:PHP:#pragma semicolon 1 #include <sourcemod> #define PATH_DEMO_RECORD "SAVE" new Handle:KV, Handle:ST, String:g_sMap[32]; public Plugin:myinfo = { name = "DemoRecord client", author = "Mumuxtarka & AlmazON edition", version = "1.3.1e" }; public OnPluginStart() { HookEvent("player_team", Event_PlayerTeam); KV = CreateKeyValues("DemoRecord"); KvSetString(ST = CreateKeyValues("DemoStoped"), "msg", "[DemoRecord] Вы отказались от записи демо"); KvSetString(ST, "cmd", "stop"); } public OnConfigsExecuted() GetCurrentMap(g_sMap, sizeof(g_sMap)); public Event_PlayerTeam(Handle:event, const String:name[], bool:dontBroadcast) { if (GetEventInt(event, "oldteam") == 0 && GetEventBool(event, "disconnect") == false) WelcomePanel(GetClientOfUserId(GetEventInt(event, "userid"))); } WelcomePanel(client) { decl Handle:panel, String:buffer[66]; SetPanelTitle(panel = CreatePanel(), "[DemoRecord] Автоматическая запись демо"); FormatEx(buffer, sizeof(buffer), "Добро пожаловать, %N!", client); DrawPanelText(panel, buffer); DrawPanelText(panel, "Хочешь записать свою игру?\n \n"); DrawPanelItem(panel, "Да"); DrawPanelItem(panel, "Нет\n \n"); DrawPanelItem(panel, "Как это работает?"); SendPanelToClient(panel, client, Select_Record_Panel, 90); CloseHandle(panel); } public Select_Record_Panel(Handle:panel, MenuAction:action, client, index) { if (action == MenuAction_Select) { switch (index) { case 1: { decl String:time_show[6], String:time_demo[17], String:message_record[256]; FormatTime(time_show, sizeof(time_show), "%H:%M"); FormatTime(time_demo, sizeof(time_demo), "%d-%m-%Y_%H-%M"); FormatEx(message_record, sizeof(message_record), "stop;record %s/%s_%s", PATH_DEMO_RECORD, time_demo, g_sMap); KvSetString(KV, "cmd", message_record); FormatEx(message_record, sizeof(message_record), "[DemoRecord] Запись демо началась в %s на %s\n[DemoRecord] Место хранения демо css/cstrike/%s", time_show, g_sMap, PATH_DEMO_RECORD); KvSetString(KV, "msg", message_record); ShowVGUIPanel(client, "info", KV); } case 2: ShowVGUIPanel(client, "info", ST); case 3: RulesPanel(client); } } } RulesPanel(client) { decl String:buffer[128], Handle:panel; SetPanelTitle(panel = CreatePanel(), "[DemoRecord] Как это работает?\n \n"); DrawPanelText(panel, "С Вашего соглашения автоматически запишется демо,"); FormatEx(buffer, sizeof(buffer), "которое будет сохранено в папке cssv34/cstrike/%s/", PATH_DEMO_RECORD); DrawPanelText(panel, buffer); DrawPanelText(panel, "В случае бана или других спорных моментов,"); DrawPanelText(panel, "при предоставлении демо, вопросы будут решаться быстрей.\n \n"); DrawPanelText(panel, "С уважением, администрация!"); DrawPanelItem(panel, "Вернуться назад..."); SendPanelToClient(panel, client, Select_Rules_Panel, MENU_TIME_FOREVER); CloseHandle(panel); } public Select_Rules_Panel(Handle:panel, MenuAction:action, client, index) { if (action == MenuAction_Select) WelcomePanel(client); }
PATH_DEMO_RECORD "SAVE" - папка, в которую будут вестись записи демо-роликов.
public Plugin:myinfo =
{
name = "DemoRecord client",
author = "Mumuxtarka & AlmazON edition",
version = "1.3.1e"
};
public OnPluginStart()
{
HookEvent("player_team", Event_PlayerTeam);
KV = CreateKeyValues("DemoRecord");
KvSetString(ST = CreateKeyValues("DemoStoped"), "msg", "[DemoRecord] Вы отказались от записи демо");
KvSetString(ST, "cmd", "stop");
}
Компилируется? Значит, всё верно.после } этот символ нужен ;
L 12/29/2021 - 12:16:12: [SM] Call stack trace:
L 12/29/2021 - 12:16:12: [SM] [0] GetClientUserId
L 12/29/2021 - 12:16:12: [SM] [1] Line 38, C:\Users\ƒмитрий\Desktop\scriting\DemoRecord.sp::RecordPanel
L 12/29/2021 - 12:16:25: [SM] Exception reported: Client index 0 is invalid
L 12/29/2021 - 12:16:25: [SM] Blaming: DemoRecord.smx