Posts: 389
Threads: 60
Joined: Jan 2014
I will donate if thats what it takes!
I would love a profile that is useable for those with everything maxed. I just got all my crafts to 50 (took me down to 44 gil ugh) and it was done very innefectively and slowly compared to whats possible im sure.
At this point I want to automate the crafting of some high end stuff (if need be) in order to have made it worthwhile. Ill be honest and say i dont know too much as far as crafting goes, just the basics (hence the reason i didnt level it very fast or effeciently)
Before I ramble any further, basically what im asking for is something that recognizes and incorporates all x class actions in order to create the ultimate/ideal crafting profile for 100% HQ Crafts.
I assume this is something that is useable on all DoH Jobs as if you have them all at 50 they all have the same set of actions yes?
Anyhow, ideally one that would work for mats & combines would be excellent (40/80) but i realize time is precious - hence my willingness to donate whatever is required :)
This is something the community could really use and an area which is certainly lacking.
Personally it would mean the world to have it and test it/get some use from it before the patch goes live and throws the world into chaos! :P
That is all :)
Posts: 2,172
Threads: 65
Joined: Oct 2013
The action IDs for skills are not consistent across classes, or when the skill changes from a primary to a cross-class. Can't be done.
Posts: 6,540
Threads: 67
Joined: Nov 2013
it could be done couldnt it. you would just need each version of the skill from all the classes in it. if its not a cross class skill.
Posts: 2,172
Threads: 65
Joined: Oct 2013
I should say "shouldn't" be done. Would be close to 100 entries on one profile for 80 dura crafts, and with default profiles it's just not an efficient use of time at all. I mean, you could throw in all the DoM classes into a single profile too, but then you'd be playing a buddy bot, which would probably be more along the lines of what he's used to.
I just Posted ALL of my crafting Profiles.... not that hard to use the drop down menu to switch to the proper class/dura...
Posts: 18
Threads: 3
Joined: Mar 2014
Here's my solution for the "ultimate" crafting profile:
1. Use any class profile that you like (signature and jackie both posted good profiles)
2. Modify the LUA code so it use skill name instead of skill ID when crafting. To do that, you need to create a sub-module that modify SkillMgr.Craft() function.
- Follow this guide here to create a submodule:
https://github.com/MMOMinion/FFXIVMinion...ample-%231
- Add the function SkillMgr.Craft() to your file (it basically modifies the original function in ffxiv_skillmgr.lua so if the bot gets updated, it may breaks)
Code:
function SkillMgr.Craft()
local synth = Crafting:SynthInfo()
if ( TableSize(synth) > 0 and TableSize(SkillMgr.SkillProfile) > 0 and not ActionList:IsCasting()) then
local pbuffs = Player.buffs
-- update inner quite stack
local iqfound=false
if ( TableSize(pbuffs) > 0) then
for i, buff in pairs(pbuffs) do
if (buff.id == 251) then
-- first time we have the buff
if ( SkillMgr.lastquality == 0 ) then
SkillMgr.lastquality = synth.quality
elseif ( synth.quality > SkillMgr.lastquality ) then
-- second time in here with increased quality -> we gained a stack IQ
SkillMgr.lastquality = synth.quality
SkillMgr.currentIQStack = SkillMgr.currentIQStack + 1
end
iqfound = true
break
end
end
end
-- reset
if not iqfound then
SkillMgr.currentIQStack = 0
SkillMgr.lastquality = 0
end
for prio,skill in pairs(SkillMgr.SkillProfile) do
if ( skill.used == "1" ) then
-- get action id from name
local realskilldata = nil
local SkillList = ActionList("type=1")
if ( TableSize( SkillList ) > 0 ) then
local i,s = next ( SkillList )
while i and s and s.id do
if (s.name == skill.name)
then
realskilldata = ActionList:Get(s.id)
break
else
i,s = next ( SkillList , i )
end
end
end
SkillList = ActionList("type=9")
if ( TableSize( SkillList ) > 0 ) then
local i,s = next ( SkillList )
while i and s and s.id do
if (s.name == skill.name)
then
realskilldata = ActionList:Get(s.id)
break
else
i,s = next ( SkillList , i )
end
end
end
-- local realskilldata = ActionList:Get(skill.id)
if ( realskilldata and realskilldata.isready ) then
local castable = true
--d("Checking on skill:"..tostring(skill.name).." "..tostring(synth.durability).." > "..tostring(skill.durabmax) .. ": "..tostring(skill.durabmax > 0 and synth.durability > skill.durabmax))
--d("Checking on skill:"..tostring(skill.name).." "..tostring(skill.condition).." > "..tostring(synth.description) .. ": "..tostring(skill.condition ~= "NotUsed" and synth.description ~= skill.condition))
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
-- buff checks
if ( skill.cpbuff ~= "" ) then
local bfound = HasBuffs(Player,skill.cpbuff)
if not bfound then castable = false end
end
-- dont cast this spell when we have any of the BuffIDs in the skill.cpnbuff list
if (skill.cpnbuff ~= "" ) then
local tbfound = HasBuffs(Player,skill.cpnbuff)
if tbfound then castable = false end
end
if ( castable ) then
d("CASTING(Crafting) : "..tostring(realskilldata.name))
if ( ActionList:Cast(realskilldata.id,0) ) then
skill.lastcast = ml_global_information.Now
SkillMgr.prevSkillID = tostring(realskilldata.id)
return true
end
end
end
end
end
end
return false
end
I'm pretty sure there is a cleaner way to code this, but it's just a little modification it's not worth the time. If you want it to be integrated into the bot, you can request a feature for the official crafting module that recognize the skill name instead of skill ID.
Posts: 878
Threads: 5
Joined: Feb 2011
Reputation:
5
you can do that, but we won't. its language dependent and not all clients are using the same language. So profiles would only work in the language they were build in.
...................................
Yeah, well. The Dude abides.
Posts: 389
Threads: 60
Joined: Jan 2014
(03-23-2014, 07:57 PM)aceRage Wrote: The action IDs for skills are not consistent across classes, or when the skill changes from a primary to a cross-class. Can't be done.
Awwww! Well id imagine the rotation would be the same yes? Would just have to remake it as you change classes? After an unfathomable investment just prior to 2.2 (foolish as I didn't expect them to up requirements so high and add so much gear. The investment was likely pointless and up in smoke)
That said, I'm like 352/352 with 380cp or something like that with cp food.
Two star recipes should be 100% hqable from what I gather.
I have done a few by hand but they're far from 100% HQ which has led me here. I'm a adventurer first but a min/max completionist second so crafting was/is an important part of that.
Not really interested in making $$ I just want to simplify my hotbars/rotations and be able to make something I need without much fuss or time/money wasted.
Now before I hit send - I haven't read past the first reply so if someone already posted this, apologies! With that said, anyone have said rotation for any class that I can import and then copy over one by one to the rest?
I realize this comes across as lazy which is why I offered to donate. It's much less about that and much more about the fact I struggle with the skill manager. Anyone can make one, but for crafting I simply don't craft often or well enough to be confident in making it right/efficient.
Thanks guys!
Posts: 6,540
Threads: 67
Joined: Nov 2013
there is no "rotation" because of vairables, failed crafts different condition procs. Its best to make a profile that is dynamic that works on condition,buff,CP,Duablitly,and completion% rather then doing a set rotation step by step. You should treat it just like a normal skill manager profile. If you want to have steady hand II buff have it set to cast that buff when ever its missing, same with inner quite, trigger skills like tricks of trade off good conditions, use hasty touch when above 20 durability use master mend II when below 30 durablity. have it setup this way instead of step one do this step 2 do that you will get 100% hq 100% of the time.
Posts: 22
Threads: 2
Joined: Dec 2013
03-30-2014, 06:34 PM
(This post was last modified: 03-30-2014, 06:35 PM by rahni.)
hey guys i was wondering is there a way to make a skill profile tht uses a "user macro" i apologize in advance if the anwser to this is somewhere in this post i am incompetent and cant find it