【GAME】ARMA3 EXILE MODサーバの旅その33
いわゆるミッソン以外のAIさんのほとんどは、Occupationアドオンを利用する事が多いと思います。
和訳すると”職業”なんだとか。
(;´∀`)
サーバサイドスクリプトですので、如何ようにもいじくれます。
新しい日本のサーバでしょうか。この前からリスト上にあります。
muneyakeサーバ、MAPはMaldenでPvEのようです。
現在はまだロックが掛かって入ることはできませんけども。
RHS系(ロシア)のMODが必要なようです。
そういえば、現在ARMA3シリーズ(DLC込み)セール中ですよ。書いそびれたDLCをゲットするチャンスです。
(;´∀`)
(ここからネタバレが入るのでピュアなプレーヤーさんはお控えください)
一応備忘録として、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
パトロール車両の物資は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の話題はここまで)
必要なモノをここに記述するのは分かってますが、何を書くと良いのか、未だ分かってませんが・・。
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"
};
クラス名から、どんなオブジェクトなのか(実物)調べたい時があります。
EDEN内の検索でも、明確にタブを切り替えないと出てくれません。
ボヘミア公式サイトでも、検索出来なかったり、画像が無かったりと。
最終的にはGoogle画像検索を利用してましたが、あまり有益にはならず・・。
んで、ふっとM3EditorなるMODがあった事を思い出しました。
これなら、全オブジェクトが一覧でリスト表示されてたので、検索もそのまま掛けられそうです。
ビンゴッ(゚∀゚)ノ
設定の際テキストエディタを開きながら、調べたい時に予めM3Editorで立ち上げたARMA3に切り替えて調べられます。
こんな事してるのも、LootSpawnの再設定をしてるがタメですw
あれ?ヘリクライベントっぽいけども、これは戦車かな・・?
(;^ω^)
LOOT中身もヘリクラだな。
むむむ・・。後で確認だな(これはこれで採用案件だけども)
空港以外で、この車両は場違いです。
これは削除だな。
前構築時に、表示関連で自前スクリプトを書いてたんですが、多分、Arma3本体のバージョンアップで表示項目とバッティングしてるらしく、微妙に全体表示がおかしい。直すのも難儀やし、諦めるか。
(写真からも分かると思いますが、ステータス系表示の削除)
ほとんどのサーバは、結構バニラ状態のままが多いのが、AIなどの装備品です(違っても武器位)
テストプレーする度に、弄りまくってるので大変な事になってますけども・・。
楽しい設定の一つでもありますw
(;^ω^)
ゴリゴリ弄ってます。ほら、鹵獲って楽しいじゃないですか。
AIが所持してるマネーの設定が、DMS仕様上、ほぼ固定なので、ここはスクリプトを弄りたい。Poptabも鹵獲の要素として。
a3_dms/scripts/fn_SpawnAISoldier.sqf(488行)
で書かれてます。
仕様では、「基本値×インしてるプレーヤー」(※設定による)となってるようです(サーバによってはゼロなんて事もある)
さて、イジるか・・
(;^ω^)
とりあえず、こんなでいいかな。設定値が最大のPoptabになると。
_base_money_amount = round(random _base_money_amount);
ディスカッション
コメント一覧
まだ、コメントがありません