ソラマメブログ
QRコード
QRCODE
Information






アクセスカウンタ
読者登録
メールアドレスを入力して登録する事で、このブログの新着エントリーをメールでお届けいたします。 解除は→こちら
現在の読者数 0人
オーナーへメッセージ

2008年05月11日

チャットキャンプ2

チャットキャンプって、本当にどう作ればいいんだろーー><;;
誰かヒントください。w

で、悩んでても仕方ないので、listenを使ったチャットキャンプを作ってみました。
うーん、でもこれならshoutにも反応する><
むずかしいよー

amountは1回に支払うL$,intervalは最低待機時間(秒),maxaddingは待機時間の最大加算値(秒)です。

ある程度ランダムにしないといけないと思ったので,支払い間隔は,最低待機時間+ランダムに選んだ加算値にしてます。

下の場合だと,2分に「1~60秒」を足した時間ごとに,次にしゃべった人に1L$を支払います。

integer amount = 1;
integer interval = 120;
integer maxadding = 60;

default
{
state_entry()
{
llListen(0, "", NULL_KEY, "");
llRequestPermissions(llGetOwner(),PERMISSION_DEBIT); }

listen(integer channel, string name , key id ,string message)
{
llGiveMoney(id,amount);
llSay(0,"Congratulations!! " + name );
integer adding = llFloor(llFrand(maxadding));
llSleep(interval + adding);
}
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;
}
}
}  
Posted by Hazuki Criss at 12:21Comments(5)TrackBack(0)スクリプト

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;
}
}
}  
Posted by Hazuki Criss at 16:24Comments(1)TrackBack(0)スクリプト

2008年05月10日

プロフィールの写真

プロフィールの写真を自動的に表示するスクリプトを作ってみました。

SLの各個人ホームページからプロフィール写真のUUIDをとってきています。


key requestid;
string resident;
integer index;

default{
state_entry()
{
llSensorRepeat("",NULL_KEY,AGENT,30,PI,30);
}
sensor(integer total_number)
{
index = llFloor(llFrand(total_number));
requestid = llHTTPRequest("http://world.secondlife.com/resident/"+(string)llDetectedKey(index),[HTTP_METHOD,"GET"],"");
}
http_response(key request_id, integer status, list metadata, string body)
{
if (request_id == requestid)
{
integer i = llSubStringIndex(body,"http://secondlife.com/app/image/");
if ( i != -1 )
llSetTexture((string)llGetSubString(body,i+32,i+67),ALL_SIDES);
}
}
}


  
Posted by Hazuki Criss at 16:17Comments(6)TrackBack(1)スクリプト