赞 | 0 |
VIP | 0 |
好人卡 | 0 |
积分 | 1 |
经验 | 3066 |
最后登录 | 2024-6-25 |
在线时间 | 51 小时 |
Lv1.梦旅人
- 梦石
- 0
- 星屑
- 55
- 在线时间
- 51 小时
- 注册时间
- 2016-7-9
- 帖子
- 38
|
加入我们,或者,欢迎回来。
您需要 登录 才可以下载或查看,没有帐号?注册会员
x
#==============================================================================
# +++ MOG - Battle Result (1.6) +++
#==============================================================================
# By Moghunter
# http://www.atelier-rgss.com
#==============================================================================
# Apresentação animada do resultado da batalha.
#==============================================================================
# Arquivos necessários. (Graphics/System)
#
# Result.png
# Result_Layout.png
# Result_Levelup.png
# Result_Levelword.png
# Result_Number_1.png
# Result_Number_2.png
#
#==============================================================================
# Histórico (Version History)
#==============================================================================
# 1.6 - Melhoria na codificação.
# 1.5 - Correção do Bug da experiência compartilhada.
# 1.4 - Compatibilidade com o script de pause.
# 1.3 - Melhoria do código e compatibilidade.
# 1.2 - Melhoria do código e compatibilidade.
# - Adição de sons.
# 1.1 - Corrigido o erro de apresentar o Resultado ao fugir ou perder a batalha.
#==============================================================================
module MOG_BATLE_RESULT
#Posição do EXP.
RESULT_EXP_POSITION = [440,80]
#Posição do GOLD.
RESULT_GOLD_POSITION = [476,125]
#Posição da palavra LeveL UP.
RESULT_LEVELWORD_POSITION = [0,0]
#Posição do Level.
RESULT_LEVEL_POSITION = [230,-7]
#Posição dos parâmetros
RESULT_PARAMETER_POSITION = [70,70]
#Posição da janela de skill.
RESULT_NEW_SKILL_POSITION = [240,230]
#Definição da animação de Level UP.
RESULT_LEVELUP_ANIMATION_ID = 37
end
#~ $imported = {} if $imported.nil?
#~ $imported[:mog_battler_result] = true
#==============================================================================
# ■ Game Temp
#==============================================================================
class Game_Temp
attr_accessor :level_parameter
attr_accessor :level_parameter_old
attr_accessor :result
attr_accessor :battle_end
#--------------------------------------------------------------------------
# ● Initialize
#--------------------------------------------------------------------------
alias mog_result_initialize initialize
def initialize
@level_parameter = []
@level_parameter_old = []
@result = false
@battle_end = false
mog_result_initialize
end
end
#==============================================================================
# ■ Game Actor
#==============================================================================
class Game_Actor < Game_Battler
#--------------------------------------------------------------------------
# ● Display_level_up
#--------------------------------------------------------------------------
alias mog_result_display_level_up display_level_up
def display_level_up(new_skills)
if $game_temp.result
$game_temp.level_parameter = [@level,new_skills]
return
end
mog_result_display_level_up(new_skills)
end
end
#==============================================================================
# ■ BattleManager
#==============================================================================
module BattleManager
#--------------------------------------------------------------------------
# ● Process Victory
#--------------------------------------------------------------------------
def self.process_victory
play_battle_end_me
replay_bgm_and_bgs
battle_end(0)
SceneManager.return
return true
end
end
#==============================================================================
# ■ Spriteset Battle
#==============================================================================
class Scene_Battle < Scene_Base
#--------------------------------------------------------------------------
# ● Dispose
#--------------------------------------------------------------------------
alias mog_battle_result_pre_terminate pre_terminate
def pre_terminate
execute_result if can_enable_battle_result?
mog_battle_result_pre_terminate
end
#--------------------------------------------------------------------------
# ● Can Enable Battle Result?
#--------------------------------------------------------------------------
def can_enable_battle_result?
return false if !$game_troop.all_dead?
return false if $game_party.members.empty?
return false if $game_party.all_dead?
return true
end
#--------------------------------------------------------------------------
# ● Execute Result
#--------------------------------------------------------------------------
def execute_result
@result = Battle_Result.new
if $mog_rgss3_combo_count != nil
$game_temp.combo_time = 0 rescue nil
end
loop do
@result.update
@spriteset.update
Graphics.update
Input.update
break if @result.victory_phase == 10
end
@result.dispose
end
end
#==============================================================================
# ■ Battle Result
#==============================================================================
class Battle_Result
include MOG_BATLE_RESULT
attr_accessor :victory_phase
#--------------------------------------------------------------------------
# ● Initialize
#--------------------------------------------------------------------------
def initialize
$game_temp.battle_end = true
$game_temp.result = true
@victory_phase = 0
@victory_wait_duration = 0
@fade_result_window = false
create_victory_sprites
end
#--------------------------------------------------------------------------
# ● Create Victory Sprites
#--------------------------------------------------------------------------
def create_victory_sprites
@result_number = Cache.system("Result_Number_1")
@result_number2 = Cache.system("Result_Number_2")
@result_cw = @result_number.width / 10
@result_ch = @result_number.height / 2
@result2_cw = @result_number2.width / 10
@result2_ch = @result_number2.height / 2
create_victory_text
create_victory_layout
create_victory_exp
create_victory_gold
create_window_treasure
end
#--------------------------------------------------------------------------
# ● Victory Wait ?
#--------------------------------------------------------------------------
def victory_wait?
return false if @victory_wait_duration <= 0
@victory_wait_duration -= 1
return true
end
#--------------------------------------------------------------------------
# ● End Victory
#--------------------------------------------------------------------------
def end_victory
@victory_wait_duration = 10
dispose
end
#--------------------------------------------------------------------------
# ● Create Victory Layout
#--------------------------------------------------------------------------
def create_victory_layout
return if @victory_layout_sprite != nil
@victory_layout_sprite = Sprite.new
@victory_layout_sprite.z = 1001
@victory_layout_sprite.x = 70
@victory_layout_sprite.bitmap = Cache.system("Result_Layout"+rand(15).to_s)
@victory_layout_sprite.zoom_x = 2.0
@victory_layout_sprite.opacity = 0
end
#--------------------------------------------------------------------------
# ● Create Victory Text
#--------------------------------------------------------------------------
def create_victory_text
return if @victory_sprite != nil
@victory_sprite = Sprite.new
@victory_sprite.z = 1000
@victory_sprite.bitmap = Cache.system("Result")
@victory_sprite.ox = @victory_sprite.width / 2
@victory_sprite.oy = @victory_sprite.height / 2
@victory_sprite.x = @victory_sprite.ox
@victory_sprite.y = @victory_sprite.oy
@victory_sprite.zoom_x = 1.5
@victory_sprite.zoom_y = 1.5
@victory_sprite.opacity = 0
end
end
#==============================================================================
# ■ Battle Result
#==============================================================================
class Battle_Result
#--------------------------------------------------------------------------
# ● Dispose
#--------------------------------------------------------------------------
def dispose
$game_temp.result = false
$game_temp.battle_end = false
@victory_sprite.bitmap.dispose
@victory_sprite.dispose
@victory_layout_sprite.bitmap.dispose
@victory_layout_sprite.dispose
@exp_number.bitmap.dispose
@exp_number.dispose
@gold_number.bitmap.dispose
@gold_number.dispose
@result_number.dispose
@window_treasure.dispose
dispose_level_up
@result_number.dispose
@result_number2.dispose
@tr_viewport.dispose
end
#--------------------------------------------------------------------------
# ● Dispose Result Actor Bitmap
#--------------------------------------------------------------------------
def dispose_result_actor_bitmap
return if @result_actor_sprite == nil
return if @result_actor_sprite.bitmap == nil
@result_actor_sprite.bitmap.dispose
end
#--------------------------------------------------------------------------
# ● Dispose Level UP
#--------------------------------------------------------------------------
def dispose_level_up
return if @levelup_layout == nil
@levelup_layout.bitmap.dispose
@levelup_layout.dispose
@levelup_word.bitmap.dispose
@levelup_word.dispose
@result_actor_sprite.bitmap.dispose
@result_actor_sprite.dispose
@parameter_sprite.bitmap.dispose
@parameter_sprite.dispose
@level_sprite.bitmap.dispose
@level_sprite.dispose
if @new_skill_window != nil
@new_skill_window.dispose
end
end
end
#==============================================================================
# ■ Battle Result
#==============================================================================
class Battle_Result
#--------------------------------------------------------------------------
# ● Update
#--------------------------------------------------------------------------
def update
if $mog_rgss3_pause != nil
update_pause if MOG_PAUSE::PAUSE_SCENE_BATTLE
end
return if @victory_phase == nil
update_victory_fade if @fade_result_window
return if victory_wait?
case @victory_phase
when 0; update_victory_initial
when 1; update_victory_initial2
when 2; update_victory_initial3
when 3; update_victory_exp
when 4; update_victory_gold
when 5; update_victory_item
when 6; update_victory_levelup
when 9; update_skip_result
end
if Input.trigger?(:C)
if @victory_phase == 10
end_victory
elsif @victory_phase.between?(1,5)
Sound.play_cursor
@victory_phase = 9
end
end
end
#--------------------------------------------------------------------------
# ● Skip Result
#--------------------------------------------------------------------------
def update_skip_result
@victory_sprite.opacity -= 10
@victory_sprite.visible = false
@victory_layout_sprite.opacity += 10
@victory_layout_sprite.zoom_x = 1.00
@gold_number.opacity += 10
@gold_number.zoom_x = 1.00
@gold_number.zoom_y = 1.00
@exp_number.opacity += 10
@exp_number.zoom_x = 1.00
@exp_number.zoom_y = 1.00
@window_treasure.contents_opacity += 10
if @exp_old != @exp_total
@exp_old = @exp_total
refresh_exp_number
end
if @gold_old = @gold_total
@gold_old = @gold_total
refresh_gold_number
end
@window_treasure.x = 0
update_victory_item if @window_treasure.contents_opacity == 255
end
#--------------------------------------------------------------------------
# ● Update Victory Fade
#--------------------------------------------------------------------------
def update_victory_fade
fade_speed = 10
@victory_sprite.opacity -= fade_speed
@victory_layout_sprite.opacity -= fade_speed
@gold_number.opacity -= fade_speed
@exp_number.opacity -= fade_speed
@window_treasure.contents_opacity -= fade_speed
end
#--------------------------------------------------------------------------
# ● 更新胜利初始
#--------------------------------------------------------------------------
def update_victory_initial
@victory_sprite.zoom_x -= 0.01
@victory_sprite.zoom_y -= 0.01
@victory_sprite.opacity += 10
if @victory_sprite.zoom_x <= 1.00
@victory_sprite.zoom_x = 1
@victory_sprite.zoom_y = 1
@victory_sprite.opacity = 255
@victory_phase = 1
@victory_wait_duration = 20
end
end
#--------------------------------------------------------------------------
# ● Update Victory Initial 2
#--------------------------------------------------------------------------
def update_victory_initial2
@victory_sprite.zoom_x += 0.01
@victory_sprite.zoom_y += 0.01
@victory_sprite.opacity -= 10
if @victory_sprite.opacity <= 0
@victory_sprite.zoom_x = 1
@victory_sprite.zoom_y = 1
@victory_sprite.opacity = 0
@victory_phase = 2
end
end
#--------------------------------------------------------------------------
# ● Update Victory Initial 3
#--------------------------------------------------------------------------
def update_victory_initial3
@victory_layout_sprite.zoom_x -= 0.02
@victory_layout_sprite.opacity += 10
if @victory_layout_sprite.zoom_x <= 1.00
@victory_layout_sprite.zoom_x = 1
@victory_layout_sprite.opacity = 255
@victory_phase = 3
end
end
end
#==============================================================================
# ■ Battle Result
#==============================================================================
class Battle_Result
#--------------------------------------------------------------------------
# ● Create Victory Exp
#--------------------------------------------------------------------------
def create_victory_exp
@exp_number = Sprite.new
@exp_number.bitmap = Bitmap.new(@result_number.width,@result_ch)
@exp_number.z = 1002
@exp_number.y = RESULT_EXP_POSITION[1]
@exp_number.zoom_x = 2
@exp_number.zoom_y = 2
@exp_total = $game_troop.exp_total
@exp_number.opacity = 0
@exp_old = 0
@exp_ref = ((1 * @exp_total) / 111).truncate rescue nil
@exp_ref = 1 if @exp_ref < 1 or @exp_ref == nil
@exp_ref = 0 if @exp_total == 0
refresh_exp_number
end
#--------------------------------------------------------------------------
# ● Update Victory Exp
#--------------------------------------------------------------------------
def update_victory_exp
update_exp_sprite
update_exp_number
end
#--------------------------------------------------------------------------
# ● Update EXP Sprite
#--------------------------------------------------------------------------
def update_exp_sprite
@exp_number.opacity += 15
if @exp_number.zoom_x > 1.00
@exp_number.zoom_x -= 0.03
@exp_number.zoom_x = 1.00 if @exp_number.zoom_x <= 1.00
end
@exp_number.zoom_y = @exp_number.zoom_x
if (@exp_old >= @exp_total) and @exp_number.zoom_x == 1.00
@victory_phase = 4
Sound.play_cursor
end
end
#--------------------------------------------------------------------------
# ● Refresh Exp Number
#--------------------------------------------------------------------------
def refresh_exp_number
@exp_number.bitmap.clear
draw_result_exp(@exp_old, 0,0)
end
#--------------------------------------------------------------------------
# ● Update Exp_number
#--------------------------------------------------------------------------
def update_exp_number
return if @exp_old == @exp_total
@exp_old += @exp_ref
@exp_old = @exp_total if @exp_old > @exp_total
refresh_exp_number
end
#--------------------------------------------------------------------------
# ● Draw Result EXP
#--------------------------------------------------------------------------
def draw_result_exp(value,x,y)
ncw = @result_cw
nch = @result_ch
number = value.abs.to_s.split(//)
x2 = x - (number.size * ncw)
@exp_number.ox = (number.size * ncw) / 2
@exp_number.oy = @result_ch / 2
@exp_number.x = (RESULT_EXP_POSITION[0] + @result_cw + @exp_number.ox) - (number.size * ncw)
for r in 0..number.size - 1
number_abs = number[r].to_i
nsrc_rect = Rect.new(ncw * number_abs, 0, ncw, nch)
@exp_number.bitmap.blt(x + (ncw * r), y, @result_number, nsrc_rect)
end
end
end
#==============================================================================
# ■ Battle Result
#==============================================================================
class Battle_Result
#--------------------------------------------------------------------------
# ● Create Victory Gold
#--------------------------------------------------------------------------
def create_victory_gold
@gold_number = Sprite.new
@gold_number.bitmap = Bitmap.new(@result_number.width,@result_ch)
@gold_number.z = 1002
@gold_number.y = RESULT_GOLD_POSITION[1]
@gold_number.opacity = 0
@gold_number.zoom_x = 2
@gold_number.zoom_y = 2
@gold_total = $game_troop.gold_total
@gold_old = 0
@gold_ref = ((1 * @gold_total) / 111).truncate rescue nil
@gold_ref = 1 if @gold_ref < 1 or @gold_ref == nil
@gold_ref = 0 if @gold_total == 0
$game_party.gain_gold($game_troop.gold_total)
refresh_gold_number
end
#--------------------------------------------------------------------------
# ● Update Victory Gold
#--------------------------------------------------------------------------
def update_victory_gold
update_gold_sprite
update_gold_number
end
#--------------------------------------------------------------------------
# ● Update GOLD Sprite
#--------------------------------------------------------------------------
def update_gold_sprite
@gold_number.opacity += 15
if @gold_number.zoom_x > 1.00
@gold_number.zoom_x -= 0.03
@gold_number.zoom_x = 1.00 if @gold_number.zoom_x <= 1.00
end
@gold_number.zoom_y = @gold_number.zoom_x
if @gold_old >= @gold_total and @gold_number.zoom_x == 1.00
@victory_phase = 5
Sound.play_cursor
end
end
#--------------------------------------------------------------------------
# ● Refresh gold Number
#--------------------------------------------------------------------------
def refresh_gold_number
@gold_number.bitmap.clear
draw_result_gold(@gold_old, 0,0)
end
#--------------------------------------------------------------------------
# ● Update Gold Number
#--------------------------------------------------------------------------
def update_gold_number
return if @gold_old == @gold_total
@gold_old += @gold_ref
@gold_old = @gold_total if @gold_old > @gold_total
refresh_gold_number
end
#--------------------------------------------------------------------------
# ● Draw Result Gold
#--------------------------------------------------------------------------
def draw_result_gold(value,x,y)
ncw = @result_cw
nch = @result_ch
number = value.abs.to_s.split(//)
x2 = x - (number.size * ncw)
@gold_number.ox = (number.size * ncw) / 2
@gold_number.oy = @result_ch / 2
@gold_number.x = (RESULT_GOLD_POSITION[0] + @result_cw + @gold_number.ox) - (number.size * ncw)
for r in 0..number.size - 1
number_abs = number[r].to_i
nsrc_rect = Rect.new(ncw * number_abs, @result_ch, ncw, nch)
@gold_number.bitmap.blt(x + (ncw * r), y, @result_number, nsrc_rect)
end
end
end
#==============================================================================
# ■ Battle Result
#==============================================================================
class Battle_Result
#--------------------------------------------------------------------------
# ● 创建窗口的宝藏
#--------------------------------------------------------------------------
def create_window_treasure
@tr_viewport = Viewport.new(65, 164, 576, 210)
@tr_viewport.z = 1003
@window_treasure = Window_Treasure.new
@window_treasure.viewport = @tr_viewport
end
#--------------------------------------------------------------------------
# ● 创建窗口的宝藏
#--------------------------------------------------------------------------
def update_victory_item
@window_treasure.update
@actor_level = []
return if @window_treasure.x != 0 and @victory_phase >= 6
@victory_phase = 6
if $data_system.opt_extra_exp
@result_member_max = $game_party.members.size
else
@result_member_max = $game_party.battle_members.size
end
@result_member_id = 0
end
end
#==============================================================================
# ■ Window Treasure
#==============================================================================
class Window_Treasure < Window_Base
#--------------------------------------------------------------------------
# ● Initialize
#--------------------------------------------------------------------------
def initialize
super(-640,-10,600, 300)
self.opacity = 0
self.contents_opacity = 0
self.contents.font.size = 20
self.contents.font.bold = true
self.z = 1003
@range_max = 256
@wait_time = 20
@scroll = false
draw_treasure
end
#--------------------------------------------------------------------------
# ● Draw_Treasure
#--------------------------------------------------------------------------
def draw_treasure
contents.clear
t_index = 0
$game_troop.make_drop_items.each do |item|
yi = (t_index / 3) * 32
$game_party.gain_item(item, 1)
draw_item_name(item, 0, yi, true, 200)
t_index += 3
end
@range_max = (t_index / 3) * 32
@scroll = true if t_index > 1#1
end
#--------------------------------------------------------------------------
# ● Update
#--------------------------------------------------------------------------
def update
super
self.contents_opacity += 10
if @scroll and self.contents_opacity == 255
@wait_time -= 1 if @wait_time > 0
return if @wait_time > 0
self.y -= 1
self.y = 200 if self.y < -@range_max
@wait_time = 20 if self.y == -10
end
end
end
#==============================================================================
# ■ Battle Result
#==============================================================================
class Battle_Result
#--------------------------------------------------------------------------
# ● Create Levelup
#--------------------------------------------------------------------------
def create_levelup
if @levelup_layout == nil
@levelup_layout = Sprite.new
@levelup_layout.z = 1000
@levelup_layout.bitmap = Cache.system("Result_Levelup")
end
if @levelup_word == nil
@levelup_word = Sprite.new
@levelup_word.z = 1001
@levelup_word.bitmap = Cache.system("Result_Levelword")
@levelup_word.ox = @levelup_word.bitmap.width / 2
@levelup_word.oy = @levelup_word.bitmap.height / 2
@levelup_word.x = @levelup_word.ox + RESULT_LEVELWORD_POSITION[0]
@levelup_word.y = @levelup_word.oy + RESULT_LEVELWORD_POSITION[1]
end
@levelup_word.blend_type = 1
@levelup_word.zoom_x = 2
@levelup_word.zoom_y = 2
end
#--------------------------------------------------------------------------
# ● Create Parameter Number
#--------------------------------------------------------------------------
def create_parameter_number
if @parameter_sprite == nil
@parameter_sprite = Sprite.new
@parameter_sprite.bitmap = Bitmap.new(250,220)
@parameter_sprite.z = 1001
@parameter_sprite.x = RESULT_PARAMETER_POSITION[0]
@parameter_sprite.y = RESULT_PARAMETER_POSITION[1]
@parameter_sprite.bitmap.font.size = 16
@parameter_sprite.bitmap.font.bold = true
end
refresh_parameter
end
#--------------------------------------------------------------------------
# ● Refresh Parameter
#--------------------------------------------------------------------------
def refresh_parameter
@parameter_animation = 0
@parameter_sprite.bitmap.clear
@parameter_sprite.opacity = 0
@parameter_sprite.x = RESULT_PARAMETER_POSITION[0] - 200
actor_old = $game_temp.level_parameter_old
draw_result_parameter(@actor_result.mhp,actor_old[1],0,28 * 0)
draw_result_parameter(@actor_result.mmp,actor_old[2],0,28 * 1)
draw_result_parameter(@actor_result.atk,actor_old[3],0,28 * 2)
draw_result_parameter(@actor_result.def,actor_old[4],0,28 * 3)
draw_result_parameter(@actor_result.mat,actor_old[5],0,28 * 4)
draw_result_parameter(@actor_result.mdf,actor_old[6],0,28 * 5)
draw_result_parameter(@actor_result.agi,actor_old[7],0,28 * 6)
draw_result_parameter(@actor_result.luk,actor_old[8],0,28 * 7)
end
#--------------------------------------------------------------------------
# ● Draw Result EXP
#--------------------------------------------------------------------------
def draw_result_parameter(value,value2,x,y)
ncw = @result2_cw
nch = @result2_ch
number = value.abs.to_s.split(//)
x2 = x + (number.size * ncw) + 16
for r in 0..number.size - 1
number_abs = number[r].to_i
nsrc_rect = Rect.new(ncw * number_abs, 0, ncw, nch)
@parameter_sprite.bitmap.blt(x + (ncw * r), y, @result_number2, nsrc_rect)
end
value3 = value - value2
par = ""
if value > value2
par = "+"
@parameter_sprite.bitmap.font.color = Color.new(50,255,255)
elsif value < value2
par = ""
@parameter_sprite.bitmap.font.color = Color.new(255,155,100)
end
return if value == value2
@parameter_sprite.bitmap.draw_text(x2,y - 8,100,32,par.to_s + value3.to_s,0)
end
#--------------------------------------------------------------------------
# ● Create Result Actor
#--------------------------------------------------------------------------
def create_result_actor
if @result_actor_sprite == nil
@result_actor_sprite = Sprite.new
@result_actor_sprite.z = 999
end
dispose_result_actor_bitmap
@result_actor_sprite.bitmap = Cache.picture("Actor1")
@result_actor_org = [380 - (@result_actor_sprite.bitmap.width / 2), Graphics.height - @result_actor_sprite.bitmap.height]
@result_actor_sprite.x = @result_actor_org[0] + 200
@result_actor_sprite.y = @result_actor_org[1]
@result_actor_sprite.opacity = 0
end
#--------------------------------------------------------------------------
# ● Check New Skill
#--------------------------------------------------------------------------
def check_new_skill
@new_skills = $game_temp.level_parameter[1]
@new_skills_index = 0
end
#--------------------------------------------------------------------------
# ● Show New Skill
#--------------------------------------------------------------------------
def show_new_skill(start = false)
Sound.play_recovery unless start
@new_skill_window.draw_new_skill(@new_skills[@new_skills_index])
@new_skills_index += 1
if @new_skills_index == @new_skills.size or
@new_skills[@new_skills_index] == nil
@new_skills = nil
end
end
#--------------------------------------------------------------------------
# ● Check Level UP
#--------------------------------------------------------------------------
def check_level_up
if @new_skills != nil and !@new_skills.empty?
show_new_skill
return
end
for battler_id in @result_member_id..@result_member_max
actor_result = $game_party.members[@result_member_id]
$game_temp.level_parameter = [] if $game_temp.level_parameter == nil
$game_temp.level_parameter_old = [] if $game_temp.level_parameter_old == nil
$game_temp.level_parameter.clear
$game_temp.level_parameter_old.clear
$game_temp.level_parameter_old = [actor_result.level,actor_result.mhp,actor_result.mmp,
actor_result.atk, actor_result.def, actor_result.mat, actor_result.mdf, actor_result.agi, actor_result.luk] rescue nil
actor_result.gain_exp($game_troop.exp_total) rescue nil
@result_member_id += 1
@new_skills = nil
@new_skills_index = 0
if $game_temp.level_parameter != nil and !$game_temp.level_parameter.empty?
show_level_result
break
end
end
return if !$game_temp.level_parameter.empty?
@victory_phase = 10 if @result_member_id >= @result_member_max
end
#--------------------------------------------------------------------------
# ● Create Level
#--------------------------------------------------------------------------
def create_level
if @level_sprite == nil
@level_sprite = Sprite.new
@level_sprite.bitmap = Bitmap.new(200,64)
@level_sprite.z = 1002
end
@level_sprite.bitmap.font.size = 48
@level_sprite.bitmap.font.bold = true
@level_sprite.x = RESULT_LEVEL_POSITION[0]
@level_sprite.y = RESULT_LEVEL_POSITION[1]
@level_sprite.bitmap.clear
@level_sprite.bitmap.font.color = Color.new(255,255,255)
@level_sprite.bitmap.draw_text(0,0,100,64,@actor_result.level,1)
levelup = @actor_result.level - $game_temp.level_parameter_old[0]
@level_sprite.bitmap.font.color = Color.new(50,255,255)
@level_sprite.bitmap.font.size = 18
@level_sprite.bitmap.draw_text(80,0,100,64,"+" + levelup.to_s ,0)
end
#--------------------------------------------------------------------------
# ● Create New Skill Windos
#--------------------------------------------------------------------------
def create_new_skill_window
if @new_skill_window == nil
@new_skill_window = Window_Result_Skill.new
end
@new_skill_window.x = RESULT_NEW_SKILL_POSITION[0]
@new_skill_window.y = RESULT_NEW_SKILL_POSITION[1]
check_new_skill
if @new_skills != nil and !@new_skills.empty?
show_new_skill
else
@new_skill_window.x = -640
end
end
#--------------------------------------------------------------------------
# ● Show Level Result
#--------------------------------------------------------------------------
def show_level_result
Sound.play_cursor
@actor_result = $game_party.members[@result_member_id - 1] rescue nil
return if @actor_result == nil
@actor_result.animation_id = RESULT_LEVELUP_ANIMATION_ID
@fade_result_window = true
create_levelup
create_level
create_parameter_number
create_result_actor
create_new_skill_window
end
end
#==============================================================================
# ■ Battle Result
#==============================================================================
class Battle_Result
#--------------------------------------------------------------------------
# ● Update Victory Item
#--------------------------------------------------------------------------
def update_victory_levelup
check_level_up if Input.trigger?(:C)
update_show_levelup
if @levelup_layout == nil
@window_treasure.update
else
@window_treasure.contents_opacity -= 15
end
end
#--------------------------------------------------------------------------
# ● Update Show Level UP
#--------------------------------------------------------------------------
def update_show_levelup
return if @levelup_layout == nil
return if @result_actor_sprite == nil
@new_skill_window.update
if @result_actor_sprite.x > @result_actor_org[0]
@result_actor_sprite.x -= 5
@result_actor_sprite.opacity += 7
if @result_actor_sprite.x <= @result_actor_org[0]
@result_actor_sprite.x = @result_actor_org[0]
@result_actor_sprite.opacity = 255
end
end
if @levelup_word.zoom_x > 1.00
@levelup_word.zoom_x -= 0.03
if @levelup_word.zoom_x < 1.00
@levelup_word.zoom_x = 1.00
@levelup_word.blend_type = 0
end
end
@levelup_word.zoom_y = @levelup_word.zoom_x
if @parameter_sprite.x < 70
@parameter_sprite.opacity += 13
@parameter_sprite.x += 5
if @parameter_sprite.x >= 70
@parameter_sprite.opacity = 255
@parameter_sprite.x = 70
end
end
end
end
#==============================================================================
# ■ Window Result Skill
#==============================================================================
class Window_Result_Skill < Window_Base
#--------------------------------------------------------------------------
# ● Initialize
#--------------------------------------------------------------------------
def initialize
super(0,0, 270, 58)
self.opacity = 160
self.contents_opacity = 255
self.contents.font.name = "Arial"
self.contents.font.bold = true
self.z = 1003
@animation_time = 999
@org = [MOG_BATLE_RESULT::RESULT_NEW_SKILL_POSITION[0],MOG_BATLE_RESULT::RESULT_NEW_SKILL_POSITION[1]]
end
#--------------------------------------------------------------------------
# ● DrawNew Skill
#--------------------------------------------------------------------------
def draw_new_skill(skill)
contents.clear
self.contents.font.size = 16
self.contents.font.color = Color.new(100,200,100)
contents.draw_text(0,0,100,32, "学会技能;",0)
self.contents.font.color = Color.new(255,255,255)
draw_item_name_skill(skill,100,0, true, 170)
self.x = @org[0]
self.y = @org[1]
@animation_time = 0
self.opacity = 0
self.contents_opacity = 0
end
#--------------------------------------------------------------------------
# ● Draw Item Name
#--------------------------------------------------------------------------
def draw_item_name_skill(item, x, y, enabled = true, width = 172)
return unless item
draw_icon(item.icon_index, x, y, enabled)
change_color(normal_color, enabled)
draw_text(x + 24, y + 4, width, line_height, item.name)
end
#--------------------------------------------------------------------------
# ● Update
#--------------------------------------------------------------------------
def update
super
return if @animation_time == 999
@animation_time += 1 if @animation_time != 999
case @animation_time
when 0..30
self.y -= 1
self.opacity += 5
self.contents_opacity += 5
when 31..60
self.y += 1
self.opacity += 5
self.contents_opacity += 5
else
self.y = @org[1]
self.opacity = 255
self.contents_opacity = 255
@animation_time = 999
end
end
end
|
|