- 12/02 Information!!
- 07/07 【グラブル】バハムートを最終上限解放
- 07/06 【グラブル】光有利の古戦場
- 06/14 【動物園】愛媛県立とべ動物園
- 05/31 【グラブル】開放したシスとエッセルの使用感
This is new entry
きのうの誤字がすごかった
どうもシュクレールです。
えーっとcnannelのnが1つ多くてそもそもおかしいってのがありましたので。
function event::onChannetText(prefix,channel,text){
if(channel.match(/^#roomA$/)){
send(roomB,prefix.nick+" "+text);
}
if(channel.match(/^#roomB$/)){
send(roomA,prefix.nick+" "+text);
}
}
やまびこすくりぷと。
たぶんこれで動きますね。
でもって本題
同盟狩りの裏でスクリプトを弄ってました。
まずは機能の宿題事項であったタイムアウト動作時のsetinterval()について次のようなスクリプトを組みました。
function event::onLoad(){
setInterval(overflow,10000)
}
function overflow(){
log("testpointA");
for(var i=1;i>0;i++){
}
}
これをついでなのでやまびこに追記することに。
*PCの動作がタイムアウトまでの5秒止まりますのでご注意を(Limechat)
内容的には10秒ごとにoverflow関数を呼び出して、無限ループで5秒でLimechatのランニング限界なのでタイムアウトさせます。
でさらに5秒後に再度呼ばれるので無限にこの無駄なスクリプトが走ります。
あれ、flowってこっちのでいいんだっけ?
ま、いいか。
プログラム的には文字列があってればおk。
スクリプトコンソールには
testpointA
・・・タムアウト
testpointA
・・・タイムアウト
testpointA
・・・タイムアウト
ってのがずっと続きます。
・・・・
・・・
・・
・
ってことで、意図したとおりに動いてくれましたね。
タイムアウトしてもsetintervalは生きたままなので、再度関数がコールされるようです。
ちなみにこの処理中にやまびこスクリプトの方も動かして見ましたが、チャント動きました。
ってことで、ユイに還元しようって感じです。
現状は
functionA()
処理
settimeout(functionA,60000)
ッテ感じで最後にsettimeoutを使っていたのですが、
今度からはsetintervalでいいんじゃないかなとかおもった。
あ、60000は実際は丸めてから変数で入れてますよ。
けど、あれ?
単に置き換えると、関数内部でその関数をセットすると、合わせ鏡のように何重にもよぶことになるのか・・・?あるいはタイマーがあって上書きされるのか??
ってことで、コール間隔の違うやつでおなじ関数を呼んでみれば、先なのかあとなのか、もしくは2つのタイマーでよばれるのかどっちが優先度高いのかがわかりますね。
まぁ、何重にもコールするようなら、
処理の前にsettimeout宣言しとけば、処理でタイムアウトしても問題ないかなとは思ったり。
宿題事項
でもって、やっぱデータ落ちの時の警告が必要かなーとも思ってます。
setintervalで監視用の関数1個つくろうかなとか。
作業用エクセルに書きこむときに前回書き込み時間を見て、+1分以上だったら「データ抜けしてるんじゃない?」と警告するといいような気もする。
でも、今はログファイルの「更新日時」をつかって書き込んでいるので、古いsavechatlogの時刻を書き込んじゃったりするとめんどくせーので回避処理をつくってあげる必要性が発生する。
もしくは、メイン処理の一番最後に、処理が終わったらという意味で最終書き込み時間を作業用エクセルのどっかの1セルつかって書いてあげてもいいなとか思う。
けど、エクセル立ち上がってなかったらどうすんのさ!って問題と
書き込み処理以外の(非GV時間)ときはタイムアウトしないとおもってんの?(恐らくしませんが)
っていういみで、やっぱ「すべての」処理ルートの最後に入れるべきかなと思うと、それはもう手は2つしか考えられません
・logファイルを1つつくってそこに書きこむようにする。
・監視用chに処理最後にキーワード(現在時刻から"分")を発言して、別functionでそのキーワードを解析する
前者は、
PID制御と同じっすね。やり方は後者のと同じっす。ただ作業領域がlogファイルかchかってことだけ。
後者は、
ユイが02秒時にうごくので(分切り替わりの境界線である00はこわいのでマージン儲けてる)、まぁ10秒とか15秒のときに、chの発言から抽出して、「同じ"分"」でなかったらデータ抜けがあるんでないの?ってことで。
あれ、でもlimechat的に発言時のイベントはトリガーにできても、あとから発言を探るってできたんだっけ・・・?
limechatのログファイル見に行くのは非効率だな。設定してあげないといけないし。ファイル名の形式がカスタムできるから探すのたるいし。
かといって発言をトリガにすると、そもそもタイムアウトしたときに動いて欲しいんだから本末転倒と言うか。
ってーともうlogファイルしかねーっすねー。
'`,、('∀`) '`,、
あれこれやりたいことが次々湧いてくるのはいいことだ。
スパゲッティ化は、趣味プログラムなので(゚ε゚)キニシナイ!!
あ、あとログアウトきのうがほしいなー。
完全にしゅみだけどー。
自分以外の人間がログアウトコマンドしても
「わたしをログアウトさせれるのはマスターだけですぅ><」
ってかえす。
あほくさwwwww
wwwwwwwwww
勘違いしたSの人間が出てきそうだ。
まぁ、Limechatはマクロ停止がスクリプトで書けるので、
つくりますがね!!
どうもシュクレールです。
えーっとcnannelのnが1つ多くてそもそもおかしいってのがありましたので。
function event::onChannetText(prefix,channel,text){
if(channel.match(/^#roomA$/)){
send(roomB,prefix.nick+" "+text);
}
if(channel.match(/^#roomB$/)){
send(roomA,prefix.nick+" "+text);
}
}
やまびこすくりぷと。
たぶんこれで動きますね。
でもって本題
同盟狩りの裏でスクリプトを弄ってました。
まずは機能の宿題事項であったタイムアウト動作時のsetinterval()について次のようなスクリプトを組みました。
function event::onLoad(){
setInterval(overflow,10000)
}
function overflow(){
log("testpointA");
for(var i=1;i>0;i++){
}
}
これをついでなのでやまびこに追記することに。
*PCの動作がタイムアウトまでの5秒止まりますのでご注意を(Limechat)
内容的には10秒ごとにoverflow関数を呼び出して、無限ループで5秒でLimechatのランニング限界なのでタイムアウトさせます。
でさらに5秒後に再度呼ばれるので無限にこの無駄なスクリプトが走ります。
あれ、flowってこっちのでいいんだっけ?
ま、いいか。
プログラム的には文字列があってればおk。
スクリプトコンソールには
testpointA
・・・タムアウト
testpointA
・・・タイムアウト
testpointA
・・・タイムアウト
ってのがずっと続きます。
・・・・
・・・
・・
・
ってことで、意図したとおりに動いてくれましたね。
タイムアウトしてもsetintervalは生きたままなので、再度関数がコールされるようです。
ちなみにこの処理中にやまびこスクリプトの方も動かして見ましたが、チャント動きました。
ってことで、ユイに還元しようって感じです。
現状は
functionA()
処理
settimeout(functionA,60000)
ッテ感じで最後にsettimeoutを使っていたのですが、
今度からはsetintervalでいいんじゃないかなとかおもった。
あ、60000は実際は丸めてから変数で入れてますよ。
けど、あれ?
単に置き換えると、関数内部でその関数をセットすると、合わせ鏡のように何重にもよぶことになるのか・・・?あるいはタイマーがあって上書きされるのか??
ってことで、コール間隔の違うやつでおなじ関数を呼んでみれば、先なのかあとなのか、もしくは2つのタイマーでよばれるのかどっちが優先度高いのかがわかりますね。
まぁ、何重にもコールするようなら、
処理の前にsettimeout宣言しとけば、処理でタイムアウトしても問題ないかなとは思ったり。
宿題事項
でもって、やっぱデータ落ちの時の警告が必要かなーとも思ってます。
setintervalで監視用の関数1個つくろうかなとか。
作業用エクセルに書きこむときに前回書き込み時間を見て、+1分以上だったら「データ抜けしてるんじゃない?」と警告するといいような気もする。
でも、今はログファイルの「更新日時」をつかって書き込んでいるので、古いsavechatlogの時刻を書き込んじゃったりするとめんどくせーので回避処理をつくってあげる必要性が発生する。
もしくは、メイン処理の一番最後に、処理が終わったらという意味で最終書き込み時間を作業用エクセルのどっかの1セルつかって書いてあげてもいいなとか思う。
けど、エクセル立ち上がってなかったらどうすんのさ!って問題と
書き込み処理以外の(非GV時間)ときはタイムアウトしないとおもってんの?(恐らくしませんが)
っていういみで、やっぱ「すべての」処理ルートの最後に入れるべきかなと思うと、それはもう手は2つしか考えられません
・logファイルを1つつくってそこに書きこむようにする。
・監視用chに処理最後にキーワード(現在時刻から"分")を発言して、別functionでそのキーワードを解析する
前者は、
PID制御と同じっすね。やり方は後者のと同じっす。ただ作業領域がlogファイルかchかってことだけ。
後者は、
ユイが02秒時にうごくので(分切り替わりの境界線である00はこわいのでマージン儲けてる)、まぁ10秒とか15秒のときに、chの発言から抽出して、「同じ"分"」でなかったらデータ抜けがあるんでないの?ってことで。
あれ、でもlimechat的に発言時のイベントはトリガーにできても、あとから発言を探るってできたんだっけ・・・?
limechatのログファイル見に行くのは非効率だな。設定してあげないといけないし。ファイル名の形式がカスタムできるから探すのたるいし。
かといって発言をトリガにすると、そもそもタイムアウトしたときに動いて欲しいんだから本末転倒と言うか。
ってーともうlogファイルしかねーっすねー。
'`,、('∀`) '`,、
あれこれやりたいことが次々湧いてくるのはいいことだ。
スパゲッティ化は、趣味プログラムなので(゚ε゚)キニシナイ!!
あ、あとログアウトきのうがほしいなー。
完全にしゅみだけどー。
自分以外の人間がログアウトコマンドしても
「わたしをログアウトさせれるのはマスターだけですぅ><」
ってかえす。
あほくさwwwww
wwwwwwwwww
勘違いしたSの人間が出てきそうだ。
まぁ、Limechatはマクロ停止がスクリプトで書けるので、
つくりますがね!!
PR
COMMENT
プロフィール
HN:
komyu/シュクレール/修造
性別:
非公開
自己紹介:
こうぶつはけものみみとのーびす(♀)とエリーン
主にROとTERAとラノベと雑多なkomyuの日記帳です。
主にROとTERAとラノベと雑多なkomyuの日記帳です。
TERAキャラ紹介
シュクレール(バサ)
syuzo(エレ)
サケマス(アチャ)
その他サブ
ウリエルキゥィス(スレLv54)
Vermillion(サラLv56)
パズドラ
157,318,362
フレンド募集中
枠なきゃ増やす
最終プレイ3日以上になったら消す
カレンダー
02 | 2025/03 | 04 |
S | M | T | W | T | F | S |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 | 31 |
最新記事
(12/02)
(07/07)
(07/06)
(06/14)
(05/31)
ブログ内検索
最新コメント