ブリザードの中心でgimme shield!を叫ぶ。Season 2

MMORPG "World of Warcraft" Proundmooreサーバーで跋扈するMageのプレイ日記

初めての自作Add-on「NotifyTarget」

2005-09-06 06:23:00 | UI
/sayマクロでは、ターゲットの名前しか出す事ができませんが、Luaスクリプト(/scriptで呼ぶ)なら、ゲーム内のほとんどの情報を引っ張って来れます。
先日のsheep macroでは、mobのレベルを引っ張ってきていたのですが、これに結構需要があったので、調子に乗ってAdd Onを作ってみました。
Sheep Macroでつけたくても文字制限のためにつけられなかった機能を追加したり、どんなclassでも現在使用しているsay macroをちょっと修正するだけで、このadd-onの機能を使えるようにしたかったので、GUIを持たないMacro機能拡張という形にしました。

テストバージョンのダウンロードはこちら
名前は機能そのままの「NotifyTarget」です。

ざっくりと機能だけを紹介しておきます。

機能:
「/say %t」よりも詳細な情報を、グループの所属状況に応じたチャットに投げるためのスラッシュコマンド /nt(/notifytargetも利用可能)を追加する。
#機能の特性上、/ntはターゲットがない状況、あるいはソロの状況では何もチャットに投げません。ターゲットしなくてもいい状況では、/sayをそのままつかってください。

使い方:
マクロ内で「/say (いいたいこと)%t」の代わりに使う。
何かをターゲットした状態で、チャット入力欄に/nt (いいたいこと)を入力する。(人様を名指しでおちょくるのに最適です(笑))

マクロ例:
/nt Sheeping! ('-'@3 >>
/cast Polymorph(Rank 4)

実行結果:
ターゲットが男か女で、NPCかPvP状態のPCの場合、「Sheeping! ('-'@3 >> Lv.(ターゲットのレベル) (ターゲットの名前) [(ターゲットの性別)] 」
ターゲットがPvP状態ではないPCか、性別不明のNPCの場合 、「Sheeping! ('-'@3 >> Lv.(ターゲットのレベル) (ターゲットの名前) 」
ターゲットがPvPフラグの立った状態のPCの場合、「Sheeping! ('-'@3 >> Lv.(ターゲットのレベル) (ターゲットの名前) [(ターゲットの種族)-(ターゲットのクラス)-(ターゲットの性別)] 」

を、

パーティを組んでいる場合はpartyチャットに、
Raidグループを組んでいる場合はraidチャットに投げます。
ソロの場合は何もしません。
また、spellをキャストしている最中にこの機能を呼んでも何もしません。(あせってキーを連打することによる、say macro spamの防止)

9/6追記:
ita3からいただいた要望を元に、メッセージのカスタマイズができるようにしました。
デフォルトの出力文字列も多少変更しました。

メッセージの中に、%n,%l,%r,%s,%c,%tを入れると、それらは下記の内容に変換されます。
%n ターゲットの名前
%l ターゲットのレベル
%r ターゲットの種族(近くにいるPCのみ)
%s ターゲットの性別
%c ターゲットのクラス(近くにいるPCのみ)

マクロ例:
/nt %n ha chissai %r no %s nanoni %c, shikamo lv.%l nanode meccha ganjou.

結果:
Exxxx ha chissai Gnome no Female nanoni Warrior, shikamo lv.60 nanode meccha ganjou.


%t デフォルトの情報(上記サンプルと同じ)
%tを使用した場合、他のものは変換されません。
/nt

/nt %t
は、同じ結果になります。
%tを使う事で、デフォルトの情報の前だけでなく後にも、好きな文をつけることができます。
%n,%l,%r,%s,%cを組み合わせる事で、同じようなことができますが、
%tはターゲットの種類に応じて出力する内容が自動的に切り替わるのに対して、
%n,%l,%r,%s,%cの組み合わせではそれができないところが違いです。

マクロ例:
/nt Sap! >> %t << 45sec

結果(ElenoreがPvP状態の時):
Sap! >> Lv.60 Elenore [Human-Mage-Female] << 45sec

結果(ElenoreがPvP状態ではない時):
Sap! >> Lv.60 Elenore << 45sec

とてもシンプルですが、利用法はいろいろあると思います。
とりあえず、Curse Gamingの方にはsubmit依頼をしてありますので、公開されたらこちらでもダウンロード先をご紹介します。
気に入ってもらえると幸いです

最新の画像もっと見る

3 コメント

コメント日が  古い順  |   新しい順
早くも要望 (Ita)
2005-09-06 10:17:39
さて、公開前から注文をつけておこう。(´Д`*



◇名前以外のLv・性別・クラス等の追加情報だけど、

 必ず表示する仕様ではなく、使用者が必要なものを選べるようにしたらどうでしょう。

 設定用ウインドウを開いたら、どの情報を流すかチェックボックスがある感じで。

 追加情報はいらなくて、グループ状態でのメッセージ投げ分けだけしたい人とかにいいと思う。



◇情報の挿入は、必ず最後になるのかな?

 メッセージの途中に挟み込みたい場合はどうすればいいんだろ。



 %nt みたいな記述を代入するようには、できないかなー。

 文の最後に入れるには、

  /nt (いいたいこと)%nt

 文の途中に入れるには、

  /nt (いいたいこと1)%nt(いいたいこと2)

 みたいな感じで。
返信する
どっちでもできますよ (Elenore)
2005-09-06 13:06:29
どちらもできます。

最初のリリースではうまく動くかも不明だったので(笑)、各種設定できる機能は実装を見送りました。



前者は、単純にGUIの利用がまだできないので(笑)、今回はパスです。ただ、GUIでの設定より、後者の%ntのような代替文字列を複数つくって、状況に応じて投げる内容を決められる方がいいかもしれません。



後者は、すぐにできるのですが、戦闘中でも無理なく使えるものにしたかったので、%ntにあたる文字列を入力させる必要をつくりたくなかったのです。

でも今考えたら、現在の仕様(%ntは入れなくていい)とita3推奨仕様の両立はできそうなので、そうしてみたいと思います。

#スラッシュコマンドは引数を一つしか持てないので、文字列を分割して処理する必要があります。なので、これをやるには正規表現の実装状況と文字列分割のための関数を調べないといけません。でもドキュメントは余裕で全部英語なので(笑)、まずはそれを解読せねばなりません。もうちょっと待ってくださいね。



方向としては、空気のように存在を感じないもの、かつ利用に当たって考える必要のないものにしたかったので、設定項目の追加をするとしても、デフォルトでの使用感は今のままになると思います。
返信する
いい感じ (Ita)
2005-09-06 21:20:17
メンテ直前にファイルを送ってもらって試した訳ですが、

いいねーこれ。

メッセージマクロがかなり組みやすくなりそー。

>空気のように存在を感じないもの、かつ利用に当たって考える必要のないもの

って感じに、まさに仕上がってると思います。





で、第2弾Addonもよろしく!

世界のHuntersがあなたを待ってますよ!!
返信する