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

Project1

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

[RMVA发布] 调整属性抵抗计算方式,允许吸收

[复制链接]

Lv5.捕梦者 (版主)

遠航の猫咪

梦石
3
星屑
22472
在线时间
2336 小时
注册时间
2005-10-15
帖子
1160

开拓者

跳转到指定楼层
1
发表于 2012-4-12 17:59:58 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

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

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

x
上次看到是谁让猫儿转战VA来着……
下下来玩了一下,发现不能像XP和VX那样设置属性有效度,特别是属性无法被吸收。觉得不爽就改了一下。
插入Main前使用

  1. #==============================================================================
  2. # ■ 修改属性设置,允许属性吸收等效果
  3. #------------------------------------------------------------------------------
  4. #   RPG VX Ace默认不允许属性被吸收,最低的属性有效度为0,最高为10倍(可叠乘)
  5. #  本脚本的原理:将属性设置的叠乘计算改为叠加计算,从而允许属性吸收效果
  6. #   数据库设置:
  7. #     1.当只有1条属性抵抗起作用时,和原来的算法相同
  8. #     2.当有多条属性抵抗起作用时,其效果倍率各自减100%后叠加计算,
  9. #       如“[冰]*200”和“[冰]*250”叠加的效果为“[冰]*350”
  10. #       如“[冰]*150”和“[冰]*50”叠加的效果为“[冰]*100”
  11. #     3.现在“某属性*0”的效果为倍率-1,所以如果要实现属性100%吸收,可如下设置
  12. #       “[冰]*0”和“[冰]*0”叠加,效果即为倍率减2,即“[冰]*-100”
  13. #       类似的,若“[冰]*0”三重叠加,效果即为倍率减3,即“[冰]*-200”,双倍吸收
  14. #     4.如果要实现属性X%吸收(X<100),可如下设置
  15. #       “[冰]*0”和“[冰]*(100-x)”叠加
  16. #==============================================================================

  17. class Game_BattlerBase
  18.   #--------------------------------------------------------------------------
  19.   # ● 计算属性抵抗
  20.   #--------------------------------------------------------------------------
  21.   def features_elem(code, id)
  22.     features_with_id(code, id).inject(1.0) {|r, ft| r += ft.value - 1}
  23.   end
  24.   #--------------------------------------------------------------------------
  25.   # ● 获取属性抗性
  26.   #--------------------------------------------------------------------------
  27.   def element_rate(element_id)
  28.     features_elem(FEATURE_ELEMENT_RATE, element_id)
  29.   end
  30. end

  31. class Game_Battler
  32.   #--------------------------------------------------------------------------
  33.   # ● 获取属性的最大修正值,返回所有属性中最有效的一个
  34.   #     elements : 属性 ID 数组
  35.   #--------------------------------------------------------------------------
  36.   def elements_max_rate(elements)
  37.     elements.inject([]) {|r, i| r.push(element_rate(i)) }.max
  38.   end  
  39. end

  40. module Vocab

  41.   ActorDrainRev = "%s逆向吸取了%s点%s!"
  42.   EnemyDrainRev = "%s逆向吸取了%s点%s!"

  43. end

  44. class Game_ActionResult
  45.   alias sailcat_hp_damage_text hp_damage_text
  46.   alias sailcat_mp_damage_text mp_damage_text
  47.   #--------------------------------------------------------------------------
  48.   # ● 获取 HP 伤害的文字
  49.   #--------------------------------------------------------------------------
  50.   def hp_damage_text
  51.     if @hp_drain < 0
  52.       fmt = @battler.actor? ? Vocab::ActorDrainRev : Vocab::EnemyDrainRev
  53.       sprintf(fmt, @battler.name, -@hp_drain, Vocab::hp)
  54.     else
  55.       sailcat_hp_damage_text
  56.     end
  57.   end
  58.   #--------------------------------------------------------------------------
  59.   # ● 获取 MP 伤害的文字
  60.   #--------------------------------------------------------------------------
  61.   def mp_damage_text
  62.     if @mp_drain < 0
  63.       fmt = @battler.actor? ? Vocab::ActorDrainRev : Vocab::EnemyDrainRev
  64.       sprintf(fmt, @battler.name, -@mp_drain, Vocab::mp)
  65.     else
  66.       sailcat_mp_damage_text
  67.     end
  68.   end
  69. end
复制代码
附一张角色[吸收]属性为-100%时,被吸血鬼吸血的效果

评分

参与人数 2星屑 +36 收起 理由
swbxhlh + 24 太赞了,就在找这个。
wangswz + 12 VA也有不少退步的地方

查看全部评分

SailCat (小猫子·要开心一点) 共上站 24 次,发表过 11 篇文章 上 次 在: [2006年01月28日11:41:18 星期六] 从 [162.105.120.91] 到本站一游。
您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

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

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

GMT+8, 2024-5-4 15:21

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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