| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768 |
- // :CATEGORY:Tour
- // :NAME:TourCopter
- // :AUTHOR:Ferd Frederix
- // :CREATED:2013-09-06
- // :EDITED:2013-09-18 15:39:08
- // :ID:909
- // :NUM:1290
- // :REV:1
- // :WORLD:Second Life
- // :DESCRIPTION:
- // Tour
- // :CODE:
- // ______ _ ______ _ _
- // | ___| | | | ___| | | (_)
- // | |_ ___ _ __ __| | | |_ _ __ ___ __| | ___ _ __ ___ __
- // | _/ _ \ '__/ _` | | _| '__/ _ \/ _` |/ _ \ '__| \ \/ /
- // | || __/ | | (_| | | | | | | __/ (_| | __/ | | |> <
- // \_| \___|_| \__,_| \_| |_| \___|\__,_|\___|_| |_/_/\_\
- //
- // fred@mitsi.com
- // tour copter script
- // blade strike push
- //
- //Revisions:
- // 1/28/2010 initial release
- vector local_pos;
- float mass;
- integer i;
- integer on = FALSE;
- default
- {
- link_message(integer sender, integer num, string str, key id)
- {
- if (str == "start") {
- on = TRUE;
- } else if (str == "stop") {
- on = FALSE;
- }
- }
- collision_start(integer n)
- {
- if (!on) return;
- for (i = 0; i < n && i < 3; i += 1)
- {
- if (llDetectedLinkNumber(i) == llGetLinkNumber())
- {
- mass = llGetObjectMass(llDetectedKey(i));
- if ((llDetectedType(i) & AGENT) == AGENT)
- {
- local_pos = llDetectedPos(i) - llGetPos();
- if ((llGetAgentInfo(llDetectedKey(i)) & AGENT_FLYING) == AGENT_FLYING) {
- llPushObject(llDetectedKey(i), llVecNorm(local_pos) * ((llVecMag(local_pos) * 0.4) + 1.0) * mass * llPow(llVecMag(local_pos) + 0.1, 3.0), ZERO_VECTOR, FALSE);
- } else {
- llPushObject(llDetectedKey(i), llVecNorm(local_pos) * ((llVecMag(local_pos) * 0.2) + 1.0) * mass * llPow(llVecMag(local_pos) + 0.1, 3.0), ZERO_VECTOR, FALSE);
- }
- } else if (llDetectedVel(i) != ZERO_VECTOR && mass > 1.0) {
- local_pos = llDetectedPos(i) - llGetPos();
- llPushObject(llDetectedKey(i), llVecNorm(local_pos) * ((llVecMag(local_pos) * 0.15) + 1.5) * mass * llPow(llVecMag(local_pos) + 0.1, 3.0), ZERO_VECTOR, FALSE);
- }
- }
- }
- }
- }
|