Nexus: Mining Assistant

Hello Nexus friends! For some time I have been working on a package that helps out with prospecting, mainly the movement part. For quite awhile now I have participated in Mining and the main reason I decided to start working on this package is that it had become truly difficult to ever find any decent lodes while I was out prospecting. Obviously if you have spent time mining and prospecting you will know that there are many others that certainly possess scripts/packages that they use to improve their prospecting and this makes it very difficult to keep up with them during that process. Eventually I started working on my own.

You can find the package at my github page, just follow this link: https://github.com/KaiosGit/Achaea/tree/miningassistant 

Please note that this package is not yet completed! The core features are working but it needs a lot of improvement. The Read Me should cover most things well including the to-do list for what I still need to work on, but I will also take this time to go over a few key points regarding the package.

What can it do at this time?
  • Automated prospecting in all main land locations and the Tundra.
  • Stop prospecting at any time and when continued it will begin from the stopping point.
  • Customization of Prospecting Route by Area
  • Choose what size of lode you want the prospecting to stop at. Will always stop at uncommon lodes (other than platinum) regardless of lode size.
  • 'Wings Mode' automates the use of Wings during prospecting. (Still somewhat buggy)
  • Tracking and Collection of Mines and Lodes, which can also be displayed
  • Searching of the Mine Collection array
  • Manual reporting of lodes.
What can it NOT do at this time?
  • Does not automatically construct mines or deploy squads. If this is something you want to include yourself and are capable of doing so, feel free, but it is not a feature I plan to add.
  • No automated lode reporting. (yet)
  • Does not yet account for being blocked by walls, though there is a disabled trigger in the 'Incomplete' group of the package that is still in the process of being completed that could be used for this.
  • Only the AREA order can be customized via an alias, not the ROOM orders.
  • No method of travel from main land to Tundra or Fissure of Echoes.

Please keep in mind that the intent of this package is NOT to let you do other things in real life while you are prospecting and that doing so is against the rules, which is why I neglected to include any sort of automated construction or squad deployment. When the package stops at a lode it does not continue the process for you, you must re-initialize prospecting with the MAPR command.

There are still several features I'd like to add or am working on, but I would certainly appreciate any and all comments, feedback, and suggestions!

