【GAME】ARMA3 EXILE MODサーバの旅その67
追記:続き再開
追記:ゾンビアイテム格納場所:追記
追記:ゾンビその他改造
追記:看板とか・・
追記:ゾンビ爆発ランダム遅延
細かい調整に入っております。
ソロプレー志向なので、アイテム要素を多分に弄っております。
ゾンビが出るサーバなので、サーバMODであるExileZの改造に入ります(ゾンビスポーン用アドオン)
うちのゾンビは、ちょっと違うぞ。
(;^ω^)
ですが、動作のほとんどはRyanZombie MODで実現されているので、肝心なところは改造できないんですけどもね。
ゾンビ所持アイテム
ゾンビが生成される部分はここ。
ExileZ/scripts/SpawnZombie.sqf
所持アイテムがベストに1個だけという形になってるので、これを複数個ランダムにしようと思います。
_zombie addItemToVest call _lootGroup;
の部分を。
for “_i" from 0 to round(random 4) do {
_zombie addItemToVest call _lootGroup;
}
とします。これで、0~3個ランダムとなります。
追記:格納場所(追記:服は無しだった)
そういえば、裸のゾンビは居ないので、ベストだけじゃなくて、服にもランダムで格納しちゃいましょう。上記を、これに変更するだけです。
if(random 1 >0.5)then{
_zombie addItemToVest call _lootGroup;
}else{
_zombie addItemToUniform call _lootGroup;
};
追記:ゾンビは服を着ていない事になってた。よって、このコードは意味無しッ!
爆発物をイジる
ゾンビを倒すと確率でグレネードが起爆するトラップがありますが・・。
これを、スモークグレネードだったりする、プチどっきりを入れ込みます。
ExileZ/scripts/MPKilled.sqf
コードの最後の方。
EZM_ExplosiveType createvehicle position _unit;
これを。
(selectRandom EZM_ExplosiveType) createvehicle position _unit;
とします。
EZM_ExplosiveTypeの設定項目は配列にする必要があります。こんな感じになります。
EZM_ExplosiveType=[“mini_Grenade","SmokeShell","SmokeShellRed","SmokeShellYellow"];
キル時の表示を無効にする
ゾンビを倒した時に表示されるスコア、設定で無効にできないのがこれ。
ExileZ/scripts/MPKilled.sqf
の、124行辺り。
[_playerObj, “showFragRequest", [_killerRespectPoints]] call ExileServer_system_network_send_to;
これが表示のところですので、これをコメントアウトします。
建物の中からスポーンする
屋外でのみ湧いてるようなので、建物の中でも沸かせたい。
ExileZ/scripts/GetRandomLocation.sqf
ここで、スポーン場所を決めてるようです。
ExileZ/scripts/VerifyLocation.sqf
その後、ここで、スポーン場所のチェックを行ってる(トレーダー付近とか、ブラックリストとか)
追記:続き再開
プライベートで用事が出来たので、作業ができなかった。んで、続き。
GetRandomLocation内で、ランダムで場所が決められます(湧き範囲考慮)
ここに、近くに建物があった場合に、建物圏内から湧くようにします。
最後の方のここを改造。
_position = _position findEmptyPosition [0,10,"Man"];
これを。
private [“_list","_pos","_cnt"];
_list = _position nearObjects [“House",10];
_cnt = count _list;
if(_cnt > 0)then{
_pos = (_list select (floor(random _cnt))) buildingPos 0;
if((_pos select 0) > 0)then{
_position = ASLToATL(AGLToASL(_pos));
};
}else{
// clear walls and floors
_position = _position findEmptyPosition [0,10,"Man"];
};
に変更(追記:ちょっと修正)
※まだテストしてません(追記:エラー無し確認)
ランダム地点から10m範囲に建物があったら、ランダムで建物が選ばれて、そこから湧きます。建物内番号は0に固定しました(入り口付近になるかと・・)
プレーヤー認識距離設定外だった場合に、建物内に棒立ち状態のはずです。つまり・・、ドアを開けた途端にゾンビに遭遇・・とかw
(;^ω^)
追記:ゾンビ爆発ランダム遅延
爆発する際に、秒数を設定できますが、これをランダムにしてしまうのも、アリ・・かと。
ExileZ/scripts/MPKilled.sqf
最後の方のこれを・・。
sleep EZM_ExplosionDelay;
これに変更します。設定秒が最大秒となって、ランダムとなります。最小値は+1の部分を弄ってください。
sleep floor((random EZM_ExplosionDelay)+1);
追記:ゾンビその他改造
ゾンビ毎にライフやアタック速度が違っていたら・・と調べていたら、これは出来ないらしい。
Ryanzombieshealth/Ryanzombiesattackspeed/Ryanzombiesattackdistance/Ryanzombiesattackstrenthなどなど
グローバル変数に格納する形で、値を渡してるので、全体の設定となってしまう。
追記:看板とか・・
これ、ミッションファイルの中身なんですけども・・。
(;´∀`)
こんな事やってるから、ミッションファイルがダイエットできへんねん。
分かる人には分かる、このロゴマークッ!(北日本限定)
もっと凝るつもりだったが、この辺で勘弁願いたい。いやいや、凝るとこ間違ってる。