Demo Recorder

Demo Recorder 2.4.1

Нет прав для скачивания
Сообщения
258
Реакции
262
Помог
5 раз(а)
Кому не трудно, проверьте этот код на жизнеспособность, мне сейчас не на чем это сделать:

C++:
#include <amxmodx>

#pragma semicolon 1

public plugin_precache() {
precache_generic("demos/init");
}

Если не заработает с первого раза или будут ошибки, можно попробовать добавить расширение .txt к файлу init:

C++:
precache_generic("demos/init.txt");

На сервере должна быть создана папка cstrike/demos, внутри которой должен находиться файл init(.txt).
 
Сообщения
258
Реакции
262
Помог
5 раз(а)
Проверил, но, к сожалению, нет, это не работает:

Код:
BUILD 1031 SERVER (0 CRC)
Server # 2
Invalid file type...skipping download of demos/init
Player is joining the Terrorist force
Scoring will not start until both teams have players
* Privileges set

BUILD 1031 SERVER (0 CRC)
Server # 3
Error: server failed to transmit file 'demos/init.txt'
Player is joining the Terrorist force
Scoring will not start until both teams have players
* Privileges set

] developer 1
] connect 192.168.1.69
Connecting to 192.168.1.69...
Connection accepted by 192.168.1.69:27015
* Privileges set

BUILD 1031 SERVER (0 CRC)
Server # 5
Serverinfo packet received.
Clearing memory
Remote host:
Spooling demo header.
Using http://example.com/ as primary download location
Verifying and downloading resources...
File fragment received with bad path, ignoring
 
Сообщения
258
Реакции
262
Помог
5 раз(а)
Прошу прощения, всё-таки, я вчера предоставил неверную информацию. Были ошибки именно с быстрой загрузкой, это работает:

Код:
] developer 1
] connect 192.168.1.69
WARNING: UDP_OpenSocket: port: 27015 bind: Address already in use
NET Ports: server 27015, client 27005
Could not get TCP/IP address, TCP/IP disabled
Reason: Socket operation on non-socket
Connecting to 192.168.1.69...
Connection accepted by 192.168.1.69:27015
* Privileges set

BUILD 1031 SERVER (0 CRC)
Server # 1
Serverinfo packet received.
Clearing memory
Remote host:
Spooling demo header.
Using http://example.com/ as primary download location
Verifying and downloading resources...
Netchan_Clear() : reliable length not 0, reliable_sequence: 41, incoming_reliable_acknowledged: 0
Requesting HTTP download of http://example.com/demos/init.txt.
Saved http://example.com/demos/init.txt to disk
Commencing connection retry to 192.168.1.69
Connecting to 192.168.1.69...
Connection accepted by 192.168.1.69:27015
* Privileges set

BUILD 1031 SERVER (0 CRC)
Server # 1
Serverinfo packet received.
Clearing memory
Remote host:
Spooling demo header.
Using http://example.com/ as primary download location
Verifying and downloading resources...
Using WAD File: halflife.wad
Using WAD File: decals.wad
Using WAD File: cs_dust.wad
Texture load: 174.5ms
Setting up renderer...
SKY: desrt, desbk, deslf, desft, desup, desdn, done
CL_SignonReply: 1
33.6 megabyte data cache
CL_SignonReply: 2
Player is joining the Terrorist force
Scoring will not start until both teams have players

] record ../cstrike_downloads/demos/lol
Relative pathnames are not allowed.


Но есть новая проблема. Для Steam клиентов этот способ всё равно не подойдёт. Т.к. все файлы будут скачиваться в каталог cstrike_downloads, а демо будут записываться в cstrike.
 
