20:30:49 @lost_nd_xxx@ukadon.shillest.net
icon

時間切れのため今日はここまでです。中途半端になってしまってすみません。

20:29:33 @lost_nd_xxx@ukadon.shillest.net
なぜか無限ループになる
icon

*アイテム解説呼び出し
:(call,アイテム解説,テスト)

*アイテム解説
$文字列開始位置 50
$解説文一行あたりの全角文字数 5
$単語群「(A0)の解説文」の重複回避 降順、トーク中
>アイテム解説_バルーン横幅が小さいので画像の下に文字を出す (解説文一行あたりの全角文字数)<=2
:((A0)の画像)φ
\_l[0,0]\_l[(文字列開始位置),]φ
(times,
(単語群「(A0)の解説文」の数),
(set,アイテム解説文ループ_処理文字列,((A0)の解説文))φ
(set,アイテム解説文ループ_文字数カウンタ,0)φ
(アイテム解説文ループ1)φ
\n\_l[(文字列開始位置),]

*アイテム解説_バルーン横幅が小さいので画像の下に文字を出す
:((A0)の画像)
(times,(単語群「(A0)の解説文」の数),((A0)の解説文)\n)

@アイテム解説文ループ1
(while,(アイテム解説文ループ_文字数カウンタ)<=(length,(アイテム解説文ループ_処理文字列))||(アイテム解説文ループ_文字数カウンタ)<10,(アイテム解説文ループ2))

@アイテム解説文ループ2
(when,
(length,(substr,(アイテム解説文ループ_処理文字列),(アイテム解説文ループ_文字数カウンタ),(解説文一行あたりの全角文字数)))==(解説文一行あたりの全角文字数),
(when,
(count,(禁則処理対象文字),(substr,(アイテム解説文ループ_処理文字列),(calc,(アイテム解説文ループ_文字数カウンタ)+(解説文一行あたりの全角文字数)),1))==1,
(アイテム解説文ループ2_部品1),
(アイテム解説文ループ2_部品2)
),
(アイテム解説文ループ2_部品3)

@アイテム解説文ループ2_部品1
(substr,(アイテム解説文ループ_処理文字列),(アイテム解説文ループ_文字数カウンタ),(calc,(解説文一行あたりの全角文字数)-1))\n\_l[(文字列開始位置),]φ
(set,アイテム解説文ループ_文字数カウンタ,(calc,(アイテム解説文ループ_文字数カウンタ)+(解説文一行あたりの全角文字数)-1))

@アイテム解説文ループ2_部品2
(substr,(アイテム解説文ループ_処理文字列),(アイテム解説文ループ_文字数カウンタ),(解説文一行あたりの全角文字数))\n\_l[(文字列開始位置),]φ
(set,アイテム解説文ループ_文字数カウンタ,(calc,(アイテム解説文ループ_文字数カウンタ)+(解説文一行あたりの全角文字数)))

@アイテム解説文ループ2_部品3
(substr,(アイテム解説文ループ_処理文字列),(アイテム解説文ループ_文字数カウンタ))φ
(set,アイテム解説文ループ_文字数カウンタ,(calc,(アイテム解説文ループ_文字数カウンタ)+(解説文一行あたりの全角文字数)))

@禁則処理対象文字
、。
#改行なしで1文字ずつ

@テストの画像
 
#画像をここに

@テストの解説文
寿限無寿限無。五劫のすり切れ。海砂利水魚の水行末、雲来末、風来末。
食う寝るところに住むところ。やぶら小路のぶら小路。
#文章をここに

20:03:42 @lost_nd_xxx@ukadon.shillest.net
icon

@mizu_yura_27 お渡しした作例については、「解説文一行あたりの全角文字数」が5などの場合、どこかで無限ループに陥るようです。
原因はまだ特定できていません。

18:17:36 @lost_nd_xxx@ukadon.shillest.net
icon

@mizu_yura_27 すみません、私の投げた「アイテム解説」関数の「>アイテム解説_バルーン横幅が小さいので~」の条件分岐の位置が間違っていたので、修正しました。

18:10:49 18:15:12 @lost_nd_xxx@ukadon.shillest.net
icon

@mizu_yura_27
また、画像の回り込みについて試作してみました。
こちらも、\0のバルーン0以外を取得したい場合は変更が必要です。
~~~~
*アイテム解説呼び出し
:(call,アイテム解説,テスト)

*アイテム解説
$文字列開始位置 50
$解説文一行あたりの全角文字数 (calc,((get_property,currentghost.balloon.scope(0).validwidth.initial)-(文字列開始位置))/((get_property,currentghost.balloon.scope(0).char_width)*2)-1)
$単語群「(A0)の解説文」の重複回避 降順、トーク中
>アイテム解説_バルーン横幅が小さいので画像の下に文字を出す (解説文一行あたりの全角文字数)<=0
:((A0)の画像)\_l[0,0]\_l[(文字列開始位置),](times,(単語群「(A0)の解説文」の数),(call,アイテム解説文ループ1,(A0))\n\_l[(文字列開始位置),])

*アイテム解説_バルーン横幅が小さいので画像の下に文字を出す
:((A0)の画像)
(times,(単語群「(A0)の解説文」の数),((A0)の解説文)\n)

@アイテム解説文ループ1
(set,アイテム解説文ループ_処理文字列,((A0)の解説文))(set,アイテム解説文ループ_文字数カウンタ,0)(while,(calc,(アイテム解説文ループ_文字数カウンタ)<(length,(アイテム解説文ループ_処理文字列))),(アイテム解説文ループ2))

@アイテム解説文ループ2
(while,(アイテム解説文ループ_文字数カウンタ)<(length,(アイテム解説文ループ_処理文字列)),
(when,
(length,(substr,(アイテム解説文ループ_処理文字列),(アイテム解説文ループ_文字数カウンタ),(解説文一行あたりの全角文字数)))==(解説文一行あたりの全角文字数),
(when,
(count,(禁則処理対象文字),(substr,(アイテム解説文ループ_処理文字列),(calc,(アイテム解説文ループ_文字数カウンタ)+(解説文一行あたりの全角文字数)),1))==1,
(substr,(アイテム解説文ループ_処理文字列),(アイテム解説文ループ_文字数カウンタ),(calc,(解説文一行あたりの全角文字数)-1))
(set,アイテム解説文ループ_文字数カウンタ,(アイテム解説文ループ_文字数カウンタ)+(解説文一行あたりの全角文字数)-1)\n\_l[(文字列開始位置),],
(substr,(アイテム解説文ループ_処理文字列),(アイテム解説文ループ_文字数カウンタ),(解説文一行あたりの全角文字数))
(set,アイテム解説文ループ_文字数カウンタ,(アイテム解説文ループ_文字数カウンタ)+(解説文一行あたりの全角文字数))
)\n\_l[(文字列開始位置),],
(substr,(アイテム解説文ループ_処理文字列),(アイテム解説文ループ_文字数カウンタ))(set,アイテム解説文ループ_文字数カウンタ,(アイテム解説文ループ_文字数カウンタ)+(解説文一行あたりの全角文字数))

@禁則処理対象文字
、。
#改行なしで1文字ずつ

@テストの画像
 
#画像をここに

@テストの解説文
寿限無寿限無。五劫のすり切れ。海砂利水魚の水行末、雲来末、風来末。
食う寝るところに住むところ。やぶら小路のぶら小路。
#文章をここに

17:58:14 @lost_nd_xxx@ukadon.shillest.net
icon

@mizu_yura_27
このようにしてみてはどうでしょうか。
(※\0のバルーン0以外を取得したい場合はこれではうまくいかないです)
~~~~
*計算
\![embed,バルーン調整]

*バルーン調整
$全角表示文字列 (get_property,currentghost.balloon.scope(0).validwidth)
$半角文字の幅 (get_property,currentghost.balloon.scope(0).char_width)
$全角表示可能文字数 (calc,((全角表示文字列)/(半角文字の幅)+1)/2)
$半角表示文字数 (calc,(全角表示文字列)/(半角文字の幅)+1)
【以下、「計算」関数に入っていた内容】

15:35:58 @lost_nd_xxx@ukadon.shillest.net
icon

@kanade_lab お騒がせしました……。

15:35:13 @lost_nd_xxx@ukadon.shillest.net
icon

@yusura 選択肢の冒頭などでマーカー(\![*])を入れる場合、文字の高さよりマーカーの高さの方が大きいバルーンだとスクロールが発生します。ご注意ください。

15:10:21 @lost_nd_xxx@ukadon.shillest.net
icon

弊ブログの記事「バルーンの下端に文字を配置したい(里々)」を改訂しました。
おかげさまでだいぶシュッとしました。
lost-nd-xxx.hateblo.jp/entry/2

Web site image
バルーンの下端に文字を配置したい(里々)
14:49:05 @lost_nd_xxx@ukadon.shillest.net
icon

@nikolat @kanade_lab
さくらスクリプトのembedを使うことでうまくいきました。ありがとうございます。
~~~~
*最下行テスト
\b[2]このあと、最下行に文字を出します。\![embed,カーソル位置を最下行へ_1]うまくいっていますか?

@カーソル位置を最下行へ_1
\_l[0,0]\n[(calc,((get_property,currentghost.balloon.scope(1).lines.initial)-1)*100)]

14:28:34 @lost_nd_xxx@ukadon.shillest.net
icon

@kanade_lab 里々のget_property関数について質問です。
\1のバルーン番号0以外の情報を取得したいのですが、以下のようにしても、\1のバルーン0番の情報が取得されます。
この場合どのようにすればいいでしょうか?
~~~~
*最下行テスト2
\b[2]このあと、最下行に文字を出します。\_l[0,0]\n[(calc,((get_property,currentghost.balloon.scope(1).lines.initial)-1)*100)]うまくいっていますか?