设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 1790|回复: 1
打印 上一主题 下一主题

[已经过期] 代码冲击了,求解

[复制链接]

Lv1.梦旅人

梦石
0
星屑
51
在线时间
1 小时
注册时间
2010-7-21
帖子
180
跳转到指定楼层
1
发表于 2010-7-22 13:08:28 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
  1. #=======================================================================
  2. #★升级提示★
  3. #-----------------------------------------------------------------------
  4. #★作者: Zhong_zw
  5. #★联系方式:66RPG.com论坛短信 或 [email protected]
  6. #★更新内容★:
  7. #1、把装备武器后的能力算上了。
  8. #2、能力增量显示
  9. #☆未解决:
  10. #刷新写的不合理,掉帧厉害(苦力活~~~最近没空,所以这个历史遗留问题还有待以后解决。)
  11. #=======================================================================
  12. class Game_Actor < Game_Battler

  13.   attr_accessor :last_level   
  14.    def initialize(actor_id)
  15.     super()
  16.     setup(actor_id)
  17.     @last_level = 0
  18.     @last_skill_id = 0
  19.    end
  20.   
  21.   def last_atk
  22.     n=0
  23.     for item in equips.compact do n += item.atk end
  24.     return actor.parameters[2,@last_level] + n
  25.   end

  26.   def last_def
  27.     n=0
  28.     for item in equips.compact do n += item.def end
  29.     return actor.parameters[3,@last_level] + n
  30.   end
  31.   
  32.   def last_spi
  33.     n=0
  34.     for item in equips.compact do n += item.spi end
  35.     return actor.parameters[4,@last_level] + n
  36.   end
  37.   
  38.   def last_agi
  39.     n=0
  40.     for item in equips.compact do n += item.agi end
  41.     return actor.parameters[5,@last_level] + n
  42.   end
  43.   def now_atk
  44.     n=0
  45.     for item in equips.compact do n += item.atk end
  46.     return actor.parameters[2,@level] + n
  47.   end
  48.   def now_def
  49.      n=0
  50.     for item in equips.compact do n += item.def end
  51.     return actor.parameters[3,@level] + n
  52.   end
  53.   def now_spi
  54.      n=0
  55.     for item in equips.compact do n += item.spi end
  56.     return actor.parameters[4,@level] + n
  57.   end
  58.   def now_agi
  59.     n=0
  60.     for item in equips.compact do n += item.agi end
  61.     return actor.parameters[5,@level] + n
  62.   end  
  63.    def change_exp(exp, show)
  64.     @last_level = @level
  65.     last_skills = skills
  66.    
  67.     @exp = [[exp, 9999999].min, 0].max
  68.    while @exp >= @exp_list[@level+1] and @exp_list[@level+1] > 0
  69.       level_up
  70.     end
  71.     while @exp < @exp_list[@level]
  72.       level_down
  73.     end
  74.     @hp = [@hp, maxhp].min
  75.     @mp = [@mp, maxmp].min
  76.     if show and @level > last_level
  77.       
  78.       zhonglevelup_push(skills - last_skills)
  79.     end
  80.   end
  81.    #==========================================================================
  82.   #★角色升级显示
  83.   #==========================================================================
  84.   
  85.   def zhonglevelup_push(new_skills)
  86.    
  87.     text = [@actor_id,new_skills]
  88.     $game_temp.levelup_texts.push(text)
  89.   end
  90. end



  91. class Scene_Battle < Scene_Base

  92. def display_level_up
  93.     exp = $game_troop.exp_total
  94.     $game_party.remove_states_battle
  95.     @message_window.contents_opacity = 0
  96.     @message_window.opacity = 0
  97.     @levelup_window = Window_zhonglevelup.new
  98.     for actor in $game_party.existing_members
  99.       last_level = actor.level
  100.       last_skills = actor.skills
  101.       actor.gain_exp(exp, true)
  102.     end
  103.    
  104.     update_zhonglevelup
  105.    
  106.    
  107.   end
  108.   #==========================================================================
  109.   #★等待升级窗口刷新
  110.   #==========================================================================
  111.    def update_zhonglevelup
  112.       @levelup_window.update
  113.      while @levelup_window.visible
  114.        @levelup_window.update
  115.        Graphics.update
  116.        Input.update
  117.      end
  118.    end
  119.    
  120. end   

  121. class Game_Temp
  122.     attr_accessor :levelup_texts
  123.   #--------------------------------------------------------------------------
  124.   # ● オブジェクト初期化
  125.   #--------------------------------------------------------------------------
  126.   alias oldinitialize initialize
  127.   def initialize
  128.     @levelup_texts = []
  129.     oldinitialize
  130.   end  
  131.   
  132. end


  133. class Window_zhonglevelup < Window_Base

  134.   attr_accessor :index
  135.   def initialize
  136.     super(122, 15, 350, 345)
  137.     $game_temp.levelup_texts = []
  138.     @index = 0
  139.     @skill_index = 0
  140.     @skill_window = Window_Base.new(122,23,260,36)
  141.     @skill_window.opacity = 0
  142.     @skill_window.z = self.z - 1
  143.     @main_window = Window_Base.new(122,59,260,290)
  144.     @main_window.opacity = 0
  145.     @main_window.z = self.z - 1
  146.    
  147.     self.opacity = 0
  148.     self.visible = false
  149.    
  150.     #update
  151.    
  152.    end
  153.   
  154.   
  155.   #--------------------------------------------------------------------------
  156.   # ★ $game_temp.levelup_texts = [角色id,新特技]
  157.   #--------------------------------------------------------------------------
  158.   def update
  159.    
  160.    
  161.     zhonginputupdate if @index <= $game_temp.levelup_texts.size-1
  162.      
  163.     if @index <= $game_temp.levelup_texts.size-1      
  164.       
  165.       self.visible = true
  166.       @main_window.opacity = 150
  167.       actor = $game_actors[$game_temp.levelup_texts[@index][0]]
  168.       if @skill_index == 0 and $game_temp.levelup_texts[@index][1].size != 0
  169.         @skill_index = $game_temp.levelup_texts[@index][1].size
  170.       end  
  171.       level = actor.level
  172.       last_level = actor.last_level
  173.       atk = actor.now_atk
  174.       now_def = actor.now_def
  175.       spi = actor.now_spi
  176.       agi = actor.now_agi
  177.       last_atk = actor.last_atk
  178.       last_def = actor.last_def
  179.       last_spi = actor.last_spi
  180.       last_agi = actor.last_agi
  181.       
  182.       
  183.       self.contents.clear
  184.       
  185.       # x = 122
  186.       # y = 58
  187.        @skill_window.opacity = $game_temp.levelup_texts[@index][1].size != 0 ? 150 : 0
  188.        skill_name = $game_temp.levelup_texts[@index][1][@skill_index - 1].name if @skill_index != 0
  189.        level_name = Vocab::level
  190.        atk_name = Vocab::atk
  191.        def_name = Vocab::def
  192.        spi_name = Vocab::spi
  193.        agi_name = Vocab::agi
  194.        font = self.contents.font.size
  195.        x = 5
  196.        y = 165
  197.        self.contents.draw_text(x,y,60,60,atk_name)
  198.        self.contents.draw_text(x,y+30,60,60,def_name)
  199.        self.contents.draw_text(x,y+60,60,60,spi_name)
  200.        self.contents.draw_text(x,y+90,60,60,agi_name)
  201.        self.contents.draw_text(x + 45,y,60,60, last_atk)
  202.        self.contents.draw_text(x + 45,y+30,60,60,last_def)
  203.        self.contents.draw_text(x + 45,y+60,60,60,last_spi)
  204.        self.contents.draw_text(x + 45,y + 90,60,60,last_agi)
  205.        self.contents.draw_text(x,y-30,60,60,level_name)
  206.        self.contents.draw_text(x + 45,y-30,60,60,last_level)
  207.        self.contents.font.color = Color.new(0,255,255)
  208.        self.contents.font.size = 16
  209.        self.contents.draw_text(x + 77,y-30,60,60,"+ #{level - last_level}")
  210.        self.contents.font.size = font
  211.        self.contents.font.color = Color.new(0,255,0,255)
  212.        self.contents.draw_text(x + 140,y-30,60,60,level)
  213.       
  214.        bitmap_1 = Bitmap.new("Graphics/system/箭头")
  215.        rect_1 = Rect.new(0,0,bitmap_1.width,bitmap_1.height)
  216.        self.contents.blt(x + 105,y - 18,bitmap_1,rect_1)
  217.        if atk > last_atk
  218.          self.contents.font.color = Color.new(0,255,255)
  219.          self.contents.font.size = 16
  220.          self.contents.draw_text(x + 77,y,60,60,"+ #{atk - last_atk}")
  221.          self.contents.font.size = font
  222.          self.contents.font.color = Color.new(0,255,0,255)
  223.          self.contents.draw_text(x+140,y,60,60,atk)
  224.          atk_opacity = 255
  225.        else
  226.          atk_opacity = 0
  227.        end  
  228.       
  229.         
  230.        self.contents.blt(x+105,y+12,bitmap_1,rect_1,atk_opacity)
  231.       
  232.       
  233.        if now_def > last_def
  234.         self.contents.font.color = Color.new(0,255,255)
  235.         self.contents.font.size = 16
  236.         self.contents.draw_text(x + 77,y+30,60,60,"+ #{now_def - last_def}")
  237.         self.contents.font.size = font
  238.         self.contents.font.color = Color.new(0,255,0,255)
  239.          self.contents.draw_text(x+140,y+30,60,60,now_def)
  240.          def_opacity = 255
  241.        else
  242.          def_opacity = 0
  243.        end
  244.       
  245.        self.contents.blt(x+105,y+42,bitmap_1,rect_1,def_opacity)
  246.       
  247.        if spi > last_spi
  248.         self.contents.font.color = Color.new(0,255,255)
  249.         self.contents.font.size = 16
  250.         self.contents.draw_text(x + 77,y+60,60,60,"+ #{spi - last_spi}")
  251.         self.contents.font.size = font
  252.         self.contents.font.color = Color.new(0,255,0,255)
  253.          self.contents.draw_text(x+140,y+60,60,60,spi)
  254.          spi_opacity = 255
  255.        else
  256.          spi_opacity = 0
  257.        end
  258.       
  259.       
  260.        self.contents.blt(x+105,y+72,bitmap_1,rect_1,spi_opacity)
  261.       
  262.        if agi > last_agi
  263.          self.contents.font.color = Color.new(0,255,255)
  264.          self.contents.font.size = 16
  265.          self.contents.draw_text(x + 77,y+90,60,60,"+ #{agi - last_agi}")
  266.          self.contents.font.size = font
  267.          self.contents.font.color = Color.new(0,255,0,255)
  268.          self.contents.draw_text(x + 140,y + 90,60,60,agi)
  269.          agi_opacity = 255
  270.        else
  271.          agi_opacity = 0
  272.        end
  273.       
  274.        self.contents.blt(x+105,y+102,bitmap_1,rect_1,agi_opacity)
  275.          
  276.       
  277.       
  278.       
  279.        self.contents.font.color = normal_color
  280.        self.contents.font.size = 16
  281.        self.contents.draw_text(60, -19, 120, 60,"学会了 #{skill_name}")if @skill_index != 0
  282.        self.contents.font.color = Color.new(255,255,0,255)
  283.        self.contents.draw_text(61, -19,120,60,"       #{skill_name}")
  284.        self.contents.font.size = font
  285.        draw_face(actor.face_name, actor.face_index,3, 55, size = 80)
  286.        draw_actor_name(actor, 92, 55)
  287.        draw_actor_hp(actor, 95, 85)
  288.        draw_actor_mp(actor, 95, 115)
  289.       
  290.        self.contents.font.color = normal_color
  291.        actor.hp = [actor.maxhp,9999].min
  292.        actor.mp = [actor.maxmp,9999].min
  293.       
  294.       
  295.    
  296.      else
  297.        @main_window.visible = false
  298.        @skill_window.visible =false
  299.        self.visible = false
  300.       
  301.     end   
  302.    
  303.    
  304.      
  305.   end
  306.   #==========================================================================
  307.   #★窗口按键刷新
  308.   #==========================================================================
  309.    def zhonginputupdate
  310.      if Input.trigger?(Input::DOWN)
  311.        if @skill_index != 0
  312.          @skill_index -= 1
  313.          end
  314.          @index += 1 if @skill_index == 0
  315.      end
  316.      if Input.trigger?(Input::UP)
  317.         
  318.         if @skill_index != 0
  319.          @skill_index -= 1
  320.          end
  321.          @index += 1 if @skill_index == 0
  322.       end
  323.       if Input.trigger?(Input::RIGHT)
  324.         
  325.        if @skill_index != 0
  326.          @skill_index -= 1
  327.          end
  328.          @index += 1 if @skill_index == 0
  329.         
  330.       end
  331.       if Input.trigger?(Input::LEFT)
  332.          
  333.          if @skill_index != 0
  334.          @skill_index -= 1
  335.          end
  336.          @index += 1 if @skill_index == 0
  337.          
  338.       end
  339.       if Input.trigger?(Input::B)
  340.          
  341.           if @skill_index != 0
  342.          @skill_index -= 1
  343.          end
  344.          @index += 1 if @skill_index == 0
  345.         
  346.       end
  347.       if Input.trigger?(Input::C)
  348.          if @skill_index != 0
  349.          @skill_index -= 1
  350.          end
  351.          @index += 1 if @skill_index == 0
  352.          
  353.       end
  354.    end
  355.    
  356.   #==========================================================================  
  357.    
  358.   def dispose
  359.     super
  360.     @skill_window.dispose
  361.     @main_window.dispose
  362.   end  
  363.   
  364.   
  365. end

  366. class Scene_Map < Scene_Base
  367.   
  368. def start
  369.     super
  370.     $game_map.refresh
  371.     @spriteset = Spriteset_Map.new
  372.     @message_window = Window_Message.new
  373.     @levelup_window = Window_zhonglevelup.new
  374.     @lus_window = Window_Base.new(122,23,260,36)
  375.     @m_window = Window_Base.new(122,59,260,290)
  376.     @m_window.opacity = 0
  377.     @lus_window.opacity = 0
  378.     @m_window.z = 9998
  379.     @lus_window.z = 9998
  380.     @levelup_window.z = 9999
  381.   end
  382.   
  383. def update
  384.     super
  385.     $game_map.interpreter.update   
  386.     $game_map.update                  
  387.     $game_player.update               
  388.     $game_system.update               
  389.     @spriteset.update                 
  390.     @message_window.update            
  391.    
  392.     unless $game_message.visible      
  393.       update_levelup_window
  394.       update_transfer_player
  395.       update_encounter
  396.       update_call_menu
  397.       update_call_debug
  398.       update_scene_change
  399.     end
  400.   end
  401.   
  402.   def update_levelup_window
  403.       @levelup_window.update
  404.       while @levelup_window.visible
  405.         
  406.         @lus_window.opacity = $game_temp.levelup_texts[@levelup_window.index][1].size != 0 ? 150 : 0
  407.         @m_window.opacity = 150
  408.         @levelup_window.update
  409.         Graphics.update
  410.         Input.update
  411.        end
  412.      @m_window.opacity = 0
  413.     @lus_window.opacity = 0
  414.    
  415.   end   
  416. def terminate
  417.     super
  418.     if $scene.is_a?(Scene_Battle)     # バトル画面に切り替え中の場合
  419.       @spriteset.dispose_characters   # 背景作成のためにキャラを隠す
  420.     end
  421.     snapshot_for_background
  422.     @spriteset.dispose
  423.     @message_window.dispose
  424.     @levelup_window.dispose
  425.     @m_window.dispose
  426.     @lus_window.dispose
  427.     if $scene.is_a?(Scene_Battle)     # バトル画面に切り替え中の場合
  428.       perform_battle_transition       # 戦闘前トランジション実行
  429.     end
  430.   end
  431. end

复制代码
求此段代码控制的开关~和地名提示的开关撞了

Lv1.梦旅人

梦石
0
星屑
51
在线时间
1 小时
注册时间
2010-7-21
帖子
180
2
 楼主| 发表于 2010-7-22 13:11:53 | 只看该作者
控制的开关应该是1、2.怎么改?
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-11-25 18:00

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表