Jump to content

Fenix Eldritch

Resident
  • Posts

    771
  • Joined

Everything posted by Fenix Eldritch

  1. Like Quistess said: it's the prim type "Prism". By default the X and Y taper is set to 1.0 which results in a tetrahedron, but if you set the tapers to 0.0, you get the desired prism.
  2. I was present at the user group meeting when that topic came up and recall that Rider Linden seemed to respond positively to it. At first glance, he didn't think it would break anything (though he may have been speaking from a server code perspective rather than user content perspective). He mentioned that they use "z-strings" (array of chars terminated by a 0 byte) as opposed to "l-strings" (which has length encoded at start of the string). As far as user created content goes, I guess it's always a possibility. But I think in this case it might be rare - or at least easier to correct. I imagine most existing content that depends on fetching more than 255 bytes at a time would be structured to do multiple lines of up to 255 bytes. Even if that content isn't programmed defensively to account for potentially larger lines, the target notecard could be edited (or replaced) to adhere to the old limit/format. And if it can't be replaced due to being referenced by uuid or the object being no-edit, then it's likely already following the old format anyway.
  3. That is not how the function works. Please see the wiki page on how to properly use the function. The first parameter is an integer and as such, can only target a single prim or specific sets as allowed by the special LINK_* constants. If you want to target a subset of prims within the linkset with the same function call, you wold use PRIM_LINK_TARGET within the parameters list. But that's not what you appear to want to do. As said earlier, you indicated you want to move each element one at a time. Therefore it makes more sense to use a single call to llSetLinkPrimitiveParams, targeting just one prim. You would place the function call inside something like a for-loop and use the loop control variable as the input for which link number to target. Also, you don't want to complete a full 360 in the same timer event. The way I understand it is that you begin with all elements at 0 rotation. This effectively makes the sign showing one complete image. You start the timer for however long you want that image to remain (15 seconds from you last example). Then when the timer event happens, you update the rotation variable to 120 and being your for-loop to apply that new rotation variable to all elements - again one at a time, via the loop. So the loop will start at 2 and go for 20 iterations (just as an example, assuming your sign consists of the root plus the 20 elements and nothing else). Each iteration will just target link number X. After the loop completes, the timer event is over and the script idles until 15 seconds elapses and the timer starts again. As before, it updates the global rotation variable to 360, and then performs that loop again, this time updating each element to the new rotation. And so on, and so on. You should also check in the timer to see if the global rotation variable is greater than or equal to 360 and if so, set it back to 0. Does this make sense?
  4. Since each element moves in sequence rather than simultaneously, I imagine you'll want a loop to iterate over each prism, setting the local rotation via llSetLinkPrimitiveParams. You could have a single global variable to keep track of what general orientation the parts should be at (120, 240, 360) and apply it to each element - then update it after finishing the loop. Place all that in a timer with an interval of however long you want the sign to display a single completed side. If you want the elements to move more slowly, then you'll have to make multiple calls to llSetLinkPrimitiveParams to rotate each element in smaller steps one each loop iteration. Using the regular llSetLinkPrimitiveParams instead of the fast variant my be preferable due to the built in delay. Lastly, if you carefully build the model such that each element is linked in ascending sequence, then it simplifies the loop logic, as you can use the same loop-control variable as the link number reference.
  5. Here's the UDL file I made for LSL in Notepad++. I try to keep it somewhat up to date, but there may be missing constants - as the wiki doesn't have a complete central list. To Install it, save the thing as an xml file. Then open Notepad++ and from the menu bar select Language > User Defined Language > Define your language... In the resulting window, import the LSL.xml UDL file. <NotepadPlus> <UserLang name="LSL" ext="lsl" udlVersion="2.1"> <Settings> <Global caseIgnored="no" allowFoldOfComments="no" foldCompact="no" forcePureLC="0" decimalSeparator="0" /> <Prefix Keywords1="no" Keywords2="no" Keywords3="no" Keywords4="no" Keywords5="no" Keywords6="no" Keywords7="no" Keywords8="no" /> </Settings> <KeywordLists> <Keywords name="Comments">00// 01 02 03/* 04*/</Keywords> <Keywords name="Numbers, prefix1"></Keywords> <Keywords name="Numbers, prefix2">0x</Keywords> <Keywords name="Numbers, extras1"></Keywords> <Keywords name="Numbers, extras2">A B C D E F a b c d e f</Keywords> <Keywords name="Numbers, suffix1"></Keywords> <Keywords name="Numbers, suffix2"></Keywords> <Keywords name="Numbers, range"></Keywords> <Keywords name="Operators1">! ~ ++ -- + - * / % &lt;&lt; &gt;&gt; &lt;= &gt;= &lt; &gt; ^ | || &amp; &amp;&amp; = == += -= *= /= %= != , ;</Keywords> <Keywords name="Operators2"></Keywords> <Keywords name="Folders in code1, open">{ ( [ &lt;</Keywords> <Keywords name="Folders in code1, middle"></Keywords> <Keywords name="Folders in code1, close">} ) ] &gt;</Keywords> <Keywords name="Folders in code2, open"></Keywords> <Keywords name="Folders in code2, middle"></Keywords> <Keywords name="Folders in code2, close"></Keywords> <Keywords name="Folders in comment, open"></Keywords> <Keywords name="Folders in comment, middle"></Keywords> <Keywords name="Folders in comment, close"></Keywords> <Keywords name="Keywords1">float integer key list quaternion rotation string vector</Keywords> <Keywords name="Keywords2">attach at_rot_target at_target changed collision collision_end collision_start control dataserver email event_order experience_permissions experience_permissions_denied http_request http_response land_collision land_collision_end land_collision_start link_message listen money moving_end moving_start not_at_rot_target not_at_target no_sensor object_rez on_rez path_update remote_data run_time_permissions sensor state_entry state_exit timer touch touch_end touch_start transaction_result</Keywords> <Keywords name="Keywords3">llAbs llAcos llAddToLandBanList llAddToLandPassList llAdjustSoundVolume llAgentInExperience llAllowInventoryDrop llAngleBetween llApplyImpulse llApplyRotationalImpulse llAsin llAtan2 llAttachToAvatar llAttachToAvatarTemp llAvatarOnLinkSitTarget llAvatarOnSitTarget llAxes2Rot llAxisAngle2Rot llBase64ToInteger llBase64ToString llBreakAllLinks llBreakLink llCastRay llCeil llChar llClearCameraParams llClearLinkMedia llClearPrimMedia llCloseRemoteDataChannel llCollisionFilter llCollisionSound llCollisionSprite llCos llCreateCharacter llCreateKeyValue llCreateLink llCSV2List llDataSizeKeyValue llDeleteCharacter llDeleteKeyValue llDeleteSubList llDeleteSubString llDetachFromAvatar llDetectedGrab llDetectedGroup llDetectedKey llDetectedLinkNumber llDetectedName llDetectedOwner llDetectedPos llDetectedRot llDetectedTouchBinormal llDetectedTouchFace llDetectedTouchNormal llDetectedTouchPos llDetectedTouchST llDetectedTouchUV llDetectedType llDetectedVel llDialog llDie llDumpList2String llEdgeOfWorld llEjectFromLand llEmail llEscapeURL llEuler2Rot llEvade llExecCharacterCmd llFabs llFleeFrom llFloor llForceMouselook llFrand llGenerateKey llGetAccel llGetAgentInfo llGetAgentLanguage llGetAgentList llGetAgentSize llGetAlpha llGetAndResetTime llGetAnimation llGetAnimationList llGetAnimationOverride llGetAttached llGetAttachedList llGetBoundingBox llGetCameraPos llGetCameraRot llGetCenterOfMass llGetClosestNavPoint llGetColor llGetCreator llGetDate llGetDayLength llGetDayOffset llGetDisplayName llGetEnergy llGetEnv llGetEnvironment llGetExperienceDetails llGetExperienceErrorMessage llGetForce llGetFreeMemory llGetFreeURLs llGetGeometricCenter llGetGMTclock llGetHTTPHeader llGetInventoryAcquireTime llGetInventoryCreator llGetInventoryKey llGetInventoryName llGetInventoryNumber llGetInventoryPermMask llGetInventoryType llGetKey llGetLandOwnerAt llGetLinkKey llGetLinkMedia llGetLinkName llGetLinkNumber llGetLinkNumberOfSides llGetLinkPrimitiveParams llGetListEntryType llGetListLength llGetLocalPos llGetLocalRot llGetMass llGetMassMKS llGetMaxScaleFactor llGetMemoryLimit llGetMinScaleFactor llGetMoonDirection llGetMoonRotation llGetNextEmail llGetNotecardLine llGetNumberOfNotecardLines llGetNumberOfPrims llGetNumberOfSides llGetObjectAnimationNames llGetObjectDesc llGetObjectDetails llGetObjectMass llGetObjectName llGetObjectPermMask llGetObjectPrimCount llGetOmega llGetOwner llGetOwnerKey llGetParcelDetails llGetParcelFlags llGetParcelMaxPrims llGetParcelMusicURL llGetParcelPrimCount llGetParcelPrimOwners llGetPermissions llGetPermissionsKey llGetPhysicsMaterial llGetPos llGetPrimitiveParams llGetPrimMediaParams llGetRegionAgentCount llGetRegionCorner llGetRegionDayLength llGetRegionDayOffset llGetRegionFlags llGetRegionFPS llGetRegionMoonDirection llGetRegionMoonRotation llGetRegionName llGetRegionSunDirection llGetRegionSunRotation llGetRegionTimeDilation llGetRootPosition llGetRootRotation llGetRot llGetScale llGetScriptName llGetScriptState llGetSimStats llGetSimulatorHostname llGetSPMaxMemory llGetStartParameter llGetStaticPath llGetStatus llGetSubString llGetSunDirection llGetSunRotation llGetTexture llGetTextureOffset llGetTextureRot llGetTextureScale llGetTime llGetTimeOfDay llGetTimestamp llGetTorque llGetUnixTime llGetUsedMemory llGetUsername llGetVel llGetWallclock llGiveInventory llGiveInventoryList llGiveMoney llGround llGroundContour llGroundNormal llGroundRepel llGroundSlope llHash llHTTPRequest llHTTPResponse llInsertString llInstantMessage llIntegerToBase64 llJson2List llJsonGetValue llJsonSetValue llJsonValueType llKey2Name llKeyCountKeyValue llKeysKeyValue llLinear2sRGB llLinkParticleSystem llLinkSitTarget llList2CSV llList2Float llList2Integer llList2Json llList2Key llList2List llList2ListStrided llList2Rot llList2String llList2Vector llListen llListenControl llListenRemove llListFindList llListInsertList llListRandomize llListReplaceList llListSort llListStatistics llLoadURL llLog llLog10 llLookAt llLoopSound llLoopSoundMaster llLoopSoundSlave llManageEstateAccess llMapDestination llMD5String llMessageLinked llMinEventDelay llModifyLand llModPow llMoveToTarget llName2Key llNavigateTo llOffsetTexture llOpenFloater llOpenRemoteDataChannel llOrd llOverMyLand llOwnerSay llParcelMediaCommandList llParcelMediaQuery llParseString2List llParseStringKeepNulls llParticleSystem llPassCollisions llPassTouches llPatrolPoints llPlaySound llPlaySoundSlave llPow llPreloadSound llPursue llPushObject llReadKeyValue llRegionSay llRegionSayTo llReleaseControls llReleaseURL llRemoteDataReply llRemoteLoadScriptPin llRemoveFromLandBanList llRemoveFromLandPassList llRemoveInventory llRemoveVehicleFlags llReplaceAgentEnvironment llRequestAgentData llRequestDisplayName llRequestExperiencePermissions llRequestInventoryData llRequestPermissions llRequestSecureURL llRequestSimulatorData llRequestURL llRequestUserKey llRequestUsername llResetAnimationOverride llResetLandBanList llResetLandPassList llResetOtherScript llResetScript llResetTime llReturnObjectsByID llReturnObjectsByOwner llRezAtRoot llRezObject llRot2Angle llRot2Axis llRot2Euler llRot2Fwd llRot2Left llRot2Up llRotateTexture llRotBetween llRotLookAt llRotTarget llRotTargetRemove llRound llSameGroup llSay llScaleByFactor llScaleTexture llScriptDanger llScriptProfiler llSendRemoteData llSensor llSensorRemove llSensorRepeat llSetAgentEnvironment llSetAlpha llSetAngularVelocity llSetAnimationOverride llSetBuoyancy llSetCameraAtOffset llSetCameraEyeOffset llSetCameraParams llSetClickAction llSetColor llSetContentType llSetDamage llSetForce llSetForceAndTorque llSetHoverHeight llSetKeyframedMotion llSetLinkAlpha llSetLinkCamera llSetLinkColor llSetLinkMedia llSetLinkPrimitiveParams llSetLinkPrimitiveParamsFast llSetLinkTexture llSetLinkTextureAnim llSetLocalRot llSetMemoryLimit llSetObjectDesc llSetObjectName llSetParcelMusicURL llSetPayPrice llSetPhysicsMaterial llSetPos llSetPrimitiveParams llSetPrimMediaParams llSetRegionPos llSetRemoteScriptAccessPin llSetRot llSetScale llSetScriptState llSetSitText llSetSoundQueueing llSetSoundRadius llSetStatus llSetText llSetTexture llSetTextureAnim llSetTimerEvent llSetTorque llSetTouchText llSetVehicleFlags llSetVehicleFloatParam llSetVehicleRotationParam llSetVehicleType llSetVehicleVectorParam llSetVelocity llSHA1String llShout llSin llSitOnLink llSitTarget llSleep llSqrt llsRGB2Linear llStartAnimation llStartObjectAnimation llStopAnimation llStopObjectAnimation llStopHover llStopLookAt llStopMoveToTarget llStopSound llStringLength llStringToBase64 llStringTrim llSubStringIndex llTakeControls llTan llTarget llTargetedEmail llTargetOmega llTargetRemove llTeleportAgent llTeleportAgentGlobalCoords llTeleportAgentHome llTextBox llToLower llToUpper llTransferLindenDollars llTriggerSound llTriggerSoundLimited llUnescapeURL llUnSit llUpdateCharacter llUpdateKeyValue llVecDist llVecMag llVecNorm llVolumeDetect llWanderWithin llWater llWhisper llWind llXorBase64</Keywords> <Keywords name="Keywords4">default ACTIVE AGENT AGENT_ALWAYS_RUN AGENT_ATTACHMENTS AGENT_AUTOPILOT AGENT_AWAY AGENT_BUSY AGENT_BY_LEGACY_NAME AGENT_BY_USERNAME AGENT_CROUCHING AGENT_FLYING AGENT_IN_AIR AGENT_LIST_PARCEL AGENT_LIST_PARCEL_OWNER AGENT_LIST_REGION AGENT_MOUSELOOK AGENT_ON_OBJECT AGENT_SCRIPTED AGENT_SITTING AGENT_TYPING AGENT_WALKING ALL_SIDES ANIM_ON ATTACH_AVATAR_CENTER ATTACH_BACK ATTACH_BELLY ATTACH_CHEST ATTACH_CHIN ATTACH_FACE_JAW ATTACH_FACE_LEAR ATTACH_FACE_LEYE ATTACH_FACE_REAR ATTACH_FACE_REYE ATTACH_FACE_TONGUE ATTACH_GROIN ATTACH_HEAD ATTACH_HIND_LFOOT ATTACH_HIND_RFOOT ATTACH_HUD_BOTTOM ATTACH_HUD_BOTTOM_LEFT ATTACH_HUD_BOTTOM_RIGHT ATTACH_HUD_CENTER_1 ATTACH_HUD_CENTER_2 ATTACH_HUD_TOP_CENTER ATTACH_HUD_TOP_LEFT ATTACH_HUD_TOP_RIGHT ATTACH_LEAR ATTACH_LEFT_PEC ATTACH_LEYE ATTACH_LFOOT ATTACH_LHAND ATTACH_LHAND_RING1 ATTACH_LHIP ATTACH_LLARM ATTACH_LLLEG ATTACH_LSHOULDER ATTACH_LUARM ATTACH_LULEG ATTACH_LWING ATTACH_MOUTH ATTACH_NECK ATTACH_NOSE ATTACH_PELVIS ATTACH_REAR ATTACH_REYE ATTACH_RFOOT ATTACH_RHAND ATTACH_RHAND_RING1 ATTACH_RHIP ATTACH_RIGHT_PEC ATTACH_RLARM ATTACH_RLLEG ATTACH_RSHOULDER ATTACH_RUARM ATTACH_RULEG ATTACH_RWING ATTACH_TAIL_BASE ATTACH_TAIL_TIP AVOID_CHARACTERS AVOID_DYNAMIC_OBSTACLES AVOID_NONE CAMERA_ACTIVE CAMERA_BEHINDNESS_ANGLE CAMERA_BEHINDNESS_LAG CAMERA_DISTANCE CAMERA_FOCUS CAMERA_FOCUS_LAG CAMERA_FOCUS_LOCKED CAMERA_FOCUS_OFFSET CAMERA_FOCUS_THRESHOLD CAMERA_PITCH CAMERA_POSITION CAMERA_POSITION_LAG CAMERA_POSITION_LOCKED CAMERA_POSITION_THRESHOLD CHANGED_ALLOWED_DROP CHANGED_COLOR CHANGED_INVENTORY CHANGED_LINK CHANGED_MEDIA CHANGED_OWNER CHANGED_REGION CHANGED_REGION_START CHANGED_SCALE CHANGED_SHAPE CHANGED_TELEPORT CHANGED_TEXTURE CHARACTER_ACCOUNT_FOR_SKIPPED_FRAMES CHARACTER_AVOIDANCE_MODE CHARACTER_CMD_JUMP CHARACTER_CMD_SMOOTH_STOP CHARACTER_CMD_STOP CHARACTER_DESIRED_SPEED CHARACTER_DESIRED_TURN_SPEED CHARACTER_LENGTH CHARACTER_MAX_ACCEL CHARACTER_MAX_DECEL CHARACTER_MAX_SPEED CHARACTER_MAX_TURN_RADIUS CHARACTER_ORIENTATION CHARACTER_RADIUS CHARACTER_STAY_WITHIN_PARCEL CHARACTER_TYPE CHARACTER_TYPE_A CHARACTER_TYPE_B CHARACTER_TYPE_C CHARACTER_TYPE_D CHARACTER_TYPE_NONE CLICK_ACTION_BUY CLICK_ACTION_NONE CLICK_ACTION_OPEN CLICK_ACTION_OPEN_MEDIA CLICK_ACTION_PAY CLICK_ACTION_PLAY CLICK_ACTION_SIT CLICK_ACTION_TOUCH CLICK_ACTION_ZOOM CONTENT_TYPE_ATOM CONTENT_TYPE_FORM CONTENT_TYPE_HTML CONTENT_TYPE_JSON CONTENT_TYPE_LLSD CONTENT_TYPE_RSS CONTENT_TYPE_TEXT CONTENT_TYPE_XHTML CONTENT_TYPE_XML CONTROL_BACK CONTROL_DOWN CONTROL_FWD CONTROL_LBUTTON CONTROL_LEFT CONTROL_ML_LBUTTON CONTROL_RIGHT CONTROL_ROT_LEFT CONTROL_ROT_RIGHT CONTROL_UP DATA_BORN DATA_NAME DATA_ONLINE DATA_PAYINFO DATA_RATING DATA_SIM_POS DATA_SIM_RATING DATA_SIM_STATUS DEBUG_CHANNEL DEG_TO_RAD DENSITY ENVIRONMENT_DAYINFO ENV_INVALID_AGENT ENV_NOT_EXPERIENCE ENV_NO_ENVIRONMENT ENV_NO_EXPERIENCE_LAND ENV_NO_EXPERIENCE_PERMISSION EOF ERR_GENERIC ERR_MALFORMED_PARAMS ERR_PARCEL_PERMISSIONS ERR_RUNTIME_PERMISSIONS ERR_THROTTLED ESTATE_ACCESS_ALLOWED_AGENT_ADD ESTATE_ACCESS_ALLOWED_AGENT_REMOVE ESTATE_ACCESS_ALLOWED_GROUP_ADD ESTATE_ACCESS_ALLOWED_GROUP_REMOVE ESTATE_ACCESS_BANNED_AGENT_ADD ESTATE_ACCESS_BANNED_AGENT_REMOVE FALSE FORCE_DIRECT_PATH FRICTION GCNP_RADIUS GCNP_STATIC HORIZONTAL HTTP_ACCEPT HTTP_BODY_MAXLENGTH HTTP_BODY_TRUNCATED HTTP_CUSTOM_HEADER HTTP_METHOD HTTP_MIMETYPE HTTP_PRAGMA_NO_CACHE HTTP_USER_AGENT HTTP_VERBOSE_THROTTLE HTTP_VERIFY_CERT INVENTORY_ALL INVENTORY_ANIMATION INVENTORY_BODYPART INVENTORY_CLOTHING INVENTORY_GESTURE INVENTORY_LANDMARK INVENTORY_NONE INVENTORY_NOTECARD INVENTORY_OBJECT INVENTORY_SCRIPT INVENTORY_SETTING INVENTORY_SOUND INVENTORY_TEXTURE JSON_APPEND JSON_ARRAY JSON_DELETE JSON_FALSE JSON_INVALID JSON_NULL JSON_NUMBER JSON_OBJECT JSON_STRING JSON_TRUE KFM_CMD_PAUSE KFM_CMD_PLAY KFM_CMD_SET_MODE KFM_CMD_STOP KFM_COMMAND KFM_DATA KFM_FORWARD KFM_LOOP KFM_MODE KFM_PING_PONG KFM_REVERSE KFM_ROTATION KFM_TRANSLATION LAND_LARGE_BRUSH LAND_LEVEL LAND_LOWER LAND_MEDIUM_BRUSH LAND_NOISE LAND_RAISE LAND_REVERT LAND_SMALL_BRUSH LAND_SMOOTH LINK_ALL_CHILDREN LINK_ALL_OTHERS LINK_ROOT LINK_SET LINK_THIS LIST_STAT_GEOMETRIC_MEAN LIST_STAT_MAX LIST_STAT_MEAN LIST_STAT_MEDIAN LIST_STAT_MIN LIST_STAT_NUM_COUNT LIST_STAT_RANGE LIST_STAT_STD_DEV LIST_STAT_SUM LIST_STAT_SUM_SQUARES LOOP LlGetGroup MASK_BASE MASK_EVERYONE MASK_GROUP MASK_NEXT MASK_OWNER NULL_KEY OBJECT_ANIMATED_COUNT OBJECT_ANIMATED_SLOTS_AVAILABLE OBJECT_ATTACHED_POINT OBJECT_ATTACHED_SLOTS_AVAILABLE OBJECT_BODY_SHAPE_TYPE OBJECT_CHARACTER_TIME OBJECT_CLICK_ACTION OBJECT_CREATION_TIME OBJECT_CREATOR OBJECT_DESC OBJECT_GROUP OBJECT_GROUP_TAG OBJECT_HOVER_HEIGHT OBJECT_LAST_OWNER_ID OBJECT_NAME OBJECT_OMEGA OBJECT_OWNER OBJECT_PATHFINDING_TYPE OBJECT_PHANTOM OBJECT_PHYSICS OBJECT_PHYSICS_COST OBJECT_POS OBJECT_PRIM_COUNT OBJECT_PRIM_EQUIVALENCE OBJECT_RENDER_WEIGHT OBJECT_RETURN_PARCEL OBJECT_RETURN_PARCEL_OWNER OBJECT_RETURN_REGION OBJECT_REZZER_KEY OBJECT_ROOT OBJECT_ROT OBJECT_RUNNING_SCRIPT_COUNT OBJECT_SCRIPT_MEMORY OBJECT_SCRIPT_TIME OBJECT_SELECT_COUNT OBJECT_SERVER_COST OBJECT_SIT_COUNT OBJECT_STREAMING_COST OBJECT_TEMP_ATTACHED OBJECT_TEMP_ON_REZ OBJECT_TOTAL_INVENTORY_COUNT OBJECT_TOTAL_SCRIPT_COUNT OBJECT_UNKNOWN_DETAIL OBJECT_VELOCITY OPT_AVATAR OPT_CHARACTER OPT_EXCLUSION_VOLUME OPT_LEGACY_LINKSET OPT_MATERIAL_VOLUME OPT_OTHER OPT_STATIC_OBSTACLE OPT_WALKABLE PARCEL_COUNT_GROUP PARCEL_COUNT_OTHER PARCEL_COUNT_OWNER PARCEL_COUNT_SELECTED PARCEL_COUNT_TEMP PARCEL_COUNT_TOTAL PARCEL_DETAILS_AREA PARCEL_DETAILS_DESC PARCEL_DETAILS_GROUP PARCEL_DETAILS_ID PARCEL_DETAILS_NAME PARCEL_DETAILS_OWNER PARCEL_DETAILS_SEE_AVATARS PARCEL_FLAG_ALLOW_ALL_OBJECT_ENTRY PARCEL_FLAG_ALLOW_CREATE_GROUP_OBJECTS PARCEL_FLAG_ALLOW_CREATE_OBJECTS PARCEL_FLAG_ALLOW_DAMAGE PARCEL_FLAG_ALLOW_FLY PARCEL_FLAG_ALLOW_GROUP_OBJECT_ENTRY PARCEL_FLAG_ALLOW_GROUP_SCRIPTS PARCEL_FLAG_ALLOW_LANDMARK PARCEL_FLAG_ALLOW_SCRIPTS PARCEL_FLAG_ALLOW_TERRAFORM PARCEL_FLAG_LOCAL_SOUND_ONLY PARCEL_FLAG_RESTRICT_PUSHOBJECT PARCEL_FLAG_USE_ACCESS_GROUP PARCEL_FLAG_USE_ACCESS_LIST PARCEL_FLAG_USE_BAN_LIST PARCEL_FLAG_USE_LAND_PASS_LIST PARCEL_MEDIA_COMMAND_AGENT PARCEL_MEDIA_COMMAND_AUTO_ALIGN PARCEL_MEDIA_COMMAND_DESC PARCEL_MEDIA_COMMAND_LOOP PARCEL_MEDIA_COMMAND_LOOP_SET PARCEL_MEDIA_COMMAND_PAUSE PARCEL_MEDIA_COMMAND_PLAY PARCEL_MEDIA_COMMAND_SIZE PARCEL_MEDIA_COMMAND_STOP PARCEL_MEDIA_COMMAND_TEXTURE PARCEL_MEDIA_COMMAND_TIME PARCEL_MEDIA_COMMAND_TYPE PARCEL_MEDIA_COMMAND_UNLOAD PARCEL_MEDIA_COMMAND_URL PASSIVE PASS_ALWAYS PASS_IF_NOT_HANDLED PASS_NEVER PATROL_PAUSE_AT_WAYPOINTS PAYMENT_INFO_ON_FILE PAYMENT_INFO_USED PAY_DEFAULT PAY_HIDE PERMISSION_ATTACH PERMISSION_CHANGE_LINKS PERMISSION_CONTROL_CAMERA PERMISSION_DEBIT PERMISSION_OVERRIDE_ANIMATIONS PERMISSION_RETURN_OBJECTS PERMISSION_SILENT_ESTATE_MANAGEMENT PERMISSION_TAKE_CONTROLS PERMISSION_TELEPORT PERMISSION_TRACK_CAMERA PERMISSION_TRIGGER_ANIMATION PERM_ALL PERM_COPY PERM_MODIFY PERM_MOVE PERM_TRANSFER PI PING_PONG PI_BY_TWO PRIM_ALLOW_UNSIT PRIM_ALPHA_MODE PRIM_ALPHA_MODE_BLEND PRIM_ALPHA_MODE_EMISSIVE PRIM_ALPHA_MODE_MASK PRIM_ALPHA_MODE_NONE PRIM_BUMP_BARK PRIM_BUMP_BLOBS PRIM_BUMP_BRICKS PRIM_BUMP_BRIGHT PRIM_BUMP_CHECKER PRIM_BUMP_CONCRETE PRIM_BUMP_DARK PRIM_BUMP_DISKS PRIM_BUMP_GRAVEL PRIM_BUMP_LARGETILE PRIM_BUMP_NONE PRIM_BUMP_SHINY PRIM_BUMP_SIDING PRIM_BUMP_STONE PRIM_BUMP_STUCCO PRIM_BUMP_SUCTION PRIM_BUMP_TILE PRIM_BUMP_WEAVE PRIM_BUMP_WOOD PRIM_COLOR PRIM_DESC PRIM_FLEXIBLE PRIM_FULLBRIGHT PRIM_GLOW PRIM_HOLE_CIRCLE PRIM_HOLE_DEFAULT PRIM_HOLE_SQUARE PRIM_HOLE_TRIANGLE PRIM_LINK_TARGET PRIM_MATERIAL PRIM_MATERIAL_FLESH PRIM_MATERIAL_GLASS PRIM_MATERIAL_LIGHT PRIM_MATERIAL_METAL PRIM_MATERIAL_PLASTIC PRIM_MATERIAL_RUBBER PRIM_MATERIAL_STONE PRIM_MATERIAL_WOOD PRIM_MEDIA_ALT_IMAGE_ENABLE PRIM_MEDIA_AUTO_LOOP PRIM_MEDIA_AUTO_PLAY PRIM_MEDIA_AUTO_SCALE PRIM_MEDIA_AUTO_ZOOM PRIM_MEDIA_CONTROLS_MINI PRIM_MEDIA_CONTROLS_STANDARD PRIM_MEDIA_CURRENT_URL PRIM_MEDIA_FIRST_CLICK_INTERACT PRIM_MEDIA_HEIGHT_PIXELS PRIM_MEDIA_HOME_URL PRIM_MEDIA_MAX_HEIGHT_PIXELS PRIM_MEDIA_MAX_URL_LENGTH PRIM_MEDIA_MAX_WHITELIST_COUNT PRIM_MEDIA_MAX_WHITELIST_SIZE PRIM_MEDIA_MAX_WIDTH_PIXELS PRIM_MEDIA_PARAM_MAX PRIM_MEDIA_PERMS_CONTROL PRIM_MEDIA_PERMS_INTERACT PRIM_MEDIA_PERM_ANYONE PRIM_MEDIA_PERM_GROUP PRIM_MEDIA_PERM_NONE PRIM_MEDIA_PERM_OWNER PRIM_MEDIA_WHITELIST PRIM_MEDIA_WHITELIST_ENABLE PRIM_MEDIA_WIDTH_PIXELS PRIM_NAME PRIM_NORMAL PRIM_OMEGA PRIM_PHANTOM PRIM_PHYSICS PRIM_PHYSICS_SHAPE_CONVEX PRIM_PHYSICS_SHAPE_NONE PRIM_PHYSICS_SHAPE_PRIM PRIM_PHYSICS_SHAPE_TYPE PRIM_POINT_LIGHT PRIM_POSITION PRIM_POS_LOCAL PRIM_ROTATION PRIM_ROT_LOCAL PRIM_SCRIPTED_SIT_ONLY PRIM_SCULPT_FLAG_INVERT PRIM_SCULPT_FLAG_MIRROR PRIM_SCULPT_TYPE_CYLINDER PRIM_SCULPT_TYPE_MASK PRIM_SCULPT_TYPE_PLANE PRIM_SCULPT_TYPE_SPHERE PRIM_SCULPT_TYPE_TORUS PRIM_SHINY_HIGH PRIM_SHINY_LOW PRIM_SHINY_MEDIUM PRIM_SHINY_NONE PRIM_SIT_TARGET PRIM_SIZE PRIM_SLICE PRIM_SPECULAR PRIM_TEMP_ON_REZ PRIM_TEXGEN PRIM_TEXGEN_DEFAULT PRIM_TEXGEN_PLANAR PRIM_TEXT PRIM_TEXTURE PRIM_TYPE PRIM_TYPE_BOX PRIM_TYPE_CYLINDER PRIM_TYPE_PRISM PRIM_TYPE_RING PRIM_TYPE_SCULPT PRIM_TYPE_SPHERE PRIM_TYPE_TORUS PRIM_TYPE_TUBE PROFILE_NONE PROFILE_SCRIPT_MEMORY PSYS_PART_BF_DEST_COLOR PSYS_PART_BF_ONE PSYS_PART_BF_ONE_MINUS_DEST_COLOR PSYS_PART_BF_ONE_MINUS_SOURCE_ALPHA PSYS_PART_BF_ONE_MINUS_SOURCE_COLOR PSYS_PART_BF_SOURCE_ALPHA PSYS_PART_BF_SOURCE_COLOR PSYS_PART_BF_ZERO PSYS_PART_BLEND_FUNC_DEST PSYS_PART_BLEND_FUNC_SOURCE PSYS_PART_BOUNCE_MASK PSYS_PART_EMISSIVE_MASK PSYS_PART_END_ALPHA PSYS_PART_END_COLOR PSYS_PART_END_GLOW PSYS_PART_END_SCALE PSYS_PART_FLAGS PSYS_PART_FOLLOW_SRC_MASK PSYS_PART_FOLLOW_VELOCITY_MASK PSYS_PART_INTERP_COLOR_MASK PSYS_PART_INTERP_SCALE_MASK PSYS_PART_MAX_AGE PSYS_PART_RIBBON_MASK PSYS_PART_START_ALPHA PSYS_PART_START_COLOR PSYS_PART_START_GLOW PSYS_PART_START_SCALE PSYS_PART_TARGET_LINEAR_MASK PSYS_PART_TARGET_POS_MASK PSYS_PART_WIND_MASK PSYS_SRC_ACCEL PSYS_SRC_ANGLE_BEGIN PSYS_SRC_ANGLE_END PSYS_SRC_BURST_PART_COUNT PSYS_SRC_BURST_RADIUS PSYS_SRC_BURST_RATE PSYS_SRC_BURST_SPEED_MAX PSYS_SRC_BURST_SPEED_MIN PSYS_SRC_INNERANGLE PSYS_SRC_MAX_AGE PSYS_SRC_OBJ_REL_MASK PSYS_SRC_OMEGA PSYS_SRC_OUTERANGLE PSYS_SRC_PATTERN PSYS_SRC_PATTERN_ANGLE PSYS_SRC_PATTERN_ANGLE_CONE PSYS_SRC_PATTERN_ANGLE_CONE_EMPTY PSYS_SRC_PATTERN_DROP PSYS_SRC_PATTERN_EXPLODE PSYS_SRC_TARGET_KEY PSYS_SRC_TEXTURE PUBLIC_CHANNEL PURSUIT_FUZZ_FACTOR PURSUIT_GOAL_TOLERANCE PURSUIT_INTERCEPT PURSUIT_OFFSET PU_EVADE_HIDDEN PU_EVADE_SPOTTED PU_FAILURE_DYNAMIC_PATHFINDING_DISABLED PU_FAILURE_INVALID_GOAL PU_FAILURE_INVALID_START PU_FAILURE_NO_NAVMESH PU_FAILURE_NO_VALID_DESTINATION PU_FAILURE_OTHER PU_FAILURE_PARCEL_UNREACHABLE PU_FAILURE_TARGET_GONE PU_FAILURE_UNREACHABLE PU_GOAL_REACHED PU_SLOWDOWN_DISTANCE_REACHED RAD_TO_DEG RCERR_CAST_TIME_EXCEEDED RCERR_SIM_PERF_LOW RCERR_UNKNOWN RC_DATA_FLAGS RC_DETECT_PHANTOM RC_GET_LINK_NUM RC_GET_NORMAL RC_GET_ROOT_KEY RC_MAX_HITS RC_REJECT_AGENTS RC_REJECT_LAND RC_REJECT_NONPHYSICAL RC_REJECT_PHYSICAL RC_REJECT_TYPES REGION_FLAG_ALLOW_DAMAGE REGION_FLAG_ALLOW_DIRECT_TELEPORT REGION_FLAG_BLOCK_FLY REGION_FLAG_BLOCK_TERRAFORM REGION_FLAG_DISABLE_COLLISIONS REGION_FLAG_DISABLE_PHYSICS REGION_FLAG_FIXED_SUN REGION_FLAG_RESTRICT_PUSHOBJECT REGION_FLAG_SANDBOX REMOTE_DATA_CHANNEL REMOTE_DATA_REPLY REMOTE_DATA_REQUEST REQUIRE_LINE_OF_SIGHT REVERSE ROTATE SCALE SCRIPTED SIM_STAT_PCT_CHARS_STEPPED SKY_AMBIENT SKY_CLOUDS SKY_DOME SKY_GAMMA SKY_GLOW SKY_LIGHT SKY_MOON SKY_PLANET SKY_REFRACTION SKY_STAR_BRIGHTNESS SKY_SUN SKY_TEXTURE_DEFAULTS SKY_TRACKS SMOOTH SQRT2 STATUS_BLOCK_GRAB STATUS_BLOCK_GRAB_OBJECT STATUS_BOUNDS_ERROR STATUS_CAST_SHADOWS STATUS_DIE_AT_EDGE STATUS_INTERNAL_ERROR STATUS_MALFORMED_PARAMS STATUS_NOT_FOUND STATUS_NOT_SUPPORTED STATUS_OK STATUS_PHANTOM STATUS_PHYSICS STATUS_RETURN_AT_EDGE STATUS_ROTATE_X STATUS_ROTATE_Y STATUS_ROTATE_Z STATUS_SANDBOX STATUS_TYPE_MISMATCH STATUS_WHITELIST_FAILED STRING_TRIM STRING_TRIM_HEAD STRING_TRIM_TAIL TARGETED_EMAIL_OBJECT_OWNER TEXTURE_BLANK TEXTURE_DEFAULT TEXTURE_MEDIA TEXTURE_PLYWOOD TEXTURE_TRANSPARENT TOUCH_INVALID_FACE TOUCH_INVALID_TEXCOORD TOUCH_INVALID_VECTOR TRAVERSAL_TYPE TRAVERSAL_TYPE_FAST TRAVERSAL_TYPE_NONE TRAVERSAL_TYPE_SLOW TRUE TWO_PI TYPE_FLOAT TYPE_INTEGER TYPE_INVALID TYPE_KEY TYPE_ROTATION TYPE_STRING TYPE_VECTOR URL_REQUEST_DENIED URL_REQUEST_GRANTED VEHICLE_ANGULAR_DEFLECTION_EFFICIENCY VEHICLE_ANGULAR_DEFLECTION_TIMESCALE VEHICLE_ANGULAR_FRICTION_TIMESCALE VEHICLE_ANGULAR_MOTOR_DECAY_TIMESCALE VEHICLE_ANGULAR_MOTOR_DIRECTION VEHICLE_ANGULAR_MOTOR_TIMESCALE VEHICLE_BANKING_EFFICIENCY VEHICLE_BANKING_MIX VEHICLE_BANKING_TIMESCALE VEHICLE_BUOYANCY VEHICLE_FLAG_CAMERA_DECOUPLED VEHICLE_FLAG_HOVER_GLOBAL_HEIGHT VEHICLE_FLAG_HOVER_TERRAIN_ONLY VEHICLE_FLAG_HOVER_UP_ONLY VEHICLE_FLAG_HOVER_WATER_ONLY VEHICLE_FLAG_LIMIT_MOTOR_UP VEHICLE_FLAG_LIMIT_ROLL_ONLY VEHICLE_FLAG_MOUSELOOK_BANK VEHICLE_FLAG_MOUSELOOK_STEER VEHICLE_FLAG_NO_DEFLECTION_UP VEHICLE_FLAG_NO_FLY_UP VEHICLE_HOVER_EFFICIENCY VEHICLE_HOVER_HEIGHT VEHICLE_HOVER_TIMESCALE VEHICLE_LINEAR_DEFLECTION_EFFICIENCY VEHICLE_LINEAR_DEFLECTION_TIMESCALE VEHICLE_LINEAR_FRICTION_TIMESCALE VEHICLE_LINEAR_MOTOR_DECAY_TIMESCALE VEHICLE_LINEAR_MOTOR_DIRECTION VEHICLE_LINEAR_MOTOR_OFFSET VEHICLE_LINEAR_MOTOR_TIMESCALE VEHICLE_REFERENCE_FRAME VEHICLE_TYPE_AIRPLANE VEHICLE_TYPE_BALLOON VEHICLE_TYPE_BOAT VEHICLE_TYPE_CAR VEHICLE_TYPE_NONE VEHICLE_TYPE_SLED VEHICLE_VERTICAL_ATTRACTION_EFFICIENCY VEHICLE_VERTICAL_ATTRACTION_TIMESCALE VERTICAL WANDER_PAUSE_AT_WAYPOINTS WATER_BLUR_MULTIPLIER WATER_FOG WATER_FRESNEL WATER_NORMAL_SCALE WATER_REFRACTION WATER_TEXTURE_DEFAULTS WATER_WAVE_DIRECTION XP_ERROR_EXPERIENCES_DISABLED XP_ERROR_EXPERIENCE_DISABLED XP_ERROR_EXPERIENCE_SUSPENDED XP_ERROR_INVALID_EXPERIENCE XP_ERROR_INVALID_PARAMETERS XP_ERROR_KEY_NOT_FOUND XP_ERROR_MATURITY_EXCEEDED XP_ERROR_NONE XP_ERROR_NOT_FOUND XP_ERROR_NOT_PERMITTED XP_ERROR_NOT_PERMITTED_LAND XP_ERROR_NO_EXPERIENCE XP_ERROR_QUOTA_EXCEEDED XP_ERROR_REQUEST_PERM_TIMEOUT XP_ERROR_RETRY_UPDATE XP_ERROR_STORAGE_EXCEPTION XP_ERROR_STORE_DISABLED XP_ERROR_THROTTLED XP_ERROR_UNKNOWN_ERROR ZERO_ROTATION ZERO_VECTOR</Keywords> <Keywords name="Keywords5">do else for if jump return state while</Keywords> <Keywords name="Keywords6"></Keywords> <Keywords name="Keywords7">llCloud llMakeExplosion llMakeFire llMakeFountain llMakeSmoke llPointAt llRefreshPrimURL llReleaseCamera llRemoteDataSetRegion llRemoteLoadScript llSetPrimURL llSound llSoundPreload llStopPointAt llTakeCamera llXorBase64Strings llXorBase64StringsCorrect</Keywords> <Keywords name="Keywords8">llGodLikeRezObject llSetInventoryPermMask llSetObjectPermMask print</Keywords> <Keywords name="Delimiters">00&quot; 01\ 02&quot; 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23</Keywords> </KeywordLists> <Styles> <WordsStyle name="DEFAULT" fgColor="000000" bgColor="FFFFFF" fontName="" fontStyle="0" nesting="0" /> <WordsStyle name="COMMENTS" fgColor="008000" bgColor="FFFFFF" fontName="" fontStyle="0" nesting="0" /> <WordsStyle name="LINE COMMENTS" fgColor="008000" bgColor="FFFFFF" fontName="" fontStyle="0" nesting="0" /> <WordsStyle name="NUMBERS" fgColor="000000" bgColor="FFFFFF" fontName="" fontStyle="0" nesting="0" /> <WordsStyle name="KEYWORDS1" fgColor="CC6600" bgColor="FFFFFF" fontName="" fontStyle="0" nesting="0" /> <WordsStyle name="KEYWORDS2" fgColor="004D80" bgColor="FFFFFF" fontName="" fontStyle="1" nesting="0" /> <WordsStyle name="KEYWORDS3" fgColor="4D0080" bgColor="FFFFFF" fontName="" fontStyle="1" nesting="0" /> <WordsStyle name="KEYWORDS4" fgColor="009999" bgColor="FFFFFF" fontName="" fontStyle="0" nesting="0" /> <WordsStyle name="KEYWORDS5" fgColor="6600FF" bgColor="FFFFFF" fontName="" fontStyle="0" nesting="0" /> <WordsStyle name="KEYWORDS6" fgColor="000000" bgColor="FFFFFF" fontName="" fontStyle="0" nesting="0" /> <WordsStyle name="KEYWORDS7" fgColor="FF0000" bgColor="FFFFFF" fontName="" fontStyle="3" nesting="0" /> <WordsStyle name="KEYWORDS8" fgColor="FF0000" bgColor="FFFFFF" fontName="" fontStyle="3" nesting="0" /> <WordsStyle name="OPERATORS" fgColor="000000" bgColor="FFFFFF" fontName="" fontStyle="0" nesting="0" /> <WordsStyle name="FOLDER IN CODE1" fgColor="808040" bgColor="FFFFFF" fontName="" fontStyle="1" nesting="0" /> <WordsStyle name="FOLDER IN CODE2" fgColor="000000" bgColor="FFFFFF" fontName="" fontStyle="0" nesting="0" /> <WordsStyle name="FOLDER IN COMMENT" fgColor="000000" bgColor="FFFFFF" fontName="" fontStyle="0" nesting="0" /> <WordsStyle name="DELIMITERS1" fgColor="FF2400" bgColor="FFFFFF" fontName="" fontStyle="2" nesting="0" /> <WordsStyle name="DELIMITERS2" fgColor="000000" bgColor="FFFFFF" fontName="" fontStyle="0" nesting="0" /> <WordsStyle name="DELIMITERS3" fgColor="000000" bgColor="FFFFFF" fontName="" fontStyle="0" nesting="0" /> <WordsStyle name="DELIMITERS4" fgColor="000000" bgColor="FFFFFF" fontName="" fontStyle="0" nesting="0" /> <WordsStyle name="DELIMITERS5" fgColor="000000" bgColor="FFFFFF" fontName="" fontStyle="0" nesting="0" /> <WordsStyle name="DELIMITERS6" fgColor="000000" bgColor="FFFFFF" fontName="" fontStyle="0" nesting="0" /> <WordsStyle name="DELIMITERS7" fgColor="000000" bgColor="FFFFFF" fontName="" fontStyle="0" nesting="0" /> <WordsStyle name="DELIMITERS8" fgColor="000000" bgColor="FFFFFF" fontName="" fontStyle="0" nesting="0" /> </Styles> </UserLang> </NotepadPlus>
  6. When not inworld, I like using Notepad++ with custom user defined language to mimic the syntax highlighting and colors of LSL. The nice thing about Notepad++ is that in addition to auto indenting for you, it also will highlight the corresponding bracket/parenthesis in red when you place the cursor next to one of them. I find this very helpful for keeping track of nested scopes.
  7. Yes, because both the start and end coordinates required by llCastRay are independent of each other. Whenever you want to move a position in any direction relative to the current rotation, you need to multiply the position (plus the offset) by that current rotation. This is necessary for the end position because it's some meters away. And once you try to move the start position forward of the current camera position, then that too needs to be multiplied by the current camera rotation in order to keep it along the same direction.
  8. You would do the same thing you already did for the ray's endpoint coordinate. llGetCameraPos()+<5,0,0>*llGetCameraRot() Literally use the multiply operator "*" and the results from llGetCameraRot()
  9. You forgot to multiply that start position by the camera rotation. It's good practice to add instrumentation/diagnostic code to help visualize things when you're trying to track down a problem. In this case, it would be helpful to rez an object at the ray's start and termination coordinates (and also the point of any ray hits). As an example, the code below will check if it hit anything (the last value of the results list is always the number of hits). If we did hit something, the results list will always contain at minimum the uuid of the object hit, and the global position of the hit. You can use that to rez markers. (don't forget to add a prim called "marker" to the object's inventory. Also consider making it temporary to auto clean up) llRezObject("marker", start, ZERO_VECTOR,ZERO_ROTATION, 0); //rez marker at ray origin point if (llList2Integer(results, -1) > 0) //check if we hit something { llOwnerSay("Hit " + llKey2Name(llList2Key(results,0))); //say name of what we hit llRezObject("marker", llList2Vector(results,1), ZERO_VECTOR,ZERO_ROTATION, 0); //rez marker at impact position } else //we didn't hit anything { llOwnerSay("No hits"); llRezObject("marker", start+<range,0.0,0.0>*llGetCameraRot(), ZERO_VECTOR,ZERO_ROTATION, 0); //rez marker at ray termination point } Edit: I had made a comment about RC_MAX_HITS 15 being potentially high for what I assumed is a hit-scan weapon. But I don't know your use case nor how you're processing the results list. Suffice to say, having as few max_hits as possible is preferable if possible, as it saves yourself some work. That of course depends entirely on what you're doing with the ray's hits, so take from that what you will.
  10. Do these messages occur at regular intervals? If so, try to be online around the time it gets delivered. You should then have no problem selecting it in local chat to get more info on the object and block it. Although I'm somewhat puzzled to hear you say you're unable to identify the owner from the offline summary emails. Those typically contain the message, name of the sending object, name of the object's owner, and object SLURL. You're clearly getting the SLURL, as you say you tried to TP to the area. Are you sure the rest of the info isn't in the email? If all else fails, you could try opening up an Abuse Report and explain the problem to LL that way. Include as much information as possible. File it under "Disturbing the peace > Repetitive spam".
  11. Convex hull means that the physics shape is shrink-wrapped around the outer edges of the model and as such, does not allow for an accessible interior. If your uploaded model does not allow to set the physics shape to "prim" and is instead locked to convex hull, that implies the model does not have a valid physics shape and defaults to the convex hull generated by SL during the upload. So the question now is how are you creating the physics model for your mesh house? Are you making a separate model for the physics? Or are you attempting to use the visual model along with perhaps the various analyze/simplify steps on the uploader's physics tab?
  12. If any part of the linkset qualifies for using Land Impact accounting, then the entire linkset uses it as well. So your house is most likely already using the Land Impact accounting system. When you try to link your path cut sphere to it, that sphere will switch over to use LI and as a result, have a greatly increased LI rating. As I said before, usually it's the physics shape aspect of the pim that causes such a high LI calculation. You can avoid that by setting the "Physics Shape Type" of your sphere to "Convex Hull" in the features tab. That should let you link the sphere to the house.
  13. I wouldn't say it's accurate to say the prim was made to do something unintended... Rather, this happens because your object is using the newer Land Impact (LI) resource accounting method. It was introduced for mesh items, but even legacy prims can switch over to it if they are linked to a mesh object, or use any of the newer features like normal and specular mapping. As you observed, when a prim (usually spheres and tori) is sufficiently modified (tortured), their resource calculation will skyrocket under the new Land Impact calculation. Often times it is the physics shape causing the issue. So you can usually get around that by taking the tortured prim and setting its physics shape type to "None" or "Convex Hull" on the features tab. See this knowledge base article on the subject:
  14. Just to answer this particular part: yes this is possible with a particle stream. To summarize, configure the particle emitter parameters such that it is targeting another prim (PSYS_PART_TARGET_POS_MASK and PSYS_SRC_TARGET_KEY). Then apply a negative acceleration along the z axis (PSYS_SRC_ACCEL, <0.0,0.0,-5.0>). This will cause the stream to move from the emitter to the target and also dip downward globally at the middle of the stream before arcing back up to the target. I would also recommend using PSYS_PART_RIBBON_MASK which would turn the particle stream into a continuous and uninterrupted "ribbon" as opposed to a collection of separate particles. Edit: be aware that the orientation of the emitter will affect how the ribbon is shown as well. Each segment in the ribbon has length and width, but no depth. See the wiki page for info an the particle parameters.
  15. That's a very interesting idea. A few drawbacks come to mind, but I think most of them can be overcome. I suppose the most immediate concern would be filtering out clicks from players who are camming around and not in mouselook. But the worn target prim could very quickly check the agent status of whoever clicked them and react accordingly. After that, the issue of ammo and fire rate would need to be limited. You can prevent an avatar in mouselook from clicking on inworld objects by placing a HUD over their crosshairs. It can even be 100% transparent or have a full alpha texture and it still intercepts the user clicks, from what I've seen. This could be moved into place wherever the user needs to reload. Imposing a rate of fire may be an issue... Moving the hud click blocker in an out of place for this I think would be impractical, or at least quite laggy. After a little tinkering, I came up with a what I think is a better solution. I took a cylinder and made a path cut to take a chunk out of it. I then attached it to HUD center, rotated it 90 degrees such that the top was facing the screen and applied a spin via llTargetOmega about its x axis. Lastly, I moved the hud down slightly so its center of rotation was just below the avatar's corsshairs. As the hud spins, it blocks the user from clicking, but when the path cut gap comes into view, the user has a clear line of sight to click for a brief window. Its' effectively the same principal as the gun synchronization/interrupting gear which allowed early aircraft to fire guns through their propeller arcs. Different physical configurations of this gear and different spin rates could be employed to give different guns a rudimentary rate of fire. I only tested with prims, but I imagine a mesh with accurate physics shape could do the job just as well. Lastly, missing the target and ricochets might possibly be handled by the terrain itself being scripted to similarly react to incoming clicks like the worn targets. Some additional checks would be needed, like getting the position of the firing avatar so it may calculate incoming angle and a potential bounce angle. This could be used for rezzing a stray shot if the type of ammo is one that can bounce or leave temporary impact hole graphics. This just covers line of sight hitscan weapons. Anything that moves slower, along an arc, or can potentially penetrate surfaces would need something like what are traditionally done now (ray casts, physical projectiles, etc).
  16. At its most basic, you could build this by surrounding your house with a large box/dome/sphere and applying the panorama texture to the inside surface. This particular method usually requires a lot of space, because the illusion works better if the panorama surface is some distance away from you. The upside is that you can have the panorama be visible even if you're outside the house on your lawn (again, assuming you have enough space for it). Alternatively, if the plot isn't very big, or is an odd shape, or you want to dedicate all the space to your house, then you could instead create a series of smaller surfaces with the panorama texture and place them just outside the windows of your home. This would be much more compact space-wise, at the cost of being only able to see the panorama when inside the home looking out the windows. Regarding ground level vs sky level... the full surround approach tends to be obtrusive to outside observers. So if you're on mainland and want to be a good neighbor, you may want to consider the platform-in-the-sky. If you're only covering the windows, then I imagine it wouldn't' matter.
  17. That is correct: you cannot use multiple concurrent instances of llSetTextureAnim or llSetLinkTextureAnim on the same single prim/mesh. Doesn't matter of you try to target different faces, the most recent invocation of the function will override whatever is currently playing across the entire single prim/mesh. If you want to give the appearance of an animation playing at different rates on an object, you need to get creative. One possible approach is to split the mesh up into separate objects: one mesh (with one material slot) for each section that will play the texture animation at the desired rate. That way, you can still link them together into a linkset and use llSetLinkTextureAnim for each link.
  18. You can potentially reduce the number of uploads by consolidating several smaller textures into a larger one. A script could then be employed to automatically (or on command) change the repeats/offsets of the prim's face to show the desired image like ChinRey suggests.
  19. After logging into the official SL viewer, I notice that the Avatar profile floater GUI will require me to login again if I want to get full access to it. After providing the login credentials a 2nd time, it works as expected and seems to persist across logging out and back into the SL viewer for a day or so. But eventually the profile will again be "logged out". I've tried re-installing the viewer, clearing cache, even clicking the "remember me on this computer" checkbox (all inside the viewer gui), but the issue seems to remain. Is this normal? I feel like I shouldn't need to login again when I'm already actively in the viewer. And to be clear, I am only referring to the profiles accessed from inside the viewer itself. This has been going on for many months, but I finally got annoyed enough to ask about it. Is this something on my end I can fix?
  20. Happy retirement, Oz! Thank you for all the hard work, fixes and features over the years!
  21. That's what I'm thinking, yes. The object in question is probably an invisible attachment with a script which is in a loop, constantly checking to see if the avatar is playing the ground sit animation. When the script does detect the animation, it can change the transparency of the attachment to make it visible and play an appropriate animation to make it look like you're sitting on the attachment. Alternatively, you could set that animation to be your default ground-sit animation with llSetAnimationOverride. You can test this out for yourself with this little demo: //place the script in an attachment and click it when you're ground sitting default { touch_start(integer total_number) { if(llGetAnimation(llGetOwner()) == "Sitting on Ground") { llOwnerSay("ground sit detected"); } } } llGetAnimation is preferable to something like llGetAagentStatus, because the latter can't differentiate between sitting on prims and ground sitting.
  22. Generally speaking, getting a script to react to a gesture is easy enough. One approach is to use a listen event where the script is listening for a specific keyword on a specific channel from a specific source. For example, put the following scrip into a prim default { state_entry() { llListen(-5,"",llGetOwner(),"ping"); } listen(integer channel, string name, key uuid, string msg) { llOwnerSay("heard keyword '" + msg + "' from "+ llKey2Name(uuid) + " on channel "+(string)channel); } } Then create a custom gesture that has this for the chat to say: /-5ping When you trigger that gesture, it will speak the work "ping" on channel -5. This won't show up in local chat (because we used a negative channel number), but the scripted object from above will hear that as long as it's within normal chat range to you (since the gesture technically speaks through you). When the script hears this, it will speak its own diagnostic chat directly to you via llOwnerSay(). Building upon that, you can use either llAttachToAvatar() or llAttachToAvatarTemp() in place of the llOwnerSay() from the above example to attach the object to your avatar. See their respective wiki pages for info on how to use them. And be aware that you will nee to ensure that the object has permission to attach in the first place. So you will need to request the permissions prior to attempting to attach. This is also explained in the linked wiki pages.
×
×
  • Create New...