查看: 2053|回复: 9

[已经解决] 请问如何让某一技能不会减少行动结束解除的状态剩余时间

[复制链接]
梦石
0
星屑
2920
在线时间
713 小时
注册时间
2010-7-25
回帖
659

开拓者

发表于 2016-11-12 18:21:56 | 显示全部楼层 |阅读模式

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

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

×
当状态解除时机设置为行动结束时解除时,每一次该人物的行动都会减少状态的时间,但是我想让某一些技能在使用时并不会减少状态时间,请问下该怎么做才能办到?

评分

参与人数 1星屑 +50 收起 理由
RaidenInfinity + 50 结帖

查看全部评分

梦石
0
星屑
878
在线时间
576 小时
注册时间
2010-6-26
回帖
709
发表于 2016-11-12 21:22:09 | 显示全部楼层
条件设置成【回合结束】?

点评

那就不能被称为行动结束了  发表于 2016-11-12 21:53
回复

使用道具 举报

梦石
0
星屑
644
在线时间
830 小时
注册时间
2016-7-24
回帖
644

开拓者

发表于 2016-11-13 02:35:51 | 显示全部楼层
本帖最后由 QQ蚊子湯 于 2016-11-13 03:01 编辑

本來打算先去睡覺明天再來解這題
不過剛剛在夢世界找到解答
於是又爬起來寫完

繼續回夢世界~
晚安~~~
[pre lang="ruby"]class Game_Battler < Game_BattlerBase
  attr_accessor :state_turns
#===========================================================

#让某一技能不会减少行动结束解除的状态剩余时间

#設定
#技能的ID

@@QSKQ = 1

#狀態的ID
@@QSTQ = 46


#==========================================================
    alias jianyulei:make_damage_value
    def make_damage_value(user, item)
    value = item.damage.eval(user, self, $game_variables)
    if item.is_a?(RPG::Skill) && item.id == @@QSKQ
        if user.state?(@@QSTQ)
         user.states.each do |state|
         user.state_turns[@@QSTQ] += 1
        end;end;end
    value *= item_element_rate(user, item)
    value *= pdr if item.physical?
    value *= mdr if item.magical?
    value *= rec if item.damage.recover?
    value = apply_critical(value) if @result.critical
    value = apply_variance(value, item.damage.variance)
    value = apply_guard(value)
    @result.make_damage(value.to_i, item)
end
end[/pre]

おまけに~
附上所有狀態都不會扣回合數的版本~


[pre lang="ruby"]class Game_Battler < Game_BattlerBase
  attr_accessor :state_turns
#===========================================================

#让某一技能不会减少行动结束解除的状态剩余时间

#設定
#技能的ID

@@QSKQ = 1




#==========================================================
    alias jianyulei:make_damage_value
    def make_damage_value(user, item)
    value = item.damage.eval(user, self, $game_variables)
    if item.is_a?(RPG::Skill) && item.id == @@QSKQ
        if user.state?(@@QSTQ)
         user.states.each do |state|
          user.state_turns[state.id] += 1
        end;end;end
    value *= item_element_rate(user, item)
    value *= pdr if item.physical?
    value *= mdr if item.magical?
    value *= rec if item.damage.recover?
    value = apply_critical(value) if @result.critical
    value = apply_variance(value, item.damage.variance)
    value = apply_guard(value)
    @result.make_damage(value.to_i, item)
end
end[/pre]

评分

参与人数 2星屑 +270 梦石 +1 收起 理由
RaidenInfinity + 250 + 1 认可答案
jianyulei + 20 认可答案

查看全部评分

2016/07/17 加入RPG製作,勿忘初衷!
回复

使用道具 举报

梦石
0
星屑
2920
在线时间
713 小时
注册时间
2010-7-25
回帖
659

开拓者

 楼主| 发表于 2016-11-13 14:26:36 | 显示全部楼层
QQ蚊子湯 发表于 2016-11-13 02:35
本來打算先去睡覺明天再來解這題
不過剛剛在夢世界找到解答
於是又爬起來寫完

试了下发现如果技能在回合内为第二次行动,那么状态剩余时间就越来越多,然后觉得哪里不对……
因为看脚本是以增加状态的时间来维持状态,所以又重新研究了下,结果发现原来原始脚本的行动结束减少状态时间是无论在一回合内行动多少次都只减少一次状态时间,于最开始的那一次行动后减少
因为我是想要制作持续伤害,用延迟脚本让我方对敌人放技能来达到要求。这样一来受影响的只有我方在某一回合因为无法行动而没有正常减少状态时间的情况下,因延迟脚本放了个技能让行动回合减少的BUG。不过这是在可以接受的范围之内。
非常感谢你的解答。
回复

使用道具 举报

梦石
0
星屑
55
在线时间
407 小时
注册时间
2011-4-10
回帖
352
发表于 2016-11-13 20:55:35 | 显示全部楼层
你在需要不减少持续时间的技能里刷新一下状态不就行了。

点评

不對呀他是說刷新一下就行了,感覺很高深,我也想學!!  发表于 2016-11-15 08:46
我觉得他的意思是让我重新附加状态,做到状态时间重置……  发表于 2016-11-15 07:49
實際做法請求!  发表于 2016-11-14 17:12
具體請求!  发表于 2016-11-13 20:58
回复

使用道具 举报

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

本版积分规则

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

在本版发帖返回顶部