Mod/パスワード保存

提供: MTM-Gaming
< Mod
移動先:案内検索
対応クライアント 1.0.0 - 1.6.1.1 (ASIA, WGC未使用時)
バージョン 1.3.2 (2018.03.24版)
作者 Chirimen
ダウンロード chirimen.saveaccount-1.3.2.wotmod
関連リンク

http://forum.worldoftanks.asia/index.php?/topic/69879-/ (ASIAフォーラム: 英語)
https://wgmods.net/736/ (MOD HUB)
https://github.com/chirimenmonster/wotmods-saveaccount/ (GitHub)


概要

WoT の ASIA クライアントでアカウント情報を保存する mod です。 パスワード保存 mod と呼ばれるものに相当します。

※ ランチャーに Wargaming.net Game Center (WGC) を使用している人は WGC がアカウント情報を保存するようになったのでこの mod は不要です。

スクリーンショット

  • アカウント情報保存前。「記憶する」のチェックを入れてからログインする。メールアドレスとパスワードでログインしてもいいし、クイックログインでもいい
  • アカウント情報保存後。保存されているアカウント名が表示されており、「接続開始」のボタンを押すだけでログインできる。別のアカウントでログインしたいときは「アカウント切り替え」ボタンを押す

なお、XVM のオートログインを有効にすると、 アカウント情報を保存した状態であれば WoT クライアントを起動したときに自動的にログイン状態になります。

インストール

ダウンロードした wotmod ファイルを WoT インストールフォルダの mods\xxx (xxx は WoTのバージョン) に置きます。

動作のしくみ

WoT クライアントが各種の設定を読み込んだ後でインストールされている mod が順に組み込まれます。 この mod は組み込まれたタイミングで動作し、 WoT クライアントの内部設定情報のうち、アカウント保存機能の ON/OFF に関わる部分を変更します。


付録

Python 版 (SaveAccount) と XML 版 (gui_settings.xml) について

従来のパスワード保存 mod の実体は XML で書かれた設定ファイル (gui_settings.xml) でした。 シンプルではありますが、 WoT クライアントにパッケージ化されている gui_settings.xml を抽出して編集する作業が必要なため、 クライアントのバージョンの変化に弱いという欠点があります。

Python 版はこの欠点を解決することを目的として開発されました。 アカウント情報を保存する設定項目のみを mod で内部的に変更するので、 WoT クライアントオリジナルの gui_settings.xml に含まれている他の項目が変更された場合でも影響を受けません。

gui_settings.xml

概要

WoT の ASIA クライアントはアカウント情報を記憶しません。 そのため、ゲームをプレイするには毎回パスワードを入力するか、クイックログインを使用する必要があります。

一方、他サーバ用のクライアントではログイン画面に "Remember me" というチェックボックスがあって、 チェックした状態でログインすると、次回からはアカウント情報を入力せずにログインできるようになります。

これはクライアントに本来備わっているアカウント情報を記憶する機能が、 ASIA クライアントでは無効化されているということを表しています。

この無効化の設定はクライアントの設定ファイルで指定されているので、 本質的にはその部分を変更するだけで解消することができます。

オリジナルの設定ファイルの場所

ログイン関係の設定は gui_settings.xml という設定ファイルに含まれています。

このファイルは WoT インストールフォルダ内を検索しても見つかりません。

実際には gui_settings.xml は res\packages\gui.pkg というファイルにパッケージ化された状態で置かれています。 この gui.pkg の実際は zip ファイルなので、適当な zip 展開ツールを使えば展開することができ、 展開すると gui フォルダに置かれるべき各種のファイルがでてきます。 手持ちのツールで gui.pkg を zip ファイルと認識できないようであれば、拡張子を zip にリネームすれば展開することができます。 展開やリネームの際にはくれぐれもクライアントのオリジナルのファイル構成を壊さないように、 適当な作業場所にコピーしてから作業しましょう。

首尾よく展開できたら gui フォルダの中に gui_settings.xml が見つかるはずです。 このファイルをここではオリジナルの gui_settings.xml と呼ぶことにします。

バイナリ XML

オリジナルの gui_settings.xml の中身をテキストエディタで開くと大半が読めないバイナリデータで構成されていることがわかります。

WoT クライアント内の XML ファイルは大半がこのパックされた XML 形式になっています。 このフォーマットが汎用の規格かどうかは確認できませんでしたが、 専用ツール WoT Binary XML Viewer/Editor などを使えば中身を見たり、テキスト形式である通常の XML で保存することができます。

WoT クライアントはバイナリの XML、テキストの XML のどちらも読めるので、 バイナリの XML に再変換する必要はありません。

変更後の設定ファイルの置き場

オリジナルの gui_settings.xml を修正して設定を変更した後の gui_settings.xml は、 res\packages\gui.pkg の中に戻すのではなく、 res_mods\xxx\gui\ (xxx はクライアントのバージョン) に置くことが推奨されます (つまり res_mods\xxx\gui\gui_settings.xml です) 。

設定ファイルなどのリソースの読み込みの優先順は paths.xml に記述されていますが、 res_mods の方が WoT クライアント標準のリソースよりも優先順位が高いので、 res_mods\xxx\gui\gui_settings.xml が存在すれば、オリジナルの gui_settings.xml は読み込まれません。

paths.xml に記述されている優先順位の概要は以下の通りです。

  1. res_mods\xxx (xxx はクライアントのバージョン)
  2. mods\xxx (*.wotmod 専用です)
  3. res\packages\*.pkg
  4. res
  5. res_bw


リソースは上記の順で検索され、見つかると以降のファイル・フォルダは無視されます。 つまり res_mods\xxx\gui\gui_settings.xml を置くと、 オリジナルである res\packages\gui.pkg 内の gui_settings.xml は無視されることになります。

gui_settings.xml 内には、ログイン関係以外の設定項目もあるのでその部分はオリジナルの設定を残さなければなりません。 ですので、カスタマイズした gui_settings.xml を使用するときは、オリジナルの gui_settings.xml をひな型にして、 変更しない設定の部分はそのままで残しておく必要があります。

当然ですが、WoT クライアントのバージョンが異なる gui_settings.xml を基にすると、 必要な設定がされないためにクライアントが正常に動作しない原因となりますので注意しましょう。

アカウント情報の保存設定

テキストに変換した後の gui_settings.xml は通常の XML ファイルとしてテキストエディタで編集することができます。

ASIA クライアントでアカウント情報保存のために必要な設定は以下のようになります。

name type value 備考
rememberPassVisible bool True アカウント情報保存のチェックボックス「記憶する」をログイン画面に表示するかどうかの設定 (ASIA での初期値は False)
clearLoginValue bool False ログインに成功したアカウント情報を保存せずに消去するかどうかの設定 (ASIA での初期値は True)

テキストエディタで gui_settings.xml を開き、 下記のように修正したものを、 res_mods\xxx\gui\gui_settings.xml (xxx はクライアントのバージョン) として置けば アカウント情報の保存が有効になります。

(略)
 <setting>
  <name>rememberPassVisible</name>
  <type>bool</type>
  <value>True</value>
 </setting>
 <setting>
  <name>clearLoginValue</name>
  <type>bool</type>
  <value>False</value>
 </setting>
(略)