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.