視力回復 視力矯正 Blog not updated 忍者ブログ

Blog
04 2024/05 1 2 3 45 6 7 8 9 10 1112 13 14 15 16 17 1819 20 21 22 23 24 2526 27 28 29 30 31 06
RECENT ENTRY RECENT COMMENT

05.08.04:30

[PR]

×

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

  • 05/08/04:30

12.22.21:49

複数行応答スクリプト

ユニさんの 量産型UNIANGELを改造して、キーワードに対して複数行の返答を返せるようにしてみた。

最初は二次元配列にしようと思ったんだけど、JScriptだと配列定義がめんどうなので、
1行を区切り文字で区切って複数行に分割する方法にした。
とりあえず「\n」を区切り文字にしています。
※使用の際は、複数行メッセージを+で連結しないで1行に書いてしまった方がいいかも?

ソース:
/*************************************************************************/

//チャンネル内のコメントのある言葉に反応して会話をランダムで返すbotスクリプトです。
//マクロで会話を作るのが面倒な人の為に作りました。
//※管理者権限を持っている時にしか発言しません。
//また、ブラウザでUstreamを見ている人には見えません。
//このスクリプトはテストしていますが自己責任で導入して下さい。改変・改造はご自由に!
//スクリプトの改修にあたりソイソース醤油さんの羅刹キッカーを一部参考にさせて頂きました。
//Thanks!
//(C)2009 ユニ #uniuniuni http://univoice.blog36.fc2.com/
var keyword = new Array();
var ohenji = new Array();
//ここまで変更しないで下さい

// 区切り文字
var delimiter = "\n";



/*************************************************************************/
//★会話内容変更部分 編集可能です。★

//この下を変更すると、反応する単語を指定できます。
//もっと追加したい場合は、その後に続けて
//  keyword[次の数字] = '反応する単語';
//と1行ずつ増やしていって下さい。

keyword[0] = 'こんにちは';
keyword[1] = "こんばんは";


//この下を変更すると、返事する内容を指定できます。
//もっと追加したい場合は、その後に続けて
//  ohenji[次の数字] = '返事の文章';
//と1行ずつ増やしていって下さい。

ohenji[0] = '( ´_ゝ`)ノボンジュール♪';
ohenji[1] = "    ∧∧ \n"
          + "   (=゚ω゚)ノ ぃょぅ \n"
          + " ~(  x) \n"
          + "   U U \n";



/*************************************************************************/

function event::onChannelText(prefix, channel, text) {
    var c = findChannel(channel);
    if (c) {
        var m = c.findMember(myNick);
        if (m.op) {
            for (i in keyword) {
                if (text.match(keyword[i])) {
                    //n = Math.floor(Math.random()* ohenji.length);
                    //send(channel, ohenji[n]);

                   
                    splitMsg = ohenji[i].split(delimiter);
                    for(var index in splitMsg) {
                        send(channel, splitMsg[index]);
                    }

                }
            }
        }
    }
}

青:追加
赤:削除


実行結果:
result1.jpg




ダウンロードリンク:
uniangel_ryousangata_kaiwa_kai_00.js
(右クリックで名前を付けてリンク先を保存)


ちょっと暇な待ち時間があったので、二次元配列版も作ってみた。
/*************************************************************************/

//チャンネル内のコメントのある言葉に反応して会話をランダムで返すbotスクリプトです。
//マクロで会話を作るのが面倒な人の為に作りました。
//※管理者権限を持っている時にしか発言しません。
//また、ブラウザでUstreamを見ている人には見えません。
//このスクリプトはテストしていますが自己責任で導入して下さい。改変・改造はご自由に!
//スクリプトの改修にあたりソイソース醤油さんの羅刹キッカーを一部参考にさせて頂きました。
//Thanks!
//(C)2009 ユニ #uniuniuni http://univoice.blog36.fc2.com/
var keyword = new Array();
var ohenji = new Array();
//ここまで変更しないで下さい


/*************************************************************************/
//★会話内容変更部分 編集可能です。★

//この下を変更すると、反応する単語を指定できます。
//もっと追加したい場合は、その後に続けて
//  keyword[次の数字] = '反応する単語';
//と1行ずつ増やしていって下さい。

keyword[0] = 'こんにちは';
keyword[1] = "こんばんは";


//この下を変更すると、返事する内容を指定できます。
//もっと追加したい場合は、その後に続けて
//  ohenji[次の数字] = '返事の文章';
//と1行ずつ増やしていって下さい。

ohenji = [ ["( ´_ゝ`)ノボンジュール♪"], // 0
           ["    ∧∧",
            "   (=゚ω゚)ノ ぃょぅ",
            " ~(  x)",
            "   U U"] // 1
         ];



/*************************************************************************/

function event::onChannelText(prefix, channel, text) {
    var c = findChannel(channel);
    if (c) {
        var m = c.findMember(myNick);
        if (m.op) {
            for (i in keyword) {
                if (text.match(keyword[i])) {
                    //n = Math.floor(Math.random()* ohenji.length);
                    //send(channel, ohenji[n]);

                   
                    for(var j in ohenji[i]) {
                        send(channel, ohenji[i][j]);
                    }

                }
            }
        }
    }
}

やっぱ配列番号がわかりずらいし、メッセージ追加するときもミスしそうだし、split版の
方がいいな。

一応DLリンク:
uniangel_ryousangata_kaiwa_kai_01.js

てか、ユニさんのスクリプトを編集して二次配布してもよかったのだろうか?
まあいいやw


PR
URL
FONT COLOR
COMMENT
Vodafone絵文字 i-mode絵文字 Ezweb絵文字
PASS

TRACK BACK

トラックバックURLはこちら