Eternium
Eternium

Announcement

Collapse
No announcement yet.

[QoL] Crafting

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • [QoL] Crafting

    I would like to see a button that allows you to sell all items in your inventory with one click
    I would also like to be able to specify the number of items we want to craft on the crafting page. Like a slider bar that goes from 1 to the max number of open slots in your inventory. Maybe even a button for "Craft as many as you can for my open inventory slots".

    In the interim...what stance would the devs have on an AHK script that did these things for you?

  • #2
    I foresee a lot of people having problems caused by accidentally pressing the [Sell All] button, just sayin'...

    OTOH, a [Craft All] to fill all open Inventory spots would be OK. Even a [Craft 5] button would be fine, kind of like opening a Loot or Gemstones

    Comment


    • #3
      I still think having a "Fill inventory" button and a slider or something saying which stats you want to keep and what amount of stat you want is better (I.E. 89 minimum for power)
      ANB #1- Mage Rank 17..... T107 in 9:47
      ANB #2- Mage Rank 1....... T116 in 9:54

      Live LB- Mage Rank 1........ T122 in 9:05.
      Live LB- XP Mage Rank 31. T112 in 7:55/ T100 in 3:25.

      Click here to see my gameplay videos.

      Comment


      • #4
        Using an ahk script for that won't get you banned but will make the PC to mobile gap even bigger.

        Comment


        • #5
          Originally posted by Humus View Post
          Using an ahk script for that won't get you banned but will make the PC to mobile gap even bigger.
          I'm just trying to save my poor mouse from the incessant clicking. At any rate, here it is then...you will have to set all of the global values based on your screen size. The way I did it, was to take a screenshot and use paint to grab the values. Also, there is a last global there, defaulted to "true", to prevent someone from copy/pasting this script and messing themselves up - it sets debugMode on by default, and causes the script to NOT make or sell items - just move the mouse around and click tabs/etc so you can validate your coordinates.

          This script implies that your inventory is EMPTY.

          Alt+R = Craft rings to fill your inventory.
          Alt+N = Craft necklaces to fill your inventory
          Alt+S = Sell everything in your inventory

          Code:
          #NoEnv  ; Recommended for performance and compatibility with future AutoHotkey releases.
          SendMode Input  ; Recommended for new scripts due to its superior speed and reliability.
          SetWorkingDir %A_ScriptDir%  ; Ensures a consistent starting directory.
          
          CoordMode, Mouse, Screen
          
          ; This script implies that your inventory is EMPTY.
          
          ; Set this to the number of rows you have unlocked in your inventory.
          global totalInventoryRows := 5
          
          ; These are the X/Y coordinates of the Sell/Done button that appears in the upper right corner of the screen.
          global sellButtonXPos := 1520
          global sellButtonYPos := 90
          
          ; These are the X/Y coordinates of the tabs that appear on the right side (Store, Craft, Stash, Jewelry).
          global verticalTabsXPos := 1750
          global jewelryTabYPos := 755
          global inventoryTabYPos := 608
          
          ; These are the X/Y coordinates of the Craft tab on the Jewelry page.
          global jewelryTabCraftTabXPos := 520
          global jewelryTabCraftTabYPos := 190
          
          ; These are the X/Y coordinates of the ring/necklace buttons on the Jewelry Craft page.
          global ringTypeXPos := 620
          global necklaceTypeXPos := 760
          global craftingTypeYPos := 565
          
          ; These are the X/Y coordinates of the Craft button on the Jewelry Craft page.
          global craftButtonXPos := 700
          global craftButtonYPos := 850
          
          ; This is the Width of a single inventory grid item.
          global inventoryGridItemWidth := 104
          ; This is the Height of a single inventory grid item.
          global inventoryGridItemHeight := 112
          
          ; These are the X/Y coordinates of the upper left corner where the inventory grid begins.
          global inventoryGridXPos := 1036
          global inventoryGridYPos := 148
          
          ; Set this to true to help test your coordinates.
          ; All actions will be performed when executed EXCEPT the actual crafting and selling of items.
          global debugMode := true
          
          !R::
          CraftJewelry("ring", totalInventoryRows * 6)
          ClickInventoryTab()
          MoveToFirstInventoryItem()
          return
          
          !N::
          CraftJewelry("necklace", totalInventoryRows * 6)
          ClickInventoryTab()
          MoveToFirstInventoryItem()
          return
          
          !S::
          ClickSellDoneButton()
          ProcessInventory()
          ClickSellDoneButton()
          return
          
          MoveToFirstInventoryItem()
          {
              currentInventoryGridXPos := inventoryGridXPos + (inventoryGridItemWidth / 2)
              currentInventoryGridYPos := inventoryGridYPos + (inventoryGridItemHeight / 2)
          
              MouseMove, currentInventoryGridXPos, currentInventoryGridYPos, 5
              MouseClick, Left, currentInventoryGridXPos, currentInventoryGridYPos, 1
          }
          
          ClickCraftingTab()
          {
              MouseMove, verticalTabsXPos, jewelryTabYPos, 5
              MouseClick, Left, verticalTabsXPos, jewelryTabYPos, 1
          }
          
          ClickCraftingTabCraftTab()
          {
              MouseMove, jewelryTabCraftTabXPos, jewelryTabCraftTabYPos, 5
              MouseClick, Left, jewelryTabCraftTabXPos, jewelryTabCraftTabYPos, 1
          }
          
          ClickInventoryTab()
          {
              MouseMove, verticalTabsXPos, inventoryTabYPos, 5
              MouseClick, Left, verticalTabsXPos, inventoryTabYPos, 1
          }
          
          CraftJewelry(type, count)
          {
              isValidType := true
          
              ClickCraftingTab()
              ClickCraftingTabCraftTab()
          
              typeXPos := 0
          
              if (type = "ring") {
                  typeXPos := ringTypeXPos
              } else if (type = "necklace") {
                  typeXPos := necklaceTypeXPos
              } else {
                  isValidType := false
              }
          
              if (isValidType) {
                  MouseMove, typeXPos, craftingTypeYPos, 5
                  MouseClick, Left, typeXPos, craftingTypeYPos, 1
          
                  Loop %count% {
                      MouseMove, craftButtonXPos, craftButtonYPos, 5
          
                      if (not debugMode) {
                          MouseClick, Left, craftButtonXPos, craftButtonYPos, 1
                      }
          
                      Sleep, 100
                  }
              }
          }
          
          ClickSellDoneButton()
          {
              MouseMove, sellButtonXPos, sellButtonYPos, 5
              MouseClick, Left, sellButtonXPos, sellButtonYPos, 1
          }
          
          ProcessInventory()
          {
              firstXMove := true
              firstYMove := true
              currentInventoryGridYPos := inventoryGridYPos
          
              ; Rows
              Loop %totalInventoryRows% {
                  currentInventoryGridXPos := inventoryGridXPos
          
                  if (firstYMove) {
                      currentInventoryGridYPos += inventoryGridItemHeight / 2
                  } else {
                      currentInventoryGridYPos += inventoryGridItemHeight
                  }
          
                  firstXMove := true
                  firstYMove := false
          
                  ;Columns
                  Loop 6 {
                      if (firstXMove) {
                          currentInventoryGridXPos += inventoryGridItemWidth / 2
                      } else {
                          currentInventoryGridXPos += inventoryGridItemWidth
                      }
          
                      firstXMove := false
                      MouseMove, currentInventoryGridXPos, currentInventoryGridYPos, 2
          
                      if (not debugMode) {
                          MouseClick, Left, currentInventoryGridXPos, currentInventoryGridYPos, 1
                      }
                  }
              }
          }

          Comment


          • #6
            And now that there's already a working script, devs please implement this natively.

            Comment


            • #7
              Hm. We don't use AutoIT any more?
              ____

              Oh, AutoIT became AHK. NVM.
              Last edited by GrauGeist; 04-16-2018, 11:32 PM.

              Comment


              • #8
                Originally posted by GrauGeist View Post
                Hm. We don't use AutoIT any more?
                I've never used any of them. I just chose AHK since there was another script out there to use potions/apples.

                Comment

                Working...
                X