Project1
标题:
请教在2号状态下生命值为0后仍然可以行动三个回合的写法
[打印本页]
作者:
taeckle
时间:
2020-12-15 06:21
标题:
请教在2号状态下生命值为0后仍然可以行动三个回合的写法
我想做个三回合不死脚本,具体细节为
当有2号状态时就算HP为0了仍然可以再行动3个回合
,
3个回合后必死
(这里可以设置为3个回合后强制附加第3号状态使人物必死),当然在3个回合内打赢对方还是算我方赢。
还请大家指点一二,多谢了!
作者:
q3226257
时间:
2020-12-15 09:58
免疫死亡状态,三回合后移除就可以了
作者:
紫英晓狼1130
时间:
2020-12-15 13:26
if self.state?(state.ID) and self.hp > 0
self.damage = 0
else
remove_state(1)
self.hp == 1
self.damage = 0
end
复制代码
state.ID 需要改,将此状态改为3回合后自动解除
能否运行我没有测试,仅供参考
作者:
taeckle
时间:
2020-12-15 16:54
紫英晓狼1130 发表于 2020-12-15 13:26
state.ID 需要改,将此状态改为3回合后自动解除
能否运行我没有测试,仅供参考 ...
这段代码放在哪个class里面呢?
作者:
RPGzh500223
时间:
2020-12-16 16:15
3楼的感觉是在 Game_Battler3 的 def attack_effect(attacker) 和 def skill_effect(user, skill)吧
更像“免受伤害”的状态
有注释的基本为原脚本
这脚本勉强满足你的需要
说明一下:除非挂了,不可能hp一直为0的,要改的太多了,我也不会……
设置
默认 状态1 为“死亡状态”
在数据库 状态2 设置 4 回合经过后 ??概率解除(回合数就是比你要求的回合多1且大于1,概率乱填就好,无效…… )
class Game_Battler
def state_overing?(state_id)
return (@states_turn[state_id] == 1)
end
end
class Scene_Battle
def state_update
if @active_battler.state_overing?(2)
@active_battler.hp = 0
@active_battler.remove_state(2)
end
end
def target_state_update
for i in @target_battlers
if i.state?(2)
i.remove_state(1)
end
end
end
def update_phase4_step1
# 隐藏帮助窗口
@help_window.visible = false
# 判定胜败
if judge
# 胜利或者失败的情况下 : 过程结束
return
end
# 强制行动的战斗者不存在的情况下
if $game_temp.forcing_battler == nil
# 设置战斗事件
setup_battle_event
# 执行战斗事件中的情况下
if $game_system.battle_interpreter.running?
return
end
end
# 强制行动的战斗者存在的情况下
if $game_temp.forcing_battler != nil
# 在头部添加后移动
@action_battlers.delete($game_temp.forcing_battler)
@action_battlers.unshift($game_temp.forcing_battler)
end
# 未行动的战斗者不存在的情况下 (全员已经行动)
if @action_battlers.size == 0
# 开始同伴命令回合
start_phase2
return
end
# 初始化动画 ID 和公共事件 ID
@animation1_id = 0
@animation2_id = 0
@common_event_id = 0
# 未行动的战斗者移动到序列的头部
@active_battler = @action_battlers.shift
# 如果已经在战斗之外的情况下
if @active_battler.index == nil
return
end
# 连续伤害
if @active_battler.hp > 0 and @active_battler.slip_damage?
@active_battler.slip_damage_effect
@active_battler.damage_pop = true
end
state_update
# 自然解除状态
@active_battler.remove_states_auto
# 刷新状态窗口
@status_window.refresh
# 移至步骤 2
@phase4_step = 2
end
def update_phase4_step3
target_state_update
# 行动方动画 (ID 为 0 的情况下是白色闪烁)
if @animation1_id == 0
@active_battler.white_flash = true
else
@active_battler.animation_id = @animation1_id
@active_battler.animation_hit = true
end
# 移至步骤 4
@phase4_step = 4
end
end
作者:
灯笼菜刀王
时间:
2020-12-16 17:08
本帖最后由 灯笼菜刀王 于 2020-12-16 17:11 编辑
你这人, 不懂得举一反三就罢了,不愿意自己尝试也罢了,不愿意搜索自学那也随你
但是,
自己问过的东西
,别人告诉你了都不去做回头继续问, 这就过分了不是么?
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X3.1