ニコスクリプト専用スレ


告知欄


■ニコスクリプト専用スレ

現在表示しているスレッドのdatの大きさは58KBです。

1 名前: no name :2007/11/12(月) 16:38:44 ID:EYSN3gPx

何これ楽しすぎるwwwwwwwwwwwww

100 名前: no name :2008/03/15(土) 00:40:50 ID:P9Ti/mwS

色々調べてみたー

s = "文字列";
dt(s[2] + s[0]); 列文と表示
dt(s.size) 3と表示

d = ["A","B","C"];
dt(d[0]+d[1]+d[2]); ABCを表示
dt(d.size); 3を表示
d.push("D");
d.push("E");
d.pop;
dt(a[a.size-1]) Dを表示

[1,2,3].sum、 [1,2,3].productもツカエタよ

101 名前: no name :2008/03/15(土) 00:44:30 ID:4IzGFKpH

http://bbs.nicovideo.jp/test/read.cgi/request/1192027372/188
↑のページを参考にして
ランダムに出題されるクイズ作りましたー




すんげー疲れた。。割に過疎ってるけど。。orz

102 名前: no name :2008/03/15(土) 00:51:02 ID:xPSFjXmd

前のバージョンでは
d = ["A","B","C"];
d[1] = "C"
dt(d[0]+d[1]+d[2])→CCC な感じだったけど
今のバージョンでは直ってるっぽい?

103 名前: no name :2008/03/15(土) 01:00:46 ID:P9Ti/mwS

試してみたけど、ACCになったよ
直ってるみたいだね

104 名前: no name :2008/03/15(土) 01:43:12 ID:xPSFjXmd

ああ、でも
d = ["A","B","C"]; d[1] = "C"
dt(d[0])→表示されず、というよりこの行がスクリプトエラーになる。

0::/ d=["A","B","C"];d[1]="B";dt(d[1])
0::/ dt(d[0])→Bと表示。
このあたりの不具合は直ってないな・・・
こういうのは同じ行に連続で書いちゃダメっぽいね。

105 名前: no name :2008/03/15(土) 02:15:28 ID:P9Ti/mwS

他の行で配列参照するとバグるんだね。修正きぼん

106 名前: no name :2008/03/15(土) 02:17:57 ID:LPmfQa6M

糞機能すぎる

107 名前: no name :2008/03/15(土) 04:53:42 ID:q+p2k+TV

>>100 >>102
乙!
これで簡単な文字列解析もできるわけか

108 名前: no name :2008/03/15(土) 07:03:25 ID:xPSFjXmd

型毎に使えそうなものを列挙してみた。
String: indexOf , size , index , toInteger , toFloat
array: index , push , unshift , pop , shift , size , sum , product
chat: message , vpos , isYouPost , mail , fromButton , isPremium

109 名前: no name :2008/03/15(土) 13:42:40 ID:UhrleQZn

>>88
@ボタンでなんちゃって十字キー作ってみた sm2649827
ニワン語じゃないけど……。addButton謎すぐる

110 名前: 《K》”管理” ◆JQxQAYTWJE :2008/03/15(土) 17:00:08 ID:r1iWWfTp

@ボタン 糞機能はすぎる

それこそコメントこじきって感じだな

ずっとアニメタグの上にあって 見た目にもいい印象ではない

それに1秒以内の間隔でもコメントできるから

すさまじい鯖への負担

規制は好きではないが あまりにも不快に感じた 

111 名前: no name :2008/03/15(土) 17:31:16 ID:q+p2k+TV

>>110
確かに現状荒れすぎだよな
でもこういう使い方ならいいかなと思って作ってみた



どうもパソコンによってはとまってしまうようなんだが、
だれか調べてもらえないだろうか

112 名前: no name :2008/03/15(土) 17:42:57 ID:xPSFjXmd

コメントが集中してるポイントでcommentTriggerが
表示されたコメントを一斉に条件処理してるわけだから重くもなる。
ひとつのコメントに対しての処理が少なく、コメントが分散するような動画なら処理が軽くなるだろうね。

113 名前: no name :2008/03/15(土) 17:48:05 ID:q+p2k+TV

>>112
最初にchat.isYourPostで場合わけはしたんだけどね。
!!!を処理する場所をあと2〜3個作って、
ランダムでどれかに飛ばすようにすれば軽くなるわけか。

ブラクラ並みに重くなる環境が出ないか心配だ

114 名前: no name :2008/03/15(土) 18:39:06 ID:dG5OES+i

重いとかなら改善すべきだとは思うけど、コメントランキングは別に気にならない

115 名前: no name :2008/03/16(日) 17:46:56 ID:pisu4NF/

ランダム置換について色々試行錯誤中。
ttp://www.nicovideo.jp/watch/sm2595140

一番最初(すんごい重かった)
---------------
 0::/random=0
 ###置換対象が4つあるため、以下の行を対象と結果を変えて4回記述
  0::/rep1=replace(src:'置換対象1',dest:'1置換結果1',fill:true,color:0x00ffff,size:'small');
  commentTrigger(random=(rand(chat.message)+chat.vpos*1000+random)%5;
  if(when:random==1,then:rep8.dest='1置換結果2');
  if(when:random==2,then:rep8.dest='1置換結果3');
  if(when:random==3,then:rep8.dest='1置換結果4');
  if(when:random==4,then:rep8.dest='1置換結果5'),timer:200)
---------------

現状(多少軽くなった?)
---------------
 0::/random=0;ex1=['結果1','結果2','結果3','結果4'];ex2=['結果1','結果2','結果3','結果4'];ex3=['結果1','結果2','結果3','結果4'];ex4=['結果1','結果2','結果3','結果4']
  0::/rep1=replace(src:'‡',dest:'‡',fill:true,color:0x00ffff);
  rep2=replace(src:'‰',dest:'‰',fill:true,color:0xffff00);
  rep3=replace(src:'o',dest:'o',fill:true,color:0xff0000);
  rep4=replace(src:'§',dest:'§',fill:true,color:0x00cc00,size:'small')
 ###置換結果を配列化し、コメントトリガー内のif文を削除
  0::/commentTrigger(random=(rand(chat.message)+chat.vpos*1000+random)%6;
  rep1.dest=ex1[random];rep2.dest=ex2[random];rep3.dest=ex3[random];rep4.dest=ex4[random]),timer:200)
---------------

コメントトリガー使ってランダム置換するのって、高負荷になるのは避けられないんですかねぇ。。

116 名前: no name :2008/03/16(日) 20:09:47 ID:RQrLeDSG

その乱数の使い方だとコメントが増えたときに、そのコメント以降すべてに影響が出るよな。
コメント投稿時の負荷を軽くしたいんだったら random=rand(chat.vpos)%4 でいいんじゃね?
そもそもmp4再生にCPU食われてるんだから、どのみち高負荷よね。

117 名前: no name :2008/03/16(日) 20:48:42 ID:pisu4NF/

>>116
>コメントが増えたときに、そのコメント以降すべてに影響が出る
投稿内容そのものが上書きされるわけじゃないので、
全体をばらけさせようと思うと、どうしてもこういう使い方になっちゃうんですよねぇ。。

>random=rand(chat.vpos)%4
たしかにこの用法ではこんなもんで十分なのかも。
ちょっとやってみますー

118 名前: no name :2008/03/16(日) 20:56:50 ID:pisu4NF/

random=(rand(chat.vpos)+random)%6
↑に変えてみました。(実際の配列要素は6個定義してます)

119 名前: no name :2008/03/16(日) 21:46:51 ID:azz9TH5Q

>>115
ttp://www.hal.fscs.jp/nicoscript/ の作者です
動画内での宣伝ありがとうございます。

random=(rand(chat.message)+chat.vpos*1000+random)%5 についてですが、
これは3/13以前のrand関数では、いろいろと制限があり、純粋な乱数を得るためにわざわざこのような形にしていました。
しかし、スクリプト強化に伴いrand関数の仕様が変更されたため、現在なら random=rand(chat.vpos)%6 でも問題なく動作します。
ただrand関数は整数を引数とするため、0秒から0.999秒は同じ値を返すことになります。
ですので random=rand(chat.vpos*1000)%6 とすることをオススメします。

速度に関しては自分も研究中です。
なにか成果があったら報告します。

120 名前: no name :2008/03/16(日) 22:33:17 ID:azz9TH5Q

どうやらrand関数がだいぶ重たい関数であるようです。
rand関数を取り除いたところだいぶ処理速度が改善しました。
rand関数を使わずに乱数を取得する方法なんですが、
投稿時間の小数点以下がいいんじゃないかと。たぶんこれでも問題ないはず。
あと指定時間内の連続変更も制限してみたんですが、これもいい感じに効き目がありました。

以下サンプル
0::/
r=0;
b=0;
ex=['置き換え1','置き換え2','置き換え3'];
rep=replace(src:'',dest:'置き換え1',fill:true);
commentTrigger(
if(
when:b<chat.vpos,
then:
b=chat.vpos+0.5;
rep.dest=ex[(chat.vpos*1000)%3]
),
timer:30)

