2008年05月08日
NabeAtzz.lsl
NabeAtzzをやってみました。
3の倍数と3の付く数字のときだけアホになります。
LSL Editorでしか試してないですけれどViewerでもたぶん動くでしょう。
// NabeAtzz.lsl
integer count;
list hiragana = ["","い~ち","に~","さ~ん","よ~ん","ご~","ろ~く","なな~","はち~","きゅ~う"];
list place = ["","じゅう"];
default
{
touch_start(integer total_number)
{
count = 0;
llSetTimerEvent(1.0);
}
timer(){
llSetTimerEvent(0);
string msg = "";
++count;
if(count % 3 == 0 || llSubStringIndex((string)count,"3") >= 0){
integer len = llStringLength((string)count);
integer number;
integer i = 1;
for (;i <= len;i++){
number = (integer)llGetSubString((string)count,-i,-i);
if(number){
msg = llList2String(place,i - 1) + msg;
}
if(i == 1 || number != 1){
msg = llList2String(hiragana,number) + msg;
}
}
}else{
msg = (string)count;
}
llSay(0,msg);
if(count < 40){
llSetTimerEvent(1.0);
}
}
}
3の倍数と3の付く数字のときだけアホになります。
LSL Editorでしか試してないですけれどViewerでもたぶん動くでしょう。
// NabeAtzz.lsl
integer count;
list hiragana = ["","い~ち","に~","さ~ん","よ~ん","ご~","ろ~く","なな~","はち~","きゅ~う"];
list place = ["","じゅう"];
default
{
touch_start(integer total_number)
{
count = 0;
llSetTimerEvent(1.0);
}
timer(){
llSetTimerEvent(0);
string msg = "";
++count;
if(count % 3 == 0 || llSubStringIndex((string)count,"3") >= 0){
integer len = llStringLength((string)count);
integer number;
integer i = 1;
for (;i <= len;i++){
number = (integer)llGetSubString((string)count,-i,-i);
if(number){
msg = llList2String(place,i - 1) + msg;
}
if(i == 1 || number != 1){
msg = llList2String(hiragana,number) + msg;
}
}
}else{
msg = (string)count;
}
llSay(0,msg);
if(count < 40){
llSetTimerEvent(1.0);
}
}
}







