[PR]
×
[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
- Newer : 今度は白い
- Older : 10月19日のココロ日記(BlogPet)
[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
というわけで、昨日の幻想ノ宴18thネット定例会は参加者オーバーということで待機してました。
空きがあるようなら出たんですけどね。
最近の私のトレンドは幽々子2と絶対阻止と最後の砦ですね。
ここら辺を組み込んだデッキが多い。
さて、待機といっても暇だったのでその間にスクリプトを書いてました。
参加表明の対応とか結果報告とかを色々自動でやりたいとか何とか。
IRCでスクリプト弄って使ってるのが主に自分だからまぁ頑張ってみました。
まぁプログラムが長くなりそうなんで、以下に。
function event::onChannelText(prefix, channel, text) {
if (channel.match(/^#幻想ノ宴$/)) {
// 参加表明用のスクリプト
if( text.match(/^@参加$/) || text.match(/^@参加$/) ){
// 日付を取得してファイル名に利用
var d = new Date();
var month = d.getMonth() + 1; // 月は0~11で表されるので+1
var day = d.getDate();
var filename = 'list' + month.toString() + day.toString() + '.txt';
// ファイルオープン [書き込み可でコードはUTF-8]
var file = openFile(filename, false, 65001);
// 参加確認メッセージの表示
send(channel, prefix.nick + 'さんの参加を受け付けました。');
// 参加者のニックネームをファイルに書き込み
file.seekToEnd(); // ファイルの末尾に移動
file.writeLine(prefix.nick);
// 先頭に持って行くために、一旦ファイルをクローズ
file.close();
// 再びファイルのオープン 読み込み動作しかしないので書き込み不可に
file = openFile(filename, true, 65001);
// トピックの更新
var lines = [];
var s;
while (s = file.readLine()) {
lines[lines.length] = s;
}
var topic_mes = '大会参加受付中。参加希望者は「@参加」と発言してください。現在参加者は';
topic_mes += lines.length.toString();
topic_mes += '人';
topic(channel, topic_mes);
// ファイルのクローズ
file.close();
}
}
}
function event::onChannelText(prefix, channel, text) {
if (channel.match(/^#幻想ノ宴$/)) {
// 参加者リスト表示スクリプト
if( text.match(/^@リスト$/) || text.match(/^@リスト$/) ){
// 日付を取得してファイル名に利用
var d = new Date();
var month = d.getMonth() + 1; // 月は0~11で表されるので+1
var day = d.getDate();
var filename = 'list' + month.toString() + day.toString() + '.txt';
// ファイルオープン [書き込み不可でコードはUTF-8]
var file = openFile(filename, true, 65001);
// ファイルの内容を1行ずつ配列に格納:行数はlines.length
var lines = [];
var s;
while (s = file.readLine()) {
lines[lines.length] = s;
}
// for文で最初からぶん回してメッセージ生成
var member = '';
for(var i=0;i<lines.length;i++){
member += lines[i];
member += '、';
}
// メッセージ送信
send(channel, member);
send(channel, '計' + lines.length.toString() + '人');
// ファイルをクローズ
file.close();
}
}
}
function event::onChannelText(prefix, channel, text) {
if (channel.match(/^#幻想ノ宴$/)) {
// 結果報告用のスクリプト
if( text.match(/^@報告/) || text.match(/^@報告/)){
// ファイルオープン [書き込み可でコードはUTF-8]
var file = openFile('result.txt', false, 65001);
// キーワードの削除
var mes;
mes = text.replace(/^@報告/,'');
mes = mes.replace(/^@報告/,'');
mes = mes.replace(/^ /,'');
mes = mes.replace(/^ /,'');
// ファイルへの書き込み
file.seekToEnd();
file.writeLine(mes);
// 確認メッセージ送信
send(channel, '「' + mes + '」を記録しました。');
// ファイルをクローズ
file.close();
}
}
}
function event::onChannelText(prefix, channel, text) {
if (channel.match(/^#幻想ノ宴$/)) {
// 結果告知用のスクリプト
if( text.match(/^@結果$/) || text.match(/^@結果$/) ){
// ファイルオープン [書き込み不可でコードはUTF-8]
var file = openFile('result.txt', true, 65001);
// ファイルの行数を取得する:行数はlines.length
var lines = [];
var s;
while (s = file.readLine()) {
lines[lines.length] = s;
}
// for文で最初からぶん回してメッセージ送信
for(var i=0;i<lines.length;i++){
send(channel, lines[i]);
}
// ファイルをクローズ
file.close();
}
}
}
COMMENT
COMMENT FORM
TRACKBACK