Quake Live Serverの構成-チュートリアル

Quake 3、この音の大きさ...









過去16年間、最初のバージョンがリリースされて以来、q3はそれほど変化していません。 誤解しないでください-ゲームが変更されました。 トーナメントのMODが開発され、忘却の彼方に沈みました(こんにちは、osp、cmpa-私たちはあなたを覚えています!)、Quake liveはブラウザで生まれ、蒸気に移動しました。 チャンピオンシップは少なく、サーバー上のプレイヤーも同様です。



しかし、無謀なダイナミクスはほとんど変わりませんでした。 現代の化身では、Quake Liveは今でも同じ古き良きゲームであり、長年のベストプラクティスをすべて吸収しています。



これは、qlstats.netのプラグインサポートとクロスサーバー統計を備えたPythonで書かれたminqlxサーバーであり、追加のゲームモード、マップ、サウンドを備えたSteamの巨大なマーケットプレイスです。



そして、現在、プレイヤーよりもはるかに多くのサーバーがありますが、このエッセイは機能を実証する可能性が高く、それらを考えずに作成することを奨励していません。 しかし、あなたが小さなサーバーを長い冬の夜に友達と遊びたいだけで、どこから始めればいいのかわからない場合、またはインストールプロセスが今どのように進行しているのか疑問に思っているなら、猫にようこそ!



この指示は、14.04以降のUbuntu Serverに関連しています。 (他のディストリビューションでは、ボックスにpython35がないため、minqlxのインストールが複雑になる場合があります)。



ささいなことから始めましょう-便利なソフトウェアを入れ、ファイアウォールのポートを開きます。 コマンドはルートとして入力されます。



apt-get install -y wget fail2ban htop firewalld mc adduser ql firewall-cmd --permanent --zone=public --add-port=27960-27965/tcp && firewall-cmd --permanent --zone=public --add-port=27960-27965/udp && firewall-cmd --reload
      
      





udpポートはゲームサーバーtcpを使用します-qlstats統計サーバー



追加のソフトウェアと依存関係をインストールする



 apt-get install -y libc6:i386 libstdc++6:i386 software-properties-common supervisor build-essential redis-server git wget http://download.zeromq.org/zeromq-4.1.4.tar.gz; tar -xvzf zeromq-4.1.4.tar.gz; rm zeromq-4.1.4.tar.gz; cd zeromq*; ./configure --without-libsodium; make install; cd ..; rm -r zeromq*; easy_install pyzmq
      
      





Steamを介して実際のQuake Liveサーバーをインストールするためのキュー



 mkdir /home/steam; cd /home/steam; wget https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz; tar -xvzf steamcmd_linux.tar.gz; rm steamcmd_linux.tar.gz /home/steam/steamcmd.sh +login anonymous +force_install_dir /home/ql/ +app_update 349090 +quit
      
      





少し待ってから、サーバーがqlディレクトリにロードされ、準備が整います。 しかし、最も興味深いのはまだ始まったばかりです-完全に機能するには、minqlxをインストールして構成する必要があります。 サーバーコマンドのリストはGitHubで入手できます



 cd /home/ql wget -O - https://api.github.com/repos/MinoMino/minqlx/releases | grep browser_download_url | head -n 1 | cut -d '"' -f 4 | xargs wget && find -name \minqlx*.tar.gz -exec tar xvzf '{}' \; && find -name \minqlx*.tar.gz -exec rm '{}' \;
      
      





サーバーの自動更新を設定します。そうしないと、しばらくするとクライアントがサーバーに参加できなくなります。



 tee /home/quakeupdate.sh <<-'EOF' echo "updating quake live [$(date)]" /usr/bin/supervisorctl stop all /home/steam/steamcmd.sh +login anonymous +force_install_dir /home/ql/ +app_update 349090 +quit /usr/bin/supervisorctl start all EOF chmod +x /home/quakeupdate.sh && echo -e "\n0 6 * * * root sh /home/quakeupdate.sh > /var/log/quakeupdate.log 2&>1;chown -R ql:ql /home/ql" >> /etc/crontab
      
      





サーバーをインストールした後、プラグインをインストールするのが論理的です。 それらすべてを説明するのではなく、個別にスイングするものに焦点を当て、標準の配信には含まれません。



ブランディング -サーバーに接続したときに表示されるラベルを変更します。

q3resolver -q3のカードの古い名前と新しい名前を比較し、dmおよびctfカードでのみ機能しますが、追加のカードを入力するか、独自のショートカットを設定できます。

