Nexus Miniscripts

2

Comments

  • SephemSephem Member Posts: 25
    I have deleted them manually and they just seem to end up back in the database
  • tysandrtysandr Member Posts: 90 ✭✭✭
    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.


    vote ∘ Explore Nexus mods for Starmourn & Achaeandb for Nexus

  • KestrelKestrel Member Posts: 356 ✭✭✭✭
    Hi!

    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

  • MineiMinei Member Posts: 49 ✭✭✭
    tysandr said:
    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.

    Kestrel said:
    Hi!

    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.
  • JinreshJinresh Member Posts: 18
    tysandr said:
    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.
  • BobbBobb Member Posts: 9
    Hey guys, some quality stuff here. Thanks. 

    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
  • PoetPoet Member Posts: 122 ✭✭✭
    edited January 2019
    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.

    https://drive.google.com/open?id=1BmJIOAquLVh1gfkwDJQYsCqChAwUefYZ
    [Cassandra]: Poet will be unsurprised to learn that she has unread news.
  • SozaSoza Member Posts: 140 ✭✭✭
    Poet said:
    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.

    https://drive.google.com/open?id=1BmJIOAquLVh1gfkwDJQYsCqChAwUefYZ
    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.
  • PoetPoet Member Posts: 122 ✭✭✭
    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.
  • tysandrtysandr Member Posts: 90 ✭✭✭
    Kestrel said:
    Hi!

    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?
    vote ∘ Explore Nexus mods for Starmourn & Achaeandb for Nexus

  • BobbBobb Member Posts: 9
    Tysandr, got some clues about using getTime(), but nothing working at the moment.
  • PoetPoet Member Posts: 122 ✭✭✭
    Stopwatch:
    Put this in your onLoad function
    stopwatch = {
        starttime: 0,
        endtime: 0,
        
        Start: function(){
            d= new Date();
            this.starttime = d.getTime();
        },
        End: function(){
            d= new Date();
            this.endtime = d.getTime();
        },
        runTime: function(){
            x= (this.endtime - this.starttime) /1000 ;
            return x
        }
    };
    
    
    
    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.
  • tysandrtysandr Member Posts: 90 ✭✭✭
    edited January 2019
    An update for ndb.

    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.
    vote ∘ Explore Nexus mods for Starmourn & Achaeandb for Nexus

  • tysandrtysandr Member Posts: 90 ✭✭✭
    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.

    Download here.
    vote ∘ Explore Nexus mods for Starmourn & Achaeandb for Nexus

  • tysandrtysandr Member Posts: 90 ✭✭✭
    edited January 2019
    If the transition between moving rooms in Nexus' mapper is a tad too long for you at 200 ms, this little snippet will let you control the delay.

    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.
    // Mapper Enhancements
    if (typeof client != 'undefined' && typeof client.mapper != 'undefined') {
      client.mapper.delay = 160
      client.mapper.center_map = function(el) {
        var map = client.mapper
        if (el.length == 0) { return }
        var vw = $('#map_container').width()
        var vh = $('#map_container').height()
        var ew = el.width()
        var eh = el.height()
        var x  = -1 * ((vw - ew) / 2)
        var y  = -1 * ((vh - eh) / 2)
        var t  = client.mapper.delay
        if (($('#map_container').prop('scrollTop') == 0) && ($('#map_container').prop('scrollLeft') == 0)) {
          t = 0
        }
        if (map.previousZoom != map.zoom) {
          t = 0  
        }
        map.previousZoom = map.zoom
        $('#map_container').scrollTo(el, t, {offset: { top: y, left: x }})
      }
    }<br>
    vote ∘ Explore Nexus mods for Starmourn & Achaeandb for Nexus

  • tysandrtysandr Member Posts: 90 ✭✭✭
    edited February 2019
    I'm gonna pre-release this as I think it still needs quite a bit of polishing but I need a bit of help:

    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:
    Structure Collapse L1, Structure Collapse L2, Structure Collapse L3, Structure Failure, 
      Spasms, 
        Tender Stack 1, Tender Stack 2, Tender Stack 3, Tender Stack 4, Tender Stack 5
    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 maxnnsamaxsa.
    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>
    Hope that helps!
    vote ∘ Explore Nexus mods for Starmourn & Achaeandb for Nexus

  • tysandrtysandr Member Posts: 90 ✭✭✭
    If it borks, just hit reno to rebuild it all (hopefully).
    vote ∘ Explore Nexus mods for Starmourn & Achaeandb for Nexus

  • MineiMinei Member Posts: 49 ✭✭✭
    edited February 2019
    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 maxnnsamaxsa.
    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 :(
  • tysandrtysandr Member Posts: 90 ✭✭✭
    edited February 2019
    Thanks, that's really helpful!

    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
        // border
        rules += '#cs-healthbar > svg {border: 2px outset rgba(48, 83, 113, 1); }\n'
    
        rules += '#tab_reno-charsheet::before { content: "\\f06e"; }\n' // <b>this new line</b>
    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. :{

    vote ∘ Explore Nexus mods for Starmourn & Achaeandb for Nexus

  • Opt1kalOpt1kal Member Posts: 7
    Hey @tysandr getting these when I go to honors someone...

  • RocketCatRocketCat Member Posts: 199 ✭✭✭
    tysandr said:
    Thanks, that's really helpful!

    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
        // border
        rules += '#cs-healthbar > svg {border: 2px outset rgba(48, 83, 113, 1); }\n'
    
        rules += '#tab_reno-charsheet::before { content: "\\f06e"; }\n' // <b>this new line</b>
    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. :{

    Engi parts gmcp is pa
    Hi, I'm Ata. Oh and maybe some other people, too. o:) Check out my various packages for Nexus: Vuu combat system, Global Pathfinder, Slicer Tools, Ship compass, JS from command line, Vitals Tracker, and Equipment Manager.
  • Opt1kalOpt1kal Member Posts: 7
    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
  • EMDAEMDA Member Posts: 32
    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.
  • RocketCatRocketCat Member Posts: 199 ✭✭✭
    @tysandr Actually found this on the GMCP documentation:

    Class-specific: "class" (current class), "pl" / "maxpl" / "formatpl" (plasma), "bl" / "maxbl" / "formatbl" (bullets), "nn" / "maxnn" / "formatnn" (nanites), "sa" / "maxsa" / "formatsa" (sanity), "rg" / "maxrg" / "formatrg" (rage), "pt" / "maxpt" / "formatpt" (parts), "st" (stance)

    I know I told you earlier that Engi for parts is 'pa'...but that's what a friend told me... so I guess it's pt.

    Hi, I'm Ata. Oh and maybe some other people, too. o:) Check out my various packages for Nexus: Vuu combat system, Global Pathfinder, Slicer Tools, Ship compass, JS from command line, Vitals Tracker, and Equipment Manager.
  • tysandrtysandr Member Posts: 90 ✭✭✭
    Opt1kal said:
    Hey @tysandr getting these when I go to honors someone...

    I will try & fix this this weekend. I forgot to re-add the honors code when I rewrote the ndb.

    Opt1kal said:
    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? :)

    EMDA said:
    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>})

    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. 
    vote ∘ Explore Nexus mods for Starmourn & Achaeandb for Nexus

  • KirinKirin Member Posts: 98 ✭✭✭
    So, how do I install ndb? Do I paste the code in the onLoad or onGMCP codes or is there another way to do it?
  • tysandrtysandr Member Posts: 90 ✭✭✭
    Kirin said:
    So, how do I install ndb? Do I paste the code in the onLoad or onGMCP codes or is there another way to do it?
    When you download it as a .nxs, you install it via Reflex Packages > Import Reflex Packages.
    vote ∘ Explore Nexus mods for Starmourn & Achaeandb for Nexus

  • tysandrtysandr Member Posts: 90 ✭✭✭
    Fixed honors for ndb.nxs. Download new version here.
    vote ∘ Explore Nexus mods for Starmourn & Achaeandb for Nexus

  • tysandrtysandr Member Posts: 90 ✭✭✭
    edited February 2019
    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 correctly using simple HTML rules, inline & with manipulatable position within any given incoming block.

    H Y P E.
    vote ∘ Explore Nexus mods for Starmourn & Achaeandb for Nexus

Sign In or Register to comment.