= = 怎么会这样zzz 可能是座标问题。 你试试这个吧 #======================================================================= #★升级提示★ #----------------------------------------------------------------------- #★作者: Zhong_zw #★联系方式:66RPG.com论坛短信 或 [email protected] #======================================================================= class Game_Actor < Game_Battler attr_accessor :last_level def initialize(actor_id) super() setup(actor_id) @last_level = 0 @last_skill_id = 0 end def last_atk return actor.parameters[2,@last_level] end def last_def return actor.parameters[3,@last_level] end def last_spi return actor.parameters[4,@last_level] end def last_agi return actor.parameters[5,@last_level] end def now_atk return actor.parameters[2,@level] end def now_def return actor.parameters[3,@level] end def now_spi return actor.parameters[4,@level] end def now_agi return actor.parameters[5,@level] end def change_exp(exp, show) @last_level = @level last_skills = skills @exp = [[exp, 99999999].min, 0].max while @exp >= @exp_list[@level+1] and @exp_list[@level+1] > 0 level_up end while @exp < @exp_list[@level] level_down end @hp = [@hp, maxhp].min @mp = [@mp, maxmp].min if show and @level > last_level zhonglevelup_push(skills - last_skills) end end #========================================================================== #★角色升级显示 #========================================================================== def zhonglevelup_push(new_skills) Audio.se_play("Audio/SE/Levelup.wav") text = [@actor_id,new_skills] $game_temp.levelup_texts.push(text) end end class Scene_Battle < Scene_Base def display_level_up exp = $game_troop.exp_total $game_party.remove_states_battle @message_window.contents_opacity = 0 @message_window.opacity = 0 @levelup_window = Window_zhonglevelup.new for actor in $game_party.existing_members last_level = actor.level last_skills = actor.skills actor.gain_exp(exp, true) end update_zhonglevelup end #========================================================================== #★等待升级窗口刷新 #========================================================================== def update_zhonglevelup @levelup_window.update while @levelup_window.visible @levelup_window.update Graphics.update Input.update end end end class Game_Temp attr_accessor :levelup_texts #-------------------------------------------------------------------------- # ● オブジェクト初期化 #-------------------------------------------------------------------------- alias oldinitialize initialize def initialize @levelup_texts = [] oldinitialize end end class Window_zhonglevelup < Window_Base attr_accessor :index def initialize super(122, 15, 350, 345) $game_temp.levelup_texts = [] @index = 0 @skill_index = 0 @skill_window = Window_Base.new(122,23,260,36) @skill_window.opacity = 0 @skill_window.z = self.z - 1 @main_window = Window_Base.new(122,59,260,290) @main_window.opacity = 0 @main_window.z = self.z - 1 self.opacity = 0 self.visible = false #update end #-------------------------------------------------------------------------- # ★ $game_temp.levelup_texts = [角色id,新特技] #-------------------------------------------------------------------------- def update zhonginputupdate if @index <= $game_temp.levelup_texts.size-1 if @index <= $game_temp.levelup_texts.size-1 self.visible = true @main_window.opacity = 150 actor = $game_actors[$game_temp.levelup_texts[@index][0]] if @skill_index == 0 and $game_temp.levelup_texts[@index][1].size != 0 @skill_index = $game_temp.levelup_texts[@index][1].size end level = actor.level last_level = actor.last_level atk = actor.now_atk now_def = actor.now_def spi = actor.now_spi agi = actor.now_agi last_atk = actor.last_atk last_def = actor.last_def last_spi = actor.last_spi last_agi = actor.last_agi self.contents.clear # x = 122 # y = 58 @skill_window.opacity = $game_temp.levelup_texts[@index][1].size != 0 ? 150 : 0 skill_name = $game_temp.levelup_texts[@index][1][@skill_index - 1].name if @skill_index != 0 level_name = Vocab::level atk_name = Vocab::atk def_name = Vocab::def spi_name = Vocab::spi agi_name = Vocab::agi font = self.contents.font.size x = 5 y = 165 self.contents.draw_text(x,y,60,60,atk_name) self.contents.draw_text(x,y+30,60,60,def_name) self.contents.draw_text(x,y+60,60,60,spi_name) self.contents.draw_text(x,y+90,60,60,agi_name) self.contents.draw_text(x + 45,y,60,60, last_atk) self.contents.draw_text(x + 45,y+30,60,60,last_def) self.contents.draw_text(x + 45,y+60,60,60,last_spi) self.contents.draw_text(x + 45,y + 90,60,60,last_agi) self.contents.draw_text(x,y-30,60,60,level_name) self.contents.draw_text(x + 45,y-30,60,60,last_level) self.contents.font.color = Color.new(0,255,0,255) self.contents.draw_text(x + 105,y-30,60,60,level) bitmap_5 = Bitmap.new("Graphics/system/箭头") rect_5 = Rect.new(0,0,bitmap_5.width,bitmap_5.height) self.contents.blt(x + 70,y - 18,bitmap_5,rect_5) if atk > last_atk self.contents.draw_text(x+105,y,60,60,atk) atk_opacity = 255 else atk_opacity = 0 end bitmap_1 = Bitmap.new("Graphics/system/箭头") rect_1 = Rect.new(0,0,bitmap_1.width,bitmap_1.height) self.contents.blt(x+70,y+12,bitmap_1,rect_1,atk_opacity) if now_def > last_def self.contents.draw_text(x+105,y+30,60,60,now_def) def_opacity = 255 else def_opacity = 0 end bitmap_2 = Bitmap.new("Graphics/system/箭头") rect_2 = Rect.new(0,0,bitmap_1.width,bitmap_1.height) self.contents.blt(x+70,y+42,bitmap_1,rect_1,def_opacity) if spi > last_spi self.contents.draw_text(x+105,y+60,60,60,spi) spi_opacity = 255 else spi_opacity = 0 end bitmap_3 = Bitmap.new("Graphics/system/箭头") rect_3 = Rect.new(0,0,bitmap_1.width,bitmap_1.height) self.contents.blt(x+70,y+72,bitmap_1,rect_1,spi_opacity) if agi > last_agi self.contents.draw_text(x + 105,y + 90,60,60,agi) agi_opacity = 255 else agi_opacity = 0 end bitmap_4 = Bitmap.new("Graphics/system/箭头") rect_4 = Rect.new(0,0,bitmap_1.width,bitmap_1.height) self.contents.blt(x+70,y+102,bitmap_1,rect_1,agi_opacity) self.contents.font.color = normal_color self.contents.font.size = 16 self.contents.draw_text(60, -19, 120, 60,"学会了 #{skill_name}")if @skill_index != 0 self.contents.font.color = Color.new(255,255,0,255) self.contents.draw_text(61, -19,120,60," #{skill_name}") self.contents.font.size = font draw_face(actor.face_name, actor.face_index,3, 55, size = 80) draw_actor_name(actor, 92, 55) draw_actor_hp(actor, 95, 85) draw_actor_mp(actor, 95, 115) self.contents.font.color = normal_color actor.hp = [actor.maxhp,9999].min actor.mp = [actor.maxmp,9999].min else @main_window.visible = false @skill_window.visible =false self.visible = false end end #========================================================================== #★窗口按键刷新 #========================================================================== def zhonginputupdate if Input.trigger?(Input::DOWN) if @skill_index != 0 @skill_index -= 1 end @index += 1 if @skill_index == 0 end if Input.trigger?(Input::UP) if @skill_index != 0 @skill_index -= 1 end @index += 1 if @skill_index == 0 end if Input.trigger?(Input::RIGHT) if @skill_index != 0 @skill_index -= 1 end @index += 1 if @skill_index == 0 end if Input.trigger?(Input::LEFT) if @skill_index != 0 @skill_index -= 1 end @index += 1 if @skill_index == 0 end if Input.trigger?(Input::B) if @skill_index != 0 @skill_index -= 1 end @index += 1 if @skill_index == 0 end if Input.trigger?(Input::C) if @skill_index != 0 @skill_index -= 1 end @index += 1 if @skill_index == 0 end end #========================================================================== def dispose super @skill_window.dispose @main_window.dispose end end class Scene_Map < Scene_Base def start super $game_map.refresh @spriteset = Spriteset_Map.new @message_window = Window_Message.new @levelup_window = Window_zhonglevelup.new @lus_window = Window_Base.new(122,23,260,36) @m_window = Window_Base.new(122,59,260,290) @m_window.opacity = 0 @lus_window.opacity = 0 @m_window.z = 9998 @lus_window.z = 9998 @levelup_window.z = 9999 end def update super $game_map.interpreter.update $game_map.update $game_player.update $game_system.update @spriteset.update @message_window.update unless $game_message.visible update_levelup_window update_transfer_player update_encounter update_call_menu update_call_debug update_scene_change end end def update_levelup_window @levelup_window.update while @levelup_window.visible @lus_window.opacity = $game_temp.levelup_texts[@levelup_window.index][1].size != 0 ? 150 : 0 @m_window.opacity = 150 @levelup_window.update Graphics.update Input.update end @m_window.opacity = 0 @lus_window.opacity = 0 end def terminate super if $scene.is_a?(Scene_Battle) # バトル画面に切り替え中の場合 @spriteset.dispose_characters # 背景作成のためにキャラを隠す end snapshot_for_background @spriteset.dispose @message_window.dispose @levelup_window.dispose @m_window.dispose @lus_window.dispose if $scene.is_a?(Scene_Battle) # バトル画面に切り替え中の場合 perform_battle_transition # 戦闘前トランジション実行 end end end |
站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作
GMT+8, 2024-11-15 20:52
Powered by Discuz! X3.1
© 2001-2013 Comsenz Inc.