查看: 1907|回复: 6

[已经解决] 属性防御的修正值问题

  [复制链接]
梦石
0
星屑
50
在线时间
82 小时
注册时间
2010-6-22
回帖
22
发表于 2011-6-3 23:10:21 | 显示全部楼层 |阅读模式

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

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

×
未命名.PNG
系统默认的属性防御就像防御那样是1/2伤害,
我想把属性防御改为完全防御该属性,也就是把修正值改为0
不过那句脚本语言在哪啊?rtab的,找不到
梦石
0
星屑
253
在线时间
574 小时
注册时间
2006-8-25
回帖
772
发表于 2011-6-3 23:55:30 | 显示全部楼层
Game_Actor类
    # 获取对应属性有效度的数值
    table = [0,200,150,100,50,0,-100]
改成
    # 获取对应属性有效度的数值
    table = [0,200,150,100,0,0,-100],那样一件装备属性防御伤害就变成0%
回复

使用道具 举报

梦石
0
星屑
50
在线时间
82 小时
注册时间
2010-6-22
回帖
22
 楼主| 发表于 2011-6-4 00:05:49 | 显示全部楼层
jhhuang 发表于 2011-6-3 23:55
Game_Actor类
    # 获取对应属性有效度的数值
    table = [0,200,150,100,50,0,-100]

那个状态也有效吗?我就是要弄一个绝对防御的状态
回复

使用道具 举报

梦石
0
星屑
253
在线时间
574 小时
注册时间
2006-8-25
回帖
772
发表于 2011-6-4 00:11:26 | 显示全部楼层
本帖最后由 jhhuang 于 2011-6-4 00:12 编辑
老夫子 发表于 2011-6-4 00:05
那个状态也有效吗?我就是要弄一个绝对防御的状态


比如说1件装备火属性防御,那么火属性防御+1
1个状态火属性防御+1
一共+2
[0,200,150,100,50,0,-100]
伤害就是0%这样算的.
火伤害攻击有效1级150%伤害,有效2级,就200%.

鸟解?

PS:注意上面公式= =如果火属性防御达到3级(比如2件火防装+1个火防状态.),那么伤害会变成负100%,伤害变成补血
回复

使用道具 举报

梦石
0
星屑
50
在线时间
63 小时
注册时间
2008-11-20
回帖
43
发表于 2011-6-4 00:30:38 | 显示全部楼层
楼上……假若我们使用默认的elements_rate
table = [0,200,150,100,50,0,-100]
从装备/状态上获得的属性防御,不是如你所说的那么计算……
用你举的例子,一个火属性魔法,打某人(该人物的火属性有效度=C[100%])
假定伤害为 1000
这个人穿着盔甲,赋予火属性防御  ----->   受到伤害 500
这个人被附加状态,火属性防御    ------>  受到伤害 250
这个人又穿着一盾牌,赋予火属性防御 -->  受到伤害 125

综上可以得到结论:
属性防御,所做的是根据 table里面 D 等级的数量进行修正,每次防御多修正一次。
上述例子有3件火属性防御(注意,并非人物设置里面的那个等级,而是装备/状态栏划勾的属性防御)
则,对于1000点火属性伤害进行属性修正:
根据table D [50%] 3次修正
1000*0.5*0.5*0.5 = 125

点评

额...忘记职业界面设置的属性有效读了.刚看了下脚本,上面写错鸟= =  发表于 2011-6-4 00:45

评分

参与人数 1星屑 +200 梦石 +2 收起 理由
「旅」 + 200 + 2

查看全部评分

回复

使用道具 举报

梦石
0
星屑
253
在线时间
574 小时
注册时间
2006-8-25
回帖
772
发表于 2011-6-4 00:46:37 | 显示全部楼层
本帖最后由 jhhuang 于 2011-6-4 00:52 编辑
老夫子 发表于 2011-6-4 00:05
那个状态也有效吗?我就是要弄一个绝对防御的状态


越是了解深入的东西...过往的基础就忘记了= =
上面那个发错了...那个是职业代入的属性有效度伤害.
下面那句
    # 状态能防御本属性的情况下效果减半
    for i in @states
      if $data_states.guard_element_set.include?(element_id)
        result /= 2
      end
    end
----------------------------------------------------
result /= 2
改成
result = 0


Game_Enemy类是敌人的,也是
result /= 2
改成
result = 0



[0,200,150,100,50,0,-100]
这东西是人物职业或敌人设置的属性有效度....
A=200%B=150%C=100%D=50E=0F=负100%
就是当受到那个属性时受到的伤害.

点评

你也答得很认真,不过我今天没分了  发表于 2011-6-4 14:05

评分

参与人数 1星屑 +200 梦石 +2 收起 理由
「旅」 + 200 + 2

查看全部评分

回复

使用道具 举报

梦石
0
星屑
7095
在线时间
1666 小时
注册时间
2008-10-29
回帖
6612

贵宾

发表于 2011-6-4 01:06:50 | 显示全部楼层
本帖最后由 后知后觉 于 2011-6-4 11:51 编辑

那个 table 只是给 属性有效度 用的
属性防御是直接 / 2 的.

全局搜索(Shift+Ctrl+F)
  1. def element_rate
复制代码
默认情况下能搜索到2个结果.一个角色的.一个敌人的.
在角色的定义里有2行  
result /= 2

把这2行 result /= 2 改成
  1. result = 0;break
复制代码
而在敌人的定义里就只有1行.因为敌人没有状态防御.但有属性防御.
把敌人的那行 result /= 2 也改成上面那样.
当然了.你用的不是默认系统.所以在搜索出来不只2个结果的时候就需要在更靠近 Main 的地方进行修改.
不过要注意这个 result 是百分比 而不是直接值.
这样直接设置为 0 的话 虽然直接结果是等于 0 了.
不过也把 其他的一些 伤害吸收(加血)的效果给屏蔽了(同时携带时).
该怎么改你自己试试吧.

点评

很好,我知道为什么找不到那句了……因为rtab里根本没这句……看来我死板了,谢谢  发表于 2011-6-4 14:03
你知道得太多了 (好吧= =我表示我偷懒了.)  发表于 2011-6-4 11:10

评分

参与人数 2星屑 +202 梦石 +2 收起 理由
「旅」 + 200 + 2
老夫子 + 2 认可答案

查看全部评分












你知道得太多了

回复

使用道具 举报

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

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部