Comments

  • edited February 2021
    Uploaded version 1.3 with a few changes and additions.

    Changes
    • Included MARESET and MAVALS in the command list displayed with MA for the time being. Ideally, these will eventually not be necessary to include.
    • Added the 'KnockedDownTundra' trigger in the 'ProspectReflex' group. This should account for being stopped by the prone that the wendigos in the Tundra use and during my testing it was successful. There may be some weirdness with that still however so I have marked it as partially resolved for now.
    • Added a group for Highlights. Removed the highlighting from triggers 'ProspectReflex3' and 'ProspectReflex4' and added them to triggers in the Highlights group.
    • Moved 'Tracking' group to inside 'ProspectTriggers' group
    • Moved 'RoomCollect' group to inside 'ProspectTriggers' group
    • Fixed a display notice error in alias 'SetRoute'
    • Fixed a display notice error in trigger 'ProspectReflex4'
    • Variable set added in 'TooFarAway' trigger
    • Adjusted some of the logic in trigger 'ArrivedDestination'
    • Adjusted some of the logic in trigger 'SettingsDisplay'
    • Modified some parts of the onGMCP to set/change values only when prospecting is happening.
    Issues
    • Noticed an issue with the Mine Collection caused by high latency, in which movement will occur before the sign gets read, and due to how the trigger works this also leads to the mine not getting pushed to the mine collection array. Uncertain what the best solution for this might be but I've added it to the To-do list in any case.
    • For those who prospect with a mount and have something in place to mount again should they get knocked off, this could also interfere with prospecting such as with the wendigos in the Tundra as there is nothing currently in place at this time that deals with mounting.

    If you are making any changes to the aliases in the package I would recommend making copies of them in your main package, then after you download a new version you can either disable the aliases in the Mining Assistant package that you copied over to your main, or copy your changes back to the package. Whatever is easiest for you.


    I suppose it would also be prudent to explain how wings usage is handled and why there are still currently some issues with it. When 'Wings Mode' is turned on, there are two triggers that handle its usage; 'DestinationTrack' and 'CloudsMovement' which are located within the 'ProspectTriggers' group.

    DestinationTrack:


    CloudsMovement:


    Essentially, when Wings Mode is on and you begin moving towards your next destination either through initialization of prospecting or during, the trigger DestinationTrack will check to see how far you are from your current destination and given that the value in the parameter is set to greater than or equal to 20 this means that you will go to the Clouds when you are 20 or more rooms away from your next destination. At this point, the trigger CloudsMovement then checks to ensure you are in the Skies and sends you on your way.

    The problem arises when moving from the Clouds, if the next destination in your route is 20 or more rooms away from you after you exit the Clouds (or whatever the number of rooms would be set to if you were to change that), then you get locked in to that state of moving back to the Clouds, to the next destination, back to Clouds, to the next destination, and so forth until the script is stopped.

    My assumption with Wings was that when you move towards a destination from the Clouds you will exit the Clouds using an exit that is nearest to that destination, but this may not necessarily always be the case, or depending on the route may always end up being higher than what the current value for destination tracking is set to. Hopefully that all makes sense, if not don't worry though because I am confident I will figure out a better way to do that eventually.

  • edited February 2021
    Updated to version 1.4

    Changes
    • Adjusted how the global variables are set in the alias 'SetRoute'
    • Switched from 'var' to 'let' for the variable setting in alias 'SetLodeDetection'
    • Slight adjustment to a display notice in alias 'SetLodeDetection'
    • Changed the highlighting for many of the display notices to something more pleasant, but retained original highlighting for onLoad, stopping at lodes, errors, and other important notices.
        Wings Mode
    • Changed trigger 'CloudsMovement' to a regular expression to include 'on the clouds', 'high above the clouds', and 'far above the clouds' in capture.
    • Added a 100ms timeout before the code in trigger 'CloudsMovement' is executed to help ensure you have actually arrived at the Skies before the check and movement occur. The time could be changed to suit your needs or removed entirely if you feel it's unnecessary.
    • Modified trigger 'DestinationTrack' to queue an alias which uses 'SAY Duanathar' instead of sending the say command directly. Included custom alias setting and clearing when Wings Mode is turned ON or OFF.
    • Increased number of rooms away from destination to use Wings from greater than or equal to 20, to greater than or equal to 21. (Trigger 'DestinationTrack')
    • Changed 'send_command("SAY Duanathar", true);' to 'send_command("queue addclear eqbal wingsmove");' in trigger 'DestinationTrack'
    • Added a display notice in the trigger 'DestinationTrack'
    • Modified 'On/Off Alias' to include setting and clearing an alias for 'SAY Duanathar' when Wings Mode is turned ON or OFF.
        Mine Collection
    • Changed the way Mine Collection is handled to help account for latency. Instead of the read sign command occuring in the 'MineCollection' trigger and then including a Wait For action, I have separated this in to two triggers (MineCollection1 and MineCollection2); one for the mine and one for the sign, which is now read at the same time prospecting occurs in the trigger 'ProspectReflex2' if Mine Collection is ON. This also makes it easier to modify if you want to push the string without getting the city or including the sign reading step, in the case one does not have or want to use Voka's CharacterDB package.
    • Changed 'On/Off Alias' to enable or disable both Mine Collection triggers when turned ON or OFF.
    Issues
    • Issue reported in relation to Wings Mode; It seems the line 'send_command("SAY Duanathar", true);' in the trigger 'DestinationTrack' does not always use your wings when the command is sent in this way. I'm uncertain if this happens occasionally or all the time or what the reason could be, but I suspect if it works some of the time then it's related to having or not having balance when used. What I have done instead is change the command in 'DestinationTrack' to 'send_command("queue addclear eqbal wingsmove");' and the alias 'wingsmove' is being set when Wings Mode is turned ON and cleared when Wings Mode is turned OFF. Please let me know if there are still issues with this change.
    • Trigger 'DestinationTrack' occasionally fires twice. This might be due to the STOP command in the trigger being sent when no movement is occuring and then it tries again after movement continues, or it may just be related to latency and the fast movement rate. Since you cannot say things consecutively in such a quick manner it doesn't appear to cause much issue with going to the Skies itself but I will try to figure out why this is happening and come up with a solution for it.

    I tested out Wings Mode using both example alias FullRoute1 (the default route set on first load) and FullRoute2, and they both completed up to the end successfully. If you have Atavian wings you could try Duanatharan instead of Duanathar and see how that fares but even changing the room orders themselves can sometimes impact the route that is taken quite significantly so this will have a lot of variation depending on the route used. I will try my best to eventually account for more possibilities as I discern them.
  • edited March 2021

    Greetings! I have made some changes and released the updated version 1.5.

    Changes

    • Added a GMCP Request for 'Char.Skills.Get' to the onLoad.
    • Implemented a check in the onGMCP that checks character Riding rank and enables the 'BlockedByWall' trigger if at Expert or greater, or ensures the trigger is disabled otherwise.
    • Added 'Blocked' group within the 'ProspectReflex' group and moved the trigger 'BlockedByWall' inside of it.
    • Adjusted some of the logic in trigger 'BlockedByWall' and separated in to other triggers.
    • Created trigger 'MountJumping' in 'Blocked' group.
    • Created trigger 'JumpComplete' in 'Blocked' group.
    • Removed a section of code in the trigger 'ArrivedDestination' that appeared to be redundant. May somewhat improve the rate at which the code is executed during prospecting.
    • Adjusted some of the logic in trigger 'KnockedDownTundra'
    • Adjusted some of the logic in alias 'SetLodeDetection'
    • Adjusted some of the logic in alias 'On/Off Alias'
    • Adjusted some of the logic in trigger 'DestinationTrack'
    • Adjusted some of the logic in trigger 'ProspectReflex2'
    • Removed the 'Incomplete' group since there is nothing in it at this time.

    Issues

    • Opted to remove the parameter in the onGMCP that requires prospecting to be occurring before some things are set as it was causing a few issues. For example with Mine Collection's sign reading when first entering the Tundra, since you are not prospecting on initial entry and due to that change I made in the onGMCP to prevent Char.Items.List from setting anything unless prospecting, the item id of the sign was not being collected and would not be read properly. Or also, when entering the Tundra in to a blizzard. I do not believe that the code getting executed in the onGMCP is doing anything too intensive but I will think about how I could implement a better solution for this, such as only requiring the item id of a sign to be necessary in the case there are other signs in the room.
    • Still need to include Stone Wall identification for the 'BlockedByWall' trigger.


    As I am updating these versions, I have included a folder on the GitHub page for this package that includes the previous versions in case someone would want or need to switch back to a prior version for whatever reason.

    Regarding the onGMCP check for Riding, the purpose of this is to ascertain whether or not the character has the capability to mountjump. I am not certain if this is attained at the level of Expert or if that is initially acquired at a rank higher or lower than Expert so if there are any issues with this or if you know at which rank exactly the Mountjump skill is acquired, please let me know. I intend to eventually include skills like Leap along with Mountjump, but it shouldn't be too difficult to modify these triggers should you want to use another method.

    More coming soon I hope!

  • edited March 2021

    Version 1.6 has been uploaded! The changes this time were mostly related to functionality, fixing errors, and cleaning up of the code.

    Changes

    • Adjusted some of the logic in the onGMCP function: Modified how vision is being checked for when Room.Info occurs. Also changed the ma.blizzard variable to ma.vision in the onLoad and adjusted the triggers 'ProspectReflex2', 'BlockedByWall', and 'Blizzard' accordingly.
    • Adjusted some of the logic in the onGMCP function: More specifically, made some changes to how Char.Items.List is being iterated.
    • Adjusted some of the logic in alias 'DataDisplay'
    • Adjusted some of the logic in alias 'SearchMines'
    • Adjusted some of the logic in alias 'mavals'
    • Added the variable set for ma.ridingSkill to the onGMCP function. Forgot to add this previously, apologies!
    • Removed the Wait For action and the script following it from trigger 'KnockedDownTundra'
    • Added trigger 'StandUp' in group 'ProspectReflex' with script removed from 'KnockedDownTundra'
    • Included a short timeout before 'ProspectTriggers' group gets disabled in functions ma.lodeDetected, ma.movementMain2, and ma.movementTundra2 to ensure that when a mine is found in the last room to be prospected, or when a lode is stopped at, that they get pushed to the collection tables.

    Wings Mode

    • Modified alias 'StartProspecting' to account for being inside of a City when WINGS MODE is ON. If you are when prospecting is initialized, you will simply go to the Skies from there (provided you are not indoors) rather than go through the process of tracking the distance to your next destination.
    • Added the variable set for being indoors or not to the onGMCP function.
    • Modified trigger 'DestinationTrack' to stop prospecting and prompt user to move outside should use of Wings be attempted at an indoor location.

    All FUNCTIONS that were being both created and executed in the various prospecting triggers are now only being created in the onLoad.

    The following triggers have been modified as a result:

    • 'StartProspecting' trigger
    • 'ArrivedDestination' trigger
    • 'ProspectReflex1' trigger
    • 'ProspectReflex2' trigger
    • 'ProspectReflex3' trigger
    • 'ProspectReflex4' trigger
    • 'JumpComplete' trigger


    In my testing so far it seems to be smoother and I am hopeful that these modifications will offer significant improvement towards the overall speed at which the triggers are being executed during prospecting. I am still working on various ways to resolve some of the remaining issues at this time as well.

    Please let me know if there is any trouble with this version!

  • edited March 2021

    I have now uploaded version 1.7 to the github page (Here is the link again in case it was missed up top: https://github.com/KaiosGit/Achaea/tree/miningassistant ). Few minor changes this time around but hopefully one of them will help with the overall amount of "things" happening while prospecting is not occurring.

    March 24, 2021

    Changes

    All Functions sending pathing commands in the onLoad changed to send using PATH FIND rather than MapDB's GOTO command. It is unlikely this will make much difference overall in the speed of execution but it means that the MapDB package is no longer required for this package's use.
    • Modified triggers 'MineCollection2', LodeCollection1, and LodeCollection2 to no longer push duplicate mines and lodes to their respective arrays. They will however push the same mine when prospected again after the percentage mined has changed.
    • Modified Function 'ma.mineCollection' in onLoad to only read the sign ID if there is a mine at room 'An abandoned quarry' (#7154) in the Sangre Plains. This is the only location I am aware of in any of the prospectable rooms that contains another sign.
    • Once again, re-added the parameter to the onGMCP that prospecting be occuring for some things to happen such as checking for vision and iterating the items. With the change to only requiring item id for a sign in that single room, hopefully this will prevent the same issues happening as when I implemented this change previously.
    • Added trigger 'CeasedWalking' to group 'ProspectTriggers' to stop prospecting if balance/eq usage interferes.
    • Added trigger 'OffCourse' to group 'ProspectTriggers' which continues movement if taken off-course by something such as water current while prospecting.
    • Removed the information requiring the use of MapDB from the Read Me.
    • Removed the variable set for 'ma.myBalance' from the onGMCP as it was not being used.
    • Adjusted some of the logic in alias 'mavals'

    March 13, 2021

    Changes

    • Corrected the trigger text in trigger 'CloudsMovement', replaced the trigger text in the trigger 'CloudsMovement' with this line: ^You quickly utter \"Duanathar(an?|ic?)?\" and your wings flare with power before swiftly carrying you up to (on the clouds|high above the clouds|far above the clouds)\.$

    As noted above, the change to using PATH FIND rather than MapDB's GOTO command means that the package no longer relies on having MapDB to function. I will try and work on adjusting the logic for how the mine collection works so that there would also be the option to use that feature without the reliance on the CharacterDB package too. Of course, these are still both incredibly useful packages and I would highly recommend keeping them for use in other ways.

  • Definitely no shade man, this is awesome, Nexus needs more people like you.

    This is from HELP TRIGGERS:

    What is not allowed?

    --------------------

    Auto ratting, auto fishing, auto questing, auto prospecting, auto hunting, (and auto pretty much

    everything else). This is any activity:

     1) that you automate via triggers, and

     2) that you use to gain gold or experience.


    More to ask: Is this an okay thing to do now?

    Shecks snickers softly to himself.

    Shecks lifts one hand to touch an earring of Sinope.

    Blistered skin melting from his flesh, Shecks has succumbed to the effects of Novak, Trial-Elect of Antagony's darkshade.

  • I think people have been shrubbed for much less? But I'm not entirely sure.

  • As I mention in the first post, the package is meant to give you an edge and not do the entire job for you, and that being away from your computer while performing actions is something which you can certainly be shrubbed for. My understanding however, is that such automation is permitted and in fact automation of hunting is just as prevalent as it is in every other aspect of the game. The main thing to keep in mind is that you cannot be afk should you be making use of such things. Pretty much all of the frequent prospectors use some method like this and you would be hard-pressed to grab anything good without such a tool at your disposal.

  • The other thing that makes this script more in line with HELP AUTOMATION is that when a lode is found your character stops moving. You have to enter a command to report the information on a mining clan and enter another command to continue prospecting. You cannot use this script and walk away from your computer (unless you find zero lodes I suppose). It also does not automate constructing mines or deploying squads as I've heard old scripts that got people shrubbed have done.

  • Is there a Mudley equivalent to this?

Sign In or Register to comment.