Krótki opis:
Skrypt daje nam HUD z HP, MP, char, lv i Exp z procentowym postępem. Zmienione jest także menu w którym mamy co sekundę aktualizowany czas gry.
Autor:
OriginalWij
Tłumaczenie:
Etam
Skrypt:
Spoiler:
Kod:
#==============================================================================
# HUD Menu 2
#==============================================================================
# Autor : OriginalWij
# Versão : 1.0
# Tłumaczenie : Etam
#==============================================================================
class Game_Actor < Game_Battler
#--------------------------------------------------------------------------
# Get Current XP (New)
#--------------------------------------------------------------------------
def now_exp
return @exp - @exp_list[@level]
end
#--------------------------------------------------------------------------
# Get Next Level Xp (New)
#--------------------------------------------------------------------------
def next_exp
lvl = @level + 1
return @exp_list[lvl] > 0 ? @exp_list[lvl] - @exp_list[@level] : 0
end
end
class Scene_Base
#--------------------------------------------------------------------------
# Create Snapshot for Using as Background of Another Screen (Mod)
#--------------------------------------------------------------------------
alias ow_hud2_scene_base_snap_for_back snapshot_for_background unless $@
def snapshot_for_background
if $game_temp.no_blur
$game_temp.background_bitmap.dispose
$game_temp.background_bitmap = Graphics.snap_to_bitmap
else
ow_hud2_scene_base_snap_for_back
end
end
#--------------------------------------------------------------------------
# Create Background for Menu Screen (Mod)
#--------------------------------------------------------------------------
alias ow_hud2_scene_base_create_menu_back create_menu_background unless $@
def create_menu_background
if $game_temp.no_blur
@menuback_sprite = Sprite.new
@menuback_sprite.bitmap = $game_temp.background_bitmap
@menuback_sprite.color.set(0, 0, 0, 0)
update_menu_background
else
ow_hud2_scene_base_create_menu_back
end
end
end
class Scene_Menu < Scene_Base
#--------------------------------------------------------------------------
# Initialize (Rewrite)
#--------------------------------------------------------------------------
def initialize(menu_index = 0)
@menu_index = menu_index
@return_to_select = false
if OW_HUD2::RETURN_SELECT
@return_to_select = OW_HUD2::COMMAND[@menu_index][3]
end
end
#--------------------------------------------------------------------------
# Start (Rewrite)
#--------------------------------------------------------------------------
def start
super
@size = OW_HUD2::COMMAND.size - 1
@com_y = [182, 266]
if @size > 2
min = 2
max = @size - 1
amount = max - min
if amount > 0
offset = 108 / amount
else
offset = 0
end
counter = 0
for i in min..max
@com_y.push(236 - offset * counter)
counter += 1
end
end
@com_y.push(98)
@y_off = (Graphics.height - 416) / 2
create_menu_background
create_command_window
@gold_window = Window_Gold.new(0, Graphics.height - 56)
@time_window = Time_Window.new(Graphics.width - 160, Graphics.height - 56)
x = (Graphics.width - 192) / 2
y = (Graphics.height - 88) / 2 + 2
@selection = Window_Base.new(x, y, 192, 88)
@selection.back_opacity = 192
@selection.z = 64
@actor_window_left = ActorStatus_Window.new(-160, 0)
@actor_window_right = ActorStatus_Window.new(Graphics.width, 0, true)
end
#--------------------------------------------------------------------------
# Terminate (Rewrite)
#--------------------------------------------------------------------------
def terminate
super
dispose_menu_background
for i in 0..@size
@command_window[i].dispose
end
@gold_window.dispose
@time_window.dispose
@selection.dispose
@actor_window_left.dispose
@actor_window_right.dispose
end
#--------------------------------------------------------------------------
# Update (Rewrite)
#--------------------------------------------------------------------------
def update
super
update_menu_background
if @return_to_select
@return_to_select = false
@scene_call = "$scene = " + OW_HUD2::COMMAND[@menu_index][2]
$game_temp.return_index = @menu_index
start_actor_selection
end
for i in 0..@size
@command_window[i].update
end
@gold_window.update
@time_window.update
@selection.update
@actor_window_left.update
@actor_window_right.update
if @command_window[@menu_index].active
update_command_selection
elsif
update_actor_selection
end
end
#--------------------------------------------------------------------------
# Wait (New)
#--------------------------------------------------------------------------
def wait(duration)
for w in 1..duration
for i in 0..@size
@command_window[i].update
end
@gold_window.update
@time_window.update
@selection.update
@actor_window_left.update
@actor_window_right.update
Graphics.update
end
end
#--------------------------------------------------------------------------
# Create Command Window (Rewrite)
#--------------------------------------------------------------------------
def create_command_window
@command_window = []
count = 0
x = (Graphics.width - 160) / 2
for i in @menu_index..@size
y = @com_y[count] + @y_off
@command_window[i] = Command_Window.new(x, y, OW_HUD2::COMMAND[i][0], i)
if i == @menu_index
op = 255
elsif (i == @menu_index + 1) or (@menu_index == 0 and i == @size)
op = 255
else
op = 128
end
@command_window[i].opacity = op
@command_window[i].back_opacity = op
@command_window[i].contents_opacity = op
@command_window[i].z = 1
@command_window[i].active = i == @menu_index
count += 1
end
if @menu_index != 0
for i in 0...@menu_index
y = @com_y[count] + @y_off
@command_window[i] = Command_Window.new(x, y, OW_HUD2::COMMAND[i][0], i)
if (i == @menu_index - 1) or (@menu_index == @size and i == 0)
op = 255
else
op = 128
end
@command_window[i].opacity = op
@command_window[i].back_opacity = op
@command_window[i].contents_opacity = op
@command_window[i].z = 1
count += 1
end
end
@command_window[@menu_index].z = 100
if @menu_index == 0
@command_window[@size].z = 100
else
@command_window[@menu_index - 1].z = 100
end
if @menu_index == @size
@command_window[0].z = 100
else
@command_window[@menu_index + 1].z = 100
end
end
#--------------------------------------------------------------------------
# Move Command Windows (New)
#--------------------------------------------------------------------------
def move_command_windows
count = 0
for i in @menu_index..@size
if i == @menu_index
op = 255
elsif (i == @menu_index + 1) or (@menu_index == 0 and i == @size)
op = 255
else
op = 128
end
cx = (Graphics.width - 160) / 2
y = @com_y[count] + @y_off
@command_window[i].move_to(cx, y, 15, op)
@command_window[i].back_opacity = op
@command_window[i].contents_opacity = op
@command_window[i].active = i == @menu_index
count += 1
end
if @menu_index != 0
for i in 0...@menu_index
if (i == @menu_index - 1) or (@menu_index == @size and i == 0)
op = 255
else
op = 128
end
cx = (Graphics.width - 160) / 2
y = @com_y[count] + @y_off
@command_window[@menu_index].z = 100
@command_window[i].move_to(cx, y, 15, op)
@command_window[i].back_opacity = op
@command_window[i].contents_opacity = op
count += 1
end
end
wait(10)
for i in 0..@size
@command_window[i].z = 1
@command_window[i].refresh
end
if @menu_index == 0
@command_window[@size].z = 100
else
@command_window[@menu_index - 1].z = 100
end
if @menu_index == @size
@command_window[0].z = 100
else
@command_window[@menu_index + 1].z = 100
end
@command_window[@menu_index].z = 100
end
#--------------------------------------------------------------------------
# Update Command Selection (Rewrite)
#--------------------------------------------------------------------------
def update_command_selection
if Input.trigger?(Input::B)
Sound.play_cancel
$game_temp.no_blur = false
$scene = Scene_Map.new
elsif Input.trigger?(Input::C)
if $game_party.members.size == 0 and @menu_index < 4
Sound.play_buzzer
return
elsif $game_system.save_disabled and
OW_HUD2::COMMAND[@menu_index][2].include?("Scene_File.new(true,")
Sound.play_buzzer
return
elsif Dir.glob('Save*.rvdata').size == 0 and
OW_HUD2::COMMAND[@menu_index][2].include?("Scene_File.new(false,")
Sound.play_buzzer
return
end
Sound.play_decision
@scene_call = "$scene = " + OW_HUD2::COMMAND[@menu_index][2]
$game_temp.return_index = @menu_index
if OW_HUD2::COMMAND[@menu_index][3] == true
start_actor_selection
else
eval(@scene_call)
end
elsif (Input.repeat?(Input::DOWN) and $game_switches[OW_HUD2::REVERSE]) or
(Input.repeat?(Input::UP) and !$game_switches[OW_HUD2::REVERSE])
Sound.play_cursor
@menu_index += 1
@menu_index = 0 if @menu_index == @size + 1
move_command_windows
elsif (Input.repeat?(Input::UP) and $game_switches[OW_HUD2::REVERSE]) or
(Input.repeat?(Input::DOWN) and !$game_switches[OW_HUD2::REVERSE])
Sound.play_cursor
@menu_index -= 1
@menu_index = @size if @menu_index == -1
move_command_windows
end
end
#--------------------------------------------------------------------------
# Start Actor Selection (Rewrite)
#--------------------------------------------------------------------------
def start_actor_selection
@actor_window_left.move_to(0, 0, 15)
@actor_window_right.move_to(Graphics.width - 160, 0, 15)
wait(7)
@actor_window_left.open
@actor_window_right.open
@command_window[@menu_index].active = false
if $game_party.last_actor_index > 1
@actor_window_right.active = true
@actor_window_right.index = $game_party.last_actor_index - 2
else
@actor_window_left.active = true
@actor_window_left.index = $game_party.last_actor_index
end
end
#--------------------------------------------------------------------------
# End Actor Selection (Rewrite)
#--------------------------------------------------------------------------
def end_actor_selection
@actor_window_left.move_to(-160, 0, 15)
@actor_window_right.move_to(Graphics.width, 0, 15)
wait(7)
@actor_window_left.close
@actor_window_right.close
@command_window[@menu_index].active = true
@actor_window_left.active = false
@actor_window_right.active = false
@actor_window_left.index = -1
@actor_window_right.index = -1
end
#--------------------------------------------------------------------------
# Update Actor Selection (Rewrite)
#--------------------------------------------------------------------------
def update_actor_selection
if Input.trigger?(Input::B)
Sound.play_cancel
end_actor_selection
elsif Input.trigger?(Input::C)
if @actor_window_left.active
actor_index = @actor_window_left.index
else
actor_index = @actor_window_right.index + 2
end
$game_party.last_actor_index = actor_index
Sound.play_decision
eval(@scene_call)
elsif Input.trigger?(Input::RIGHT) and @actor_window_left.active and
$game_party.members.size > 2
Sound.play_cursor
@actor_window_left.active = false
@actor_window_right.index = @actor_window_left.index
@actor_window_right.index = 0 if $game_party.members.size == 3
@actor_window_right.active = true
@actor_window_left.index = -1
elsif Input.trigger?(Input::LEFT) and @actor_window_right.active
Sound.play_cursor
@actor_window_right.active = false
@actor_window_left.index = @actor_window_right.index
@actor_window_left.active = true
@actor_window_right.index = -1
end
end
end
class Scene_Item < Scene_Base
#--------------------------------------------------------------------------
# Return to Original Screen (Rewrite)
#--------------------------------------------------------------------------
def return_scene
$scene = Scene_Menu.new($game_temp.return_index)
end
end
class Scene_Skill < Scene_Base
#--------------------------------------------------------------------------
# Return to Original Screen (Rewrite)
#--------------------------------------------------------------------------
def return_scene
$scene = Scene_Menu.new($game_temp.return_index)
end
end
class Scene_Equip < Scene_Base
#--------------------------------------------------------------------------
# Return to Original Screen (Rewrite)
#--------------------------------------------------------------------------
def return_scene
$scene = Scene_Menu.new($game_temp.return_index)
end
end
class Scene_Status < Scene_Base
#--------------------------------------------------------------------------
# Return to Original Screen (Rewrite)
#--------------------------------------------------------------------------
def return_scene
$scene = Scene_Menu.new($game_temp.return_index)
end
end
class Scene_File < Scene_Base
#--------------------------------------------------------------------------
# Return to Original Screen (Rewrite)
#--------------------------------------------------------------------------
def return_scene
if @from_title
$scene = Scene_Title.new
elsif @from_event
$scene = Scene_Map.new
else
$scene = Scene_Menu.new($game_temp.return_index)
end
end
end
class Scene_End < Scene_Base
#--------------------------------------------------------------------------
# Return to Original Screen (Rewrite)
#--------------------------------------------------------------------------
def return_scene
$scene = Scene_Menu.new($game_temp.return_index)
end
end
Screeny:
Spoiler:
Dodatkowe informacje:
Nie wiem czy działa z RMXP bo go nie mam. Ps. Screen jest po portugalsku ale menu jest po polsku. Nie chciało mi się robić nowego screena.
Nie możesz pisać nowych tematów Nie możesz odpowiadać w tematach Nie możesz zmieniać swoich postów Nie możesz usuwać swoich postów Nie możesz głosować w ankietach Nie możesz załączać plików na tym forum Możesz ściągać załączniki na tym forum