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

Project1

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

请教 状态附加成功率的公式 和 属性修正值

 关闭 [复制链接]

Lv1.梦旅人

梦石
0
星屑
65
在线时间
13 小时
注册时间
2008-1-11
帖子
330
跳转到指定楼层
1
发表于 2008-12-4 18:07:27 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
#--------------------------------------------------------------------------
  # ● 获取状态附加成功率
  #     state_id : 状态 ID
  #--------------------------------------------------------------------------
  def state_probability(state_id)
    if $data_states[state_id].nonresistance
      return 100
    else
      rank = self.class.state_ranks[state_id]
      return [0,100,80,60,40,20,0][rank]
    end
  end



return [0,100,80,60,40,20,0][rank]  这行应该是成功率返回的值```我想问的是,计算成功率的公式在哪里??? 如何判断返回哪个值? (0,100,80,60,40,20,0)


第2个问题

def element_rate(element_id)
    rank = self.class.element_ranks[element_id]
    result = [0,200,150,100,50,0,-100][rank]
    for armor in armors.compact
      result /= 2 if armor.element_set.include?(element_id)
    end
    for state in states
      result /= 2 if state.element_set.include?(element_id)
    end
    return result
  end

上面的result = [0,200,150,100,50,0,-100][rank]

怎么有2个0??

在属性里的A B C D E F,和这6个数,是不是和[0,200,150,100,50,0依次按顺序对应?
最后的那个-100又是什么意思?


第3个问题



如图,防具中的属性防御,如果打勾,那默认就是抵抗该属性的50%,这个50%的值在哪改?如果我想改成 20% 40% 60% 80%等等多个分阶```能改吗?




此贴于 2008-12-8 14:35:15 被版主八云紫提醒,请楼主看到后对本贴做出回应。
版务信息:本贴由楼主自主结贴~

Lv2.观梦者

天仙

梦石
0
星屑
620
在线时间
184 小时
注册时间
2008-4-15
帖子
5023

贵宾

2
发表于 2008-12-4 20:52:17 | 只看该作者
第一个问题:这是利用了数组的特性,使用他的index来形成分歧
http://rpg.blue/viewthread.php?tid=69312

第二个问题:第一个0是为了防错,实际上不会用到,跟上一题一样
而那个-100代表会吸收(也就是反伤害)

第三个问题:答案就在你第二题里面贴出的脚本中
那个/2
for armor in armors.compact
  result /= 2 if armor.element_set.include?(element_id)
end
别忘了 50% 等於 1/2
如果要变成 20% 就把 2 改成 5
你也可以用

50%:
result *= 1/2 if armor.element_set.include?(element_id)

30%
result *= 30/100 if armor.element_set.include?(element_id)

12.5%
result *= (12.5/100).to_i if armor.element_set.include?(element_id)

就看你怎麽变化
系统信息:本贴由楼主认可为正确答案,66RPG感谢您的热情解答~
VA脚本开工中...
偷窃脚本1.0 - 已完成
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
65
在线时间
13 小时
注册时间
2008-1-11
帖子
330
3
 楼主| 发表于 2008-12-4 21:12:31 | 只看该作者
以下引用snstar2006于2008-12-4 12:52:17的发言:

第一个问题:这是利用了数组的特性,使用他的index来形成分歧
http://rpg.blue/viewthread.php?tid=69312

第二个问题:第一个0是为了防错,实际上不会用到,跟上一题一样
而那个-100代表会吸收(也就是反伤害)

第三个问题:答案就在你第二题里面贴出的脚本中
那个/2
for armor in armors.compact
result /= 2 if armor.element_set.include?(element_id)
end
别忘了 50% 等於 1/2
如果要变成 20% 就把 2 改成 5
你也可以用

50%:
result *= 1/2 if armor.element_set.include?(element_id)

30%
result *= 30/100 if armor.element_set.include?(element_id)

12.5%
result *= (12.5/100).to_i if armor.element_set.include?(element_id)

就看你怎麽变化


[本贴由作者于 2008-12-4 12:55:31 最后编辑]




明白了,针对第3个问题.如果我想把20% 40% 60%都设进去,好像没有办法改了吧??

因为在数据库的里面,只能选择打勾和空,那就是只能是2种情况了....



回复 支持 反对

使用道具 举报

Lv2.观梦者

天仙

梦石
0
星屑
620
在线时间
184 小时
注册时间
2008-4-15
帖子
5023

贵宾

4
发表于 2008-12-4 21:49:38 | 只看该作者
恩,默认情况是不能的,除非用备注去设置
VA脚本开工中...
偷窃脚本1.0 - 已完成
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
65
在线时间
13 小时
注册时间
2008-1-11
帖子
330
5
 楼主| 发表于 2008-12-4 21:52:16 | 只看该作者
以下引用snstar2006于2008-12-4 13:49:38的发言:

恩,默认情况是不能的,除非用备注去设置



用备注的话,就是要重定义 result *= 1/2 if armor.element_set.include?(element_id) 了吧? 具体要怎么写,麻烦吗?{/fd}
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2025-1-9 01:26

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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