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

2018年3月4日プライベートarma3,exile,mod,server

追記:車両湧き独自システム結果

追記:車両湧き独自システム

追記:車両湧きの仕組み

追記:アイテム湧き修正結果

追記:ネットがゲロ遅い

追記:アイテム湧きが許せない

まだ、サーバ公開はしておりませんが、たまに立ち上げては、Linux OS自体やSteamのアップデートをしてました。

・・が、先日、なぜかエラーでアップデートできない。

(;´Д`) ん、もう・・なんでやねん。

利用してたOSは、Ubuntu 17.04だったのですが、サポートが終了してしまったようでした(現在は、17.10)

ちなみに、Ubuntuは、来月4月にロングサポート版(LTS)が出るんですよね。。

本番は、このUbuntu18.04LTSで公開する予定です。

do-release-upgradeコマンドで、17.10に上げる事ができるようなのですが、正直、ゼロから構築したい気分。。ダメもとで、実行してみる。

いつもSSHでリモート操作してるんですが、流石に、OSアップデートは、ローカルで実行した方が良いようです。モニターとキーボードを接続。

時間が掛かるので、スタクラ2でマッタリ待ちます。

(;^ω^)

GUIパッケージを入れてないお陰が、30分程度でした。

これでOSその他、新しくなりました。

Arma3サーバ位しか入ってないシンプル過ぎる中身ですが、一通り動作を確認します。

SteamコマンドでArma3を更新しておきます。

利用してるMOD関連のアップデートは無かったようです。

いまさら気付いたTOPコマンドのCPU%の数字

(;´Д`)

100を超えるんですよね。前々から気になってたんですよ。なので、目安程度に考えてたんですが。。

”1”キーを押すと分かる、コア使用率の合算値だったんですね。これ

(;^ω^)

1時間ほど放っといて、様子をみたところ、現在の鯖味噌サーバ環境では、100~150辺りで推移してます。

AIは最大150にしてたので、この辺りが、このPCでの境目のようです。

ログ見ると、初期化時にエラーが出てる。キーが合ってない・・と。

CUP MOD関連のようです。

開発用PCの方と見比べてみると、ファイル数が全然違う。

現在はバージョン1.4.2なのですが、1.4.1よりもファイル数が激減してるんですね。

単純に上書きコピーしたため、キーと合わないファイルでエラーが出てたようでした。

インできる事も確認しました。うむ

(;´∀`)

写真ではもう、死にそうなんですけどもね。AK74で一発もらっちゃった(ライフ16)

CPU負荷の大きな変動も無いようで安心。
追記:アイテム湧きが許せない

ずーと前から気になっていたのを、今さっき思い出しました。

(;^ω^)

アイテム湧きの際にですね。

Exile_Item_MountainDupe

2個セットで湧くじゃないですか。1個でええんです。

あと・・、武器湧きもですッ!!マガジンもセットで湧いてるなんて許せないッ!!

(;´∀`) DayZライクに、武器と弾は別湧きにしたい。武器の知識も必要だなんて・・素敵なサバイバル

ExileServerのコードの、以下に書かれてるようです。

ExileServer_system_lootManager_spawnLootInBuilding.sqf

60行には、マウンテンデュープが2個湧くと。これを1に書き換えりゃいいはず。

lootHolder addMagazineCargoGlobal [_itemClassName, 2];

80行には、武器のマガジン湧きが。デフォだと2~4つになってます。

_numberOfMagazines = 2 + floor(random 3);

マガジン湧きを無しにするなら、0でも通ると思いますが、上のIF文で囲われた全部不要です。

まだ、テストしてませんが、弄るならココですよ。しかしながら、もうすぐ1.0.4なので、オススメしませんけどもw

m9( ゚д゚)テストしてへんッ

追記:アイテム湧き修正結果

はい、上記の修正で、見事マガジン湧きセットが無くなりました。

武器だけの湧きとなります。

プレーヤーには武器の知識が必要になる、とても素敵な環境となりました。

(;^ω^)

しまってたラズパイ2を出して、OSを入れ込みながら、ExileServerコードを見てる。

(;´Д`)なんちゅー週末だ

Rasbian OS何か色々変わりましたね。JAVA、PythonとかのIDE開発環境がデフォで入ってるんですね。

以前は電子工作一色な感じだったのに。

GUIが今風のLinuxで、ほんと常用でもいけそうです。否、Youtube視聴は厳しかったな。。やっぱ、ラズパイ3だと2倍速いというが。。

なにげに、更新かけたら、死ぬほど溜まってやがった。終わらねぇ・・ぞ、これ。

GW-USEco300(11nアンテナ2本で300Mbps)というWifi子機は、自動認識して無線接続もできたんだけども、なんか不安定。ドライバを手動で当てなきゃダメなんだろうか。

さて、このラズパイ何かに使えるかな。Arma3サーバのLANハブのLEDとか、HDDアクセスランプを配信しちゃう?(超無価値)

追記:ネットがゲロ遅い

前にも書きましたが、いま契約してるi-revoというISPで(契約して10年近く)、サポートに連絡してもラチがあかず、もう引越しをします。

固定IPが付いてて激安だったのに、非常に残念です。

。゚(゚´Д`゚)゚。

