You are not logged in.

Applications: [GameMaster: OPEN] | [Volunteer Testers: OPEN]


This forum will be permanently shut down on Friday 13.07.2018
Please copy or save all important information from old forum before they will be deactivated
We have moved to new board. https://forum.runesofmagic.gameforge.com/Come join us.

jsalemi

Trainee

Posts: 133

Location: VA, USA

  • Send private message

541

Friday, May 28th 2010, 1:00am

I don't think autoshot is one of the skills that can be added to the DIYCE, since it's a toggle, and there's no buff to indicate it's active. At least, I've never been successful in including it.

nemecis

Trainee

Posts: 115

Location: Canada

  • Send private message

542

Friday, May 28th 2010, 2:48am

check post 79

543

Friday, May 28th 2010, 10:57am

Hi, i havent been able to fully test this, cuz mobs die way to fast even when a few levels above me. But can someone take a look and see if the priority etc is right on the skills or if im missing something?

function WardenRogue(arg1,arg2)
local Skill = {}
local i = 0
local Mana = UnitMana("player")
local energy = UnitSkill("player")/UnitMaxSkill("player")
local friendly = (not UnitCanAttack("player","target"))
local combat = GetPlayerCombatState()
local pbuffs = BuffList("player")
local tbuffs = BuffList("target")
local petname = tostring(UnitName("playerpet"))
local thealth = PctH("target")
i=i+1; Skill = { ['name'] = "Summon Nature Crystal", ['use'] = ((petname ~= "Nature Crystal") and (not string.find(pbuffs,"Protection of Nature")) and (not combat)) }
i=i+1; Skill[i] = { ['name'] = "Protection of Nature", ['use'] = ((not combat) and (petname == "Nature Crystal") and (not string.find(pbuffs,"Protection of Nature"))) }
i=i+1; Skill[i] = { ['name'] = "Summon Oak Walker", ['use'] = ((petname ~= "Oak Walker") and (string.find(pbuffs,"Protection of Nature")) and (not combat)) }
i=i+1; Skill[i] = { ['name'] = "Power of the Wood Spirit", ['use'] = ((not friendly) and (PctH("target") < .30) ) }
i=i+1; Skill[i] = { ['name'] = "Charged Chop", ['use'] = ((not friendly) and string.find(tbuffs,"Thorny Vine") and string.find(pbuffs,"Achilles' Heel Strike") and string.find(tbuffs,"Bleed") and string.find(tbuffs,"Gravel Attack"))}
i=i+1; Skill[i] = { ['name'] = "Gravel Attack", ['use'] = ((not friendly) and string.find(tbuffs,"Thorny Vine") and string.find(pbuffs,"Achilles' Heel Strike") and string.find(tbuffs,"Bleed"))}
i=i+1; Skill[i] = { ['name'] = "Thorny Vines", ['use'] = ((not friendly) and (not string.find(tbuffs, "Thorny Vine"))) }
i=i+1; Skill[i] = { ['name'] = "Achilles' Heel Strike", ['use'] = ((not friendly) and (not string.find(tbuffs, "Achilles' Heel Strike"))) }
i=i+1; Skill[i] = { ['name'] = "Shadowstab", ['use'] = ((not friendly) and (energy >=35)) }
MyCombat(Skill,arg1)
end

Pagn93

Beginner

Posts: 0

Location: Holland, MI USA

Occupation: Contractor

  • Send private message

544

Friday, May 28th 2010, 11:48am

It looks like it will cast in order:

Thorny Vines
Achilles Heel Strike
Gravel Attack
Charged Chop
Shadowstab
Power of the Wood Spirit @ 30% mob health

The only problem I see is the PotWS, I don't have my skill book open in front of me but I think it was instant cast with no CD; so, what will end up happening is it will be constantly cast and the rest of the function will never get a chance to fire once a mob's health is below 30%...now that I think about it though, you probably did that intentionally.

Personally, I moved all pet summoning to a different function...even after I had it working there were still a few bugs...not the greatest thing in the world to start casting summon then enter a combat state and have the function caught in a loop because it doesn't recognize the combat state and you're getting interrupted. I was testing against Master Gumas and a pack of crystals when that happened.


mrmarc0001

