Как выключить сервер sourcepawn

cgduude

Участник
Сообщения
8
Реакции
0
Можно ли как то выключить сервер после завершения карты?
Я пытаюсь сделать что то подобное, но это не работает:
C-подобный:
public OnMapEnd()
{
    ServerCommand("quit");
}
 

Kruzya

Участник
Сообщения
12,970
Реакции
10,921
  • Команда форума
  • #2
Когда карта завершена, движок не обрабатывает команды. Это нормально.
А в чем сакральный смысл гасить сервер в этот момент? Не лучше ли к событию до конца карты подвязаться, и там уже и делать суицид серверу?
 

cgduude

Участник
Сообщения
8
Реакции
0
Когда карта завершена, движок не обрабатывает команды. Это нормально.
А в чем сакральный смысл гасить сервер в этот момент? Не лучше ли к событию до конца карты подвязаться, и там уже и делать суицид серверу?
Смысл в том, что на самом сервере будет python скрипт, который будет запускать сервер с определенными настройками(они всегда будут разные)
 

Kruzya

Участник
Сообщения
12,970
Реакции
10,921
  • Команда форума
  • #4
Не понял. Вы там SourcePawn с SourcePython пытаетесь подружить, что-ли?
 

cgduude

Участник
Сообщения
8
Реакции
0
Смысл в том, что на самом сервере будет python скрипт, который будет запускать сервер с определенными настройками(они всегда будут разные)
Я понимаю, что это ковногодинг. Может есть какие то способы в sourcepawn принимать запросы от других серверов?
Сообщения автоматически склеены:

Не понял. Вы там SourcePawn с SourcePython пытаетесь подружить, что-ли?
Нет, питон будет просто запускать кс сервер.
 

Kruzya

Участник
Сообщения
12,970
Реакции
10,921
  • Команда форума
  • #6
Так пусть он его и гасит.
Посылайте просто RCON-команду на сервер.
 

DeathScore13

пирожок. пирожочек.
Сообщения
738
Реакции
409
Можно ли как то выключить сервер после завершения карты?
Я пытаюсь сделать что то подобное, но это не работает:
C-подобный:
public OnMapEnd()
{
    ServerCommand("quit");
}
можно использовать баг с rw в OpenFile, но это будет считаться как краш🤷🏿‍♂️
 

DeathScore13

пирожок. пирожочек.
Сообщения
738
Реакции
409

Madness aka null138

Участник
Сообщения
713
Реакции
735
Впервые такое слышу. Я всегда сбрасываю квары по этому событию и все нормально. Квары которые были изменены не переходят на новую карту от другой карты. Делалось через тот же servercommand.

Можно попробовать через OnEntityDestroyed classname "worldspawn"
 

MaZa

Участник
Сообщения
1,732
Реакции
980
Можно крашнуть стандартным способом и уйти на перезагрузку.
C++:
ServerCommand("sv_cheats 1;crash");

Можно просто остановить сервер
C++:
ServerCommand("exit");
Можно просто перезапустить сервер
C++:
ServerCommand("_restart");
 

Kruzya

Участник
Сообщения
12,970
Реакции
10,921
  • Команда форума
  • #13
@Madness aka null138, это от игры может зависеть.
Точно могу сказать, что на TF2 движок команды не обрабатывает. За другие игры ничего наверняка не скажу.

Ну если в ксго "работает", тогда возникает закономерный вопрос, почему у ТС quit не срабатывает.
 

Grey83

не пишу плагины с весны 2022
Сообщения
8,558
Реакции
5,051
Впервые такое слышу. Я всегда сбрасываю квары по этому событию и все нормально. Квары которые были изменены не переходят на новую карту от другой карты. Делалось через тот же servercommand.
Достаточно того, что есть конфиг плагина или server.cfg, где прописаны значения кваров.
Если такое имеется, то ничего не нужно сбрасывать при смене карты, т.к. конфиги прочтутся и будут установлены значения из них.

А вот если так не сделать, то значения останутся такими, какими их выставили через rcon.
Сообщения автоматически склеены:

Можно ли как то выключить сервер после завершения карты?
Я пытаюсь сделать что то подобное, но это не работает:
C-подобный:
public OnMapEnd()
{
    ServerCommand("quit");
}
если «выключить сервер», то при перезапуске (если есть скрипт или утилита, перезапускающие сервер) сервер снова запустится со стартовой картой.
Ну и перезапуск длится несколько дольше, чем смена карты (не намного, но всё же). Кроме того тогда нужно будет переподключаться самостоятельно
Сообщения автоматически склеены:

Нет, питон будет просто запускать кс сервер.
Смысл в том, что на самом сервере будет python скрипт, который будет запускать сервер с определенными настройками(они всегда будут разные)
Не проще ли сделать конфиги и просто отправлять команду серверу на их загрузку?
А если конфиги от карты зависят, то есть плагины, которые выполняют команды и/или выставляют значения кварам, как это прописано в их конфиге для карты (у самого такой стоит на серверах).
 
Последнее редактирование:

Madness aka null138

Участник
Сообщения
713
Реакции
735
Достаточно того, что есть конфиг плагина или server.cfg, где прописаны значения кваров.
Если такое имеется, то ничего не нужно сбрасывать при смене карты, т.к. конфиги прочтутся и будут установлены значения из них.

А вот если так не сделать, то значения останутся такими, какими их выставили через rcon.
не совсем. есть карты которые ставят например sv_friction и тд. которые как раз и переходят на следующую карту, багая например физику.
если даже прописать их где то, то все равно баг остается. надо именно до начало следующего карты все сбросить.
это в моем случае.
 
Сверху Снизу