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

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

image

追記:GAC JSDFというMODがあった

追記:89式いれちゃおうか

追記:リッチテキストの仕様

追記:DMSのAIのウェイポイント

追記:DMSミッションの調整

前記事が長くなり過ぎたので、新記事で(禁断のサーバ改造)

色々と弄ってる、@ExileServerのこのコード(アイテム湧き関連)

ExileServer_system_lootManager_spawnLootInBuilding.sqf

思いついたので、採用するかは別として、つぶやく。

エリア毎に湧き具合を変化できたら、どーだろうか・・と。現在は、全エリアで湧き具合は同一設定。

_lootTableNameに、エリア名が入ってるので、これで判断できる(放射線エリアに入ってたら無条件に”Radiation”)

1スポットの湧き数は、ループに入る前に、_numberOfItemsToSpawnに格納されてます(乱数結果)

if(_lootTableName isEqual “Military”)then{
  _numberOfItemsToSpawn=_numberOfItemsToSpawn+1;
}; (41行)

とかすれば、軍事施設(Military)では、湧きを多めにしたり、とかできる。

VehicleServiceとか、Medicalエリアでは、不自然なアイテム湧きに見えたりする事があるので、意外にアリかも(ガソリンスタンドに、アイテム山盛りとか)

(;´∀`)

image

1スポーン湧きのタイミング、2個同じアイテムは湧かないようになってる。かつ、その分、湧き数が減る。

これが嫌なら、以下を削除です。1アイテム湧かす度に、配列を舐めてるので、若干サーバ負荷を減らせます。

(44行)if !(_itemClassName in _spawnedItemClassNames) then

さらに、アイテム湧きカスタムアイデア

sunOrMoonコマンドで、現在、昼か夜かを判断できます(0:夜/1:昼)

夜はアイテム湧きを豪勢にしたり、ケミカルライトを多めに湧かしたりとか。

追記:DMSミッションの調整

image

ミッションはあまり重要視してなかったので、テコ入れする。チームでインしてきたり、装備が整ったら、挑戦したくなりますもんね。

ソロ志向で考えていたので、かなり難易度を下げてましたが、難易度に幅をもたせる方向で再調整。

DMSでのAIスキルのレベルは4種類ですが、Armaよろしく、めちゃめちゃ細かいスキル調整が可能です。

image

Arma3 AI Skill(公式)

夜間&草むらに隠れてても、確実にヘッショ決めてくる・・というのは避けておきたい・・がw

高難易度でも、全フリせずに、aimingShake(エイムぶれ)を下げ気味でどーだろうか。

(;´∀`)

aimingAccuracy:弾道計算もやってのけちゃう

aimingSpeed:エイムの速度

commanding:グループとの情報共有

courage:部下の士気

general:意思決定

reloadSpeed:リロード速度

spotDistance:ターゲットを見つける能力

spotTime:状況判断速度

aimingShake:エイムのぶれ

※単純翻訳によるものです実際に動作確認したもんじゃない

※近場でAI仲間が死んでも、棒立ちしてるのはspotTimeが低いためかな?他の項目も影響してるっぽいけど

追記:DMSのAIのウェイポイント

image

AIの移動(ウェイポイント)が具体的にどーなってるのか気になったので調べてみた。

@DMS/scripts/fn_SetGroupBehavior.sqf

for “_i" from 0 to 359 step 45 do
{
     private _npos = _pos getPos [_radius,_i];
     private _wp = _group addWaypoint [_npos,5];
     _wp setWaypointType “MOVE";
};

_wp = _group addWaypoint [_pos,0];
_wp setWaypointType “CYCLE";

一部ミッションは違うけども、こうなってます。

ミッション位置を中心に、円形で単純に動いてる(ウェイポイントは45度単位)

難易度に合わせて、その円形のサイズが違う(DMS_AI_WP_Radius_easyとかで設定された値)

実際には地形があるので、綺麗な円形にはならないんでしょうが、若干ばかしランダム要素を、弄りたくなってしまいます。

(;´∀`)

上記コードの以下の部分をこうすれば、汚いランダム円形にはなります(各点、設定値+0~100m外側へランダム)

private _npos = _pos getPos [_radius+ floor(random 100),_i];

最終的には、こうなりました。この方が設定値が生かされるもんね。

private _npos = _pos getPos [floor(_radius/2+random (_radius/2)),_i];

近場の空白地を探したいならfindEmptyPosition、何か適当なランドマークを探したいならselectBestPlacesコマンドが利用できる。

どこでミッションが発生するか分かりようが無いので、上記コマンドの利用は難しいけんども。

あと、あくまでグループ(小隊)のウェイポイントなので、戦闘中とかは無視される。

image

もうちょい考える。

ミッション攻略といえば、400-600m圏内の高所を取るってのが定石な訳で、これを潰しちゃえば・・どうやろうか。。

(;^ω^)すまんなプレーヤー諸君

@DMS/scripts/fn_SetGroupBehavior.sqf(97行追加)

// Find high-position
private _highpos = _pos;
for “_i" from 0 to 359 step 10 do
{
     private _npos = _pos getPos [500,_i];
     private _pt = ASLToATL _npos;
     if(_pt select 2 > _highpos select 2){_highpos=_pt};
};
if((_highpos select 2)-(_pos select 2)>100){_pos = _highpos;};

ウェイポイントを設定する前に、ミッション周囲(500m)の高低差を調べて、基準点から100m以上で最も高い位置をウェイポイントの中心地にします。

※まだ、動作確認してません

追記:リッチテキストの仕様

image

HTMLのような記述で多少自由度の高い表現が可能です。備忘

Structured Text(公式)

DMSのミッション開始時のトースト表示の内容はこれ。これを、Exileサーバに渡してる(ExileServer_system_network_send_broadcast)

format
[
     “<t color=’%1′ size=’%2′ font=’%3′>%4</t><br/><t color=’%5′ size=’%6′ font=’%7′>%8</t>",
     _titleColor,
     DMS_ExileToasts_Title_Size,
     DMS_ExileToasts_Title_Font,
     _messageTitle,
     DMS_ExileToasts_Message_Color,
     DMS_ExileToasts_Message_Size,
     DMS_ExileToasts_Message_Font,
     _message
]

<img image=’red.paa’ />みたいに書けば画像も入れ込める。

追記:89式いれちゃおうか

image

Japan Unit MODを適用して、日本製アサルト89式を導入する事に決めました。

よって、看板を作らないといけない(自分ルール)

(;^ω^)

追記:GAC JSDFというMODがあった

image

89式を使いたくてJapanUnitsというMODだけ見てましたが、他にも「GAC JSDF」というMODを見つけました(400MB、要CBA A3)

こちらは日本人が開発してるので、より確実です。

(;^ω^)

これから、中身をチェックしてみよう。

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

Posted by nabe