Project1
标题:
如何让恢复血或者魔的技能或物品起到这样的效果?
[打印本页]
作者:
LOVE丶莫颜
时间:
2012-6-22 16:55
标题:
如何让恢复血或者魔的技能或物品起到这样的效果?
打个比方说:
1:
A对B使用了XXX技能(回血类的)
B的血量不是马上恢复,而是缓慢恢复。
2:
A使用了XXX物品(回血类的)
A的血量不是马上恢复,而是缓慢恢复。
3:
A挂机,随着时间的流逝,
血量和魔力缓慢恢复。
如何做到以上这样子的效果呢?
dsu_plus_rewardpost_czw
作者:
54酱
时间:
2012-6-22 17:29
1、2使用状态恢复
3.请参考小瞬的挂机系统
作者:
jelin
时间:
2012-6-22 21:55
厲害.樓上的.
作者:
符文
时间:
2012-6-22 22:54
可以用公共事件附加。
具体的楼主应该很容易摸索的。
其实很多事情就是这么简单。
作者:
腐琴琴
时间:
2012-6-23 09:26
同2楼
第一第二个就是用了物品或者技能后给角色一个状态。这个状态勾选“连续伤害”
然后找到“● 应用连续伤害效果”进行修改
def slip_damage_effect
# 设置伤害
self.damage = self.maxhp * 3 / 100 #这个是加血扣血的比例
# 分散
if self.damage.abs > 0
amp = [self.damage.abs * 15 / 100, 1].max
self.damage += rand(amp+1) + rand(amp+1) - amp
end
# HP 的伤害减法运算
if self.state?(11) #状态11就加血
self.hp += self.damage
end
if self.state?(12)
self.hp -= self.damage #状态12就中毒
end
# 过程结束
return true
end
===================================================
挂机回复是不是站着不动的时候回复血啊……
可以写个公共事件,并行处理
条件分歧,脚本:$game_player.moving?
除此以外的场合回复血。
分歧结束
等待XXX帧
作者:
chd114
时间:
2012-6-23 15:01
很简单,使用某个物品的时候X开关打开,在公共事件里面放一个并行处理的事件,出现条件设置为X号开关打开,在那个事件里面这样写:
(如果是1分钟里每秒恢复X的话,重复我指出来的步骤60次即可)
↓
等待20真(1秒)
HP+10
↑
等待20真
HP+10
作者:
chd114
时间:
2012-6-23 15:20
难道你要脚本?
作者:
kangxi0109
时间:
2012-6-23 18:05
关于持续回血、回魔的状态,需要修改两个部分的脚本,分别是作为战斗效果部分的Game_Battler 3以及地图效果部分的Game_Party,两个部分可分开使用,比如想做战斗中恢复,但战斗以外的情况下伤害,又或者是相反的情况。下面以100号回血,200号回魔的状态为例:
1.Game_Battler 3的部分:
#--------------------------------------------------------------------------
# ● 应用连续伤害效果
#--------------------------------------------------------------------------
def slip_damage_effect
# 设置伤害
#--------------------------------------------------修改部分↓
if self.state?(200)#增加一个判定用来分开回血回魔
if self.state?(200)#
self.damage = -self.maxsp / 10
end
# 分散
if self.damage.abs > 0
amp = [self.damage.abs * 15 / 100, 1].max
self.damage += rand(amp+1) + rand(amp+1) - amp
end
# HP 的伤害减法运算
self.sp -= self.damage #魔力减法运算
else
if self.state?(100) #
self.damage = -self.maxhp / 10 #改为增加10%血量
else
self.damage = self.maxhp / 10
end
#--------------------------------------------------
# 分散
if self.damage.abs > 0
amp = [self.damage.abs * 15 / 100, 1].max
self.damage += rand(amp+1) + rand(amp+1) - amp
end
# HP 的伤害减法运算
self.hp -= self.damage
end #判定回血回魔的end
# 过程结束
return true
end
复制代码
2.Game_Party的部分:
#--------------------------------------------------------------------------
# ● 检查连续伤害 (地图用)
#--------------------------------------------------------------------------
def check_map_slip_damage
for actor in @actors
#---------------------------------------------------------------------修改部分↓
if actor.state?(100) #
actor.hp += [actor.maxhp / 100, 1].max #持续恢复1%血量
end
if actor.state?(200) #
actor.sp += [actor.maxsp / 100, 1].max #持续恢复1%魔力
end
if actor.state?(100) or actor.state?(200) #增加这个判定是为了在回血状态下屏蔽掉红屏的效果
elsif actor.hp > 0 and actor.slip_damage?
#-----------------------------------------------------------------------
actor.hp -= [actor.maxhp / 100, 1].max
if actor.hp == 0
$game_system.se_play($data_system.actor_collapse_se)
end
$game_screen.start_flash(Color.new(255,0,0,128), 4)
$game_temp.gameover = $game_party.all_dead?
end
end
end
复制代码
大体就是这样,其实回血就是将伤血状态造成的伤害改为负数,回魔则是将hp改为sp罢了。用这个方法还可以做出持续伤害魔力的状态。
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X3.1