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

Project1

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

[有事请教] 做了个状态耐性无视,求问怎么能让状态无效也无视

[复制链接]

Lv3.寻梦者

梦石
0
星屑
1120
在线时间
71 小时
注册时间
2017-9-5
帖子
87
跳转到指定楼层
1
发表于 2024-5-8 19:44:25 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
状态耐性有公式可改,状态无效直接判定了,不知道怎么能做个耐性和无效同时无视的技能
    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

Lv4.逐梦者

梦石
0
星屑
5119
在线时间
1382 小时
注册时间
2015-7-25
帖子
568

开拓者

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

RUBY 代码复制
  1. class RPG::Skill
  2.   def stat_ignore
  3.     a = []
  4.     if note =~ /<无视状态\s+(.+)>/
  5.       $1.split(",").each do |i|
  6.         a << i.to_i
  7.       end
  8.     end
  9.     a
  10.   end
  11. end
  12. class Game_Battler
  13.   alias mf240512ini initialize
  14.   def initialize
  15.     mf240512ini
  16.     @stat_ignore = []
  17.   end
  18.   alias mf240512ieas item_effect_add_state
  19.   def item_effect_add_state(user, item, effect)
  20.     @stat_ignore = item.stat_ignore
  21.     mf240512ieas(user, item, effect)
  22.   end
  23.   alias mf240512strate state_rate
  24.   def state_rate(state_id)
  25.     return 1.0 if @stat_ignore.include?(state_id)
  26.     mf240512strate(state_id)
  27.   end
  28.   alias mf240512stres? state_resist?
  29.   def state_resist?(state_id)
  30.     return false if @stat_ignore.include?(state_id)
  31.     mf240512stres?(state_id)
  32.   end
  33. end
目前的坑 幽灵契约外传:歌莉娅
回归持续更新中~ 进度 v0.23/v1.00
笨肉包开始学像素画啦!努力训练中XD
啊~今天也是填mo坑yu的一天呢!
这是属于笨肉包一个人的旅行~(再见了...蚊子湯,七重酱,笨肉包永远想你们!TwT

看!是肉包!
只能看!不能吃!
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1120
在线时间
71 小时
注册时间
2017-9-5
帖子
87
3
 楼主| 发表于 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
回复 支持 反对

使用道具 举报

Lv5.捕梦者

梦石
10
星屑
39510
在线时间
1918 小时
注册时间
2010-11-14
帖子
3319

R考场第七期纪念奖

4
发表于 2024-5-13 20:54:47 | 只看该作者
伤害公式写
b.add_new_state(状态id);原公式

点评

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

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1120
在线时间
71 小时
注册时间
2017-9-5
帖子
87
5
 楼主| 发表于 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
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1120
在线时间
71 小时
注册时间
2017-9-5
帖子
87
6
 楼主| 发表于 2024-5-15 10:39:14 | 只看该作者
间桐樱 发表于 2024-5-13 16:56
大佬,按你的公式,def item_effect_add_state(user, item, effect)里原先的代码还保留吗?不保留怎么区 ...

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

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-6-6 12:42

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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