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

Project1

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

[RMVA发布] 鏖战的结果与大家分享

[复制链接]

Lv1.梦旅人

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

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

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

x
十分感谢tan12345给我启示。晚上,我在他提供的代码的基础之上进行增加,做出了一个新的功能:伤害反噬(对敌人的伤害使得自己也受到伤害)

以下是代码:
RUBY 代码复制
  1. class Game_Battler < Game_BattlerBase
  2.  
  3.   STATE_ID = 30   #能量逆流(状态ID,持有者的输出伤害变成治疗)
  4.   STATE_ID33 = 33   #反噬之炎(状态ID,持有者的伤害对自己同样有效)
  5.  
  6.   #--------------------------------------------------------------------------
  7.   # ● 计算伤害
  8.   #--------------------------------------------------------------------------
  9.   def make_damage_value(user, item)
  10.     value = item.damage.eval(user, self, $game_variables)
  11.     value *= item_element_rate(user, item)
  12.     value *= pdr if item.physical?
  13.     value *= mdr if item.magical?
  14.     value *= rec if item.damage.recover?
  15.     value = apply_critical(value) if @result.critical
  16.     value = apply_variance(value, item.damage.variance)
  17.     value = apply_guard(value)
  18.     if item.damage.to_hp? and user.state?(STATE_ID) and value > 0#如果伤害是体力值伤害而且伤害者拥有STATE_ID这种状态而且伤害量为正数
  19.       value = 0 - value#将输出伤害转为负数以实现治疗效果
  20.     end
  21.  
  22.  
  23.     if item.damage.to_hp? and user.state?(STATE_ID33) and value > 0 #如果伤害是体力值伤害而且伤害者拥有STATE_ID33这种状态而且伤害量为正数
  24.      user.hp -= value.to_i #直接扣除伤害者的生命值,达到反噬效果。注意,如果施展全屏魔法,则会受到多次反噬
  25.     end
  26.     @result.make_damage(value.to_i, item)
  27.   end
  28.  
  29. end


睡觉去吧!

评分

参与人数 1星屑 +100 收起 理由
怪蜀黍 + 100 基本的伤害计算修改方法

查看全部评分

游戏群组:https://rpg.blue/forum.php?mod=group&fid=565在这里你可以看到我在制作游戏过程中分享的内容。

Lv1.梦旅人

梦石
0
星屑
50
在线时间
58 小时
注册时间
2013-10-24
帖子
30
2
发表于 2013-11-4 13:21:34 | 只看该作者
能详细说说嘛?
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
105
在线时间
297 小时
注册时间
2009-1-7
帖子
216
3
 楼主| 发表于 2013-11-4 13:24:35 | 只看该作者
lc19801203 发表于 2013-11-4 13:21
能详细说说嘛?

行!晚上我下班后跟帖。
游戏群组:https://rpg.blue/forum.php?mod=group&fid=565在这里你可以看到我在制作游戏过程中分享的内容。
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
58 小时
注册时间
2013-10-24
帖子
30
4
发表于 2013-11-4 13:30:36 | 只看该作者
怎么设置这个 怎么使用啊。看起来很有用的样子。
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
58 小时
注册时间
2013-10-24
帖子
30
5
发表于 2013-11-4 13:37:21 | 只看该作者
timiesea 发表于 2013-11-4 13:24
行!晚上我下班后跟帖。

3Q.......
似乎意味着,
能建立一个拥有伤害反弹的血牛角色。
能建立一个拥有反噬的法师
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
9280
在线时间
2504 小时
注册时间
2011-5-20
帖子
15389

开拓者

6
发表于 2013-11-4 14:54:15 | 只看该作者
伤害反噬和特性能力的反弹有什么区别···
[img]http://service.t.sina.com.cn/widget/qmd/5339802982/c02e16bd/7.png
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
105
在线时间
297 小时
注册时间
2009-1-7
帖子
216
7
 楼主| 发表于 2013-11-4 16:56:16 | 只看该作者
chd114 发表于 2013-11-4 14:54
伤害反噬和特性能力的反弹有什么区别···

呃。因为我还没有去深究那些特性能力的功能,所以没看出有什么区别。不过我要实现的功能是在进行伤害输出时自己也会受到伤害,反弹的效果如何呢?
游戏群组:https://rpg.blue/forum.php?mod=group&fid=565在这里你可以看到我在制作游戏过程中分享的内容。
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
17 小时
注册时间
2013-10-30
帖子
98
8
发表于 2013-11-4 17:51:01 | 只看该作者
嗯,有这个可以实现 “刃甲”的效果啦~

点评

VA本来就有反弹的特性能力啊···  发表于 2013-11-9 15:53

一个人做游戏神马的最无聊了,喜欢6R的氛围,在这里和大家交流心得,下载游戏素材,各种吐槽,希望有一天我也能做出精品的游戏大作~
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
105
在线时间
297 小时
注册时间
2009-1-7
帖子
216
9
 楼主| 发表于 2013-11-4 21:51:01 | 只看该作者
