Правила форума Гаранты форума
Размещение рекламы AMX-X компилятор

Здравствуйте, гость Вход | Регистрация

Наши новости:

14-дек
24-апр
10-апр
11-апр

> Полезные ссылки

Плагин автозаписи демо

Статус пользователя on1x
сообщение 13.3.2015, 8:49
Сообщение #1
Стаж: 14 лет

Сообщений: 377
Благодарностей: 119
Полезность: 565

Всем добрый день.

Нужен плагин для автозаписи демо. Как я понял, сейчас есть два варианта: либо демка перезаписывается после каждого перезахода на сервер (фактически, пишется с одним и тем же названием); либо каждый перезаход - уникальная демка, и происходит постепенное их накопление и забивание жесткого диска. Оба этих варианта мне не подходят.

Мне надо, чтобы с моего сервера у игрока в папке было не более определённого кол-ва демок. Ну например пять:

server_demo1
server_demo2
server_demo3
server_demo4
server_demo5

И когда у игрока записаны демки под этими названиями с помощью плагина, то перезапись идёт циклично по тем же названиям с самого начала (с первой по пятую, потом снова).

Возможно ли такое сделать? Если ДА, то я готов оплатить (в разумных пределах).

А может кто знает уже готовый вариант?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
Статус пользователя Bloo
сообщение 13.3.2015, 8:53
Сообщение #2


Стаж: 12 лет

Сообщений: 15547
Благодарностей: 6971
Полезность: 1206

on1x, сомневаюсь, как вы определите есть ли на клиенте server_demo1 что бы начать писать server_demo2? Проще сделать что бы в названии демо была только карта.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя on1x
сообщение 13.3.2015, 8:58
Сообщение #3
Стаж: 14 лет

Сообщений: 377
Благодарностей: 119
Полезность: 565

Цитата(Bloo @ 13.3.2015, 9:53) *
on1x, сомневаюсь, как вы определите есть ли на клиенте server_demo1 что бы начать писать server_demo2?


Ну так-то я не скриптер. С этой целью и создана тема: хочу узнать, возможно ли это вообще; и если да, сможет ли кто-нибудь написать плагин.

Цитата(Bloo @ 13.3.2015, 9:53) *
Проще сделать что бы в названии демо была только карта.


Такой вариант тоже не подходит.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Dukkhaz0r
сообщение 13.3.2015, 9:00
Сообщение #4


Стаж: 12 лет

Сообщений: 343
Благодарностей: 294
Полезность: 812

Можно конечно логировать список записанных демок у юзера в nvault или мускул и сравнивать по steamid/nick/ip, но лучше с этим не заморачиваться.


Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
amxservak
сообщение 13.3.2015, 9:01
Сообщение #5
Стаж: 15 лет

Сообщений: 163
Благодарностей: 81
Полезность: < 0

Стоит, который при смене карты перезаписывает и не чего не забивается. Только нужно наловчится банить во время, а то бывает не успеваешь и уже на новой карте с новой демкой :)
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Bloo
сообщение 13.3.2015, 9:01
Сообщение #6


Стаж: 12 лет

Сообщений: 15547
Благодарностей: 6971
Полезность: 1206

on1x, ну тогда вариант Dukkhaz0r.
Не ну можно конечно попробовать сделать это с помощью OD Beta, но как по мне это изврат :D
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Han1baL
сообщение 13.3.2015, 9:12
Сообщение #7


Стаж: 11 лет

Сообщений: 233
Благодарностей: 50
Полезность: 30

Лучший вариант, подключить HLTV и не париться.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя on1x
сообщение 13.3.2015, 9:13
Сообщение #8
Стаж: 14 лет

Сообщений: 377
Благодарностей: 119
Полезность: 565

Цитата(Dukkhaz0r @ 13.3.2015, 10:00) *
но лучше с этим не заморачиваться.


Причины? Объёмный код? Большая нагрузка на сервер?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя proff_q
сообщение 13.3.2015, 9:17
Сообщение #9
Стаж: 14 лет

Сообщений: 357
Благодарностей: 263
Полезность: 804

on1x, Nvault сам по себе не очень стабильный модуль + данные часто дергать нужно. Если учесть реконнект или смену карты. Выше предложили интересный вариант, записывать по имени карты.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Dukkhaz0r
сообщение 13.3.2015, 9:17
Сообщение #10


Стаж: 12 лет

Сообщений: 343
Благодарностей: 294
Полезность: 812

on1x, зачем лишний раз дергать базу? Бывает же случаи, когда БД отваливается и хрен проверишь. Если подождешь до завтра, попробую накидать код бесплатно.


Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Bloo
сообщение 13.3.2015, 9:25
Сообщение #11


Стаж: 12 лет

Сообщений: 15547
Благодарностей: 6971
Полезность: 1206

