Free Mudlet curing system - Stygian

by Unknown

Back to Mechanic's Corner.

Unknown2010-03-17 09:06:39
QUOTE
THIS HAS ONLY BEEN TESTED LIGHTLY. I'LL REMOVE THIS QUOTE ONCE IT HAS BEEN! CERTAINLY BY THE TIME A REAL RELEASE IS MADE


If you find bugs, pls PM them to me, send a message to Cern in game, or email me. My email is listed on my website, in my signature.

You'll almost certainly want to edit the triggers section under GUI/tabbed chat.

I may have missed some things which are currently setup for Glomdoring. It's where I play. options for what org you are in and/or a seperate trigger to enable/disable for each org will be available in a later release.

So... you might want to make a new profile before importing this. Open alpha time!

PLS note: this is designed for CONFIG WRAPWIDTH 0 and CONFIG PROMPT ALL
I will be writing documention and in-mudlet help items soon for all this, I promise.

Things I know still need doing:

bleeding
writhing
choke/sap/aeon
real illusion proofing
the gui (it's about to get a major rewrite, and that's not even a third of what's done so far in the pkg)
blackout
wounds/stancing/parrying
defense tracking
taking firstaid into account (you may need to rerun INIT if you use firstaid as it won't accept something as being cured atm unless the system sends the cure)
greendulah (see above)

And I'm sure more. I'm going to go crash now.

Edit: Ok, it cures now... not sure how the issues slipped in when it seemed to work before, but I took care of it.Guess that's what I get for testing in a lua console. I still recommend importing this into a clean profile.
----- fixed up SSHOW alias which, like Mantis' mshow, shows you your sipping levels for potions
----- edited VARCHECK alias to be a bit more easily read
----- Obviously from above post, I tracked down a bug that crept in that prevented the curing from firing off. This is now resolved.
----- Various minor typo and bug fixes in the supporting code.
----- Some slightly improved prompt gagging... you won't have multiple mini-prompts between long chat sessions/roleplay scrolling up your screen.
----- Still working to resolve the issue with the map swapping places with main window text. however, if I send the map command that seems to resolve it.

Edit2: More stuff
----- added ASIP HSIP MSIP ESIP aliases... usage is: "asip 75" (without quotes, obviously) will set all sipping levels to 75% of max. hsip/msip/esip are for each individual one
----- Some variables were not initialized properly on first load of the profile (I am using some variable saving, so subsequent loads should have been ok, once they were set)
----- Fixed the map capture that was eating peoples' txt
----- Added config option for gagging chat in the main window or not (the option variable name has changed, it was there but ridiculous)
----- Right now say based communication is captured from my having changed the color, and matching that. If someone has a reliable set of regex for capturing says, and wants to share, by all means

Edit3: Some small bugfixes
----- Displaying the map in the main window will no longer set the background color in both the map window and the main window
----- Bug with not properly deselecting txt when doing the prompt causing later echos that weren't formated specifically to catch the old formatting
----- same with the random chat coloring
----- Fixed the Stygian balance/eq chasing to work properly. Some minor typos were causing major headaches
----- added echos for switching and setting targets
----- turning off bright prompt will now work across the board, both for sipper info and for prompt/stat change information.
----- major overhaul in the way I distribute Stygian

Edit4: A couple of features added, shifting of focus, fond farewell
----- Added harvester
----- Added influencer, with "Influence all mobs of this type in the room" functionality.
----- Not going to continue working on Stygian

So... I ended up deciding to go with external .lua files, so that I could provide upgrades without people having to wipe and readd all of their triggers/aliases/keys/buttons/etc that came with stygian in order to get some function updates. I have now a package of .lua files, a package with one big .xml file, and a package with 5 seperate xml files (one for each script editor section I make use of) so that if I update triggers for Stygian, I can distribute just the triggers xml file, if I updated the lua functions, I can distribute just the lua files, etc.

When you first import and setup your profile to use Stygian, you will need to go to the "Load Script Files" script object (it will be the second one from the top inside the Stygian folder) and edit the declaration for Stygian.config.scriptPath to wherever you extract the .lua files to. So, for instance, if you're on windows and you put the lua files in C:\\Stygian, you would edit the variable to Stygian.config.scriptPath = "C:/Stygian/" . This will make things perhaps a bit more difficult up front, but I feel it will have real benefit when needing to update. So... here're the files:

Stygian.zip

And again... for now, you'll probably want to use the fullInstall and the luafiles zips... First, remove remove previous Stygian components. Then extract the luafiles to wherever you like. C:\\Stygian would work fine. Then import the Stygian.xml file, then edit the filepath. Restart mudlet.


Edit4: A couple of features added, shifting of focus, fond farewell
----- Added harvester
----- Added influencer, with "Influence all mobs of this type in the room" functionality.
----- Not going to continue working on Stygian

So... real life is kicking my butt. I don't have the time to write a system from the ground up, nor to properly maintain said system. I've gotten it somewhat sorted into a reasonable shape for anyone who wants to use it as a sort of framework for their own thing. What I'm going to do instead is work with Jules on Mantis. I feel like the amount of time I do have can be better spent helping with another freely available system than with "competing" with it. So, there it is.
Jules2010-03-17 15:33:16
I already have one bug: The main output and the map output windows are switched. So the main output is REEEAAAALLY small.
Unknown2010-03-17 15:38:47
QUOTE (Jules @ Mar 17 2010, 11:33 AM) <{POST_SNAPBACK}>
I already have one bug: The main output and the map output windows are switched. So the main output is REEEAAAALLY small.

I haven't seen that in my testing. when you send 'map' does it resolve?
Unknown2010-03-17 16:04:33
ok, on a clean profile with nothing else loaded I saw it if I moved before I did "map" as a command. But only the first time I moved, it then switched back. I'll troubleshoot to get rid of the one time, though. Thanks =)
Unknown2010-03-19 07:16:45
New xml file uploaded, resolves several code problems/typos, Worked a bit on some basic system displays. Fixed it so it actually cures anything.. you know, the little things.


----- fixed up SSHOW alias which, like Mantis' mshow, shows you your sipping levels for potions
----- edited VARCHECK alias to be a bite more easily read
----- Obviously from above post, I tracked down a bug that crept in that prevented the curing from firing off. This is now resolved.
----- Various minor typo and bug fixes in the supporting code.
----- Some slightly improved prompt gagging... you won't have multiple mini-prompts between long chat sessions/roleplay scrolling up your screen.
----- Still working to resolve the issue with the map swapping places with main window text. however, if I send the map command that seems to resolve it.
Unknown2010-03-20 03:41:34
new version up... there'll be a lot of lil pushes like this, pls check back often.

Edit2: More stuff
----- added ASIP HSIP MSIP ESIP aliases... usage is: "asip 75" (without quotes, obviously) will set all sipping levels to 75% of max. hsip/msip/esip are for each individual one
----- Some variables were not initialized properly on first load of the profile (I am using some variable saving, so subsequent loads should have been ok, once they were set)
----- Fixed the map capture that was eating peoples' txt
----- Added config option for gagging chat in the main window or not (the option variable name has changed, it was there but ridiculous)
----- Right now say based communication is captured from my having changed the color, and matching that. If someone has a reliable set of regex for capturing says, and wants to share, by all means
Unknown2010-04-13 23:55:44
Edit3: Some small bugfixes
----- Displaying the map in the main window will no longer set the background color in both the map window and the main window
----- Bug with not properly deselecting txt when doing the prompt causing later echos that weren't formated specifically to catch the old formatting
----- same with the random chat coloring
----- Fixed the Stygian balance/eq chasing to work properly. Some minor typos were causing major headaches
----- added echos for switching and setting targets
----- turning off bright prompt will now work across the board, both for sipper info and for prompt/stat change information.
----- major overhaul in the way I distribute Stygian

So... I ended up deciding to go with external .lua files, so that I could provide upgrades without people having to wipe and readd all of their triggers/aliases/keys/buttons/etc that came with stygian in order to get some function updates. I have now a package of .lua files, a package with one big .xml file, and a package with 5 seperate xml files (one for each script editor section I make use of) so that if I update triggers for Stygian, I can distribute just the triggers xml file, if I updated the lua functions, I can distribute just the lua files, etc.

When you first import and setup your profile to use Stygian, you will need to go to the "Load Script Files" script object (it will be the second one from the top inside the Stygian folder) and edit the declaration for Stygian.config.scriptPath to wherever you extract the .lua files to. So, for instance, if you're on windows and you put the lua files in C:\\Stygian, you would edit the variable to Stygian.config.scriptPath = "C:/Stygian/" . This will make things perhaps a bit more difficult up front, but I feel it will have real benefit when needing to update.
Janalon2010-04-14 03:41:58
I've been out of the loop... looking to test your system soon (as soon as I get from under this immense workload I've inherited).
Unknown2010-04-15 17:24:08
I'm going to give stygian a try in combat, probably today smile.gif

I realized my firstaid system is looping because when you get an aff, it's in lowercase, but when it's in your queue or you remove it, it's in all caps... and lua is case sensitive, so... I fail sad.gif
Unknown2010-04-15 17:32:45
string.lower("BLAH")


You're welcome.
Unknown2010-04-16 03:34:27
What I ended up doing was, in like a half hour only, combined Stygian with my firstaid system basically by using my firstaid system's code for cure whiffs (like, you eat a pennyroyal, nothing is cured, so remove affs) and the firstaid curequeue, by changing the functions Stygian_addAff and Stygian_remAff to use the firstaid system instead. It's working perfectly! I call it... Winnian.
Unknown2010-05-03 01:49:47
What's phpTable for?
Jules2010-05-03 04:28:26
QUOTE (tastefuldeath @ May 2 2010, 09:49 PM) <{POST_SNAPBACK}>
What's phpTable for?


Lua by nature doesn't remember the custom ordering of table key/value pairs. phpTable changes that, and allows for tables to save custom ordering, set by the source code. Useful for priority queue's and the like.
Unknown2010-05-03 16:14:58
QUOTE (Jules @ May 3 2010, 12:28 AM) <{POST_SNAPBACK}>
Lua by nature doesn't remember the custom ordering of table key/value pairs. phpTable changes that, and allows for tables to save custom ordering, set by the source code. Useful for priority queue's and the like.


To expand on this:

If you use dictionary typed tables (also known as keyed tables or hashes, an example being {name = "demonnic", position = "that guy"} ) then you need to iterate with pairs() ... which does not in any way preserve the order of the table. It can come up in totally random order. You'll never know.

phpTable will ensure that your table iterates in the order that elements are added to it (as it does in php, hence the name)

Of course, if your table is indexed (or an array type table, example {"hi", "this", "has", "no", "specified", "keys", "and", "so", "it", "uses", "numbers", "auto-assigned", "in order"}) then you can iterate over it using ipairs() which will preserve the order (it does table, then table, etc.}
Janalon2010-05-09 02:43:57
QUOTE
When you first import and setup your profile to use Stygian, you will need to go to the "Load Script Files" script object (it will be the second one from the top inside the Stygian folder) and edit the declaration for Stygian.config.scriptPath to wherever you extract the .lua files to. So, for instance, if you're on windows and you put the lua files in C:\\Stygian, you would edit the variable to Stygian.config.scriptPath = "C:/Stygian/" . This will make things perhaps a bit more difficult up front, but I feel it will have real benefit when needing to update. So... here're the files:



How does this work for a Mac?
Unknown2010-05-09 18:37:32
Yar, it's hard to set that stuff up. My current system is actually stygian affliction cure messages + firstaid add aff messages and firstaid curequeue commands (I changed what the stygian_remAff function does).
Unknown2010-05-10 22:22:20
QUOTE (Janalon @ May 8 2010, 10:43 PM) <{POST_SNAPBACK}>
How does this work for a Mac?



Same way, essentially, as it does for linux. You can use the filepath directly from the OS, will likely be something like /home/janalon/Stygian if your username on the box is janalon.


I'm revisiting the external lua files... it's really made my life easier for testing and updating the functions, but so many people hate having to do the config.

I've been working on some things that'd make it much easier, but it's slow going and work's kicking my butt lately.
Unknown2010-05-19 06:26:40
Edit4: A couple of features added, shifting of focus, fond farewell
----- Added harvester
----- Added influencer, with "Influence all mobs of this type in the room" functionality.
----- Not going to continue working on Stygian

So... real life is kicking my butt. I don't have the time to write a system from the ground up, nor to properly maintain said system. I've gotten it somewhat sorted into a reasonable shape for anyone who wants to use it as a sort of framework for their own thing. What I'm going to do instead is work with Jules on Mantis. I feel like the amount of time I do have can be better spent helping with another freely available system than with "competing" with it. So, there it is.
Janalon2010-05-19 21:06:07
QUOTE (demonnic @ May 19 2010, 02:26 AM) <{POST_SNAPBACK}>
Edit4: A couple of features added, shifting of focus, fond farewell
----- Added harvester
----- Added influencer, with "Influence all mobs of this type in the room" functionality.
----- Not going to continue working on Stygian

So... real life is kicking my butt. I don't have the time to write a system from the ground up, nor to properly maintain said system. I've gotten it somewhat sorted into a reasonable shape for anyone who wants to use it as a sort of framework for their own thing. What I'm going to do instead is work with Jules on Mantis. I feel like the amount of time I do have can be better spent helping with another freely available system than with "competing" with it. So, there it is.


Will Mantis be enveloped into Styngian or Vice Versa? What's the most complete system for Mudlet at this point?

Anyway... best of luck with ya!
Jules2010-05-19 21:22:02
QUOTE (Janalon @ May 19 2010, 05:06 PM) <{POST_SNAPBACK}>
Will Mantis be enveloped into Styngian or Vice Versa? What's the most complete system for Mudlet at this point?

Anyway... best of luck with ya!


I can't say for certain that Mantis is more "complete" than Stygian, though I know that both will cure your afflictions. Stygian might be more complete, simply because Demonnic is the more seasoned coder, and has the logic down quite well. Stygian also has a working GUI, whereas Mantis does not. It's really up to you if you wish to switch over to Mantis, or develop your own system off Stygian.

Mantis already has a pretty well-off development base, plus the latest revisions can be found on it's Google Code site, http://code.google.com/p/mantis-combat-system, so if you do choose to switch, you can sign up to help develop and test the code, should you wish.

To answer your first question, however, the two systems will simply merge, taking the best of both Stygian and Mantis and combining them. I know that I'll personally be looking through some of Demonnic's code to fix a few bugs with Mantis that I have been experiencing, but otherwise, they shall simply become one... Much like Elcyrion and Lacostian!