Beginner

Posts: 3

Location: SF Bay Area

Occupation: Web Producer @ UCSF

  • Send private message

545

Friday, May 28th 2010, 6:10pm

Quoted from "garr71;280048"

Hi, i havent been able to fully test this, cuz mobs die way to fast even when a few levels above me. But can someone take a look and see if the priority etc is right on the skills or if im missing something?


Your code looks good as far as syntax is concerned, so other than that, it looks good. I would be a little concerned about the "Achilles' Heel Strike" string searches, though. I believe I had problems with buffs/duffs that had apostrophes in them, but I can't say for certain.

As for your problem killing mobs too fast, what you can try is equipping low lvl weapons when testing.

546

Friday, May 28th 2010, 8:27pm

Quoted from "garr71;280048"

i=i+1; Skill = { ['name'] = "Power of the Wood Spirit", ['use'] = ((not friendly) and (PctH("target") < .30) ) }
i=i+1; Skill[i] = { ['name'] = "Charged Chop", ['use'] = ((not friendly) and string.find(tbuffs,"Thorny Vine") and string.find(pbuffs,"Achilles' Heel Strike") and string.find(tbuffs,"Bleed") and string.find(tbuffs,"Gravel Attack"))}
i=i+1; Skill[i] = { ['name'] = "Gravel Attack", ['use'] = ((not friendly) and string.find(tbuffs,"Thorny Vine") and string.find(pbuffs,"Achilles' Heel Strike") and string.find(tbuffs,"Bleed"))}
i=i+1; Skill[i] = { ['name'] = "Thorny Vines", ['use'] = ((not friendly) and (not string.find(tbuffs, "Thorny Vine"))) }
i=i+1; Skill[i] = { ['name'] = "Achilles' Heel Strike", ['use'] = ((not friendly) and (not string.find(tbuffs, "Achilles' Heel Strike"))) }
i=i+1; Skill[i] = { ['name'] = "Shadowstab", ['use'] = ((not friendly) and (energy >=35)) }

First, yikes this looks like to have a couple possible dead zones for skill usage. I prefer keeping the Protection of Nature + Oak Walker summon out of my main attack macro, but your call on that.

For dead zones? Achilles' Heel Strike is not 100% on activation, thus leading to times where Gravel Attack, and Charged Chop will not go off. Thus with the Achilles' Heel Strike's Cooldown and Shadowstab's energy requirement, this could lead to a second or so period of no-attacks being made. Charged Chop will rarely go off, with all of its conditionals needed since Gravel Attack isn't 100% and on lengthy cooldown.
Its a good lineup if you want to use absolutely minimum Mana, except when the target is under 30% HP. On the other hand, I like my attacks to always flurry when I press the macroed button.

The following is my own Warden/Rogue list. Small ChkArg function as I had problems with string.find() in the "True/False" section for some strange reason.

Source code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
function ChkArg(arg1,skillname)
    if string.find(arg1, skillname) ~= nil then
        return true
    end
    return false
end
...
   i=i+1; Skill[i] = { name = "Charged Chop",     use = ((not friendly) and ChkArg(arg2,"CChop") and ChkArg(pbuffs,   "Critical Feeling") and (not ChkArg(tbuffs, "Thorny Vine"))) }
   i=i+1; Skill[i] = { name = "Power of the Wood Spirit",     use = ((not friendly) and ChkArg(pbuffs,   "Critical Feeling")) }
   i=i+1; Skill[i] = { name = "Power of the Wood Spirit",     use =  ((not friendly) and ChkArg(arg2,   "PSpam") and (PctH("target") < .30)) }
   i=i+1; Skill[i] = { name = "Blind Stab",   use = ((not friendly) and (energy >=50) and ChkArg(arg2,"BStab") and (not ChkArg(tbuffs, "Blind"))) }
   i=i+1; Skill[i] = { name = "Thorny Vines",   use = ((not friendly) and ChkArg(arg2,"TVines")) }
   i=i+1; Skill[i] = { name = "Achilles' Heel Strike",   use = ((not friendly) and (energy >= 30) ) }
