MENU

【GearSwap】ナイトのMote-libs用コード

ナイトのMote-libsコードです。

目次

ソースコード

Mote-libsでは、ジョブロジック部分(ジョブ名.lua)と装備セット部分(ジョブ名_gear.lua)を切り分けていますので、次のような階層構造になっています。

GearSwap/
  └ data/
    ├ PLD.lua
    └ キャラクター名/
       └PLD_gear.lua

ジョブロジック

function get_sets()
    mote_include_version = 2
    include('Mote-Include.lua')
	set_language('japanese')
end

function job_setup()
	state.Buff["ファランクス"] = buffactive["ファランクス"] or false
	state.Buff["睡眠"] = buffactive["睡眠"] or false

    state.OffenseMode:options('Normal')
    state.DefenseMode:options('Physical', 'Magical')
    state.IdleMode:options('Normal','Refresh','Physical')
    state.Weapons = M{['description']='Use Weapon','Burtgang'}
end


function user_setup()
    send_command('bind f8 gs c cycle DefenseMode')
    send_command('wait 5; gs c set IdleMode Normal; gs c lockstyleset')
end

function user_unload()
    send_command('unbind f8')
    send_command('input /si blank;')
end

function job_buff_change(buff, gain)
    if state.Buff["ファランクス"] and not gain then
        windower.add_to_chat(167,'!!!!!! ファランクス切れ !!!!!!')
    elseif state.Buff["睡眠"] then
        if gain then -- 睡眠状態
            equip({main="カリブルヌス"})
        end
    end
end

function customize_idle_set(idleSet) 
    local weapon = sets.weapons[state.Weapons.value]
    idleSet = set_combine(idleSet, weapon)
    return idleSet
end

function customize_melee_set(meleeSet)

    local weapon = sets.weapons[state.Weapons.value]
    if player.equipment.sub == weapon.main.name then
        weapon.sub.priority = 1
        weapon.main.priority = 0
    end
    meleeSet = set_combine(meleeSet, weapon)
    return meleeSet
end



function job_midcast(spell, action, spellMap, eventArgs) 
    local fc=63/100
    if string.find(spell.type, 'Magic') then
        equip(sets.midcast.interruption)
        local adjust=0.9
        local cast_time = (spell.cast_time*(1-fc))*adjust        
        if spellMap == 'Phalanx' then
            eventArgs.handled = true
            send_command('wait '..cast_time..'; gs equip sets.midcast.Phalanx')

        elseif spellMap == 'Cure' then
            eventArgs.handled = true
            send_command('wait '..cast_time..'; gs equip sets.midcast.Cure')

        elseif spellMap == 'Flash' then
            eventArgs.handled = true
            send_command('wait '..cast_time..'; gs equip sets.midcast.Flash')

        elseif spellMap == 'Banish' then
            eventArgs.handled = true
            send_command('wait '..cast_time..'; gs equip sets.midcast.Banish')

        elseif spellMap == 'BlueMagical' then
            eventArgs.handled = true
            send_command('wait '..cast_time..'; gs equip sets.midcast.BlueMagical')

        elseif spellMap == 'BlueBuff' then
            eventArgs.handled = true
            send_command('wait '..cast_time..'; gs equip sets.midcast.BlueBuff')
        end
    end
end

function job_self_command(cmdParams, eventArgs)
    if cmdParams[1] == 'lockstyleset' then
        send_command('input /lockstyleset 121;')
    elseif cmdParams[1] == 'Enmity' then
        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 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 recast_time_Jettatura == 0 then
            send_command('input /ma '..windower.to_shift_jis('ジェタチュラ')..' <stnpc>')--0.5
        elseif recast_time_BlankGaze == 0 then
            send_command('input /ma '..windower.to_shift_jis('ブランクゲイズ')..' <stnpc>')--3
        elseif recast_time_Provoke == 0 then
            send_command('input /ja '..windower.to_shift_jis('挑発')..' <stnpc>')
        end
    elseif cmdParams[1] == 'EnmityRange' then
        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
        
        if recast_time_FrightfulRoar == 0 then
            send_command('input /ma '..windower.to_shift_jis('フライトフルロア')..' <stnpc>')--2
        elseif recast_time_GeistWall == 0 then
            send_command('input /ma '..windower.to_shift_jis('ガイストウォール')..' <stnpc>')--3
        elseif recast_time_Stinking == 0 then
            send_command('input /ma '..windower.to_shift_jis('スティンキングガス')..' <stnpc>')--4
        elseif recast_time_Soporific == 0 then
            send_command('input /ma '..windower.to_shift_jis('サペリフィック')..' <stnpc>')--3
        elseif recast_time_SheepSong == 0 then
            send_command('input /ma '..windower.to_shift_jis('シープソ\\ング')..' <stnpc>')--3
        end
    end
