Jump to content

Miranda Umino

  • Posts

  • Joined

  • Last visited

Everything posted by Miranda Umino

  1. so , to test if the last key exists in the sim ? if it does not , to refresh with llGetkey ? key myVariable;......if ( llList2Vector( llGetObjectDetails(myVariable, [OBJECT_POS ] ), 0 == ZERO_VECTOR )myVariable = llGetKey();......... or faster : key myVariable;........if ( myVariable != llGetKey() )myVariable = llGetKey(); ????
  2. You may have sevarl scripts who call llRemoteLoadScriptPin at the same time . For instance , you have one main controller script , who callls llMessageLinked to the other scripts with a parameter The other scripts who receive link_message and call llRemoteLoadScriptPin : the parameter sent by the controller informs which "passive" script you want to remoteload In this case , your effective delay will be 3 seconds / number of scripts who call llremoteLoadScriptPin
  3. Why not to set your key via llGetKey inside your on_rez event ?
  4. number of particles ( after some seconds of starting) are PSYS_PART_MAX_AGE * PSYS_SRC_BURST_PART_COUNT / PSYS_SRC_BURST_RATE In your script : PSYS_PART_MAX_AGE filled with max_age = 9.5 PSYS_SRC_BURST_PART_COUNT filled with count = 1 PSYS_SRC_BURST_RATE filled with rate = 0.01 After some seconds , your system creates 9.5*1/0.01= 950 partiicles by second . It s a bit big Play with these 3 parameters to change the number of particles. Nevertheless , number of particles don t change the "density" of particles . You could "feel" there are more particles in changing other variables when in fact there are the same number or even less
  5. And who cares about these people who want to boycott ? It has happened at very world cup soccer or olypic games for at least 30 years !!!
  6. In fact it s 1$ / hour or 10$ / unlimited for a month The annouce is here http://community.secondlife.com/t5/Featured-News/SL-Go-Beta-Updates-Pricing-Expands-to-New-Regions/ba-p/2590948 Description of available countries are here ( mainly europe with russia , USA ) http://blog.onlive.com/2014/04/03/sl-go-new-pricing-support-for-more-countries/
  7. I disagree . Firstly , the decision of 28-02-2014 gives back the authorisation in writing ; not only reading. Secondly , even with only the authorisation in reading ( no-writing) , it won t prevent to get some flames and dramas elsewhere in forums , blogs , or here with big speculations about what s happening and why it s happening Thirdly , i don t see why you try to test in every channels . There is a field dedicated for the channel ( or the sim ) where the bug is met . The QA team can easily determinate , when the bug is reproducible , which channels are impacted. Fourthly, it s not your role to avoid duplicates . It s the role of the QA team . And sometimes duplicates are needed : because the bug has been detected in a particular way for an user . But , nearly always , the bug has other impacts and can be detected differently by other users . Several use cases are needed to know in depth what s happening. It s in crossing the informations and the different inputs or experiences , we fix better the bugs. If i fill a JIRA "this feature doesn t work sometimes, for instance this function in LSL doesn work for some specific values of input" , and i give some instances of failures , , i won t be exhaustive . And if you read later my JIRA , in thinking "oh .. i won t create a duplicate" , the fix of Linden will be wrong : it will fix maybe the bug for my specific inputs , but maybe not for your inputs
  8. and many dramas and flames and useless topics will be back too , i guess
  9. I m sorry Babette ; i can t help you because i don t have got 3DS max. In trying with Blender ; for now , i see the weight painting correctly in the files for blender .2.69 Unfortunately , i have not understood my actual problem with armature ; the skeleton is totally deformed after importation in SL . But , i hope i will understand later what i ve done wrong **edit ** ok i ve understood my problem .. The exporter is not ready yet : the Collada Exporter as of Blender 2.69 is incompatible with Collision bones. a fix in the nexts versions of Blender is expected I hope someone else could answer to you
  10. Great news . Thanks @babette : i am not sure to understand you ; but if you are talking about weighting paints , they are on the bones in Majuscules , not the bones prefixed with m* ( except the m_Toes ) So , NECK , not mNeck ; HEAD not mHead so : PELVIS BELLY CHEST NECK HEAD L_CLAVICLE L_UPPER_ARM L_LOWER_ARM L_HAND R_CLAVICLE R_UPPER_ARM R_LOWER_ARM R_HAND L_UPPER_LEG L_LOWER_LEG L_FOOT R_UPPER_LEG R_LOWER_LEG R_FOOT BUTT * LEFT_PEC * RIGHT_PEC * LEFT_HANDLE RIGHT_HANDLE LOWER_BACK UPPER_BACK If not , i don t see . Maybe an import problem ? What software / version do you use ?
  11. Your max speeed in other games of around 80-100 kbps : they are kilo BYTES per seconds When youplay SL, your download speed around 300-400 kbps : they are kilo BITS per seconds . So 8 X less . Yes your SL download with the very , very , very low performance of 40-50 kilo bytes per seconds . To add .. I have never seen in Europe with DASL connections , someone having SL upper to 1500 kilo BIT per seconds .. So a ridculous low traffic of 200 kilo Bytes per second Even when their DASL bandwith can download 20 mega bit per seconds ( 20 000 kilo bits per seconds if you prefer ) SL has ALWAYS downloaded lower than the other applications . You may verify by other tools who log your traffic network
  12. As the simulator can t brodacast to objects and viewers a refresh rate more than 45 FPS , it s normal More : you iterate 65536 times , but your text can change only 100 times . So you loose time and efficience You should write your script for instance like this : default{ touch_start(integer total_number) { integer size = 256; float water_level = (integer)llWater(ZERO_VECTOR); integer row = 0; integer column = 0; integer water_count; integer land_count; integer hill_count; integer cell_size = 1; vector current_pos = llGetPos(); integer process_count = (size/cell_size)*(size/cell_size); float mytime ; llResetTime(); while(column<=size&&row<=size) { column+=cell_size; if(column>=size) { column = 0; row+=cell_size; } vector pos = <column,row,0>; float ground_level = llGround(pos-current_pos); if(ground_level<water_level) ++water_count; else if(ground_level < 50) ++land_count; else ++hill_count; --process_count; if ( llGetTime() - mytime > 0.022222 ) { mytime = llGetTime(); // llSetText((string) (process_count/ ((size/cell_size)*(size/cell_size)/100)),<1,1,1>,1); llSetLinkPrimitiveParamsFast(0,[PRIM_TEXT,(string)(process_count/ ((size/cell_size)*(size/cell_size)/100)),<1,1,1>,1]); //llSetText((string) (process_count/ ((size/cell_size)*(size/cell_size)/100)),<1,1,1>,1); } } float time = llGetTime(); llOwnerSay("water count:"+(string)water_count+"\nland count:"+(string)land_count+"\nhill count:"+(string)hill_count+"\ncall time:"+(string)time+"s"); }} ( the 0.02222 is equal to 1 /45 , so the tiime for one frame of the simulator) It exists again a little overhead because of llGetTime, ( and all your costly divisions inside llsfp) , but it s around your times expected
  13. "Overall, Grand Theft Auto IV took over 1000 people and more than three and a half years to complete, with a total cost estimated at approximately $100 million" Probably GTA V has costed around the same resources , maybe more So , as you are working alone in SL , it will take you 1000 * 3.5 years = 3500 years to get your sim like GTA V . And of course , only if you are connected online ( or build on maya/blender etc.. ) with 40 hours per week . If you work only the week end , for instance , with 4 hours , it will take you 35 000 years to finish your dream. And you will need to fill your tip jars with 100 millions $ = 12 500 millions l$ Good luck ! Don t loose hope ! We trust in you !
  14. A good thing to know is that the density is homogenous for objects . So you could avoid your computations in using the mass of the object and its density ComputeVolume(){ float volume; list l = llGetPhysicsMaterial(); float mass = llGetMassMKS(); float density = llList2Float(l,-1); if ( density != 0.0 ) { volume = mass / density; } llOwnerSay(llList2CSV( [ "Mass ", mass , "\n", "Density", density, "\n", "Volume", volume, `"\n" ]));} mass in kilograms, Density in kilograms/meter cube Volume in meter cube It will avoid you to remember every formulas for tores , prisms , more complex objects, and sliced objects ( size of a sliced object is not the "visible" size of the object) To add , you ll get less errors because of floating point errors , in using mass and density
  15. Interesting : the point should be normalized ( if i understand you , the magnitude has no importance ) . But in the build tools of the flexi prim , we can set the vector , but it s not normalized . Probably it explains the confusions happened and the difficulties to undertand how work the flexis
  16. It depends of your method called in your form .. When your method of the form is "GET", your pararams are not in the body of the http request , but they are in the queryy String .. So you do : http_request(key id, string method, string body) { if (method == URL_REQUEST_GRANTED) { url = body; llOwnerSay(url); } else if (method == URL_REQUEST_DENIED) { llWhisper(0, "Error! I was unable to get an HTTP url for server communication. " + body); } else if (method == "GET") { string params = llGetHTTPHeader(id, "x-query-string"); llHTTPResponse(id, 200, "GET received!" + "body=" + body + "\nparams="+params); llOwnerSay("GET received!" + body); } else { llHTTPResponse(id, 405, "Method unsupported"); } } If in your HTML form , your method is "POST" , your params are in the body , but not in the query string
  17. It s a very very very alpha ... But they talk there http://community.secondlife.com/t5/LSL-Scripting/LSL-Editor-Test-version-for-Visual-Studio/td-p/1361097
  18. Just sets to null its value : jsonString= llJsonSetValue(jsonString, ["field"] , JSON_NULL ); It makes sense : suppose you have got an object { field1 : 3.1415926 , field2 : [ 1 ,2,3,4 ], field3 : "hello world" } You want to delete the field2 . It sgenerally better to get { field1 : 3.1415926 , field2 :null, field3 : "hello world" } and not { field1 : 3.1415926 , field3 : "hello world" } Because the next times you will try to fetch values from your JSON string , you couldn t know which fields ( keys if you prefer ) your JSON string has . So you will get JSON_INVALID without to know why ; without to know if your JSON string was badly parsed , or if your accessors/keys/specifiers (field2) was incorrect
  19. What is the interest to talk on the local chat to set the name of object ? you may use llTextBox : ( http://wiki.secondlife.com/wiki/LlTextBox) Every viewer has implemented it for a long time listen(integer channel, string name, key id, string message) { message = llStringTrim(message , STRING_TRIM); if(message == "Name Object") { llOwnerSay("Please List name in Local Chat"); llTextBox(channel, id, "Please list name in this text box") } else if ( message != "") { llSetObjectName(message); llListenRemove(handleListener); } }
  20. It depends of your build : llSetKeyFramedMotion turns "naturally" around some axes reported on the center of the root prim of the object . llSetAngularVelocity turns "naturally" around some axis reported on the center of the mass of the object .
  21. There were no changes about llListen and llGetOwner .recently Check again you script . Or reset it ( particulary if your object has changed owner and you listen the owner )
  22. ha ha , my bad . I have been too fast llFrand need a +1 when we want an integer because there is 1/2^32 possibilty to get the upper limit. But the number of lines are already +1 compared to the upper index of the list You are right
  23. // Touch a quote script// By CodeBastard Redgrave// Reads quotes from a notecard and displays them randomly when you touch!// BEWARE it cannot handle quotes more than 256 characters. Split them into multiple lines if needed.// This is a free script, DO NOT RESELL!// It's loosely based on the classic dataserver script from the LSL wiki.// Feel free to modify it to make your own book! Make code not war <3string notecardName = "Quotes";integer currentLine;key notecardRequestID;integer quoteIndex;integer numberOfQuotes;list listOfQuotes;init(){ integer numberOfNotecards = llGetInventoryNumber(INVENTORY_NOTECARD); if (numberOfNotecards) { currentLine = 0; notecardRequestID = llGetNotecardLine(notecardName, currentLine); llOwnerSay("Loading notecards now..."); }}default{ on_rez(integer start_param) { llResetScript(); } changed(integer change) { if (change & CHANGED_INVENTORY) llResetScript(); } state_entry() { init(); } touch_start(integer num_detected) { quoteIndex = (integer)llFrand(numberOfQuotes + 1); llSay(PUBLIC_CHANNEL, llList2String(listOfQuotes, quoteIndex)); } dataserver(key id, string data) { notecardRequestID = NULL_KEY; if (data == EOF) { currentLine = 0; numberOfQuotes = llGetListLength(listOfQuotes); integer freeMemory = llGetFreeMemory(); llOwnerSay("Done loading notecards!\n" + (string)numberOfQuotes + " quotes loaded, free memory " + (string)freeMemory); } else { if (data != "") listOfQuotes += [data]; notecardRequestID = llGetNotecardLine(notecardName, ++currentLine); } }} Just change the touch_start event
  24. I don t know But i llGetParcelDetails returns some informations than the sim knows . The sim doesn t need to fetch some datas from other servers to return the data to the script And i guess the price of a parcel is probably not stored in the sim , but , because it s a market data , in the dataservers or other centralized servers. So , if one day Linden Lab decides to return the price of a parcel to the scripts , i guess Linden Lab will choose to create an another function . Some async functions in the same kind of llRequestAgentData , llRequestUserName, llRequestSimulatorData etc .. Or to give us an HTTP API as slurl It s only a guess, an hypothesis About llReclaimParcel(ID) or llSetParcelSalePrice(ID, amount) , i am not sure it s a good idea to allow a script to do an action who can change the owner of the parcel . For me , it s a different problem
  • Create New...