Jump to content
Sign in to follow this  
MishkaKatyusha

reworking a collision event to avoid hitting its own launcher

Recommended Posts

ok,long story short.the main problem i got is i designed a line in this collision event which i thought would keep the projectile from colliding with it's own launcher,i have the projectile set to turn to physical on rez,so if i set the launcher to phantom the missile just drops straight out the bottom

anyone wanna tell me how i curmudgeoned this line?its the first if event in the collison event,

 collision(integer num_detected)
        {
         if (llDetectedType(0) & LINK_THIS)
        {
         ;
        }
         if (llDetectedType(0) & ACTIVE)
        { 
         explode();
        }
         if (llDetectedType(0) & SCRIPTED)
        {
          explode();
        }
        if (llDetectedType(0) & PASSIVE)
        {
          explode();
        }
        }
        land_collision(vector pos)
        {
          explode();
        }

would adding llSetStatus(STATUS_PHYSICS, FALSE); to the first if event work?

Share this post


Link to post
Share on other sites

hold up a minute,this is rather embarrasing.seems i answered my own question

turns out the answer was me writing llSleep(0.3); ,so that the script would be forced to sleep for 3 seconds if it detected its own link set

  collision(integer num_detected)        {         if (llDetectedType(0) & LINK_THIS)        {         llSleep(0.3);        }         if (llDetectedType(0) & ACTIVE)        {          explode();        }         if (llDetectedType(0) & SCRIPTED)        {          explode();        }        if (llDetectedType(0) & PASSIVE)        {          explode();        }        }        land_collision(vector pos)        {          explode();        }

Share this post


Link to post
Share on other sites

Hand guns avoid a collision by rezzing the bullet 1m or more in front of the barrel.

With a cannon mounted on a spaceship I simply rez the "bullets" physical and phantom with a vector and a speed. The bullet script will switch phantom off after a short delay. (allows to avoid early collisions and to pass the force field before they are armed)

If you really want to rez the rocket in the launcher and make a self propelled launch (why so complicated?) you need to prevent the explosion until it's in a save distance. Either by using a global variable (set to TRUE by timer event for example and checked by the explosion function) or by making a script with 2 states. One with and one without the collision event.

 

Share this post


Link to post
Share on other sites

You can't use llDetectedType that way successfully to detect the rezzer, except by accident.

       if (llDetectedType(0) & LINK_THIS)

The parameter LINK_THIS will return the link number of the prim that the script is in (your projectile), but  llDetectedType is expecting an integer with the value 0x1, 0x2, 0x4, 0x8, or 0x10, or some combination of those OR'd together. See the LSL wiki at http://wiki.secondlife.com/wiki/LlDetectedType

I think you probably want to test

 

       if (llDetectedName(0) == "My Rezzer's name goes here")

or something like that, so that it identifies the rezzer and then ignores it.  As Nova suggests, though, the much better suggestion is to rez the projectile in front of the rezzer, so that it can't possibly hit it.

Share this post


Link to post
Share on other sites

o.O check my second post

 

see it works just fine,not sure if its by accident,but it makes my code detect the launcher,and the forces the script to sleep to 3 seconds,the launcher is small enough that this works just fine

Share this post


Link to post
Share on other sites

llDetectedType() returns a bitfield over the low-order five bits. LINK_THIS is a completely different thing, a constant passed into various link-related functions, with the arbitrary value of -4. Now, a bitwise-and ("&") of a negative number and that bitfield is almost certainly not what's intended. (It'll happen to evaluate to TRUE for types that include SCRIPTED or PASSIVE flags, but that's at best a happy accident, and nothing to do with any link identity.)

Share this post


Link to post
Share on other sites

nevermind,i took the llDetectedName suggestion,i tested the launcher abit further and i was getting odd results from LINK_THIS.

it would be nice to rez the missile infront of the launcher of course,but im having trouble getting the vector for the placement in the launcher script to listen to me

Share this post


Link to post
Share on other sites

o.O i thought you had put me on ignore,didnt expect to see you again

 

well riddle me this then if you would be alright with it,and dont consider it if you wont be alright with it

 

