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

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

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

目次

ソースコード

ファイル構成

GearSwap/
  └ data/
    ├ Common.lua(共通ファイル
    ├ 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()
    Initialize()
    state.Buff['睡眠']              = buffactive['睡眠'] or false
    state.Buff['エントラスト']      = buffactive['エントラスト'] or false
end

function user_setup()
    --gs c cycle OffenseMode
    state.OffenseMode:options('Normal')
    
    --gs c cycle IdleMode
    state.IdleMode:options('Normal','Refresh')
    
    -- gs c cycle MainWeapons
    state.MainWeapons  = M{'Idris'}
    
    -- gs c cycle SubWeapons
    state.SubWeapons  = M{'Genbu'}
end

function job_post_midcast(spell, action, spellMap, eventArgs)
    if buffactive['エントラスト'] then
        equip(sets.midcast.Entrust)
    end
end

function job_buff_change(buff, gain)
    if state.Buff['睡眠'] then
        equip({range=sets.Weapons.Slip})
    end
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)
        if state.IdleMode.value == 'Refresh' then
            idleSet = set_combine(set_combine(idleSet,sets.idle.Luopan.Refresh), weapon)
        end
    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] == 'lockstyleset' then
        send_command('input /lockstyleset '..lockstyleset)

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

    elseif cmdParams[1] == 'Medicine' then
        Medicine()
    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.Weapons.Slip                   = {name="プライムモール"}

    sets.idle = {
        range={ name="デュンナ", augments={'MP+20','Mag. Acc.+10','"Fast Cast"+3',}},
        head="無の面",
        body="AZコート+3",
        hands="AZグローブ+3",
        legs={ name="ニャメフランチャ", augments={'Path: B',}},
        feet="AZゲートル+3",
        neck="シビルスカーフ",
        waist="無の腰当",
        left_ear="ハーティーピアス",
        right_ear={ name="アジムスピアス+2", augments={'System: 1 ID: 1676 Val: 0','Mag. Acc.+17','Damage taken-6%','INT+9 MND+9',}},
        left_ring="スティキニリング+1",
        right_ring="シュネデックリング",
        back="無の外装",
    }
    sets.idle.Refresh = set_combine(sets.idle,{body="AZコート+3",hands="BAミテーヌ+3",neck="シビルスカーフ",left_ring="スティキニリング+1",})

    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="BAサンダル+3",
        neck={ name="バグアチャーム+2", augments={'Path: A',}},
        waist="イーサベルト",
        left_ear="ハンドラーピアス+1",
        right_ear={ name="アジムスピアス+2", augments={'System: 1 ID: 1676 Val: 0','Mag. Acc.+17','Damage taken-6%','INT+9 MND+9',}},
        left_ring="守りの指輪",
        right_ring="シュネデックリング",
        back={ name="ナントセルタケープ", augments={'Pet: "Regen"+10','Pet: "Regen"+5',}},
    }
    sets.idle.Luopan.Refresh = set_combine(sets.idle.Luopan,{body="AZコート+3",hands="BAミテーヌ+3"})

    sets.precast.JA["ライフサイクル"]               = {body="GOチュニック+1"}
    sets.precast.JA["ボルスター"]                   = {body="BAチュニック+1"}
    sets.precast.JA["メンドハレイション"]           = {Legs="BAパンツ+1"}
    sets.precast.JA["レイディアルアルカナ"]         = {feet="BAサンダル+3"}
    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={ name="マーリンジュバ", augments={'Mag. Acc.+26','"Fast Cast"+6','MND+1',}},
        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.Cure={
        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 +8%','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="エテオレートピアス",
        left_ring="スティキニリング+1",
        right_ring="レベッチェリング",
        back="ソレムニティケープ",
    }
    
    sets.midcast['強化魔法']={
        sub="アムラピシールド",
        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',}},
        neck="インカンタートルク",
        waist="エンブラサッシュ",
        right_ear="ミミルピアス",
        back={ name="フィフォレケープ+1", augments={'Path: A',}},
    }
    
    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="アジムスピアス+2", augments={'System: 1 ID: 1676 Val: 0','Mag. Acc.+17','Damage taken-6%','INT+9 MND+9',}},
        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="アジムスピアス+2", augments={'System: 1 ID: 1676 Val: 0','Mag. Acc.+17','Damage taken-6%','INT+9 MND+9',}},
        left_ring="フレキリング",
        right_ring={ name="メタモルリング+1", augments={'Path: A',}},
        back="無の外装",
    }
    
    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="アジムスピアス+2", augments={'System: 1 ID: 1676 Val: 0','Mag. Acc.+17','Damage taken-6%','INT+9 MND+9',}},
        left_ring="守りの指輪",
        right_ring="ピュリティーリング",
        back={ name="龍脈の外套", augments={'Geomancy Skill +8','Indi. eff. dur. +20','Pet: Damage taken -3%',}},
    }
    sets.midcast.Entrust={
        main={ name="ガーダ", augments={'Indi. eff. dur. +10','Mag. Acc.+11','"Mag.Atk.Bns."+15',}},
    }
end

コメント

コメント一覧 (11件)

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

    ■ジョブロジックへ下記を追記
    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のアップデートの影響もあるのかなと最近思っています。

コメントする

目次