Project1

标题: 看完转生史莱姆,想做一个利姆露的捕食技能【已解决】 [打印本页]

作者: 间桐樱    时间: 2019-6-5 09:30
标题: 看完转生史莱姆,想做一个利姆露的捕食技能【已解决】
本帖最后由 间桐樱 于 2019-6-5 18:15 编辑

复制敌人全部技能的问题已经解决了,就是敌人有伤害减免一类出现了一点点小问题,咱设定中捕食技能积攒满tp可用,会直接吃掉敌人,吸收对方的生命力且获得其全部技能
但对方如果进行防御或减伤的话,就会出现敌人没有死掉的情况,然后咱就做了下面的代码,在hp不能归零的情况下切换代码中的设定,直接判定吸取其生命力,并且敌人死亡
然后,出问题了,没有return if的判定,就会出现吸收敌人双倍的hp,设定伤害小于对方mhp的情况再启动代码,却总是报错QAQ

      return user.hp = user.hp + self.hp if damage < self.mhp
      return self.hp = self.hp - self.mhp if damage < self.mhp

捕获.PNG (49.47 KB, 下载次数: 45)

捕食技能

捕食技能

作者: soulsaga    时间: 2019-6-5 11:12
本帖最后由 soulsaga 于 2019-6-5 11:19 编辑

我想大概是这里damage已经是字符串了..所以会报错?
所以不可能在后面加判断..
作者: 间桐樱    时间: 2019-6-5 12:27
soulsaga 发表于 2019-6-5 11:12
我想大概是这里damage已经是字符串了..所以会报错?
所以不可能在后面加判断.. ...

不加判定倒是可以使用,但是吸收到的hp是敌人hp的两倍,沮丧
作者: soulsaga    时间: 2019-6-5 13:10
间桐樱 发表于 2019-6-5 12:27
不加判定倒是可以使用,但是吸收到的hp是敌人hp的两倍,沮丧

你发一下这段脚本..还是是默认脚本?
作者: 间桐樱    时间: 2019-6-5 15:16
soulsaga 发表于 2019-6-5 13:10
你发一下这段脚本..还是是默认脚本?


user.hp = user.hp + self.hp
self.hp = self.hp - self.mhp
没有判定就能正常运行
作者: soulsaga    时间: 2019-6-5 15:20
间桐樱 发表于 2019-6-5 15:16

user.hp = user.hp + self.hp
self.hp = self.hp - self.mhp

你这脚本写在哪里的..我想问的是..
作者: 间桐樱    时间: 2019-6-5 17:34
soulsaga 发表于 2019-6-5 15:20
你这脚本写在哪里的..我想问的是..

  #--------------------------------------------------------------------------
  # 伤害计算
  #--------------------------------------------------------------------------
  def make_damage_value(user, item)
    value = item.damage.eval(user, self, $game_variables)
    value *= item_element_rate(user, item)
    value *= pdr if item.physical?
    value *= mdr if item.magical?
    value *= rec if item.damage.recover?
    value = apply_critical(value, user) if @result.critical
    value = apply_variance(value, item.damage.variance)
    value = apply_guard(value)
    @result.make_damage(value.to_i, item)
  # HP吸收
    if skill_id = 66
      return user.hp = user.hp + self.hp if damage < self.mhp
      retrun self.hp = self.hp - self.mhp if damage < self.mhp
    end
  end
作者: soulsaga    时间: 2019-6-5 17:46
本帖最后由 soulsaga 于 2019-6-5 17:50 编辑

RUBY 代码复制
  1. #--------------------------------------------------------------------------
  2.   # 伤害计算
  3.   #--------------------------------------------------------------------------
  4.   def make_damage_value(user, item)
  5.     value = item.damage.eval(user, self, $game_variables)
  6.     value *= item_element_rate(user, item)
  7.     value *= pdr if item.physical?
  8.     value *= mdr if item.magical?
  9.     value *= rec if item.damage.recover?
  10.     value = apply_critical(value, user) if @result.critical
  11.     value = apply_variance(value, item.damage.variance)
  12.     value = apply_guard(value)
  13. # HP吸收
  14.     value = self.hp if item.id = 66 and item.is_a?(RPG::Skill)
  15.     @result.make_damage(value.to_i, item)
  16.   end


