TF2 Tournament Result Recorder v1.0.0

TF2のクラン戦モード(mp_tournament 1)の結果をDBに保存する物をsourcemodのpluginで作ってみました。
シーズン戦なんかで利用されることを想定して作ってみたり。
うちのサーバに導入して動作確認中。

記録される値

  • チーム名(F4で変えられる奴、デフォルトの場合はそのまま記録)
  • チームスコア
  • マップ名
  • 試合終了時間
  • 試合タグ

結果確認ページ

次のURLで参照できます。
Tournament Result Recorder Disp

TODO

  • チーム詳細機能
  • alliedmodsに投げる

利用方法

sourcemodのDB設定のデフォルトを利用します、公式ドキュメントを確認の上設定下さい。

sourcemod 1.2.xでコンパイル。

おまけ

情報参照用のAPIを提供しています(結果ページもそれによって生成しています)。
javascriptの知識が有ればblogパーツだとか何だとかで外部から利用できます。

利用方法

http://withgod.dyndns.org/trecorder/handle.pl
パラメータ

team_name
string 部分一致
map_name
string 部分一致
season_tag
string 部分一致
callback
string jsonpで利用する場合は指定のうえcallback関数名を指定
hasKey
true/false 戻り値にカラム名を含むかどうか
mode
rss,json default json
desc
true/false default false 本APIはデフォルト動作の場合、試合ID(連番)を昇順で返します。最新からほしい場合はdescを指定して下さい。
limit
number default 1000
offset
number default 0
nl2br
true/false default false 改行をbrタグに置換(rss)

Output

後は適当に試して。

クランHighのサイトでの利用例

=High=
Highでの利用方法を記述するので、javascriptの知識の有る方はご自由にどうぞ。
各サイトに寄って微妙に違うので当方では対応不可能です。
jquery 1.3.2 を利用して実装してあります

<script type="text/javascript" src="http://withgod.dyndns.org/trecorder/jquery/jquery-1.3.2.min.js"></script>
<script type="text/javascript">
$.ajax({
	url : "http://withgod.dyndns.org/trecorder/handle.pl",
	dataType: "jsonp",
	data : {
		team_name  : "High",
		map_name   : "",
		season_tag : ""
	},
	success: function(json) {
		$.each(json.reverse(), function(i, elem) {
			if (i == 10) {
				return;
			}
			var text1 = elem.team_1_name + "(" + elem.team_1_score + ")" + " - " + elem.team_2_name + "(" + elem.team_2_score + ")";
			var text2 = elem.result_date;
			$("#trecorder").append($("<dt style=\"text-align: left\">" + text2 + "</dt>"));
			$("#trecorder").append($("<dd style=\"text-align: left; margin-left: 5px\">" + elem.map_name + "</dd>"));
			$("#trecorder").append($("<dd style=\"text-align: left; margin-left: 5px\">" + text1 + "</dd>"));
		});
	},
	error : function() {
		$("#trecorder").append($("<dd>callback error</dd>"));
	}
});
</script>
<dl id="trecorder" style="margin-top: 0px"></dl>