把握しました。ありがとうございました
ttps://github.com/Windower/Lua/blob/live/addons/InfoBar/InfoBar.lua
の
local pos = windower.ffxi.get_mob_by_target('st') or windower.ffxi.get_mob_by_target('t') or windower.ffxi.get_mob_by_target('me')
magicreplace で attempt to perform arithmetic on a nil value のエラーで動かない場合ですが、
ChatGPTに聞いたら教えてくれた。
command:find(magicname,1,1)を
command:find(magicname,1,true)に変更。
if command:len() > command:find(magicname,1,true) + magicname:len() then
target = command:gsub(" "," "):sub( command:find(" ",command:find(magicname,1,true) +magicname:len() )+1,100 ) ;
print(target)
end
if ( target:gsub(" ","") == "" ) then --Targetがない場合は<me>にする
target = "<me>"
end
--ここから改造します
local target_id = tonumber(target)
if target_id then
if test_flag then windower.add_to_chat(5," 80 MagicReplace Test TARGET INT "..target) end
local act = nil ;
if L{"/ma ","/magic ","/song "}:contains(comprefix) then act = res.spells:with('english',magicname) ;
elseif L{"/ws ","/weaponskill "}:contains(comprefix) then act = res.weapon_skills:with('english',magicname) ;
elseif L{"/ja ","/jobability ","/pet "}:contains(comprefix) then act = res.job_abilities:with('english',magicname) ;
elseif L{"/nin ","/ninjutsu "}:contains(comprefix) then act = res.spells:with('english',magicname) ;
elseif comprefix == "/item " then act = res.items:with('english',magicname) ;
end
local act_name = ""
if act == nil then act_name = magicname
else act_name = windower.to_shift_jis(act.ja)
end
local target_strings = ""
local my_self = windower.ffxi.get_mob_by_target('me')
local my_party = windower.ffxi.get_party()
local my_is_party = false
--続き2
if target_id == my_self.id then target_strings = '<me>'
else
if my_party.p1 ~= nil then
local my_player = windower.ffxi.get_mob_by_name(my_party.p1.name)
if my_player.id == target_id then
my_is_party = true
target_strings = my_player.name
end
end
if my_party.p2 ~= nil then
local my_player = windower.ffxi.get_mob_by_name(my_party.p2.name)
if my_player.id == target_id then
my_is_party = true
target_strings = my_player.name
end
end
if my_party.p3 ~= nil then
local my_player = windower.ffxi.get_mob_by_name(my_party.p3.name)
if my_player.id == target_id then
my_is_party = true
target_strings = my_player.name
end
end
--続き3
if my_party.p4 ~= nil then
local my_player = windower.ffxi.get_mob_by_name(my_party.p4.name)
if my_player.id == target_id then
my_is_party = true
target_strings = my_player.name
end
end
if my_party.p5 ~= nil then
local my_player = windower.ffxi.get_mob_by_name(my_party.p5.name)
if my_player.id == target_id then
my_is_party = true
target_strings = my_player.name
end
end
if my_is_party then
--target_strings is party member name
else
local target_mob = windower.ffxi.get_mob_by_target('t')
if target_mob then
if target_mob.id == target_id then
target_strings = '<t>'
end
else
--??
end
end