Project1

标题: 如何让sp显示在动画后。 [打印本页]

作者: 流浪剑客    时间: 2012-2-22 21:06
标题: 如何让sp显示在动画后。
本帖最后由 流浪剑客 于 2012-2-23 22:13 编辑

之前求助sp显示脚本,找到了一个,但是它的sp显示都在动画前,怎样改成动画后显示?这是那个脚本范例。dsu_plus_rewardpost_czw

SP消耗显示.rar

187.66 KB, 下载次数: 8


作者: 无双sxa    时间: 2012-2-22 21:50
主站找的,不知有木有用:
  1. 黑暗圣剑传说中,每个角色除了HP、SP以外,还根据角色不同有HP或SP的储存条。HP的储存条在挨打时候蓄气,SP储存条在战斗中使用技能时候蓄气。部分技能必须需要一条的HP、SP储存能量才能发出(一条是100点)。

  2. 本教学为高级教学,不推荐尚未学习脚本的新人看

  3. 下面简单说一下这个功能怎么制作:

  4. 1、添加HP_Store,SP_Store的储存数据,也就是储存条的能量。

  5. 由于只有Actor才有,所以在Game_Actor添加   
  6.    
  7. attr_accessor :hp_store # ★ 添加HP蓄气槽
  8. attr_accessor :sp_store # ★ 添加SP蓄气槽

  9. 并在def setup的时候让他们等于0
  10.    
  11. @hp_store = 0 # ★
  12. @sp_store = 0 # ★

  13. 2、修改Game_Actor角色的可以使用特技判定,当遇到需要储存条的技能时候,如果储存能量不足,不能使用。

  14. #--------------------------------------------------------------------------
  15. # ● 可以使用特技判定   ★
  16. #     skill_id : 特技 ID
  17. #--------------------------------------------------------------------------
  18. def skill_can_use?(skill_id)
  19.    if not skill_learn?(skill_id)
  20.      return false
  21.    end
  22.    if $data_skills[skill_id].element_set.include?(20) #如果是HP蓄气技能
  23.      return false if @hp_store < 100
  24.    end
  25.    if $data_skills[skill_id].element_set.include?(21) #如果是SP蓄气技能
  26.      return false if @sp_store < 100
  27.    end
  28.    return super
  29. end

  30. 这里假定带20号属性的是“HP蓄气技能”,带21号属性的是“SP蓄气技能”
  31.   
  32. 3、在减血的时候储存@hp_store。ctrl_shift_F全局搜索.hp -=这个内容,每个下面都添加类似的东西:

  33.      if self.is_a?(Game_Actor) # ★ 挨打的时候蓄HP储存条
  34.        self.hp_store += [self.damage*100/self.maxhp , 0].max
  35.        self.hp_store = [self.hp_store,300].min
  36.      end

  37. 这里的意思是说,如果是角色,则hp_store的增长量为伤害占总血量的百分比,并且增长量要大于0,最大值小于300(最多3条)。这里的self.是因为这个地方是self.hp -=,如果是battler.则全部self改为battler。

  38. 你可以有选择性的选一部分伤害添加这个,比如地图中毒的时候减血并不储存能量,那么Game_Party中那个就不用改了。

  39. 除了.hp -= 还应该有.hp +=,这样会搜索到使用物品等处。不过黑暗圣剑中使用物品造成伤害并不会蓄槽,还有使用事件强行减的HP也不会蓄槽。所以这里就不做修改了。

  40. 4、类似的,找到所有的.sp -=和.sp +=,添加

  41.    if @XX.is_a?(Game_Actor) # ★设定sp_store的增加
  42.      @XX.sp_store += [@skill.sp_cost*100/@XX.maxsp, 0].max
  43.      @XX.sp_store = [@XX.sp_store,300].min
  44.    end

  45. 其中XX是那个.sp的主人,如@active_battler或@actor。黑暗圣剑中.sp +=这几个都没有改,也就是使用物品恢复SP、事件强行减SP这几个,不需要这样的效果。

  46. 5、添加使用技能消耗储存条。还是找到.sp -=,添加如下:

  47.          if @skill.element_set.include?(20) #★,消耗HP储存条
  48.            @XX.hp_store -= 100
  49.          end
  50.          if @skill.element_set.include?(21) #★,消耗SP储存条
  51.            @XX.sp_store -= 100
  52.          end

  53. 6、不同职业所拥有的槽不同。这里都只是显示的问题了,虽然角色本身都是有两个槽的,但是只要不显示并且不学会“不应该学会的特技”,完全可以用简单方法如下:我们把可以附带的槽,职业数据库有效度设置为A。比如战士可以附带HP蓄气槽,则20号属性有效度为A
  54. 接着,draw_actor_hp中定义一下(Window_Base或血槽脚本):

  55.    if $data_classes[actor.class_id].element_ranks[20]==1 #追加描绘HP储存量
  56.      self.contents.draw_text(hp_x+30, y, 48, 32, "("+actor.hp_store.to_s+")", 2)
  57.    end

  58. 这只是一个简单的定义,因为窗口描绘不在这一节讲。同样定义SP的描绘:

  59.    if $data_classes[actor.class_id].element_ranks[21]==1 #追加描绘HP储存量
  60.      self.contents.draw_text(sp_x+30, y, 48, 32, "("+actor.sp_store.to_s+")", 2)
  61.    end

  62. 7、其他使用。这样定义之后,可以用actor.hp_store += 来直接给actor增加蓄气槽。配合主站教学的“状态法”,就可以制作专门恢复蓄气槽的药了。
复制代码

作者: 流浪剑客    时间: 2012-2-22 22:02
不是这个,是使用物品恢复sp不显示数值。。




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