CODE
// Right Hand Show/Hide script.
// Listens on channel 223
// Mystery: 1,2,3
// 4,5,6,7,8 Flat Pinky Finger
cFlatPinkyFinger(string str)
{
integer int;
if (str == "on")
{int = 0;}
else
{int = 1;}
llMessageLinked(4, int, "", NULL_KEY);
llMessageLinked(5, int, "", NULL_KEY);
llMessageLinked(6, int, "", NULL_KEY);
llMessageLinked(7, int, "", NULL_KEY);
llMessageLinked(8, int, "", NULL_KEY);
llMessageLinked(44, int, "", NULL_KEY);
}
// 9,10,11,12,13 Flat Index Finger
cFlatIndexFinger(string str)
{
integer int;
if (str == "on")
{int = 0;}
else
{int = 1;}
llMessageLinked(9, int, "", NULL_KEY);
llMessageLinked(10, int, "", NULL_KEY);
llMessageLinked(11, int, "", NULL_KEY);
llMessageLinked(12, int, "", NULL_KEY);
llMessageLinked(13, int, "", NULL_KEY);
llMessageLinked(45, int, "", NULL_KEY);
}
// 14,15,16,17,18 Spread Pinky Finger
cSpreadPinkyFinger(string str)
{
integer int;
if (str == "on")
{int = 0;}
else
{int = 1;}
llMessageLinked(14, int, "", NULL_KEY);
llMessageLinked(15, int, "", NULL_KEY);
llMessageLinked(16, int, "", NULL_KEY);
llMessageLinked(17, int, "", NULL_KEY);
llMessageLinked(18, int, "", NULL_KEY);
}
// 19,20,21,22,23 Spread Index Finger
cSpreadIndexFinger(string str)
{
integer int;
if (str == "on")
{int = 0;}
else
{int = 1;}
llMessageLinked(19, int, "", NULL_KEY);
llMessageLinked(20, int, "", NULL_KEY);
llMessageLinked(21, int, "", NULL_KEY);
llMessageLinked(22, int, "", NULL_KEY);
llMessageLinked(23, int, "", NULL_KEY);
}
// 24,25,26,27,28 Relaxed Pinky Finger
cRelaxedPinkyFinger(string str)
{
integer int;
if (str == "on")
{int = 0;}
else
{int = 1;}
llMessageLinked(24, int, "", NULL_KEY);
llMessageLinked(25, int, "", NULL_KEY);
llMessageLinked(26, int, "", NULL_KEY);
llMessageLinked(27, int, "", NULL_KEY);
llMessageLinked(28, int, "", NULL_KEY);
}
// 29,30,31,32,33 Relaxed Index Finger
cRelaxedIndexFinger(string str)
{
integer int;
if (str == "on")
{int = 0;}
else
{int = 1;}
llMessageLinked(29, int, "", NULL_KEY);
llMessageLinked(30, int, "", NULL_KEY);
llMessageLinked(31, int, "", NULL_KEY);
llMessageLinked(32, int, "", NULL_KEY);
llMessageLinked(33, int, "", NULL_KEY);
}
// 34,35,36,37,38 Fist Pinky Finger
cFistPinkyFinger(string str)
{
integer int;
if (str == "on")
{int = 0;}
else
{int = 1;}
llMessageLinked(34, int, "", NULL_KEY);
llMessageLinked(35, int, "", NULL_KEY);
llMessageLinked(36, int, "", NULL_KEY);
llMessageLinked(37, int, "", NULL_KEY);
llMessageLinked(38, int, "", NULL_KEY);
llMessageLinked(44, int, "", NULL_KEY);
}
// 39,40,41,42,43 Fist Index Finger
cFistIndexFinger(string str)
{
integer int;
if (str == "on")
{int = 0;}
else
{int = 1;}
llMessageLinked(39, int, "", NULL_KEY);
llMessageLinked(40, int, "", NULL_KEY);
llMessageLinked(41, int, "", NULL_KEY);
llMessageLinked(42, int, "", NULL_KEY);
llMessageLinked(43, int, "", NULL_KEY);
llMessageLinked(45, int, "", NULL_KEY);
}
// 44 Pinky Knuckle
// 45 Index Knuckle
// 46 Thumb Up
cThumbUp(string str)
{
integer int;
if (str == "on")
{int = 0;}
else
{int = 1;}
llMessageLinked(46, int, "", NULL_KEY);
}
// 47 Thumb Relaxed
cThumbRelaxed(string str)
{
integer int;
if (str == "on")
{int = 0;}
else
{int = 1;}
llMessageLinked(47, int, "", NULL_KEY);
}
// 48 Thumb Down
cThumbDown(string str)
{
integer int;
if (str == "on")
{int = 0;}
else
{int = 1;}
llMessageLinked(48, int, "", NULL_KEY);
}
// 49 Thumb Tuck
cThumbTuck(string str)
{
integer int;
if (str == "on")
{int = 0;}
else
{int = 1;}
llMessageLinked(49, int, "", NULL_KEY);
}
cThumbOff(integer int)
{
if (int == 1)
{
cThumbTuck("off");
}
else if (int == 2)
{
cThumbDown("off");
}
else if (int == 3)
{
cThumbRelaxed("off");
}
else if (int == 4)
{
cThumbUp("off");
}
}
cIndexOff (integer int)
{
if (int == 1)
{
cFistIndexFinger("off");
}
else if (int == 2)
{
cRelaxedIndexFinger("off");
}
else if (int == 3)
{
cSpreadIndexFinger("off");
}
else if (int == 4)
{
cFlatIndexFinger("off");
}
}
cPinkyOff (integer int)
{
if (int == 1)
{
cFistPinkyFinger("off");
}
else if (int == 2)
{
cRelaxedPinkyFinger("off");
}
else if (int == 3)
{
cSpreadPinkyFinger("off");
}
else if (int == 4)
{
cFlatPinkyFinger("off");
}
}
parseThumb(integer newThumb)
{
if (newThumb == gThumb)
{
// Thumb is the same, do nothing.
}
else if (newThumb == 1)
{
cThumbOff(gThumb);
cThumbTuck("on");
gPrevThumb = gThumb;
gThumb = 1;
}
else if (newThumb == 2)
{
cThumbOff(gThumb);
cThumbDown("on");
gPrevThumb = gThumb;
gThumb = 2;
}
else if (newThumb == 3)
{
cThumbOff(gThumb);
cThumbRelaxed("on");
gPrevThumb = gThumb;
gThumb = 3;
}
else if (newThumb == 4)
{
cThumbOff(gThumb);
cThumbUp("on");
gPrevThumb = gThumb;
gThumb = 4;
}
}
parseIndex(integer newIndex)
{
if (newIndex == gIndex)
{
// Index is the same, do nothing.
}
else if (newIndex == 1)
{
cIndexOff(gIndex);
cFistIndexFinger("on");
gPrevIndex = gIndex;
gIndex = 1;
}
else if (newIndex == 2)
{
cIndexOff(gIndex);
cRelaxedIndexFinger("on");
gPrevIndex = gIndex;
gIndex = 2;
}
else if (newIndex == 3)
{
cIndexOff(gIndex);
cSpreadIndexFinger("on");
gPrevIndex = gIndex;
gIndex = 3;
}
else if (newIndex == 4)
{
cIndexOff(gIndex);
cFlatIndexFinger("on");
gPrevIndex = gIndex;
gIndex = 4;
}
}
parsePinky(integer newPinky)
{
if (newPinky == gPinky)
{
// Pinky is the same, do nothing.
}
else if (newPinky == 1)
{
cPinkyOff(gPinky);
cFistPinkyFinger("on");
gPrevPinky = gPinky;
gPinky = 1;
}
else if (newPinky == 2)
{
cPinkyOff(gPinky);
cRelaxedPinkyFinger("on");
gPrevPinky = gPinky;
gPinky = 2;
}
else if (newPinky == 3)
{
cPinkyOff(gPinky);
cSpreadPinkyFinger("on");
gPrevPinky = gPinky;
gPinky = 3;
}
else if (newPinky == 4)
{
cPinkyOff(gPinky);
cFlatPinkyFinger("on");
gPrevPinky = gPinky;
gPinky = 3;
}
}
integer gThumb = 3;
integer gIndex = 2;
integer gPinky = 2;
integer gPrevThumb = 3;
integer gPrevIndex = 2;
integer gPrevPinky = 2;
default
{
state_entry()
{
// Relaxed on, all else off.
cFlatPinkyFinger("off"); // ##4
cFlatIndexFinger("off"); // #4#
cSpreadPinkyFinger("off"); // ##3
cSpreadIndexFinger("off"); // #3#
cRelaxedPinkyFinger("on"); // ##2 // This is on
cRelaxedIndexFinger("on"); // #2# // This is on
cFistPinkyFinger("off"); // ##1
cFistIndexFinger("off"); // #1#
cThumbUp("off"); // 4##
cThumbRelaxed("on"); // 3## // This is on
cThumbDown("off"); // 2##
cThumbTuck("off"); // 1##
// Default Hand State (relaxed)
integer gThumb = 3;
integer gIndex = 2;
integer gPinky = 2;
// Now we listen for hand changes on channel 223
llListen(223,"",llGetOwner(),"");
}
listen(integer channel, string name, key id, string message)
{
if (message == "return")
{
message == (string)gPrevThumb + (string)gPrevIndex + (string)gPrevPinky;
llOwnerSay(message);
}
// Translate the data for the hand request
integer newThumb = (integer)llGetSubString(message, 0, 0);
integer newIndex = (integer)llGetSubString(message, 1, 1);
integer newPinky = (integer)llGetSubString(message, 2, 2);
// Now we parse for the thumb, index and pinky and pray this works... >_>
parseThumb(newThumb);
parseIndex(newIndex);
parsePinky(newPinky);
}
}
Coding suggestions are welcome. If I knew how to steer away from all these if-else statements, I would do so. I also don't know how to post in php-code.
Anyone know why my flat-pinky-finger won't re-hide?