Не знаю как это в реализации, но можно попробовать. Ставим в OD Beta все 5 файлов на проверку с любым хешем и командами из плагина записи демо.
Код
"../server_demo1.dem" UNKNOWN "amx_checkdemo %USERID%" demo1"
"../server_demo2.dem" UNKNOWN "amx_checkdemo %USERID%" demo2"
"../server_demo3.dem" UNKNOWN "amx_checkdemo %USERID%" demo3"
"../server_demo4.dem" UNKNOWN "amx_checkdemo %USERID%" demo4"
"../server_demo5.dem" UNKNOWN "amx_checkdemo %USERID%" demo5"

При коннекте если в течении X секунд не сработала не одна из команд amx_checkdemo пишем server_demo1.dem, если за отведенное время проверка остановилась на server_demo3.dem, пишем server_demo4.dem, ну и так далее.
Как и говорил выше на мой взгляд это дикий изврат. Проще реально записывать кому когда какую демку писал.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя ViP.Predator
сообщение 13.3.2015, 9:32
Сообщение #12


Стаж: 16 лет

Сообщений: 127
Благодарностей: 89
Полезность: 516

1. Объявляете глобальную переменную
2. Меняете ее с каждой картой от 1 до 5
3. На каждой карте всем пишете демо с одинаковым именем согласно значению глобальной переменной.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя GOOD FELLOW
сообщение 13.3.2015, 9:34
Сообщение #13


Иконка группы

Стаж: 13 лет

Сообщений: 2294
Благодарностей: 1187
Полезность: 890

А зачем проверять наличие демки? Если в конечном итоге она всё равно автоматом перезаписывается
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Bloo
сообщение 13.3.2015, 9:35
Сообщение #14


Стаж: 12 лет

Сообщений: 15547
Благодарностей: 6971
Полезность: 1206

GOOD FELLOW, ну она перезапишется спустя 5 коннектов, а не при каждом коннекте.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя filip
сообщение 13.3.2015, 9:37
Сообщение #15


Стаж: 13 лет

Сообщений: 418
Благодарностей: 332
Полезность: 779

А как потом игроку узнать какая демка перезаписана? 1-я, 2-я 3-я и т.д.?
UDP по дате создания)

Отредактировал: filip, - 13.3.2015, 9:37
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя FlaZeR
сообщение 13.3.2015, 9:54
Сообщение #16
Стаж: 12 лет

Сообщений: 354
Благодарностей: 145
Полезность: 81

Цитата(filip @ 13.3.2015, 9:37) *
А как потом игроку узнать какая демка перезаписана? 1-я, 2-я 3-я и т.д.?
UDP по дате создания)

Это уже проблемы игрока, причём тут мы ?)
Откроет демки и найдёт нужную.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя ex3m777
сообщение 13.3.2015, 10:18
Сообщение #17


Стаж: 13 лет
Город: Москва

Сообщений: 2037
Благодарностей: 1135
Полезность: 968

Меценат Меценат

Цитата(ViP.Predator @ 13.3.2015, 10:32) *
1. Объявляете глобальную переменную
2. Меняете ее с каждой картой от 1 до 5
3. На каждой карте всем пишете демо с одинаковым именем согласно значению глобальной переменной.

Можешь на примере показать как ты будешь менять от 1 до 5 с каждой сменой карты


Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя ViP.Predator
сообщение 14.3.2015, 1:18
Сообщение #18


Стаж: 16 лет

Сообщений: 127
Благодарностей: 89
Полезность: 516

Цитата(ex3m777 @ 13.3.2015, 11:18) *
Можешь на примере показать как ты будешь менять от 1 до 5 с каждой сменой карты


Код:

#include <amxmodx>

#define PLUGIN_NAME "Plugin Name"
#define PLUGIN_VERSION "1.0"
#define PLUGIN_AUTHOR "Author"

new dem_num

public plugin_init()
{
register_plugin( PLUGIN_NAME, PLUGIN_VERSION, PLUGIN_AUTHOR )

new pcv_demo = register_cvar ( "dem", "0", FCVAR_SERVER | FCVAR_EXTDLL | FCVAR_UNLOGGED | FCVAR_SPONLY )

dem_num = get_pcvar_num ( pcv_demo )

if( ++dem_num > 5 ) {
dem_num = 1
}

set_pcvar_num( pcv_demo, dem_num )
}


Отредактировал: ViP.Predator, - 14.3.2015, 1:20
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Dante's
сообщение 14.3.2015, 1:41
Сообщение #19
Стаж: 15 лет

Сообщений: 98
Благодарностей: 90
Полезность: 370

А что если делать это конфигом на стороне пользователя.

типа запись вида демо (квар) и дата записи (переменная):
demo1 20150315
demo2 20150314
demo3 20150222
demo4 20150204
demo5 20141229

время ясен пень можно добавить в переменную
При каждом коннекте проверяем, какое число меньше то и перезаписываем. boast.gif

Отредактировал: Dante's, - 14.3.2015, 1:45
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
  Ответить в данную темуНачать новую тему
 
0 пользователей и 1 гостей читают эту тему: