ラベル Easy LSL の投稿を表示しています。 すべての投稿を表示
ラベル Easy LSL の投稿を表示しています。 すべての投稿を表示

12.10.2009

グループメンバーにギフトを渡すスクリプト

いつか使うかもしれない、LSLメモです。
使わないかもしれません。
店頭でグループギフトを配布するタイプのベンダーです。
default{
touch_start(integer total_number) {
if(llDetectedGroup(0)){
llGiveInventory(llDetectedKey(0),llGetInventoryName(INVENTORY_OBJECT,0));
llInstantMessage(llDetectedKey(0),"give \""+llGetInventoryName(INVENTORY_OBJECT,0)+"\"");}
else {
llInstantMessage(llDetectedKey(0),"Group member limitation: Please activate tag."); }
}
}

タッチでオブジェクト1個渡します。複数渡したい場合は箱詰めで。
アクティブグループの設定にご注意。

1.02.2009

グループ招待のスクリプト

Update Groupへの加入等に利用できるスクリプトです。
これを入れたオブジェクトにTouchすると、
検索しなくても、チャット欄にURLが表示されます。
string groupkey;

findgroupkey()
{
list a = llGetObjectDetails(llGetKey(), [OBJECT_GROUP]);
groupkey = llList2String(a,0);
if (groupkey == "00000000-0000-0000-0000-000000000000")
{
llWhisper(0, "Set the Group for this object in EDIT under the GENERAL tab and be sure your Group is Open Enrollment.");
}
else
{
llWhisper(0, "Click the link from Chat History (Ctrl+H) and then click on JOIN button! secondlife:///app/group/" + groupkey + "/about");
}
}

default
{
state_entry()
{
llSetText("Touch to Join\nour Group", <1,1,1>, 1.0); //文字表示
findgroupkey();
}

touch_start(integer total_number)
{
findgroupkey();
}
}

オブジェクトは、URLを表示させたいグループに設定しておきます。
ただし、設置する場所がグループ共有地ですと……
私のように、オートリターンで泣きます。注意です。

7.25.2008

短距離テレポート

座るとテレポートできるスクリプトの覚書です。
エレベーター代わりにも使えます。
vector gopos;
vector aimpos = <X軸,Y軸,Z軸>;

default
{
state_entry()
{
llSetSitText("Teleport");
gopos = aimpos - llGetPos();
llOwnerSay((string)llGetPos()+"-"+(string)aimpos+"="+(string)gopos);
llSitTarget(gopos , ZERO_ROTATION);
}

on_rez(integer num)
{
llResetScript();
}

changed(integer change)
{
if (change & CHANGED_LINK)
{
key sid = llAvatarOnSitTarget();
if (sid != NULL_KEY)
{
llUnSit(sid);
}
}
}

touch_start(integer i)
{
llSay(0, "Please right-click and select Teleport");
}
}

あらかじめ着地する場所の座標を調べて入力します。
絶対値でも相対値でもOKです。
イス等の座る位置を設定する応用だそうです。

7.22.2008

簡易身長測定

シェイプを調整する時に重宝しているスクリプトです。
cm(整数)でアバターの身長を測ります。
default
{
touch_start(integer total_number)
{
vector size = (llGetAgentSize(llDetectedKey(0)))*100;
llSay(0, "Your height: " +(string)((integer)size.z) +" cm");
}
}

一つあれば、何かと便利です。

7.18.2008

ランドマークを渡すスクリプト

基礎スクリプトの覚書です。
ケイさん、いつもありがとうございます。

オブジェクトに触れたらLMを渡すスクリプトです。
default
{
touch_start(integer total_number)
{
key avatar = llDetectedKey(0);
llGiveInventory(avatar, "ランドマークの名前");
}
}

同じオブジェクトにLMを入れ忘れないように、だそうです。
入れ忘れたのは私です。すみません。
この方法でアイテムを渡したりもできるそうです。

7.03.2008

チップジャーのスクリプト

ケイさんのLSL覚書「チップジャー」です。
私では説明すら出来ません…ので、まとめて引用します。

チップジャーとは、その名の通りチップを入れる壷(笑)でして、おひねり・募金箱・お賽銭箱などに幅広く使えます。
カフェやバーなど無形のサービスを提供するお店でも時々見掛けますね。

今回は最低限の文字と合計入金額だけ表示する、簡素なチップジャーlslをご紹介します。
------

string msg;
integer total=0;

setText () {
msg= "任意の(Chip Jarなど)表示したい文字を入力";
msg+= "Total" + ": "+ "L$" + (string)total;
llSetText(msg,<1.0, 1.0, 1.0>, 1.0);
}

default {
state_entry() {
setText();
}

money(key id, integer amount) {
total+=amount;
setText();
}
}

------
合計金額の初期表示は「Total: L$0」となってます。
"Total"を日本語表記にしたり文字色を変えたり、工夫できる部分は沢山ありますので、参考にして下さい。

6.27.2008

オブジェクトの回転スクリプト

ケイさんのスクリプト覚書が消される前に、引用コピペ急げ急げ。
オブジェクトを回転させるスクリプトだそうです。

●一秒間に一回転を延々と。
float speed = 1.0;

default
{
state_entry()
{
llTargetOmega(<0,0,1>,speed,1);
}
}


●タッチするごとに回転開始・停止。
float speed = 0.3;

default
{
state_entry()
{
state stop_music;
}
}

state stop_music
{
touch_start(integer total_number)
{
llTargetOmega(<0,0,1>, speed, 1);
state play_music;
}
}

state play_music
{
touch_start(integer total_number)
{
llTargetOmega(<0,0,0>, speed, 1);
state stop_music;
}
}

速度は0.3回転/秒と、ゆっくり。
「音を鳴らすスクリプト」の応用だそうです。

6.24.2008

音を鳴らすスクリプト

現店長ケイさんのブログが閉鎖を控えてます。勿体無いです。
勿体無いので、ケイさんの書いたLSLを残す許可を貰いました。

音を鳴らすLSLです。コピペOKだそうです。
string czmusic = "音ファイル名";

default
{
state_entry()
{
string czmusic;
state stop_music;
}
}

state stop_music
{
state_entry()
{
llSetTouchText("Play!");
llPreloadSound(czmusic);
}
touch_start(integer total_number)
{
llLoopSound(czmusic, 1);
state play_music;
}
}

state play_music
{
state_entry()
{
llSetTouchText("Stop!");
}
touch_start(integer total_number)
{
llStopSound();
state stop_music;
}
}

オブジェクトをタッチしたら、指定の音ファイルが鳴ります。
もう一度タッチしたら、音が止まる仕組みです。