嗯。不知道现在会不会太晚。现在就我这个帖子的效果做一个详细说明。

本帖主要涉及2个效果:伤害转变治疗;伤害对自身同样有效。

现在开始吧。先从第一个效果开始:

能量逆流:魔法。诺亚向敌人的身体涌入大量魔法能量造成逆流效果,使其强制进行普通攻击且伤害变成治疗。持续3回合。

技能思想:给目标附加一个BUFF,拥有这个BUFF的单位在战斗时只能强制进行普通攻击,并且所造成的伤害会转变为治疗。
强制攻击的实现靠特殊标志:自动战斗。伤害转变为治疗的实现靠修改代码。

第一步:创建一个技能:


值得注意的是:
1.解除的那4种状态的原因是因为那4种状态会使得目标不能强制攻击,为了避免浪费,所以解除了。
2.附加的状态下文说明。
3.其他的设置随意。

第二步:创建一个状态:


值得注意的是:
1.特性中,一定要有“自动战斗”的标志,这是让目标强制普通攻击的关键。
2.其他的设置随意。

第三步:找到关于造成伤害的方法:make_damage_value(user, item)(创建_伤害_数值(施放者,方法))


第四步:修改:
代码逻辑:方法中的value变量就是输出伤害了,知道这一点后我们可以这么想:准备要进行伤害输出的单位,如果是要造成体力值伤害,并且拥有这个BUFF,还要满足伤害为正数。满足这些条件后,用0减去value,得到的就是负伤害,就是加血了。
以上所说的三个条件需要查阅帮助文档或者翻看Game_Battler类才知道语法。
当知道语法后就可以在以下位置写入了:
(定义状态ID,位置在定义类的下一句)

注:位置在@result.make_damage(value.to_i, item)上一句,value = apply_guard(value)的下一句。因为前者的功能是执行伤害,写在下一句的话没有意义;后者则是判断目标是否处于防御状态,还在进行伤害数值的修正,写在上一句的话有可能背道而驰。

第五步:测试:
准备工作:
注:
1.队伍中一定要有被附加状态的角色,本例中是诺亚。
2.在战斗中,确定角色有附加BUFF时才考虑以下文字。

发动攻击时,当屏幕上显示如下文字时表示这个技能制作成功了。


囧:测试时发现,特殊标识:“自动战斗”并不是强制普通攻击,而是真的自动战斗,会施法会发动特技。不过还是达到预期的效果了,这个技能的描述改成:能量逆流:魔法。诺亚向敌人的身体涌入大量魔法能量造成逆流效果,使其强制战斗且伤害变成治疗。持续3回合。

紧接着第二个效果:

反噬之炎:魔法。阿奈思特对敌人造成100%魔法伤害并且在对敌人造成伤害时自己也会受到伤害。持续3回合。

第一到三步同上。

值得注意的是:
1.技能的使用效果请选择附加状态,附加这个技能的状态。至于是不是100%附加就随意了。
2.这个技能的状态特性栏中什么都不选,其他的随意。

第四步:修改:
代码逻辑:方法中的value变量就是输出伤害了,知道这一点后我们可以这么想:准备要进行伤害输出的单位,如果是要造成伤害(可以不限于体力值伤害),并且拥有这个BUFF,还要满足伤害为正数。满足这些条件后,当前单位的生命值减去value,就造成反噬效果了。

以上所说的三个条件需要查阅帮助文档或者翻看Game_Battler类才知道语法。
当知道语法后就可以在以下位置写入了:
需要先定义状态ID,同上。

注意事项同上。

第五步:测试:
准备工作:

1.队伍中一定要有被附加状态的角色,本例中是阿奈思特。
2.在战斗中,确定角色有附加BUFF且攻击之前生命值已满时才考虑以下文字。

发动攻击时,如果发现角色的生命值不满,说明扣减了生命值,达到了反噬的效果(虽然游戏里没有文字提示):


以上是2个效果的实现方法。

另外:建议不要修改默认代码,将要修改的类的class语句和end语句还有要修改的函数整体复制到新建的代码页,也可以将一楼的代码复制到新建的代码页。然后对新建的代码页进行修改即可(一楼的代码可以直接使用)。

突然发现自己好啰嗦啊!终于讲完了。

点评

怎么图片这么大啊?  发表于 2013-11-4 21:53
游戏群组:https://rpg.blue/forum.php?mod=group&fid=565在这里你可以看到我在制作游戏过程中分享的内容。
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
58 小时
注册时间
2013-10-24
帖子
30
10
发表于 2013-11-4 23:45:59 手机端发表。 | 只看该作者
阁下的意思就是,能量逆流等于把一个敌人变成自己的牧师。反噬就是,攻击者攻击目标的同时,攻击者自己也受伤害。
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-9-25 07:26

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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