Project1
标题:
伤害转变为治疗
[打印本页]
作者:
timiesea
时间:
2013-11-3 20:46
标题:
伤害转变为治疗
本帖最后由 timiesea 于 2013-11-3 21:37 编辑
对于RPGMaker我一直有一种不解的情缘!原因是这系列软件在某些方面(仅仅是某些方面)比其他游戏引擎要简单,而且强大。特别是这款RPGMakerVXAce(以下简称Ace),简直DiaoZT(各位猜猜什么意思),不过对于有特殊需求的我们来说,功能又显得有些不足。
论坛有人已经将中文帮助文档共享,我在此感谢他们。我下载后打开发现没有一页是可以看的,全部显示:已取消到该网页的导航(换句话说是:该页无法显示)。是我的电脑问题还是文档出了问题呢?这个希望发布者能够看看。
言归正传。我创建了一个角色,拥有一个魔法,可以给敌人附加BUFF,拥有这个BUFF的单位对敌人(敌人的敌人,就是队友)造成的伤害(为了不让角色变态,后来还是决定只是普通攻击生效)转变为治疗。我在论坛寻觅良久后没有收获,并且论坛似乎没有帖子对Ace中默认代码的讲解,这让我困惑不已。我曾试过以下的方法:
1.新增一个技能名叫“攻击”,效果是增加敌人的体力值。拥有BUFF后删除原“攻击”,增加这个“攻击”,不过发现角色不能攻击了。
2.给1号“攻击”附加一个属性“治疗”,并且我设想所有角色的“治疗”抗性为负,结果发现完全不能设置为负值。
3.利用公共事件:我的设想是在敌人攻击的时候运行公共事件,敌人攻击时给我方全体成员增加一个能够100%闪避普通攻击的状态,当敌人攻击完毕后进行加血并且移除这个状态。但我发现在公共事件中没法获取攻击目标(或许是要用代码而我不知道吧),而且无法准确移除这个新的状态(也就是在一个公共事件中无法判定攻击是否生效)。
4.通过修改代码来实现:获取攻击者是否拥有BUFF,若有再修改攻击力使之为负,再修改代码使得拥有这个BUFF的角色可以对敌人造成负伤害。我在打开代码编辑器后立刻就两眼昏花了,尽管我是程序员,但是面对陌生的代码还是没什么办法。不仅如此,我竟然发现随软件下载的帮助文档竟然是日文的,不过还好不是韩文或者阿拉伯文,但读起来还是很困难很困难。
显然,以上方法全部杯具了。我只能来请教各位。
我请教如何实现,各位热心的好人可以从以下几个方面指导我:
1.其他替代的方案可以实现这个效果(方案涉及到的均给一下提示吧);
2.修改哪部分代码可以实现这个效果(修改后的代码最好给出来吧);
3.修改数据库(F9)的哪部分设置可以实现这个效果。
我是个新手,所以言简意赅,意喻明了对我来说是有莫大收获的。
往后我还可能有新的疑问,在此我先谢谢回帖的你们。
作者:
tan12345
时间:
2013-11-3 21:23
本帖最后由 tan12345 于 2013-11-3 21:26 编辑
1.中文帮助文档那个,你下载下来后双击打开会有个提示,你把那个勾选去掉,就可以看到内容而不是显示该页无法显示了。
2.你想实现这个需要脚本支持,起码数据库设定方面我暂时没想到怎么解决。至于脚本,如下(使用方法:插入到脚本(F11)main前面即可):
class Game_Battler < Game_BattlerBase
STATE_ID = 15 #你说的那个特殊状态的id号
#--------------------------------------------------------------------------
# ● 计算伤害
#--------------------------------------------------------------------------
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) if @result.critical
value = apply_variance(value, item.damage.variance)
value = apply_guard(value)
if item.damage.to_hp? and user.state?(STATE_ID) and value > 0
value = 0 - value
end
@result.make_damage(value.to_i, item)
end
end
复制代码
补充说明:修改了class Game_Battler类的make_damage_value(user, item)方法。
作者:
timiesea
时间:
2013-11-3 21:36
tan12345 发表于 2013-11-3 21:23
1.中文帮助文档那个,你下载下来后双击打开会有个提示,你把那个勾选去掉,就可以看到内容而不是显示该页无 ...
经测试都可用。太感谢你了。
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X3.1