CheckEnemyGroupingOnTarget(object, float)

ターゲット周辺の球体状の範囲内の敵の数を取得します。

int CheckEnemyGroupingOnTarget(
    object oTarget,
    float fDistance = 5.0
);

Parameters

oTarget

敵数をチェックする球体範囲の中心になる対象のobject

fDistance

敵数をチェックする球体状の半径(デフォルト:5.0)


Description

oTargetを中心とした半径fDistanceを持つ球体範囲内の敵対ファクションの総数を返します。これはCheckFriendlyFireOnTargetの反対です。



Remarks

この関数はnw_i0_generic.nssの3463行目にあります。

NPCのAIには非常に使える関数です。1つのクリーチャー周辺の全てのターゲットを1周循環し、呼出objectが敵対と見なす者の数を得ます。


Requirements

#include "nw_i0_generic"

Version

1.22

Example

// NPCに1以上の敵の集団を見渡させ、友好的なクリーチャーが
// 範囲内にないことを確かめます。次に、ファイアボール呪文を
// 持っている場合、それを発射させる
void main()
{
	oTarget = GetNearestCreature(CREATURE_TYPE_REPUTATION, REPUTATION_TYPE_ENEMY, OBJECT_SELF, 1, CREATURE_TYPE_PERCEPTION, PERCEPTION_SEEN);
	if(GetIsObjectValid(oTarget))
	{
		int nEnemy = CheckEnemyGroupingOnTarget(oTarget);
		int nFriendlies = CheckFriendlyFireOnTarget(oTarget);
		if( nFriendlies < 0 &&  nEnemy > 1)
		{
			ActionCastSpellAtObject(SPELL_FIREBALL,oTarget);
		}
	}
}

See Also

functions: CheckFriendlyFireOnTarget
categories: Combat Functions | Core AI Functions


author: Iskander Merriman, editor: John Shuell, JP team: Rainie
Send comments on this topic.