Difference between revisions of "GetCombatTarget"

From the Oblivion ConstructionSet Wiki
Jump to navigation Jump to search
imported>Vswe
m (Added Search Terms)
imported>Shademe
(Added methods to find PC's combat targets)
Line 5: Line 5:


Player.GetCombatTarget will always return 0 as the game cannot read the player's mind.
Player.GetCombatTarget will always return 0 as the game cannot read the player's mind.
   
== Notes ==
*To get the player's combat targets, you can either cast an AoE spell in the vicinity of the player, with the script attached to the spell could be:
 
<pre>begin scriptEffectStart
    if ( getCombatTarget == player )
        ; Do stuff
    endIf
end</pre>
 
To use a centralized script, have the spell pass the NPC's reference to an [[Activate|activator]] [[Activation_Functions|function]]
begin ScriptEffectStart
    if (GetCombatTarget == player)
        set ActRef.rNPC to GetSelf
        ActRef.Activate player, 1
    endif
end
 
The downside - each NPC can't have its own set of variables, but most of the time their not necessary.
 
* In turn, OBSE's [[GetFirstRef|Reference Walking Functions]] to get the references within a certain proximity to the player, check for their combat targets and do the appropriate code. Make sure this script in second intervals or greater. To track the combat targets, a [[Pluggy|Pluggy]] reference array can be used.
 
For a pseudo-code example, [http://www.bethsoft.com/bgsforums/index.php?showtopic=885227 look] into this forum thread.
 
[[Category: Functions]]
[[Category: Functions]]
[[Category: Functions (CS)]]
[[Category: Functions (CS)]]

Revision as of 06:58, 9 October 2008

Syntax:

[ActorID.]GetCombatTarget

Returns the calling actor's current combat target.

Player.GetCombatTarget will always return 0 as the game cannot read the player's mind.

Notes

  • To get the player's combat targets, you can either cast an AoE spell in the vicinity of the player, with the script attached to the spell could be:
begin scriptEffectStart
    if ( getCombatTarget == player )
        ;  Do stuff
    endIf
end

To use a centralized script, have the spell pass the NPC's reference to an activator function

begin ScriptEffectStart
    if (GetCombatTarget == player)
        set ActRef.rNPC to GetSelf
        ActRef.Activate player, 1
    endif
end

The downside - each NPC can't have its own set of variables, but most of the time their not necessary.

  • In turn, OBSE's Reference Walking Functions to get the references within a certain proximity to the player, check for their combat targets and do the appropriate code. Make sure this script in second intervals or greater. To track the combat targets, a Pluggy reference array can be used.

For a pseudo-code example, look into this forum thread.