-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy path# Script - Clear Memory.rb
112 lines (97 loc) · 4.22 KB
/
# Script - Clear Memory.rb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
# Script - Clear Memory
#==============================================================================
# +++ MOG - Clear Memory (v1.0) (Memory Leak Solution) +++
#==============================================================================
# By Moghunter
# https://atelierrgss.wordpress.com/
#==============================================================================
# O script limpa a memória utilizada pelo RpgMaker, basicamente dá um reset
# no jogo sem que o jogador perca os dados dos jogo.
# Este script é voltado para quem estiver tendo problema com sobrecarregamento
# na memória Ram.
#==============================================================================
# UTILIZAÇÃO
#==============================================================================
# Basta usar o código abaixo através do comando chamar script.
#
# $game_system.clear_memory
#
#==============================================================================
# NOTA
#==============================================================================
# Haverá uma pequena pausa no momento que a memória é limpa, portanto é
# aconselhavel limpar a memória durante uma cena ou quando for teleportar
# entre um mapa e outro.
#==============================================================================
#===============================================================================
# ■ SceneManager
#===============================================================================
class << SceneManager
#--------------------------------------------------------------------------
# ● First Scene Class
#--------------------------------------------------------------------------
def first_scene_class
$clear_memory ? Scene_Recover_Data : $BTEST ? Scene_Battle : Scene_Title
end
end
#===============================================================================
# ■ DataManager
#===============================================================================
class << DataManager
#--------------------------------------------------------------------------
# ● Save Game Temp
#--------------------------------------------------------------------------
def save_game_temp
File.open("Quick_Save", "wb") do |file|
$game_system.on_before_save
Marshal.dump(make_save_header, file)
Marshal.dump(make_save_contents, file)
end
return true
end
#--------------------------------------------------------------------------
# ● Load Game Temp
#--------------------------------------------------------------------------
def load_game_temp
File.open("Quick_Save", "rb") do |file|
Marshal.load(file)
extract_save_contents(Marshal.load(file))
reload_map_if_updated
end
File.delete("Quick_Save") rescue nil
return true
end
end
#===============================================================================
# ■ Game System
#===============================================================================
class Game_System
#--------------------------------------------------------------------------
# ● Clear_Memory
#--------------------------------------------------------------------------
def clear_memory
DataManager.save_game_temp
reset = Win32API.new 'user32', 'keybd_event', %w(l l l l), ''
reset.call(0x7B,0,0,0)
sleep(0.1)
$clear_memory = [RPG::BGM.last,RPG::BGS.last]
reset.call(0x7B,0,2,0)
end
end
#===============================================================================
# ■ Scene Recover Data
#===============================================================================
class Scene_Recover_Data
#--------------------------------------------------------------------------
# ● Main
#--------------------------------------------------------------------------
def main
SceneManager.clear
DataManager.load_game_temp
SceneManager.goto(Scene_Map)
$clear_memory[0].replay rescue nil
$clear_memory[1].replay rescue nil
$clear_memory = nil
end
end
$mog_rgss3_clear_memory = true