Jump to content

Klausiii

Resident
  • Content Count

    7
  • Joined

  • Last visited

Community Reputation

0 Neutral

About Klausiii

  • Rank
    Newbie

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. Thanks both for the suggestions, i will try to change things and make it work. As soon i have new information or the problem have been solved i will write a message again!
  2. Hi there, now i am trying to inplement the dialogmenu as Innula told me to do. So far it is working, only problem is that i not see the ----> button even though there are more as 14 people. Already checked the scripted multiple times but am not able to find the error :-( Could somebody give me tips to solve this problem please integer listen_handle; list namesList; list uuidList; integer dlgHandle = -1; integer dlgChannel = -12345; integer gMenuPosition; // Index number of the first button on the current page integer gLsn; // Dialog Listen Handle Menu() { integer Last; list Buttons; integer All = llGetListLength(namesList); if(gMenuPosition >= 9) //This is NOT the first menu page { Buttons += " <----"; if((All - gMenuPosition) > 11) // This is not the last page { Buttons += " ---->"; } else // This IS the last page { Last = TRUE; } } else if (All > gMenuPosition+9) // This IS the first page { if((All - gMenuPosition) > 11) // There are more pages to follow { Buttons += " ---->"; } else // This IS the last page { Last = TRUE; } } else // This is the only menu page { Last = TRUE; } if (All > 0) { integer b; integer len = llGetListLength(Buttons); // This bizarre test does the important work ...... for(b = gMenuPosition + len + Last - 1 ; (len < 12)&&(b < All); ++b) { Buttons = Buttons + [llList2String(namesList,b)]; len = llGetListLength(Buttons); } } gLsn = llListen(-12345,"","",""); llSetTimerEvent(10.0); llDialog(llGetOwner()," \n",Buttons,-12345); } MakeParticles(key target) //This is the function that actually starts the particle system. { llParticleSystem([ //KPSv1.0 PSYS_PART_FLAGS , 0 //Comment out any of the following masks to deactivate them //| PSYS_PART_BOUNCE_MASK //Bounce on object's z-axis //| PSYS_PART_WIND_MASK //Particles are moved by wind //Colors fade from start to end | PSYS_PART_INTERP_SCALE_MASK //Scale fades from beginning to end | PSYS_PART_FOLLOW_SRC_MASK //Particles follow the emitter | PSYS_PART_FOLLOW_VELOCITY_MASK //Particles are created at the velocity of the emitter | PSYS_PART_TARGET_POS_MASK //Particles follow the target | PSYS_PART_EMISSIVE_MASK //Particles are self-lit (glow) //| PSYS_PART_TARGET_LINEAR_MASK //Undocumented--Sends particles in straight line? , PSYS_SRC_TARGET_KEY , target , //Key of the target for the particles to head towards //This one is particularly finicky, so be careful. //Choose one of these as a pattern: //PSYS_SRC_PATTERN_DROP Particles start at emitter with no velocity //PSYS_SRC_PATTERN_EXPLODE Particles explode from the emitter //PSYS_SRC_PATTERN_ANGLE Particles are emitted in a 2-D angle //PSYS_SRC_PATTERN_ANGLE_CONE Particles are emitted in a 3-D cone //PSYS_SRC_PATTERN_ANGLE_CONE_EMPTY Particles are emitted everywhere except for a 3-D cone PSYS_SRC_PATTERN, PSYS_SRC_PATTERN_EXPLODE ,PSYS_SRC_TEXTURE, "722832d3-e47b-d6c6-8070-b39e8734eb54" //UUID of the desired particle texture, or inventory name ,PSYS_SRC_MAX_AGE, 10.0 //Time, in seconds, for particles to be emitted. 0 = forever ,PSYS_PART_MAX_AGE, 3.0 //Lifetime, in seconds, that a particle lasts ,PSYS_SRC_BURST_RATE, 1 //How long, in seconds, between each emission ,PSYS_SRC_BURST_PART_COUNT, 15 //Number of particles per emission ,PSYS_SRC_BURST_RADIUS, 5.0 //Radius of emission ,PSYS_SRC_BURST_SPEED_MIN, 1.5 //Minimum speed of an emitted particle ,PSYS_SRC_BURST_SPEED_MAX, 2.0 //Maximum speed of an emitted particle ,PSYS_SRC_ACCEL, <0.0,0.0,-0.8> //Acceleration of particles each second ,PSYS_PART_START_ALPHA, 0.9 //Starting transparency, 1 is opaque, 0 is transparent. ,PSYS_PART_END_ALPHA, 0.0 //Ending transparency ,PSYS_PART_START_SCALE, <0.3,0.3,0.0> //Starting particle size ,PSYS_PART_END_SCALE, <0.3,0.3,0.0> //Ending particle size, if INTERP_SCALE_MASK is on ,PSYS_SRC_ANGLE_BEGIN, PI //Inner angle for ANGLE patterns ,PSYS_SRC_ANGLE_END, PI //Outer angle for ANGLE patterns ,PSYS_SRC_OMEGA, <0.0,0.0,0.0> //Rotation of ANGLE patterns, similar to llTargetOmega() ]); } reset() { llSetTimerEvent(0.0); llListenRemove(dlgHandle); llListenRemove(gLsn); dlgHandle = -1; } remove_listen_handle() { llListenRemove(listen_handle); } default { state_entry() { reset(); key id = llDetectedKey(0); listen_handle = llListen(-5243200, "", id, ""); } listen( integer channel, string name, key id, string message ) { remove_listen_handle(); namesList = []; uuidList = []; llSensor("", NULL_KEY, AGENT, 96.0, PI); } sensor(integer num_detected) { integer i; while((i < num_detected) && (i < 9)) { if (llDetectedKey(i) != llGetOwner()) { namesList += [llGetSubString(llDetectedName(i),0,23)]; uuidList += [llDetectedKey(i)]; } ++i; } if (llGetListLength(namesList) > 0) { state dialog; } } } state dialog { state_entry() { // Set up a listener to detect button clicks. dlgHandle = llListen(dlgChannel, "", llGetOwner(), ""); // Start a new timer. llSetTimerEvent(15.0); // Add a 'Cancel' button. // Display the dialog. //llDialog(llGetOwner(), "Please select an avatar.", namesList, dlgChannel); llListenRemove(gLsn); gMenuPosition = 0; Menu(); } listen(integer channel, string name, key id, string msg) { llListenRemove(gLsn); llSetTimerEvent(0.0); if (~llSubStringIndex(msg,"---->")) { gMenuPosition += 10; Menu(); llOwnerSay("hello"); } else if (~llSubStringIndex(msg,"<----")) { gMenuPosition -= 10; Menu(); llOwnerSay("hello"); } else { if ((channel == dlgChannel) && (llListFindList(namesList, [msg]) != -1)) { if (msg != "Cancel") { integer index = llListFindList(namesList,[msg]); key uuid = llList2Key(uuidList,index); MakeParticles(uuid); llSay(0, name + " says hello to " + msg); } reset(); state default; } } } timer() { reset(); state default; } changed(integer mask) { //Triggered when the object containing this script changes owner. if(mask & CHANGED_OWNER) { llResetScript(); // This will ensure the script listens to the new owner, and doesn't continue listening to the creator. } } }
  3. Thanks, i have done it that way and it worked like a charm. You are the best!
  4. Thats awsome, will try it right away. Thanks for the quick reply!
  5. Hi there, i still having trouble to populate a list with the UUID of the avatar selected from the DialogMenu. I tried to populate them in another list but then i was not able to call them in the Listen event. i also searched the internet, but was not able to find more information. Is there somebody who is willing to skype with me and explain it to me what i am doing wrong? Thanks in advance.
  6. Thanks a lot for the friendly and usefull replies. I will try to change my script like the advices above. Will take some time for me to figure it out, but that is ok. I still learning and stuff. Thanks for helping me out!
  7. Hi, i have a question and hopefully it is easy to fix. I does have a HUD and if i clikc on it, it will scan the people witin 10m. A Dialog menu will popup and shows me all the people. If i click on a name i would like to send the person a message in local chat and some particles to that person. Till now everything went well except the particles. I am not able to get the ID of the avatar i selected from the list, i hope i just making a stupid "beginning" mistake. Can somebody please give me tips how i can solve this. Thanks in advance! // Keknehv's Particle Script v1.2 // 1.0 -- 5/30/05 // 1.1 -- 6/17/05 // 1.2 -- 9/22/05 (Forgot PSYS_SRC_MAX_AGE) // This script may be used in anything you choose, including and not limited to commercial products. // Just copy the MakeParticles() function; it will function without any other variables in a different script // ( You can, of course, rename MakeParticles() to something else, such as StartFlames() ) // This script is basically an llParticleSystem() call with comments and formatting. Change any of the values // that are listed second to change that portion. Also, it is equipped with a touch-activated off button, // for when your particles go haywire and cause everyone to start yelling at you. // Contact Keknehv Psaltery if you have questions or comments. MakeParticles(key target) //This is the function that actually starts the particle system. { llParticleSystem([ //KPSv1.0 PSYS_PART_FLAGS , 0 //Comment out any of the following masks to deactivate them //| PSYS_PART_BOUNCE_MASK //Bounce on object's z-axis //| PSYS_PART_WIND_MASK //Particles are moved by wind | PSYS_PART_INTERP_COLOR_MASK //Colors fade from start to end | PSYS_PART_INTERP_SCALE_MASK //Scale fades from beginning to end | PSYS_PART_FOLLOW_SRC_MASK //Particles follow the emitter | PSYS_PART_FOLLOW_VELOCITY_MASK //Particles are created at the velocity of the emitter | PSYS_PART_TARGET_POS_MASK //Particles follow the target | PSYS_PART_EMISSIVE_MASK //Particles are self-lit (glow) //| PSYS_PART_TARGET_LINEAR_MASK //Undocumented--Sends particles in straight line? , PSYS_SRC_TARGET_KEY , target , //Key of the target for the particles to head towards //This one is particularly finicky, so be careful. //Choose one of these as a pattern: //PSYS_SRC_PATTERN_DROP Particles start at emitter with no velocity //PSYS_SRC_PATTERN_EXPLODE Particles explode from the emitter //PSYS_SRC_PATTERN_ANGLE Particles are emitted in a 2-D angle //PSYS_SRC_PATTERN_ANGLE_CONE Particles are emitted in a 3-D cone //PSYS_SRC_PATTERN_ANGLE_CONE_EMPTY Particles are emitted everywhere except for a 3-D cone PSYS_SRC_PATTERN, PSYS_SRC_PATTERN_ANGLE_CONE ,PSYS_SRC_TEXTURE, "" //UUID of the desired particle texture, or inventory name ,PSYS_SRC_MAX_AGE, 5.0 //Time, in seconds, for particles to be emitted. 0 = forever ,PSYS_PART_MAX_AGE, 1.0 //Lifetime, in seconds, that a particle lasts ,PSYS_SRC_BURST_RATE, 0.02 //How long, in seconds, between each emission ,PSYS_SRC_BURST_PART_COUNT, 2 //Number of particles per emission ,PSYS_SRC_BURST_RADIUS, 2.0 //Radius of emission ,PSYS_SRC_BURST_SPEED_MIN, 5.5 //Minimum speed of an emitted particle ,PSYS_SRC_BURST_SPEED_MAX, 6.0 //Maximum speed of an emitted particle ,PSYS_SRC_ACCEL, <0.0,0.0,-0.8> //Acceleration of particles each second ,PSYS_PART_START_COLOR, <0.0,0.0,1.0> //Starting RGB color ,PSYS_PART_END_COLOR, <0.6,0.6,1.0> //Ending RGB color, if INTERP_COLOR_MASK is on ,PSYS_PART_START_ALPHA, 0.9 //Starting transparency, 1 is opaque, 0 is transparent. ,PSYS_PART_END_ALPHA, 0.0 //Ending transparency ,PSYS_PART_START_SCALE, <2.4,2.4,0.0> //Starting particle size ,PSYS_PART_END_SCALE, <1.3,2.3,0.0> //Ending particle size, if INTERP_SCALE_MASK is on ,PSYS_SRC_ANGLE_BEGIN, PI //Inner angle for ANGLE patterns ,PSYS_SRC_ANGLE_END, PI //Outer angle for ANGLE patterns ,PSYS_SRC_OMEGA, <0.0,0.0,0.0> //Rotation of ANGLE patterns, similar to llTargetOmega() ]); } integer dlgHandle = -1; integer dlgChannel = -9999; list avatarList = []; reset() { llSetTimerEvent(0.0); llListenRemove(dlgHandle); dlgHandle = -1; } default { touch_start(integer total_number) { llOwnerSay("Scanning..."); avatarList = []; // Look for any avatars within 10m. llSensor("", NULL_KEY, AGENT, 96.0, PI); } sensor(integer num_detected) { integer i; while((i < num_detected) && (i < 9)) { if (llDetectedKey(i) != llGetOwner()) { avatarList += [llDetectedName(i)]; } ++i; } if (llGetListLength(avatarList) > 0) { state dialog; } } } state dialog { state_entry() { // Set up a listener to detect button clicks. dlgHandle = llListen(dlgChannel, "", llGetOwner(), ""); // Start a new timer. llSetTimerEvent(30.0); // Add a 'Cancel' button. avatarList += ["Cancel"]; // Display the dialog. llDialog(llGetOwner(), "Please select an avatar.", avatarList, dlgChannel); } listen(integer channel, string name, key id, string message) { // The message parameter holds the caption of the // button that was clicked. Search the menu options // list for it. if ((channel == dlgChannel) && (llListFindList(avatarList, [message]) != -1)) { if (message != "Cancel") { llSay(0, llKey2Name(llGetOwner()) + " pokes " + message); MakeParticles(id); } reset(); state default; } } timer() { reset(); state default; } }
×
×
  • Create New...