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

image

追記:久々にサーバ更新

追記:アイテム湧きカスタムの覚書

追記:アイテム湧きの再設定

追記:Linuxの罠、再び

追記:新しい?HINOMARU EXILEサーバ

追記:久々にTakistanの地に立つ

追記:新しいサーバロゴ完成ッ

追記:マガジン湧きカスタム動作結果

追記:プレーヤーイン時のカスタム

追記:自衛隊MODを適用するか悩む

もうBattleyeのキックが夢に出てくるようになって・・しばらく、現実逃避しておりましたが。。

(;´Д`)デバッグが地獄、ウツになるわ

最近、時間が出来つつあるので、ちょこちょこと久々に初めております。。

Arma3がオワコンになろうとも、サーバ公開まではこぎ着けたい。

Exileをプレーしたくても、私個人的にDayZまで過酷じゃなくて、カジュアル過ぎない程度のソロ志向過酷サーバが好きなのです。

MIJさんのサーバとか好きやった(現在、サーバ更新掛けてないようなので、もう管理してないっぽい)

(;^ω^)・・・

低Pingサーバだと、皆無なんですよね。。

image

やってみたいなぁ・・と思っていたやつの一つが実現しそうです。

やっと見つけました。

setAmmo

これw(magazineとかそれっぽい名称で検索掛けても、Arma3ではアイテムオブジェクトのそれを指す名称なんですよ・・)

んで、これは、何をするんかというと、マガジン内の弾数を設定するコマンドなんですよ。

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

この記事でやってましたが、アイテム湧きのカスタムの一つで、「武器+マガジン」ではなくて、「武器だけ」にするのはもちろんの事。

Dayzよろしく、「マガジン」湧きにも、残弾数もランダムって事にしたかったんです。

(;^ω^)

まだ動作確認してないけども。多分、これで最大の弾数をゲットできるはずなので。

_ammoCount = getArray(configFile >> “cfgMagazines” >> _itemClassName >> “count”);

@ExileServer/code/ExileServer_system_lootManager_spawnLootInBuilding.sqf の79行辺りに、追記すりゃええ訳です。

ですが。。

アイテム湧きは、湧き用オブジェクト(_lootHolder)のカーゴに追加する形で入れ込んでる(1箇所に複数個湧くので)

んですが、名前だけで指定してるんですよね。

_lootHolder addMagazineCargoGlobal [_magazineClassName, _numberOfMagazines];

うむむ、どないして、やるんだ。

数分後。。。

setAmmoページを見てみると、プレーヤーが現在所持してるマガジンに対してだけのようです。

player setAmmo [handgunWeapon player, 10];

あ。。無理っぽい。

(;´Д`)

数分後。。。

むむ?

lootHolder  setAmmoってやればええんじゃまいか?

まずは、動作確認からですね。。

image

あともう一個。アイテム湧きとして、PopTabも沸かせたい。。。

(;´∀`)

多分、そういうアドオンがありそうだけど、自分でやってみる。

プレーヤーがPopTabを落とすアクションがあるので、そこから追ってみる。

クライアントからの受信で、Serverのここが呼ばれる。

ExileServer_system_money_network_putMoneyRequest.sqf

近くにPoptabがあれば統合されて、Exile_PopTabsというオブジェクトが生成される。

※CfgPoptabStorageに最大値が設定されてる

※クライアント環境変数ExileMoneyに、Poptab数が入ってる

んで、実装の部分はこんなでした。

    _container setVariable [“ExileMoney”, _containerMoney, true];

これを、アイテム湧きとするなら、lootHolder に、これをそのままセットすれば良いっぽい。

ただ、複数アイテムにしちゃうと、訳分からなくなりそうなので、Exile_PopTabsオブジェクトに強制的に書き換えれば良いんかな?

そう、うまく動作するか分からないけんども。

追記:久々にサーバ更新

image

久々にサーバを起動してみた(Ubuntu16.04LTS)

色々MOD更新やらOSアップデートやらが、溜まってる。

うむむ・・これ、これが面倒なんすよね。サーバが閉鎖する理由ってこれなんじゃないかと思います。

特にOSアップデートが曲者で、ライブラリリンクが切れてしまう恐れがある。最悪は、(仕様変更とかで)動作不可まで陥る。それが嫌で、古めの16.04LTSにしてる(本当ならDebianとかRedhat系の方が安心かも)

ざっと確認した所、大丈夫やった。動いてる

(;´Д`)ふぅ・・

