わいあーど頭痛

「ロスト・エンド・クレイドル」更新情報などのブログ

バルーンの下端に文字を配置したい(里々)

バルーン上の文字の右寄せ・中央揃えはさくらスクリプトが追加されたので楽になったんですが、バルーン下端に文字を配置したいときもありますね。

変更履歴

  • 2023.06.08
    • 解説と使用方法とで項目を分割
    • get_property関数を使用する書き方について、使用するプロパティをcurrentghost.balloon.scope(ID).lines.initialからcurrentghost.balloon.scope(ID).validheight.initialへ変更
      • それに応じて関数の内容を変更(呼び出し方に変化はありません)
  • 2023.05.28
  • 2022.05.26
    • プロパティ利用例での改行方法を\n\n\nみたいにずらずらするものから\n[数字]へ変更
  • 2022.05.21
    • 「@バルーン最大行数取得」にウェイトを噛ませました(実行順序が保たれてほしいという祈り)
  • 2022.05.17
    • 公開開始

注意事項

コード

使用方法

  1. 「@カーソル位置を最下行へ」を辞書のどこかに入れる
  2. 「関数呼び出し」のタグを最下端へ配置したい文字の直前に入れる

関数呼び出しのタグの番号は適宜書き換えてください。
1人目(さくら側)なら0、2人目(うにゅう側)なら1、
それ以降は2、3~のようになります。

バルーンの番号指定や文字サイズ変更などは、関数呼び出しより前に行ってください。

関数本体

プロパティ取得部
@カーソル位置を最下行へ
\_l[0,(get_property,currentghost.balloon.scope((R0)).validheight.initial)]\_l[0,@-1em]
関数呼び出し
\![embed,カーソル位置を最下行へ,【スコープ番号】]

使用例

*最下行テスト
:普通の位置の文字です。\![embed,カーソル位置を最下行へ,0]最下行の文字です。
:\b[2]2人目のバルーン番号2です。\nバルーンの番号指定や文字サイズ変更などは、関数呼び出しより前に行ってください。\f[height,20]\![embed,カーソル位置を最下行へ,1]大きな最下行の文字です。
\p[2]3人目のバルーンです。\![embed,カーソル位置を最下行へ,2]関数呼び出し以降に改行などがあると、\nスクロールが発生します。

解説

「\_l[横の位置,縦の位置]」でバルーン左下(文字を含まない位置)へカーソルを移動させ、「\_l[0,@-1em]」でそこから1行ぶんだけ上方向に(行間を含めず)カーソルを戻しています。


以下に当てはまる場合、スクロールが発生します。

  • 関数呼び出し以降に改行がある
  • 関数呼び出し以降に、関数呼び出し時の文字サイズを超える高さのものが行内へ配置された
    • 一部のバルーンのマーカー(\![*])やインライン画像貼り付け(\_b[画像パス,inline])など

「\![set,autoscroll,disable]」で、バルーンの自動スクロールを停止させることもできます(手動でのスクロールは可能です)。

get_property関数を使用しない版のコード

起動時

起動時に必ず読み上げてください。里々Wikiのイベントまとめ情報

*起動
:(バルーン最大行数取得)(起動時の反応)

バルーン変更時

*OnBalloonChange
(バルーン最大行数取得)

プロパティ取得本体

「現在のバルーンの」なので、0番以外のバルーンの情報を取得したい場合は都度、指定が必要です。

@バルーン最大行数取得
\1\__w[1]\b[2]\![get,property,OnGetCurrentBalloonlines1_2,currentghost.balloon.scope(1).lines.initial]\b[0]\__w[1]\![get,property,OnGetCurrentBalloonlines1_0,currentghost.balloon.scope(1).lines.initial]\0\b[2]\__w[1]\![get,property,OnGetCurrentBalloonlines0_2,currentghost.balloon.scope(0).lines.initial]\b[0]\__w[1]\![get,property,OnGetCurrentBalloonlines0_0,currentghost.balloon.scope(0).lines.initial]
*OnGetCurrentBalloonlines0_0
$バルーン最大行数0_0	(R0)
*OnGetCurrentBalloonlines0_2
$バルーン最大行数0_2	(R0)
*OnGetCurrentBalloonlines1_0
$バルーン最大行数1_0	(R0)
*OnGetCurrentBalloonlines1_2
$バルーン最大行数1_2	(R0)

プロパティ利用例

*
:\_q\![*]\q[hogehoge,hugahuga]\_l[0,0]\n[(calc,(calc,(バルーン最大行数0_0)-1)*100)]\![*]\q[閉じる,script:\e]\_q


*メニュー2
:\_q\b[2]\![*]\q[hogehoge,hugahuga]\_l[0,0]\n[(calc,(calc,(バルーン最大行数0_2)-1)*100)]\![*]\q[閉じる,script:\e]\_q