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

2019年9月30日プライベートarma3,dayz,exile,mod

P_20190929_205331

追記:Scavengeフレームワークのバグ修正

追記:Scavengeフレームワークを試す!

追記:デフォのミッションに手を加え始める

新しいサーバ環境で、構築を初めております。

※鯖味噌サーバは現在休止中で御座います

これまで動いていた、AMD A6-3650は良く頑張ってくれました。良いCPUです(定格2.5Ghz4コアを、3.2Ghz稼働)

想像してたよりも、しっかり稼働してた。ただ、消費電力が物凄かった・・w

(;´∀`)オーバークロックしてたし

P_20190929_210959

新サーバのCPUの、Ryzen5 1400で御座います。

※定格3.2Ghz4コア8スレッド(3.9Ghz位まで回る?)

Passmarkでは、A6-3650の倍の性能があるようで、頼もしい。ケースや電源、SSDなどは流用できますが、メモリだけは現行DDR4になる。

ちょうど、8GBが余ってました。

もちろん、オーバークロックするつもりなので、デカイCPUクーラーを乗せます。

P_20190929_214457

ふぅ~結構時間が掛かってしまった。こういうタイミングで、ケースやファン掃除を始めちゃうからね・・

(;^ω^)

このRyzenはビデオ機能が無いので、別途余っていたビデオカード、Radeon HD5450(ファンレス)を利用します。

こういう低スペックなビデオカードがあると、何かと便利です。ただ、ファンレス型は、精神的に悪いぐらい熱くなりますが。

P_20190929_231302

さっそく、Ubuntu Linux19.04LTSをインストールします。性能がアップしたので、GUI環境も入れちゃう。

これで、実機サーバPCは準備できました。

後は、新しい鯖味噌サーバミッションを構築して、移行すれば、公開可能です。

過去記事と重複した内容になるかもしれませんが、サーバ構築の記録を記事として公開していきます。

20190930005245_1

まず、これをやらないと始まりません。

アイテム湧き場所の設定です。

これが地味作業過ぎて・・・嫌なのです・・。

(;´Д`)

しかも、3D酔いするので、長続きしない。

20190930005644_1

こんなのを、数百箇所も繰り返すのです。

(;^ω^)

image

Exilemod Loot Position CreatorというMODを利用します。32bit版なので、Arma3を32bitで起動しないとダメです。

マップ上の建物オブジェクトを決めたら、1キーを押して始まります(オブジェクト名が表示される)

そしたら、黄色い丸を沸かしたい場所を選んで、2キーを押します。これを数カ所繰り返して、最後に4キーで登録終了です。

※3キーで、自動登録できるらしいが、私は信用してない

マップ上の建物全部を、作業できるはずも無いので、止めたくなったら、5キーを押すと、クリップボード上に設定用のコードが出力されます。

※続きをする場合は、手作業で編集して、これらを合わせる

完全に完成したら、@ExileServer/configで、読み込む様にすれば良いわけです。又は、直に書いちゃうとか。

テクニック

黄色い丸が、アイテム湧きのポジションそのものになるのですが、丸の中心部が実際の位置です。

なので、ポジションを設定する場合は、半丸から若干上を狙った方がよいです。じゃないと、埋もれます。

あと注意するのが、地面が建物オブジェクトで無い場合(特に地面が隆起されるパターン、特に小屋など)は、アイテムが、確実に地面に埋もれます。

なので、確実に、建物オブジェクトの面の上に置いたほうが確実です。

あと、Arma3の仕様上、頭の高さ辺りはアイテムを取る事ができません。せいぜい、腰位の高さまでにした方が良いです。

20190930011115_1

まぁ・・これみて、なんのマップか、分かる人には分かっちゃうんでしょうね。

しかし・・まぁ・・作り込まれたマップです。

開発者さんの情報では、近日に更新が入るそうですけども。

追記:デフォのミッションに手を加え始める

image

Arma3の音楽を聞きながら作業をします。これが有るのと無いのとでは結構モチベが変わりますw

(;^ω^)

ミッションファイルを弄りますので、内部MAP名を調べなきゃいけません。適当にEDENでファイル保存します。

chernarusredux ※MAPがバレる

