Ovale

Documentation

The basis

If a default script is available for your class, you should have one or two icons on your screen. You can move these icons by dragging them.

If you click on the icon, you hide or show some check boxes and/or list boxes. These allow to do simple customization (e.g. a warlock can choose which curse to cast).

You can not cast the spell by clicking on the icon, but the keyboard key to press is displayed in the icon bottom left corner (if your class uses several stances, and if the spell is in several spell bars at different places, it may be wrong).

The option interface

To customize the addon, please launch the Blizzard option dialog (accessible through ESCAPE and Interface). In the Add-ons tab, you should find Ovale.

The first sheet displays the script that creates the icons.

The second sheet "Apparence" allows you to resize the icons.

The third sheet "Profile" allows you to save or load the current profile or reset to the default profile.

The script

The script is a small program in a custom language that creates the icons and other things. The preferred way to edit it is to copy it in your favorite text editor (like Notepad), modify it, and copy it back to World of Warcraft. Click the Accept button to save the changes, and the Compile button to try your script.

The basic commands

Macro definition

Define

Define a new constant. Every occurrence of NEWDEFINITION will be replaced by value.

Define(NEWDEFINITION value)

NEWDEFINITION
The name of the definition
value
A value.

Functions that returns text strings

These functions returns strings that can be used as parameter to option functions.

SpellName

Returns the spell name using its identifier (a number). E.g. use it for the name of a check box or a list item

SpellName(spellId)

spellId
A spell identifier

L

Returns a generic text in the user langauge.

The text identifier may be AOE, Melee, or Blood.

L(text)

text
The text identifier.

Spell configuration

CanStopChannelling

By default, while the player is channeling a spell, the add-on prevents any other action to show. If you call this function, the add-on does not have this behavior for the given spell. Deprecated. Use SpellInfo() with the canStopChannelling=1 parameter.

CanStopChannelling(spellId)

1
The channeling spell that can be interrupted

ScoreSpells

A list of SpellId that count against the scoring system. Every spell that is not in the list stops the scoring until a spell that is in the list is casted.

SpellInfo

Gives informations about a spell. It is not necessary for spells that does not have a cooldown.

SpellInfo(spellid cd=99 duration=99 canStopChannelling=3 toggle=1)

1
The SpellId
cd
The cooldown, in seconds
duration
Duration of the aura applied by this spell, in seconds (used only by OtherDebuffsExpires() at this time)
canStopChannelling
The channelling can be interrupted. The parameter is the number of ticks (e.g. canStopChannelling=3 for Mind Flay)
toggle
The spell is a toggle spell, like Heroic Strike (next-attack ability), or Divine Favor (next-spell ability)

SpellAddBuff

Tell Ovale that a spell applies one buff or more on the player.

SpellAddBuff(spellid buff1id=99 buff2id=99...)

1
The SpellId of the spell that applies the buffs
buff1id, buff2id...
The name of the parameter is the SpellId of the buff spell, and the value is its duration in seconds

SpellAddDebuff

Same as SpellAddBuff() but the spells are debuffs.

SpellAddTargetDebuff

Same as SpellAddDebuff() but the spells are applied to the target and not the player.

Option interface

AddCheckBox

Add a check box. AddCheckBox(checkboxId "Text")

checkboxId
An identifier that is used by CheckBoxOn or CheckBoxOff
"Text"
"Text" can be literal text enclosed in quotes or the SpellName or L function.

AddListItem

Add a new item to a list. If the list does not exist, it is created.

AddListItem(listId itemId "Text")

listId
A list identifier. Use the same for each item in the list.
itemId
An item identifier
"Text"
A text

AddIcon

Add a new icon. A script should be enclosed in the braces to describe the icon.

You can set parameters in the form AddIcon key1=value1 key2=value2 {}. Valid parameters are :

size=small
show as a small icon
nocd=1
hide the icon when the action is on cooldown

The AddIcon syntax

Nodes

The nodes are the basis of the script. A node may be:

  • a group, which is several nodes enclosed in braces
  • a keyword and its parameters (which are nodes)
  • a function

A node has:

  • a remaining time, which can be "infinite"
  • an action
  • a priority

The group

The script is a group itself.

The resulting node of a group is the node with the least remaining time. If two nodes have the same remaining time, the first defined node has priority. If a node has a lower priority than another node that would be clipped by the global cooldown, the higher priority node is chosen.

The keywords

if ''condition'' ''node''
The ''if'' node is the action from the ''node'', but the remaining time is at least the one from ''node'' (e.g. if TargetDebuffExpires(125) Spell(125))
unless ''condition'' ''node''
It is the same as ''node'' unless ''condition'' has a remaining time shorter or equal to that of ''node'', in which case the remaining time is infinite
''node1'' or ''node2''
The remaining time is the lowest between ''node1'' and ''node2''
''node1'' and ''node2''
The remaining time is the highest between ''node1'' and ''node2''
''n''s before ''node''
The remaining time is the remaining time of ''node'' plus ''n'' seconds
"n"s between "node1" and "node2"
The difference between the remaining time of "node1" and the remaining time of "node2" must be at most "n" seconds. If it is the case, the node remaining time is 0, otherwise it is infinite.

