Script:on hit: Difference between revisions

From Arx Libertatis Wiki
Jump to navigation Jump to search
mNo edit summary
mNo edit summary
Line 40: Line 40:
Spell IDs are made up of the [[Script:spellcast#Spell_names|spell name]] followed by <code>_</code> and then a unique instance number. Use the {{Command|if|isin}} command to check for spell or damage types:
Spell IDs are made up of the [[Script:spellcast#Spell_names|spell name]] followed by <code>_</code> and then a unique instance number. Use the {{Command|if|isin}} command to check for spell or damage types:


  '''on hit''' {
'''on hit''' {
    {{Command|if}} {{Highlight|string|fireball}} isin {{Highlight|string|^$param3}} {
  {{Command|if}} {{Highlight|string|fireball}} isin {{Highlight|string|^$param3}} {
      // Hit by a fireball
    // Hit by a fireball
    }
  }
    {{Command|if}} {{Highlight|string|l}} isin {{Highlight|string|^$param4}} {
  {{Command|if}} {{Highlight|string|l}} isin {{Highlight|string|^$param4}} {
      // Hit with lightning damage
    // Hit with lightning damage
    }
  }
  }
}


For [[:Category:NPCs|NPCs]], scripts can prevent the damage to the entity by responding to the {{Event|hit}} event with {{Command|refuse}}.
For [[:Category:NPCs|NPCs]], scripts can prevent the damage to the entity by responding to the {{Event|hit}} event with {{Command|refuse}}.


When 0 life or durability is reached for [[:Category:NPCs|NPCs]] or [[:Category:Props|props]], the {{Event|die}} or {{Event|break}} events are sent respectively.
When 0 life or durability is reached for [[:Category:NPCs|NPCs]] or [[:Category:Props|props]], the {{Event|die}} or {{Event|break}} events are sent respectively.

Revision as of 05:33, 9 January 2022

The hit script event is sent by the damage source to NPCs and props when the the entity is damaged. ^&param1 will be set to the damage received by the entity while ^$param2 is set to the weapon type if the damage source is the player: spell, bare, dagger, 1h, 2h, arrow or (for NPC targets only before Arx Libertatis 1.3) summoned if the damage is from a summoned entity. In this case, the event ^sender will be the player.

With Arx Libertatis 1.3 or newer, ^$param3 holds the spell ID or entity ID of the weapon or summoned entity used to inflict the damage and ^$param4 specifies the damage type flags as used in the dodamage and damager commands:

f Fire
m Magical
p Poison
l Lightning
c Cold
g Gas
e Metal
w Wood
s Stone
a Acid
o Organic
r Drain life
n Drain mana
u Push

Spell IDs are made up of the spell name followed by _ and then a unique instance number. Use the if isin command to check for spell or damage types:

on hit {
  if fireball isin ^$param3 {
    // Hit by a fireball
  }
  if l isin ^$param4 {
    // Hit with lightning damage
  }
}

For NPCs, scripts can prevent the damage to the entity by responding to the hit event with refuse.

When 0 life or durability is reached for NPCs or props, the die or break events are sent respectively.