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

 
Ответить в эту темуОткрыть новую тему
> Chat log v 0.2
d`ArcZeal
сообщение 3.3.2017, 1:40
Сообщение #1


**********

Elder
Сообщений: 2.894
Регистрация: 27.11.2005
Группа: Пользователи
Наличность: 9326
Пользователь №: 4.522
Возраст: 12



Данный скрипт создает новый файл каждый день, в котором записываются все сообщения игроков в игре.

(IMG:http://ximages.net/images/08755051546601331771.png)

Версия:
Скрипт для Sphere server 56b-56c

Установка:
1 - Устанавливаем в Sphere.ini:
// OF_FileCommands = 00000080 // This enables all FILE commands, information about this command is here
OptionFlags=080
2 - Добавляем функцию в скрипты:
Код
[FUNCTION WRITEFILE]
IF !(<FILE.INUSE>)
FILE.MODE.CREATE=1
FILE.MODE.APPEND=1
FILE.MODE.WRITEFLAG=1
IF (<FILE.OPEN <STRARG <ARGS>>>)
FILE.WRITELINE <STREAT <ARGS>>
FILE.CLOSE
ENDIF
ENDIF


3 - В файле Sphere speech.scp ищем [SPEECH SPK_PLAYER] и дополняем:
Код
[SPEECH SPK_PLAYER]
ON=*
WRITEFILE Logs\<SERV.RTIME.FORMAT %d>.<SERV.RTIME.FORMAT %m>_PLAYERS_SPK.scp,<NAME> <UID> <P> [<SERV.RTIME>]: <ARGV0>




ГМы не следят за игроками.
(IMG:http://polit.ru/media/photolib/2013/07/05/snowden_1373889785.png)


--------------------
Изображение
You know where to find me
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Nickname
сообщение 3.3.2017, 13:25
Сообщение #2


****

Группа: Пользователи
Наличность: 2948
Пользователь №: 11.067



Добавь переменную даты (день, месяц, год) в название файла.


--------------------
Промокод на 10% скидку Windows VDS: ODEI-XTPJ
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
d`ArcZeal
сообщение 3.3.2017, 14:50
Сообщение #3


**********

Elder
Сообщений: 2.894
Регистрация: 27.11.2005
Группа: Пользователи
Наличность: 9326
Пользователь №: 4.522
Возраст: 12



v 0.2
Изменение в скрипте:
WRITEFILE Logs\<SERV.RTIME.FORMAT %d>.<SERV.RTIME.FORMAT %m>_PLAYERS_SPK.scp,<NAME> <UID> <P> [<SERV.RTIME>]: <ARGV0>
Что позволяет создавать отдельные файлы под каждый день реального времени.


--------------------
Изображение
You know where to find me
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Aimed
сообщение 3.3.2017, 15:43
Сообщение #4


*********

Grandmaster
Сообщений: 1.960
Регистрация: 29.12.2012
Группа: Пользователи
Наличность: 9251
Пользователь №: 15.607



У тебя сервер не будет лагать, если будет стоять парочка ботов на инже/стелсе/стиме и спамить речь?


--------------------
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
d`ArcZeal
сообщение 3.3.2017, 16:42
Сообщение #5


**********

Elder
Сообщений: 2.894
Регистрация: 27.11.2005
Группа: Пользователи
Наличность: 9326
Пользователь №: 4.522
Возраст: 12



Цитата(Aimed @ 3.3.2017, 15:43) *

У тебя сервер не будет лагать, если будет стоять парочка ботов на инже/стелсе/стиме и спамить речь?

Для этого необходимо перед записью вставить антифлуд:
https://forum.uokit.com/index.php?showtopic=30094


--------------------
Изображение
You know where to find me
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Frog
сообщение 3.3.2017, 18:15
Сообщение #6


****

Apprentice
Сообщений: 266
Регистрация: 6.9.2005
Группа: Пользователи
Наличность: 0
Пользователь №: 4.172
Возраст: 25



А почему бы не открывать файл при коннекте и не закрывать при дисконнекте?
Если файл разрастется до больших размеров - может быть постоянное переоткрытие и дозапись не будет проходить безболезненно.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Aimed
сообщение 3.3.2017, 19:23
Сообщение #7


*********

Grandmaster
Сообщений: 1.960
Регистрация: 29.12.2012
Группа: Пользователи
Наличность: 9251
Пользователь №: 15.607



Цитата(d`ArcZeal @ 3.3.2017, 14:42) *

Для этого необходимо перед записью вставить антифлуд:
https://forum.uokit.com/index.php?showtopic=30094


1)Не только вставить, надо ещё переменную с антифлуда(SPEECHTIMER) сравнивать с текущим временем. Потому что эти оба скрипта ты цепляешь к эвенту SPEECH SPK_PLAYER, то что у тебя антифлуд ретурн даст, не означает что не будет вызова от эвент хендлера этого скрипта для записи в файл.

2)<SERV.TIME> + 10
Получается что можно обойти задержкой на флуд в 11, несколько(десятков) аккаунтов будут все равно создавать проблемы.
А делать гораздо выше такую задержку может уже стать неудобством для игроков.
+ ты тратишь ресурсы сети посылая обратно сообщение об антифлуде.

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


--------------------
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения

Ответить в эту темуОткрыть новую тему
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 

- Текстовая версия | Версия для КПК Сейчас: 20.11.2019, 7:41
Designed by Nickostyle