MODの更新はあるかな・・と、唯一利用してるCUP MODを見たら。

現在、1.11.0とめっさバージョンアップしとるがなッ!

ヽ(;゚д゚)ノ!入ってるの1.4.2

枯れてるMODなのに、そう更新入るもんか?何があった?!(枯れてる≒安定してるの意味)

変な仕様変更とかされてなきゃいいんだけど。。。マップの地形変化とか。。。

((((;゚Д゚))))

TerrainsCoreは7.5GB、TerrainsMapは2.5GBのようです。サーバに直に置くので、ダウンロードしておく(しばらく掛かるだろうなぁ・・)

追記:アイテム湧きカスタムの覚書

image

上で触れた武器アイテム湧きのカスタム部分のコーディング前調査の覚書。

Arma 3 CfgMagazinesリファレンス(AmmoのCfg情報)

※Exileで追加される武器もこのCfgツリー内にあるんだろうか。。

Exile_Item_MountainDupe(マウンテンデュープ)が、2個セット湧きなのは、そう書かれてるんですが(無論1個湧きに修正)、なんでか、アイテム種別が”Magazine”になってる。

BIS_fnc_itemTypeによって、アイテム種別が調べられるんですが、これだとホントのマガジンだけを、なんとかして絞らねばならない(というか、マガジンという形状のモノ、ランチャーとかあるし)

image

僅か追加4行ですが、これで動くだろうか。。(まだ動作確認してないよ)

@ExileServer/code/ExileServer_system_lootManager_spawnLootInBuilding.sqf の66行辺りに

_ammoCount = getNumber(configFile >> “cfgMagazines” >> _itemClassName >> “count”);
if(_ammoCount > 1)then{
     _lootHolder setAmmo [_itemClassName, ceil(random _ammoCount)+1];
};

configFileからの読み取りで例外が発生しそうな感じですが、無くても”0”が帰ってくるようなので、無いならこれでええかと(つーか、駄目だろそんな仕様。ボヘミアさん)

マガジンを拾っても、最悪の場合1発だけ入ってるぞ・・と。

(;^ω^)・・過酷や

image

ちなみに、武器湧きだけ(マガジン無し)にしたい場合は、この部分をまるっコメントアウトすればええですよ。

:(;゙゚’ω゚’):・・か、過酷

※1マグだけなら、_numberOfMagazines=1とすればいい

image

んで、Poptab湧きですが。その下の部分(switch終わり)にこれを追加。

if(_itemClassName isEqualTo “Exile_PopTabs”) then
{
     _lootHolder setVariable [“ExileMoney”, floor(random 250)*2+1, true];
}

Exile_PopTabsをloot_tableに追加しておく必要がありますが、これが出たら、初めてPoptabを入れ込みます。

ここでは、1~500(2刻み)にしましたが、要調整です。

Poptabが湧くエリアって、民家だけにしたいですよね。これだとloot_tableで制御できるので、バランス調整もしやすいでしょう。

重要:まだ動作確認してません

image

普通、サバ缶って、実際に遊んでみて確認するんでしょうけど、自分の場合、(8割方)実際にインしないで、コーディング画面とログだけ見てるんですよ。

サーバの起動に数分(アドオン処理終わり)、インするのにも数分(Arma3立ち上げ)掛かるんだもん。

ほとんどのExileサーバが、デフォルト設定で動いてるのはその性ですよ。

追記:アイテム湧きの再設定

image

動作確認する前に、アイテム湧きの調整もついでにやる。

Exileやサバイバルゲーといえば、アイテム漁りは最重要な要素です。

しかしながら、終わりが見えないバランス調整

実際の所は、こんな感じで各アイテムグループを、確率で指定してます。

無論、ほとんどのサーバは、デフォルトのままで稼働してる場合がほとんどですが、1個イジったら、また弄りたくなる・・の繰り返しで、ほぼ全部書き換えと相成りました。

image

コンガリサーバにも登場するらしい、このイエローダックちゃんも、もちろん出てくる。

(;^ω^)

違う用途だけども。。

久しぶりすぎて、忘れそうになってたので、やり方備忘録。

EXILE公式からLootTableCompiler-1.0.3bをゲットして、以下のファイルを編集する。

LootItemGroups.h アイテムのグループの定義

