MMOMinion

Full Version: [Module] Crafting Tool v2.1.1 + FIX 2 <18/11/2013>
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Too bad my python is terrible :D I'll even say more i never used it, i'm a C++\C# kind of guy.

Also i'm not sure if it will be too hard for the bot, i'll ask fxfire later, or maybe if he looks at this topic, i was thinking to write a bot that will basically think like a chess player, 5 steps ahead and adjust accordingly if a spell fails... But, it takes a lot of time and i'm not sure it will work out well and is really needed, it would be so much easier to just let users choose a rotation i think :P Dunno tho
(10-23-2013, 09:04 PM)ymko Wrote: [ -> ]i was thinking to write a bot that will basically think like a chess player, 5 steps ahead and adjust accordingly

My goal is to write an AI that does something similar and most of the work is in place for it; just copy the synth object, run the simulation N steps with a particular strat, then score it, keeping the N-step-plan that had the best score.

The trick is coming up with a utility/scoring function that can evaluate how good a particular situation is accurately. Obviously it should get 0 points if completion is no longer possible and points for quality, but it's hard to put actual numbers on how good the fact that some buff is up or your control is increased...
I was sitting here and watching the mod craft 40/40 materials and here's what I saw:

Inner Quiet+Steady Hands (sometimes casts Steady Hands before Inner Quiet O.o)
40/40 (normal) does Basic Touch
30/40 (good) does Basic Synthesis
20/40 (normal) does Basic Touch
10/40 (normal) does Basic Synthesis

Instead what I would love to see is:
Inner Quiet+Steady Hands
40/40 (normal) Basic Synthesis (since it takes 2 Synths to craft AND the condition is NORMAL)
30/40 (good) Basic Touch (since there's enough dura to finish after this step AND the condition is GOOD)
20/40 (normal) Basic Touch (enough dura to finish after this step and there's actually nothing else that can be done here besides Touch)
10/40 (normal) Basic Synthesis
That's pretty strange it should kinda use Touch on good...

Can you tell me what you have turned on so i can reproduce the problem? or just drop me your settings file in PM :)

Otherwise i will try my best to do custom skill order soon
It was a very simple, low level material crafting. All I had enabled was Basic Synthesis, Basic Touch and Steady Hands (later I added Inner Quiet too), but it didn't matter if the 2 buff skills are enabled. Even with just Basic Touch and Synthesis it still doesn't favor touch for good condition and seemed kind of random to me (couldn't see a pattern).

Even with only touch and synthesis enabled it did that.
Well, this shouldn't happen according to coded logic, i'll have a look later in the evening as i can't now...
Yes no problemo, I'll do some more testing to see if I wasn't dreaming it up yesterday too.
If you know coding this is how it chooses a skill type:
Code:
if(not CraftingTool.FirstUse and stepsToFinish ~= 1) then
    return CraftingTool.actionType["0"] --Craft
elseif(durability == 10 and playerCP > 91 and useDurability == "1") then
    return CraftingTool.actionType["2"] --Durability
elseif(durability == stepsToFinish * 10) then
    return CraftingTool.actionType["0"] --Craft
elseif(durability > 10 and (description == "Excellent" or description == "Good") and useQuality == "1" and playerCP > 17) then
    return CraftingTool.actionType["1"] --Quality
elseif(NeedToRecastBuffs() and useBuff == "1") then
    return CraftingTool.actionType["3"] --Buffs
else
    if(durability > 10 and useQuality == "1" and qualitymax - quality ~= 0 and playerCP > 17) then
        return CraftingTool.actionType["1"] --Quality
    else
        return CraftingTool.actionType["0"] --Craft
    end
end
(10-24-2013, 11:24 AM)ymko Wrote: [ -> ]If you know coding this is how it chooses a skill type:
Code:
if(not CraftingTool.FirstUse and stepsToFinish ~= 1) then
    return CraftingTool.actionType["0"] --Craft
elseif(durability == 10 and playerCP > 91 and useDurability == "1") then
    return CraftingTool.actionType["2"] --Durability
elseif(durability == stepsToFinish * 10) then
    return CraftingTool.actionType["0"] --Craft
elseif(durability > 10 and (description == "Excellent" or description == "Good") and useQuality == "1" and playerCP > 17) then
    return CraftingTool.actionType["1"] --Quality
elseif(NeedToRecastBuffs() and useBuff == "1") then
    return CraftingTool.actionType["3"] --Buffs
else
    if(durability > 10 and useQuality == "1" and qualitymax - quality ~= 0 and playerCP > 17) then
        return CraftingTool.actionType["1"] --Quality
    else
        return CraftingTool.actionType["0"] --Craft
    end
end

Ymko I wonder if there's a way to figure out that the next step will be the "Excellent" option if so the step before it pop great Strides and then on excellent pop Advanced Touch or something. I know in 1.0 there was a bot that could read that stuff obviously no longer active but if it could be done before provided SE didn't change to much of the code it should work now.
(10-24-2013, 12:06 PM)R3P0 Wrote: [ -> ]
(10-24-2013, 11:24 AM)ymko Wrote: [ -> ]If you know coding this is how it chooses a skill type:
Code:
if(not CraftingTool.FirstUse and stepsToFinish ~= 1) then
    return CraftingTool.actionType["0"] --Craft
elseif(durability == 10 and playerCP > 91 and useDurability == "1") then
    return CraftingTool.actionType["2"] --Durability
elseif(durability == stepsToFinish * 10) then
    return CraftingTool.actionType["0"] --Craft
elseif(durability > 10 and (description == "Excellent" or description == "Good") and useQuality == "1" and playerCP > 17) then
    return CraftingTool.actionType["1"] --Quality
elseif(NeedToRecastBuffs() and useBuff == "1") then
    return CraftingTool.actionType["3"] --Buffs
else
    if(durability > 10 and useQuality == "1" and qualitymax - quality ~= 0 and playerCP > 17) then
        return CraftingTool.actionType["1"] --Quality
    else
        return CraftingTool.actionType["0"] --Craft
    end
end

Ymko I wonder if there's a way to figure out that the next step will be the "Excellent" option if so the step before it pop great Strides and then on excellent pop Advanced Touch or something. I know in 1.0 there was a bot that could read that stuff obviously no longer active but if it could be done before provided SE didn't change to much of the code it should work now.
It's random ;(