你去哪找skill_id和damage来用..不报错才怪..
作者: 间桐樱    时间: 2019-6-5 18:08
soulsaga 发表于 2019-6-5 17:46
#--------------------------------------------------------------------------
  # 伤害计算
  #-------- ...

前辈斯国一!咱好多东西都是看到别人发的脚本里有就搬过来了,照猫画虎的,诶嘿♪~
作者: 间桐樱    时间: 2019-6-5 21:58
soulsaga 发表于 2019-6-5 17:46
#--------------------------------------------------------------------------
  # 伤害计算
  #-------- ...

前辈~这里面还能加一行mp的伤害和吸收吗(小心翼翼)
作者: soulsaga    时间: 2019-6-5 22:21
本帖最后由 soulsaga 于 2019-6-5 22:23 编辑
间桐樱 发表于 2019-6-5 21:58
前辈~这里面还能加一行mp的伤害和吸收吗(小心翼翼)


RUBY 代码复制
  1. #--------------------------------------------------------------------------
  2.   # 伤害计算
  3.   #--------------------------------------------------------------------------
  4.   def make_damage_value(user, item)
  5.     value = item.damage.eval(user, self, $game_variables)
  6.     value *= item_element_rate(user, item)
  7.     value *= pdr if item.physical?
  8.     value *= mdr if item.magical?
  9.     value *= rec if item.damage.recover?
  10.     value = apply_critical(value, user) if @result.critical
  11.     value = apply_variance(value, item.damage.variance)
  12.     value = apply_guard(value)
  13. # HPMP吸收
  14.     value = self.hp;user.mp+=self.mp if item.id = 66 and item.is_a?(RPG::Skill)
  15.     @result.make_damage(value.to_i, item)
  16.   end

作者: 间桐樱    时间: 2019-6-5 22:31
soulsaga 发表于 2019-6-5 22:21
#--------------------------------------------------------------------------
  # 伤害计算
  #----- ...

前辈,脚本没有mp伤害吗...(悄悄冒头)
作者: soulsaga    时间: 2019-6-5 23:16
本帖最后由 soulsaga 于 2019-6-5 23:21 编辑
间桐樱 发表于 2019-6-5 22:31
前辈,脚本没有mp伤害吗...(悄悄冒头)


你用了HP吸收就没有MP吸收吧?
还是说你要把怪的MP都扣光?
这样也不会显示伤害..
作者: soulsaga    时间: 2019-6-5 23:23
RUBY 代码复制
  1. #--------------------------------------------------------------------------
  2.   # 伤害计算
  3.   #--------------------------------------------------------------------------
  4.   def make_damage_value(user, item)
  5.     value = item.damage.eval(user, self, $game_variables)
  6.     value *= item_element_rate(user, item)
  7.     value *= pdr if item.physical?
  8.     value *= mdr if item.magical?
  9.     value *= rec if item.damage.recover?
  10.     value = apply_critical(value, user) if @result.critical
  11.     value = apply_variance(value, item.damage.variance)
  12.     value = apply_guard(value)
  13. # HPMP吸收
  14.     value = self.hp;user.mp+=self.mp;self.mp-=self.mp if item.id = 66 and item.is_a?(RPG::Skill)
  15.     @result.make_damage(value.to_i, item)
  16.   end


这样做有什么意思呢..
作者: 间桐樱    时间: 2019-6-5 23:39
soulsaga 发表于 2019-6-5 23:23
#--------------------------------------------------------------------------
  # 伤害计算
  #-------- ...

唔,怎么说呢?是想要尽量还原利姆露的能力吧,暴食者就有将吞下物体还原成魔力的作用,等于hp、mp双吸收,咱之后还想尽量弄出个拟态(变身)能力,做出一个史莱姆大冒险
作者: 间桐樱    时间: 2019-6-6 16:31
本帖最后由 间桐樱 于 2019-6-6 17:25 编辑
soulsaga 发表于 2019-6-5 23:23
#--------------------------------------------------------------------------
  # 伤害计算
  #-------- ...


现在已经可以了前辈,hpmp双吸收,反正咱也看不到
作者: 2597070043    时间: 2019-7-10 03:43
谢谢大佬!




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