end

装備セット

function init_gear_sets()
    sets.weapons = {}
    sets.weapons.Burtgang	= { main={name="ブルトガング"}}
	sets.defense.PDT		= {sub="ドゥバン",}
    sets.defense.MDT 		= {sub="イージス",}

	sets.idle = {
		ammo="ストンチタスラム+1",
		head="CVアーメット+3",
		body="サクロブレスト",
		hands="CVガントレ+3",
		legs="CVクウィス+3",
		feet="RVレギンス+3",
		neck={ name="騎士の数珠+2", augments={'Path: A',}},
		waist={name="プラチナモグベルト",priority=3},
		left_ear={ name="ズワゾピアス+1", augments={'Path: A',}},
		right_ear={ name="シバリエピアス+1", augments={'System: 1 ID: 1676 Val: 0','Accuracy+15','Mag. Acc.+15','Damage taken-5%',}},
		left_ring={ name="ゼラチナスリング+1", augments={'Path: A',},priority=2},
		right_ring="シュネデックリング",
		back={ name="ルディアノスマント", augments={'HP+60','Eva.+20 /Mag. Eva.+20','HP+20','Enmity+10','Chance of successful block +5',},priority=1},
    }
	
	sets.highHP = {
		neck = "アンムーヴカラー+1",
		waist = "プラチナモグベルト",
		back = "月明の羽衣"
	}

	sets.idle.Refresh = set_combine(sets.idle, {
		body="SVキュイラス+1",
	})

	sets.idle.Physical = set_combine(sets.idle, {
		left_ring="フォテファイリング",
		right_ring="ワーデンリング"
	})

    sets.engaged = {
		ammo="ストンチタスラム+1",
		head="サクパタヘルム",
		body="デーゴンブレスト",
		hands="サクパタガントレ",
		legs="サクパタクウィス",
		feet="サクパタレギンス",
		neck={ name="アンムーヴカラー+1", augments={'Path: A',},priority=14},
		waist={name="プラチナモグベルト",priority=15},
		left_ear="テロスピアス",
		right_ear={ name="シバリエピアス+1", augments={'System: 1 ID: 1676 Val: 0','Accuracy+15','Mag. Acc.+15','Damage taken-5%',}},
		left_ring={ name="ゼラチナスリング+1", augments={'Path: A',},priority=13},
		right_ring={name="月明の指輪",priority=14},
		back={ name="ルディアノスマント", augments={'HP+60','Eva.+20 /Mag. Eva.+20','Enmity+10','Chance of successful block +5',}},
    }

    sets.engaged.DT = set_combine(sets.engaged ,{
		body="サクロブレスト",
		left_ear="ハーティーピアス",
		left_ring="スティキニリング+1",
    })

	sets.Enmity = {
		ammo="サピエンスオーブ",
		head={ name="ロースバルブータ+1", augments={'Path: A',}},
		body="CVキュイラス+3",
		hands={ name="SVハントシュ+1", augments={'HP+105','Enmity+9','Potency of "Cure" effect received +15%',}},
		legs={ name="CBブリーチズ+3", augments={'Enhances "Invincible" effect',}},
		feet="CVサバトン+3",
		neck="月光の首飾り",
		waist="プラチナモグベルト",
		left_ear={ name="ズワゾピアス+1", augments={'Path: A',}},
		right_ear="クリプティクピアス",
		left_ring={ name="ゼラチナスリング+1", augments={'Path: A',},priority=1},
		right_ring="アイワツリング",
		back={ name="ルディアノスマント", augments={'HP+60','Eva.+20 /Mag. Eva.+20','HP+20','Enmity+10','Chance of successful block +5',}},
	}

	sets.buff['かばう']={body="CBサーコート+3"}

	sets.precast.JA['ランパート'] = set_combine(sets.Enmity,{head="	CBコロネット+3"})
	sets.precast.JA['フィールティ'] = set_combine(sets.Enmity,{body="CBサーコート+3"})
	sets.precast.JA['シールドバッシュ'] = set_combine(sets.Enmity,{hands="CBガントレ+3"})
	sets.precast.JA['シバルリー'] = {
		ammo="クォーツタスラム+1",
		head="ニャメヘルム",
		body="ニャメメイル",
		hands={ name="CBガントレ+3", augments={'Enhances "Chivalry" effect',}},
		legs="ニャメフランチャ",
		feet="ニャメソルレット",
		neck={ name="騎士の数珠+2", augments={'Path: A',}},
		waist={name="プラチナモグベルト",priority=10},
		left_ear={ name="オノワイヤリング+1", augments={'Path: A',}},
		right_ear="エアバニピアス",
		left_ring="スティキニリング+1",
		right_ring="スティキニリング+1",
		back={name="月明の羽衣",priority=15}
	}
	sets.precast.JA['インビンシブル'] = set_combine(sets.Enmity,{legs="CBブリーチズ+3"})
	sets.precast.JA['センチネル'] = set_combine(sets.Enmity,{feer="CBレギンス+3"})

	sets.precast.JA['ホーリーサークル'] = set_combine(sets.Enmity,{feet="RVレギンス+3"})
	sets.precast.JA['パリセード'] = sets.Enmity
	sets.precast.JA['インターヴィーン'] = sets.Enmity
	sets.precast.JA['マジェスティ'] = sets.Enmity

	sets.precast.JA['神聖の印'] = set_combine(sets.Enmity,{feet="CVサバトン+3"})
	sets.precast.JA['かばう'] = set_combine(sets.Enmity,{head="RVコロネット+1"})

	sets.precast.JA['挑発'] = sets.Enmity
	sets.precast.JA['ヴァレション'] = sets.Enmity
	sets.precast.JA['フルーグ'] = sets.Enmity
	sets.precast.JA['ソードプレイ'] = sets.Enmity
	sets.precast.JA['イグニス'] = sets.Enmity
	sets.precast.JA['ゲールス'] = sets.Enmity
	sets.precast.JA['フラブラ'] = sets.Enmity
	sets.precast.JA['テッルス'] = sets.Enmity
	sets.precast.JA['スルポール'] = sets.Enmity
	sets.precast.JA['ウンダ'] = sets.Enmity
	sets.precast.JA['ルックス'] = sets.Enmity
	sets.precast.JA['テネブレイ'] = sets.Enmity

	sets.precast.FC = {--63
		ammo="サピエンスオーブ",
		head={ name="カマインマスク+1", augments={'Accuracy+20','Mag. Acc.+12','"Fast Cast"+4',}},
		body="RVサーコート+3",
		hands={ name="レイライングローブ", augments={'Accuracy+6','Mag. Acc.+2','"Mag.Atk.Bns."+6',}},
		legs={ name="カマインクウィス+1", augments={'HP+80','STR+12','INT+12',}},
		feet={ name="オディシアグリーヴ", augments={'Mag. Acc.+1 "Mag.Atk.Bns."+1','"Fast Cast"+6','VIT+2','Mag. Acc.+2','"Mag.Atk.Bns."+13',}},
		neck={ name="アンムーヴカラー+1", augments={'Path: A',},priority=1},
		waist="プラチナモグベルト",
		left_ear="エテオレートピアス",
		right_ear={ name="シバリエピアス+1", augments={'System: 1 ID: 1676 Val: 0','Accuracy+15','Mag. Acc.+15','Damage taken-5%',}},
		left_ring={ name="ゼラチナスリング+1", augments={'Path: A',}},
		right_ring="メダダリング",
		back={ name="ルディアノスマント", augments={'HP+60','Eva.+20 /Mag. Eva.+20','HP+20','"Fast Cast"+10','Spell interruption rate down-10%',}},
    }

	sets.precast.WS = {
		ammo="昏黄の礫",
		head="サクパタヘルム",
		body="サクパタブレスト",
		hands="サクパタガントレ",
		legs="サクパタクウィス",
		feet="サクパタレギンス",
		neck="フォシャゴルゲット",
		waist="フォシャベルト",
		left_ear="テロスピアス",
		right_ear={ name="シバリエピアス+1", augments={'System: 1 ID: 1676 Val: 0','Accuracy+15','Mag. Acc.+15','Damage taken-5%',}},
		left_ring="エパミノダスリング",
		right_ring="月明の指輪",
		back="月明の羽衣",
    }
	
	sets.precast.WS['ロイエ'] = sets.Enmity
	
	sets.midcast.interruption = {
		ammo="ストンチタスラム+1",
		head={ name="SVシャレル+1", augments={'HP+105','VIT+12','Phys. dmg. taken -4',}},
		body="CVキュイラス+3",
		hands="CVガントレ+3",
		legs={ name="カマインクウィス+1", augments={'HP+80','STR+12','INT+12',}},
		feet={ name="SVシュー+1", augments={'HP+105','Enmity+9','Potency of "Cure" effect received +15%',}},
		neck="月光の首飾り",
		waist="プラチナモグベルト",
		left_ear="磁界の耳",
		right_ear={ name="シバリエピアス+1", augments={'System: 1 ID: 1676 Val: 0','Accuracy+15','Mag. Acc.+15','Damage taken-5%',}},
		left_ring="守りの指輪",
		right_ring="月明の指輪",
		back={ name="ルディアノスマント", augments={'HP+60','Eva.+20 /Mag. Eva.+20','HP+20','"Fast Cast"+10','Spell interruption rate down-10%',}},
	}
	sets.midcast.Flash = sets.Enmity
	sets.midcast.Banish = sets.Enmity
	sets.midcast.BlueMagical = sets.Enmity
	sets.midcast.BlueBuff = sets.Enmity

	
	sets.midcast.Phalanx = {
		main="サクパタソード",
		sub="プリュウェン",
		ammo="ストンチタスラム+1",
		head={ name="オディシアヘルム", augments={'"Dbl.Atk."+3','"Mag.Atk.Bns."+3','Phalanx +5',}},
		body={ name="オディシアプレート", augments={'VIT+8','Attack+1','Phalanx +5',}},
		hands={ name="SVハントシュ+1", augments={'HP+105','Enmity+9','Potency of "Cure" effect received +15%',},priority=6},
		legs={name="サクパタクウィス",priority=7},
		feet={ name="SVシュー+1", augments={'HP+105','Enmity+9','Potency of "Cure" effect received +15%',},priority=8},
		neck="月光の首飾り",
		waist={name="プラチナモグベルト",priority=10},
		left_ear="磁界の耳",
		right_ear="ミミルピアス",
		left_ring={ name="ゼラチナスリング+1", augments={'Path: A',},priority=13},
		right_ring="エバネセンスリング",
		back={ name="ウェルドマント", augments={'VIT+1','DEX+2','Enmity+1','Phalanx +5',}},
	}

	sets.midcast.Cure = {
		ammo="ストンチタスラム+1",
		head={ name="SVシャレル+1", augments={'HP+105','VIT+12','Phys. dmg. taken -4',}},
		body="CVキュイラス+3",
		hands={ name="SVハントシュ+1", augments={'HP+105','Enmity+9','Potency of "Cure" effect received +15%',}},
		legs="CVクウィス+3",
		feet={ name="オディシアグリーヴ", augments={'Mag. Acc.+1 "Mag.Atk.Bns."+1','"Fast Cast"+6','VIT+2','Mag. Acc.+2','"Mag.Atk.Bns."+13',}},
		neck="月光の首飾り",
		waist="スローダベルト",
		left_ear="磁界の耳",
		right_ear={ name="シバリエピアス+1", augments={'System: 1 ID: 1676 Val: 0','Accuracy+15','Mag. Acc.+15','Damage taken-5%',}},
		left_ring={ name="ゼラチナスリング+1", augments={'Path: A',},priority=3},
		right_ring={name="月明の指輪",priority=2},
		back={name="月明の羽衣",priority=1}
	}
end

コメント

コメントする

目次