GetFirstObjectInShape(int, float, location, int, int, vector)

シェイプ(shape)内の指定タイプ(クリーチャー、ドア等)の最初のobjectを得ます。

object GetFirstObjectInShape(
    int nShape,
    float fSize,
    location lTarget,
    int bLineOfSight = FALSE,
    int nObjectFilter = OBJECT_TYPE_CREATURE,
    vector vOrigin = [0.0,0.0,0.0]
);

Parameters

nShape

SHAPE_*

fSize

シェイプ形状の大きさ(さらなる情報はDescriptionを参照してください)または、RADIUS_SIZE_*。

lTarget

シェイプの始点

bLineOfSight

これは呪文エフェクトが壁を通り抜けないことを確実にするために使用することができます。(デフォルト:FALSE)

nObjectFilter

このobjectタイプの結果を制限します(OBJECT_TYPE_*)。(デフォルト: OBJECT_TYPE_CREATURE)

vOrigin

通常はスペルキャスターの位置です。(Default: [0.0,0.0,0.0])


Description

指定したnShapeのfSize内の最初のobjectを、objectが含まれていない場合はOBJECT_INVALIDを返します。

nShapeに依存するfSizeの意味は以下のとおり:

If nShape == SHAPE_SPHERE, fSizeは球状範囲です。

If nShape == SHAPE_SPELLCYLINDER, fSizeは円筒状範囲です。

If nShape == SHAPE_CONE, fSizeは広い円錐状範囲です。.

If nShape == SHAPE_CUBE, fsizeは立方体の面のうちの1つの長さの半分です。

例えば、クリーチャーとドアだけを返すためには、nObjectFilterパラメーターの値をOBJECT_TYPE_CREATURE | OBJECT_TYPE_DOORにします。



Known Bugs

この関数はOBJECT_TYPE_PLACEABLEオブジェクトを返しません(キーワードやOBJECT_TYPE_ALLを使っても)。

SHAPE_CONEの形状がCONE(円錐)でないことが数人のユーザーから報告されています。そして実はこの定数はオフィシャルキャンペーン全体を通して、たった一つの関数でしか使われてないことで、それが少しバグが多くしているのかもしれません。

SHAPE_SPELLCONE定数では、ITargetは円錐の角度を表します。ltargetの方向にfSizeだけ離れます。"vOrigin"は無視されます−円錐に始点はありません−−−円錐の始点はOBJECT_SELFの位置になります。

SHAPE_SPELLCYLINDERでは、"fSize"は通常円筒の長さで、円筒の終点はvOriginからlTargetに向かって沿うように"fSize"進んだところです。円筒の幅(直径)は常に約10フィート(?)です

−公式フォーラムでのKorak氏の報告


Version

1.31

Example

// バーニングハンズ呪文を使うBiowareのスクリプトより

// [Snip][Snip]
oTarget = GetFirstObjectInShape(SHAPE_SPELLCONE, 10.0, GetSpellTargetLocation(), TRUE, OBJECT_TYPE_CREATURE | OBJECT_TYPE_DOOR | OBJECT_TYPE_PLACEABLE);

// 無効なobjectを捕まえるまで、呪文の形状範囲内のターゲットを循環する
while(GetIsObjectValid(oTarget))
{
   if(!GetIsReactionTypeFriendly(oTarget))
   {
      // セービングスロー、ダメージ、エフェクト等を操る
   }
   // 呪文の形状範囲内の次のターゲットを選択する
   oTarget = GetNextObjectInShape(SHAPE_SPELLCONE, 10.0, GetSpellTargetLocation(), TRUE, OBJECT_TYPE_CREATURE | OBJECT_TYPE_DOOR | OBJECT_TYPE_PLACEABLE);
}
// [Snip][Snip]

See Also

functions: GetNextObjectInShape
categories: Miscellaneous Functions
constants: OBJECT_TYPE_* Constants | RADIUS_SIZE_* Constants | SHAPE_* Constants


author: Tom Cassiotis, editor: Charles Feduke, additional contributor(s): Paul Catalano, JP team: geshi, Rainie
Send comments on this topic.