【GearSwap】風水師のMote-libs用コード

風水師のMote-libsコードです。

風水師はあまり力を入れてないので、本気で組んでいません。とりあえずのコードです。

このコードでは、次のことができます。

  • 特性
    • バフ効果を高める装備に自動着替え
  • フラグ制御
    • Jazero切り替え
  • その他
    • ジョブロード時にロックスタイル固定
目次

ソースコード

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

GearSwap/
  └ data/
    ├ GEO.lua
    └ キャラクター名/
      ├ weather_obi.lua
      └ GEO_gear.lua

注意点

ジョブロジック

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

function job_setup()
end

function user_setup()
    --gs c cycle OffenseMode
    state.OffenseMode:options('Normal')
    
    --gs c cycle IdleMode
    state.IdleMode:options('Normal')
    
    -- gs c cycle MainWeapons
    state.MainWeapons  = M{'Idris'}
    
    -- gs c cycle SubWeapons
    state.SubWeapons  = M{'Genbu'}
    
    include(player.name .. '/weather_obi') 
    send_command('wait 5; gs c set IdleMode Normal; gs c lockstyleset;')
end

function customize_idle_set(idleSet)
    local weapon = customize_weapon_set()
    if pet.isvalid then
        idleSet = set_combine(set_combine(idleSet,sets.idle.Luopan), weapon)
    else
        idleSet = set_combine(idleSet, weapon)
    end  
    return idleSet
end

function customize_melee_set(meleeSet)
    local weapon = customize_weapon_set()
    meleeSet = set_combine(meleeSet,weapon)
    return meleeSet
end

function customize_weapon_set()
    --武器のセット
    local weapon = nil
    weapon = set_combine(weapon,{main=sets.weapons[state.MainWeapons.value]})
    weapon = set_combine(weapon,{sub=sets.weapons[state.SubWeapons.value]})
    return weapon
end

function job_self_command(cmdParams, eventArgs)
    if cmdParams[1] == 'jazero' then
        send_command('gs c cycle Jazero;')
        if state.Jazero.value then
            send_command('send @all unload jazero;')
        else
            send_command('send @all load jazero;')
        end
    elseif cmdParams[1] == 'lockstyleset' then
        send_command('input /lockstyleset '..lockstyleset)
    elseif cmdParams[1] == 'Idle' then
        if player.status == 'Idle'then 
            equip(get_idle_set()) 
        else
            equip(get_melee_set()) 
        end
    end
end

装備セット

function init_weaponns()
    --デフォルト武器を設定
    send_command('gs c set MainWeapons Idris')
    send_command('gs c set SubWeapons Genbu')
