Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <amxmodx>
- new const CFG_FILE[]="addons/amxmodx/configs/demo.cfg";
- #define NAME "Auto recording demo"
- #define VERSION "2.5"
- #define AUTHOR "IzI | Bonaqua (Rebuild) + Seroff"
- new g_DemoEnable, g_DemoRtimer, g_DemoPrefix, g_DemoName, g_DemoMsgType, g_DemoHudrgb, g_DemoHudx, g_DemoHudy, g_DemoEffect, g_DemoMsgTypePrintChat
- new Red, Green, Blue, Effect, Float:FadeIn, Float:FadeOut, Float:HoldTime
- public plugin_init()
- {
- register_plugin( NAME, VERSION, AUTHOR )
- g_DemoEnable = register_cvar("amx_demo_enable", "");
- g_DemoRtimer = register_cvar("amx_demo_rectime", "");
- g_DemoPrefix = register_cvar("amx_demo_prefix", "");
- g_DemoName = register_cvar("amx_demo_name", "");
- g_DemoMsgType = register_cvar("amx_demo_msg_type", "");
- g_DemoMsgTypePrintChat = register_cvar("amx_demo_msg_chat_type", "");
- g_DemoHudrgb = register_cvar("amx_demo_hud_colour", "");
- g_DemoHudx = register_cvar("amx_demo_hud_xpozition", "");
- g_DemoHudy = register_cvar("amx_demo_hud_ypozition", "");
- g_DemoEffect = register_cvar("amx_demo_hud_effect", "");
- }
- public plugin_cfg(){
- if(!file_exists(CFG_FILE)){
- new Formate[124];
- formatex(Formate,charsmax(Formate),"// %s (%s) By [%s]",NAME,VERSION,AUTHOR);
- write_file(CFG_FILE,Formate,-1);
- write_file(CFG_FILE,"",-1);
- write_file(CFG_FILE,"// ================================================ //",-1);
- write_file(CFG_FILE,"// Автоматическая запись демок на стороне игрока. //",-1);
- write_file(CFG_FILE,"// ================================================ //",-1);
- write_file(CFG_FILE,"^n^n",-1);
- write_file(CFG_FILE,"// Главные квары",-1);
- write_file(CFG_FILE,"amx_demo_enable ^"1^" // Работа плагина [ 0 = Выключен. 1 = Включён. ]",-1);
- write_file(CFG_FILE,"amx_demo_prefix ^"AMXX Demo^" // Префикс",-1);
- write_file(CFG_FILE,"amx_demo_name ^"recdemo^" // Название демки",-1);
- write_file(CFG_FILE,"amx_demo_rectime ^"10.0^" // Время через которое начнётся запись демо",-1);
- write_file(CFG_FILE,"amx_demo_msg_type ^"1^" // Тип оповещения [ 0 = Выключено. 1 = Чат. 2 = Худ. ]",-1);
- write_file(CFG_FILE,"amx_demo_msg_chat_type ^"0^" // Тип оповещения в чат [ 0 = Цветной чат. 1 = Стадартный ] ( Если amx_demo_msg_type ^"1^" )",-1);
- write_file(CFG_FILE,"^n",-1);
- write_file(CFG_FILE,"// Настройки HUD'a ( Если amx_demo_msg_type ^"2^" )",-1);
- write_file(CFG_FILE,"amx_demo_hud_colour ^"51, 153, 255^" // Цвет сообщения в формате RGB [ ПРИМЕР: 51, 153, 255 ]",-1);
- write_file(CFG_FILE,"amx_demo_hud_xpozition ^"0.01^" // Расположение по оси Х, стандартно 0.01",-1);
- write_file(CFG_FILE,"amx_demo_hud_ypozition ^"0.65^" // Расположение по оси Y, стандартно 0.65",-1);
- write_file(CFG_FILE,"amx_demo_hud_effect ^"1^" // Эффекты HUD'a [ 0 = Плавный переход. 1 = Мерцание + Плавный переход. 2. Печатная машинка. ]",-1);
- write_file(CFG_FILE,"^n^n",-1);
- write_file(CFG_FILE,"// Сообщение в консоль о том что конфиг загружен всё впорядке",-1);
- write_file(CFG_FILE,"echo ^"^"",-1);
- write_file(CFG_FILE,"echo ^" Demo CFG Loaded...^"",-1);
- write_file(CFG_FILE,"echo ^"^"",-1);
- }
- server_cmd("exec %s",CFG_FILE)
- }
- public client_putinserver(i)
- {
- if(get_pcvar_num(g_DemoEnable) == 1)
- {
- set_task(get_pcvar_float(g_DemoRtimer), "g_RecDemoFunc", i);
- }
- }
- public g_RecDemoFunc(i)
- {
- if(is_user_connected(i))
- {
- new Name[33], Time[9], Data[64], g_szDemoPrefix[64], g_szDemoName[64],g_formatex[1024];
- get_user_name(i, Name, 32)
- get_time("%H:%M:%S", Time, 8)
- get_time("%d.%m.%Y", Data, 63)
- get_pcvar_string( g_DemoPrefix, g_szDemoPrefix, 63 );
- get_pcvar_string( g_DemoName, g_szDemoName, 63 );
- formatex(g_formatex,charsmax(g_formatex),"%s_%s_%s",g_szDemoName,Time,Data);
- replace_all(g_formatex,1023,".","_");
- replace_all(g_formatex,1023,":","_");
- client_cmd(i, "stop; record ^"%s^"", g_formatex)
- switch(get_pcvar_num(g_DemoMsgType))
- {
- case 1:
- {
- switch(get_pcvar_num(g_DemoMsgTypePrintChat))
- {
- case 0:
- {
- ChatColor(i, "^3[^4%s^3]^1 Внимание ^3%s^1!", g_szDemoPrefix, Name)
- ChatColor(i, "^3[^4%s^3]^1 Идёт запись демо ^"^3%s.dem^1^"", g_szDemoPrefix, g_formatex)
- ChatColor(i, "^3[^4%s^3]^1 Время записи: ^4%s^1 Дата: ^4%s^1", g_szDemoPrefix , Time, Data)
- }
- case 1:
- {
- client_print(i, print_chat, "[%s] Внимание %s!", g_szDemoPrefix, Name)
- client_print(i, print_chat, "[%s] Идёт запись демо ^"%s.dem^"", g_szDemoPrefix, g_formatex)
- client_print(i, print_chat, "[%s] Время записи: %s Дата: %s", g_szDemoPrefix , Time, Data)
- }
- }
- }
- case 2:
- {
- {
- get_hud_color(Red, Green, Blue)
- switch(get_pcvar_num(g_DemoEffect))
- {
- case 1:
- {
- Effect = 1
- FadeIn = 0.2
- FadeOut = 0.2
- HoldTime = 6.0
- }
- case 2:
- {
- Effect = 2
- FadeIn = 0.05
- FadeOut = 0.5
- HoldTime = 6.0
- }
- default:
- {
- Effect = 0
- FadeIn = 0.5
- FadeOut = 0.5
- HoldTime = 6.0
- }
- }
- set_hudmessage( Red, Green, Blue, get_pcvar_float(g_DemoHudx), get_pcvar_float(g_DemoHudy), Effect, 6.0, HoldTime, FadeIn, FadeOut, 2)
- show_hudmessage(i, "[%s] Внимание %s!^n[%s] Идёт запись демо ^"%s.dem^"^n[%s] Время записи: %s Дата: %s", g_szDemoPrefix, Name, g_szDemoPrefix, g_formatex, g_szDemoPrefix, Time, Data)
- }
- }
- }
- }
- return PLUGIN_HANDLED
- }
- get_hud_color(&r, &g, &b)
- {
- new color[20]
- static Red[5], Green[5], Blue[5]
- get_pcvar_string(g_DemoHudrgb, color, charsmax(color))
- parse(color, Red, charsmax(Red), Green, charsmax(Green), Blue, charsmax(Blue))
- r = str_to_num(Red)
- g = str_to_num(Green)
- b = str_to_num(Blue)
- }
- /* Сток цветного чата */
- stock ChatColor(const id, const input[], any:...)
- {
- new count = 1, players[32]
- static msg[191]
- vformat(msg, 190, input, 3)
- replace_all(msg, 190, "!g", "^4") // Зелёный
- replace_all(msg, 190, "!y", "^1") // Стандартный
- replace_all(msg, 190, "!t", "^3") // Цвет команды
- if (id) players[0] = id; else get_players(players, count, "ch")
- {
- for (new i = 0; i < count; i++)
- {
- if (is_user_connected(players[i]))
- {
- message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("SayText"), _, players[i])
- write_byte(players[i]);
- write_string(msg);
- message_end();
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment