Jump to content

Bolkral Steerpike

Resident
  • Posts

    8
  • Joined

  • Last visited

Posts posted by Bolkral Steerpike

  1. So I have 2 final questions to you super helpful people :)

     

    1) On land owned by a land group, is it possible to script a door to respond to a specific group other than the one its rezzed under? In this instance its shared land rented under a land group which paying members are part of, and all objects must be rezzed under this group or they get auto returned, but I would like to door to respond to a different group using the Group Key of said group or something similar. Is this even possible, and if so, can anyone show me how?

     

    2) For pathcut doors, is it possible to set it so that when open they become phantom, but when closed revert to solid prims?

     

    Thank you so much!

  2. So I was given this wonderful foor script that has provided me with perfect assistance:

     

    // ********** SETTINGS HERE ************
    float       TIMER       = 30.0;      // automatically close the door after this many seconds,
                                        // set to 0 to disable automatic closing
    
    integer     DIRECTION   = 1;       // direction door opens in. Either 1 (outwards) or -1 (inwards);
    
    float       VOLUME      = 0.8;      // sound volume, 1.0 loudest, 0.0 to disable sound
    // ********** END OF SETTINGS **********
    
    
    key         SOUND_OPEN  = "cb340647-9680-dd5e-49c0-86edfa01b3ac";
    key         SOUND_CLOSE = "e7ff1054-003d-d134-66be-207573f2b535";
    
    vector      gPos;      // door position (objects move a tiny amount
                            // away from their position each time they are rotated,
                            // thus we need to workaround this by resetting
                            // the position after rotating)
                            
    door(integer open) {
        if (open) {
            llTriggerSound(SOUND_OPEN, VOLUME);
            llSetRot(llEuler2Rot(<0, 0, -DIRECTION * PI_BY_TWO>) * llGetRot());
        } else { // close
            llSetRot(llEuler2Rot(<0, 0, DIRECTION * PI_BY_TWO>) * llGetRot());
            llTriggerSound(SOUND_CLOSE, VOLUME);
        }
    }
            
    
    default {   // first time startup
        state_entry() {
            if (llGetTexture(0) == "") {
                llSetPos(llGetPos() + <0, 0, 3.325 / 2 - 0.25>);
            }
            gPos = llGetPos();  // remember where we're supposed to be
            door(TRUE);
            state closed;
        }
    }
        
    state closed {  // door is closed
        on_rez(integer start_param) {
            gPos = llGetPos();
        }
    
        state_entry() {
            door(FALSE);
        }
    
        touch_start(integer total_number) {
            state open;
        }
    
        moving_end() {  // done moving me around, store new position
            gPos = llGetPos();
        }
    }
    
    state open {    // door is open
        on_rez(integer start_param) {
            gPos = llGetPos();
            state closed;
        }
    
        state_entry() {
            llSetTimerEvent(TIMER);
            llSetPos(gPos); // rotation drift workaround
            door(TRUE);
        }
        
        touch_start(integer num) {
            state closed;
        }
        
        timer() { // auto-close
            state closed;
        }
        
        moving_start() { // close when being moved
            state closed;
        }
        
        state_exit() {
            llSetTimerEvent(0);
        }
    }

     But there is a section of the code that I believe is useless, please someone correct me if I'm wrong, but I don't see the purpose of the llGetTexture:

     

    default {   // first time startup
        state_entry() {
            if (llGetTexture(0) == "") {
                llSetPos(llGetPos() + <0, 0, 3.325 / 2 - 0.25>);

     Can anyone show me how to fix that and get rid of the llGetTexture? I've been struggling as I'm an uber newb at this.

     

     

    The other thing I was wondering if anyone could help me with, is if anyone could show me (using the script above) how to add a section to determine that access is group only. Since every time I try I seem to screw something up =/

     

    Thanks in advance!

     

     

  3. I’ve been searching around everywhere so if there’s another thread on this somewhere, I apologize. :(

     

    I’m looking for a script for a double door which consists of 2 separate prims (both have a root prim to rotate on the correct axis). I have the scripts to make any single door open, but my goal is that when one of the doors is clicked, both will open in unison. Of course the real trick is getting this, while also ensuring that the opening/closing of the door is smooth as this is for a build I’m working on.

     

    The only three things that I need in this script:

    • Click to open/close
    • Timer to automatically close after a defined period of time
    • Smooth opening/closing

     

    Thanks to all those who help!

  4. Thanks so much for the help! I really appreciate it. Though I do have a question!

     

    If on touch I wanted it to say <sim name> <player name> rolled a <dice number>, how would I modify the script?

     

    Would it just be:

     

    default{  state_entry() {}  touch_start(integer num)  {     string player = llGetDisplayName(llDetectedKey(0));     integer roll = (integer)(llFrand(100.0)+1);     llSay(0, "sim name" + player + " rolled a " + (string)roll);  }}
  5. I've seen some other assistance here before, but to ensure I properly understand, I thought I would ask again. I am trying to create a relatively simple dice script that will use modifiers, and roll a 100-sided dice randomly.

    All the script really needs to do is to randomly generate the number, so long as it won't also generate a 0 - as a 0 wouldn't make sense for the games in which the dice would be used, and say whom rolled it in local chat. (eg. "<player name> has rolled a 54.")

     

    Can anyone help? Thanks a lots :)

×
×
  • Create New...