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

Project1

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

[已经解决] 伤害统计

[复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
274 小时
注册时间
2013-12-14
帖子
113
跳转到指定楼层
1
发表于 2014-10-20 03:05:45 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
制作技能需要用到对自身伤害数值的统计
那么,如何实现每回合或者每几回合统计一次自身受到的伤害数值,技能使用之后,伤害数值清空,然后重新累计计算。

Lv3.寻梦者

闇吼者の災悪眷族
不気味存在締造者

梦石
0
星屑
1366
在线时间
2881 小时
注册时间
2014-7-29
帖子
6491
2
发表于 2014-10-20 11:54:35 | 只看该作者
本帖最后由 三途亚梦 于 2014-10-20 11:56 编辑

这种类似反伤的伤害统计做起来其实挺麻烦的……说实在的……

纯事件能做但是很麻烦而且存在缺陷还麻烦。

我还是告诉你脚本的做法吧

你现在Game_Battler的348行附近找到 “计算伤害”

然后在如下指出的约358 和 359行之间
  1. value = apply_guard(value)
  2. @result.make_damage(value.to_i, item)
复制代码
加下面这么一段
  1.     if self == $game_actors[1]
  2.       $game_variables[1] += value.to_i
  3.     end
复制代码
它的意思是如果受到伤害的角色是“艾里克”那么将艾里克受到的伤害累计入变量1之中

然后你设计这么一个技能
它的计算公式中这么写
  1. value = v[1];v[1] = 0;value
复制代码
它的意思是令这个技能的计算式(也就是value) = 变量1
然后令变量1变成0
最后计算伤害(也就是变量1变成0以前的数值)
如果你要调整这个技能的计算公式,在第一个value = 后面写就可以了。

比如 value = v[1]*2 -b.def;v[1] = 0;value
这样就是艾里克受到伤害的2倍减去被攻击者的防御了。

点评

還有~還有~我想把"累计"改成"本回合受到的物理攻擊的傷害",即係敵人先攻的話,$Counter=xxx,敵人后攻的話,$Counter=0  发表于 2014-10-20 13:42
把$game_actors[1]改成$game_members[0]应该就可以了,未测试  发表于 2014-10-20 13:38
我想改成"如果受到伤害的角色是“隊長”那么将隊長受到的伤害累计入$Counter之中,請問要怎样改呢?  发表于 2014-10-20 13:35
我实测是可行的了,如果有问题请点评,趴_(:з」∠)_  发表于 2014-10-20 11:59

评分

参与人数 1梦石 +1 收起 理由
taroxd + 1 $game_party.leader

查看全部评分

回复 支持 反对

使用道具 举报

Lv3.寻梦者

闇吼者の災悪眷族
不気味存在締造者

梦石
0
星屑
1366
在线时间
2881 小时
注册时间
2014-7-29
帖子
6491
3
发表于 2014-10-20 14:00:13 | 只看该作者
還有~還有~我想把"累计"改成"本回合受到的物理攻擊的傷害",即係敵人先攻的話,$Counter=xxx,敵人后攻的話,$Counter=0


本来默认系统里就没有区分“物理”和“非物理”伤害就是伤害。只把atk造成的伤害给记录下来就更复杂了……

如果技能不存在复合伤害(也就是公式同时存在 atk和mat)
那么做起来还简单一些,你只要写一个数组判断这个技能是在“物理技能”中还是在“魔法技能”中就可以把记录做下来。

至于攻击先后手这个很好解决的,
你只要在加一个每回合都执行的事件,在回合开头将变量归零就行。

@david_ng223  
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-15 04:12

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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