赞 | 6 |
VIP | 20 |
好人卡 | 126 |
积分 | 28 |
经验 | 33282 |
最后登录 | 2024-11-22 |
在线时间 | 1603 小时 |
Lv3.寻梦者
- 梦石
- 0
- 星屑
- 2763
- 在线时间
- 1603 小时
- 注册时间
- 2010-10-22
- 帖子
- 1058
|
本帖最后由 kangxi0109 于 2012-6-27 22:44 编辑
lxzuz 发表于 2012-6-26 08:46
是不是这样设置?
这么说吧,游戏的脚本里面是这么判断的,当HP变为0的时候,游戏就会将其判定为“dead”这个状态(不是单纯的指“战斗不能”),当全员都被判定为“dead”的时候,战斗就结束了。前面我给的脚本有一句:也就是说,虽然中招“半死”的人还能进行普通攻击,但事实上在游戏内部已经被打上“dead”标记了,所以只要其他人挂了,那游戏同样也会结束了...如果到了这种情况还想继续,那还不如弄个残血(类似DOTA的薄葬,在一定时间内保留1点之类的)的状态给他。
===========================================================
跟新内容:
前面的脚本就不需要了。
关于“残血”状态,需要用“双状态”法来做,这里我将它做成被动技能(反正自己也是这样用的)。
1.数据库设定:
技能100:“残血”技能,设置为不能使用;
状态1:“残血”状态,持续时间为X(自设);
状态2:“残血冷却”状态,持续时间X+M(M为实际的冷却时间)。
2.脚本修改部分:
全部在Game_Battler 3,需要修改普通攻击和技能攻击两个部分。
普通攻击部分如下,技能部分也在对应位置(“# HP 的伤害减法运算”之前)添加同样的脚本:
- # 命中的情况下
- if hit_result == true
- # 状态冲击解除
- remove_states_shock
- #--------------------------------修改部分↓
- if self.is_a?(Game_Actor) && skills.include?(100)#当目标为角色且该角色学会了100号技能的场合
- if self.damage >= self.hp #出现致死伤害时
- if self.states.include?(2)#冷却中
- else
- self.damage = self.hp-1#设置伤害为目标当前体能量-1的值,即保留1点体能
- self.add_state(1) #附加残血状态
- self.add_state(2) #附加残血冷却状态
- end
- end
- end
- #-------------------------------------------
- # HP 的伤害计算
- self.hp -= self.damage
复制代码 |
|