Список форумов * PWR FACTORY *  -  Новости и предложения по серверам  -  Автозапись Демо на наших серверах.

Автор Сообщение
bibika
Добавлено: Вт Мар 15, 2016 17:52
Оффлайн
* Главный главнюк *
* Главный главнюк *
Информация
На форуме с: 25.10.2009 Возраст: 37 Сообщения: 7834 Откуда: Питер
Автозапись Демо на наших серверах.

Помнится одобрили вы данную затею, нарыл минималистический плагин для реализации.

Исходный код:

#include <amxmodx>

#define DEMO_NAME "PWRFACTORY" // Название демо.
#define DEMO_DELAY 6.0 // Задержка перед уведомлением игрока о записи демо (сек).

new bool:iDemoStart[33] = false;

public plugin_init()
{
register_plugin("Auto Demo Recording", "1.0", "neygomon & Makzz");

register_clcmd("joinclass", "start_demo");
register_clcmd("menuselect", "start_demo");
}

public client_putinserver(id)
set_task(DEMO_DELAY, "start_demo_info", id);

public client_disconnect(id)
iDemoStart[id] = false;

public start_demo(id)
{
if(is_user_ignore(id)) return;

if(!iDemoStart[id])
{
client_cmd(id, "stop; record ^"%s^"", DEMO_NAME);
iDemoStart[id] = true;
}
}

public start_demo_info(id)
{
new iTime[9], iData[64];
get_time("%H:%M:%S", iTime, Cool;
get_time("%d.%m.%Y", iData, 63);

ChatColor(id, "Запись демо началась %s.dem", DEMO_NAME);
ChatColor(id, "Время записи: %s. Дата: %s.", iTime, iData);
}

is_user_ignore(id)
return !is_user_connected(id) || is_user_bot(id) || is_user_hltv(id);

stock ChatColor(const id, const szMessage[], any:...)
{
static szMsg[190], IdMsg;
vformat(szMsg, charsmax(szMsg), szMessage, 3);

if(!IdMsg) IdMsg = get_user_msgid("SayText");

message_begin(MSG_ONE, IdMsg, .player = id);
write_byte(id);
write_string(szMsg);
message_end();
}


Как работает:

При заходе на сервер начинается запись демо, через 6 секунд игроку выводится оповещение об этом, в нижнем левом углу.





Демо-запись пишется в папку cstrike, и имеет название PWRFACTORY.dem, чтобы игроки могли быстро её найти.





Демо при каждом перезаходе на сервер, либо смене карты начинает записываться заного, затирая старое.
Сначала я думал что за бред, как мы найдём нужную нам демку, а потом допёрло что человек же не сможет её затереть после бана, т.к. не сможет зайти на сервер, таким образом мы экономим место на диске у игроков, ведь демка весит достаточно.

Единственный минус состоит в том, что если кто-то захочет вытащить свой момент из демки, но карта сменится, демка затрётся Laughing , но наша цель была записать и предъявить демо при необоснованном бане.

Вообщем слушаю ваше мнение.



Вернуться к началу
Steam Profile
bibika
Добавлено: Ср Мар 16, 2016 2:34
Оффлайн
* Главный главнюк *
* Главный главнюк *
Информация
На форуме с: 25.10.2009 Возраст: 37 Сообщения: 7834 Откуда: Питер
Цитата:
Я где-то такое говорил? Shocked Название же одно будет, откуда 10 демок?
Не я к тому, что есть плагины, которые пишут разные демки на разные карты и время игры, соответственно, сколько игр столько и демозаписей, сыграл 100 игр, будет 100 демок, а это уже засирание клиента.

Я, кстати, тоже не задумывался о месте, но прикинув логику работы данного варианта, пришёл к мысли, что всё отлично Very Happy



Вернуться к началу
Steam Profile
Lost Ghost
Добавлено: Ср Мар 16, 2016 20:42
Оффлайн
* Админ GunGame *
* Админ GunGame *
Награды: 2
Server Master (Количество: 1) Почётный ветеран (Количество: 1)
Информация
На форуме с: 04.01.2013 Возраст: 124 Сообщения: 1523
Вася, если с работой плагина всё ОК, то может уже запустить его?

Музыка онлайн
Вернуться к началу
Steam Profile
bibika
Добавлено: Ср Мар 16, 2016 22:17
Оффлайн
* Главный главнюк *
* Главный главнюк *
Информация
На форуме с: 25.10.2009 Возраст: 37 Сообщения: 7834 Откуда: Питер
Иммунитет для админов нужно сделать, чтобы они могли писать демки свои.



Вернуться к началу
Steam Profile
Lost Ghost
Добавлено: Чт Мар 17, 2016 0:53
Оффлайн
* Админ GunGame *
* Админ GunGame *
Награды: 2
Server Master (Количество: 1) Почётный ветеран (Количество: 1)
Информация
На форуме с: 04.01.2013 Возраст: 124 Сообщения: 1523
Чтобы они смогли писать свои демки, достаточно остановить текущую запись командой STOP Shocked

Музыка онлайн
Вернуться к началу
Steam Profile
bibika
Добавлено: Чт Мар 17, 2016 8:34
Оффлайн
* Главный главнюк *
* Главный главнюк *
Информация
На форуме с: 25.10.2009 Возраст: 37 Сообщения: 7834 Откуда: Питер
Это понятно, но зачем лишние сложности Smile



Вернуться к началу
Steam Profile
Lost Ghost
Добавлено: Чт Мар 17, 2016 8:58
Оффлайн
* Админ GunGame *
* Админ GunGame *
Награды: 2
Server Master (Количество: 1) Почётный ветеран (Количество: 1)
Информация
На форуме с: 04.01.2013 Возраст: 124 Сообщения: 1523
Сложность как раз в том, что еще надолго может зависнуть этот вопрос с флагом для админа.

Музыка онлайн
Вернуться к началу
Steam Profile
bibika
Добавлено: Чт Мар 17, 2016 9:05
Оффлайн
* Главный главнюк *
* Главный главнюк *
Информация
На форуме с: 25.10.2009 Возраст: 37 Сообщения: 7834 Откуда: Питер
Так я то не против, вон у сыра надо спрашивать, смогут ли наши админы осилить команду Stop в консоле)



