Jump to content

EsePibe Borkotron

Resident
  • Content Count

    9
  • Joined

  • Last visited

Community Reputation

0 Neutral

About EsePibe Borkotron

  • Rank
    Newbie
  1. Hello, i was searching the function llSetLinkClickAction() or equivalent in llSetLinkPrimitiveParamsFast(), but i not found. This forces me to use scripts in child primitives. But this is a step backwards. Does anyone know a trick or hack to do this from the root prim?
  2. If the owner of the box is also its creator, the script works as a notecard giver and show in float text the name of object and the description. I use the description to put the price but you can put other content. The notecard for delive have the name "__" + objectName. For example, if the box have the name "Pink panty boxed" the notecard must have the name "__Pink panty boxed". If the owner of the box is not the creator, that is, a customer. The script is a unpacker and will autodelete in 120 seconds. Edited: This script is not to be used with no copy objects, or the client may lose its purchasing. integer TIME_TO_DIE = 120; integer g_iTimeToDie; default { state_entry() { llSetMemoryLimit(4096 * 3); llSetText( llGetObjectName() + "\n" + llGetObjectDesc() + "\nTouch here for info", <1, 1, 1>, 1); if (llGetOwner() != llGetCreator()) { state NewOwner; } // if } // state_entry on_rez(integer start_param) { llResetScript(); } // on_rez touch_start(integer total_number) { llGiveInventory(llDetectedKey(0), "__" + llGetObjectName()); } // touch_start changed(integer change) { if (change & CHANGED_OWNER) { state NewOwner; } // if } // changed } // default state NewOwner { state_entry() { g_iTimeToDie = TIME_TO_DIE; llSetTimerEvent(1.0); } // state_entry on_rez(integer start_param) { g_iTimeToDie = TIME_TO_DIE; llSetTimerEvent(1.0); } // on_rez touch_start(integer total_number) { if (llDetectedKey(0) != llGetOwner()) { return; } // if llSetTimerEvent(0.0); llSetText("unpacking.....", <1.0, 1.0, 1.0>, 1.0); list lInventory; integer iCounter; integer iNumItems = llGetInventoryNumber(INVENTORY_ALL); string sName; for (iCounter = 0; iCounter < iNumItems; iCounter++) { sName = llGetInventoryName(INVENTORY_ALL, iCounter); if (sName != llGetScriptName()) { lInventory += [sName]; } // if } // if if (llGetListLength(lInventory) > 0) { llOwnerSay("Search in your inventory one folder with name " + llGetObjectName()); llGiveInventoryList(llGetOwner(), llGetObjectName(), lInventory); } else { llOwnerSay("Sorry, box is empty!"); } // if llSetTimerEvent(1.0); } // touch_start timer() { g_iTimeToDie -= 1; llSetText( "Touch me to unpack.\nThis box will be autodeleted in " + (string) g_iTimeToDie + " seconds.", <1.0, 1.0, 1.0>, 1.0); if (g_iTimeToDie <= 0) { llDie(); } // if } // timer } // NewOwner
  3. Anything that uses the typical trick "llSetLinkPrimitiveParamsFast (LINK_THIS, [PRIM_FLEXIBLE, TRUE, 0, 0, 0, 0, 0, <0,0,0>]);" to make a single prim phantom in the linset stop working. This includes phantom doors and many sculpted buildings using a script to make phantom the door frame.
  4. When anyone click on it, just appear the map to your store. If you change the store of site, then edit the <meta ... in your web page.
  5. Hi, i know that is not the same, but while LL develop the dynamic landmark this script can be a temporary solution for you: First, create yourselt an account in Blogger or other site or open a free web page. In your case you can use your existing web page. Edit the HTML of your site and ADD this line just after of <head> tag, <meta content='SITE' name='Grojnowski (66, 34, 69)'/> Create a primitive and add this script: // Create one prim and put this script inside.// Textures obtained from: http://wiki.secondlife.com/wiki/Sculpted_Prims:_Sculpt_Maps_and_Texturesdefault{ state_entry() { llSetPrimitiveParams([ PRIM_SIZE, <1.0, 1.6, 1.0>, PRIM_ROTATION, llEuler2Rot(<67.0, 0.0, 0.0> * DEG_TO_RAD), PRIM_TYPE, PRIM_TYPE_SCULPT, "39fba6dd-ae01-bd23-6fad-a25e4ea2a5fc", PRIM_SCULPT_TYPE_SPHERE, PRIM_TEXTURE, ALL_SIDES, "ddb769c5-f893-96f3-0cfc-641d660a7e35", <1.0, 1.0, 0.0>, ZERO_VECTOR, PI/2, PRIM_BUMP_SHINY, ALL_SIDES, 1, 0 ]); llRemoveInventory(llGetScriptName()); }} This will convert the ugly prim in a sculpted pin landmark. Create other script with this content. I changed the constants for your case. //_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_///_/_/ _/_///_/_/ DINAMIC LANDMARK SCRIPT _/_///_/_/ By: EsePibe Borkotron _/_///_/_/ _/_///_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_///// Create yourself an account in Blogger and edit the HTML to put this line just after of <head>// <meta content='SITE' name='RegionName (128, 128, 22)'/>string FLOAT_TEXT = "Click here to go to my store.\n.\n.\n.";string MY_BLOG_URL = "http://toytalks.weebly.com/";float HOUR = 3600.0; // Seconds in one hour.float UPDATE = 24; // Every how many hours make an update.key gkReqId;string gsRegion = "";vector gvCoors = ZERO_VECTOR;integer giNumHours;default { state_entry() { gkReqId = llHTTPRequest(MY_BLOG_URL, [HTTP_METHOD,"GET"], ""); giNumHours = 0; llSetTimerEvent(3600.0); } // state_entry on_rez(integer start_param) { llResetScript(); } // on_rez timer() { if (giNumHours < UPDATE) { giNumHours++; } else { giNumHours = 0; gkReqId = llHTTPRequest(MY_BLOG_URL, [HTTP_METHOD,"GET"], ""); } // if } // timer touch_start(integer num_detected) { if (gsRegion == "") { return; } // if integer iCount; for (iCount = 0; iCount < num_detected; iCount++) { key kUser = llDetectedKey(0); llMapDestination(gsRegion, gvCoors, ZERO_VECTOR); } // for } // touch_start http_response(key request_id, integer status, list metadata, string body) { integer i; if (request_id == gkReqId) { list lDatos = llParseString2List(body, ["<meta content=SITE' name=], []); integer iLong = llGetListLength(lDatos); if (iLong < 2) { llOwnerSay("Error: Dinamic landmark data not found."); } else { list lTokens = llParseString2List(llList2String(lDatos, 1), ["'"], []); string sLandmark = llList2String(lTokens, 0); //llOwnerSay("DEBUG " + sLandmark); lTokens = llParseString2List(sLandmark, ["(", ")"], []); gsRegion = llStringTrim(llList2String(lTokens, 0), STRING_TRIM); gvCoors = (vector) ("<" + llList2String(lTokens, 1) + ">"); if (gsRegion != "") { //llOwnerSay("DEBUG - Region: [" + gsRegion + "] Coordinates: " + (string) gvCoors); llSetText(FLOAT_TEXT, <1.0, 1.0, 1.0>, 1.0); } else { llOwnerSay("ERROR: The format of your region string is incorrect: [" + sLandmark + "]"); llSetText("", <1.0, 1.0, 1.0>, 1.0); } // if } // if } else { llSay(0, (string) status + " error"); } // if } // http_response } // default The HTTP petittion is maded when the pin is rezzed or every 24 hours. You can give to your visitors a normal landmark and this dinamic landmark. EDIT: Modified error in timer event.
  6. I want to send to all purchasers of a script an update that fixes a minor bug and implements some improvements. I have a list in a notecard of everyone who purchased inworld, but I just discovered that the list of transactions in marketplace not to dump to CSV or XML. I remember doing it once with the old XStreetSL. Has anyone found a way to do this in Marketplace?.
×
×
  • Create New...