(2018/04/14)バグ修正
以前からテストゲームなどで使用してきた、結構前に書いたスクリプトです。
最初に断っておきますと、たぶん似たようなスクリプトは色々なところで存在していると思います。そしておそらくよく見るランプスクリプトは私のものではありません。
ですので、もしそのスクリプトを探してこられた方はここにあるものとは違う可能性があるので注意してください。
ここのランプスクリプトは
暗闇マップをセット、
ランプイベントの発生させることができ、
時間経過とともにランプの照らす範囲が減少します。
テストゲーム (1.9MB)
・スクリプト
DataManager
Cache
Game_CharacterBase
Scene_Map
Sprite_DarkLampAround
Sprite_DarkLamp
Spriteset_Map
上のDataManagerとCache以外をまとめたもの。
composed_scripts_lamp
・導入方法
上のスクリプトを全て入れて元のDataManagerのself.initのload_databaseの下の辺りにload_normal_databasetakolampを挿入します。
例
・使い方
新しく導入したDataManagerの
$data_lamp_max_numは照らす範囲の最大値にかかわる数字です。
実際に値を入れて確かめながら定めてください。
$data_lamp_min_rは照らす範囲の最小値です。
$data_lamp_reduce_degreeはランプが小さくなる速さです。
$data_lamp_need_dungeon で暗闇にするマップのIDを指定します。
(例:$data_lamp_need_dungeon = [2,3]でID002とID003のマップが暗闇になります。)
ランプをセットするにはスクリプトで$game_player.lamp_timer = X(Xは適当な数値、大きいほどランプが長くもちます)としてください。
上のように$game_player.lamp_timer = Xとした場合は重ねがけ(使った分だけ使用効果延長)ができませんが重ねがけを認める場合は$game_player.lamp_timer += Xとすればできます。
・例
たとえばテストゲームのアイテムのランプは次のようにしています。
まずコモンイベントでランプイベントを作ります。
次にアイテムのランプを作成します。
またランプの効果はこちらから$game_player.lamp_timer = 0としない限り、時間が経過するまで維持されます。テストゲームでは休憩すると$game_player.lamp_timer = 0としてランプ効果を消しています。
次のようにランプクリアイベントを定義して、
休憩した際にこのコモンイベントを実行するようにすればよいです。
休憩もコモンイベント化してそこで上のコモンイベントを実行するようにしておいたほうがいいと思いますが今回はそのまま使いました。