今まで漢字が使えなかったのが、いつの間にか使えるようになってますね
lslのコメントをローマ字で書くとすぐ1行いっぱいになっちゃってたから、漢字が使えるのすっごく便利
便利記念に、あんまり役に立たないscriptの覚書を書いてみようと思いまぁす
戦車の砲台script
integer stat = 0; //撃ってないか、撃ち終わったか
integer sex = 0; //最初に選択する性別
integer hundle; //聞き耳
list play_anim = ["canon-f","canon-m"]; //性別に対応したアニメの名前
default
{
state_entry()
{
//ここは空っぽでいいの?
}
attach(key id)
{
if (id != NULL_KEY)
{//装着した時だけ、dialogを出してポーズが選べるよ
hundle = llListen(-44,"",llGetOwner(),"");
llDialog(llGetOwner(),"I am a....",["man","woman"],-44);
}
}
touch_start(integer total_number)
{
if (stat == 0)
{//まだ撃ってない時の処理
stat = 1;
if (llDetectedKey(0)==llGetOwner())
{//タッチしたのが所有者の時だけ、弾発射ー
llRequestPermissions(llGetOwner(),PERMISSION_TRIGGER_ANIMATION);
llStartAnimation(llList2String(play_anim,sex));
llSleep(1.9);
llPlaySound("tankfire",1);
llMessageLinked(LINK_ALL_OTHERS,0,"flash",NULL_KEY);
}
} else {//撃った後の処理
stat = 0;
if (llDetectedKey(0) == llGetOwner())
{//タッチしたのが所有者の時だけ、アニメ終了
llRequestPermissions(llGetOwner(),PERMISSION_TRIGGER_ANIMATION);
llStopAnimation(llList2String(play_anim,sex));
}
}
}
listen(integer ch,string uname,key uid,string mes)
{//装着してポーズを選ぶまでの間は聞き耳。
//聞いたら性別をセットして聞き耳終わるよ。
if (mes == "man")
{
sex = 1;
llListenRemove(hundle);
} else if (mes == "woman")
{
sex = 0;
llListenRemove(hundle);
}
}
}
戦車の爆発script
default
{
state_entry()
{
//ここは空っぽでいいの?
}
link_message(integer sender_number, integer num, string str, key id)
{
if (str == "flash")
{//"flash"のLinkMessageが来たら爆発表示するよ
llSetTexture("muzzleflash",ALL_SIDES);
llSleep(0.2);
llSetTexture(TEXTURE_TRANSPARENT,ALL_SIDES);
}
}
}
どっちから見ても正面に見える看板
default
{
state_entry()
{
}
touch_start(integer total_number)
{
llOwnerSay("touched");
string texture = "Snapshot";//POPのテクスチャ名
llParticleSystem(
[ PSYS_PART_FLAGS , ( 0 |
PSYS_PART_EMISSIVE_MASK |
PSYS_PART_INTERP_COLOR_MASK |
PSYS_PART_INTERP_SCALE_MASK
)
,PSYS_SRC_PATTERN, PSYS_SRC_PATTERN_ANGLE
,PSYS_PART_START_ALPHA, 1.0
,PSYS_PART_END_ALPHA, 1.0
,PSYS_PART_START_COLOR, <1,1,1>//色
,PSYS_PART_END_COLOR, <1,1,1>//色
,PSYS_PART_START_SCALE, <2,2,2>//大きさ 最大4x4x4
,PSYS_PART_END_SCALE, <2,2,2>//大きさ 最大4x4x4
,PSYS_SRC_MAX_AGE, 0.0
,PSYS_PART_MAX_AGE, 3.0
,PSYS_SRC_ACCEL, <0.0, 0.0, 0.0>
,PSYS_SRC_OMEGA, <0.0, 0.0, 0.0>
,PSYS_SRC_ANGLE_BEGIN, PI
,PSYS_SRC_ANGLE_END, 0*DEG_TO_RAD
,PSYS_SRC_BURST_PART_COUNT, 1
,PSYS_SRC_BURST_RATE, 1.0
,PSYS_SRC_BURST_SPEED_MIN, 0.0
,PSYS_SRC_BURST_SPEED_MAX, 0.0
,PSYS_SRC_TEXTURE,texture
]);
}
}
touchで飛び跳ねる箱
integer TOUCH=0; // touch hantei
integer DOCCHI=0;
default
{
state_entry()
{
}
touch_start(integer total_number)
{
if (TOUCH == 0){
llSetTimerEvent(1.5);
TOUCH = 1;
llSetText("hop",<1,1,1>,1);
} else {
llSetTimerEvent(0.0);
TOUCH = 0;
llSetText("off",<1,1,1>,1);
}
}
timer()
{
llApplyImpulse(<0,0,10>,FALSE);
}
}
lslのコメントをローマ字で書くとすぐ1行いっぱいになっちゃってたから、漢字が使えるのすっごく便利
便利記念に、あんまり役に立たないscriptの覚書を書いてみようと思いまぁす
戦車の砲台script
integer stat = 0; //撃ってないか、撃ち終わったか
integer sex = 0; //最初に選択する性別
integer hundle; //聞き耳
list play_anim = ["canon-f","canon-m"]; //性別に対応したアニメの名前
default
{
state_entry()
{
//ここは空っぽでいいの?
}
attach(key id)
{
if (id != NULL_KEY)
{//装着した時だけ、dialogを出してポーズが選べるよ
hundle = llListen(-44,"",llGetOwner(),"");
llDialog(llGetOwner(),"I am a....",["man","woman"],-44);
}
}
touch_start(integer total_number)
{
if (stat == 0)
{//まだ撃ってない時の処理
stat = 1;
if (llDetectedKey(0)==llGetOwner())
{//タッチしたのが所有者の時だけ、弾発射ー
llRequestPermissions(llGetOwner(),PERMISSION_TRIGGER_ANIMATION);
llStartAnimation(llList2String(play_anim,sex));
llSleep(1.9);
llPlaySound("tankfire",1);
llMessageLinked(LINK_ALL_OTHERS,0,"flash",NULL_KEY);
}
} else {//撃った後の処理
stat = 0;
if (llDetectedKey(0) == llGetOwner())
{//タッチしたのが所有者の時だけ、アニメ終了
llRequestPermissions(llGetOwner(),PERMISSION_TRIGGER_ANIMATION);
llStopAnimation(llList2String(play_anim,sex));
}
}
}
listen(integer ch,string uname,key uid,string mes)
{//装着してポーズを選ぶまでの間は聞き耳。
//聞いたら性別をセットして聞き耳終わるよ。
if (mes == "man")
{
sex = 1;
llListenRemove(hundle);
} else if (mes == "woman")
{
sex = 0;
llListenRemove(hundle);
}
}
}
戦車の爆発script
default
{
state_entry()
{
//ここは空っぽでいいの?
}
link_message(integer sender_number, integer num, string str, key id)
{
if (str == "flash")
{//"flash"のLinkMessageが来たら爆発表示するよ
llSetTexture("muzzleflash",ALL_SIDES);
llSleep(0.2);
llSetTexture(TEXTURE_TRANSPARENT,ALL_SIDES);
}
}
}
どっちから見ても正面に見える看板
default
{
state_entry()
{
}
touch_start(integer total_number)
{
llOwnerSay("touched");
string texture = "Snapshot";//POPのテクスチャ名
llParticleSystem(
[ PSYS_PART_FLAGS , ( 0 |
PSYS_PART_EMISSIVE_MASK |
PSYS_PART_INTERP_COLOR_MASK |
PSYS_PART_INTERP_SCALE_MASK
)
,PSYS_SRC_PATTERN, PSYS_SRC_PATTERN_ANGLE
,PSYS_PART_START_ALPHA, 1.0
,PSYS_PART_END_ALPHA, 1.0
,PSYS_PART_START_COLOR, <1,1,1>//色
,PSYS_PART_END_COLOR, <1,1,1>//色
,PSYS_PART_START_SCALE, <2,2,2>//大きさ 最大4x4x4
,PSYS_PART_END_SCALE, <2,2,2>//大きさ 最大4x4x4
,PSYS_SRC_MAX_AGE, 0.0
,PSYS_PART_MAX_AGE, 3.0
,PSYS_SRC_ACCEL, <0.0, 0.0, 0.0>
,PSYS_SRC_OMEGA, <0.0, 0.0, 0.0>
,PSYS_SRC_ANGLE_BEGIN, PI
,PSYS_SRC_ANGLE_END, 0*DEG_TO_RAD
,PSYS_SRC_BURST_PART_COUNT, 1
,PSYS_SRC_BURST_RATE, 1.0
,PSYS_SRC_BURST_SPEED_MIN, 0.0
,PSYS_SRC_BURST_SPEED_MAX, 0.0
,PSYS_SRC_TEXTURE,texture
]);
}
}
touchで飛び跳ねる箱
integer TOUCH=0; // touch hantei
integer DOCCHI=0;
default
{
state_entry()
{
}
touch_start(integer total_number)
{
if (TOUCH == 0){
llSetTimerEvent(1.5);
TOUCH = 1;
llSetText("hop",<1,1,1>,1);
} else {
llSetTimerEvent(0.0);
TOUCH = 0;
llSetText("off",<1,1,1>,1);
}
}
timer()
{
llApplyImpulse(<0,0,10>,FALSE);
}
}