nekodorif - specifications - direct sstp


猫どりふ Direct SSTP仕様書

概要

:::猫どりふは Direct SSTP サーバとしての機能を持ちます。猫どりふはDirectSSTPクライアントと一定のプロトコルで通信を行い、リクエストに従って様々な動作をします。この構造により、他のプログラムから猫どりふを制御することができます。
伺かのSSTP、およびDirect SSTPの仕様を理解の上ご利用ください。

 伺かの関連仕様書 SSTP Direct SSTP

:::猫どりふのDirect SSTP機能は猫どりふで利用するリクエストのみをコンパクトに具備したものです。伺かのすべてのSSTPリクエストが動作するわけではありません。



基礎

:::WM_COPYDATA でデータの受け渡しを行います。詳細は 伺かのそれとまったく同じですので、伺かの仕様書を参照ください。



ウインドウハンドル取得方法

:::filemapping object "Nekodorif" からデータを取得することで確実にウインドウハンドルを取得できます。 メモリオブジェクト仕様書を参照して下さい。



文字コードについて

:::Shift JISのみサポートします。猫どりふはCharsetヘッダを見ていません。



リクエスト

■SEND/1.1

SEND SSTP/1.1
Sender: 先行者
Script: お前をだめにしてやる。\e
HWnd: 1024

[EOD]

SEND/1.1リクエストは猫どりふをしゃべらせるためのリクエストです。
Script ヘッダで送られたデータをそのままスクリプトとして解釈して発言します。さくらスクリプトで記述しますが、ほとんどのさくらスクリプトタグが猫どりふでは使用できないことに注意してください。使えるのは\nと\w?のみです。\eはあってもなくても大丈夫です。

猫どりふ本体がアイコン化されているときは発言は行われず、Invisibleが返ります。


■EXECUTE/1.0

EXECUTE SSTP/1.0
Sender: サンプルプログラム
Command: GetName
HWnd: 1024

[EOD]

EXECUTE/1.0リクエストは現在の猫どりふスキン名を取得するためのリクエストです。
伺かのGetNameとリターンデータのフォーマットをあわせるため、kero名として"empty"を返します。 本リクエストが返す文字列の例を以下に示します。

猫まゆにゃ,empty


■EXECUTE/1.2

EXECUTE SSTP/1.2
Sender: サンプルプログラム
Command: GetVersion
HWnd: 1024

[EOD]

EXECUTE/1.2 は猫どりふ本体のバージョン識別を目的としたリクエストです。
GetVersion を指示すると、以下に示すようなバージョンを識別する文字列が返ります。

Phase 01.15


■EXECUTE/1.0+

EXECUTE SSTP/1.0
Sender: サンプルプログラム
Command: GetObjectList
HWnd: 1024

[EOD]

EXECUTE/1.0+リクエストは、猫どりふ落下物名称の一覧を取得するためのリクエストです。
GetObjectListを指示すると、半角カンマでセパレートされた、現在猫どりふで利用可能な状態にある落下物名称の一覧が返ります。 本リクエストが返す文字列の例を以下に示します。

金だらい,さくら,かえる,love letter


■DROP/1.0

DROP SSTP/1.0
Sender: サンプルプログラム
Target: なる
Object: 金だらい
HWnd: 1024

[EOD]

DROP/1.0は猫どりふに物体落下を指示するリクエストです。
Target、およびObjectヘッダの意味は以下の通りです。

Target 物体を落下させる 伺かゴースト名
Object 落下させる物体の名称

これらのヘッダはすべて必須です。

Targetに指定されたゴーストが起動していない場合や、Objectに指定された落下物が存在しない場合には Bad Request が返ります。

Targetヘッダにはゴースト名のほかに、以下の各値を記述することができます。

%all すべてのゴーストに落下させる
%rnd ターゲットゴーストをランダムに選ぶ

またObjectヘッダには以下の値を指定できます。

%rnd 落下物をランダムに選ぶ

例えば複数起動しているゴーストの誰か一人に何かを落としたい場合は以下のように指定します。

DROP SSTP/1.0
Sender: サンプルプログラム
Target: %rnd
Object: %rnd
HWnd: 1024

[EOD]

猫どりふ本体がアイコン化されているときは物体落下は行われず、Invisibleが返ります。