-- i=i+1; Skill[i] = { name = "Shadowstab",    use = ((not  friendly) and (energy >=35) and ChkArg(arg2, "SStab") and (not ChkArg(tbuffs, "Bleed"))) }
   i=i+1; Skill[i] = { name = "Charged Chop",     use = ((not friendly) and ChkArg(arg2,"CChop")) }
   i=i+1; Skill[i] = { name = "Gravel Attack",       use = ((not friendly) and (energy >=30) and ChkArg(arg2,"GAttack")) }
   i=i+1; Skill[i] = { name = "Shadowstab",     use = ((not  friendly) and (energy >=35) and ChkArg(arg2, "SStab")) }
   i=i+1; Skill[i] = { name = "Power of the Wood Spirit",     use = ((not friendly)) }
Essentially, this allowed me to have macro buttons written as...
/run WardenRogue(" ", "CChop TVines GAttack PSpam")
allowing me to "edit" the macro on the fly, in case I didn't want something like Blind Stab in the mix. Or to remove the Power of the Wood Spirit Spam below 30% HP, against say boss monsters or to save MP. Even turn off the Charged Chop against foes that like to move on me.
Note I don't bother checking the tbuffs for status effects, as none of the status effects truly matter that much. Thorny Vines cool down is the same length as its debuff length, so just include that when you want it thrown out(At the start for me). Achilles' Heel Strike is the same damage as PotWS just using Energy instead of mana with a cool down, thus placing it into the constantly use category whether its buff is up or down. GAttack is a stronger damage potential with a longer cooldown, so its used when able, debuff or no.

With my lineup if you like it, you'll probably want to remove the "--" before the first Shadowstab, so you can apply bleed through Shadowstab whenever its down. I prefer a two-hander so I don't bother with Shadowstab's bleed normally.

Now if only I can find out a way to create editable boxes with checkmarks, so that this plugin can be altered by a click, rather then a macro button edit.

jsalemi

Trainee

Posts: 133

Location: VA, USA

  • Send private message

547

Friday, May 28th 2010, 8:44pm

Quoted from "nemecis;279915"

check post 79


Cool, thanks! I missed that one somehow.

mrmarc0001

Beginner

Posts: 3

Location: SF Bay Area

Occupation: Web Producer @ UCSF

  • Send private message

548

Friday, May 28th 2010, 9:00pm

Quoted from "WOLead;280284"

Now if only I can find out a way to create editable boxes with checkmarks, so that this plugin can be altered by a click, rather then a macro button edit.


Funny, I'd recently considered extending the add-on myself to do something like this and then hand it off to six for integration into the core code. Unfortunately, I haven't had the time lately...for now, I think I will just use InGameScripts.

549

Friday, May 28th 2010, 9:21pm

Intresting points WOLead, ill give it a shot, i like the idea of the fast editing though the ChkArg function. I also use a 2h as i just got to 32.

So for the summoning part, i just create a new function for it im guessing?

Also, do i paste your code into mine starting where?

Pagn93

Beginner

Posts: 0

Location: Holland, MI USA

Occupation: Contractor

  • Send private message

550

Friday, May 28th 2010, 9:33pm

Quoted from "garr71;280324"

So for the summoning part, i just create a new function for it im guessing?


Yep, that's all there is to it...I have functions for single mob, multi-mob, buffing, and summoning. Went from 20+ keybinds to 4...absolutely beautiful.


551

Saturday, May 29th 2010, 3:58am

Quoted from "garr71;280324"

Also, do i paste your code into mine starting where?

The ChkArg function gets pasted before your WardenRogue function. The rest beyond the "..." is pasted in replacement for the similar section inside the WardenRogue function.

@pagn93
I've got to agree with ya. Dropping from a full bar of shortcut keyed action bars to a tiny few is wonderful. Don't have a multi-target or summoning macro for myself, though I do have a variable buffing and CC macro for convenience.

Question though, is there already an example of Pet Skill usage called up in this add-on or shall I figure that one out myself?

Tigsman

Trainee

Posts: 126

Location: ATL

Occupation: Fixing Things

  • Send private message

552

Saturday, May 29th 2010, 4:04am

u could start about post 535 of this thread for recent pet convo


T

553

Saturday, May 29th 2010, 4:34am

Err im sorry, not used to deal with this... how exactly should i put it? cuz this way it gives me a string error.

