查看: 2091|回复: 2

[已经解决] 求做出一次性傷害抵消效果(可疊加)

[复制链接]
梦石
0
星屑
50
在线时间
49 小时
注册时间
2014-5-17
回帖
45
发表于 2014-6-22 17:53:39 | 显示全部楼层 |阅读模式

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

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

×
我看過許多rpg遊戲都有一次性的免傷效果,最重要的還是這可以大量疊加

…あたしは天

梦石
0
星屑
2308
在线时间
4033 小时
注册时间
2010-10-4
回帖
10548

开拓者贵宾

发表于 2014-6-22 18:04:05 | 显示全部楼层
本帖最后由 taroxd 于 2014-6-23 08:35 编辑

[pre lang="ruby" line="1"]class Game_Battler
  GUARD_ONCE_STATE = 30 # 状态ID

  alias init0622 initialize
  def initialize
    init0622
    @guard_times = 0
  end

  alias add_state_0622 add_state
  def add_state(state_id)
    @guard_times += 1 if state_id == GUARD_ONCE_STATE
    add_state_0622(state_id)
  end

  alias remove_state_0622 remove_state
  def remove_state(state_id)
    @guard_times = 0 if state_id == GUARD_ONCE_STATE
    remove_state_0622(state_id)
  end

  def item_apply(user, item)
    @result.clear
    @result.used = item_test(user, item)
    @result.missed = (@result.used && rand >= item_hit(user, item))
    @result.evaded = (!@result.missed && rand < item_eva(user, item))
    return unless @result.hit?
    if @guard_times > 0
      remove_state(GUARD_ONCE_STATE) if (@guard_times -= 1) <= 0
      return
    end
    unless item.damage.none?
      @result.critical = (rand < item_cri(user, item))
      make_damage_value(user, item)
      execute_damage(user)
    end
    item.effects.each {|effect| item_effect_apply(user, item, effect) }
    item_user_effect(user, item)
  end
end[/pre]

没有仔细测试,应该没什么大问题吧

@Sion 我要卡~~~

点评

那我自己找找看@@  发表于 2014-6-23 12:26
你就在技能描述里写“多次使用该技能效果可以叠加”不就好了  发表于 2014-6-23 12:26
可以但我懒得写……  发表于 2014-6-23 12:25
不對說這能疊加但圖像永恆不變這有點怪怪的.有狀態上隨加成次數加數字的腳本嗎  发表于 2014-6-23 12:22
我是腳本渣...  发表于 2014-6-23 12:19

评分

参与人数 1梦石 +1 收起 理由
熊喵酱 + 1 认可答案

查看全部评分

回复

使用道具 举报

梦石
0
星屑
124
在线时间
900 小时
注册时间
2012-11-13
回帖
845
发表于 2014-6-23 08:07:32 | 显示全部楼层
废弃
回复

使用道具 举报

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

本版积分规则

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

在本版发帖返回顶部