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

Project1

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

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

[复制链接]

Lv3.寻梦者

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

开拓者

跳转到指定楼层
1
发表于 2016-11-12 18:21:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

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

评分

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

查看全部评分

Lv2.观梦者

梦石
0
星屑
878
在线时间
576 小时
注册时间
2010-6-26
帖子
793
2
发表于 2016-11-12 21:22:09 | 只看该作者
条件设置成【回合结束】?

点评

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

使用道具 举报

Lv2.观梦者

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

开拓者

3
发表于 2016-11-13 02:35:51 | 只看该作者
本帖最后由 QQ蚊子湯 于 2016-11-13 03:01 编辑

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

繼續回夢世界~
晚安~~~
RUBY 代码复制
  1. class Game_Battler < Game_BattlerBase
  2.   attr_accessor :state_turns
  3. #===========================================================
  4.  
  5. #让某一技能不会减少行动结束解除的状态剩余时间
  6.  
  7. #設定
  8. #技能的ID
  9.  
  10. @@QSKQ = 1
  11.  
  12. #狀態的ID
  13. @@QSTQ = 46
  14.  
  15.  
  16. #==========================================================
  17.     alias jianyulei:make_damage_value
  18.     def make_damage_value(user, item)
  19.     value = item.damage.eval(user, self, $game_variables)
  20.     if item.is_a?(RPG::Skill) && item.id == @@QSKQ
  21.         if user.state?(@@QSTQ)
  22.          user.states.each do |state|
  23.          user.state_turns[@@QSTQ] += 1
  24.         end;end;end
  25.     value *= item_element_rate(user, item)
  26.     value *= pdr if item.physical?
  27.     value *= mdr if item.magical?
  28.     value *= rec if item.damage.recover?
  29.     value = apply_critical(value) if @result.critical
  30.     value = apply_variance(value, item.damage.variance)
  31.     value = apply_guard(value)
  32.     @result.make_damage(value.to_i, item)
  33. end
  34. end


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


RUBY 代码复制
  1. class Game_Battler < Game_BattlerBase
  2.   attr_accessor :state_turns
  3. #===========================================================
  4.  
  5. #让某一技能不会减少行动结束解除的状态剩余时间
  6.  
  7. #設定
  8. #技能的ID
  9.  
  10. @@QSKQ = 1
  11.  
  12.  
  13.  
  14.  
  15. #==========================================================
  16.     alias jianyulei:make_damage_value
  17.     def make_damage_value(user, item)
  18.     value = item.damage.eval(user, self, $game_variables)
  19.     if item.is_a?(RPG::Skill) && item.id == @@QSKQ
  20.         if user.state?(@@QSTQ)
  21.          user.states.each do |state|
  22.           user.state_turns[state.id] += 1
  23.         end;end;end
  24.     value *= item_element_rate(user, item)
  25.     value *= pdr if item.physical?
  26.     value *= mdr if item.magical?
  27.     value *= rec if item.damage.recover?
  28.     value = apply_critical(value) if @result.critical
  29.     value = apply_variance(value, item.damage.variance)
  30.     value = apply_guard(value)
  31.     @result.make_damage(value.to_i, item)
  32. end
  33. end

评分

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

查看全部评分

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

使用道具 举报

Lv3.寻梦者

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

开拓者

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

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

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
55
在线时间
407 小时
注册时间
2011-4-10
帖子
359
5
发表于 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
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-17 10:01

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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