is the llEuler2Rot interfering with this line that rolig made?

 vector velocity = <15, 0.0,90.0>*llGetRot();

or is it the other way around,i found that the first number in this strange function controls foward velocity,the second controls up/down tilt,and the third controls what i beleive is a horizontal spin

ive gotten the missile to fire mostly in the proper direction,but it seems perpetually jammed to where it fires slightly to the left,and ontop of that the particle systems of the missile engaged rotated 90 degrees the wrong way

Share this post


Link to post
Share on other sites

people wrote code in diferent ways, that is Rollig way, i split mine up into a mathmatical formula as i find it easier. the reason i took the impuls part out of the rezzatroot is that it would have rezzed and gone. The impulse parameter is till in the script if one wanted to use it that way. The missile needs to locate the agen or object targett and launch on the fire command. But that is my own way of how RL would be.

ADDED In short the rezzer boxes rotation is asertaind and you want it rezzed say pointing 90 degrees further so it is added to the first rotation. in simplistic terms. 15 in the force to move the object. Yes that is about as simple as i can get it,

Share this post


Link to post
Share on other sites

I'm not sure you properly understand what the various elements of llRezAtRoot() do, and how rotations work in LSL.

If you do, my apologies, but maybe someone else will find my annotations useful.

        rotation rRot = llEuler2Rot(<0.0,90.0,0.0>*DEG_TO_RAD);//assuming your missile is based on a tube, this sets the tube's positive Z axis -- one of the flat ends -- pointing forwards        llRezAtRoot(            "My Missile",///name of object to rez, obviously            llGetPos()+ <1.0,0.0,0.0> *llGetRot(),//rez the object one metre ON THE REZZER'S POSITIVE X Axis (that is, in front of the rezzer's face 2, if the rezzer is a box)            <15.0,0.0,1.0>*llGetRot(),//assuming it's set to physical, it should be moving at 15 metres/second forward of me and 1 metres/second up from me            rRot*llGetRot(),//correc for my rotation, so that the tube's face 0 is pointing in the same direction as my positive X Axis (probably what you want)            99//arbitrary number that I'm passing to any scripts inside the projectile, which can be read either as the start_param in the event on_rez(integer start_param)                //or using llGetStartParameter() anywhere in the script (unless the script is reset for any reason).                );

 

Share this post


Link to post
Share on other sites

o.O looking at that,i think its become obvious that,pardon my language,but i got something about how my script functions "bass ackwards".so with that in mind,i will henceforth in this post both scripts as they are now.along with the object size parameters,and a screenshot of the object's rotation outside of SL (this is probably something thats messing with the rotation)

feel free to call me an idiot or what have you,or naive.but i feel its a saving grace that im making a sincere attempt to write bits of scripts (and btw,i have read some of the lsl tutorial page,which has advanced things abit.)

ADDED: also,feel free to gloss over the large amounts of data to the availible parts,the whole data,actually totaling about 4 scripts,3 of which are inside the missile itself,is being posted merely for ease of access.

the launcher script

string object = "Missile"; vector placement = <20.0, 0.0, 10.0>;vector velocity = ZERO_VECTOR; rotation spin; integer startParam = 10;integer listen_handle;   //Completed by MishkaKatyusha(Grace Ann Ashcraft) on january 23,2016 at 3:37 a.m. CST,United States. Major Thanks to Steph Arnott,Rollig Loon,and all others who contributed to this workdefault{    state_entry()    {         listen_handle = llListen(5, "", llGetOwner(), "fire");     }      on_rez(integer start_params)     {       llPassCollisions(FALSE);         llSetTimerEvent(0.7);                    }             listen( integer channel, string name, key id, string message )    {        llOwnerSay("Firing");        vector velocity = <15, 0.0,90.0>*llGetRot();        vector placement = llGetPos();        rotation spin = llEuler2Rot(<0,0.0,TWO_PI>);        integer startParam = llGetStartParameter();            llRezAtRoot("Missile", placement, velocity, spin, startParam);                       }        timer()    {        llDie();    }      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.        }    }}

