2009年10月29日
スクリプトのエラー
こんにちは。ダイアログを使ってアンケートのページやそのプレゼントを渡したいのですが
「button labels must be 24 or fewer characters long」とエラーが出てしまいます。
今までに見たことのないエラーで困っています。どこを直したらいいのか教えて下さい。
※こちらは千尋さんのスクリプトを使わせていただいています。
----------------------------------------------------------------------------------------------
// ダイアログ
string text="アンケートは、11月10日までです。"; // ダイアログに表示するメッセージ
string button1="アンケート";
string note1="((fivestore)) Questionnaire";
string button2="ギフト";
string item2="<FS> Bar chair";
string button3="アンケートページへ";
string url3="http://enq-maker.com/8px5zYN";
list menu=[button1,button2,button3]; // メニューに出るボタンのリスト
integer CHANNEL; // メニューの返事を聞くチャンネル用
default
{
state_entry()
{
CHANNEL=llCeil(llFrand(2147483646)); // チャンネルを乱数で設定
llListen(CHANNEL,"29",NULL_KEY,""); // listen開始
}
touch_start(integer total_number)
{
key agent=llDetectedKey(0); // タッチしたアバターのキー
llDialog(agent,text,menu,CHANNEL); // ダイアログを出す
}
listen(integer channel, string name, key id, string msg)
{
if (channel == CHANNEL)
{
if (msg == button1) { // button1が押されたとき
llGiveInventory(id,note1); // note1を渡す
}
else if (msg == button2) { // button2が押されたとき
llGiveInventory(id,item2); // item2を渡す
}
else if (msg == button3) { // button3が押されたとき
llLoadURL(id,button3,url3); // webページを開く
}
}
}
}
----------------------------------------------------------------------------------
↑
ここの部分の【アンケートページへ】をもう少し短い文字数の言葉にしてみたらいかがでしょうか?
「ボタンのラベルの長さは24文字かそれより短くなければなりません」
ということです。
ここで、「長さ」と言っていますが、厳密にはバイト数になります。
いわゆる半角英数文字は1文字=1バイトですが、漢字や全角カナは3バイトとかになったりします。
"アンケートページへ"は27バイトありますので、アウトということになります。
文字数とバイト数の問題については、jinkoさんSL日記でわかりやすく説明してくださっています。
http://jinko.slmame.com/e602732.html
ありがとうございました!!