aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authoronefang2021-09-06 22:19:32 +1000
committeronefang2021-09-06 22:19:32 +1000
commit355ffb68730c79b4d0bcffe638d9a7b3cc91f1f7 (patch)
tree2f77e13d05c7fa702a8a65bd22f5bb218612af42
parentMore emotes! Also, last commit included the single poses code. (diff)
download1ring-355ffb68730c79b4d0bcffe638d9a7b3cc91f1f7.zip
1ring-355ffb68730c79b4d0bcffe638d9a7b3cc91f1f7.tar.gz
1ring-355ffb68730c79b4d0bcffe638d9a7b3cc91f1f7.tar.bz2
1ring-355ffb68730c79b4d0bcffe638d9a7b3cc91f1f7.tar.xz
Clean up various vehicle bugs.
-rw-r--r--1AOor2.lsl82
1 files changed, 66 insertions, 16 deletions
diff --git a/1AOor2.lsl b/1AOor2.lsl
index eae6b72..3305494 100644
--- a/1AOor2.lsl
+++ b/1AOor2.lsl
@@ -500,6 +500,7 @@ integer doThing(key id, string button, string fr, string cmd, string data, integ
500 llGiveInventory(id, "soap-bubble"); 500 llGiveInventory(id, "soap-bubble");
501 llRemoteLoadScriptPin(id, "1chatter", llList2Integer(p, 0), TRUE, bREZ); 501 llRemoteLoadScriptPin(id, "1chatter", llList2Integer(p, 0), TRUE, bREZ);
502 llRemoteLoadScriptPin(id, ScriptName, llList2Integer(p, 0), TRUE, bREZ); 502 llRemoteLoadScriptPin(id, ScriptName, llList2Integer(p, 0), TRUE, bREZ);
503 addEvent(0.5, "PING");
503 } 504 }
504 else if ("REZ_DONE" == cmd) 505 else if ("REZ_DONE" == cmd)
505 { 506 {
@@ -507,7 +508,6 @@ integer doThing(key id, string button, string fr, string cmd, string data, integ
507 { 508 {
508 sendPrim(TheirKey, "SIT", [Stalkee, What, llDumpList2String(Whats, "|")]); 509 sendPrim(TheirKey, "SIT", [Stalkee, What, llDumpList2String(Whats, "|")]);
509 sendPrim(TheirKey, "COUPLES", [Owner]); 510 sendPrim(TheirKey, "COUPLES", [Owner]);
510 Chosen = 0;
511 } 511 }
512 else if (-1 == Chosen) killPrim(); 512 else if (-1 == Chosen) killPrim();
513 else 513 else
@@ -573,7 +573,14 @@ integer doThing(key id, string button, string fr, string cmd, string data, integ
573 else if ("SIT_DONE" == cmd) 573 else if ("SIT_DONE" == cmd)
574 { 574 {
575d("SIT_DONE for " + llKey2Name(data)); 575d("SIT_DONE for " + llKey2Name(data));
576 if(data == Stalkee) 576 if (0 == Chosen)
577 {
578 Chosen = 1;
579 addEvent(0.0, "COUPLE_TIMEOUT");
580 sendScript(lCMD, "1ring", [fINT, Owner, Stalkee, "STOP", ""]);
581 S(llKey2Name(data) + " just grabbed your offer of '" + What + "'.");
582 }
583 if(NULL_KEY == Controller)
577 { 584 {
578 if ("" != Posed) 585 if ("" != Posed)
579 { 586 {
@@ -589,6 +596,35 @@ d("SIT_DONE for " + llKey2Name(data));
589 llRequestPermissions(Controller, PERMISSION_CONTROL_CAMERA | PERMISSION_TAKE_CONTROLS); 596 llRequestPermissions(Controller, PERMISSION_CONTROL_CAMERA | PERMISSION_TAKE_CONTROLS);
590 } 597 }
591 } 598 }
599 else if ("PING" == cmd)
600 {
601 key k = TheirKey;
602
603 if (NULL_KEY != BossKey)
604 k = BossKey;
605 if (pingPrim(k))
606 addEvent(0.5, "PING");
607 else
608 {
609 if (NULL_KEY != BossKey)
610 {
611 S("Boss went away, slacking off.");
612 die();
613 }
614 else
615 {
616 S("Vehicle went away.");
617 TheirKey = NULL_KEY;
618 if (99.0 <= TPangle)
619 {
620 s("Switching AO to 1ring object.");
621 nextPose = "";
622 oldController(Owner);
623 checkAO();
624 }
625 }
626 }
627 }
592 else if ("DIE" == cmd) die(); 628 else if ("DIE" == cmd) die();
593 else if ("DIE_DONE" == cmd) 629 else if ("DIE_DONE" == cmd)
594 { 630 {
@@ -765,11 +801,11 @@ float TPangle = 999.0;
765 801
766killPrim() 802killPrim()
767{ 803{
768d("killPrim");
769 if (NULL_KEY != TheirKey) 804 if (NULL_KEY != TheirKey)
770 sendPrim(TheirKey, "DIE", []); 805 sendPrim(TheirKey, "DIE", []);
771 Stalkee = NULL_KEY; 806 Stalkee = NULL_KEY;
772 What = ""; 807 What = "";
808 Whats = [];
773 Chosen = 0; 809 Chosen = 0;
774} 810}
775 811
@@ -1639,6 +1675,11 @@ oldController(key t)
1639 1675
1640checkSitters(integer del) 1676checkSitters(integer del)
1641{ 1677{
1678 if (Attached)
1679 {
1680 checkAO();
1681 return;
1682 }
1642 list new = []; 1683 list new = [];
1643 integer l = llGetNumberOfPrims(); 1684 integer l = llGetNumberOfPrims();
1644 integer lnk; 1685 integer lnk;
@@ -2070,9 +2111,22 @@ init()
2070 2111
2071laterInit() 2112laterInit()
2072{ 2113{
2114 integer i = llGetInventoryNumber(INVENTORY_NOTECARD);
2115 list posCards = [];
2116 string item;
2117 while (i-- > 0)
2118 {
2119 item = llGetInventoryName(INVENTORY_NOTECARD, i);
2120 if (llSubStringIndex(item, ".POSITIONS") == 0) posCards += (list) item;
2121 }
2122 readPos(posCards);
2123 d("Loaded " + (string) (llGetListLength(Poses) / psSTRIDE) + " positions in "
2124 + (string) (llGetTimeOfDay() - Start) + " seconds.");
2125
2073 if (!loadCard("ZHAO II", FALSE)) // In an object full of random scripts, "Default" is a lousy name. 2126 if (!loadCard("ZHAO II", FALSE)) // In an object full of random scripts, "Default" is a lousy name.
2074 if (!loadCard("Default", FALSE)) 2127 if (!loadCard("Default", FALSE))
2075 loadCard("AOConfig", TRUE); // Casper AOs are less common. 2128 loadCard("AOConfig", TRUE); // Casper AOs are less common.
2129
2076 if (Attached) 2130 if (Attached)
2077 { 2131 {
2078 s("AO mode."); 2132 s("AO mode.");
@@ -2085,23 +2139,19 @@ laterInit()
2085 } 2139 }
2086 else 2140 else
2087 { 2141 {
2142 llSitTarget(position, llEuler2Rot(rotat * DEG_TO_RAD));
2088 if (NULL_KEY == BossKey) 2143 if (NULL_KEY == BossKey)
2089 d("Vehicle mode."); 2144 s("Vehicle mode.");
2090 else 2145 else
2091 d("Vehicle mode, slaved to " + llKey2Name(BossKey) + "."); 2146 s("Vehicle mode, slaved to " + llKey2Name(BossKey) + ".");
2092 integer i = llGetInventoryNumber(INVENTORY_NOTECARD); 2147
2093 list posCards = []; 2148 if (NULL_KEY != BossKey)
2094 string item;
2095 while (i-- > 0)
2096 { 2149 {
2097 item = llGetInventoryName(INVENTORY_NOTECARD, i); 2150 checkSitters(FALSE);
2098 if (llSubStringIndex(item, ".POSITIONS") == 0) posCards += (list) item; 2151 sendPrim(BossKey, "REZ_DONE", []);
2152 addEvent(0.5, "PING");
2153// llSetLinkCamera(LINK_THIS, <-3.0, 0.0, 1.0>, <0.0, 0.0, 0.0>);
2099 } 2154 }
2100 readPos(posCards);
2101 d("Loaded " + (string) (llGetListLength(Poses) / psSTRIDE) + " positions in "
2102 + (string) (llGetTimeOfDay() - Start) + " seconds.");
2103 checkSitters(FALSE);
2104 if (NULL_KEY != BossKey) sendPrim(BossKey, "REZ_DONE", []);
2105 } 2155 }
2106 addEvent(6.0 + llFrand(10.0), "SMILE"); 2156 addEvent(6.0 + llFrand(10.0), "SMILE");
2107} 2157}