Wound Tracking Method

by Unknown

Back to Combat Guide.

Unknown2005-09-19 21:19:52
I was thinking, to track my wounds, if I just set up a simple counter based on the warrior hit messages. The "You are cuffed lightly on the cheek" part. Basically, all it would do is tally the hits done to each body part, and then heal the location with the most hits.

So:

Murphy hits my head, tracker adds one to head.
Murphy hits my head, tracker adds one to head.

Murphy hits my chest, tracker adds one to chest.
Murphy hits my gut, tracker adds one to gut.

My oppurtunity to heal wounds comes around, and the tracker checks which body part has the highest count, heals my head then subtracts one. In cases of a tie, the body parts would have a rank, so head would get cured first, then arms, and so on. Also, if the "Your deep wounds heal compeltely" message comes up, the tracker automatically sets that body part pack to zero.

Would this be a relatively effective method of keeping your limbs healed?

On a related note, if anyone happens to have a list of all the warrior impact messages, you could save me some spars tongue.gif
Vesar2005-09-19 23:51:46
That's basically what I do, though I go off the deepwounds that a certain affliction must have to get it.

Example: I get cut arteries. I set my deepwounds on that arm to 2. If I get hit in the arms again, I add 1, and so on.

I think it works well, but I'm still developing my new system, so I'll let you know. smile.gif
Unknown2005-09-20 00:11:02
Well, that's good enough for me that i'll start coding it now tongue.gif

The affliction curing is another thing I was thinking about - setting different priority brackets for each type of cure (herb, salve, sip), and putting an actual wait on the curing, just a fraction of a second, so that it would take into all afflictions I would get from a timed demesne, a statue, a supersling, a berserk fetish, or just multiple attackers. The priorities would be based on obvious combos, or things that would restrict other curing.

Would the wait be more trouble/danger than the resulting catch-all would be worth?
Unknown2005-09-20 00:22:03
Why not just cure on a prompt trigger? If you do it right, you won't slow everything down. Avoid executing too much logic on every prompt or you'll get into lots of trouble when the spam starts flying. Take advantage of wait states and short-circuit evaluation.
Unknown2005-09-20 00:25:49
Yeah, that's what I did. 1 second 'circuit' for scanning afflictions (I also run appropriate curing aliases on hit messages), 2 seconds for stinging... works fine.
Vesar2005-09-20 00:30:08
I do checks on every prompt. If I have an affliction of any type, I run the appropriate curing queue. In addition, each time I use my afflict alias, i automatically run that curing queue.

Seems to work fast and doesn't slow the system at all. I just make sure that I don't run the queues unless I have an affliction of that type.
Unknown2005-09-20 00:40:33
Hm. That could work. I was just thinking that warriors and such will cause two prompts, which wouldn't allow for sorting both afflictions based on priority. However, that might not be too big of a loss.

As for processing speed, well-
1) I use MUSHclient
2) I code completely in the built in triggers/aliases/ect boxes. I don't actually have an external script to call on.
3) My coding probably isn't anywhere close to stream-lined
4) I'm on Dial-up most of the time, and, so, I probably wouldn't notice a difference laugh.gif

Here's a sample of my current prompt trigger:

CODE
dim sipstatus
dim maxhealth
  maxhealth = world.GetVariable ("maxhealth")
if %1 <= maxhealth*.85 then
  SipStatus = world.GetVariable ("sipstatus")
  if sipstatus = "Open" then
     world.Send "sip health"
     world.SetVariable "sipstatus", "Closed"
  end if
  if sipstatus = "Closed" then
     world.SetVariable "sipstatus", "HealthWait"
  end if
end if
dim maxmana
  maxmana = world.GetVariable ("maxmana")
if %2 <= maxmana*.85 then
     SipStatus = world.GetVariable ("sipstatus")
  if sipstatus = "Open" then
     world.Send "sip mana"
     world.SetVariable "sipstatus", "Closed"
  end if
  if sipstatus = "Closed" then
     world.SetVariable "sipstatus", "ManaWait"
  end if
end if
if instr("%7", "e") then
  world.setvariable "eqcheck", "1"
else
  world.setvariable "eqcheck", "0"
end if
if instr("%7", "x") then
  world.setvariable "balcheck", "1"
