2008年07月15日
動作をON-OFFさせる、 切り替えるためのLSL
動作をON-OFFさせる、 切り替えるためのLSL
ただそれだけです^^
★パーテイクルの ON-OFF、
パーテイクルは、
llParticleSystem( [] );//パーテイクルの停止できます。
★スクリプトの動作は、名前を指定することで、 ON-OFFを指定できます この時のOFFは、停止していますのでなにも動作しません、負荷が最小になると思います。
//同じコンテンツにあるものに 限られますので、 子プリムで動作せるためにはリンクメッセージを受信するスクリプトは、切り替えのためのLSLとして動作していないといけません。
//親プリムから、直接、子プリムの特定なLSLを指定は困難です。(リモートロードなどで工夫できます)
//親プリムから、直接、子プリムの特定・リンクナンバーで設定できる 関数も多くありますので利用できます。色・透明度など
しかし、子プリムの特定・リンクナンバーで現在の状態を取得することは、困難です。 知ることは難しいです。
★リンクメセージを、発信する動作は、1つ準備してください、
必要に応じて 不要な部分を削除してください。
★リンクメッセージで各部パーツの ON-OFF、するときには、
子プリム側では、受信すること、 変化することを組入れておけば良いです。
リンクメッセージは 文字を利用すること、数値を利用すること、 が多い方法です、 どちらか1つで動作は十分できます。
参考LSL 単独では、単にパーテークルが動作することが実験できます
ただそれだけです^^
★パーテイクルの ON-OFF、
パーテイクルは、
llParticleSystem( [] );//パーテイクルの停止できます。
★スクリプトの動作は、名前を指定することで、 ON-OFFを指定できます この時のOFFは、停止していますのでなにも動作しません、負荷が最小になると思います。
//同じコンテンツにあるものに 限られますので、 子プリムで動作せるためにはリンクメッセージを受信するスクリプトは、切り替えのためのLSLとして動作していないといけません。
//親プリムから、直接、子プリムの特定なLSLを指定は困難です。(リモートロードなどで工夫できます)
//親プリムから、直接、子プリムの特定・リンクナンバーで設定できる 関数も多くありますので利用できます。色・透明度など
しかし、子プリムの特定・リンクナンバーで現在の状態を取得することは、困難です。 知ることは難しいです。
★リンクメセージを、発信する動作は、1つ準備してください、
必要に応じて 不要な部分を削除してください。
★リンクメッセージで各部パーツの ON-OFF、するときには、
子プリム側では、受信すること、 変化することを組入れておけば良いです。
リンクメッセージは 文字を利用すること、数値を利用すること、 が多い方法です、 どちらか1つで動作は十分できます。
参考LSL 単独では、単にパーテークルが動作することが実験できます
//スクリプトの名前を指定して、 ON-OFFを指定できます
//通信のパラメータとして使用するもの どちらかの判定で利用できます。 数値or文字列
//タッチしたら 切り替え
// 必要のない部分を削除して使用してください //
// link_message では送信をする側と 受信する側を確認します。
// llMessageLinked(LINK_ALL_OTHERS,SET_ON,TURN_ON,NULL_KEY);//これは送信をする時に必要です。
//パラメータの変更・リストのよる総合・変更 必要な要素・項目だけ追加すれば実施できます
//llSetLinkPrimitiveParams( link_num, rules );
//http://rpgstats.com/wiki/index.php?title=LlSetPrimitiveParams
//http://wiki.secondlife.com/wiki/LSL_Portal/ja
//http://wiki.secondlife.com/wiki/LlSetPrimitiveParams/ja
// プリムの形状などすべてのパラメータが準備されています
//rules=[];
//rules= [ PRIM_POSITION, POS ];
//rules+=[ PRIM_ROTATION, ROT ];
//スクリプトの動作は、名前を指定して、 ON-OFFを指定できます
//同じコンテンツにあるものに 限られます
// Stops 'ScriptName' (in the prim's inventory)
//llSetScriptState("ScriptName", FALSE);
//llSetScriptState("ScriptName", TRUE);
//通信のパラメータとして使用するもの どちらかの判定で利用できます。 数値or文字列
integer SET_ON=100;
integer SET_OFF=101;
string TURN_ON="TURN_ON";
string TURN_OFF="TURN_OFF";
integer link_num=3;
list rules=[];
integer flag;
particle_on(){
llParticleSystem( [
PSYS_SRC_TEXTURE, llGetInventoryName(INVENTORY_TEXTURE, 0),
PSYS_PART_START_SCALE, <0.3,0.5, 0>, PSYS_PART_END_SCALE, <0.4,1.2, 0>,
PSYS_PART_START_COLOR, <1,1,0>, PSYS_PART_END_COLOR, <1,1,1>,
PSYS_PART_START_ALPHA, 0.5, PSYS_PART_END_ALPHA, 0.2,
PSYS_SRC_BURST_PART_COUNT, 1,
PSYS_SRC_BURST_RATE, 0.3,
PSYS_PART_MAX_AGE, 5.0,
PSYS_SRC_MAX_AGE, 0.0,
PSYS_SRC_PATTERN, 8, // 1=DROP, 2=EXPLODE, 4=ANGLE, 8=ANGLE_CONE,
PSYS_SRC_ACCEL, <0.0,0.0,0.0>,
PSYS_SRC_BURST_RADIUS, 0.3,
PSYS_SRC_BURST_SPEED_MIN, 0.0, PSYS_SRC_BURST_SPEED_MAX, 0.05,
PSYS_SRC_ANGLE_BEGIN, 0*DEG_TO_RAD, PSYS_SRC_ANGLE_END, 0*DEG_TO_RAD,
PSYS_SRC_OMEGA, <0,0,0>,
// PSYS_SRC_TARGET_KEY, llGetLinkKey(llGetLinkNum() + 1),
PSYS_PART_FLAGS, ( 0
| PSYS_PART_INTERP_COLOR_MASK
| PSYS_PART_INTERP_SCALE_MASK
| PSYS_PART_EMISSIVE_MASK
| PSYS_PART_FOLLOW_VELOCITY_MASK
// | PSYS_PART_WIND_MASK
// | PSYS_PART_BOUNCE_MASK
// | PSYS_PART_FOLLOW_SRC_MASK
// | PSYS_PART_TARGET_POS_MASK
// | PSYS_PART_TARGET_LINEAR_MASK
) ] );
}
turn_on(){
//通信のパラメータとして使用するもの どちらかの判定で利用できます
llMessageLinked(LINK_ALL_OTHERS,SET_ON,TURN_ON,NULL_KEY);
llSetScriptState("ScriptName", TRUE);//スクリプトの名前を指定して、ON
particle_on();//パーテイクルの起動
//プリムのパラメータの個別設定
llSetAlpha(0.3,ALL_SIDES);
llSetLinkAlpha(2,0.3,ALL_SIDES);
llSetColor(<1,1,1>,ALL_SIDES);
llSetLinkColor(2,<1,1,1>,ALL_SIDES);
llSetPrimitiveParams([25, ALL_SIDES, 0.02]);
llSetLinkPrimitiveParams(2,[25, ALL_SIDES, 0.03]);
llSetText("",<1,1,0>,1.0);//フロート文字表示
}
turn_off(){
//通信のパラメータとして使用するもの どちらかの判定で利用できます
llMessageLinked(LINK_ALL_OTHERS,SET_OFF,TURN_OFF,NULL_KEY);
llSetScriptState("ScriptName", FALSE);//スクリプトの名前を指定して、OFF
llParticleSystem( [] );//パーテイクルの停止
//プリムのパラメータの個別設定
llSetAlpha(1.0,ALL_SIDES);
llSetLinkAlpha(2,0.5,ALL_SIDES);
llSetColor(<0,0,1>,ALL_SIDES);
llSetLinkColor(2,<0,0,1>,ALL_SIDES);
llSetPrimitiveParams([25, ALL_SIDES, 0.0]);
llSetLinkPrimitiveParams(2,[25, ALL_SIDES, 0.0]);
llSetText("OFF-LINE",<1,0,0>,1.0);//フロート文字表示
}
default {
state_entry() {
turn_off();
flag=0;
}
//タッチしたら 切り替え
touch_start(integer total_number)
{
flag++;
if (flag==1)
{
flag=-1;
turn_on();
}
else
{
turn_off();
}
}
//通信のパラメータとして使用するもの どちらかの判定で利用できます。 数値or文字列
link_message(integer sender, integer num, string message, key id)
{
if(num == SET_ON ||message==TURN_ON)
{
turn_on();
flag=1;
}
else if(num == SET_OFF ||message==TURN_OFF)
{
turn_off();
flag=0;
}
}
}
//通信のパラメータとして使用するもの どちらかの判定で利用できます。 数値or文字列
//タッチしたら 切り替え
// 必要のない部分を削除して使用してください //
// link_message では送信をする側と 受信する側を確認します。
// llMessageLinked(LINK_ALL_OTHERS,SET_ON,TURN_ON,NULL_KEY);//これは送信をする時に必要です。
//パラメータの変更・リストのよる総合・変更 必要な要素・項目だけ追加すれば実施できます
//llSetLinkPrimitiveParams( link_num, rules );
//http://rpgstats.com/wiki/index.php?title=LlSetPrimitiveParams
//http://wiki.secondlife.com/wiki/LSL_Portal/ja
//http://wiki.secondlife.com/wiki/LlSetPrimitiveParams/ja
// プリムの形状などすべてのパラメータが準備されています
//rules=[];
//rules= [ PRIM_POSITION, POS ];
//rules+=[ PRIM_ROTATION, ROT ];
//スクリプトの動作は、名前を指定して、 ON-OFFを指定できます
//同じコンテンツにあるものに 限られます
// Stops 'ScriptName' (in the prim's inventory)
//llSetScriptState("ScriptName", FALSE);
//llSetScriptState("ScriptName", TRUE);
//通信のパラメータとして使用するもの どちらかの判定で利用できます。 数値or文字列
integer SET_ON=100;
integer SET_OFF=101;
string TURN_ON="TURN_ON";
string TURN_OFF="TURN_OFF";
integer link_num=3;
list rules=[];
integer flag;
particle_on(){
llParticleSystem( [
PSYS_SRC_TEXTURE, llGetInventoryName(INVENTORY_TEXTURE, 0),
PSYS_PART_START_SCALE, <0.3,0.5, 0>, PSYS_PART_END_SCALE, <0.4,1.2, 0>,
PSYS_PART_START_COLOR, <1,1,0>, PSYS_PART_END_COLOR, <1,1,1>,
PSYS_PART_START_ALPHA, 0.5, PSYS_PART_END_ALPHA, 0.2,
PSYS_SRC_BURST_PART_COUNT, 1,
PSYS_SRC_BURST_RATE, 0.3,
PSYS_PART_MAX_AGE, 5.0,
PSYS_SRC_MAX_AGE, 0.0,
PSYS_SRC_PATTERN, 8, // 1=DROP, 2=EXPLODE, 4=ANGLE, 8=ANGLE_CONE,
PSYS_SRC_ACCEL, <0.0,0.0,0.0>,
PSYS_SRC_BURST_RADIUS, 0.3,
PSYS_SRC_BURST_SPEED_MIN, 0.0, PSYS_SRC_BURST_SPEED_MAX, 0.05,
PSYS_SRC_ANGLE_BEGIN, 0*DEG_TO_RAD, PSYS_SRC_ANGLE_END, 0*DEG_TO_RAD,
PSYS_SRC_OMEGA, <0,0,0>,
// PSYS_SRC_TARGET_KEY, llGetLinkKey(llGetLinkNum() + 1),
PSYS_PART_FLAGS, ( 0
| PSYS_PART_INTERP_COLOR_MASK
| PSYS_PART_INTERP_SCALE_MASK
| PSYS_PART_EMISSIVE_MASK
| PSYS_PART_FOLLOW_VELOCITY_MASK
// | PSYS_PART_WIND_MASK
// | PSYS_PART_BOUNCE_MASK
// | PSYS_PART_FOLLOW_SRC_MASK
// | PSYS_PART_TARGET_POS_MASK
// | PSYS_PART_TARGET_LINEAR_MASK
) ] );
}
turn_on(){
//通信のパラメータとして使用するもの どちらかの判定で利用できます
llMessageLinked(LINK_ALL_OTHERS,SET_ON,TURN_ON,NULL_KEY);
llSetScriptState("ScriptName", TRUE);//スクリプトの名前を指定して、ON
particle_on();//パーテイクルの起動
//プリムのパラメータの個別設定
llSetAlpha(0.3,ALL_SIDES);
llSetLinkAlpha(2,0.3,ALL_SIDES);
llSetColor(<1,1,1>,ALL_SIDES);
llSetLinkColor(2,<1,1,1>,ALL_SIDES);
llSetPrimitiveParams([25, ALL_SIDES, 0.02]);
llSetLinkPrimitiveParams(2,[25, ALL_SIDES, 0.03]);
llSetText("",<1,1,0>,1.0);//フロート文字表示
}
turn_off(){
//通信のパラメータとして使用するもの どちらかの判定で利用できます
llMessageLinked(LINK_ALL_OTHERS,SET_OFF,TURN_OFF,NULL_KEY);
llSetScriptState("ScriptName", FALSE);//スクリプトの名前を指定して、OFF
llParticleSystem( [] );//パーテイクルの停止
//プリムのパラメータの個別設定
llSetAlpha(1.0,ALL_SIDES);
llSetLinkAlpha(2,0.5,ALL_SIDES);
llSetColor(<0,0,1>,ALL_SIDES);
llSetLinkColor(2,<0,0,1>,ALL_SIDES);
llSetPrimitiveParams([25, ALL_SIDES, 0.0]);
llSetLinkPrimitiveParams(2,[25, ALL_SIDES, 0.0]);
llSetText("OFF-LINE",<1,0,0>,1.0);//フロート文字表示
}
default {
state_entry() {
turn_off();
flag=0;
}
//タッチしたら 切り替え
touch_start(integer total_number)
{
flag++;
if (flag==1)
{
flag=-1;
turn_on();
}
else
{
turn_off();
}
}
//通信のパラメータとして使用するもの どちらかの判定で利用できます。 数値or文字列
link_message(integer sender, integer num, string message, key id)
{
if(num == SET_ON ||message==TURN_ON)
{
turn_on();
flag=1;
}
else if(num == SET_OFF ||message==TURN_OFF)
{
turn_off();
flag=0;
}
}
}
タグ :LSL
Posted by しんいち at 15:50│Comments(0)
│動作をON-OFFさせる