randomize

2014/09/14

Arma3スクリプティング講座その6:スクリプトファイル

第六弾。どんどんスクリプトしていきましょ。
前回の答え。
"B_Heli_Light_01_F" createVehicle getPos player

さて、今回は前回の発展をしていきます。ついでに変数のお話もしていきます。
まずは前回の式にちょっと手を加えていきましょう。
_hunter = "B_MRAP_01_F" createVehicle getPos player
さあ新しいものが出てきましたが、基本は同じです。createVehicleは乗り物を生成するほか、Objectを出力してくれます。_hunterにそのObjectを代入することで、生成した乗り物にスクリプト操作が可能になります。
…その前に何かhunterの前に見慣れない記号がありますね。アンダーバーです。これはローカル変数であることを示すものです。
じゃあローカル変数って言ったら何か、って言ったらグローバル変数の対義語なわけですが、これじゃ良く分からないので次の絵を見てください。

…つまり、グローバル変数はどこでも使えて、ローカル変数はそのスクリプト内でしか使えないってことですね。今回で言えばinit.sqfです。グローバル変数は第三回で言えばmyFirstStringのような感じに、アンダーバーがない変数です。ぱっと見ローカル変数の利用価値がないように見えますが、グローバル変数を多用するとメモリを大量に使用して重くなる可能性があります。そこでローカル変数を使うことで、処理が終了すると用済みになる変数を用意できるのです。
では、使い方を見てみましょう。
_hunter = "B_MRAP_01_F" createVehicle getPos player ;
_hunter setDir 90 ;
以前にも見たような式で使うことが出来ます。他にも、setPosなどなど何でも使えます。createVehicleに座標を入力しても座標ピッタリにはスポーンせず、近くの空き地に沸くので、ピッタリに沸かせたいときなどにも使えます。
また、createVehicleには別の書き方があります。
_hummingbird = createVehicle ["B_Heli_Light_01_F",getPos player,[],0,"FLY"] ;
いろいろ引数が増えていますね。一番の見所は"FLY"でしょうか。Special欄のFlyingと同じ効果です。正直それ以外はどうでもいいんですけど。
無人のヘリコプターが空に登場しました。このままでは墜落してしまうのでいろいろ使いづらいのですが、とりあえず覚えておきましょう。

【実習】プレイヤー上空10mにHunter MRAPをスポーンさせる。

 

0 件のコメント :

コメントを投稿

注: コメントを投稿できるのは、このブログのメンバーだけです。