diff options
Diffstat (limited to '')
-rw-r--r-- | 1ring.lsl | 86 |
1 files changed, 85 insertions, 1 deletions
@@ -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 | ||