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

Project1

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

[已经解决] 如何让角色升级恢复HP.MP

[复制链接]

Lv1.梦旅人

梦石
0
星屑
55
在线时间
28 小时
注册时间
2011-6-4
帖子
18
跳转到指定楼层
1
发表于 2012-5-18 21:36:37 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
如何让角色升级恢复HP.MP
请高手帮忙!!!!!!!!!

Lv1.梦旅人

梦·贤者

梦石
0
星屑
50
在线时间
1141 小时
注册时间
2007-12-15
帖子
4100
2
发表于 2012-5-18 21:54:14 | 只看该作者
本帖最后由 tommay 于 2012-5-18 21:55 编辑

修改对应部分或者直接把下面的脚本插入main之前
  1. class Game_Actor
  2.   def exp=(exp)
  3.     @exp = [[exp, 9999999].min, 0].max
  4.     # 升级
  5.     while @exp >= @exp_list[@level+1] and @exp_list[@level+1] > 0
  6.       @level += 1
  7.       # 学会特技
  8.       for j in $data_classes[@class_id].learnings
  9.         if j.level == @level
  10.           learn_skill(j.skill_id)
  11.         end
  12.       end
  13.       recover_all
  14.     end
  15.     # 降级
  16.     while @exp < @exp_list[@level]
  17.       @level -= 1
  18.     end
  19.     # 修正当前的 HP 与 SP 超过最大值
  20.     @hp = [@hp, self.maxhp].min
  21.     @sp = [@sp, self.maxsp].min
  22.   end
  23. end
复制代码
http://rpg.blue/home.php?mod=space&uid=34951&do=blog&id=12799
回复

使用道具 举报

Lv3.寻梦者 (版主)

八宝粥的基叔

梦石
0
星屑
4684
在线时间
5240 小时
注册时间
2009-4-29
帖子
14318

贵宾

3
发表于 2012-5-18 21:59:42 | 只看该作者
本帖最后由 protosssonny 于 2012-5-18 21:59 编辑

全局搜索  “def level_up”,找到这样一段脚本。添加2行:
  1.   def level_up
  2.     @level += 1
  3.     for learning in self.class.learnings
  4.       learn_skill(learning.skill_id) if learning.level == @level
  5.     end
  6.     self.hp = self.maxhp    #添加本行,当前HP变成最大HP
  7.     self.mp = self.maxmp    #添加本行,当前MP变成最大MP
  8.   end
复制代码
于是升级后HP和MP就可以加满了!
《逝去的回忆3:四叶草之梦》真情发布,欢迎点击图片下载试玩喵。

《逝去的回忆3》的讨论群:
一群:192885514
二群:200460747
回复

使用道具 举报

Lv3.寻梦者

虚空人形

梦石
0
星屑
4604
在线时间
2037 小时
注册时间
2011-8-11
帖子
3398

贵宾

4
发表于 2012-5-18 22:22:17 | 只看该作者
转载:
  1. #=======================================================================
  2. #★升级提示★
  3. #-----------------------------------------------------------------------
  4. #★作者: Zhong_zw
  5. #★联系方式:66RPG.com论坛短信 或 [email protected]
  6. #=======================================================================
  7. class Game_Actor < Game_Battler

  8.   attr_accessor :last_level   
  9.    def initialize(actor_id)
  10.     super()
  11.     setup(actor_id)
  12.     @last_level = 0
  13.     @last_skill_id = 0
  14.    end
  15.    def last_atk
  16.     return actor.parameters[2,@last_level]
  17.   end
  18.   def last_def
  19.     return actor.parameters[3,@last_level]
  20.   end
  21.   def last_spi
  22.     return actor.parameters[4,@last_level]
  23.   end
  24.   def last_agi
  25.     return actor.parameters[5,@last_level]
  26.    end
  27.   def now_atk
  28.     return actor.parameters[2,@level]
  29.   end
  30.   def now_def
  31.     return actor.parameters[3,@level]
  32.   end
  33.   def now_spi
  34.     return actor.parameters[4,@level]
  35.   end
  36.   def now_agi
  37.     return actor.parameters[5,@level]
  38.   end  
  39.    def change_exp(exp, show)
  40.     @last_level = @level
  41.     last_skills = skills
  42.    
  43.     @exp = [[exp, 9999999].min, 0].max
  44.    while @exp >= @exp_list[@level+1] and @exp_list[@level+1] > 0
  45.       level_up
  46.     end
  47.     while @exp < @exp_list[@level]
  48.       level_down
  49.     end
  50.     @hp = [@hp, maxhp].min
  51.     @mp = [@mp, maxmp].min
  52.     if show and @level > last_level
  53.       
  54.       zhonglevelup_push(skills - last_skills)
  55.     end
  56.   end
  57.    #==========================================================================
  58.   #★角色升级显示
  59.   #==========================================================================
  60.   
  61.   def zhonglevelup_push(new_skills)
  62.    
  63.     text = [@actor_id,new_skills]
  64.     $game_temp.levelup_texts.push(text)
  65.   end
  66. end



  67. class Scene_Battle < Scene_Base

  68. def display_level_up
  69.     exp = $game_troop.exp_total
  70.     $game_party.remove_states_battle
  71.     @message_window.contents_opacity = 0
  72.     @message_window.opacity = 0
  73.     @levelup_window = Window_zhonglevelup.new
  74.     for actor in $game_party.existing_members
  75.       last_level = actor.level
  76.       last_skills = actor.skills
  77.       actor.gain_exp(exp, true)
  78.     end
  79.    
  80.     update_zhonglevelup
  81.    
  82.    
  83.   end
  84.   #==========================================================================
  85.   #★等待升级窗口刷新
  86.   #==========================================================================
  87.    def update_zhonglevelup
  88.       @levelup_window.update
  89.      while @levelup_window.visible
  90.        @levelup_window.update
  91.        Graphics.update
  92.        Input.update
  93.      end
  94.    end
  95.    
  96. end   

  97. class Game_Temp
  98.     attr_accessor :levelup_texts
  99.   #--------------------------------------------------------------------------
  100.   # ● オブジェクト初期化
  101.   #--------------------------------------------------------------------------
  102.   alias oldinitialize initialize
  103.   def initialize
  104.     @levelup_texts = []
  105.     oldinitialize
  106.   end  
  107.   
  108. end


  109. class Window_zhonglevelup < Window_Base

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

  320. class Scene_Map < Scene_Base
  321.   
  322. def start
  323.     super
  324.     $game_map.refresh
  325.     @spriteset = Spriteset_Map.new
  326.     @message_window = Window_Message.new
  327.     @levelup_window = Window_zhonglevelup.new
  328.     @lus_window = Window_Base.new(122,23,260,36)
  329.     @m_window = Window_Base.new(122,59,260,290)
  330.     @m_window.opacity = 0
  331.     @lus_window.opacity = 0
  332.     @m_window.z = 9998
  333.     @lus_window.z = 9998
  334.     @levelup_window.z = 9999
  335.   end
  336.   
  337. def update
  338.     super
  339.     $game_map.interpreter.update   
  340.     $game_map.update                  
  341.     $game_player.update               
  342.     $game_system.update               
  343.     @spriteset.update                 
  344.     @message_window.update            
  345.    
  346.     unless $game_message.visible      
  347.       update_levelup_window
  348.       update_transfer_player
  349.       update_encounter
  350.       update_call_menu
  351.       update_call_debug
  352.       update_scene_change
  353.     end
  354.   end
  355.   
  356.   def update_levelup_window
  357.       @levelup_window.update
  358.       while @levelup_window.visible
  359.         
  360.         @lus_window.opacity = $game_temp.levelup_texts[@levelup_window.index][1].size != 0 ? 150 : 0
  361.         @m_window.opacity = 150
  362.         @levelup_window.update
  363.         Graphics.update
  364.         Input.update
  365.        end
  366.      @m_window.opacity = 0
  367.     @lus_window.opacity = 0
  368.    
  369.   end   
  370. def terminate
  371.     super
  372.     if $scene.is_a?(Scene_Battle)     # バトル画面に切り替え中の場合
  373.       @spriteset.dispose_characters   # 背景作成のためにキャラを隠す
  374.     end
  375.     snapshot_for_background
  376.     @spriteset.dispose
  377.     @message_window.dispose
  378.     @levelup_window.dispose
  379.     @m_window.dispose
  380.     @lus_window.dispose
  381.     if $scene.is_a?(Scene_Battle)     # バトル画面に切り替え中の場合
  382.       perform_battle_transition       # 戦闘前トランジション実行
  383.     end
  384.   end
  385. end
复制代码

点评

你不给他箭头。可是会报错的~~  发表于 2012-5-18 22:30
hcm
插在main前。  发表于 2012-5-18 22:22
回复

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
11 小时
注册时间
2012-6-3
帖子
49
5
发表于 2012-6-3 17:30:00 | 只看该作者
什么全局搜索?我的版本和你们相差这么大么,我啥也找不到


‘‘──A1241561474于2012-6-16 10:20补充以下内容:

我用的是XP啊...
现在下了一个VA,不咋会用,特别是素材

’’

评分

参与人数 1星屑 -20 收起 理由
Luciffer -20 挖坟哦~

查看全部评分

回复

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
60
在线时间
58 小时
注册时间
2012-7-6
帖子
39
6
发表于 2012-7-9 13:25:11 | 只看该作者
呃。。。这里是VX

评分

参与人数 1星屑 -40 收起 理由
Luciffer -40 理由见楼上

查看全部评分

回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-30 13:54

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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