Вернуться к началу
Steam Profile
KABANOFF [PWR]
Добавлено: Чт Мар 17, 2016 10:19
Оффлайн
* Админ AIM + HS *
* Админ AIM + HS *
Награды: 4
PWR Boost Event (Количество: 1) Video Shot Event (Количество: 1) Акционер проекта (Количество: 1) Почётный ветеран (Количество: 1)
Информация
На форуме с: 27.02.2014 Возраст: 32 Сообщения: 2349 Откуда: Латвиджа
Цитата:
смогут ли наши админы осилить команду Stop в консоле)
Наберут, блин, по объявлению, а потом мучайся с ними. Very Happy
Вернуться к началу
Steam Profile
:D
Добавлено: Чт Мар 17, 2016 11:00
Оффлайн
* Очень приятно, Царь *
Награды: 2
PWR Boost Event (Количество: 1) Почётный ветеран (Количество: 1)
Информация
На форуме с: 18.10.2011 Сообщения: 1555 Откуда: Санкт-Петербург
Ну действительно, писать СТОП то особо то не напряжно. Но если бы можно обойтись без этого то это только лишь + Wink Зачем эти лишние телодвижения.
Вернуться к началу
Steam Profile
bibika
Добавлено: Чт Мар 17, 2016 12:42
Оффлайн
* Главный главнюк *
* Главный главнюк *
Информация
На форуме с: 25.10.2009 Возраст: 37 Сообщения: 7834 Откуда: Питер
Цитата:
Зачем эти лишние телодвижения


Цитата:
Сложность как раз в том, что еще надолго может зависнуть этот вопрос с флагом для админа.


