Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // 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 <http://www.gnu.org/licenses/>.
- 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(<rotOffset.x*DEG_TO_RAD, rotOffset.y*DEG_TO_RAD, rotOffset.z*DEG_TO_RAD>);
- 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();
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement