//findall オニオンソード↑のような感じ。「ソ」がいわゆるダメ文字。
Searching: オニオンメ[ド
エスケープ記号を使って
//findall オニオンソ\ード
Searching: オニオンメ[ド
とやってもやっぱりダメ。他のアドオンならこれでうまくいくのにfindAllはダメ。
findAll の場合、解決策としては、\を3つ書く。
//findall オニオンソ\\\ード
???/storage: オニオンソード
findAll は内部で自分自身を windower.send_command を使って
呼びなおしているため、エスケープ記号がその際に潰されてしまう。
下記がその該当コード。
handle_command = function(...)ここの処理で消えないように\を3つ書くとうまくいく。4つでもOK。5つでもOK
if first_pass then
first_pass = false
windower.send_ipc_message('findAll update')
windower.send_command('wait 0.05;findall '..table.concat({...},' '))
6つでもOK
でも1つや2つじゃダメ。7つ以上でもダメ。
3つも\を書くのは面倒くさいので、1つでも大丈夫になるようにコードを修正してみる。
windower.send_command('wait 0.05;findall '..table.concat({...},' '):gsub('\\', '\\\\'))
これで「//findall オニオンソ\ード」で文字化けしなくなる。
でも、エスケープ記号を1つ使わないといけないのはしょうがないことだとして諦めよう。
0 件のコメント:
コメントを投稿