【伺か】面倒なことはSAORIにさせよう!ネタSAORI3連発!!

ukagaka

この記事は

伺か アドベントカレンダー の13日目の記事です。
伺か Advent Calendar 2023 – Adventar

前日はnetai98氏です。
クリスマスの珍客 – Telegraph

予告の嘘と本当

  • 『カツオとアダルトサイトの架空請求』
  • 『ノリスケ訪問録』
  • 『今夜は新月、波平は満月』

上記に変わりまして、

  • 『嫌ゴ作者御用達! ブラクラの友、警告ウィンドウ!』
  • 『ユーザさんっていつもこの時間に来てくれるよね。』
  • 『今日はお月見日和、貴方の横顔は美しい!!』

の三本でお送りします。

初めに

実装方法や簡単な使用方法はすべてGitHub側に書かせてもらっているので、
里々側の実装や使い方のチェックをしていきます。
ポエムを交えつつ、馬鹿な話がしたかったのですが、3本まとめて書くと意外と文字量が増えてしまったので、大幅にカットされました。

嫌ゴ作者御用達! ブラクラの友、警告ウィンドウ!

こんな感じのウィンドウをゴーストから出せるようになるSAORIです。
ウィンドウで表示されるボタンの選択によって、返り値が変わります。
kaigyouと書くとウィンドウ側で改行されます。
このウィンドウはWindows11で出しています。
dummywindow.png

(DummyWindow,アドカレ12/13の記事だよ,テキストは自由にできるよ.kaigyou複数行も入力できるよ.kaigyouたくさん悪いことしようね.kaigyou責任は取らないよ.,0,0)

使い方

GitHub – ambergon/ukagakaSaori_DummyWindow

ダウンロード

Releases · ambergon/ukagakaSaori_DummyWindow · GitHub

細かい事

SAORIはバルーンに表示する前に処理される為バルーンが出る前にウィンドウが出てしまいます。
下記のように連続で呼ぶと、ウィンドウ一枚目 -> 2枚目 -> 3枚目 -> サクラスクリプトとなります。
SAORIの処理の都合で、単純に呼び出した場合はそれぞれのウィンドウを消すまで処理が止まります。

(DummyWindow,ウィンドウ名,テキスト,0,0)
(DummyWindow,ウィンドウ名,テキスト,0,0)
(DummyWindow,ウィンドウ名,テキスト,0,0)
サクラスクリプト

非同期で処理もできる。

なんでもよいので5つ目の引数を渡すと処理を止めずに実行できます。
ただし、非同期で実行した場合は返り値が拾えなくなるので、どのボタンが押されたかの判定が出来なくなります。
また、sync関数を経由することで、サクラスクリプトの表示タイミングでウィンドウを出せます。
下記はWin10環境での表示です。
dummywindowa.png

(sync,DummyWindow,ウィンドウ名,テキスト,0,0,0)
(sync,DummyWindow,ウィンドウ名,テキスト,0,0,0)
(sync,DummyWindow,ウィンドウ名,テキスト,0,0,0)

変更できる箇所

下記の項目を変更できます。

  • ウィンドウ名
  • 本文
  • アイコン
  • 選択肢

詳細はReadMe.mdを確認してね。

注意点

くれぐれも悪用するんじゃないぞ!

ユーザさんっていつもこの時間に来てくれるよね。

SAORI二発目。
汎用的な使い方のできるSAORIです。
与えられた24個までの引数のうち、一番大きな数字の引数番号とその数を返します。(0番からカウント)
里々でそのまま書くことも出来るでしょうが、僕がしたくなかった為作成されました。
同じ数字の場合は先に出た方が優先されます。

サンプルコードでは、SAORIの呼び出し名をWhenYouBack関数として登録しています。

使い方

導入等はこっち。
GitHub – ambergon/ukagakaSaori_WhenYouBack

ダウンロード

Releases · ambergon/ukagakaSaori_WhenYouBack · GitHub

サンプルスクリプト

このスクリプトでは、起動した時間を各変数に記録します。
例えば22時に起動された回数N回
例えば23時に起動された回数N回…となります。
これらをまとめてSAORIに投げることで、最も起動された時間を調べることができます。
コピペして使ってくださって大丈夫です。

# 計測関数を起動イベントに挟んでおく。
*OnBoot
(BootHourCount)
:おはよう~

*OnGhostChanged
(BootHourCount)
:交代~

*OnGhostCalled
(BootHourCount)
:呼ばれて飛び出て~


# こんなトーク以外でお願いします!かわいいやつ!!
*OnKeyPress
:
(WhenYouBack,(0時起動回数),(1時起動回数),(2時起動回数),(3時起動回数),(4時起動回数),(5時起動回数),(6時起動回数),(7時起動回数),(8時起動回数),(9時起動回数),(10時起動回数),(11時起動回数),(12時起動回数),(13時起動回数),(14時起動回数),(15時起動回数),(16時起動回数),(17時起動回数),(18時起動回数),(19時起動回数),(20時起動回数),(21時起動回数),(22時起動回数),(23時起動回数))
一番大きい引数の箇所:(S0)
一番大きい引数の中身:(S1)
あんちゃんいつも(S0)時頃にここ通るな。しごとけ?
どや? めんこいゴーストがたくさんおるところを知っとるんやぁ・・
寄っていかへんか?



