「mod」タグアーカイブ

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

sc20171210225658いわゆるミッソン以外のAIさんのほとんどは、Occupationアドオンを利用する事が多いと思います。

和訳すると”職業”なんだとか。

(;´∀`)

サーバサイドスクリプトですので、如何ようにもいじくれます。

sc20171211000923新しい日本のサーバでしょうか。この前からリスト上にあります。

muneyakeサーバ、MAPはMaldenでPvEのようです。

現在はまだロックが掛かって入ることはできませんけども。

RHS系(ロシア)のMODが必要なようです。

sc20171211000619そういえば、現在ARMA3シリーズ(DLC込み)セール中ですよ。書いそびれたDLCをゲットするチャンスです。

P_20171211_012319最高の夜食・・

(;´∀`)

(ここからネタバレが入るのでピュアなプレーヤーさんはお控えください)
一応備忘録として、Occupationの弄り箇所辺りを記していきたいと思います(都度追記してるので整理してません)

※DMSアドオンとは違い、エラーを分かり易く出力してくれません。更新履歴を取りながら作業する事必須です

AI装備選択:functions/fnc_selectGear.sqf

AI装備品の決定部分、ほとんどがランダムで適用。SC_RandomMagazinesは、1~3個が選ばれる(53行)Weaponアタッチメントは50%の確立で有り無し判定がされる(80行付近)

SC_RandomMagazinesに、装備系(コンパスやGPS等含め)のモノは書けない(エラーになる)ランダムで選ばれるが、重複する場合あり。

メイン武器・ピストルの予備マガジンは2~3個(100行付近、他1箇所)

AI湧きログ

[OCCUPATION]:: %2 loadout created: %1というログで出力(%1装備、%2サイド)

AIのリアルタイム総数

Occupationと直接関係無いですが、以下のスクリプトで出力できます。occupationStatic.sqfから抜粋。

_aiActive = { !isPlayer _x } count allunits;

_logDetail = format [“%1 active AI”,_aiActive];
[_logDetail] call SC_fnc_log;

Place湧きAIの数:occupationPlaces.sqf

configでは有り無ししか指定できません。occupationPlaces.sqf(131行)で、数と行動範囲を指定できます。難易度はrandomとなってます。

NameVillage(村),NameCity(街),NameCityCapital(都市)この3種類の町が対象になってるので、MAPの他ランドマークを追加したい場合は、追記しましょう。種類は以下だけあります。

https://community.bistudio.com/wiki/Location#Location_Types

MOD地図によっては、これらが規定されてない場合があるかもしれない。そんな時は、createLocationで任意に場所を作れる。

パトロール車両の物資:occupationVihicle.sqf

sc20171210231601パトロール車両の物資はConfigで設定できません。313行から、物資と武器の設定コードになります。デフォでは、グレネード・GPS・インスタ・水・EMREがランダム、武器は6種のライフル(LMG系)から選ばれます。

私は、丸っと書き換えましたw

パトロールヘリの物資:occupationSky.sqf

もちろんヘリの方も同様です。238行からになります。ただ・・、空を飛んでるし落ちたら全ロスト、どーやってこの物資を奪うのか?積んでる武器はスナイパー系です。

ヘリクラ:occupationHeliCrasheds.sqf

Wreck系オブジェクト(車両破損系・750m)やサプライコンテナ(500m)の近くには落ちません。ログは、以下の形。

[OCCUPATION:HeliCrashes] Crash %1 : Location %2

ガードAIは102行から。

レイドAI:occupationRandomSpawn.sqf

デフォだと、いまいち使いみちが無いので、コード弄りの醍醐味がこれでしょう(サーバ起動後5分後動作)古いコード上では、”COPS”(警察?憲兵?)だったりするんですが、”RandomSpawn”で決まったようです。

対象プレーヤーから500mを超えると削除。

Waypoint辺りは95行から。警戒(YELLOW)で、対象プレーヤーの位置まで移動となってます(この部分が機械的なんですよね・・)。距離が200m以内になったら、近くの建物を索敵しだすようです。

_wp = _group addWaypoint [_destination, 0] ;

デフォでは、一直線にプレーヤーに向かってくるようになってますが、「おおよその場所」の感じだと、リアルっぽくなりそうです。

AI自体のスキル設定はDMSに依存

OccupationからAIを湧かせる際、DMSを呼び出してます(装備等はOccupationで設定してる)randomとして呼び出した際は、DMS側のRandom設定(1050行付近)から選ばれます。

(Occupationの話題はここまで)

sc20171211075316mission.sqfのaddons[]設定

必要なモノをここに記述するのは分かってますが、何を書くと良いのか、未だ分かってませんが・・。

addOnsAuto[]も同様です。

