MMOMinion
Crafting SkillManager Problem: No Range field for "Progress" and etc? - Printable Version

+- MMOMinion (https://www.mmominion.com)
+-- Forum: FFXIVMinion (https://www.mmominion.com/forumdisplay.php?fid=87)
+--- Forum: Public Chat (https://www.mmominion.com/forumdisplay.php?fid=91)
+--- Thread: Crafting SkillManager Problem: No Range field for "Progress" and etc? (/showthread.php?tid=5701)



Crafting SkillManager Problem: No Range field for "Progress" and etc? - Xelaeon - 12-30-2013

Currently, "Progress" is denoted by 2 mutually-exclusive (OR condition) fields "Progress<" and "Progress>="

I'm having severe problems in scripting SkillManager Crafting profiles because

- As "Difficulty" goes up, the number of crafting "Steps" increases and so the length of the Script/Profile increases.

- To maximize EXP/CP returns/HQ, I will require to cast <Touch> at every step when needed, shown by the below "simplified" example (I left out stuff like <Inner Quiet>, <Rumination>, <Steady Hand>)
Quote:"Bot max progress per <Synthesis> cast" = 12
"Durability" = 70
"Difficulty" = 67

"Current Progress" ">=Durability" "Result"
0 61 Cast <Touch> only when enough "CP" for <Touch> + <Master's Mend>
0 71 Don't cast <Touch>
12 51 Cast <Touch> only when enough "CP" for <Touch> + <Master's Mend>
12 61 Cast <Touch>
24 41 Cast <Touch> only when enough "CP" for <Touch> + <Master's Mend>
24 51 Cast <Touch>
36 31 Cast <Touch> only when enough "CP" for <Touch> + <Master's Mend>
36 41 Cast <Touch>
48 21 Cast <Touch> only when enough "CP" for <Touch> + <Master's Mend>
48 31 Cast <Touch>
60 11 Cast <Touch> only when enough "CP" for <Touch> + <Master's Mend>
60 21 Cast <Touch>
End 1 Cast <Touch> only when enough "CP" for <Touch> + <Master's Mend>
End 11 Cast <Touch>

Note: Each line represents a row in the Skill Manager Profile

- Can you imagine how many lines the above will go given a "Difficulty" of 200+?

- If there was a range field for "Progress", I could have shorten/compress the 14 rows into just 4 rows.


RE: Crafting SkillManager Problem: No Range field for "Progress" and etc? - darkraito - 12-30-2013

Progress range field?
If you set both the "Progress <" and "Progress >=", that is a range already right?

as in
Code:
Progress < 12
Progress >= 0
is
Code:
0 <= Progress < 12

EDIT:
and what's with the double post:
http://mmominion.com/Thread-Crafting-SkillManager-Problem-No-Range-field-for-Progress-and-etc


RE: Crafting SkillManager Problem: No Range field for "Progress" and etc? - Xelaeon - 12-30-2013

(12-30-2013, 05:55 PM)darkraito Wrote:  Progress range field?
If you set both the "Progress <" and "Progress >=", that is a range already right?

as in
Code:
Progress < 12
Progress >= 0
is
Code:
0 <= Progress < 12

EDIT:
and what's with the double post:
http://mmominion.com/Thread-Crafting-SkillManager-Problem-No-Range-field-for-Progress-and-etc

I tested it already
Code:
"Progress < 12" + "Progress >= 0"
is not
"0 <= Progress < 12"

The Bot routine will take "Progress < 12" and ignore "Progress >= 0"


That's why for
Code:
"Progress < 60" + "Progress >= 12",
"Progress >= 12" will be ignored, giving you "Progress < 60" which is not what I want.
Post http://mmominion.com/Thread-Crafting-SkillManager-Problem-No-Range-field-for-Progress-and-etc
is for developers.

http://mmominion.com/Thread-Crafting-SkillManager-How-do-you-write-Profiles-with-High-Difficulty-Crafts
is for users.


RE: Crafting SkillManager Problem: No Range field for "Progress" and etc? - darkraito - 12-30-2013

I see what you meant now.

ffxivminion/ffxiv_skillmgr.lua
Code:
if ( (skill.stepmin > 0 and synth.step >= skill.stepmin) or
    (skill.stepmax > 0 and synth.step < skill.stepmax) or
    (skill.cpmin > 0 and Player.cp.current >= skill.cpmin) or
    (skill.cpmax > 0 and Player.cp.current < skill.cpmax) or
    (skill.durabmin > 0 and synth.durability >= skill.durabmin) or
    (skill.durabmax > 0 and synth.durability < skill.durabmax) or
    (skill.progrmin > 0 and synth.progress >= skill.progrmin) or
    (skill.progrmax > 0 and synth.progress < skill.progrmax) or
    (skill.qualitymin > 0 and synth.quality >= skill.qualitymin) or
    (skill.qualitymax > 0 and synth.quality < skill.qualitymax) or
    (skill.qualityminper > 0 and synth.qualitypercent >= skill.qualityminper) or
    (skill.qualitymaxper > 0 and synth.qualitypercent < skill.qualitymaxper) or
    (skill.iqstack > 0 and SkillMgr.currentIQStack < skill.iqstack) or
    (skill.condition ~= "NotUsed" and synth.description ~= skill.condition))                            
    then castable = false
end

more specifically we want to look at
Code:
(skill.progrmin > 0 and synth.progress >= skill.progrmin) or
    (skill.progrmax > 0 and synth.progress < skill.progrmax) or
I assume the variables has the values as:
skill.progrmin defines as Progress <
skill.progrmax defines as Progress >=

If we follow that, setting the Progress < 0, will not do anything as they require the value to be more than 0; otherwise it is disabled.
I can't run my FF now, but if you are willing to do some testing, change the code to
Code:
(skill.progrmin > -1 and synth.progress >= skill.progrmin) or
    (skill.progrmax > 0 and synth.progress < skill.progrmax) or
This may have other unknown side-effects. Try at your own risk.