NightfallUI (Free Mudlet GUI and Script Suite)

edited March 2018 in Tech Support

Hey, everyone! I wanted to share with you all something I have been working on for the past month. I just returned to MUDs and joined Achaea to help learn how to code. I've been having a lot of fun with Mudlet building various scripts and GUIs and thought I would share it with everyone. I have a short video of what the UI looks like and most of the different features.

I am not requesting payment or anything for this but, like I previously said, I am a new player to Achaea and if you so feel inclined, I wouldn't turn down any donations if you want to send them my way.  :)

Without further ado:

https://www.dropbox.com/s/fvasoeewthrc9v0/Screen%20Recording.mov?dl=0

Here are the features I've coded into this script:

Type 'nightfall' to see the commands available. You can also click '[gui options]' at the bottom to adjust the fontsize for various things as the placement may seem off depending on your resolution as compared to mine. It will save fontsize settings between sessions. Also, the chatbox I utilize is YATCO and so the script will automatically load it in to the right_bar, bottom container. You do not need set the container in the YATCO config (leave it false). I've also tried to comment copiously so that others may learn from the scripting and/or modify as they see fit.

Also, I have included in the zip the font that I use for the labels and tab headings, bignoodletitling. Install it!

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

Menu

  • Will display your score information in the Score tab and your current target in the Combat tab.
  • The percent progress bar to next level is the same color as your color set for target.
  • The combat tab is a work in progress. I am planning on possibly adding affliction tracking or something else as I figure out what might be useful there. Limb tracking? We'll see!

RoomInfo Box

  • Displays the people, denizens, and objects in a room. You can click the links in it to perform actions quickly. Clicking the ID will target it or pick it up. If there are a group of items, it will attempt to pick up the entire group. Clicking the name with inspect the item.
  • The ID will be colored if the denizen is a target. The name will be colored if the player is your target.

Vitals Box

  • On the right with an age bar if you're a Depthswalker (will not create if not appropriate)
  • Rage counter that appears above it only when you have rage

Targeting module

  •  Uses the in-game 'st' command to update the global variables 'target' and 'target_id'

Item Highlighting

  • Highlight items in your room whatever color you'd like. Will match on partial words so you can set highlighting of 'scroll' to high 'paper scroll, 'crimson scroll', etc.
  • Set target highlight color with 'ih target (color)'

Room Exclusion

  • Exclude items from the RoomInfo box. Tired of seeing monolith sigils? Exclude it!

