Project1

标题: 关于召唤系技能的设置,请问有没有更好的方法 [打印本页]

作者: 穿越时空之剑    时间: 2019-1-16 06:26
标题: 关于召唤系技能的设置,请问有没有更好的方法
我的方法是这样:先设定能召唤生物的具体属性
(, 下载次数: 55)
再给召唤生物的职业特性里加上负的HP再生(相当于时间限制),配合死亡时触发指定公共事件的脚本,这样召唤生物HP为0时可自动离队,但可惜只在战斗中有效
(, 下载次数: 57) (, 下载次数: 67)
然后设置一个召唤技能,在战斗和非战斗状态下都可用,使用时触发公共事件:骷髅入队
(, 下载次数: 73) (, 下载次数: 62)
最后也是最主要的问题,为了在非战斗状态下召唤生物也能在HP为0时自动离队,我搞了个每过一段时间就自动执行一次的公共事件
(, 下载次数: 64)

这样的话不管在战斗还是非战斗状态下,召唤生物也能在HP为0时自动离队了,但是经过测试后发现有时游戏会严重卡顿
求教各位大神,有没有其他更好的设计思路……

作者: 七重    时间: 2019-1-16 09:20
这样第一眼看到设定,会觉得HP不断在削减这个设定有点不自然。。

如果是独立出一个属性,然后让在战斗中每回合削减,非战斗时每走多少步削减,会比较合理的感觉。
同时UI显示一个召唤剩余时间(回合数)的计数条什么的。

随时检查觉得卡的话,在添加状态那里加检查吧
当附加上的状态是无法战斗的时候,检查附加对象,有没有召唤物的注释什么的。
写得简单一点就。。
附加的状态编号是无法战斗的时候,才调用一次你上面写的那个事件。
作者: 蹲厕所的女孩    时间: 2019-1-16 10:39
我是这样理解的吧,你最后那个图上的并行处理开关应该是在召唤物生命值为0的时候打开的吧,然后开始每75帧检测一次有没有角色需要离队,如果每75帧都需要检测一遍这么多东西的话应该会卡顿吧
用脚本写个召唤物的类是不是会更好点?
作者: KB.Driver    时间: 2019-1-16 12:51
本帖最后由 KB.Driver 于 2019-1-16 12:56 编辑

在地图上
(, 下载次数: 64)
在战斗中
(, 下载次数: 67)

召唤生物死亡离队,不需要公共事件
[pre lang="ruby"]#bug说明:将召唤生物设置为初始队友会在游戏一开始就离队,原因不明

module CLD99_SUMMON_CREATURE
  
  SUMMON_CREATURE_CLASS_ID = [51..72]
  # 在此设置召唤生物的职业ID范围
  # 不要删除方括号
  # 例: [2] [2,3,5,6] [2..6,8] [2..5,10..20]
  
end

class Game_Actor
  #--------------------------------------------------------------------------
  # ● 刷新
  #--------------------------------------------------------------------------
  alias refresh_for_remove refresh
  def refresh
    refresh_for_remove
    if self.state?(death_state_id) && actor.summon_creature?
      $game_party.remove_actor(@actor_id)
    end
  end
end

class RPG::Actor
  #--------------------------------------------------------------------------
  # ● 是否为召唤生物
  #--------------------------------------------------------------------------
  def summon_creature?
    CLD99_SUMMON_CREATURE::SUMMON_CREATURE_CLASS_ID.each do |x|
      if x.is_a?(Fixnum) then return true if x == self.class_id        end
      if x.is_a?(Range)  then return true if x.include?(self.class_id) end
    end
    return false
  end
end[/pre]

作者: 蹲厕所的女孩    时间: 2019-1-17 10:08
本帖最后由 蹲厕所的女孩 于 2019-1-17 10:09 编辑
蹲厕所的女孩 发表于 2019-1-16 10:39
我是这样理解的吧,你最后那个图上的并行处理开关应该是在召唤物生命值为0的时候打开的吧,然后开始每75帧 ...


楼上已经解决了,可以学习下代码看看他是怎么做的




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