2008年05月10日
チャットキャンプ
チャットキャンプのスクリプトを作ってみました。
うまく動くのかなー?
amountは1回に支払うL$,intervalはチャットしている人がいるか探す間隔(秒),areaは人を探す範囲(m)です。
センサーはオブジェクトの正面から半球の範囲にしています。(PI_BY_TWO)
また、オーナーはタッチでキャンプのオフを出来るようにしました。
integer amount = 1;
integer interval = 30;
integer area = 30;
integer index;
default
{
state_entry()
{
llRequestPermissions(llGetOwner(),PERMISSION_DEBIT);
llSensorRepeat("",NULL_KEY,AGENT,area,PI_BY_TWO,interval);
}
sensor(integer total_number)
{
index = llFloor(llFrand(total_number));
if (llGetAgentInfo(llDetectedKey(index)) & AGENT_TYPING ){
llGiveMoney(llDetectedKey(index),amount);
llSay(0,"Congratulations!! " + llDetectedName(index));
}
}
touch_start(integer total_number){
if (llDetectedKey(0) == llGetOwner()){
llSay(0,"Camp off");
llSetText("Camp off",<1.0,0.0,0.0>,1.0);
state campoff;
}
}
}
state campoff
{
touch_start(integer total_number){
if (llDetectedKey(0) == llGetOwner()){
llSay(0,"Camp on");
llSetText("",<1.0,0.0,0.0>,1.0);
state default;
}
}
}
うまく動くのかなー?
amountは1回に支払うL$,intervalはチャットしている人がいるか探す間隔(秒),areaは人を探す範囲(m)です。
センサーはオブジェクトの正面から半球の範囲にしています。(PI_BY_TWO)
また、オーナーはタッチでキャンプのオフを出来るようにしました。
integer amount = 1;
integer interval = 30;
integer area = 30;
integer index;
default
{
state_entry()
{
llRequestPermissions(llGetOwner(),PERMISSION_DEBIT);
llSensorRepeat("",NULL_KEY,AGENT,area,PI_BY_TWO,interval);
}
sensor(integer total_number)
{
index = llFloor(llFrand(total_number));
if (llGetAgentInfo(llDetectedKey(index)) & AGENT_TYPING ){
llGiveMoney(llDetectedKey(index),amount);
llSay(0,"Congratulations!! " + llDetectedName(index));
}
}
touch_start(integer total_number){
if (llDetectedKey(0) == llGetOwner()){
llSay(0,"Camp off");
llSetText("Camp off",<1.0,0.0,0.0>,1.0);
state campoff;
}
}
}
state campoff
{
touch_start(integer total_number){
if (llDetectedKey(0) == llGetOwner()){
llSay(0,"Camp on");
llSetText("",<1.0,0.0,0.0>,1.0);
state default;
}
}
}
この記事へのトラックバックURL
この記事へのコメント
普通にListenで聞いて、誰がしゃべったかを判断するが簡単なのかな?
Posted by Hazuki at 2008年05月11日 10:39



