Oyun Dedektörü Oyun Eklentileri SourcePawn Eklentiler Eklenti Komut ile Demo Başlatma
Komut ile Demo Başlatma
northeaster
Komut ile Demo Başlatma
0
58
  • Derecelendirme: 0/5 - 0 oy
  • 1
  • 2
  • 3
  • 4
  • 5
Konuyu Okuyanlar:1 Ziyaretçi
Şuan Offine!
Şuan Offine!
northeaster YÖNETİCİ
*******
Yönetici
  • Konular53
  • Mesajlar69
  • Rep puanı 3
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.

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;
}


Hızlı Menü: