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.

mrmisterwaa

Professional

Posts: 670

Location: Kuwait

  • Send private message

1,881

Thursday, December 1st 2011, 1:46pm

Exploiting Shot is not a REAL cooldown. (Unless the skill actually shows it, which I doubt it does).

You will have to add a fake cooldown which is explained a few pages back.

1,882

Thursday, December 1st 2011, 6:30pm

Thanks Mr...I found a post (#1834 I believe) from Ghost that references timers and says to review Sixpacks party healer code but I can't seem to find the code. It is no longer on Curse and I cannot seem to find it by doing a search... Any thoughts on where I can get a copy of the code?

Thanks
Jacobmo 97Scout/97Warden/95Warrior/97Rogue/88D/85M
Allenmo 78S/77R/56P/1W/1K/1M - retired
Bteam all the way

mrmisterwaa

Professional

Posts: 670

Location: Kuwait

  • Send private message

1,883

Thursday, December 1st 2011, 7:06pm

I thought this was DIYCE 2.0.

Sorry, I suggest you upgrade to DIYCE 2.0 and use the fake-cooldown that Peryl has developed for it.

krssrb

Beginner

Posts: 20

Location: Serbia

  • Send private message

1,884

Friday, December 2nd 2011, 1:38am

Mage/Scout need help

Hi,

im playing Mage/Scout, and from last patch there is global cooldown 1 sec on all my skill's, except on Scout skill "Shot". My problem is, after i cast "Flame" there is 1 sec delay, and i can use "Shot" ("Shot" do same or more magic damage like "Fireball" cose of "Fire Arow" buff), but if i do this manualy i lose much on DPS. I downloaded old version of DIY combat engine v1.4 , it's ok for me, it check my buff's and cast flame.

Source code

1
2
3
4
5
6
7
8
9
10
11
12
13
function MageScout(arg1)
   local Skill = {}
   local i = 0
   local focus = UnitMana("player")
   local enemy = UnitCanAttack("player","target")

   i=i+1; Skill[i] = { name = "Fire Arrow",		use = (not ChkBuff("player","Fire Arrow")) }
   i=i+1; Skill[i] = { name = "Energy Influx",		use = (not ChkBuff("player","Energy Influx")) }
   i=i+1; Skill[i] = { name = "Fire Ward",		use = (not ChkBuff("player","Fire Ward")) }
   i=i+1; Skill[i] = { name = "Flame",			use = enemy }

   MyCombat(Skill,arg1)
end

I dont know much about programing, but if you can help me to this engine after cast "FLAME" fire "Shot" or "Fireball" than again "Flame" and "Shot" ....
you know " if casted 1 than cast 2 or 3 ; if casted 2 or 3 than cast 1;"...

mrmisterwaa

Professional

Posts: 670

Location: Kuwait

  • Send private message

1,885

Friday, December 2nd 2011, 9:18am

krssrb, I suggest you switch to DIYCE 2.0, this thread hasn't been supported as much as the newest version by Ghostwolf.

krssrb

Beginner

Posts: 20

Location: Serbia

  • Send private message

1,886

Sunday, December 4th 2011, 1:04pm

Quoted from "mrmisterwaa;489833"

krssrb, I suggest you switch to DIYCE 2.0, this thread hasn't been supported as much as the newest version by Ghostwolf.


I instaled DIYCE 2.0 , and your RogueScout v1.1, i tryed it on my rogue/scout, and whan i run makro in game /run KillSequence("","1") it show me error

[string 'KillSequence('','1')']:1: attempt to call global 'KillSequence' (a nil value)

can you help? what im doing wrong

1,887

Monday, December 5th 2011, 12:19am

i need a simple code like this ,can someone help me why this is not working(without blind spot is ok) ??

Quoted


function RogueScout(arg1,arg2)
local Skill = {}
local i = 0
local energy = UnitMana("player")
local focus = UnitSkill("player")
local friendly = (not UnitCanAttack("player","target"))
local combat = GetPlayerCombatState()
local pbuffs = BuffList("player")
local tbuffs = BuffList("target")
local a1,a2,a3,a4,a5,ASon = GetActionInfo(1)
i=i+1; Skill = { ['name'] = "Blind Spot", ['use'] = ((not friendly) and (energy >=35) and (behind)) }
i=i+1; Skill[i] = { ['name'] = "Wound Attack", ['use'] = ((not friendly) and (energy >=35) and (string.find(tbuffs,"Bleed")) and (string.find(tbuffs,"Grievous Wound"))) }
i=i+1; Skill[i] = { ['name'] = "Low Blow", ['use'] = ((not friendly) and (energy >=35) and (string.find(tbuffs,"Bleed"))) }
i=i+1; Skill[i] = { ['name'] = "Shadowstab", ['use'] = ((not friendly) and (energy >=35)) }
i=i+1; Skill[i] = { ['name'] = "Vampire Arrows", ['use'] = (not friendly) }
i=i+1; Skill[i] = { ['name'] = "Shot", ['use'] = (not friendly) }
i=i+1; Skill[i] = { ['name'] = "Attack", ['use'] = (not friendly) }
MyCombat(Skill,arg1,arg2)
end

Peryl

Intermediate

Posts: 313

Location: Elsewhere

  • Send private message

1,888

Saturday, December 10th 2011, 1:08am

Gaaahh... can't resist replying...

Quoted from "dvince;490580"

i need a simple code like this ,can someone help me why this is not working(without blind spot is ok) ??


Please use code tags for posting code, not quote tags (click the BB code in the Posting Rules box at the bottom of this thread to view help on using them).

As to your question, this line:

Source code

1
i=i+1; Skill[i] = { ['name'] = "Blind Spot", ['use'] = ((not friendly) and (energy >=35) and (behind)) }

is failing because the behind variable is not declared anywhere. This makes the variable nil and will cause the ['use'] entry to be removed from that particular Skill table entry. This will in turn break DIYCE.

See my tutorial on Using Lua Logic Operators for details on why this nil value gets propagated this way. Link to tutorial is in my sig below.
2013... The year from hell....

1,889

Saturday, December 10th 2011, 1:19am

Quoted from "Peryl;492216"

Gaaahh... can't resist replying...


Oh Peryl, you know you love it!

Anyway, my "unbound" timer is not working right. It keeps saying that the timer "is not available". It looks like it's trying to parse it through the CD function and failing a CD check. With what I posted above, can you see any obvious reason why it's doing that? If need be, I can post the entire DUYCE.lua and CustomFunctions.lua.

EDIT: Oops! Wrong thread... Lol! All you DIYCE 1.4 folks just ignore me. I didn't pay attention to which DIYCE thread I was in.

I'm a figment of your imagination... a hot, red-headed, nerdy-Elven-DIYCE-coder figment of your imagination. These are not the droids you are looking for. Move along.

Johanjoker

Beginner

Posts: 16

Location: New York

Occupation: Student

  • Send private message

1,890

Wednesday, December 14th 2011, 11:25pm

can some tell my why this is not working

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
function MageWarden (arg1, arg2, arg3)

[LEFT]local Skill = {}

local i = 0
[LEFT]local mana = UnitMana("player")
local friendly = (not UnitCanAttack("player","target"))
local pbuffs = BuffList("player")
local tbuffs = BuffList("target")[/LEFT]
[/LEFT]



 
[LEFT]if string.find(arg2, "instant")then
[LEFT]i=i+1; Skill[i] = { name = "Earth Groaning Wind Blade", use = not friendly }
i=i+1; Skill[i] = { name = "Earth Surge", use = not friendly }
i=i+1; Skill[i] = { name = "Fireball", use = not friendly }
end [/LEFT]
[/LEFT]


 
[LEFT]if string.find(arg2, "buff")then
i=i+1; Skill[i] = { name = "Briar Shield", use = and string.find(pbuff, not "Briar Shield") } 
i=i+1; Skill[i] = { name = "Earth Scepter", use = and string.find(pbuff, not "Earth Scepter") } 
end[/LEFT]

 
[LEFT]MyCombat(Skill,arg1)

end[/LEFT]
[img][/img]

[LEFT]Risenglory M/w/wd 70/67/58[/LEFT]
[LEFT]Reni-heretic[/LEFT]
[LEFT]R.I.P Convocation Guild T_T[/LEFT]
[LEFT]R.I.P My dps[/LEFT]


Peryl

Intermediate

Posts: 313

Location: Elsewhere

  • Send private message

1,891

Thursday, December 15th 2011, 12:31am

Quoted from "Johanjoker;493783"

can some tell my why this is not working

As no one has responded to this, I guess I should at least point you in the right direction.

First off, please format your code properly. It makes it much easier to read. See my "Avoiding Common Lua Errors" guide (link in my sig).

You haven't shown how you are calling this function, but you must specify "instant" or "buff" as the second parameter or it will do nothing at all.

First lets tackle the main problem:

Source code

1
2
i=i+1; Skill[i] = { name = "Briar Shield", use = [highlight]and[/highlight] string.find(pbuff, not "Briar Shield") } 
i=i+1; Skill[i] = { name = "Earth Scepter", use = [highlight]and[/highlight] string.find(pbuff, not "Earth Scepter") }

The term and here is misused (highlighted in red). This logic operator requires two inputs but you are only giving one. Remove the term entirely. (See my guide on "Using Lua Logic Operators" to learn how to properly use these things. Link in my sig).

Now for a bit of cleanup/minor optimization. For both the if statements in your function, you are using Lua's string.find function, but all you really want is to compare the variable arg2 with the string "instant" (or with "buff" in the second case). This is wasteful.

Instead, simply compare the variable with the desired string. So

Source code

1
if string.find(arg2, "instant")then

becomes:

Source code

1
if arg2 == "instant" then


Do something similar for the second if statement.
2013... The year from hell....

Johanjoker

Beginner

Posts: 16

Location: New York

Occupation: Student

  • Send private message

1,892

Thursday, December 15th 2011, 5:02pm

Quoted from "Peryl;493804"

As no one has responded to this, I guess I should at least point you in the right direction.

First off, please format your code properly. It makes it much easier to read. See my "Avoiding Common Lua Errors" guide (link in my sig).

You haven't shown how you are calling this function, but you must specify "instant" or "buff" as the second parameter or it will do nothing at all.

First lets tackle the main problem:

Source code

1
2
i=i+1; Skill[I] = { name = "Briar Shield", use = [highlight]and[/highlight] string.find(pbuff, not "Briar Shield") } [/I]
[I]i=i+1; Skill[I] = { name = "Earth Scepter", use = [highlight]and[/highlight] string.find(pbuff, not "Earth Scepter") } [/I][/I]

[I]The term and here is misused (highlighted in red). This logic operator requires two inputs but you are only giving one. Remove the term entirely. (See my guide on "Using Lua Logic Operators" to learn how to properly use these things. Link in my sig).[/I]

[i]Now for a bit of cleanup/minor optimization. For both the if statements in your function, you are using Lua's string.find function, but all you really want is to compare the variable [I]arg2 with the string "instant" (or with "buff" in the second case). This is wasteful.

Instead, simply compare the variable with the desired string. So

Source code

1
if string.find(arg2, "instant")then

becomes:

Source code

1
if arg2 == "instant" then


Do something similar for the second if statement.

ty, is there is a way i can defirenciate between targets...
ex:
if target= rouge then
do lightning
end

if target= mage then
do silence
end
[img][/img]

[LEFT]Risenglory M/w/wd 70/67/58[/LEFT]
[LEFT]Reni-heretic[/LEFT]
[LEFT]R.I.P Convocation Guild T_T[/LEFT]
[LEFT]R.I.P My dps[/LEFT]


Peryl

Intermediate

Posts: 313

Location: Elsewhere

  • Send private message

1,893

Friday, December 16th 2011, 12:04pm

Quoted from "Johanjoker;493991"

ty, is there is a way i can defirenciate between targets...
ex:
if target= rouge then
do lightning
end

if target= mage then
do silence
end

Yes. You can do:

Source code

1
PrimaryClass, SecondaryClass = UnitClassToken( "target" )

However, the values returned are a little odd and so need a little explanation.

if PrimaryClass and/or SecondaryClass is nil, you have no valid target.

if SecondaryClass is "" (the empty string), the target has no secondary class.

Otherwise, the string value returned will be one of:
  • "AUGUR" (Priest)
  • "DRUID" (Druid)
  • "MAGE" (Mage)
  • "KNIGHT" (Knight)
  • "RANGER" (Scout)
  • "THIEF" (Rogue)
  • "WARDEN" (Warden)
  • "WARRIOR" (Warrior)
2013... The year from hell....

1,894

Friday, December 23rd 2011, 8:26pm

Need some help with the cancel "Blood Arrow" and the rogue's conditional "Sapping". I've spent a great deal of time trying to solve it but still can't. Here is my function. function SRV(arg1) -- S/Rogue local Skill = {} local i = 0 local focus = UnitMana("player") local mana = UnitSkill("player") --energy for rogue local friendly = (not UnitCanAttack("player", "target")) local pbuffs = BuffList("player") local tbuffs = BuffList("target") local pmanapct = UnitMaxMana("player") local combat = GetPlayerCombatState() local a1,a2,a3,a4,a5,ASon = GetActionInfo(20) -- #20 is your "Autoshot" slot number i=i+1; Skill = { ['name'] = "Blood Arrow", ['use'] = (string.find(pbuffs, "Blood Arrow") and (PctH("player") < .3)) } --turn OFF BA i=i+1; Skill[i] = { ['name'] = "Sapping Arrow", ['use'] = ((not friendly))} --20cd; -15%p&mdef for 12s; no dmg by itself i=i+1; Skill[i] = { ['name'] = "Autoshot", ['use'] = ((not friendly) and (not ASon)) } i=i+1; Skill[i] = { ['name'] = "Vampire Arrows", ['use'] = ((not friendly) and (focus > 20)) } --10cd; 286%; +576HP/2s for 10s i=i+1; Skill[i] = { ['name'] = "Piercing Arrow", ['use'] = (not friendly) } --4cd; 364%; +230dmg; +194chr for 12s i=i+1; Skill[i] = { ['name'] = "Deadly Poison Bite", ['use'] = ((not friendly) and (string.find(tbuffs, "Vampire Arrows")))} --10cd; 396% (594% per BA buff); 1s cast i=i+1; Skill[i] = { ['name'] = "Combo Shot", ['use'] = (not friendly) } --8cd; 234%x3; +152 poison dmg for 8s requires poison powder i=i+1; Skill[i] = { ['name'] = "Weak Spot", ['use'] = ((not friendly) and (focus > 30)) } --15cd; 312% + 194chr; (at level 62; 283% +174chr) i=i+1; Skill[i] = { ['name'] = "Shot", ['use'] = (not friendly) } --156%; +16%dmg for 12s if crit b/c of Exploiting Shot effect MyCombat(Skill,arg1) end

1,895

Friday, December 23rd 2011, 8:35pm

Need some help with the cancel "Blood Arrow" and the rogue's conditional "Sapping". I want to use Sapping Arrow only when the Target's health is 5 times larger than Player's health. Here is my function. function SRV(arg1) -- S/Rogue local Skill = {} local i = 0 local focus = UnitMana("player") local mana = UnitSkill("player") --energy for rogue local friendly = (not UnitCanAttack("player", "target")) local pbuffs = BuffList("player") local tbuffs = BuffList("target") local pmanapct = UnitMaxMana("player") local combat = GetPlayerCombatState() local a1,a2,a3,a4,a5,ASon = GetActionInfo(20) -- #20 is your "Autoshot" slot number i=i+1; Skill = { ['name'] = "Blood Arrow", ['use'] = (string.find(pbuffs, "Blood Arrow") and (PctH("player") < .3)) } --turn OFF BA i=i+1; Skill[i] = { ['name'] = "Sapping Arrow", ['use'] = ((not friendly) and (UnitHealth("target") > (UnitHealth("player")*5))} --20cd; -15%p&mdef for 12s; no dmg by itself i=i+1; Skill[i] = { ['name'] = "Autoshot", ['use'] = ((not friendly) and (not ASon)) } MyCombat(Skill,arg1) end

Johanjoker

Beginner

Posts: 16

Location: New York

Occupation: Student

  • Send private message

1,896

Sunday, December 25th 2011, 11:47pm

so i can write

Source code

1
2
3
4
local PrimaryClass, SecondaryClass = UnitClassToken( "target" )
if primaryClass == "THIEF" then
i=i+1; Skill[i] = { name = "lightning", use = not friendly }
end
[img][/img]

[LEFT]Risenglory M/w/wd 70/67/58[/LEFT]
[LEFT]Reni-heretic[/LEFT]
[LEFT]R.I.P Convocation Guild T_T[/LEFT]
[LEFT]R.I.P My dps[/LEFT]


1,897

Wednesday, January 11th 2012, 4:13am

is it me or does doing the rogue rotation manually provide more dps than DIYCE?

1,898

Wednesday, January 11th 2012, 1:29pm

well, maybe, dunno, i don't use diyce to be top dps i use it because i am lazy to watch buffs/debuffs :)

Auros

Professional

Posts: 1,360

Mood: Mellow

  • Send private message

1,899

Wednesday, January 11th 2012, 8:39pm

No, not you, if you read through this thread (long I know) it has been brought up before that max DPS is achieved manually.

mrmisterwaa

Professional

Posts: 670

Location: Kuwait

  • Send private message

1,900

Wednesday, January 11th 2012, 9:17pm

Quoted from "Auros;501026"

No, not you, if you read through this thread (long I know) it has been brought up before that max DPS is achieved manually.


Actually, they are theoretically identical.

If you want to dig a bit deeper, it's actually higher DPS if you start using DIYCE 2.0.

As the DIYCE script will not make mistakes (unless you tell it to).