Jump to content

Tomkinson

Resident
  • Posts

    14
  • Joined

  • Last visited

Reputation

0 Neutral

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. Can the island be frozen for a while so I could come back to it or does everything on it become lost? I ask because I've spent a few years working on a project for a company but now the land isn't going to be used for a while and we need to halt the payments. I've been asked if we can have the possibility to revisit the project in the future or whether it all gets lost.
  2. The touch event was just me feeding back to myself that 'lecture' had been set to the correct value. The sleep part is so that the 'light' that it is to become stays on for a minute. :-)
  3. Brilliant, fixed. The time was being shouted with 6 decimal places on the end of it and I wasn't listening for the decimal places. So it differentiated between 60300.000000 and 60300 for instance. Easy fix. Can't believe I missed it. :matte-motes-smile:
  4. Yes that is exactly it. Well it should only sleep if the cube manages to turn red, which it never does. I can't for the life of me work out why though.
  5. I am having some trouble with my code. On my island is a clock that tells the time in GMT, it also uses llRegionSay to broadcast the raw seconds since midnight. I've got a box that listens for the time and at a certain trigger time turns from black to red. I want to be able to set that trigger without having to go into the script to change it so I am trying to get it to listen to another channel to set that time. For some reason though it's not working and I can't work out why. It seems to store the number I say to it on channel 3 and will set itself to black when I try and change the colour. When the number comes up that it's waiting for though it does nothing. Can anyone help? string lecture; default { state_entry() { llSay(0, "Hello, Avatar!"); llListen(2, "", "", ""); llListen(3, "", "", ""); lecture = "1"; } touch_start(integer total_number) { llSay(0, lecture); } listen(integer channel, string name, key id, string message) { if(channel == 2) { if(message == lecture) { llSetColor(<1.0, 0.0, 0.0>, ALL_SIDES); llSleep(60.0); } else { llSetColor(<0.0, 0.0, 0.0>, ALL_SIDES); } } if(channel == 3) { lecture = message; } else { } } }
  6. Ha, of course. That makes perfect sense, thanks!
  7. I have written a script that I assumed would delete all the textures out of an objects inventory after you release the mouse button following a 2 second click (does that make sense? :-p ) but it doesn't behave the way I hoped it would. Instead of deleting each texture it errors on every other one, ultimatly failing to delete half the textures. Can someone give me a hand? Or know what is going wrong? integer ignore = FALSE; float touch_hold_delay = 2.0; integer touch_held = FALSE; integer n = 0; default { state_entry() { llSay(0, "Hello, Avatar!"); } touch_start(integer total_number) { llSetTimerEvent(touch_hold_delay); n = llGetInventoryNumber(INVENTORY_TEXTURE); } touch_end(integer total_number) { llSetTimerEvent(0.0); ignore = FALSE; if (touch_held == TRUE) { integer i = 0; while(i < n) { llRemoveInventory(llGetInventoryName(INVENTORY_TEXTURE, i)); ++i; llSleep(1); } } } timer() { llSay(0,"Release to delete slides."); touch_held = TRUE; ignore = TRUE; llSetTimerEvent(0.0); } }
  8. I know the title of this is a little long, but I was just trying to explain my question... During my travels I saw a presentation screen with an object next to it saying "Drop your slides here", I assume that means you can drop your slides onto the object like you were texturing that face and it would put the slides into the screen? Is this possible? I ask because I have a presentation area that has four screens that display the same slides (I have my reasons :matte-motes-big-grin: ) and the ability to drop the slides into a single object and have them copied to all the screens would be massivly helpful. I assume it's done with scripting hence it being here, can anyone help?
  9. Right, I get it. So if a user is only a member of a single group they are automatically wearing that tag? Last question (hopefully), if I uncheck 'Allow Public Access' on the Region panel but check it in the individual Parcel panel then that locks the island down for only the groups and members on the Region panel access lists but they would be able to freely wander the 'Public' parcels on my island. But the parcels would still be locked to the general public because of the setting in the region panel. Is this right??
  10. Ok, this sounds promising. I've only been working with Second life for about 3 months, what do you mean by 'wearing your group tag'?
  11. So even if a person is a member of a group that is on my access list for the entire Region/Estate, I still have to add them individually to the parcels that are in the region? What is the point in the access lists for the Region then?
  12. I have a question about granting access. I have a private Island that is sub-divided into a few parcels so that different videos can be shown on the different screens. My issue is being able to grant people access to these parcels. Is it just a case of opening up the 'About Land' section on each parcel and adding names or is there a way I can add access to them all in one go? I will (theoretically) be managing several hundred users so was hoping I could grant access based on groups. Is that possible? So far I have been having to go into the Regions window and add group access there, then go into the 'About Land' window and also add access there on a individual basis...there must be a better way that I am missing...
  13. Ha, yes I did have a little look to see how to post the script properly but I couldn't work it out. :-p Thank you so much! That has worked a treat.
  14. I have a script for an automatic rotating door that I am using on my island. When something says "open" on channel 200 it opens. I've implimented this buy having some invisible pads on either side of the door that say "open" when you walk over them. However, when the door is already open and you stumble accross a pad it closes the door. This is fine for just one person going through the door but I am expecting a lot of traffic through the door once the island is live. I can't for the life of me work out how to stop the door from closing when it hears the the command, I'd like it to reset it's timer so that the next people could walk through without the door trapping them inside. Can anyone help? Here is the code... // Smooth Door Script - Version 1.2 // by Toy Wylie // Distributed under the following licence: // - You can use it in your own works // - You can sell it with your work // - This script must remain full permissions // - This header notice must remain intact // - You may modify this script as needed float openingTime=0.5; // in seconds float openingAngle=90.0; // in degrees float autocloseTime=5.0; // in seconds integer steps=4; // number of internal rotation steps integer world=TRUE; // align to world or root prim rotation string soundOpen="door_open"; string soundClose="door_close"; float omega=0.0; vector axis; rotation closedRot; rotation openRot; integer swinging; integer open; sound(string name) { if(llGetInventoryType(name)==INVENTORY_SOUND) llTriggerSound(name,1.0); } openDoor(integer yes) { if(yes) sound(soundOpen); vector useAxis=axis; open=yes; if(!yes) useAxis=-axis; llSetTimerEvent(openingTime/(float) steps); llTargetOmega(useAxis,omega,1.0); } go() { if(swinging==0) { if(!open) { axis=<0.0,0.0,1.0>/llGetRootRotation(); closedRot=llGetLocalRot(); if(world) openRot=llGetRot()*llEuler2Rot(<0.0,0.0,openingAngle>*DEG_TO_RAD)/llGetRootRotation(); else openRot=closedRot*llEuler2Rot(<0.0,0.0,openingAngle>*DEG_TO_RAD); } swinging=steps; openDoor(!open); } } rotation slerp(rotation source,rotation target,float amount) { return llAxisAngle2Rot(llRot2Axis(target/=source),amount*llRot2Angle(target))*source; } default { state_entry() { swinging=0; open=FALSE; omega=TWO_PI/360*openingAngle/openingTime; llTargetOmega(ZERO_VECTOR,1.0,1.0); llListen(200,"","",""); } touch_start(integer dummy) { go(); } collision_start(integer dummy) { go(); } listen(integer channel, string name, key id, string message) { if(message =="open") { go(); } else { } } timer() { if(swinging>0) { swinging--; if(swinging!=0) { float amount=(float) swinging/(float) steps; if(open) amount=1.0-amount; llSetLinkPrimitiveParamsFast(LINK_THIS,[PRIM_ROT_LOCAL,slerp(closedRot,openRot,amount)]); return; } llTargetOmega(axis,0.0,0.0); if(open) { llSetLinkPrimitiveParamsFast(LINK_THIS,[PRIM_ROT_LOCAL,openRot]); llSetTimerEvent(autocloseTime); } else { llSetLinkPrimitiveParamsFast(LINK_THIS,[PRIM_ROT_LOCAL,closedRot]); sound(soundClose); llSetTimerEvent(0.0); } } else // autoclose time reached { llSetTimerEvent(0.0); openDoor(!open); swinging=steps; } } } Thanks in advance.
×
×
  • Create New...