キモブロ

Please spy check please, Fucking retard

SourceMOD

metamod.vdfってゲームに合わせて生成する必要ないよん

っていうのを長らく書き忘れてた。vaacにはなんかの機会のときに言った記憶がある。 Sushi鯖作ってて気づいたんだけど書き方を気をつければ metamod.vdf はいろんなゲームで使い回せる。 metamod.vdf作成時に普通はこのサイトで作るよね。 http://www.source…

MvM鯖プレイ回数統計

こんな感じにした 'select * from game_stats;' +-----+------------------------------+------+--------+--------+ | id | map_code | win | played | loaded | +-----+------------------------------+------+--------+--------+ | 43 | mvm_diverge_b4 | …

offset

offset調べるところまで出来た。要はこのoffsetを利用した単純な変数へのアクセスについては、いままでGetEntPropとかでやってたことだな関数呼び出しについてはそれだけじゃだめで、レジスタにスタック積んでからコールしないとだめだよと(あたりまえだけど…

外部コマンド実行できるSourceMod Extension作った

https://github.com/kimoto/sourcemod-RunSystemCommand 概要 これを入れるとSourcePawn用のnative関数であるRunSystemCommandが追加されます。これを使うと外部コマンドが実行できるようになります。外部コマンドってのはいわゆるechoとかlsとかシェルスク…

あー、point_broadcastingclientcommandエンティティ使えば、マップからすべてのプレイヤーのinterpを設定するみたいなこともできそうだなぁ。

まぁSourceMODでやればいいことなんだけど、できそうだなぁと思った。 https://developer.valvesoftware.com/wiki/Point_broadcastclientcommand

light_environment

を動的にいじることでマップの天気を自由に変化させられるなぁ。SourceMODでマップの天気変えられるじゃん。東京の天気に合わせてdustbowlの天気が変わるみたいなサーバーを作ってみたい。L4DだとまさにそういうMODがあった http://forums.alliedmods.net/sh…

Logic系エンティティメモ

logic系のエンティティを見ていくとチューリング完全であるように見える logic_compare 比較 logic_timer 繰り返し logic_case, logic_branch 条件分岐 詳細 logic_auto SourceMODっぽいタイミングでイベント発行できる OnMapSpawn logic_branch (IF) 条件分…

SourceMODでどうやってプレイヤーの位置にエフェクトを生成するか

TF2を例にして簡単に説明を。まずTF2で使えるParticle一覧はこれ。Particle = Effect https://developer.valvesoftware.com/wiki/List_of_TF2_Particles unusual_* 系統はいわゆるアンユージュアルの帽子のエフェクト。これを世界に出現させるには、info_par…

L4D2みたいに味方の位置が壁透けて見えるようになるプラグインを作った

MvMとかだと味方の位置がわかったほうが戦略的に楽しめるかなと思ったのでとりあえず試作。味方がダメージを受け、ヘルスが減るとオーラの色が赤色になっていく。このへんもl4dと一緒 https://github.com/kimoto/sourcemod-plugins/blob/master/scripting/tf…

newとdeclの違い

newで変数を定義すると0で初期化されるが、declであれば初期化されない。これはパフォーマンスのための区別として提供されている。どうせ何かの値に初期化するのであればdeclを使い、そうでなければnewを使え!!

SourcePawnの関数の種類について

native 内部関数の提供、C++でextension作った時に提供される関数 そのかんすうのコードの実態がSourcePawnになく、C++で実装してるよみたいなニュアンスを処理系に伝えるためのもの public 他のスクリプトファイルから見える関数 normal 通常の関数(only yo…

指定したコマンドからチートフラグを除去するSourceModプラグインを作った

ソースコード https://github.com/kimoto/sourcemod-plugins/blob/master/scripting/uncheat.sp 使い方 インストールすると以下のコマンドが使えるように鳴る sm_uncheat コマンド名コマンド名で指定したコマンドからチートフラグ(FCVAR_CHEAT)を除去して、s…

Plugin_Continue, Handled, Stopの違い

RegConsoleCmdでコマンドをフックするときに、コールバック関数での返却値によって挙動が変わる。return Plugin_Continue; したときはそのままもともとのcmdを実行 return Plugin_Handled; したときはもともとのcmdは実行されない return Plugin_Stop; は、…

SourceModに最初から入ってるプラグイン調べ

basechat.smx チャットに関する拡張機能。おもにAdmin向け。正直いらんなぁこれ sm_psay sm_hsay sm_chat sm_msay!sm_say とかみたいなチャットトリガーもインストールされる basevote.smx 投票関係、これもいらんな。Custom Vote使ってるし sm_votemap sm_v…

観戦者時にカメラを自在に操作するためのSourceMODプラグインを作った

概要 おもに大会の配信者向けのプラグインで、あらかじめ決めた場所にカメラを簡単に移動させることができるようになります。インストールすると以下のコマンドが使えるようになります spec_getpos 現在の自身の位置と視点にジャンプするためのコマンド文字…

SourceMODに組み込まれているSourcePawn言語のPreprocessorには、Stringize Operatorがない

Stringize Operator とは、C言語のプリプロセッサでいうと #x のことである。ダブルクォートでかこって文字列化してくれる #define hoge(x) #xこの例だとhoge(piyo)と書くと "piyo" になるやつ。 SourcePawnのPreprocessorの仕様を読むと、Stringize Operato…

【重要】Round restart投票が成功した時に死亡してたっぽい問題を修正しました【緊急】

アップデートおなしゃす tf_mvm_wave_hostname https://github.com/kimoto/sourcemod-tf2_mvm_wave_hostname/tarball/master tf_mvm_wave_restart https://github.com/kimoto/sourcemod-tf2_mvm_wave_restart/tarball/master

TF2のメモリを楽に解析する方法

SourceMOD必須IDAとかOllyDbgとかデバッガ使って調べようかなと思ってたら(VAC BANのリスクあり)、普通にsoucemodでそういう機能が提供されてたのでメモ。以下のコマンドを実行することでメモリ上のオブジェクトの座標をdumpして簡単に調べることが出来る sm…

SourceMOD Plugin(smx)を配布する場合はソースコードを開示しなければならない

SourceMDOの利用規約(ライセンス)によれば http://www.sourcemod.net/license.php Q: Is SourceMod open source? Yes. Q: What license do plugins/extensions fall under? Derivative works must be under the GPL, version 3. There are compatibility exp…

SourceMODでサーバーから人がいなくなった時にサーバーを再起動してくれるプラグインを作った

利用用途 サーバーの設定変えたから再起動したいけど、プレイ中の人がいて今再起動すると試合途中出終わっちゃうしマジ申し訳ないし、だけど明日仕事だからさっさと寝たいぽよ〜ってときに server_quit_next_empty ってコマンド実行すると、サーバーから人が…