SRCDSのアップデートを検知して再起動する仕組みを作った
SteamToolsに Steam_RestartRequested ってのがあって、これはサーバー更新を検知した時に呼び出されるコールバック関数。これを使って実装した。
/** * Is fired when the Steam master servers report that your server is * outdated * * @return Plugin_Continue to continue normal operation or Plugin_Handled * to block the regular console message. */ forward Action:Steam_RestartRequested();
この関数内でPlugin_ContinueとPlugin_Handledどちらを返却すればよいかは、説明読んだけどよくわからん。いずれにせよこの関数が呼び出された時に人が完全に居なかったら再起動するようにした。人が居た時は当然いなくなるまで待つ、といういつものパターンで実装。
ソース
https://raw.github.com/kimoto/sourcemod-plugins/master/scripting/server_quit_if_empty.sp