NOTICE: By continued use of this site you understand and agree to the binding Terms of Service and Privacy Policy.
// ==UserScript== // @name XIVDB - Order Bot Generator // @namespace http://tampermonkey.net/ // @version 0.1 // @description Generates Order Bot Profiles. // @author softcabbages // @match http://xivdb.com/item/* // @grant none // @require https://code.jquery.com/jquery-3.2.1.min.js // @updateURL https://openuserjs.org/meta/softcabbages/XIVDB_-_Order_Bot_Generator.meta.js // ==/UserScript== // // ---------------------------------------------------------------------- // README // // The profile's that this script generates by default requires: // Craftsmanship: 1322 WITHOUT FOOD. Unsure if you can wing it here with less and use a food to meet the minimum. // Control: 1270 <-- this is what I got as a Control stat. 98% HQ Rate from NQ mats. // CP: 470 WITHOUT FOOD // Food Used: Baked Onion Soup (You can change this if you want, I'm a cheap ass) // The rotation it uses for crafting is exclusively for Specialists and is geared towards level 70 two star. But I don't see why it couldn't do level 60 crafts if you wanted it do so. // // ----> This profile requires EntraxBuudy AND ExBuddy. <---- // https://github.com/Entrax643/EntraxBuddy.git/trunk // https://github.com/Entrax643/ExBuddy.git/trunk/ExBuddy // Save the profile that this script generates in to your EntraxBuddy folder. // IE: D:\RB64\Profiles\EntraxBuddy\Profiles\Craft\Culinarian // // For this version, the rotations for Specialist and non-Specialsit are identical. So please do use with caution. // ----------------------------------------------------------------------- (function() { var itemname = $( "h1.rarity-common" ).text(); var itemID = window.location.pathname.split('/'); // Just a meh setting. I mostly throwed this in because I usually craft as much ALC/CUL stuff as possible. var DeducedQuantity = "1"; var recipeID = $("span.item-craftable-data a").attr("href").split('/'); var classSearch = $("div.item-craftable-top span:first").text(); classSearch = $.trim(classSearch.replace(/\d+/g, '')); var specialist = 0; // If one of the below classes is a specialist of yours, set the specialist variable to 1. Otherwise, just remove it. if (classSearch ==='Culinarian' ) { var DeducedQuantity = "999"; var GearSet = "26"; specialist = 1; } if (classSearch ==='Alchemist' ) { var DeducedQuantity = "999"; var GearSet = "22"; specialist = 1; } if (classSearch ==='Carpenter' ) { var DeducedQuantity = "1"; var GearSet = "27"; } if (classSearch ==='Blacksmith' ) { var DeducedQuantity = "1"; var GearSet = "21"; } if (classSearch ==='Goldsmith' ) { var DeducedQuantity = "1"; var GearSet = "19"; specialist = 1; } if (classSearch ==='Weaver' ) { var DeducedQuantity = "1"; var GearSet = "17"; } if (classSearch ==='Leatherworker' ) { var DeducedQuantity = "1"; var GearSet = "8"; } if (classSearch ==='Armorer' ) { var DeducedQuantity = "1"; var GearSet = "25"; } if (specialist == 1) { Rotation = "<CraftActionByName Name=\"Initial Preparations\" \/>\r\n\t\t\t\t<CraftActionByName Name=\"Comfort Zone\" \/>\r\n\t\t\t\t<CraftActionByName Name=\"Inner Quiet\" \/>\r\n\t\t\t\t<CraftActionByName Name=\"Specialty: Reflect\" \/>\r\n\t\t\t\t<CraftActionByName Name=\"Steady Hand II\" \/>\r\n\t\t\t\t<CraftActionByName Name=\"Piece by Piece\" \/>\r\n\t\t\t\t<CraftActionByName Name=\"Piece by Piece\" \/>\r\n\t\t\t\t<CraftActionByName Name=\"Prudent Touch\" \/>\r\n\t\t\t\t<CraftActionByName Name=\"Prudent Touch\" \/>\r\n\t\t\t\t<CraftActionByName Name=\"Prudent Touch\" \/>\r\n\t\t\t\t<CraftActionByName Name=\"Manipulation II\" \/>\r\n\t\t\t\t<CraftActionByName Name=\"Steady Hand II\" \/>\r\n\t\t\t\t<CraftActionByName Name=\"Comfort Zone\" \/>\r\n\t\t\t\t<CraftActionByName Name=\"Prudent Touch\" \/>\r\n\t\t\t\t<CraftActionByName Name=\"Prudent Touch\" \/>\r\n\t\t\t\t<CraftActionByName Name=\"Prudent Touch\" \/>\r\n\t\t\t\t<CraftActionByName Name=\"Standard Touch\" \/>\r\n\t\t\t\t<CraftActionByName Name=\"Steady Hand\" \/>\r\n\t\t\t\t<CraftActionByName Name=\"Great Strides\" \/>\r\n\t\t\t\t<CraftActionByName Name=\"Innovation\" \/>\r\n\t\t\t\t<CraftActionByName Name=\"Ingenuity II\" \/>\r\n\t\t\t\t<CraftActionByName Name=\"Byregot's Blessing\" \/>\r\n\t\t\t\t<CraftActionByName Name=\"Careful Synthesis III\" \/>\r\n\t\t\t\t<CraftActionByName Name=\"Careful Synthesis III\" \/>\r\n\t\t\t\t<CraftActionByName Name=\"Careful Synthesis III\" \/>\r\n\t\t\t\t<CraftActionByName Name=\"Careful Synthesis III\" \/>"; } else { // This is Non-specialist Rotation. Will edit later. Rotation = "<CraftActionByName Name=\"Initial Preparations\" \/>\r\n\t\t\t\t<CraftActionByName Name=\"Comfort Zone\" \/>\r\n\t\t\t\t<CraftActionByName Name=\"Inner Quiet\" \/>\r\n\t\t\t\t<CraftActionByName Name=\"Specialty: Reflect\" \/>\r\n\t\t\t\t<CraftActionByName Name=\"Steady Hand II\" \/>\r\n\t\t\t\t<CraftActionByName Name=\"Piece by Piece\" \/>\r\n\t\t\t\t<CraftActionByName Name=\"Piece by Piece\" \/>\r\n\t\t\t\t<CraftActionByName Name=\"Prudent Touch\" \/>\r\n\t\t\t\t<CraftActionByName Name=\"Prudent Touch\" \/>\r\n\t\t\t\t<CraftActionByName Name=\"Prudent Touch\" \/>\r\n\t\t\t\t<CraftActionByName Name=\"Manipulation II\" \/>\r\n\t\t\t\t<CraftActionByName Name=\"Steady Hand II\" \/>\r\n\t\t\t\t<CraftActionByName Name=\"Comfort Zone\" \/>\r\n\t\t\t\t<CraftActionByName Name=\"Prudent Touch\" \/>\r\n\t\t\t\t<CraftActionByName Name=\"Prudent Touch\" \/>\r\n\t\t\t\t<CraftActionByName Name=\"Prudent Touch\" \/>\r\n\t\t\t\t<CraftActionByName Name=\"Standard Touch\" \/>\r\n\t\t\t\t<CraftActionByName Name=\"Steady Hand\" \/>\r\n\t\t\t\t<CraftActionByName Name=\"Great Strides\" \/>\r\n\t\t\t\t<CraftActionByName Name=\"Innovation\" \/>\r\n\t\t\t\t<CraftActionByName Name=\"Ingenuity II\" \/>\r\n\t\t\t\t<CraftActionByName Name=\"Byregot's Blessing\" \/>\r\n\t\t\t\t<CraftActionByName Name=\"Careful Synthesis III\" \/>\r\n\t\t\t\t<CraftActionByName Name=\"Careful Synthesis III\" \/>\r\n\t\t\t\t<CraftActionByName Name=\"Careful Synthesis III\" \/>\r\n\t\t\t\t<CraftActionByName Name=\"Careful Synthesis III\" \/>"; } var BodyCode = "<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n<!DOCTYPE Profile [<!-- Profile Settings -->\r\n<!-- Where do you want to port while witing \/ crafting-->\r\n<!ENTITY Waiting_AetheryteId \"59\">\r\n<!ENTITY Craft_Qty \"" + DeducedQuantity + "\">\r\n<!-- Use Craft at your OWN RISK -->\r\n<!ENTITY Craft \"1\">\r\n<!ENTITY ID_FOOD \"12861\">\r\n<!-- Set to 1 if you want(and can) use the skill -->\r\n<!-- -->\r\n<!-- DO NOT TOUCH THIS -->\r\n<!ENTITY Version \"Mew\">\r\n<!ENTITY Color \"#FFFF00\">\r\n]><Profile>\r\n\t<Name>"+ itemname +"<\/Name>\r\n\t<BehaviorDirectory>..\\..\\..\\Quest Behaviors<\/BehaviorDirectory>\r\n\t<Order>\r\n\t\t<StopCrafting\/>\r\n\t\t<!-- Crafting -->\r\n\t\t<If Condition=\"&Craft; !=0\">\r\n\t\t\t<ExLog Color=\"&Color;\" Name=\""+ itemname +" &Version;\" Message=\"It's time to craft !\"\/>\r\n\t\t\t<RunCode Name=\"CLASS\" \/>\r\n\t\t\t\r\n\t\t\t<WaitTimer WaitTime=\"3\"\/>\r\n\t\t\t<While Condition=\"ItemCount("+ itemID[2] +") &lt; 999\">\r\n\t\t\t\t<EatFood ItemId=\"&ID_FOOD;\" HqOnly=\"True\" \/>\r\n\t\t\t\t<!-- Required Skills : Ingenuity II (283), Flawless Synthesis, Manipulation, Careful synthesis 2 (100069), Piece by Piece, Innovation, Byregot's Blessing, Comfort Zone, Waste Not II -->\r\n\t\t\t\t<!-- Optionnals : Innovation, Tricks of the Trade, Reclaim -->\r\n\t\t\t\t<Synthesize RecipeId=\""+ recipeID[2] +"\" MinimumCp=\"470\" HqMats=\"-1,-1,-1,-1,-1,-1\" RequiredSkills=\"283, 100083, 278, 100069, 100039, 284, 100009, 286, 285\" \/>\r\n\t\t\t\t"+ Rotation +"\r\n\t\t\t<\/While>\r\n\t\t\t<StopCrafting\/>\r\n\t\t<\/If>\r\n\t\t<ExLog Color=\"&Color;\" Name=\""+ itemname +" &Version;\" Message=\""+ itemname +" Profile Completed ! \u0F3C \u3064 \u0361\u25D5 \u047E \u0361\u25D5 \u0F3D\u3064 Entrax \"\/>\r\n\t<\/Order>\r\n\t<CodeChunks>\r\n\t\t<CodeChunk Name=\"CLASS\">\r\n\t\t\t<![CDATA[ \tff14bot.Managers.ChatManager.SendChat(\"\/gs change "+ GearSet +"\");\t]]>\r\n\t\t<\/CodeChunk>\r\n\t<\/CodeChunks>\r\n<\/Profile>"; // Add Menu $( "nav.menu" ).append("<span><div>Script Options</div></div></span>"); $( ".additional-content-container" ).prepend( "[OrderBot]["+classSearch+"]"+ itemname +"<br><textarea name='OrderBot' cols='100' rows='10' style='background-color: #3a3a3a; color: white; border-color: black' onclick='this.focus();this.select()' readonly='true'>"+ BodyCode +"</textarea>" ); })();