ホーム › フォーラム › TRI Gaming フォーラム › ARMA3 ミッションエディットスレ
-
投稿者投稿
-
2016年9月2日 4:39 AM #140264JFetch(ふぇっち)参加者
ファイル貼るの忘れてました。
旧:
http://www1.axfc.net/u/3713707.zip新:
http://www1.axfc.net/u/3714406.zipパスワード:tri
- この返信は8年、 2ヶ月前にJFetch(ふぇっち)が編集しました。理由: パスワード記載忘れ
- この返信は8年、 2ヶ月前にJFetch(ふぇっち)が編集しました。理由: 修正版アップ
2016年9月3日 12:24 AM #140572Matobasan参加者パスはtriらしいです。
2016年9月3日 1:50 PM #140782tricoキーマスター私の場合ですが、arsenal.sqf と gear.sqf (初期装備スクリプト) はミッションごとにセットになっているのです。
なのでこの際 gear.sqf も継承する方法があると便利ですね。あと、上記の理由によりBackpack, Item, Magazine, Weapon と分ける必要はないと思います。全部セットでよろしいかと。
検討よろしくお願いします。2016年9月3日 3:10 PM #140803JFetch(ふぇっち)参加者継承できるようにgear.sqf (初期装備スクリプト)も新しく作ろうかなと思ってたのでちょうど良かったです。
現状だと、全てのユニットのinit欄に対してどの処理をするか記入して、かつ、それをswitch文で判定しているのを、init.sqfに一文書くだけで初期装備を登録できるようにしようかなと。実現するには、Role Descriptionの最後に、現状のgear.sqfのように役割を.(ドット)をつけて決めればいいかなと。
Role Description: [Alpha]Team Leader.tl
init.sqf [] execVM "new_gear.sqf"; new_gear.sqf waitUntil {sleep 0.1;!isNull player}; if (player getVariable "装備は初期化済みですか?" isEqualTo true) then { _role = roleDescription player; if (_roleの末尾にドットで役割がありますか?) then { // 処理 }; }; player setVariable ["装備は初期化済みですか?", true, true];
こんな感じかな?
あと、Backpack, Item, Magazine, Weaponをわけないようするのを検討してみます。
2016年9月3日 9:02 PM #140894michy_REV19キーマスター>デバックするのにいろいろな装備品リストが必要になります
全アイテムのクラスネームが必要ってことですかね?それでしたらみっちーとかいう奴が作ったスクリプトが便利です。Download
取得データ(RifleとかOpticsとかFacewareとか)を設定してからArsenal開いてアイテムを選択すると配列形式でコピーされていきます。
ライフル全部取得したければ一番上をクリックした後”↓”キーを押しっぱにすればダーっと取得することが出来ます。2016年9月4日 1:17 AM #140958JFetch(ふぇっち)参加者michyさんグッジョブです!
デバックはほぼほぼ済んだんですが、やっぱりリスト作りは軍事関係に詳しいプロのほうがいいですね・・・。
まぁ、それを解消するためにスクリプト書いたんですけどね。4日(今日)中にスクリプト公開スレにて使い方とデモ用のミッションファイルを上げますね。
その際、リスト作りのサポートスクリプトとしてmichyさんのスクリプトも併せて紹介させていただきます。2016年9月5日 1:00 AM #141336JFetch(ふぇっち)参加者michyさんのスクリプトを使わせていただいております。
グットタイミングで助かりました。ダウンロード: [Script]CustomVirtualArsenal.VR.zip
パスワード: tri
(2週間のみ有効)<<オブジェクトのinit欄に書いた例>>
※長くなるのならinit.sqfに書くのがオススメです。setArsenalContents.sqf [this, ["WEST_LWeightBackpack.sqf", "WEST_medicBackpack.sqf"], ["triServer_defaultItems.sqf", "WEST_shortRangeScope.sqf"], ["rhs_USMC_556_basicSet.sqf"], ["%ALL"] ] execVM "scripts\CustomVirtualArsenal\setArsenalContents.sqf"; box1: アーセナルの内容を登録したいオブジェクト [](1つ目): バックパック [](2つ目): アイテム [](3つ目): ウェポン [](4つ目): マガジン 「"%ALL"はゲームに存在する全てのクラス」という意味です。 []の中にはクラスネーム、もしくは、クラスネームが書かれたリストのファイルをダブルクォーテーションで囲って記入してください。 ちなみに、リスト(sqf)の中に更にリスト(sqf)を書けます。(マトリューシカ的な感じで。) あまりリストの中にリスト(以下略、をしちゃうとファイル管理がメンドクサイので細かくせず、なるべくざっくりした感じがオススメです。 setArsenalContents.sqf [this, [this]] execVM "scripts\CustomVirtualArsenal\setArsenal.sqf"; this: アーセナルの項目を表示したいオブジェクト名(この場合、) [this]: アーセナル内容があるオブジェクト名(複数可)
スクリプト公開スレの前に自分の作成したミッションに組み込んで様子を見た後に公開、検討します。
2016年9月9日 7:29 PM #143141tricoキーマスター3CB BAF Weapons の更新で、弾薬のクラスネームが変更されました。
古いクラスネームを使っているミッションはたぶん読み込まれませんので修正をお願いします。UK3CB_BAF_30Rnd -> UK3CB_BAF_556_30Rnd UK3CB_BAF_30Rnd_Blank -> UK3CB_BAF_556_30Rnd_Blank UK3CB_BAF_30Rnd_T -> UK3CB_BAF_556_30Rnd_T UK3CB_BAF_75Rnd -> UK3CB_BAF_762_100Rnd UK3CB_BAF_75Rnd_Blank -> UK3CB_BAF_762_100Rnd_Blank UK3CB_BAF_75Rnd_T -> UK3CB_BAF_762_100Rnd_T UK3CB_BAF_100Rnd -> UK3CB_BAF_556_100Rnd UK3CB_BAF_100Rnd_Blank -> UK3CB_BAF_556_100Rnd_Blank UK3CB_BAF_100Rnd_T -> UK3CB_BAF_556_100Rnd_T UK3CB_BAF_200Rnd -> UK3CB_BAF_556_200Rnd UK3CB_BAF_200Rnd_Blank -> UK3CB_BAF_556_200Rnd_Blank UK3CB_BAF_200Rnd_T -> UK3CB_BAF_556_200Rnd_T UK3CB_BAF_20Rnd -> UK3CB_BAF_762_L42A1_20Rnd UK3CB_BAF_20Rnd_Blank -> UK3CB_BAF_762_L42A1_20Rnd_Blank UK3CB_BAF_20Rnd_T -> UK3CB_BAF_762_L42A1_20Rnd_T UK3CB_BAF_L128A1_Slugs -> UK3CB_BAF_12G_Slugs UK3CB_BAF_L128A1_Pellets -> UK3CB_BAF_12G_Pellets UK3CB_BAF_10Rnd_127x99mm -> UK3CB_BAF_127_10Rnd UK3CB_BAF_10Rnd_127x99mm_AP -> UK3CB_BAF_127_10Rnd_AP UK3CB_BAF_100Rnd_127x99_Box -> UK3CB_BAF_127_100Rnd UK3CB_BAF_17Rnd_9mm -> UK3CB_BAF_9_17Rnd UK3CB_BAF_30Rnd_9mm -> UK3CB_BAF_9_30Rnd
2016年9月21日 11:39 PM #147459classic参加者エンドトリガーに
if (isServer) then { [] call ocap_fnc_exportData; };
を記述するとocapが記録されます。
2016年9月25日 11:06 AM #148711tricoキーマスターおんおふさんが書いてくれた「最初にミッションスタートした人が死亡扱いになる」現象について。
がんばって検証したところ、プレイアブルユニットのINITに
doStop
を書いていることが原因と思われます。
これはAIユニットが勝手に着いてこないように書いていましたが、今後は削除してください。ミッションの空回しが必要な件についてはModが原因らしいので今のところ解決法はありません。
現在ほとんどのミッションに不具合が出ていると思うので、9月26日にサーバーのミッションをリセットします。
エディタの方は修正したあと動作を確認し、ミッションリストに記入してから、再度サーバーにアップロードしてください。
ついでにミッションタイトルとファイル名の命名規則を微妙に変更しました。こちらのページを参照してください。
お手数ですがよろしくお願いします。2016年9月25日 3:05 PM #148770nekokichi59メンバー検証お疲れ様です。確認なんですが、
dostop
以外であれば使用しても問題はありませんか?
例:this disableAI "MOVE"
等2016年9月25日 4:14 PM #148788Gyamon360参加者to nekokichi59
serverで検証してみないと判断できないそうです。
#2に入れて試してみてください。2016年9月26日 12:39 AM #148916Matobasan参加者{_x disableAi "MOVE"} forEach units group this;
検証の結果、dostopのかわりにこれをグループのリーダーのinitに書いてあげればいいとのことです。
2016年9月27日 1:06 AM #149303michy_REV19キーマスター{_x disableAi "MOVE"} forEach units group this;
このコードを適用すると車輌に乗車した際にdisableAiスクリプトが発動してしまい、スロットル全開にしても車輌が動かなくなってしまう不具合が確認されました。
解決策としては、各ユニットがAIからプレイヤーになったことを検知して、disableAiの対となるenableAiスクリプトを実行すればよいかと思います。
コードの方は明日の朝書いて見ます。※追記1
全グループリーダーのinitに書いていくのが面倒なのでinit.sqfにて実行できるようにしました。
一瞬完成したと思ったけどMPID取得してるのでMPでしか動きません。
イベントスクリプト使うのが手っ取り早そう…追記2
IDじゃなくてプレイヤーリストからAI/非AI判定させるようにしました。使ったことないコマンドなのでローカルでの動作は保証しません。
いらないかもしれないけどディスコネ対策とヘッドレスクライアント回避コード追加。
鯖に負荷かかるようならイベントスクリプト[onPlayerRespawn.sqf]で実行した方がいいかも…※追記3
単体動作でwait使わない方法が思いつかない
もうだめだ
FIX待ちましょうとりさんが以下の2つを推奨しています。
{_x stop true} forEach units group this;
_pstop = [this] spawn {sleep 1; {doStop _x} forEach units group (_this select 0)};
2016年9月27日 6:52 PM #149541JWACS参加者{_x disableAi “ANIM”} forEach units group this;
#2で実験したところ”MOVE”から”ANIM”に変えることでAIは移動せず車の移動が出来ることを確認致しました。
-
投稿者投稿
- このトピックに返信するにはログインが必要です。