Post by Toversnol on Aug 23, 2008 23:13:37 GMT 1
wordt nog gefixed... pleuris lange tekst... 20-07-2009
Index:
FAQ - Veel gestelde vragen:
Wat is een Macro?
» Een Macro is een kleine, zelfgemaakte actie voor World of Warcraft.
Dit word gemaakt met de LUA taal.
Wanneer je een Macro tot werking wilt brengen,
druk je op de Macro en hij voert de actie uit die jij hebt opgegeven in de Macro.
Een klein voorbeeld is:
/cast Fireball(Rank 1)
Deze Macro zal Fireball Rank 1 casten op je target. Dit is een erg simpel voorbeeld waarbij een Macro eigenlijk overbodig is.
Waarom kan ik niet 2 spells tegelijk casten, of snel achter elkaar?!
» Een Spell/Abillity/Item kan de Global Cooldown triggeren.
De Global Cooldown is het aantal seconden dat je tussen de spells in krijgt.
Bijvoorbeeld je cast Fire Blast, je krijgt nu 1 tot 1.5 seconden de kans niet meer om te casten, want de Global Cooldown is actief.
Het aantal seconden Global Cooldown Verschilt per class.
Warriors en Paladins hebben bijvoorbeeld 1.5 seconden en Rogues 1 seconde.
Kan ik ook items gebruiken in mijn Macro?
» Yup, het is allemaal mogelijk.
Hierover meer in de uitleg van Macro Bewerking.
Uitleg Macro Werking
Een Macro werkt volgens de LUA taal, met hier en daar werkende scripts, wat in verschillende stijlen geschreven kan worden, een onderscheid tussen professionele lappen tekst en tussen de meer 'rustige' lappen tekst.
Professionele richting:
Professionele Macro schreef:
/script
for s=1,23
do l=GetInventoryItemLink("player",s);
if (l) then a,b,c,d,e,f,g,h,i,j=GetItemInfo(l);
DEFAULT_CHAT_FRAME:AddMessage(
format("Slot %s: %s (%s/%s), level %s, rarity %s;",
s, b, f, g, d, c));
end;
end;
Wat deze Macro doet is het volgende: Het geeft al je Items weer, die je hebt ge-equiped, in je chatbox met de gegeven Itemlink en Itemslot nummer.
Een meer Amateuristische, of kleine, Macro:
Kleine Macro schreef:
/Cast [help] Healing Touch; [Harm] Entangling Roots
Deze macro Cast Healing Touch wanneer je een Vriendelijke Target hebt, en Entangling Roots wanneer je een Vijandige Target hebt.
Een Macro werkt dus alleen wanneer een werkende en bestaande actie uitgevoerd kan worden en wanneer die actie bestaat. Je kan niet zomaar wat gaan verzinnen, het moet volgens de regels en de taal.
Uitleg Macro Bewerking
En dan nu over naar het gedeelte waar we het gaan hebben over de verschillende Commands, Options, enkele algemeen gebruikte macro's, en meer!
» COMMANDS LIST (Gebruik NOOIT de < en > tekens.)
/cast <Spellname(Rank X, optioneel)>
Cast de opgegeven spell. Ranks voeg je toe als je wilt downraken.
/petfollow [option]
Laat je je Pet jou volgen.
/petattack [option] <target>
Laat je je Pet aanvallen, met Option en Target optie.
/petautoattackon <spell> or /petautoattackoff <spell>
Laat je pet aanvallen. Deze Macro kan je spammen zonder dat de Attack tussen On en Off schakelt wat wel het geval is bij /Petattack.
/equip <Itemname>
Equiped de opgegeven item.
/equipslot <X> <itemname>
Equiped de opgegeven Item in het opgegeven Slotnummer.
Slotnummers:
1 is Head, 2 is Neck, 3 is Shoulder, 4 is Shirt, 5 is Chest, 6 is Waist, 7 is Legs, 8 is Feet, 9 is Wrist, 10 is Hands, 11 is Top Finger, 12 is Bottom Finger, 13 is Top Trinket, 14 is Bottom Trinket, 15 is Back, 16 is Main Hand, 17 is Off-Hand, 18 is Ranged, 19 is Tabard, 20 is Ammo.
/target
Target een random target dichtbij.
/swapactionbar <X>
Verander je action bar naar het opgegeven nummer.
/cancelaura [option] <name>
Verwijderd een buff met de opgegeven naam.
/castrandom spell1, spell2, spell3
Cast 1 van de opgegeven spells, zonder zich aan de volgorde te houden (voorbeeld is: Polymorph, Polymorph (Pig), Polymorph (Turtle))
/userandom 1, 2
Gebruikt een itemnaam die opgegeven staat zonder zich aan de volgorde te houden.
/cleartarget
Verwijderd je huidige Target.
/stopmacro [option]
Laat je je Macro blokkeren, erg handig voor Channeled spells in een macro zodat bij het spammen van de knop je channel spell niet stopt met casten.
/castsequence spell1, spell2, spell3
Cast de opgegeven Spells in de volgorde dat jij ze hebt neergezet.
/targetenemy, /targetfriend, /targetparty, /targetraid
Target een Enemy, Friend, Partymember(willekeurig) of raidmember(willekeurig).
» [OPTION] UITLEG
Je zult het al opgemerkt hebben tussen de lijst, er staan een aantal keren [Option] bij. Dit is nieuw ingebracht in TBC en is erg handig.
De Optie die in de [Option] staat moet uitkomen op 'True' of 'False' voordat de actie ondernomen kan worden. Dus bijvoorbeeld, je macro staat op actionbar 1, en in de macro staat /Cast [Actionbar:1] Fireball dan word de Option 'TRUE'. Maar wanneer je op Action Bar 2 staat, word het 'FALSE' en zal de Macro niks uitvoeren.
Ook heb je nog de AND en OR functie binnen de [Option] optie.
And = /
OR = ,
actionbar:<#>
Cast de opgegeven Spell/Abillity/Item wanneer je je op de opgegeven Actionbar bevind.
button:<#>
De Macro zal alleen lukken wanneer je je Macro hebt aangeklikt met de opgegeven knop (Linker muisknop is bijvoorbeeld '1')
channeling:<spell>
Deze Macro gaat alleen werken wanneer er de opgegeven spell word gechanneled.
combat
Gaat werken wanneer je je In-Combat bevind. Als je Out of Combat bent, zal de Macro dus niet werken.
dead
Macro gaat werken wanneer je dood bent.
equipped:<invslot>|<itemclass>|<itemsubclass>
Macro zal pas werken wanneer de Opgegeven Itemclass voldoet aan het wapen dat je op dat moment draagt.
Voorbeeld: /cast [equipped: Two-Handed Axe] Mortal Strike
exists
Als de target bestaat, zal de Macro zijn werk doen.
group
Wanneer je je in een groep bevind, zal de Macro werken.
group:party/raid
Zelfde als Group, maar dan specifieker.
help
De spell zal afvuren wanneer je target Friendly is.
harm
De spell zal afvuren wanneer je target Hostile is.
indoors, outdoors
De macro zal zijn werk doen wanneer je je bevind in de opgegeven omgeving.
modifier or modifier:shift|ctrl|alt
De Macro zal gaan werken wanneer de opgegeven knop is ingedrukt wanneer je de Macro wilt gebruiken.
mounted, swimming, flying
Macro zal pas gaan werken wanneer je je bevind op je Mount, terwijl je Zwemt of wanneer je Vliegt.
party
Macro zal gaan werken wanneer de Target een lid uit je groep is.
pet:<pet type OR pet name>
Word 'True' wanneer de opgegeven pet bestaat.
Pet types voorbeeld: Owl, Bear, Imp.
Namen werken ook.
[Pet] werkt voor ELKE pet.
raid
Macro zal gaan werken wanneer de Target een lid uit je groep of raid is.
show <spell>
Laat je de Spell Tooltip zien wanneer je muis over de Macro bevind.
Makkelijker is:
#Showtooltip
/cast blablabla
stance or stance:#
Word 'True' wanneer je je in de opgegeven stand bevind.
stealth
Pas wanneer je in Stealth zit zal de Macro werken.
target=<unit>
Laat je een Target kiezen voor de opgegeven spell.
TargetID lijstje: #=Nummer
Focus
Player
Pet
Party#
Partypet#
Raid#
Raidpet#
Target
Playertarget
Mouseover
None
npc / NPC
Macro Voorbeelden
Omdat er nog steeds erg veel vragen blijven binnen stromen over macro's (zeker de meest simpele...) ga ik mij maar wagen op een paar voorbeelden.
Deze voorbeelden zullen vooral de [OPTION] syntax gebruiken, omdat je hiermee ongelofelijk veel uit je macro's kunt halen.
>> Voorbeeld 1.
Code:
/cast [nostance:1] Dire Bear Form
/cast [stance:1] Feral Charge;
Erg voor de hand liggende Macro, maar erg effectief voor de (healing) druid die snel een interrupt nodig heeft.
>> UITLEG
[nostance:1] -- Wat dit doet is hij checked of je niet in Stance #1 bent (in dit geval (dire) bear form). Zit je niet in de opgegeven stance, dan voert hij de macro door naar het deel "Dire Bear Form" (FALSE statement). Zit je in het geval dat je wel in Stance #1 zit (TRUE statement) dan negeert hij dit gedeelte en schiet hij over naar...
[stance:1] -- Wat deze syntax doet is, hij checked of je wel in deze stance staat. Is dit zo, dan gaat ie over naar het gedeelte "Feral Charge". Zit je NIET in Stance 1 dan negeert hij dit gedeelte en gaat naar [nostance:x]
<patch#> Macro Changes________________
A Blizzard MVP "Iriel" has compiled a list of 2.2 announced (and sometimes observed) changes in the User Interface API's and functionality for the 2.2.0 release, the following changes were reported by the CM Slouken (a new announced change today on 2.2 frame positions):
Targetting
* If you specify a target for a spell cast in a macro that does not exist, it will show an error instead of defaulting to your current target.
Macros
* Conditional macros with multiple targets will use the appropriate context sensitive target for visual range feedback.
* The entire dynamic macro update system has been moved into highly optimized C++ for 2.2, resulting in a roughly 100x speedup (That's times, not percent). Please keep an eye out for bugs in macro options and dynamic feedback, since it's all completely rewritten from scratch. TEST COMPLEX MACROS THOROUGHLY IN THE PTR
Frame Support
* Frame:RegisterEvent() and Frame:UnregisterEvent() have been optimized and can be used in conjunction with OnShow() and OnHide() to greatly improve performance of the UI. This technique has been used to optimize the bank, bags, inventory, spellbook, and unit frames for a decent speed improvement in 2.2.0.
* The game tooltip now handles periodic updates directly instead of requiring OnUpdate functions in each button that might have a tooltip. Many of the related OnEnter functions now take a 'self' parameter, so AddOns will need to be updated to reflect this change.
* Frame positions are saved relative to the nearest corner rather than the upper left corner, so that they don't move when changing resolution and screen aspect ratio.
Key Bindings
The game will distinguish between right and left modifier keys:
* Key bindings and modified clicks may optionally specify LSHIFT, RSHIFT, LCTRL, RCTRL, LALT, RALT instead of the normal SHIFT, CTRL, ALT modifiers. The default UI will not set L/R modifiers and will continue to use the normal (either side) modifiers.
* Macro conditionals may use lshift, rshift, lctrl, rctrl, lalt, ralt in addition to the normal modifiers.
* There are several new API functions to query each modifier individually: IsLeftShiftKeyDown(), IsRightShiftKeyDown(), IsLeftControlKeyDown(), IsRightControlKeyDown(), IsLeftAltKeyDown(), IsRightAltKeyDown()
There will be a unified system for customizing modified clicks in the UI:
Modified Clicks are specified using a new section in Bindings.xml, e.g.
<ModifiedClick name="DRESSUP" default="CTRL-BUTTON1"/>
These click actions are context sensitive, and Lua code chooses which action is appropriate based on the current context.
Script API:
* count = GetNumModifiedClickActions()
* action = GetModifiedClickAction(index)
* SetModifiedClick("action", "binding")
* binding = GetModifiedClick("action")
* active = IsModifiedClick(["action"])
A 'binding' is in the form of MOD-BUTTONX, e.g. CTRL-BUTTON1, or a simple modifier, e.g. CTRL
These modified click bindings are loaded and saved with the normal key bindings, so if you make changes you'll need to save them with:
SaveBindings(GetCurrentBindingSet()) ;
The Blizzard code has been reworked to use the following modified click actions:
<ModifiedClick action="SELFCAST" default="ALT"/>
<ModifiedClick action="AUTOLOOTTOGGLE" default="SHIFT"/>
<ModifiedClick action="STICKYCAMERA" default="CTRL"/>
<ModifiedClick action="CHATLINK" default="SHIFT-BUTTON1"/>
<ModifiedClick action="DRESSUP" default="CTRL-BUTTON1"/>
<ModifiedClick action="SOCKETITEM" default="SHIFT-BUTTON2"/>
<ModifiedClick action="SPLITSTACK" default="SHIFT"/>
<ModifiedClick action="PICKUPACTION" default="SHIFT"/>
<ModifiedClick action="COMPAREITEMS" default="SHIFT"/>
<ModifiedClick action="OPENALLBAGS" default="SHIFT"/>
<ModifiedClick action="QUESthingyCHTOGGLE" default="SHIFT"/>
This system replaces the following functions:
SetAutoLootToggleKey(), GetAutoLootToggleKey(), IsAutoLootKeyDown()
SetActionSelfCastKey(), GetActionSelfCastKey(), IsActionSelfCastKeyDown()
Settings
* The pitchLimit setting will be re-enabled.
Bug Fixes
* Fixed issue where frame sizes/positions aren't correctly recalculated on demand.
* Fixed unnecessary chopping of FontString contents when scaled.
Macro's <Blukkie's Uitleg>
Index:
FAQ - Veel gestelde vragen
Uitleg Macro werking
Uitleg Macro bewerking
Uitleg Macro werking
Uitleg Macro bewerking
FAQ - Veel gestelde vragen:
Wat is een Macro?
» Een Macro is een kleine, zelfgemaakte actie voor World of Warcraft.
Dit word gemaakt met de LUA taal.
Wanneer je een Macro tot werking wilt brengen,
druk je op de Macro en hij voert de actie uit die jij hebt opgegeven in de Macro.
Een klein voorbeeld is:
/cast Fireball(Rank 1)
Deze Macro zal Fireball Rank 1 casten op je target. Dit is een erg simpel voorbeeld waarbij een Macro eigenlijk overbodig is.
Waarom kan ik niet 2 spells tegelijk casten, of snel achter elkaar?!
» Een Spell/Abillity/Item kan de Global Cooldown triggeren.
De Global Cooldown is het aantal seconden dat je tussen de spells in krijgt.
Bijvoorbeeld je cast Fire Blast, je krijgt nu 1 tot 1.5 seconden de kans niet meer om te casten, want de Global Cooldown is actief.
Het aantal seconden Global Cooldown Verschilt per class.
Warriors en Paladins hebben bijvoorbeeld 1.5 seconden en Rogues 1 seconde.
Kan ik ook items gebruiken in mijn Macro?
» Yup, het is allemaal mogelijk.
Hierover meer in de uitleg van Macro Bewerking.
Uitleg Macro Werking
Een Macro werkt volgens de LUA taal, met hier en daar werkende scripts, wat in verschillende stijlen geschreven kan worden, een onderscheid tussen professionele lappen tekst en tussen de meer 'rustige' lappen tekst.
Professionele richting:
Professionele Macro schreef:
/script
for s=1,23
do l=GetInventoryItemLink("player",s);
if (l) then a,b,c,d,e,f,g,h,i,j=GetItemInfo(l);
DEFAULT_CHAT_FRAME:AddMessage(
format("Slot %s: %s (%s/%s), level %s, rarity %s;",
s, b, f, g, d, c));
end;
end;
Wat deze Macro doet is het volgende: Het geeft al je Items weer, die je hebt ge-equiped, in je chatbox met de gegeven Itemlink en Itemslot nummer.
Een meer Amateuristische, of kleine, Macro:
Kleine Macro schreef:
/Cast [help] Healing Touch; [Harm] Entangling Roots
Deze macro Cast Healing Touch wanneer je een Vriendelijke Target hebt, en Entangling Roots wanneer je een Vijandige Target hebt.
Een Macro werkt dus alleen wanneer een werkende en bestaande actie uitgevoerd kan worden en wanneer die actie bestaat. Je kan niet zomaar wat gaan verzinnen, het moet volgens de regels en de taal.
Uitleg Macro Bewerking
En dan nu over naar het gedeelte waar we het gaan hebben over de verschillende Commands, Options, enkele algemeen gebruikte macro's, en meer!
» COMMANDS LIST (Gebruik NOOIT de < en > tekens.)
/cast <Spellname(Rank X, optioneel)>
Cast de opgegeven spell. Ranks voeg je toe als je wilt downraken.
/petfollow [option]
Laat je je Pet jou volgen.
/petattack [option] <target>
Laat je je Pet aanvallen, met Option en Target optie.
/petautoattackon <spell> or /petautoattackoff <spell>
Laat je pet aanvallen. Deze Macro kan je spammen zonder dat de Attack tussen On en Off schakelt wat wel het geval is bij /Petattack.
/equip <Itemname>
Equiped de opgegeven item.
/equipslot <X> <itemname>
Equiped de opgegeven Item in het opgegeven Slotnummer.
Slotnummers:
1 is Head, 2 is Neck, 3 is Shoulder, 4 is Shirt, 5 is Chest, 6 is Waist, 7 is Legs, 8 is Feet, 9 is Wrist, 10 is Hands, 11 is Top Finger, 12 is Bottom Finger, 13 is Top Trinket, 14 is Bottom Trinket, 15 is Back, 16 is Main Hand, 17 is Off-Hand, 18 is Ranged, 19 is Tabard, 20 is Ammo.
/target
Target een random target dichtbij.
/swapactionbar <X>
Verander je action bar naar het opgegeven nummer.
/cancelaura [option] <name>
Verwijderd een buff met de opgegeven naam.
/castrandom spell1, spell2, spell3
Cast 1 van de opgegeven spells, zonder zich aan de volgorde te houden (voorbeeld is: Polymorph, Polymorph (Pig), Polymorph (Turtle))
/userandom 1, 2
Gebruikt een itemnaam die opgegeven staat zonder zich aan de volgorde te houden.
/cleartarget
Verwijderd je huidige Target.
/stopmacro [option]
Laat je je Macro blokkeren, erg handig voor Channeled spells in een macro zodat bij het spammen van de knop je channel spell niet stopt met casten.
/castsequence spell1, spell2, spell3
Cast de opgegeven Spells in de volgorde dat jij ze hebt neergezet.
/targetenemy, /targetfriend, /targetparty, /targetraid
Target een Enemy, Friend, Partymember(willekeurig) of raidmember(willekeurig).
» [OPTION] UITLEG
Je zult het al opgemerkt hebben tussen de lijst, er staan een aantal keren [Option] bij. Dit is nieuw ingebracht in TBC en is erg handig.
De Optie die in de [Option] staat moet uitkomen op 'True' of 'False' voordat de actie ondernomen kan worden. Dus bijvoorbeeld, je macro staat op actionbar 1, en in de macro staat /Cast [Actionbar:1] Fireball dan word de Option 'TRUE'. Maar wanneer je op Action Bar 2 staat, word het 'FALSE' en zal de Macro niks uitvoeren.
Ook heb je nog de AND en OR functie binnen de [Option] optie.
And = /
OR = ,
actionbar:<#>
Cast de opgegeven Spell/Abillity/Item wanneer je je op de opgegeven Actionbar bevind.
button:<#>
De Macro zal alleen lukken wanneer je je Macro hebt aangeklikt met de opgegeven knop (Linker muisknop is bijvoorbeeld '1')
channeling:<spell>
Deze Macro gaat alleen werken wanneer er de opgegeven spell word gechanneled.
combat
Gaat werken wanneer je je In-Combat bevind. Als je Out of Combat bent, zal de Macro dus niet werken.
dead
Macro gaat werken wanneer je dood bent.
equipped:<invslot>|<itemclass>|<itemsubclass>
Macro zal pas werken wanneer de Opgegeven Itemclass voldoet aan het wapen dat je op dat moment draagt.
Voorbeeld: /cast [equipped: Two-Handed Axe] Mortal Strike
exists
Als de target bestaat, zal de Macro zijn werk doen.
group
Wanneer je je in een groep bevind, zal de Macro werken.
group:party/raid
Zelfde als Group, maar dan specifieker.
help
De spell zal afvuren wanneer je target Friendly is.
harm
De spell zal afvuren wanneer je target Hostile is.
indoors, outdoors
De macro zal zijn werk doen wanneer je je bevind in de opgegeven omgeving.
modifier or modifier:shift|ctrl|alt
De Macro zal gaan werken wanneer de opgegeven knop is ingedrukt wanneer je de Macro wilt gebruiken.
mounted, swimming, flying
Macro zal pas gaan werken wanneer je je bevind op je Mount, terwijl je Zwemt of wanneer je Vliegt.
party
Macro zal gaan werken wanneer de Target een lid uit je groep is.
pet:<pet type OR pet name>
Word 'True' wanneer de opgegeven pet bestaat.
Pet types voorbeeld: Owl, Bear, Imp.
Namen werken ook.
[Pet] werkt voor ELKE pet.
raid
Macro zal gaan werken wanneer de Target een lid uit je groep of raid is.
show <spell>
Laat je de Spell Tooltip zien wanneer je muis over de Macro bevind.
Makkelijker is:
#Showtooltip
/cast blablabla
stance or stance:#
Word 'True' wanneer je je in de opgegeven stand bevind.
stealth
Pas wanneer je in Stealth zit zal de Macro werken.
target=<unit>
Laat je een Target kiezen voor de opgegeven spell.
TargetID lijstje: #=Nummer
Focus
Player
Pet
Party#
Partypet#
Raid#
Raidpet#
Target
Playertarget
Mouseover
None
npc / NPC
Macro Voorbeelden
Omdat er nog steeds erg veel vragen blijven binnen stromen over macro's (zeker de meest simpele...) ga ik mij maar wagen op een paar voorbeelden.
Deze voorbeelden zullen vooral de [OPTION] syntax gebruiken, omdat je hiermee ongelofelijk veel uit je macro's kunt halen.
>> Voorbeeld 1.
Code:
/cast [nostance:1] Dire Bear Form
/cast [stance:1] Feral Charge;
Erg voor de hand liggende Macro, maar erg effectief voor de (healing) druid die snel een interrupt nodig heeft.
>> UITLEG
[nostance:1] -- Wat dit doet is hij checked of je niet in Stance #1 bent (in dit geval (dire) bear form). Zit je niet in de opgegeven stance, dan voert hij de macro door naar het deel "Dire Bear Form" (FALSE statement). Zit je in het geval dat je wel in Stance #1 zit (TRUE statement) dan negeert hij dit gedeelte en schiet hij over naar...
[stance:1] -- Wat deze syntax doet is, hij checked of je wel in deze stance staat. Is dit zo, dan gaat ie over naar het gedeelte "Feral Charge". Zit je NIET in Stance 1 dan negeert hij dit gedeelte en gaat naar [nostance:x]
<patch#> Macro Changes________________
A Blizzard MVP "Iriel" has compiled a list of 2.2 announced (and sometimes observed) changes in the User Interface API's and functionality for the 2.2.0 release, the following changes were reported by the CM Slouken (a new announced change today on 2.2 frame positions):
Targetting
* If you specify a target for a spell cast in a macro that does not exist, it will show an error instead of defaulting to your current target.
Macros
* Conditional macros with multiple targets will use the appropriate context sensitive target for visual range feedback.
* The entire dynamic macro update system has been moved into highly optimized C++ for 2.2, resulting in a roughly 100x speedup (That's times, not percent). Please keep an eye out for bugs in macro options and dynamic feedback, since it's all completely rewritten from scratch. TEST COMPLEX MACROS THOROUGHLY IN THE PTR
Frame Support
* Frame:RegisterEvent() and Frame:UnregisterEvent() have been optimized and can be used in conjunction with OnShow() and OnHide() to greatly improve performance of the UI. This technique has been used to optimize the bank, bags, inventory, spellbook, and unit frames for a decent speed improvement in 2.2.0.
* The game tooltip now handles periodic updates directly instead of requiring OnUpdate functions in each button that might have a tooltip. Many of the related OnEnter functions now take a 'self' parameter, so AddOns will need to be updated to reflect this change.
* Frame positions are saved relative to the nearest corner rather than the upper left corner, so that they don't move when changing resolution and screen aspect ratio.
Key Bindings
The game will distinguish between right and left modifier keys:
* Key bindings and modified clicks may optionally specify LSHIFT, RSHIFT, LCTRL, RCTRL, LALT, RALT instead of the normal SHIFT, CTRL, ALT modifiers. The default UI will not set L/R modifiers and will continue to use the normal (either side) modifiers.
* Macro conditionals may use lshift, rshift, lctrl, rctrl, lalt, ralt in addition to the normal modifiers.
* There are several new API functions to query each modifier individually: IsLeftShiftKeyDown(), IsRightShiftKeyDown(), IsLeftControlKeyDown(), IsRightControlKeyDown(), IsLeftAltKeyDown(), IsRightAltKeyDown()
There will be a unified system for customizing modified clicks in the UI:
Modified Clicks are specified using a new section in Bindings.xml, e.g.
<ModifiedClick name="DRESSUP" default="CTRL-BUTTON1"/>
These click actions are context sensitive, and Lua code chooses which action is appropriate based on the current context.
Script API:
* count = GetNumModifiedClickActions()
* action = GetModifiedClickAction(index)
* SetModifiedClick("action", "binding")
* binding = GetModifiedClick("action")
* active = IsModifiedClick(["action"])
A 'binding' is in the form of MOD-BUTTONX, e.g. CTRL-BUTTON1, or a simple modifier, e.g. CTRL
These modified click bindings are loaded and saved with the normal key bindings, so if you make changes you'll need to save them with:
SaveBindings(GetCurrentBindingSet()) ;
The Blizzard code has been reworked to use the following modified click actions:
<ModifiedClick action="SELFCAST" default="ALT"/>
<ModifiedClick action="AUTOLOOTTOGGLE" default="SHIFT"/>
<ModifiedClick action="STICKYCAMERA" default="CTRL"/>
<ModifiedClick action="CHATLINK" default="SHIFT-BUTTON1"/>
<ModifiedClick action="DRESSUP" default="CTRL-BUTTON1"/>
<ModifiedClick action="SOCKETITEM" default="SHIFT-BUTTON2"/>
<ModifiedClick action="SPLITSTACK" default="SHIFT"/>
<ModifiedClick action="PICKUPACTION" default="SHIFT"/>
<ModifiedClick action="COMPAREITEMS" default="SHIFT"/>
<ModifiedClick action="OPENALLBAGS" default="SHIFT"/>
<ModifiedClick action="QUESthingyCHTOGGLE" default="SHIFT"/>
This system replaces the following functions:
SetAutoLootToggleKey(), GetAutoLootToggleKey(), IsAutoLootKeyDown()
SetActionSelfCastKey(), GetActionSelfCastKey(), IsActionSelfCastKeyDown()
Settings
* The pitchLimit setting will be re-enabled.
Bug Fixes
* Fixed issue where frame sizes/positions aren't correctly recalculated on demand.
* Fixed unnecessary chopping of FontString contents when scaled.