Jump to content

Clarke Kondor

Resident
  • Posts

    32
  • Joined

  • Last visited

Reputation

1 Neutral
  1. We are looking for an experience scripted to help with a cash paying customer's project. The work would include: · Adapt existing experience key-based “sit” scripts that control avatar cameras. These scripts utilize both llSetCameraParams as well as LlSetCameraAtOffset and LlSetCameraEyeOffset · Create slide show scripts that communicate with our out-world event management system. · Create media on a prim scripts that communicate with our out-world event management system. · Create scripts to gather region, parcel and user information that is passed to our out-world data logging system · Scripting of an experience key based HUD that is used to display options to the User and teleport them to desired locations. o The HUD will need to communicate with our out-world event management system o Experience with HTML and PHP are a plus If you have related experience and are interested please contact me via IM or email me at jeff@cndg.info
  2. I recently turned on Develop > Show Info > Show Avatar Render Info and am unclear on what some of the parameters mean. All I can find in the wikis and FAQs is information about the old Avatar Rendering Cost. Can someone point me to an explanation of: "rez""bytes""area"for this tool. Thanks, - Clarke
  3. Kate, What type of laptop did you get? It would be good to know what works well. -Clarke
  4. For me also itis almost always quoted on a per project basis. There are several reasons for this As you gain experience (and develop your library of code snippets) you get faster. Eventually your per/hour rate gets so high it scares people off Like Rolig said if a project interests me or will make me delve deeper into an aspect of scripting I have avoided (rotations anyone?) I would quote a low price to get the work because I want it. Big projects can be broken out into sections and you get paid as you deliver them You can add a "client maturity" factor. As you talk with the client about exactly what they want you get a feel for how well they thought through their needs. If they appear to be fuzzy, quote high because there WILL be rework. I realize that here a per hour rate would actually be better. However, I have found that type of client also has a hard time understanding them changing their minds means you have to rewrite the whole thing and they balk at paying the extra anyway... so build it in up front Don't be afraid to discuss price and timeframe. If they seem hesitant about either ask them! "does that seem too high? or "is that too long" goes a long way to clearing up misunderstandings. Sometimes you can get them to take out a high complexity, low value function and adjust the cost and time. Also talk about perissions. Generally I give them the work full perm. I have found telling people that at the end of the project it is their intellectual property goes a long way. I also found it worthwhile to ask for 1/2 up front with the rest due "when it is delivered and you are completely happy with it". Always, be availble to them and be on time. At the end of the day, having the client feel good about you and your work is the key to more business.
  5. The LSLWiki touches on this topic http://lslwiki.net/lslwiki/wakka.php?wakka=llSitTarget Linked Objects With Multiple Sit Targets What is especailly nice is we can set all the sit targets from the main script and not have put in, and then take out ,sittarget scritps in all the child prims. Hmm not sure when it would be useful but we can now even easliy change child sit targets on the fly.
  6. Bridging off of Lucinda Bulloch's post ... you could also sit them in front of a prim and use Media On A Prim to display and interact with web pages.
  7. If you are using several large lists, store them as strings and parse each to a reusable list variable only when needed
  8. Nice trick for passing the vector in the start parameter. Would you add it to the LSL library? - Clarke
  9. Either I have been way to lax looking at my sales etc, or there were some very recent changes but there are now vast improvements to the reports available to merchants. Thanks LL for the chnages! - Clarke
  10. The script below will stop and start the blinking. It listens for the Owner on channel 911 - Clarke vector COLOR_1 = <1.0,0.0,0.0>; // Color 1 as RGBvector COLOR_2 = <255.0,255.0,255.0>; // COLOR 2 as RGBinteger USE_COLOR_1;default { state_entry() { USE_COLOR_1 = FALSE; llListen(911,"",llGetOwner(),""); llSetTimerEvent( 0.2); } listen(integer channel, string name, key id, string message){ message == llToLower(message) if(message == "lights on") llSetTimerEvent(0.2); else if (message == "lights off")llSetTimerEvent(0.0); } timer() { if (USE_COLOR_1) llSetColor( COLOR_1, ALL_SIDES ); else llSetColor( COLOR_2, ALL_SIDES ); USE_COLOR_1 = !USE_COLOR_1; }}
  11. The answer to your first question is yes. The second question I am not sure what you are asking. In each state's money event you can use global variables to calculate your splits and hold the split receiver's keys and use llGiveMoney to hand out the splits. - Clarke
  12. Void makes an excellent point about variables being passed by value, not reference. One option may be to keep the functions but not pass the information to it. Rather have the function access a global variable, especially for lists. If I understand LSL correctly, with this method you are not using up memory making a copy of a large list just to pass it to a function. - Clarke
  13. You may want to rethink your design, It would take an enormous number of textures or several highly complex textures that are moved around to cover all combinations of 1 hour blocks in a 30 day month. Using a few more prims,may be worth while. For example you could break it down into 1 day on a prim and using xyzzy to block out certain hours on each day. xyzzy would give you 10 blocks per day. http://wiki.secondlife.com/wiki/XyzzyText - Clarke
  14. There is a way to do this. Basically you sell them an object that when rezzed generates a one-time key, passes it to the database and gives the purchaser a link via an owner-only IM or accepts an email address from them to which the .psd can be sent. The object then deletes itself. If you would like to discuss building this out please let me know the best way to contact you. - Clarke
  15. This code will allow you to get the User Name, Display Name and Profile picture UUID all with a single call. The avatar does not have to be in the same sim as the object and it is super fast. - Clarke //Clarke Kondor, June 2011; // Returns the User Name and Profile Picture UUID plus the current Display Name (if one exists) with a single call // This demo version will say the names to you and put the picture on all sides of the prim /////////////////////////WARNING////////////////////////////// // This function uses the SL World API as of June 29, 2011 // LL does not support this API // If LL changes the format of this API your content may break ////////////////////////////////////////////////////////////// string TargetKey = "96ce2eec-03c4-46f6-9068-a92444650139"; // put the key of the target avatar here string URL = "http://world.secondlife.com/resident/"; key kReq; string UserName; string DisplayName; string ProfilePicUUID; default { touch_start(integer total_number) { kReq = llHTTPRequest(URL + TargetKey,[],""); } http_response(key request_id, integer status, list metadata, string body) { if( request_id == kReq) { integer StartIndex = llSubStringIndex(body,"<title>"); integer EndIndex = llSubStringIndex(body,"</title>"); if(status !=200) { UserName = "NULL"; DisplayName = "NULL"; ProfilePicUUID = "NULL"; } else { if( StartIndex == -1) { UserName = "NULL"; DisplayName = "NULL"; } else { string tempString = llGetSubString(body,StartIndex+7,EndIndex-1); integer tempIndex = llSubStringIndex(tempString,"("); if( tempIndex >=0) // contains both a UserName and DisplayName { DisplayName = llGetSubString(tempString,0,tempIndex-1); UserName = llGetSubString(tempString,tempIndex+1,-2); } else // contains User Name only { DisplayName = "NULL"; UserName = tempString; } tempIndex = llSubStringIndex(body,"imageid")+18; if( tempIndex >17)ProfilePicUUID = llGetSubString(body,tempIndex,tempIndex+35); else ProfilePicUUID = "NULL"; } } llOwnerSay("Display Name is " + DisplayName + "\nUser Name is " + UserName + "\nProfile Picture UUID is " + ProfilePicUUID); llSetTexture(ProfilePicUUID, ALL_SIDES); } } }
×
×
  • Create New...