【GAME】ARMA3 EXILE MODサーバの旅その65
なんなんですかね。。動いたり動かなかったり・・。
。゚(゚´Д`゚)゚。
根本的に見直すため、1個イジっては挙動を確かめる地道な作業をしておりますい。
確かめていくうちに、(設定がおかしいのは勿論ですが)、何か根本的なやつがおかしいっぽい空気を察してきました。
動く付属バニラExile.Altisミッションを交互に起動して、何が違うのか、もうちょっと時間が掛かりそうです。
(;´∀`)
今、直近のトラブルはこれ。
14:59:34 nabe uses modified data file
14:59:34 BattlEye Server: Player #0 nabe (*****:2304) connected
14:59:34 Player nabe connecting.
14:59:35 BattlEye Server: Connected to BE Master
14:59:44 BEServer::finishDestroyPlayer(********): users.get failed
ログにこれが書き込まれて、Arma3がロード画面フリーズになってしまう。Battleye関連なんだろうけども。検討つかん。
Battleyeを無効にすると、あっけなくインできるんだけどもねぇ・・・。
(;´Д`)・・・
んで、(今さら)分かった事を、随時書きなぐっていく(Linux Dedicated)
マップの選択
今までミッションでのマップの選択はどこに記述するのか明確に分かって無かった(これまで運良く動いてた訳)
めっちゃ単純やった。
Exile.Takistan.pbo
ファイル名の後ろに"."に続けてマップ名を書くだけだった。これまで、EDENでファイル保存してから編集してたんだけども。バイナリコードでどこかに保存されてるんかと、思ってた。
MODの羅列
mods=@cup_terrains_core\;@cup_terrains_maps\;@zombies_and_demons\;@exile
ちゃんと調べてなかった自分が悪いんですが、正確にはこう書かなきゃいけないらしい(Linuxのばやい、セミコロンはシェルで特別な意味を持つ)
mods=”@cup_terrains_core;@cup_terrains_maps;@zombies_and_demons;@exile”
上:これは今までの悪い例。以前はこれでも動いてたんですが。
MODがシグネチャ見て正常に読まれてるように見えても、意味不明な挙動・エラーのまま動作し続ける事があるので、結構注意です(何度も遭遇)
BEserver.cfgのファイル名
このファイルももれなく、小文字にしなきゃいけない。
Battleyeが認識すると、beserver_active_5fc33ed1.cfgこんなファイル名に変更される。
bepathの書き方
確認した結果だけを。arma3serverコマンドへの引数として渡す、”-bepath”にしっかりパスを書かないと駄目みたい。
ネット上のチュートリアルだと、無記述が多いみたいだったので確認してみた。ちなみに、ログ上には何も出力されないので確認出来ない。
追記:
公式見ると、3パターンあり、-bepathの他、データパス内、profileの場所の順になるようです。
Linux版コマンドライン
Linux版ではいくつかは無効のようです。-profiles、-hugepagesなど。
-profilesが使えないとプロファイルはどーなる?と気になってしまいますが、個別指定ができないだけで、ファイル位置が決まってる(設定が散らばって気持ち悪いですが)
(ユーザー)/.local/share/Arma 3
(ユーザー)/.local/share/Arma 3 ‐ Other Profiles
これらのディレクトリを作成しとくと、プロファイルが自動で生成される。
メモリ使用量(参考)
アドイン無しバニラのExile.Altisを実行した際のものです(CUP MODの読み込み有り。TerrainsとCore)
ミッションスタート後1.56GBを消費。
32bit版なので少なめだろうと想定していただけに、結構いってます。
8GB積んでるので余裕だと思ってRAMDISKやら多めにしてただけに、スワップが発生していた。実稼働となると、他MODやスクリプト、MySQLが動き出すので、さらに消費する。
(;^ω^)
MODの読み込みを最低限(@Exile/@ExileServerのみ)で確認してみた所、ほぼ同様の1.52GBでした。
やった事&確認した事のリスト。
イマイチ挙動が変わらんけども、作業した記録。インできたり出来なかったり、イン出来たとしてもBattlEye: Script Restrictionエラーが発生する。ここは、あえてBEフィルターを追加しないで対処を考える(とにかく原因が知りたい)
battleyeホルダー内スクリプトファイルの改行コードをLFに変更。
server/config.cfgの変更。
localClient[] = {“192.168.1.*"}; 帯域制限が掛からない書き方間違って解釈してた、設定不要
upnp=1; 1の方がいいよね?
verifySignatures=0; しばらくは0で確認してみる(高速化)
requiredSecureId=1; よく分からないけども記述
doubleIdDetected="kick (_this select 0)";の方がいいよね
allowedLoadFileExtensions[]とallowedPreprocessFileExtensions[] 手当たり次第読み込み系ファイル拡張子を記述
arma3serverのエラー出力を別ログに出力したが、特にヒントは無かった。
-checkSignaturesを確認のため取ってみる。
-debugを追加してみたが、特に変わらないような。。
-ip=**.**.**.** をあえて書いてみる(挙動が変わったような)
クライアント側の起動オプションを変更しながら、インしてみる(特に変わらない)
mission.sqmの書き方が丸っと違うのを確認。
自分のは、EDENが出力したまんまを利用してたんですが、ExileServer付属のモノを見ると書き方が違う。
付属のモノはシンプルになってる。
(;´Д`)直すか・・
下:俺のやつ。
class Entities{
items=27;
class Item0{
dataType="Group";
side="Independent";
class Entities
{
items=100;
class Item0
{
dataType="Object";
class PositionInfo
{
position[]={0,0,0};
};
side="Independent";
flags=7;
class Attributes
{
isPlayer=1;
};
id=1;
type="Exile_Unit_GhostPlayer";
atlOffset=-294.48129;
};
下:ExileServer付属のやつ。
class Item0
{
position[]={13237.161,20.660374,11705.338};
special="NONE";
id=0;
side="GUER";
vehicle="Exile_Unit_GhostPlayer";
player="PLAY CDG";
leader=1;
skill=0.60000002;
};
余談ですけども。。Arma3って、1コアに処理が集中するようで、上写真、見ての通りです。
Core i7とかRyzen2700とかの多コアは意味が無いっちゅー事になります。
Pentium位で、5Ghzで回るCPUとかあればベストでしょうね。そんな製品無いよ、・・と思ったら、過去に1個だけあったよ。。。
Pentium G3258 & Z87/87チップセット
(;´∀`)唯一のロックフリー
mission.sqmを書き直したら、おわっ、久々にインできた。
しかし、なぜだ。原因が分からないぞ。書き直しが原因とは思えない。
だが、武器を拾ったとたんBattlEye Restrictionで落ちてしまった。
BattlEye Server: Script Log: #0 nabe (20c31840bede2635cad1821a7dd7bf3b) – #31 “ion) <= _range}) then
{
_players pushBack _x;
};
}
forEach allPlayers;
_players"
この情報を、フィルターに書き足せば良いんだが、サーバアドイン系やスクリプトは全て無効にしてるので、バニラ状態なんですよねぇ・・。
もうちょっと基本に立ち返ってみてみよう。