2025/6/2 全ロジックジョブファイル sets.Weapons → gear に変更しました。共通ファイルをコピペする人は置換してご利用ください。

【GearSwap】魔道剣士のMote-libs用コード

魔道剣士のMote-libsコードです。

目次

ソースコード

ファイル構成

GearSwap/
  └ data/
    ├ user-globals.lua共通ファイル
    ├ RUN.lua(ジョブロジック)
    └ キャラクター名/
      └ RUN_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
    
    -- gs c cycle OffenseMode
    state.OffenseMode:options('Normal','Stp','Parry')
    
    -- gs c cycle IdleMode
    state.IdleMode:options('Normal','Refresh')
    
    -- gs c cycle WeaponskillMode
    state.WeaponskillMode:options('Normal', 'SubtleBlow')

    -- gs c cycle MainWeapons
    state.MainWeapons   = M{'Epeolatry'}

    -- gs c cycle SubWeapons
    state.SubWeapons    = M{'Khonsu','BalaramaGrip'}

    -- gs c cycle RuneText
    state.RuneText = M(false, 'ルーン')
end


function job_post_midcast(spell, action, spellMap, eventArgs) 
    for buff,active in pairs(state.Buff) do
        if active and sets.buff[buff] then
            equip(sets.buff[buff])
        end
    end

    if string.find(spell.type, 'Magic') then
        local fc=70/100
        if buffactive['ファストキャスト'] then
            --フサルクトラウザ装備時メリポのインスパイア1につき+12%
            fc = fc + 12/100
        end
        if player.sub_job == '赤' then
            fc = fc + 15/100
        end
        if fc >= 80/100 then
            fc = 80/100
        end
        --equip(sets.Hpboost)

        equip(sets.midcast.interruption)
        local adjust=0.9
        local cast_time = (spell.cast_time*(1-fc))*adjust    
        
        if spellMap == 'Cure' then
            eventArgs.handled = true
            send_command('wait '..cast_time..'; gs equip sets.Hpboost; gs equip sets.midcast.Cure')

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

        elseif spell.name == 'ストンスキン' then
            eventArgs.handled = true
            send_command('wait '..cast_time..'; gs equip sets.Hpboost; gs equip sets.midcast.Stoneskin')

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

        elseif spell.skill == '強化魔法' then
            eventArgs.handled = true
            send_command('wait '..cast_time..'; gs equip sets.Hpboost; gs equip sets.midcast.EnhancingMagic')
        else
            eventArgs.handled = true
            send_command('wait '..cast_time..'; gs equip sets.Hpboost; gs equip sets.Enmity')
        end
    end
end


function job_buff_change(buff, gain)
    if buff == 'バットゥタ' and gain then
        send_command('gs c set OffenseMode Parry')

    elseif buff == 'バットゥタ' and not gain then
        send_command('gs c set OffenseMode Normal')

    elseif (buff == 'エンボルド' and gain) or state.Buff['エンボルド'] then
        equip(sets.buff['エンボルド'])
        disable('back')

    elseif buff == 'エンボルド' and not gain then
        enable('back')
        Idle()
    end
end


function custom_self_command(cmdParams, eventArgs)
    if cmdParams[1] =='RuneText' then --【剣】ルーンカンニングペーパ-
        if state.RuneText.value then
            showTextRune()
        else
            hideTextRune()
        end
    end
end


