// Written By: Ĵyм Ѡҩℓƒ (Jym Resident) /* LICENCE: This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . or you may visit - http://license.idjhost.com/ */ // DESCRIPTION // Rez items in a circle around the root prim string objectName = "Object"; integer rezTen = 10; float xRadius = 0.64; float yRadius = 0.64; float flareAngle = 0.0; float bendCoefficient = 0.0; vector rotOffset = <0.0, 180.0, 0.0>; vector posOffset = <0.0, 0.0, 1.0>; makeTen(){ integer n; float theta; vector pos; rotation rot; for(n = 0; n < rezTen; n++) { theta = TWO_PI * ( (float)n / (float)rezTen ); pos.x = xRadius * llCos(theta); pos.y = yRadius * llSin(theta); pos.z = -bendCoefficient*llCos(theta)*llCos(theta); pos = pos + llGetPos() + posOffset; rot = llEuler2Rot(); rot = rot * llEuler2Rot(<0, -1*flareAngle*DEG_TO_RAD, 0>); rot = rot * llRotBetween(<0.0,1.0,0.0>, <-1.0 * xRadius * llSin(theta) / ( llSqrt ( (yRadius*yRadius * llCos(theta) * llCos(theta)) + (xRadius*xRadius * llSin(theta) * llSin(theta))) ),yRadius * llCos(theta) / ( llSqrt ( (yRadius*yRadius * llCos(theta) * llCos(theta)) + (xRadius*xRadius * llSin(theta) * llSin(theta))) ),0.0>); if ( n== (rezTen/2) ) rot = rot * llEuler2Rot( <0,PI,0> ); llRezObject(objectName, pos, ZERO_VECTOR, rot, 0); } } default{ on_rez(integer r){ llResetScript(); } touch_start(integer total_number){ if (llDetectedKey(0) == llGetOwner()){ makeTen(); } } }