2017-09-29 6 views
0

Arma 3でのカスタムコンポジションのスポーンニングで遊んでいます。私は現在、カスタムコンポストを生成するために "LARs Composition Spawn Script"(https://forums.bistudio.com/forums/topic/191902-eden-composition-spawning/)を使用しています。マップの周りに生息する魚は、魅力的に機能します。アルマ3 - 特定のオブジェクトへの動的変数を持つaddAction

構成には、「quest_giver」という名前のオブジェクト(AI)が1つあります。この特定のオブジェクトに、私はアクションを追加したい。私の現在のコードは次のとおりです。_nameはOBJECTもちろんの「quest_giver」STRINGですIf(_name == "quest_giver")

// SPAWN RANDOM COMPOSITION ON RANDOM POSITION 
    _spawned_composition = [ _random_composition, _pos, [0,0,0], random 360 ] call LARS_fnc_spawnComp; 

    // GET OBJECTS FROM THE SPAWNED COMP BACK (ARRAY) 
    _objects = [_spawned_composition] call LARs_fnc_getCompObjects; 

    // TRYING TO ITERATE THROUGH OBJECTS TO FIND "quest_giver" 
    // AND ADD ACTION TO IT. 
    { 
     _type = typeName _x; 
     if (_type == "GROUP") then { 
      _units = units _x; 
      { 
       _var = missionNamespace getVariable ["name", _x]; 
       _name = typeOf _var; 
       if (_name == "quest_giver") then { 
        player globalChat format["%1",_name]; 
        //_speak = _x addAction ["Speak", {hint format ["Hello, it works !"]}]; 
       }; 
      } forEach _units; 
     }; 
    } forEach _objects; 

エラー。だから私はError Generic error in expressionを得る。

ただし、_var = missionNamespace getVariable ["name"、_ x]; "quest_giver"を返します。しかし、typeOf _varはSTRINGではなく "OBJECT"を返すので、OBJECTとして扱います。

ここで私が思うところで最も簡単なことは分かりません。これが理論的にも機能するのであれば、どんな考えですか?私はその中のオブジェクトに常に「quest_giver」で、さまざまなカスタム組成物を、作成

  • を達成しようとしています何


    。これまでのところ動作します。

  • ランダムに選択して、ランダムに配置します。これまでのところ動作します。
  • プレイヤーが彼と話すことができるように、クエストの贈り主に行動を加えます。テキストシンプルなテキストでポップアップすると、内容はランダムなクエストになります。私は5 xウォーターボトルを持ってきます。

私は、アクションの追加の前後に自分の道を知っていますが、この特定のオブジェクトにアクションを追加する方法を理解できません。 ...

答えて

1

私が間違っていない限り、あなたはユニットの名前を取得する方法について混乱しているようですか? あなたが(あなたが使用しているものがあり、それを入れない場合)ユニットの名前空間から名前のVARを取得したいことがあります

_name = _x getVariable ["name" /*var name*/, "" /*default value*/]; 
if (_name == "quest_giver") then { 
//... 

以上の可能性が高い(それは、エディタを介して設定された名前のことだ場合)と名前機能:

if ((name _x) == "quest_giver") then { 
+0

ありがとう@Fusselwurm入力してください。あなたのコードを見れば、if文の中で私の条件付き比較が間違っているかもしれません。 (私はオブジェクトと文字列を比較しようとしましたが、私はそれがエラーメッセージを与えたと思います)。私はすべての "quest_giver"オブジェクトを私がちょうど配列(https://github.com/Wolfenswan/ws_fnc/blob/master/Tools/fn_collectObjects.sqfを使って)に入れた後、配列とaddActionを繰り返し実行しました。これまでのところ素晴らしい仕事ですか? –

+0

複数のオブジェクトを使って複数の異なる場所を生成した後、それらのそれぞれに1つの特定のオブジェクト(「quest_giver」)がある - >次に、「quest_giver」オブジェクトへの参照を取得する方法がもっと混乱していると思うそれに対するaddAction。 –

+0

問題が再考されただけであっても、喜んで助けてくれます – Fusselwurm

関連する問題