忍者ブログ
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

きのうの誤字がすごかった
どうもシュクレールです。

えーっと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
name
title
text
color   Vodafone絵文字 i-mode絵文字 Ezweb絵文字
mail
URL
pass
secret
TRACKBACK
TrackbackURL:
PREV ←  HOME  → NEXT
プロフィール
HN:
komyu/シュクレール/修造
性別:
非公開
自己紹介:
こうぶつはけものみみとのーびす(♀)とエリーン
主にROとTERAとラノベと雑多なkomyuの日記帳です。
新生FF14
TERA紋章しみゅ
ROサポートツール
タイムライン
RSSボットが記事更新をつぶやくのがほとんどっス…
ROキャラクター紹介


TERAキャラ紹介

シュクレール(バサ)



syuzo(エレ)



サケマス(アチャ)


その他サブ

ウリエルキゥィス(スレLv54)

Vermillion(サラLv56)

パズドラ

157,318,362
フレンド募集中
枠なきゃ増やす
最終プレイ3日以上になったら消す
カレンダー
04 2024/05 06
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
ツリーカテゴリ
ブログ内検索
最新コメント
[04/30 のな]
[03/22 NEIN]
[03/22 NEIN]
[10/31 イロイ]
[05/02 NONAME]
Copyright (C) 2024 のーびす監察日記 All Rights Reserved.
Photo by 戦場に猫 Template Design by kaie
忍者ブログ [PR]