/ACT.SpecialSpellTimer

ACTのFFXIV向けプラグイン 見た目を改善したスペルタイマーを提供します

Primary LanguageC#BSD 3-Clause "New" or "Revised" LicenseBSD-3-Clause

ACT.SpecialSpellTimer

概要

見やすさを改善した特別なスペルタイマーを提供します。
愛称は「スペスペ」

sample

使い方

1. 準備

.NET Framework 4.7 をインストールします。
※スペスペの動作には. NET Framework 4.7 以降が必要です。

2. インストール

resources
tools
FFXIV.Framework.Dialog.exe
ACT.SpecialSpellTimer.Core.dll
ACT.SpecialSpellTimer.dll
FFXIV.Framework.Dialog.Wrapper.dll
FFXIV.Framework.dll
FirstFloor.ModernUI.dll
NLog.dll
Prism.dll

をACTのインストールディレクトリにコピーします

(配置の例)
deploy_sample
その後、プラグインとしてACT.SpecialSpellTimer.dllを追加してください

DoTなどの設定方法が分からない

こちら に高度な設定例を示します。
正規表現をフル活用することになりますので各正規表現の意味を理解して使用してください。

そもそも正規表現が分からない

基本的には分からなくてよいです。正規表現とは専らプログラマなどがテキストを効率よく検索するときに使用する高度な検索キーワードで、開発用のエディタ内やプログラムの内部に埋め込んで使います。
よって一般の方には使いこなすのは難しいです。分からない場合は通常のキーワードマッチングの範囲内で使用するのがベターです。

どうしても正規表現を使いたい

下記で学習できます。

  • 正規表現とは?
    正規表現 - Wikipedia
    ざっくり説明すると * などのワイルドカードをより強力にしたものです。C#等のプログラミング言語とは独立して体系化されているため、C#, JavaScript, PHP, Bash など言語を問わず使用できます。

  • 正規表現のリファレンス
    正規表現の構文 - MSDN
    正規表現言語 クイックリファレンス - MSDN
    マイクロソフトの開発者向け情報(MSDN - Microsoft Developer Network)の正規表現のページです。分かりやすくまとまっているため学習には最適です。

  • 正規表現のテスト
    正規表現を書いていきなりゲームのログとマッチさせようとしてもうまくいかないでしょう。またマッチしない原因を探ることも出来ないでしょう。正規表現を書いたらチェックツール等を使用して正規表現をテストしましょう。
    正規表現テストツール - DOBON.NET
    まずはスペスペでログを収集します。ヒットさせたいログが出力されていることを確認し、そのテキストを対象にして自分の書いた正規表現を前述のテストツールでテストします。これが基本です。
    仮にプログラマだったとしても複雑な文字列に対してはテストしながらパターンを作ります。よって誰かに質問する場合も検査したいテキストを添えて「このテキストに対してこのパターンで正規表現を設定したがマッチしない」と質問するとよいでしょう。

ゲーム内のプレースホルダは使えないの?

一部は使えるように対応しています

<me> 使えます。
ただし、イニシャルにはマッチしません。
<2>~<8> 使えます。
ただし、イニシャルにはマッチしません。
オプションにてパーティメンバ代名詞をONにしてください。
<mex> <me>の拡張版です。フルネーム、イニシャルを問わずプレイヤーにマッチします。
正規表現をONにしてください。

ex. プレイヤーが Naoki Yoshida の例
(?<_mex>Naoki Yoshida|Naoki Y\.|N\. Yoshida|N\. Y\.)
に置換わってマッチングされます。
<2ex>~<8ex> <2>~<8>の拡張版です。フルネーム、イニシャルを問わずプレイヤーにマッチします。
正規表現とパーティメンバ代名詞の両方をONにしてください。

ex. パーティリストの2番目が Naoki Yoshida の例
(?<_2ex>Naoki Yoshida|Naoki Y\.|N\. Yoshida|N\. Y\.)
に置換わってマッチングされます。
<t> 負荷が高いため搭載できません
<tt> 負荷が高いため搭載できません
<ft> 負荷が高いため搭載できません
<petid> FF14が内部のオブジェクトに割当てている一意なIDに置換されます
このIDによってACTが生成している詳細なログにマッチさせると自分のペットだけを識別出来ます
<JOB>, <JOBn> パーティ内の特定のジョブの誰か、または特定のジョブのn番目のメンバーにマッチします。
フルネーム、イニシャルを問わずマッチします。
正規表現とパーティメンバ代名詞の両方をONにしてください。

ex. パーティメンバーが下記のとき・・・
Taro Paradin (ナイト)
Jiro Paradin (ナイト)

<PLD1> → Taro Paradin にマッチする
<PLD2> → Jiro Paradin にマッチする
<PLD> → Taro Paradin または Jiro Paradin にマッチする

<PLD1> は正規表現の (?<_PLD1>Taro Paladin|Taro P\.|~省略) に置換わってマッチングされます。
<PLD> は正規表現の (?<_PLD>Taro Paladin|Jiro Paladin|~省略) に置換わってマッチングされます。