Functions with an action

The functions use the syntax FunctionName(parameter1=value1 parameter2=value2...). If the name of a parameter is committed, the default is 1, 2, etc.

Spell

1
The spell identifier
target
The target of the spell. Default is target. May be focus for example.
usable
Set this parameter to 1 if the spell should be hidden if it is not usable (special conditions not meet, not enough mana, etc.). E.g. use it for abilities that work only on some targets (undead, demons...), abilities that work only bellow a certain life percentage...
priority
Set the priority. Default is 3.

Macro

Same as Spell, but run a macro whose name is in parameter.

Item

Same as Spell, but use an item.

The parameter may be either an item identifier (the number that is used database web sites) or an inventory slot. See WoWWiki for a list of inventory slots.

Texture

A placeholder texture. May be used to denote anything that is not a spell like target swapping, movement, etc. See WoWWiki for a list.

Example: Texture(INV_Misc_Coin_01) will display coins. Time to earn some money, dying to boss enrage is not free!

Functions without actions

These functions do not return a priority or an action, only a remaining time. It means that they should only be used as the first node of ''if'' or ''unless'', or as any node of ''or'' or ''and''.

AfterWhiteHit

Test if a white hit just occured '''BROKEN'''

1
maximum time after a white hit

ArmorSetParts

Test how many armor set parts are equiped by the player '''BROKEN'''

1
set number
2
"more" or "less"
3
limit

BuffExpires

Test if a buff will expire on the player after a given time

1
buff spell id
2
expiration time
haste
the haste to apply to expiration time. spell is the only acceptable value
mine
1 if the buff must have been applied by the player

BuffGain

Test if some time elapsed since the last time the player gained this buff.

1
the spell id
2:
the minimum time elapsed

BuffPresent

Test if a buff is active

1
the buff spell id
stacks
minimum number of stacks

Casting

Test if the player casts a spell

1
the spell that should be casted

CheckBoxOff

Test if a list of checkboxes is off

1,...
the checkboxes names

CheckBoxOn

Test if a list of checkboxes is on

1,...
the checkboxes names

ComboPoints

Test how many combo points a feral druid or a rogue has

1
"less" or "more"
2
the limit

DebuffExpires

Test if a debuff on the player is about to expires. See BuffExpires.

DebuffPresent

Test if a debuff is on the player. See BuffPresent.

Glyph

Test if a glyph is on the player.

1
The glyph SpellId (not the object ItemId). e.g. 59333 for the Glyph of Blood Strike.

HasFullControl

Test if the player has full control of his character.

HasShield

Test if the player has a shield

ItemCount

Compare with a number of items.

GetItemCount(12345 more 2)

1
The ItemId of the item
2
more or less
3
The number to compare

IsFeared

Test if the player is feared by another player

IsIncapacited

Test if the player has been incapacited by another player (Sap, Gouge, Repentance)

IsRooted

Test if the player is rooted by another player

IsStunned

Test if the player has been stunned by another player (Bash, Blackout, Cheap Shot, Concussion Blow, Hammer of Justice, Kidney Shot, Revenge Stun, Shockwave)

Level

Compare with the player level

1
"less" or "more"
2
the limit

LifePercent

Test if the player life is bellow/above a given value in percent

1
"less" or "more"
2
the limit, in percent

List

Test if a list item is selected

1
the list name
2
the item name

Mana

Test if the player mana is above/bellow a given value

1
"less" or "more"
2
the mana/energy/rage... limit

Mana

Test if the player mana is above/bellow a given value

1
"less" or "more"
2
the mana/energy/rage... limit

ManaPercent

Test if the player mana is above/bellow a given value in percent

ManaPercent(more 24)

1
"less" or "more"
2
the mana/energy/rage... limit

OtherDebuffExpires

Test if a debuff that has been placed on any other target that the current target is about to expires

OtherDebuffExpires(12345 2 15)

1
The SpellId of the debuff
2
The time before the expiration in seconds, or 0 if the debuff must have expired (0 is the default)
3
The maximum number of seconds after the expiration before the target is to be ignored (10 is the default)

PetPresent

Test if any player pet is present (or not)

1
"yes" or "no"

Runes

Test how many runes are up (death rune count as any other rune).

Runes(frost 2 nodeath=1)

1
the type of rune (may be blood, unholy, frost, or death)
2
the minimum number of runes that are up
nodeath
Death runes are ignored in the count

Stance

Test if the player is in a given stance (or form)

1
the stance (a number, 1 being the first stance, 0 the normal stance if any)

TalentPoints

Test how many talent points has been spent in a talent

1
the talent identifier (use /script print(Ovale.talentNameToId["Talent name"]) to retreive)
2
"more" or "less"
3
the limit

TargetBuffPresent

Same as BuffPresent but for the target. Has the following additionnal parameter:

target
the target of the buff, the current target being the default

TargetClass

Test the class of the target

