Project1

标题: 如何做升级之后自动加满HP SP [打印本页]

作者: 星☆龙    时间: 2008-4-20 20:47
提示: 作者被禁止或删除 内容自动屏蔽
作者: 痛恨吵架    时间: 2008-4-20 20:56
提示: 作者被禁止或删除 内容自动屏蔽
作者: 痛恨吵架    时间: 2008-4-20 21:04
提示: 作者被禁止或删除 内容自动屏蔽
作者: 星☆龙    时间: 2008-4-20 21:05
提示: 作者被禁止或删除 内容自动屏蔽
作者: 痛恨吵架    时间: 2008-4-20 21:07
提示: 作者被禁止或删除 内容自动屏蔽
作者: 星☆龙    时间: 2008-4-20 21:13
提示: 作者被禁止或删除 内容自动屏蔽
作者: havealook    时间: 2008-4-20 21:15
LZ你加错地方了,应该是
    Scene_Battle (分割定义 2)

     # 获得 EXP
      for i in 0...$game_party.actors.size
        actor = $game_party.actors
        if actor.cant_get_exp? == false
          last_level = actor.level
          actor.exp += exp
          actor.hp = actor.maxhp  #加在这里
          actor.sp = actor.maxsp  #加在这里
          if actor.level > last_level
            @status_window.level_up(i)
          end
        end
      end

作者: 星☆龙    时间: 2008-4-20 21:24
提示: 作者被禁止或删除 内容自动屏蔽
作者: 痛恨吵架    时间: 2008-4-20 21:24
提示: 作者被禁止或删除 内容自动屏蔽
作者: 痛恨吵架    时间: 2008-4-20 21:25
提示: 作者被禁止或删除 内容自动屏蔽
作者: havealook    时间: 2008-4-20 21:30
在Window_BattleResult中(这个是用来表示战斗结束时、显示获得的 EXP 及金钱的窗口),在initialize或者refresh函数定义中,添加如下内容(比如添加在28行下面):

for actor in $game_party.actors
  actor.hp = actor.maxhp
  actor.sp = actor.maxsp
end

你应该可以看明白这个简短的脚本是怎么运行的。
作者: 星☆龙    时间: 2008-4-20 21:32
提示: 作者被禁止或删除 内容自动屏蔽
作者: 星☆龙    时间: 2008-4-20 21:36
提示: 作者被禁止或删除 内容自动屏蔽
作者: 星☆龙    时间: 2008-4-20 21:40
提示: 作者被禁止或删除 内容自动屏蔽
作者: 星☆龙    时间: 2008-4-20 21:41
提示: 作者被禁止或删除 内容自动屏蔽
作者: havealook    时间: 2008-4-20 21:46
另外,比较好的方法:在Game_Actor里的


#--------------------------------------------------------------------------
# ● 更改 EXP
#     exp : 新的 EXP
#--------------------------------------------------------------------------
def exp=(exp)
   @exp = [[exp, 9999999].min, 0].max
   # 升级
   while @exp >= @exp_list[@level+1] and @exp_list[@level+1] > 0
     @level += 1
#################################这里增加了###############################
     @hp = maxhp   
     @sp = maxsp
#################################这里增加了###############################
     # 学会特技
     for j in $data_classes[@class_id].learnings
       if j.level == @level
         learn_skill(j.skill_id)
       end
     end
   end
   # 降级
   while @exp < @exp_list[@level]
     @level -= 1
   end
   # 修正当前的 HP 与 SP 超过最大值
   @hp = [@hp, self.maxhp].min
   @sp = [@sp, self.maxsp].min