<ROLE>, <ROLEn> パーティ内の特定のロールの誰かにマッチします。
フルネーム、イニシャルを問わずマッチします。
正規表現とパーティメンバ代名詞の両方をONにしてください。

ex. パーティメンバーが下記のとき・・・
Taro Yamada (ナイト)
Jiro Sato (戦士)
Sabro Suzuki (白魔道士)
Shiro Honda (学者)
Goro Toyota (モンク)
Rokuro Nissan (竜騎士)
Shichiro Mazda (吟遊詩人)
Hachiro Mitsuoka (黒魔道士)

<TANK> → Taro Yamada または Jiro Sato にマッチする
<TANK1> → 1番目のTANKである Taro Yamada にマッチする
<HEALER> → Sabro Suzuki または Sabro Suzuki にマッチする
<DPS> → Goro Toyota または Rokuro Nissan または Shichiro Mazda または Hachiro Mitsuoka にマッチする
<MELEE> → Goro Toyota または Rokuro Nissan にマッチする
<RANGE> → Shichiro Mazda にマッチする
<MAGIC> → Hachiro Mitsuoka にマッチする

<TANK> は正規表現の (?<_TANK>Taro Yamada|Jiro Sato) に置換わってマッチングされます。
<TANK1> は正規表現の (?<_TANK1>Taro Yamada) に置換わってマッチングされます。
ex.
<TANK> → (?<_TANK>Taro Yamada|Jiro Sato)
<TANK1> → (?<_TANK>Taro Yamada)
<HEALER> → (?<_HEALER>Sabro Suzuki|Sabro Suzuki)
<HEALER1> → (?<_HEALER>Sabro Suzuki)
<DPS> → (?<_DPS>Goro Toyota|Rokuro Nissan|Shichiro Mazda|Hachiro Mitsuoka)
<DPS1> → (?<_DPS>Goro Toyota)
<MELEE> → (?<_MELEE>Goro Toyota|Rokuro Nissan)
<RANGE> → (?<_RANGE>Shichiro Mazda)
<MAGIC> → (?<_MAGIC>Hachiro Mitsuoka)

各種プレースホルダの詳細はゲーム実行中に Log タブで確認出来ます。

俺の歌を聞かせたい

resources/wav にwaveファイルを投入するとスペスペで使用できるようになります

テキストコマンド

FF14の内部からテキストコマンドで一部の機能を制御できます
/e コマンド
の書式でコマンドを発行してください

例) 全てのスペルを無効にする
/e /spespe changeenabled spells all false

コマンド説明
/spespe on スペスペのオーバーレイの表示を有効にする(スペスペボタンONと同様)
/spespe off スペスペのオーバーレイの表示を無効にする(スペスペボタンOFFと同様)
/spespe refresh spells スペルリストパネルを一度閉じてリフレッシュする
/spespe refresh telops テロップを一度閉じてリフレッシュする
/spespe refresh me プレイヤー名のキャッシュを更新する
/spespe refresh pt パーティメンバー名のキャッシュを更新する
/spespe refresh pet 自身のペットIDのキャッシュを更新する
/spespe changeenabled spells "サンプルパネル" true 指定したパネルのスペルを有効にする。falseで無効
/spespe changeenabled spells "サンプルスペル" true 指定したスペルを有効にする。falseで無効
/spespe changeenabled telops "サンプルテロップ" true 指定したテロップを有効にする。falseで無効
/spespe changeenabled spells all true 全てのスペルを有効にする。falseで無効
/spespe changeenabled telops all true 全てのテロップを有効にする。falseで無効
/spespe analyze on 戦闘ログの収集を有効にする。offで無効
/spespe set placeholder "tag" 文字列 <tag>から文字列への置き換えを有効にする
/spespe clear placeholder "tag" <tag>による置換を無効にする
/spespe clear placeholder all 全ての置換を無効にする

最新リリース

こちらからダウンロードしてください

ライセンス

三条項BSDライセンス
Copryright (c) 2014, anoyetta
https://github.com/anoyetta/ACT.SpecialSpellTimer/blob/master/LICENSE

Special Thanks

・GB19xx様
https://github.com/GB19xx/ACT.TPMonitor
のFF14ヘルパークラスを流用させていただきました

・魔王魂様
http://maoudamashii.jokersounds.com/
音楽素材といったら魔王魂。
同梱されたwaveサウンドファイルの著作権は魔王魂に帰属します

お問合せ

不具合報告、要望、質問及び最新版情報などはTwitterにて
GitHubと連動しているためツイートは少々五月蠅いかもしれません
https://twitter.com/anoyetta

Discord はじめました
ACT.SST Forum
https://discord.gg/n6Mut3F
気軽にご参加ください。twitterよりもコミュニケーションし易いです。
公開では対応できないような案件の場合は別途プライベートルームに招待いたします。