AMX MOD X
Пятница, 08.08.2025, 12:23:24



Приветствую Вас Гость | RSS
[ Главная ] [ Record Demo ClanMod style (V2.5) - AMX Mod X Форум ] [ Регистрация ] [ Вход ]
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]

Вниманию участников! Данный форум теперь является архивом и вскором времени здесь нельзя будет создавать новых тем! Просьба всем для общения и создания новых тем перейти на наш новый форум: http://amxmodx.su/

  • Страница 1 из 1
  • 1
Модератор форума: slogic, AlMod  
Record Demo ClanMod style (V2.5)
Agronom[SLK]Дата: Среда, 03.09.2008, 02:37:24 | Сообщение # 1
Полковник
Группа: Пользователи
Сообщений: 222
Репутация: 4
Статус: Не в сети
Название демки выглядит так @myname de_dust2 03-05-2008 17_44.dem
Можно ли имя оператора изменить на имя объекта, за которым смотришь в спектейте и непосредственно начинаешь записывать демку?
Думаю такое реально, так как плагин Spectator List 1.2a определяет же кто за кем следит. :D

Вот незначительно измененный мной код. Изменения не касаются вопроса топика.

Code
#include <amxmodx>
#include <amxconst>
#include <amxmisc>    

new client_demoname[128]
new rec_pl[33]
new bool:g_cstrikeRunning

new D_PLUGIN[]    = "AMX X Record Demo"

new const PLUGINNAME[] = "AMX X Record Demo"
new const VERSION[] = "v2.5"
new const AUTHOR[] = "KWo & KaszpiR"

// Menu

// ============================================================================
// ================================= INIT =====================================
// ============================================================================

