Return to 自作・改造プラグイン置き場

L4D Homerank

[L4D2対応](※仕様上、多分L4D1でも使えます。全く調べてないけど。)

“L4D_homerank” をダウンロード

l4d_homerank_1_1_2.zip – 1894 回のダウンロード – 14.99 KB

Tankに殴られた時の「飛距離」「高さ」「滞空時間」を表示するプラグイン。

無駄にランキング機能付き。ランクインするとメッセージが表示されます。

z_tank_throw_forceが大きくないと面白くないです。

■インストール方法

plugin.l4d_homerankをtranslationsフォルダに、l4d_homerank.smxをpluginsフォルダに入れる

初回起動時にランキングデータファイルとしてsourcemod/data/l4d_homerank.txtを自動作成します。

■cvar

left4dead2/cfg/sourcemod/l4d_homerank.cfgに記述(自動生成)。

CVAR 値の単位 解説
l4d_homerank_disp_cond 0:無効/1:「かつ」/2:「または」 自己記録を表示するための条件を設定する。1:下の3つの条件がすべて当てはまる場合、表示する。2:下の3つの条件が1つでも当てはまる場合、表示する。0:自己記録を表示しない。
l4d_homerank_disp_dist (小数値)[メートル] この距離より長ければ、自己記録を表示する。
l4d_homerank_disp_height (小数値)[メートル] この距離より高ければ、自己記録のメッセージを表示する。
l4d_homerank_disp_time (小数値)[秒] この滞空時間より長ければ、自己記録のメッセージを表示する。
l4d_homerank_ranksize (整数値) ランキングを何位まで保持するかを決める。

コマンド(root用)

コマンド 解説
l4d_homerank_rank_reload ランキングデータをファイルから再読み込みする。
l4d_homerank_rank_flush ランキングデータを強制的にファイルに書き込む。

■注意事項

着地判定をフレーム毎に見てるから、もしかしたら処理が重いかも。

ランキング周りが怪しくて、時々ランキングデータが消えてしまうかも…
着地判定もカバーしきれてないみたい。時々ありえない滞空時間が記録されてたり。

設置直後は、ランキングが更新される頻度が高いため大量のメッセージが流れるので注意。

■既知の問題
ランクインのメッセージ表示で、文字の間になんか謎の空白が入る。多言語メッセージの扱い方が悪い?

スペックにあまり余裕がないサーバーの場合、ランキングのデータが書き込まれるタイミングでラグが起きるかも
→1.1.2でファイルへの書き込みをするタイミングを、リアルタイムからラウンド終了時に変更しました。

■更新履歴

●1.1.2

  • フィナーレの脱出の瞬間に飛んでいる場合、プレイヤーのワープがかかって誤判定が起きるため、測定をやめる処理を追加。
  • ランクデータファイルが存在しない場合は新しく作るようにする処理を、プラグイン起動時だけでなく、ランクデータリロード時にも行うようにした。
  • ランクデータをファイルに書き込むタイミングを、即時ではなくラウンド終了時に変更。書き込み時にラグる時があるため。

●1.1.0

ランキングデータは1.0.0のものをそのまま使えるはず。ただし、ランク保持数を変更した場合はリセットしたほうが良いかも。特に減らした場合。

  • ハング(=プレイヤーが淵にぶら下がっている)状態でTankに殴られると、着地判定が出ないため、異常に長い滞空時間が記録されていた。→記録しないように変更。他にも宙吊り状態になるような他のシチュエーションで殴られると起こるかも。smokerに捕まってるときとか。未対策。
  • l4d_homerank_rank_reloadコマンドのランキングデータの再読み込み動作が正しくなかったのを修正
  • バージョン番号を示すcvarを追加
  • メッセージの多言語対応化
  • ランク保持数が変更できるようになった(l4d_homerank_ranksize)
  • ランクデータのエスケープ文字が読めてなかったのを修正

●1.0.0 初版

1 個のコメント

    • 匿名 on 2013年1月21日 at 12:53
    • 返信

    この発想はなかった

コメントを残す

メールアドレスは公開されません


The reCAPTCHA verification period has expired. Please reload the page.