サーバ起動後、ログに以下のようなエラーが出た場合に、それを追加すると良いようです。

Warning Message: You cannot play/edit this mission; it is dependent on downloadable content that has been deleted.
a3_characters_f

私の場合はCUP Terrainsを入れてますが、ものすごい量のエラーが出てました。よって、上記のような記述でOKなようです。出なくなった。

こんな名称・仕様、どこに書いてんですか・・

(;´Д`)

a3_characters_fはどーしてもエラーが出てしまうようです。動作には支障無いっぽいけども。

ふっと途中に1行出てたりするので、しばらくログを流して見た方が良いかもしれない。

ちなみに現在の私の内容はこれ(何なのコレw)追加MODはCup Terrains core/mapsのみ。

addons[]={
    “A3_Ui_F”,
    “exile_client”,
    “a3_characters_f”,
    “cup_camisc”,
    “cup_misc3_config”,
    “cup_misc_e_config”,
    “cup_buildings_config”,
    “cup_castructures_mil”,
    “cup_ind_malykomin”,
    “cup_shed_small”,
    “cup_pila_dbe1”,
    “cup_zakladna_dbe1”,
    “cup_camisc_acr_shooting_range”,
    “cup_castructures_e_misc_misc_garbage”,
    “cup_castructures_e_misc_misc_market”,
    “cup_castructures_e_misc_misc_interier”,
    “cup_desert2_config”,
    “cup_editor_structures_config”,
    “cup_cabuildings2_misc_cargo”,
    “cup_warfarebuildings”,
    “uh1h”
};

20171212213038_1クラス名から、どんなオブジェクトなのか(実物)調べたい時があります。

EDEN内の検索でも、明確にタブを切り替えないと出てくれません。

ボヘミア公式サイトでも、検索出来なかったり、画像が無かったりと。

最終的にはGoogle画像検索を利用してましたが、あまり有益にはならず・・。

んで、ふっとM3EditorなるMODがあった事を思い出しました。

これなら、全オブジェクトが一覧でリスト表示されてたので、検索もそのまま掛けられそうです。

ビンゴッ(゚∀゚)ノ

設定の際テキストエディタを開きながら、調べたい時に予めM3Editorで立ち上げたARMA3に切り替えて調べられます。

こんな事してるのも、LootSpawnの再設定をしてるがタメですw

20171212231710_1適当なタイミングでインしては、動作を確認します。

あれ?ヘリクライベントっぽいけども、これは戦車かな・・?

(;^ω^)

LOOT中身もヘリクラだな。

むむむ・・。後で確認だな(これはこれで採用案件だけども)

20171212232009_1あぁ・・車両湧きです。

空港以外で、この車両は場違いです。

これは削除だな。

前構築時に、表示関連で自前スクリプトを書いてたんですが、多分、Arma3本体のバージョンアップで表示項目とバッティングしてるらしく、微妙に全体表示がおかしい。直すのも難儀やし、諦めるか。

(写真からも分かると思いますが、ステータス系表示の削除)

sc20171213012628ほとんどのサーバは、結構バニラ状態のままが多いのが、AIなどの装備品です(違っても武器位)

テストプレーする度に、弄りまくってるので大変な事になってますけども・・。

楽しい設定の一つでもありますw

(;^ω^)

ゴリゴリ弄ってます。ほら、鹵獲って楽しいじゃないですか。

sc20171213054004AIが所持してるマネーの設定が、DMS仕様上、ほぼ固定なので、ここはスクリプトを弄りたい。Poptabも鹵獲の要素として。

a3_dms/scripts/fn_SpawnAISoldier.sqf(488行)

で書かれてます。

仕様では、「基本値×インしてるプレーヤー」(※設定による)となってるようです(サーバによってはゼロなんて事もある)

さて、イジるか・・

(;^ω^)

とりあえず、こんなでいいかな。設定値が最大のPoptabになると。

_base_money_amount = round(random _base_money_amount);

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

P_20171207_194605つい先程まで、Arma3サーバが例外違反で落ちる謎の現象と戦っておりました。。

(;´Д`)

Tanoa用のデータが悪さをしていたっぽい。

てっきり更新したextDB3が悪いと思っていたので、時間を要してしまった。

P_20171207_203429うまい棒コーンポタージュ味が美味すぎる・・。

ご飯のおかずにもなるんじゃねーの?

発明した人、神ッ!

(゚∀゚)ノ

・・などと、自暴自棄になるにはうってつけの設定作業が続きます。

sc20171207203943EXILEのミッションイベントなんかで、難易度が示されてますが、あれ、AIの数が違うだけと思ってる方も多いんではないかと思います。

Arma3を侮ってはいけませぇん。