end
作者: 星☆龙    时间: 2008-4-20 21:49
提示: 作者被禁止或删除 内容自动屏蔽
作者: havealook    时间: 2008-4-20 21:52
不可能不行,不信你自己打几个高经验的怪物,我肯定升级后自动加满HP.SP
作者: 星☆龙    时间: 2008-4-20 21:59
提示: 作者被禁止或删除 内容自动屏蔽
作者: havealook    时间: 2008-4-20 22:06
请你把自己的游戏传上来,我下载看看....怎么回事?? - -
(修改的地方是升级方法的定义,等级怎加和血增加应该是同步的....除非你用了什么脚本把升级重定义了...升级提示脚本?)
作者: xiarongshan    时间: 2008-4-20 22:19
提示: 作者被禁止或删除 内容自动屏蔽
作者: 星☆龙    时间: 2008-4-20 22:19
提示: 作者被禁止或删除 内容自动屏蔽
作者: xiarongshan    时间: 2008-4-20 22:22
提示: 作者被禁止或删除 内容自动屏蔽
作者: 星☆龙    时间: 2008-4-20 22:26
提示: 作者被禁止或删除 内容自动屏蔽
作者: xiarongshan    时间: 2008-4-20 22:26
提示: 作者被禁止或删除 内容自动屏蔽
作者: 星☆龙    时间: 2008-4-20 22:29
提示: 作者被禁止或删除 内容自动屏蔽
作者: xiarongshan    时间: 2008-4-20 22:32
提示: 作者被禁止或删除 内容自动屏蔽
作者: 星☆龙    时间: 2008-4-20 22:32
提示: 作者被禁止或删除 内容自动屏蔽
作者: 星☆龙    时间: 2008-4-20 22:51
提示: 作者被禁止或删除 内容自动屏蔽
作者: xiarongshan    时间: 2008-4-20 22:54
提示: 作者被禁止或删除 内容自动屏蔽
作者: 星☆龙    时间: 2008-4-20 23:01
提示: 作者被禁止或删除 内容自动屏蔽
作者: 星☆龙    时间: 2008-4-20 23:07
提示: 作者被禁止或删除 内容自动屏蔽
作者: 星☆龙    时间: 2008-4-20 23:08
提示: 作者被禁止或删除 内容自动屏蔽
作者: xiarongshan    时间: 2008-4-20 23:10
提示: 作者被禁止或删除 内容自动屏蔽
作者: 星☆龙    时间: 2008-4-20 23:11
提示: 作者被禁止或删除 内容自动屏蔽
作者: 星☆龙    时间: 2008-4-20 23:12
提示: 作者被禁止或删除 内容自动屏蔽
作者: xiarongshan    时间: 2008-4-20 23:14
提示: 作者被禁止或删除 内容自动屏蔽
作者: xiarongshan    时间: 2008-4-20 23:18
提示: 作者被禁止或删除 内容自动屏蔽
作者: 星☆龙    时间: 2008-4-20 23:26
提示: 作者被禁止或删除 内容自动屏蔽
作者: havealook    时间: 2008-4-20 23:27
试试把你的脚本
for i in 0...$game_party.actors.size
     actor = $game_party.actors
     if actor.cant_get_exp? == false
       last_level = actor.level
       actor.exp += exp
       if actor.level > last_level
         actor.hp = actor.maxhp
         actor.sp = actor.maxsp
         @status_window.level_up(i)
       end
     end
   end


改成
for i in 0...$game_party.actors.size
     actor = $game_party.actors
     if actor.cant_get_exp? == false
       last_level = actor.level
       actor.exp += exp
       if actor.level > last_level
         @status_window.level_up(i)
         actor.hp = actor.maxhp
         actor.sp = actor.maxsp
       end
     end
   end

作者: 星☆龙    时间: 2008-4-20 23:28
提示: 作者被禁止或删除 内容自动屏蔽
作者: 星☆龙    时间: 2008-4-20 23:32
提示: 作者被禁止或删除 内容自动屏蔽
作者: xiarongshan    时间: 2008-4-21 02:54
提示: 作者被禁止或删除 内容自动屏蔽
作者: havealook    时间: 2009-6-12 08:00
用我11楼给的方法,绝对可行
你的错误是设置的是升级后补血,而不是战斗结束后补血
作者: 星☆龙    时间: 2009-6-12 08:00
提示: 作者被禁止或删除 内容自动屏蔽




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1