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:
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. Also, if you use any of the pieces of this suite, mind adding your own shoutout if you share it?
Misc Images:
Comments
When it does load, it doesn't fully load, and the labels don't fix the text.
GMCP documentation: https://github.com/keneanung/GMCPAdditions
svof github site: https://github.com/svof/svof and documentation at https://svof.github.io/svof
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?
- 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.
I don't have a system to click a player's nameYacto 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?
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.
Edit - Chat now works after some restarts!
Just the font size issue bothering me now
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:
GMCP documentation: https://github.com/keneanung/GMCPAdditions
svof github site: https://github.com/svof/svof and documentation at https://svof.github.io/svof
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!
in addition, replace the script "RoomInfo UpdateRoom" with the following:
https://www.hastebin.com/wevinomili.lua
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.
Alias Name:
Delete Blank Lines Toggle
Alias:
^@(.+)$
Code: