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

Project1

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

[已经过期] 想請教VA有沒有辦法做到限制抗性上限

[复制链接]

Lv3.寻梦者

梦石
0
星屑
1048
在线时间
105 小时
注册时间
2016-6-24
帖子
45
跳转到指定楼层
1
发表于 2021-2-2 23:43:33 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
想請教各位大佬

我做了多個能夠抵抗特定元素屬性的裝備

但若是全部穿在身上,就能夠實現這個屬性無傷的效果

這樣又過於霸道

但是裝備名稱就是耐火裝 耐火手套這樣 數值調太低又顯得沒有抵抗的感覺

不知道是否能夠做到即使穿上全身抗火裝,但是身上的火屬性抗性最大值還是只能抵抗50%的類似這種效果

Lv5.捕梦者

梦石
0
星屑
26259
在线时间
5354 小时
注册时间
2016-3-8
帖子
1655
2
发表于 2021-2-3 11:46:16 | 只看该作者
本帖最后由 alexncf125 于 2021-2-3 12:14 编辑

咱们搜属性抗性,搜到:
  1. #---------------------------------------------- ----------------------------
  2.   # ● 获取属性抗性
  3.   #------------------------------------------------- -------------------------
  4.   def element_rate(element_id)
  5.     features_pi(FEATURE_ELEMENT_RATE, element_id)
  6.   end
复制代码

接着搜features_pi,搜到:
  1. #---------------------------------------------- ----------------------------
  2.   # ● 计算特性值的乘积
  3.   #------------------------------------------------- -------------------------
  4.   def features_pi(code, id)
  5.     features_with_id(code, id).inject(1.0) {|r, ft| r *= ft.value }
  6.   end
复制代码

咱们p一下ft,p出它有code, data_id, value这三个,其中data_id就是属性的ID
火属性的ID是3,那咱把代码改成这样子:
def features_pi(code, id)
  features_with_id(code, id).inject(1.0) {|r, ft|
  if ft.data_id == 3
    [r *= ft.value, 0.5].max
  else
    r *= ft.value
  end
  }
end
改好后就会发现, 火属性抗性最大值只能抵抗50%了

不足之处就是...
不只装备, 其他会影响火属性抗性的都不会低过50%...
敌人的火属性抗性都不会低过50%...
然而我不懂得如何改下去了...
也或许我的思路从根本上就错误了...

点评

唔 真糟糕,會連同敵人也一起被限制嗎  发表于 2021-2-4 00:03
回复 支持 反对

使用道具 举报

Lv5.捕梦者

梦石
0
星屑
26259
在线时间
5354 小时
注册时间
2016-3-8
帖子
1655
3
发表于 2021-2-4 01:07:44 | 只看该作者
本帖最后由 alexncf125 于 2021-2-4 01:09 编辑
唔 真糟糕,會連同敵人也一起被限制嗎

啊~现在才想起...这个类是Game_BattlerBase
那么可以改成这样子:

def features_pi(code, id)
  features_with_id(code, id).inject(1.0) {|r, ft|
  if ft.data_id == 3 && self.actor?
    [r *= ft.value, 0.5].max
  else
    r *= ft.value
  end
  }
end

ps.依旧是不只装备, 其他会影响火属性抗性的都不会低过50%...
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
6160
在线时间
793 小时
注册时间
2019-1-20
帖子
204
4
发表于 2021-2-8 18:47:55 | 只看该作者
本帖最后由 srwjrevenger 于 2021-2-10 17:25 编辑
alexncf125 发表于 2021-2-4 01:07
啊~现在才想起...这个类是Game_BattlerBase
那么可以改成这样子:


用 features_pi 计算特性值的乘积的不止有属性抗性,所以还要加上判断特性的种类,
还有,判断特性值上限得在块外面,且限制上限得用min而不是max吧?

### 那里的判定我去掉了“&& id == 3”只是单纯觉得应该保持平衡,如果有需要的人可以自己加上,
另外如果把那一行再改一下加上其它判断条件,可以实现不同属性抗性的上限不一样

可能写的不是很对,欢迎各位大佬改正
果然错了T - T 属性抗性记错成减的了
留下黑历史给各位警示... ...

  1. class Game_BattlerBase
  2. alias orz_features_pi features_pi
  3. def features_pi(code, id)
  4. orz_features_pi(code, id)
  5. val= features_with_id(code, id).inject(1.0) {|r, ft|  r *= ft.value }
  6. return  [val, 0.5].min  if code==11 && self.actor?  ###
  7. return val
  8. end
  9. end #class
复制代码



提高解答机会的方法:
看一下对应版本的帮助文件 看天气预报说今天不下雨
改变问题为更有可能的或常见的 如:天气自动变化下雨→天气系统 果然不准呀~
使用论坛的搜索功能查找相关问题 好丧啊... ...想看女装
清楚说明实际上你想解决的问题  想看坛友的女装  
脚本自己有改过的地方要标明  不要遮脸的
脚本有问题但不是默认的要全部贴出来 大胆点,尽情发
三包原则:包有BUG,包甩锅,包咕咕
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1048
在线时间
105 小时
注册时间
2016-6-24
帖子
45
5
 楼主| 发表于 2021-2-10 13:51:03 | 只看该作者
自頂一下
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
662
在线时间
56 小时
注册时间
2021-1-23
帖子
37
6
发表于 2021-2-10 14:50:20 | 只看该作者
建议用百分比啊 你的数值加到一定梯度就最多是60%这样,减免,但是不会无敌
回复 支持 反对

使用道具 举报

Lv5.捕梦者

梦石
0
星屑
33435
在线时间
5108 小时
注册时间
2012-11-19
帖子
4878

开拓者

7
发表于 2021-2-10 16:22:52 | 只看该作者
  1. class Game_Actor
  2.   def element_rate(element_id)
  3.     return [0.5, super(element_id)].max
  4.   end
  5. end
复制代码


至于为什么取 max , 因为数值越小,抗性越高.

点评

請問element_ID 我是要在裡面打上元素的ID嗎 這一段應該置於哪裡呢?  发表于 2021-2-13 00:42
xp vx va mv  va mz 各类型脚本/插件定制
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-16 00:47

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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