が内部MAP名というのが分かります。

※Arma3はミッションファイル名で、MAPを切り替えてる

image

適当なバニラミッションPBOを解凍して、デフォのトレーダーやらオブジェクト生成を削ります。

initPlayerLocal.sqf・initServer.sqf

image

これらをごそっと削る。

(;´∀`)だいぶ軽くなるやろう・・て

ミッションの設定もついでに行っておく。

description.ext

んで、今回はScavenge Frameworkというアドオンを試してみようと思ってる。

config.cpp

Exile特有の(膨大な)設定は、今じゃないし、今回はデフォでいいかもしれない。

アイテムが実際に湧くのではなく、タンスなどを直接漁るタイプのやつ、オブジェクト自体が生成される訳ではないので、サーバ負荷的に良いかも・・しれない。

image

ひとまず、サーバが動かなくなるのが怖いので、これで動作するか確認する。

まだ、アドオンが無い状態なので、負荷が凄い低い(マップ上にはAIが一人もいない状態)

(;´∀`)

早速、動かない・・・w

あ・・MODキーの入れ忘れやった(とにかく、これは忘れる)

image

そして、キックされる。

かつて地獄を味わった私は、こんなで慌てない。

おもむろに、Battleyeログを開く。

#20 “ight") then {
player removeWeapon “CHR_FlashLight";
player addWeapon “CHR_FlashLight_Night";
};
} else {
if (((primaryWeaponItem"

うむ、まだスクリプトの類を入れてないし、今導入したMODが引っ掛かったよう。

どのファイルのスクリプトだろう、FlashLightが何やら置換されてる様子。

image

漢は黙って、Battleyeの22番フィルターのaddWeaponに、黙って追記する。

20191005191950_1

めでたく、おニューMAPにインできた。

しかし、Battleyeにキックされまくる・・・。ほぼバニラなのに・・。

フィルター掛けば、その場でキックされなくなるので、効果はあるんだが・・、調べた方がよさそう。

追記:Scavengeフレームワークを試す!

20191005235045_1

車両や建物内のロッカーや机を物色する事ができるScavengeフレームワークというものを試す。

軽い気持ちやったんだが、これが地獄の門の入り口だった事は、知るよしもなかった。

導入は、それほどでも無かった。基本は、スクリプトが稼働するように設定するだけ。

問題は違う所にあった、Battleyeのこやつ。

よく見るBattleyeキックの交わし方は熟知してたんだが・・、ここで新しい技を出してくるとは思わなんだ。

Value Restrictionなる、setvariable系のフィルター、こんなん初めてだわ。

image

名前空間に、値を入れておくsetVariableの部分、ここが引っ掛かってしまってるよう。

setVariable.txt

ここに、該当する変数名を追記するだけで良いようだ。

次のキックは、remoteexec。こんなのも初めてやし・・ググっても情報無いし・・

。゚(゚´Д`゚)゚。

remoteexec.txt

!="exileexpansionserver_system_scavenge_spawnloot.*"

違うPC(主にサーバークライアント間)でのコールなどを行うやつ。Exileなら、頻繁に動いてます。

お隣の記述を見ながら、多分こんな感じだろうと書いたらビンゴッ!!

フィルター文字列は正規表現が書けるので・・”.*”は、0文字以上の何でもヒットという意味になる。

20191006012808_1

なんとか動作。スカベンジして成功すると、アイテムが湧きます。

追記:Scavengeフレームワークのバグ修正

実を言うと、動作不良っぽかった。

上写真を見ると分かるのですが、インベントリが開いてるにも関わらず、アイテムが足元(Ground)に湧いてるのです。

(;^ω^)

なーんとなく場所が分かるので、自前でバグ修正します。

ExileExpansionClient_system_scavenge_createLoot.sqf

の84行に、「uisleep 2;」を追加で治りました。

LootWeaponHolderクラスのオブジェクトが生成される前に、イベントリが開いたからの問題のようです。

なので、(とりあえず)2秒だけ待って開くようにしました。

正常に動作してるようなので、環境によって同様な不具合が出るのかもしれません。

2019年9月30日プライベートarma3,dayz,exile,mod

Posted by nabe