CheckFriendlyFireOnTarget(object, float)

ターゲット周辺の球体状の範囲内の友好的クリーチャーの数を取得します。

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

Parameters

oTarget

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

fDistance

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


Description

oTargetを中心とした半径fDistanceを持つ球体範囲内の友好的ファクションの総数を返します。



Remarks

呼出者のヒットダイスの半分に満たない友好的クリーチャーは数えられません。

コアAI内で、保護系や増強系または有害な範囲呪文を使うかどうか決定するために使われています。目標範囲内に友好者がいる間は、ヘンチマンが無差別に有害な範囲呪文を使うことを防ぎます。


Requirements

#include "nw_i0_generic"

Version

1.26

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: AssociateCheck | CheckEnemyGroupingOnTarget | GetAttackTarget | GetAttemptedAttackTarget | GetIsFriend | GetIsReactionTypeFriendly
categories: Combat Functions | Core AI Functions


author: Iskander Merriman, editor: Charles Feduke, JP team: Rainie
Send comments on this topic.