DAsサーバーで使用しているProconRulzスクリプトの紹介
※サーバーのメッセージを取得可能に要改造。詳しくはこちらの記事を参照して下さい。
ゲームサーバーの自動再起動
毎朝6:00から6:10の間にサーバー内にプレイヤーがいない場合、ゲームサーバーを再起動するコマンドを出力します。
1 2 3 4 5 |
On Say;Text /tlpm;If Server == %p%;If %ts1% + %ts2% == 0; If %ini_server_shutdown% == 1;If 06:00:00 <= %hms%;If 06:10:00 >= %hms%;Set %ini_server_shutdown% 2;Set %ini_server_rules% 0;Set %ini_server_nextrule% 0;Set %ini_server_nextpreset/4% 0;Set %ini_server_preset/4% 0;Set %ini_server_votereportcount% 0;Set %ini_server_/1% 0;Set %ini_server_/2% 0;Set %ini_server_/3% 0;Set %ini_server_/4% 0;Set %ini_server_vote[1]% 0;Set %ini_server_vote[2]% 0;Set %ini_server_vote[3]% 0;Set %ini_server_vote[4]% 0;Exec admin.shutDown; If %ini_server_shutdown% == 0;If 06:00:00 <= %hms%;If 06:10:00 >= %hms%;Set %ini_server_shutdown% 1; If 06:00:00 >= %hms%;Set %ini_server_shutdown% 0; If 06:10:00 <= %hms%;Set %ini_server_shutdown% 0; |
分隊員募集中コマンド
分隊員を募集するコマンド。※集まるかどうかは知りません。
1 |
On Say;Text !sqd,!squad;TeamSay PLEASE JOIN %ps% %p% SQUAD! |
チケット数変更スクリプト
ラウンド終了時のサーバー内プレイヤー数により次のラウンドのチケット数を変更するスクリプト。32人未満の場合は1200チケット(150%)、32人以上56人未満の場合は800チケット(100%)、56人以上の場合は680チケット(85%)。
1 2 3 4 |
On RoundOver; If %ts1% + %ts2% >= 56;Exec vars.gameModeCounter 85; If %ts1% + %ts2% < 56;If %ts1% + %ts2% >= 32;Exec vars.gameModeCounter 100; If %ts1% + %ts2% < 32;Exec vars.gameModeCounter 150; |
車両復活遅延時間変更スクリプト
ラウンド途中のサーバー内プレイヤー数により次のラウンドの車両復活遅延時間を変更するスクリプト。どちらかのチームのチケット数が300以下になり40人未満の場合は25%(最速の設定値)、40人以上の場合は100%(標準値)。
1 2 3 4 5 |
On Say;Text /tlpm0;If %p% == Server; If %server_execvsd% != 1;If %server_team_score[1]% <= 300;If %ts1% + %ts2% >= 40;Exec vars.vehicleSpawnDelay 100;Set %server_execvsd% 1; If %server_execvsd% != 1;If %server_team_score[2]% <= 300;If %ts1% + %ts2% >= 40;Exec vars.vehicleSpawnDelay 100;Set %server_execvsd% 1; If %server_execvsd% != 1;If %server_team_score[1]% <= 300;If %ts1% + %ts2% < 40;Exec vars.vehicleSpawnDelay 25;Set %server_execvsd% 1; If %server_execvsd% != 1;If %server_team_score[2]% <= 300;If %ts1% + %ts2% < 40;Exec vars.vehicleSpawnDelay 25;Set %server_execvsd% 1; |
AFKキック時間変更スクリプト
無操作プレイヤーをキックする時間を変更するスクリプト。ゲームサーバー標準の機能を利用。60人以上になるまではAFKキック無効、60人以上で300秒(5分)に変更。300秒に変更後は48人未満になるまで継続。48人未満になった場合はAFKキックを無効化。
1 2 3 |
On Spawn; If %ini_server_disableidlekick% != 1;If %ts1% + %ts2% >= 60;Exec vars.idleTimeout 300;Set %ini_server_disableidlekick% 1; If %ini_server_disableidlekick% == 1;If %ts1% + %ts2% < 48;Exec vars.idleTimeout 86400;Set %ini_server_disableidlekick% 0; |
再ジョイン制限
有利ジョイナー対策。サーバー退出時に300秒の一時ban。※DDoSで落ちた場合、エライことになるので停止中。
1 |
On Leave;If %ts1% + %ts2% >= 40;TempBan 300 %p%, Please wait rejoin a little more time...; |
none分隊制限
分隊に所属しないプレイヤーを管理者キルするスクリプト。兵器の独り占めやボッチなら不正がバレないと思っている糞の対策。
1 2 |
On Spawn;If %psk% == 0;Kill 100;PlayerBoth %p%, None squad is NOT allowed. Please join somewhere in the squad.; On Kill;If %psk% == 0;Kill 100;PlayerBoth %p%, None squad is NOT allowed. Please join somewhere in the squad.; |