Jump to content

AnthonyMann

Resident
  • Content Count

    53
  • Joined

  • Last visited

Community Reputation

3 Neutral

About AnthonyMann

  • Rank
    Advanced Member

Recent Profile Visitors

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

  1. Sorry for the long explanation, but it's necessary. I have a homestead sim divided into two unequal parcels. Both Parcels are owned by Group A. Parcel H supports 129 prims but has 900 on it. Parcel B supports 3402 and has about 2100 prims on it. There is a Group B that I want to have banning powers on Parcel B, but it doesn't work now, I think because of the group ownership to Group A. Because of the unequal prim allocation, I think both parcels need to be owned by the same group. I know that if I merely change Parcel B to Group B, I will lose or get prims returned from the Parcel H. So, how do I make the eject powers for Group B work on Parcel B? 1. Could I deed both parcels to Group B and fix my group power problem? If so, how do I do that without having 700 prims returned from Parcel H during the process? 2. Is there another way to have Group A own Parcel H and Group B own Parcel B and still 'share' the prims between the two parcels? This would be the best if there is any way to do it. 3. What if I personally owned the two parcels. Would there be a way to have Group A eject powers on Parcel H, and Group B powers on Parcel B? Sorry for the long post, and thanks for any guidance or suggestions for a problem fix.
  2. Trying to debug it now. When I compiled it it gave me a syntax error that I can't figure out. The position given in the syntax error is right before the word "timer". Do I need to set a counter or something? Or is it a bracket thing? llPlaySound("8f438543-a18a-236f-9e97-629f18d852c7", 0.7); llSetTimerEvent(10.0); //This stuff makes sure it works well as part of a linkset too vector axis=<0.0,0.0,1.0>; axis=axis*llGetLocalRot(); rotation test=llAxisAngle2Rot(axis, 1.570796); llSetLocalRot(llGetLocalRot() / test); } timer() { llPlaySound("cf33a3f9-6b15-351d-af15-b71e1b0e36bb", 0.7); //This stuff makes sure it works well as part of a linkset too vector axis=<0.0,0.0,1.0>; axis=axis*llGetLocalRot(); rotation test=llAxisAngle2Rot(axis, 1.570796); llSetLocalRot(llGetLocalRot() * test); open = FALSE; // To make sure that the door opens properly next time llSetTimerEvent(0.0); // To shut off the timer so it doesn't try to close the door again. }
  3. How does this look? I think this should start the timer event and close the door after 10 seconds, the reset the timer and closed state, and the the old part at the end would close the door if it was clicked before the 10 seconds expires. Would it be better to just delete the old closing event? else { open=!open; if (open) { llPlaySound("8f438543-a18a-236f-9e97-629f18d852c7", 0.7); llSetTimerEvent(10.0) //This stuff makes sure it works well as part of a linkset too vector axis=<0.0,0.0,1.0>; axis=axis*llGetLocalRot(); rotation test=llAxisAngle2Rot(axis, 1.570796); llSetLocalRot(llGetLocalRot() / test); } timer() { llPlaySound("cf33a3f9-6b15-351d-af15-b71e1b0e36bb", 0.7); //This stuff makes sure it works well as part of a linkset too vector axis=<0.0,0.0,1.0>; axis=axis*llGetLocalRot(); rotation test=llAxisAngle2Rot(axis, 1.570796); llSetLocalRot(llGetLocalRot() * test); open = FALSE; // To make sure that the door opens properly next time llSetTimerEvent(0.0); // To shut off the timer so it doesn't try to close the door again. } else { llPlaySound("cf33a3f9-6b15-351d-af15-b71e1b0e36bb", 0.7); //This stuff makes sure it works well as part of a linkset too vector axis=<0.0,0.0,1.0>; axis=axis*llGetLocalRot(); rotation test=llAxisAngle2Rot(axis, 1.570796); llSetLocalRot(llGetLocalRot() * test); } } It is lined up in Word, sort of sloppy here. I hope you can read it okay. Thanks for all your help, I know it can be tiresome to coax someone through things like this.
  4. Thank you for answering. I've studied your answer and I think I understand what you mean, but the execution is still way above my skill level. I think this is the opening event and the timer command goes in here..... open=!open; if (open) { llPlaySound("8f438543-a18a-236f-9e97-629f18d852c7" , 0.7); //This stuff makes sure it works well as part of a linkset too vector axis=<0.0,0.0,1.0>; axis=axis*llGetLocalRot(); rotation test=llAxisAngle2Rot(axis, 1.570796); llSetLocalRot(llGetLocalRot() / test); } and then the next group, after the 'else' , is the closing event. Not sure where to put the closeing/reset statements... Could you dumb it down for me a little? Thanks for your help!
  5. I have a door system that came with my rental box system. It works just fine, with the exception that everyone leaves their doors open because there is no automatic closing timer event. The script, because it integrates the rental system and such is too complex for my very basic scripting level. What and most importantly where-- would I have to insert to make the doors close after about 10 seconds and not screw up the functionality of the rental tie-in? Here is the script-- string owner=""; integer rented = 0; integer open=FALSE; integer waitingforping = FALSE; key candidate = ""; key listeningunit = NULL_KEY; list additionaltenants=[]; default { state_entry() { llListen(77777, "", "", ""); } listen(integer channel, string name, key id, string message) { if (llGetOwnerKey(id)==llGetOwner() && id != llGetOwner()) { list tmp = llParseString2List(message,["|"],[]); list tmp2 = llParseString2List(message,["@"],[]); if (llList2String(tmp2,0)=="ADDTNTS") { if (id == listeningunit) { tmp2 = llParseString2List(llList2String(tmp2,1),["#"],[]); additionaltenants=[]; integer x; for(x=0; x<llGetListLength(tmp2); x=x+2) { additionaltenants+=[llList2Key(tmp2, x)]; } } } if (llList2String(tmp,0)=="REXTR") { if (waitingforping) { waitingforping = FALSE; candidate = id; llParticleSystem([7, 6.0, 1, <1,1,1>, 3, <0,0,1>, 2, 1.0, 4, 0.5, 5, <0.07, 0.07, 0.1>, 6, <0.1,0.1,0.1>, 13, 0.01, 15, 2, 16, 0.1, 17, 3.0, 18, 3.0, 8, <0,0,-0.4>, 22, 0.0, 23, PI, 21, <0,0,1>, 19, 0.0, 0, PSYS_PART_EMISSIVE_MASK | PSYS_PART_FOLLOW_SRC_MASK | PSYS_PART_FOLLOW_VELOCITY_MASK | PSYS_PART_TARGET_POS_MASK | PSYS_PART_TARGET_LINEAR_MASK, 9, PSYS_SRC_PATTERN_DROP, 20, id, 12, "chain"]); llDialog(llGetOwner(),"Please watch the particles emitting from the door. Are they going to the correct unit?",["YES","NO"],77777); } else if (id == listeningunit) { key user = llList2Key(tmp,2); if (user != NULL_KEY) { owner = user; rented = 1; } else { additionaltenants=[]; owner = llGetOwner(); rented = 0; } } } } else if (id == llGetOwner() && candidate != "") { llParticleSystem([]); if (message == "YES") { owner = llGetOwner(); llRegionSay(-77777, "CLAPI"+(string)candidate+"-Reset|"+(string)owner+"|0"); listeningunit = candidate; } candidate = ""; } } on_rez(integer j) { llResetScript(); } touch_start(integer j) { for(j--; j>-1; j--) { if (llDetectedKey(j)==llGetOwner() && owner == "") { waitingforping = TRUE; llDialog(llGetOwner(), "Please touch the rental unit that you want to link to this door.",["OK"],-1); } else { integer found = llListFindList(additionaltenants,[llDetectedKey(j)]); if (llDetectedKey(j)!=owner && llDetectedKey(j) != llGetOwner() && found==-1 && rented) { llPlaySound("f6ffb2dc-b880-ef60-e958-541d1493f813", 1.0); llInstantMessage(llDetectedKey(j),"You have no permission to use this door."); } else { open=!open; if (open) { llPlaySound("8f438543-a18a-236f-9e97-629f18d852c7", 0.7); //This stuff makes sure it works well as part of a linkset too vector axis=<0.0,0.0,1.0>; axis=axis*llGetLocalRot(); rotation test=llAxisAngle2Rot(axis, 1.570796); llSetLocalRot(llGetLocalRot() / test); } else { llPlaySound("cf33a3f9-6b15-351d-af15-b71e1b0e36bb", 0.7); //This stuff makes sure it works well as part of a linkset too vector axis=<0.0,0.0,1.0>; axis=axis*llGetLocalRot(); rotation test=llAxisAngle2Rot(axis, 1.570796); llSetLocalRot(llGetLocalRot() * test); } } } } } } string owner=""; integer rented = 0; integer open=FALSE; integer waitingforping = FALSE; key candidate = ""; key listeningunit = NULL_KEY; list additionaltenants=[]; default { state_entry() { llListen(77777, "", "", ""); } listen(integer channel, string name, key id, string message) { if (llGetOwnerKey(id)==llGetOwner() && id != llGetOwner()) { list tmp = llParseString2List(message,["|"],[]); list tmp2 = llParseString2List(message,["@"],[]); if (llList2String(tmp2,0)=="ADDTNTS") { if (id == listeningunit) { tmp2 = llParseString2List(llList2String(tmp2,1),["#"],[]); additionaltenants=[]; integer x; for(x=0; x<llGetListLength(tmp2); x=x+2) { additionaltenants+=[llList2Key(tmp2, x)]; } } } if (llList2String(tmp,0)=="REXTR") { if (waitingforping) { waitingforping = FALSE; candidate = id; llParticleSystem([7, 6.0, 1, <1,1,1>, 3, <0,0,1>, 2, 1.0, 4, 0.5, 5, <0.07, 0.07, 0.1>, 6, <0.1,0.1,0.1>, 13, 0.01, 15, 2, 16, 0.1, 17, 3.0, 18, 3.0, 8, <0,0,-0.4>, 22, 0.0, 23, PI, 21, <0,0,1>, 19, 0.0, 0, PSYS_PART_EMISSIVE_MASK | PSYS_PART_FOLLOW_SRC_MASK | PSYS_PART_FOLLOW_VELOCITY_MASK | PSYS_PART_TARGET_POS_MASK | PSYS_PART_TARGET_LINEAR_MASK, 9, PSYS_SRC_PATTERN_DROP, 20, id, 12, "chain"]); llDialog(llGetOwner(),"Please watch the particles emitting from the door. Are they going to the correct unit?",["YES","NO"],77777); } else if (id == listeningunit) { key user = llList2Key(tmp,2); if (user != NULL_KEY) { owner = user; rented = 1; } else { additionaltenants=[]; owner = llGetOwner(); rented = 0; } } } } else if (id == llGetOwner() && candidate != "") { llParticleSystem([]); if (message == "YES") { owner = llGetOwner(); llRegionSay(-77777, "CLAPI"+(string)candidate+"-Reset|"+(string)owner+"|0"); listeningunit = candidate; } candidate = ""; } } on_rez(integer j) { llResetScript(); } touch_start(integer j) { for(j--; j>-1; j--) { if (llDetectedKey(j)==llGetOwner() && owner == "") { waitingforping = TRUE; llDialog(llGetOwner(), "Please touch the rental unit that you want to link to this door.",["OK"],-1); } else { integer found = llListFindList(additionaltenants,[llDetectedKey(j)]); if (llDetectedKey(j)!=owner && llDetectedKey(j) != llGetOwner() && found==-1 && rented) { llPlaySound("f6ffb2dc-b880-ef60-e958-541d1493f813", 1.0); llInstantMessage(llDetectedKey(j),"You have no permission to use this door."); } else { open=!open; if (open) { llPlaySound("8f438543-a18a-236f-9e97-629f18d852c7", 0.7); //This stuff makes sure it works well as part of a linkset too vector axis=<0.0,0.0,1.0>; axis=axis*llGetLocalRot(); rotation test=llAxisAngle2Rot(axis, 1.570796); llSetLocalRot(llGetLocalRot() / test); } else { llPlaySound("cf33a3f9-6b15-351d-af15-b71e1b0e36bb", 0.7); //This stuff makes sure it works well as part of a linkset too vector axis=<0.0,0.0,1.0>; axis=axis*llGetLocalRot(); rotation test=llAxisAngle2Rot(axis, 1.570796); llSetLocalRot(llGetLocalRot() * test); } } } } } }
  6. Okay, trying to work with MLVP2. I'm following the wiki tutorial and all that. I'm editing the positions of the animations, and two of them are about 20 m higher that what I set them at, but the first one worked okay. This is the positions after a dump. [04:50] {Chill} <1.312,-3.756,0.417> <1.2,0.8,20.0> [04:50] {Knee up} <159.151,113.583,1196.782> <0.0,0.0,-180.0> [04:50] {Leaning} <159.151,113.591,1197.078> <0.0,0.0,177.9>" The knee up and leaning are very different from the Chill....the chill is the one that is more or less working. Also, anyone have any better instructions on offsetting the height? When adjusted corectly, the poseball is IN the seat or under the water of the tub I'm working on......which way/how do I adjust the ball higher ? Thanks!
  7. Most shoes for women consist of a prim for the foot,(this is the shoe) and a 'shaper' or 'alpha' that covers up or reshapes the avitar foot to the same angle as the shoe. Take a look inside your shoes folder and see if there is something else you should be wearing to shape your foot correctly.
  8. I have a nice ski lodge/ tavern/ inn on Marketplace that could be modified into a gaming hall. I get the idea you are building in a skybox though, but it's still workable. Take a look at Hooligan Creations on Marketplace to see my stuff.
  9. I was hoping the water wouldn't rez at all for three seconds, and that would solve the 'left behind' water as well as getting the water into the tub without my customer having to do it. But the llRegionSay is a great idea and I will definately use it anyway.
  10. Could I put the timer event at the beginning of the entire script, so that no water was killed or rezzed for 3 seconds? I think if the tub moved into it's position and did nothing for 3 seconds it would fix my problem.
  11. Actually, it would be great if the tub rezzed empty and only rezzed the water after the tub was 'put into use' , long after the build was moved/ set/ and rezzer scripts removed.
  12. Also, if you 'edit' the backpack and go to the 'contents' tab, you could literally put your other objects inside the back pack, so even if you aren't wearing it or even have it rezzed, it would contain the other objects until you re-rezzed it.
  13. if the new prim is farther than about 30m from the root prim of your link set, you'll get that error, even if it's under 256 prims. I usually build in 'sets' and lable them "North 1st Floor, south 1st Floor, North 2nd Floor" etc. Then, as a temporary save, you can hit Ctrl3, box all of them to get everything selected, and then 'take copy' of the whole build (even though it is two or three or five linksets). Find it in your inventory (I use the 'recent' feature) and then rename it so you can find it again. After you complete this really big build, use a rezzer like Casper's Rezz-free or something similar to pack it all away into one prim for resale or just to keep it easy on yourself for re-rezzing and moving/adjusting the entire build.
  14. I just made a really nice build that includes two hot tubs. The hot tub scripts are on two different channels. It was all packed up into a Casper Rezz-Free box. The entire build rezzes properly, with each peice rezzing over the rezz-free box and then moving into position. The problem is that the water from the hot tubs stays over the box and doesn't move to the hot tubs. The water prim itself is inside the hot tub, and rezzes when the tub rezzes (but then the water stays behind when the tub moves into it's position in the build). The question...in the hot tub script is Init_Water() // To Rez Water or to Reset it { llSay(WATER_CHANNEL,"WATER DIE"); // Kill any Water we have running WATER_POS = llGetPos(); // Fetch the tubs coords and calculate WATER_POS.z = WATER_POS.z + .01; // Water start position and rotation WATER_ROT = llGetRot(); // Finally, rez the water llRezObject(WATER_NAME, WATER_POS, ZERO_VECTOR, WATER_ROT, 0); } so, if I read this right, this kills any 'water' prims around, then rezzes a new one based on the tubs position. is there any way to delay this rezzing of the water until after the tub moves into position? say about 3 seconds? Thanks for any help, I'm no scripter, that's for sure :)
  15. And don't forget to check the box in "about land" to make the place 'searchable'. it costs 30 L$ but it's well worth it.
×
×
  • Create New...