the missile script

 // This "Launch" block of text may look funny,but its a key of sorts.see all that "psys" text down there?thats basically commands that tell the system what to do when the "launch" key is put inside an "if" event.(though in reality the key text can be anything at all really).In this particular case,the "Launch" Key,controls what the object does when its flying through the air,since this is basically a missile.Launch(){      llLoopSound("rocket-transit", 2.0);    llParticleSystem([        PSYS_PART_FLAGS, PSYS_PART_INTERP_COLOR_MASK | PSYS_PART_INTERP_SCALE_MASK,                PSYS_SRC_PATTERN, PSYS_SRC_PATTERN_DROP,                PSYS_PART_START_COLOR, <1, 0, 1>,        PSYS_PART_START_ALPHA, 1.0,        PSYS_PART_START_SCALE, <.1, .1, 0>,        PSYS_PART_END_SCALE, <.1, .1, 0>,        PSYS_PART_END_ALPHA, 0.0,                PSYS_SRC_BURST_RATE, .01,        PSYS_SRC_BURST_PART_COUNT, 15,                PSYS_SRC_TEXTURE, "smoke",                PSYS_PART_MAX_AGE, 3.0    ]);}explode(){    llTriggerSound("exp1", 10.0);    llTriggerSound("exp2", 10.0);    llTriggerSound("exp3", 10.0);    llTriggerSound("qwk1", 10.0);    llRezObject("Reng Chau 2", llGetPos() + <0,0,0>, ZERO_VECTOR, ZERO_ROTATION, 1);     llRezObject("Reng Chau 1", llGetPos() + <0,0,0>, ZERO_VECTOR, ZERO_ROTATION, 1);    llTriggerSound("qwk1", 10.0);    llTriggerSound("qwk1", 10.0);    llDie();}default{    state_entry()    {            }     //This part activates the whole rocketry launch thing,rocket sounds,and some other assorted effects,on_rez means quite simply "when it poppes up,do this",this script can stay simpler because alot of what the object does is controlled in the script inside of the launcher itself    on_rez(integer total_number)    {              llSetStatus(STATUS_PHYSICS,TRUE);       llResetScript();       Launch();    }                 collision(integer num_detected)        {         if (llDetectedName(0) == "Alien Plasma Launcher")        {         llSleep(0.1);        }         if (llDetectedType(0) & ACTIVE)        {          explode();        }         if (llDetectedType(0) & SCRIPTED)        {          explode();        }        if (llDetectedType(0) & PASSIVE)        {          explode();        }        }        land_collision(vector pos)        {          explode();        }}// By someone named "James Benedek",with alterations by "MishkaKatyusha(Grace Ann Ashcraft)",Pulled off of "LSL Wiki"    //This part makes the fireworks go off when it hits something     

the first particle object,which is inside the missile

start_particles(){    llParticleSystem([    PSYS_PART_FLAGS, PSYS_PART_EMISSIVE_MASK | PSYS_PART_INTERP_COLOR_MASK |PSYS_PART_EMISSIVE_MASK| PSYS_PART_INTERP_SCALE_MASK | PSYS_PART_FOLLOW_VELOCITY_MASK | PSYS_PART_FOLLOW_SRC_MASK,    PSYS_SRC_PATTERN, PSYS_SRC_PATTERN_ANGLE_CONE,    PSYS_SRC_ANGLE_BEGIN, PI_BY_TWO,    PSYS_SRC_ANGLE_END, PI_BY_TWO,    PSYS_PART_START_SCALE, <0.9, 0.9, 0.9>,    PSYS_PART_END_SCALE, <0.9, 0.9, 0.9>,    PSYS_PART_START_ALPHA, 1.0,    PSYS_PART_END_ALPHA, 1.0,    PSYS_PART_START_COLOR, <0.0,0.0,0.0>,      PSYS_PART_END_COLOR, <0.0,0.0,0.0>,    PSYS_PART_MAX_AGE, 2.0,       PSYS_SRC_BURST_RATE, 0.0,    PSYS_SRC_BURST_PART_COUNT, 9,    PSYS_SRC_BURST_RADIUS, 0.0,    PSYS_SRC_BURST_SPEED_MAX, 1.3,    PSYS_SRC_BURST_SPEED_MIN, 1.0    ]);}stop_particles(){    llParticleSystem([]);}default{    state_entry()    {        start_particles();        llSetAlpha(1,ALL_SIDES);    }        on_rez(integer num)    {        if ( num > 0 )        {            llSetTimerEvent(7);            llSetAlpha(0,ALL_SIDES);            start_particles();        }    }    touch_start(integer total_number)    {        llSay(0, "Touched.");    }        timer()    {        llDie();    }}

