Normalde sadece rcon yetkisi olanlar demo kaydı alabiliyor. Rcon yetkisi de her yetkiliye verilmiyor. Yoksa sunucuda her istediğini yapar yetkili.
Gelen istek üzerine b yetkisine sahip yetkililer demo kaydı baslatabileceği eklenti yaptım.
Sunucunun ana dizinine demolar adında klasör açınız.
Aşağıdaki kodu compile edip sunucunuza yükleyiniz.
Komutlar:
!kayitbaslat komutu demoyu başlatır.
!kayitdurdur komutu demoyu durdurur.
Gelen istek üzerine b yetkisine sahip yetkililer demo kaydı baslatabileceği eklenti yaptım.
Sunucunun ana dizinine demolar adında klasör açınız.
Aşağıdaki kodu compile edip sunucunuza yükleyiniz.
Komutlar:
!kayitbaslat komutu demoyu başlatır.
!kayitdurdur komutu demoyu durdurur.
Kod :
#include <sourcemod>
#pragma newdecls required
ConVar g_hDemoPath = null;
bool b_demo;
public Plugin myinfo =
{
name = "!kayit demo kaydi baslat",
author = "northeaster",
description = "",
version = "",
url = "http://forum.sourceturk.net"
}
public void OnPluginStart()
{
RegAdminCmd("sm_kayitbaslat", SM_KayitBaslat, ADMFLAG_GENERIC);
RegAdminCmd("sm_kayitdurdur", SM_KayitDurdur, ADMFLAG_GENERIC);
g_hDemoPath = CreateConVar("sm_demo_kayit_klasoru", "demolar");
AutoExecConfig(true, "sm_kayit");
}
public void onMapStart()
{
b_demo = false;
}
public Action SM_KayitBaslat(int client, int args)
{
if(!b_demo)
{
char sPath[PLATFORM_MAX_PATH], sTime[16], sMap[32];
g_hDemoPath.GetString(sPath, sizeof(sPath));
FormatTime(sTime, sizeof(sTime), "%Y%m%d-%H%M%S", GetTime());
GetCurrentMap(sMap, sizeof(sMap));
ReplaceString(sMap, sizeof(sMap), "/", "-", false);
ServerCommand("tv_record \"%s/demo-%N-%s-%s\"", sPath, client, sTime, sMap);
PrintToChat(client, "[SM] Demo kaydı başlamıştır. (%s/demo-%N-%s-%s.dem)", sPath, client, sTime, sMap);
PrintToChatAll("[SM] %N demo kaydı başlatmıştır.", client);
LogMessage("Recording to %s/demo-%N-%s-%s.dem", sPath, client, sTime, sMap);
b_demo = true;
}
PrintToChat(client, "[SM] Aktif demo kaydı bulunuyor.");
return Plugin_Handled;
}
public Action SM_KayitDurdur(int client, int args)
{
if(b_demo)
{
ServerCommand("tv_stoprecord");
PrintToChat(client, "[SM] Demo kaydı durdurulmuştur.");
b_demo = false;
}
PrintToChat(client, "[SM] Aktif demo kaydı bulunmamaktadır.");
return Plugin_Handled;
}
E-Posta: [email protected]