public plugin_init()    
{
    register_plugin(PLUGINNAME,VERSION,AUTHOR)
    register_dictionary("recorddemo.txt")    
    register_clcmd("say recdemo","rec_demo",0)
    register_clcmd("say_team recdemo","rec_demo",0)
    register_clcmd("say scr","rec_ss",0)
    register_clcmd("say_team scr","rec_ss",0)

    register_clcmd("amx_recorddemo","rec_demo",ADMIN_MENU,"- displays record demo ask")
    register_clcmd("amx_screenshot","rec_ss",ADMIN_MENU,"- displays screenshot ask")

    // Menu
    register_menucmd(register_menuid("Screenshot"),1023,"rec_ss_action")
    register_menucmd(register_menuid("Record Demo"),1023,"rec_demo_action")
    register_menucmd(register_menuid("Stop Recording"),1023,"rec_demo_off_action")
    register_event("TextMsg","eRestart","a","2&#Game_C","2&#Game_w")
    g_cstrikeRunning = ( is_running("cstrike") || is_running("czero") )
    AddMenuItem("Record Demo", "amx_recorddemo", ADMIN_MENU, D_PLUGIN)
    AddMenuItem("Screenshot", "amx_screenshot", ADMIN_MENU, D_PLUGIN)
}

       
public rec_demo(id)    
{
    if ( rec_pl[id] == 1 )    
    {
     rec_demo_off(id)    
     return PLUGIN_HANDLED
    }
    else    
    {
     new menu_body[512],curmap[32]
     new pl_name[32]
     get_user_name(id,pl_name,31)
     new keys = (1<<0)|(1<<1)
     get_mapname(curmap,31)
     new demoname[256]
     new dem_num = 1
        
     new stime[64]    
     get_time("%d-%m-%Y %H_%M",stime,63)
        
     format(demoname,255,"%s %s",pl_name,curmap)
     replace_all(demoname,64,"/","-")
     replace_all(demoname,64,"\","-")
     replace_all(demoname,64,":","-")
     replace_all(demoname,64,"*","-")
     replace_all(de mona me,6 4,"?","-")
     replace_all(demoname,64,">","-")
     replace_all(demoname,64,"<","-")
     replace_all(demoname,64,"|","-")

     if (!is_dedicated_server())
     {
      format(client_demoname,255,"%s %d.dem",demoname,dem_num)
      while ( file_exists(client_demoname) )
      {
       dem_num++
       format(client_demoname,255,"%s %d.dem",demoname,dem_num)
      }
     }
     else
     {
      format(client_demoname,255,"@%s %s.dem",demoname,stime)
     }
     if (g_cstrikeRunning)    
     {
      format(menu_body,511,"%L",id,"CS_REC_DEMO",client_demoname)
     }
     else
     {
      format(menu_bod y,511," %L",id,"NOCS_REC_DEMO",cli ent_demoname)
     }
     show_menu(id,keys,menu_body,-1,"Record Demo") //ask if client wants to record a demo     
    }
    return PLUGIN_HANDLED    
}

public rec_demo_action(id,key)    
{
    if(key == 0)    
    {
     client_cmd(id,"amx_chat %L",id,"REC_DEMO_START",client_demoname)
     client_cmd(id,"stop;record ^"%s^"",client_demoname)
     set_task(3.0, "show_status_cmd", id)

     rec_pl[id] = 1
     rec_demo_off(id)
    }
    return PLUGIN_HANDLED
}

public show_status_cmd(id)
{
    client_cmd(id,"status")
}
       
public rec_demo_off(id)    
{
    new menu_body[512]
    new keys = (1<<4)
    if (g_cstrikeRunning)    
    {
     format(menu_body,511, "%L",id,"CS_STOP_REC")
    }
    else    
    {
     format(menu_body,511, "%L",id,"NOCS_STOP_REC")
    }
    show_menu(id,keys,menu_body,-1,"Stop Recording") //ask to stop recording    
    return PLUGIN_HANDLED
}

public rec_demo_off_action(id,key)    
{
    switch(key)    
    {
     case 4:    
     {
      client_cmd(id,"amx_chat %L",id,"REC_DEMO_END",client_demoname)
      client_cmd(id,"stop")
      rec_pl[id] = 0
     }
    }
    return PLUGIN_HANDLED
}

// takes scoreboard screenshot on clients
public rec_ss2(id[]) client_cmd(id[0],"snapshot")
public rec_ss3(id[]) client_cmd(id[0],"-showscores")

public rec_ss(id)    
{
    new menu_body[512]
    new keys = (1<<0)|(1<<1)
    if (g_cstrikeRunning)
    {
     format(menu_body,511, "%L",id,"CS_SS")
    }
    else
    {
     format(menu_body,511,"%L",id,"NOCS_SS")
    }
    show_menu(id,keys,menu_body,-1,"Screenshot")    
    r et urn PLUGIN_HANDLED
}

public rec_ss_action(id,key)    
{
    new params[1]
    params[0] = id
    switch(key)    
    {
     case 0:    
     {
      client_cmd(id,"+showscores")
      set_task(0.3,"rec_ss2",0,params,1)
      set_task(0.6,"rec_ss3",0,params,1)
     }
    }  
    r eturn PLUGIN_HANDLED
}

public eRestart()
{
    for (new i = 0; i < 32; ++i)
    {
     if ( rec_pl[i] != 0 )
     {
      rec_pl[i] = 0
      client_cmd(i,"stop")
     }
     }
}

Мучился, мучился и не домучился. Предполагаю что что-то с этим участком делать надо

Code
static szName[34] //
    static bool:send //
      
    new menu_body[512],curmap[32]
    new pl_name[32]
    get_user_name(id,pl_name,31)
      
    new keys = (1<<0)|(1<<1)
    get_mapname(curmap,31)
    new demoname[256]
    new dem_num = 1
      
    new stime[64]   
    get_time("%d-%m-%Y %H_%M",stime,63)
      
    new alive = 1 //
    new bool:sendTo[33]; //
    sendTo[alive] = true; //   
      
    get_user_name(alive, szName, 32)//
       
    format(demoname,255,"%s %s",szName,curmap) //

понатыкал суда строк из speclist.. "//" обазначены добавленные строки . Он так даже компилируется, но все равно по старому записывает blink


МНЛТиП - Метод Нубского Логического Тыка и Подстановки

Сообщение отредактировал Agronom[SLK] - Среда, 03.09.2008, 18:39:34
 
  • Страница 1 из 1
  • 1
Поиск:

AMX Mod X Russian Community © 2006-2025