## 現在の時刻に合わせてカウントを増やす。-------------------------
## 無ければ初期化する。
@BootHourCount
(
when,(変数「0時起動回数」の存在)==0,(set,0時起動回数,0)
)(
when,(変数「1時起動回数」の存在)==0,(set,1時起動回数,0)
)(
when,(変数「2時起動回数」の存在)==0,(set,2時起動回数,0)
)(
when,(変数「3時起動回数」の存在)==0,(set,3時起動回数,0)
)(
when,(変数「4時起動回数」の存在)==0,(set,4時起動回数,0)
)(
when,(変数「5時起動回数」の存在)==0,(set,5時起動回数,0)
)(
when,(変数「6時起動回数」の存在)==0,(set,6時起動回数,0)
)(
when,(変数「7時起動回数」の存在)==0,(set,7時起動回数,0)
)(
when,(変数「8時起動回数」の存在)==0,(set,8時起動回数,0)
)(
when,(変数「9時起動回数」の存在)==0,(set,9時起動回数,0)
)(
when,(変数「10時起動回数」の存在)==0,(set,10時起動回数,0)
)(
when,(変数「11時起動回数」の存在)==0,(set,11時起動回数,0)
)(
when,(変数「12時起動回数」の存在)==0,(set,12時起動回数,0)
)(
when,(変数「13時起動回数」の存在)==0,(set,13時起動回数,0)
)(
when,(変数「14時起動回数」の存在)==0,(set,14時起動回数,0)
)(
when,(変数「15時起動回数」の存在)==0,(set,15時起動回数,0)
)(
when,(変数「16時起動回数」の存在)==0,(set,16時起動回数,0)
)(
when,(変数「17時起動回数」の存在)==0,(set,17時起動回数,0)
)(
when,(変数「18時起動回数」の存在)==0,(set,18時起動回数,0)
)(
when,(変数「19時起動回数」の存在)==0,(set,19時起動回数,0)
)(
when,(変数「20時起動回数」の存在)==0,(set,20時起動回数,0)
)(
when,(変数「21時起動回数」の存在)==0,(set,21時起動回数,0)
)(
when,(変数「22時起動回数」の存在)==0,(set,22時起動回数,0)
)(
when,(変数「23時起動回数」の存在)==0,(set,23時起動回数,0)
)(
when,(現在時)==0,(set,0時起動回数,(0時起動回数)+1)
)(
when,(現在時)==1,(set,1時起動回数,(1時起動回数)+1)
)(
when,(現在時)==2,(set,2時起動回数,(2時起動回数)+1)
)(
when,(現在時)==3,(set,3時起動回数,(3時起動回数)+1)
)(
when,(現在時)==4,(set,4時起動回数,(4時起動回数)+1)
)(
when,(現在時)==5,(set,5時起動回数,(5時起動回数)+1)
)(
when,(現在時)==6,(set,6時起動回数,(6時起動回数)+1)
)(
when,(現在時)==7,(set,7時起動回数,(7時起動回数)+1)
)(
when,(現在時)==8,(set,8時起動回数,(8時起動回数)+1)
)(
when,(現在時)==9,(set,9時起動回数,(9時起動回数)+1)
)(
when,(現在時)==10,(set,10時起動回数,(10時起動回数)+1)
)(
when,(現在時)==11,(set,11時起動回数,(11時起動回数)+1)
)(
when,(現在時)==12,(set,12時起動回数,(12時起動回数)+1)
)(
when,(現在時)==13,(set,13時起動回数,(13時起動回数)+1)
)(
when,(現在時)==14,(set,14時起動回数,(14時起動回数)+1)
)(
when,(現在時)==15,(set,15時起動回数,(15時起動回数)+1)
)(
when,(現在時)==16,(set,16時起動回数,(16時起動回数)+1)
)(
when,(現在時)==17,(set,17時起動回数,(17時起動回数)+1)
)(
when,(現在時)==18,(set,18時起動回数,(18時起動回数)+1)
)(
when,(現在時)==19,(set,19時起動回数,(19時起動回数)+1)
)(
when,(現在時)==20,(set,20時起動回数,(20時起動回数)+1)
)(
when,(現在時)==21,(set,21時起動回数,(21時起動回数)+1)
)(
when,(現在時)==22,(set,22時起動回数,(22時起動回数)+1)
)(
when,(現在時)==23,(set,23時起動回数,(23時起動回数)+1)
)

小言

これを作った時は【伺か】ココがわからなかったよ!里々君! — 異風堂々を書く前だったのもあり、SAORIを作りました。
起動時よりも終了時をカウントして、そろそろ終了しちゃう(可能性が高い)とゴーストが感づくトークの方が面白いかもしれませんね。

今日はお月見日和、貴方の横顔は美しい!!

SAORI三発目。
今日の月齢・指定した日の月齢をざっくり取得できるSAORIです。

2038年問題の対策はしていないのでそのうち作り直すかもしれません。
また、月齢の計算は正確なモノではありません。ReadMeをお読みください。

ちょうどこの記事が公開される日が新月なのでそれを基準にして計算しています。

使い方

GitHub – ambergon/ukagakaSaori_MoonAge

ダウンロード

Releases · ambergon/ukagakaSaori_MoonAge · GitHub

月齢カレンダー(外部リンク)

SAORIのチェックに参考にさせてもらいました。
満月カレンダー

サンプル

新月、および月がほとんどない夜のみトークを変えるサンプルスクリプト。
月齢計算の誤差も込みで遊べるようにしてみました。

*OnKeyPress
# 新月用テスト
#(MoonAge,2023,12,13,0,0,0)
(MoonAge)
>BlackNight (S0)<=2||26<=(S0)
:いいですか、ユーザ。よくお聞きなさい。
貴方は賢い子だから、きっともう気付いているかもしれません。
月のない夜、月明りの薄い夜はここに来てはいけません。
いいですね、ユーザ。
(S0)


*BlackNight
:ああ、来てしまったのですね。ユーザ。
あんなにイッタのニィ...
(S0)

みたいなのが好きなんですけど知ってたら紹介してください。(お願い)

最後に

ただ作りたかったから作った!!!!
満足した!!

明日12/14は、しもふみ氏が書いてくださります。