最近の記事

2007年04月23日

タッチで直接マップを開く llMapDestination

オブジェクトをタッチすることで、MAPの場所を表示してテレポートをしてもらうスクリプト

--------------------------------------------------------------------------------

default
{

touch_start(integer total_number)
{
llMapDestination("Sugamo", <41,118,22>, <0,1,0> );
}

}


--------------------------------------------------------------------------------

SugamoにはSIM名を、

次の座標は、SIM上の、画面に書いてある数字を書けばOKです。

最後の座標は・・・まあ、<0,1,0>でいいかも適当にどうぞ



タグ:マップ

posted by Son Clave at 20:23 | Comment( 0 ) | TrackBack( 0 ) | スクリプト

humanbar.png

ベクトルとローテーションの変換方法

rotation型 と vector型 の変換

--------------------------------------------------------------------------------

llRot2Euler( rotation);

これで変換できる!この逆は

llEuler2Rot( vector );

vectorはPI を使ってあらわします。<PI*?,PI*?,PI*?>みたいな

--------------------------------------------------------------------------------

チョットシタ情報

PI = 180度

PI_BY_TWO = 90度

DEG_TO_RAD を角度にかけるとラジアンに

RAD_TO_DEG をラジアンにかけると角度に

posted by Son Clave at 19:31 | Comment( 0 ) | TrackBack( 0 ) | 角度の話

humanbar.png

アバターを検知 llSensor()

--------------------------------------------------------------------------------

default
{

state_entry()
{
llSetTimerEvent(読み込みを更新する時間(秒) );
}

timer()
{
llSensor("特定の名前もしくは空白", NULL_KEY, AGENT, 測定する距離m, 角度PI表示 );
}

sensor(integer total_number)
{

センサーにかかった場合は、どう命令をするかを書く

}

}


--------------------------------------------------------------------------------

測定できる距離はだいたい96mくらいマデでした。

あとは、名前を指定しない場合は、一番近くの人を検知します。

また特定の人だけを検出して条件で命令文を動かすことも可能。

タグ:アバター

posted by Son Clave at 19:28 | Comment( 0 ) | TrackBack( 0 ) | スクリプト

humanbar.png

オブジェクトを増やす llRezObject

指定したアイテムを増やす(登場させる)スクリプト

オブジェクトに触れば増える方法を書きます。


--------------------------------------------------------------------------------

default
{

touch_start(integer a)
{
llRezObject("アイテムの名前" , 登場させたい座標 , 影響する力 , llEuler2Rot(座標) , 数字);
}

}


--------------------------------------------------------------------------------

増やしたいアイテムは、内容のところへスクリプトと一緒に入れておきます。

登場させたい座標は vector表記で、<X,Y,Z>にします。このとき便利な方法は、スクリプトを入れているオブジェクトの座標をまず、llGetPos();でとり、そこに移動させたい分だけ足すのです。これで簡単に位置をしていできます。

登場するオブジェクトに影響する力は vector表記にしますが、通常は ZERO_VECTOR でいいようです。

llEuler2Rot(座標)は、通常 ROTATIONがはいるのですが、なにもしていしないときには、ZERO_ROTATIONでいいですが、もし変更する場合は、llEuler2Rot(座標)でやったらいいです、この場合は、角度ですので、座標は、<X,Y,Z>であらわします。このときに注意するのは、PI を使った表記で角度をしていするということです。 PI=180度です。PI*2= 360度 です。かけることで数値をかえます。

最後の数字は、0以外をいれたらいいとのこと。

タグ:増やす

posted by Son Clave at 19:06 | Comment( 0 ) | TrackBack( 0 ) | スクリプト

humanbar.png

物理的力のオンとオフ llSetStatus(STATUS_PHYSICS,)

オブジェクトに働く物理的力のオンとオフを切り替えるスクリプト

--------------------------------------------------------------------------------

default
{

state_entry()
{
llSetStatus(STATUS_PHYSICS,オンかオフか);
}

}