end
function init_gear_sets()    
    lockstyleset = 21

    sets.weapons = {}
    sets.weapons.Idris                  = {name="パルーグハンマー"}
    sets.weapons.Genbu                  = {name="玄武盾"}

    sets.idle = {
        range={ name="デュンナ", augments={'MP+20','Mag. Acc.+10','"Fast Cast"+3',}},
        head="無の面",
        body="AZコート+3",
        hands="AZグローブ+3",
        legs="ニャメフランチャ",
        feet="AZゲートル+3",
        neck="シビルスカーフ",
        waist="無の腰当",
        left_ear="ハーティーピアス",
        right_ear={ name="アジムスピアス+1", augments={'System: 1 ID: 1676 Val: 0','Mag. Acc.+12','Damage taken-4%',}},
        left_ring="守りの指輪",
        right_ring="シュネデックリング",
        back="無の外装",
    }

    sets.idle.Luopan = {
        range={ name="デュンナ", augments={'MP+20','Mag. Acc.+10','"Fast Cast"+3',}},
        head="AZフード+3",
        body={ name="テルキネシャジュブ", augments={'Pet: "Regen"+3','Pet: Damage taken -4%',}},
        hands="AZグローブ+3",
        legs={ name="テルキネブラコーニ", augments={'Pet: "Regen"+3','Pet: Damage taken -4%',}},
        feet="AZゲートル+3",
        neck={ name="バグアチャーム+2", augments={'Path: A',}},
        waist="イーサベルト",
        left_ear="ハンドラーピアス+1",
        right_ear={ name="アジムスピアス+1", augments={'System: 1 ID: 1676 Val: 0','Mag. Acc.+12','Damage taken-4%',}},
        left_ring="守りの指輪",
        right_ring="シュネデックリング",
        back={ name="ナントセルタケープ", augments={'Pet: "Regen"+10','Pet: "Regen"+5',}},
    }

    --AF
    sets.precast.JA["ライフサイクル"] = {body="GOチュニック+1"}
    --Relic
    sets.precast.JA["ボルスター"] = {body="BAチュニック+1"}
    sets.precast.JA["メンドハレイション"] = {Legs="BAパンツ+1"}
    sets.precast.JA["レイディアルアルカナ"] = {feet="BAサンダル+1"}
    --Empyrean
    sets.precast.JA["フルサークル"] = {head="AZフード+3"}

    sets.precast.FC = {
        main="パルーグハンマー",
        sub="玄武盾",
        range={ name="デュンナ", augments={'MP+20','Mag. Acc.+10','"Fast Cast"+3',}},
        head={ name="マーリンフード", augments={'"Fast Cast"+5','DEX+9','Mag. Acc.+9',}},
        body="シャンゴローブ",
        hands={ name="マーリンダスタナ", augments={'"Mag.Atk.Bns."+8','"Fast Cast"+5','CHR+6',}},
        legs={ name="サイクロスラッパ", augments={'MP+80','Mag. Acc.+15','"Fast Cast"+7',}},
        feet={ name="マーリンクラッコー", augments={'"Mag.Atk.Bns."+2','"Fast Cast"+5','AGI+6','Mag. Acc.+14',}},
        neck="オルンミラトルク",
        waist="エンブラサッシュ",
        left_ear="マリグナスピアス",
        right_ear="エテオレートピアス",
        left_ring="キシャールリング",
        right_ring="シュネデックリング",
        back={ name="フィフォレケープ+1", augments={'Path: A',}},
    }

    sets.midcast.Geomancy={
        main={ name="ガーダ", augments={'Indi. eff. dur. +10','Mag. Acc.+11','"Mag.Atk.Bns."+15',}},
        sub="玄武盾",
        range={ name="デュンナ", augments={'MP+20','Mag. Acc.+10','"Fast Cast"+3',}},
        head="AZフード+3",
        body="AZコート+3",
        hands="AZグローブ+3",
        legs={ name="BAパンツ+3", augments={'Enhances "Mending Halation" effect',}},
        feet="AZゲートル+3",
        neck={ name="バグアチャーム+2", augments={'Path: A',}},
        waist="無の腰当",
        left_ear="ハーティーピアス",
        right_ear={ name="アジムスピアス+1", augments={'System: 1 ID: 1676 Val: 0','Mag. Acc.+12','Damage taken-4%',}},
        left_ring="守りの指輪",
        right_ring="ピュリティーリング",
        back={ name="龍脈の外套", augments={'Geomancy Skill +8','Indi. eff. dur. +20','Pet: Damage taken -3%',}},
    }

    sets.midcast.Cure={
        head={ name="ヴァニヤフード", augments={'MP+50','"Fast Cast"+10','Haste+2%',}},
        body={ name="テルキネシャジュブ", augments={'"Cure" potency +7%','Enh. Mag. eff. dur. +10',}},
        hands={ name="テルキネグローブ", augments={'"Cure" potency +8%','Enh. Mag. eff. dur. +10',}},
        legs={ name="テルキネブラコーニ", augments={'"Cure" potency +7%','Enh. Mag. eff. dur. +10',}},
        feet={ name="テルキネピガッシュ", augments={'"Cure" potency +8%','Enh. Mag. eff. dur. +10',}},
    }

    sets.midcast['強化魔法']={
        head={ name="テルキネキャップ", augments={'"Cure" potency +7%','Enh. Mag. eff. dur. +10',}},
        body={ name="テルキネシャジュブ", augments={'"Cure" potency +7%','Enh. Mag. eff. dur. +10',}},
        hands={ name="テルキネグローブ", augments={'"Cure" potency +8%','Enh. Mag. eff. dur. +10',}},
        legs={ name="テルキネブラコーニ", augments={'"Cure" potency +7%','Enh. Mag. eff. dur. +10',}},
        feet={ name="テルキネピガッシュ", augments={'"Cure" potency +8%','Enh. Mag. eff. dur. +10',}},
        waist="エンブラサッシュ",
    }

    sets.midcast['精霊魔法']={
        main="デイブレイクワンド",
        range={ name="デュンナ", augments={'MP+20','Mag. Acc.+10','"Fast Cast"+3',}},
        head={ name="ニャメヘルム", augments={'Path: B',}},
        body="AZコート+3",
        hands="AZグローブ+3",
        legs="AZタイツ+3",
        feet="AZゲートル+3",
        neck="シビルスカーフ",
        waist="エスカンストーン",
        left_ear="マリグナスピアス",
        right_ear={ name="アジムスピアス+1", augments={'System: 1 ID: 1676 Val: 0','Mag. Acc.+12','Damage taken-4%',}},
        left_ring="フレキリング",
        right_ring={ name="メタモルリング+1", augments={'Path: A',}},
        back="無の外装",
    }

    sets.midcast['弱体魔法']={
        main="デイブレイクワンド",
        range={ name="デュンナ", augments={'MP+20','Mag. Acc.+10','"Fast Cast"+3',}},
        head="AZフード+3",
        body="AZコート+3",
        hands="AZグローブ+3",
        legs="AZタイツ+3",
        feet="AZゲートル+3",
        neck="無の喉輪",
        waist="無の腰当",
        left_ear="マリグナスピアス",
        right_ear={ name="アジムスピアス+1", augments={'System: 1 ID: 1676 Val: 0','Mag. Acc.+11','Damage taken-3%',}},
        left_ring="フレキリング",
        right_ring={ name="メタモルリング+1", augments={'Path: A',}},
        back="無の外装",
    }
