Jump to content

VirtualKitten

Resident
  • Posts

    916
  • Joined

  • Last visited

Everything posted by VirtualKitten

  1. Um yes it worked but why are you using a non secure server ? ie http:// not https:// Hugs D
  2. Thanks what would be the right method to reverse the curve from a collision using my code please which will detect collision. I presume i could run doCheckFloorcollision_key(key k) to detect crash into floor Could I use _llGetBoundaryUsingCastRay(string raytype, float width) to get alternate direction notification to reverse curve in different direction at a reflected incident of impact like a ball would rebound I think I would need to rotate refFrame and Ipos and call Coefisfirst() again but how can I get incidence of refraction and add it to rotation in refFrame and Ipos? like do { if (b_i == liN || b_i == 1) { b_i = 1; coefisFirst();} newrot = Vec2Rot(dBez( b_i/liN)); newpos = (dBez( b_i/liN)); b_i++; if(collision()) { b_i = 1; // reverse reflected incidence from perpendicular of ray angle in iPos and refFrame? coefisFirst(); } until(!collision) Hugs D
  3. Hmm yep it doesn't like the sim border also it would be nice for it to go different arc rotated if its edge collides with something I can detect objects with my routine in creature but presumable if i rotate this 90 degrees it will still keep trying to go in that direction ? float _GetBoundingBox(key box_key) { if(box_key != NULL_KEY) { list box = llGetBoundingBox( box_key); vector size = llList2Vector(box, 1) * llGetRot() - llList2Vector(box, 0) * llGetRot(); if (llAbs(llRound(size.x)) < llAbs(llRound(size.y))) { float temp = size.y; size.y = size.x; size.x = temp; } return llAbs(llRound(size.z)); } return -1; } float _llGetBoundaryUsingCastRay(string raytype, float width){ list ray=[]; if(raytype=="-y") { ray = llCastRay(llGetPos()+<-(width/2),0.0,0.0>,llGetPos() + <width/2, -50.0, 0.0>,[RC_MAX_HITS, 5]); } else if(raytype=="-x") { ray = llCastRay(llGetPos()+<0.0,-(width/2),0.0>, llGetPos() + <-50.0, (width/2), 0.0>,[RC_MAX_HITS, 5]); } else if(raytype=="x") { ray = llCastRay(llGetPos()+<0.0,-(width/2),0.0>, llGetPos() + <50.0,(width/2), 0.0>,[RC_MAX_HITS, 5]); } else if(raytype=="y") { ray = llCastRay(llGetPos()+<-(width/2),0.0,0.0>, llGetPos() + <(width/2), 50.0, 0.0>,[RC_MAX_HITS, 5]); } else return -1; // We have a Ray //llOwnerSay((string)ray + " raytype = " + raytype); vector mypos = llGetPos(); integer i=0; integer position; mypos = llGetPos(); do { key lkID = llList2Key(ray, i); // vector i_pos = llList2Vector(ray,i+1); if(llSubStringIndex(raytype, "x")!=-1) { if((integer)pos.x != (integer)mypos.x ) { position= i+1; i = llGetListLength(ray) - 1; }; } else if(llSubStringIndex(raytype, "y")!=-1) { if((integer)pos.y != (integer)mypos.y ) { position= i+1; i = llGetListLength(ray) - 1; }; } i+=2; } while(i<=llGetListLength(ray) - 1); vector collision_pos = llList2Vector(ray,position); if(llSubStringIndex(raytype, "-y")!=-1 ){ return (integer)llFabs((mypos.y - collision_pos.y)); } else if(llSubStringIndex(raytype, "-x")!=-1) { return (integer)llFabs((mypos.x-collision_pos.x)); } else if(llSubStringIndex(raytype, "x")!=-1) {return (integer)llFabs((collision_pos.x-mypos.x )); } else if(llSubStringIndex(raytype, "y")!=-1) { return (integer)llFabs((collision_pos.y -mypos.y)); } else return -1; } integer doCheckFloorcollision_key(key k) { Debug("Check Collision with Floor"); float width = 4; list ray = llCastRay(llGetPos()+<-(width/2),0.0,0.0>, llGetPos() + <(width/2), 50.0, 0.0>,[RC_MAX_HITS, 5]); vector mypos = llGetPos(); integer i=0; integer position; do { key lkID = llList2Key(ray, i); vector ir_pos = llList2Vector(ray,i+1); if((integer)ir_pos.y != (integer)mypos.y ) { position= i+1; i = llGetListLength(ray) - 1; } i+=2; } while(i<=llGetListLength(ray) - 1); vector collision_pos = llList2Vector(ray,position); if(llList2Key(ray,i) == k) return FALSE; else return TRUE; } float DoCheckSurrounding(string c) { if(c=="UP") { float _a = _llGetBoundaryUsingCastRay("-y", 1.2); Debug(" Upper Boundary @ " +(string)_a); if(_a >10.0) return _a; else return -1; } return -1; } integer __llTargetRemove(integer _id){ llTargetRemove(_id); return 0; }
  4. Yes its odd Proff when i click on it its starts to curve , but travels off sim
  5. Profaitchikenz Haiku As you can see the code steps and printout to iteration but moved once while printing also noted Ipos was being returned from nextCoordinates not newrot: if (b_i == liN || b_i == 1) { b_i = 1; coefisFirst();} iPos = Bez( b_i/liN); newrot = Vec2Rot(dBez( b_i/liN)); iPos = (dBez( b_i/liN)); b_i++; } I also tried if (b_i == liN || b_i == 1) { b_i = 1; coefisFirst();} iPos = Bez( b_i/liN); newrot = Vec2Rot(dBez( b_i/liN)); newpos = (dBez( b_i/liN)); b_i++; No on its travels it goes off sim Hugs D
  6. Also i did change if (b_i == liN || b_i == 1) { b_i = 1; coefisFirst();} iPos = Bez( b_i/liN); newrot = Vec2Rot(dBez( b_i/liN)); b_i++; } Which did give an initial movement in a vertical direction. hugs
  7. Hi prof ,I will take another look at my code the reason is is assigning Ipos is that it should have already moved to new position by KFM event loop after and returning to __llWanderWithin You may be correct with regard start value 0 or 1 . Global versus local variables seem to use memory different in second life for example local variables seem more able to use more memory .in a script .I don't know why this is but it can be observed in 800lines of code. Hugs
  8. Prof its the same bits of code in a call routine instead of the unstable add to list routine in her script and yours .The other routines work without this fine so it must be the curve creation bit
  9. Well nothing still works I ported main bits into a cube and cut out what was not needed from my creation just the current move bits if you put it in a long box it wont do what you said it would : integer target_wander_id= 0; integer on_ground_not_flying =0; vector WANDER_RANGE = <20.0,20.0,10.0>; // Set ranges to wander vector iPos; vector pos; vector vLastRelPos; float TARGET_AFFINITY = .4; // How fast will the primitive try to reach the list lCoordinate=[]; rotation lastRot; vector my_home; integer TYPE_FLIGHT; float timer_wander; vector nex_pos; float FUDGE = 0.1; // random delay in flight speed float SPEED = 1.0; // speed of flight. integer target; Debug( string s ) { llSetText( s, <1,1,1>, 1.0 ); //llSetText( "", <1,1,1>, 1.0 ); } rotation NormRot(rotation Q) { float MagQ = llSqrt(Q.x*Q.x + Q.y*Q.y +Q.z*Q.z + Q.s*Q.s); return <Q.x/MagQ, Q.y/MagQ, Q.z/MagQ, Q.s/MagQ>; } vector range = < 5.0, 5.0, 5.0 >; rotation homeRot; vector LEFT=< 0.0, 1.0, 0.0 >; rotation refFrame=<0,0,-0.71,0.71>; vector P1; vector P2; vector P3; vector Q1; vector Q2; vector Q3; integer b_i=0; integer liN = 24; rotation newrot =ZERO_ROTATION; vector randomP() { return llGetPos() + < WANDER_RANGE.x*(llFrand( 2.0)-1.0), WANDER_RANGE.y*(llFrand( 2.0)-1.0), WANDER_RANGE.z*(llFrand( 2.0)-1.0) > * homeRot; } coefisFirst() { P0 = llGetPos(); Po0 = P0; P3 = randomP(); P2 = randomP(); P1 = randomP(); Po1 = P1; Q1 = 3.0*P1-3.0*P0; Q2 = 3.0*P0-6.0*P1+3.0*P2; Q3 = 3.0*P1-P0+P3-3.0*P2; } coefisNext() { P0 = P3; P1 = 2.0*P3-P2; P3 = randomP(); P2 = randomP(); Q1 = 3.0*P1-3.0*P0; Q2 = 3.0*P0-6.0*P1+3.0*P2; Q3 = 3.0*P1-P0+P3-3.0*P2; } vector Bez( float x ) { return P0 + (Q1 + (Q2 + Q3*x)*x)*x; } vector dBez( float x ) { return Q1 + (2.0*Q2 + 3.0*Q3*x)*x; } rotation Vec2Rot( vector FWD ) { FWD = llVecNorm( FWD ); vector UP = < 0.0, 0.0, 1.0 >; if ( llFabs(FWD.z) < 1.0 ) LEFT = llVecNorm(UP%FWD); UP = llVecNorm(FWD%LEFT); return refFrame*llAxes2Rot(FWD, LEFT, UP); } integer __llTargetRemove(integer _id){ llTargetRemove(_id); return 0; } integer checkInside2(vector bottomLeftCorner, vector topRightBack, vector pos) { if (topRightBack == ZERO_VECTOR || bottomLeftCorner == ZERO_VECTOR || pos.x < bottomLeftCorner.x || pos.y < bottomLeftCorner.y || pos.x > topRightBack.x || pos.y > topRightBack.y || pos.z > topRightBack.z ) { return FALSE; // If weare outside area } return TRUE; } vector Po0; vector Po1; vector P0; integer _llObtainLinkFromKey(key l_key) { integer l_i = llGetNumberOfPrims(); if(llGetLinkKey(l_i ) == l_key) return l_i; for(; l_i--;) if(llGetLinkKey(l_i ) == l_key) return l_i; return -1; } vector clipRegion(vector bot, vector top, vector pos) { if (pos.x < bot.x) pos.x = bot.x; else if (pos.x > top.x) pos.x = top.x; if (pos.y < bot.y) pos.y = bot.y; else if (pos.y > top.y) pos.y = top.y; if (pos.z < bot.z) pos.z = bot.z; else if (pos.z > top.z) pos.z = top.z; return pos; } vector nextCoordinates(integer p_TYPE) { // float driftRange = llFrand(MOVEMENT_RANGE); // float circle_radius = 5.0; // float a = llFrand(TWO_PI); // float b = llFrand(TWO_PI); // float c = llFrand(PI); Debug("nextCoordinates"); // if(TYPE == 2) return <iPos.x + driftRange, iPos.y + llFrand(MOVEMENT_RANGE), iPos.z>; //if(TYPE == 4) return <iPos.x + driftRange * llCos(a), iPos.y + driftRange * llSin(b), iPos.z>; // if(TYPE == 8) return iPos + <driftRange * llCos(a) * llCos(b), driftRange * llCos(a) * llSin(b), driftRange * llSin(a)>; // if(p_TYPE == 9) { if (b_i == liN || b_i == 0) { b_i = 0; coefisFirst();} iPos = Bez( b_i/liN); newrot = Vec2Rot(dBez( b_i/liN)); b_i++; //} llInstantMessage(llGetOwner(),"ipos:"+(string)iPos+", newrot:"+(string)newrot+", TYPE:" +(string)p_TYPE+" b_i:"+(string)b_i); return iPos; } integer __loadCoordinates(vector l_pos ,vector l_dest,rotation l_rot, float time , integer target) { //Debug("Load Points..."); llInstantMessage(llGetOwner(),"lpos:"+(string)l_pos+", lDest:"+(string)l_dest); // time = distance/velocity time = (float)llVecDist(l_pos,(l_pos+l_dest))/TARGET_AFFINITY; if(time < 0.2) time = .3; lCoordinate = []; lCoordinate +=l_dest; lCoordinate += l_rot; // * any new rot relative to current position. lCoordinate +=time; pos = l_pos+l_dest; vLastRelPos =pos; lastRot = llGetRot(); //iStartTimer = TRUE; target = __llTargetRemove((integer)target); llSetKeyframedMotion(lCoordinate, [KFM_DATA, KFM_TRANSLATION|KFM_ROTATION, KFM_MODE, KFM_FORWARD]); //iStartTimer = FALSE; return llTarget(pos, 50.0); } _llWanderWithinKeyframe (vector home, vector range, list c) { pos = llGetPos(); iPos = llGetPos(); list TYPE = [9] ; // ,16,32,64,128,126]; integer vAreaParcelsqm = llList2Integer(llGetParcelDetails(iPos,[PARCEL_DETAILS_AREA]),0); vector area = < vAreaParcelsqm -.25, vAreaParcelsqm -.25,vAreaParcelsqm -.25>; vector bot = my_home-WANDER_RANGE/2.0; vector top = my_home+WANDER_RANGE/2.0; //llInstantMessage(llGetOwner(),"bot:"+(string)bot+"top:"+(string)top); // if(TYPE_COUNT++ > 1) { TYPE_COUNT = 0; TYPE_FLIGHT = // (integer)(llFrand(7.0)); iPos = llGetPos();} TYPE_FLIGHT = 0; if( TYPE_FLIGHT == 10) {TYPE_FLIGHT == 0; iPos = llGetPos();} integer i = 20; //timer_wander = llGetUnixTime(); do { //Debug("_llWanderWithinKeyframe:Process point:"+(string)nex_pos); nex_pos = clipRegion(bot,top,nextCoordinates(llList2Integer(TYPE,TYPE_FLIGHT) )); } while(checkInside2(bot,top,nex_pos) == FALSE && i-- >0); if(nex_pos != ZERO_VECTOR && i!=0) { llInstantMessage(llGetOwner(),"_llWanderWithinKeyframe: Moving ipos: "+(string)iPos+"next"+ (string)nex_pos); if(TYPE_FLIGHT != 9) newrot = llGetRot(); target_wander_id = __loadCoordinates(iPos,(nex_pos-iPos),newrot, llFrand(FUDGE)+ (nex_pos.z)/SPEED,target_wander_id); } } default { state_entry() { pos = llGetPos(); iPos = pos; my_home = llGetPos(); llSetLinkPrimitiveParamsFast(LINK_THIS, [PRIM_PHYSICS_SHAPE_TYPE, PRIM_PHYSICS_SHAPE_CONVEX]); } touch_start(integer total_number) { integer i = 10; do { _llWanderWithinKeyframe (llGetPos(),WANDER_RANGE, []); } while(i-- > 0); } at_target(integer tnum, vector targetpos, vector ourpos) { if(tnum == target_wander_id) { //iStartTimer = FALSE; target_wander_id = __llTargetRemove(target_wander_id); } } }
  10. Molly , thanks for your random code and I will let you know result but I provided Prof all the steps and printouts . I just believe I am at the edge of knowledge here in second life and the only lovely script by Dora can be explained or employed as is . The main reason for her crashes is that she and prof dump to lists which are not infinite in second life scripts and crash as they are memory hungry and this is why Dora code crashes With a 800 line script this is fatal. A simpler approach to this is to execute a single of few moves that don't eat memory . I really don't see why this example is not improved . I have been looking elsewhere for math's explanation, but have had no luck. Hugs D
  11. This prints my current position eleven times maybe you don't understand this either like me : vector nextCoordinates(integer p_TYPE) { if (b_i == liN || b_i == 0) { b_i = 0; coefisFirst();} iPos = Bez( b_i/liN); newrot = Vec2Rot(dBez( b_i/liN)); b_i++; llInstantMessage(llGetOwner(),"ipos:"+(string)iPos+", newrot:"+(string)newrot+", TYPE:" +(string)p_TYPE+" b_i:"+(string)b_i); return iPos; }[14:22] Object: ipos:<225.24250, 34.08127, 3500.50600>, newrot:<0.16394, -0.01097, -0.06611, 0.98835>, TYPE:9 b_i:1 sighs D
  12. i didn't think I needed to show anything deja-vu ! Your not reading what I post as it goes wrong from first full script i posted it should not return my current position . I am going to check something no its ok it doesn't show b_i as zero as its incremented just before instantMessage( if your really not interested in helping please don't post Prof as I don't think you have read anything I posted as you would not be saying daft things like have modified parts by copy paste into new script !
  13. Well I just put it in a box and now it returns nada ldest 0 which is subtraction of nex_pos-iPos so the bezier code is producing complete dodo a big 0 .See told it was the bezier code it seems to be returning my current position go figure as the index is incremented b_i vector nextCoordinates(integer p_TYPE) { if (b_i == liN || b_i == 0) { b_i = 0; coefisFirst();} iPos = Bez( b_i/liN); newrot = Vec2Rot(dBez( b_i/liN)); b_i++; llInstantMessage(llGetOwner(),"ipos:"+(string)iPos+", newrot:"+(string)newrot+", TYPE:" +(string)p_TYPE+" b_i:"+(string)b_i); return iPos; } [14:22] Object: ipos:<225.24250, 34.08127, 3500.50600>, newrot:<0.16394, -0.01097, -0.06611, 0.98835>, TYPE:9 b_i:1 _llWanderWithinKeyframe (vector home, vector range, list c) { ... llInstantMessage(llGetOwner(),"_llWanderWithinKeyframe: Moving ipos: "+(string)iPos+"next"+ (string)nex_pos); ... } [14:22] Object: _llWanderWithinKeyframe: Moving ipos: <225.24250, 34.08127, 3500.50600>next<225.24250, 34.08127, 3500.50600> integer __loadCoordinates(vector l_pos ,vector l_dest,rotation l_rot, float time , integer target) { //Debug("Load Points..."); llInstantMessage(llGetOwner(),"lpos:"+(string)l_pos+", lDest:"+(string)l_dest); .... } [14:22] Object: lpos:<225.24250, 34.08127, 3500.50600>, lDest:<0.00000, 0.00000, 0.00000> etc. [14:22] Object: ipos:<225.24250, 34.08127, 3500.50600>, newrot:<0.16394, -0.01097, -0.06611, 0.98835>, TYPE:9 b_i:2 [14:22] Object: _llWanderWithinKeyframe: Moving ipos: <225.24250, 34.08127, 3500.50600>next<225.24250, 34.08127, 3500.50600> [14:22] Object: lpos:<225.24250, 34.08127, 3500.50600>, lDest:<0.00000, 0.00000, 0.00000> [14:22] Object: ipos:<225.24250, 34.08127, 3500.50600>, newrot:<0.16394, -0.01097, -0.06611, 0.98835>, TYPE:9 b_i:3 [14:22] Object: _llWanderWithinKeyframe: Moving ipos: <225.24250, 34.08127, 3500.50600>next<225.24250, 34.08127, 3500.50600> [14:22] Object: lpos:<225.24250, 34.08127, 3500.50600>, lDest:<0.00000, 0.00000, 0.00000> [14:22] Object: ipos:<225.24250, 34.08127, 3500.50600>, newrot:<0.16394, -0.01097, -0.06611, 0.98835>, TYPE:9 b_i:4 [14:22] Object: _llWanderWithinKeyframe: Moving ipos: <225.24250, 34.08127, 3500.50600>next<225.24250, 34.08127, 3500.50600> [14:22] Object: lpos:<225.24250, 34.08127, 3500.50600>, lDest:<0.00000, 0.00000, 0.00000> [14:22] Object: ipos:<225.24250, 34.08127, 3500.50600>, newrot:<0.16394, -0.01097, -0.06611, 0.98835>, TYPE:9 b_i:5 [14:22] Object: _llWanderWithinKeyframe: Moving ipos: <225.24250, 34.08127, 3500.50600>next<225.24250, 34.08127, 3500.50600> [14:22] Object: lpos:<225.24250, 34.08127, 3500.50600>, lDest:<0.00000, 0.00000, 0.00000> [14:22] Object: ipos:<225.24250, 34.08127, 3500.50600>, newrot:<0.16394, -0.01097, -0.06611, 0.98835>, TYPE:9 b_i:6 [14:22] Object: _llWanderWithinKeyframe: Moving ipos: <225.24250, 34.08127, 3500.50600>next<225.24250, 34.08127, 3500.50600> [14:23] Object: lpos:<225.24250, 34.08127, 3500.50600>, lDest:<0.00000, 0.00000, 0.00000> [14:23] Object: ipos:<225.24250, 34.08127, 3500.50600>, newrot:<0.16394, -0.01097, -0.06611, 0.98835>, TYPE:9 b_i:7 [14:23] Object: _llWanderWithinKeyframe: Moving ipos: <225.24250, 34.08127, 3500.50600>next<225.24250, 34.08127, 3500.50600> [14:23] Object: lpos:<225.24250, 34.08127, 3500.50600>, lDest:<0.00000, 0.00000, 0.00000> [14:23] Object: ipos:<225.24250, 34.08127, 3500.50600>, newrot:<0.16394, -0.01097, -0.06611, 0.98835>, TYPE:9 b_i:8 [14:23] Object: _llWanderWithinKeyframe: Moving ipos: <225.24250, 34.08127, 3500.50600>next<225.24250, 34.08127, 3500.50600> [14:23] Object: lpos:<225.24250, 34.08127, 3500.50600>, lDest:<0.00000, 0.00000, 0.00000> [14:23] Object: ipos:<225.24250, 34.08127, 3500.50600>, newrot:<0.16394, -0.01097, -0.06611, 0.98835>, TYPE:9 b_i:9 [14:23] Object: _llWanderWithinKeyframe: Moving ipos: <225.24250, 34.08127, 3500.50600>next<225.24250, 34.08127, 3500.50600> [14:23] Object: lpos:<225.24250, 34.08127, 3500.50600>, lDest:<0.00000, 0.00000, 0.00000> [14:23] Object: ipos:<225.24250, 34.08127, 3500.50600>, newrot:<0.16394, -0.01097, -0.06611, 0.98835>, TYPE:9 b_i:10 [14:23] Object: _llWanderWithinKeyframe: Moving ipos: <225.24250, 34.08127, 3500.50600>next<225.24250, 34.08127, 3500.50600> [14:23] Object: lpos:<225.24250, 34.08127, 3500.50600>, lDest:<0.00000, 0.00000, 0.00000> [14:23] Object: ipos:<225.24250, 34.08127, 3500.50600>, newrot:<0.16394, -0.01097, -0.06611, 0.98835>, TYPE:9 b_i:11 [14:23] Object: _llWanderWithinKeyframe: Moving ipos: <225.24250, 34.08127, 3500.50600>next<225.24250, 34.08127, 3500.50600> [14:23] Object: lpos:<225.24250, 34.08127, 3500.50600>, lDest:<0.00000, 0.00000, 0.00000> I asked you which bits of Dora's code to use as I didn't understand it. You say its not Dora's code so did we not take the correct bit out? Hugs Dx
  14. I can only suggest you make your box same size as mine x : 13.09988 y: 6.11964 z: 3.43326 and see if your bounces about left then right not rotating I guess your small .5m cube doesn't show it as it is not large enough like Doras small box Aso Prof you are not using at_target(integer tnum, vector targetpos, vector ourpos) { if(tnum == target_wander_id) { target_wander_id = __llTargetRemove(target_wander_id); } }
  15. I have no clue what you are talking about Prof I don't think her Bezier code works. I put it in a box next week and bet it doesn't as its not same as mesh has no idea why qui liked your post as I cant understand any of it .
  16. good idea. Prof on your first thoughts I have no other script enabled with running check box. I added a simple return in to my wander script as you can see below but have to inform you nothing then moved in model at all as it is all only the movement that comes through here : I have also sent you dumps of rotation you can see the code is producing this as it was output just after it was created ! Hugs D
  17. Prof idk, this is what it does with qui's data<0,0,-0.71,0.71>. My mesh is Z forward moving test Y as usual for mesh as the animations have different orientation I tried your fix but it worked no better the dragon still spun about in a really weird trajectory sadly but thanks for trying video of what it does : https://kapwi.ng/c/QHdbk37lez
  18. yes Qui my mesh is Z forward moving test Y as usual for mesh as the animations have different orientation I tried your fix but it worked no better the dragon still spun about in a really weird trajectory sadly but thanks for trying video of what it does : https://kapwi.ng/c/QHdbk37lez
  19. i set my liN to 24 and it looks like this https://i.gyazo.com/fb7cf0fae553d88748427af7ed9cb65e.mp4
  20. Prof omg yes I didn't notice this at all or homerot does this need setting too vector WANDER_RANGE = <20.0,20.0,10.0>; I changed vector randomP() { return llGetPos() + < WANDER_RANGE.x*(llFrand( 2.0)-1.0), WANDER_RANGE.y*(llFrand( 2.0)-1.0), WANDER_RANGE.z*(llFrand( 2.0)-1.0) > * homeRot; } which is a little better but still spins about from report : [08:11] Dragontest:<237.63450, 22.97095, 3510.29200>, newrot:<0.57888, -0.40607, 0.62622, 0.32841>, TYPE:9 [08:11] Dragontest:<237.83490, 22.55526, 3510.28100>, newrot:<-0.25646, -0.65896, 0.08918, 0.70146>, TYPE:9 [08:11] Dragontest:<237.83490, 22.55526, 3510.28100>, newrot:<-0.25646, -0.65896, 0.08918, 0.70146>, TYPE:9 [08:11] Dragontest:<237.83490, 22.55526, 3510.28100>, newrot:<-0.25646, -0.65896, 0.08918, 0.70146>, TYPE:9 [08:11] Dragontest:<237.83490, 22.55526, 3510.28100>, newrot:<-0.25646, -0.65896, 0.08918, 0.70146>, TYPE:9 [08:11] Dragontest:<237.83490, 22.55526, 3510.28100>, newrot:<-0.25646, -0.65896, 0.08918, 0.70146>, TYPE:9 [08:11] Dragontest:<238.47110, 23.02396, 3510.22000>, newrot:<0.36167, -0.60762, -0.10060, 0.69991>, TYPE:9 [08:11] Dragontest:<238.47110, 23.02396, 3510.22000>, newrot:<0.36167, -0.60762, -0.10060, 0.69991>, TYPE:9 [08:11] Dragontest:<238.47110, 23.02396, 3510.22000>, newrot:<0.36167, -0.60762, -0.10060, 0.69991>, TYPE:9 [08:11] Dragontest:<238.47110, 23.02396, 3510.22000>, newrot:<0.36167, -0.60762, -0.10060, 0.69991>, TYPE:9 [08:11] Dragontest:<238.47110, 23.02396, 3510.22000>, newrot:<0.36167, -0.60762, -0.10060, 0.69991>, TYPE:9 [08:11] Dragontest:<237.75390, 22.48861, 3510.29000>, newrot:<0.29117, -0.64438, 0.43022, 0.56117>, TYPE:9 [08:11] Dragontest:<237.75390, 22.48861, 3510.29000>, newrot:<0.29117, -0.64438, 0.43022, 0.56117>, TYPE:9 hugs Dx
  21. my snippet gets called many times as you saw from my previous posts . I don't think any of this Bezier stuff works i only saw it work with Dora's code so it must e something missed
  22. Hmm, Prof P1, P2, P3, Q1, q2, Q3 but i don't know which control, what can i set a random distance to my range , sorry little kitten.
×
×
  • Create New...