Source code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
function ChkArg(arg1,skillname)
    if string.find(arg1, skillname) ~= nil then
        return true
    end
    return false
function WardenRogue(arg1,arg2)
   local Skill = {}
   local i = 0
   local Mana = UnitMana("player")
   local energy = UnitSkill("player")/UnitMaxSkill("player")
   local friendly = (not UnitCanAttack("player","target"))
   local combat = GetPlayerCombatState()
   local pbuffs = BuffList("player")
   local tbuffs = BuffList("target")
   local petname = tostring(UnitName("playerpet"))
   local thealth = PctH("target")
   i=i+1; Skill[i] = { name = "Charged Chop",     use = ((not friendly) and ChkArg(arg2,"CChop") and ChkArg(pbuffs,   "Critical Feeling") and (not ChkArg(tbuffs, "Thorny Vine"))) }
   i=i+1; Skill[i] = { name = "Power of the Wood Spirit",     use = ((not friendly) and ChkArg(pbuffs,   "Critical Feeling")) }
   i=i+1; Skill[i] = { name = "Power of the Wood Spirit",     use =  ((not friendly) and ChkArg(arg2,   "PSpam") and (PctH("target") < .30)) }
-- i=i+1; Skill[i] = { name = "Blind Stab",   use = ((not friendly) and (energy >=50) and ChkArg(arg2,"BStab") and (not ChkArg(tbuffs, "Blind"))) }
   i=i+1; Skill[i] = { name = "Thorny Vines",   use = ((not friendly) and ChkArg(arg2,"TVines")) }
   i=i+1; Skill[i] = { name = "Achilles' Heel Strike",   use = ((not friendly) and (energy >= 30) ) }
-- i=i+1; Skill[i] = { name = "Shadowstab",    use = ((not  friendly) and (energy >=35) and ChkArg(arg2, "SStab") and (not ChkArg(tbuffs, "Bleed"))) }
   i=i+1; Skill[i] = { name = "Charged Chop",     use = ((not friendly) and ChkArg(arg2,"CChop")) }
   i=i+1; Skill[i] = { name = "Gravel Attack",       use = ((not friendly) and (energy >=30) and ChkArg(arg2,"GAttack")) }
   i=i+1; Skill[i] = { name = "Shadowstab",     use = ((not  friendly) and (energy >=35) and ChkArg(arg2, "SStab")) }
   i=i+1; Skill[i] = { name = "Power of the Wood Spirit",     use = ((not friendly)) }
   MyCombat(Skill,arg1)
end

Pagn93

Beginner

Posts: 0

Location: Holland, MI USA

Occupation: Contractor

  • Send private message

554

Saturday, May 29th 2010, 5:32am

Quoted from "garr71;280542"

Err im sorry, not used to deal with this... how exactly should i put it? cuz this way it gives me a string error.


You're missing an 'end' statement, you end the if string but didn't close the function.

Source code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
function ChkArg(arg1,skillname)
    if string.find(arg1, skillname) ~= nil then
        return true
    end
    return false
[B][I]end[/I][/B]
function WardenRogue(arg1,arg2)
   local Skill = {}
   local i = 0
   local Mana = UnitMana("player")
   local energy = UnitSkill("player")/UnitMaxSkill("player")
   local friendly = (not UnitCanAttack("player","target"))
   local combat = GetPlayerCombatState()
   local pbuffs = BuffList("player")
   local tbuffs = BuffList("target")
   local petname = tostring(UnitName("playerpet"))
   local thealth = PctH("target")
   
   i=i+1; Skill[i] = { name = "Charged Chop",     use = ((not friendly) and ChkArg(arg2,"CChop") and ChkArg(pbuffs,   "Critical Feeling") and (not ChkArg(tbuffs, "Thorny Vine"))) }
   i=i+1; Skill[i] = { name = "Power of the Wood Spirit",     use = ((not friendly) and ChkArg(pbuffs,   "Critical Feeling")) }
   i=i+1; Skill[i] = { name = "Power of the Wood Spirit",     use =  ((not friendly) and ChkArg(arg2,   "PSpam") and (PctH("target") < .30)) }
