diff options
Diffstat (limited to '')
-rw-r--r-- | .1ring.settings.txt | 3 | ||||
-rw-r--r-- | .1ring.theme.txt | 12 | ||||
-rw-r--r-- | 1ring.lsl | 86 | ||||
-rw-r--r-- | ~1ring.command.data.txt | 15 | ||||
-rw-r--r-- | ~1ring.setting.data.txt | 10 |
5 files changed, 122 insertions, 4 deletions
diff --git a/.1ring.settings.txt b/.1ring.settings.txt index 4b7cc73..57df3e4 100644 --- a/.1ring.settings.txt +++ b/.1ring.settings.txt | |||
@@ -1 +1,4 @@ | |||
1 | HIDE=0 | 1 | HIDE=0 |
2 | LEASH=leash_chain | ||
3 | LEASH_SIZE=<0.100000, 0.100000, 0.100000> | ||
4 | LEASH_RANGE=4.000000 | ||
diff --git a/.1ring.theme.txt b/.1ring.theme.txt index 834a32d..c7ef112 100644 --- a/.1ring.theme.txt +++ b/.1ring.theme.txt | |||
@@ -42,8 +42,16 @@ TOMENU Leash | CHOOSE_ALL | |||
42 | BUTTON Unleash | RELEASE | 42 | BUTTON Unleash | RELEASE |
43 | TOGGLE Locate | 43 | TOGGLE Locate |
44 | BUTTON Yank | 44 | BUTTON Yank |
45 | TOMENU Length | 45 | TOMENU length |
46 | TOMENU Texture | 46 | TOMENU size |
47 | TOMENU texture | CHOOSE_ALL texture | ||
48 | MENU size | leash size menu: | PRIV | ||
49 | BUTTON △ bigger | LEASH_BIGGER | ||
50 | BUTTON ▽ smaller | LEASH_SMALLER | ||
51 | |||
52 | MENU length | leash length menu: | PRIV | ||
53 | BUTTON △ longer | LEASH_LONGER | ||
54 | BUTTON ▽ shorter | LEASH_SHORTER | ||
47 | 55 | ||
48 | MENU other | other things that don't fit anywhere else: | PRIV | 56 | MENU other | other things that don't fit anywhere else: | PRIV |
49 | TOMENU channel | 57 | TOMENU channel |
@@ -470,6 +470,31 @@ llShout(0, "AAAHHHHH!"); | |||
470 | s = [ACTIVE | AGENT | PASSIVE, "Select something or someone to leash to", "LEASH"]; | 470 | s = [ACTIVE | AGENT | PASSIVE, "Select something or someone to leash to", "LEASH"]; |
471 | else if ("Sit…" == button) // This will only be for objects, can't sit on an avatar. | 471 | else if ("Sit…" == button) // This will only be for objects, can't sit on an avatar. |
472 | s = [ACTIVE | PASSIVE, "Select something to sit on", "SIT"]; | 472 | s = [ACTIVE | PASSIVE, "Select something to sit on", "SIT"]; |
473 | else if ("texture" == data) | ||
474 | { | ||
475 | integer i = llGetInventoryNumber(INVENTORY_TEXTURE); | ||
476 | integer j = 0; | ||
477 | string opts = ""; | ||
478 | string cmds = ""; | ||
479 | while (i-- > 0) | ||
480 | { | ||
481 | string t = llGetInventoryName(INVENTORY_TEXTURE, i); | ||
482 | if ("leash_" == llGetSubString(t, 0, 5)) | ||
483 | { | ||
484 | string n = llGetSubString(t, 6, -1); | ||
485 | opts += n + "|"; | ||
486 | cmds += "LEASH_TEXTURE " + t + "|"; | ||
487 | j++; | ||
488 | } | ||
489 | } | ||
490 | if (j) | ||
491 | { | ||
492 | dynamicMenu(id, "", "", "Choose a leash texture: ", | ||
493 | llGetSubString(opts, 0, -2), llGetSubString(cmds, 0, -2), 2); | ||
494 | return FALSE; | ||
495 | } | ||
496 | return (source == fMENU); | ||
497 | } | ||
473 | else | 498 | else |
474 | { | 499 | { |
475 | D("Unknown CHOOSE_ALL option - " + button); | 500 | D("Unknown CHOOSE_ALL option - " + button); |
@@ -520,6 +545,64 @@ s("YAY! Freeeeeee at last!!!!!"); | |||
520 | leashTo(Stalkee); | 545 | leashTo(Stalkee); |
521 | } | 546 | } |
522 | } | 547 | } |
548 | else if ("LEASH_BIGGER" == cmd) | ||
549 | { | ||
550 | vector sz = (vector) getSetting("leash_size"); | ||
551 | |||
552 | sz.x += 0.1; | ||
553 | sz.y += 0.1; | ||
554 | setSetting(id, "leash_size", (string) sz, source); | ||
555 | if (MODE_LEASH == mode) | ||
556 | { | ||
557 | unleash(); | ||
558 | leashTo(Stalkee); | ||
559 | } | ||
560 | } | ||
561 | else if ("LEASH_SMALLER" == cmd) | ||
562 | { | ||
563 | vector sz = (vector) getSetting("leash_size"); | ||
564 | |||
565 | if (0.1 < sz.x) sz.x -= 0.1; | ||
566 | if (0.1 < sz.y) sz.y -= 0.1; | ||
567 | setSetting(id, "leash_size", (string) sz, source); | ||
568 | if (MODE_LEASH == mode) | ||
569 | { | ||
570 | unleash(); | ||
571 | leashTo(Stalkee); | ||
572 | } | ||
573 | } | ||
574 | else if ("LEASH_LONGER" == cmd) | ||
575 | { | ||
576 | RANGE += 2.0; | ||
577 | setSetting(id, "leash_range", (string) RANGE, source); | ||
578 | if (MODE_LEASH == mode) | ||
579 | { | ||
580 | unleash(); | ||
581 | leashTo(Stalkee); | ||
582 | } | ||
583 | s("The leash range is now " + (string) RANGE + " meters."); | ||
584 | } | ||
585 | else if ("LEASH_SHORTER" == cmd) | ||
586 | { | ||
587 | if (2.0 < RANGE) | ||
588 | RANGE -= 2.0; | ||
589 | setSetting(id, "leash_range", (string) RANGE, source); | ||
590 | if (MODE_LEASH == mode) | ||
591 | { | ||
592 | unleash(); | ||
593 | leashTo(Stalkee); | ||
594 | } | ||
595 | s("The leash range is now " + (string) RANGE + " meters."); | ||
596 | } | ||
597 | else if ("LEASH_TEXTURE" == cmd) | ||
598 | { | ||
599 | setSetting(id, "leash", data, source); | ||
600 | if (MODE_LEASH == mode) | ||
601 | { | ||
602 | unleash(); | ||
603 | leashTo(Stalkee); | ||
604 | } | ||
605 | } | ||
523 | else if ("RELEASE" == cmd) | 606 | else if ("RELEASE" == cmd) |
524 | { | 607 | { |
525 | someBoss = id; | 608 | someBoss = id; |
@@ -717,7 +800,7 @@ leashTo(key id) | |||
717 | [ | 800 | [ |
718 | PSYS_PART_FLAGS, PSYS_PART_FOLLOW_VELOCITY_MASK | PSYS_PART_TARGET_POS_MASK | PSYS_PART_EMISSIVE_MASK | PSYS_PART_FOLLOW_SRC_MASK, | 801 | PSYS_PART_FLAGS, PSYS_PART_FOLLOW_VELOCITY_MASK | PSYS_PART_TARGET_POS_MASK | PSYS_PART_EMISSIVE_MASK | PSYS_PART_FOLLOW_SRC_MASK, |
719 | PSYS_SRC_PATTERN, PSYS_SRC_PATTERN_DROP, | 802 | PSYS_SRC_PATTERN, PSYS_SRC_PATTERN_DROP, |
720 | PSYS_PART_START_SCALE, <0.3, 0.3, 0.1>, | 803 | PSYS_PART_START_SCALE, (vector) getSetting("leash_size"), |
721 | PSYS_SRC_ACCEL, <0,0,-0.4>, | 804 | PSYS_SRC_ACCEL, <0,0,-0.4>, |
722 | PSYS_PART_MAX_AGE, age, | 805 | PSYS_PART_MAX_AGE, age, |
723 | PSYS_SRC_BURST_RADIUS, 0.1, | 806 | PSYS_SRC_BURST_RADIUS, 0.1, |
@@ -817,6 +900,7 @@ goto(key this) | |||
817 | if (NULL_KEY == this) | 900 | if (NULL_KEY == this) |
818 | return; | 901 | return; |
819 | 902 | ||
903 | RANGE = (float) getSetting("leash_range"); | ||
820 | float dist = 0.0; | 904 | float dist = 0.0; |
821 | vector pos = getRange(this); | 905 | vector pos = getRange(this); |
822 | 906 | ||
diff --git a/~1ring.command.data.txt b/~1ring.command.data.txt index 9a84f73..ffd190e 100644 --- a/~1ring.command.data.txt +++ b/~1ring.command.data.txt | |||
@@ -34,6 +34,21 @@ ho | |||
34 | 1ring.GRAB | 34 | 1ring.GRAB |
35 | 35 | ||
36 | 9 | 36 | 9 |
37 | 1ring.LEASH_BIGGER | ||
38 | |||
39 | 9 | ||
40 | 1ring.LEASH_SMALLER | ||
41 | |||
42 | 9 | ||
43 | 1ring.LEASH_LONGER | ||
44 | |||
45 | 9 | ||
46 | 1ring.LEASH_SHORTER | ||
47 | |||
48 | 9 | ||
49 | 1ring.LEASH_TEXTURE | ||
50 | |||
51 | 9 | ||
37 | 1ring.LEASH | 52 | 1ring.LEASH |
38 | ho | 53 | ho |
39 | 9 | 54 | 9 |
diff --git a/~1ring.setting.data.txt b/~1ring.setting.data.txt index db010f4..38e4252 100644 --- a/~1ring.setting.data.txt +++ b/~1ring.setting.data.txt | |||
@@ -16,7 +16,7 @@ I | |||
16 | 9 | 16 | 9 |
17 | 1ring.PREFIX | 17 | 1ring.PREFIX |
18 | S | 18 | S |
19 | 1r | 19 | |
20 | 9 | 20 | 9 |
21 | 1ring.GROUP | 21 | 1ring.GROUP |
22 | Y | 22 | Y |
@@ -30,6 +30,14 @@ Y | |||
30 | S | 30 | S |
31 | leash_chain | 31 | leash_chain |
32 | 9 | 32 | 9 |
33 | 1ring.LEASH_SIZE | ||
34 | S | ||
35 | <0.1, 0.1, 0.1> | ||
36 | 9 | ||
37 | 1ring.LEASH_RANGE | ||
38 | I | ||
39 | 4 | ||
40 | 9 | ||
33 | 1ring.HIDE | 41 | 1ring.HIDE |
34 | Y | 42 | Y |
35 | 0 | 43 | 0 |