[CS:GO] Авто обновление сервера Windows

google>

oldgamers
Сообщения
373
Реакции
210
Глубоко уважаемые виндузятники, специально для нас решил оставить тут мини инструкцию, по авто рестарту и авто обновлению сервера.
А то тут на форуме одни "линуксойды" и собственно для виндаус я не нашел статьи, а новичку собирать тут информацию по крупицам, если она вообще есть, дело занятное.

Это ярлык запуска вашего сервера.
Указываете свой путь до srcds.exe
Настраиваете параметры для своего сервера каждый сам для себя и описание ищите тут или на просторах глобальной, если оно вообще необходимо. Все интуитивно понятно.

Создаем .bat файл с любым названием, лучше конечно на латинском, например start.bat

параметры_запуска_сервера.bat:
@echo off
cls
echo Protecting csgo from crashes...
title csgo restarter
:csgo
echo (%date% - %time%) csgo started.
D:
echo N|start /wait d:\cs_server\csgo_serv\steamcmd\steamcmd.exe +login steamlogin steampass +force_install_dir "d:\cs_server\csgo_serv\" +app_update 740 +quit
cd d:\cs_server\csgo_serv\
echo N|START/HIGH /wait srcds.exe -autoupdate -game csgo -console -usercon +game_type 0 +game_mode 0 +map de_dust2 +fps_max 400 -ip 0.0.0.0 -port 27016 -maxplayers_override 21 -nobots -tickrate 128
timeout /t 1
echo (%date% - %time%) WARNING: csgo crashed!
goto csgo

steamlogin - логин пользователя стим

steampass - пароль пользователя стим

d:\cs_server\csgo_serv\steamcmd\ - директория где установлен steamcmd

d:\cs_server\csgo_serv\ - директория где установлен csgo server

Устанавливает два плагина. Не знаешь как установить плагины? Ищи ответ на форуме.
Подгружаем их в консоле

C-подобный:
sm plugins load auto_update_check
и
sm plugins load auto_steam_update

или сменой карты

Настраиваем auto_steam_update по пути "cfg\sourcemod\plugin.autosteamupdate.cfg"

C-подобный:
Команды:

sm_postponeupdate - отложить обновление на предопределенный период времени (флаг по умолчанию - ADMFLAG_RCON)
sm_updatetimer - принудительно запустить таймер обновления немедленно (флаг по умолчанию ADMFLAG_RCON)

Квары:
sw_auto_steam_update_version - версия плагина
auto_steam_update_timer - (по умолчанию 5) сколько минут длится таймер до перезапуска сервера
auto_steam_update_message_display_time - (по умолчанию 5) никакие уведомления не будут отображаться клиентам, пока таймер не опустится ниже этого порога (в минутах)
auto_steam_update_delay - (по умолчанию 5) как долго в минутах плагин будет игнорировать запросы на перезапуск после того, как обновление будет отложено
auto_steam_update_lock - (по умолчанию 0) 0 = не блокировать сервер во время таймера перезапуска / 1 = изменять sv_password во время таймера перезапуска / 2 = запускать новых клиентов (кроме администраторов) во время таймера перезапуска
auto_steam_update_password - (по умолчанию "") строка для изменения sv_password, если auto_steam_update_lock = 1
auto_steam_update_kickmessage - (по умолчанию «Сервер скоро отключится для получения обновлений Steam, поэтому новые подключения не разрешены») сообщение, которое отображается при удалении клиентов, если auto_steam_update_lock = 2
auto_steam_update_shutdown_message - (по умолчанию «Сервер выключается для обновления Steam») сообщение, показываемое клиентам, когда их кикнут, когда сервер завершает работу.
auto_steam_update_hud_text_x_pos - (по умолчанию 0,01) X-позиция для таймера HUD (только в поддерживаемых играх) -1,0 = центр
auto_steam_update_hud_text_y_pos - (по умолчанию 0,01) Y-позиция для таймера HUD (только в поддерживаемых играх) -1,0 = центр
auto_steam_update_hud_text_red - (по умолчанию 0) Количество красного для таймера HUD (только в поддерживаемых играх)
auto_steam_update_hud_text_green - (по умолчанию 255) Количество зеленого для таймера HUD (только в поддерживаемых играх)
auto_steam_update_hud_text_blue - (по умолчанию 0) Количество синего для таймера HUD (только в поддерживаемых играх)
auto_steam_update_auto_update - (по умолчанию 1) включает автоматическое обновление плагина (не действует, если Updater не установлен)

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

И чтоб закрепить эту тему, я оставил для тебя домашнее задание.

Добавь свой ранее созданный .bat файл в автозагрузку своей windows машины. У тебя множество путей, сервер может запускаться как service непосредственно после вкл (перезагрузки) компьютера еще на экране ввода пароля. Или уже после входа пользователя. Путем добавления ярлыка в папку "автозагрузка". Или добавлением записи в реестр. А может у тебя авто ввод пароля пользователя? Я верю в тебя.

[ANY] Automatic Steam Update (SteamWorks)
on github

UPDATE

Все эти манипуляции без использования софта были проведены мной из не возможности (по своей глупости) одновременного запуска клиента и сервера, путем добавления второго пользователя в систему.
Решение оказалось банальное, путем добавления параметра c портом, например "-clientport 27017" в ярлык игры, хоть на рабочем столе хоть через стим.