-- i=i+1; Skill[i] = { name = "Blind Stab",   use = ((not friendly) and (energy >=50) and ChkArg(arg2,"BStab") and (not ChkArg(tbuffs, "Blind"))) }
   i=i+1; Skill[i] = { name = "Thorny Vines",   use = ((not friendly) and ChkArg(arg2,"TVines")) }
   i=i+1; Skill[i] = { name = "Achilles' Heel Strike",   use = ((not friendly) and (energy >= 30) ) }
-- i=i+1; Skill[i] = { name = "Shadowstab",    use = ((not  friendly) and (energy >=35) and ChkArg(arg2, "SStab") and (not ChkArg(tbuffs, "Bleed"))) }
   i=i+1; Skill[i] = { name = "Charged Chop",     use = ((not friendly) and ChkArg(arg2,"CChop")) }
   i=i+1; Skill[i] = { name = "Gravel Attack",       use = ((not friendly) and (energy >=30) and ChkArg(arg2,"GAttack")) }
   i=i+1; Skill[i] = { name = "Shadowstab",     use = ((not  friendly) and (energy >=35) and ChkArg(arg2, "SStab")) }
   i=i+1; Skill[i] = { name = "Power of the Wood Spirit",     use = ((not friendly)) }
   MyCombat(Skill,arg1)
end


Pagn93

Beginner

Posts: 0

Location: Holland, MI USA

Occupation: Contractor

  • Send private message

555

Saturday, May 29th 2010, 5:36am

Quoted from "WOLead;280529"


Question though, is there already an example of Pet Skill usage called up in this add-on or shall I figure that one out myself?



I've tried to get a resummon script working, based off an old macro I used to have, but I haven't had any luck so far. Either they've restricted UsePetAction or my code is flawed...more than likely the latter, I can't seem to get timing right. As far as activating the pet's main ability, I use another addon for that, PetAbilityAlwaysOn.


556

Saturday, May 29th 2010, 8:10am

Source code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
function PriestScout(arg1)
    local Skill = {}
    local i = 0
    local friendly = (not UnitCanAttack("player", "target"))
    local combat = GetPlayerCombatState()
    local pbuffs = BuffList("player")
    local tbuffs = BuffList("target")
    local health, buffs
	
	
    if friendly then
        health = PctH("target")
        buffs = tbuffs
    else
        health = PctH("player")
        buffs = pbuffs
    end

   i=i+1; Skill[i] = { ['name'] = "Amplified Attack",      ['use'] = ((not combat) and (friendly and (not string.find(tbuffs,"Amplified Attack")))) }
   i=i+1; Skill[i] = { ['name'] = "Magic Barrier",         ['use'] = ((not combat) and (not string.find(pbuffs,"Magic Barrier"))) }
   i=i+1; Skill[i] = { ['name'] = "Blessed Spring Water",  ['use'] = ((not combat) and (not string.find(pbuffs,"Blessed Spring Water"))) }
   i=i+1; Skill[i] = { ['name'] = "Grace of Life",         ['use'] = ((not combat) and (not string.find(pbuffs,"Grace of Life"))) }
   i=i+1; Skill[i] = { ['name'] = "Soul Bond",             ['use'] = (not string.find(pbuffs,"Soul Bond")) }
   i=i+1; Skill[i] = { ['name'] = "Embrace of the Water Spirit",        ['use'] = (not string.find(pbuffs,"Embrace of the Water Spirit")) }
   i=i+1; Skill[i] = { ['name'] = "Soul Source",           ['use'] = (health <= .20) }
   i=i+1; Skill[i] = { ['name'] = "Holy Aura",             ['use'] = (PctH("player") <= .40) }
   i=i+1; Skill[i] = { ['name'] = "Heal",                  ['use'] = (health <= .50) }
   i=i+1; Skill[i] = { ['name'] = "Urgent Heal",           ['use'] = (health <= .80) }
   i=i+1; Skill[i] = { ['name'] = "Regenerate",            ['use'] = ((not friendly) and (health <= .90) and (not string.find(pbuffs,"Regenerate"))) }
   i=i+1; Skill[i] = { ['name'] = "Regenerate",            ['use'] = (friendly and (health <= .90) and (not string.find(tbuffs,"Regenerate"))) }
   i=i+1; Skill[i] = { name = "Vampire Arrows", use = ((not friendly) and (focus >= 20)) }
   i=i+1; Skill[i] = { name = "Shot",                        use = (not friendly) }
   i=i+1; Skill[i] = { ['name'] = "Bone Chill",            ['use'] = ((not friendly) and (not string.find(tbuffs,"Bone Chill"))) }
   i=i+1; Skill[i] = { ['name'] = "Rising Tide",           ['use'] = (not friendly) }
   
    MyCombat(Skill,arg1)
