I'm redoing my gui with Vyzor, and I cant seem to get a map frame that allows me to click on it. It is really driving me crazy! What am I missing?
--Borders
Vyzor.Options.Borders = {Top = 0.0, Bottom = 0.0, Left = 0.0, Right = 0.49}
--Frames
local map = Vyzor.Map( 0, 0, 1, 1 )
local mapframe = Vyzor.Frame("mapframe", 0, 0, 1, .5)
mapframe:Add(map)
Vyzor.HUD.Frames["VyzorRight"]:Add( mapframe )
Vyzor.HUD:Draw()
Comments
Then use the geyser mapper container in the newly freed up space:
Very ugly and counter-intuitive
I have gmcp capturing chat and routing it to various tabs of a vyzor chat widget, pretty slick!
I'm having a very hard time coloring the text in the chat box though. When if fills up with white on black it gets very hard to read! The API reference functions are only letting me customize the tab headings.
I added a room info miniconsole without running into any roadblocks, it lists players denizens and items in their own respective sections. I'm going to make the list items into links that pop out with options to probe/get/target/ etc. as applicable to my clicked line, much like the nexus client.
I also added the svo singleprompt, much like the mapper it is a geyser object that does not like to sit in a vyzor frame, so I had to resize and move the bottom border frame to see it. I still need to play with the reposition function to make it stay where I want it when the window resizes. Everything else in the UI survives window resizing except the prompt widget.
I'm also thinking about making the resize event calculate and fire off new page length and line width config numbers to the game, that would be pretty slick.
I'm still thinking about what I'd like to put in the green space. I'm trying to keep this looking like a terminal so that I can bash at work without drawing any suspicions.
About the line width: you may want to set the Mudlet linewidth instead of in-game one as the latter one may break triggers with their hardcoded linebreaks.
GMCP documentation: https://github.com/keneanung/GMCPAdditions
svof github site: https://github.com/svof/svof and documentation at https://svof.github.io/svof
GMCP documentation: https://github.com/keneanung/GMCPAdditions
svof github site: https://github.com/svof/svof and documentation at https://svof.github.io/svof
If you like, you can open a PR on github. If you don't know how that works, come by the Mudlet discord (https://discord.gg/kuYvMQ9) and we can show you.
The mapper and label could be https://github.com/Mudlet/Mudlet/issues/764, which is a long-standing bug in Mudlet
GMCP documentation: https://github.com/keneanung/GMCPAdditions
svof github site: https://github.com/svof/svof and documentation at https://svof.github.io/svof
I hooked svo's namedb into my miniconsole, now my player list names are color coded by city. I also have some gmcp parsing going on that color codes items in the room, highlighting those that are takeable.
Next question, is there a gmcp-ish way to determine denizen loyalty? I could do similar highlighting actions to separate out mounts/pets/minions from villagers and hostile creatures. The nexus client puts different little icons next to the different types of room items and denizens, so I know that information is there somewhere, I doubt it is doing probes and parsing everything.
I suppose I could use the gmcp info to trim my list of things to probe down to a reasonable amount if I were really determined to highlight denizens by their loyalties
here is some sample gmcp data, m specifies that it is a monster, x that you probably shouldn't attack it. That gives you enough to not randomly strike people's mounts and guards, but pets don't have any such indicators. I'm thinking mx's go in gray, remaining m's get silently probed for loyalties. If the loyalties make it through my filters then it is marked as fair game for killing. Here is some sample GMCP output:
.IsPlaceholder
flag to the Frames that will prevent a label from being drawn. I can't make any promises, though, since I don't know the full extent of the problem"GMCP documentation: https://github.com/keneanung/GMCPAdditions
svof github site: https://github.com/svof/svof and documentation at https://svof.github.io/svof
I played with miniconsole fonts, thinking I could use a font with symbol glyphs in it to do icons like the nexus client, but patching the mudlet embedded bitstream font gave me all sorts of alignment problems and it didn't seem worth the bother to do a graphical frame of icons side by side with the console listing. Adding some pictorial glyphs into the embedded mudlet font would be super useful for what I'm trying to do with this console. I settled for just slapping the icon name in front of the item name in the console, it is a surprisingly useful piece of information to have on display:
Denizens are now sorted by their id number. I chose that method because that seems to be the hunting order when groups are working through rooms containing multiples of the same name.
I separated out the guards and put them at the end of the list, a lot could be done with clustering and sorting things, still playing with it:
I also gave the non icon'd items a placeholder icon, to keep me from getting confused between a word wrap from the previous line and an item without an icon.
For reference:
I re-did the console's sorting. Primary sort is alphabetical, secondary is by id number, plus the guards sectioned off by themselves. This way when somebody calls out a monster we can both easily find it, and pick the correct one by starting at the top.
in hindsight now that I've done all of this, I probably need to chop 'a ' and 'an ' form the front of their names:
I suppose after all this work I ought to get it cleaned up and shared with you all.
The miniconsole is good enough for targeting assistance, I'm sure I'll add chat trigger highlighting and link click functions to it in the near future though.
Next on the plate is a battlerage tracker. I got to logosian on @Klendathu 's amazing tracker script but I feel the rage tracker is an important step towards capable combat that I must write up for myself. I also used @Keneanung 's bashing script pretty heavily. My idea is that I can step up from rage tracker, to denizen combat script, and ultimately to an effective fleet of player combat scripts. The kill paths get increasingly complicated with many timers and variables interacting, so cutting teeth on denizen combat should be helpful.
The tracker is going in the ugly green box in the top center of my window for now, I'll likely move it and make some modal toggle that hides it when I'm not hunting. It does not look like much but is filling up with red when I smack rats. The gmcp vital messages for it didn't update frequently enough until I did a CONFIG RAGEMSG GAIN to get the updates more often, I'd get all the rage gain updates without the setting, but the rage loss would come in very delayed. The vyzor gauges look to be quite capable, though I was thrown off at first by the variable names passed as strings to supply the gauge limits. I wonder how a gauge whose minimum was a number other than zero might work.
I do worry a little about doing animated timers on my own without the demmonic widgets, I'm not sure how often I can fire my update functions before I start affecting mudlet's performance.
Penwize has cowardly forfeited the challenge to mortal combat issued by Atalkez.
The Vyzor box widget came in handy for stacking and aligning stuff. I'm starting to see the need for some borders and styling. I have the gauge on the left filling with rage, the buttons will eventually become indicators/actuators/cooldown timers for the battlerage abilities. Right now they are just festive colored squares.
Stacking and aligning frames is really tedious! It reminds me of java swing in the early 2000's but it is coming along.
semi-related question: what is the maximum battlerage amount? I arbitrarily picked 50 because I tend to spend mine quickly.
Also, don't just use the attacks when they are off cool down, that is inefficient.
is @Trevize still active? This mData script is a massively helpful building block for my UI logic. I may have to fork it if he is'nt around.
I suspect I need to use a style sheet and am having a hard time with that
GMCP documentation: https://github.com/keneanung/GMCPAdditions
svof github site: https://github.com/svof/svof and documentation at https://svof.github.io/svof