И в свое время, я бы избежал всей этой волокни и танцами брэйкдансами. Так что, самый просто вариант, без использования всех этих плагинов, добавлением пользователей, батников. Это использовать сторонний софт для авторестарта и авто обновления сервера, например WindowsGSM и(или) его аналогов.

P.S Сам лично этот метод не проверял, но со слов активистов, все работает как часы. Выбор за вами!

Если кто-то из команды форума считает что это тема тут лишняя, можете удалить её.



Если вы будете создавать второго пользователя в системе, что-бы запускать вышеуказанный start.bat, то вам надо создать еще один .bat, допустим run.bat

C-подобный:
@echo off
runas /user:csgo /savecred d:\cs_server\csgo_serv\start.bat
 

Вложения

  • auto_update_check.sp
    2.9 КБ · Просмотры: 29
  • SM-Plugins-master.zip
    77.3 КБ · Просмотры: 35
  • auto_update_check.smx
    4.8 КБ · Просмотры: 25
Последнее редактирование:

Kruzya

Участник
Сообщения
12,970
Реакции
10,914
  • Команда форума
  • #2
В чем сакральный смысл держать серваки на Винде?
 
  • Мне нравится
Реакции: mika

panikajo

Участник
Сообщения
866
Реакции
231
@Kruzya, спроси у юзеров на srvgame
И @izdevalkin если на то пошло то есть прога -
1617568454819.png
 

google>

oldgamers
Сообщения
373
Реакции
210
@Kruzya, спроси у юзеров на srvgame
И @izdevalkin если на то пошло то есть прога -
Посмотреть вложение 75306
Когда я создавал сервер, у меня была причина не использовать этот софт, а именно, мне нужно было запускать сервер и клиент игры одновременно. А через этот и другой софт, так не сделать.
Сообщения автоматически склеены:
 
Последнее редактирование:

panikajo

Участник
Сообщения
866
Реакции
231
@izdevalkin, Потому что надо сначала запускать клиент , а затем уже игру т.к у вас состыковываются порты.
 

google>

oldgamers
Сообщения
373
Реакции
210
@izdevalkin, Потому что надо сначала запускать клиент , а затем уже игру т.к у вас состыковываются порты.
То есть что бы мне попасть в игру, я должен выключить сервер. вкл клиент. Отличный план.
Сообщения автоматически склеены:

В чем сакральный смысл держать серваки на Винде?
А в чем собственно проблема? Почему не держать серваки на винде?
 

Kruzya

Участник
Сообщения
12,970
Реакции
10,914
  • Команда форума
  • #9
Есть ещё один способ. Он заключается в запуске сервера под другим Windows-пользователем. Тогда SRCDS не сможет сообщить Стиму, сидящему в другом Windows-пользователе, информацию, что он запустился, и клиент игры запустится без особых проблем.
В Windows XP для этого был целый отдельный удобный пункт в контекстном меню, если кто помнит: "Запуск от имени...", и там вводилось имя пользователя и пароль (если есть). Начиная с Windows Vista и выше, нужно политики групповые крутить, чтобы в UAC аналогичные поля появились (при попытке запуска от админа), но, кажется, тому вообще админправа на конечной учётке захочется видеть.

Честно говоря, кстати, я так и не понял, как скрипт выше помогает решить эту проблему.
 

google>

oldgamers
Сообщения
373
Реакции
210
Есть ещё один способ. Он заключается в запуске сервера под другим Windows-пользователем. Тогда SRCDS не сможет сообщить Стиму, сидящему в другом Windows-пользователе, информацию, что он запустился, и клиент игры запустится без особых проблем.
В Windows XP для этого был целый отдельный удобный пункт в контекстном меню, если кто помнит: "Запуск от имени...", и там вводилось имя пользователя и пароль (если есть). Начиная с Windows Vista и выше, нужно политики групповые крутить, чтобы в UAC аналогичные поля появились (при попытке запуска от админа), но, кажется, тому вообще админправа на конечной учётке захочется видеть.

Честно говоря, кстати, я так и не понял, как скрипт выше помогает решить эту проблему.
ну так как я начал писать статью про автообновление а не запуск. опустил этот метод, так как это уже следствие, и в тот день я кому-то уже говорил про добавление второго пользователя в систему, но меня высмеяли.
 
Последнее редактирование:

SlavON

Добрая душа
Сообщения
1,582
Реакции
326
@izdevalkin, а на сегодня какой метод рабочий кроме как добавления нового пользователя? -clientport не помогает нынче.
 

google>

oldgamers
Сообщения
373
Реакции
210
@izdevalkin, а на сегодня какой метод рабочий кроме как добавления нового пользователя? -clientport не помогает нынче.

+clientport 27004 - работает
Создай второго пользователя в системе.
Создай другого steam пользователя для "обновлений" самого CSGO.
 

RAIN182

Участник
Сообщения
411
Реакции
55
Здравствуйте , подскажите что я не правильно пишу в скрипте ?

./steamcmd.sh +force_install_dir ../csgoserver +login anonymous +app_update 740 +exit

Обновляет полностью , загружая все карты и т.д. ...
 
Последнее редактирование:

Palonez

бб братки
Сообщения
3,035
Реакции
1,837
Здравствуйте , подскажите что я не правильно пишу в скрипте ?

./steamcmd.sh +force_install_dir ../csgoserver +login anonymous +app_update 740 +exit

Обновляет полностью , загружая все карты и т.д. ...
.sh расширение - для линукса. Здесь говорится о Windows
 
Сверху Снизу