the second particle script (which again is inside the missile itself)

start_particles(){    llParticleSystem([    PSYS_PART_FLAGS, PSYS_PART_EMISSIVE_MASK | PSYS_PART_INTERP_COLOR_MASK |PSYS_PART_EMISSIVE_MASK| PSYS_PART_INTERP_SCALE_MASK | PSYS_PART_FOLLOW_VELOCITY_MASK | PSYS_PART_FOLLOW_SRC_MASK, PSYS_PART_RIBBON_MASK,(vector) <0.0, 0.0, 1.0>,    PSYS_SRC_PATTERN, PSYS_SRC_PATTERN_ANGLE_CONE,    PSYS_SRC_ANGLE_BEGIN, TWO_PI,    PSYS_SRC_ANGLE_END, TWO_PI,    PSYS_PART_START_SCALE, <0.4, 0.1, 0.0>,    PSYS_PART_END_SCALE, <0.9, 0.5, 0.0>,    PSYS_PART_START_ALPHA, 0.5,    PSYS_PART_END_ALPHA, 0.9,    PSYS_PART_START_COLOR, <0.6,0.1,0.9>,      PSYS_PART_END_COLOR, <0.6,0.1,0.9>,    PSYS_PART_MAX_AGE, 5.6,       PSYS_SRC_BURST_RATE, 0.05,    PSYS_SRC_BURST_PART_COUNT, 5,    PSYS_SRC_BURST_RADIUS, 0.0,    PSYS_SRC_BURST_SPEED_MAX, 1.0,    PSYS_SRC_BURST_SPEED_MIN, 1.0    ]);}stop_particles(){    llParticleSystem([]);}default{    state_entry()    {        start_particles();        llSetAlpha(1,ALL_SIDES);    }        on_rez(integer num)    {        if ( num > 0 )        {            llSetTimerEvent(7);            llSetAlpha(0,ALL_SIDES);            start_particles();        }    }    touch_start(integer total_number)    {        llSay(0, "Touched.");    }        timer()    {        llDie();    }}

the launcher object i made,screenshot is pre-.obj to .dae conversion



and here is how the launcher looked when its ingame (note i added two little sphere to it for the porthole glow)



Share this post


Link to post
Share on other sites

also,the missile isnt based on a tube,its a sphere,reason for that was mainly due to looks,i wanted it to look like a burning ball of light when it fires

(i cant help myself,i love starwars and alot of well,sci fi movies on the sci fi channel)

 

also one more thing,while i highly doubt the possibility due to how piddly my scripting skills are by comparison to you guys,feel free to use any of these bits ive been posting for whatever if you want.

Share this post


Link to post
Share on other sites

When you are rezzing items by script, I think you may find it helpful to examine them with the build tool's ruler set to Local mode rather than World (that's the drop-down box, next to "Snap" at the top right of the Object tab).   

When you translate something by llGetRot(), you are, in effect, telling the script to use the object's local ruler mode rather than the region's ruler mode -- that is, "in front of me" or "to my left" as opposed to "to my east" or "to my north".

I use the term "translate" rather than "multiply" in this context because that's what you're doing.   You're using the same * symbol, but in this context it doesn't mean "multiply."   For one thing,  multiplication is commutative -- 2 * 3 means the same as 3 * 2.   However, <1.0, 0.0, 0.0> * llGetRot() means something very different from llGetRot() * <1.0, 0.0, 0.0>.

Share this post


Link to post
Share on other sites

ironically enough i solved atleast one problem,

turns out the model's rotation was off when i converted it to .dae format

so what i did was i re-did the upload,except this time in the .obj to .dae file conversion i rotated the thing 90 degrees on the z axis,took me 8 seperate trys to figure out which axis SL was having a problem with,but it worked

 

now i just need to solve these:

placement in the main launcher still doesnt work,llSleep(0.2); works as a bypass,but it forces the thing to have a minimum range

need to rotate particle effects in missile so it looks like its an impact (i dont know how to do that,im going to try adding,somehow,llEuler2Rot to the particle object rezzing line in the explosion protocols script)

missile keeps on bouncing off of things it hits really badly,not sure why that is,but it may be an artifact of my earlier attempts to fix things

 

Share this post


Link to post
Share on other sites

I think your problem with placement in the main launcher is caused by the line 

vector placement = llGetPos();

 in the rezzer script.

That's teling the rezzer you want the missile to rez right in the middle of the rezzer, which is going to be a problem.

Assuming your rezzer is conventionally rotated,  try 

		vector offset = <1.0,0.0,0.0>;//1 metre on the x axis		vector placement = llGetPos()+offset*llGetRot();

You will probably need to play around with the offset a bit, but that should give you a start.   You want the missile to rez just outside whatever is firing it.

I'd suggest you make a mock up to start with.   Ensure your rezzer is set to ZERO_ROTATION and then manually position your missile where you want it to rez.

Then you can read the missile's position relative to the rezzer, and calculate the offset from that.

 

Share this post


Link to post
Share on other sites

ah very much thanks,as for the problems:

1.missiles bounces really badly on impact

i had abit of an epiphany after completing that fix you gave me,turns out the answer was to add llDie(); after every explode(); in the collision event inside the missile

 collision(integer num_detected)        {         if (llDetectedName(0) == "Alien Plasma Launcher")        {                 }         if (llDetectedType(0) & ACTIVE)        {          explode();         llDie();        }         if (llDetectedType(0) & SCRIPTED)        {          explode();            llDie();        }        if (llDetectedType(0) & PASSIVE)        {          explode();            llDie();        }        }        land_collision(vector pos)        {          explode();          llDie();        }}

2.you fixed the placement problem for me

now i understand why so many scripts ive been clawing through from that big grab bag i bought awhile back had the vector offset in them

  listen( integer channel, string name, key id, string message )    {        llOwnerSay("Firing");        vector velocity = <25, 0.0,0.0>*llGetRot();        vector offset = <2.0,0.0,1.0>;//1 metre on the x axis        vector placement = llGetPos()+offset*llGetRot();        rotation spin = llEuler2Rot(<0,0.0,TWO_PI>);        integer startParam = llGetStartParameter();            llRezAtRoot("Missile", placement, velocity, spin, startParam);                       }

i set the x axis to 2 meters and the z axis to 1 meter since the launcher is sort of an inflated diamond-shape

now that we have gotten that fixed,my only remaining problem is the particle effects.which oddly enough i was able to insert a line to the rezz line which allows me to control the rotation of the spawned particle objects,which was llGetRot() + llEuler2Rot (<0, 0, 0>)*DEG_TO_RAD), 1);

 llRezObject("Reng Chau 2", llGetPos() + <0,0,0>, ZERO_VECTOR, llGetRot() + llEuler2Rot(<0, 0, 90>*DEG_TO_RAD), 1);     llRezObject("Reng Chau 1", llGetPos() + <0,0,0>, ZERO_VECTOR, llGetRot() + llEuler2Rot(<0, 0, 90>*DEG_TO_RAD), 1);     llRezObject("Reng Chau 3", llGetPos() + <0,0,0>, ZERO_VECTOR, llGetRot() + llEuler2Rot(<0, 0, 90>*DEG_TO_RAD), 1);

however,im abit mystified.

reng chau one is a disc shaped mass of black particles that emits outwards from a temp sphere mainly in the dual line PI_BY_TWO fashion

reng chau 2 is in inverted,tapered cone like emission of particles that looks abit like a light coming out of a quasar that also emits from a temp sphere,projects straight upwards from the temp sphere

reng chau 3 is a rather scattered emittance of fuschia colored ribbon particles that also emits in same fashion as reng chau one

