Jump to content

Shymus Roffo

Resident
  • Posts

    118
  • Joined

  • Last visited

Everything posted by Shymus Roffo

  1. Job Overview Are you a killer Animator looking to show off your skills and better engage yourself and test your skills? While working in your role, you will be tasked with assisting on larger projects throughout all brands of Nexus and Partners (Cliff Side Motor, MoreThanPixels, Osh Fergana, Shinybrand, Qube and Needs). Along with helping partners, you will also be given a place to start your own store and the assistance on getting the name out there. Along with your skills, we will assist you ass necessary for any projects you are looking to achieve. Want to come to visit us? Visit our Store Region in Silesia. http://maps.secondlife.com/secondlife/Silesia/128/128/2 Responsibilities Work with Nexus & Partner Companies to provide a strong product. Develop Animations for Second Life Avatars, Bento Avatars, and Animesh. Assisting with Customer Support on products you assist in developing. Requirements Knowledge of QAvimator, Blender, or other Animation Software. Experience in Motion Capture a plus. Experience in 3D Modelling a Plus. (Blender, Maya, etc.) Experience in Visual Animation a plus. (GIF, Adobe Premiere and After Effects). Experience in LSL, or Software(C#, C++, C, VB) / Web Languages(PHP, Ruby, Perl, Python, ASP) a plus. Experience in Graphic Design a plus. (Illustrator, Photoshop, etc Good knowledge of MediaWiki Software a plus. Benefits Working with us at Nexus has a large number of benefits. Along with getting to work on what you love, you also will learn great new skills from everyone who you work with. We have a large amount of talent that works with us. From Builders, Scripters, Texture Artists, and Modelers. Everyone is willing to help teach each other and learn. If you are a new creator, we love helping you get started and help facilitate you into the market. A large majority of our creators have Stores on our home sim. Once you get established, we are more than willing to allow you a place in our sim. Life At Nexus We are a very well established company that focuses on the Second Life Roleplaying Community. We have vast products that are focused towards Family, Firefighting, Police, and other similar roleplaying areas. Upon entering the Nexus community, most developers will start their own company. While you are working with us, you are considered a partner with Nexus. As a Partner, we will occasionally work with each other on larger projects. In our free time, we closely knit together as friends and will sometimes game together or hang out. If you are someone who’s looking to better their skills, we are the right place for you. How To Apply If you are interested in applying for the position, please contact Shymus Roffo at shymus.roffo@nexus-sl.net or Shymus Roffo In-World.
  2. I don't understand why the female thing would come up, they would have had absolutely no way of even knowing that you're a female, let alone even care. I think one of the reasons that your JIRA might have been closed was either from the lack of information provided or they were not able to replicate errors. However, as Rolig Loon said, everything is working perfectly fine. You're just having slight complications getting it to work. Just cause you don't understand how something works or it doesn't work the way you want it to; does not mean that it's broken. That is where you need to look at other ways and workarounds. I deal with people all the time accusing me of making products that are broken, only because they did not have a greater understanding of the item.
  3. A very good example of the no_sensor event can be found on the wiki. http://wiki.secondlife.com/wiki/No_sensor I'm assuming you're trying to see if the person who touched the prim is within 20m of the prim. Another way you could go about this like the example below. This may remove your use for the sensor. (Unless you want it, then don't do this.) key avKey; float distance = 20; integer InRange(key uuid, float distance) { list data = llGetObjectDetails(uuid, [OBJECT_POS]); if(data == []) return 0; return llVecDist(llList2Vector(data, 0), llGetPos()) <= distance; } default { touch_start(integer n) { avKey = llDetectedKey(0); if(InRange(avKey, distance)) { llOwnerSay("Within Range"); } else { llOwnerSay("Not within range"); } } }
  4. If you are trying to do a bunch of textures in a particle system at once, one thing you could do is work with link particles. If you're going to go that route, the perfect function for you would be llLinkParticleSystem. One thing that I've done in the past was created two prims for emitters, make both the prims the same size and location, link them together, and you should have a simple emitter that you can add your script to that will allow two emitters.
  5. Yeah, I noticed that as well. I've had that problem in the past. Luckily, we're not really looking to distribute the HUD that this will work with, so we won't really have to deal with helping other's make it work in their mesh sims. It'll most likely be used to help us with our pathfinding waypoints in our sim. That way we have a way of visualizing the AI's path. Since most of our sim is still built out of prims and we don't really use mesh on any of our builds, we don't have a large problem with that. A lot of our items that we do use that are mesh, we give a basic cube physics shape. After most attempts of trying to find a way to do it, I'm rather confused. Multiple attempts have left me in the dust.
  6. I am not really to sure how to calculate a Theta or what a Theta is. Sadly, the calculations need to stay within the HUD (assuming this goes into the debug object). The debug item is just there so I can see where the ray lands. This is the script that I have gotten so far from your example. (Assuming this is what you meant. ) Sadly, I'm assuming I did something wrong as I was not getting the expected result. integer channel = -500; default { state_entry() { if(llGetAttached()) llRequestPermissions(llGetOwner(), PERMISSION_TRACK_CAMERA); } touch(integer n) { float cam2hud = 1; // this is the distance from the camera origin to the hud. vector touched = llDetectedTouchST(0); // this is the vector of the detected touch. (I'm assuming it's in relationiship to screen center) vector euler; //this is the euler we're going to convert into a rotation. rotation touchrot; //this is the rotation that points at touched from the camera position. euler.x = 0; euler.y = llAtan2(touched.x, cam2hud); // sets the horizontal theta given opposite and adjacent euler.z = llAtan2(touched.y, cam2hud); // Sets the vertical theta given opposite and adjacent touchrot = llEuler2Rot(euler); // converts euler into quaternion rotation list t = llCastRay(llGetCameraPos(),llGetCameraPos() + <50,0,0> * llGetCameraRot() * touchrot, []); llRegionSay(-54354,(string)llList2String(t,1)); } } Basically, the final result that I'm looking for is what is in this Youtube video here. I have done everything except placing the waypoints, which is requiring the cast ray. https://www.youtube.com/watch?v=9mPc_9yX2mM
  7. @Myrmidon Hasp I kind of understand; but then I kind of don't. I would have to see an example to start to understand a little better what you mean to a better extent. I tried your example @Wulfie Reanimator. That Worked better than mine.
  8. Yeah, all the camera tracking is good. That was easy. (Thankfully) The major issues that I've been having are the math part getting the raycasts to offset correctly in the hud. In the scripts that I tested, my cast ray worked based off the center of the HUD. The only negative is it was not offsetting. If you view it below and test with the debug prim, you'll notice the prim only moves a little bit. This is the script that I have so far that attempts to find the position. (mind my math, I suck at it...) Basic HUD Place within a prim, wear as a HUD, and scale to fit your window, then set transparency to 75-100. integer c = -54354; float fov = 1.7320508075688774; vector offset = <50,0,0>; vector touch_offset = ZERO_VECTOR; default { state_entry() { llRequestPermissions(llGetOwner(), PERMISSION_TRACK_CAMERA); } touch(integer n) { if(llDetectedKey(0) == llGetOwner()) { vector c_pos = llGetCameraPos(); rotation c_rot = llGetCameraRot(); vector touch_pos = llDetectedTouchPos(0); touch_offset = llVecNorm(<fov,touch_pos.y,touch_pos.z>); vector offset_pos = (c_pos+(offset+<0,touch_offset.y,touch_offset.z>)*c_rot); list t = llCastRay((c_pos+(<0,touch_offset.y,touch_offset.z>)*c_rot),(c_pos+(offset+<0,touch_offset.y,touch_offset.z>)*c_rot),[ RC_REJECT_TYPES, RC_REJECT_AGENTS|RC_REJECT_PHYSICAL, RC_MAX_HITS, 4, RC_DATA_FLAGS, RC_GET_NORMAL, RC_DETECT_PHANTOM, FALSE ]); // Used for debugging below. llRegionSay(c,llList2String(t,1)+","+(string)c_rot); llSetText(llList2CSV(t),<1,1,1>,1); } } touch_end(integer n) { touch_offset = ZERO_VECTOR; // Used to put the debug prim back, serves no purpose. } } Debug Prim This isn't really needed, this just lets me know where the script's ray cast in landing. integer c = -54354; quickPosRot(vector pos, rotation rot) { llSetLinkPrimitiveParamsFast(LINK_THIS, [PRIM_POSITION, pos, PRIM_ROTATION, rot]); } default { state_entry() { llListen(c,"","",""); } listen(integer c, string n, key i, string m) { if(llGetOwnerKey(i) == llGetOwner()) { list t = llCSV2List(m); vector pos = (vector)llList2String(t,0); rotation rot = (rotation)llList2String(t,1); if(pos != ZERO_VECTOR) quickPosRot(pos,rot); } } }
  9. If you learn better by visual example, this might slightly help better. This would give that padding that Klytyna would be referring too. Have the padding will make the rotations on the texture work better without the corners bleeding/repeating.
  10. Hello, I have been experimenting lately on a HUD. I've been attempting to get positions within the world when a spot is clicked on the HUD. There are a lot of problems I've faced, here is what I've managed to get so far, only cause it was easy. Sadly, nothing I have made has come close the result I've been looking for. Right now the HUD is currently an invisiprim that takes up the entire screen. The intended behavior is; when a user clicks somewhere on the HUD, it's as if they are clicking somewhere in the world and it will report the position where the simulated world click was. I know that Raycast would need to be used, the problem is I can get figure out how to offset and get it to shoot to the correct spot.
  11. There is a nice way of doing it by giving the user a choice in allowing it with the RLV functions that some viewers have. However, the User needs to allow it by having RLV enabled. If they don't have RLV enabled, it's just going to give them the RLV message. http://wiki.secondlife.com/wiki/LSL_Protocol/RestrainedLoveAPI#Name_Tags_and_Hovertext If you're unfamiliar with RLV, it's highly recommended that you read that wiki page.
  12. Hello, I was recently searching around YouTube and came across this old video by Nexii Malthus. He did a very good job on the Hud. I'm curious how did this kind of thing. It's very impressive. It's very interesting how he got it all on a HUD and took the object's world positions and displayed them on the HUD.
  13. Hello Marlon, Before you spend a bit of money on this kind of thing, here is a tool that may help you. Please try this tool out before you spend the money. Align Tool Demonstration This tool is located under your build menu.
  14. Yes, it is for an apache set up. It could be modified to work with other systems. I'm not that familiar with other languages or servers, so this is what I made it for. If anyone else makes the server code with a different language, let me know and I'll put it onto the thread.
  15. Now with the new functions that were released onto the Wiki, a lot of my web servers used a Name2Key service(Such as W-Hat, or similar). One problem we were having is some services are not 100% reliable. Every now and then, we had NULL_KEYs returned. These scripts we made; we used as a backup when the online services were not working or did not produce the desired result. This is not meant to be used as an alternative to Name2Key with LSL scripts, it is used for websites that need Name2Key and are looking for a backup to their current Name2Key. This could obviously be expanded and is very basic. I would expand on this to allow multiple in-world servers in case of an outage and make it update to the prim's URLs into a database and not a text file. Server Directory/Structure /Name2Key | | - .htaccess | - index.php Once your directory is set up on your server, here are the files! .httaccess RewriteEngine On RewriteBase / RewriteRule ^(.*)$ index.php?name=$1 [L,QSA] index.php <?php if(!empty($_GET['name'])) { if($_GET['name'] == "update_url") { $fh = fopen("server_url.txt","w"); fwrite($fh,base64_decode($_GET['url'])); fclose($fh); } else { header("Content-Type: text/plain"); $fh = fopen("server_url.txt","r"); $url = fread($fh, filesize("server_url.txt")); fclose($fh); $ch = curl_init($url); curl_setopt_array($ch,array( CURLOPT_RETURNTRANSFER=>TRUE, CURLOPT_POST=>TRUE, CURLOPT_HEADER=>"application/x-www-form-urlencoded", CURLOPT_POSTFIELDS=>base64_encode($_GET['name']) )); $data = curl_exec($ch); curl_close($ch); echo $data; } } Now for the in-world scripts. This is meant to go into a single prim and be left to sit there. Name2Key.lsl string update_url = "http://WebsiteName.com/Name2Key/update_url&url="; string url; key urlRequestId; key selfCheckRequestId; key name_query; key return_key; request_url() { llReleaseURL(url); url = ""; llSetTimerEvent(0.0); urlRequestId = llRequestURL(); } throw_exception(string inputString) { llInstantMessage(llGetOwner(), inputString); llResetScript(); } default { state_entry() { request_url(); } on_rez(integer start_param) { llResetScript(); } changed(integer change) { if (change & CHANGED_OWNER | CHANGED_REGION | CHANGED_REGION_START) llResetScript(); } timer() { selfCheckRequestId = llHTTPRequest(url,[HTTP_METHOD, "GET",HTTP_VERBOSE_THROTTLE, FALSE,HTTP_BODY_MAXLENGTH, 16384],""); } dataserver(key i, string d) { if(i == name_query) { if(d != NULL_KEY) { llHTTPResponse(return_key,200,d); } else { llHTTPResponse(return_key,200,NULL_KEY); } } } http_request(key id, string method, string body) { integer responseStatus = 400; string responseBody = "Unsupported method"; if (method == URL_REQUEST_DENIED) throw_exception("The following error occurred while attempting to get a free URL for this device:\n \n" + body); else if (method == URL_REQUEST_GRANTED) { url = body; llHTTPRequest(update_url+""+llStringToBase64(url),[HTTP_METHOD,"GET",HTTP_VERBOSE_THROTTLE,FALSE],""); llSetTimerEvent(300.0); } else if (method == "GET") { llHTTPResponse(id, 400, "Unsupported Method"); } else if (method == "POST") { body = llBase64ToString(body); name_query = llRequestUserKey(body); return_key = id; } } http_response(key id, integer status, list metaData, string body) { if (id == selfCheckRequestId) { selfCheckRequestId = NULL_KEY; if (status != 200) request_url(); } else if (id == NULL_KEY) throw_exception("Too many HTTP requests too fast!"); } } As I said, this is not a "finished" product, as it still needs some upgrades. We highly recommend that you use it as a backup to other online Name2Key Services when you get a NULL_KEY. Hope this helps out other users!
  16. We're not really worried about the monthly fee. It's pretty cheap between us all as there are multiple stores in the single sim. Which is beneficial to us. As for the pricing, that's why we were interested in buying through Second Life's as compared to buying a private region through the forums. We noticed that people are charging a lot more than what is worth it. Well, that helps answer a lot of our questions, we appreciate the help.
  17. Hello Friend! I currently have a private homestead region that is rented through a rental company. We use it for our businesses in the region. We're looking to expand and are wanting to upgrade to a full region. We've been looking to buy a new full region and had a question on the Setup Fee. One thing we were told was that your first month is included in the Setup Fee. We wanted to know if this is true, that way we know to prepare for that as well on our monthly Budgets. One thing we've been back and forth on; is whether it will be worth it to buy a full region on the forums or through a land salesman, or to buy it off the Second Life website. I know that when buying through a land salesman you have to pay to get it transferred to yourself. Once we transfer and have that region, how much does it cost to have the name changed? If we did that, would it be more worth it than just buying a region from the Second Life Website? Thank you, Shymus Roffo.
  18. Job Overview Are you a killer Animator looking to show off your skills and better engage yourself and test your skills? While working in your role, you will be tasked with assisting on larger projects through out all brands of Nexus and Partners (Cliff Side Motor, MoreThanPixels, Osh Fergana and Needs). Along with helping partners, you will also be given a place to start your own store and the assistance on getting the name out there. Along with your skills, we will assist you ass necessary for any projects you are looking to achieve. Want to come visit us? Visit our Store Region in Mayfield. https://maps.secondlife.com/secondlife/Mayfield/127/127/2001 Responsibilities - Work with Nexus & Partner Companies to provide a strong product. - Develop Animations for Second Life Avatars, Bento Avatars, and Animesh. - Assisting with Customer Support on products you assist in developing. Requirements - Knowledge of QAvimator, Blender, or other Animation Software. - Experience in Motion Capture a plus. - Experience in 3D Modelling a Plus. (Blender, Maya, etc.) - Experience in Visual Animation a plus. (GIF, Adobe Premiere and After Affects). - Experience in LSL, or Software / Web Languages a plus. - Experience in Graphic Design as plus. (Illustrator, Photoshop, etc.) - Good knowledge of MediaWiki Software as plus. Life At Nexus Upon entering the Nexus community, most developers will start their own company. While you are working with us, you are considered a partner with Nexus. As a Partner, we will occasionally work with each other on larger projects. If you are someone who’s looking to better their skills, we are the right place for you. How To Apply If you are interested in applying for the position, please send an example of work to Shymus Roffo at shymus.roffo@nexus-sl.net or send the work to Shymus Roffo In-World.
  19. I went ahead with the trick that doesn't involve the heavy math, that one seemed to work the best. But, my question is now. Which would be a better approach? Is it better to use the Diagonal Pyth Theory, or should i just get the size of the prim, then divide, and so on?
  20. Well, i tried that. Without any luck. For some reason the diagonal thing doesn't seem to work. It keep to much of a distance away from the prim. These scripts show what i used to test the placement of markers. There are two markers and a square. My attempt is to get the to markers to stay attached to the corners of the base square or rectangle. Square / Rectangle default { state_entry() { llSetTimerEvent(1); } timer() { vector scale = llGetScale(); float hyp = llSqrt(scale.x * scale.x + scale.y * scale.y); float distance_from_center = llSqrt(scale.y * scale.y + hyp * hyp) / 2; vector pos = llGetPos(); llSay(1,(string)<pos.x - distance_from_center,pos.y - distance_from_center,pos.z>); // Southwest Corner llSay(2,(string)<pos.x + distance_from_center,pos.y + distance_from_center,pos.z>); //Northeast Corner }} Marker 1 & 2 default{ state_entry() { llListen(1,"","",""); //llListen(2,"","",""); } listen(integer c, string n, key i, string m) { if(llGetOwnerKey(i) == llGetOwner()) { llSetPos((vector)m); } }} The size of the marker does not matter as long as the center position of it is directly on the corner. I may just not be understanding what you are writing about the theory. I'm not the best at understanding Math. Thank you!
  21. I'm not really understanding that much. I probably forgot to elloborate a bit, i need to place a prim in the region based on the position of those corners. My intentions is to be able to make a map via PHP's GD library. Since it takes two corners to draw a rectangle, i need a way to get those corner's positions without having to use seperate cubes.
  22. Hello, I've been working on creating something that requires the use of the corners of the prim instead of the center. I'm not very good with math, all my attempts have failed. The best success i had was getting the prim's diagonal. However, if i get the diagonal of the prim, i need the diagonal line's end points. Here's what i'm trying to do. The green points inside the square are the prim's points that i need to get.  The Cube is 50 x 50. It is placed randomly in the world. The intentions are to be able to size the cube randomly and be able to get the positions of the cube or rectangle's corners or the end positions of the diagonal (Red Line). As i have said, all attempts have failed and it has upset me. All attempts used the Pythygorean's Theroem as that is all the information i could find on the internet that was similar to what i was looking for. Thank you!
  23. Eh. That wouldn't have worked. I had to put in some triginometry. Luckily i got it working, thanks for the help!
  24. So, i've taken into learn Camera Functions. While doing that i'm trying to make an RC car with a camera hooked on it. While doing that i've been having problems with keeping the camera facing forward with the Focus. I'm pretty sure my equitation to get the point in front of it based on the rotation is incorrect... The object is not a car you sit on, a camera follow script is not the result i'm looking for. It's an RC Car that is controlled with a controller. You wear the controller and the controller updates the camera every 0.1 seconds. What i'm trying to do is get a point in front of the object based on the rotation and position. Example below. The red point is not linked.  Now when that center ball rotates, i'm trying to get the position of the red point. Sadly, i've been very unsuccessful.  I'm doing all this for Camera Focus for when an object turns, like a controllable camera. Sadly i haven't been able to find any other way to go about this. Below is the way i've been getting the point in front of the prim. list d = llGetObjectDetails(robot_uuid, [OBJECT_POS,OBJECT_ROT]); vector pos = llList2Vector(d,0); rotation rot = llList2Rot(d,1); //llClearCameraParams(); // I don't know if this is required? llSetCameraParams([ CAMERA_ACTIVE, 1, CAMERA_BEHINDNESS_ANGLE, 0.0, CAMERA_BEHINDNESS_LAG, 0.0, CAMERA_DISTANCE, 10.0, CAMERA_FOCUS, (pos+<1,0,0>)*rot, // Set the camera rotation. (Incorrectly...) CAMERA_FOCUS_LAG, 0.05 , CAMERA_FOCUS_LOCKED, TRUE, CAMERA_FOCUS_THRESHOLD, 0.0, CAMERA_PITCH, 0.0, CAMERA_POSITION, pos, // Set the camera position. CAMERA_POSITION_LAG, 0.0, CAMERA_POSITION_LOCKED, TRUE, CAMERA_POSITION_THRESHOLD, 0.0, CAMERA_FOCUS_OFFSET, <0,0,0> ]);
  25. I just went ahead and set the rotation after the animation is done. What is a round number? I don't really understand rotations that well.
×
×
  • Create New...