Вот надо решить, нам нужен максимально быстрый ввод плагина в действие, либо удобство.



Вернуться к началу
Steam Profile
:D
Добавлено: Чт Мар 17, 2016 12:47
Оффлайн
* Очень приятно, Царь *
Награды: 2
PWR Boost Event (Количество: 1) Почётный ветеран (Количество: 1)
Информация
На форуме с: 18.10.2011 Сообщения: 1555 Откуда: Санкт-Петербург
Ну мне пока, до плагина например, ничто не мешает писать демо. Давно ведь пишем, я бы и потерпел до конечного решения вопроса. Я за удобство Cool Срочности же нет такой.
Вернуться к началу
Steam Profile
bibika
Добавлено: Чт Мар 17, 2016 14:03
Оффлайн
* Главный главнюк *
* Главный главнюк *
Информация
На форуме с: 25.10.2009 Возраст: 37 Сообщения: 7834 Откуда: Питер
Т.е. ты пишешь на всех кого банишь?



Вернуться к началу
Steam Profile
o5
Добавлено: Чт Мар 17, 2016 14:15
Оффлайн
* Бан по ассисту *
* Бан по ассисту *
Награды: 2
Video Shot Event (Количество: 1) Почётный ветеран (Количество: 1)
Информация
На форуме с: 13.08.2011 Возраст: 37 Сообщения: 5796
Я тоже не вижу причины для подобной спешки, даже сам плагин не особо и сдался. Если Лосту это так срочно нужно, можно поставить пока на один только ГГ.

P.S. Кабанова тоже набрали по объявлению, как помнится.   
P.P.S. Этот чёртов смайлик я теперь почти в каждой теме могу использовать к месту.

Сыр и дырки в сыре: Больше сыра — больше дырок. Больше дырок — меньше сыра. Больше сыра = меньше сыра!
Вернуться к началу
Steam Profile
bibika
Добавлено: Чт Мар 17, 2016 14:28
Оффлайн
* Главный главнюк *
* Главный главнюк *
Информация
На форуме с: 25.10.2009 Возраст: 37 Сообщения: 7834 Откуда: Питер
Цитата:
  
Да смайлик действительно крут Laughing
    - добавлено спустя 7 минут:
Сейчас напишу скриптеру, который в стиме у меня есть, думаю он допилит быстро.



Вернуться к началу
Steam Profile
o5
Добавлено: Чт Мар 17, 2016 14:37
Оффлайн
* Бан по ассисту *
* Бан по ассисту *
Награды: 2
Video Shot Event (Количество: 1) Почётный ветеран (Количество: 1)
Информация
На форуме с: 13.08.2011 Возраст: 37 Сообщения: 5796
Цитата:
Сейчас напишу скриптеру

К слову, я уже писал ранее про это. Правда, там исполнение самого плагина выглядит несколько иначе, но, возможно, строчки для флага могут быть схожими.

Сыр и дырки в сыре: Больше сыра — больше дырок. Больше дырок — меньше сыра. Больше сыра = меньше сыра!
Вернуться к началу
Steam Profile
bibika
Добавлено: Чт Мар 17, 2016 15:40
Оффлайн
* Главный главнюк *
* Главный главнюк *
Информация
На форуме с: 25.10.2009 Возраст: 37 Сообщения: 7834 Откуда: Питер
Цитата:
К слову, я уже писал ранее про это. Правда, там исполнение самого плагина выглядит несколько иначе, но, возможно, строчки для флага могут быть схожими.
Блин, отлично, я его проверю и если всё гуд, то мы победили Laughing
    - добавлено спустя 27 минут:
Плагин работает!!!

Пришлось правда к нему языковой файл искать, но это фигня.

/****************************************/
/* */
/* Auto Demo Recorder */
/* by IzI */
/* */
/* Change by Safety1st: */
/* Demo recording for admins with defined flag is disabled by default */
/****************************************/

#include <amxmodx>
#define PLUG_ADMIN ADMIN_LEVEL_G //Access flag required to bypass demo recording if amx_demo_disableforadmins=1
#pragma semicolon 1

