Arma3 スクリプト公開スレ

ホーム フォーラム TRI Gaming フォーラム Arma3 スクリプト公開スレ

  • このトピックには49件の返信、14人の参加者があり、最後にdenbo72により6ヶ月、 3週前に更新されました。
15件の投稿を表示中 - 1 - 15件目 (全50件中)
  • 投稿者
    投稿
  • #2820
    Stealer
    メンバー

    役立ちそうなスクリプトを作った・見つけたら紹介しよう。
    「こんなの欲しいな」なリクエスト受付もこちらで。


    使えるタグ

    <pre>スクリプト</pre>
    <code>コード</code>
    <blockquote>引用文</blockquote>
    #2821
    Stealer
    メンバー

    乗車完了を運転手に知らせるスクリプト

    概要:
    トラックの荷台や装甲車は、乗員が発車を運転手や車長に伝えたくても、車内の騒音や設定でVCで伝わらないことがままあります。
    こういった時兵士はどういった行動を取るでしょうか-トラックの荷台をバンバン叩くのです。そうですロマンです。
    趣味と実益を兼ねた再現をしてみました。

    bodyslap_sample.utes.zip

    使い方:
    ※前提としてCBA Addonの導入が必要です(triserverでも使われているものです)
    ①同梱のdescription.extをmission.sqmと同階層に置くか、内容を自分のミッションの同ファイルにコピーする
    ②scriptsフォルダも同様にコピペする
    ③適用したい車輌(複数可)に以下の命令を貼り付ける
    this addAction ["SLAP VEHICLE BODY","scripts\bodyslap.sqf",[this]];

    車内の乗員が”SLAP VEHICLE BODY”アクションを実行すると、その車内の乗員に限り荷台を叩く音が聞こえます。
    また、Vehicleチャンネルのchatで”ready to go!”のメッセージが出ます。

    • この返信は10年、 2ヶ月前にStealerが編集しました。
    #2824
    く”らぅん
    参加者

    ACE WoundsのEpinephrineだけをメディテントでしか使えなくするっていうのは可能ですか?

    #2825
    Stealer
    メンバー

    うーん…既にACE側で組まれてるルーチンを外部から制御する方法が私には見当がつかないけれど、
    アプローチの仕方を変えて、”一般兵士がエピネフリンを持ったままテントから離れると持っているエピネフリンが消える”なら出来そうだけれど、
    そういうのでいいのなら一応可能だと思います。

    追記:
    このポストの後、実際に以下のソリューションを提示したら満足してくれたので、記載します。
    ・triggerを作る
    10m x 10m
    repeatedly
    Activation: BLUFOR present
    Condition: this && (vehicle player == player)
    on Act: (無し)
    on Dea: player removemagazines “Ace_Epinephline”;
    ・triggerの中央に医薬品の入ったMASHを置く

    こうすることで、triggerからモルヒネを持ったまま出ると、持っているモルヒネが全てボッシュートされます。

    • この返信は10年、 2ヶ月前にStealerが編集しました。理由: ソリューション
    #2830
    Ares
    メンバー

    MAP上のすべてのドアからアクションメニューのオープンドアを消去することは可能ですか?
    ドアにC4を設置し爆破してこじ開けたり、ショットガンでこじ開けたりできるScriptを見つけたのですが。そのScriptを入れても、アクションメニューのオープンドアが表示されたままなので、ミッションで導入しようとしても使われずに終わりそうです。
    容易にドアやゲートの開閉ができなくなれば、ハシゴやワイヤーカッターの活躍も増えそうって妄想したり。

    #2839
    Stealer
    メンバー

    それについてですが、解決法が無くはないものの、非常に難しいです。
    まず、open doorアクションを消去することは不可能です。
    おそらくremoveactionのようなアクションを取り除く感覚を想像していると思いますが、まずremoveactionはデフォルトのアクションを取り除けません。
    removeAction

    なので連続して閉め続けるアクションをするスクリプトがあれば解決できるのですが、ここで問題があります。
    ArmAの建物関連のアクション、とりわけBIS謹製の物に関しては、非常に融通が利かず、最もコントロールの面倒くさいものの一つになっています。
    というのも建物に付いているドアの一つ一つがアクションの名前が異なり、しかも例えば閉める動作が1、開く動作が0のものもあれば、その逆もあるのです。

    以下はchernarusとutesのドア全てをミッション開始時に開くスクリプトについてのポストですが、それでも空港や倉庫や一部のドアはカバーされていません。OAやアドオンの建物を含めると、そのアクションの名前自体の調査が煩雑であることも含め、”汎用性のあるドアを閉めるスクリプト”にどれだけの手間が掛かるか分からないのが現状です…

    Huh,
    I see, this is an old one. So what, I’m gonna reply anyway.
    Closing doors, well, that’s not an easy one, thanks to BIS. I mean, basically, all you need is this:
    Code:
    _houses = [1000,1000] nearobjects [“house”, 1000000];
    {
    _x animate [“door”, 0];
    sleep 0.0001;
    } foreach _houses;
    Or so you think! Problem: BIS forgot to use a standard or nomenclature for their buildings. So, some doors are named “door”, some are named “dvere”, then we have “door01” or “door_01” and so on. It’s a mess!
    And it gets even worse! On ArmA 2 buildings, the parameter to close a door is 0, while on OA buildings, the parameter is 1! Dear BIS, how can you possibly confuse 0s and 1s?!?
    Whatever! So, after a long period of trying, this came out:

    Code:

    _houses = [1000,1000] nearObjects [“house”, 1000000];
    _zeroes = [“dvere”,”dvere1l”,”dvere1r”,”dvere2l”,”dvere2r”,”dvere_spodni_r”,”dvere_spodni_l”,”dvere_vrchni”,”vrata1″,”vrata2″,”vratal1″,”vratar1″,”vratal2″,”vratar2″,”vratal3″,”vratar3″];
    _ones = [“door”,”door_1_1″,”door_1_2″,”door_2_1″,”door_2_2″,”dvere1″,”dvere2″,”dvere3″,”dvere4″,”dvere5″,”dvere6″,”dvere7″,”dvere8″,”dvere9″,”dvere10″,”dvere11″,”dvere12″,”dvere13″,”dvere14″,”doorl”,”doorr”,”door_01″,”door01_a”,”door_02″,”door02_a”,”door_03″,”door_04″,”door_05″,”door_06″,”door_1a”,”door_1″,”door_2″];
    {
    _y = _x;
    {_y animate [format [“%1”, _x], 0]} foreach _zeroes;
    {_y animate [format [“%1”, _x], 1]} foreach _ones;
    sleep 0.0001;
    } foreach _houses;

    As far as I know, it works on most buildings. No, wait, I think forgot about the LHD. Ach, not that important, eh? If there’s more missing, or not working at all, just let me know.
    Good day,
    mr_book

    EDIT: I just found out that above script doesn’t work on both Utes and Chernarus. A (rather unsatisfying) workaround is:

    Code:

    {
    _y = _x;
    {_y animate [format [“%1″, _x], 0]} foreach _zeroes;
    if ((worldname==”Utes”) or (worldname==”Chernarus”)) then
    {
    {_y animate [format [“%1”, _x], 0]} foreach _ones;
    } else
    {
    {_y animate [format [“%1”, _x], 1]} foreach _ones;
    };
    sleep 0.0001;
    } foreach _houses;

    It does work now, although it looks really messed up. Take it or leave it, the choice is yours.

    #2926
    [JPN]Fenrir
    参加者

    パラメーターでタスクが変わるものとかってありますか??

    #2971
    く”らぅん
    参加者

    上にも書かれているStealerさんのEpinephrine除去トリガーですが、

    player removeMagazines "ACE_Epinephrine";

    player removeMagazines "ACE_Epinephrine";
    [player, "MAG", "ACE_Epinephrine", -1] call ACE_fnc_RemoveGear;

    にしたらバックパックの中のEpinephrineまで取り除けました。

    次のCoop Nightで使おうと思います。

    Stealerさんありがとうございました!!

    • この返信は10年、 1ヶ月前にく”らぅんが編集しました。
    #3224
    く”らぅん
    参加者

    HELP!

    Ammoboxの中にある特定のWeaponやMagazineの数をCountで数えることって可能ですか?
    例えば「あるAmmoboxの中にStoneが○個以上入った場合」みたいなTriggerのConditionを作りたいです。

    #3225
    POLPOX
    ゲスト

    >Ammoboxの中にある特定のWeaponやMagazineの数をCountで数える
    Arma2の話と仮定してちょっとMagazineで作ってみました。Arma3(まだ持ってない)には新しくmagazineCargoなるスクリプトが出来たみたいなので、それを使ってみるといいかも。
    Array0番にammobox、1番に探したいMagazineのclassNameを入れると、_lastNumberにその数が返ってきます。

    _ammocase = _this select 0 ;
    _wantFind = _this select 1 ;
    
    _findNumber = nil ;
    _lastNumber = 0 ;
    
    _magazineCargo = getMagazineCargo _ammocase ;
    
    for "_i" from 0 to ((count (_magazineCargo select 0)) -1) do {
    	if ((_magazineCargo select 0 select _i) == _wantFind) exitWith {
    		_findNumber = _i ;
    	} ;
    } ;
    
    if (isNil "_findNumber") then {
    	_lastNumber = 0 ;
    } else {
    	_lastNumber = (_magazineCargo select 1 select _findNumber) ;
    } ;

    もっといい書き方あるかもしれないけど、とりあえず。
    このスクリプトを定期的に繰り返して取得したり、グローバル変数に持ってきたり、このスクリプトの後にスクリプトを書くとかがいいと思います。改造OK。

    #3228
    く”らぅん
    参加者

    POLPOXさんの書いてくれたスクリプトを試してみましたが、_lastNumberに0しか返ってきません(´・ω・`)

    #3340
    POLPOX
    ゲスト

    >_lastNumberに0しか返ってきません
    自分の環境では普通に動きましたが…classNameが違うとかじゃないですか?

    #3398
    く”らぅん
    参加者

    動きました~
    ずいぶん初歩的なミスを犯してたみたいです^^;

    ミッションに使わせてもらいます、POLPOXさんありがとう!

    #18692
    POLPOX
    メンバー

    Arma3のCAF Aggressorsで追加されたAKを出来る限りHLC AK Packのものに置き換えるスクリプト作ってみました。
    DL
    使い方は簡単!水を入れたらレンジでチン!init.sqfなどに次のコードを入力してください。
    [] execVM "PLP_akReplace.sqf"
    又は
    true execVM "PLP_akReplace.sqf"
    前者のコードは例えばCAF AK74がHLC AK74に置き換わりますが、後者のコードはHLC AK74に加え時々HLC AKS74やAKS74u等に置き換わるようになります。

    CAF AK47とCAF AK74とCAF AK74GLとCAF RPK74とそのマガジンに対応。
    残念ながら人のみ対応。Ammoboxは対応してません。

    #90046
    michy_REV19
    キーマスター

           ..     、      ,_    
            ̄\_/ ̄ ̄\/ ̄     ゴゴゴゴゴゴ・・・
        ___/ ̄へ√⌒l⌒´ ̄ ̄\_ 
        ´        /   \ 

    どうも、スクリプト沼に堕ちはじめたみっちーです。
    僭越ながら初めて製作したスクリプトを公開させていただきます。
    Branch Divided Arsenal Script by michy

    表示するアイテムを兵科ごとに分けることができるArsenalスクリプトです。このスクリプトを導入することにより、各プレイヤーごとのArsenalに表示されるアイテムが減り、準備時間を短縮することが出来るほか、各兵科の役割を明確にすることが出来ます。
    マルチプレイヤーミッション向けに製作しており、途中参加プレイヤーにも対応しています。実際に何人かの方々に協力していただき、サーバー上でも動作確認済です。

    詳しい使用方法等はReadmeファイルをお読みください。もし何かわからないことがあれば、何なりとお申し付けください、サポートいたします。

    とくに難しい処理とか使ってませんし、使いづらいかもしれないし、既存のスクリプトと大差ないかもしれませんが、興味のある方は是非使ってみてください!!!何卒!!!

    ※追記1 (2016/3/10)
    ヘッダーコメント編集によりv1.1へ更新。仕様に変化は無し。

    • この返信は8年前にmichy_REV19が編集しました。理由: URL更新
15件の投稿を表示中 - 1 - 15件目 (全50件中)
  • このトピックに返信するにはログインが必要です。