Difference between revisions of "EVENT TYPE ATTACK IMPACT"

From Dragon Age Toolset Wiki
Jump to: navigation, search
m (A couple of the integers aren't acurate.)
m (Fixed fixed template, moved and tweaked example)
 
Line 1: Line 1:
 
{{event
 
{{event
|sourcefile=script.ldf
+
|sourcefile   = script.ldf
|when=Exact moment of impact
+
|when         = Exact moment of impact
|from=Engine
+
|from         = Engine
|to=Attacking creature or player
+
|to           = Attacking creature or player
|tocategory1=creature
+
|tocategory1   = creature
|sortkey=ATTACK_IMPACT
+
|sortkey       = ATTACK_IMPACT
|creatordesc=attacker
+
|creatordesc   = attacker
|int0name=nHitResult
+
|int0name     = nHitResult
|int0desc=hit result (hit, miss, critical etc')
+
|int0desc     = hit result (hit, miss, critical etc')
|int1name=nEffectId
+
|int1name     = nEffectId
|int1desc=Effect ID
+
|int1desc     = effect Id
|object0name=oAttacker
+
|object0name   = oAttacker
|object0desc=attacker
+
|object0desc   = attacker
|object1name=oTarget
+
|object1name   = oTarget
|object1desc=target
+
|object1desc   = target
|location0name=lImpact
+
|location0name = lImpact
|location0desc=position
+
|location0desc = position
|location1name=lMissile
+
|location1name = lMissile
|location1desc=orientation
+
|location1desc = orientation
<dascript>
+
effect  eImpactEffect = GetAttackImpactDamageEffect(oAttacker,nEffectId);
+
object oWeapon = GetEffectObject(eImpactEffect,0);
+
int nApp = GetAppearanceType(oAttacker);
+
int nAbility = GetEffectInteger(eImpactEffect,1);
+
float fDamage = GetEffectFloat(eImpactEffect,0);
+
int nVfx = GetEffectInteger(eImpactEffect,0);
+
int nDamageType = GetEffectInteger(eImpactEffect, 2);
+
</dascript>
+
 
}}
 
}}
  
 
An attack has impacted the target. This can be melee (sword hit), ranged (arrow hit) or spell (fireball explodes). Used for applying damage, and handling abilities that function on hit (Berserk etc').
 
An attack has impacted the target. This can be melee (sword hit), ranged (arrow hit) or spell (fireball explodes). Used for applying damage, and handling abilities that function on hit (Berserk etc').
 +
 +
== Example ==
 +
 +
<dascript>
 +
case EVENT_TYPE_ATTACK_IMPACT:
 +
{
 +
    // decompose the attack impact event
 +
    int nEffectId = GetEventInteger(ev, 1);  // effect Id
 +
    object oAttacker = GetEventObject(ev, 0); // attacker
 +
 +
    // decompose the impact effect
 +
    effect eImpact = GetAttackImpactDamageEffect(oAttacker, nEffectId);
 +
    object oWeapon = GetEffectObject(eImpact, 0);
 +
    int nAbility = GetEffectInteger(eImpact, 1);
 +
    float fDamage = GetEffectFloat(eImpact, 0);
 +
    int nVfx = GetEffectInteger(eImpact, 0);
 +
    int nDamageType = GetEffectInteger(eImpact, 2);
 +
 +
    int nAppearance = GetAppearanceType(oAttacker);
 +
 +
    break;
 +
}
 +
</dascript>

Latest revision as of 20:16, 4 May 2011

Source:
script.ldf
Sent when:
Exact moment of impact
Sent from:
Engine
Sent to:
Attacking creature or player
Parameters:
  • Creator: attacker
  • Integer 0: hit result (hit, miss, critical etc')
  • Integer 1: effect Id
  • Object 0: attacker
  • Object 1: target
  • Location 0: position
  • Location 1: orientation

Usage

case EVENT_TYPE_ATTACK_IMPACT:
{
int nHitResult = GetEventInteger(ev, 0); // hit result (hit, miss, critical etc')
int nEffectId = GetEventInteger(ev, 1); // effect Id
object oAttacker = GetEventObject(ev, 0); // attacker
object oTarget = GetEventObject(ev, 1); // target
location lImpact = GetEventLocation(ev, 0); // position
location lMissile = GetEventLocation(ev, 1); // orientation

// insert event-handling code here

break;
}

An attack has impacted the target. This can be melee (sword hit), ranged (arrow hit) or spell (fireball explodes). Used for applying damage, and handling abilities that function on hit (Berserk etc').

Example

case EVENT_TYPE_ATTACK_IMPACT:
{
    // decompose the attack impact event
    int nEffectId = GetEventInteger(ev, 1);   // effect Id
    object oAttacker = GetEventObject(ev, 0); // attacker
 
    // decompose the impact effect
    effect eImpact = GetAttackImpactDamageEffect(oAttacker, nEffectId);
    object oWeapon = GetEffectObject(eImpact, 0);
    int nAbility = GetEffectInteger(eImpact, 1);
    float fDamage = GetEffectFloat(eImpact, 0);
    int nVfx = GetEffectInteger(eImpact, 0);
    int nDamageType = GetEffectInteger(eImpact, 2);
 
    int nAppearance = GetAppearanceType(oAttacker);
 
    break;
}