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

Project1

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

[已经解决] 伤害公式的疑问

[复制链接]

Lv1.梦旅人

梦石
0
星屑
70
在线时间
6 小时
注册时间
2018-3-16
帖子
5
跳转到指定楼层
1
发表于 2018-3-21 02:12:58 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

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

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

x
a.state?(1)? 200:300 *(b.state?(2)?a.add_state(3)+ 2:1)

如果持有1号状态则200伤害反之300伤害
且目标如果有2号状态  则自己会附加3号状态 然后再给予两倍伤害 反之不变

这段如果目标有2号状态伤害会变成0   请问怎么让句子实行?

Lv3.寻梦者

梦石
0
星屑
1345
在线时间
378 小时
注册时间
2015-6-16
帖子
571
2
发表于 2018-3-21 12:27:23 | 只看该作者
本帖最后由 300英雄 于 2018-3-21 12:31 编辑

在 Game_Battler里面找到下面的东西
  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) #防御修正



=begin #若=begin是蓝色把这行最靠左,绿色是正常
解释参数
user使用者
self目标
state?(1)持有1号状态 :user.state?(1) 或者self.state?(1)
add_state(1)添加一号状态 :user.add_state(1)或者self.add_state(1) add改为remove就是移除
value是伤害
item.id物品/技能的ID
item.is_a?(RPG::Skill) 判定是不是技能Skill改成Item就是判定是不是物品
if
end
一个if判定后面要跟一个end ,if怎么样end结束else是否则
=end#若=end是蓝色把这行最靠左,绿色是正常(不懂看图,蓝不正常,绿才对)


#你要的效果
if item.id == X and item.is_a?(RPG::Skill) #修改X为你的技能ID 如果发现效果有什么不对
if user.state?(1) #如果有1号状态

value = 200 #value就是伤害=200
else
if self.state?(2) #同理持有2号状态
user.add_state(3)
value =600
else
value = 300
end

end
end
#结束效果











    @result.make_damage(value.to_i, item)
  end

QQ截图20180321122508.png (4.78 KB, 下载次数: 16)

begin和end

begin和end
P1不太上了,有问题加个Q1286124843,不管是脚本还是游戏问题都可以来找我
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1345
在线时间
378 小时
注册时间
2015-6-16
帖子
571
3
发表于 2018-3-21 12:31:58 | 只看该作者
补充一下,如果发现伤害没变(离散度,抗性,类型伤害等等都是看基础设置在技能公式基础来算的话),上面基础伤害一直到防御修正全部移到效果的下面就行
P1不太上了,有问题加个Q1286124843,不管是脚本还是游戏问题都可以来找我
回复 支持 反对

使用道具 举报

Lv6.析梦学徒

老鹰

梦石
40
星屑
33387
在线时间
6550 小时
注册时间
2012-5-26
帖子
3178

极短24评委极短23参与极短22参与极短21评委老司机慢点开短篇十吟唱者组别冠军开拓者剧作品鉴家

4
发表于 2018-3-21 13:46:39 | 只看该作者
改成这样?
  1. a.state?(1) ? 200 : (300 * (b.state?(2) ? (a.add_state(3); 2) : 1))
复制代码
回复 支持 1 反对 0

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
70
在线时间
6 小时
注册时间
2018-3-16
帖子
5
5
 楼主| 发表于 2018-3-21 17:26:35 | 只看该作者
谢谢楼上两位帮助 顺利解决了

点评

但是技能栏里面和其他的一样,有内置的字数限制,所以当时我就去学了伤害公式,解决了这个内置公式字数的限制:从数据库——脚本(没有限制)  发表于 2018-3-22 12:01
百里大大的方法适合新手:缺点是太占用了技能公式栏,我那个方法知道参数就可以随意设置没有限制,就算你伤害为10000个亿的9也不会限制。  发表于 2018-3-22 12:00
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-4-19 15:57

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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