ActionAttack(object, int)

2匹のクリーチャー間、またはクリーチャーとObject間で攻撃を開始します。

void ActionAttack(
    object oAttackee,
    int bPassive = FALSE
);

Parameters

oAttackee

攻撃されるクリーチャーまたはobject

bPassive

攻撃が受動モードがどうかを決定します。(デフォルト:FALSE)


Description

現在装備している武器を使って、呼出クリーチャーにoAttackeeを攻撃させます。攻撃はoAttackeeのOnPhysicalAttackedイベントを生じさせますので、そこに、oAttackeeの反応を攻撃者に変えるスクリプトがある場合、反撃するでしょう。しかしながら、ActionAttack単独では、反応を変更しません。

bPassiveがTRUEに設定されている場合、攻撃者はoAttackeeを攻撃するために動くことはありません。攻撃者が近接用武器しかもっていなく、oAttackeeが遠くにいる場合、彼はただその場に立ちつくします。



Remarks

複数回の戦闘を起こす時にはDetermineCombatRound()を使用してください。しかしながら、攻撃側と被攻撃側のファクションが同一の場合は注意してください。DetermineCombatRound()コマンドが出されても、彼等は戦いません。

ファクションが複雑な場合、一連の戦闘動作の全てを行わず、単発の攻撃を行います(酒場の女給さんがお痛がすぎる客をはたいたり、用心棒が一発くれてやったりするようにです)。そのような場合、ActionAttackを呼出す直前に

DelayCommand(2.0, SurrenderToEnemies()); を使用するか

−または−


単純に攻撃を中止するようにClearAllAction(TRUE)を命令してください。


ActionAttackは武器(近接用、遠距離用、モンスター用自然装備)のみを使用します。

いかなる特技(受動的なものは除く)、呪文、その他の能動的タレントも使用しません。


Version

1.29

Example

// 箱のOnOpenイベントに設定する。
// "CHEST_GUARD"というタグを持つ近くの衛兵に
// 箱を開けた人物を攻撃させる。
void main()
{
    // objectの初期化
    object oGuard = GetObjectByTag("CHEST_GUARD");
    object oPlayer = GetLastOpenedBy();
    // 衛兵は箱を開けたプレイヤーを攻撃する
    AssignCommand(oGuard, ActionDoCommand(SpeakString("Taste my blade you bloody thief!")));
    AssignCommand (oGuard, ActionAttack(oPlayer));
}

See Also

functions: DetermineCombatRound | GetAttackTarget | GetAttemptedAttackTarget | TalentDragonCombat
categories: Action on Object Functions | Combat Actions Functions


author: Ryan Hunt, editor: Lilac Soul, additional contributor(s): Le Proctophantasmiste, James Allen, Jassper, Lilac Soul, JP team: Rainie
Send comments on this topic.