
赤魔道士のMote-libsコードです。
赤魔道士はあまり力を入れてないので、本気で組んでいません。とりあえずのコードです。
このコードでは、次のことができます。
- 特性
- バフ効果を高める装備に自動着替え
- 睡眠自動解除
- 二刀流係数自動調整
- 弱体魔法の最適化
- 自己他者強化魔法装備使い分け
- フラグ制御
- Jazero切り替え
- その他
- ジョブロード時にロックスタイル固定
目次
ソースコード
Mote-libsでは、ジョブロジック部分(ジョブ名.lua)と装備セット部分(ジョブ名_gear.lua)を切り分けていますので、次のような階層構造になっています。
GearSwap/
└ data/
├ RDM.lua
└ キャラクター名/
├ weather_obi.lua
└ RDM_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()
state.Buff['睡眠'] = buffactive['睡眠'] or false
end
function user_setup()
-- gs c cycle MainWeapons
state.MainWeapons = M{'CroceaC','Naegling','D1'}
-- gs c cycle SubWeapons
state.SubWeapons = M{'CrepuscularKnife'}
-- gs c cycle OffenseMode
state.OffenseMode:options('Normal','Enn')
-- gs c cycle IdleMode
state.IdleMode:options('Normal')
init_weaponns()
include(player.name .. '/weather_obi')
send_command('wait 5; gs c set IdleMode Normal; gs c lockstyleset;')
end
function job_post_midcast(spell, action, spellMap, eventArgs)
if spell.skill == '弱体魔法' then
if spellMap == 'EnfeeblingMagiceffect' then
--効果時間 スロウ,スロウII,パライズ,パライズII,ブライン,ブラインII,ポイズン,ポイズンII,グラビデ,グラビデII,ディストラ,ディストラII,ディストラIII,フラズル,フラズルII,フラズルIII,アドル,アドルII
equip(sets.midcast['弱体魔法'])
elseif spellMap == 'Sleep' or spellMap == 'Break' or spellMap == 'Bind' then
--ハック バインド,スリプル,スリプルII,スリプガ,スリプガII,
equip(sets.midcast.EnfeeblingEffectInt)
elseif spellMap == 'Silence' then
--ハック サイレス
equip(sets.midcast.EnfeeblingEffectMnd)
end
elseif spell.skill == '強化魔法' then
if spell.target.type == 'SELF' then
if spellMap == 'Temper' or spellMap == 'EnSpell' then
equip(set_combine(sets.midcast.EnhancingSkill))
elseif spellMap == 'Refresh' then
equip(sets.midcast.Refresh)
elseif spellMap == 'Stoneskin' then
equip(sets.midcast['ストンスキン'])
elseif spell.name== 'アクアベール' then
equip(sets.midcast['アクアベール'])
else
equip(sets.midcast['強化魔法'] )
end
else
equip(sets.midcast['強化魔法'].Other)
if spellMap == 'Refresh' then
equip(set_combine(sets.midcast['強化魔法'].Other ,sets.midcast.Refresh))
end
end
elseif spell.skill == '精霊魔法' then
equip(get_hachirin(spell.element))
elseif spellMap == 'Cure' and spell.target.type == 'SELF' then
equip(sets.midcast.CureSelf)
end
end
function customize_idle_set(idleSet)
local weapon = customize_weapon_set()
idleSet = set_combine(idleSet,weapon)
if(player.sub_job ~= '忍' and player.sub_job ~= '踊') then
idleSet = set_combine(idleSet, set_combine(weapon,{sub=sets.weapons.Genbu}))
end
return idleSet
end
function job_buff_change(buff, gain)
if state.Buff['睡眠'] then
equip({main="カリブルヌス"})
end
end
function customize_melee_set(meleeSet)
local weapon = customize_weapon_set()
if(player.sub_job == '忍') then
--二刀流装備 係数11
meleeSet = set_combine(set_combine(meleeSet,sets.engaged.dual11), weapon)
elseif(player.sub_job == '踊') then
--二刀流装備 係数21
meleeSet = set_combine(set_combine(meleeSet,sets.engaged.dual21), weapon)
else
--一刀流装備
meleeSet = set_combine(meleeSet, set_combine(weapon,{sub=sets.weapons.Genbu}))
end
if state.OffenseMode.value=='Enn' then
meleeSet = set_combine(meleeSet,sets.engaged.Enn)
end
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]})
if state.MainWeapons.value == 'Naegling' then
weapon = set_combine(weapon,{range=sets.weapons.Ataktos})
end
return weapon
end
function job_self_command(cmdParams, eventArgs)
if 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 CroceaC')
send_command('gs c set SubWeapons CrepuscularKnife')
end
function init_gear_sets()
lockstyleset = 1
sets.weapons = {}
sets.weapons.CroceaC = {name="クロセアモース", augments={'Path: C'}}
sets.weapons.Naegling = {name="ネイグリング"}
sets.weapons.CrepuscularKnife = {name="クレパスクラナイフ"}
sets.weapons.QutrubKnife = {name="クトゥルブナイフ"}
sets.weapons.EtherealDagger = {name="幽世の短剣"}
sets.weapons.Genbu = {name="玄冥盾"}
sets.idle = {
ammo="ストンチタスラム+1",
head={ name="VIシャポー+3", augments={'Enfeebling Magic duration','Magic Accuracy',}},
body="LTサヨン+2",
hands="LTガントロ+2",
legs="ニャメフランチャ",
feet="ニャメソルレット",
neck="無の喉輪",
waist="無の腰当",
left_ear="エアバニピアス",
right_ear="ハーティーピアス",
left_ring="守りの指輪",
right_ring="シュネデックリング",
back="無の外装",
}
sets.engaged = {
ammo="コイストボダー",
head="マリグナスシャポー",
body="マリグナスタバード",
hands="マリグナスグローブ",
legs="マリグナスタイツ",
feet="マリグナスブーツ",
neck="無の喉輪",
waist="無の腰当",
left_ear="テロスピアス",
right_ear="シェリダピアス",
left_ring="シーリチリング+1",
right_ring="シーリチリング+1",
back="無の外装",
}
sets.engaged.dual11={left_ear="素破の耳",waist="霊亀腰帯",}
sets.engaged.dual21=set_combine(sets.engaged.dual11,{back={ name="スセロスケープ", augments={'DEX+20','Accuracy+20 Attack+20','"Dual Wield"+10','Phys. dmg. taken-10%',}},})
sets.engaged.Enn = set_combine(sets.engaged,{
ammo="スローダタスラム",
head="ウムシクハット",
hands="アヤモマノポラ+2",
legs="VIタイツ+3",
waist="オルペウスサッシュ",
back={ name="スセロスケープ", augments={'DEX+20','Accuracy+20 Attack+20','"Dual Wield"+10','Phys. dmg. taken-10%',}},})
sets.precast.JA['サボトゥール'] = {hands="LTガントロ+2"}
sets.precast.JA['連続魔'] = {body="VIタバード+3"}
sets.precast.FC = {
body={ name="VIタバード+3", augments={'Enhances "Chainspell" effect',}},
feet={ name="マーリンクラッコー", augments={'"Fast Cast"+7','MND+5',}},
neck="オルンミラトルク",
waist={name="プラチナモグベルト",priority=15},
left_ear={name="オノワイヤリング+1",priority=14},
right_ear={name="エテオレートピアス",priority=12},
left_ring={name="月明の指輪",priority=13},
right_ring="メダダリング",
back={name="月明の羽衣",priority=16},
}
sets.precast.FC['インパクト'] = set_combine(sets.precast.FC,{head=empty,body="クレパスクラプリス",})
sets.precast.WS.Damage = {
ammo="オシャシャの原論文",
head={ name="ニャメヘルム", augments={'Path: B',}},
body={ name="ニャメメイル", augments={'Path: B',}},
hands={ name="ニャメガントレ", augments={'Path: B',}},
legs={ name="ニャメフランチャ", augments={'Path: B',}},
feet="LTウゾー+3",
neck="共和プラチナ章",
waist={ name="セールフィベルト+1", augments={'Path: A',}},
left_ear="テロスピアス",
right_ear="シェリダピアス",
left_ring="イラブラットリング",
right_ring="エパミノダスリング",
back="無の外装",
}
sets.precast.WS.Critical = {
ammo="イェットシーラ",
head={ name="ブリスタサリット+1", augments={'Path: A',}},
body="マリグナスタバード",
hands="マリグナスグローブ",
legs="マリグナスタイツ",
feet="マリグナスブーツ",
neck="フォシャゴルゲット",
waist="フォシャベルト",
left_ear="マーケピアス+1",
right_ear="シェリダピアス",
left_ring="イラブラットリング",
right_ring="シーリチリング+1",
back={ name="スセロスケープ", augments={'DEX+20','Accuracy+20 Attack+20','"Dbl.Atk."+10','Phys. dmg. taken-10%',}},
}
sets.precast.WS.Magic = {
ammo="ペムフレドタスラム",
head={ name="ニャメヘルム", augments={'Path: B',}},
body={ name="ニャメメイル", augments={'Path: B',}},
hands={ name="ニャメガントレ", augments={'Path: B',}},
legs={ name="ニャメフランチャ", augments={'Path: B',}},
feet="LTウゾー+3",
neck="シビルスカーフ",
waist="オルペウスサッシュ",
left_ear="マリグナスピアス",
right_ear="王将の耳飾り",
left_ring={ name="メタモルリング+1", augments={'Path: A',}},
right_ring="メダダリング",
back={ name="スセロスケープ", augments={'INT+20','Mag. Acc+20 /Mag. Dmg.+20','INT+10',}},
}
sets.precast.WS['レクイエスカット'] = set_combine(sets.precast.WS.MultDamagei, {})
sets.precast.WS['シャンデュシニュ'] = set_combine(sets.precast.WS.Critical, {})
sets.precast.WS['サベッジブレード'] = set_combine(sets.precast.WS.Damage, {})
sets.precast.WS['エクスピアシオン'] = set_combine(sets.precast.WS.Damage, {})
sets.precast.WS['ブラックヘイロー'] = set_combine(sets.precast.WS.Damage, {})
sets.precast.WS['サンギンブレード'] = set_combine(sets.precast.WS.Magic, {head="妖蟲の髪飾り+1"})
sets.midcast['精霊魔法'] = {
main="ブンジロッド",
sub="アムラピシールド",
ammo={ name="ガストリタスラム+1", augments={'Path: A',}},
head="LTシャペル+2",
body="LTサヨン+2",
hands="LTガントロ+2",
legs="LTフュゾー+2",
feet="LTウゾー+3",
neck={ name="デュエルトルク+2", augments={'Path: A',}},
waist="オルペウスサッシュ",
left_ear="マリグナスピアス",
right_ear="王将の耳飾り",
left_ring={ name="メタモルリング+1", augments={'Path: A',}},
right_ring="メダダリング",
back={ name="スセロスケープ", augments={'INT+20','Mag. Acc+20 /Mag. Dmg.+20','INT+10',}},
}
--弱体魔法時間
sets.midcast['弱体魔法'] ={
ammo="王将の玉",
head={ name="VIシャポー+3", augments={'Enfeebling Magic duration','Magic Accuracy',}},
body="LTサヨン+2",
hands="LTガントロ+2",
legs="LTフュゾー+2",
feet={ name="VIブーツ+3", augments={'Immunobreak Chance',}},
neck={ name="デュエルトルク+2", augments={'Path: A',}},
waist={ name="オブシテナサッシュ", augments={'Path: A',}},
left_ear="マリグナスピアス",
right_ear="スノトラピアス",
left_ring={ name="メタモルリング+1", augments={'Path: A',}},
right_ring="キシャールリング",
back={ name="スセロスケープ", augments={'MND+20','Mag. Acc+20 /Mag. Dmg.+20','MND+10',}},
}
sets.midcast["インパクト"] = set_combine(sets.midcast['弱体魔法'],{head=empty,body="クレパスクラプリス",})
--弱体魔法効果MND/hack
sets.midcast.EnfeeblingEffectMnd = set_combine(sets.midcast['弱体魔法'],{
legs={ name="カイロンホーズ", augments={'Mag. Acc.+25 "Mag.Atk.Bns."+25','"Fast Cast"+1','MND+14','Mag. Acc.+9',}},
back={ name="スセロスケープ", augments={'MND+20','Mag. Acc+20 /Mag. Dmg.+20','MND+10',}},
})
--弱体魔法効果INT/hack
sets.midcast.EnfeeblingEffectInt = set_combine(sets.midcast['弱体魔法'],{
legs={ name="カイロンホーズ", augments={'Mag. Acc.+23 "Mag.Atk.Bns."+23','Enmity-1','INT+7','Mag. Acc.+14',}},
back={ name="スセロスケープ", augments={'INT+20','Mag. Acc+20 /Mag. Dmg.+20','INT+10',}},
})
sets.midcast.Cure = {
ammo="ストンチタスラム+1",
head={ name="ヴァニヤフード", augments={'MP+50','"Cure" potency +7%','Enmity-6',}},
body={ name="VIタバード+3", augments={'Enhances "Chainspell" effect',}},
hands={ name="テルキネグローブ", augments={'"Cure" potency +7%','Enh. Mag. eff. dur. +10',}},
legs="ATタイツ+3",
feet={ name="ヴァニヤクロッグ", augments={'MP+50','"Cure" potency +7%','Enmity-6',}},
neck="インカンタートルク",
waist="ギシドゥバサッシュ",
left_ring="クナジリング",
right_ring="アスクレピアリング",
back="ソレムニティケープ",
}
sets.midcast['強化魔法'] = {
sub="アムラピシールド",
head={ name="テルキネキャップ", augments={'"Conserve MP"+5','Enh. Mag. eff. dur. +10',}},
body={ name="VIタバード+3", augments={'Enhances "Chainspell" effect',}},
hands="ATグローブ+3",
legs={ name="テルキネブラコーニ", augments={'"Conserve MP"+5','Enh. Mag. eff. dur. +10',}},
feet="LTウゾー+3",
neck={ name="デュエルトルク+2", augments={'Path: A',}},
waist="エンブラサッシュ",
left_ear={name="オノワイヤリング+1",priority=16},
right_ear={ name="レサジーピアス+1", augments={'System: 1 ID: 1676 Val: 0','Accuracy+11','Mag. Acc.+11','"Dbl.Atk."+3',}},
left_ring={name="月明の指輪",priority=15},
right_ring="スティキニリング+1",
back={ name="ゴストファイケープ", augments={'Enfb.mag. skill +7','Enha.mag. skill +1','Mag. Acc.+4','Enh. Mag. eff. dur. +20',}},
}
sets.midcast['強化魔法'].Other = set_combine(sets.midcast['強化魔法'] ,{
head="LTシャペル+2",
body="LTサヨン+2",
hands="LTガントロ+2",
legs="LTフュゾー+2",
feet="LTウゾー+3",
})
sets.midcast.EnhancingSkill=
{
main="プクラトムージュ+1",
sub={ name="フォフェンド+1", augments={'Path: A',}},
ammo="ストンチタスラム+1",
head="ビファウルクラウン",
body={ name="VIタバード+3", augments={'Enhances "Chainspell" effect',}},
hands={ name="VIグローブ+3", augments={'Enhancing Magic duration',}},
legs="ATタイツ+3",
feet="LTウゾー+3",
neck="インカンタートルク",
waist="オリンポスサッシュ",
left_ear="ミミルピアス",
right_ear="アンドアーピアス",
left_ring="スティキニリング+1",
right_ring="スティキニリング+1",
back={ name="フィフォレケープ+1", augments={'Path: A',}},
}
sets.midcast.Refresh =set_combine(sets.midcast['強化魔法'] ,{head="AMコイフ+1",body="ATタバード+3",Legs="LTフュゾー+2"})
sets.midcast['ストンスキン'] = set_combine(sets.midcast['強化魔法'] ,{legs="シェダルサラウィル", neck='ノデンズゴルゲット', left_ear='アースクライピアス', waist="ジーゲルサッシュ",})
sets.midcast['アクアベール'] = set_combine(sets.midcast['強化魔法'] ,{head="AMコイフ+1", legs="シェダルサラウィル"})
end
コメント
コメント一覧 (5件)
いつも参考にさせていただいております。
すごく初歩的な質問で申し訳ありませんが state.Weapons = M{‘CroceaC’,’Naegling’,’D1′}
この3種の武器セットの切り替えを行うコマンドを教えていただきたいです。
ゲーム内で//gs equip sets.weapons.Naeglingで一時的に変更することはできるのですが
すぐクロセアモースに戻ってしまいます。何卒よろしくお願いします。
次のコマンドで武器の切り替えを行ってください。
gs c cycle Weapons
ありがとうございます!できました!
もっと理解を深められるようこれからも熟読させていただます。
お世話になってます、自分で組んだ赤より解りやすくて参考にさせて貰ってます。
OffenseMode( ‘Enn’)で装備を変える時はsets.engaged.Enn = {}を組めばF9(デフォルト)で変わりますよね?
ロジック26行 feet が foot になってます
こんにちは。
feet部分反映しました。ご指摘助かります!
sets.engaged.Enn = {}を組めばOffenceModeを切り替えて使用することができます。
サンプルを更新しましたので、参考にしてみてください。