忍者ブログ

無意識にマリカとかねんどろとかカグニーとかを想起


[PR]


×

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


スクリプト第2弾


というわけで、昨日の幻想ノ宴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();
}
}
}





まぁこんな感じ。
大体の解説は書いてある通りですけど。
ファイルが欲しい方はこちら→(http://www1.axfc.net/uploader/File/so/12539.zip

拍手[0回]

PR

COMMENT

COMMENT FORM

NAME
MAIL
WEB
TITLE
COMMENT
PASSWORD

TRACKBACK

TRACKBACK URL :

Blog内検索
 
 
 
カレンダー
 
02 2024/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
 
 
中の人
 
Aray-A/みやっち
  • ペドピ愛好家
  • ねんどろ早苗愛好家


 
 
twitter
 
 
 
カテゴリー
 
 
 
最新記事
 
(11/01)
(04/17)
(11/29)
(09/14)
(05/12)
 
 
リンク
 
 
 
カウンター
 
 
 
カグラ応援中
 
『閃乱カグラ -少女達の真影-』オフィシャルサイト 
柳生ちゃん可愛いよ柳生ちゃん 
むーちゃん
 
 
 
アーカイブ
 
 
 
RSS
 
 
 
アクセス解析