2008年06月30日
AV レーダーできた
作るかな~ と言っていたものを作ってみました
-----
-----
-----
-----
リストもあげておきます
-----
まず本体の側
-----
-----
-----
-----
リストもあげておきます
-----
まず本体の側
//次に AV 毎に生成するボールの側
// File: AVRadar.lsl
// Date Author number of nodes
// 2008/6/29 walkinglint 21
//
integer i;
float range = 2.5;
float scale;
vector radar_pos;
vector av_image_pos;
integer av_image_channel = 851;
default {
state_entry() {
llSensorRepeat("", NULL_KEY, AGENT, 96.0, PI, 60);
scale = 2.5 / (2.0 * 96.0);
}
on_rez(integer param) {
llResetScript();
}
sensor(integer num_detected) {
radar_pos = llGetPos();
for (i = 0; i < num_detected; i++) {
av_image_pos = radar_pos + (llDetectedPos(i) - radar_pos) * scale;
llRezObject("av_image", av_image_pos, ZERO_VECTOR, ZERO_ROTATION, 0);
llSleep(0.1);
llSay(av_image_channel, llDetectedName(i) + "," + (string)llDetectedKey(i));
}
}
}
//
// File: av_image.lsl
// Date Author number of nodes
// 2008/6/29 walkinglint 39
//
integer listener;
integer av_image_channel = 851;
list av_data;
string av_name;
key av_key;
integer av_dist;
integer av_info;
default {
state_entry() {
listener = llListen(av_image_channel, "", "", "");
}
on_rez(integer param) {
llResetScript();
}
listen(integer channel, string name, key id, string message) {
av_data = llParseString2List(message, [","], []);
av_name = llList2String(av_data, 0);
av_key = llList2Key(av_data, 1);
av_dist = llList2Integer(av_data, 2);
llSetText(av_name, <1.0, 1.0, 1.0>, 1.0);
if (av_dist >= 20) {
llSetAlpha(0.5, ALL_SIDES);
} else {
llSetAlpha(1.0, ALL_SIDES);
}
av_info = llGetAgentInfo(av_key);
if (av_info & AGENT_TYPING) {
llSetPrimitiveParams([25, ALL_SIDES, 0.1]);
} else {
llSetPrimitiveParams([25, ALL_SIDES, 0.0]);
}
if ((av_info & AGENT_FLYING) || (av_info & AGENT_IN_AIR)) {
llSetColor(<1.0, 0.0, 0.0>, ALL_SIDES);
} else if (av_info & AGENT_WALKING) {
llSetColor(<1.0, 1.0, 0.0>, ALL_SIDES);
} else if ((av_info & AGENT_ON_OBJECT) || (av_info & AGENT_SITTING)) {
llSetColor(<0.0, 0.0, 1.0>, ALL_SIDES);
} else {
llSetColor(<0.0, 1.0, 0.0>, ALL_SIDES);
}
llListenRemove(listener);
}
}
Posted by walkinglint at 14:16│Comments(0)
│walking のスクリプティング講座