查看: 2370|回复: 4

[已经解决] 特技勾选两个属性有效度会无效诶

[复制链接]
梦石
0
星屑
460
在线时间
49 小时
注册时间
2008-11-30
回帖
93
发表于 2019-1-28 11:37:54 | 显示全部楼层 |阅读模式

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

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

×
本帖最后由 a2523496 于 2019-1-28 11:47 编辑

一个特技勾选了两个属性的话  敌方的属性有效度只有ABC有效果 DEF就无效了
在论坛搜了一遍只有vx的多属性脚本 xp没有 呜呜
或者有什么办法     不让某几个属性不计算入伤害吗
在战斗计算公式那边的属性修正 写
if 属性ID = 几时
不计算这个属性有效度
end
之类的?
梦石
0
星屑
3670
在线时间
357 小时
注册时间
2018-9-4
回帖
261
发表于 2019-1-28 13:10:00 | 显示全部楼层
本帖最后由 Mono_kyrin 于 2019-1-28 13:23 编辑

Game_Actor 第107行
Game_Enemy 第118行
还有Game_Battler的334行
这几个地方都有定义属性相关方法
举个例子,Game_Enemy:
[pre lang="ruby"]#--------------------------------------------------------------------------
  # ● 获取属性修正值
  #     element_id : 属性 ID
  #--------------------------------------------------------------------------
  def element_rate(element_id)
    # 获取对应属性有效度的数值
    table = [0,200,150,100,50,0,-100]
    result = table[$data_enemies[@enemy_id].element_ranks[element_id]]
    # 状态能防御本属性的情况下效果减半
    for i in @states
      if $data_states.guard_element_set.include?(element_id)
        #-----------------------------------修改部分-------------------------------------------------
        unless i == #这里是你不想计算的属性id
          result /= 2
        end
        #-----------------------------------修改结束-------------------------------------------------
      end
    end
    # 过程结束
    return result
  end[/pre]
叠加属性的脚本这里有个樱雅大的版本:
[pre lang="ruby"]# ▼▲▼ XRXS38. 属性修正计算数限制 ▼▲▼ built 081012
# by 桜雅 在土 (原作)
#    Tetra-Z   (強化)
#==============================================================================
# 简介:此脚本会将“系统默认的属性修正”和“战斗特殊效果属性”分开计算;
#       插入此脚本后,“战斗特殊效果属性”将“不计算属性有效度”。
#==============================================================================
# □ カスタマイズポイント
#==============================================================================
module XRXS38
  # 属性的限制数量
  ELEMENTS_NUMBER_LIMIT = 23
  # 属性修正的计算方法
  #        0 : 最大(默认的计算方法)
  #        1 : 乘法
  #        2 : 平均
  #        3 : 最小
  ELEMENT_CORRECT_METHOD = 1
end
#==============================================================================
# ■ Game_Battler
#==============================================================================
class Game_Battler
#--------------------------------------------------------------------------
# ● 属性修正的计算 + 倍率计算公式
#--------------------------------------------------------------------------
  alias xrxs38_elements_correct elements_correct
  def elements_correct(element_set)
    elements = element_set.dup
    # 属性数量的限制
    for element_id in element_set
      if element_id >XRXS38:: ELEMENTS_NUMBER_LIMIT
        elements.delete(element_id)
      end
    end
    #无属性的场合返回100
    return 100 if elements.size == 0
    #
    case XRXS38::ELEMENT_CORRECT_METHOD
    when 0 # 最大
      return xrxs38_elements_correct(elements)
    when 1 # 乘法
      result = 100.0
      minus_enable = false
      for i in elements
        n = self.element_rate(i)
        minus_enable |= (n < 0)
        result *= n / 100.0
      end
      result = -1 * result.abs if minus_enable
      return result.to_i
    when 2 # 平均
      rates = []
      result = 0
      for i in elements
        rates.push(self.element_rate(i))
      end
      for rate in rates
        result += rate
      end
      return result / rates.size
    when 3 # 最小
      for i in elements
        n = self.element_rate(i)
        result = n if result.nil? or result > n
      end
      return result
    end
  end  
end

[/pre]

评分

参与人数 1星屑 +80 赞 +1 收起 理由
RyanBern + 80 + 1 认可答案

查看全部评分

回复

使用道具 举报

梦石
0
星屑
9557
在线时间
5074 小时
注册时间
2013-6-21
回帖
3459

开拓者贵宾剧作品鉴家

发表于 2019-1-29 10:37:38 | 显示全部楼层
XP 默认代码中,如果技能有两个或两个以上属性,当计算敌人属性有效度时,将返回“最弱的”属性。例如技能是【火】【风】属性,敌人对火的抗性是【E】,对风的抗性是【B】,对风抗性更弱,所以计算时就算火抗是 E 依然会受到 150% 的伤害。

修改计算方式可以看 2 楼的脚本。
回复

使用道具 举报

梦石
0
星屑
460
在线时间
49 小时
注册时间
2008-11-30
回帖
93
 楼主| 发表于 2019-1-29 18:48:34 | 显示全部楼层
RyanBern 发表于 2019-1-29 10:37
XP 默认代码中,如果技能有两个或两个以上属性,当计算敌人属性有效度时,将返回“最弱的”属性。例如技能 ...

啊啊看到了 谢谢你们
回复

使用道具 举报

梦石
0
星屑
460
在线时间
49 小时
注册时间
2008-11-30
回帖
93
 楼主| 发表于 2019-1-29 18:51:44 | 显示全部楼层
Mono_kyrin 发表于 2019-1-28 13:10
Game_Actor 第107行
Game_Enemy 第118行
还有Game_Battler的334行

问题解决了诶! 谢谢热心的你 嘻嘻
回复

使用道具 举报

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

本版积分规则

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

在本版发帖返回顶部