Jump to content

Shymus Roffo

Resident
  • Posts

    118
  • Joined

  • Last visited

Everything posted by Shymus Roffo

  1. Yeah, it works. But after a bit, it will not work. If you click it a few times the rotations go off. I would have to straighten it for it to work. Yes, the prim is cut so it rotates on the access. :smileywink: I used a sleep so it would ignore chat. The normal script uses a listener and waits for a command. My question is, how would you fix it from doing that issue with the rotation setting off after a few clicks.
  2. I have been experimenting with rotations, during that time while trying to make a "swivel" gate or a traffic gate that would be on something like RR crossings; i came across a problem with my function to rotate the arm. ffSetRot(integer n,rotation sr,rotation er) { rotation b = ( sr / ZERO_ROTATION) * er; vector ax = llRot2Axis(b); float an = llRot2Angle(b); integer j; for(j=0;j<=n;++j) { llSetLinkPrimitiveParamsFast(LINK_THIS,[PRIM_ROT_LOCAL,sr * llAxisAngle2Rot(ax,((float)j) / ((float)n) * an)]); llSleep(0.01); } } integer open = FALSE; integer speed = 35; rotation r_open = ZERO_ROTATION; rotation r_closed = ZERO_ROTATION; default { state_entry() { r_open = llEuler2Rot(<0,-90,0>*DEG_TO_RAD); r_closed = llEuler2Rot(<0,0,0>*DEG_TO_RAD); } touch_start(integer s) { if(llDetectedKey(0) == llGetOwner()) { if(!open) { ffSetRot(speed,llGetLocalRot(),r_open); } else { ffSetRot(speed,llGetLocalRot(),r_closed); } open = !open; } } } If you were to click this enough times, the rotations would change, then they would slowly offset. I'm not the best with rotations, so i don't really know what the function does, my friend did that for me. If you are able to explain it better then that would really help.
  3. That seems to work, Thank you. Didn't think of that function llGetLocalRot(). I hate working with rotations but i need to learn them.
  4. I am trying to make a light switch to practice my rotation skills as i am not good with them. I am having troubles with problems with the object if it is rotated a certain way. flipSwitch(integer n) { vector vrot = llRot2Euler(llGetRot()); if(n) vrot += <-30 * DEG_TO_RAD,0,0>; else vrot += <30 * DEG_TO_RAD,0,0>; llSetRot(llEuler2Rot(vrot)); } integer on = FALSE; default { touch_start(integer n) { flipSwitch(on = !on); } } If the object is rotated on Z axis then the rotations will start to act all weird and won't rotate like a switch properly. Also if you can point me to a place to learn rotations easily, it would help! :P
  5. Does this use prim media? What i am going to be doing is making street signs with this and if this supports multiple fonts and is not media i might look into this cause it looks kinda cool.
  6. What is the difference between XyText and ZZText? Other than the name.
  7. I know this may not be "scripting" but i can't really think of anywhere else to post this since it is a thing that only scripters use. I'm trying find more fonts for XyText, i can't find the plugin for Gimp that creates the letters and i was wondering where i can find different textures or fonts for the XyText 2.0. I have found the gimp plugin for GIMP that creates the one letter per face but i'm looking for the two letter face. If there is a plugin for photopshop, GIMP, or any other graphics program. Where can i find it?
  8. Something like this would rely on communications between the head and HUD. I would reccommend checking out the llListen() function as well as the llRegionSayTo() function. Here's a simple example of transmission, this would probably also work well for the HUD. HUD Transmiter integer c = -5345345345; //The channel that is transmitted to the head to change the texture or to tell the head what button we pressed. default { on_rez(integer s) { llResetScript(); } //The event raised when someone touches the script. touch_start(integer n) { //Make sure the person touching the buttons is the owner. if(llDetectedKey(0) == llGetOwner()) { string name = llToLower(llGetLinkName(llDetectedLinkNumber(0)));// Check the name of the button that is pressed and force it to lower case and store in a variable for comparing later. //Send the command to the head on the channel specified at the top of the script llRegionSayTo(llGetOwner(),c,name); } } } Head/Expression Listener integer c = -5345345345; //Receiving channel that is transmitted from the hud integer face_link_number = LINK_ROOT;//The link number of the head prim integer face_texture_face = ALL_SIDES;//The face that the texture would be applied default { on_rez(integer s) { llResetScript(); } state_entry() { //Set up the event for listening on the channel specified, in which case the channel is set at the top of the script in the variable "c" llListen(c,"","",""); } //The event pulled when a message is received on the channel that is specified in the llListen() function listen(integer chan, string n, key i, string m) { if(chan == c) llSetLinkTexture(face_link_number,m,face_texture_face); } }
  9. I'm trying to get a more smoother script for a golf cart, so far the script is nothing but sharp and pointy. I can do all the logic for testing what keys are pressed but i can't figure out how to make things smoother and how everything works... Yes i have checked out the Linden Vehicle Tutorial, some was helpful and some was not. I'm trying to get smoother acceleration and turning. I will be placing gears in the script to allow variable speeds. default { state_entry() { llPassCollisions(TRUE); llSetSitText("Drive"); llSitTarget(<.6,0.3,0.2>,ZERO_ROTATION); llSetCameraEyeOffset(<-5,0,5>); llSetCameraAtOffset(<3,0,1>); llSetVehicleType(VEHICLE_TYPE_CAR); llSetVehicleFloatParam(VEHICLE_LINEAR_DEFLECTION_EFFICIENCY, 0.80); llSetVehicleFloatParam(VEHICLE_LINEAR_DEFLECTION_TIMESCALE, 1.0); llSetVehicleFloatParam(VEHICLE_ANGULAR_DEFLECTION_EFFICIENCY, 0.2); llSetVehicleFloatParam(VEHICLE_ANGULAR_DEFLECTION_TIMESCALE, 0.1); llSetVehicleFloatParam(VEHICLE_LINEAR_MOTOR_TIMESCALE, 1.0); llSetVehicleFloatParam(VEHICLE_LINEAR_MOTOR_DECAY_TIMESCALE, 0.1); llSetVehicleFloatParam(VEHICLE_ANGULAR_MOTOR_TIMESCALE, 0.3); llSetVehicleFloatParam(VEHICLE_ANGULAR_MOTOR_DECAY_TIMESCALE, 0.1); llSetVehicleVectorParam(VEHICLE_LINEAR_FRICTION_TIMESCALE, <100.0, 2.0, 1000.0> ); llSetVehicleVectorParam(VEHICLE_ANGULAR_FRICTION_TIMESCALE, <1000.0, 1000.0, 1000.0> ); llSetVehicleFloatParam(VEHICLE_VERTICAL_ATTRACTION_EFFICIENCY, 0.0); llSetVehicleFloatParam(VEHICLE_VERTICAL_ATTRACTION_TIMESCALE, 300.0); llSetVehicleFloatParam(VEHICLE_HOVER_HEIGHT, 0 ); llSetVehicleFloatParam(VEHICLE_HOVER_EFFICIENCY, 0 ); llSetVehicleFloatParam(VEHICLE_HOVER_TIMESCALE, 1000 ); llSetVehicleFloatParam(VEHICLE_BUOYANCY, 0 ); llRemoveVehicleFlags(VEHICLE_FLAG_HOVER_WATER_ONLY | VEHICLE_FLAG_HOVER_TERRAIN_ONLY | VEHICLE_FLAG_HOVER_GLOBAL_HEIGHT); llSetVehicleFlags(VEHICLE_FLAG_NO_DEFLECTION_UP | VEHICLE_FLAG_LIMIT_ROLL_ONLY | VEHICLE_FLAG_HOVER_UP_ONLY | VEHICLE_FLAG_LIMIT_MOTOR_UP); llCollisionSound("", 0.0); } changed(integer c) { if(c & CHANGED_LINK) { key a = llAvatarOnSitTarget(); if(a) { if(a == llGetOwner()) { llSetStatus(STATUS_PHYSICS,TRUE); llRequestPermissions(a,PERMISSION_TRIGGER_ANIMATION | PERMISSION_TAKE_CONTROLS); } else { llSay(0,"Get your own brick! >:O"); llUnSit(a); llPushObject(a,<0,0,100>,ZERO_VECTOR,FALSE); } } else { llSetStatus(STATUS_PHYSICS,FALSE); llReleaseControls(); //llStopAnimation(""); } } } run_time_permissions(integer p) { if(p) { //llStartAnimation("sit"); llTakeControls(CONTROL_FWD | CONTROL_BACK | CONTROL_RIGHT | CONTROL_LEFT | CONTROL_ROT_RIGHT | CONTROL_ROT_LEFT,TRUE,FALSE); } } control(key i, integer level, integer edge) { vector angular_motor; if(level & CONTROL_FWD) llSetVehicleVectorParam(VEHICLE_LINEAR_MOTOR_DIRECTION,<10,0,0>); if(level & CONTROL_BACK) llSetVehicleVectorParam(VEHICLE_LINEAR_MOTOR_DIRECTION,<-3,0,0>); if(level & CONTROL_UP) angular_motor.y -= 10; if(level & (CONTROL_RIGHT | CONTROL_ROT_RIGHT)) { angular_motor.x += PI; angular_motor.z -= PI; } if(level & (CONTROL_LEFT | CONTROL_ROT_LEFT)) { angular_motor.x -= PI; angular_motor.z += PI; } llSetVehicleVectorParam(VEHICLE_ANGULAR_MOTOR_DIRECTION,angular_motor); } } Many thanks for the help. ;)
  10. I'm trying to get a more smoother script for a golf cart, so far the script is nothing but sharp and pointy. I can do all the logic for testing what keys are pressed but i can't figure out how to make things smoother and how everything works... Yes i have checked out the Linden Vehicle Tutorial, some was helpful and some was not. I'm trying to get smoother acceleration and turning. I will be placing gears in the script to allow variable speeds. default { state_entry() { llPassCollisions(TRUE); llSetSitText("Drive"); llSitTarget(<.6,0.3,0.2>,ZERO_ROTATION); llSetCameraEyeOffset(<-5,0,5>); llSetCameraAtOffset(<3,0,1>); llSetVehicleType(VEHICLE_TYPE_CAR); llSetVehicleFloatParam(VEHICLE_LINEAR_DEFLECTION_EFFICIENCY, 0.80); llSetVehicleFloatParam(VEHICLE_LINEAR_DEFLECTION_TIMESCALE, 1.0); llSetVehicleFloatParam(VEHICLE_ANGULAR_DEFLECTION_EFFICIENCY, 0.2); llSetVehicleFloatParam(VEHICLE_ANGULAR_DEFLECTION_TIMESCALE, 0.1); llSetVehicleFloatParam(VEHICLE_LINEAR_MOTOR_TIMESCALE, 1.0); llSetVehicleFloatParam(VEHICLE_LINEAR_MOTOR_DECAY_TIMESCALE, 0.1); llSetVehicleFloatParam(VEHICLE_ANGULAR_MOTOR_TIMESCALE, 0.3); llSetVehicleFloatParam(VEHICLE_ANGULAR_MOTOR_DECAY_TIMESCALE, 0.1); llSetVehicleVectorParam(VEHICLE_LINEAR_FRICTION_TIMESCALE, <100.0, 2.0, 1000.0> ); llSetVehicleVectorParam(VEHICLE_ANGULAR_FRICTION_TIMESCALE, <1000.0, 1000.0, 1000.0> ); llSetVehicleFloatParam(VEHICLE_VERTICAL_ATTRACTION_EFFICIENCY, 0.0); llSetVehicleFloatParam(VEHICLE_VERTICAL_ATTRACTION_TIMESCALE, 300.0); llSetVehicleFloatParam(VEHICLE_HOVER_HEIGHT, 0 ); llSetVehicleFloatParam(VEHICLE_HOVER_EFFICIENCY, 0 ); llSetVehicleFloatParam(VEHICLE_HOVER_TIMESCALE, 1000 ); llSetVehicleFloatParam(VEHICLE_BUOYANCY, 0 ); llRemoveVehicleFlags(VEHICLE_FLAG_HOVER_WATER_ONLY | VEHICLE_FLAG_HOVER_TERRAIN_ONLY | VEHICLE_FLAG_HOVER_GLOBAL_HEIGHT); llSetVehicleFlags(VEHICLE_FLAG_NO_DEFLECTION_UP | VEHICLE_FLAG_LIMIT_ROLL_ONLY | VEHICLE_FLAG_HOVER_UP_ONLY | VEHICLE_FLAG_LIMIT_MOTOR_UP); llCollisionSound("", 0.0); } changed(integer c) { if(c & CHANGED_LINK) { key a = llAvatarOnSitTarget(); if(a) { if(a == llGetOwner()) { llSetStatus(STATUS_PHYSICS,TRUE); llRequestPermissions(a,PERMISSION_TRIGGER_ANIMATION | PERMISSION_TAKE_CONTROLS); } else { llSay(0,"Get your own brick! >:O"); llUnSit(a); llPushObject(a,<0,0,100>,ZERO_VECTOR,FALSE); } } else { llSetStatus(STATUS_PHYSICS,FALSE); llReleaseControls(); //llStopAnimation(""); } } } run_time_permissions(integer p) { if(p) { //llStartAnimation("sit"); llTakeControls(CONTROL_FWD | CONTROL_BACK | CONTROL_RIGHT | CONTROL_LEFT | CONTROL_ROT_RIGHT | CONTROL_ROT_LEFT,TRUE,FALSE); } } control(key i, integer level, integer edge) { vector angular_motor; if(level & CONTROL_FWD) llSetVehicleVectorParam(VEHICLE_LINEAR_MOTOR_DIRECTION,<10,0,0>); if(level & CONTROL_BACK) llSetVehicleVectorParam(VEHICLE_LINEAR_MOTOR_DIRECTION,<-3,0,0>); if(level & CONTROL_UP) angular_motor.y -= 10; if(level & (CONTROL_RIGHT | CONTROL_ROT_RIGHT)) { angular_motor.x += PI; angular_motor.z -= PI; } if(level & (CONTROL_LEFT | CONTROL_ROT_LEFT)) { angular_motor.x -= PI; angular_motor.z += PI; } llSetVehicleVectorParam(VEHICLE_ANGULAR_MOTOR_DIRECTION,angular_motor); } } Many thanks for the help. ;)
  11. Ok, thank you i got the list thing to work. What other good uses would Modulus have?
  12. That code works perfectly but i'm having a little bit of trouble understanding the math. I'm not very good with modulus. Also how would i get the lit to reversese it's order?
  13. I'm having some problems with a HUD that i've been working on, I'm trying to make a list of names (fetched via HTTP) that are to be displayed on a HUD. The hud uses llSetText to display the names and uses a pagination like scrolling to scroll through names and select what can be done with that name. Getting the names from the server is not hard for me all i have problems with is the text. The problem i am having is with the scrolling It will scroll down (forward) but not up (backward). This is just an example of how the selection will work. The main script. list names = ["John Smith","Shymus Roffo","Some Person","Cool Kid","Second Life","Linden Lab"]; list links4txt = [5,4,3,2]; llSetLinkText(integer ln, string t, vector c) { // LinkNumber,Text,Color llSetLinkPrimitiveParamsFast(ln,[PRIM_TEXT,t,c,1]); } ffUpdateDisplay(integer pos,integer active) { end = index + 3; display = llList2List(names, index, end); //llOwnerSay(llDumpList2String(display, ",")); llOwnerSay(llList2String(names,pos)); // llOwnerSay(" j is" + (string)pos); integer i; for(i=0; i< prims; i++) { if(pos > 3 ){pos = 3;} // if(pos < 2 ){pos = 2;} if(i == pos) { llSetLinkText(llList2Integer(links4txt,i),llList2String(display,i),<1,0.5,0.5>); echo = llList2String(display,i); } else llSetLinkText(llList2Integer(links4txt,i),llList2String(display,i),<1,1,1>); } llSetText("Index: " + (string)index + "\n Position: "+(string)pos,<1,1,1>,1); } integer len; integer index; integer end ; integer prims ; integer j; list display; string echo; default { state_entry() { end = index + 3; len = llGetListLength(names); prims = llGetListLength(links4txt); display = llList2List(names, index, end); } touch_start(integer n) { //if(llDetectedKey(0) == llGetOwner()) //{ string name = llGetLinkName(llDetectedLinkNumber(0)); if(name == "forward") { j++; if(j == len ) { j = 0; index = 0;} if(j > end ) ++index; ffUpdateDisplay(j,j); } else if(name =="backward") { j--; llWhisper(0,"J: "+(string)j+"\nIndex: "+(string)index); if(j < 0) { j = 5; index = llGetListLength(names)/4; llWhisper(0,"J: "+(string)j+"\nIndex: "+(string)index); } if(j < index ) { --index; llWhisper(0,"J: "+(string)j+"\nIndex: "+(string)index); } ffUpdateDisplay(j,j); } else if(name =="Some Object") { llSay(0,"echoing : " + echo); } //} } }
  14. I'm having some problems with a HUD that i've been working on, I'm trying to make a list of names (fetched via HTTP) that are to be displayed on a HUD. The hud uses llSetText to display the names and uses a pagination like scrolling to scroll through names and select what can be done with that name. Getting the names from the server is not hard for me all i have problems with is the text. The problem i am having is with the scrolling It will scroll down (forward) but not up (backward). This is just an example of how the selection will work. The main script. list names = ["John Smith","Shymus Roffo","Some Person","Cool Kid","Second Life","Linden Lab"]; list links4txt = [5,4,3,2]; llSetLinkText(integer ln, string t, vector c) { // LinkNumber,Text,Color llSetLinkPrimitiveParamsFast(ln,[PRIM_TEXT,t,c,1]); } ffUpdateDisplay(integer pos,integer active) { end = index + 3; display = llList2List(names, index, end); //llOwnerSay(llDumpList2String(display, ",")); llOwnerSay(llList2String(names,pos)); // llOwnerSay(" j is" + (string)pos); integer i; for(i=0; i< prims; i++) { if(pos > 3 ){pos = 3;} // if(pos < 2 ){pos = 2;} if(i == pos) { llSetLinkText(llList2Integer(links4txt,i),llList2String(display,i),<1,0.5,0.5>); echo = llList2String(display,i); } else llSetLinkText(llList2Integer(links4txt,i),llList2String(display,i),<1,1,1>); } llSetText("Index: " + (string)index + "\n Position: "+(string)pos,<1,1,1>,1); } integer len; integer index; integer end ; integer prims ; integer j; list display; string echo; default { state_entry() { end = index + 3; len = llGetListLength(names); prims = llGetListLength(links4txt); display = llList2List(names, index, end); } touch_start(integer n) { //if(llDetectedKey(0) == llGetOwner()) //{ string name = llGetLinkName(llDetectedLinkNumber(0)); if(name == "forward") { j++; if(j == len ) { j = 0; index = 0;} if(j > end ) ++index; ffUpdateDisplay(j,j); } else if(name =="backward") { j--; llWhisper(0,"J: "+(string)j+"\nIndex: "+(string)index); if(j < 0) { j = 5; index = llGetListLength(names)/4; llWhisper(0,"J: "+(string)j+"\nIndex: "+(string)index); } if(j < index ) { --index; llWhisper(0,"J: "+(string)j+"\nIndex: "+(string)index); } ffUpdateDisplay(j,j); } else if(name =="Some Object") { llSay(0,"echoing : " + echo); } //} } }
  15. That works a bit better, but it doesn't want to work when i try to go back through the list. Although i'm sure you already know that.
  16. That's not really close to what i'm looking for but here might be a good example as an image, it does not work though. The image I'm trying to make it so names come in from a database then go into a list ( which i can do ) then make it so that names display on the hud ( which is not made yet ), then when an arrow is pressed the list would advance then the current list option would be red and the rest would be white. Then if the green prim is pressed it would echo out the name or current active list choice. It's knid of hard to describe, so sorry if it is not good enough.
  17. I'm trying to make a thing that interfaces with my database and to display names from it with floating text. I already know how to do the database part, i'm just having trouble with the list selector and menu for the hud. How it works: There is a list of names in the script. When the forward arrow is pressed, advanced down the list and set the current name selected to red and the rest to white. Same for the previous arrow. This is what i have... Yes i know it sucks. //The names to display, comes from an MySQL Database list names = ["John Smith","Shymus Roffo","Some Person","Cool Kid","Second Life","Linden Lab"]; list links4txt = [5,4,3,2]; //The link numbers of the displays for the flaoting text //Simple function to set the link text llSetLinkText(integer ln, string t, vector c) {// LinkNumber,Text,Color llSetLinkPrimitiveParamsFast(ln,[PRIM_TEXT,t,c,1]); } ffUpdateDisplay(integer pos,integer active) { integer i; for(i=0;i<4;i++) { if(i == pos) llSetLinkText(llList2Integer(links4txt,i),llList2String(names,active),<1,0.5,0.5>); else llSetLinkText(llList2Integer(links4txt,i),llList2String(names,active),<1,1,1>); } } default { touch_start(integer n) { if(llDetectedKey(0) == llGetOwner()) { integer i; for(i=0;i<n;i++) { string name = llGetLinkName(llDetectedLinkNumber(i)); integer position_in_list = 0; integer j = 0; if(name == "forward") { if(j <= llGetListLength(links4txt)) j = 0; else j++; ffUpdateDisplay(j,j); } else if(name =="backward") { if(j > llGetListLength(links4txt)) j = 0; else j--; ffUpdateDisplay(j,j); } llOwnerSay("Pos:"+(string)j); } } } } All things i've tried have not been working. It is starting to get rather annoying... >.<
  18. Ok, i finally got in thank you. I was only able to get in one region though. The region Balance
  19. I have been trying to connect to the beta grid on multiple viewers, and i can't connect. Are the servers currently down or something? If they are not down then what am i doing wrong?
  20. Here is a good website that might be able to help you make a bot software for your group. If you know how to use C# you should be in good standing. Open Metaverse Wiki
  21. This is a PHP script and this is a LSL forum i would recommend that you have a look at this forum instead. هذا هو السيناريو PHP وهذا هو منتدى LSL أود أن أوصي بأن لديك نظرة على هذا المنتدى بدلا من ذلك. http://http://www.phphelp.com/
  22. If you are trying to call a file you made in localhost, chances of it working 0.1%. Localhost is the machine you are currently using with an apache or IIS server running. If you want to call a PHP script from Second Life you will have to get a domain and host it in order to call it. If your going to try and call it from your computer i would try to port forward. The disadvantages to doing this is that your computer is going to act as a server that needs to be on 99% of the time to accept requests. It will also be a good target for malicous activity. If you would like ot know more about port forwarding i would read this wiki page.
  23. i have been trying to figure out how to send requests with PHP into SL and it is starting to become a pain in the butt, i am not good with the function fsockopen. i have tried cURL and so far nothing is working. I do not like XML-RPC cause it needs updated every 10 minutes. the LSL scripts works when i submit a html form and open the url in my browser, but does not work when i try to send a cURL request. LSL script //I made this script simple just to see if i was able to get a request. key reqid; default { state_entry() { reqid = llRequestURL(); llOwnerSay((string)reqid); } http_request(key id, string method, string body) { if(id == reqid) { if(method == URL_REQUEST_GRANTED) llOwnerSay(body); } llOwnerSay(llGetHTTPHeader(id,"x-query-string")); llOwnerSay(llGetHTTPHeader(id,"x-script-url")); llHTTPResponse(id, 200, "Recieved"); llOwnerSay(body); } } PHP Script: <?php $ch = curl_init("http://sim9058.agni.lindenlab.com:12046/cap/5d700359-60b8-ad8a-872f-a817da37cf2f/?hello=hello"); $nvp = "&msg=hello"; curl_setopt($ch,CURLOPT_POSTFIELDS,$nvp); curl_setopt($ch,CURLOPT_RETURNTRANSFER,1); echo curl_exec($ch); ?>
  24. i knew you would say something with prims but thats not really what i am trying to do, right now i'm working on a website that allows bots to send notices in world from new annoucements on the site.
  25. i have been trying to figure out how to make SL bots for simple things like instant inviters and group notices, i have'nt figured out where to find sources to create or tutorials.
×
×
  • Create New...