スクリプト/消えた装備を復元・装備品をアイテム欄へ

最終投稿者:Material 204926 1 mini 井戸乃博士 更新:2013/10/10 07:59:02
ども、井戸の博士です。
研究(ゲーム制作)中にできたスクリプトを実験的に公開してみることにしましたぞ。
最初にこのスクリプトを考えた経緯を。

 イベント中に主人公を隠したい → hidePlayerだとチラ見えしてちょっと
 → setEventCharacterで透明キャラに変更してみよう。お、いい感じだ。
→ 主人公の装備が全部消失 → ( ゜Д゜)

これじゃゲームが進められんよ!ということで三日三晩悩んだ挙句考えたのが次のスクリプト。
まあそうでなくても、装備を強制的に外すイベントを作りたいときに使えると思いますぞ。
ちなみに博士のスクリプトの技能は配列と聞くと偏頭痛がするというレベルです。

失われた装備を元に戻すスクリプト

#装備しているアイテムを記憶するスクリプト。装備が消えるイベントの前に書きます。
setVariable("eq", createArray())
m = 0
while m <= 15
getVariable("eq")[m] = getEquipmentIdArray()[m]
m = m + 1
end

#装備品が消失するイベント発生

m = 0
while m <= 15
if getVariable("eq")[m] != -1
giveEquipment(getVariable("eq")[m])
end
m = m + 1
end
#これで消失前に装備していた装備品が戻ります。


なお、以下の点に注意。
  • HPやMPが変化する装備をしている場合は、装備品を戻した後、HPやMPが減っている場合があるので、setPartyMemberHealingAll()をこのスクリプトの後に書いておく。
  • 装備品消失がマップをまたいで起こる場合、前のマップと後のマップで登録するアイテムを合わせておかないとエラーが生じる可能性がある。

あと、このスクリプトを考える過程で副産物的に考えついたスクリプトも掲載。
装備品を全部、アイテム欄に移すというスクリプトです。

装備品をアイテム欄に移すスクリプト

#現在装備しているアイテムと同種類のアイテムを取得
m = 0
while m <= 15
 if getEquipmentIdArray()[m] != -1
    giveItem(getEquipmentIdArray()[m])
 end
m = m + 1
end

#装備品を消去
n = 0
while n <= 15
 if getEquipmentIdArray()[n] != -1
    removeEquipmentWithIndex(n)
 end
n = n + 1
end


何か問題や改善点があれば、コメントをお願いしたい。ではでは。

コメントする

コメントするには、ログインする必要があります。

コメント一覧

       256 mini 池ちゃん(翡翠ヶ池)(投稿日:2013/10/10 07:59, 履歴)
おぉ、これを関数にできればもっと使いやすくなりそうですね。

あと・・・。

http://rmake.jp/document/function_reference#setEventCharacter関数
初期状態のキャラクターに戻す場合は第2引数を
"default"にするとできます。
記憶が正しければ、変更前の状態で戻ってくるはずです。