書き忘れた、DistancePlusは双方のmodel_sizeを引いた値で判定してるけど、表示は生のsqut(mob.distance)になってる
info rawdist off にすると双方のmodel_sizeを引いた値を表示する
一応デフォルト値はDistancePlusに合わせてdefaults.ShowDistanceRaw = true
----------------------
①ファンクションを新規追加
----------------------
function force_drop()
local items = windower.ffxi.get_items()
windower.add_to_chat(55,'******* Drop *******')
-- Check inventory for unwanted items
for index, item in pairs(items.inventory) do
if type(item) == 'table' and code.drop:contains(item.id) then
drop(item.id, index, item.count)
end
end
end
下の点
Treasuryで出来る
//tr lot add xxx ロットする
//tr lot remove xxx ロットしない
//tr drop add xxx 捨てる準備をする
//tr drop remove xxx 捨てる準備を止める
//tr autodrop on 捨てる準備が出来たアイテムを捨てる
//tr autodrop off まだ捨てない
関数set_spells_from_spellset内の「Remove phase」のコメントの次の
> for k,v in pairs(currentSet) do
から、このforと対になるendまでを以下の内容に丸ごと入替
> for i = 1, 20 do
> local slotName = 'slot%02u':format(i)
> if currentSet[ slotName ] and currentSet[ slotName ] ~= setToSet[ slotName ] then
> windower.ffxi.remove_blue_magic_spell(i)
> --log('Removed spell: '..v..' at #'..i)
> set_spells_from_spellset:schedule(settings.setspeed, spellset, 'remove')
> return
> end
> end
同関数内の「〜 empty slot 〜」のコメントの次の
> for k,v in pairs(setToSet) do
から、このforと対になるendまでを以下の内容に丸ごと入替
> local slotName = 'slot%02u':format(slotToSetTo)
> if setToSet[ slotName ] then
> local spellID = find_spell_id_by_name( setToSet[ slotName ] )
> if spellID ~= nil then
> windower.ffxi.set_blue_magic_spell(spellID, tonumber(slotToSetTo))
> --log('Set spell: '..v..' ('..spellID..') at: '..slotToSetTo)
> set_spells_from_spellset:schedule(settings.setspeed, spellset, 'add')
> return
> end
> end
自己解決しました
サンプルコードに倣ってprecastでwsのみws名で装備を拾って着替える様に書いていたのですが最後の
if set_equip then がtrueにならず着替えが行われていませんでした
set_equipへの代入は行われていたけど条件が真にならない理由が突き止められなかったのでローカル変数への代入はやめて着替えを呼ぶようにしました。
お騒がせしました
↑/autotarget on でも機能するようにする為の相談
/autotarget off ならいちいち収刀しちゃうけど問題なく機能する
/autotarget on でも機能するなら、たまたまサーバが選んだ次の対象が
アドオンが選んだ対象と同じなら収刀しなくなって効率が良くなるから
/autotarget on でも機能するようにさせたい