Revscriptsys
Script Structure
Constructor:
CreatureEvent(eventName)
eventName: equivalent to the
name
tag in XML.Events:
onLogin(player)
onLogout(player)
onThink(creature, interval)
onPrepareDeath(creature, killer)
onDeath(creature, corpse, lasthitkiller, mostdamagekiller, lasthitunjustified, mostdamageunjustified)
onKill(creature, target)
onAdvance(player, skill, oldLevel, newLevel)
onHealthChange(creature, attacker, primaryDamage, primaryType, secondaryDamage, secondaryType, origin)
onManaChange(creature, attacker, primaryDamage, primaryType, secondaryDamage, secondaryType, origin)
onTextEdit(player, item, text)
onModalWindow(player, modalWindowId, buttonId, choiceId)
onExtendedOpcode(player, opcode, buffer)
Methods:
creatureEvent:register(): Finalizes the creatureEvent's definition and registers it.
creatureEvent:type(eventType):
eventType: Equivalent to the
type
tag in XML.
Examples
local loginEvent = CreatureEvent("newLoginEvent")
loginEvent:type("login")
function loginEvent.onLogin(player)
print(player:getName() .. " has logged in!")
return true
end
loginEvent:register()
local function damageMitigator(primaryDamage, secondaryDamage, mul)
primaryDamage = primaryDamage - (primaryDamage * mul)
secondaryDamage = secondaryDamage - (secondaryDamage * mul)
return primaryDamage, secondaryDamage
end
local healthChange = CreatureEvent("healthChangeMitigate")
healthChange:type("healthchange")
function healthChange.onHealthChange(creature, attacker, primaryDamage, primaryType, secondaryDamage, secondaryType)
-- Reduce health damage by 50%
primaryDamage, secondaryDamage = damageMitigator(primaryDamage, secondaryDamage, 0.5)
return primaryDamage, primaryType, secondaryDamage, secondaryType
end
healthChange:register()
local manaChange = CreatureEvent("manaChangeMitigate")
manaChange:type("manachange")
function manaChange.onManaChange(creature, attacker, primaryDamage, primaryType, secondaryDamage, secondaryType)
-- Reduce mana damage by 75%
primaryDamage, secondaryDamage = damageMitigator(primaryDamage, secondaryDamage, 0.75)
return primaryDamage, primaryType, secondaryDamage, secondaryType
end
manaChange:register()
local loginEvent = CreatureEvent("mitigatorRegistration")
loginEvent:type("login")
function loginEvent.onLogin(player)
-- Register both health/mana change mitigators to every single player who logs in
player:registerEvent("healthChangeMitigate")
player:registerEvent("manaChangeMitigate")
return true
end
loginEvent:register()
Last updated
Was this helpful?