Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- =begin
- Version 1.0 - 03/24/2020
- You can add as many controllable lights to whatever maps you want.
- Keys 1, 2, 3, 4 and 9 will all revert back to their starting positions when
- toggled off. Keys 0, F5, and F8 are now more easy to turn off and on when
- needed.
- === Setup ===
- In each map that you want to have controllable lights, in the notes section
- of the map put <djLighting> and case DOES matter so enter it exactly as shown
- here.
- In each light event, anywhere on page 1 put a comment that reads <keyxLight>
- where x is the key you want to control that particular light.
- Example - You want a particular light event to be controlled by pressed the
- 4 key. In that event's page 1, add a comment that reads <key4Light> and that's
- it.
- =end
- $updateDJLighting = false
- class Scene_Base
- @@keyLights = Hash.new
- alias drykul_lighting_start start
- def start
- drykul_lighting_start
- if $updateDJLighting
- drykul_get_light_events
- end
- end
- alias drykul_lighting_update update
- def update
- drykul_lighting_update
- if $updateDJLighting
- drykul_positional_update
- end
- end
- def drykul_get_light_events
- @key1Lights = []
- #@keyXLightsInfo = [event id, [event x, event y]]
- @key1LightsInfo = []
- @key2Lights = []
- @key2LightsInfo = []
- @key3Lights = []
- @key3LightsInfo = []
- @key4Lights = []
- @key4LightsInfo = []
- @key9Lights = []
- @key9LightsInfo = []
- # Lights mapped to key 1
- $game_map.events.each_value {|event| @key1Lights << event}
- @key1Lights.select! {|x| x.list[0].code == 108 &&
- x.list[0].parameters == ["<key1Light>"] if x.list}
- @key1Lights.uniq!
- for i in @key1Lights do
- @key1LightsInfo.push([i.id, [i.x, i.y]])
- end
- # Lights mapped to key 2
- $game_map.events.each_value {|event| @key2Lights << event}
- @key2Lights.select! {|x| x.list[0].code == 108 &&
- x.list[0].parameters == ["<key2Light>"] if x.list}
- @key2Lights.uniq!
- for i in @key2Lights do
- @key2LightsInfo.push([i.id, [i.x, i.y]])
- end
- # Lights mapped to key 3
- $game_map.events.each_value {|event| @key3Lights << event}
- @key3Lights.select! {|x| x.list[0].code == 108 &&
- x.list[0].parameters == ["<key3Light>"] if x.list}
- @key3Lights.uniq!
- for i in @key3Lights do
- @key3LightsInfo.push([i.id, [i.x, i.y]])
- end
- # Lights mapped to key 4
- $game_map.events.each_value {|event| @key4Lights << event}
- @key4Lights.select! {|x| x.list[0].code == 108 &&
- x.list[0].parameters == ["<key4Light>"] if x.list}
- @key4Lights.uniq!
- for i in @key4Lights do
- @key4LightsInfo.push([i.id, [i.x, i.y]])
- end
- # Lights mapped to key 9
- $game_map.events.each_value {|event| @key9Lights << event}
- @key9Lights.select! {|x| x.list[0].code == 108 &&
- x.list[0].parameters == ["<key9Light>"] if x.list}
- @key9Lights.uniq!
- for i in @key9Lights do
- @key9LightsInfo.push([i.id, [i.x, i.y]])
- end
- # Add all keys to class variable
- @@keyLights["key1"] = @key1LightsInfo
- @@keyLights["key2"] = @key2LightsInfo
- @@keyLights["key3"] = @key3LightsInfo
- @@keyLights["key4"] = @key4LightsInfo
- @@keyLights["key9"] = @key9LightsInfo
- end
- def drykul_positional_update
- # If the corresponding switch is off, reset each event to its starting coord.
- if $game_switches[100] == false
- tempNum = 0
- for i in @@keyLights["key1"] do
- $game_map.events[@@keyLights["key1"][tempNum][0]].moveto(@@keyLights["key1"][tempNum][1][0], @@keyLights["key1"][tempNum][1][1])
- tempNum += 1
- end
- end
- if $game_switches[63] == false
- tempNum = 0
- for i in @@keyLights["key2"] do
- $game_map.events[@@keyLights["key2"][tempNum][0]].moveto(@@keyLights["key2"][tempNum][1][0], @@keyLights["key2"][tempNum][1][1])
- tempNum += 1
- end
- end
- if $game_switches[89] == false
- tempNum = 0
- for i in @@keyLights["key3"] do
- $game_map.events[@@keyLights["key3"][tempNum][0]].moveto(@@keyLights["key3"][tempNum][1][0], @@keyLights["key3"][tempNum][1][1])
- tempNum += 1
- end
- end
- if $game_switches[17] == false
- tempNum = 0
- for i in @@keyLights["key4"] do
- $game_map.events[@@keyLights["key4"][tempNum][0]].moveto(@@keyLights["key4"][tempNum][1][0], @@keyLights["key4"][tempNum][1][1])
- tempNum += 1
- end
- end
- if $game_switches[93] == false
- tempNum = 0
- for i in @@keyLights["key9"] do
- $game_map.events[@@keyLights["key9"][tempNum][0]].moveto(@@keyLights["key9"][tempNum][1][0], @@keyLights["key9"][tempNum][1][1])
- tempNum += 1
- end
- end
- end
- end
- ##### Find map notes to see if the tag string is in them.
- ##### If found, update global variable $updateDJLighting.
- class Game_Map
- @@mapNotes = ""
- alias drykul_lighting_setup setup
- def setup(map_id)
- drykul_lighting_setup(map_id)
- @@mapNotes = @map.note
- if @@mapNotes.include? "<djLighting>"
- $updateDJLighting = true
- else
- $updateDJLighting = false
- end
- end
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement