ガベージコレクション

Last-modified: 2009-10-26 (月) 23:17:43

garbage collection

 

設定に関するメモに書き溜めたけど、
新しくページをつくる程ではないという内容の記事をまとめました。
(マニアックすぎるというのも理由の一つですが)
Aichi-Modに関するあらゆるジャンルのメモ、未整理、
今後追求するつもりがない技術的な断片情報の蓄積です。

 
 
  •  
     
     

EventScripts2.0関連

 

ES2.0のスクリプト・デバッグにExceptHookがかなり役立つ。
http://addons.eventscripts.com/addons/view/excepthook
でもこれは開発者用というか、ESに手を染める人でないと不要

 

ESのPythonは日本語のコメントを入れる場合、エンコード指定がいる。

-*- coding: utf-8 -*-

たぶんBOMあり、無しは関係ない(utf-8 or utf-8N)
もちろん日本語を使わなければこの指定自体必要ありません。
参考URL http://www.pythonweb.jp/tutorial/japan/index1.html

 

【 ESでユーザーからの評価が高いPluginを検索する 】
http://addons.eventscripts.com/addons/quicklist

 

【 ESのコマンドリスト 】
http://www.eventscripts.com/pages/Category:Commands

 
  •  

SourceMod関連

 

【 SM Parachuteのモデルデータ 】
SM Pluginのパラシュートでモデルデータに関するエラー(.phyの不足)が出てる
パラシュートを少しなんとかした方が良さそう。エラー報告を無くせれば鯖への負荷を減らせるんじゃないかと。
パラシュートのモデルに.phyに関する設定を追加してあげればいいのだからHammer?XSIModTools?

 
 

【 RoundSound++ 】
https://forums.alliedmods.net/showthread.php?t=87915

  • cstrike\
  • - addons\
  • - - sourcemod\
  • - - - plugins\
  • - - - - RoundSound++.smx
  • - - - scripting\
  • - - - - RoundSound++.sp
  • - sound\
  • - - misc\
  • - - - ctwinnar2.wav
  • - - - ctwinnar3.wav
  • - - - ctwinnar4.wav
  • - - - twinnar.wav
  • - - - twinnar2.wav
  • - - - twinnar3.wav

CVar listが少ない(変更にソースファイル弄る必要がある)。

CVar list:(2つしかない)
sm_roundsound_version - The version of RoundSound++.
sm_roundsound_enable - Sets the RoundSounds++ on or off.

サウンドファイル(.wav or .mp3)の演奏時間規定は10~15秒?
勝利条件を満たした場合(RoundEndで)、勝ったチームに応じた音楽が鳴る。
(\cstrike\sound\misc\に入っているtwinnar.wavやctwinnar.wavなど)
このとき再生するファイルを複数指定できる。(ランダムだけど)

ラウンド終了後の音楽を変えたい場合、
このプラグインのサウンドファイルの指定を変える。
RoundEnd時の再生ファイルはランダムで決定されていて命令は
 new rnd_sound = GetRandomInt(1, 3);
で定義されてる。(この場合1~3=3つのパターンがある)
パターンを増やしたい場合はGetRandomInt(1, 10)とかにして
その後のif(条件分岐)で対応を増やせばよい。
逆に常に一定の音楽ファイルだけを流したい場合は条件分岐を減らせばよい。

 
 

【 SMのコンパイル 】
※SMのプラグインは小さいものだと設定ファイルというものが存在しないものがあります。
※この場合CVARをserver.cfgに記述することで各機能設定が出来ます。
※この記事を書いていた当初、SMはCVarsを「server.cfg」に書けば設定の変更を反映してくれる
※・・・という基本的なことを知らなかったので、Wikiの人は設定ファイルが無い!=脊髄反射で
※値を一つ変えるためにいきなりソースの方を見ていちいちコンパイルするという愚行をやってました。
※そのうちCVarsの存在に気がついたので、これなら素人がコンパイルする必要自体無いやんか・・・
※と悟ったのでコンパイルの手順等は書かなかったのですが、なぜか2chの方でコンパイル方法を
※具体的に書けや的な意見があったので一応メモには書いておきました。
※(たぶんその人もコンパイル自体いらねーよってことを知らなかったのだと思う)

・・・という経緯で書いた記事なんですが、