else
  world.setvariable "balcheck", "0"
end if
Unknown2005-09-20 00:42:10
QUOTE(Vesar @ Sep 20 2005, 02:30 AM)
I do checks on every prompt.  If I have an affliction of any type, I run the appropriate curing queue.  In addition, each time I use my afflict alias, i automatically run that curing queue. 

Seems to work fast and doesn't slow the system at all.  I just make sure that I don't run the queues unless I have an affliction of that type.
189225


Maybe you have a fast PC?

I ran a test lately, and it seems like data records in zmud are A LOT faster than stringlists. I'll need to tweak with it and see how it works out.

Too bad you can't use them with interface. sad.gif

Edited, I have taken Vesar for someone else by mistake.
Atreus2005-09-20 01:07:50
My system runs on three different queues: Salves, Potions, and Herbs. One alias goes through all the afflictions I have and sorts them out into their respective Queues depending on what type of cure each affliction needs. I run three different calls on the prompt to check each queue whenever there is anything in each of the queues. In addition to calling the queue checks whenever anything is added to them. I go off the prompt as well in case stupidity prevents eating, drinking, etc. Doesn't really seem to slow anything down at all when I use it that way...

Matter of fact I always see combat as way too fast, and can't usually pick up on everything fast enough. Guess that comes with being new. blink.gif
Unknown2005-09-20 01:13:56
True, with the stupidity thing. I guess a prompt trigger is the better way to go. Now I just need to figure out how I want to go about queing it all. Hm.

So many possibilities.. so many possible horrible deaths due to unforseen bugs.




...God I love coding laugh.gif
Ethelon2005-09-20 02:51:15
You can always DL my free system and look it over. It's written in VBscript and does use an external script. there is no lag at all with it, though the Free system isn't the best or safest way to Code, but by the looks of it, you know what you are doing. So if you just need a reference for curing and healing, it's there.
Unknown2005-09-20 03:10:41
I'm curious, is using the built-in trigger boxes any faster than calling on and outside script? It seems like it might be. :ponder:

And actually, I already did DL your system, and its given me a couple little ideas already and a bit of help already.. though some of it accidental laugh.gif

I was trying to figure out why my prompt trigger wasn't working, then I loaded your script in another window and it added the linebreak when I logged in. Went to bed, got up the next morning and my prompt trigger was working, and I suddenly realized what I had forgot. :facepalm:
Ethelon2005-09-20 03:15:03
QUOTE(Cult Member @ Sep 19 2005, 11:10 PM)
I'm curious, is using the built-in trigger boxes any faster than calling on and outside script? It seems like it might be. :ponder:

And actually, I already did DL your system, and its given me a couple little ideas already and a bit of help already.. though some of it accidental laugh.gif

I was trying to figure out why my prompt trigger wasn't working, then I loaded your script in another window and it added the linebreak when I logged in. Went to bed, got up the next morning and my prompt trigger was working, and I suddenly realized what I had forgot. :facepalm:
189387



The calling of the Script in Mushclient is literally milli-seconds, so you will never notice a difference.
Alger2005-09-20 03:18:45
wow just 3... i have like... nevermind...
Ethelon2005-09-20 03:23:10
QUOTE(Alger @ Sep 19 2005, 11:18 PM)
wow just 3... i have like... nevermind...
189398



whats that mean?
Unknown2005-09-20 11:31:53
Alger was responding to Atreus and his comment about three queues. There are three main queues in any system, if you consider the number of afflictions cured by each type of balance. There are, however, many other ways to cure things, and you can make a queue for each "minor" balance, too.
Ethelon2005-09-20 14:04:32
QUOTE(Zarquan @ Sep 20 2005, 07:31 AM)
Alger was responding to Atreus and his comment about three queues. There are three main queues in any system, if you consider the number of afflictions cured by each type of balance. There are, however, many other ways to cure things, and you can make a queue for each "minor" balance, too.
189537




ahh, didn't see Atreus's post bout that
Atreus2005-09-21 00:09:04
QUOTE(Alger @ Sep 19 2005, 10:18 PM)
wow just 3... i have like... nevermind...
189398



Those're just my main ones. If you want to get technical about how many queues I have: I have 8 or 9, they're just not all functioning yet. wacko.gif