SourceMod プログラミング

SourceMod – TF2のハロウィンギフトを自動取得するプラグイン「Halloween Idle」を今更公開しておきます

2016/07/13

20140402-1

2年前のTF2ハロウィンイベントの時に匿名で作ったハロウィンギフト自動取得プラグインを
ブログのネタにでも今更公開しなおしておくことに。
当時急ぎで作ったプラグインを少し修正した程度なので機能的には微妙だけど
特に難しい処理をするわけでもないので、特に問題なくしっかり動いてくれると思います。

アイドルで手に入れたTF2のハロウィンアイテムを売り捌いて5千円ぐらいSteamウォレットを稼く人が結構いたようで、イベント方式が今後も同じであれば僅かな日本人プレイヤーに需要がありそうな感じなもの。
HauntedHalloweenGift-150x150

・プラグインのダウンロードは以下
[TF2] Halloween Idle 1.3.0 (win & linux)
-プラグインのみ入ってます。慣れてる人向け

・サーバーパックのダウンロードは以下
[TF2] Halloween Idle ServerPack (Win)
-MetaMod & SourceMod同封。初心者向け
TF2サーバーの建て方はTF2日本語Wikiを参照のこと (簡単なので大丈夫のはず)
SteamCmdでTF2サーバーを取得した後に「tf」フォルダのある層にコピペして
「tf」フォルダと同層にある「srcds_server_start.bat」を起動するだけで動く。
起動設定は「srcds_server_start.bat」の中を編集のこと
他主要設定は以下に記述。

あとWindowsのみ対応。
Linuxの場合はMetaMod & SourceModをLinux用のに入れなおす必要あり。

・インストール方法
解凍して出たファイルをフォルダごとサーバーの該当ディレクトリにコピー&ペーストするだけで動作します。
(Copy and Paste  :-D)

・動作確認
Metamod 1.11.0-hg909 (Dev版)
SourceMod 1.6.0-hg4317 (Dev版)

・ゲーム仕様変更内容 (デフォルト)
- サーバーJOIN時に名前を「IdleMaster」に強制変更 (Steam名に影響はありません)
(理由:アイドルを良く思わないプレイヤーがいるため匿名化した)
- BLUチームにのみジョイン可能
- コントロールポイント無効化
- High Five装備不可 (サーバーが落ちるバグがあったため)
- ギフト巡回位置を一巡する毎に死亡 (TF2の実績が汚れないように)
- リスポン後に放置すると45秒毎に死亡 (TF2の実績が汚れないように)
- チームに入らず放置した場合3分後にキック (JOIN待ち放置対策)

・チャットコマンド一覧
!fp
(一人称視点に変更)
!tp (三人称視点に変更)
!godmode (ほぼ無敵に変更)
!checkspeed (ギフト出現位置の巡回速度を変更)

< ManualCheck >
!save
(現在いる場所を巡回位置に追加 (127個まで記録可))
!delete (記録した出現位置を全て削除)
!check (手動で記録した出現位置のみ巡回)

< AutoCheck >
!autocheck
(管理者が指定したギフト出現位置を巡回)

< AllCheck >
!allcheck
(手動記録した出現位置+管理者が指定した出現位置を巡回)
・各種設定ファイル
【Main Setting】
cfg\sourcemod\halloween_idle.cfg (自動生成されます。プラグインの主要な設定が可能)

【Teleport Position Setting】
addons\sourcemod\plugins\halloween_idle_pos.txt (管理人が設定できるギフト出現位置記述ファイル)

・同封おまけファイル
以下ファイルをマップによってリネームして使い分けてください!
【各年度イベントマップのギフト出現位置記述ファイル】

addons\sourcemod\plugins内の
halloween_idle_pos(2009年-koth_harvest_event).txt
halloween_idle_pos(2010年-cp_manor_event).txt
halloween_idle_pos(2011年-koth_viaduct_event).txt
halloween_idle_pos(2012年-koth_lakeside_event).txt
halloween_idle_pos(2013年-plr_hightower_event).txt

2009年のはマップにそもそもギフトがでないので記述なし
2010年のはマップにギフトが出るか不明。出現位置が多いため記述してない(白目)
2011年のはギフト出現位置をほぼ網羅してます。取得精度は80~90%程度。
2012年のはギフト出現位置を網羅してます。取得精度は90%以上。
2013年のはギフト出現位置を網羅してます。取得精度は99%以上。(2箇所しかない)

【各年度イベントマップ用server.cfg】
cfg内の
server(2009年-koth_harvest_event).cfg
server(2010年-cp_manor_event).cfg
server(2011年-koth_viaduct_event).cfg
server(2012年-koth_lakeside_event).cfg
server(2013年-plr_hightower_event).cfg

2009年と2013年は特に変わった設定なし。
2010年、2011年、2012年はハロウィンボスの設定を以下のように変更したものです。
サーバー内の人数が1人から出現&ボス超弱体化&出現間隔を超短く
アイドルサーバーなので1人でも暇つぶしにボスを倒したり出来るように。

【その他てきとう】
cfg内の
mapcycle.txt
motd.txt
・・・など
一応添付。適当に編集のこと。

・注意事項
【ハロウィンギフトの出現条件1】
まず初めに、必ず「_registered」のサーバータグを取得すること!
「_registered」タグがないサーバーではギフトはいつまで立っても出ません

「_registered」タグの取得方法は以下に書いてあります。
TF2 Quickplay Overview – Game Servers – Knowledge Base – Steam Support

簡単にいうと、
SteamにログインしてTF2を起動し、コンソール画面に
「cl_gameserver_create_identity」と入力したら出てくる以下の
tf_server_identity_account_id nnnnn
tf_server_identity_token “xxxxx”
Steamアカウントとサーバーを関連付けするID&トークンをコピーして
cfg内にある「server.cfg」に貼り付ければOKです。
server.cfgは同封してあるので、中を探せば該当箇所がすぐ見つかると思います。
上記を行ってサーバーを起動すれば、「_registered」タグがサーバーに付きます。

ちなみにSteamアカウント1つに付きサーバー1つしか関連付けできません!
また、関連付けしたアカウントでゲームをすると関連付けが解除されるようです(?)
さらに、関連付けするアカウントはプレミアムアカウントでないとダメかもしれません(?)

【ハロウィンギフトの出現条件2】
条件1を満たしたサーバーで
さらに中身入りプレイヤーが10人以上ゲームに参加していないとギフトが出現しません。ボットではダメです。

【当プラグインのデフォルト仕様】
初期設定では2013年のハロウィンイベント仕様になっています。
当たり前ですが最新のハロウィンイベントが来た場合
「halloween_idle_pos.txt」を書き直す必要があります。

ボスが出る場合は、ボスの強さを超弱体化してアイドル仕様にすると良いです。
その場合は「server.cfg」にその年度のボス設定値を追記する必要があります。

・補足
TF2公式Wikiの以下ページにギフト出現位置が掲載されている
最新のハロウィンイベントの物もすぐに更新されるので要チェック!
http://wiki.teamfortress.com/wiki/Haunted_Halloween_Gift

超使う層が限定されてるけど自分用のメモとして残しておく。
気づいた人は適当に使ってくだしい。

以上こんな感じ~

スポンサーリンク

-SourceMod, プログラミング