Project1

标题: 升级后人物HP,MP怎么变满? [打印本页]

作者: 光之赫恩海姆    时间: 2007-7-7 02:44
提示: 作者被禁止或删除 内容自动屏蔽
作者: 光之赫恩海姆    时间: 2007-7-7 02:44
提示: 作者被禁止或删除 内容自动屏蔽
作者: 飯。    时间: 2007-7-7 02:44
提示: 作者被禁止或删除 内容自动屏蔽
作者: 狒狒王    时间: 2007-7-7 06:14
以下引用罪恶灵魂丶于2007-7-6 18:44:38的发言:
不用了
升级之后自动变满的.

好象是要改脚本的吧 = =
参考下这个:http://rpg.blue/web/htm/news149.htm [LINE]1,#dddddd[/LINE]系统信息:本贴由版主叶舞枫认可为正确答案,66RPG感谢您的热情解答~
作者: kaze    时间: 2007-7-7 06:18
  1. 在Game_Actor中找到下面,红色字部分是修改:

  2. #--------------------------------------------------------------------------
  3. # ● 更改 EXP
  4. #     exp : 新的 EXP
  5. #--------------------------------------------------------------------------
  6. def exp=(exp)
  7.   @exp = [[exp, 9999999].min, 0].max
  8.   # 升级
  9.   while @exp >= @exp_list[@level+1] and @exp_list[@level+1] > 0
  10.     @level += 1
  11.     @hp = maxhp
  12.     @sp = maxsp
  13.     # 学会特技
  14.     for j in $data_classes[@class_id].learnings
  15.       if j.level == @level
  16.         learn_skill(j.skill_id)
  17.       end
  18.     end
  19.   end
  20.   # 降级
  21.   while @exp < @exp_list[@level]
  22.     @level -= 1
  23.   end
  24.   # 修正当前的 HP 与 SP 超过最大值
  25.   @hp = [@hp, self.maxhp].min
  26.   @sp = [@sp, self.maxsp].min
  27. end
复制代码

作者: 光之赫恩海姆    时间: 2007-7-7 07:17
提示: 作者被禁止或删除 内容自动屏蔽
作者: 精灵使者    时间: 2007-7-7 07:25
以下引用光之赫恩海姆于2007-7-6 23:17:58的发言:

用了那脚本还是没有效果啊

参考此帖。你如果用了其他战斗脚本的话。
http://rpg.blue/web/htm/news149.htm
作者: 光之赫恩海姆    时间: 2007-7-7 09:25
提示: 作者被禁止或删除 内容自动屏蔽
作者: 精灵使者    时间: 2007-7-7 16:19
以下引用光之赫恩海姆于2007-7-7 1:25:32的发言:

如果按4楼的那种没有效果,我做的是纵版的,按照添加
actor.hp = actor.maxhp;          actor.sp = actor.maxsp
的方法效果不是很好,升级提示结束后血才会满,我想让升级的同时血就会满那种效果
不知道能否实现

我的那个帖子里面说过了。
另外,比较好的方法:在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
添加到这里应该是更好。4楼的脚本说的不错。
如果被重新定义的话就在你的脚本里面搜索这个。
其实所有的升级补血都是在升级出现提示表现之后帮忙把HP和SP补满。所以只需要在脚本中按ctrl+shift+f搜索
if actor.level > last_level
就可以了。不过有的脚本写得不是非常规范,可能会写成if actor.level >last_level这样(和最标准的格式比缺一个空格),这样搜索就搜不到了。这是可以全局搜索.level,然后自己挑出来。这个.level是默认定义的,一般的脚本不会随便更改这个。

actor.hp = actor.maxhp,就是把现在的hp赋值为最大hp (maxhp),SP也相同。如果使用增加一些hp或sp,就使用 += 的方法增加现有值。

作者: kaze    时间: 2007-7-7 17:07
精灵和我说的有区别吗
作者: 精灵使者    时间: 2007-7-7 17:08
所以我说4楼说的不错……不是么?好像楼主经常忘,加的位置不对。
作者: 光之赫恩海姆    时间: 2007-7-8 05:57
提示: 作者被禁止或删除 内容自动屏蔽




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