MMOMinion

Full Version: (REQ) Ultimate Crafting Profile!
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Pages: 1 2
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 :)
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.
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.
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...
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.
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.
(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!
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.
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
Pages: 1 2