--------------------------------------------------------------------------------

オン=TRUE もしくは、1

オフ=FALSE もしくは、0

この数字・文字で決めることができる。

タグ:物理的力

posted by Son Clave at 19:05 | Comment( 0 ) | TrackBack( 0 ) | スクリプト

humanbar.png

強制マウスルック llForceMouselook()

座るポーズボールで、座ったときに強制的にマウスルックにするスクリプト

--------------------------------------------------------------------------------

default
{

state_entry()
{
llForceMouselook(TRUE);
llSitTarget(<ボールからどの位置に座るかを座標で書く>,ZERO_ROTATION);
}

}


--------------------------------------------------------------------------------

llForceMouselook(TRUE);

によって強制的にマウスルックになります。

逆にTRUEをFALSEにすれば、マウスルック解除になります。

posted by Son Clave at 18:36 | Comment( 0 ) | TrackBack( 0 ) | スクリプト

humanbar.png

オブジェクトとアバターの接触を感知 collision_start()

オブジェクトがキャラとぶつかる・接触したことを感知するスクリプト

--------------------------------------------------------------------------------

default
{

collision_start(integer a)
{
何か実行したいこと
}

}


--------------------------------------------------------------------------------

実行したいことはなんでも可能ですが、問題は条件などを設定しなければ、触り続けることで何度も連続して”実行させたいこと”が起こってしまいます。

posted by Son Clave at 18:34 | Comment( 0 ) | TrackBack( 0 ) | スクリプト

humanbar.png

LSLでの型

型というのは、数値や言葉を一次的に蓄えておく箱みたいなものです。しかしながらコンピュータはできるだけメモリーを消費しないように、必要なデータにあわせて最初から箱の形態を指定しておきます。それにより無駄にデータ空間を使うのを防いでいます。


--------------------------------------------------------------------------------

integer 整数

float 小数

vector <"X","Y","Z">であらわす、XYZの座標データ

rotation <"X","Y","Z","S">であらわす、回転のための座標

key UUIDというものを使って、SLの内部にあるオブジェクトや各種データを指定

string 文字列を入れるものです。

list 配列をいれることができます。

--------------------------------------------------------------------------------

違う型のものを違う型に代入することはできません、そのため代入するときには一度、変換しなくてはいけません。

例えば integer型を float型にするには


--------------------------------------------------------------------------------

integer a;

float b;

があるとして、

a = (integer)b;

という感じで、合わせる型を()で先につければOKです。

タグ:

posted by Son Clave at 18:32 | Comment( 0 ) | TrackBack( 0 ) | LSLでの型

humanbar.png

オブジェクトの座標を出力 llGetPos()

オブジェクトの座標を出力するスクリプト
実は簡単だったのですが、オブジェクトの座標を出力する方法を探しました。

XYZの座標を文字としてオーナーや人に知らせるスクリプトです。


--------------------------------------------------------------------------------

vector a;

default
{
state_entry()
 {
a = llGetPos();
llOwnerSay((string)a);
 }
}


--------------------------------------------------------------------------------

llOwnerSay や llSay や llWhisper では、string 形式でしか出力できないので、座標の vector 形式を変換しなければなりません。そこで(string)を使うと変換できました。

posted by Son Clave at 18:30 | Comment( 0 ) | TrackBack( 0 ) | スクリプト

humanbar.png

プログラム実行に時差をつける llSleep()

プログラム実行に時差をつけるスクリプト
読み込まれて時差をつけてプログラムを発動させるスクリプト


--------------------------------------------------------------------------------

llSleep(数字);


--------------------------------------------------------------------------------

この関数を使えば、数字のところにいれた時間(秒)の後にプログラムが発動できるようです。

タグ:時差

posted by Son Clave at 18:29 | Comment( 0 ) | TrackBack( 0 ) | スクリプト

humanbar.png

×

この広告は180日以上新しい記事の投稿がないブログに表示されております。