LootTables.h 建物種別毎に、湧きグループの定義

そしたらcompile loot tables.batで、ファイルを生成する。

CfgExileLootServer.hppが出来上がるので、exile_server_config.pbo内に入れてPBOパックする(無論、config.cppで「#include “CfgExileLootServer.hpp”」とかしておく。既存クラスは全削除)

image

見ての通り、全部武器を沸かせるようにしてます。アタッチメントだって、全湧きです。

サーバによっては、トレーダーでしか扱わないとか、あるんでしょうけど。

とにかく、アイテム漁りが楽しくなるよう、重点を置いてます。

でも、まぁ・・そう簡単に問屋は下ろしませんけどもねぇ・・。

そもそも、弾が無いのだw ←(;´Д`)

image

optic_twsというスコープ。デフォルト設定では、無効になってたんで、いままでスルーしてましたが、調べてみたら、

Thermal Weapon Sight
Magnification: 4x–10x

・・と書かれてます。これって、温度変化の部分が見えちゃう例のやつって事かな(使った事ないし、動画でしか見たことが無い)

チート級のアイテムってやつか。

よしッ!沸かすぞ。

image

いざっ、インしてみようかと思ったら、どこぞのタイミングでやらかしてしまったらしい。。。

動かなくなってもうた。

変更分を一気に適用すると、毎回、こうなんだよなぁ。。

(;´Д`)分かってはいるが、再起動がタルいのよ

デバッグ作業や。。。下に続く

追記:Linuxの罠、再び

image

Warning Message: No entry ‘bin\config.bin/CfgWorlds.Takistan’.

なんでか、MAP定義ファイルを読み込んでくれません。

16:50:58 Warning Message: No entry ‘bin\config.bin/CfgWorlds.Takistan’.
16:50:58 Warning Message: No entry ‘.gridNumbersOverLines’.
16:50:58 Warning Message: ‘/’ is not a value
16:50:58 Warning Message: No entry ‘.centerPosition’.
16:50:58 Warning Message: []: ‘/’ not an array
16:50:58 Cannot evaluate ” – no file
16:50:58 Warning Message: []: ‘/’ not an array
16:50:58 Cannot evaluate ” – no file

こんなのが出ております。

あぁ・・・・いつか見たことがあるが、もう解決方法なんて、覚えてません。

(´;ω;`)

・・・ですが、かれこれ長いことArma3サーバを触ってる経験が、生かされます。

そういや、CUP MODを更新したっけな。。

image

この画面を逃さなかった。

Linuxサーバなら、見逃しちゃならぬ、不届き者がいるのですよ。

Addons」←これッ

これにどんだけ、泣かされてきた事か。。。

。゚(゚´Д`゚)゚。

addons

と書かなっきゃ駄目なんですよ。ウソっぽいけど、本当だから、気づくのに苦労させられたんです。

※他にも大文字ファイルがあるけど、ゲームとは直接関係ない。ディレクトリ名とPBOファイルだけ変える

いつかMOD自動更新スクリプトを用意するつもりだけど、これを忘れないようにしないといけない。

追記:新しい?HINOMARU EXILEサーバ

image

いまサーバリストを見たら、HINOMARUというEXILEサーバがありました。

前からありましたっけ?

マップは、ALTISで、PvEっぽい。MODは大量に必要ですが、全てSteamからインスコ可能ですね。

追記:久々にTakistanの地に立つ

20181224192520_1

うむむ。快晴です。目が痛い。

20181224192011_1

武器だけ湧いてるのは確認したぞ。

だが、マガジンの残数とポップタブ湧きは、うまく動いてないようだ。

むむ。。

(;´Д`)

setAmmoは、ローカルで実行しろ、って書いてあった。アイテム湧きでは、実質的に無理や。

あ、勘違いしてた。そもそもの使い方に誤りがあった。setAmmoは、装備してる武器に対してのコマンドみたい。

いや待てよ。

プレーヤーが再インした際に、前状態を再現する時どーやんのよ。調べてみる。

ExileServer_object_player_database_load.sqf

ここで、目新しいものを発見(目的から外れる。。。。)

_player setVariable [“ExileMoney”, (_data select 38), true];
_player setVariable [“ExileScore”, (_data select 39)];
_player setVariable [“ExileKills”, (_data select 40)];
_player setVariable [“ExileDeaths”, (_data select 41)];
_player setVariable [“ExileClanID”, _clanID];
_player setVariable [“ExileClanData”, _clanData];
_player setVariable [“ExileName”, _name];
_player setVariable [“ExileOwnerUID”, _playerUID];
_player setVariable [“ExileDatabaseID”, _data select 0];
_player setVariable [“ExileHunger”, _data select 4];
_player setVariable [“ExileThirst”, _data select 5];
_player setVariable [“ExileAlcohol”, _data select 6];
_player setVariable [“ExileTemperature”, _data select 44];
_player setVariable [“ExileWetness”, _data select 45];
_player setVariable [“ExileIsBambi”, false];
_player setVariable [“ExileXM8IsOnline”, false, true];

おおっ、プレーヤーの状態の環境変数ですよ。

image

んで、話は戻って。addMagazineAmmoCargoというコマンドを見つける。

これで、前状態のマガジンの残弾を再現してるようです。

んでは、さっきのコードを書き直してみましょう。

@ExileServer/code/ExileServer_system_lootManager_spawnLootInBuilding.sqf の57行辺り(case 1: から)

/*
                     if (_itemClassName isEqualTo “Exile_Item_MountainDupe”) then
                     {
                         _lootHolder addMagazineCargoGlobal [_itemClassName, 1];
                     }
                     else
                     {
                         _lootHolder addMagazineCargoGlobal [_itemClassName, 1];
                     };
*/                   
                     _ammoCount = getNumber(configFile >> “cfgMagazines” >> _itemClassName >> “count”);
                     if(_ammoCount > 1)then{
                         _lootHolder addMagazineAmmoCargo [_itemClassName, 1,floor(random _ammoCount)+1];
                     }else{
                         _lootHolder addMagazineCargoGlobal [_itemClassName, 1];
                     };

旧コードはコメントにしちゃいます(念の為、_ammoCount は、頭でPrivate宣言しておこう)

さて、これでどうよ。

しかし、思いっきり標準コードをカスタムしてるけど、普通のサーバはやってないと思う。だが、コンガリはやってる

追記:新しいサーバロゴ完成ッ

image

ロゴ新しくしたいなぁ・・と思っていたので、さっきまで熱中してしまった。

ミッションロード中に出る、あれです。

シンプルでええんじゃないかと。。

(;^ω^)

追記:マガジン湧きカスタム動作結果

20181225001521_1

色々寄り道してしまったが、例のアイテム湧きでの、マガジン残弾減らし作戦の動作結果です。

m9( ゚д゚)成功ッ

写真をご覧頂くと、僅か数発しか残ってないAKのマガジンが。。

Arma3の仕様上、数字で分からないんで、左枠のゲージで知るしか無いんですけどもね。。

20181225002301_1

運良く、所持武器の5.56STANAGが湧いてたので、残弾を確認。これは10発しか入ってなかった。

20181225002320_1

おや、拙作アドオンが置いたクレイトが、あんな所にあるじゃまいか。

20181225002339_1

EXILE MOD武器のマガジンというか、ショットガンの残弾も少なく湧いてます。

20181225002754_1

おや、アヒルちゃん。

20181225002849_1

当然ですが、SMGのマガジンも同様に減らされてます。

m9っ`Д´) 過酷ッ!!

追記:プレーヤーイン時のカスタム

image

プレーヤーがサーバに接続した際にカスタムするなら、ここです。

バンビ状態でインする時

ExileServer_object_player_createBambi.sqf

ロードでの再接続時

ExileServer_object_player_database_load.sqf

毎回、アルコールを摂取した状態(ExileAlcohol>0)でインしてみたら、どーかなぁ?とかテスト予定。

(;´∀`)

この前、「エクセル」って書こうと思ったら「exile」ってキー打ってた。病気です。

追記:自衛隊MODを適用するか悩む

20181225193921_1

現代の自衛隊をモチーフにした「Japan Unit」というMODがあります(約1.1GB、Steamに有り)

陸海空毎にアセットが用意されていて、しっかりしたMODですが、見ての通り、国旗をあしらっただけというのがほとんど。奥のヘリは三菱製、フッソ製トラックとかあるが。

だが、魅力的なアイテムがあるんですよ。

20181225194001_1

m9( ゚д゚)89式ッッッッ!!!日本国産小銃(アサルト)っすよ。奥さんッ!

※クラス名:Howa Type 89:jpa_wepn_Type89_base(jpa_wepn_Type89Fというストックが違うやつも有り)

これが使いたくてたまらない。これのためだけに、1GB MODを適用するかどーか、すげー悩んでます。

※できるだけ利用MODを抑えたい

20181225194045_1

このランチャーも、国産ランチャーのようです(クラス名:Howa 84-RR:jpa_JSDF_W_RR_84mm)

89式は、普通の5.56NATO弾なので手に入れやすい。

あと、もう一個ッある!!

20181225195409_1

m9( ゚д゚)カワサキKLX250ッ!!!

これも入れ込みたいよねぇ。。。

「【GAME】ARMA3 EXILE MODサーバの旅その71」への6件のフィードバック

  1. いつもブログを拝見しております。
    EXILE MODをプレイしてみたいのですが、私もPvPよりPvEが好みなので、二の足を踏んでました。
    鯖を公開されるようでしたら、是非参加してみたいです。
    鯖の構築頑張ってください!

  2. あ、ど・・もです。
    (;´Д`)
    待って頂いてる方いらっしゃったんですね。。誠に恐縮MAXです。
    やっぱPvEの方が人気高いんかな。。
    自分は、絶対的にPvPなんですけどねwあの緊張感がたまんない。。ド下手プレーヤーですけどもw

  3. すげー!
    こんな素晴らしいブログがあるなんて!!

    わたしも、Exileサーバ建てたいっ!!

    いまsakuraVPSにproject zomboid入れてるんですけど
    遊んでる人たちが飽きたら、Exile入れたいッス!!
    (で検索したらここにたどり着きました)

    わたしもハードコア好きなのですけど数年前に遊んでたときは、そういうサーバなかなか少なくて・・・

    だったら自分で作れ!ってことで、ハードコアのzomboidサーバ建てて3か月くらいたつんですけど、だんだんぬるくなってしまうんですよねーツライです。
    (聞き入れないつもりなのに住人の要望に応えてしまう甘い鯖缶です)

    次は、ウルトラハードコアExileたてたい!!
    ので、ブログで勉強させていただきます!!!
    というか、こちらの鯖立ったらわたしも参加して勉強させてもらいます!

  4. ども、はじめまして。
    おっ、日本サーバ枯渇状態ですので、大歓迎ですよw
    分からない事があったら気軽にコメください(混みいった話になりそうだったらDiscodeとか)
    ここの情報は、かなりマニアックだと思いますけども・・。自分がプレーしたいサーバを作ってる感じです。
    このブログもsakuraVPSですが、ゲームサーバとしてもスペック的に十分なんですね。知らなかった。

  5. 3コア2GのSSD50Gコースです
    SSDなんで、仮想6Gとかでやってるんですけど
    ちょっと遅いくらいでいけてます!!
    でも、酷使しすぎなのでそのうち追い出されるかもです!!
    物理2G仮想10Gでやったときは、そこに到達する前にゲームが落ちました!
    zomboid 、7days、 Untarndは動きましたよー
    ARMA3は、そんなにスペック必要ないっぽいんで割と動くと思うんですよねー
    でも、ARMA3ってこちらでも書かれてますけど、セットアップがほんと大変そうなので敬遠してましたw
    わたしはどっちかっつーと、Dayzよりもハードなやつ建てたいっすねー
    込み入った話になるかもなので、steamの名刺貼っておきますです

  6. へぇ・・動くんですね。
    Arma3サーバ動かすだけなら簡単ですよ。設定項目が大量(バグ込み)にあるってだけです。Linuxでやろうとすると、自分みたいになりますw
    FPSがどんだけ出せるか、やってみないと分からないですね。
    ブログに書いてますが、自分は、自宅サーバでA6-3650(4コア/OC 3.6Ghz/8GB/SSD)という2000円でこしらえたジャンクPCで運用しようと考えてます。
    (当たり前ですが)明らかにVPSよりも高スペックな訳ですけど、正直これでも厳しめな感じです。ギリギリFPS45いけるかってとこ。
    海外のサーバとかだと、XEON当たり前ってな感じで書かれてますけども・・w
    (;´Д`)
    Arma3は、1コアに処理が集中するようです。基本、常に100%張り付き。Pentiumで良いんで、5Ghz位で回るやつが理想かもしれません。。。
    AIのエンジンを、他PCで運用する事も可能です(headless client)

コメントを残す

メールアドレスが公開されることはありません。