通常ならsm_GASやsm_parachute、VariableFFなどなど基本的にCVarsをcfgに追書すれば
毎回指定した値を呼び出しくれるので、プラグインの挙動を直接カスタムする意図が無いなら
コンパイルする必要自体ありません。でも自分と同じ初心者で「えーコンパイル?なにそれおいしいの」
という人もやり方は楽なのでプラグインなどに興味ある方、どんどん試してみてください。

 
 

必要なもの:コンパイラ(SM付属のもの):ソースコード(.sp)
コンパイラの場所:cstrike\addons\sourcemod\scripting\compile.exe

 

まずGASを例にデフォルトの設定で実際にコンパイルしてみてください。
コンパイラと同じ場所に「.sp(ソースコード)」たとえばGASだったら「sm_gas.sp」を
置いて次に「compile.exe」をダブルクリックするか、必要なファイルだけ(つまり「sm_gas.sp」)を
「compile.exe」にドラッグ&ドロップしてやれば自動的にSourceMod Batch Compilerが起動します。
コンパイルに成功すると「compiled」というフォルダと「compile.dat」という
ファイルが「cstrike\addons\sourcemod\scripting\」以下に作成されます。
「compile.dat」をテキストエディターで開いてみてください。

 

[E:\cssserver\cstrike\addons\sourcemod\scripting\sm_gas.sp]

 

こういう感じでいま何をコンパイルしたかがリストされてます。
つぎに「\cstrike\addons\sourcemod\scripting\compiled」というフォルダを開きます。
すると「sm_gas.smx」というコンパイル結果ができています。
これをコピーするなりで「\cstrike\addons\sourcemod\plugins」というフォルダに
移動させる。GASの場合これだけでもうSMプラグインとして次回サーバー起動時に
動かせる状態になってるはずです。

 

もう少しガスについて詳しく、こんどはソースコードでの設定の部分を見てみましょう。
■GASを30発ほど撃てるようにする
g_Cvar_GasAmount = CreateConVar("sm_gas_amount", "30", " Number of gas attacks per player at spawn", FCVAR_PLUGIN)//実験用
これが一回のリスポンでプレイヤーは何回ガスを撃てるかを設定する。
g_Cvar_Red = CreateConVar("sm_gas_red", "180", " Amount of red color in gas", FCVAR_PLUGIN)
g_Cvar_Green = CreateConVar("sm_gas_green", "210", " Amount of green color in gas", FCVAR_PLUGIN)
g_Cvar_Blue = CreateConVar("sm_gas_blue", "0", " Amount of blue color in gas", FCVAR_PLUGIN)
g_Cvar_Random = CreateConVar("sm_gas_random", "1", " Make gas color random <1 to enable>", FCVAR_PLUGIN)//カラフル
g_Cvar_Damage = CreateConVar("sm_gas_damage", "200", " Amount of damage that the gas does", FCVAR_PLUGIN)//効果
g_Cvar_Admins = CreateConVar("sm_gas_admins", "0", " Allow Admins only to use Gas", FCVAR_PLUGIN)
g_Cvar_Time = CreateConVar("sm_gas_time", "18.0", " Length of time gas should be active", FCVAR_PLUGIN)
g_Cvar_Enable = CreateConVar("sm_gas_enabled", "1", " Enable/Disable the Gas plugin", FCVAR_PLUGIN)
g_Cvar_Delay = CreateConVar("sm_gas_delay", "20", " Delay between spawning and making gas available", FCVAR_PLUGIN)
g_Cvar_Msg = CreateConVar("sm_gas_showmessages", "1", " Show gas messages", FCVAR_PLUGIN)
g_Cvar_Radius = CreateConVar("sm_gas_radius", "80", " Radius of gas cloud", FCVAR_PLUGIN)
g_Cvar_Whoosh = CreateConVar("sm_gas_launchmethod", "0", " 0=Launched by air 1=Instant", FCVAR_PLUGIN)//お好みの方を
あとは面倒なので実験用の設定を張っておきます。
フォローできる人がいたら自分の代わりに各項目について説明を付け加えてあげてください。

 

webコンパイラという便利なのか不便なのかよくわからないものもあります。
これはあえて使うものでもないです。(試すだけなら最初はおもしろい)