ratinglimiter-サーバーへの入り口を、指定されたものよりも低いまたは高い評価を持つプレイヤーに制限できます。 構成で使用するには、バランスモジュールを有効にする必要があります。

changemap-サーバー上に誰もいない場合、構成で指定されたものにカードを変更します。

pingspec-プレイヤーのサーバー(キック)に特定の値を超えるpingを残すよう丁寧に要求します。

clanspinner -clantegアニメーションのホイッスル、それが可能であることを示すためだけに:)

autorestart-プレイヤーがいない指定された時間にサーバーをリロードします。

custom_vote-ゲームの特定の投票モードに制限を課します。

プラグインの完全なリストはこちらをご覧ください



 git clone https://github.com/MinoMino/minqlx-plugins.git && cd ./minqlx-plugins && wget https://raw.githubusercontent.com/tjone270/Quake-Live/master/minqlx-plugins/branding.py && wget https://raw.githubusercontent.com/tjone270/Quake-Live/master/minqlx-plugins/q3resolver.py && wget https://raw.githubusercontent.com/tjone270/Quake-Live/master/minqlx-plugins/ratinglimiter.py && wget https://raw.githubusercontent.com/tjone270/Quake-Live/master/minqlx-plugins/changemap.py && wget https://raw.githubusercontent.com/tjone270/Quake-Live/master/minqlx-plugins/archive/beta/pingspec.py && wget https://raw.githubusercontent.com/tjone270/Quake-Live/master/minqlx-plugins/archive/beta/clanspinner.py && wget https://raw.githubusercontent.com/tjone270/Quake-Live/master/minqlx-plugins/autorestart.py && wget https://raw.githubusercontent.com/tjone270/Quake-Live/master/minqlx-plugins/custom_votes.py
      
      





ポイントは小さい-ファイルを作成してサーバーを起動する



 tee /home/ql/start-server.sh <<-'EOF' #!/bin/bash gameport=`expr $1 + 27960` rconport=`expr $1 + 28960` servernum=`expr $1 + 1` rm /home/ql/$gameport/baseq3/server.cfg cp /home/ql/baseq3/server-$servernum.cfg /home/ql/$gameport/baseq3/server.cfg exec /home/ql/run_server_x64_minqlx.sh \ +set net_strict 1 \ +set net_port $gameport \ +set sv_hostname "My best server #$servernum" \ +set fs_homepath /home/ql/$gameport \ +set zmq_rcon_enable 1 \ +set zmq_rcon_password "rconpassword" \ +set zmq_rcon_port $rconport \ +set zmq_stats_enable 1 \ +set zmq_stats_password "statpassword" \ +set zmq_stats_port $gameport EOF
      
      





サーバー設定はディレクトリ./baseq3/にある必要があることに注意してください



構成名は、ポート27960のサーバーのserver-1.cfg、ポート27961のサーバーのserver-2.cfgなどです。 実行中のサーバーの数は、スーパーバイザーによって規制されています。詳細については、以下をご覧ください。



最初に、access.txtファイルを準備し、17桁のSteam-id(Steamでプロファイルに切り替えたときにURLにあるもの)に管理アクセスを提供する指示を入力する必要があります。



これは非常に簡単に行われます:



 echo -e "\n12345678910111213|admin" >> /home/ql/baseq3/access-my.txt
      
      





同じファイルで、好ましくない人を追い出すことができます(プレイヤーを禁止するには、id | banと書く必要があります)、または価値のある人を奨励する(id | modはモデレーターです)。



この場合、すべてのサーバーが同じアクセスリストを使用しますが、構成と同様に別のアクセスリストを作成できます。



ゲーム中にファイルを直接接続できます:



 g_accessFile "filename" reload_access
      
      





ただし、この場合、qlはディレクトリ/ home / ql /ポート番号/ baseq3でそれらを検索します