end



Buffs me when myself or nothing selected, buffs party members when targeted.

Does NOTHING when enemy targeted.

Tried to just copy and paste a pre-existing one but couldn't find any...

I just need the shot/vamp shot from scout, with bone chill and rising tide on priest. And of course all the heals and buffs that go without saying

557

Saturday, May 29th 2010, 8:55am

@pagn73
Thanks for catching that error of garr71's before I got back on the forums.
As to my question, I was hoping to be able to throw in something like Spirit of the Oak's Entangle into the mix for my CC macro. I guess I'll simply test and see what doesn't blow up in my face, then report back what works. Thinking it may take opening the skill page check from 2,4 to 2,5 to get the pet skills. If it works, I can purposely set the Sepal Stab to go off at the same time as a Charged Chop hopefully in case of Critical Feeling.

@garr71
Remember, the macro button written in RoM shall look like...
/run WardenRogue(" ", "CChop TVines")
and such. The following the list of options to turn on so far.
CChop = Charged Chop
TVines = Thorny Vines
GAttack = Gravel Attack
SStab = Shadow Stab
PSpam = Power of the Wood Spirit < 30% HP spam.
BStab = Blind Stab, though it looks like you killed this one in the code.

@mousekawitz
It looks like the conditions for a few non-combat skills is the problem. Such as Soul Bond, Regeneration, Heal, Urgent Heal, etc.
What is happening is that the macro is trying to cast your targetted healing and buffs at the monster, since you never tell the macro to change targets. I have ideas on how to change the target, temporarily, but I don't trust my idea as it has yet to be tested.

558

Saturday, May 29th 2010, 9:36am

Thanks a lot for the help, now ill finish my pet ones, and i have to think on a list of functions for my brother K/R.

I killed the blind stab cuz my brother takes care of it, if not i do it manually. The cool thing is that now, my hotbars are gonna look a whole lot diferent. :D

Pagn93

Beginner

Posts: 0

Location: Holland, MI USA

Occupation: Contractor

  • Send private message

559

Saturday, May 29th 2010, 4:12pm

Quoted from "Mousekawitz;280614"

Source code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
function PriestScout(arg1)
    local Skill = {}
    local i = 0
    local friendly = (not UnitCanAttack("player", "target"))
    local combat = GetPlayerCombatState()
    local pbuffs = BuffList("player")
    local tbuffs = BuffList("target")
    local health, buffs
    
    
    if friendly then
        health = PctH("target")
        buffs = tbuffs
    else
        health = PctH("player")
        buffs = pbuffs
    end

   i=i+1; Skill[i] = { ['name'] = "Amplified Attack",      ['use'] = ((not combat) and (friendly and (not string.find(tbuffs,"Amplified Attack")))) }
   i=i+1; Skill[i] = { ['name'] = "Magic Barrier",         ['use'] = ((not combat) and (not string.find(pbuffs,"Magic Barrier"))) }
   i=i+1; Skill[i] = { ['name'] = "Blessed Spring Water",  ['use'] = ((not combat) and (not string.find(pbuffs,"Blessed Spring Water"))) }
   i=i+1; Skill[i] = { ['name'] = "Grace of Life",         ['use'] = ((not combat) and (not string.find(pbuffs,"Grace of Life"))) }
   i=i+1; Skill[i] = { ['name'] = "Soul Bond",             ['use'] = (not string.find(pbuffs,"Soul Bond")) }
   i=i+1; Skill[i] = { ['name'] = "Embrace of the Water Spirit",        ['use'] = (not string.find(pbuffs,"Embrace of the Water Spirit")) }
   i=i+1; Skill[i] = { ['name'] = "Soul Source",           ['use'] = (health <= .20) }
   i=i+1; Skill[i] = { ['name'] = "Holy Aura",             ['use'] = (PctH("player") <= .40) }
   i=i+1; Skill[i] = { ['name'] = "Heal",                  ['use'] = (health <= .50) }
   i=i+1; Skill[i] = { ['name'] = "Urgent Heal",           ['use'] = (health <= .80) }
   i=i+1; Skill[i] = { ['name'] = "Regenerate",            ['use'] = ((not friendly) and (health <= .90) and (not string.find(pbuffs,"Regenerate"))) }
   i=i+1; Skill[i] = { ['name'] = "Regenerate",            ['use'] = (friendly and (health <= .90) and (not string.find(tbuffs,"Regenerate"))) }
   i=i+1; Skill[i] = { name = "Vampire Arrows", use = ((not friendly) and (focus >= 20)) }
   i=i+1; Skill[i] = { name = "Shot",                        use = (not friendly) }
   i=i+1; Skill[i] = { ['name'] = "Bone Chill",            ['use'] = ((not friendly) and (not string.find(tbuffs,"Bone Chill"))) }
   i=i+1; Skill[i] = { ['name'] = "Rising Tide",           ['use'] = (not friendly) }
   
    MyCombat(Skill,arg1)
