function Aspir()
local recasts = windower.ffxi.get_spell_recasts()
local recast_time_3 = recasts[881]/60
local recast_time_2 = recasts[248]/60
local recast_time_1 = recasts[247]/60
if recast_time_3 == 0 and (player.main_job == '風' or player.main_job == '黒') then
send_command('input /ma '..windower.to_shift_jis('アスピルIII')..' <stnpc>')
elseif recast_time_2 == 0 then
send_command('input /ma '..windower.to_shift_jis('アスピルII')..' <stnpc>')
elseif recast_time_1 == 0 then
send_command('input /ma '..windower.to_shift_jis('アスピル')..' <stnpc>')
else
windower.add_to_chat(30, 'アスピル リキャスト---> III: %.1fs, II: %.1fs, I: %.1fs':format(recast_time_3, recast_time_1, recast_time_1))
end
end
ドレイン系
ドレインマクロにgs c drainと書けば次の優先度でドレインが発動します。
ドレインIII
ドレインII
ドレイン
function Drain()
local recasts = windower.ffxi.get_spell_recasts()
local recast_time_3 = recasts[880]/60
local recast_time_2 = recasts[246]/60
local recast_time_1 = recasts[245]/60
if recast_time_3 == 0 and player.main_job == '暗' then
send_command('input /ma '..windower.to_shift_jis('ドレインIII')..' <stnpc>')
elseif recast_time_2 == 0 and player.main_job == '暗' then
send_command('input /ma '..windower.to_shift_jis('ドレインII')..' <stnpc>')
elseif recast_time_1 == 0 then
send_command('input /ma '..windower.to_shift_jis('ドレイン')..' <stnpc>')
else
windower.add_to_chat(30, 'ドレイン リキャスト---> III: %.1fs,II: %.1fs, I: %.1fs':format(recast_time_3, recast_time_2, recast_time_1))
end
end
空蝉の術系
空蝉マクロにgs c Utsusemiと書けば次の優先度で空蝉の術が発動します。
空蝉の術:参
空蝉の術:弐
空蝉の術:壱
function Utsusemi()
local recasts = windower.ffxi.get_spell_recasts()
local recast_time_3 = recasts[340]/60
local recast_time_2 = recasts[339]/60
local recast_time_1 = recasts[338]/60
if recast_time_3 == 0 and player.main_job == '忍' then
send_command('input /ma '..windower.to_shift_jis('空蝉の術:参')..' <me>')
elseif recast_time_2 == 0 then
send_command('input /ma '..windower.to_shift_jis('空蝉の術:弐')..' <me>')
elseif recast_time_1 == 0 then
send_command('input /ma '..windower.to_shift_jis('空蝉の術:壱')..' <me>')
else
windower.add_to_chat(30, '空蝉の術 リキャスト---> 参: %.1fs, 弐: %.1fs, 壱: %.1fs':format(recast_time_3, recast_time_2, recast_time_1))
end
end
単体敵対行動系
単体の敵対行動マクロにgs c Enmityと書けば次の優先度で使えるアビリティや魔法が発動します。
フラッシュ
ジェタチュラ(サポ青)
ブランクゲイズ(サポ青)
挑発(サポ戦)
スタン(サポ暗)
アブゾタック(サポ暗)
function ActionEnmity()
local spell_recasts = windower.ffxi.get_spell_recasts()
local recast_time_Flash = spell_recasts[112]/60
local recast_time_BlankGaze = spell_recasts[592]/60
local recast_time_Jettatura = spell_recasts[575]/60
local recast_time_Stun = spell_recasts[252]/60
local recast_time_abzotac = spell_recasts[275]/60
local ability_recasts = windower.ffxi.get_ability_recasts()
local recast_time_Provoke = spell_recasts[5]/60
if recast_time_Flash == 0 then
send_command('input /ma '..windower.to_shift_jis('フラッシュ')..' <stnpc>')
elseif player.sub_job == '青' and recast_time_Jettatura == 0 then
send_command('input /ma '..windower.to_shift_jis('ジェタチュラ')..' <stnpc>')--0.5
elseif player.sub_job == '青' and recast_time_BlankGaze == 0 then
send_command('input /ma '..windower.to_shift_jis('ブランクゲイズ')..' <stnpc>')--3
elseif player.sub_job == '戦' and recast_time_Provoke == 0 then
send_command('input /ja '..windower.to_shift_jis('挑発')..' <stnpc>')
elseif player.sub_job == '暗' and recast_time_Stun == 0 then
send_command('input /ma '..windower.to_shift_jis('スタン')..' <stnpc>')
elseif player.sub_job == '暗' and recast_time_abzotac == 0 then
send_command('input /ma '..windower.to_shift_jis('アブゾタック')..' <stnpc>')
end
end
ジェタチュラは前方範囲なので、不要な場合はコメントアウトしてください。
範囲敵対行動系
範囲の敵対行動マクロにgs c EnmityRangeと書けば次の優先度で使えるアビリティや魔法が発動します。
フライトフルロア(サポ青)
ガイストウォール(サポ青)
スティキングガス(サポ青)
サペリフィック(サポ青)
シープソング(サポ青)
魔物達のララバイ(サポ吟)
ディアガ
バニシュガ
function ActionEnmityRange()
local spell_recasts = windower.ffxi.get_spell_recasts()
local recast_time_FrightfulRoar = spell_recasts[561]/60
local recast_time_Soporific = spell_recasts[598]/60
local recast_time_SheepSong = spell_recasts[584]/60
local recast_time_GeistWall = spell_recasts[605]/60
local recast_time_Stinking = spell_recasts[537]/60
local recast_time_Poisonga = spell_recasts[225]/60
local recast_time_Lullaby = spell_recasts[376]/60
local recast_time_Banishga = spell_recasts[38]/60
local recast_time_Diaga = spell_recasts[33]/60
if player.sub_job == '青' and recast_time_FrightfulRoar == 0 and player.sub_job_level>49 then
send_command('input /ma '..windower.to_shift_jis('フライトフルロア')..' <stnpc>')--2
elseif player.sub_job == '青' and recast_time_GeistWall == 0 then
send_command('input /ma '..windower.to_shift_jis('ガイストウォール')..' <stnpc>')--3
elseif player.sub_job == '青' and recast_time_Stinking == 0 then
send_command('input /ma '..windower.to_shift_jis('スティンキングガス')..' <stnpc>')--4
elseif player.sub_job == '青' and recast_time_Soporific == 0 then
send_command('input /ma '..windower.to_shift_jis('サペリフィック')..' <stnpc>')--3
elseif player.sub_job == '青' and recast_time_SheepSong == 0 then
send_command('input /ma '..windower.to_shift_jis('シープソング')..' <stnpc>')--3
elseif player.sub_job == '詩' and recast_time_Lullaby == 0 then
send_command('input /ma '..windower.to_shift_jis('魔物達のララバイ')..' <stnpc>')--3
elseif player.sub_job == '赤' and recast_time_Diaga == 0 then
send_command('input /ma '..windower.to_shift_jis('ディアガ')..' <stnpc>')--3
elseif recast_time_Banishga == 0 then
send_command('input /ma '..windower.to_shift_jis('バニシュガ')..' <stnpc>')--3
end
end
コメント