ルートファイル | アラームを稼働させるメインファイルです。作成方法は後述。 |
ウィンドウ | 棒読みやサウンド再生のみの場合は、チェックをはずすと画面表示がなくなります。 |
背景 | 背景色及び透過度を設定します。透過度は「0で透過しない」形になります。 |
開始条件 | FF14のログに、ここで定義したメッセージが出てきたら、アラームが起動します。 「極***の攻略を開始します。」などのメッセージを指定してください。 空の場合は常時起動となります。 |
終了条件 | 同じく、ここで定義したメッセージが出てきたら、アラームが終了します。 空の場合は停止方法がなくなります。 |
script_alarms ├ do_not_edit_base.js ├ sample │ ├ sample01.html ★ルートファイル │ ├ sample01.js │ ├ sample01.css │ ... ├ [任意のアラームフォルダ] │ ├ 任意のファイル名.html ★ルートファイル
<!DOCTYPE html>
<html lang="ja">
<head>
<!-- UTF8で保存してください -->
<!-- ここから編集不可 -->
<meta charset="UTF-8">
<base href="http://ff14textreader.vhn/">
<script src="/do_not_edit_base.js" type="text/javascript"></script>
<link href="/do_not_edit_base.css" rel="stylesheet">
<!-- ここまで -->
<script>
//自分のウィンドウIDを定義
//このHTMLは親ウィンドウなので、空文字列。
//どのアラームでも親ウィンドウはこの値。子ウィンドウを利用する場合は、
//ウィンドウ生成時に指定する。
var ownWindowId = "";
</script>
<!-- 例:処理用JSの読み込み
パスは script_alarms フォルダをルートとした絶対パス表記で記述する。-->
<!-- サンプル:ログ読み上げ -->
<script src="/sample01/sample01-a1.js" type="text/javascript"></script>
<!-- サンプル:リキャスト管理 -->
<script src="/sample01/sample01-a2.js" type="text/javascript"></script>
<!-- サンプル:別ウィンドウ連携 -->
<script src="/sample01/sample01-a3.js" type="text/javascript"></script>
<!-- 例:ローカル以外のファイルを読み込む
普通に読めます。このサンプルでは jquery を多用しています -->
<script src="https://code.jquery.com/jquery-3.6.0.min.js"
integrity="sha256-/xUj+3OJU5yExlq6GSYGSHk7tPXikynS7ogEvDej/m4="
crossorigin="anonymous"></script>
<!-- 例;このアラーム専用のCSSの読み込み
同じようにパス指定する。-->
<link href="/sample01/sample01-a.css" rel="stylesheet">
</head>
<body>
<!-- タイトル -->
<h1>リキャスト管理</h1>
<!-- リキャスト表示領域 -->
<div id="recastArea"></div>
<!-- リキャスト用HTML デザイン例その1 -->
<div id="recastLineTemplate" style="display: none">
<div class="recastLine01-a" id="{ID}">
<div class="titleLine">
<span class="name">旅神のメヌエット</span>
<span class="time">23.4 / 20.3</span>
</div>
<div class="barLine">
<div class="barInner" style="width: 45%"></div>
</div>
</div>
</div>
</body>
</html>
//サンプル:ログからのテキスト読み上げ
//UTF8で保存してください。
/**
* 初期化
*/
document.addEventListener("DOMContentLoaded", function() {
//イベント受信関数の登録
document.addEventListener("alarm.log", onReceiveLogForReadText);
});
/**
* イベント:ログ受信>テキスト読み上げ
*
* @param {object} e イベントデータ
*/
function onReceiveLogForReadText(e) {
//ログはタイミングにより複数同時に来るので、
//ループしてきたものをすべて処理
for (var i in e.detail) {
//とりあえず1個参照して…
var log = e.detail[i];
//logType1 が18(LS3)であれば
if (18 == log.logType1) {
//読み上げを行う。
AP_ReadBouyomi(log.message, true);
}
}
}
document.addEventListener("DOMContentLoaded", function() {
//イベント受信関数の登録
document.addEventListener("alarm.log", onReceiveLogForReadText);
});
//イベント受けるほう
function onReceiveLogForReadText(e) { ... }
イベント名 | データ概要 |
log |
[ { logType0: 0, logType1: 16, name: "Test Tarou", message: "テスト", time: 63783029828920 } ] ・一度に複数のログ情報がくる場合があります。 ・logType については、このページにある「ログ種類の指定方法」をご確認ください。 ・time については、標準で用意している ticksToDate 関数に与えると Date オブジェクトが得られます。 |
player |
{ job: "PLD", name: "Test Jiro" } ・タイミングによっては Unknown とか出てくる場合もあります。 ・name が空なら無視しましょう。 |
pop unpop |
pop はキャラの出現検知、unpop は削除検知です。 いずれも以下のフォーマットです。 [ { name: "Test Saburou", id: 10293940, hpCurrent: 20293, castingId: 0, job: "AST", statusList: [ ... ] } ] ・項目いっぱいあるので記載は省略します。大体キー名からわかるはず! |
update |
ステータス(バフとか)の変動、アクション詠唱を検知します。 ちょっと複雑。 { update: [ { type: 'Add', status: 'Status', statusId: 12345, castingId: 0, actorId: 298372123 } ... ], actor: { 298372123: { name: "Test Shirou", id: 10232832, hpCurrent: 29123, ... } } } update は、ステータスの追加/削除、または詠唱中アクションの変更を表します。 status が 'Status' であれば前者、'CastingID' であれば後者です。 type は Add/Remove/Change(追加とか削除とか)、 statusId/castingId に変更後の値が入ります。 actorId はキャラIDです。この値をキーとして actor にあるデータを参照すると、 そのキャラの各情報が取得できます。 |
イベント種類 | 1列目 | 2列目 | 3列目 | 4列目 | 5列目 | 6列目 | 7列目 |
ログ | 時間 | イベント名("log") | logType0 | logType1 | 発言者名 | メッセージ内容 | (空) |
プレイヤー情報 | 時間 | イベント名("player") | (空) | (空) | プレイヤー名 | ジョブ | (空) |
キャラ出現情報 | 時間 | イベント名("pop") | (空) | (空) | キャラ名 | キャラID | (空) |
キャラ削除情報 | 時間 | イベント名("unpop") | (空) | (空) | キャラ名 | キャラID | (空) |
ステータス更新 | 時間 | イベント名("update") | CastingID(詠唱) またはStatus(ステータス変更) | Add/Remove/Change | キャストまたは ステータスID | キャラ名 | キャラID |
イベント種類 | 1列目 | 2列目 | 3列目 |
共通 | 時間 | イベント名 | JSONデータ |