ここにあるように、AIMスキルや行動力・判断力なんてのも設定されてます(ま・・ここで語るほど詳しくはないけども)

公式サイト(AI Sub-skills)

https://community.bistudio.com/wiki/AI_Sub-skills#general

DMSアドオンでは4種類定義できます。

Kongariサーバとか、AIが的確に撃ってくるので、ここの数字が凄い事になってるんでしょう。多分

20171207211745_1とりあえず、そろそろ細かな調整に入らないといけんので、スペンドしてた作業を行います。

シンプルなつもりですが、結構オブジェクト置く事になりました。

多分、もっと増えますね・・。

(;^ω^)

sc20171207213353ちなみに、MAPオブジェクトはこんな感じで設定されます。

省サイズ的にはバイナリにしときたい所ですが無理でしょうね。
20171208004628_1さらっとインしてみました。

あ・・まだこのエラー取ってなかったなw

取り敢えず、アイテム湧き具合を見てみよう。

あ、ダメだ・・。まだ、過酷過ぎる・・w

(;´Д`)

俺的には”アリ”なんだけどもw、これでは誰もプレーしてくれない。

理由:ハンドガン見つけるのに、20分位掛かりました。しかもリボルバー

20171208005729_1どこぞで爆発音。

あそこらしい。このMAPだと、しかし、遠くからでも確認できてしまう。

ヘリクラのようでした。

なぜか、ハンドガンだけを持ったAIに殺られるww

あれ?設定ミスったな。

(;^ω^)

環境設定(Keyframe)で、フォグを掛けないと、かなり見通しが良いですね。夜間でも遠くまで見えます。

sc20171208213438EXILEの特徴の一つ、アイテム漁りも楽しめるように、ここは時間を掛けて調整です。

海外サーバのように、民家に軍事物資が平然と置かれてるのは避けたい所だが。

以前設定していた、アイテムスポーン場所の設定が、微妙過ぎて、再度設定中。

棚とか椅子の上に沸かせてたんですが、微妙すぎて・・。

(;^ω^)

あと、頭の高さにあるアイテムは、取ることができないのね・・。今頃知った・・w

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

20171204022406_1追記:extDB3更新

前回の構築ファイルがあったので、MAPだけ変えりゃ動くんではないかと思いきや、動かず・・。

(;´Д`)

2日程悩み、やっとインできるまでにキマシタ。

盛大にエラーメッセージが表示されてますがw

20171204022724_1うむむ、アイテム湧きも動作してねぇー。

(;´∀`)

つーか、スポーンエリアの選択が出なかったなw

色んな設定ミスがあるようです。

「デバッグ楽し過ぎッッッ!」(゚∀゚)ノ

・・と己を騙しながら作業を続けていきます。

sc20171204190856忘れる前に、MAP固有の設定をしております(自然環境)

以前はTanoaだったのでバニラを使用してましたが、ゼロからの設定になります。

気温位か。地震は無さそうだし、砂嵐みたいなモンは出せるかな・・。気温が高いぞッみたいなエフェクトは出せるんかな。

sc20171204213354スポーンエリアやマーカーアイコンの設定をする際に、Mission.sqmを手書きするかと思いますが。

ここで凡ミス。

typeの項目は必須なので、これを忘れると、もれなくArma3が落ちます

”1行抜け”を探すのに、数時間を費やしました・・。ご愁傷様です。

(´;ω;`)

20171204214730_1まだ以前のTanoaの時の設定のままですが、色々と動いてるようです。

パトロールが謎死w

(;^ω^)

20171204215805_1レイドが来てた。

おぉ・・怖い。
20171204215954_1うひょ・・。

町には大量のAIがいらっしゃった。

1人だと怖くて近づけません。

アイテム湧きも動作を確認しましたが・・。

これでは、あまりにも、過酷過ぎる設定です。武器が一切沸かないっぽいぞwww

こればかりは、ちゃんと見直ししましょう。

(;´∀`)

sc20171205003412つっ!!

さっきまで動いてたじゃねーか。

突如動かなくなった。

ログを見る限りでは、データベースらしいが。

一切触ってないんだが。

んで、散々DB周辺調べたあげく、試しに他ミッションEXILEで立ち上げたら、普通に上がる(同じDBを利用)

ミッションファイルの方らしい・・。

(´;ω;`)時間を返して・・

エラーの内容はこれ。怒られてますが、ちゃんと設定済みです。