new g_Toggle, g_DMod, g_UseNI, g_RStartAfter, g_DemoName, g_DemoNamePrefix, g_DisForAdm;

public plugin_init() {
register_plugin( "Auto Demo Recorder", "1.5", "IzI" );
g_Toggle = register_cvar( "amx_demo", "1" );
g_DMod = register_cvar( "amx_demo_mode", "0" );
g_UseNI = register_cvar( "amx_demo_steamid", "0" );
g_RStartAfter = register_cvar( "amx_demo_rectime", "15" ); // If it is less than 5, it will automatically set to 5, but willn't apply the changes to the console. I recommend to use default settings.
g_DemoName = register_cvar( "amx_demo_name", "PWRFACTORY" );
g_DemoNamePrefix = register_cvar( "amx_demo_prefix", "PWR Guard" );
g_DisForAdm = register_cvar( "amx_demo_disableforadmins","0" );
register_dictionary( "demorecorder.txt" );
}

public client_putinserver( id ) {
if( get_pcvar_num( g_Toggle ) ) {
new Float:delay = get_pcvar_float( g_RStartAfter );
if( delay < 5 )
set_pcvar_float( g_RStartAfter, ( delay = 5.0 ) );
set_task( delay, "Record", id );
}
}

public Record( id ) {
if( !is_user_connected( id ) || get_pcvar_num( g_Toggle ) != 1 || get_pcvar_num( g_DisForAdm ) == 1 && get_user_flags(id) & PLUG_ADMIN )
return;

// Getting time, client SteamID, server's name, server's ip with port.
new szSName[128], szINamePrefix[64], szTimedata[9];
new iUseIN = get_pcvar_num( g_UseNI );
new iDMod = get_pcvar_num( g_DMod );
get_pcvar_string( g_DemoNamePrefix, szINamePrefix, 63 );
get_time ( "%H:%M:%S", szTimedata, 8 );

switch( iDMod ) {
case 0: get_pcvar_string( g_DemoName, szSName, 127 );
case 1: get_user_ip( 0, szSName, 127, 0 );
case 2: get_user_name( 0, szSName, 127 );
}

if( iUseIN ) {
new szCID[32];
get_user_authid( id, szCID, 31 );
format( szSName, 127, "[%s]%s", szCID, szSName );
}

// Replacing signs.
replace_all( szSName, 127, ":", "_" );
replace_all( szSName, 127, ".", "_" );
replace_all( szSName, 127, "*", "_" );
replace_all( szSName, 127, "/", "_" );
replace_all( szSName, 127, "|", "_" );
replace_all( szSName, 127, "\", "_" );
replace_all( szSName, 127, "?", "_" );
replace_all( szSName, 127, ">", "_" );
replace_all( szSName, 127, "<", "_" );
replace_all( szSName, 127, " ", "_" );

// Displaying messages.
client_cmd( id, "stop; record ^"%s^"", szSName );
client_print( id, print_chat, "[%s] %L ^"%s.dem^"", szINamePrefix, LANG_PLAYER, "RECORDINGIN", szSName );
client_print( id, print_chat, "[%s] %L", szINamePrefix, LANG_PLAYER, "RECORDINGAT", szTimedata );
}
    - добавлено спустя 15 минут:
Плагин установил на все сервера кроме кнайфа. После смены карты, плагин заработает, желательно чтобы кто-то проверил, зайдя на сервер под админкой и без неё. При админки ничего не будет выводится и писаться, без админки через 15 секунд после входа выведется сообщение и начнётся запись.

Название демозаписи: PWRFACTORY.dem
Отсрочка начала записи: 15 секунд.
Иммунитет администраторов: Включён.



Вернуться к началу
Steam Profile

Показать сообщения:  

На страницу Пред.  1, 2, 3  След.    Страница 2 из 3

Перейти:  

Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете вкладывать файлы
Вы не можете скачивать файлы