最低600Kbpsですよ、オンラインゲームはラグ過ぎてプレーできないし、Youtube視聴すら不可能なレベルです。っていうか、普通のウェブも見れません。

Yahooのトップページを1分位掛かって表示するレベルですw

(´;ω;`)

2ヶ月前までは、そうじゃなかったのに。。空いてる時間帯は、普通に20~30Mbps出てるんです。

固定IPが付いてて、それなりに速いところを吟味中。

追記:車両湧きの仕組み

ExileServer側の車両湧きの動作がどうにも気に入らない。

MAP外に湧いたりもするんですよ。

グリッド(距離)を設定できますが、これは、MAP幅をこれでXY軸毎割った数だけ、湧き場所が決められます(これに場所毎に湧き量を掛ける)

10Km四方のマップで、グリッド3Kmなら、MAPを0/3/6/9Km毎、縦横毎4x4箇所が湧きポイントとなります。

※ExileServer_world_spawnVehicles.sqf

そこから、BIS_fnc_findSafePosによって、安全な湧き場所を探して、最終的な湧き場所が決められます。

ここで問題なのが、BIS_fnc_findSafePosへ渡す引数なのです。

_positionReal = [_position, 25, _gridSize, 5, 0 , 1 , 0 , _spawnedPositions] call BIS_fnc_findSafePos;

※指定場所から、25m~グリッドmの距離で安全な場所をランダムで探す(5mの空間)

の様に書かれてるんですが、場所から_gridSize分だけの広い範囲で探しちゃってるんですよね。これだと、[0,0]の時、普通にMAP外(左・下側)に出ちゃいます(MAP左下基点座標)

※MAP周囲が海だったら問題無いです

なので・・。

28行:for “_xSize" from 0 to _mapsizeX step _gridSize do

31行:for “_ySize" from 0 to _mapsizeY step _gridSize do

この"0″の部分を、”_gridSize”に書き換えちゃえばOKでしょう。_mapsizeXの部分も、”_mapsizeX-_gridSize”とすれば、完全にMAP内に入ります。

もうすぐ、1.0.4ですが、コードはほとんど一緒でしょう。

追記:車両湧き独自システム

やっぱ、自分色に染めたくなるものですよねぇ。。。

(;´∀`)

やっちゃいました。

MAP上にランダムで車が湧くというのも、ずっと気になってました。

これを、街中や周囲に沸かせたいと、ずっと思ってました。

その方が、リアリティがあるじゃないですか。

乗り捨てていった感を出したいんですよ。または、「他プレーヤーが町に居るかも?」と思わせられる訳です。

んで、修正方法ですが、可能な限り、弄る部分を少なくする方針です。2箇所です。Server元々の設定値もそのまま利用できます。

ExileServer_world_spawnVehicles.sqf

38行から:※_spawnedPositions = [];の下行

//*

_locations = nearestLocations [_position, [“NameVillage","NameCity","NameCityCapital"], _gridSize * 2];
if(count _locations > 0) then {
    _location = selectRandom _locations;
    _temppos = position _location;
    _position = [_temppos select 0, _temppos select 1, _temppos select 2];
};

これを追加します。

そして、上記事で触れた場所(数行下)を書き換えます。

_positionReal = [_position, 25, 300, 8, 0 , 1 , 0 , _spawnedPositions] call BIS_fnc_findSafePos;

動作説明

元々の湧き計算場所から、さらに近場の村・町・市の3タイプを探して、その中から1つをランダムで選びます。もし、無かったら、元々の湧きコードの通りになります。

村・町・市の中心位置から、300mの同心円上の安全な8m空間に、車両が湧きます。

カスタマイズ

村・町・市の3タイプだけにしてますが、他ランドマークでも沸かせたい場合は、ロケーションを追加します。

ExileServer/config.cppのvehiclesGridSize、vehiclesGridAmountはそのまま利用できます。

500mは適当に決めた数字なので、適宜変更ください。MAPによって、街の中心位置がズレていたりするので、微調整が必要かもしれません。

5m安全な空間といっても、Arma3がちゃんと探し出せるか保証もありませんので。。。BIS_fnc_findSafePos引数で調整してみてください。

すぐ下にある、このコード。

_spawnControl = [[(_positionReal select 0) – 50, (_positionReal select 1) + 50],[(_positionReal select 0) + 50,(_positionReal select 1) – 50]];

既に湧いた場所をBlackListに登録するモノですが、デフォだと周囲100m分しか登録しません。これを広げれば、さらにバラけるでしょう。

(まだ未テストですので自己責任で)

追記:車両湧き独自システム結果

ネタバレを含んじゃうので、MAP全域をお見せできませんが。

こんな感じで、街中・周辺に湧くようになりました。

良い感じじゃないでしょうか。

(;^ω^)

街の中に湧いたモノによっては、派手に建物を破壊してくれるやつもあったりします。

BIS_fnc_findSafePosはちゃんと機能してんだろうか。

うむむ、まぁ・・要調査です。

または、こんなのとか。

一部がめり込んでますw

(;´Д`)

自爆しそうで、乗り込めませんよねぇ。。

また、バスも湧かしてるんですが。

こいつは必ずと言って良いほど、湧き爆発してくれます。

バスは無理ですな。。

2018年3月4日プライベートarma3,exile,mod,server

Posted by nabe