Jump to content

DarkEmperor13

Resident
  • Content Count

    152
  • Joined

  • Last visited

Community Reputation

3 Neutral

About DarkEmperor13

  • Rank
    Advanced Member

Recent Profile Visitors

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

  1. Hi i'm really in need of a script that handles multi-page dialog menus with sub menus in tow. The kind u see in furniture with animations. I could really use the help
  2. I'm trying to figure out how to make a multi-page menu with sub menus. // Simple Multipage Menu -- Rolig Loon -- August 2013 // The Menu routine in this script will parse your input list (gNames) into menu pages // of 12 buttons each, including a forward button and a back button, as appropriate. // It generates a page's buttons on demand, so that the list of button labels is // never more than 12 items long. // It does NOT trim potential menu items to fit the 25-character limit (or the // 12-character display limit), nor does it sort buttons or do other fancy things // that you are free to add for yourself. list gMain = ["Adult","Cuddles"]; list gPoses1 = ["","B","C","D","E","F","G", "H","I","J","K","L","M","N","O","P","Q", "R","S","T","U","V","W","X","Y"]; list gPoses2 = ["","B","C","D","E","F","G", "H","I","J","K","L","M","N","O","P","Q", "R","S","T","U","V","W","X","Y"]; list MenuButtons; // Your list of potential menu choices integer gMenuPosition; // Index number of the first button on the current page integer gLsn; // Dialog Listen Handle key UserID; integer MenuDialogChannel; integer MenuListenHandle; Menu0() { //Show Menu with selected buttons llDialog(llGetOwner()," \n",MenuButtons,-12345); //Listen to the menu chanel which menu item the user have chosen llListenRemove(MenuListenHandle); //Assign the listen to a handle so we can kill it when the user don't respond to the menu MenuListenHandle = llListen(MenuDialogChannel, "", UserID, ""); //Set a timer for the time the user has to respond to the menu. llSetTimerEvent(30.0); } Menu1() { integer Last; integer All = llGetListLength(gPoses1); if(gMenuPosition >= 9) //This is NOT the first menu page { MenuButtons += " <----"; if((All - gMenuPosition) > 11) // This is not the last page { MenuButtons += " ---->"; } else // This IS the last page { Last = TRUE; } } else if (All > gMenuPosition+9) // This IS the first page { if((All - gMenuPosition) > 11) // There are more pages to follow { MenuButtons += " ---->"; } else // This IS the last page { Last = TRUE; } } else // This is the only menu page { Last = TRUE; } if (All > 0) { integer b; integer len = llGetListLength(MenuButtons); // This bizarre test does the important work ...... for(b = gMenuPosition + len + Last - 1 ; (len < 12)&&(b < All); ++b) { MenuButtons = MenuButtons + [llList2String(gPoses1,b)]; len = llGetListLength(MenuButtons); } } gLsn = llListen(-12345,"","",""); llSetTimerEvent(10.0); llDialog(llGetOwner()," \n",MenuButtons,-12345); } Menu2() { integer Last; integer All = llGetListLength(gPoses2); if(gMenuPosition >= 9) //This is NOT the first menu page { MenuButtons += " <----"; if((All - gMenuPosition) > 11) // This is not the last page { MenuButtons += " ---->"; } else // This IS the last page { Last = TRUE; } } else if (All > gMenuPosition+9) // This IS the first page { if((All - gMenuPosition) > 11) // There are more pages to follow { MenuButtons += " ---->"; } else // This IS the last page { Last = TRUE; } } else // This is the only menu page { Last = TRUE; } if (All > 0) { integer b; integer len = llGetListLength(MenuButtons); // This bizarre test does the important work ...... for(b = gMenuPosition + len + Last - 1 ; (len < 12)&&(b < All); ++b) { MenuButtons = MenuButtons + [llList2String(gPoses2,b)]; len = llGetListLength(MenuButtons); } } gLsn = llListen(-12345,"","",""); llSetTimerEvent(10.0); llDialog(llGetOwner()," \n",MenuButtons,-12345); } default { touch_start(integer num_detected) { llListenRemove(gLsn); gMenuPosition = 0; MenuButtons = gMain; Menu0(); } listen(integer channel, string name, key id, string msg) { llListenRemove(gLsn); llSetTimerEvent(0.0); if(~llListFindList(gMain,[msg])) { if (msg == "Adult") { MenuButtons = gPoses1; Menu1(); } else if (msg == "Cuddles") { MenuButtons = gPoses2; Menu2(); } } else { if (msg == "Back") { MenuButtons = gMain; Menu0(); return; } if(~llSubStringIndex(msg,"---->")) { gMenuPosition += 10; Menu1(); } else if (~llSubStringIndex(msg,"<----")) { gMenuPosition -= 10; Menu1(); } else { //Do whatever the selected button directs..... your choice } } } timer() { llSetTimerEvent(0.0); llListenRemove(gLsn); } } But as u can see, i'm totally stumped. Could someone give me an example using one main and one sub?
  3. ive tried to add that as well and still nothing. one would think LL would come up with a way to block out items that can be used for grieving that use the llPushObject command and allow the items that dont grief ppl
  4. but I have it on my friend's parcel and only I can jump on if I place it down. I gave a copy to my friend so she can place it down and when we tried jumping on it, this time only she could jump and I couldnt
  5. Hi I am trying to make a trampoline and I have this as my coding; default { collision_start(integer total_num) { llPushObject(llDetectedKey(0), <0,0,100>, ZERO_VECTOR, FALSE); } } However, it only works for whoever is owner of the object.
  6. Great now i'm back to question 1. // :CATEGORY:Vehicles // :NAME:Motorcycle_Script // :AUTHOR:Cory Linden // :CREATED:2010-01-10 05:20:56.000 // :EDITED:2013-09-18 15:38:57 // :ID:524 // :NUM:708 // :REV:1.0 // :WORLD:Second Life // :DESCRIPTION: // Motorcycle Script.lsl // :CODE: // example motorcycle script // // Originally written by Cory Linden. // Then modified and tweaked by Andrew Linden for the forum script library. // // Root prim should be oriented such that its local X-, Y- and Z-axes are // parallel to forward, left, and up respectively. // // Sound triggers are commented out but not removed, so if you // want sounds, just add the sounds to the cycle's contents and uncomment // the triggers. // // Be careful when changing parameters. Some of them can be very // sensitive to change, such that a change of less than 5% can have a // noticable effect. You can tell some (but not necessarily all) of the // more sensitive settings in this example by looking for the ones that // have been set to double precission. Changing only one at a time is a // good idea. // // The geometry of the motorcycle itself can have significant impact on // whether it in a straight line when not trying to turn. For best results // use asymmetric design with as wide of a base as you can tolerate. // These are globals only for convenience (so when you need to modify // them you need only make a single change). There are other magic numbers // below that have not yet been pulled into globals. float gMaxTurnSpeed = 12; float gMaxWheelieSpeed = 5; float gMaxFwdSpeed = 30; float gMaxBackSpeed = -10; float gAngularRamp = 0.17; float gLinearRamp = 0.2; // These are true globals whose values are "accumulated" over // multiple control() callbacks. float gBank = 0.0; vector gLinearMotor = <0, 0, 0>; vector gAngularMotor = <0, 0, 0>; default { state_entry() { // init stuff that never changes llSetMemoryLimit(0x4000); llSetSitText("Ride"); llCollisionSound("", 0.0); llLinkSitTarget(1,<.5,0.01,0.5>,llEuler2Rot(<0.0,0.0,0>*DEG_TO_RAD)); llLinkSitTarget(7,<.5,0.01,0.5>,llEuler2Rot(<0.0,0.0,0>*DEG_TO_RAD)); llSetCameraEyeOffset(<-6.0, 0.0, 1.0>); llSetCameraAtOffset(<3.0, 0.0, 1.0>); // create the vehicle llSetVehicleFlags(-1); llSetVehicleType(VEHICLE_TYPE_CAR); llSetVehicleFlags(VEHICLE_FLAG_LIMIT_MOTOR_UP | VEHICLE_FLAG_LIMIT_ROLL_ONLY); llSetVehicleFloatParam(VEHICLE_ANGULAR_DEFLECTION_EFFICIENCY, 0.2); llSetVehicleFloatParam(VEHICLE_LINEAR_DEFLECTION_EFFICIENCY, 0.8); llSetVehicleFloatParam(VEHICLE_ANGULAR_DEFLECTION_TIMESCALE, 0.8); llSetVehicleFloatParam(VEHICLE_LINEAR_DEFLECTION_TIMESCALE, 0.3); llSetVehicleFloatParam(VEHICLE_LINEAR_MOTOR_TIMESCALE, 0.8); llSetVehicleFloatParam(VEHICLE_LINEAR_MOTOR_DECAY_TIMESCALE, 0.4); llSetVehicleFloatParam(VEHICLE_ANGULAR_MOTOR_TIMESCALE, 0.01); llSetVehicleFloatParam(VEHICLE_ANGULAR_MOTOR_DECAY_TIMESCALE, 0.35); llSetVehicleVectorParam(VEHICLE_LINEAR_FRICTION_TIMESCALE, <1000, 100, 1000>); llSetVehicleVectorParam(VEHICLE_ANGULAR_FRICTION_TIMESCALE, <100, 10, 100>); llSetVehicleFloatParam(VEHICLE_VERTICAL_ATTRACTION_EFFICIENCY, 0.49); llSetVehicleFloatParam(VEHICLE_VERTICAL_ATTRACTION_TIMESCALE, 0.44); llSetVehicleFloatParam(VEHICLE_BANKING_EFFICIENCY, 3.0); llSetVehicleFloatParam(VEHICLE_BANKING_MIX, 0.7); llSetVehicleFloatParam(VEHICLE_BANKING_TIMESCALE, 0.01); //llSetVehicleFloatParam(VEHICLE_HOVER_HEIGHT, 2.0); //llSetVehicleFloatParam(VEHICLE_HOVER_TIMESCALE, 1.0); //llSetVehicleFloatParam(VEHICLE_HOVER_EFFICIENCY, 0.5); } changed(integer change) { if (change & CHANGED_LINK) { key agent = llAvatarOnLinkSitTarget(1); if (agent) { llMessageLinked(LINK_ALL_CHILDREN , 0, "WHEEL_DRIVING", NULL_KEY); llSleep(.4); // not the owner ==> boot off llSetStatus(STATUS_PHYSICS, FALSE); llRequestPermissions(agent, PERMISSION_TRIGGER_ANIMATION | PERMISSION_TAKE_CONTROLS); llPlaySound("Motorcycle_Start", 0.40); // reset the global accumulators gAngularMotor = <0, 0, 0>; gLinearMotor = <180, 0, 0>; gBank = 0.0; } } else { // dismount llSetStatus(STATUS_PHYSICS, FALSE); llSleep(.1); llMessageLinked(LINK_ALL_CHILDREN , 0, "WHEEL_DEFAULT", NULL_KEY); llSleep(.4); llReleaseControls(); llStopAnimation("motorcycle_sit"); llStopSound(); //llPlaySound("off", 0.4); } } run_time_permissions(integer perm) { if (perm) { llStartAnimation("motorcycle_sit"); llTakeControls(CONTROL_FWD | CONTROL_BACK | CONTROL_RIGHT | CONTROL_LEFT | CONTROL_ROT_RIGHT | CONTROL_ROT_LEFT | CONTROL_UP, TRUE, FALSE); } } control(key id, integer level, integer edge) { // The idea here is to ramp up the motors when the keys are held down for a long // time and to let the motors decay after they are let go. This allows fine- // tuning of the motion of the vehicle by throttling the key controls. // // Note that this probably doesn't work well when the client FPS and/or the server // FPS is lagging. So for best results you'll want to turn off as much visual // effects as you can tolerate, and drive in the more empty areas. // linear integer key_control = FALSE; if(level & CONTROL_FWD) { llLoopSound("Motorcycle_Driving", 1.0); gLinearMotor.x = gLinearMotor.x + gLinearRamp * (gMaxFwdSpeed - gLinearMotor.x); key_control = TRUE; } if(edge & CONTROL_FWD) { llLoopSound("Motorcycle_Idle", 3.0); llSetLinkPrimitiveParams(5,[PRIM_OMEGA, <0,0,0>, 1, 1]); llSetLinkPrimitiveParams(6, [PRIM_OMEGA, <0,0,0>, 1, 1]); } if(level & CONTROL_BACK) { llSetLinkPrimitiveParams(5, [PRIM_OMEGA, <0,-1,0>, 2.5, 1]); llSetLinkPrimitiveParams(6, [PRIM_OMEGA, <0,-1,0>, 2.5, 1]); gLinearMotor.x = gLinearMotor.x + gLinearRamp * (gMaxBackSpeed - gLinearMotor.x); key_control = TRUE; } if (key_control) { llSetVehicleVectorParam(VEHICLE_LINEAR_MOTOR_DIRECTION, gLinearMotor); key_control = FALSE; } else { if (gLinearMotor.x > 15 || gLinearMotor.x < -5) { // Automatically reduce the motor if keys are let up when moving fast. gLinearMotor.x *= 0.8; llSetVehicleVectorParam(VEHICLE_LINEAR_MOTOR_DIRECTION, gLinearMotor); } else { // reduce the linear motor accumulator for the next control() event gLinearMotor.x *= 0.8; } } // angular if(level & (CONTROL_RIGHT|CONTROL_ROT_RIGHT)) { gAngularMotor.x = gAngularMotor.x + gAngularRamp * (gMaxTurnSpeed - gAngularMotor.x); key_control = TRUE; } if(level & (CONTROL_LEFT | CONTROL_ROT_LEFT)) { gAngularMotor.x = gAngularMotor.x - gAngularRamp * (gMaxTurnSpeed + gAngularMotor.x); key_control = TRUE; } if(level & CONTROL_UP) { gAngularMotor.y = gAngularMotor.y - gAngularRamp * (gMaxWheelieSpeed + gAngularMotor.y); key_control = TRUE; } if (key_control) { // turn on banking and apply angular motor gBank = 3.0; llSetVehicleFloatParam(VEHICLE_BANKING_EFFICIENCY, gBank); llSetVehicleVectorParam(VEHICLE_ANGULAR_MOTOR_DIRECTION,gAngularMotor); gAngularMotor *= 0.95; // light attenuation } else { if (gAngularMotor.x > 4 || gAngularMotor.x < -4) { // We were turning hard, but no longer ==> reduce banking to help // the motorcycle travel straight when bouncing on rough terrain. // Also, turn off the angular motor ==> faster upright recovery. gAngularMotor *= 0.4; gBank *= 0.5; llSetVehicleFloatParam(VEHICLE_BANKING_EFFICIENCY, gBank); llSetVehicleVectorParam(VEHICLE_ANGULAR_MOTOR_DIRECTION,gAngularMotor); } else { // reduce banking for straighter travel when not actively turning gAngularMotor *= 0.5; gBank *= 0.8; llSetVehicleFloatParam(VEHICLE_BANKING_EFFICIENCY, gBank); } } } } // END // in the control parts before I added the prim omegas, It was working again. Then I had did a test on the prim omega on one of the wheels adding the llSetLinkPrimitiveParams in to the if level & Control FWD as well as in the if edge & control FWD which didn't do anything to it which was good, but when I tried to do backwards, that's when it all messed up. I tried to remove it and it still wont stop the sound when I get off
  7. ah I see the issue. my bad lol. Ok for 2nd question: how can I get the wheels moving when driving and get them to stop when not driving? I know one can just simply use animated textures but there is one problem. This:
  8. i'm sorry but I dont understand what u mean
  9. Ok So I made two motorcycles and have to questions regarding them. First Question: On my own, I figured out how to make them two seaters but I ran into a problem. Here is my script: // :CATEGORY:Vehicles // :NAME:Motorcycle_Script // :AUTHOR:Cory Linden // :CREATED:2010-01-10 05:20:56.000 // :EDITED:2013-09-18 15:38:57 // :ID:524 // :NUM:708 // :REV:1.0 // :WORLD:Second Life // :DESCRIPTION: // Motorcycle Script.lsl // :CODE: // example motorcycle script // // Originally written by Cory Linden. // Then modified and tweaked by Andrew Linden for the forum script library. // // Root prim should be oriented such that its local X-, Y- and Z-axes are // parallel to forward, left, and up respectively. // // Sound triggers are commented out but not removed, so if you // want sounds, just add the sounds to the cycle's contents and uncomment // the triggers. // // Be careful when changing parameters. Some of them can be very // sensitive to change, such that a change of less than 5% can have a // noticable effect. You can tell some (but not necessarily all) of the // more sensitive settings in this example by looking for the ones that // have been set to double precission. Changing only one at a time is a // good idea. // // The geometry of the motorcycle itself can have significant impact on // whether it in a straight line when not trying to turn. For best results // use asymmetric design with as wide of a base as you can tolerate. // These are globals only for convenience (so when you need to modify // them you need only make a single change). There are other magic numbers // below that have not yet been pulled into globals. float gMaxTurnSpeed = 12; float gMaxWheelieSpeed = 5; float gMaxFwdSpeed = 30; float gMaxBackSpeed = -10; float gAngularRamp = 0.17; float gLinearRamp = 0.2; // These are true globals whose values are "accumulated" over // multiple control() callbacks. float gBank = 0.0; vector gLinearMotor = <0, 0, 0>; vector gAngularMotor = <0, 0, 0>; default { state_entry() { // init stuff that never changes llSetMemoryLimit(0x4000); llSetSitText("Ride"); llCollisionSound("", 0.0); llLinkSitTarget(1,<.5,0.01,0.5>,ZERO_ROTATION); llLinkSitTarget(2,<.5,0.01,0.5>,ZERO_ROTATION); llSetCameraEyeOffset(<-6.0, 0.0, 1.0>); llSetCameraAtOffset(<3.0, 0.0, 1.0>); // create the vehicle llSetVehicleFlags(-1); llSetVehicleType(VEHICLE_TYPE_CAR); llSetVehicleFlags(VEHICLE_FLAG_LIMIT_MOTOR_UP | VEHICLE_FLAG_LIMIT_ROLL_ONLY); llSetVehicleFloatParam(VEHICLE_ANGULAR_DEFLECTION_EFFICIENCY, 0.2); llSetVehicleFloatParam(VEHICLE_LINEAR_DEFLECTION_EFFICIENCY, 0.8); llSetVehicleFloatParam(VEHICLE_ANGULAR_DEFLECTION_TIMESCALE, 0.8); llSetVehicleFloatParam(VEHICLE_LINEAR_DEFLECTION_TIMESCALE, 0.3); llSetVehicleFloatParam(VEHICLE_LINEAR_MOTOR_TIMESCALE, 0.8); llSetVehicleFloatParam(VEHICLE_LINEAR_MOTOR_DECAY_TIMESCALE, 0.4); llSetVehicleFloatParam(VEHICLE_ANGULAR_MOTOR_TIMESCALE, 0.01); llSetVehicleFloatParam(VEHICLE_ANGULAR_MOTOR_DECAY_TIMESCALE, 0.35); llSetVehicleVectorParam(VEHICLE_LINEAR_FRICTION_TIMESCALE, <1000, 100, 1000>); llSetVehicleVectorParam(VEHICLE_ANGULAR_FRICTION_TIMESCALE, <100, 10, 100>); llSetVehicleFloatParam(VEHICLE_VERTICAL_ATTRACTION_EFFICIENCY, 0.49); llSetVehicleFloatParam(VEHICLE_VERTICAL_ATTRACTION_TIMESCALE, 0.44); llSetVehicleFloatParam(VEHICLE_BANKING_EFFICIENCY, 3.0); llSetVehicleFloatParam(VEHICLE_BANKING_MIX, 0.7); llSetVehicleFloatParam(VEHICLE_BANKING_TIMESCALE, 0.01); //llSetVehicleFloatParam(VEHICLE_HOVER_HEIGHT, 2.0); //llSetVehicleFloatParam(VEHICLE_HOVER_TIMESCALE, 1.0); //llSetVehicleFloatParam(VEHICLE_HOVER_EFFICIENCY, 0.5); } changed(integer change) { if (change & CHANGED_LINK) { key agent = llAvatarOnLinkSitTarget(1); if (agent) { llMessageLinked(LINK_ALL_CHILDREN , 0, "WHEEL_DRIVING", NULL_KEY); llSleep(.4); // not the owner ==> boot off llSetStatus(STATUS_PHYSICS, TRUE); llRequestPermissions(agent, PERMISSION_TRIGGER_ANIMATION | PERMISSION_TAKE_CONTROLS); llPlaySound("Motorcycle_Start", 0.40); // reset the global accumulators gAngularMotor = <0, 0, 0>; gLinearMotor = <180, 0, 0>; gBank = 0.0; } } else if (llAvatarOnLinkSitTarget(2)) { llRegionSayTo(llAvatarOnLinkSitTarget(2), PUBLIC_CHANNEL, "Passenger"); } else { // dismount llSetStatus(STATUS_PHYSICS, FALSE); llSleep(.1); llMessageLinked(LINK_ALL_CHILDREN , 0, "WHEEL_DEFAULT", NULL_KEY); llSleep(.4); llReleaseControls(); llStopAnimation("motorcycle_sit"); llStopSound(); //llPlaySound("off", 0.4); } } run_time_permissions(integer perm) { if (perm) { llStartAnimation("motorcycle_sit"); llTakeControls(CONTROL_FWD | CONTROL_BACK | CONTROL_RIGHT | CONTROL_LEFT | CONTROL_ROT_RIGHT | CONTROL_ROT_LEFT | CONTROL_UP, TRUE, FALSE); } } control(key id, integer level, integer edge) { // The idea here is to ramp up the motors when the keys are held down for a long // time and to let the motors decay after they are let go. This allows fine- // tuning of the motion of the vehicle by throttling the key controls. // // Note that this probably doesn't work well when the client FPS and/or the server // FPS is lagging. So for best results you'll want to turn off as much visual // effects as you can tolerate, and drive in the more empty areas. // linear integer key_control = FALSE; if(level & CONTROL_FWD) { llLoopSound("Motorcycle_Driving", 1.0); gLinearMotor.x = gLinearMotor.x + gLinearRamp * (gMaxFwdSpeed - gLinearMotor.x); key_control = TRUE; } if(edge & CONTROL_FWD) { llLoopSound("Motorcycle_Idle", 3.0); } if(level & CONTROL_BACK) { gLinearMotor.x = gLinearMotor.x + gLinearRamp * (gMaxBackSpeed - gLinearMotor.x); key_control = TRUE; } if (key_control) { llSetVehicleVectorParam(VEHICLE_LINEAR_MOTOR_DIRECTION, gLinearMotor); key_control = FALSE; } else { if (gLinearMotor.x > 15 || gLinearMotor.x < -5) { // Automatically reduce the motor if keys are let up when moving fast. gLinearMotor.x *= 0.8; llSetVehicleVectorParam(VEHICLE_LINEAR_MOTOR_DIRECTION, gLinearMotor); } else { // reduce the linear motor accumulator for the next control() event gLinearMotor.x *= 0.8; } } // angular if(level & (CONTROL_RIGHT|CONTROL_ROT_RIGHT)) { gAngularMotor.x = gAngularMotor.x + gAngularRamp * (gMaxTurnSpeed - gAngularMotor.x); key_control = TRUE; } if(level & (CONTROL_LEFT | CONTROL_ROT_LEFT)) { gAngularMotor.x = gAngularMotor.x - gAngularRamp * (gMaxTurnSpeed + gAngularMotor.x); key_control = TRUE; } if(level & CONTROL_UP) { gAngularMotor.y = gAngularMotor.y - gAngularRamp * (gMaxWheelieSpeed + gAngularMotor.y); key_control = TRUE; } if (key_control) { // turn on banking and apply angular motor gBank = 3.0; llSetVehicleFloatParam(VEHICLE_BANKING_EFFICIENCY, gBank); llSetVehicleVectorParam(VEHICLE_ANGULAR_MOTOR_DIRECTION,gAngularMotor); gAngularMotor *= 0.95; // light attenuation } else { if (gAngularMotor.x > 4 || gAngularMotor.x < -4) { // We were turning hard, but no longer ==> reduce banking to help // the motorcycle travel straight when bouncing on rough terrain. // Also, turn off the angular motor ==> faster upright recovery. gAngularMotor *= 0.4; gBank *= 0.5; llSetVehicleFloatParam(VEHICLE_BANKING_EFFICIENCY, gBank); llSetVehicleVectorParam(VEHICLE_ANGULAR_MOTOR_DIRECTION,gAngularMotor); } else { // reduce banking for straighter travel when not actively turning gAngularMotor *= 0.5; gBank *= 0.8; llSetVehicleFloatParam(VEHICLE_BANKING_EFFICIENCY, gBank); } } } } // END // Before I had added in the two seater function, when I got in, it would play a sound as the ignition sound then it would play the idle loop sound and when I move, it plays the engine sound. However, after I put in the two seat function, its stuck on the engine sound and keeps playing even when I get off the motorcycle. How do I fix that?
  10. OK so I have this: Sender string notecardNameOrKey = "#New Note#"; key notecardQueryId; integer notecardLine;// first notecard line is 0, so we don't have to set notecardLine = 1 here default { state_entry() { llSay(0, "Reading notecard..."); notecardQueryId = llGetNotecardLine(notecardNameOrKey, notecardLine); } touch_start(integer total_num) { llRegionSayTo(llDetectedKey(0), 5589, "Change"); } dataserver(key query_id, string data) { if (query_id == notecardQueryId) { if (data == EOF)// we have reached the EOF (end of file) { llSay(0, "No more lines in notecard, read " + (string) notecardLine + " lines."); llRemoveInventory(llGetInventoryName(INVENTORY_NOTECARD, 0)); } else { // increment line index first, both for line number reporting, and for reading the next line ++notecardLine; llSay(0, "Line " + (string) notecardLine + ": " + data); notecardQueryId = llGetNotecardLine(notecardNameOrKey, notecardLine); } } } } Receiver default { state_entry() { llListen(5589, "", NULL_KEY, "Change"); } listen(integer channel, string name, key id, string message) { } } How exactly do I get the UUID from the dataserver?
  11. Hi I'm in need of Scripter who is willing to make a script for free. It's nothing big and sadly I dont have any money, but I really need this script made for my project i'm working on. I made these tattoo Layers for Belleza Freya with my own UV maps and not taken from the devkit that I have because I honestly dont know how ppl are able to make textures that wrap around the legs and arms perfectly. I really want to make a hud that ppl can easily put in a note card with texture uuid without needing to go into the script especially for those who have no scripting knowledge. I'm not one to do this, but i'm begging for someone to do this for me.
  12. ya that seems like the only thing I can do at this point. Wait, is there a way I can use llGetTexture to get a texture in the prim and send it to the receiver without a notecard?
  13. ya I can script, but this is a little too advanced for me. If anyone is willing to help me in-world, I think would make it a lot easier. I made these tattoo Layers for Belleza Freya with my own UV maps and not taken from the devkit that I have because I honestly dont know how ppl are able to make textures that wrap around the legs and arms perfectly. I really want to make a hud that ppl can easily put in a note card with texture uuid without needing to go into the script especially for those who have no scripting knowledge.
  14. um.... can anyonepoint me to a script that does this? cause nothing ya'll said made any sense to me.
×
×
  • Create New...