【GAME】ARMA3 EXILE MODサーバの旅その67

2018年10月29日プライベートarma3,dayz,exile,mod,server

20181029181843_1

追記:続き再開

追記:ゾンビアイテム格納場所:追記

追記:ゾンビその他改造

追記:看板とか・・

追記:ゾンビ爆発ランダム遅延

細かい調整に入っております。

ソロプレー志向なので、アイテム要素を多分に弄っております。

image

ゾンビが出るサーバなので、サーバ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);

追記:ゾンビその他改造

image

ゾンビ毎にライフやアタック速度が違っていたら・・と調べていたら、これは出来ないらしい。

Ryanzombieshealth/Ryanzombiesattackspeed/Ryanzombiesattackdistance/Ryanzombiesattackstrenthなどなど

グローバル変数に格納する形で、値を渡してるので、全体の設定となってしまう。

追記:看板とか・・

image

これ、ミッションファイルの中身なんですけども・・。

(;´∀`)

こんな事やってるから、ミッションファイルがダイエットできへんねん。

b26

分かる人には分かる、このロゴマークッ!(北日本限定)

もっと凝るつもりだったが、この辺で勘弁願いたい。いやいや、凝るとこ間違ってる。

2018年10月29日プライベートarma3,dayz,exile,mod,server

Posted by nabe