Jump to content

Steffan Mielziner

Resident
  • Posts

    8
  • Joined

  • Last visited

Everything posted by Steffan Mielziner

  1. When I browse the events at https://secondlife.com/my/community/events/index.php?lang=en-US I see pictures associated with every event. When I search for events in Firestorm all the pictures are blank. I don't see anything on the event form submission page that asks for an image. How does an image get tied to an event and why doesn't Firestorm show the event images?
  2. I've never owned a full sim before, but I finally decided today that I'd pull the trigger on that. Of course, it seems that full private regions are not being allocated until the cloud deploys to AWS and Google are stabilized ... estimated to be a few months away yet. My luck. It seems that people sometimes put their full sims up for sale here. So, being a complete noob at sim ownership and transfers, I wanted to make sure I understand this process before I even think about throwing large amounts of cash around. Please correct me if my understanding here is wrong ... Full private sims started, years ago, at a monthly maintenance fee of USD$195. At some point, a bunch of new servers were deployed and the fee went up to USD$279 for new sims. Everyone that already had a sim was "grandfathered" (aka GF) at that lower original price. Then, the grandfathered monthly fee dropped from USD$195 to USD$179 and the regular/non-grandfathered (aka non-GF) dropped from USD$279 to USD$229. Linden Labs will honor the GF monthly fee, if the sim was GFed, during a transfer for a transfer fee of USD$300. Otherwise, the transfer fee from non-GF to non-GF or GF to non-GF is USD$100. The seller and buyer need to both submit support tickets to effect the transfer. The seller pays the transfer fee from the buyer's payment in L$. Therefore, the agreed upon purchase price must exceed the L$ equivalent of the transfer fee at the current market exchange rate. The purchase price is stated and agreed upon in $L. The buyer needs to have that amount of L$ available in their account at the time the support tickets for selling/purchasing are submitted. The date of collection of the monthly fee is non-modifiable and must be available as L$ in the owner's account. Example: Full GF Sim w/ a selling price of L$80,000 and intent of keeping GF status: Seller proceeds: L$80,000 - L$75,000 (USD$300 fee x ~L$250/L$ exchange) = L$15,000 Full non-GF Sim w/ a selling price of L$35,000: Seller proceeds: L$35,000 - L$25,000 (USD$100 fee x ~L$250/L$ exchange) = L$10,000 Thanks, Steff
  3. I've created an object with a script that reads a file to present a dialog of selections for setting the parcel sound URL. It works perfectly for me. After I deed it to the group, of which I am an owner, the script still works, but it tells me that I no longer have permission to view or edit either the script or the notecard that defines the dialog selection. I want it deeded to the group so other group members can make new entries in the notecard. What am I missing here? -Steff
  4. Awesome. Thank you Rolig! this seems to work flawlessly: string danceFileName; integer currentDanceNum; integer totalDances; key currentAvatarKey; default { state_entry() { currentDanceNum = 0; totalDances = llGetInventoryNumber(INVENTORY_ANIMATION); llSetSitText("Dance"); llSitTarget(<0.0, 0.0, 1>, ZERO_ROTATION); } timer() { llStopAnimation(danceFileName); llSetTimerEvent(0.0); currentDanceNum = currentDanceNum + 1; if (currentDanceNum == totalDances) { currentDanceNum = 0; } danceFileName = llGetInventoryName(INVENTORY_ANIMATION, currentDanceNum); list danceFileNameTokens = llParseString2List(danceFileName, [";"], []); string danceLength = llList2String( danceFileNameTokens, 1 ); llStartAnimation(danceFileName); llSetTimerEvent((float)danceLength); } changed(integer change) { if (change & CHANGED_LINK) { key requestingAvatarKey = llAvatarOnSitTarget(); if (requestingAvatarKey) { llRequestPermissions(requestingAvatarKey, PERMISSION_TRIGGER_ANIMATION); currentAvatarKey = requestingAvatarKey; } else { if (llGetAgentSize(currentAvatarKey) != ZERO_VECTOR) { llStopAnimation(danceFileName); } llSetTimerEvent(0.0); llResetScript(); } } } run_time_permissions(integer perm) { if (perm & PERMISSION_TRIGGER_ANIMATION) { llStopAnimation("sit"); danceFileName = llGetInventoryName(INVENTORY_ANIMATION, currentDanceNum); list danceFileNameTokens = llParseString2List(danceFileName, [";"], []); string danceLength = llList2String( danceFileNameTokens, 1 ); llStartAnimation(danceFileName); llSetTimerEvent((float)danceLength); } } }
  5. There seems to be one minor bug left in this, if an avie doesn't stand before logging off, I get: llStopAnimation: Script trying to stop animations but agent not found Is there a good way to ask if anyone is still dancing on the animation or if the user is still online before trying to stop? I was thinking about trying to use llRequestAgentData with DATA_ONLINE, but then I noticed that this seems to be unresolved https://jira.secondlife.com/browse/SVC-6831? suggestions? Thanks, -Steff
  6. Thank you Innula and Love for the detailed reply. With your help, I finally got it working. I think in my brain I'm mixing up procedural code with event driven scripting. For completeness, here is what I ended up with: string danceFileName; integer currentDanceNum; integer totalDances; default { state_entry() { currentDanceNum = 0; totalDances = llGetInventoryNumber(INVENTORY_ANIMATION); llSetSitText("Dance"); llSitTarget(<0.0, 0.0, 1>, ZERO_ROTATION); } timer() { llStopAnimation(danceFileName); llSetTimerEvent(0.0); currentDanceNum = currentDanceNum + 1; if (currentDanceNum == totalDances) { currentDanceNum = 0; } danceFileName = llGetInventoryName(INVENTORY_ANIMATION, currentDanceNum); list danceFileNameTokens = llParseString2List(danceFileName, [";"], []); string danceLength = llList2String( danceFileNameTokens, 1 ); llStartAnimation(danceFileName); llSetTimerEvent((float)danceLength); } changed(integer change) { if (change & CHANGED_LINK) { key av = llAvatarOnSitTarget(); if (av) { llRequestPermissions(av, PERMISSION_TRIGGER_ANIMATION); } else { if (danceFileName) { llStopAnimation(danceFileName); } llSetTimerEvent(0.0); llResetScript(); } } } run_time_permissions(integer perm) { if (perm & PERMISSION_TRIGGER_ANIMATION) { llStopAnimation("sit"); danceFileName = llGetInventoryName(INVENTORY_ANIMATION, currentDanceNum); list danceFileNameTokens = llParseString2List(danceFileName, [";"], []); string danceLength = llList2String( danceFileNameTokens, 1 ); llStartAnimation(danceFileName); llSetTimerEvent((float)danceLength); } } }
  7. I have an object that I put some dance animations into. The files are named like so: <dance_name>;<length_in_seconds> I want the avie to be able to sit/dance, continually play each animation to its length, move on to the next dance, then continually loops back to whatever the first animation is. So, THAT part seems to work OK. What doesn't work is getting the animations to stop once the avie stands. Even after telling the Avater Health to Stop Animations in the client, the next dance will kick in after the sleep timeout. What am I doing wrong here? Thanks, Steff string danceFileName; integer dancing; start_dancing() { integer totalDances = llGetInventoryNumber(INVENTORY_ANIMATION); integer currentDanceNum = 0; dancing = 1; while( dancing ) { danceFileName = llGetInventoryName(INVENTORY_ANIMATION, currentDanceNum); list danceFileNameTokens = llParseString2List(danceFileName, [";"], []); string danceLength = llList2String( danceFileNameTokens, 1 ); llStartAnimation(danceFileName); llSleep( (float) danceLength ); llStopAnimation(danceFileName); currentDanceNum = currentDanceNum + 1; if (currentDanceNum == totalDances) { currentDanceNum = 0; } } } default { state_entry() { llSetSitText("Dance"); llSitTarget(<0.0, 0.0, 1>, ZERO_ROTATION); } changed(integer change) { if (change & CHANGED_LINK) { key av = llAvatarOnSitTarget(); if (av) { llRequestPermissions(av, PERMISSION_TRIGGER_ANIMATION); } else { if (danceFileName) { llStopAnimation(danceFileName); } dancing = 0; llResetScript(); } } } run_time_permissions(integer perm) { if (perm & PERMISSION_TRIGGER_ANIMATION) { llStopAnimation("sit"); start_dancing(); } } }
×
×
  • Create New...