http://fsgizm.cocolog-nifty.com/blog/2006/05/post_c349.html
http://blog.livedoor.jp/dameda1/archives/50499010.html
http://nh.pv.to/test/read.cgi/unyu/1096293147/14-18
これ、きちんとやろうとすると多分面倒で。
そのうち http://emily.nanika.jp/specwiki/?GhostHowTo に書こうと思って、
エントリだけ作っていたのですが、とりあえず私の知ってることをメモ書きしておきます。
間違いとかあったら教えてください。
otherghostname
- SHIORIレベルでは、 otherghostname というイベントで、同時起動しているゴーストが本体から通知される
- 但し、otherghostname が通知されるタイミングは、実際のゴーストの起動/終了と必ずしも同時ではない
- otherghostname の元ネタになっているのは(恐らく)FMOである
- FMOは、色々な「本体」が更新をかけたりするので、他の本体でゴーストの起動/終了があると、otherghostnameの通知は遅れることがある
- その理由については http://emily.nanika.jp/specwiki/?SSP%2F%BB%C5%CD%CD%BD%F1%2FFMO 参照
- SAKURA_API_BROADCAST_GHOSTCHANGE を行わない本体が居れば、恐らく otherghostname の通知は遅れるか行われないだろう
結論として
- つまり、どんな環境でも確実に「いまその瞬間に立っているゴースト」を取得したい場合、多分、FMOを読むしかない(里々は多分そうしてる)
- 但し、SSPの「起動していない〜」のゴースト、およびS-VやSSSBのゴーストを除外する必要がある(里々は多分これを考慮してない)
- SSPの「起動していない〜」のゴーストのエントリは、先頭が "ssp_fmo_header_dummyentry"
- S-Vのゴーストは、先頭が "SSTPVIEWER-"
- SSSBのゴーストは、先頭が "SSSB"
- オマケ:CROWのゴーストは、先頭が"crow_fmo_id"
- オマケ:DAEのゴーストは、先頭が "dae_fmo_header"
実装
- 里々の(○○の存在)等の変数はFMOから取っているようです
- AYAの場合、ghostexlist 変数で取得できるが、更新は otherghostname によって行われている
- それぞれの本体で、otherghostnameがどのように実装されてるかは未調査
…なんでこんな事を知っているかというと、Handは必要に迫られて上記のような「FMOを読んで要らないエントリを除外」ロジックを実装しているからなのですが。
ついで
http://teacup.paslog.jp/article/346991.html
surfaceが取得できない!という話について