diff options
author | onefang | 2021-09-06 22:19:32 +1000 |
---|---|---|
committer | onefang | 2021-09-06 22:19:32 +1000 |
commit | 355ffb68730c79b4d0bcffe638d9a7b3cc91f1f7 (patch) | |
tree | 2f77e13d05c7fa702a8a65bd22f5bb218612af42 | |
parent | More emotes! Also, last commit included the single poses code. (diff) | |
download | 1ring-355ffb68730c79b4d0bcffe638d9a7b3cc91f1f7.zip 1ring-355ffb68730c79b4d0bcffe638d9a7b3cc91f1f7.tar.gz 1ring-355ffb68730c79b4d0bcffe638d9a7b3cc91f1f7.tar.bz2 1ring-355ffb68730c79b4d0bcffe638d9a7b3cc91f1f7.tar.xz |
Clean up various vehicle bugs.
Diffstat (limited to '')
-rw-r--r-- | 1AOor2.lsl | 82 |
1 files changed, 66 insertions, 16 deletions
@@ -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 | { |
575 | d("SIT_DONE for " + llKey2Name(data)); | 575 | d("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 | ||
766 | killPrim() | 802 | killPrim() |
767 | { | 803 | { |
768 | d("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 | ||
1640 | checkSitters(integer del) | 1676 | checkSitters(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 | ||
2071 | laterInit() | 2112 | laterInit() |
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 | } |