0:45:42 “ExileServer – Installed extDB3 version: 1.028”
0:45:42 “ExileServer – MySQL connection error!”
0:45:42 “ExileServer – Make sure [Database] in the extdb3-conf.ini is set to [exile] unless you have a different database setup!!!!!”
0:45:42 “ExileServer – Please have a look at @extDB3/logs/ to find out what went wrong.”
0:45:42 “ExileServer – MySQL Error: Could not add database: [0,””Error Invalid Format””]”
0:45:42 “ExileServer – Server will shutdown now :(“

extDB3ログの方はこれ。

[00:45:41:738079 +09:00] [Thread 13872] extDB3: Locked
[00:45:42:441496 +09:00] [Thread 13872] extDB3: Error Invalid Format: 9:ADD_DATABASE:exile

原因が分からないので、ミッションPBOファイルを一個づつコピーしながら、探す事、mission.sqmファイルに問題がある事までは突き止めた。

sc20171205164706やっとこさ原因が分かりました。データベースとは無関係やった。

(;´Д`)

MarkerのNameでした。なんか、EXILE MODでは任意の名前付けが許されてないようでした。

name=”ExileMarker1″;

最後の数字部分はキレイな並びで書かれてないといけないっぽい。

私は、普通に分かり易く”North_Trader”とか任意に書いてたのが不味かった。

※なんで最初の一回だけ動いたんだ?という不思議はある

そもそも、mission.sqmは、EDENエディタで生成されるファイルで、書き方が厳格で、ちょっとでもオカシイと、Arma3が落ちます

オブジェクトをClassにして、連続して定義していきますが、親Class側で、その個数を”items=21;”みたいに、必ず記述する必要があります。

コンピュータなら自分で数えろよ、とも思いますが・・、ちゃんと数を合わせないと”Arma3がひねくれて落ちます

だって、”Because Arma..”(;´Д`)

EXILE MODに限らず、サーバ起動時に落ちる時は、ミッションファイルをテキスト形式にして、上を確認すると見つかるかもしれません。

1時間程ですが連続稼動テストしてました。本当に、この記述ミスが原因だったようです。安直にログを信じると、時間を捨てる事になる例です。

sc20171205221123サーバアドオンのOccupationが更新していたので、こちらに移行。

以前はスクリプトを弄ってたので、こちらもちょっとだけ触ります。

厳しめにしたい所だが、良いバランスを見つけたい。

sc20171206010231ネタバレ系は一切書きませんので、心配ご無用。

(;´∀`)

過去の設定と見比べながら、設定をしていきます・・。

この時が一番楽しい・・w

苦悩に歪むプレーヤーを想像してるだけで、ニヤニヤしてしまうのですw

ランダム要素が利用できる所は、積極的に使います。

だって、私もEXILEプレーヤーとして普通に楽しみたいのです。

(;´∀`)

sc20171205221342extDB3も更新が入ってるようだ。ただ、最新はLinux版は無いのね。

こちらも慎重に適用しましょう。

何かヨサゲなサーバアドオンあるかな。

影響の少なそうなモノを吟味しよう。

追記:

sc20171207180305色々な所に悪魔が居るようで、ちょっとイジるだけで動かなくなっちゃう。

(;´∀`)

extDB3の更新で、ファイルをそのまま上書きするだけで、イケるんじゃね?

と高をくくってると痛い目に合います。

こんな情報に需要があるとは思えませんが、EXILEサーバを上げる希少な方のために書いてます。

extDB3の更新

以下の公式サイトから最新版を(σ・∀・)σゲッツ!!

https://bitbucket.org/torndeco/extdb3/wiki/Home

※7Z圧縮なので対応した解凍ソフトが必要

古い「@extDB3」ホルダー名を変更して、いつでも戻せるようにしときます。

んで、ガツンと「@extDB3」ホルダーをコピーします。

  • extdb3-conf.iniを書き換えます(DB接続情報など)
  • [database]を、[exile]に書き換えます(私はコレに気づかなかった*1)

サーバルートの「tbbmalloc.dll/tbbmalloc_x64.dll」のファイル名を変更して、いつでも戻せるようにしときます。

新しい「tbbmalloc.dll/tbbmalloc_x64.dll」を、ガツンとコピーします。

これで、サーバを起動し、動作を確認します。

ダメなら、「@extDB3/logs以下」でエラーを確認して対処します。

*1:そんな時こんなエラーが出てました

extDB3: Config Error: exile: No such node (exile.IP)

rptログではこんな感じ。データベース再構築なのか?!と疑心暗鬼になってしまう内容ですが、単純なミスだった。

18:00:23 “ExileServer – Database Error: Error Unknown Protocol”
18:00:23 Error in expression < to _numberOfClans – 1 do
{
((_clanIDs select _i) select 0) call ExileServer_sy>
18:00:23   Error position: <select _i) select 0) call ExileServer_sy>
18:00:23   Error Generic error in expression
18:00:23 File exile_server\code\ExileServer_world_loadAllClans.sqf, line 25