
召喚士のMote-libsコードです。
召喚士はあまり力を入れてないので、本気で組んでいません。とりあえずのコードです。
詳しい使い方は【GearSwap】Mote-libs召喚士の使い方をご覧ください。
目次
ソースコード
Mote-libsでは、ジョブロジック部分(ジョブ名.lua)と装備セット部分(ジョブ名_gear.lua)を切り分けていますので、次のような階層構造になっています。
GearSwap/
└ data/
├ SMN.lua
├ smn_avatar.lua
└ キャラクター名/
└ SMN_gear.lua
注意点
- GearSwap\libsによしざうるすさんが日本語対応してくれているMote-libsを設置してください。
ジョブロジック
function get_sets()
mote_include_version = 2
include('Mote-Include.lua')
set_language('japanese')
end
function job_setup()
state.Buff['神獣の加護'] = buffactive['神獣の加護'] or false
include('smn_avatar')
state.OffenseMode:options('Normal')
state.IdleMode:options('Normal')
state.BloadPactText = M(false, '履行テキスト')
end
function user_setup()
send_command('wait 5; gs c set IdleMode Normal; gs c lockstyleset')
send_command('input /si item;')
end
function customize_idle_set(idleSet)
idleSet = set_combine(idleSet, weapon)
if pet.isvalid then
if pet.status == 'Engaged' then
idleSet = set_combine(idleSet, sets.idle.Avatar.Melee)
elseif state.Buff['神獣の加護'] then
idleSet = set_combine(idleSet, sets.idle.Avatar.Favor)
else
idleSet = set_combine(idleSet, sets.idle.Avatar)
end
else
idleSet = set_combine(idleSet, sets.idle)
end
return idleSet
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
elseif cmdParams[1] == 'bp' then
bp_commnad(cmdParams)
elseif cmdParams[1] == 'spirit' then
spirit_command()
elseif cmdParams[1] =='BloadPactText' then
if state.BloadPactText.value then
showText()
else
hideText()
end
end
end
function job_buff_change(buff, gain)
if buff == "睡眠" then
if gain then -- 睡眠状態
equip({main="プライムスタッフ"})
end
elseif buff == "アストラルパッセージ" then
if gain then
equip(sets.midcast.Pet.AvatarPhysicalPacts)
disable(all)
else
enable(all)
if player.status == 'Idle'then
equip(get_idle_set())
else
equip(get_melee_set())
end
end
end
end
装備セット
function init_gear_sets()
lockstyleset = 141
sets.idle = {
main={ name="エスピリトゥス", augments={'Summoning magic skill +15','Pet: Mag. Acc.+30','Pet: Damage taken -4%',}},
sub="エランストラップ+1",
ammo="ストンチタスラム+1",
head="BCホーン+2",
body="BCダブレット+2",
hands="ニャメガントレ",
legs="アシドゥイズボン+1",
feet="バヤミサボ",
neck="シビルスカーフ",
waist="プラチナモグベルト",
left_ear="パルーグピアス",
right_ear={ name="ベコナーピアス+1", augments={'System: 1 ID: 1676 Val: 0','Pet: Accuracy+15 Pet: Rng. Acc.+15','Pet: Mag. Acc.+15','Damage taken-5%',}},
left_ring="守りの指輪",
right_ring="シュネデックリング",
back="月明の羽衣",
}
sets.idle.Avatar = {
main={ name="エスピリトゥス", augments={'Summoning magic skill +15','Pet: Mag. Acc.+30','Pet: Damage taken -4%',}},
sub="エンキストラップ",
ammo="ストンチタスラム+1",
head="BCホーン+2",
body="BCダブレット+2",
hands="ニャメガントレ",
legs="アシドゥイズボン+1",
feet="バヤミサボ",
neck="コーラーペンダント",
waist="ルセデティサッシュ",
left_ear="パルーグピアス",
right_ear={ name="ベコナーピアス+1", augments={'System: 1 ID: 1676 Val: 0','Pet: Accuracy+15 Pet: Rng. Acc.+15','Pet: Mag. Acc.+15','Damage taken-5%',}},
left_ring="守りの指輪",
right_ring="シュネデックリング",
back="月明の羽衣",
}
--エレメント待機装備
sets.idle.Spirit = set_combine(sets.idle.Avatar,{})
--神獣の加護中
sets.idle.Avatar.Favor = set_combine(sets.idle.Avatar,{})
--神獣の攻撃中
sets.idle.Avatar.Melee = set_combine(sets.idle.Avatar,{})
--履行短縮(バフ・デバフ)
sets.precast.BloodPactWard = {
ammo="エピタフサシェ",
body="CNダブレット+2",
feet="GLピガッシュ+1",
back={ name="コンベイケープ", augments={'Summoning magic skill +4','Pet: Enmity+8','Blood Pact Dmg.+2','Blood Pact ab. del. II -2',}},
}
--履行短縮(物理履行・魔法履行)
sets.precast.BloodPactRage = sets.precast.BloodPactWard
sets.precast.FC = {
ammo="サピエンスオーブ",
head={ name="マーリンフード", augments={'"Mag.Atk.Bns."+24','"Fast Cast"+7','Mag. Acc.+1',}},
body="インヤガジュバ+2",
legs={ name="マーリンシャルワ", augments={'"Fast Cast"+6',}},
feet={ name="マーリンクラッコー", augments={'"Fast Cast"+7','MND+5',}},
neck="オルンミラトルク",
waist="エンブラサッシュ",
left_ear="マリグナスピアス",
right_ear="エンチャンピアス+1",
left_ring="キシャールリング",
right_ring="メダダリング",
back={ name="フィフォレケープ+1", augments={'Path: A',}},
}
--Relic
sets.precast.JA['アストラルフロウ'] = {head="GLホーン+1"}
--Empyrean
sets.precast.JA['神獣の加護'] = {head="BCホーン+2"}
sets.precast.JA['マナシード'] = {hads="BCブレーサー+2"}
sets.precast.JA['エレメントサイフォン'] = {
main={ name="エスピリトゥス", augments={'Summoning magic skill +15','Pet: Mag. Acc.+30','Pet: Damage taken -4%',}},
head="BCホーン+2",
body="バヤミローブ",
hands="BCブレーサー+2",
legs="BCスパッツ+2",
feet="バヤミサボ",
neck="インカンタートルク",
waist="ルセデティサッシュ",
left_ear="パルーグピアス",
right_ear="ロードルピアス",
left_ring="スティキニリング+1",
right_ring="スティキニリング+1",
back={ name="コンベイケープ", augments={'Summoning magic skill +4','Pet: Enmity+8','Blood Pact Dmg.+2','Blood Pact ab. del. II -2',}},
}
---------------------------------------------------------------------------------------------------------------------------
-- Midcast Sets
---------------------------------------------------------------------------------------------------------------------------
sets.midcast.Cure = {
ammo="ストンチタスラム+1",
head={ name="ヴァニヤフード", augments={'MP+50','"Cure" potency +7%','Enmity-6',}},
body={ name="ロゼトジャズラン+1", augments={'Path: A',}},
hands={ name="テルキネグローブ", augments={'"Cure" potency +7%','Enh. Mag. eff. dur. +10',}},
legs="アシドゥイズボン+1",
feet={ name="ヴァニヤクロッグ", augments={'MP+50','"Cure" potency +7%','Enmity-6',}},
neck="オルンミラトルク",
waist="コーネリアの黒帯",
left_ear="シテレアパール",
left_ring="スティキニリング+1",
right_ring="スティキニリング+1",
back="ソレムニティケープ",
}
sets.midcast['強化魔法'] = {
head={ name="テルキネキャップ", augments={'"Conserve MP"+5','Enh. Mag. eff. dur. +10',}},
body={ name="テルキネシャジュブ", augments={'"Conserve MP"+5','Enh. Mag. eff. dur. +10',}},
hands={ name="テルキネグローブ", augments={'"Cure" potency +7%','Enh. Mag. eff. dur. +10',}},
legs={ name="テルキネブラコーニ", augments={'"Conserve MP"+5','Enh. Mag. eff. dur. +10',}},
feet={ name="テルキネピガッシュ", augments={'"Conserve MP"+5','Enh. Mag. eff. dur. +10',}},
waist="エンブラサッシュ",
}
--魔法履行
sets.midcast.Pet.AvatarMagicalPacts = {
main={ name="エスピリトゥス", augments={'Summoning magic skill +15','Pet: Mag. Acc.+30','Pet: Damage taken -4%',}},
sub="エランストラップ+1",
ammo="エピタフサシェ",
head="パルーグクラウン",
body="BCダブレット+2",
hands="BCブレーサー+2",
legs="GLスパッツ+3",
feet="ブンジサボ",
neck="召喚士の首輪+2",
waist="王将の帯",
left_ear="パルーグピアス",
right_ear={ name="ベコナーピアス+1", augments={'System: 1 ID: 1676 Val: 0','Pet: Accuracy+15 Pet: Rng. Acc.+15','Pet: Mag. Acc.+15','Damage taken-5%',}},
left_ring="ヴァラールリング+1",
right_ring="ヴァラールリング+1",
back={ name="カンペストレケープ", augments={'Pet: Acc.+20 Pet: R.Acc.+20 Pet: Atk.+20 Pet: R.Atk.+20',}},
}
--物理履行
sets.midcast.Pet.AvatarPhysicalPacts = {
main={ name="エスピリトゥス", augments={'Summoning magic skill +15','Pet: Mag. Acc.+30','Pet: Damage taken -4%',}},
sub="エランストラップ+1",
ammo="エピタフサシェ",
head="パルーグクラウン",
body="BCダブレット+2",
hands="BCブレーサー+2",
legs="BCスパッツ+2",
feet="ブンジサボ",
neck="召喚士の首輪+2",
waist="インカーネトサッシュ",
left_ear="パルーグピアス",
right_ear={ name="ベコナーピアス+1", augments={'System: 1 ID: 1676 Val: 0','Pet: Accuracy+15 Pet: Rng. Acc.+15','Pet: Mag. Acc.+15','Damage taken-5%',}},
left_ring="ヴァラールリング+1",
right_ring="ヴァラールリング+1",
back={ name="カンペストレケープ", augments={'Pet: Acc.+20 Pet: R.Acc.+20 Pet: Atk.+20 Pet: R.Atk.+20',}},
}
--バフ履行
sets.midcast.Pet.AvatarBuffWard = {
main={ name="エスピリトゥス", augments={'Summoning magic skill +15','Pet: Mag. Acc.+30','Pet: Damage taken -4%',}},
head="BCホーン+2",
body="バヤミローブ",
hands={ name="GLブレーサー+3", augments={'Inc. Sp. "Blood Pact" magic burst dmg.',}},
legs="BCスパッツ+2",
feet="バヤミサボ",
neck="インカンタートルク",
waist="ルセデティサッシュ",
left_ear="パルーグピアス",
right_ear="ロードルピアス",
left_ring="スティキニリング+1",
right_ring="スティキニリング+1",
back={ name="コンベイケープ", augments={'Summoning magic skill +4','Pet: Enmity+8','Blood Pact Dmg.+2','Blood Pact ab. del. II -2',}},
}
--デバフ履行
sets.midcast.Pet.AvatarDeBuffWard = set_combine(sets.midcast.Pet.AvatarBuffWard,{})
-- 復履行
sets.midcast.Pet.AvatarCure = set_combine(sets.midcast.Pet.AvatarBuffWard,{})
sets.midcast.Pet['白魔法'] = sets.midcast.Pet.AvatarMagicalPacts
sets.midcast.Pet['精霊魔法'] = sets.midcast.Pet.AvatarMagicalPacts
sets.midcast.Pet['精霊魔法'].Resistant = sets.midcast.Pet.AvatarMagicalPacts
end
召喚獣定義ファイル
bp = {}
bp['Carbuncle'] = {
rage = {
[1] = {name='ポイズンネイル', desc='突属性物理(貫通)'},
[2] = {name='プチメテオ', desc='光属性'},
[3] = {name='ホーリーミスト', desc='光属性'},
},
ward = {
buff = {
[1] = {name='ルビーの輝き', desc='物理・魔法防御UP'},
[2] = {name='ルビーの癒しII', desc='範囲HP回復'},
[3] = {name='ルビーの安らぎ', desc='状態異常回復'},
[4] = {name='ルビーの贖罪', desc='敵対心減少'},
[5] = {name='ルビーの煌き', desc='ステータスUP'},
[6] = {name='ルビーの癒し', desc='HP回復'},
},
},
astralflow = {
[1] = {name='シアリングライト', desc='光属性'},
},
}
bp['Titan'] = {
rage = {
[1] = {name='クラッグスロー', desc='斬属性遠隔(重力/切断),スロウ'},
[2] = {name='ジオクラッシュ', desc='土属性, スタン'},
[3] = {name='マウンテンバスター', desc='打属性物理(重力/効果),バインド'},
[4] = {name='メガリススロー', desc='斬属性遠隔(硬化),スロウ'},
[5] = {name='ロックバスター', desc='打属性物理(振動),バインド'},
[6] = {name='ロックスロー', desc='斬属性遠隔(切断),スロウ'},
[7] = {name='ストーンII', desc='土属性'},
[8] = {name='ストーンIV', desc='土属性'},
},
ward = {
buff = {
[1] = {name='大地の守り', desc='範囲ストンスキン'},
[2] = {name='大地の鎧', desc='範囲大ダメ軽減'},
},
},
astralflow = {
[1] = {name='アースフューリー', desc='土属性'},
},
}
bp['Leviathan'] = {
rage = {
[1] = {name='スピニングダイブ', desc='斬属性物理(湾曲/炸裂)'},
[2] = {name='グランドフォール', desc='水属性'},
[3] = {name='テールウィップ', desc='打属性物理(炸裂),ヘヴィ'},
[4] = {name='バラクーダダイブ', desc='斬属性物理(振動)'},
[7] = {name='ウォータII', desc='水属性'},
[8] = {name='ウォータIV', desc='水属性'},
},
ward = {
buff = {
[1] = {name='湧水', desc='範囲HP状態異常回復'},
[2] = {name='スージングカレント', desc='被ケアル回復量UP'},
},
debuff = {
[1] = {name='スロウガ', desc='範囲スロウ'},
[2] = {name='タイダルロア', desc='範囲攻撃力DOWN'},
}
},
astralflow = {
[1] = {name='タイダルウェイブ', desc='水属性'},
},
}
bp['Garuda'] = {
rage = {
[1] = {name='プレデタークロー', desc='斬属性3回(分解/切断)'},
[2] = {name='ウインドブレード', desc='風属性'},
[3] = {name='クロー', desc='突属性物理(炸裂)'},
[7] = {name='エアロII',desc='風属性'},
[8] = {name='エアロIV', desc='風属性'},
},
ward = {
buff = {
[1] = {name='ヘイスガII', desc='範囲ヘイストII'},
[2] = {name='風の囁き', desc='範囲HP回復'},
[3] = {name='真空の鎧', desc='範囲ブリンク'},
[4] = {name='真空の具足', desc='範囲移動速度UP'},
[5] = {name='ヘイスガ', desc='範囲ヘイスト'},
},
},
astralflow = {
[1] = {name='エリアルブラスト', desc='風属性'},
},
}
bp['Ifrit'] = {
rage = {
[1] = {name='フレイムクラッシュ', desc='格闘属性3回+火属性(核熱/振動)'},
[2] = {name='メテオストライク', desc='火属性'},
[3] = {name='コンフラグストライク', desc='火属性,バーン'},
[4] = {name='ダブルパンチ', desc='打属性2回(収縮)'},
[5] = {name='バーニングストライク', desc='打属性+火属性(振動)'},
[6] = {name='パンチ', desc='打属性物理(溶解)'},
[7] = {name='ファイアII', desc='火属性'},
[8] = {name='ファイアIV', desc='火属性'},
},
ward = {
buff = {
[1] = {name='紅蓮の咆哮', desc='範囲ウォークライ'},
[2] = {name='灼熱の咆哮', desc='範囲エンファイア'},
},
},
astralflow = {
[1] = {name='インフェルノ', desc='火属性'},
},
}
bp['Shiva'] = {
rage = {
[1] = {name='ラッシュ', desc='格闘属性5回(湾曲/切断)'},
[2] = {name='ヘヴンリーストライク', desc='氷属性'},
[3] = {name='ダブルスラップ', desc='打属性2回(切断)'},
[4] = {name='アクスキック', desc='打属性物理(硬化)'},
[7] = {name='ブリザドII', desc='氷属性'},
[8] = {name='ブリザドIV', desc='氷属性'},
},
ward = {
buff = {
[1] = {name='クリスタルブレシング', desc='範囲TPボーナス+250'},
[2] = {name='凍てつく鎧', desc='範囲アイススパイク'},
},
debuff = {
[1] = {name='スリプガ', desc='範囲睡眠'},
[2] = {name='ダイヤモンドストーム', desc='回避率DOWN'},
}
},
astralflow = {
[1] = {name='ダイヤモンドダスト', desc='氷属性'},
},
}
bp['Ramuh'] = {
rage = {
[1] = {name='ボルトストライク', desc='打属性3回(分解/切断),スタン'},
[2] = {name='サンダースパーク', desc='範囲雷属性, 麻痺'},
[3] = {name='サンダーストーム', desc='雷属性'},
[4] = {name='カオスストライク', desc='打属性3回(分解/貫通),スタン'},
[5] = {name='ショックストライク', desc='打属性物理(衝撃),スタン'},
[7] = {name='サンダーII', desc='雷属性'},
[8] = {name='サンダーIV', desc='雷属性'},
},
ward = {
buff ={
[1] = {name='雷鼓', desc='範囲エンサンダー'},
[2] = {name='雷電の鎧', desc='範囲ショックスパイク'},
},
debuff = {
[1] = {name='スタンガ', desc='範囲スタン'},
}
},
astralflow = {
[1] = {name='ジャッジボルト', desc='雷属性'},
},
}
bp['Fenrir'] = {
rage = {
[1] = {name='エクリプスバイト', desc='斬属性3回(重力/切断)'},
[2] = {name='インパクト', desc='闇属性, 全ステータスDOWN'},
[3] = {name='ルナーベイ', desc='闇属性'},
[4] = {name='クレセントファング', desc='突属性物理(貫通),麻痺'},
[5] = {name='ムーンリットチャージ', desc='打属性物理(収縮),暗闇'},
},
ward = {
buff = {
[1] = {name='上弦の唸り', desc='範囲ステータスUP'},
[2] = {name='下弦の咆哮', desc='命中, 回避率UP'},
[3] = {name='ヘヴンズハウル', desc='HPまたはMP吸収'},
},
debuff = {
[1] = {name='ルナークライ', desc='命中, 回避率DOWN'},
[2] = {name='ルナーロア', desc='2効果ディペル'},
}
},
astralflow = {
[1] = {name='ハウリングムーン', desc='闇属性'},
},
}
bp['Diabolos'] = {
rage = {
[1] = {name='ブラインドサイド', desc='格闘属性物理(重力/貫通)'},
[2] = {name='ナイトテラー', desc='闇属性'},
[3] = {name='ネザーブラスト', desc='闇属性'},
[4] = {name='カミサドー', desc='打属性物理(収縮)'},
},
ward = {
buff = {
[1] = {name='ドリームシュラウド', desc='魔攻, 魔防UP'},
[2] = {name='ノクトシールド', desc='範囲ファランクス'},
},
debuff = {
[1] = {name='ソ\\ムノレンス', desc='範囲ヘヴィ'},
[2] = {name='アルティメットテラー', desc='範囲ステータスDOWN'},
[3] = {name='パボルノクターナス', desc='デス'}
},
},
astralflow = {
[1] = {name='ルイナスオーメン', desc='HP割合ダメ'},
},
}
bp['Cait Sith'] = {
rage = {
[1] = {name='リーガルガッシュ', desc='斬属性3回(湾曲/炸裂)'},
[2] = {name='レベル?ホーリー', desc='光属性'},
[3] = {name='リーガルスクラッチ', desc='斬属性3回(切断)'},
},
ward = {
buff = {
[1] = {name='レイズII', desc=''},
[2] = {name='リレイズII', desc=''},
},
debuff = {
[1] = {name='ミュインララバイ', desc='範囲睡眠, TPリセット'},
[2] = {name='イアリーアイ', desc='静寂, アムネジア(視線判定)'},
}
},
astralflow = {
[1] = {name='アルタナフェーバー', desc='範囲アレイズ, リレイズ'},
},
}
bp['Odin'] = {
rage = {},
ward = {
buff = {},
debuff = {}
},
astralflow = {
[1] = {name='斬鉄剣', desc='範囲デス'},
},
}
bp['Alexander'] ={
rage = {},
ward = {
buff = {},
debuff = {}
},
astralflow = {
[1] = {name='絶対防御', desc='被ダメカット, レジスト率UP'},
},
}
bp['Atomos'] = {
rage = {},
ward = {
buff = {},
debuff = {}
},
astralflow = {
[1] = {name='ディコンストラクション', desc='強化吸収'},
[2] = {name='クロノスフト', desc='強化付与'},
},
}
bp['Siren'] = {
rage = {
[1] = {name='ヒステリックアサルト', desc='突属性3回(分解/貫通),HP吸収'},
[2] = {name='ソ\\ニックバフェット', desc='風属性,ディスペル'},
[3] = {name='ラウンドハウス', desc='打属性'},
[4] = {name='ウェルト', desc='斬属性'},
[7] = {name='トルネドII', desc='風属性'},
},
ward = {
buff ={
[1] = {name='風の守り', desc='範囲魔法バリア'},
[2] = {name='シヌーク', desc='範囲アクアベール'},
[3] = {name='疾風の刃', desc='範囲エンエアロ'},
},
debuff = {
[1] = {name='ルナティックボイス', desc='範囲静寂'},
[2] = {name='修羅のエレジー', desc='エレジー'},
}
},
astralflow = {
[1] = {name='クラーサクコール', desc='風属性'},
},
}
bp_physical=S{'パンチ','ロックスロー','バラクーダダイブ','クロー','アクスキック','ショックストライク','カミサドー','リーガルスクラッチ','ポイズンネイル',
'ムーンリットチャージ','クレセントファング','ロックバスター','テールウィップ','ダブルパンチ','メガリススロー','ダブルスラップ','エクリプスバイト',
'マウンテンバスター','スピニングダイブ','プレデタークロー','ラッシュ','カオスストライク','クラッグスロー','ボルトストライク','リーガルガッシュ',
'クラッグスロー','ブラインドサイド','ヒステリックアサルト','ラウンドハウス','ウェルト'}
bp_hybrid=S{'バーニングストライク','フレイムクラッシュ'}
bp_magical=S{'インフェルノ','アースフューリー','タイダルウェイブ','エリアルブラスト','ダイヤモンドダスト','ジャッジボルト','シアリングライト','ハウリングムーン',
'ルイナスオーメン','ファイアII','ストーンII','ウォータII','エアロII','ブリザドII','サンダーII','サンダースパーク','ソムノレンス',
'プチメテオ','ファイアIV','ストーンIV','ウォータIV','エアロIV','ブリザドIV','サンダーIV','ネザーブラスト','メテオストライク',
'ジオクラッシュ','グランドフォール','ウインドブレード','ヘヴンリーストライク','サンダーストーム','レベル?ホーリー','ホーリーミスト','ルナーベイ',
'ナイトテラー','コンフラグストライク','斬鉄剣','インパクト','ソニックバフェット','トルネドII'}
bp_debuff=S{'ルナークライ','ミュインララバイ','ナイトメア','ルナーロア','スロウガ','アルティメットテラー','スリプガ','イアリーアイ','タイダルロア',
'ダイヤモンドストーム','スタンガ','パボルノクターナス','ルナティックボイス','修羅のエレジー'}
bp_buff=S{'ルビーの輝き','凍てつく鎧','雷鼓','紅蓮の咆哮','電雷の鎧','上弦の唸り','ヘイスガ','ノクトシールド',
'下弦の咆哮','ドリームシュラウド','大地の守り','真空の具足','灼熱の咆哮','ルビーの安らぎ','ヘヴンズハウル',
'ルビーの煌き','ヘイスガII','クリスタルブレシング','真空の鎧','大地の鎧','スージングカレント','絶対防御','風の守り','シヌーク','疾風の刃'}
bp_other=S{'ルビーの癒し','レイズII','リレイズII','風の囁き','ルビーの贖罪','湧水','ルビーの癒しII','アルタナフェーバー'}
avatar_list=S{'Shiva','Ramuh','Garuda','Leviathan','Diabolos','Titan','Fenrir','Ifrit','Carbuncle','Fire Spirit','Air Spirit','Ice Spirit',
'Thunder Spirit','Light Spirit','Dark Spirit','Earth Spirit','Water Spirit','Cait Sith','Alexander','Odin','Atomos'}
spirit_element = {}
spirit_element['火']='火精霊召喚'
spirit_element['土']='土精霊召喚'
spirit_element['水']='水精霊召喚'
spirit_element['風']='風精霊召喚'
spirit_element['氷']='氷精霊召喚'
spirit_element['雷']='雷精霊召喚'
spirit_element['光']='光精霊召喚'
spirit_element['闇']='闇精霊召喚'
-- 弱天候
weather = {}
weather['熱波'] = '火'
weather['雨'] = '水'
weather['雷'] = '雷'
weather['砂塵'] = '土'
weather['風'] = '風'
weather['雪'] = '氷'
weather['オーロラ'] = '光'
weather['妖霧'] = '闇'
-- 強天候
weather_strong = {}
weather_strong['灼熱波'] = '火'
weather_strong['スコール'] = '水'
weather_strong['雷雨'] = '雷'
weather_strong['砂嵐'] = '土'
weather_strong['暴風'] = '風'
weather_strong['吹雪'] = '氷'
weather_strong['神光'] = '光'
weather_strong['闇'] = '闇'
-- 弱点属性
weaken_element = {}
weaken_element['火'] = '水'
weaken_element['水'] = '雷'
weaken_element['雷'] = '土'
weaken_element['土'] = '風'
weaken_element['風'] = '氷'
weaken_element['氷'] = '火'
weaken_element['光'] = '闇'
weaken_element['闇'] = '光'
--[[
//gs c bp rage [number] [target]
//gs c bp ward buff [number] [target]
//gs c bp ward debuff [number] [target]
//gs c bp astralflow [number] [target]
target: t, st
]]
function bp_commnad(args)
if args[1]:lower() == 'bp' then
if not pet.isvalid then
windower.add_to_chat(122,'No avatar currently available.')
return
end
if not args[2] then
windower.add_to_chat(123,'No bp type given.')
return
end
local bp_type = args[2]:lower()
if bp_type == 'rage' or bp_type == 'astralflow' then
if bp_type == 'astralflow' and not buffactive['アストラルフロウ'] then
windower.add_to_chat(122,'Cannot use Astral Flow Blood Pact at this time.')
return
end
if not args[3] then
windower.add_to_chat(123,'No bp number given.')
return
end
local rage_number = tonumber(args[3])
if not bp[pet.name][bp_type][rage_number] then
windower.add_to_chat(123,'Unknown rage type: '..tostring(bp_type)..' '..tostring(rage_number))
return
end
if not args[4] then
windower.add_to_chat(123,'No target given.')
return
end
local target = args[4]:lower()
if target ~= 't' and target ~= 'st' then
windower.add_to_chat(123,'Invalid target: '..tostring(target))
return
end
local bp_name = bp[pet.name][bp_type][rage_number]['name']
local target_type = gearswap.res.job_abilities:with('ja', bp_name:gsub('\\','')).targets
-- windower.add_to_chat(122, pacts[pact][pet.name])
local target_str = '<me>'
if target_type['Enemy'] then
if target == 'st' then
target_str = '<stnpc>'
else
target_str = '<t>'
end
elseif target_type['Party'] then
if target == 'st' then
target_str = '<stpc>'
else
target_str = '<t>'
end
elseif target_type['Self'] then
if target == 'st' then
target_str = '<stpc>'
else
target_str = '<me>'
end
else
target_str = '<st>'
end
-- windower.add_to_chat(122,pacts[pact][pet.name]..' '..target_str)
send_command('input /pet '..windower.to_shift_jis(bp[pet.name][bp_type][rage_number]['name'])..' '..target_str)
elseif bp_type == 'ward' then
if not args[3] then
windower.add_to_chat(123,'No ward type given.')
return
end
local ward_type = args[3]:lower()
if not args[4] then
windower.add_to_chat(123,'No bp number given.')
return
end
local ward_number = tonumber(args[4])
if not bp[pet.name][bp_type][ward_type][ward_number] then
windower.add_to_chat(123,'Unknown ward type: '..tostring(bp_type)..' '..tostring(ward_type)..' '..tostring(ward_number))
return
end
if not args[5] then
windower.add_to_chat(123,'No target given.')
return
end
local target = args[5]:lower()
if target ~= 't' and target ~= 'st' then
windower.add_to_chat(123,'Invalid target: '..tostring(target))
return
end
local bp_name = bp[pet.name][bp_type][ward_type][ward_number]['name']
local target_type = gearswap.res.job_abilities:with('ja', bp_name:gsub('\\','')).targets
-- windower.add_to_chat(122, pacts[pact][pet.name])
local target_str = '<me>'
if target_type['Enemy'] then
if target == 'st' then
target_str = '<stnpc>'
else
target_str = '<t>'
end
elseif target_type['Party'] then
if target == 'st' then
target_str = '<stpc>'
else
target_str = '<t>'
end
elseif target_type['Self'] then
if target == 'st' then
target_str = '<stpc>'
else
target_str = '<me>'
end
else
target_str = '<st>'
end
-- windower.add_to_chat(122,pacts[pact][pet.name]..' '..target_str)
send_command('input /pet '..windower.to_shift_jis(bp[pet.name][bp_type][ward_type][ward_number]['name'])..' '..target_str)
else
windower.add_to_chat(123,'Invalid bp type: '..tostring(bp_type))
end
end
end
function spirit_command()
local w_strong = weather_strong[world.weather]
local w_normal = weather[world.weather]
local spirit_str = spirit_element[world.day_element]
if w_strong then
spirit_str = spirit_element[w_strong]
elseif w_normal and world.day_element ~= weaken_element[w_normal] then
spirit_str = spirit_element[w_normal]
else
spirit_str = spirit_element[world.day_element]
end
send_command('input /magic '..windower.to_shift_jis(spirit_str)..' <me>')
end
local texts = require('texts')
bp_box = texts.new('${name}\n${hpp}%\n神獣の加護: ${favor_state}\n契約の履行:\n${pact}',{text={font='meiryo', size=9}, pos={x=30, y=150}, padding = 5, bg={alpha=180}})
function showText()
bp_box:show()
end
function hideText()
bp_box:hide()
end
function bp_update()
if buffactive['神獣の加護'] then
bp_box.favor_state = '\\cs(50,50,255)ON\\cr'
else
bp_box.favor_state = '\\cs(255,50,50)OFF\\cr'
end
local lines = L{}
bp_box.pact = ''
if pet.name then
bp_box.name = pet.name
bp_box.hpp = pet.hpp
if bp[pet.name] then
-- lines:append('Rage(幻術)')
-- if bp[pet.name]['rage'] then
-- -- for i,v in ipairs(bp[pet.name]['rage']) do
-- -- lines:append('%s: %s: %s':format(i,v['name'], v['desc']))
-- -- end
-- for i = 1, 8 do
-- local v = bp[pet.name]['rage'][i]
-- if v then
-- lines:append('%s: %s: %s':format(i,v['name'], v['desc']))
-- end
-- end
-- end
-- lines:append('')
-- lines:append('Ward(験術)')
if bp[pet.name]['ward']['buff'] then
lines:append('Buff:')
for i,v in ipairs(bp[pet.name]['ward']['buff']) do
lines:append('%s: %s: %s':format(i,v['name'], v['desc']))
end
end
lines:append('')
if bp[pet.name]['ward']['debuff'] then
lines:append('Debuff:')
for i,v in ipairs(bp[pet.name]['ward']['debuff']) do
lines:append('%s: %s: %s':format(i,v['name'], v['desc']))
end
end
-- lines:append('')
-- lines:append('アストラルフロー')
-- if bp[pet.name]['astralflow'] then
-- for i,v in ipairs(bp[pet.name]['astralflow']) do
-- lines:append('%s: %12s: %s':format(i,v['name'], v['desc']))
-- end
-- end
end
else
bp_box.name = 'No Avatar'
bp_box.hpp = '0'
end
if lines:length() > 0 then
bp_box.pact = lines:concat('\n')
end
end
function bp_destroy()
bp_box:destroy()
end
local update_time = 0
local update_interval = 1
-- windower.register_event('prerender', function()
-- local curr = os.clock()
-- if curr > frame_time + update_interval then
-- frame_time = curr
-- bp_update()
-- end
-- end)
windower.register_event('time change', function(new, old)
local curr = os.clock()
if curr > update_time + update_interval then
update_time = curr
bp_update()
end
end)
コメント
コメント一覧 (4件)
お世話になっております
こちらのコードをマルっとコピペしたところ6行目にエラーが出ている模様?
6行目を削除( main={ name=エスピリトゥス, ~~)してみた所やはり同じエラーが出ます
GearSwap:Error Loading file (smn_gear.lua):…Progeam_Files(x86)~~/smn_gear.lua]6:unexpec($I
エラー画像
https://tadaup.jp/1a7f7fb20.png
パス:0120
こちらでは再現できない系のエラーですね。
今現在も普通に動いています。
Mote-Utilityの556行目を見ると、装備プロパティを取得しているような箇所でエラーになったように思えます。
6行目のmain={ name=”エスピリトゥス”, augments={‘Summoning magic skill +15′,’Pet: Mag. Acc.+30′,’Pet: Damage taken -4%’,}},
を削除してエラーが出る理由が分かりません。
ごくまれにWindower自体が不具合っぽい動きをすることがあるので、次を試してみてください。
①エスピリトゥス以外の武器に書き換え(プロパティ属性のない武器でコード内の全箇所)
②エスピリトゥスのプロパティ属性を消す(main=”エスピリトゥス”,
③Windowerの再起動
④PCの再起動
よろしくお願いします。
いつもありがとうございます
装備ファイルの一部の部分が何の仕事してるのかが、いまいちピントきてません
ご教示ください
function init_gear_sets()
– ジョブに変えたときに装備するロックスタイルセット
lockstyleset = 141
– アビリティ使用時優先する装備
sets.precast.JA[‘アストラルフロウ’] = {}
sets.precast.JA[‘エレメントサイフォン’] = {}
sets.precast.JA[‘マナシード’] = {}
sets.precast.JA[‘神獣の加護’] = {}
– デフォルト装備
sets.idle = { }
– ペットがいる時装備
sets.idle.Avatar = { }
– エレが居る時↑の装備になる
sets.idle.Spirit = sets.idle.Avatar
– ?
sets.idle.Avatar.Favor = sets.idle.Avatar
– ?
sets.idle.Avatar.Melee = sets.idle.Avatar
–履行短縮
– 契約の履行使用前 ?
sets.precast.BloodPactWard = { }
– 契約の履行使用前 ?
sets.precast.BloodPactRage = sets.precast.BloodPactWard
–ファストキャスト装備
sets.precast.FC = { }
—————————————————————————————————————————
— Midcast Sets 詠唱中装備
—————————————————————————————————————————
–ケアル詠唱時
sets.midcast.Cure = { }
–強化魔法詠唱時
sets.midcast[‘強化魔法’] = { }
– 契約の履行(魔法着弾時)
sets.midcast.Pet.AvatarMagicalPacts = { }
– 契約の履行(物理着弾時)
sets.midcast.Pet.AvatarPhysicalPacts = { }
–不明
sets.midcast.Pet.AvatarBuffWard = { }
sets.midcast.Pet.AvatarCure = set_combine(sets.midcast.Pet.AvatarBuffWard,{})
sets.midcast.Pet.AvatarDeBuffWard = set_combine(sets.midcast.Pet.AvatarBuffWard,{})
— Spirits cast magic spells, which can be identified in standard ways.
sets.midcast.Pet[‘白魔法’] = sets.midcast.Pet.AvatarMagicalPacts
sets.midcast.Pet[‘精霊魔法’] = sets.midcast.Pet.AvatarMagicalPacts
sets.midcast.Pet[‘精霊魔法’].Resistant = sets.midcast.Pet.AvatarMagicalPacts
?マークが付いている箇所について返答します。
①sets.idle.Avatar.Favor = sets.idle.Avatar
神獣の加護時の装備セットです。
ただし、sets.idle.AvatarでBCホーンをセットしているなら、この定義を利用する必要はありません。
カスタイズ用の定義です。利用しなくて問題ありません。
②sets.idle.Avatar.Melee = sets.idle.Avatar
神獣の攻撃用の定義です。
ペット命中など、ペットの通常攻撃に装備に着替える際のカスタマイズにお使いください。
私はペットで通常攻撃をすることがないので、これらの定義を利用していません。
どこかからのコピペで組んだのだと思うのですが、使ったことがないので正しく機能するか確認していません。
③sets.precast.BloodPactWard = { }
契約の履行前 バフ・デバフ履行の短縮装備セットです。
④sets.precast.BloodPactRage = sets.precast.BloodPactWard
契約の履行前 物理・魔法履行の短縮装備セットです。
⑤sets.midcast.Pet.AvatarBuffWard
バフ・デバフの装備セットです。
主に召喚スキルをブーストするために使います。