end

コメント

コメント一覧 (9件)

  • いい情報いつも有難うございます。
    風水師につきましてご質問なのですが、
    アビ使用中(エントラスト)使用時に装備を固定する方法を
    教えて頂ければと思い
    学者の記載にある方法で試して見たのですが、うまくいかなくご質問となります。

    ■ジョブロジックへ下記を追記
    function job_setup()
    include(player.name .. ‘/weather_obi’)
    ※追記項目   state.Buff[‘エントラスト’] = buffactive[‘エントラスト’] or false
    state.OffenseMode:options(‘Normal’)
    state.IdleMode:options(‘Normal’)
    end

    ■装備セットへ下記を追記
    sets.buff[‘エントラスト’] = {
    main={ name=”ガーダ”, augments={‘Indi. eff. dur. +11′,’STR+6’,}},
    }

    • エントラスト中に、風水士が装備しておかなければいけない装備なんてありましたっけ・・・?
      インデ延長装備でエントラを付与すれば、延長状態で付与されると思いますが、風水は詳しくないのでこの辺の話はよくわからないです。

      ご質問の件ですが、GearSwapは自分の状態は判断できますが、エントラストを付与した相手の状態まで管理することが出来ませんので、やろうとしてることは出来ないかもしれません。

      付与時点から時間経過で判断する方法なら可能かもしれませんが、現実的ではないような気もします。

  • ごめんなさい素人ですが風水士のジョブロジック?でエラーが出るのですが…

    > GearSwap: Lua runtime error: GearSwap/flow.lua:321:

    > GearSwap has detected an error in the user function get_sets:

    >…m Files (x86)Windower/addons/GearSwap/data/GEO.lua:8:

    > GearSwap: Cannot find the include file (〇〇〇〇/weather_obi.lua). 1

    他のジョブは2ジョブぐらい試しましたが動きました、アドバイスよろしくお願いします

      • 助かりました(´;ω;`)解決しました〜ありがとうございます♪めちゃくちゃ助かりました!属性帯の件でわからないことあるので属性帯のページで質問させていただきます!ど素人に親切にありがとうございます!

  • 他のはできるのになぜか風水士だけエラーが出るマニアック向けとはいえせっかく良いサイトだとおもうのに残念

    • 私の環境では正常に動くコードをブログに掲載しているので、基本的には動くと思います。
      しかし、他の方からもエラー関連の問い合わせは数多く受けております。
      環境面によるものではないのかと考えておりますが、それぞれ環境が違いますので、何が原因か分からないのが現状です。
      どんなエラーが出ているか教えて貰えれば、分かる範囲で調査しますよ。
      Windowerのアップデートの影響もあるのかなと最近思っています。

管理人 へ返信する コメントをキャンセル

目次