2025/3/26 Mote-Mappings.lua を公式のものに入れ替えました。それに伴い各種ジョブロジック見直し動作確認中。エラーが出るものがあるかもしれません。

【GearSwap】学者のMote-libs用コード

学者のMote-libsコードです。

目次

ソースコード

ファイル構成

GearSwap/
  └ data/
    ├ Common.lua(共通ファイル
    ├ SCH.lua(ジョブロジック)
    └ キャラクター名/
      ├ weather_obi.lua(属性帯
      └ SCH_gear.lua(装備定義)

ジョブロジック

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

function job_setup()
    include('Common.lua')

    state.Buff['睡眠']              = buffactive['睡眠'] or false
    state.Buff['意気昂然の章']      = buffactive['意気昂然の章'] or false
    state.Buff['一心精進の章']      = buffactive['一心精進の章'] or false
    state.Buff['簡素清貧の章']      = buffactive['簡素清貧の章'] or false
    state.Buff['机上演習:蓄積中']   = buffactive['机上演習:蓄積中'] or false
    state.Buff['気炎万丈の章']      = buffactive['気炎万丈の章'] or false
    state.Buff['虚誘掩殺の策']      = buffactive['虚誘掩殺の策'] or false
    state.Buff['勤倹小心の章']      = buffactive['勤倹小心の章'] or false
    state.Buff['疾風迅雷の章']      = buffactive['疾風迅雷の章'] or false
    state.Buff['震天動地の章']      = buffactive['震天動地の章'] or false
    state.Buff['天衣無縫の章']      = buffactive['天衣無縫の章'] or false
    state.Buff['電光石火の章']      = buffactive['電光石火の章'] or false
    state.Buff['不惜身命の章']      = buffactive['不惜身命の章'] or false
    state.Buff['無憂無風の章']      = buffactive['無憂無風の章'] or false
    state.Buff['令狸執鼠の章']      = buffactive['令狸執鼠の章'] or false
    state.Buff['白のグリモア']      = buffactive['白のグリモア'] or false
    state.Buff['黒のグリモア']      = buffactive['黒のグリモア'] or false
    state.Buff['白の補遺']          = buffactive['白の補遺'] or false
    state.Buff['黒の補遺']          = buffactive['黒の補遺'] or false
end

function user_setup()
    --gs c cycle OffenseMode
    state.OffenseMode:options('Normal','Vagary')
    
    --gs c cycle OffenseMode
    state.IdleMode:options('Normal','Refresh')
    
    state.Weapons = M{'White','Black'}

    include(player.name .. '/weather_obi') 
    send_command('wait 5; gs c set IdleMode Normal; gs c lockstyleset;')
end

function job_post_precast(spell, action, spellMap, eventArgs)
    if state.Buff['白のグリモア'] or state.Buff['白の補遺'] then
        equip(sets.precast.FC.White)
        
    elseif state.Buff['黒のグリモア'] or state.Buff['黒の補遺'] then
        equip(sets.precast.FC.Black)
    end
end

function job_post_midcast(spell, action, spellMap, eventArgs)
    for buff,active in pairs(state.Buff) do
        if active and sets.buff[buff] then
            if spell.name == 'インパクト' 
            or (spell.name == 'オーラ' and buff =='電光石火の章')
            or (spell.name == 'オーラ' and buff =='簡素清貧の章') then
                --バフ着替えなし
                --・インパクト
                --・オーラ(電光石火の章)
                --・オーラ(簡素清貧の章)
            else
                equip(sets.buff[buff])
            end
        end
    end 

    if (spell.skill == '精霊魔法' and spellMap ~= 'Helix') or (spellMap == 'Cure' or spellMap == 'Curaga') then
        equip(get_hachirin(spell.element))
    end
end

function job_state_change(stateField, newValue, oldValue)
    if stateField == 'Offense Mode' then
        if newValue == 'Normal' then
            enable('range','ammo','head','neck','left_ear','right_ear','body','hands','left_ring','right_ring','back','waist','legs','feet')
            if player.status == 'Idle'then 
                equip(get_idle_set()) 
            else
                equip(get_melee_set()) 
            end
        else
            equip(sets.Vagary)
            disable('range','ammo','head','neck','left_ear','right_ear','body','hands','left_ring','right_ring','back','waist','legs','feet')
        end
    end
end

function job_buff_change(buff, gain)
    if state.Buff['睡眠'] then
        equip({main=sets.Weapons.Slip})

    elseif buff == "机上演習:蓄積中" then 
        if player.status == 'Idle'then 
            equip(get_idle_set())
        else
            equip(get_melee_set()) 
        end
    end
end

function customize_idle_set(idleSet)
    local weapon = customize_weapon_set()
    idleSet = set_combine(idleSet, weapon)
    if state.Buff['机上演習:蓄積中'] then
        idleSet = set_combine(idleSet, sets.buff['机上演習'])
    end
    return idleSet
end

function customize_melee_set(meleeSet)    
    return meleeSet
end

function customize_weapon_set()
    --武器のセット
    local weapon = sets.Weapons[state.Weapons.value]
    return weapon
end

function job_self_command(cmdParams, eventArgs)
    if cmdParams[1] == 'lockstyleset' then
        if state.Buff['黒のグリモア'] or state.Buff['黒の補遺'] then
            send_command('gs c set Weapons black; input /lockstyleset '..lockstyleset_black)
        else
            send_command('gs c set Weapons white; input /lockstyleset '..lockstyleset_white)
        end        
    elseif cmdParams[1] == 'Idle' then
        Idle()

    elseif cmdParams[1] == 'Medicine' then
        Medicine()

    elseif cmdParams[1] == 'aspir' then
        Aspir()

    elseif cmdParams[1] == 'sc' then
        if cmdParams[2] == 'start' then
            disp_start_skillchain_message(cmdParams[3],cmdParams[4])
        elseif cmdParams[2] == 'end' then
            disp_end_skillchain_message(cmdParams[3],cmdParams[4])
        else
            windower.add_to_chat(123,'invalid argment: ' .. command)
        end
    end
end

--▼▼▼▼▼▼震天動地連携用▼▼▼▼▼
sc_mb = {
    ['溶解'] = {'炎'},
    ['硬化'] = {'氷'},
    ['炸裂'] = {'風'},
    ['切断'] = {'土'},
    ['衝撃'] = {'雷'},
    ['振動'] = {'水'},
    ['貫通'] = {'光'},
    ['収縮'] = {'闇'},
    ['核熱'] = {'炎', '光'},
    ['重力'] = {'土', '闇'},
    ['分解'] = {'風', '雷'},
    ['湾曲'] = {'氷', '水'},
}

function get_auto_translate_char_squence(phrase)
    local at_start = 0xFD
    local at_end = 0xFD
    local at_type = 0x02
    local at_lang = 0x01
    local phrase_id = gearswap.res.auto_translates:with('ja', phrase).id

    if phrase_id then
        local phrase_id_upper = bit.band(bit.rshift(phrase_id, 8), 0xFF)
        local phrase_id_lower = bit.band(phrase_id, 0xFF)
        
        if phrase_id_lower == 0x00 then
            return nil
        else
            return string.char(at_start, at_type, at_lang, phrase_id_upper, phrase_id_lower, at_end)
        end
    end
    return nil
end

function disp_start_skillchain_message(sc_name,count)
    local sc_msg = get_auto_translate_char_squence(sc_name)
    local sc_mb_msg = {}

    for i, v in ipairs(sc_mb[sc_name]) do
        sc_mb_msg[i] = get_auto_translate_char_squence(v)
    end

    local msg = 'input /p '..windower.to_shift_jis(count)..sc_msg
    
    for i,v in ipairs(sc_mb_msg) do
        msg = msg..v
    end
    local start_msg = get_auto_translate_char_squence('準備中です。')

    msg = msg..start_msg..windower.to_shift_jis(' → ')..' <t>'
    send_command(msg)
end

function disp_end_skillchain_message(sc_name,count)
    local sc_msg = get_auto_translate_char_squence(sc_name)
    local sc_mb_msg = {}

    for i, v in ipairs(sc_mb[sc_name]) do
        sc_mb_msg[i] = get_auto_translate_char_squence(v)
    end

    local msg = 'input /p '..windower.to_shift_jis(count)..sc_msg
    
    for i,v in ipairs(sc_mb_msg) do
        msg = msg..v
    end
    local end_msg = get_auto_translate_char_squence('全力で攻撃だ!')

    msg = msg..end_msg..windower.to_shift_jis(' → ')..' <t> '..windower.to_shift_jis('※').. '<recast='..windower.to_shift_jis("戦術魔道書")..'>'
    send_command(msg)
end
--▲▲▲▲▲震天動地連携用▲▲▲▲▲

装備定義

function init_gear_sets()
    lockstyleset_white = 59
    lockstyleset_black = 60

    sets.buff['机上演習'] = {
        head="ACボード+3",
        body="PDガウン+3",
        waist="エンブラサッシュ",
    }
    --Relic
    sets.buff['不惜身命の章'] = {}
    sets.buff['一心精進の章'] = {}
    sets.buff['天衣無縫の章'] = {}
    sets.buff['無憂無風の章'] = {}
    sets.buff['電光石火の章'] = {feet = "PDローファー+3"}
    sets.buff['疾風迅雷の章'] = {feet = "PDローファー+3"}
    --Empyrean 
    sets.buff['意気昂然の章'] = {head = "ABボネット+3"}
    sets.buff['気炎万丈の章'] = {head = "ABボネット+3"}
    sets.buff['令狸執鼠の章'] = {hands= "ABブレーサー+3"}
    sets.buff['震天動地の章'] = {
        main="ハーミットワンド",
        sub="玄冥盾",
        ammo="ストンチタスラム+1",
        head="レノーアの髪飾り",
        body="アダマンアーマー",
        hands={ name="ガズブレスレット+1", augments={'Path: A',}},
        legs={ name="AMスロップス+1", augments={'MP+80','"Mag.Atk.Bns."+25','Enmity-6',}},
        feet="トゥティアサボ",
        neck={ name="バーシチョーカー+1", augments={'Path: A',}},
        waist="コーネリアの黒帯",
        left_ear="ディグニタリピアス",
        right_ear="ハーティーピアス",
        left_ring="シーリチリング+1",
        right_ring="シーリチリング+1",
        back="月明の羽衣",
    }
    sets.buff['簡素清貧の章'] = {legs = "ABパンツ+3"}
    sets.buff['勤倹小心の章'] = {legs = "ABパンツ+3"}
    sets.buff['虚誘掩殺の策'] = {feet = "ABローファー+3"}
    
    sets.Weapons = {}
    sets.Weapons.White = {main={ name="ムサ"},  sub={ name="コーンスー"}}
    sets.Weapons.Black = {main={ name="ブンジロッド"},sub={ name="アムラピシールド"}}
    sets.Weapons.Slip  = {name="プライムスタッフ"}

    sets.TreasureHunter = {
        ammo="完璧な幸運の卵",
        head="ヴォルトキャップ",
        hands="ヴォルトブレーサー",
        waist="チャークベルト",
    }

    sets.idle = {
        ammo="ストンチタスラム+1",
        head={ name="無の面",priority=16},
        body="ABガウン+3",
        hands="ヴォルトブレーサー",
        legs="ABパンツ+3",
        feet="ニャメソルレット",
        neck="シビルスカーフ",
        waist="キャリアーサッシュ",
        left_ear="エテオレートピアス",
        right_ear="ハーティーピアス",
        left_ring="スティキニリング+1",
        right_ring="シュネデックリング",
        back={ name="ルッフケープ", augments={'Eva.+20 /Mag. Eva.+20','Occ. inc. resist. to stat. ailments+10',}},
    }

    sets.idle.Refresh={
        ammo="ホミリアリ",
        head={ name="マーリンフード", augments={'STR+5','Accuracy+6','"Refresh"+2','Accuracy+10 Attack+10',}},
        body="ABガウン+3",
        hands={ name="マーリンダスタナ", augments={'Attack+4','CHR+2','"Refresh"+2',}},
        legs={ name="マーリンシャルワ", augments={'CHR+11','"Cure" potency +2%','"Refresh"+2','Accuracy+16 Attack+16','Mag. Acc.+19 "Mag.Atk.Bns."+19',}},
        feet={ name="マーリンクラッコー", augments={'CHR+12','Accuracy+5','"Refresh"+2',}},
        neck="シビルスカーフ",
        waist="風鳥の帯",
        left_ear="エテオレートピアス",
        right_ear="ハーティーピアス",
        left_ring="スティキニリング+1",
        right_ring="シュネデックリング",
        back={ name="ルッフケープ", augments={'Eva.+20 /Mag. Eva.+20','Occ. inc. resist. to stat. ailments+10',}},
    }

    sets.engaged = {
        ammo="ストンチタスラム+1",
        head="無の面",
        body="ABガウン+3",
        hands="ABブレーサー+3",
        legs="ABパンツ+3",
        feet="ABローファー+3",
        neck="無の喉輪",
        waist="無の腰当",
        left_ear="テロスピアス",
        right_ear="マーケピアス+1",
        left_ring="シーリチリング+1",
        right_ring="シーリチリング+1",
        back="無の外装",
    }

    sets.Vagary={
        main="ハーミットワンド",
        sub="玄冥盾",
        ammo="サピエンスオーブ",
        head={ name="PDボード+3", augments={'Enh. "Altruism" and "Focalization"',}},
        body="ピンガチュニック+1",
        hands="ACブレーサー+3",
        legs="ピンガズボン",
        feet="ACローファー+3",
        neck="オルンミラトルク",
        waist="エンブラサッシュ",
        left_ear="マリグナスピアス",
        right_ear="エンチャンピアス+1",
        left_ring="キシャールリング",
        back={ name="フィフォレケープ+1", augments={'Path: A',}},
    }

    sets.precast.JA['連環計']   = {legs="PDパンツ+3"}
    sets.precast.JA['大悟徹底'] = {body="PDガウン+3"}

    sets.precast.FC = {
        ammo="サピエンスオーブ",
        head={ name="PDボード+3", augments={'Enh. "Altruism" and "Focalization"',}},
        body="ピンガチュニック+1",
        hands="ACブレーサー+3",
        legs="ピンガズボン",
        feet="ACローファー+3",
        neck="オルンミラトルク",
        waist="エンブラサッシュ",
        left_ear="マリグナスピアス",
        right_ear={ name="オノワイヤリング+1", augments={'Path: A',},priority=16},
        left_ring="キシャールリング",
        right_ring="メダダリング",
        back={ name="フィフォレケープ+1", augments={'Path: A',}},
    }
    sets.precast.FC.White={ main="ムサ"}
    sets.precast.FC.Black={ main={ name="ガーダ", augments={'"Fast Cast"+5','Mag. Acc.+14','"Mag.Atk.Bns."+14','DMG:+17',}},sub="チャンターシールド",}
    sets.precast.FC['ディスペガ'] = set_combine( sets.precast.FC,{main="デイブレイクワンド",})
    sets.precast.FC['インパクト'] = set_combine( sets.precast.FC,{head=empty,body="クレパスクラプリス",})
    
    sets.precast.WS.Magic={
        ammo={ name="ガストリタスラム+1", augments={'Path: A',}},
        head="ABボネット+3",
        body="ABガウン+3",
        hands="ABブレーサー+3",
        legs="ABパンツ+3",
        feet="ABローファー+3",
        neck={ name="アギュトストール+2", augments={'Path: A',}},
        waist="スクリミルコード",
        left_ear="マリグナスピアス",
        right_ear="王将の耳飾り",
        left_ring="フレキリング",
        right_ring="メダダリング",
        back={ name="ルッフケープ", augments={'INT+20','Mag. Acc+20 /Mag. Dmg.+20','INT+10','"Mag.Atk.Bns."+10',}},
    }

    sets.precast.WS['ロッククラッシャー']   = set_combine(sets.precast.WS.Magic , { neck="クアンプネックレス"})
    sets.precast.WS['アースクラッシャー']   = set_combine(sets.precast.WS.Magic , { neck="クアンプネックレス"})
    sets.precast.WS['カタクリスム']         = set_combine(sets.precast.WS.Magic , {head="妖蟲の髪飾り+1",right_ring="アルコンリング",})
    sets.precast.WS['シャインストライク']   = set_combine(sets.precast.WS.Magic , {})
    sets.precast.WS['セラフストライク']     = set_combine(sets.precast.WS.Magic , {})
    sets.precast.WS['フラッシュノヴァ']     = set_combine(sets.precast.WS.Magic , {})

    sets.midcast.Cure = {
        ammo="ストンチタスラム+1",
        head={ name="ヴァニヤフード", augments={'Healing magic skill +20','"Cure" spellcasting time -7%','Magic dmg. taken -3',}},
        body={ name="ヴァニヤローブ", augments={'Healing magic skill +20','"Cure" spellcasting time -7%','Magic dmg. taken -3',}},
        hands={ name="テルキネグローブ", augments={'"Cure" potency +7%','Enh. Mag. eff. dur. +10',}},
        legs={ name="ヴァニヤスロップス", augments={'Healing magic skill +20','"Cure" spellcasting time -7%','Magic dmg. taken -3',}},
        feet={ name="ヴァニヤクロッグ", augments={'Healing magic skill +20','"Cure" spellcasting time -7%','Magic dmg. taken -3',}},
        neck="オルンミラトルク",
        waist="コーネリアの黒帯",
        left_ear="メンデカントピアス",
        right_ear={ name="オノワイヤリング+1", augments={'Path: A',}},
        left_ring="スティキニリング+1",
        right_ring="レベッチェリング",
        back="ソレムニティケープ",
    }

    sets.midcast['弱体魔法'] = {
        main="ブンジロッド",
        sub="アムラピシールド",
        ammo="クォーツタスラム+1",
        head={name="無の面",priority=15},
        body="ABガウン+3",
        hands="ABブレーサー+3",
        legs="ABパンツ+3",
        feet="ABローファー+3",
        neck="無の喉輪",
        waist="無の腰当",
        left_ear="マリグナスピアス",
        right_ear={ name="オノワイヤリング+1", augments={'Path: A',},priority=16},
        left_ring="キシャールリング",
        right_ring="メダダリング",
        back="無の外装",
    }
    
    sets.midcast['ディスペガ'] = set_combine(sets.midcast['弱体魔法'],{main="デイブレイクワンド",})

    sets.midcast.Dia = set_combine(sets.midcast['弱体魔法'],{})

    sets.midcast.Sleep  = set_combine(sets.midcast['弱体魔法'],{legs={ name="カイロンホーズ", augments={'Mag. Acc.+23 "Mag.Atk.Bns."+23','Enmity-1','INT+7','Mag. Acc.+14',}}})

    sets.midcast.Bind   = set_combine(sets.midcast['弱体魔法'],{ammo="ペムフレドタスラム"})

    sets.midcast.Break   = set_combine(sets.midcast['弱体魔法'],{ammo="ペムフレドタスラム"})

    sets.midcast['スタン']      = set_combine(sets.midcast['弱体魔法'],{ammo="ペムフレドタスラム"})

    sets.midcast["インパクト"]  = set_combine(sets.midcast['弱体魔法'],{head=empty,body="クレパスクラプリス",})

    sets.midcast['精霊魔法'] = {
        main="ブンジロッド",
        sub="アムラピシールド",
        ammo={ name="ガストリタスラム+1", augments={'Path: A',}},
        head="PDボード+3",
        body="ABガウン+3",
        body="ABガウン+3",
        hands="ABブレーサー+3",
        legs="ABパンツ+3",
        feet="ABローファー+3",
        neck={ name="アギュトストール+2", augments={'Path: A',}},
        waist="スクリミルコード",
        left_ear="マリグナスピアス",
        right_ear="王将の耳飾り",
        left_ring="フレキリング",
        right_ring="メダダリング",
        back={ name="ルッフケープ", augments={'INT+20','Mag. Acc+20 /Mag. Dmg.+20','INT+10','"Mag.Atk.Bns."+10',}},
    }

    sets.midcast['メルトン'] =  sets.midcast['精霊魔法']

    sets.midcast.Helix = set_combine(sets.midcast['精霊魔法'] ,{
        sub="カルミナス",
        right_ear={ name="アバテルピアス+1", augments={'System: 1 ID: 1676 Val: 0','Mag. Acc.+12','Enmity-2',}},
        waist="スクリミルコード",
        back="ブックワームケープ"
    })

    sets.midcast["光門の計II"] = set_combine(sets.midcast.Helix,{main="デイブレイクワンド"})

    sets.midcast.Drain = set_combine(sets.midcast['精霊魔法'] ,{
        main="ルビカンディティー",
        legs={ name="PDパンツ+3", augments={'Enhances "Tabula Rasa" effect',}},
        feet={ name="マーリンクラッコー", augments={'Mag. Acc.+30','"Drain" and "Aspir" potency +11','INT+5','"Mag.Atk.Bns."+2',}},
        neck="エーラペンダント",
        waist="風鳥の帯",
        left_ring="エバネセンスリング",
        right_ring="アルコンリング",
    })

    sets.midcast['強化魔法'] = {
        head={ name="テルキネキャップ", augments={'"Conserve MP"+5','Enh. Mag. eff. dur. +10',}},
        body={ name="PDガウン+3", augments={'Enhances "Enlightenment" effect',}},
        hands={ name="テルキネグローブ", augments={'"Cure" potency +7%','Enh. Mag. eff. dur. +10',}},
        legs={ name="テルキネブラコーニ", augments={'"Conserve MP"+5','Enh. Mag. eff. dur. +10',}},
        feet={ name="テルキネピガッシュ", augments={'"Conserve MP"+5','Enh. Mag. eff. dur. +10',}},
        neck="インカンタートルク",
        waist="エンブラサッシュ",
        left_ear="アンドアーピアス",
        right_ear="ミミルピアス",
        left_ring="守りの指輪",
        right_ring={ name="ゼラチナスリング+1", augments={'Path: A',}},
        back={ name="月明の羽衣",priority=16},
    }

    sets.midcast.Storm      = set_combine(sets.midcast['強化魔法'], {feet="PDローファー+3"})
    sets.midcast.Regen      = set_combine(sets.midcast['強化魔法'], {head="ABボネット+3",body="テルキネシャジュブ",back="ブックワームケープ"})
    sets.midcast.Refresh    = set_combine(sets.midcast['強化魔法'], {head="AMコイフ+1", legs="シェダルサラウィル",})
    sets.midcast.BarElement = set_combine(sets.midcast['強化魔法'], {legs="シェダルサラウィル",})
    sets.midcast.Stoneskin  = set_combine(sets.midcast['強化魔法'], {legs="シェダルサラウィル", neck='ノデンズゴルゲット', left_ear='アースクライピアス', waist="ジーゲルサッシュ",})
    sets.midcast.Refresh    = set_combine(sets.midcast['強化魔法'], {head="AMコイフ+1"})
    sets.midcast['アクアベール']   = set_combine(sets.midcast['強化魔法'], {head="AMコイフ+1", legs="シェダルサラウィル"})

    sets.midcast.Cursna={
        hands="ヒエロスミトン",
        feet="GEガロッシュ+1",
        neck="デビリスメダル",
        left_ring="メネロスリング",
        right_ring="ハオマリング",
        back="オレタニアケープ+1",
    }
end

コメント

コメント一覧 (48件)

  • お世話になっております。
    以前にご修正いただいた「強化魔法の時も属性帯に着替える」が、再発しているようです。
    水曜日に
    砂塵の陣でアクアベールを詠唱すると、水輪の帯を装備(!?)
    極光の陣でプロシェルを詠唱すると、光輪の帯を装備(!!?)
    極光の陣でストンスキンを詠唱すると、ジーゲルサッシュを装備(期待通り)
    砂塵の陣でストンスキンを詠唱すると、土輪の帯を装備(!!!?)
    となっております。
    大変お手数とは存じますが、ご確認いただきたくよろしくお願いいたします。

    • あれ、色々と弄っているうちにまたおかしくなっていましたね。
      取り急ぎ更新しておきましたので、また見ておいてください。

      • お世話になっております。
        早々にご対応いただき、ありがとうございました。
        天候、陣を考慮した着替えが期待通りに実施されるようになりました!
        また、オーラの際に効果時間延長を優先する着替えも、期待通りに実施されることを確認させていただきました。
        ありがとうございました!
        参考になる記事が多く、これからも更新を楽しみにしております!

  • お世話になります。
    バフ効果を高める装備に自動着替えですが一時的に動作を止める場合をご教授お願いします。
    例)強化魔法の時簡素清貧の章、電光石火の章のバフ効果より延長効果装備を優先したい。
    よろしくお願いいたします。

    • 複合条件を組み合わせればやり方はいくらでもあるのですが、条件式が複雑になるので細かい条件が必要になります。

      たとえば、電光石火の章によるバフ効果が不要ならば、sets.buff[‘電光石火の章’] ={}とすれば良いのですが、単純にそう言う話でもないのですよね?

      具体的にどのようなシチュエーションの場合に、バフ効果よりも延長装備を採用したいのですか?
      ここが分からない限り、条件式を組むことができません。

      方法としては、次の2点があります

      ①フラグを設けてそのフラグの時だけ特定のバフ着替えを無視する方法(ただしフラグの切り替えは手動)
      ②●●の時着替えない

      • 具体的に言いますと今のコードで簡素電光オーラを使いますと効果時間が短くなります。
        アビ使わない選択肢もあるのでしょうが+の効果もあるのでアビ効果よりも延長をとりたいイメージです。
        判りにくくて申し訳ありません。

        • なるほどですね。
          時短節約系のバフ活かすより、確かに効果延長させた方がメリットが多いですね。
          学者のコードを反映させて更新しておきました。
          また確認しといてください。

          • 動作確認出来ました。ありがとうございました。続けてになりますが
            sets.midcast.BarElement = set_combine(sets.midcast[‘強化魔法’], {legs=”シェダルサラウィル”,})
            sets.midcast.Phalanx = sets.midcast[‘強化魔法’]
            sets.midcast[‘オーラ’] = sets.midcast[‘強化魔法’]
            //gs equip sets.midcast.Phalanx で着替え確認できますが[‘強化魔法’][‘オーラ’]の場合が解りません。
            よろしくお願いいたします。

          • gs equip sets.midcast[‘オーラ’]
            で普通に着替えられませんか?

            sets.midcast[‘強化魔法’][‘オーラ’]と定義すれば
            gs equip sets.midcast[‘強化魔法’][‘オーラ’]で着替えられます。

          • そのままでよかったんですね。
            着替え出来ました。ありがとうございました。

  • お世話になります。
    震天動地連携マクロの節約(/gs c ssc start, /gs c sc end)のcountは属性魔法のマクロパレット節約術にあるalias Mag_1026 gs c sc end 核熱 ③;等の③を表示するのでしょうか。
    こちらの環境ではcountと出力されています。
    よろしくお願いいたします。

    • 溶解→核熱のメッセージが微妙だったので、数日前に震天動地部分の内容を変更しました。
      学者のコードも合わせて更新していますので、ご確認いただければと思います。

      最新版では次のように表示されます。
      ①【溶解】【炎】【準備中です】→ターゲット名
      ②【溶解】【炎】【全力で攻撃だ!】→ターゲット名
      ②【核熱】【炎】【光】【全力で攻撃だ!】→ターゲット名

      • 返信ありがとうございます。
        186行目 local msg = ‘input /p ‘..windower.to_shift_jis(count)..sc_msg
        206行目 local msg = ‘input /p ‘..windower.to_shift_jis(count)..sc_msg
        bad argument #1 to ‘to_shift_jis'(string expected, got nil)
        上記エラーが出るので(count)を186行目(‘①’)206行目(‘②’)として使用しています。

        • あれ?おかしいですね。
          もしかするとブログキャッシュの関係で、おそらく最新版で表示されていない可能性があります。
          今キャッシュをクリアしたので、コードが変わっているかもう一度確認お願いします。

          • ありがとうございます。動作確認出来ました。
            気が付くと有用な情報が更新されていることも多く勉強になります。
            今後の記事、更新を楽しみにしています。

  • お世話になっております
    234行~の計略装備で腰の着替えを指定しても属性帯が優先されてしまうのはどうしようもないですかね?

    • 属性帯に着替える条件が、天候や陣に合致する場合になりますので、天候や陣に該当しない計略を詠唱する場合はsets.midcast.Helixで実行可能です。

        • 何をやりたいのかによると思うのですが、属性帯を使いたくないのであれば、属性帯に着替えないようにコメントアウトするか、スイッチで切り替えられるフラグを追加して制御するなどの方法はあります。
          ただし、曜日と強天候(陣2)が重なる場合、最大35%のダメージアップになりますので、属性帯より有益な腰装備はないと思います。

        • 失礼しました。
          計略は属性帯の効果が無いんでしたね。
          勘違いしていたので、実装してアップしておきます。

  • 度々申し訳ございません。
    強化魔法につきまして教えていただければと存じます。
    光曜日にプロテスを使用した場合、属性帯着替えてしまい
    土曜日にストンスキンを使用した場合も属性帯等に着替えてしまうのですが
    強化魔法については曜日や天候を考慮せず、指定した帯にて使用する事は可能でございますでしょうか

    • あぁ、これは確かにそうですね。
      強化魔法の時も属性帯に着替えるようになっています。
      単純にバグです。
      修正版でコード更新しましたので、また見ておいてください。

      ご報告ありがとうございます!

  • お世話になります。
    早々のご返事ありがとうございます。
    無事動きました誠に有難うございます。

    ジョブロジックを見返しておりましたら、記載が御座いました
    見落としており、お手数をおかけ致しました。

  • お世話になります。
    装備セット下記の箇所にてご質問がございます。
    sets.Weapons = {}
    sets.Weapons.White = { main={name=”ムサ”}, sub={ name=”コーンスー”}}
    sets.Weapons.Black = { main={name=”デイブレイクワンド”},sub={ name=”アムラピシールド”}}

    でございますがこちらは
    白のグリモア中はaftercast時にムサに戻る
    黒のグリモア中はデイブレイクワンドに戻る
    という解釈でおりましたが違いますでしょうか
    黒のグリモア中でも白のグリモア中でもどうしてもムサに戻ってしまう状況となっております。
    私の知識不足で恐縮で御座いますが、ご教授頂ければ幸いで御座います。

    • こんにちは。
      グリモア中の待機装備についてはご認識の通りです。

      次のようにして切り替えています。

      白のグリモアマクロ
      /ja 白の補遺
      /ja 白のグリモア

      /console gs c white

      黒のグリモアマクロ
      /ja 黒のグリモア
      /ja 黒の補遺
      /console gs c black

      一度お試しください。

  • やっと原因がわかりました
    精霊系のマクロパレット節約術で公開されれる
    火 36行 waitの w 抜け
    風 35行 inputの i 重なり
    闇 12行 inputの i 重なり
    を直したところ正常に動きました
    追加で 光 12行 wait 抜け 15行 wait不要

    • 申し訳ない。定期的にこちらの環境のファイルをいじっているので、反映されていなかったのかもしれません。
      よく原因分かりましたね!
      ブログの方も最新で反映しておきます。

  • 一応自分なりに解決したのでご報告を
    まずロジックの129~207まで消去
    この状態でもアビリティ時の着替えが出来なかったので
    装備セットの11行目に
    sets.buff.FullSublimation = {}
    を追加したところアビリティ時の着替えが出来るようになりました
    軽く動かしたところ問題ないように思います
    もし同じ症状が出た人がいた時の為に書き込みさせていただきます

    • すごいですね。
      ありがとうございます。
      sets.buff.FullSublimation = {}の部分がよく分からないけど、ちゃんと動かない可能性があるのであれば、一度見直してみます。

  • やっぱ環境ですかね アビリティ時の着替えも行われてない感じです
    前回のコルセアや自分で組んだ戦士はちゃんとアビリティ時の着替えが出来てるので学者だけ出来ないのが謎
    一度自分でシンプルに組んでみます、毎回面倒な質問ばかりしてすみません有難うございました

    • そうですか・・・

      考えられる原因は「for i, v in ipairs(sc_mb[sc_name]) do」付近なので配列変数の中身だと思うのですが、この辺の値デバッグしまくるしかないですね・・・
      nilは値がセットされていないということなので、何かしらおかしいことになっていると思うんです。

      環境面もあるかもしれませんが、他のコードが動いているので、原因はやはりこの辺かなと。。。

      • sc_nameは取れているので、sc_mbがかなり怪しいです。
        どうしてsc_mbがおかしいのか分かりませんが、sc_mbの値デバッグできますか?

  • 一番最初のエラーに戻りました

    よしざうるすさんのMote-libs-jpはGearSwap/libsの中にそのまま全部(12個のファイル)入れて大丈夫です?
    Mote-libs-jp/Mote-libs-jp内の11個のファイルを入れるのが正しいですか?

    • 私がいつどうやっていれたのか覚えてないのですが、Mote-Mappingsが日本語になっていることから、https://github.com/yyoshisaur/Mote-libs/tree/jpにあるものを入れたんだと思います。
      10個のファイルとrev1フォルダがあります。

      GearSwapフォルダをバックアップしてから、試してもらっても良いですか?

  • GearSwap: /Lua runtime error: GearSwap/flow.lua:321:
    GearSwap: has detected an error in the user function self_command:
    D: 略 /GearSwap:/user_function.lua395: bad argument #1 to ‘to_shift_jis’ (string expected, got nil)
    に変わりました

    • 先ほどのデバッグを消して、180行目と181行目の間に次を入れてみてください。
      windower.add_to_chat(123,v)

      for i, v in ipairs(sc_mb[sc_name]) do
      を通過しているかみたいです。
      多分通過してないと思いますが・・・

      • とりあえず、メッセージ作成のエラーが原因不明です。
        これについてはもう少し考えてみます。

        FF11側のマクロで震天1のalias Mag_96と、震天2のalias Mag_98を消して実行したら、着替えは行われているかも合わせて確認しといてください。

    • 今エラーが出ている箇所は、連携作成のチャットメッセージを作っている箇所です。
      震天の着替えができているかどうかとは別の問題なのですが、エラーが起きた移行の処理がちゃんと動いていない可能性があるので、まずエラーを解決しなければいけません。

      sc_nameは取れているっぽいですね。
      次に、これもデバッグしてみてください
      windower.add_to_chat(123,sc_mb[sc_name])

  • おはようございます
    マクロの設置は大丈夫です、他の精霊はちゃんとスイッチされて実行されます

    • エラー内容が、ipairs(sc_mb[sc_name])で配列の中身を確認するときに、値がないっていうエラーなので、次のうちどちらかに値が入っていません。
      ・sc_mb
      ・sc_name
      sc_mbはプログラムに直書きしているので、nilになることはないと思います。
      なので、考えられるのはスクリプトを経由するsc_nameです。
      179行目にwindower.add_to_chat(123,sc_name)を入れて値が取れているか確認してみてください。

  • 度々すみません。
    学者の方を組んでみたところ自分の装備でも装備セット丸写しでも
    震天連携①②の発動時に
    GearSwap: /Lua runtime error: GearSwap/flow.lua:311:
    GearSwap: has detected an error in the user function self_command:
    D: 略 /data.SCH.lua:180: bad argument #1 to ‘inpairs’ (table expected, got nil)
    のエラーが出ます ①の時が180 ②の時が197
    魔法自体は打ちますが 震天時の装備に着替えてない感じです
    御教授頂けると幸いです
    あと震天時のlegsが2行記載されてます

コメントする

目次