- OnPerceptionに入るスクリプト。
- 対象を知覚した時に発動する。(視覚&聴覚)
NWNデフォルト(翻訳付き)
#include "nw_i0_generic"
void main()
{
if(GetFleeToExit()) {
// 逃げる場所が設定されてるなら逃げる
ActivateFleeToExit();
} else if (GetSpawnInCondition(NW_FLAG_SET_WARNINGS)) {
// 攻撃する前に一つの警告を与えますが…完全に実装していません
SetSpawnInCondition(NW_FLAG_SET_WARNINGS, FALSE);
//Put a check in to see if this attacker was the last attacker
//Possibly change the GetNPCWarning function to make the check
} else {
object oAttacker = GetLastAttacker();
if (!GetIsObjectValid(oAttacker)) {
// 見失った相手には何もしない
} else if (!GetIsFighting(OBJECT_SELF)) {
// この場合誰とも戦っていないので、攻撃してきた相手と戦いはじめる
if(GetBehaviorState(NW_FLAG_BEHAVIOR_SPECIAL)) {
SetSummonHelpIfAttacked();
//特定のエンカウンターをオンにする
DetermineSpecialBehavior(oAttacker);
//草食、肉食、その他に相応しい行動を取る
} else if (GetArea(oAttacker) == GetArea(OBJECT_SELF)) {
SetSummonHelpIfAttacked();
//特定のエンカウンターをオンにする
DetermineCombatRound(oAttacker);
//戦闘行動を取る
}
//コンディションが設定されてるなら仲間に攻撃命令を出す
SpeakString("NW_ATTACK_MY_TARGET", TALKVOLUME_SILENT_TALK);
//自分が攻撃していることを伝える
SpeakString("NW_I_WAS_ATTACKED", TALKVOLUME_SILENT_TALK);
}
}
if(GetSpawnInCondition(NW_FLAG_ATTACK_EVENT))
{
SignalEvent(OBJECT_SELF, EventUserDefined(EVENT_ATTACKED));
}
}
最終更新:2005年12月01日 22:37