第6回 魔法やアビリティによって着替えを使い分ける その1 [gearswap]
今回は使用するアビリティや魔法などによって着替えの内容を分けてみます。
例として、黒魔法の詠唱前に「女王の指輪」を、それ以外の場合は「守りの指輪」を左手の指に装備するコードを作ってみます。
(例によって装備内容は超適当です^^)
function get_sets()
set_language('japanese')
sets.precast={
left_ring="守りの指輪"
}
sets.precast.BlackMagic={
left_ring="女王の指輪"
}
end
function precast(spell)
if spell.type =='BlackMagic' then
equip(sets.precast.BlackMagic)
else
equip(sets.precast)
end
end
ここで使用している装備セットは2つです。前半部分でそれぞれ sets.precast と sets.precast.BlackMagic という名前で定義されています。
後半の動作部分には初めてif文というものが登場します。
解説を入れてみます。
if spell.type =='BlackMagic' then ←もしもspell.typeがBlackMagicだったら
equip(sets.precast.BlackMagic) ←sets.precast.BlackMagicを装備しなさい
else ←それ以外だったら
equip(sets.precast) ←sets.precastを装備しなさい
end ←if文の終わり
if文が使いこなせるようになれば様々な状況で装備を使い分けることができますのでしっかりと理解しておくことをおすすめします。
次に黒魔法だけでなく白魔法の場合も追加してみます。
白魔法詠唱開始前にトリゼックリングを装備します。(しつこいですが装備内容は超てきt)
function get_sets()
set_language('japanese')
sets.precast={
left_ring="守りの指輪"
}
sets.precast.WhiteMagic={
left_ring="トリゼックリング"
}
sets.precast.BlackMagic={
left_ring="女王の指輪"
}
end
function precast(spell)
if spell.type =='BlackMagic' then
equip(sets.precast.BlackMagic)
elseif spell.type =='WhiteMagic' then
equip(sets.precast.WhiteMagic)
else
equip(sets.precast)
end
end
if文の中にelseifというのが新しく入ってきました。解説します。
if spell.type =='BlackMagic' then ←もしもspell.typeがBlackMagicだったら
equip(sets.precast.BlackMagic) ←sets.precast.BlackMagicを装備しなさい
elseif spell.type =='WhiteMagic' then ←それ以外で、もしもspell.typeがWhiteMagicだったら
equip(sets.precast.WhiteMagic) ←sets.precast.WhiteMagicを装備しなさい
else ←それ以外だったら
equip(sets.precast) ←sets.precastを装備しなさい
end ←if文の終わり
elseifはいくつでも重ねることができ、そうすることで様々な分岐に対応できます。
spell.typeを使った判定には次のようなものが使用できます。
JobAbility(ジョブアビリティ)
WeaponSkill(ウェポンスキル)
WhiteMagic(白魔法)
BlackMagic(黒魔法)
BlueMagic(青魔法)
Ninjutsu(忍術)
BardSong(歌)
CorsairRoll(コルセアズロール)
CorsairShot(クイックドロー)
BloodPactRage(契約の履行:幻術)
SummoningMagic(召喚魔法)
PetCommand(ペットコマンド)
Trust(フェイス)
あとは前回までを参考に詠唱中、詠唱後も追加することができればかなり実用的になりますね!
次回はさらに細かく分岐する例を挙げて解説します。
※今回のコードでエラーが出ないのにうまく動かない場合に確認するポイント※
gearswapで使用されるLuaの変数は大文字と小文字が区別されます。
例えば今回の例文でsets.precast.WhiteMagicとsets.precast.Whitemagicのような打ち間違えをするとこれらは別物として扱われ、エラーは出ませんがうまく動きません。
慣れないうちは私もミスりまくって頭を悩ませていました。
変数は直接手打ちせずにコピペする癖をつけておくといいですよ!
分かりやすい説明助かります。
続きを待っています。
by ゆうた (2017-09-01 18:14)
コメント頂いていたとは気づかずにのんびりとした更新となってしまい申し訳ありません。
できるだけ早めに更新していきたいと思います。ありがとうございました。
by ろびん (2017-09-24 15:41)