Disclaimer: This is mostly so people can learn nexus, I don't plan on doing crazy support for this and I'm busy doing stuff so I might not always be around to help diagnose, but I'll try. However, if you like the system feel free to tip Montem in game I may or may not update this ever, but for those of you that are looking to code in Nexus, this should give you a good start.
This system is designed currently for Nanoseers (cause I am one), but you can look at the code and adopt it using the same principles I've used.
Instructions:
Use hsetup to setup the auto hunting. It will build the lists and variables necessary to make the system work.
Relog.
Use hshow to see what's on the list. It comes with a bunch of stuff just from me hunting up to level 45ish.
Use hlist to switch between priority list and room list.
Use hbreak to stop after one kill or attack everything in the room till clear.
Use hheal to decide if you want to heal on cooldown if < 80% health. (This works for all classes BUT Nanoseer, sorry nanoseers)
Use h<class> (nanoseer, beast, scoundrel, engineer, fury) to see what variables you have active that are class specific.
Use hadd to add something to the list and hremove to remove something.
hup and hdown to move something up or down the list.
Use hsave to save a backup of your list and hload to load it.
Ctrl + = will enable or disable auto killing and targeting
numpad 0 will do the appropriate hunting attack.
Nanoseer stuff:
hmulti, hfreeze, hfrenzy, and hdelay will trigger auto attacks to use those attacks. You will need to enable these for the System to use them.
Fury stuff:
hberserk will use berserk when it can.
hfever will start combat with fever.
Period key (.) on numpad will start combat with inferno (be careful with this is hits everyone, including players, in room)
Beast stuff:
Just aliases: con: Contingency, oc Overclock.
Engineer stuff:
Nothing, engineer hunting is pretty simple
Scoundrel stuff:
hambush - enable use of ambush
hrapidfire - enable use of rapidfire
Alias rip - make ripper
Auto hunting goes in this order for Nanoseer:
Frenzy, delay, multi, freeze
It will reapply freeze when needed, but not delay, or frenzy. It will reapply multi if the target health is above 40%.
This is not just a hunting system (although it mostly is at the moment), it also has some other nice things:
MSys.log will do a display_notice except will convert objects and arrays and display all items in it, similar to Mudlet thing. (It's not quite as robust but it's okay)
MSys.alert(text, color, color) will do cool alert boxes similar to svo from mudlet.
js <code> will run javascript and send back the return value, similar to lua from mudlet.
c<direction> will crash whatever direction and turn auto off
There are some aliases for Spaceships in Spaceship folder
This also redirects some chat and stuff in the Generic - Chat folder, you might want to modify.
It'll add up the damage you do in a fight and tell you - more useful for group hunting to compare with others.
Check all the folders for other aliases.
I think that's pretty much it. If things get wonky, like after you die just type onLoad in your command bar to reload the client.
Pastebin link to the google drive link cause forums:
https://pastebin.com/q6AZYQXL
Comments
Error in Function [onGMCP]:
ReferenceError: MSys is not defined
How do you fix this?
Just in case, I removed the package, saved, closed the session, reopened, and reloaded the new package.
I am still only seeing the Nanoseer folder.
Try this link: https://pastebin.com/JGvJYsEi
I got a workaround working, but it isn't pretty at all. It also only seems to work about 70% of the time and I have no idea why.
Is it the Hfever Toggle alias and the Fever On trigger I should be replicating?
Part is in the fever on I believe.
Obviously change "SUIT SUPPORT" to your class healing ability, and change the .8 if you want a different healing threshold.
It'll give you helpful color-coded echoes to let you know what's going on, too:
Code's probably messy because I don't know what I'm doing, but it works
How did you turn your package name into a method that you can set variables with? Is this a function Nexus uses? So I could theoretically create a package called "EhdeSys" and set variables using: "EhdeSys.variable = value"? That brings me to my second question: what is the difference between setting a variable with "EhdeSys.variable = value" and "set_variable("variable", "value")"?
(sorry I don't know how to drop code blocks or screenshots on this forum)
THANK YOU.
edit: outta curiousity, why is Nano the one class without an autoheal?