[quote quote=45037]Dear Maarc, I hope really you will help me a second time. Unfortunetly I can’t find the fault. So I translate it to english and I wish that it works now. Thank you so much, the Letha ???
[/quote]
Mea Culpa Mea Culpa Summa Mea Culpa – if you know Latin
I have not gotten onto this as I thought I would yesterday.
Ok, so let’s play programmer and look at this code, take it apart and build it back into GSE 2.0
Ok, let’s start with the translated code you posted above:
Sequences[‘BMS’] = {
PreMacro = [[
/console Sound_EnableSFX 0
/targetenemy [noharm][dead]
/petattack [@target,harm]
/cast [nopet,nodead] Call Pet 1; [@pet,dead,combat] Heart of the Phoenix; [@pet,combat,dead] Mend Pet; [@pet,nocombat,dead] Mend Pet
/petautocastoff [group] Growl
/petautocaston [nogroup] Growl
/cast [target=focus, exists, nodead],[target=pet, exists, nodead] Misdirection
/cast Bestial Wrath
/cast Aspect of the Wild
/cast Titan’s Thunder
]],
‘/castsequence [nochanneling] reset=3 Concussive Shot’,
‘/castsequence [nochanneling] reset=10 Dire Beast’,
‘/cast [nochanneling] Kill Command’,
‘/cast [nochanneling] Cobra Shot’,
‘/cast [nochanneling] Arcane Torrent’,
‘/cast [nochanneling,talent:6/1] A Murder of Crows; [nochanneling,talent:6/3] Volley’,
‘/cast [nochanneling] Dire Beast’,
‘/cast [nochanneling] Titan’s Thunder’,
‘/cast [nochanneling] Kill Command’,
‘/cast [nochanneling] Cobra Shot’,
‘/cast [nochanneling] Kill Command’,
PostMacro = [[
/use [combat]13
/use [combat]14
/cast [combat,pet:Spirit Beast,@player] Spirit Mend
/cast [combat,pet,@player]Roar of Sacrifice
/script UIErrorsFrame:Clear()
/console Sound_EnableSFX 1
]],
}
There are some problems with quotes and possible hidden special characters and spaces, so the same code as above cleaned up:
Sequences['BMS'] = {
PreMacro = [[
/console Sound_EnableSFX 0
/targetenemy [noharm][dead]
/petattack [@target,harm]
/cast [nopet,nodead] Call Pet 1; [@pet,dead,combat] Heart of the Phoenix; [@pet,combat,dead] Mend Pet; [@pet,nocombat,dead] Mend Pet
/petautocastoff [group] Growl
/petautocaston [nogroup] Growl
/cast [target=focus, exists, nodead],[target=pet, exists, nodead] Misdirection
/cast Bestial Wrath
/cast Aspect of the Wild
/cast Titan's Thunder
]],
"/castsequence [nochanneling] reset=3 Concussive Shot",
"/castsequence [nochanneling] reset=10 Dire Beast",
"/cast [nochanneling] Kill Command",
"/cast [nochanneling] Cobra Shot",
"/cast [nochanneling] Arcane Torrent",
"/cast [nochanneling,talent:6/1] A Murder of Crows; [nochanneling,talent:6/3] Volley",
"/cast [nochanneling] Dire Beast",
"/cast [nochanneling] Titan's Thunder",
"/cast [nochanneling] Kill Command",
"/cast [nochanneling] Cobra Shot",
"/cast [nochanneling] Kill Command",
PostMacro = [[
/use [combat]13
/use [combat]14
/cast [combat,pet:Spirit Beast,@player] Spirit Mend
/cast [combat,pet,@player]Roar of Sacrifice
/script UIErrorsFrame:Clear()
/console Sound_EnableSFX 1
]],
}
Let’s look at the code in the PreMacro that deals with the pet:
/targetenemy [noharm][dead]
/petattack [@target,harm]
/cast [nopet,nodead] Call Pet 1; [@pet,dead,combat] Heart of the Phoenix; [@pet,combat,dead] Mend Pet; [@pet,nocombat,dead] Mend Pet
/petautocastoff [group] Growl
/petautocaston [nogroup] Growl
/cast [target=focus, exists, nodead],[target=pet, exists, nodead] Misdirection
Now the first line is fine, target the enemy, do not harm, if it’s not dead:
/targetenemy [noharm][dead]
but you want to make sure your pet is out and ready and all before doing anything else, so:
/petattack [@target,harm]
Should come at the end, but before you start your attacks
/cast [nopet,nodead] Call Pet 1; [@pet,dead,combat] Heart of the Phoenix; [@pet,combat,dead] Mend Pet; [@pet,nocombat,dead] Mend Pet
So, if you have no pet Call out the 1st pet, if it’s dead and combat, then rez via Heart of the Phoenix, if it’s combat and Heart of the Phoenix and pet is dead, then rez? same if out of combat? I assume you’ve lived with this Macro and it works just fine, but to test the code I would suggest breaking it up like this:
/cast [nopet,nodead] Call Pet 1
/cast [@pet,dead] Heart of the Phoenix
/cast [@pet,combat,dead] Revive Pet
/cast [@pet,nocombat,dead] Revive Pet
If No Pet, Then Call 1st Pet
If Pet is Dead, Then Rez via Heart of the Phoenix
If Pet is Dead and you’re in Combat, Then Rez via Revive Pet
If Pet is Dead and you’re not in combat, Then Rez via Revive Pet
and I’ll move the Mend Pet code to the bottom PostMacro code
Then you have:
/petautocastoff [group] Growl
/petautocaston [nogroup] Growl
I love and … well sometimes, dislike this … turn the Growl on when you’re solo and turn it off in group.
Saves us from getting yelled at and referred to as a “Huntard” however … there has been more than a few times in which … in a Raid or whatever … the Tank has taken an unexpected dirt nap and SOMEBODY has to hold the Boss for the very few seconds it takes the Resto Druid to do a Battle Rez … that said, it’s better to side on the caution … so I’d keep the code in.
then finish this off with:
/cast [target=focus, exists, nodead],[target=pet, exists, nodead] Misdirection
If you have the Tank on focus (set focus), and not dead, then MD to Tank, otherwise MD to pet
Then you get to the code:
/cast Bestial Wrath
/cast Aspect of the Wild
/cast Titan's Thunder
This is just fine, let’s go below into PostMacro:
/cast [combat,pet:Spirit Beast,@player] Spirit Mend
/cast [combat,pet,@player]Roar of Sacrifice
Let’s assume you have a Spirit Beast, and you have the Legendary Ring or you’re running Cunning. Thinking about it would should move this up to the PreMacro, since you want to save the player before doing anything else.
Now with all that the PreMacro would look something like:
PreMacro = [[
/console Sound_EnableSFX 0
/targetenemy [noharm][dead]
/cast [nopet,nodead] Call Pet 1
/cast [@pet,dead] Heart of the Phoenix
/cast [@pet,combat] Mend Pet
/cast [@pet,combat,dead] Revive Pet
/cast [@pet,nocombat,dead] Revive Pet
/petautocastoff [group] Growl
/petautocaston [nogroup] Growl
/cast [combat,pet:Spirit Beast,@player] Spirit Mend
/cast [combat,pet,@player]Roar of Sacrifice
/cast [target=focus, exists, nodead],[target=pet, exists, nodead] Misdirection
/petattack [@target,harm]
/cast Bestial Wrath
/cast Aspect of the Wild
/cast Titan's Thunder
]],
And if tested and everything works fine you an try to compact the code into:
PreMacro = [[
/console Sound_EnableSFX 0
/targetenemy [noharm][dead]
/cast [nopet,nodead] Call Pet 1
/cast [@pet,dead] Heart of the Phoenix; [@pet,combat] Mend Pet; [@pet,combat,dead] Revive Pet; [@pet,nocombat,dead] Revive Pet
/petautocastoff [group] Growl
/petautocaston [nogroup] Growl
/cast [combat,pet:Spirit Beast,@player] Spirit Mend
/cast [combat,pet,@player]Roar of Sacrifice
/cast [target=focus, exists, nodead],[target=pet, exists, nodead] Misdirection
/petattack [@target,harm]
/cast Bestial Wrath
/cast Aspect of the Wild
/cast Titan's Thunder
]],
And the PostMacro code would become:
PostMacro = [[
/use [combat]13
/use [combat]14
/script UIErrorsFrame:Clear()
/console Sound_EnableSFX 1
]],
… Let’s look at the guts of the Macro:
"/castsequence [nochanneling] reset=3 Concussive Shot",
"/castsequence [nochanneling] reset=10 Dire Beast",
"/cast [nochanneling] Kill Command",
"/cast [nochanneling] Cobra Shot",
"/cast [nochanneling] Arcane Torrent",
"/cast [nochanneling,talent:6/1] A Murder of Crows; [nochanneling,talent:6/3] Volley",
"/cast [nochanneling] Dire Beast",
"/cast [nochanneling] Titan's Thunder",
"/cast [nochanneling] Kill Command",
"/cast [nochanneling] Cobra Shot",
"/cast [nochanneling] Kill Command",
A few things here:
"/castsequence [nochanneling] reset=3 Concussive Shot",
"/castsequence [nochanneling] reset=10 Dire Beast",
This does not do what you think it does. Reset=x does not delay the firing of the spell by x number of seconds. Now both “Concussive Shot” and “Dire Beast” have a CoolDown, and GS works like this:
- Try to /cast Concussive Shot
- Is Concussive Shot on Cooldown?
- Yes? Then Skip to next /cast
- No? Then /cast Concussive Shot
So, we can change the code to:
"/cast Concussive Shot",
"/cast Dire Beast",
So next you have the following commands:
"/cast [nochanneling] Kill Command",
"/cast [nochanneling] Cobra Shot",
Let’s combine that into one command:
"/castsequence Kill Command, Cobra Shot",
Then we come to:
"/cast [nochanneling] Arcane Torrent",
This is a racial trait, like Blood Fury, let’s move this up into the PreMacro code and remove it from the guts of the Macro.
Next we come to:
"/cast [nochanneling,talent:6/1] A Murder of Crows; [nochanneling,talent:6/3] Volley",
This is fine, let’s compact it to:
"/cast [talent:6/1] A Murder of Crows; [talent:6/3] Volley",
Now, let’s look at the next 5 lines of code:
"/cast [nochanneling] Dire Beast",
"/cast [nochanneling] Titan's Thunder",
"/cast [nochanneling] Kill Command",
"/cast [nochanneling] Cobra Shot",
"/cast [nochanneling] Kill Command",
We already did Dire Beast, we don’t need that again.
We did Titan’s Thunder in the PreMacro, we don’t need that again.
We already did Kill Command, we don’t need that again.
We already did a Cobra Shot following a Kill command, we don’t need that again.
We already did a Kill Command, we don’t need that again.
So, given that we can compact the code down to:
"/cast Concussive Shot",
"/cast Dire Beast",
"/castsequence Kill Command, Cobra Shot",
"/cast [talent:6/1] A Murder of Crows; [talent:6/3] Volley",
Thus you code would look something like:
Sequences['BMS'] = {
PreMacro = [[
/console Sound_EnableSFX 0
/targetenemy [noharm][dead]
/cast [nopet,nodead] Call Pet 1
/cast [@pet,dead] Heart of the Phoenix
/cast [@pet,combat,dead] Revive Pet
/cast [@pet,nocombat,dead] Revive Pet
/petautocastoff [group] Growl
/petautocaston [nogroup] Growl
/cast [combat,pet:Spirit Beast,@player] Spirit Mend
/cast [combat,pet,@player]Roar of Sacrifice
/cast [target=focus, exists, nodead],[target=pet, exists, nodead] Misdirection
/petattack [@target,harm]
/cast Bestial Wrath
/cast Aspect of the Wild
/cast Titan's Thunder
/cast Arcane Torrent
]],
"/cast Concussive Shot",
"/cast Dire Beast",
"/castsequence Kill Command, Cobra Shot",
"/cast [talent:6/1] A Murder of Crows; [talent:6/3] Volley",
PostMacro = [[
/use [combat]13
/use [combat]14
/cast [@pet,combat] Mend Pet
/script UIErrorsFrame:Clear()
/console Sound_EnableSFX 1
]],
}
Now if lines 5 thru 9 work fine, and can correctly be combined together, then your original GS code should look something like this:
Sequences['BMS'] = {
PreMacro = [[
/console Sound_EnableSFX 0
/targetenemy [noharm][dead]
/cast [nopet,nodead] Call Pet 1
/cast [@pet,dead] Heart of the Phoenix; [@pet,combat,dead] Revive Pet; [@pet,nocombat,dead] Revive Pet
/petautocastoff [group] Growl
/petautocaston [nogroup] Growl
/cast [combat,pet:Spirit Beast,@player] Spirit Mend
/cast [combat,pet,@player]Roar of Sacrifice
/cast [target=focus, exists, nodead],[target=pet, exists, nodead] Misdirection
/petattack [@target,harm]
/cast Bestial Wrath
/cast Aspect of the Wild
/cast Titan's Thunder
/cast Arcane Torrent
]],
"/cast Concussive Shot",
"/cast Dire Beast",
"/castsequence Kill Command, Cobra Shot",
"/cast [talent:6/1] A Murder of Crows; [talent:6/3] Volley",
PostMacro = [[
/use [combat]13
/use [combat]14
/cast [@pet,combat] Mend Pet
/script UIErrorsFrame:Clear()
/console Sound_EnableSFX 1
]],
}
Now if that code works for you fine in GS, and there are no problems, then the code translated to GSE 2.0 would be something like:
Sequences['BMS'] = {
Author="Letassai@Thrall",
SpecID=253,
Talents = "3113112",
Default=1,
Icon='INV_MISC_QUESTIONMARK',
MacroVersions = {
[1] = {
StepFunction = [[Sequential]],
KeyPress={
"/targetenemy [noharm][dead]",
"/cast [nopet,nodead] Call Pet 1",
"/cast [@pet,dead] Heart of the Phoenix; [@pet,combat,dead] Revive Pet; [@pet,nocombat,dead] Revive Pet",
"/petautocastoff [group] Growl",
"/petautocaston [nogroup] Growl",
"/cast [combat,pet:Spirit Beast,@player] Spirit Mend",
"/cast [combat,pet,@player]Roar of Sacrifice",
"/cast [target=focus, exists, nodead],[target=pet, exists, nodead] Misdirection",
"/petattack [@target,harm]",
"/cast Bestial Wrath",
"/cast Aspect of the Wild",
"/cast Titan's Thunder",
"/cast Arcane Torrent",
},
PreMacro={
},
"/cast Dire Beast",
"/cast [mod:ctrl] Dire Beast",
"/castsequence [nochanneling] Kill Command",
"/cast A Murder of Crows",
PostMacro={
},
KeyRelease={
"/cast [@pet,combat] Mend Pet",
},
},
}
}