what i need to do figure out which of the axis in llEuler2Rot needs to be tilted by 90 degrees,or 180 degrees,i needs reng chau 2 to emit as if its pointing straight towards me (reference for the direction not being literal)

reng chau 1 needs to be rotated so the disc emittance is positioned upright,sort of like how a wall is rotated

the same for reng chau 3 as reng chau 1

the reason why im having confusion with this is:

1.im a little scatter brained with all of this script learning

2.im used to how my 3d editors use x for horizontal position/rotation,y for up/down movement/rotation,and z for foward/back movement/rotation,but SL uses things abit differently,so i suppose i could eventually solve it by the rather unsavory trial and error method,what do you think?

Share this post


Link to post
Share on other sites

16 years,half of my life spent on the internet.

alot of that spent on MMos,and other types of simulator stuff,virtual worlds,and so on

never really had a good experience with clans/groups/squads/partys.

that may not be the case here,but this is generally how i go about things.plus its good for the forum contents,visitors to the scripting forum can look and see,plus it makes the foru msearch way more effective for specific questions

Share this post


Link to post
Share on other sites

 First,  I don't know what 

 llRezObject("Reng Chau 2", llGetPos() + <0,0,0>, ZERO_VECTOR, llGetRot() + llEuler2Rot(<0, 0, 90>*DEG_TO_RAD), 1);

 is supposed to do.

In particular, I honestly don't know what the rotation llGetRot() + llEuler2Rot(<0, 0, 90>*DEG_TO_RAD) does, other than it's almost certainly not what you expect it to do.   Or, if it's doing what you want, it's by accident.

Let's take this from the beginning.   LSL uses Quaternions to express rotations.   You need, or so I am told, university level maths to understand them, but fortunately -- for me at least -- you don't need to understand them to use them.

Most of the time we can construct them from the far more familiar vectors, which correspond the the three numbers in the rotation editor in the build tool.

You are correct that LSL (and SL generally) doesn't follow the regular conventions for these vectors.   In LSL, x is forwards and backwards, y is sideways, and z is up and down (at least if we're using a regular prim's frame of reference, which we are in this example).    I don't know why LL's designers chose to do things that way, but they did.

So, if you want to rotate an object through 90 degress on its z axis -- that is, make it move like a merry-go-round -- you can convert the vector <0.0,0.0,90.0> to a quaternion simply the formula rotZ90 = llEuler2Rot(<0.0,0.0,90.0>*DEG_TO_RAD). That means "convert  <0.0,0.0,90.0> from degrees to radians by multplying it by the constant DEG_TO_RAD and then convert the result into a quaternion by using llEuler2Rot.

Now, in order to tell an object to rotate through 90 degrees on its own z axis -- which is what we're trying to do -- you use the formula llSetRot( llEuler2Rot(<0.0,0.0,90.0>*DEG_TO_RAD)*llGetRot()).

I literally do not know know what your formula llGetRot()+llEuler2Rot(etc) does.  I mean, it must do something  but I have no idea what adding two quaterniions together is supposed to do, other than that it's not anything I've ever wanted to do in LSL.

So, what I suggest you do, armed (I hope) with a newer and better understanding of rotations in LSL, is rez your missile and position it at <0,0,0> and then rez and position your various Reng Chau objects where you want them to be in relation to the missile when it rezzes them.

The offset you know how to calculate.  

The rotation is llEuler2Rot(<whatever is in the rotation window in the editor>*DEG_TO_RAD)*llGetRot().   That's what you put in the llRezAtRoot function, obviously, so the missile reads whatever its rotation is -- llGetRot() -- at the moment it rezzes the rings.

  

Share this post


Link to post
Share on other sites

its a messed up version of what i wrote.addad or everyone elses. cicles within circles now

                                vector sumPos       =     llGetPos();				rotation sumRot     =     llGetRot();				vector agent        =     llGetAgentSize(owner_id);//for HUD only				vector test         =     sumPos - agent / 2;//will rezz at feet hight.				vector Adjpos       =     test + offSet * sumRot;//ADDED 2.0 m offSet				vector speed        =     ZERO_VECTOR;				rotation rot        =     sumRot * llEuler2Rot(<0.0,0.0,PI>);//need adjusting for angle, also can angle the missile				integer startParam  =     llGetStartParameter();				llRezAtRoot(msg2, Adjpos, speed, rot, startParam);

 vector offSet = <2.0, 0.0, 0.0>; was in the global

