Sendで送信側のターゲットを受信側に渡す[FF11]

f:id:yyoshisaur:20190323160204p:plain

Windowerアドオンの「Send」がアップデートされ、便利そうな機能が追加されていました。

「Send」は同一PC内の別クライアントのキャラクターに対して、コマンドを送受信するアドオンです。
新しく追加された機能では、送信側でターゲットしたキャラクターやモブのIDを送信する専用の代名詞を指定できるようになりました。


例えば、キャラクターBに対してキャラクターAで以下のコマンドを実行した場合、代名詞<me>は送信側のAではなく、受信側のBで展開されます。
よって、<me>はAではなく、Bを指し、ケアルはBに対して実行されます。

//send B /magic ケアル <me>

送信側のAに対して実行させたい場合は、キャラクター名を直接指定するか、<p1>のような代名詞を使用していました。

新しく追加された代名詞<meid>を使用すると、Aに対してケアルが実行されます。

//send B /magic ケアル <meid>

その他、送信側でターゲットしている対象のIDを送信する<tid>や<st>と組み合わせて、送信側のサブターゲットを指定する<laststid>など色々な代名詞が使用できるようです。
※この機能を使用するためには受信側にGearSwapがロードされている必要があります。
(GearSwapユーザースクリプトのロードが必要)

詳しくは、「Send」のReadmeを。
Lua/addons/send at live · Windower/Lua · GitHub

仕組み

代名詞<**id>はSendの送信側で**の部分(<meid>の場合、me)が指すターゲットのIDを取得して、送信時に代名詞をIDに置き換えています。
受信側では以下のようなコマンドが受け取られます。

/magic ケアル 123456 (<meid>の場合、送信側A自身のID)

通常ではコマンドのターゲット部分にIDを指定することはできません。
しかし、GearSwapがロードされている場合はターゲット部分にIDを指定しても動作するようになります。
(GearSwapにこのような機能があることは知りませんでした。確かにGearSwap/targets.luaのvalid_targetをみるとターゲットにIDの指定を許容しているようです。)

このため、ターゲット部分にIDを指定しても動作するような機能を持ったアドオン(GearSwap)を受信側にロードさせておく必要があるようです。