2007年11月28日
SIM内テレポーター(リンデンスクリプト Tips)
ビルやモール等に見られるテレポート用のスクリプトです。 テレポーターを右クリックし、パイメニューのTeleportをクリックすると指定した座標へ瞬間移動します。 テレポート先に移動した後、テレポーターは自動的に元の位置に戻ります。 SIM内でのテレポートが可能です。![]()
「スクリプト内容」 // // Teleportation(IN-SIM) SCRIPT V1.0 // // Created by Zero2000 Kid 2007/11/28 //----------- PARAMETER SET -----------------// vector targetPoint=<242,63,26>; // ------------------------------------------// vector basicPoint; integer sitflg = FALSE; key sitavkey; teleport( vector d ) { if ( d.z > 768 ) d.z = 768; integer s = (integer)(llVecMag(d-llGetPos())/10)+1; if ( s > 100 ) s = 100; integer e = (integer)( llLog( s ) / llLog( 2 ) ); list rules = [ PRIM_POSITION, d ]; integer i; for ( i = 0 ; i < e ; ++i ) rules += rules; integer r = s - (integer)llPow( 2, e ); if ( r > 0 ) rules += llList2List( rules, 0, r * 2 + 1 ); llSetPrimitiveParams( rules ); } default { state_entry() { llSetText("right click for Teleport", <1,1,1>, 1.0); llSitTarget(<0.0,0.0,0.1>,ZERO_ROTATION); llSetSitText("Teleport"); } on_rez(integer int) { llResetScript(); } changed(integer change){ if (change & CHANGED_LINK){ sitavkey = llAvatarOnSitTarget(); basicPoint = llGetPos(); state move; } } } state move { state_entry() { teleport(targetPoint); llUnSit(sitavkey); teleport(basicPoint); state default; } } 「スクリプトの説明」 スクリプトの基本動作は、「オブジェクトに座る→オブジェクトを移動する→オブジェクトから立たせる→ オブジェクトを元の位置に戻す」となります。 1. 一行目のvector targetPoint=<242,63,26>でテレポート先の座標を指定します。 2. オブジェクトにアバターが座ると(パイメニューのTeleportを選択)、changedイベントが発生します。 3. changedイベントの中では、llAvatarOnSitTargetで座ったアバターのUUIDを取得し、現在の座標を 変数basicPoint に格納した後、state moveでmeveステートへ移行します。 4. meveステートでは、teleport関数を呼び出し、1で指定した座標へオブジェクトを移動します。 *オブジェクトの移動には、teleport関数内のllSetPrimitiveParamsを使用します。 5. 目的地へ移動したら、llUnSitにてアバターをオブジェクトから立たせます。 6. 再びteleport関数を呼び出し、元の座標(basicPoint)へオブジェクトを戻します。 7. state defaultにてdefaultステートへ戻ります。 リンデンスクリプト Tips Intexへ
サウンド再生スクリプト(リンデンスクリプト Tips)
カメラコントロール(リンデンスクリプト Tips)
標準時間表示スクリプト(リンデンスクリプト Tips)
プリムカウンター2(リンデンスクリプト Tips)
土地情報チェッカー(リンデンスクリプト Tips)
SIM負荷チェッカー(リンデンスクリプト Tips)
Posted by Zero2000 Kidd at 23:19│Comments(0)
│リンデンスクリプトTips