2009年08月10日
ポストを作りたい その2
■はじめに
まじめにスクリプトを読んでくれる人が居るとは思わなかったので、
レスついたらアップしようと思ってたスクリプトをあげますw
今回は、送り先のUUIDを一行ごとに書いたノートカードusersから
UUIDを読み取ってから起動する仕様にしています。
■youさんから受けた指摘に対する、今回のスクリプトの解答
1.maxmaxのループ
舐めた変数名ですいません、処理を変えて削除しましたw
2.削除用maxのループ
これまた酷い処理ですいません、処理を変えましたw
3.Changedの件(1)→削除するファイルが、すでに無くなっていた場合どうする?
これは、対応方法分かりませんでした。インベントリの存在確認関数ってありましたっけ。
4.Changedの件(2)→削除処理時に呼ばれるChangeはどうする?
ノートカードを送れる常態か、フラグで管理するようにしました。
■スクリプト
■users ノートカードの内容
まじめにスクリプトを読んでくれる人が居るとは思わなかったので、
レスついたらアップしようと思ってたスクリプトをあげますw
今回は、送り先のUUIDを一行ごとに書いたノートカードusersから
UUIDを読み取ってから起動する仕様にしています。
■youさんから受けた指摘に対する、今回のスクリプトの解答
1.maxmaxのループ
舐めた変数名ですいません、処理を変えて削除しましたw
2.削除用maxのループ
これまた酷い処理ですいません、処理を変えましたw
3.Changedの件(1)→削除するファイルが、すでに無くなっていた場合どうする?
これは、対応方法分かりませんでした。インベントリの存在確認関数ってありましたっけ。
4.Changedの件(2)→削除処理時に呼ばれるChangeはどうする?
ノートカードを送れる常態か、フラグで管理するようにしました。
■スクリプト
list member = [];
integer _max = 0;
integer _cnt = 0;
integer flg = TRUE;
string user = "users";
string _queryid;
default
{
state_entry()
{
llSetText("userlist update",<1.0,0.0,0.0>,1.0);
member = [];
_max = 0;
_cnt = 0;
_queryid = llGetNumberOfNotecardLines(user);
}
// ノートカードを受け取って認証
dataserver(key queryid, string data)
{
if(_queryid == queryid)
{
// 最大行数を受け取った時の処理
integer i = 0;
_max = (integer)data;
for( i = 0; i < _max; i++)
{
llGetNotecardLine(user,i);
}
_queryid = NULL_KEY;
}else{
// ユーザー情報を受け取った時の処理
member += [data];
_cnt++;
if(_cnt == _max){
state kadou;
}
}
}
}
state kadou
{
state_entry()
{
llSetText("",<1.0,0.0,0.0>,1.0);
}
touch_start(integer total_number)
{
if(flg == TRUE){
// メンバーを追加する処理
llSay(0, (string)llDetectedKey(0));
}
}
changed(integer change)
{
if(change & CHANGED_INVENTORY){
integer i;
integer ii;
integer flag = FALSE;
list note= [];
// 追加されたノートの一覧を作成
for(i=0;istring name = llGetInventoryName(INVENTORY_NOTECARD,i);
if(name != user){
note += [name];
}
}
// 名前の取得→配布→削除
for(i=0;istring name = llList2String(note,i);
for(ii=0;iiflag = TRUE;
llGiveInventory(llList2Key(member,ii),name);
}
llRemoveInventory(name);
}
if(flag == TRUE){
llSay(0,"登録されているユーザーに、ノートカードを送りました。");
}
// ユーザー情報更新
state default;
}
}
}
■users ノートカードの内容
9f287d45-a32b-450d-ac09-2267d70f26d3
39ccdd86-ec56-4166-a73f-0a10bfc49dd6
760720f6-12e1-4698-bed5-5e533358e9b0
2009年08月07日
ポストを作りたい
■概要
オブジェクトにノートカードを入れたら(オブジェクトにノートカードをドラッグ)、
指定のユーザー全員にノートカードを送るスクリプトです。
オブジェクト側の設定として、MOD可のグループに謙譲にする必要があるかもしれません。
このあたりはあまり検証していません。
また、スクリプト中に名前の登録もしていますが、使っていないので
誰のUUIDか確認する程度ということでw
■スクリプト
list member = [
"9f287d45-a32b-450d-ac09-2267d70f26d3","DK003 Doobie"
// 以下にメンバーを追加してください(タッチした時の情報をコピペ)
];
// タッチした時に情報を表示する時はTRUEを設定、しないときはFALSE
integer flg = TRUE;
default
{
touch_start(integer total_number)
{
if(flg == TRUE){
// メンバー情報を取得する処理
key user = llDetectedKey(0);
llSay(0, ",\""+(string)user+"\",\""+llKey2Name(user)+"\"");
//member += [user,llKey2Name(user)];
}
}
changed(integer change)
{
if(change & CHANGED_INVENTORY){
integer i;
integer ii;
integer max = llGetInventoryNumber(INVENTORY_NOTECARD );
integer maxmax = llGetListLength(member)/2;
for(i=0;ifor(ii=0;ii llGiveInventory(llList2Key(member,ii*2),llGetInventoryName(INVENTORY_NOTECARD,i));
}
}
for(i=0;illRemoveInventory(llGetInventoryName(INVENTORY_NOTECARD,i));
}
llSay(0,"登録されているユーザーに、ノートカードを送りました。");
}
}
}
2009年07月28日
バグの報告
降りると自動的に装着されるタイプの乗り物の金魚を作ったんだけど、現在SLでは・・・
MOD不可のオブジェクトをRezし、パイメニューから装着を選択したあと
そのオブジェクトを取り外すと、フリーズに繋がるバグが発生するみたいです。
詳しくは、こちら方の記事をご覧ください・・・
http://aquarium.slmame.com/e634960.html
ですので、金魚は自動装着できるのでかなりデンジャラスです。
自動装着状態からパイメニューで取り外すと終わります。
みなさんお気を付けください。。。。
2009年06月22日
オセロに関して
オセロに関するお問い合わせは、私(DK003 Doobie)までお願いします。
オセロは、いろんなクリエイターさんとコラボしておりますが、
私の責任の範疇で販売しておりますので、よろしくお願いします^^
オセロは、いろんなクリエイターさんとコラボしておりますが、
私の責任の範疇で販売しておりますので、よろしくお願いします^^
2009年06月02日
祝★メタコマース
Reversiのitohさんデザインが、メタコマースで五月度ランキング一位になりましたw
このプロジェクトに関わって頂いたみなさん、ありがとうございます^^
ほんとね、今回もデザインはどれも素晴らしくて今後ともバージョンアップしていきますので
よろしくお願いします^^
オセロの今後のバージョンアップ予定
・Webサイトで戦績が見えるようになる
・アドバタイズ中にほかの場所での対戦内容が見える。
・遠隔地と対戦できる。
2009年05月26日
LSLのコーディングにEclipseを使ってみた
いまさらですが、EclipseのプラグインでLSLを書いてみました。
スクリプトを書いてる時に話しかけられたりするのが気になる人は
使ってみたらいかがでしょうかw
■プラグインの導入方法はコチラ↓
http://www.second-life.name/archives/31lsl/lsleclipse/
http://mywiki.jp/sljpwiki/SL-JPwiki/LSL%8AJ%94%AD%8A%C2%8B%AB+-+eclipse/
2009年05月07日
土地音楽の変更ツール
フルパーでフリービーな土地音楽を変更できるツールを
メタコマースに出品しましたw(土地音楽の変更ツールの出品先)
これはノートカードに書いたアバターの人なら誰でも土地音楽を変更できるようにしたツールです
そーいうものを作りたい人は、スクリプトの参考にでもどうぞw
また、私の店でも0L$で販売していますので、よかったらみにきてくだせ~(私のお店)
===================================
█ 特徴
====================================
土地オーナー以外の人でも、ノートカードに名前を追加することで土地音楽を変更できるようにするオブジェクトです。
※オブジェクトの設置は、土地音楽の変更権利を持っている方のみでお願いします。
====================================
█ 使い方
====================================
1.ノートカードに土地音楽を変更したいアバターの名前を書く
2.オブジェクトをタッチする
3.音楽のURLをオブジェクトの近くで話す
4.土地音楽が変更されていることを確認する
2009年04月30日
2009年04月28日
オセロの販売開始!デザインは6種類
やっとこさオセロをメタコマースで販売することにしましたw
いちお低プリム(6prim)のオセロなのでお時間のある方は
お友達をつれてお店に見に来て下せ~
■オセロ(Reversi)の三つの特徴
・少プリム
オセロなのに6Primと少プリムなのでカフェ等にもおけます!
・戦績が残る
SIM別の戦績やランキング情報を残すことができます!
・豊富なデザイン
オセロとは思えないw沢山のデザインがあります!
■オセロ(Reversi)の遊び方
1.支払いで1L$を払うことでゲームに参加
2.2人参加した状態でスタートボタンを押すとゲームが始まります!
※支払いで頂いたL$はクリエイター(DK003 Doobie)に送られます。
このL$は、今後イベントやオセロを遊んで頂いた方への特典として使います。
■メタコマース
http://shop.slmame.com/mtc/blogger/?action=article&gc=200904286925&sid=slmame.com
■XStreet
https://www.xstreetsl.com/modules.php?name=Marketplace&file=item&ItemID=1422617
■販売店舗www
http://slurl.com/secondlife/trenza/202/197/0
2009年04月23日
フラワーフェスティバル IN JAPON
本日、JAPONにてフラワーフェスティバルを行います。
日時:4月24日(金) 22時開始~23時まで
集合場所:JAPON 巣バコの前です。
http://slurl.com/secondlife/japon/128/128/22
こんかい、イベントの最後にはパワーアップした餅まきキャンプがありますので
時間のある方は、ぜひ遊びにきてください^^
日時:4月24日(金) 22時開始~23時まで
集合場所:JAPON 巣バコの前です。
http://slurl.com/secondlife/japon/128/128/22
こんかい、イベントの最後にはパワーアップした餅まきキャンプがありますので
時間のある方は、ぜひ遊びにきてください^^