2025/9/17 煩雑になった記事をわかりやすく整理中

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

魔道剣士のMote-libsコードについて説明します。

目次

ファイル構成

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

詠唱中断処理

ナイトの詠唱中断の仕組みと同じです。

アビリティ着替え

function job_buff_change(buff, gain)
    if buff == 'バットゥタ' then
        if gain then
            end_command('gs c set HybridMode Parry')
        else
            send_command('gs c set HybridMode Normal')
        end

    elseif buff == 'エンボルド' or state.Buff['エンボルド'] then
        if gain then
            equip(sets.buff['エンボルド'])
            disable('back')
        else
            enable('back')
            IdleMelee()
        end
    end
end

バットゥタ

バットゥタを実行した場合は、HybridMode Parryが動き、受け流し装備に着替えます。バットゥタが切れたら通常装備に戻ります。

エンボルド

エンボルドが有効の間は、エンボルド効果アップ装備(背)に着替え、背の着替え変更を行わないように固定します。エンボルドが切れると通常装備に戻り、着替え変更の固定を解除します。

ルーンのカンニングペーパー

gs c RuneText

コメント

コメント一覧 (25件)

  • 毎度毎度質問ばかりですいません。

    私の環境で(例によって共通ファイルRUN RUN_gear 11/9時点の最新)フラッシュが詠唱中断処理
    されていないようにお見受けします。
    またフォイルが強化魔法のMidcastに着替えていたので
    gear.luaに
    –フォイル
    sets.midcast[‘フォイル’] = set_combine(sets.Enmity,{
    waist=”コーネリアの黒帯”
    })
    .luaに
    elseif spell.name == ‘フォイル’ then
    eventArgs.handled = true
    send_command(‘wait ‘..cast_time..’; gs equip sets.midcast[‘..windower.to_shift_jis(‘フォイル’)..’]’)
    を書き足しましたが敵対装備には着替えますがフラッシュと同じように中断装備に着替えません。
    なおナイトでも同様でした。
    こちらだけの環境かもしれないのですが一度ご査察のほどお願いできますと幸いです。

    • 本当にちゃんと着替えられているのか不安だったので、1秒未満の魔法は詠唱中断に着替えないようにしました。
      原因はこれだと思いますが、使いにくいのであれば近々戻しておきます。

      • 早速の対応ありがとうございます。
        そもそもの質問はshowswapsで確認した場合フラッシュは詠唱中断に着替えていたがフォイルは詠唱中断に着替えていない、着弾も強化になっている。が疑問だったのです。
        ダイバーやソーティで多数から殴られている時にフラッシュはさほど中断にならないのにフォイルは高頻度で中断されたのが発端でございます。(ついでと言ってはなんですが多数に殴られてる時にファランクスは妙に中断されるのはなんだろう、、??)
        なので「1秒以内が全て着替えない」でありますと個人的には使いにくくなったかもしれない?とは思ってしまいます。
        そうするとファストキャストを抑えるのが一番なのかなぁ?

        • こんにちは。
          今の実装では、1秒以上の魔法の場合にのみ詠唱中断に装備するになっていましたので、フォイルが中断するのも納得です。
          これはとりあえず直しておきます。

          ファランクスの詠唱中断について簡単に説明します。
          詠唱中断処理はシビアな条件で動いているので、確実に防げる物ではありません。
          具体的には、下記②から③に着替えて④の間までに殴られると詠唱中断されます。

          1.precast
          FC装備
          2.midcast
          詠唱中断
          着弾装備
          発動

          例えばファランクス。これは詠唱時間3秒です。
          仮にFC値を60とすると、詠唱開始から発動まで1.8秒で発動する計算になります。
          この1.8秒の間に詠唱中断装備→着弾装備に着替えなければいけません。
          ただし、処理には「ラグ」がありますのでadjust値で着弾装備への着替えを若干早めています。

          adjust:0.85=1.53
          adjust:0.90=1.62
          adjust:0.95=1.71

          ラグの影響で着替えるのが遅ければ詠唱中断装備のまま発動することもありますし、早ければ詠唱中断されてしまいます。
          ラグの影響を受けずに正確に着替えて発動してくれれば問題ないのですが、クロ巣で大量に集めるような状況の場合は正常に着替えられるかどうかも怪しくなるわけです。

          とはいえ、どこで狩りをするかなんてそのときの気分や流れできまりますので、狩り場しだいでGearのコードを触るのも嫌ですし、adjust値を変えたからといって確実に着替えられる保証もありません。

          考え方次第ですが、クロ巣のような狩り場の場合は詠唱中断のまま発動させるようなフラグを設けても良いかもしれません。

          私もこの辺は試行錯誤しているので、もう少し考えてみます。

  • いちおう解決したので報告しておきます。
    RUN.luaの方の最後に function init_gear_sets() を追加して
    RUN.gear.lua 内の function job_setup() 以下着替え装備をまるまる移したら作動しました。
    途中にあった init_weapon_skill はエラー出たので削除しています。
    長々とお騒がせしました。

  • ナイトのgear.luaと同じような装備並びに変更したり
    よしざうるさんの日本語Mote-libsに変えたりしてもダメでした。
    次はFC値の調整をしてみようと思います。

  • たびたび失礼します。
    上げられてる剣のジョブロジックと共通ファイルをコピペして使ってるのですが
    なぜか着替えてくれません。
    ファイル自体も GearSwap: Loaded your RUN.Lua file! と出て
    読み込みも問題ないようです。
    正直自分でも無茶ぶりとわかってるのですが、どこが問題なのかわかりますでしょうか?

    • こちらの剣で確認したところ問題ないように思えます。

      自分でファランクスなどの魔法を使った場合、次の順番で着替えてくれています。
      precast
      midcast
      equip_command
      aftercast

      他人にファランクスなどの魔法を貰った場合も、意図した動きをしていました。

      何をしたときに着替えないのか。それ以外は問題ないのか。最新版を使っているのか。
      が分からないとさすがに何が問題なのかが分かりません。
      もう詳しい少し状況を教えてもらえますか?

      • すみません、全部無反応で着替えません。
        共通とジョブロジックも最新のファラで、ナイトでは着替えました。
        後Mote-libsのキャラ名ファイルなどは使っていませんでしたが、作成した後も同じでした。
        色々弄ったところ、かろうじて
        GearSwap/libs/mote-include.lua:175 attempt to call clobal ‘init_gear_sets'(a nil value)
        とエラーが出ました。
        RUN.luaのfunction get_sets()のinclude(‘Mote-Include.lua’)を削除して強制的にロードしたりもしました。
        わかるのはこれくらいです、申し訳ない。

  • こんにちは
    –被ファランクス
    sets.midcast.Phalanx

    この部分についてなのですが、この着替えは抜刀時は手動で着替えるしかないでしょうか。

    • 申し訳ありません。
      ちょっと使い方が間違っていました。抜刀時でも着替えが行われました。

      • こんにちは。着替えできて何よりです。
        先ほど該当部分のファイル更新しています。
        定義名を変えていますので、必要なら更新してください。

  • はじめまして、Mote-libsコードの公開ありがとうございます。
    よしざうるすさんのサイトで初めてGearSwapの存在を知り、
    こちらのサイトのコードを参考に独自に勉強して、何とか使っております。
    おかげさまでFF11の世界が大きく開けました。どうもありがとうございます。

    魔導剣士のFCの数値で教えていただきたくコメントしました。
    例えば自身のFC装備のFC総数が49で、インスパイヤ4振りでフサルクトラウザ付きの場合、

    ■RUN.lua
    43行目:local fc=49/100
    46行目:fc = fc + 48/100

    とカスタマイズすればよろしいのでしょうか?
    もし他にも調整必要な箇所があれば、ご教示いただけますと幸いです。

    リジェネIVを2回連続で唱えると、1回目は強化延長が付いて、2回目は延長つかなかったりと不安定で、FC数値のカスタマイズが間違っているのかなと思い・・・

    • 43行目の数値をご自身のFC値に更新
      46行目はメリポのインスパイアの数値で更新してください。
      私はインスパイア1なので、fc = fc + 12/100としています。
      fc = fc + 12/100 –インスパイア1
      fc = fc + 24/100 –インスパイア2
      fc = fc + 36/100 –インスパイア3
      fc = fc + 48/100 –インスパイア4
      fc = fc + 60/100 –インスパイア5

      このように書き換えて一度お試しください。
      ラグなどがある部分の処理なので思うように着替えができなければ、local adjust=0.9の値をいじって調整してみてください。

      • 返信ありがとうございます、数値に関して考え方が合っていたようで安心いたしました。
        local adjustの数値を調整したら着替えが上手くいくようになりました。
        ご教示どうもありがとうございました。

  • 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 装備は ’’ → ””   じゃ無くても動きますか?

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

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

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

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

けぇ へ返信する コメントをキャンセル

目次