If you delete them manually, make sure you db.save to push your client side copy to the SM server. That way when you reload into Nexus, your changes should be reflected in the copy from SM.
The fix is in one of my posts in this thread that will automatically delete a 404 (not found) ajax request. I can upload a current copy of the fixed module this weekend. I guess while I'm at it, is there anything else you guys can think of that may benefit the .nxs package? I will probably write in a user method to change the frequency of the polling.
This is a really great thread with lots of neat scripts, thank you so much for doing this.
I apologise for being computer dumb but I can't quite figure out how to actually add these reflexes to my existing system. I've downloaded and imported them, but when I do so they show up as a different 'reflex package' in the dropdown menu. Is there a way for me to merge that reflex package with the main package, so I can have everything in one place?
"They are elect to whom beautiful things mean only Beauty." — Oscar Wilde
"I'll take care of it, Luke said. And because he said it instead of her, I knew he meant kill. That is what you have to do before you kill, I thought. You have to create an it, where none was before." — Margaret Atwood
If you delete them manually, make sure you db.save to push your client side copy to the SM server. That way when you reload into Nexus, your changes should be reflected in the copy from SM.
The fix is in one of my posts in this thread that will automatically delete a 404 (not found) ajax request. I can upload a current copy of the fixed module this weekend. I guess while I'm at it, is there anything else you guys can think of that may benefit the .nxs package? I will probably write in a user method to change the frequency of the polling.
Fix the stuff you have planned that doesn't work yet, like classes. Also yes to configurable polling.
This is a really great thread with lots of neat scripts, thank you so much for doing this.
I apologise for being computer dumb but I can't quite figure out how to actually add these reflexes to my existing system. I've downloaded and imported them, but when I do so they show up as a different 'reflex package' in the dropdown menu. Is there a way for me to merge that reflex package with the main package, so I can have everything in one place?
Not that I've found. You probably want to keep them seperate in case of updates anyway, so you can easily remove the old package and import the new.
If you delete them manually, make sure you db.save to push your client side copy to the SM server. That way when you reload into Nexus, your changes should be reflected in the copy from SM.
The fix is in one of my posts in this thread that will automatically delete a 404 (not found) ajax request. I can upload a current copy of the fixed module this weekend. I guess while I'm at it, is there anything else you guys can think of that may benefit the .nxs package? I will probably write in a user method to change the frequency of the polling.
I wouldn't mind an additional parameter input for the db.s alias to add additional filter constraints. I really like the information from db.s; I would like to be able to see the same percentage distributions selectively per faction IE the class and race break down for Song, Scatter, Cele, etc.
Also while we're throwing out a wish list, a level constraint on the filter could be interesting. Particularly to filter those who have hit 75, or are over 60, etc, and see the class/faction breakdowns there.
Any chance of getting a hacking timer, please? I've been trying to use setInterval(function, interval) on 'You enter the commsphere.' and 'Your vision comes back into focus as your consciousness returns to your physical body.' but having no success
So similar to what @Soza did for Mudlet, here is a bot spam reduction package for Nexus. This is for Alertness or Scan if you are a Nanoseer. No warranties made or implied, your mileage may vary, etc. Some of the regex is way open-ended, so I turn the triggers on and off as it runs.
So similar to what @Soza did for Mudlet, here is a bot spam reduction package for Nexus. This is for Alertness or Scan if you are a Nanoseer. No warranties made or implied, your mileage may vary, etc. Some of the regex is way open-ended, so I turn the triggers on and off as it runs.
I'm glad that at least one person has downloaded and looked at it, noone was replying and I'm sure I'm not that good at scripting, and thought for sure Id get someone almost instantly telling me how to make it better. Seems like it just works for people though so I'm happy.
I'm sure mine could be better as well @Soza, but it works so I'm not complaining. I admit I didn't do much more than glance at yours, as I know nothing about coding in Mudlet. But clearing out all that spam is def a must.
[Cassandra]: Poet will be unsurprised to learn that she has unread news.
This is a really great thread with lots of neat scripts, thank you so much for doing this.
I apologise for being computer dumb but I can't quite figure out how to actually add these reflexes to my existing system. I've downloaded and imported them, but when I do so they show up as a different 'reflex package' in the dropdown menu. Is there a way for me to merge that reflex package with the main package, so I can have everything in one place?
You could probably conglomerate them into a bigger package when the number of packages get out of hand, and manually rewrite them if required; I would do this for all the quality-of-life packages that won't hurt too much should something break. The critical packages should always stand alone.
Rewriting the ndb to be non-modular was/is not fun but added in something I thought was really fun:
Bobb, did you ever solve your hacking timer thing?
Put stopwatch.Start() in a trigger or alias script wherever you want it to start, and stopwatch.End() wherever you want it to stop. runTime will return time in seconds, so:
hacktime = stopwatch.runTime(); //sets hacktime to time in seconds since the timer was started. If it shows 0, you haven't run the timer yet
[Cassandra]: Poet will be unsurprised to learn that she has unread news.
I have re-written most of the code base so it no longer automatically loads on startup, but is constructed when you call "ndb" as an alias. The reason for this is to separate the code out from a single onLoad call into more readable & maintainable sections:
The code now attempts deletion of characters when the server tells us they no longer exist:
The code now displays settings using db.set:
The code now shows all your polling options (dbp): how frequently to check us for idling, what constitutes an appropriate no-input length of time to consider us idle, how frequently (while idle) to request batched updates, how big a batch we should request for each time, how old a record should be before we consider updating it, and a setting to allow ndb to delete people you haven't met in a while (default is 10 weeks):
The polling code also now respects db.shh & db.yup which means it can be completely silent polling (as part of the initial design, but which I felt a little uncomfortable with) or verbosely report its batched requests to you.
db.all has been removed for now, but the summary tabulation is available via db.sum:
db.met is new, and I wouldn't use it until you have met someone in-game (there is a bug I have yet to fix). I find it quite cute, it is a little record-keeping in a game that can flit by:
db.faction has been written and is still not quite there but available for use. It lists players in a similar fashion to db.sum but lists the top five players of each category ranked by level > captaincy > explorer > name.
db.roster gives you a similar output to db.faction but only those online players. There are a few bugs here but should work for the most part.
Strong disclaimer: I haven't tested a migration from the old onLoad method to this one, so my recommendation would be to use the old one unless you want some of the features of the new one, and if then, it may be safer to restart your db from scratch. Also, there are probably bugs I haven't found as I haven't had time to uninstall/install/test/test/test as I normally do.
If anyone has ideas around how better to structure db.faction/roster that would be more informative/readable & future-proofed against +15 new classes, please feel free to chime in. Thanks!
E: to set poll options, e.g. how frequently to request update, do dbp.freq 180. The number used is seconds. Will probably rework this in the future.
A little script that @swikaan & @Squeakums discussed; it hides all your tabs behind a single map on the left when flying your spacecraft, then redistributes these tabs when you are grounded.
ssq auto will turn it on ssq manual will turn it off flymap will manually force it to turn into the flymap layout, and disable autoswitching landmap will manually force it into the landmap layout, and disable autoswitching
Should work out of the box. Remember to hit onLoad if you are installing it for the first time into an active session.
It includes gauges for health and the 5 subsystems. The health of each subsystem is the thicker bar next to the subsystem. The efficiency of each subsystem is the thinner bar under the subsystem. These are only available when you hit ww status and refreshed on a GMCP message (at this stage).
The number next to the main health bar is the absolute number of your health. The muted number underneath is your maximum health. I have yet to include a % calculated, as I am not quite sure where to visually place it. Possibly as a larger number overlying the end of the main health bar.
Three primary stats Lifeforce, Evasion & Regen are located just to the right of the subsystem bars. They are muted to prevent distraction during combat. They are only available after you hit status show [all]. The module will try to figure out if your profession has changed & will display the last two profession specific stat when it recognises a profession swap.
The left of the subsystem names are yet to be implemented. These are 4 x damage levels, then damage ticking affliction, then 5x damage augmentation affliction. E.g. for Muscular system, these would be:
The purpose is to reduce the total number of afflictions that we will display in the space underneath; this takes 30 afflictions off the board so we have a much shorter list to display...
Currently, I have a few questions: 1. Is stats actually visually useful? 2. Would people want their class specific resource to be laid horizontally underneath the subsystems? Alternatively, vertically just under the stats list stretching to the bottom of the box. Would be really cool for bullets imo. 3. Would people be able to share their gmcp messages for class specific resource? I have nanoseers' nn & maxnn, sa & maxsa. 4. Suggestions on colors for subsystems & class specific resources? 5. Would people want to access the API to figure out the full name & age? I could probably add it in but not sure if it's something people would want.
For those wanting to create a custom tab yourself, the code is as follows:
var t = {}
t.id = 'reno-charsheet'
t.icon_active = 'who' // no idea what this does
t.tab_html = 'Custom Charsheet' // no idea what this does
t.tab_title = '♥ Character Sheet!' // what is shown on right clicking
t.tab_type = 'content' // don't change this
t.content_html = reno.buildChar() // your own HTML here
client.register_custom_tab( t, 'container_2' )
// container_1 is top left, container_2 is bottom left, container_3 is top right, container_4 is bottom right!<br>
1. Is stats actually visually useful? 2. Would people want their
class specific resource to be laid horizontally underneath the
subsystems? Alternatively, vertically just under the stats list
stretching to the bottom of the box. Would be really cool for bullets
imo. 3. Would people be able to share their gmcp messages for class specific resource? I have nanoseers' nn & maxnn, sa & maxsa. 4. Suggestions on colors for subsystems & class specific resources? 5.
Would people want to access the API to figure out the full name &
age? I could probably add it in but not sure if it's something people
would want.
1. I don't find it useful no, I prefer to have the tab for things that change and you want to monitor.
2. Horizontally to be in line with everything else visually. Mixed orientations are confusing.
3. rg and maxrg for fury rage, also st for stance
4. Rage should be red or orange because FIRE, obviously.
5. I think it's fine as is.
Also a minor suggestion but could the custom tab get an icon in the tab like all the others have? It looks a bit ugly being all empty now
So interestingly, if you use the Standard interface, an icon will appear. However if you use the Space interface, the icon is sourced a different way... Here's how to fix it for Space interface, and I will include this in a future version.
So interestingly, if you use the Standard interface, an icon will appear. However if you use the Space interface, the icon is sourced a different way... Here's how to fix it for Space interface, and I will include this in a future version.
Hey @tysandr - Wondering if you could throw together a defup command by chance for Nanoseer. This is really my first time messing with Nexus, and the last time I had a defup command was about a year ago in Lusternia...lol
How difficult would it be to make a script that modifies the default 'Room Info' tab in a way that takes certain mobs and collapses them down into only one line/bullet? It's something I've wanted to do as a project but it involves a little more chopping into the client's existing framework than I'm really proficient at, and every time an Engineer walks past while I'm bashing I wish I'd already done it.
Hey @tysandr - Wondering if you could throw together a defup command by chance for Nanoseer. This is really my first time messing with Nexus, and the last time I had a defup command was about a year ago in Lusternia...lol
Think you sorted this out on Discord, care to share your script for others?
How difficult would it be to make a script that modifies the default 'Room Info' tab in a way that takes certain mobs and collapses them down into only one line/bullet? It's something I've wanted to do as a project but it involves a little more chopping into the client's existing framework than I'm really proficient at, and every time an Engineer walks past while I'm bashing I wish I'd already done it.
Quite, given all of the UI elements are embedded within a 925 line block of code. On the other hand, I have just reasonably successfully intercepted all of that code so you can custom write your own GMCP interpretations, meaning you can also rewrite the Room Info data code. Here is the Nexus code which runs the Github code:
</code><pre class="CodeBlock"><code><code>onLoad<br>var urls = [<br> 'https://raw.githubusercontent.com/willxyu/NexusScripts/master/fnu.js',<br> 'https://raw.githubusercontent.com/willxyu/NexusScripts/master/gmcpf.js',<br>]<br>var p = $.when(1)<br>urls.forEach(function(item, index) {<br> let a = item<br> p = p.then(function() {<br> return $.ajax({<br> url: a + '?v=' + new Date().getTime()<br> }).done(function(data) {<br> console.log('Trying eval(data) for ' + a + '.')<br> console.log([data])<br> try {<br> eval(data)<br> } catch(err) { console.log(err) }<br> })<br> })<br>})
You would have to write a lean version of those functions (lines 223-299). It isn't actually ready for release but I could potentially try & do that this weekend.
I am quite excited about this, as it has been a bit tricky to figure out;
I have appended the "Damage Dealt: " data to lines before the trigger is fired.
There is no current provision to move your cursor when displaying new information (as Mudlet allows), so we were relegated to displaying information after it is gained. With a bit of hackery, I have now appended new data (Damage Dealt: \d+) onto previous lines, skipping intervening gagged lines until it hits the last displayable line.
The hacky code:
I'm pretty excited because this means we should be able to write a method that allows us to write code like <span class="red'>text</span><span class="blue">othertext</span> and with enough code, should allow us to use native Nexus functions to print it correctlyusing simple HTML rules, inline & with manipulatableposition within any given incoming block.
Comments
The fix is in one of my posts in this thread that will automatically delete a 404 (not found) ajax request. I can upload a current copy of the fixed module this weekend. I guess while I'm at it, is there anything else you guys can think of that may benefit the .nxs package? I will probably write in a user method to change the frequency of the polling.
This is a really great thread with lots of neat scripts, thank you so much for doing this.
I apologise for being computer dumb but I can't quite figure out how to actually add these reflexes to my existing system. I've downloaded and imported them, but when I do so they show up as a different 'reflex package' in the dropdown menu. Is there a way for me to merge that reflex package with the main package, so I can have everything in one place?
— Oscar Wilde
"I'll take care of it, Luke said. And because he said it instead of her, I knew he meant kill. That is what you have to do before you kill, I thought. You have to create an it, where none was before."
— Margaret Atwood
I wouldn't mind an additional parameter input for the db.s alias to add additional filter constraints. I really like the information from db.s; I would like to be able to see the same percentage distributions selectively per faction IE the class and race break down for Song, Scatter, Cele, etc.
Also while we're throwing out a wish list, a level constraint on the filter could be interesting. Particularly to filter those who have hit 75, or are over 60, etc, and see the class/faction breakdowns there.
Any chance of getting a hacking timer, please? I've been trying to use setInterval(function, interval) on 'You enter the commsphere.' and 'Your vision comes back into focus as your consciousness returns to your physical body.' but having no success
No warranties made or implied, your mileage may vary, etc. Some of the regex is way open-ended, so I turn the triggers on and off as it runs.
https://drive.google.com/open?id=1BmJIOAquLVh1gfkwDJQYsCqChAwUefYZ
Rewriting the ndb to be non-modular was/is not fun but added in something I thought was really fun:
Bobb, did you ever solve your hacking timer thing?
Download here. zg to bring it up, & hit the little x in the corner to close it. Drag it where-ever you want it.
Put this in your onLoad function
Put stopwatch.Start() in a trigger or alias script wherever you want it to start, and stopwatch.End() wherever you want it to stop. runTime will return time in seconds, so:
I have re-written most of the code base so it no longer automatically loads on startup, but is constructed when you call "ndb" as an alias. The reason for this is to separate the code out from a single onLoad call into more readable & maintainable sections:
The code now attempts deletion of characters when the server tells us they no longer exist:
The code now displays settings using db.set:
The code now shows all your polling options (dbp): how frequently to check us for idling, what constitutes an appropriate no-input length of time to consider us idle, how frequently (while idle) to request batched updates, how big a batch we should request for each time, how old a record should be before we consider updating it, and a setting to allow ndb to delete people you haven't met in a while (default is 10 weeks):
The polling code also now respects db.shh & db.yup which means it can be completely silent polling (as part of the initial design, but which I felt a little uncomfortable with) or verbosely report its batched requests to you.
db.all has been removed for now, but the summary tabulation is available via db.sum:
db.met is new, and I wouldn't use it until you have met someone in-game (there is a bug I have yet to fix). I find it quite cute, it is a little record-keeping in a game that can flit by:
db.faction has been written and is still not quite there but available for use. It lists players in a similar fashion to db.sum but lists the top five players of each category ranked by level > captaincy > explorer > name.
db.roster gives you a similar output to db.faction but only those online players. There are a few bugs here but should work for the most part.
Strong disclaimer: I haven't tested a migration from the old onLoad method to this one, so my recommendation would be to use the old one unless you want some of the features of the new one, and if then, it may be safer to restart your db from scratch. Also, there are probably bugs I haven't found as I haven't had time to uninstall/install/test/test/test as I normally do.
If anyone has ideas around how better to structure db.faction/roster that would be more informative/readable & future-proofed against +15 new classes, please feel free to chime in. Thanks!
E: to set poll options, e.g. how frequently to request update, do dbp.freq 180. The number used is seconds. Will probably rework this in the future.
ssq auto will turn it on
ssq manual will turn it off
flymap will manually force it to turn into the flymap layout, and disable autoswitching
landmap will manually force it into the landmap layout, and disable autoswitching
Should work out of the box. Remember to hit onLoad if you are installing it for the first time into an active session.
Download here.
Set your desired delay by modifying client.mapper.delay.
E: I found 160 to feel slightly more responsive than 200 but not jittery like sub-100.
Download here.
This is a custom tab for a character sheet.
It includes gauges for health and the 5 subsystems. The health of each subsystem is the thicker bar next to the subsystem. The efficiency of each subsystem is the thinner bar under the subsystem. These are only available when you hit ww status and refreshed on a GMCP message (at this stage).
The number next to the main health bar is the absolute number of your health. The muted number underneath is your maximum health. I have yet to include a % calculated, as I am not quite sure where to visually place it. Possibly as a larger number overlying the end of the main health bar.
Three primary stats Lifeforce, Evasion & Regen are located just to the right of the subsystem bars. They are muted to prevent distraction during combat. They are only available after you hit status show [all]. The module will try to figure out if your profession has changed & will display the last two profession specific stat when it recognises a profession swap.
The left of the subsystem names are yet to be implemented. These are 4 x damage levels, then damage ticking affliction, then 5x damage augmentation affliction. E.g. for Muscular system, these would be:
The purpose is to reduce the total number of afflictions that we will display in the space underneath; this takes 30 afflictions off the board so we have a much shorter list to display...
Currently, I have a few questions:
1. Is stats actually visually useful?
2. Would people want their class specific resource to be laid horizontally underneath the subsystems? Alternatively, vertically just under the stats list stretching to the bottom of the box. Would be really cool for bullets imo.
3. Would people be able to share their gmcp messages for class specific resource? I have nanoseers' nn & maxnn, sa & maxsa.
4. Suggestions on colors for subsystems & class specific resources?
5. Would people want to access the API to figure out the full name & age? I could probably add it in but not sure if it's something people would want.
For those wanting to create a custom tab yourself, the code is as follows:
Hope that helps!
2. Would people want their class specific resource to be laid horizontally underneath the subsystems? Alternatively, vertically just under the stats list stretching to the bottom of the box. Would be really cool for bullets imo.
3. Would people be able to share their gmcp messages for class specific resource? I have nanoseers' nn & maxnn, sa & maxsa.
4. Suggestions on colors for subsystems & class specific resources?
5. Would people want to access the API to figure out the full name & age? I could probably add it in but not sure if it's something people would want.
1. I don't find it useful no, I prefer to have the tab for things that change and you want to monitor.
2. Horizontally to be in line with everything else visually. Mixed orientations are confusing.
3. rg and maxrg for fury rage, also st for stance
4. Rage should be red or orange because FIRE, obviously.
So interestingly, if you use the Standard interface, an icon will appear. However if you use the Space interface, the icon is sourced a different way... Here's how to fix it for Space interface, and I will include this in a future version.
In reno.charstyles, add this new line
Tada!
It's pretty cool, you can pick from about 633 icons (my estimate). Just change the Unicode in content:"\\f06e".
https://fontawesome.com/icons/map
To see the actual list that the Nexus client downloads, see the font-awesome.min.css in your developer console and pick one!
E: Don't need to addClass, just hack it straight. :{
Think you sorted this out on Discord, care to share your script for others?
Quite, given all of the UI elements are embedded within a 925 line block of code. On the other hand, I have just reasonably successfully intercepted all of that code so you can custom write your own GMCP interpretations, meaning you can also rewrite the Room Info data code. Here is the Nexus code which runs the Github code:
</code><pre class="CodeBlock"><code><code>onLoad<br>
var urls = [<br>
'https://raw.githubusercontent.com/willxyu/NexusScripts/master/fnu.js',<br>
'https://raw.githubusercontent.com/willxyu/NexusScripts/master/gmcpf.js',<br>
]<br>
var p = $.when(1)<br>
urls.forEach(function(item, index) {<br>
let a = item<br>
p = p.then(function() {<br>
return $.ajax({<br>
url: a + '?v=' + new Date().getTime()<br>
}).done(function(data) {<br>
console.log('Trying eval(data) for ' + a + '.')<br>
console.log([data])<br>
try {<br>
eval(data)<br>
} catch(err) { console.log(err) }<br>
})<br>
})<br>
})
https://github.com/willxyu/NexusScripts/blob/master/gmcpf.js
lines 223 - 299 is the Room thingies.
You would have to write a lean version of those functions (lines 223-299). It isn't actually ready for release but I could potentially try & do that this weekend.
I have appended the "Damage Dealt: " data to lines before the trigger is fired.
There is no current provision to move your cursor when displaying new information (as Mudlet allows), so we were relegated to displaying information after it is gained. With a bit of hackery, I have now appended new data (Damage Dealt: \d+) onto previous lines, skipping intervening gagged lines until it hits the last displayable line.
The hacky code:
I'm pretty excited because this means we should be able to write a method that allows us to write code like <span class="red'>text</span><span class="blue">othertext</span> and with enough code, should allow us to use native Nexus functions to print it correctly using simple HTML rules, inline & with manipulatable position within any given incoming block.
H Y P E.