実際の(ry
0::/r=0;ex=['置き換え1','置き換え2','置き換え3'];rep=replace(src:'',dest:'置き換え1',fill:true);commentTrigger(r=(rand(chat.vpos*1000)+r)%3;rep.dest=ex[r],timer:30)

配列でif文を排除する方法は参考にさせてもらいました。
ほかにもいいアイデアがあったらぜひ教えてください。

121 名前: no name :2008/03/16(日) 22:37:20 ID:pisu4NF/

>>119
わざわざどもです!私元スレの160ですw
元々は単体で何回も遊べるランダム出題&ランダムご褒美なクイズを作りたくて、前の書き込みしたんですよー
時流を逃しましたが。。orz

>random=rand(chat.vpos*1000)%6
これって、chat.vposの値が同一でも異なる値を返すように仕様変更されたってことなんでしょうか。
random=(rand(chat.vpos*1000)+random)%6
                   ~~~~~~~~~
                      ↑は無意味っぽいですか?

って書き込む前にHP拝見したら、
やっぱ+randomはあったほうがいいっぽいっすよね。

122 名前: no name :2008/03/16(日) 22:39:42 ID:azz9TH5Q

ミスったw
しかも長文すまんw
実際の(ry (修正版
0::/r=0;b=0;ex=['置き換え1','置き換え2','置き換え3'];rep=replace(src:'',dest:'置き換え1',fill:true);commentTrigger(if(when:b<chat.vpos,then:b=chat.vpos+0.5;rep.dest=ex[(chat.vpos*1000)%3]),timer:30)

123 名前: no name :2008/03/16(日) 22:49:26 ID:azz9TH5Q

誤解を招くようなかきかたして申し訳ない
rand関数は、ある値に対して決まった別の数を返すので、
毎回変えたいならrandom=rand(chat.vpos*1000)%6でいいかと

ちなみに以前の仕様は、
「数値を引数にした場合、31の倍数のうちその引数を超えない最大のものを返す」
という仕様でした。
今考えれば rand(chat.vpos+' ')で十分だった気もします。

まあなんにせよrand関数は重たいんで、commentTrigger内で使うのはやめときましょう。
あと諸事情によりしばらくHPは更新できそうもないです

124 名前: no name :2008/03/16(日) 22:51:35 ID:azz9TH5Q

また間違えたw
random=rand(chat.vpos*1000+random)%6

125 名前: no name :2008/03/16(日) 23:16:09 ID:RQrLeDSG

もし、クイズなどで他人のコメントを乱数に使う場合は
問題を答えてるあいだに出題が変わる可能性がありますよね。
変化をもたせたい場合は、視聴者のコメントだけを使ったほうが安全かと。
その場合は、コメントをしないと進めないようにする必要もありますよね。

今日の豆知識:dt・drawTextは合計50個まで、それとは別にdrawShapeも50個まで。

126 名前: no name :2008/03/16(日) 23:32:51 ID:pisu4NF/

>>125
スクリプト量が異常なので晒せませんが、
クイズの方はもう出来てまっす。めちゃめちゃ過疎ってますが。。orz>>150のコメントにリンクがあります。

手法としては、問題とマッチング用の回答をペアにしてそれぞれ別の配列で管理して、
出題直前に要素番号をランダムで決めてます。
また、一問目は固定問題としてその間に処理タイミングをずらして色々やってます。

-----------------------
###問題回答配列
 arr問題=['1+1は?', 'このサイトの名前は?', 'りんごを英訳せよ。']
 arr回答=['2', 'ニコニコ', 'apple']

###出題内容確定
 random=(ry
###出題
 dt(arr問題[random])
###答え合わせ
 when:!keywordflag&&chat.isYourPost&&chat.message.indexOf(arr回答[random])!=-1,

###次の出題内容確定
 random=(ry
-----------------------

おっしゃるとおり初めは回答者のコメだけをトリガとしてランダム生成してたんですが、
あまりの過疎っぷりにうp後に問題生成の方針を変えましたw

127 名前: no name :2008/03/16(日) 23:33:21 ID:azz9TH5Q

>>125
なるほど。
つまりコメント一覧が更新されると、スクリプトが再評価されて、
乱数も更新されるのか。なんと恐ろしい罠w
参考になります。

>>124
もう3度目ですがまたミスが発覚。
chat.vpos*1000 だと一の位が0になっちゃうので、
chat.vpos*100としなければなりませんでした。

128 名前: no name :2008/03/16(日) 23:37:44 ID:pisu4NF/

>>126
書き込んだ直後に気がついた。
変数randomは、出題数の数だけ作ってます。やっぱ記憶だけで書くもんじゃないっすね。。

------
 random=[false,false,false,false,false,false,false,false,false,false,false,false,false]

 問題1を管理するのはrandom[0]
 問題2を管理するのはrandom[1]
------

んでさらに気がついた。
これじゃ指摘のバグ発生しちゃってるのかーーーーー!orz
元に戻すのめんどくさすぎる。。orz

129 名前: no name :2008/03/16(日) 23:50:25 ID:pisu4NF/

スクリプト全体の流れの中で、乱数算出に一度でも自分以外の投稿者コメント絡ませちゃうと、
どうやっても後ろ全部の問題が変わる可能性があるのか。。

今は↓のような感じで進めてます。
--------
0:00〜0:10 乱数決定
0:20〜0:40 出題&回答1
0:50〜0:60 乱数決定
0:70〜0:90 出題&回答2
--------
配列でペアにしてる関係上、問題と回答がずれるってことは起こりえないんですが、
見てたら突然問題が変わるって事は有り得る訳ですね。。orz

あと、、我ながら書き込み杉自重します。。orz

130 名前: no name :2008/03/17(月) 00:01:08 ID:oq5Y7scX

私は一向に構わんッッ!
せっかくのスレなんだから使ってなんぼでしょ。

いいこと思いついたような気がしたけど
「自動的にコメントを受信する」のチェックを外しても投稿したら受信しちゃうからこれは無理か。

131 名前: no name :2008/03/17(月) 00:14:20 ID:xv1Y9+k2

>>125
自重しない俺が来ましたよ。
実際に試したらその通りになりました。

刹那の見斬りのリザルト画面の左下に、
それよりも前のコメントで生成された乱数を表示してみました。
一覧が更新されるとこの値も更新されてます。
しばらく表示しとくんで見たい人はどうぞ。

イカソース
0::/rrr=0;commentTrigger(rrr=(chat.vpos*100+rrr)%100,timer:28)
85::/dt((rrr+'').toInteger(''),x:-screenWidth/2+10,size:10,pos:'shita',color:0x444444)

132 名前: no name :2008/03/17(月) 00:18:41 ID:7so/VezM

>>131
人がいっぱいいると、簡単に検証できていいですのう。。。w

if chat.isYourPost {
  全ての処理
}
もう、こうするしかないですな。。orz

133 名前: no name :2008/03/17(月) 00:22:18 ID:lCQxmn/G

if(when:条件式, then: ***, else: ***)
が、when省略出来るようになってるみたい。
if(条件式, then: ***, else: ***)
こう書ける

134 名前: no name :2008/03/17(月) 00:32:25 ID:xv1Y9+k2

>>132
ボタン様のおかげです
でもねぇ、コメントランキングの現状どうよってのが本音
ボタンコメントはデフォルトSAGEでおk

>>133
これはありがたい。

コメントが更新されるたびに、
スクリプトが再評価されるってのを考えて設計すれば、
速度もだいぶ改善される気がしてきた。

135 名前: no name :2008/03/17(月) 01:02:57 ID:oq5Y7scX

ちなみにseekで乱数を使うときに限っては乱数が変化しても事後だから関係ないよね、なんて思ったり。
本当は使いたかったけど、ボタンを並べられなくて使い道がなかなかない多次元配列。
d=[[1,2,3],[4,5,6],[7,8,9]]
dt(d[1][2])→5

136 名前: no name :2008/03/17(月) 02:59:24 ID:oq5Y7scX

型毎に使えなさそうなものを列挙してみた。
number: x.self→x、x.index→undefined、x.plus→x(数値化)、x.minus→-x(数値化)
    x.multiply(y)→x*y、x.divide(y)→x/y、x.modulo(y)→x%y、x.add(y)→x+y、x.subtract(y)→x-y
    x.equals(y)→x==y、x.notEquals(y)→x!=y、x.notLessThan(y)→x>=y、x.notGreaterThan(y)→x<=y、x.greaterThan(y)→x<y

boolen: x.not→!x、x.and(y)→x&&y、x.or(y)→x||y、x.alternative(a,b)→x?a:b、after→ ; 、comma→ , 、with→$

↓のような使い方をすれば、ほんのちょっとだけ速くなる?
if(when:比較,then:式1,else:式2)→(比較).alternative(式1,式2)

137 名前: no name :2008/03/17(月) 03:23:39 ID:lCQxmn/G

d = [];
d.setSlot("キー1", "値1");
d.setSlot("キー2", "値2");
dt(d.getSlot("キー1") + d.getSlot("キー2")) →値1値2を表示
こんなのも出来るね
d["キー1"]みたいに出来ないのが残念だけど

138 名前: no name :2008/03/17(月) 21:08:33 ID:oq5Y7scX

ごめん嘘ついた。
x.greaterThan(y)→x>y
x.lessThan(y)→x<y

↓のような感じにすると、他者のコメントに対する処理が最小限になるのではないだろうか、どうだろ?

ctrig(chat.isYourPost.alternative(処理),timer:60)

別の比較演算が必要な場合でも&&を使わず、
視聴者であることが確定してから新たに比較をするほうが軽いよね。
あと、ifよりalternativeのほうが処理がシンプルに見えた。

139 名前: no name :2008/03/18(火) 00:26:29 ID:csLAxa0L

「ニコスクリプト公開」タグがうp主しか付けられなくなってるな。
残念だ。

140 名前: no name :2008/03/18(火) 00:29:25 ID:vFNZvtOt

そもそもロックしないと発動しないし、変に催促するくらいならツール使って無理やり見るがヨロシ。

141 名前: no name :2008/03/18(火) 02:11:36 ID:rxWFMmbO

いや、ロックしなくても有効になるだろ

142 名前: no name :2008/03/20(木) 02:30:41 ID:PXCWZjZ6

誰もwiki編集してくれないのかな?俺にはわからん。

143 名前: no name :2008/03/21(金) 01:56:43 ID:GPfsczah

ちょっと編集してきてみる

144 名前: no name :2008/03/21(金) 02:22:47 ID:GPfsczah

量多すぎて全部書ききれないや

145 名前: no name :2008/03/21(金) 03:50:28 ID:W9OZ1GUl

大体必要なものは揃ったという感じね、編集乙!

146 名前: no name :2008/03/26(水) 03:47:59 ID:WSw1w9jB

0::/X=1;Y=1;round=0
0::/
reload=[false,false,false,false,false,false,false];
reloadstart=[false,true,true,true,true,true,false]
0::/
current=[[0,0,0,0,0,0,0],[0,1,1,1,0,0,0],[0,1,1,1,0,1,0],[0,1,0,0,0,1,0],[0,1,0,1,0,1,0],[0,0,1,0,1,1,0],[0,0,0,0,0,0,0]];
future=[[0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0],[0,0,0,0,0,0,0],[0,0,0,0,0,0,0],[0,0,0,0,0,0,0],[0,0,0,0,0,0,0],[0,0,0,0,0,0,0]]
0::/
commentTrigger(
then:
round=0;
round=current[Y-1][X-1]+current[Y-1][X]+current[Y-1][X-1]+current[Y][X-1]+current[Y][X+1]+current[Y+1][X-1]+current[Y+1][X]+current[Y+1][X+1];
if(((current[Y][X]&&(round==2||round==3))||(!current[Y][X]&&round==3)),then:future[Y][X]=1,else:future[Y][X]=0);
X=X+1;
if(X==6,then:Y=Y+1;X=1);
if(Y==6,then:current=future;reload=reloadstart;X=1;Y=1)
)
0::/
commentTrigger(
then:
if(
reload[1],then:reload[1]=false;
if(
current[1][1]==1,
then:
rect11.visible=true,
else:
rect11.visible=false
);
if(current[1][2]==1,then:rect12.visible=true,else:rect12.visible=false);
if(current[1][3]==1,then:rect13.visible=true,else:rect13.visible=false);
if(current[1][4]==1,then:rect14.visible=true,else:rect14.visible=false);
if(current[1][5]==1,then:rect15.visible=true,else:rect15.visible=false)
)
)

ライフゲームもどきを作ってみたけど動かない
全然原因が分かりません・・・識者のご意見求む

147 名前: 146 :2008/03/26(水) 03:59:06 ID:WSw1w9jB

追記
・5x5マスのライフゲーム
・中央のマスが真の場合、周囲8マスのうち2マスもしくは3マスが真の場合は次の世代も真(生存) それ以外の場合は偽(死亡)
・中央のマスが偽の場合,周囲8マスのうち3マスが真の場合は次の世代は真(誕生)
・あらかじめ作成した長方形オブジェクトrect11〜rect55のvisibleを切り替えることで生死を表現する
ソース全文→sm2787057

148 名前: no name :2008/03/26(水) 05:54:27 ID:vzeeRJRO

ニワン語の0はtrueだよ
> if(((current[Y][X]&&...

149 名前: 146 :2008/03/26(水) 06:11:34 ID:WSw1w9jB

>>148
@eval true+trueで2と表示されますが・・・

150 名前: no name :2008/03/26(水) 12:03:01 ID:OYyZS0i7

>>149
0::/if(when:0,then:dt('a',size:100))
これを試すべし

151 名前: 146 :2008/03/26(水) 16:03:17 ID:WSw1w9jB

>>150
0::/if(when:0,then:dt('a',size:100)) コメント表示されず
0::/if(when:1,then:dt('a',size:100)) コメント表示
となりました.
しかし,二ワン語のtrue==1, false==0かというとそういうわけでもないらしく,
0::/test=dt('test')
1::/test.visible=false 表示→非表示
2::/test.visible=true 非表示→表示
3::/test.visible=0 変化なし
4::/test.visible=1 変化なし
となりました.boolean型とinteger型は明確に使い分ける必要がありそうです.

152 名前: no name :2008/03/26(水) 18:53:32 ID:TxKIvvtV

undefinedもtrueになるぜ。ナンテコッタイ。

153 名前: no name :2008/03/27(木) 01:02:08 ID:yI5cCdsr

それは完全にバグだなぁ

154 名前: no name :2008/03/27(木) 04:45:51 ID:gAFJ/DDX

いや、false か そうでないかで判断してるっぽい

155 名前: no name :2008/03/27(木) 13:18:45 ID:zi22WZpZ

>>151
0::/if(when:0,then:dt('a',size:100)) 表示されるぞ
ちゃんと試したのか?
それとも俺だけか?

156 名前: no name :2008/03/27(木) 20:22:16 ID:gAFJ/DDX

まて、プレイヤーが新しくなった。
ちょっと覗いてくる。

157 名前: no name :2008/03/28(金) 20:14:41 ID:OgQWxoxd

>>156
ニコスクリプトの仕様に関しては変化ないみたいだな

158 名前: no name :2008/03/28(金) 23:03:20 ID:dPJu5MyK

エディタに\nって書き込んでた時に、いちいち改行に変換されてしまってめんどくさかったのは直ったみたい。

159 名前: no name :2008/03/29(土) 01:06:34 ID:vxXmSqrM

ごめん、嘘ついた。

160 名前: no name :2008/04/01(火) 09:01:49 ID:jPVMPnkZ

def_kari('名前',処理文) でサブルーチンを作ることが出来る。

i=1;x=0
def_kari('fx' , x=x+i; if(when:i<10 , then:fx ))
fx
dt(x)→出力:55

i=1;x=0
def_kari('fx' , x=x+i; if(when:i<14 , then:fx ))
fx→フリーズ
再帰的な呼び出しも可能だが、深度が14くらいでプレイヤーが停止する。
呼び出し回数が一定である場合は↓のようにすることで計算を繰り返すことが可能。

i=1;x=0
def_kari('fx', x=x+i)
fx;fx;fx;fx;fx;fx;fx;fx;fx;fx;fx;fx;fx;fx;fx;fx;fx;fx;fx;fx;fx
dt(x)→210

引数は渡せないが、最後に実行した値が返り値になる。

d = dt
def_kari('check', chat.message.indexOf('w') != -1)
commentTrigger(d.text = check.alternative("wあり","wなし"))

↓は大体そんな感じで作りました、以上。

161 名前: no name :2008/04/01(火) 14:05:29 ID:h87ZVv7k

>>160
これはいい機能w
オセロなんとか勝てました

162 名前: no name :2008/04/02(水) 00:23:23 ID:yLVyU+zd

>>160
1行の文字数制限で苦しんでたけど、これで進みそうだ
…と思ったのだが、どうやらサブルーチン内ではtimerが効かないらしい

163 名前: no name :2008/04/02(水) 00:30:35 ID:Kf/z4GdZ

「0xf6」 などは16進数で計算されるため、
コメントから座標を取得するのに活用できる。

c=chat.message
x=('0x'+c[0]).toInteger;y=('0x'+c[1]).toInteger
または
x='0x'+c[0]-0;y='0x'+c[1]-0
などでもいい。
その数字を使って配列にアクセスしたりすることで、
indexOf 大量に書く必要がなくなるので、ぜひ使ってみてほしい。

164 名前: no name :2008/04/02(水) 01:13:56 ID:Kf/z4GdZ

timerは動画を読み込まれたときに指定した時間に配置されるっぽいよね、多分。。。
時間毎に処理をするかどうかの関数でも作って、
フラグを3カウントくらいしたら実行とか言うかんじで1秒間隔で配置すればいいんじゃないかな。
commentTrigger(chat.isYourPost.alternative(main))
def_kari('main',〜〜〜〜〜〜〜〜;flg=true;n=0)
def_kari('check',flg.alternative(n=n+1;(n>=3).alternative(sub)))
def_kari('sub',〜〜〜〜〜〜〜〜;flg=false)
10::/check
11::/check
12::/check
13::/check
みたいなかんじで。

165 名前: no name :2008/04/02(水) 03:04:04 ID:IFctCwIe

def_kariを解析してみました。引数渡せるみたいです。
0::/ def_kari("show", dt($1))
0::/ show("test")

166 名前: no name :2008/04/02(水) 06:05:02 ID:Kf/z4GdZ

なるほどー!

167 名前: no name :2008/04/02(水) 19:56:33 ID:uKP4wKzK

>>165
0::/def_kari('show',dt(text))
1::/show(text:'text')
引数に名前をつけることも可能みたいだね

def_kariでタイマー使えたらアニメーションできるのになー

168 名前: no name :2008/04/03(木) 00:53:01 ID:gh6Q7GQ2

タイマーは実体参照できないからなぁ・・・

169 名前: no name :2008/04/03(木) 08:36:23 ID:5sahWwf/

timerの再帰かぁ、それやりたいなあ

170 名前: no name :2008/04/03(木) 18:29:19 ID:4Sm8Oqgn

オブジェクトについて

0::/console=drawText(size:50)
0::/obj=[]
0::/cln=obj.clone
0::/obj.x='obj : x';x='local : x';obj.setSlot('y','obj : y');cln.z='cln : z'
0::/obj.def_kari('getX',x)
0::/console.text=x
5::/console.text=obj.getX
10::/console.text=obj.y
15::/console.text=obj.getSlot('z')

こんな感じで使えるっぽい
スクリプトがでかくなって変数管理が面倒になってきたら便利そう
(obj=[] これIrArrayじゃんって突っ込みは無しで)

171 名前: no name :2008/04/04(金) 01:05:05 ID:2CQRTrhX

localとかselfとか良く分からないので、そこんところ知りたい!

172 名前: no name :2008/04/04(金) 23:17:03 ID:DikDSLdm

def_kari 内における local と self について

この二つはほかのオブジェクト指向言語で言うところの「this」キーワードに相当するものです。
つまり、def_kariで関数を作成したオブジェクト自体を参照するための変数です。

def_kari('show',self)
とした場合、selfが指し示すものはトップレベルに存在するオブジェクトであり、

obj=[];
obj.def_kari('show',self)
とした場合、selfが指し示すものはobjとなります。

また、selfは呼び出しオブジェクト自身であり、localは呼び出しオブジェクトに引数で指定された変数を追加したものとなります。

0::/obj=[]
0::/obj.x='obj : x'
0::/obj.def_kari('show',dt(self.x);dt(local.x);dt(x))
0::/obj.show(x:'arg : x')
これを実行すると、「obj : x」「arg : x」「arg : x」が表示されます。
(表示位置は自分で調整してください。)

長文失礼しました。

173 名前: no name :2008/04/05(土) 00:49:32 ID:ltjQg4ds

なるほどー!

174 名前: no name :2008/04/08(火) 14:35:17 ID:fymRsVdg

だれか Clone の使い道を教えてくれ。

175 名前: no name :2008/04/08(火) 16:16:00 ID:iZAfAJal

どうもうまく再ジャンプができません。
wikiを見て、その通りに入力したつもりだったのですが。
↓こんな感じです(jumpCancelを5秒目に持ってきても同じ)。
4::/jump('sm------',msg:'Go!',from:'0:00',length:190,return:true)
6::/jumpCancel
7::/jump('sm------',msg:'Go2!',from:'0:00',length:180,return:true)

何がいけないのか、教えていただけるとありがたいです。

176 名前: no name :2008/04/08(火) 21:11:21 ID:fymRsVdg

>>175
fromの値は整数で指定

jump('sm------',from:0)

177 名前: 175 :2008/04/09(水) 15:37:30 ID:zTiTTO1v

176さん、レスありがとうございます。
教えていただいたとおりに修正しましたが、やっぱりだめでした。
(1つめには飛んで戻りますが、2つめには飛びません)
4::/jump('sm------',msg:'Go!',from:0,length:190,return:true)
6::/jumpCancel
7::/jump('sm------',msg:'Go2!',from:0,length:180,return:true)

似たようなことやっている動画の投稿者コメントが見たい…

178 名前: 176 :2008/04/09(水) 19:25:25 ID:WimFKIa8

ジャンプが有効なのは1つの動画で1回じゃなかったっけ?
ジャンプキャンセル使ってもそれはできないと思うけどなあ

実際にそれをやっている動画を教えてくれたら調べられるんですが。

179 名前: 176 :2008/04/09(水) 21:10:34 ID:zTiTTO1v

再びありがとうございます。
↓この動画は、ジャンプ→戻り→ジャンプをしてます。



ですので、できるはずだと思うのですが。

180 名前: 176 :2008/04/09(水) 22:06:09 ID:WimFKIa8

今ためしに自分でもやってみましたができました。
要は
http://nicowiki.com/%E3%83%8B%E3%82%B3%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%97%E3%83%88.html#jump
に書いてあるとおりでした。

シークバーをドラッグしてとまったところの
少し前にジャンプをおいて、
少し後にキャンセルを置くとうまくいくみたいです。

181 名前: no name :2008/04/10(木) 06:35:25 ID:OiLs7Dnu

さっさと lastVideo を実装してくれればいいのにね・・・。
現状じゃ 'sm1' を返すだけの意味無しだから。

182 名前: no name :2008/04/16(水) 18:59:51 ID:unoDiQ3Q

chat.isPremium
って機能してる?

183 名前: no name :2008/04/17(木) 18:46:30 ID:kAxKdkYZ

>>182
俺プレミアムじゃないから試せないんだけど、
コードを見る限りは機能しそう。

それにしても、ボタンの回数制限解除ってどうよ

184 名前: no name :2008/05/16(金) 20:45:20 ID:KgWbwIoj

ボタンを押すとジャンプするってのをやりたいんだけど、
ボタンを押す>ジャンプ用のコメントが投稿される>ジャンプする
ではなくてボタンを押しただけでジャンプするようにできないですかね。
コメント欄がジャンプ用のコメで埋まるのはどうにかならないもんか。

185 名前: no name :2008/05/19(月) 01:08:11 ID:B9v0Wk7e

>>184
ボタン押す→コメントが投稿される
が仕様。
動画内はコメ非表示に出来るけど右のコメ欄はどうしようもない。

186 名前: no name :2008/05/20(火) 19:48:37 ID:XWDxq5qZ

フィルターで空白にすればいいと思うよ

187 名前: no name :2008/05/24(土) 11:07:04 ID:5UpUg7fV

【ニコニコ】スクリプト動画を作ろう【ニワン語】
http://pc11.2ch.net/test/read.cgi/streaming/1211444166/

188 名前: no name :2008/06/19(木) 17:54:16 ID:yzPJZ46S

@置換でコメント保護機能が有効になるか試してみたんだが、うまくいかない。
どうしたものか・・・。

189 名前: no name :2008/06/19(木) 20:15:31 ID:LKxo7xdt

今回の仕様変更はなかなか良い感じだ
運営さんお疲れ様

190 名前: no name :2008/07/04(金) 09:21:02 ID:FlpTDWD9

>>188
同じく。保護する単語を指定してなくても最初からニコス一覧に保存される。
それだけならよかったんだけど
置換使ってない時間帯でも置換判定の単語を含むコメが投稿されるとニコス送りになってしまう。

191 名前: no name :2008/07/04(金) 20:24:27 ID:Uy39Gyos

187のスレが過疎ってると思ったら、
ここでやるべきってことかね。

randって名前まぎらわしくないか?要はhashだろ?
将来的に種指定関数ができたとしてもその場合randは引数無しに
なるか、最大値を指定するかになるわけだし…
その気は無いってことかな。大人しくhashと名乗って欲しかった。

192 名前: no name :2008/07/05(土) 18:40:51 ID:EIs8Ey4h



@ポーズも有用そうだけど、それより@ボタンの機能が増えてる?
色々とできそうだ。

193 名前: 192 :2008/07/05(土) 19:21:00 ID:EIs8Ey4h

どうやら勘違いだった。前回の仕様変更を知らなかった…

動画を止めたりジャンプしてもBGMが止まらないのは良いかも。
BGMと効果音の分離もできるみたいだけど、ヘルプの記述例がおかしい。
音量と表示設定が逆?

194 名前: no name :2008/07/13(日) 15:08:34 ID:u1nSTBB7

コメント欄に入ってないコメントが動画に流れるのだが
それって非表示にできないのかな?
多分、@キーワードジャンプで一部文字を含んだものなんだが

195 名前: no name :2008/07/13(日) 21:03:46 ID:D1tijKQd

それって@ボタンのコメントじゃない?

196 名前: no name :2008/07/14(月) 08:43:36 ID:DkwLD95X

@ボタンのコメント?

197 名前: no name :2008/07/17(木) 04:08:19 ID:oPoyBABJ

@ボタンで投稿されたコメントはニコスコメント一覧に保存されます。
ニコスコメント一覧を表示するには、「NGコメント追加」ボタンの左にあるメニューから「ニコスコメント一覧」を選んでください。

198 名前: no name :2008/08/11(月) 20:18:25 ID:dkv/IVoP

質問なんですが、ニワン語掲載のジャンプキャンセルについてですが,

とある動画で”停止”と入力したらジャンプキャンセルされたのですが、
いろいろ調べたのですがそのような機能はないのですが、
キーワードジャンプの応用かなにかでしょうか?もし分かる方がいましたら
ご教授お願いします。

199 名前: no name :2008/08/12(火) 05:52:34 ID:nruMiBvi

動画のページは出てくるのですが、再生画面が出てきません。
なぜでしょうか?

名前
メール
コメント
新着レスの表示 掲示板に戻る 全部 前100 次100 最新50