end
Buffs me when myself or nothing selected, buffs party members when targeted.

Does NOTHING when enemy targeted.

Tried to just copy and paste a pre-existing one but couldn't find any...

I just need the shot/vamp shot from scout, with bone chill and rising tide on priest. And of course all the heals and buffs that go without saying



This is the one I've been playing with...I left the buffs and heals in it for now and o far I haven't had any problems:

Source code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
function ScoutPriest(arg1)
   local Skill = {}
   local i = 0
   local pbuffs = BuffList("player")
   local tbuffs = BuffList("target")
   local focus = UnitMana("player")
   local mana = UnitSkill("player")
   local friendly = (not UnitCanAttack("player","target"))

   i=i+1; Skill[i] = { ['name'] = "Magic Barrier",  ['use'] = (not string.find(pbuffs,"Magic Barrier")) }
   i=i+1; Skill[i] = { ['name'] = "Magic Barrier",  ['use'] = ((friendly) and (not string.find(tbuffs,"Magic Barrier"))) }
   i=i+1; Skill[i] = { ['name'] = "Frost Arrow",    ['use'] = (not string.find(pbuffs,"Frost Arrow")) }
--   i=i+1; Skill[i] = { ['name'] = "Snipe",          ['use'] = ((not friendly) and (not combat))}
   i=i+1; Skill[i] = { ['name'] = "Regenerate",     ['use'] = ((not friendly) and (PctH("player") <= .80) and (not string.find(pbuffs,"Regenerate"))) }
   i=i+1; Skill[i] = { ['name'] = "Regenerate",     ['use'] = (friendly and (PctH("target") <= .80) and (not string.find(tbuffs,"Regenerate"))) }
   i=i+1; Skill[i] = { ['name'] = "Urgent Heal",    ['use'] = (PctH("player") <= .70) }
--   i=i+1; Skill[i] = { ['name'] = "Combo Shot",     ['use'] = (not friendly) }
   i=i+1; Skill[i] = { ['name'] = "Shot",           ['use'] = (not friendly) }
   i=i+1; Skill[i] = { ['name'] = "Vampire Arrows", ['use'] = ((not friendly) and (PctH("player") <= .85) and (focus >= 20)) }
   i=i+1; Skill[i] = { ['name'] = "Wind Arrows",    ['use'] = ((not friendly) and (focus >= 15)) }
--   arg2 use again   i=i+1; Skill[i] = { ['name'] = "Piercing Arrow", ['use'] = (not friendly) }
  
   MyCombat(Skill,arg1)
end

function PriestScout(arg1)
   local Skill = {}
   local i = 0
   local tgt = "player"
   local friendly = false
   local combat = GetPlayerCombatState()

   if not UnitCanAttack("player","target") then
      tgt = "target"
      friendly = true
   end
   local health = PctH(tgt)

   local pbuffs = BuffList("player")
   local tbuffs = BuffList("target")

