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

Project1

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

[已经过期] 请教在2号状态下生命值为0后仍然可以行动三个回合的写法

[复制链接]

Lv4.逐梦者

梦石
0
星屑
9143
在线时间
464 小时
注册时间
2015-5-8
帖子
865
跳转到指定楼层
1
发表于 2020-12-15 06:21:06 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
我想做个三回合不死脚本,具体细节为当有2号状态时就算HP为0了仍然可以再行动3个回合
3个回合后必死(这里可以设置为3个回合后强制附加第3号状态使人物必死),当然在3个回合内打赢对方还是算我方赢。

还请大家指点一二,多谢了!

Lv3.寻梦者

梦石
0
星屑
3297
在线时间
277 小时
注册时间
2019-4-23
帖子
202
2
发表于 2020-12-15 09:58:50 | 只看该作者
免疫死亡状态,三回合后移除就可以了
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
3846
在线时间
1966 小时
注册时间
2013-1-3
帖子
9536
3
发表于 2020-12-15 13:26:15 | 只看该作者
  1. if self.state?(state.ID) and self.hp > 0
  2.   self.damage = 0
  3. else
  4.   remove_state(1)
  5.   self.hp == 1
  6.   self.damage = 0
  7. end
复制代码

state.ID 需要改,将此状态改为3回合后自动解除
能否运行我没有测试,仅供参考
《宿愿·寻剑篇》正式版已经发布!快去看看!点击进入论坛发布贴
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
9143
在线时间
464 小时
注册时间
2015-5-8
帖子
865
4
 楼主| 发表于 2020-12-15 16:54:25 | 只看该作者
紫英晓狼1130 发表于 2020-12-15 13:26
state.ID 需要改,将此状态改为3回合后自动解除
能否运行我没有测试,仅供参考 ...

这段代码放在哪个class里面呢?

点评

Sence_battle 里吧 我也有点忘了是几号了  发表于 2020-12-16 09:02
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
6483
在线时间
119 小时
注册时间
2020-1-8
帖子
234
5
发表于 2020-12-16 16:15:46 | 只看该作者
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

评分

参与人数 1+1 收起 理由
taeckle + 1 多谢大神指点!

查看全部评分

回复 支持 反对

使用道具 举报

Lv5.捕梦者

梦石
0
星屑
38732
在线时间
5702 小时
注册时间
2006-11-10
帖子
6608
6
发表于 2020-12-16 17:08:55 | 只看该作者
本帖最后由 灯笼菜刀王 于 2020-12-16 17:11 编辑

你这人, 不懂得举一反三就罢了,不愿意自己尝试也罢了,不愿意搜索自学那也随你

但是, 自己问过的东西,别人告诉你了都不去做回头继续问, 这就过分了不是么?

评分

参与人数 4+4 收起 理由
RyanBern + 1 我很赞同
kelove331 + 1 塞糖
enghao_lim + 1 这记忆力不塞糖不行~
taeckle + 1 过分了过分了

查看全部评分

回复 支持 1 反对 0

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-9-20 18:45

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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