HomePointで定型文辞書を使いたい[FF11]

f:id:yyoshisaur:20190824160756p:plain
HomePointなどのテキストコマンド移動系アドオンで地名入力を定型文辞書(タブ変換)で行えるようにしたいと思います。
(よく使用する場所はマクロに入れておけば良いですが、ちょっとした移動にはラインエディタから入力できると便利そうです。)


英語のクライアントでは地名入力に定型文辞書を使用できますが、
日本語のクライアントでは定型文をwindower.convert_auto_transで変換すると日本語名になるため、うまく動作しません。
定型文をwindower.convert_auto_transで変換した地名をさらに英語名に変換するとうまくいきそうです。

local function convert_auto_trans_from_ja_to_en(auto_trans_phrase)
	local lang = windower.ffxi.get_info().language
	if lang == 'Japanese' then
		local phrase_ja = windower.from_shift_jis(windower.convert_auto_trans(auto_trans_phrase))
		local res_auto_trans = res.auto_translates:with('ja', phrase_ja)
		if res_auto_trans then
			return res_auto_trans.en
		else
			return phrase_ja
		end
	else
		return windower.convert_auto_trans(auto_trans_phrase)
	end
end

HomePoint, SurvivalGuideは'resources'がすでに読み込まれていますが、superwarpでは読み込まれていないようなのでrequireしておきます。

res = require('resources')

あとは、コマンドの入力時にwindower.convert_auto_transしている部分を上記で実装した関数に置き換えます。

-- for i,v in pairs(args) do args[i]=windower.convert_auto_trans(args[i]) end
for i,v in pairs(args) do args[i]=convert_auto_trans_from_ja_to_en(args[i]) end

日本語のクライアントでも定型文で移動が行えるようになります。
(リファーリアなど定型文辞書にない場所にはこの方法では移動できません。)

//hp warp サンドリア 1

すべての地名で動作確認をしていないため、うまく動作しない地名があるかもしれません。