--   i=i+1; Skill[i] = { ['name'] = "Soul Bond",             ['use'] = (not string.find(pbuffs,"Soul Bond")) }
   i=i+1; Skill[i] = { ['name'] = "Embrace of the Water Spirit",        ['use'] = (not string.find(pbuffs,"Embrace of the Water Spirit")) }
   i=i+1; Skill[i] = { ['name'] = "Soul Source",           ['use'] = (PctH("player") <= .20) }
   i=i+1; Skill[i] = { ['name'] = "Holy Aura",             ['use'] = (PctH("player") <= .40) }
   i=i+1; Skill[i] = { ['name'] = "Regenerate",            ['use'] = ((not friendly) and (PctH("player") <= .80) and (not string.find(pbuffs,"Regenerate"))) }
   i=i+1; Skill[i] = { ['name'] = "Regenerate",            ['use'] = (friendly and (PctH("target") <= .80) and (not string.find(tbuffs,"Regenerate"))) }
   i=i+1; Skill[i] = { ['name'] = "Heal",                  ['use'] = (PctH("player") <= .50) }
   i=i+1; Skill[i] = { ['name'] = "Urgent Heal",           ['use'] = (PctH("player") <= .80) }
   i=i+1; Skill[i] = { ['name'] = "Grace of Life",         ['use'] = ((not combat) and (not string.find(pbuffs,"Grace of Life"))) }
--   i=i+1; Skill[i] = { ['name'] = "Amplified Attack",      ['use'] = ((not combat) and (friendly and (not string.find(tbuffs,"Amplified Attack")))) }
   i=i+1; Skill[i] = { ['name'] = "Bone Chill",            ['use'] = ((not friendly) and (not string.find(tbuffs,"Bone Chill"))) }
   i=i+1; Skill[i] = { ['name'] = "Rising Tide",           ['use'] = (not friendly) }
   i=i+1; Skill[i] = { ['name'] = "Magic Barrier",         ['use'] = ((not combat) and (not string.find(pbuffs,"Magic Barrier"))) }
   i=i+1; Skill[i] = { ['name'] = "Blessed Spring Water",  ['use'] = ((not combat) and (not string.find(pbuffs,"Blessed Spring Water"))) }

   MyCombat(Skill,arg1)
end
I haven't cleaned it up or completely optimized it yet. I have Snipe commented out because it would get caught in a loop if you were attacked and interrupted before it got off; I like manually controlling it anyway. Combo Shot is out simply because my scout doesn't have it yet. Finally, Soul Bond has been commented as well because I also like to manually control it.

With yours, just like mine, for some reason the

Quoted

local health, buffs


if friendly then
health = PctH("target")
buffs = tbuffs
else
health = PctH("player")
buffs = pbuffs
would break the script for me. I changed all the code back to the original mod's globals. For Vamp Arrow, you do not define what "focus" is; remember, the primary class skill is always considered mana and the secondary class is skill. Try adding

Source code

1
2
local focus = UnitMana("player")
   local mana = UnitSkill("player")
that should fix it.



@ WOLead

Quoted

Thanks for catching that error of garr71's before I got back on the forums.
As to my question, I was hoping to be able to throw in something like Spirit of the Oak's Entangle into the mix for my CC macro. I guess I'll simply test and see what doesn't blow up in my face, then report back what works. Thinking it may take opening the skill page check from 2,4 to 2,5 to get the pet skills. If it works, I can purposely set the Sepal Stab to go off at the same time as a Charged Chop hopefully in case of Critical Feeling.
That's similar to what I was trying to do. Go back to post #538; Maybe I need to just test pieces of the code see what I can get working. In this case, that script should theoretically start casting summon when the SotO is at 40% health; 3 seconds before the cast ends it should activate the Entangle ability, then as soon as the new SotO appears it should spam it's punch.


560

Saturday, May 29th 2010, 6:10pm

Pagn93:

Thanks for the help man, it makes sense and I never was sure which was mana which was skill, that helps a lot.

Your example priest/scout has the same problem as the other one that's buried in this thread somewhere: No scout skills in it :(

I added vamp arrow and shot, but haven't been able to test it yet. It should work though.

Thanks for the help