Project1

标题: 怎么样制作一个吸收伤害的盾 [打印本页]

作者: zlpwb1666    时间: 2012-3-3 21:42
标题: 怎么样制作一个吸收伤害的盾
RT,类似于WOW中MS的盾那种。
吸收XXX点伤害值后消失dsu_plus_rewardpost_czw
作者: 黑化の鼠标    时间: 2012-3-4 15:16
= =.....挺简单的,在数据库的状态选项那里做一个状态,然后勾选受到一定伤害消失就好
如图

作者: tang19990919    时间: 2012-3-4 19:43
先制作一个物品【防护盾】,然后只能在战斗中使用,公共事件:给XX角色附加XX状态,状态就是1L的图,然后就OK拉
作者: zlpwb1666    时间: 2012-3-4 21:38
1L图的受到伤害时解除 100%
指的是   受到伤害后100%几率解除护盾
还是      受到MaxHP100%后解除护盾
??
还是……
作者: kapoleo    时间: 2012-3-5 10:32
黑化の鼠标 发表于 2012-3-4 15:16
= =.....挺简单的,在数据库的状态选项那里做一个状态,然后勾选受到一定伤害消失就好
如图
...

这个受到伤害时解除不是指被攻击并受伤后解除状态吗?
好像无法自由控制受到多少点伤害后才解除...........是吗?
作者: 迷糊的安安    时间: 2012-3-5 13:04
http://rpg.blue/forum.php?mod=viewthread&tid=221831

参考这个帖里脚本 举一反三……

他做的是金钱抵挡伤害,你改成盾变量抵挡伤害即可……
作者: shalicheng2    时间: 2012-3-6 10:33
做个增加血量的状态Buff,x回合后消失,可以实现这个功能,效果上可能还要下点功夫
作者: 迷糊的安安    时间: 2012-3-6 10:38
shalicheng2 发表于 2012-3-6 10:33
做个增加血量的状态Buff,x回合后消失,可以实现这个功能,效果上可能还要下点功夫 ...

一般这类盾类技能还有个特性:至少能抵挡1次攻击。
所以我觉得应该分成2部分。
一部分是完全无敌状态。第二部分是伤害判定,开启盾时,盾变量置数并同时赋予完全无敌状态,当总损血量大于盾变量时,完全无敌状态解除。

地图上的纯事件ARPG的话,倒是很轻松用2个公共事件能解决。 但是战斗场景公共事件没法并行,估计就只能靠脚本实现了。
作者: 杂兵天下    时间: 2012-3-6 10:47
本帖最后由 杂兵天下 于 2012-3-6 14:50 编辑

  1. module RPG
  2.   class UsableItem
  3.     def jiadunvalue
  4.       note.split(/[\r\n]+/).each { |line|
  5.         case line
  6.         when /<加盾:(\d+)>/i
  7.           return $1.to_i
  8.         end
  9.       }
  10.       return 0
  11.     end
  12.   end
  13. end
  14. class Game_Battler
  15.   def make_damage_value(user, item)
  16.     value = item.damage.eval(user, self, $game_variables)
  17.     value *= item_element_rate(user, item)
  18.     value *= pdr if item.physical?
  19.     value *= mdr if item.magical?
  20.     value *= rec if item.damage.recover?
  21.     value = apply_critical(value) if @result.critical
  22.     value = apply_variance(value, item.damage.variance)
  23.     value = apply_guard(value)
  24.     @dun = 0 if @dun.nil?
  25.     if item.damage.to_hp?
  26.       a = [value,@dun].min
  27.       value -= a
  28.       @dun -= a
  29.     end
  30.     @result.make_damage(value.to_i, item)
  31.   end
  32.   alias item_apply_dunval_zabing item_apply
  33.   def item_apply(user, item)
  34.     item_apply_dunval_zabing(user, item)
  35.     @dun += item.jiadunvalue
  36.   end
  37. end
复制代码
LZ,请直接伸手来拿把
作者: shalicheng2    时间: 2012-3-6 10:55
无敌了怎么损血,不受伤就没办法代人伤害数值,再加回去的话显示上就会有破绽,而且还是要在每个怪物组这里设置
作者: zlpwb1666    时间: 2014-2-4 15:47
杂兵天下 发表于 2012-3-6 10:47
LZ,请直接伸手来拿把

但是会显示对某某无效
是还需要在状态里设置什么么
作者: zlpwb1666    时间: 2014-2-4 15:48
杂兵天下 发表于 2012-3-6 10:47
LZ,请直接伸手来拿把

但是会显示对某某无效
是还需要在状态里设置什么么




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