
風水師のMote-libsコードです。
風水師はあまり力を入れてないので、本気で組んでいません。とりあえずのコードです。
このコードでは、次のことができます。
- 特性
- バフ効果を高める装備に自動着替え
- フラグ制御
- Jazero切り替え
- その他
- ジョブロード時にロックスタイル固定
目次
ソースコード
Mote-libsでは、ジョブロジック部分(ジョブ名.lua)と装備セット部分(ジョブ名_gear.lua)を切り分けていますので、次のような階層構造になっています。
GearSwap/
└ data/
├ GEO.lua
└ キャラクター名/
├ weather_obi.lua
└ GEO_gear.lua
注意点
- GearSwap\libsによしざうるすさんが日本語対応してくれているMote-libsを設置してください。
- 【GearSwap】属性帯の自動着替えコードを設置してください。
ジョブロジック
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ジョブぐらい試しましたが動きました、アドバイスよろしくお願いします
こんにちは。
属性帯のファイルが見つからないために発生しているエラーです。
【GearSwap】属性帯の自動着替えコードを導入すれば解決すると思います。
助かりました(´;ω;`)解決しました〜ありがとうございます♪めちゃくちゃ助かりました!属性帯の件でわからないことあるので属性帯のページで質問させていただきます!ど素人に親切にありがとうございます!
他のはできるのになぜか風水士だけエラーが出るマニアック向けとはいえせっかく良いサイトだとおもうのに残念
私の環境では正常に動くコードをブログに掲載しているので、基本的には動くと思います。
しかし、他の方からもエラー関連の問い合わせは数多く受けております。
環境面によるものではないのかと考えておりますが、それぞれ環境が違いますので、何が原因か分からないのが現状です。
どんなエラーが出ているか教えて貰えれば、分かる範囲で調査しますよ。
Windowerのアップデートの影響もあるのかなと最近思っています。
無の面、おめでとうございます^^
頑張りました(`・ω・´)