Сообщения
443
Реакции
319
Помог
13 раз(а)
wopox1337, так не надо делать. Никогда. Мультиобработка в старых протекторах иногда некорректно срабатывала и срабатывает Пришлось же миррор фиксить даже.
Код:
#include <ChatPrint>
new g_r[33],NM[128];
public plugin_init(){
register_dictionary("demorecorder.txt");
zzread_ini();
register_clcmd("joinclass","zzz");
register_menucmd(register_menuid("Terrorist_Select",1),511,"zzz");
register_menucmd(register_menuid("CT_Select",1),511,"zzz");
}
public zzz(id){
if(g_r[id])return;
new time[16],d,m,y;
get_time("%H_%M",time,charsmax(time));
date(y,m,d);client_cmd(id,"stop");client_cmd(id,"record ^"%s_%d%d%d_%s^"",NM,y,m,d,time);g_r[id]=true;
ChatPrint(id,"%L",LANG_SERVER,"RECORD",NM,y,m,d,time);
}
public client_putinserver(id)g_r[id]=0;
public zzread_ini(){
new path[64];get_configsdir(path,charsmax(path));format(path,charsmax(path),"%s/demorecorder.ini",path);
if(!file_exists(path)){set_fail_state("Can't find Demo Name file... Check it");return;}
new linedata[1024],key[128],value[960]
new file=fopen(path,"rt")
while(!feof(file)){
fgets(file,linedata,charsmax(linedata));replace(linedata,charsmax(linedata),"^n","");if(!linedata[0]||linedata[0]==';')continue;
strtok(linedata,key,charsmax(key),value,charsmax(value),'=');trim(key);trim(value);
if(equal(key,"Demo Name"))copy(NM,charsmax(NM),value)
}if(file)fclose(file);
}

txt
Код:
[ru]
RECORD = \n[\bDEMORECORDER\n] Идет запись \gдемо\n, название - \t%s_%d%d%d_%s
[en]
RECORD = \n[\bDEMORECORDER\n] There are auto \gdemo recording\n, demo name - \t%s_%d%d%d_%s


ini
Код:
Demo Name = DEMONAME
;Формат на выходе - DEMONAME_времявхода
 

Вложения

Сообщения
87
Реакции
54
Помог
1 раз(а)
shelru, Проверял на Steam, не пишет демку.
 
Сообщения
124
Реакции
92
Помог
1 раз(а)
fantom при использовании ключа %steamid% не стартует запись демки.
Проверял на обновленном клиенте стима, ошибка в консоли: ERROR: couldn't open.
P.s: Amx 1.8.2
 
Сообщения
58
Реакции
25
Помог
4 раз(а)
fantom, неплохо было бы доработать, чтобы сохранялись демки за 3 последние карты;) можете реализовать?
 
Сообщения
2,491
Реакции
2,794
Помог
61 раз(а)
xramer, используйте рекордер от неугомона. Он имеет данный функционал
 
Сообщения
148
Реакции
48
Помог
4 раз(а)
предалагаю немного развить мысль @Subb98 - сделать дефайн "MAXDEMO", где будет указываться максильмальное количество демок у клиента. Алгоритм должен быть изи =)
fantom, приветствую. Вот было предложение, так и не увидел ответа(( Можно ли реализовать это? Очень удобно демо писать по формату
amx_demo_format "DEMO-%date%-%time%-%mapname%", но тогда очень много создается мусора. А вот если бы к примеру демо хранились за дня два-три (думаю от 300-500мб ничего стршного)))), было бы шикарно. Реализуемо ли?
 
Сообщения
90
Реакции
8
у меня вот какая ситуейшн люди заходят или у них лагает или просто перезаходит и в итоге демки по 3-5 метров которые нафиг не нужны вот бы было здорово если бы допустим пускай даже 3 демки но они были от 20 метров
 

d3m37r4

111111
Сообщения
1,454
Реакции
1,194
Помог
10 раз(а)
fire-dance, как собираешься объем демки вычислять в павне?
 
Сообщения
90
Реакции
8
я с плагинами ваще не дружу. Но можно на делфи легко сделать скорей всего в клиенте игры зашьем, проблема другая будет, если на сервер заходишь и плагин делает демку и клиент делает демку конфликты будут или нет я не знаю нада тестировать, в идеале можно было бы через 7z сжимать демки и отправлять на сайт автоматом, арендовать хостинг для демок ну как то так
 
Сообщения
51
Реакции
3
fantom, неплохо было бы доработать, чтобы сохранялись демки за 3 последние карты;) можете реализовать?
Согласен, это ж получается что забиваем клиенту память на пк)

p.s. Представьте каждый день играть в течении месяца по 2/3 часа с перерывами около 8/10 часов. Это ж сколько демок та будет :crazy:
 
Сообщения
3,593
Реакции
1,576
Помог
141 раз(а)
Melodyne, я например, периодически очищаю демки.
 

d3m37r4

111111
Сообщения
1,454
Реакции
1,194
Помог
10 раз(а)
sbelov020, людей, которые знать не знают, что им в папку с игрой демки пакуются, намного больше.
 

Пользователи, просматривающие эту тему

Сейчас на форуме нет ни одного пользователя.
Сверху Снизу