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

Project1

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

[已经解决] 请教如何在Window_Status显示全属性抗性列表?

[复制链接]

Lv3.寻梦者

梦石
0
星屑
1803
在线时间
133 小时
注册时间
2013-10-6
帖子
193
1
发表于 2022-5-22 22:22:44 | 显示全部楼层
本帖最后由 不死鸟之翼 于 2022-5-24 04:32 编辑

简单说一下,RPG::System里面有各种用语,比如属性的数组,然后Game_Battler里有查询各种抗性的方法,两者一起用即可。

下面是System里的一些属性:

  1. elements
  2. 属性列表。以属性 ID 为下标的字符串数组,0 号元素为空字符串。

  3. skill_types
  4. 技能类型列表。以技能类型 ID 为下标的字符串数组,0 号元素为空字符串。

  5. weapon_types
  6. 武器类型列表。以武器类型 ID 为下标的字符串数组,0 号元素为空字符串。

  7. armor_types
  8. 护甲类型列表。以护甲类型 ID 为下标的字符串数组,0 号元素为空字符串。
复制代码


下面是Game_Battler的一些方法:

RUBY 代码复制
  1. #--------------------------------------------------------------------------
  2.   # ● 获取属性抗性
  3.   #--------------------------------------------------------------------------
  4.   def element_rate(element_id)
  5.     features_pi(FEATURE_ELEMENT_RATE, element_id)
  6.   end
  7.   #--------------------------------------------------------------------------
  8.   # ● 获取弱化抗性
  9.   #--------------------------------------------------------------------------
  10.   def debuff_rate(param_id)
  11.     features_pi(FEATURE_DEBUFF_RATE, param_id)
  12.   end
  13.   #--------------------------------------------------------------------------
  14.   # ● 获取状态抗性
  15.   #--------------------------------------------------------------------------
  16.   def state_rate(state_id)
  17.     features_pi(FEATURE_STATE_RATE, state_id)
  18.   end
  19.   #--------------------------------------------------------------------------
  20.   # ● 获取免疫状态数组
  21.   #--------------------------------------------------------------------------
  22.   def state_resist_set
  23.     features_set(FEATURE_STATE_RESIST)
  24.   end
  25.   #--------------------------------------------------------------------------
  26.   # ● 判定状态是否免疫
  27.   #--------------------------------------------------------------------------
  28.   def state_resist?(state_id)
  29.     state_resist_set.include?(state_id)
  30.   end


假如我们要把第一个敌人的所有属性的倍率一起输出:

RUBY 代码复制
  1. $target = $game_troop.members[0]
  2. $data_system.elements.drop(1).each_with_index { |val, ind|
  3.   p "#{val}×#{$target.element_rate(ind)}"
  4. }


  1. "物理×1.0"
  2. "吸收×1.0"
  3. "炎×1.0"
  4. "冰×2.0"
  5. "电×1.0"
  6. "水×1.0"
  7. "地×1.0"
  8. "风×1.0"
  9. "圣×1.0"
  10. "暗×1.0"
复制代码


要是想存成数组的话就map一下。至于显示第一个字也好,改成弱/耐也好,可以自行发挥。
←你看到一只经常潜水的萌新。
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-5-21 11:31

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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