--▼▼▼▼▼▼ルーンカンニングペーパー▼▼▼▼▼
local RUnetexts = require('texts')
message={
    [1] = {name='イグニス ', desc1='火:',desc2='(氷:',desc3='麻痺、バインド)'},
    [2] = {name='ゲールス ', desc1='氷:',desc2='(風:',desc3='静寂、ヘヴィ)'},
    [3] = {name='フラブラ ', desc1='風:',desc2='(土:',desc3='石化、テラー、スロウ)'},
    [4] = {name='テッルス ', desc1='土:',desc2='(雷:',desc3='スタン)'},
    [5] = {name='スルポール', desc1='雷:',desc2='(水:',desc3='毒)'},
    [6] = {name='ウンダ  ', desc1='水:',desc2='(火:',desc3='病気、悪疫、アムネジア)'},
    [7] = {name='ルックス ', desc1='光:',desc2='(闇:',desc3='呪い、睡眠)'},
    [8] = {name='テネブレイ', desc1='闇:',desc2='(光:',desc3='魅了、睡眠)'},
}
text_box = RUnetexts.new('${text}',{text={font='Meiryo', size=10}, pos={x=10, y=220}, padding = 5, bg={alpha=180}})
text_box.text='属性      耐性\n'..
'\\cs(255,128,128)'..message[1].desc1..message[1].name..message[1].desc2..message[1].desc3..'\\cr'..'\n'..
'\\cs(128,255,255)'..message[2].desc1..message[2].name..message[2].desc2..message[2].desc3..'\\cr'..'\n'..
'\\cs(128,255,128)'..message[3].desc1..message[3].name..message[3].desc2..message[3].desc3..'\\cr'..'\n'..
'\\cs(255,255,128)'..message[4].desc1..message[4].name..message[4].desc2..message[4].desc3..'\\cr'..'\n'..
'\\cs(255,128,255)'..message[5].desc1..message[5].name..message[5].desc2..message[5].desc3..'\\cr'..'\n'..
'\\cs(128,128,255)'..message[6].desc1..message[6].name..message[6].desc2..message[6].desc3..'\\cr'..'\n'..
'\\cs(255,255,255)'..message[7].desc1..message[7].name..message[7].desc2..message[7].desc3..'\\cr'..'\n'..
'\\cs(128,128,128)'..message[8].desc1..message[8].name..message[8].desc2..message[8].desc3..'\\cr'

function showTextRune()
    text_box:show()
end

function hideTextRune()
    text_box:hide()
end
--▲▲▲▲▲ルーンカンニングペーパー▲▲▲▲▲

装備定義

function init_weaponns()
    --デフォルト武器を設定
    send_command('gs c set MainWeapons Epeolatry')
    send_command('gs c set SubWeapons BalaramaGrip')
end


function init_gear_sets()
    --ロックスタイル番号
    lockstyleset = 151

    --武器
    gear.Epeolatry          = {name="エピオラトリー"}
    gear.BalaramaGrip       = {name="バララマグリップ"}
    gear.Khonsu             = {name="コーンスー"}
    
    --待機装備(通常)
    sets.idle = {
        ammo="ストンチタスラム+1",
        head="無の面",
        body="ERサーコート+3",
        hands="ERガントレ+3",
        legs="ERレグガード+3",
        feet="ERグリーヴ+3",
        neck={ name="ウォーダチャーム+1", augments={'Path: A',}},
        waist={ name="プラチナモグベルト",priority=16},
        left_ear={ name="オノワイヤリング+1", augments={'Path: A',},priority=14},
        right_ear={ name="トゥイストピアス",priority=15},
        left_ring="ワーデンリング",
        right_ring="シュネデックリング",
        back={ name="オーグマケープ", augments={'VIT+20','Eva.+20 /Mag. Eva.+20','VIT+10','Enmity+10','DEF+50',}},
    }

    --待機装備(リフレ)
    sets.idle.Refresh = set_combine(sets.idle, {
        head="無の面",
        body="RNコート+3",
        hands={ name="ヘルクリアグローブ", augments={'Spell interruption rate down -6%','Attack+5','"Refresh"+2','Accuracy+8 Attack+8',}},
        legs={ name="ヘルクリアトラウザ", augments={'Pet: VIT+10','"Subtle Blow"+10','"Refresh"+2','Accuracy+8 Attack+8',}},
        feet={ name="ヘルクリアブーツ", augments={'"Mag.Atk.Bns."+17','STR+9','"Refresh"+2',}},
        neck="シビルスカーフ",
    })
    
    --走り回る用
    sets.Kiting={right_ring="シュネデックリング",}

    --抜刀装備
    sets.engaged = {
        ammo="ストンチタスラム+1",
        head="無の面",
        body="ERサーコート+3",
        hands="ERガントレ+3",
        legs="ERレグガード+3",
        feet="ERグリーヴ+3",
        neck={ name="ウォーダチャーム+1", augments={'Path: A',}},
        waist={ name="プラチナモグベルト",priority=16},
        left_ear="シェリダピアス",
        right_ear={ name="トゥイストピアス",priority=15},
        left_ring="ワーデンリング",
        right_ring={ name="月明の指輪",priority=14},
        back={ name="オーグマケープ", augments={'VIT+20','Eva.+20 /Mag. Eva.+20','VIT+10','Enmity+10','DEF+50',}},
    }
    sets.engaged.Stp = {
        ammo="コイストボダー",
        head="無の面",
        body="アシェーラハーネス",
        hands={ name="アデマリスト+1", augments={'DEX+12','AGI+12','Accuracy+20',}},
        legs="ERレグガード+3",
        feet="ERグリーヴ+3",
        neck="コンバタントトルク",
        waist={ name="プラチナモグベルト",priority=16},
        left_ear="シェリダピアス",
        right_ear={ name="トゥイストピアス",priority=15},
        left_ring="シーリチリング+1",
        right_ring="シーリチリング+1",
        back="無の外装",
    }
    sets.engaged.Parry = set_combine(sets.engaged,{ head="無の面", hands="トゥルムミトン+1",legs="ERレグガード+3",feet="トゥルムレギンス+1",})
    
    --敵対心装備
    sets.Enmity = {
        ammo="サピエンスオーブ",
        head="ハリタスヘルム",
        body="エメットハーネス+1",
        hands="クーリスグローブ",
        legs="ERレグガード+3",
        feet="ERグリーヴ+3",
        neck="月光の首飾り",
        waist={ name="プラチナモグベルト",priority=16},
        left_ear={ name="オノワイヤリング+1", augments={'Path: A',},priority=15},
        right_ear={ name="クリプティクピアス",priority=12},
        left_ring={ name="ゼラチナスリング+1", augments={'Path: A',},priority=14},
        right_ring={ name="アイワツリング",priority=13},
        back={ name="オーグマケープ", augments={'VIT+20','Eva.+20 /Mag. Eva.+20','VIT+10','Enmity+10','DEF+50',}},
    }

    --HPブースト装備(着替えHP低下対策用)
    sets.Hpboost={
		neck={ name="アンムーヴカラー+1",priority=14},
        waist={ name="プラチナモグベルト",priority=16},
        left_ring={ name="ゼラチナスリング+1", augments={'Path: A',},priority=13},
        right_ring={ name="月明の指輪",priority=12},
        back={ name="月明の羽衣",priority=15},
    }

	--監視用バフ
    sets.buff['エンボルド'] = {back="ディバートケープ"}

	--即時発動系バフ
    sets.precast.JA = sets.Enmity
    sets.precast.JA['E.スフォルツォ']       = set_combine(sets.Enmity,{body="FUコート+3"})
    sets.precast.JA['ヴァリエンス']         = set_combine(sets.Enmity,{body="RNコート+3",legs="FUトラウザ+3"})
    sets.precast.JA['ヴァレション']         = set_combine(sets.Enmity,{body="RNコート+3",legs="FUトラウザ+3"})
    sets.precast.JA['ガンビット']           = set_combine(sets.Enmity,{hands="RNミトン+3"})
    sets.precast.JA['ソードプレイ']         = set_combine(sets.Enmity,{hands="FUミトン+3"})
    sets.precast.JA['バットゥタ']           = set_combine(sets.Enmity,{head="FUバンド+3"})
    sets.precast.JA['ビベイシャス']         = set_combine(sets.Enmity,{head="ERガレア+3",legs="RNトラウザ+2",neck="インカンタートルク",left_ring="スティキニリング+1",})
    sets.precast.JA['フルーグ']             = set_combine(sets.Enmity,{feet="RNブーツ+2"})
    sets.precast.JA['レイク']               = set_combine(sets.Enmity,{feet="FUブーツ+3"})

    --FC
    sets.precast.FC = {
        ammo="サピエンスオーブ",
        head="RNバンド+3",
        body="ERサーコート+3",
        hands={ name="レイライングローブ", augments={'Accuracy+15','Mag. Acc.+15','"Mag.Atk.Bns."+15','"Fast Cast"+3',}},
        legs={ name="ニャメフランチャ", augments={'Path: B',}},
        feet={ name="カマイングリーヴ", augments={'HP+60','STR+10','INT+10',}},
        neck="オルンミラトルク",
        waist={ name="プラチナモグベルト",priority=16},
        left_ear={ name="オノワイヤリング+1", augments={'Path: A',},priority=15},
        right_ear={ name="エテオレートピアス",priority=13},
        left_ring="メダダリング",
        right_ring={ name="月明の指輪",priority=14},
        back={ name="オーグマケープ", augments={'HP+60','Eva.+20 /Mag. Eva.+20','"Fast Cast"+10','Damage taken-5%',}},
    }
  
    --WSダメージ
    sets.precast.WS.Damage = {
        ammo="オシャシャの原論文",
        head="ニャメヘルム",
        body="ニャメメイル",
        hands="ニャメガントレ",
        legs="ニャメフランチャ",
        feet="ニャメソルレット",
        neck="無の喉輪",
        waist={ name="セールフィベルト+1", augments={'Path: A',}},
        left_ear="シェリダピアス",
        right_ear={ name="胡蝶のイヤリング", augments={'Accuracy+4','TP Bonus +250',}},
        left_ring="イラブラットリング",
        right_ring="王将の指輪",
        back="無の外装",
    }
    
    --WSクリティカル
    sets.precast.WS.Critical = {
    }

    --WS魔攻
    sets.precast.WS.Magic = {
        ammo="コイストボダー",
        head="ニャメヘルム",
        body="ニャメメイル",
        hands="ニャメガントレ",
        legs="ニャメフランチャ",
        feet="ニャメソルレット",
        neck="シビルスカーフ",
        waist={ name="セールフィベルト+1", augments={'Path: A',}},
        left_ear={ name="胡蝶のイヤリング", augments={'Accuracy+4','TP Bonus +250',}},
        right_ear="フリオミシピアス",
        left_ring={ name="メタモルリング+1", augments={'Path: A',}},
        right_ring="メダダリング",
        back="無の外装",
    }

    --WSモクシャ
    sets.precast.WS.SubtleBlow = 
    {
        neck={ name="バーシチョーカー+1", augments={'Path: A',}},
        waist="サリサフロイベルト",
        left_ear="ディグニタリピアス",
        right_ear="シェリダピアス",
        left_ring="シーリチリング+1",
        right_ring="シーリチリング+1",
    }

    --共通WS定義読み込み
    init_weapon_skill()

    --詠唱中断
    sets.midcast.interruption = {
        ammo="ストンチタスラム+1",
        head="ERガレア+3",
        body="アダマンアーマー",
        hands={ name="ローハイドグローブ", augments={'HP+50','Accuracy+15','Evasion+20',}},
        legs={ name="カマインクウィス+1", augments={'HP+80','STR+12','INT+12',}},
        feet="ERグリーヴ+3",
        neck="月光の首飾り",
        waist="オドンブラサッシュ",
        left_ear={ name="オノワイヤリング+1", augments={'Path: A',},priority=14},
        right_ear="磁界の耳",
        left_ring="守りの指輪",
        right_ring={ name="月明の指輪",priority=15},
        back={ name="月明の羽衣",priority=16}
	}

    --強化魔法
    sets.midcast.EnhancingMagic = {
        ammo="ストンチタスラム+1",
        head="ERガレア+3",
        body="アダマンアーマー",
        hands="RNミトン+3",
        legs={ name="FUトラウザ+3", augments={'Enhances "Inspire" effect',}},
        feet="ERグリーヴ+3",
        neck="インカンタートルク",
        waist="コーネリアの黒帯",
        left_ear="ミミルピアス",
        right_ear={ name="エリラズピアス+1", augments={'System: 1 ID: 1676 Val: 0','Accuracy+12','Mag. Acc.+12','Damage taken-4%',}},
        left_ring="守りの指輪",
        right_ring={ name="月明の指輪",priority=15},
        back={ name="月明の羽衣",priority=16}
    }

    --ストンスキン
    sets.midcast.Stoneskin= set_combine(sets.midcast.EnhancingMagic ,{
        body="アダマンアーマー",
        hands="ストーンマフラ",
        legs="ヘイヴンホーズ",
        neck="ストーンゴルゲット",
        waist="ジーゲルサッシュ",
        left_ear="アースクライピアス",
        back={ name="月明の羽衣",priority=16},
    })

    --ファランクス
    sets.midcast.Phalanx = {
        main="ザルフィカール",
        sub="ウトゥグリップ",
        ammo="ストンチタスラム+1",
        head={ name="FUバンド+3", augments={'Enhances "Battuta" effect',}},
        body={ name="ヘルクリアベスト", augments={'STR+10','Pet: STR+9','Phalanx +5','Mag. Acc.+3 "Mag.Atk.Bns."+3',}},
        hands={ name="ヘルクリアグローブ", augments={'Magic Damage +1','Crit. hit damage +3%','Phalanx +4','Accuracy+10 Attack+10','Mag. Acc.+20 "Mag.Atk.Bns."+20',}},
        legs={ name="ヘルクリアトラウザ", augments={'AGI+8','Attack+7','Phalanx +4','Accuracy+1 Attack+1','Mag. Acc.+2 "Mag.Atk.Bns."+2',}},
        feet={ name="ヘルクリアブーツ", augments={'Weapon skill damage +2%','"Fast Cast"+3','Phalanx +5','Accuracy+16 Attack+16',}},
        neck="インカンタートルク",
        waist={ name="プラチナモグベルト",priority=16},
        left_ear={ name="オノワイヤリング+1", augments={'Path: A',},priority=14},
        right_ear="ミミルピアス",
        left_ring={ name="ゼラチナスリング+1", augments={'Path: A',},priority=13},
        right_ring={ name="月明の指輪",priority=15},
        back={ name="ディバートケープ", augments={'Enmity+1','"Embolden"+15','"Dbl.Atk."+3',}},
    }

    --リジェネ
    sets.midcast.Regen = set_combine(sets.midcast.EnhancingMagic,{head="RNバンド+3",body="FUコート+3",neck="サクロゴルゲット",waist="スローダベルト"})

    --ケアル
    sets.midcast.Cure = sets.Enmity