サーバーが機能するには、構成が必要です。



 tee /home/ql/baseq3/server-1.cfg <<-'EOF' set sv_tags "Location,duel,elo". set sv_mapPoolFile "mappool_duel.txt" set g_gametype "duel" set g_accessFile "access-myaccess.txt" set sv_maxClients "10" set g_password "" set sv_privateClients "2" set sv_privatePassword "mypass". set com_hunkMegs "60" set sv_floodprotect "10" set g_floodprot_maxcount "10" set g_floodprot_decay "1000" set g_voteFlags "29800" set g_allowVote "1". set g_voteDelay "0". set g_voteLimit "0" set g_allowVoteMidGame "1" set g_allowSpecVote "0". set g_inactivity "120" // Kick players who are inactive for x amount of seconds. set g_alltalk "1" set sv_serverType "2". set sv_master "1" set sv_fps "40" set sv_idleExit "120" set sv_pure "0" set serverstartup "map bloodrun duel" // minqlx configuration set qlx_owner "12345678910111213" set qlx_plugins "plugin_manager, essentials, motd, permission, ban, silence, clan, names, log, workshop, balance, branding, changemap, pingspec, clanspinner, autorestart, custom_votes" set qlx_balanceUrl "qlstats.net" set qlx_balanceApi "elo" // "elo_b" -  4fun ,    set qlx_protectedPerm "3" set qlx_defaultMapToChangeTo "bloodrun" set qlx_defaultMapFactoryToChangeTo "duel" set qlx_pingSpecSecondsBetweenChecks "30" set qlx_pingSpecMaxPing "120" set qlx_rulesetLocked "1" set qlx_disablePlayerRemoval "0" set qlx_disableCvarVoting "1" set qlx_cvarVotePermissionRequired "3" // branding set qlx_serverBrandName "MY Server #1" set qlx_serverBrandTopField "server admin : player" set qlx_serverBrandBottomField "Some text here" set qlx_connectMessage "welcome to server" set qlx_loadedMessage "Please be respectfull to each other" set qlx_countdownMessage "Be good or be dead. GL & HF!" set qlx_endOfGameMessage "Good Game!" reload_access reload_mappool EOF
      
      





ほんの少しだけ! 念のため、ディレクトリ/ home / qlで所有者を再定義します。



 chown -R ql:ql /home/ql
      
      





サーバーは構成され、必要なときにいつでも機能することを確認するために残ります。 監督者を置くのも不思議ではありませんか?



 tee /etc/supervisor/conf.d/ql.conf <<-'EOF' [program:quakelive] command=/bin/bash -c "exec /home/ql/start-server.sh %(process_num)s" user=ql process_name=ql_%(process_num)s numprocs=3 autorestart=true EOF
      
      





 service supervisor restart
      
      





この構成は、ポート27960、27961、27962で3つの地震ライブインスタンスを起動し、フリーズの場合にそれらを再起動し、サーバーの再起動時に起動します。 手動制御の場合は、supervisorctl start / stop / restart all / ql_1を使用します



最後に、サーバーの統計を収集して考慮する場合は、start_server.sh起動スクリプトのパスワードを使用してqlstats.net:8084 / servers.htmlにサーバーを登録します(行zmq_stats_password)。



私はほとんど忘れていました! コンテンツを追加するには、ファイル/home/ql/baseq3/workshop.txtを編集します。



 cat /home/ql/baseq3/workshop.txt # specify 1 workshop item id per line, ex: # 494372396 # 441344649
      
      





内容はこちらです。 好きなアドオンのURLからコピーするのが最も簡単です 。 ところで、可能なすべてのカードで古き良きデフラグがあります;)



新しい製品を追加した後、サーバーを再起動することを忘れないでください!



 supervisorctl restart all
      
      





おそらくそれだけです。 この情報が役に立つことを願っています-ロシア語でのQuake Liveサーバーのインストールに関する完全なハウツーを見たことがないので、このメモを書くように促されました。



これらの設定により、サーバーはプレーヤーの統計情報を操作し、ゲーム中に!Eloコマンドを使用して表示できます。 評価は、qlstats.netに統計を提供するすべてのサーバー上のすべてのゲームに基づいて、自動的に計算されます。



1500年まで-1600以上の普通のプレイヤー-より頻繁に、より良くプレイする人、2000年から-神の震えの脳、心、そしてほとんどの自由時間を与えたプロとサイボーグの殺人者:)



あとがき。



技術的に高度な読者の中には、考えるのに困惑する人もいるでしょう。ドッカーがいるのに、なぜこれが全部正しいのでしょうか。 見つかった画像が私に合わなかったからかもしれません。 この命令は、独自のイメージの基礎として、独自のサーバーをセットアップしたときに作成されました。



ご清聴ありがとうございました。 GL&HF!



PSお願い、文法と文体の間違い-個人的に送ってください、それを必ず修正してください。 エラーおよび/または記事の執筆スタイルのベストプラクティス、Linuxコマンドの使用-コメントを残してください。



All Articles