Take (script)

From Elanthipedia
Jump to navigation Jump to search
Take (script)
Category Empath
Front-end Unknown
Author Fuiru


I've included two scripts here. I use one as the shortcut/translation to the other.

Take.cmd

This script will take the all the specified internal/external wounds/scars from the given PC, doing up to the given number of transfers at once.

%1 = The target (person) whose wounds you're taking. You need to have an initial empathic link.
%2 = Max number of wounds to take at one time, up to 9.
%3, ... %n = The list of locations. You'll need quotes around parts with multiple parts to the name, or join them with underscores or dots (e.g., eyes).

Example: This will take all of FuIru's wounds from the head, neck, left arm, chest, abdomen and back, doing up to 5 transfers at a time.

.take FuIru 5 head neck "left arm" chest abdomen back
or
.take FuIru 5 head neck left.arm chest abdomen back

Some caveats:
You'll want to have a good Refresh or such on you if you're taking many wounds at once.
Don't give a value greater than 9 for the max wounds parameter. I don't test for it, and so it isn't handled.
If you incur roundtime during the transfers, you run the risk of the script missing some of the transfer completion messages. Either restart the script, or enter "You sense that" until it starts going again. Similarly, collapsing and thereby losing the transfers will also mess it up; in that case, your best bet is to restart, or take them manually until it kicks off again.
Don't over-heal. This will simply take each wound QUICKly. It's very simple, in that it has no protections against you taking more than you can chew. Don't die :)
If the patient has any pet bleeders, you'll need to leave out that body part, and take the internal and scars manually. Again, it's a simple script.

The script:

#http://www.elanthipedia.com/wiki/User:FuIru/Scripts/Take_%28script%29
#initial release: 2010-2-27

if_3 goto start
exit

start:
setvariable SimulWounds %2
counter set 0
setvariable Targ %1
shift
shift

Woundloop1:
setvariable Type ext wound
setvariable Goto WoundLoop2
goto wound%SimulWounds

WoundLoop2:
setvariable Type int wound
setvariable Goto WoundLoop3
goto wound%SimulWounds

WoundLoop3:
setvariable Type ext scar
setvariable Goto WoundLoop4
goto wound%SimulWounds

WoundLoop4:
setvariable Type int scar
setvariable Goto Shift
goto wound%SimulWounds

wound9:
if_9 put take %Targ quick %9 %Type
if_9 counter add 1
wound8:
if_8 put take %Targ quick %8 %Type
if_8 counter add 1
wound7:
if_7 put take %Targ quick %7 %Type
if_7 counter add 1
wound6:
if_6 put take %Targ quick %6 %Type
if_6 counter add 1
wound5:
if_5 put take %Targ quick %5 %Type
if_5 counter add 1
wound4:
if_4 put take %Targ quick %4 %Type
if_4 counter add 1
wound3:
if_3 put take %Targ quick %3 %Type
if_3 counter add 1
wound2:
if_2 put take %Targ quick %2 %Type
if_2 counter add 1
wound1:
if_1 put take %Targ quick %1 %Type
if_1 counter add 1
setvariable NumWounds %c
#Now wait for all those wounds to heal
WaitLoop:
match wait%c You sense that
match quit overwhelmed
matchwait
wait9:
wait8:
wait7:
wait6:
wait5:
wait4:
wait3:
wait2:
counter subtract 1
goto WaitLoop
wait1:
wait0:
counter set 0
put touch %Targ
goto %Goto

Shift:
counter set %NumWounds

ShiftLoop:
shift
goto shift%c

shift9:
shift8:
shift7:
shift6:
shift5:
shift4:
shift3:
shift2:
counter subtract 1
goto ShiftLoop
shift1:
shift0:
counter set 0
if_1 put touch %Targ
if_1 goto WoundLoop1
quit:

t.cmd

This script makes it a bit easier to use take, as it will take a list of abbreviated body parts, and call Take with the actual values. Other than abbreviated body parts, the arguments to t are the same as to Take.

If you change the name of Take, be sure to change the script call in this one.

Body parts expected by t are h, n, c, a, b, re, le, rl, ll, rh, lh, ra, la, s, t

Example: .t FuIru 5 h n la c a b

#http://www.elanthipedia.com/wiki/User:FuIru/Scripts/Take_%28script%29
#initial release: 2010-2-27

if_3 goto start
exit

start:
setvariable cmd .take %1 %2
shift

loop:
shift
if_1 goto %1
put %cmd

h:
head:
setvariable cmd %cmd head
goto loop

n:
setvariable cmd %cmd neck
goto loop

c:
setvariable cmd %cmd chest
goto loop

a:
setvariable cmd %cmd abdomen
goto loop

b:
setvariable cmd %cmd back
goto loop

re:
setvariable cmd %cmd right_eye
goto loop

ra:
setvariable cmd %cmd right_arm
goto loop

rh:
setvariable cmd %cmd right_hand
goto loop

rl:
setvariable cmd %cmd right_leg
goto loop

le:
setvariable cmd %cmd left_eye
goto loop

la:
setvariable cmd %cmd left_arm
goto loop

lh:
setvariable cmd %cmd left_hand
goto loop

ll:
setvariable cmd %cmd left_leg
goto loop

s:
setvariable cmd %cmd skin
goto loop

t:
setvariable cmd %cmd tail
goto loop

labelError
setvariable cmd %cmd %1
goto loop