查看: 2213|回复: 2

[已经解决] 状态效果:受到攻击时,几率使攻击者陷入指定异常状态

[复制链接]
梦石
0
星屑
1501
在线时间
277 小时
注册时间
2017-2-18
回帖
80

开拓者

发表于 2017-7-10 16:31:03 | 显示全部楼层 |阅读模式

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

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

×
就是说当角色或敌人处于一个状态,受到攻击时,攻击角色或敌人的人有几率陷入一个指定的异常状态
梦石
0
星屑
1736
在线时间
761 小时
注册时间
2013-9-23
回帖
180

开拓者

发表于 2017-7-10 19:02:24 | 显示全部楼层
本帖最后由 午睡的风铃 于 2017-7-10 20:18 编辑
  1. #==============================================================================
  2. # ■ Game_Battler
  3. #==============================================================================
  4. class Game_Battler < Game_BattlerBase
  5.   #--------------------------------------------------------------------------
  6.   # ● 应用技能/物品的效果
  7.   #--------------------------------------------------------------------------
  8.   def item_apply(user, item)
  9.     @result.clear
  10.     @result.used = item_test(user, item)
  11.     @result.missed = (@result.used && rand >= item_hit(user, item))
  12.     @result.evaded = (!@result.missed && rand < item_eva(user, item))
  13.     if @result.hit?
  14.       unless item.damage.none?
  15.         @result.critical = (rand < item_cri(user, item))
  16.         make_damage_value(user, item)
  17.         execute_damage(user)
  18.       end
  19.       make_special_effect(user, item)  #~
  20.       item.effects.each {|effect| item_effect_apply(user, item, effect) }
  21.       item_user_effect(user, item)
  22.     end
  23.   end
  24.   #---------------------------------------------------------------------------
  25.   # ● 技能/物品的特殊效果
  26.   #---------------------------------------------------------------------------
  27.   def make_special_effect(user, item)
  28.   
  29.     # 如果攻击命中目标,且目标处在x状态,那么攻击者有y几率陷入z状态。
  30.     if self.state?(x) && rand(100) < y
  31.       if self.actor? && user.enemy? or self.enemy? && user.actor?
  32.         user.add_state(z)
  33.       end
  34.     end
  35.    
  36.   end
  37. end
复制代码


需要在脚本30和32行设置
测试目前我能考虑到的可能性都没问题
一定还有更好方法的,一定还有更简单方法的,一定还有......

评分

参与人数 1星屑 +250 收起 理由
RaidenInfinity + 250 版主认可的答案

查看全部评分

回复

使用道具 举报

梦石
0
星屑
1345
在线时间
378 小时
注册时间
2015-6-16
回帖
526
发表于 2017-7-10 20:01:20 | 显示全部楼层
伤害公式是可以,但是缺点在你状态个数多了你复制粘贴也麻烦。
按照你的说法角色目标通用那就很简单大概得格式是
if self.state?(2)
user.add_state(1)
end
解释目标处于二号状态,攻击者附加1号状态
PS:伤害公式脚本请去别的地方询问。哦对了记得这里有个什么装备吸血反伤效果的那个帖子我发过伤害公式脚本的,你把他复制过来,然后用我这个格式去写即可,注意一个if跟一个end
但是缺点很明显,一次性只能判定一个。用while end加变量指定状态ID的话大部分电脑会因为
这样而卡顿很久也不是很好用。你就按照我的格式一个状态判定一个。
P1不太上了,有问题加个Q1286124843,不管是脚本还是游戏问题都可以来找我
回复 1 0

使用道具 举报

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

本版积分规则

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

在本版发帖返回顶部