查看: 1096|回复: 13

[已经过期] 做了个状态耐性无视,求问怎么能让状态无效也无视

[复制链接]
梦石
0
星屑
1966
在线时间
112 小时
注册时间
2017-9-5
回帖
157
发表于 2024-5-8 19:44:25 | 显示全部楼层 |阅读模式

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

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

×
状态耐性有公式可改,状态无效直接判定了,不知道怎么能做个耐性和无效同时无视的技能
    if user.ignore_state_rate == false && item.ignore_state_rate == false
      chance = effect.value1
      chance *= state_rate(effect.data_id)
      chance *= luk_effect_rate(user)
    else
      chance = 1.0
    end

  def state_resist_set
    features_set(FEATURE_STATE_RESIST)
  end
  def state_resist?(state_id, user)
    state_resist_set.include?(state_id)
  end
  def state_addable?(state_id)
    alive? && $data_states[state_id] && !state_resist?(state_id) &&
    !state_removed?(state_id) && !state_restrict?(state_id)
  end
梦石
0
星屑
6375
在线时间
1473 小时
注册时间
2015-7-25
回帖
609

极短25参与开拓者

发表于 2024-5-12 21:21:11 | 显示全部楼层
在数据库技能备注里写<无视状态 n,n.....,n>
那么当使用这个技能的时候就会无视所有n号状态的抗性和免疫,不会影响其他技能对这些状态的判定
举例
<无视状态 2>
<无视状态 2,3>

[pre lang="ruby"]class RPG::Skill
  def stat_ignore
    a = []
    if note =~ /<无视状态\s+(.+)>/
      $1.split(",").each do |i|
        a << i.to_i
      end
    end
    a
  end
end
class Game_Battler
  alias mf240512ini initialize
  def initialize
    mf240512ini
    @stat_ignore = []
  end
  alias mf240512ieas item_effect_add_state
  def item_effect_add_state(user, item, effect)
    @stat_ignore = item.stat_ignore
    mf240512ieas(user, item, effect)
  end
  alias mf240512strate state_rate
  def state_rate(state_id)
    return 1.0 if @stat_ignore.include?(state_id)
    mf240512strate(state_id)
  end
  alias mf240512stres? state_resist?
  def state_resist?(state_id)
    return false if @stat_ignore.include?(state_id)
    mf240512stres?(state_id)
  end
end[/pre]
笨肉包的游戏讨论群932812135 (实时更新) 喜欢的话欢迎加入~
目前的坑
??? #像素风OC游戏 准备中 短篇-约5小时
花城梦之心 #像素风OC游戏 系统开发+素材绘制中
【不可思议的迷宫】幽灵契约外传:歌莉娅 v0.4 游戏文件已更新
同时更新中~ (沉迷摸鱼中~更新速度较慢请见谅w)
这是属于笨肉包一个人的旅行~(这只肉包又在摸鱼!
旅途的最终目标~ ???(保密~
回复

使用道具 举报

梦石
0
星屑
1966
在线时间
112 小时
注册时间
2017-9-5
回帖
157
 楼主| 发表于 2024-5-13 16:56:19 | 显示全部楼层
本帖最后由 间桐樱 于 2024-5-13 19:36 编辑
魔法丶小肉包 发表于 2024-5-12 21:21
在数据库技能备注里写
那么当使用这个技能的时候就会无视所有n号状态的抗性和免疫,不会影响其他技能对这些 ...


大佬,按你的公式,def item_effect_add_state(user, item, effect)里原先的代码还保留吗?不保留怎么区分普通攻击和状态攻击
ps:其实【状态抗性无视】已经成功了,启动游戏后能正常生效,就是【状态免疫无视】那里不知道怎么挂钩
我在state_resist_set.include?(state_id) 后面插入if user.ignore_state_rate == false && item.ignore_state_rate == false报错,只要能把这个挂上其实就没问题了

点评

然后我很好奇你为啥一定要放备注,按照楼下的方法修改伤害公式不是更方便吗,而且也不会报错  发表于 2024-5-14 22:32
如果想自己修改的,并且遇到问题,那我觉得起码把脚本贴贴全呢,这样也方便大家回答  发表于 2024-5-14 22:27
同一个功能呢用一份脚本就足够了,自己修改和用现成的2选1,2个一起用当然会冲突咯  发表于 2024-5-14 22:22
....有没有一种可能,给你的脚本就是成品不需要修改呢?就是需要保留所以用的alias  发表于 2024-5-14 22:13
怎么做到保留?放在if前面?else后面没法再加代码了  发表于 2024-5-14 18:59
回复

使用道具 举报

梦石
10
星屑
39550
在线时间
1919 小时
注册时间
2010-11-14
回帖
3214

R考场第七期纪念奖

发表于 2024-5-13 20:54:47 | 显示全部楼层
伤害公式写
b.add_new_state(状态id);原公式

点评

竟然还有这种方法?但可惜不能放备注  发表于 2024-5-14 19:00
用头画头像,用脚写脚本
回复

使用道具 举报

梦石
0
星屑
1966
在线时间
112 小时
注册时间
2017-9-5
回帖
157
 楼主| 发表于 2024-5-15 10:35:43 | 显示全部楼层
间桐樱 发表于 2024-5-13 16:56
大佬,按你的公式,def item_effect_add_state(user, item, effect)里原先的代码还保留吗?不保留怎么区 ...

因为alias的用法不明白,再碰到类似的不能‘魔改’使用

点评

https://rpg.blue/forum.php?mod=viewthread&tid=398047&extra=page%3D1%26filter%3Dtypeid%26typeid%3D475 可以看一下这个教程,去看2.5节,不过建议你从头开始看比较好  发表于 2024-5-15 13:13
回复

使用道具 举报

梦石
0
星屑
1966
在线时间
112 小时
注册时间
2017-9-5
回帖
157
 楼主| 发表于 2024-5-15 10:39:14 | 显示全部楼层
间桐樱 发表于 2024-5-13 16:56
大佬,按你的公式,def item_effect_add_state(user, item, effect)里原先的代码还保留吗?不保留怎么区 ...

至于放备注,是因为我的‘野心’有点儿大,弄了好多动漫游戏里的东西,比如矢量操作和幻想杀手、比如赛亚人变身,备注可以把这些东西放人物里、放敌人里、放装备里、放状态里,但伤害公式只能放技能里
回复

使用道具 举报

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

本版积分规则

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

在本版发帖返回顶部