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

Project1

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

[已经解决] 求教一下,设计了一个流血技能,但还有缺陷

[复制链接]

Lv3.寻梦者

梦石
0
星屑
1971
在线时间
926 小时
注册时间
2015-10-26
帖子
356

开拓者

跳转到指定楼层
1
发表于 2020-3-10 11:59:52 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
意思就是攻击目标,并给目标挂上一个流血的状态,让这个敌人每回合都掉血,掉血的量就是刚才攻击造成的伤害
我的思路是用变量1记录下这次攻击的伤害,然后流血技能触发公共事件,用变量2=变量1,把流血的伤害记录到变量2里面,然后在体力恢复那里设定如果处于流血状态,每回合减少 变量2 的体力

倒是实现了流血效果的制作,就还有个大问题

如果有2个敌人A和B
我给A附加流血状态,A就会按我这次攻击的伤害量持续掉血,然后我给B也附加流血状态,A的持续掉血数值就会被B给覆盖了
求教这个问题怎么解决啊,
我想的是给每个不同编号的敌人设置不同的变量,然后根据敌人的编号来代入不同的伤害值
或者多做几个流血状态,根据敌人编号的不同,附加不同的流血状态
但以上两种思路都不知道怎么才能做到。

Lv4.逐梦者

梦石
0
星屑
5479
在线时间
1668 小时
注册时间
2016-8-1
帖子
413
2
发表于 2020-3-10 15:34:23 手机端发表。 | 只看该作者
我觉得这个bug只用事件的话是没有办法了,而且敌人数量一多,设置起来也相当麻烦
话说为何不设置成按百分比掉血或者固定数值掉血,或者换一种想法,改成受到的伤害变为双倍的debuff,和你这个在数值上也没区别
回复 支持 反对

使用道具 举报

头像被屏蔽

Lv4.逐梦者 (禁止发言)

梦石
0
星屑
5706
在线时间
922 小时
注册时间
2013-8-29
帖子
1468
3
发表于 2020-3-10 16:45:01 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
735
在线时间
42 小时
注册时间
2019-11-26
帖子
28
4
发表于 2020-3-11 16:09:51 | 只看该作者
如果一定要用事件的话,可以试着用多个开关来实现。
比如你的游戏中,敌人队伍中最多可以有8个敌人,那你就用8个开关来一一对应即可。

点评

我也在弄这个  发表于 2020-3-11 16:44
求教一下具体要怎么做呢?  发表于 2020-3-11 16:26
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1971
在线时间
926 小时
注册时间
2015-10-26
帖子
356

开拓者

5
 楼主| 发表于 2020-3-14 23:25:37 | 只看该作者
有人吗?????

点评

我试了下,用了你得这一段脚本,敌人每次持续掉血都是1点  发表于 2020-3-15 00:25
我发的那个,怎样子不行?  发表于 2020-3-15 00:19
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
7981
在线时间
1183 小时
注册时间
2007-7-29
帖子
2055
6
发表于 2020-3-15 11:05:29 | 只看该作者
稍微弄了下,原装工程,不保证和其他脚本冲突,必须设定掉血状态的ID。
  1. #==============================================================================
  2. # 设置
  3. #------------------------------------------------------------------------------
  4. # 状态ID必须设置
  5. #==============================================================================

  6. module LimSkillInjure
  7.   # 掉血状态ID
  8.   StateId = 26
  9. end

  10. #==============================================================================
  11. # RPG::UsableItem
  12. #------------------------------------------------------------------------------
  13. # 为技能与物品添加掉血判定
  14. #==============================================================================

  15. class RPG::UsableItem
  16.   
  17.   #--------------------------------------------------------------------------
  18.   # 是否导致掉血(会附加状态)
  19.   #--------------------------------------------------------------------------
  20.   def will_injure
  21.     if @will_injure == nil
  22.       @will_injure = false
  23.       for i in [email protected]
  24.         if @effects[i].code == 21 and @effects[i].data_id == LimSkillInjure::StateId
  25.           @will_injure = true
  26.           break
  27.         end
  28.       end
  29.     end
  30.     return @will_injure
  31.   end
  32. end

  33. #==============================================================================
  34. # Game Battler
  35. #------------------------------------------------------------------------------
  36. # 重定义连续伤害
  37. #==============================================================================
  38. class Game_Battler

  39.   #--------------------------------------------------------------------------
  40.   # 默认伤害,记录掉血值
  41.   #--------------------------------------------------------------------------
  42.   alias rgss_make_damage_value make_damage_value
  43.   def make_damage_value(user, item)
  44.     rgss_make_damage_value(user, item)
  45.     if (item.will_injure)
  46.       @injure_damage = @result.hp_damage
  47.     end
  48.   end
  49.   #--------------------------------------------------------------------------
  50.   # 重定义连续伤害
  51.   #--------------------------------------------------------------------------
  52.   def regenerate_hp
  53.     damage = -(mhp * hrg).to_i
  54.     perform_map_damage_effect if $game_party.in_battle && damage > 0
  55.     @result.hp_damage = [damage, max_slip_damage].min
  56.     if (self.is_injure?)
  57.       @result.hp_damage += (@injure_damage == nil) ? 0 : @injure_damage
  58.     end
  59.     self.hp -= @result.hp_damage
  60.   end
  61.   #--------------------------------------------------------------------------
  62.   # 判断角色是否处在掉血状态
  63.   #--------------------------------------------------------------------------
  64.   def is_injure?
  65.     return @states.include?(LimSkillInjure::StateId)
  66.   end
  67. end
复制代码

评分

参与人数 2星屑 +10 +1 收起 理由
寂静的夜里 + 10 认可答案
踢腿水上飘 + 1 认可答案

查看全部评分

回复 支持 反对

使用道具 举报

头像被屏蔽

Lv4.逐梦者 (禁止发言)

梦石
0
星屑
5706
在线时间
922 小时
注册时间
2013-8-29
帖子
1468
7
发表于 2020-3-15 11:14:27 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-16 11:34

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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