Share this post


Link to post
Share on other sites

it does what i want basically.which is it confines the rotation to algebraic stuff.why?neither of us knows why.infact this has happened to me more than once in time,i find if by accident or unsure shot in the dark,i get a bonus,its generally best not to ask that many questions

though i have some insight on this,in my experience with computers,if they get two "program compatible" statements at the same time,both referring to the same thing in different ways

the computers will always go for what makes sense over what doesnt.so its likely that the internals of second life LSL is somehow getting the general jist of what i mean by that formula

and as for you steph?not even close,i learned from you fixing that bed script i bought sometime back that llEuler2Rot(<0.0,0.0,0.0>*DEG_TO_RAD converts rotation into a much easier to toy with algebraic,

and as for why i used llGetRot? i judged it as the best way at the time to force the line to target the summoned objects rotation.and claiming i simply chopped and pasted?not even close,this whole thing refers to the particle objects,which are inside the missile,which is inside the launcher,i have the missile script controlling the collision events,and the rotation of the particle spheres when there spawned,so quite obvious with the way i was doing this i couldnt just put it in the launcher script or the particle scripts inside the particle objects,it all had to be crammed into those lines.

and yes i have been learning how to apply the script punctuation,from two sources,the lsl tutorial.and you remember that missile script you said was "old,rubbish,garbage"?,ive been using various methods to tear the missile from it down to its individual components,and study those

ive literally got hundereds of different variants by now of that missile in my objects inventory,most of which would cause bad problems,or not run at all if you tryed.sometimes i can learn quickly by trial and error,toy with this,tinker with that,you figure out what does what.

and besides,it works,the system approves of it,so your not allowed to judge,literally not at all.you can have your opinion but lets be honest with each other,your opinion about things i do,and vice versa.means literally nothing to me,and since really your only getting aggrivated because this doesnt conform to your rigid cultural expectations of the LSL community,i will continue on in this manner,disrespectfully disregarding your feelings as you have mine

thats not unfair or hostile,thats simply getting even

you should really pay a visit to my thread "curiousity about script learning" in general discussion.and read the whole thing,not only will you have your assertions of what is proper in lsl learning put in severe doubt (as if that would make a difference,as you seem about as flexible as wrought iron),but youll be entirely confused by the end,which i think would be good for you

now ill accept this rather rude sounding post of yours as possibly a one off,or a misinterpretation.but any further rude sounding posts,and ill do the same thing i did last time

Share this post


Link to post
Share on other sites

i have no idea as to what you are on about, do find this some what a poke in the eye to innula who is far beyond my level. Am lost on this aparent rant also. Any how shalom.

"you should really pay a visit to my thread "curiousity about script learning" in general discussion.and read the whole thing,not only will you have your assertions of what is proper in lsl learning put in severe doubt (as if that would make a difference,as you seem about as flexible as wrought iron),but youll be entirely confused by the end,which i think would be good for you"

Share this post


Link to post
Share on other sites

read down two the fourth two line paragraph in my rant,thats the part where i switch to talking to you

and by quoting the last bit of my statement,i do beleive it worked as it was designed to.

"a confused person usually isnt an enemy,atleast for the duration of the confusion"

which is good,as i have even more bizarre ideas in the coming days for my missile launcher

all of which youll love in there glorious nonsensical gibberish,yes,cats will walk on ceiling,republicans will become homeopathic medicine favoriting philosophers,and people will finally realize we are all sith by the time im done :D and i just know youll love it

Share this post


Link to post
Share on other sites

You are a very rude person, your rants are not welcome and neither acceptable. You appear to enjoy it. This is a forum that other give their time too. People like you seem to feel it is an open chat site for what ever. IDK, very odd behaviour. ADDED BTW keep on topic.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

×
×
  • Create New...