1
the class (may be rogue, warrior, mage, etc.)
2
yes or no

TargetClassification

Test the target classification

1
normal, elite, or worldboss

TargetCreatureType

Test the target creature type

1
the creature type (may be Beast, Critter, Demon, Dragonkin, Elemental, Giant, Humanoid, Mechanical, or Undead).

TargetDebuffExpires

Same as DebuffExpires but for another character than the player. There is an additionnal optionnal parameter:

target
the target of the buff, the current target being the default

TargetDebuffPresent

See TargetBuffPresent, but for debuffs.

TargetInRange

Test if the target is in range

1
the spell
2
yes or no

TargetIsCasting

Test if the target is casting any spell

1
yes or no

TargetLife

Compare with the life of the target.

1
"less" or "more"
2
the limit

TargetLifePercent

Test if the target life is bellow/above a given value in percent

1
"less" or "more"
2
the limit, in percents

TargetMana

Compare with the mana of the target.

1
"less" or "more"
2
the limit

TargetRelativeLevel

Test the target level difference with the player

1
"less" or "more"
2
[target level]-[player level] limit

TargetTargetIsPlayer

Test if the target's target is the player (or is not)

1
"yes" (it should be the player) or "no"

TotemExpires

Test if a totem expires

1
the totem type (earth, water, air, fire)
2
the time before expiration

WeaponEnchantExpires

Test if a temporary weapon enchant expires (for Shaman and Rogues)

1
either mainhand of offhand
2
the time before expiration in seconds

You must login to post a comment. Don't have an account? Register to get one!

Table of contents

  1. 1 The basis
  2. 2 The option interface
  3. 3 The script
    1. 3.1 The basic commands
      1. 3.1.1 Macro definition
        1. 3.1.1.1 Define
      2. 3.1.2 Functions that returns text strings
        1. 3.1.2.1 SpellName
        2. 3.1.2.2 L
      3. 3.1.3 Spell configuration
        1. 3.1.3.1 CanStopChannelling
        2. 3.1.3.2 ScoreSpells
        3. 3.1.3.3 SpellInfo
        4. 3.1.3.4 SpellAddBuff
        5. 3.1.3.5 SpellAddDebuff
        6. 3.1.3.6 SpellAddTargetDebuff
      4. 3.1.4 Option interface
        1. 3.1.4.1 AddCheckBox
        2. 3.1.4.2 AddListItem
        3. 3.1.4.3 AddIcon
    2. 3.2 The AddIcon syntax
      1. 3.2.1 Nodes
      2. 3.2.2 The group
      3. 3.2.3 The keywords
      4. 3.2.4 Functions with an action
        1. 3.2.4.1 Spell
        2. 3.2.4.2 Macro
        3. 3.2.4.3 Item
        4. 3.2.4.4 Texture
      5. 3.2.5 Functions without actions
        1. 3.2.5.1 AfterWhiteHit
        2. 3.2.5.2 ArmorSetParts
        3. 3.2.5.3 BuffExpires
        4. 3.2.5.4 BuffGain
        5. 3.2.5.5 BuffPresent
        6. 3.2.5.6 Casting
        7. 3.2.5.7 CheckBoxOff
        8. 3.2.5.8 CheckBoxOn
        9. 3.2.5.9 ComboPoints
        10. 3.2.5.10 DebuffExpires
        11. 3.2.5.11 DebuffPresent
        12. 3.2.5.12 Glyph
        13. 3.2.5.13 HasFullControl
        14. 3.2.5.14 HasShield
        15. 3.2.5.15 ItemCount
        16. 3.2.5.16 IsFeared
        17. 3.2.5.17 IsIncapacited
        18. 3.2.5.18 IsRooted
        19. 3.2.5.19 IsStunned
        20. 3.2.5.20 Level
        21. 3.2.5.21 LifePercent
        22. 3.2.5.22 List
        23. 3.2.5.23 Mana
        24. 3.2.5.24 Mana
        25. 3.2.5.25 ManaPercent
        26. 3.2.5.26 OtherDebuffExpires
        27. 3.2.5.27 PetPresent
        28. 3.2.5.28 Runes
        29. 3.2.5.29 Stance
        30. 3.2.5.30 TalentPoints
        31. 3.2.5.31 TargetBuffPresent
        32. 3.2.5.32 TargetClass
        33. 3.2.5.33 TargetClassification
        34. 3.2.5.34 TargetCreatureType
        35. 3.2.5.35 TargetDebuffExpires
        36. 3.2.5.36 TargetDebuffPresent
        37. 3.2.5.37 TargetInRange
        38. 3.2.5.38 TargetIsCasting
        39. 3.2.5.39 TargetLife
        40. 3.2.5.40 TargetLifePercent
        41. 3.2.5.41 TargetMana
        42. 3.2.5.42 TargetRelativeLevel
        43. 3.2.5.43 TargetTargetIsPlayer
        44. 3.2.5.44 TotemExpires
        45. 3.2.5.45 WeaponEnchantExpires

Facts

Date created
25 Jan 2009
Last updated
11 Oct 2009

Author