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.

421

Monday, May 10th 2010, 5:18pm

I tried scanning all 42 pages, but didn't see a ScoutKnight function posted. Did I miss it, or can someone help me make one?

Many thanks.

422

Monday, May 10th 2010, 6:41pm

Quoted from "Reinforcements;271360"

I tried scanning all 42 pages, but didn't see a ScoutKnight function posted. Did I miss it, or can someone help me make one?

Many thanks.


I found one that shadowmagi posted (post #26) and modified it a touch:

Source code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
function ScoutKnight(arg1)
    local Skill = {}
    local i = 0
    local focus = UnitMana("player")
    local friendly = (not UnitCanAttack("player","target"))
    local combat = GetPlayerCombatState()
    local pbuffs = BuffList("player")
    local tbuffs = BuffList("target")

    i=i+1; Skill[i] = { name = "Enhanced Armor",              use = ((not combat) and (not string.find(pbuffs,"Enhanced Armor"))) }
    i=i+1; Skill[i] = { name = "Frost Arrow",                 use = ((not combat) and (not string.find(pbuffs,"Frost Arrow"))) }
    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 = "Piercing Arrow",              use = (not friendly) }
    i=i+1; Skill[i] = { name = "Vampire Arrows",              use = ((not friendly) and (focus >= 20)) }
    i=i+1; Skill[i] = { name = "Disarmament",                 use = ((not friendly) and (not string.find(tbuffs,"Disarmament IV"))) }
    i=i+1; Skill[i] = { name = "Wind Arrows",                 use = ((not friendly) and (focus >= 15)) }
    i=i+1; Skill[i] = { name = "Snipe",                       use = (not friendly) }

    MyCombat(Skill,arg1)
end

423

Monday, May 10th 2010, 6:44pm

Just FYI for people already using this... I've modified the original post in preparation for making it curse.com friendly. Basically I renamed all references to "MyFunctions" and called it "DIYCE". I also included the final "addon" folder in the .zip file.

424

Monday, May 10th 2010, 8:41pm

Thanks for the quick reply Sixpax, I had completely missed that earlier code.

I pasted your revised function onto the end of your combat engine, and am getting an error when I try to execute the macro "/run ScoutKnight()"

The error says "...Attempt to call global 'ScoutKnight' (a nil value)"

425

Monday, May 10th 2010, 9:10pm

Your error indicates that either the client hasn't loaded the addon or more likely there is a syntax error somewhere that has invalidated the code in the file. First step is to double check that your parentheses and brackets match each other. In other words, you may have a missing or extra parenthesis that is causing problems in the parser.

426

Tuesday, May 11th 2010, 9:03am

So, I've put together four working functions (S/Wdn, Wdn/S, W/Wdn, Wdn/W), but I'm having a bit of trouble with one for my Priest/Warrior.

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
function PriestWarriorSolo(arg1)
     local Skill = {}
     local i = 0
     local mana = UnitMana("player")
     local rage = UnitSkill("player")
     local friendly = (not UnitCanAttack("player", "target"))
     local tbuffs = BuffList("target")
     local pbuffs = BuffList("player")

     i=i+1; Skill[i] = { ['name'] = "Soul Source",             ['use'] = (PctH("player") < .10) }
     i=i+1; Skill[i] = { ['name'] = "Holy Aura",             ['use'] = (PctH("player") < .25) }
     i=i+1; Skill[i] = { ['name'] = "Action: 52 (Health Potion)",    ['use'] = (PctH("player") < .50) }
     i=i+1; Skill[i] = { ['name'] = "Action: 50 (Mana Potion)",     ['use'] = (PctM("player") < .25) }
     i=i+1; Skill[i] = { ['name'] = "Regenerate",             ['use'] = (PctH("player") < .90) }
     i=i+1; Skill[i] = { ['name'] = "Urgent Heal",             ['use'] = (PctH("player") < .75) }
     i=i+1; Skill[i] = { ['name'] = "Heal",                ['use'] = (PctH("player") < .60) }
     i=i+1; Skill[i] = { ['name'] = "Soul Bond",             ['use'] = (not string.find(pbuffs, "Soul Bond")) }
     i=i+1; Skill[i] = { ['name'] = "Battle Monk Stance",        ['use'] = (not string.find(pbuffs, "Battle Monk Stance")) }
     i=i+1; Skill[i] = { ['name'] = "Power Build-Up",             ['use'] = (not string.find(pbuffs, "Power Build-Up")) }
--     i=i+1; Skill[i] = { ['name'] = "Condensed Rage",             ['use'] = (not string.find(pbuffs, "Condensed Rage")) }
     i=i+1; Skill[i] = { ['name'] = "Amplified Attack",         ['use'] = (not string.find(pbuffs, "Amplified Attack")) }
     i=i+1; Skill[i] = { ['name'] = "Grace of Life",             ['use'] = (not string.find(pbuffs, "Grace of Life")) }
     i=i+1; Skill[i] = { ['name'] = "Enraged",                 ['use'] = ((rage <= 50) and (combat)) }
     i=i+1; Skill[i] = { ['name'] = "Ascending Dragon Strike",         ['use'] = ((not friendly) and (rage >= 30)) }
     i=i+1; Skill[i] = { ['name'] = "Fighting Spirit Combination",     ['use'] = ((not friendly) and (mana >= 200)) }
     i=i+1; Skill[i] = { ['name'] = "Explosion of Fighting Spirit",     ['use'] = ((not friendly) and (mana >= 200)) }
     i=i+1; Skill[i] = { ['name'] = "Slash",                 ['use'] = ((not friendly) and (rage >= 25) and (not string.find(tbuffs, "Bleed"))) }

     MyCombat(Skill, arg1)
end
The problem is that Power Build-Up keeps recasting every time the cooldown is over. The buff name on the tooltip is the same as the spell name (at least so far as I can tell...there might be an extra space or something in there.)

I tried running the /run Msg(Bufflist("target")) macro with myself as the target, and also changing "target" to "player" with no success (nothing was returned).

I also tried using the modified BuffList function from Post 127 hoping that maybe the buff ID would make a difference, but that didn't work either.

Obviously, I don't want to repeatedly cast Power Build-Up, but I'd like to keep it in the function. Anyone have any thoughts on how I could fix this?

427

Tuesday, May 11th 2010, 11:41am

Maybe I'm just blind, but looking for help to set up in the engine that Blood Arrow is auto cast and removed if health drops below 25%, and Savage Power, Arrow of Essence, and Concentration are cast when they are available. Thanks much.

428

Tuesday, May 11th 2010, 2:12pm

Quoted from "Reinforcements;271517"

Thanks for the quick reply Sixpax, I had completely missed that earlier code.

I pasted your revised function onto the end of your combat engine, and am getting an error when I try to execute the macro "/run ScoutKnight()"

The error says "...Attempt to call global 'ScoutKnight' (a nil value)"


Do you get the message "Reading class skills" when you login? If not, then the game isn't loading the combat engine. In that case, remove the ScoutKnight function and relog to make sure you get that message. That will tell us whether it's a problem with the function or with how you setup the addon.

If you need further help with this, send me a PM and I'll get you going.

429

Tuesday, May 11th 2010, 2:16pm

Quoted from "Vaeliorin;271754"

The problem is that Power Build-Up keeps recasting every time the cooldown is over. The buff name on the tooltip is the same as the spell name (at least so far as I can tell...there might be an extra space or something in there.)

I tried running the /run Msg(Bufflist("target")) macro with myself as the target, and also changing "target" to "player" with no success (nothing was returned).


The "L" is capital in BuffList. So you need to run this command (can be done from the chat window or from a macro):

Source code

1
/run Msg(BuffList("player"))

430

Tuesday, May 11th 2010, 2:39pm

Quoted from "ilaelyn;271775"

Maybe I'm just blind, but looking for help to set up in the engine that Blood Arrow is auto cast and removed if health drops below 25%, and Savage Power, Arrow of Essence, and Concentration are cast when they are available. Thanks much.


Give this one a try:

Source code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
function ScoutSpecials(arg1,arg2)
    local Skill = {}
    local i = 0
    local focus = UnitMana("player")
    local friendly = (not UnitCanAttack("player", "target"))
    local combat = GetPlayerCombatState()
    local health = PctH("player")
    local pbuffs = BuffList("player")
    
    i=i+1; Skill[i] = { name = "Blood Arrow",       use = (combat and (not string.find(pbuffs, "Blood Arrow")) and (health >= .75)) }
    i=i+1; Skill[i] = { name = "Blood Arrow",       use = (string.find(pbuffs, "Blood Arrow") and ((not combat) or (health <= .25))) }
    i=i+1; Skill[i] = { name = "Savage Power",      use = (combat and (not string.find(pbuffs, "Savage Power"))) }
    i=i+1; Skill[i] = { name = "Arrow of Essence",  use = (combat) }
    i=i+1; Skill[i] = { name = "Concentration",     use = (combat and (not string.find(pbuffs, "Concentration"))) }
    
    MyCombat(Skill, arg1)
end
I set it up to only cast Blood Arrow if your health is above 75%, that way if you drop below 25% and get healed, it won't turn back on immediately. Feel free to adjust that as you like.

The macro to run this is:

Source code

1
/run ScoutSpecials()

431

Tuesday, May 11th 2010, 11:34pm

Quoted from "Sixpax;271794"

The "L" is capital in BuffList. So you need to run this command (can be done from the chat window or from a macro):

Source code

1
/run Msg(BuffList("player"))

Well, running that still gives me nothing, but I did manage to get it to work.

I was being too hasty in trying to put it together, and in doing so I didn't read entirely through the modification in Post 127. Now that I have time (and I'm not half asleep) I noticed I'd missed something in that post, and now I've got it to work using the BuffID.

So...thanks for putting up with my half-sleepy stupidity. :)

432

Wednesday, May 12th 2010, 12:45am

Hi, i have a little problem with a French version of RoM :

Some skills use accentued characters, and i can't use it on the script.
Exemple :

This work really nice :
i=i+1; Skill = { name = "Tir", use = (not friendly) }

433

Wednesday, May 12th 2010, 12:49am

But Fl*ches sangsues return in chat "Skill not available: Flches sangsues"

I try with "Fleches sangsues", but the same error message come. Can you help me ?
Thanks ! (and sorry for my bad english :) )



How.. Sorry for multipost, i can't write the french name of "Fleche" because the forum don't accept accents..:x

Second edit :i found, i remplace name by "Action: xx" where xx is the number on action barre. ^^

434

Wednesday, May 12th 2010, 6:20am

Thanks a lot Sixpax, I re-copied and pasted, and the engine works great now.

435

Wednesday, May 12th 2010, 10:13am

Sixpack pls look at UberFlex Combat System

Hi,

Would you pls consider looking at the code for Uberflex combat system at Curse.com and help in repairing it since it doesn't work due to the 3... game patches. It is very similar to your concept but much easier for the user to set up for char and alt. It is a great addon and really needs some help at this time. I miss it terribly since I am in my 50's and slightly disabled. It has allowed me to play ROM with some success and a lot less stress. Your help would be greatly appreciated by all those who enjoy this addon.

Thanks

436

Wednesday, May 12th 2010, 10:53am

After using the "Search this Thread" feature I could only find one half-done scout/warrior setup, am i just missing them?

I'm terrible at building these from scratch, if someone could direct me to one ...

437

Wednesday, May 12th 2010, 12:27pm

Haha, tried patching one together, ended up breaking it so bad it won't even read my class skills anymore, hahaa. Have to clear it out and redo it all.. Found a good warrior/scout function on page 4, still need s/w, which is mainly using berserk and the elites.

438

Wednesday, May 12th 2010, 2:03pm

Skys, uberflex is working fine. go to http://forum.runesofmagic.com/showthread.php?t=148699 for info on setting it up as a tap macro. info should be in the final pages of the thread. It just won't automate anymore, so you have to hit a key every time you want it to do anything. Although it is easier to set up, I have to say I have noticed a definite performance increase from using the do it yourself combat engine instead, even if it does require you to set up a custom function for each class.

439

Wednesday, May 12th 2010, 2:11pm

Quoted from "Mousekawitz;272276"

Haha, tried patching one together, ended up breaking it so bad it won't even read my class skills anymore, hahaa. Have to clear it out and redo it all.. Found a good warrior/scout function on page 4, still need s/w, which is mainly using berserk and the elites.


List me the skills you want on it, and I'll give it a shot.

440

Wednesday, May 12th 2010, 3:09pm

getting action to recognize buff

i have this code:

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
function General(arg1,arg2)
   local Skill = {}
   local i = 0
   local tgt = "player"
   local mana = PctM(tgt)
   local health = PctH(tgt)
   local friendly = (not UnitCanAttack("player","target"))
   local shield = (GetEquipSlotInfo(17) ~= nil)
   local tspell,ttime,telapsed = UnitCastingTime("target")
   local combat = GetPlayerCombatState()
   local bigparty = (GetNumPartyMembers() > 2)
   if friendly then
      tgt = "target"
   end
   local pbuffs = BuffList("player")
   local tbuffs = BuffList("target")

   i=i+1; Skill[i] = { ['name'] = "Hall of Dead Heroes",                 ['use'] = (health <= .10) }
   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'] = "Action: 20 (Mana Pot)" ,              ['use'] = (mana < .40) }
   i=i+1; Skill[i] = { ['name'] = "Action: 61 (Banquet)",                ['use'] = ((health < .99) and (not string.find(pbuffs,"Dragon's Banquet"))) }
   i=i+1; Skill[i] = { ['name'] = "Action: 62 (Tea Waffle)",             ['use'] = ((health < .99) and (not string.find(pbuffs,"Tea-scented Waffle"))) }
   i=i+1; Skill[i] = { ['name'] = "Action: 63 (Holy Power)",             ['use'] = ((health < .99) and (not string.find(pbuffs,"Potion of Holy Power"))) }
   i=i+1; Skill[i] = { ['name'] = "Action: 64 (Mana Source)",            ['use'] = ((health < .99) and (not string.find(pbuffs,"Mana Source"))) }
   i=i+1; Skill[i] = { ['name'] = "Action: 65 (Life Source)",            ['use'] = ((health < .99) and (not string.find(pbuffs,"Life Source"))) }
   i=i+1; Skill[i] = { ['name'] = "Action: 66 (Crystal Sugar)",          ['use'] = ((health < .99) and (not string.find(pbuffs,"Crystal Sugar"))) }
   i=i+1; Skill[i] = { ['name'] = "Action: 67 (Fruit Pie)",              ['use'] = ((health < .99) and (not string.find(pbuffs,"Exotic Fruit Pie"))) }
   i=i+1; Skill[i] = { ['name'] = "Action: 68 (Stim)",                   ['use'] = ((health < .99) and (not string.find(pbuffs,"Stimulant"))) }
   i=i+1; Skill[i] = { ['name'] = "Action: 69 (Scent)",                  ['use'] = ((health < .99) and (not string.find(pbuffs,"Stimulating Scent"))) }
   i=i+1; Skill[i] = { ['name'] = "Shock",                               ['use'] = ((not friendly) and (ttime > 1) and (ttime - telapsed > 0.5)) }
-- i=i+1; Skill[i] = { ['name'] = "Charge",                              ['use'] = ((not friendly) and (ttime > 1) and (ttime - telapsed > 0.5)) }
   i=i+1; Skill[i] = { ['name'] = "Enhanced Armor",                      ['use'] = (not string.find(pbuffs,"Enhanced Armor")) }
   i=i+1; Skill[i] = { ['name'] = "Holy Seal",                           ['use'] = (not string.find(pbuffs,"Holy Seal")) } 
   i=i+1; Skill[i] = { ['name'] = "Charge",                              ['use'] = ((not friendly) and (not string.find(tbuffs,"Charge"))) }
   i=i+1; Skill[i] = { ['name'] = "Holy Aura",                           ['use'] = (health <= .25) }
   i=i+1; Skill[i] = { ['name'] = "Holy Shield",                         ['use'] = (health <= .33) }
   i=i+1; Skill[i] = { ['name'] = "Resolution",                          ['use'] = (health <= .40) }
   i=i+1; Skill[i] = { ['name'] = "Urgent Heal",                         ['use'] = (health <= .50) }
   i=i+1; Skill[i] = { ['name'] = "Urgent Heal",                         ['use'] = (friendly and (health <= .50)) }
   i=i+1; Skill[i] = { ['name'] = "Regenerate",                          ['use'] = ((not friendly) and (health <= .95) and (not string.find(pbuffs,"Regenerate"))) }
   i=i+1; Skill[i] = { ['name'] = "Regenerate",                          ['use'] = (friendly and (health <= .95) and (not string.find(tbuffs,"Regenerate"))) }
   i=i+1; Skill[i] = { ['name'] = "Holy Smite",                          ['use'] = ((not friendly) and (not bigparty) and string.find(tbuffs,"Holy Light's Fury")) }
   i=i+1; Skill[i] = { ['name'] = "Holy Light's Fury",                   ['use'] = ((not friendly) and (not bigparty) and (not string.find(tbuffs,"Holy Light's Fury"))) }
   i=i+1; Skill[i] = { ['name'] = "Shield of Atonement",                 ['use'] = ((not friendly) and shield) }
   i=i+1; Skill[i] = { ['name'] = "Shield of Valor",                     ['use'] = ((not friendly) and shield) }
   i=i+1; Skill[i] = { ['name'] = "Whirlwind Shield",                    ['use'] = ((not friendly) and shield) }
   i=i+1; Skill[i] = { ['name'] = "Threaten",                            ['use'] = (string.find(tbuffs,"Holy Seals 3") and (not string.find(pbuffs,"Threaten")) and (arg2 == "threaten")) }
   i=i+1; Skill[i] = { ['name'] = "Mana Return",                         ['use'] = (string.find(tbuffs,"Holy Seals 3")) }
-- i=i+1; Skill[i] = { ['name'] = "Disarmament",                         ['use'] = ((not friendly) and (not bigparty) and (not string.find(tbuffs,"Disarmament IV"))) }   
   i=i+1; Skill[i] = { ['name'] = "Shock",                               ['use'] = ((not friendly) and string.find(tbuffs,"Light Seal III") and (arg2 == "shock")) }
   i=i+1; Skill[i] = { ['name'] = "Punishment",                          ['use'] = ((not friendly) and string.find(tbuffs,"Light Seal III")) }
   i=i+1; Skill[i] = { ['name'] = "Holy Strike",                         ['use'] = (not friendly) }

   MyCombat(Skill,arg1)
end
when i fire the actions off, they all seem to work fine, i.e., they recognize that i have the buff on already and don't recast it, except for "Tea-scented Waffle" which continues to fire and is not recognizing that i already have that buff. could there be something wrong with the name of the buff, "Tea-scented Waffle"?