「OnPhysicalAttacked」の編集履歴(バックアップ)一覧はこちら
追加された行は緑色になります。
削除された行は赤色になります。
----
・OnBlockedに入るスクリプトを置いていきます。
・呪文以外で攻撃された時に発動する。
----
#Contents
**NWNデフォルト(翻訳付き)
void main()
{
if(!GetFleeToExit())
//ActivateFleeToExitの条件が整って居ない場合は真
{
if(!GetSpawnInCondition(NW_FLAG_SET_WARNINGS))
//自分のコンディションNW_FLAG_SET_WARNINGSが真でない場合は真
{
if(!GetIsObjectValid(GetAttemptedAttackTarget()) && !GetIsObjectValid(GetAttemptedSpellTarget()))
//自分が戦闘中でない場合は真
{
if(GetIsObjectValid(GetLastAttacker()))
//自分を攻撃した相手が有効なら真
{
if(GetBehaviorState(NW_FLAG_BEHAVIOR_SPECIAL))
//自分に振る舞いの基準が設定されている場合は真
{
//AdjustReputation(GetLastAttacker(), OBJECT_SELF, -100);
//これをオンにすると攻撃してきた対象のファンクションと
//自分のファンクションを敵対関係に設定する。
SetSummonHelpIfAttacked();
//「ENC_自分のタグ」という名前のエンカウンターを有効にする。
DetermineSpecialBehavior(GetLastAttacker());
//最後に攻撃してきた相手に対してデフォルトの基準で攻撃するかどうか決めます。
}
else
//振る舞いの基準が設定されてないなら流す
{
if(GetArea(GetLastAttacker()) == GetArea(OBJECT_SELF))
//対象と自分が同エリアに居る場合は真
{
SetSummonHelpIfAttacked();
//「ENC_自分のタグ」という名前のエンカウンターを有効にする。
DetermineCombatRound();
//対象に対してデフォルトの攻撃行動を取る
}
}
//Shout Attack my target, only works with the On Spawn In setup
//この機能を使いたければOnSpawnで設定しろ
SpeakString("NW_ATTACK_MY_TARGET", TALKVOLUME_SILENT_TALK);
//NW_ATTACK_MY_TARGETとプレイヤーに見えない声で喋る。
//Shout that I was attacked
SpeakString("NW_I_WAS_ATTACKED", TALKVOLUME_SILENT_TALK);
//NW_I_WAS_ATTACKEDとプレイヤーに見えない声で喋る。
}
}
}
else
{
//Put a check in to see if this attacker was the last attacker
//Possibly change the GetNPCWarning function to make the check
SetSpawnInCondition(NW_FLAG_SET_WARNINGS, FALSE);
//自分のコンディションNW_FLAG_SET_WARNINGSを偽に設定します。
}
}
else
{
ActivateFleeToExit();
//クリーチャーをその出口となるウェイポイントに走らせ消えます。
}
if(GetSpawnInCondition(NW_FLAG_ATTACK_EVENT))
{
SignalEvent(OBJECT_SELF, EventUserDefined(1005));
}
}
----
・OnPhysicalAttacked に入るスクリプト。
・呪文以外で攻撃された時に発動する。
----
#Contents
**NWNデフォルト(翻訳付き)
void main()
{
if(!GetFleeToExit())
//ActivateFleeToExitの条件が整って居ない場合は真
{
if(!GetSpawnInCondition(NW_FLAG_SET_WARNINGS))
//自分のコンディションNW_FLAG_SET_WARNINGSが真でない場合は真
{
if(!GetIsObjectValid(GetAttemptedAttackTarget()) && !GetIsObjectValid(GetAttemptedSpellTarget()))
//自分が戦闘中でない場合は真
{
if(GetIsObjectValid(GetLastAttacker()))
//自分を攻撃した相手が有効なら真
{
if(GetBehaviorState(NW_FLAG_BEHAVIOR_SPECIAL))
//自分に振る舞いの基準が設定されている場合は真
{
//AdjustReputation(GetLastAttacker(), OBJECT_SELF, -100);
//これをオンにすると攻撃してきた対象のファンクションと
//自分のファンクションを敵対関係に設定する。
SetSummonHelpIfAttacked();
//「ENC_自分のタグ」という名前のエンカウンターを有効にする。
DetermineSpecialBehavior(GetLastAttacker());
//最後に攻撃してきた相手に対してデフォルトの基準で攻撃するかどうか決めます。
}
else
//振る舞いの基準が設定されてないなら流す
{
if(GetArea(GetLastAttacker()) == GetArea(OBJECT_SELF))
//対象と自分が同エリアに居る場合は真
{
SetSummonHelpIfAttacked();
//「ENC_自分のタグ」という名前のエンカウンターを有効にする。
DetermineCombatRound();
//対象に対してデフォルトの攻撃行動を取る
}
}
//Shout Attack my target, only works with the On Spawn In setup
//この機能を使いたければOnSpawnで設定しろ
SpeakString("NW_ATTACK_MY_TARGET", TALKVOLUME_SILENT_TALK);
//NW_ATTACK_MY_TARGETとプレイヤーに見えない声で喋る。
//Shout that I was attacked
SpeakString("NW_I_WAS_ATTACKED", TALKVOLUME_SILENT_TALK);
//NW_I_WAS_ATTACKEDとプレイヤーに見えない声で喋る。
}
}
}
else
{
//Put a check in to see if this attacker was the last attacker
//Possibly change the GetNPCWarning function to make the check
SetSpawnInCondition(NW_FLAG_SET_WARNINGS, FALSE);
//自分のコンディションNW_FLAG_SET_WARNINGSを偽に設定します。
}
}
else
{
ActivateFleeToExit();
//クリーチャーをその出口となるウェイポイントに走らせ消えます。
}
if(GetSpawnInCondition(NW_FLAG_ATTACK_EVENT))
{
SignalEvent(OBJECT_SELF, EventUserDefined(1005));
}
}