设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 2070|回复: 2
打印 上一主题 下一主题

[已经解决] 伤害转变为治疗

[复制链接]

Lv1.梦旅人

梦石
0
星屑
105
在线时间
297 小时
注册时间
2009-1-7
帖子
216
跳转到指定楼层
1
发表于 2013-11-3 20:46:20 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
本帖最后由 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)的哪部分设置可以实现这个效果。

我是个新手,所以言简意赅,意喻明了对我来说是有莫大收获的。

往后我还可能有新的疑问,在此我先谢谢回帖的你们。
游戏群组:https://rpg.blue/forum.php?mod=group&fid=565在这里你可以看到我在制作游戏过程中分享的内容。

Lv3.寻梦者

梦石
0
星屑
3298
在线时间
1120 小时
注册时间
2009-4-15
帖子
815
2
发表于 2013-11-3 21:23:40 | 只看该作者
本帖最后由 tan12345 于 2013-11-3 21:26 编辑

1.中文帮助文档那个,你下载下来后双击打开会有个提示,你把那个勾选去掉,就可以看到内容而不是显示该页无法显示了。
2.你想实现这个需要脚本支持,起码数据库设定方面我暂时没想到怎么解决。至于脚本,如下(使用方法:插入到脚本(F11)main前面即可):
  1. class Game_Battler < Game_BattlerBase
  2.   
  3.   STATE_ID = 15   #你说的那个特殊状态的id号
  4.   
  5.   #--------------------------------------------------------------------------
  6.   # ● 计算伤害
  7.   #--------------------------------------------------------------------------
  8.   def make_damage_value(user, item)
  9.     value = item.damage.eval(user, self, $game_variables)
  10.     value *= item_element_rate(user, item)
  11.     value *= pdr if item.physical?
  12.     value *= mdr if item.magical?
  13.     value *= rec if item.damage.recover?
  14.     value = apply_critical(value) if @result.critical
  15.     value = apply_variance(value, item.damage.variance)
  16.     value = apply_guard(value)
  17.     if item.damage.to_hp? and user.state?(STATE_ID) and value > 0
  18.       value = 0 - value
  19.     end
  20.     @result.make_damage(value.to_i, item)
  21.   end
  22. end
复制代码
补充说明:修改了class Game_Battler类的make_damage_value(user, item)方法。

评分

参与人数 1梦石 +1 收起 理由
熊喵酱 + 1 认可答案 附赠66RPG提供的精美好人卡一张.

查看全部评分

回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
105
在线时间
297 小时
注册时间
2009-1-7
帖子
216
3
 楼主| 发表于 2013-11-3 21:36:53 | 只看该作者
tan12345 发表于 2013-11-3 21:23
1.中文帮助文档那个,你下载下来后双击打开会有个提示,你把那个勾选去掉,就可以看到内容而不是显示该页无 ...

经测试都可用。太感谢你了。
游戏群组:https://rpg.blue/forum.php?mod=group&fid=565在这里你可以看到我在制作游戏过程中分享的内容。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-11-17 06:48

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表