Skill Bar

  • Skill bar at the bottom of the screen that should create as many slots as will fit for your screen.
  • Populate your character's skill information by simply typing the 'ab' command.
  • Popups for your skills that will disappear after a few seconds (helpful for new players learning what each skill does).
  • Both a PVE and PVP bar since battlerage skills won't exactly be helpful in PVP combat
  • Keybindings in place to use slots 1-13. Slot 1 is Ctrl+`, 2 is Ctrl-1, 3 is Ctrl-2, etc.
  • *** Icons should be added to the /mudlet/profiles/Achaea/NightfallUI/images folder. The icons I use are 50x50 px images with a transparent layer that I got from http://game-icons.net/ and converted from svg to png using Inkscape taking the "path difference" to make it transparent.  The naming of the icons is 'skillgroup.ability.png'. Examples are included in the script folder.
  • This is still a WIP. The popups sometimes are not wide enough to contain all the text.

Anti-Theft Suite

  • Set the name of your container using 'gg (container)' without the parenthesis e.g. 'gg pack'.
  • If you type 'gg' it quickly puts away gold in your inventory in your container. 
  • If you type 'gg (amount)' it will get that amount out from your container without triggering the anti-theft triggers.
  • Typing 'gg (amount) (object ID)' will get that amount out and buy the object if you are, for example, at a store.
  • It will automatically 'wear pack' if you are made to remove it. Customize this trigger as needed
  • It will alert you if someone snaps at you (and color their name if you use NDB or have them set as target variable) and also if someone successfully steals from you.
  • If you go to a store and type wares, it will let you click the object ID to probe it and click the gold amount in the last column to buy it. Things you cannot afford with the amount of gold on your person are colored dim_gray and are not clickable.

Saving

  • The script will save your item highlighting, room exclusion, skillbars, and fontsize between sessions and between characters. I couldn't really test it between characters because I don't have multiclass. I did make an alt and it seemed to work well when switching between my main and the alt after 'qq' 

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

Thanks for reading. I couldn't have done this without the help of the friendly players on the Mudlet discord in addition to the dozens of people who have made various portions of their scripts and snippets public on here and other forums/websites. I included in the "Initialize Variables" script at the top some shoutouts. <3 Also, if you use any of the pieces of this suite, mind adding your own shoutout if you share it? 

Misc Images:



«134

Comments

  • I like this. I may end up using it.

  • Just to let you know, I tried it out but the UI doesn't load until clicking on the 'reload ui' link.
    When it does load, it doesn't fully load, and the labels don't fix the text.
  • This looks like you are missing a font, which might also influence the letter size.
  • Also, I have included in the zip the font that I use for the labels and tab headings, bignoodletitling. Install it!
    You didn’t install the font. That’s why it didn’t work. 

  • Did I need to do something to get the hp and mp bars to set properly?? They sit on 50% each permanently
  • It uses gmcp.Char.Vitals so you need to make sure gmcp is turned on. The script to look in is "gmcp.Char.Vitals" under base scripts.

  • This might actually make me switch to mudlet...
  • seems the function doesn't actually ever run so I've just set up a prompt trigger to run it
  • it runs using gmcp events, "registerAnonymousEventHandler("gmcp.Char.Vitals", "nightfallUI.char.updateVitals")"

  • Just installed this to have a play around with it (Alongside TreX system to see if it eases my SVO annoyance). Few things:

    • Can we remove the Skills box at the bottom completely? I have no need to have quick access to my skills and the box covers any other clickable links, such as setting up Trex. It also stops me using Reload GUI link when I've made changes until some text scrolls past.
    • The chat box doesn't seem to work straight from the install and I can't see any specific YACTO folder installed, am I missing something?
    • The Health / Mana font in the bottom left keeps resetting to default size on every prompt input, regardless of what I set it to (Font is installed and working ok on other sections)
    • How do I stop it doing this:
    (NightfallUI): [Targetting] Target set to: 'A Knight Of The Atrament [519046]'.




    (Party): Mezghar says, "Stop."
  • Ok, ignore the skillsbox question, that seemed to be Trex setting the page length. Moved over to SVO and it doesn't have the same problem

    Although, your system to click a players name seems to overwrite the SVO highlighting:

    https://ada-young.appspot.com/pastebin/FfIHJsaI

    Anything I'm doing wrong here?

    (Party): Mezghar says, "Stop."
  • edited March 2018
    Sobriquet said:
    Just installed this to have a play around with it (Alongside TreX system to see if it eases my SVO annoyance). Few things:

    • Can we remove the Skills box at the bottom completely? I have no need to have quick access to my skills and the box covers any other clickable links, such as setting up Trex. It also stops me using Reload GUI link when I've made changes until some text scrolls past.
    • The chat box doesn't seem to work straight from the install and I can't see any specific YACTO folder installed, am I missing something?
    • The Health / Mana font in the bottom left keeps resetting to default size on every prompt input, regardless of what I set it to (Font is installed and working ok on other sections)
    • How do I stop it doing this:
    (NightfallUI): [Targetting] Target set to: 'A Knight Of The Atrament [519046]'.



    • just run `nightfallUI.gui.bottom_container:hide()` to hide the bottom and `setBorderBottom(0)`. You can delete the bottom portion stuff from 'Initialize GUI' if you don't want to use the bottom bar and delete line 90 in 'guiSkillBar' ('nightfallUI.guiSkillBarEvent = registerAnonymousEventHandler("containers_initialized", "nightfallUI.guiSkillBar")') so it won't get made
    • I did not include YATCO because it isn't mine to include. You need to install it yourself.
    • I have no idea why that would happen.
    • If you want to change or delete echo messages for targetting, edit 'Targetting' under the 'Combat' folder.
    Sobriquet said:
    Ok, ignore the skillsbox question, that seemed to be Trex setting the page length. Moved over to SVO and it doesn't have the same problem

    Although, your system to click a players name seems to overwrite the SVO highlighting:

    https://ada-young.appspot.com/pastebin/FfIHJsaI

    Anything I'm doing wrong here?
    I don't have a system to click a player's name

  • That screenshot there is using base SVO and the problem with the names / colours only happens when I install NightfallUI. Probably a consequence of a script running when it shouldn't?

    Yacto is already installed, but it still doesn't bring it up in the chat box, is there a way to configure it to work with this?

    (Party): Mezghar says, "Stop."
  • edited March 2018
    I use SVO and that doesn't happen to me so I don't know what that is. What happens when you click a name?

    Also, line 53 in 'Initialize GUI' should actually be: 'if demonnic and demonnic.chat and demonnic.chat.use then' so that needs to be changed. I just installed nightfallUI and then afterwards installed YATCO in a clean profile. I reloaded the profile and it correctly puts the YATCO window where it needs to be.




  • When I click a name it gives me the honors of that player.

    (Party): Mezghar says, "Stop."
  • check - config mxp off - that's what makes stuff clickable like exits etc
  • edited March 2018
    Zekeros said:
    check - config mxp off - that's what makes stuff clickable like exits etc
    That seemed to work.


    Edit - Chat now works after some restarts!

    Just the font size issue bothering me now  :o

    (Party): Mezghar says, "Stop."
  • I never knew about MXP, go figure!

  • for what it's worth, turning mxp on breaks the svo name highlighter too, sets everybody to rogue for some reason
  • edited March 2018
    To fix the font issue for the vitals box change lines 6 and 9 in 'gmcp.Char.Vitals' to the following (I forgot to change it to be dynamic to the variable and left it hardcoded to 36, oops):

    nightfallUI.char.hp_bar_label:echo([[<span style="color: white;font-size: ]]..nightfallUI.char.fontsize..[[pt; font-family: BigNoodleTitling;">]] .. nightfallUI.char.myhealth .. [[ HP</span>]])

    nightfallUI.char.mana_bar_label:echo([[<span style="color: white;font-size: ]]..nightfallUI.char.fontsize..[[pt; font-family: BigNoodleTitling;">]] .. nightfallUI.char.mymana .. [[ MP</span>]])

    and line 17 should be:

    nightfallUI.char.rage_bar_label:echo([[<span style="color: red;font-size: ]]..nightfallUI.char.fontsize..[[pt; font-family: BigNoodleTitling;">Rage: ]]..nightfallUI.char.myrage..[[</span>]])

  • edited March 2018
    Update for the script! Changes can be found in the NightfallUI folder in the Scripts section and here:
    • -- 03/24/2018
    • -- -- Added correct syntax for checking if YATCO is installed in 'Initialize GUI' at the bottom
    • -- -- Fixed the hardcoding of the font-size in 'gmcp.Char.Vitals' to be dynamic with a variable
    • -- -- Made SkillBar module able to be toggled on and off and reorganized startup process which 
    • -- -- -- proceeds with loading saved variables first then initializing the GUI

  • Zekeros said:
    for what it's worth, turning mxp on breaks the svo name highlighter too, sets everybody to rogue for some reason
    It's because, for some reasons, city colours are not set the same way on qwc as everything else when MXP is turned on and Mudlet can't interpret this different format to set colours.
  • This looks absolutely stunning, and a wonderful job.

    Right now I'm working on making it a bit more personalized for myself, but otherwise this is fantastic. As someone who's coming from using Nexus, it has the same sort of feel to it as Nexus, whilst having the utility of Mudlet.

    Some things that might be worth adding though:

    A way to click on the Denizens section and collapse it, making it only show "Denizens" (This would allow for big congregations who all have mounts to not take up a large expanse).  Same for objects as well!
  • edited March 2018
    Adrik said:
    This looks absolutely stunning, and a wonderful job.

    Right now I'm working on making it a bit more personalized for myself, but otherwise this is fantastic. As someone who's coming from using Nexus, it has the same sort of feel to it as Nexus, whilst having the utility of Mudlet.

    Some things that might be worth adding though:

    A way to click on the Denizens section and collapse it, making it only show "Denizens" (This would allow for big congregations who all have mounts to not take up a large expanse).  Same for objects as well!
    change line 41 in "Initialize Variables" which I believe is gui = {} to the following:

    gui = {
    denizen_header_hide = denizen_header_hide or false,
    item_header_hide = item_header_hide or false,
    }, 

    in addition, replace the script "RoomInfo UpdateRoom" with the following:

    https://www.hastebin.com/wevinomili.lua

  • So like..... what DOES the combat tab do?
  • lol nothing yet other than show you your target. I just started playing so I don’t know what to populate it with

  • I've been thinking about putting stuff like Current Target Callers (for group leader) in there.  I tried to mess with the UI a bit, but I haven't the faintest clue how to really do anything.

    My idea was to put the bars for health / mana underneath my main text box and try to shove the personal info (XP bar / gold / etc) right beside it.. but I didn't really get far before I accidentally broke everything and had to restart fresh. (I didn't much care for the skill bar. Couldn't find myself a use for it.)

    But..

    Self afflictions is definitely a thing that could be tracked on there.. and if you somehow manage to get AK tracker, possibly even current target's afflictions.

    Again. Not really required. I'm running r/n on a mix of Zulah's for chat / Map with yours for most everything else. It isn't SUPER pretty, but it works.
  • I included in my package a trigger to delete extra blank lines since, in general, I find them to be annoying. I made an alias to disable that trigger so that reading news items, letters, journals, etc. reads easier with their original line breaks. To use it simply append your command with '@'. For example, readnext is '@rn'. It also works with '@more'. 

    Alias Name:
    Delete Blank Lines Toggle
    Alias:
    ^@(.+)$
    Code:
    disableTrigger("Delete Blank Lines")
    send(matches[2], false)
    local delete_blank_line_reset = tempPromptTrigger([[
    enableTrigger("Delete Blank Lines")
    killTrigger("delete_blank_line_reset")
    ]])


  • Looks like the download link is broken
  • Brenex said:
    Update for the script! Changes can be found in the NightfallUI folder in the Scripts section and here:
    • -- 03/24/2018
    • -- -- Added correct syntax for checking if YATCO is installed in 'Initialize GUI' at the bottom
    • -- -- Fixed the hardcoding of the font-size in 'gmcp.Char.Vitals' to be dynamic with a variable
    • -- -- Made SkillBar module able to be toggled on and off and reorganized startup process which 
    • -- -- -- proceeds with loading saved variables first then initializing the GUI
    The link in this post seems to work. 

Sign In or Register to comment.