Month: March 2021

ゴーストの好感度の取得

 - by Don

これを見て思いついた実装がこんなイメージ。

最初はプラグインで作ろうとしたのですが色々と障壁が多すぎて断念しました。素直にOnRequestValues/OnGetValuesを使ってごーすとじてんのデータ収集機能に含めることにしました。こういうメタ情報を扱うならこのゴーストに"似合う"だろうし。

双方向でないのはバルーンに右寄せして重ねるのが大変だったからという理由でしかありません。

以下、今回取得対象としたプロパティ名です。(※里々での対応)

#-----------------------------------------------------------
# OnRequestValues対応
#-----------------------------------------------------------
@OnRequestValues
\![raiseother,(R0),OnGetValues,(FMO0name)(loop,AddRVArg,1,(Rの数))]
@AddRVArg
(call(バイト値,1)AddRVArgExist_(単語群「(R(AddRVArgカウンタ))」の存在)(バイト値,1)(R(AddRVArgカウンタ)))
@AddRVArgExist_1
,(A0)=((A0))
#-----------------------------------------------------------
# 好感度プロパティ
# 存在しない場合は無くて良い
#-----------------------------------------------------------
#\0の\1に対する好感度 0~10までの値にしておくとバルーン内に収まるハズ
@01好感度
1
#\0の\2に対する好感度
@02好感度
2
#\0のuserに対する好感度
@0user好感度
3
#以下同様
@10好感度
4
@12好感度
5
@1user好感度
6
@20好感度
7
@21好感度
8
@2user好感度
9
#好感度を表示する際にバルーンに表示する\0のアイコンの絶対パスまたは相対パス
#相対パスは送信先から見たものなので上の階層に上がってから降りてくる
#大きさはバルーンサイズ的に30pxくらいが丁度いいと思う
@0好感度アイコン画像パス
..\..\..\your-ghost-directory\ghost\master\image\ca0.png
@1好感度アイコン画像パス
..\..\..\your-ghost-directory\ghost\master\image\ca1.png
@2好感度アイコン画像パス
..\..\..\your-ghost-directory\ghost\master\image\ca2.png
@user好感度アイコン画像パス
..\..\..\your-ghost-directory\ghost\master\image\causer.png
#特殊プロパティ
#通常">"のところを別のマークに変える 以下はハートマークのUnicode
@0user好感度マーク
\_u[0x2665]

ごーすとじてんの各ゴーストページ上部プロフィールボタン「P」の左に新しく追加した「C」ボタンから確認できます。

うかてんにイベント通知とゴーストから利用できる関数を追加

 - by Don

天気予報プラグイン「うかてん」を更新しました。

  • ゴーストへのイベント通知追加
  • ゴーストから利用できる関数追加

ゴーストへのイベント通知追加

プラグイン実行時にGhost側に通知されるイベントは以下の通りです。

ID: OnPluginExec
Reference0: バージョン (例:"Version=ukaten/0.3")
Reference1: 送信元     (例:"From=うかてん")
Reference2: Script     (例:"Script=\0\s[0]Hello, world!\e")
Reference3: イベント名 (例:"Event=OnChoiceSelectEx")
Reference*: Reference3のイベントに対応するReference。
            Reference3とそれ以降を、SHIORIイベントそのもののように使う。

選択肢などPlugin内部で定義したReferenceもそのまま通知されています。拙作の「ついっとゅう」と互換仕様で、内部の情報をただ垂れ流しているだけです。

ゴーストから利用できる関数追加

こっちが本題。今回は3つの関数を追加しました。

OnGetPluginVersion

プラグインのバージョンを取得
[戻り値]
Reference0: プラグインのバージョン("ukaten/0.3"等)

使用例

*うかてんのバージョン確認
:\![raiseplugin,うかてん,OnGetPluginVersion]

*OnGetPluginVersion
:(R0)

OnGetSavedArea

ユーザが設定した地域のIDと表示名を取得
[戻り値]
Reference0: 地域ID(東京都の場合は"130000")
Reference1: 地域名("東京都"等)

使用例

*ストーキング開始
:\![raiseplugin,うかてん,OnGetSavedArea]

*OnGetSavedArea
$ユーザの住むところ【タブ】(R1)
:(ユーザ名)さん…。
私、来月(ユーザの住むところ)に引っ越すんだ…。
これからは毎日会えるね…。フフフ…。

OnGetWeatherInfo

気象庁から天気予報を取得(※利用時は出典が気象庁である旨を明示してください。)
[引数]
Reference0: 取得情報の種類("forecast","overview_forecast","overview_week")
            省略時は"overview_forecast"
Reference1: 地域ID(東京都の場合は"130000")
            省略時は保存しているユーザ設定値を使用
Reference2: 取得情報のキー("publishingOffice","reportDatetime","targetArea","headlineText","text"等)
            省略時は"text"
[戻り値]
Reference0: 取得情報

使用例

*天気予報開始
:\![raiseplugin,うかてん,OnGetWeatherInfo]

*OnGetWeatherInfo
:(ユーザ名)、天気予報だよっ!

『(R0)』

って気象庁ホームページに書いてあったよ!

\![raiseplugin,うかてん,OnGetWeatherInfo,overview_week]とすると週間天気予報になったり、\![raiseplugin,うかてん,OnGetWeatherInfo,,,headlineText]とすると短く要約したテキストになったりします。(気象庁側で準備されていなかったりする地域もあり、その場合は空文字になります)