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

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

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

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

6 страниц V  « 4 5 6

Боты Yapb (Yet Another Pod-Bot)

, версия 2.8.4766
Статус пользователя $@NyA
сообщение 29.11.2021, 16:38
Сообщение #81


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

Стаж: 18 лет

Сообщений: 987
Благодарностей: 529
Полезность: 1050

Цитата(TheArtemMaps @ 29.11.2021, 12:24) *
Вышла новая версия 20 сентября. https://github.com/yapb/yapb/releases/tag/4.2.623

В первом посте я тогда ещё добавил ( вроде как и ты просил меня )

Цитата
Скачать с GitHub Актуальную версию




МультиМод CS
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя TheArtemMaps
сообщение 29.11.2021, 18:54
Сообщение #82
Стаж: 6 лет 8 месяцев
Город: Киев

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

$@NyA,
а да, ну не все заходят туда, решил сюда написать


Register System <== Register System от m0skVi4a ;]
45.137.155.4:45265 <== сервер зомби
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя energydance
сообщение 24.8.2022, 16:29
Сообщение #83


Стаж: 10 лет

Сообщений: 2809
Благодарностей: 740
Полезность: 213

Ребят у кого нибудь после смены карты сервер уходил в краш? У меня после установки уходит когда карта меняется


Press enter to exit ...
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя TheArtemMaps
сообщение 26.8.2022, 19:56
Сообщение #84
Стаж: 6 лет 8 месяцев
Город: Киев

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

Цитата(energydance @ 24.8.2022, 17:29) *
Ребят у кого нибудь после смены карты сервер уходил в краш? У меня после установки уходит когда карта меняется

странно, но нет. а дай то что дает в консоли


Register System <== Register System от m0skVi4a ;]
45.137.155.4:45265 <== сервер зомби
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Gecko
сообщение 26.8.2022, 23:50
Сообщение #85
Стаж: 7 лет 4 месяца

Сообщений: 1247
Благодарностей: 518
Полезность: 345

TheArtemMaps,
Цитата
дай то что дает в консоли


lol.gif это называют логами )))

Но, в принципе ход мысли правильный, если VPS, то самое простое решение - включить логирование скрина (утилита screen), просто добавив флаг -L (Logging).
Цитата
screen -A -L -m -d -S CS1 ./hlds_run

И там где файл запуска сервера hlds_run, появиться лог-файл screenlog.0, в котором будет абсолютно всё что нужно для выявления и решения любых ошибок самого игрового сервера.
Из этого файла можно получить любые данные.

Просто в качестве примера:

Создаём для удобства симлинк:
(27015 это каталог сервера в котором ***одиться bash-скрипт - hlds_run
Код
ln -s /opt/hlds/27015/screenlog.0 /opt/hlds/CS1.log


Получаем чат игроков
Код
#!/bin/bash

cs1=CS1.log
hlds=/opt/hlds
playerschat=PlayersChat.log

printf "\n==================================\nPlayers chat / $(date '+%Y-%m-%d %H:%M:%S')\n==================================\n\n" > ${hlds}/${playerschat}
cat ${hlds}/${cs1} | grep ^L | grep -v "bans was cleaned" | grep -v -i ip: | grep -v "Mapchange to" | grep -v "Looking up breakpad interfaces from steamclient" | grep -v "Log file started" | grep -v "mySQL is OK! Time difference" | grep -v "Invalid player 24" | grep -v -i ".amxx" | awk -F ' - ' '{print $2}' >> ${hlds}/${playerschat}
sed -i 's/: \[/ \[/g' ${hlds}/${playerschat}


Получаем список всех кто вводил rcon команды

Код
#!/bin/bash

cs1=CS1.log
hlds=/opt/hlds
rcon=RCON-access.log

printf "\n=====================================\nRCON access log / $(date '+%Y-%m-%d %H:%M:%S')\n=====================================\n" > ${hlds}/${rcon}
cat ${hlds}/${cs1} | grep -i Rcon >> ${hlds}/${rcon}
sed -i 's/^Rcon/\nRcon/g' ${hlds}/${rcon}


Получаем список всех кто прошел аутентификацию и авторизацию на сервере
Код
#!/bin/bash

cs1=CS1.log
hlds=/opt/hlds
csadmins=CS-Admins-Authentication.log

printf "\n==============================================\nCS Admins Authentication / $(date '+%Y-%m-%d %H:%M:%S')\n==============================================\n" > ${hlds}/${csadmins}
cat ${hlds}/${cs1} | grep "Authentication..." >> ${hlds}/${csadmins}
sed -i 's/^L/\nL/g' ${hlds}/${csadmins}


По аналогии:
Все игроки сервера, можно их подсчитать и отфильтровать как угодно.
Код
cat /opt/hlds/CS1.log | grep ^L | grep -i ip: >> /opt/hlds/players.log
sed -i 's/^L/\nL/g' /opt/hlds/players.log


Получаем ошибки плагинов:
Код
cat /opt/hlds/CS2.log | grep  "\[AMXX\]" | grep -i " error "


Файл screenlog.0 можно удалять раз в сутки, с помощью CRON выполнив:
crontab -e

Код
00 00 * * * rm -f /opt/hlds/27015/screenlog.0


Если нужно архивировать логи скрина для конкретного сервера
(в идеале эти манипуляции скрипт должен делать через аргументы)

Архивируем логи в зжатом виде, оставляя архивы за последние 10 дней
Код
#!/bin/bash

hlds='/opt/hlds/27015'
screenlogdir='/opt/hlds/27015/screenlog'
screen_name='CS1'

if [ ! -d "${screenlogdir}/${screen_name}" ]; then
mkdir -p "${screenlogdir}/${screen_name}" && chmod -R 755 "${screenlogdir}"
fi

if [ -f "${hlds}/screenlog.0" ]; then
cd ${hlds}
tar -czpf "${screenlogdir}"/${screen_name}/$(date +%Y-%m-%d-%H-%M-%S).tar.gz screenlog.0 2> /dev/null && rm -f "${hlds}"/screenlog.0
fi

find "${hlds}/screenlog" -mtime +10 -exec rm {} \; 2> /dev/null
ln -sf "${hlds}"/screenlog.0 "${screenlogdir}/${screen_name}/${screen_name}.log" 2> /dev/null
ln -sf ${hlds}/screenlog.0 "${hlds%27015}${screen_name}.log" 2> /dev/null


Если нужно удалить N файлов архива

Код написал непроверяя!
Код
#!/bin/bash

c=$(ls -dl /opt/hlds/27015/screenlog/* | wc -l)
t=10
ls -dl /opt/hlds/27015/screenlog/* | awk -F ':[0-9][0-9] ' '{print $2}' | head -n5 | sed 's/^/rm "/' | sed 's/$/"/' > /tmp/sreenlog.tmp

if [ "$c" -ge "$t" ] then
bash /tmp/sreenlog.tmp && rm /tmp/sreenlog.tmp
fi


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

Отредактировал: Gecko, - 27.8.2022, 1:03


Не отвечаю на ЛС.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 4 раз
   + Цитировать сообщение
Статус пользователя Metal Messiah
сообщение 28.8.2022, 2:06
Сообщение #86


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

Стаж: 13 лет

Сообщений: 2458
Благодарностей: 1482
Полезность: 772

HostGame.cf
Последний пост тянет на отдельную статью, только с описанием какая команда что делает для тех кто видит Linux второй раз в своей жизни.


Полезные публикации - ссылки у меня в профиле. Ссылка на плагин против спама на сервере StopServerSpam там же.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Gecko
сообщение 28.8.2022, 22:56
Сообщение #87
Стаж: 7 лет 4 месяца

Сообщений: 1247
Благодарностей: 518
Полезность: 345

Цитата(Metal Messiah @ 28.8.2022, 2:06) *
Последний пост тянет на отдельную статью, только с описанием какая команда что делает для тех кто видит Linux второй раз в своей жизни.

Сделаю, придумать надо, как оформить тему.

Сила скриптов )))
Вот ещё один пример, написанный за 30 сек к этому посту как бонус.
Код
utotal=$(cat /opt/hlds/players.log | awk -F 'IP: ' '{print $2}' | sed -r '/^\s*$/d' | sort | uniq | grep -v -i BOT | wc -l);start=$(cat /opt/hlds/players.log | head -n6 | tail -n1 | awk '{print $4}');end=$(cat /opt/hlds/players.log | tail -n1 | awk '{print $4}');  echo "${start%:} - ${end%:} = ${utotal} users";


Получаем количество игроков за определённый промежуток времени из players.log.
Цитата
00:05:03 - 23:20:27 = 1086 users

Пояснение:
00:05:03 - это время первого захода игрока, которое скрипт автоматически определит в лог-файле players.log
23:20:27 - время последнего захода игрока, которое скрипт автоматически определит в лог-файле players.log
Игроки в подсчёте уникальны, если у двух и более игроков одинаковый IP, но разный SteamID, то это разные игроки.
В выводе скрипта из примера выше, у игроков могут быть разные IP, но одинаковые SteamID, при таких раскладах скрипт также посчитает их как разные игроки.
Для этого скрипт нужно изменить. Просто фильтровать по SteamID и исключать (по необходимости) те ID которое не нужно считать )))
Этот вариант - самый точный:
Код
utotal=$(cat /opt/hlds/players.log | awk -F 'SteamID: ' '{print $2}' | sed -r '/^\s*$/d' | sort  | uniq | grep -v -i BOT | wc -l);start=$(cat /opt/hlds/players.log | head -n6 | tail -n1 | awk '{print $4}');end=$(cat /opt/hlds/players.log | tail -n1 | awk '{print $4}');  echo "${start%:} - ${end%:} = ${utotal} users";


В виде готового файла:
playerstats.sh
Код
#!/bin/bash

hlds=/opt/hlds
players=players.log
playerstats=playerstats.log

utotal=$(cat ${hlds}/${players} | awk -F 'SteamID: ' '{print $2}' | sed -r '/^\s*$/d' | sort  | uniq | grep -v -i BOT | wc -l)
start=$(cat ${hlds}/${players}  | head -n6 | tail -n1 | awk '{print $4}')
end=$(cat ${hlds}/${players}  | tail -n1 | awk '{print $4}')

printf "\n===================================\nPlayers Stats / $(date '+%Y-%m-%d %H:%M:%S')\n===================================\n\n" >> ${hlds}/${playerstats}
echo "${start%:} - ${end%:} = ${utotal} users" >> ${hlds}/${playerstats}





Файл players.log создаёт этот скрипт:

players.sh

Код
#!/bin/bash

hlds=/opt/hlds
players=players.log
cs=CS1.log

printf "\n=============================\nPlayers / $(date '+%Y-%m-%d %H:%M:%S')\n=============================\n" > ${hlds}/${players}
cat ${hlds}/${cs} | grep "SteamID: " >> ${hlds}/${players}
sed -i 's/^L/\nL/g' ${hlds}/${players}



Пояснение к скрипту выше:
CS1.log - это симлинк на /opt/hlds/27015/screenlog.0
Код
ln -s /opt/hlds/27015/screenlog.0 /opt/hlds/CS1.log


Чтобы получить screenlog.0, нужно включить логирование скрина (утилита screen)
Код
screen -A -L -m -d -S CS1 ./hlds_run


Цитата
И там где файл запуска сервера hlds_run, появиться лог-файл screenlog.0, в котором будет абсолютно всё что нужно для выявления и решения любых ошибок самого игрового сервера.
Из этого файла можно получить любые данные.


Можно отправлять логи в телегу.
Берём результат первого скрипта который уже записан в переменную ${utotal} и сравниваем со значением взятое из лога за предыдущий день.
Если условие ниже будет true, то отправляем письмо админу.

Код
if [ "${utotal}" -ge "${lastop}" ] then
# ${utotal} >= ${lastop}
bash  tg.sh -l ${utotal}
fi


А главное всё работает очень быстро и без геморроя.
Код
time -p  playerstats.sh


UPD Сегодня скрипты протестировал, всё работает безупречно.

Отредактировал: Gecko, - 29.8.2022, 18:06


Не отвечаю на ЛС.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 2 раз
   + Цитировать сообщение
Статус пользователя Gecko
сообщение 29.8.2022, 18:16
Сообщение #88
Стаж: 7 лет 4 месяца

Сообщений: 1247
Благодарностей: 518
Полезность: 345

TUPD предыдущее сообщение обновлено с мелкими правками.
Сегодня ради интереса включил скрипт на боевом сервере. Всё работает.
Пример работы
Прикрепленное изображение

Такой вариант подсчёта - самый точный, вы будет точно знать сколько игроков у вас играет с ходом в один час.
Добавляем в крон ( в примере ниже - обновляет каждый час)
Код
0 * * * * /opt/bash/playerstop.sh







Не отвечаю на ЛС.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя TheArtemMaps
сообщение 29.8.2022, 19:39
Сообщение #89
Стаж: 6 лет 8 месяцев
Город: Киев

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


Gecko,
пфф, спс, я подзабыл немного))


Register System <== Register System от m0skVi4a ;]
45.137.155.4:45265 <== сервер зомби
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя DANDY
сообщение 13.9.2022, 23:58
Сообщение #90
Стаж: 15 лет

Сообщений: 270
Благодарностей: 38
Полезность: 120

У меня зомби сервера, где взять .graph файлы для карты? Вручную для каждой карты нужно чтоли создавать? ubeysya.gif
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя hoolz
сообщение 14.9.2022, 0:25
Сообщение #91


Стаж: 11 лет
Город: Warszawa

Сообщений: 1194
Благодарностей: 909
Полезность: 1148

Цитата(DANDY @ 14.9.2022, 0:58) *
У меня зомби сервера, где взять .graph файлы для карты? Вручную для каждой карты нужно чтоли создавать? ubeysya.gif

https://github.com/yapb/graph


🚀 CS-BOOSTER — раскрутка серверов Counter-Strike 1.6
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя TheArtemMaps
сообщение 14.9.2022, 8:05
Сообщение #92
Стаж: 6 лет 8 месяцев
Город: Киев

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

Цитата(DANDY @ 14.9.2022, 0:58) *
У меня зомби сервера, где взять .graph файлы для карты? Вручную для каждой карты нужно чтоли создавать? ubeysya.gif

да, поэтому используй zbot, и не парься. хотя, пора и yapb завести авто выучение карты как у zbot.

hoolz,
там не для всех есть

Отредактировал: TheArtemMaps, - 14.9.2022, 8:07


Register System <== Register System от m0skVi4a ;]
45.137.155.4:45265 <== сервер зомби
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя DANDY
сообщение 14.9.2022, 8:53
Сообщение #93
Стаж: 15 лет

Сообщений: 270
Благодарностей: 38
Полезность: 120

hoolz, Для зомби карт там нет ничего

TheArtemMaps, zbot поставил, боты не выходят при заходе реального игрока. Мало того, bot_quota 10 стоит, бывает и 13-15 ботов создается

Отредактировал: DANDY, - 14.9.2022, 8:53
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя TheArtemMaps
сообщение 14.9.2022, 8:59
Сообщение #94
Стаж: 6 лет 8 месяцев
Город: Киев

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

DANDY, bot_auto_vacate [0, 1]
Установите значение 1, чтобы заставить ботов автоматически покинуть сервер, чтобы освободить место для игроков-людей (Значение 0 для отключения).


DANDY,
также, попробуй мой конфиг
Cкрытый текст
//Сложность ботов 0-3
bot_difficulty 3

//Боты на кол-во игроков. При значении 4, при заходе 1 игрока будет 4 бота.
//bot_quota_match 1

//Освобождать места для игроков при заполнении сервера
bot_auto_vacate 1

//Префикс ботов в игре
bot_prefix [БОТЫ]

//За какую команду могут заходить боты ct t any
bot_join_team any

//Боты появляются только при заходе игрока 1 0
bot_join_after_player 0

//Общения в чате и по радио. Лучше вообще вырубать.
bot_chatter normal

//Управление снаряжением ботов.
//Допустимые значения 1 и 0.
bot_all_weapons
bot_allow_pistols 1
bot_allow_shotguns 1
bot_allow_sub_machine_guns 1
bot_allow_rifles 1
bot_allow_snipers 1
bot_allow_machine_guns 1
bot_allow_grenades 1
bot_allow_shield 1
bot_allow_rogues 1

//Максимальное кол-во ботов которое может быть на сервере.
bot_quota 0
echo Executing zBot cvars file


Register System <== Register System от m0skVi4a ;]
45.137.155.4:45265 <== сервер зомби
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя DANDY
сообщение 14.9.2022, 11:17
Сообщение #95
Стаж: 15 лет

Сообщений: 270
Благодарностей: 38
Полезность: 120

TheArtemMaps, стоит vacate 1, мод fill (не нормал, как у тебя), всё равно
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя TheArtemMaps
сообщение 14.9.2022, 11:19
Сообщение #96
Стаж: 6 лет 8 месяцев
Город: Киев

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

Цитата(DANDY @ 14.9.2022, 12:17) *
TheArtemMaps, стоит vacate 1, мод fill (не нормал, как у тебя), всё равно

поставь normal


Register System <== Register System от m0skVi4a ;]
45.137.155.4:45265 <== сервер зомби
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя DANDY
сообщение 14.9.2022, 11:30
Сообщение #97
Стаж: 15 лет

Сообщений: 270
Благодарностей: 38
Полезность: 120

Так в этом случае же не будет кикать ботов, если игрок заходит на сервер и не будет заходить бот, если игрок выходит, судя по описанию
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя TheArtemMaps
сообщение 14.9.2022, 11:33
Сообщение #98
Стаж: 6 лет 8 месяцев
Город: Киев

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

Цитата(DANDY @ 14.9.2022, 12:30) *
Так в этом случае же не будет кикать ботов, если игрок заходит на сервер и не будет заходить бот, если игрок выходит, судя по описанию

попробуй просто мой конфиг и напиши, как оно там будет


Register System <== Register System от m0skVi4a ;]
45.137.155.4:45265 <== сервер зомби
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя TheArtemMaps
сообщение 14.9.2022, 13:24
Сообщение #99
Стаж: 6 лет 8 месяцев
Город: Киев

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

Цитата(DANDY @ 14.9.2022, 12:30) *
Так в этом случае же не будет кикать ботов, если игрок заходит на сервер и не будет заходить бот, если игрок выходит, судя по описанию

хотя стой, попробуй это bot_join_after_player "1" // Боты присоединяются только когда, хотя бы один человек есть на сервере. 0 - Боты присоединяются даже если на сервере нету людей.


Register System <== Register System от m0skVi4a ;]
45.137.155.4:45265 <== сервер зомби
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя TheArtemMaps
сообщение 14.9.2022, 13:34
Сообщение #100
Стаж: 6 лет 8 месяцев
Город: Киев

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

или вот целый гайд https://dev-cs.ru/threads/1147/

bot_quota "10"
bot_join_team "any"
bot_auto_vacate "1"
bot_join_after_player "0"
bot_deathmatch 0
bot_quota_mode "fill"
bot_join_delay 0
bot_freeze 0

или даже так


Register System <== Register System от m0skVi4a ;]
45.137.155.4:45265 <== сервер зомби
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
6 страниц V  « 4 5 6
 
Ответить в данную темуНачать новую тему
 
0 пользователей и 3 гостей читают эту тему: