Jump to content

DarkEmperor13

Resident
  • Posts

    232
  • Joined

  • Last visited

Everything posted by DarkEmperor13

  1. Hey I'm looking for a place i can rent that i can use for my inworld store. My mesh store is 39.30239m in length and 39.30163m in width and has a land impact of 59 prims. I'm also looking for something super cheap if possible and let start with 100prims
  2. I've seen many ppl who can jump not only once but twice. Ive tried to figure out how to do this, but i cant find anything on it. Plz help
  3. hi i'm trying to make a charge weapon that shoots small bullets on mouse click and shoots large bullets on mouse press/hold and release. Anyone know of a script that does this or something similar
  4. ugh i dont get this! like where am i supposed to even do the llgettime and llresettime?
  5. I'm trying to make a gun that can do regular shots and charged shots. float gVelocity = 75.0; float gReloadTime = 0.10; string gShootSound = "Energy Charge Shot"; string gHoldSound = "Energy Charge"; string gShootAnimation = "hold_R_rifle"; string gBullet = "PB Bullet"; string gBullet2 = "PBC Bullet"; integer gPermFlags; // Particle Script 0.5 // Created by Ama Omega // 3-26-2004 // Mask Flags - set to TRUE to enable integer glow = FALSE; // Make the particles glow integer bounce = FALSE; // Make particles bounce on Z plane of object integer interpColor = TRUE; // Go from start to end color integer interpSize = TRUE; // Go from start to end size integer wind = FALSE; // Particles affected by wind integer followSource = TRUE; // Particles follow the source integer followVel = TRUE; // Particles turn to velocity direction // Choose a pattern from the following: // PSYS_SRC_PATTERN_EXPLODE // PSYS_SRC_PATTERN_DROP // PSYS_SRC_PATTERN_ANGLE_CONE_EMPTY // PSYS_SRC_PATTERN_ANGLE_CONE // PSYS_SRC_PATTERN_ANGLE integer pattern = PSYS_SRC_PATTERN_ANGLE_CONE; // Select a target for particles to go towards // "" for no target, "owner" will follow object owner // and "self" will target this object // or put the key of an object for particles to go to key target = ""; // Particle paramaters float age = 1; // Life of each particle float maxSpeed = .05; // Max speed each particle is spit out at float minSpeed = 0.05; // Min speed each particle is spit out at string texture = ""; // Texture used for particles, default used if blank float startAlpha = 0.5; // Start alpha (transparency) value float endAlpha = 0.0; // End alpha (transparency) value vector startColor = <0.937, 0.863, 0.361>; // Start color of particles <R,G,B> vector endColor = <0.937, 0.863, 0.361>; // End color of particles <R,G,B> (if interpColor == TRUE) vector startSize = <.5, .5, .5>; // Start size of particles vector endSize = <1,1,1>; // End size of particles (if interpSize == TRUE) vector push = <0.0,0.0,0>; // Force pushed on particles // System paramaters float rate = 0.01; // How fast (rate) to emit particles float radius = 0; // Radius to emit particles for BURST pattern integer count = 5; // How many particles to emit per BURST float outerAngle = 0; // Outer angle for all ANGLE patterns float innerAngle = 0.1; // Inner angle for all ANGLE patterns vector omega = <0,0,0>; // Rotation of ANGLE patterns around the source float life = 0; // Life in seconds for the system to make particles // Script variables integer pre = 2; //Adjust the precision of the generated list. integer listen_handle; integer flags; list sys; integer type; vector tempVector; rotation tempRot; string tempString; integer i; string float2String(float in) { return llGetSubString((string)in,0,pre - 7); } updateParticles() { flags = 0; if (target == "owner") target = llGetOwner(); if (target == "self") target = llGetKey(); if (glow) flags = flags | PSYS_PART_EMISSIVE_MASK; if (bounce) flags = flags | PSYS_PART_BOUNCE_MASK; if (interpColor) flags = flags | PSYS_PART_INTERP_COLOR_MASK; if (interpSize) flags = flags | PSYS_PART_INTERP_SCALE_MASK; if (wind) flags = flags | PSYS_PART_WIND_MASK; if (followSource) flags = flags | PSYS_PART_FOLLOW_SRC_MASK; if (followVel) flags = flags | PSYS_PART_FOLLOW_VELOCITY_MASK; if (target != "") flags = flags | PSYS_PART_TARGET_POS_MASK; llParticleSystem([ PSYS_PART_MAX_AGE,age, PSYS_PART_FLAGS,flags, PSYS_PART_START_COLOR, startColor, PSYS_PART_END_COLOR, endColor, PSYS_PART_START_SCALE,startSize, PSYS_PART_END_SCALE,endSize, PSYS_SRC_PATTERN, pattern, PSYS_SRC_BURST_RATE,rate, PSYS_SRC_ACCEL, push, PSYS_SRC_BURST_PART_COUNT,count, PSYS_SRC_BURST_RADIUS,radius, PSYS_SRC_BURST_SPEED_MIN,minSpeed, PSYS_SRC_BURST_SPEED_MAX,maxSpeed, PSYS_SRC_TARGET_KEY,target, PSYS_SRC_INNERANGLE,innerAngle, PSYS_SRC_OUTERANGLE,outerAngle, PSYS_SRC_OMEGA, omega, PSYS_SRC_MAX_AGE, life, PSYS_SRC_TEXTURE, texture, PSYS_PART_START_ALPHA, startAlpha, PSYS_PART_END_ALPHA, endAlpha ]); } default { state_entry() { // sanity check if (llGetInventoryType(gBullet) != INVENTORY_OBJECT) { return; } gPermFlags = PERMISSION_TRIGGER_ANIMATION | PERMISSION_TAKE_CONTROLS | PERMISSION_TRACK_CAMERA; if ( llGetAttached() ) llRequestPermissions(llGetOwner(), gPermFlags); } attach(key id) { if (id) llRequestPermissions(id, gPermFlags); else { llStopAnimation(gShootAnimation); llReleaseControls(); } } changed(integer change) { if (change & (CHANGED_OWNER | CHANGED_INVENTORY) ) llResetScript(); } run_time_permissions(integer perm) { // ensure ALL required permissions have been granted if ( (perm & gPermFlags) == gPermFlags) { llTakeControls(CONTROL_ML_LBUTTON, TRUE, FALSE); if (llGetAgentInfo(llDetectedKey(0)) & AGENT_MOUSELOOK) { llStartAnimation(gShootAnimation); } else { llStopAnimation(gShootAnimation); llParticleSystem([]); llStopSound(); } } } control(key id, integer level, integer edge) { rotation Rot = llGetCameraRot(); if ( level & CONTROL_ML_LBUTTON) { llSleep(.5); updateParticles(); llLoopSound(gHoldSound, 1.0); state Charged; } else if (~level & edge & CONTROL_ML_LBUTTON) { llParticleSystem([]); llPlaySound(gShootSound, 1.0); llRezAtRoot(gBullet, llGetCameraPos() + <1.5, 0.0, 0.0>*Rot, gVelocity*llRot2Fwd(Rot), Rot, 10); } } } state Charged { run_time_permissions(integer perm) { integer perm = llGetPermissions(); // ensure ALL required permissions have been granted if (perm & PERMISSION_TRIGGER_ANIMATION | PERMISSION_TAKE_CONTROLS|PERMISSION_TRACK_CAMERA) { llTakeControls(CONTROL_ML_LBUTTON, TRUE, FALSE); if (llGetAgentInfo(llDetectedKey(0)) & AGENT_MOUSELOOK) { llStartAnimation(gShootAnimation); } else { llStopAnimation(gShootAnimation); llParticleSystem([]); llStopSound(); state default; } } } control(key id, integer level, integer edge) { rotation Rot = llGetCameraRot(); if ( level & CONTROL_ML_LBUTTON) { updateParticles(); } else if ( edge & CONTROL_ML_LBUTTON) { llParticleSystem([]); llStopSound(); llSleep(.01); llPlaySound(gShootSound, 1.0); llRezAtRoot(gBullet2, llGetCameraPos() + <1.5, 0.0, 0.0>*Rot, gVelocity*llRot2Fwd(Rot), Rot, 10); llSleep(gReloadTime); state default; } } } the problem is when i click the left button(without holding) it still acts like I'm holding it. How do i fix this?
  6. also ive read the rules 15 times(yes I even counted) and still nothing
  7. Hey can anyone give me a copy of the Kuroo devkit? Im trying to fill out the application but question nine says; and it is required and it says to re-read the rules but nothing in the rules says anything on the matter.
  8. Hi I'm a mesh builder who can make all sorts of things mesh. I can make the following: Houses, Clubs, and other Structures. Clothing for Aesthetic, Slink, Maitreya, Belleza, Ebody, Adam&Eve. Decorations (ex: Statues, Fountains, Etc.) Furniture. Anything else you can think of. I cannot, however, make avatars or animesh as of yet. That is a WIP. I don't charge over what should be charged when it comes to making mesh. Sometimes I even make it for no cost depending on what it is. Plz message me in-world!
  9. Hey guys i’m looking for 2 things: - 1st: a sim that gives out free furniture via lucky chairs. - 2nd: a sim that gives out free clothes for Belleza Jake via lucky chairs. If anyone knows of some places, plz post the SLURL
  10. I need a scripter for a TCG i'm making. for more info on this, please message me inworld
  11. Ok so I'm wanting to make my own TCG for SL with my own custom cards and im also going to make a play mat. So this play is gonna have these squares where u put the cards at and what I want to do is click on the card which makes it glow and then click on one of the squares and the card moves to that square. How would I do this?
  12. Hi I'm in need of a model with the ebody full version. I am trying to use an autohide script and it only works with the full version. I dont have money, but I am willing to give whoever accepts this a copy of the outfit free of charge as payment. Let me know in-world
  13. DarkEmperor13

    A Shield

    Hi I know some one who keeps using some sort of magic hud that they use to keep rezzing an object that follows me around even when they aren't on the same sim with me. I am looking for a shield that either 1) force returns it no matter the privileges or whatever. 2) deletes it without returning to owner or 3) prevents it from following me
  14. Ik there are threads for this, but I don't know which one this would fit in. I'm wanting to purchase cheap empty land between 100L and 400L with lots of prims and if possible, big in size. plz let me know if someone knows of where I can find such.
  15. that's exactly what I meant! See I have this outfit that is a linkset. So how do u link multiple huds together in the way u are referring to?
  16. except they are in the contents otherwise it would just say cannot find this animation or sound
  17. thats all it says and to ur question before rolig, its the popup error window
  18. so ur saying that its caused by the control event constantly triggered?
  19. Hiya I've made a go kart and trying to figure out this error; "Too many errors... dropping further messages until the flood stop". My script is as followed: //Feel free to modify these basic parameters to suit your needs. float forward_power = 20; //Power used to go forward (1 to 30) float reverse_power = -15; //Power ued to go reverse (-1 to -30) float turning_ratio = 4.0; //How sharply the vehicle turns. Less is more sharply. (.1 to 10) string sit_message = "Jump In!"; //Sit message string not_owner_message = "You are not the owner of this vehicle ..."; //Not owner message //Anything past this point should only be modfied if you know what you are doing string last_wheel_direction; string cur_wheel_direction; default { state_entry() { llSitTarget(<0,0,.2>,llEuler2Rot(<0.0,0.0,0>*DEG_TO_RAD)); llSetSitText(sit_message); llSetCameraEyeOffset(<-10.0, 0.0, 2.0> ); llSetCameraAtOffset(<10.0, 0.0, 2.0> ); //car llSetVehicleType(VEHICLE_TYPE_CAR); llSetVehicleFloatParam(VEHICLE_ANGULAR_DEFLECTION_EFFICIENCY, 0.2); llSetVehicleFloatParam(VEHICLE_LINEAR_DEFLECTION_EFFICIENCY, 0.80); llSetVehicleFloatParam(VEHICLE_ANGULAR_DEFLECTION_TIMESCALE, 0.10); llSetVehicleFloatParam(VEHICLE_LINEAR_DEFLECTION_TIMESCALE, 0.10); llSetVehicleFloatParam(VEHICLE_LINEAR_MOTOR_TIMESCALE, 1.0); llSetVehicleFloatParam(VEHICLE_LINEAR_MOTOR_DECAY_TIMESCALE, 0.2); llSetVehicleFloatParam(VEHICLE_ANGULAR_MOTOR_TIMESCALE, 0.1); llSetVehicleFloatParam(VEHICLE_ANGULAR_MOTOR_DECAY_TIMESCALE, 0.5); llSetVehicleVectorParam(VEHICLE_LINEAR_FRICTION_TIMESCALE, <1000.0, 2.0, 1000.0> ); llSetVehicleVectorParam(VEHICLE_ANGULAR_FRICTION_TIMESCALE, <10.0, 10.0, 1000.0> ); llSetVehicleFloatParam(VEHICLE_VERTICAL_ATTRACTION_EFFICIENCY, 0.50); llSetVehicleFloatParam(VEHICLE_VERTICAL_ATTRACTION_TIMESCALE, 0.50); } changed(integer change) { if (change & CHANGED_LINK) { key agent = llAvatarOnSitTarget(); if (agent) { if (agent != llGetOwner()) { llSay(0, not_owner_message); llUnSit(agent); llPushObject(agent, <0,0,50>, ZERO_VECTOR, FALSE); } else { llTriggerSound("Kart Start",1); llSleep(.4); llSetStatus(STATUS_PHYSICS, TRUE); llSleep(.1); llRequestPermissions(agent, PERMISSION_TRIGGER_ANIMATION | PERMISSION_TAKE_CONTROLS); llSetTimerEvent(0.1); llLoopSound("Kart Idle",1); } } else { llSetTimerEvent(0); llStopSound(); llSetStatus(STATUS_PHYSICS, FALSE); llSleep(.1); llSleep(.4); llReleaseControls(); llResetScript(); } } } run_time_permissions(integer perm) { if (perm) { llStartAnimation("Go Kart Sit"); llTakeControls(CONTROL_FWD | CONTROL_BACK | CONTROL_DOWN | CONTROL_UP | CONTROL_RIGHT | CONTROL_LEFT | CONTROL_ROT_RIGHT | CONTROL_ROT_LEFT, TRUE, FALSE); } } control(key id, integer level, integer edge) { integer reverse=1; vector angular_motor; //get current speed vector vel = llGetVel(); float speed = llVecMag(vel); //car controls if(level & CONTROL_FWD) { llLoopSound("Kart Drive 03", 1); cur_wheel_direction = "WHEEL_FORWARD"; llSetVehicleVectorParam(VEHICLE_LINEAR_MOTOR_DIRECTION, <forward_power,0,0> ); reverse=1; } if(edge & CONTROL_FWD) { llLoopSound("Kart Idle",1); } if(level & CONTROL_BACK) { cur_wheel_direction = "WHEEL_REVERSE"; llSetVehicleVectorParam(VEHICLE_LINEAR_MOTOR_DIRECTION, <reverse_power,0,0> ); reverse = -1; } if(level & (CONTROL_RIGHT|CONTROL_ROT_RIGHT)) { llStartAnimation("Go Kart Right"); angular_motor.z -= speed / turning_ratio * reverse; } if(edge & (CONTROL_RIGHT|CONTROL_ROT_RIGHT)) { llStopAnimation("Go Kart Right"); } if(level & (CONTROL_LEFT|CONTROL_ROT_LEFT)) { llStartAnimation("Go Kart Left"); angular_motor.z += speed / turning_ratio * reverse; } if(edge & (CONTROL_LEFT|CONTROL_ROT_LEFT)) { llStopAnimation("Go Kart Left"); } llSetVehicleVectorParam(VEHICLE_ANGULAR_MOTOR_DIRECTION, angular_motor); } //end control timer() { if (cur_wheel_direction != last_wheel_direction) { } } } //end default
  20. I have a Color Picker HUD script but from the looks of it, it only colors one prim/mesh. What I want is something like with the catwa hud for example where u can select parts and then choose the color. So far I have only seen ones that do only one prim per script. Is there one that can do this?
  21. Hi i'm trying to add a menu to my vehicle that lets u change gears, unlock/lock vehicle and etc etc. I have only found one script that supposedly does it; // :CATEGORY:Menu // :NAME:ButtonAbstractionLayer // :AUTHOR:Francisco V. Saldana // :CREATED:2010-01-10 05:20:56.000 // :EDITED:2013-09-18 15:38:49 // :ID:134 // :NUM:200 // :REV:1.0 // :WORLD:Second Life // :DESCRIPTION: // Button-Abstraction-Layer.lsl // :CODE: // ButtonAbstractionLayer // This script is responsible for monitoring touchable linked prims ("buttons") // It also implements the ability to toggle button availability // via its enableButton and disableButton link_message events. // Copyright (C) 2005-2006 Francisco V. Saldana // // This program is free software; you can redistribute it and/or // modify it under the terms of the GNU General Public License // as published by the Free Software Foundation; either version 2 // of the License, or (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program; if not, write to the Free Software // Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. // // Francisco V. Saldana can be contacted using his email account // username: dressedinblue, at domain: gmail.com // and in Second Life by IMming Christopher Omega // Library functions: // Replaces the list elements in dest with elements in src, starting at start. // For example, if dest was [A, B, C, D], src was [E, F] and start was 1, // the list returned would be [A, E, F, D]. // If llGetListLength(src) + start > llGetListLength(dest), the returned list length // will be greater then dest list's length. string NULL = ""; list replaceListSlice(list dest, list src, integer start) { if (llGetListEntryType(dest, start - 1) == TYPE_INVALID) { integer len; for(len = llGetListLength(dest); len < start; len++) { dest += NULL; } } integer srcLen = llGetListLength(src); return llListInsertList(llDeleteSubList(dest, start, start + srcLen - 1), src, start); } integer wildcardPatternMatches(string str, string pattern) { string firstChar = llGetSubString(pattern, 0, 0); string lastChar = llGetSubString(pattern, -1, -1); if (firstChar == "%") { if (lastChar == "%") { pattern = llGetSubString(pattern, 1, -2); return llSubStringIndex(str, pattern) != -1; } else { pattern = llDeleteSubString(pattern, 0, 0); return llSubStringIndex(str, pattern) == llStringLength(str) - llStringLength(pattern); } } else if (lastChar == "%") { pattern = llGetSubString(pattern, 0, -2); return llSubStringIndex(str, pattern) == 0; } else { return str == pattern; } } list enabledButtonNamePatterns = []; integer numPatterns = 0; integer isEnabled(string buttonName) { integer patternIndex = 0; for (patternIndex = 0; patternIndex < numPatterns; patternIndex++) { string pattern = llList2String(enabledButtonNamePatterns, patternIndex); if (wildcardPatternMatches(buttonName, pattern)) { return TRUE; } } return FALSE; } // ============ llDetected* Related ============ integer DETECTED_KEY = 1002; integer DETECTED_LINK_NUMBER = 1003; integer DETECTED_NAME = 1004; integer DETECTED_POS = 1006; integer DETECTED_ROT = 1007; list collectDetectedData(integer toucher) { return [ DETECTED_KEY, llDetectedKey(toucher), DETECTED_LINK_NUMBER, llDetectedLinkNumber(toucher), DETECTED_NAME, llDetectedName(toucher), DETECTED_POS, llDetectedPos(toucher), DETECTED_ROT, llDetectedRot(toucher) ]; } // ============================================= list curFilter = []; // This function must be executed in a touch_start event. // it compares values in the curFilter list with values // from the llDetected* functions, to see if the toucher is not // filtered. integer isTouchAllowed(integer toucher) { if (curFilter == []) { return TRUE; } integer filterIndex; filterIndex = llListFindList(curFilter, [(string) DETECTED_KEY]); if (filterIndex != -1) { if (llList2String(curFilter, filterIndex + 1) != (string) llDetectedKey(toucher)) return FALSE; } filterIndex = llListFindList(curFilter, [(string) DETECTED_NAME]); if (filterIndex != -1) { if (llList2String(curFilter, filterIndex + 1) != (string) llDetectedName(toucher)) return FALSE; } return TRUE; } // ========== For method invocation ========== string randomStr(string chars, integer len) { integer numChars = llStringLength(chars); string ret; integer i; for (i = 0; i < len; i++) { integer randIndex = llFloor(llFrand(numChars)); ret += llGetSubString(chars, randIndex, randIndex); } return ret; } string SEPERATOR_CHARS = "`~!@#$%^&*()-_+[]{}|'";/?.>,<"; integer SEPERATOR_LEN = 3; string dumpList2String(list src) { // Generate a seperator not present in any of the // elements in the list. string chars = (string) src; // Squashes all elements together. string seperator; do { seperator = randomStr(SEPERATOR_CHARS, SEPERATOR_LEN); } while (llSubStringIndex(chars, seperator) != -1); return seperator + llDumpList2String(src, seperator); } list parseStringKeepNulls(string src) { // The seperator should be the first SEPERATOR_LEN // characters in the string. return llParseStringKeepNulls(llDeleteSubString(src, 0, SEPERATOR_LEN - 1), [llGetSubString(src, 0, SEPERATOR_LEN - 1)], []); } callMethod(integer callId, string methodName, list parameters) { llMessageLinked(LINK_THIS, callId, dumpList2String(parameters), methodName); } returnValue(string methodName, integer methodIdentifyer, list value) { llMessageLinked(LINK_THIS, methodIdentifyer, dumpList2String(value), methodName + "_ret"); } // ============================================= trigger_buttonPressed(string buttonName, list detectedData) { callMethod(0, "buttonPressed", [buttonName, dumpList2String(detectedData)]); } trigger_buttonReleased(string buttonName, list detectedData) { callMethod(0, "buttonReleased", [buttonName, dumpList2String(detectedData)]); } trigger_reregisterButtons() { callMethod(0, "reregisterButtons", []); } trigger_pong(string moduleName) { callMethod(0, "pong", [moduleName]); } string this; default { state_entry() { this = llGetScriptName(); trigger_reregisterButtons(); llPassTouches(TRUE); } link_message(integer sender, integer num, string parameters, key methodName) { if (methodName == "addButtonListener") { list paramList = parseStringKeepNulls(parameters); // addButtonListener(string buttonNamePattern) string buttonNamePattern = llList2String(paramList, 0); if (llListFindList(enabledButtonNamePatterns, [buttonNamePattern]) == -1) { enabledButtonNamePatterns += buttonNamePattern; numPatterns = llGetListLength(enabledButtonNamePatterns); } } else if (methodName == "removeButtonListener") { list paramList = parseStringKeepNulls(parameters); // removeButtonListener(string buttonNamePattern) string buttonNamePattern = llList2String(paramList, 0); integer patternIndex = llListFindList(enabledButtonNamePatterns, [buttonNamePattern]); if (patternIndex != -1) { enabledButtonNamePatterns = llDeleteSubList(enabledButtonNamePatterns, patternIndex, patternIndex); numPatterns = llGetListLength(enabledButtonNamePatterns); } } else if (methodName == "touchFilter") { list paramList = parseStringKeepNulls(parameters); // Method signature: // touchFilter(list rules) // Rules is a list of DETECTED_* values that we // use to filter touch_start events. list rules = parseStringKeepNulls(llList2String(paramList, 0)); curFilter = rules; } else if (methodName == "ping") { list paramList = parseStringKeepNulls(parameters); // Method signature: // ping(string moduleName) string moduleName = llList2String(paramList, 0); if (moduleName == this) trigger_pong(this); } } touch_start(integer total_number) { // In case of griefers who spam touch a button to try and make the terminal // ignore the user, search through the list of touchers until the script finds // one that the touchfilter will accept. integer i; for(i = 0; i < total_number; i++) { if (isTouchAllowed(i)) { integer linkNumber = llDetectedLinkNumber(i); string linkName = llGetLinkName(linkNumber); if (isEnabled(linkName)) { trigger_buttonPressed(linkName, collectDetectedData(i)); } return; } } } touch_end(integer total_number) { integer i; for(i = 0; i < total_number; i++) { if (isTouchAllowed(i)) { integer linkNumber = llDetectedLinkNumber(i); string linkName = llGetLinkName(linkNumber); if (isEnabled(linkName)) { trigger_buttonReleased(linkName, collectDetectedData(i)); } return; } } } } // end The problem is.... What the heck is all this?! Like, none of it makes any sense to me. I even tried to put it in my vehicle and touch it but nothing happens. I'm ripping my hair out (even tho I don't have enough to rip out atm) and I really need help. So if someone can tell me exactly how to do it instead of giving hints or if someone is willing to share a copy of script with me then id be so happy and grateful!
  22. Hi I need help with a script. I am trying to figure out how to make an ao that lets you have (for example) more than one jump that cycles between or more than one stand. Something similar to daiz papp's oracul ao's.
  23. well I was going to change it. I just wanted to make sure it works. Now is there a way to exclude the owner?
  24. I need some help. I'm trying to make a turret that when senses a player, it points at them. I got the whole rotation thing down. default { state_entry() { llSensorRepeat("", NULL_KEY, AGENT, 15.0, PI, 0.2); llSetLinkColor(LINK_THIS, <0,1,0>, ALL_SIDES); } sensor(integer num_detected) { llSetLinkColor(LINK_THIS, <1,0,0>, ALL_SIDES); } no_sensor() { llResetScript(); } } See, I also have a part of the turret that changes between red and greem. Green = Anonymous/Passive & Red = Detected/Hostile. I got the turn red when detected player worked out, but I cant seem to make it go back to green when a player leaves its detection field.
×
×
  • Create New...