Project1
标题:
求教一下,设计了一个流血技能,但还有缺陷
[打印本页]
作者:
踢腿水上飘
时间:
2020-3-10 11:59
标题:
求教一下,设计了一个流血技能,但还有缺陷
意思就是攻击目标,并给目标挂上一个流血的状态,让这个敌人每回合都掉血,掉血的量就是刚才攻击造成的伤害
我的思路是用变量1记录下这次攻击的伤害,然后流血技能触发公共事件,用变量2=变量1,把流血的伤害记录到变量2里面,然后在体力恢复那里设定如果处于流血状态,每回合减少 变量2 的体力
倒是实现了流血效果的制作,就还有个大问题
如果有2个敌人A和B
我给A附加流血状态,A就会按我这次攻击的伤害量持续掉血,然后我给B也附加流血状态,A的持续掉血数值就会被B给覆盖了
求教这个问题怎么解决啊,
我想的是给每个不同编号的敌人设置不同的变量,然后根据敌人的编号来代入不同的伤害值
或者多做几个流血状态,根据敌人编号的不同,附加不同的流血状态
但以上两种思路都不知道怎么才能做到。
作者:
穿越时空之剑
时间:
2020-3-10 15:34
我觉得这个bug只用事件的话是没有办法了,而且敌人数量一多,设置起来也相当麻烦
话说为何不设置成按百分比掉血或者固定数值掉血,或者换一种想法,改成受到的伤害变为双倍的debuff,和你这个在数值上也没区别
作者:
chanszeman1018
时间:
2020-3-10 16:45
提示:
作者被禁止或删除 内容自动屏蔽
作者:
xsrong2
时间:
2020-3-11 16:09
如果一定要用事件的话,可以试着用多个开关来实现。
比如你的游戏中,敌人队伍中最多可以有8个敌人,那你就用8个开关来一一对应即可。
作者:
踢腿水上飘
时间:
2020-3-14 23:25
有人吗?????
作者:
enghao_lim
时间:
2020-3-15 11:05
稍微弄了下,原装工程,不保证和其他脚本冲突,必须设定掉血状态的ID。
#==============================================================================
# 设置
#------------------------------------------------------------------------------
# 状态ID必须设置
#==============================================================================
module LimSkillInjure
# 掉血状态ID
StateId = 26
end
#==============================================================================
# RPG::UsableItem
#------------------------------------------------------------------------------
# 为技能与物品添加掉血判定
#==============================================================================
class RPG::UsableItem
#--------------------------------------------------------------------------
# 是否导致掉血(会附加状态)
#--------------------------------------------------------------------------
def will_injure
if @will_injure == nil
@will_injure = false
for i in
[email protected]
if @effects[i].code == 21 and @effects[i].data_id == LimSkillInjure::StateId
@will_injure = true
break
end
end
end
return @will_injure
end
end
#==============================================================================
# Game Battler
#------------------------------------------------------------------------------
# 重定义连续伤害
#==============================================================================
class Game_Battler
#--------------------------------------------------------------------------
# 默认伤害,记录掉血值
#--------------------------------------------------------------------------
alias rgss_make_damage_value make_damage_value
def make_damage_value(user, item)
rgss_make_damage_value(user, item)
if (item.will_injure)
@injure_damage = @result.hp_damage
end
end
#--------------------------------------------------------------------------
# 重定义连续伤害
#--------------------------------------------------------------------------
def regenerate_hp
damage = -(mhp * hrg).to_i
perform_map_damage_effect if $game_party.in_battle && damage > 0
@result.hp_damage = [damage, max_slip_damage].min
if (self.is_injure?)
@result.hp_damage += (@injure_damage == nil) ? 0 : @injure_damage
end
self.hp -= @result.hp_damage
end
#--------------------------------------------------------------------------
# 判断角色是否处在掉血状态
#--------------------------------------------------------------------------
def is_injure?
return @states.include?(LimSkillInjure::StateId)
end
end
复制代码
作者:
chanszeman1018
时间:
2020-3-15 11:14
提示:
作者被禁止或删除 内容自动屏蔽
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X3.1