end

カスタマイズ注意点

  • ご自身の装備ファストキャスト数値を、job_midcastのfcに反映してください。
  • インスパイア(メリポ)の数値によってFC値が変わりますので、ご注意ください。

コメント

コメント一覧 (5件)

  • 98行目 sets.precast.JA[‘スライトソード’] = set_combine(sets.Enmity,{hands=”FUミトン+3″})

    ですが、[‘スライトソード’]はジョブ特性ですので、
    正しくは、
    90行目 sets.precast.JA[‘ソードプレイ’] = set_combine(sets.Enmity,{})

    90行目 sets.precast.JA[‘ソードプレイ’] = set_combine(sets.Enmity,{hands=”FUミトン+3″})

    かと思われます。

    • ご指摘ありがとうございます。
      魔道剣士は、不慣れなものでして・・・

      用語辞典を参考に作ったので、理解できておりませんでした。
      誤り部分を修正して反映しました。
      また何か待ち該当あれば教えてください!

  • そうなんですね、自分で組むとき気にしてたんですっきりしました。
    ありがとうございます

  • 自分で試せてないので申し訳ないですが
    ロジック
    13  state.Buff[“エンボルド”] = buffactive[“エンボルド”] or false → ’エンボルト’
    ギア
    69-94 装備は ’’ → ””   じゃ無くても動きますか?

    • ダブルクォーテーションとシングルクォーテーションが統一されていないけど動くのか?
      ということですね?

      システム的には問題ありません。
      普通に動きます。

      ただ、あちこちからコピペして作っているため、混在した状態になっていてすっきりしない書き方になっています。

      どちらかで統一した方がよさそうなので、全コードチェックしておきます。

コメントする

目次