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

Project1

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

[已经解决] 不死身或固定保底HP的主角?

[复制链接]

Lv3.寻梦者

梦石
0
星屑
2565
在线时间
271 小时
注册时间
2017-9-27
帖子
34
跳转到指定楼层
1
发表于 2020-6-29 08:33:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
我的计划是做一名不死身的主角,
意即他就算 HP=0 也可以继续战斗,也不会触发 GameOver 之类的判定。

本来是在数据库里为他设置了 免疫[死亡]状态 的BUFF… 效果在回合制战斗里非常成功地实现了,
但现在换了(Moghunter的)Schala_ATB战斗后就… 铛铛!出毛病了!
他HP归零后会卡住不动… ATB系统大概还是把他算作无法行动的角色了…

在论坛里找到了免疫死亡状态的脚本,但还是不行。

因为很想保存ATB系统,所以得解决这个问题。
或许我也可以退一步,把主角设置成 “HP掉到1后就无法再继续掉下去了” 的感觉。
但也不知道这种要怎样办…?

Lv2.观梦者

梦石
0
星屑
825
在线时间
223 小时
注册时间
2014-5-23
帖子
57
2
发表于 2020-6-29 08:56:34 | 只看该作者
建议把脚步贴出来,坛里的大佬们才好帮你解决
你试试再做个公共事件 每当角色hp等于0的时候 自动加一点血 看行不行

点评

抛开其他花哨的功能的话,其实我只保留了跟ATB有关的两个… 即便它依旧真的很长(x)贴到楼下了!  发表于 2020-6-29 09:44
Schala_ATB战斗系統一套內含十几二十个脚本。。。  发表于 2020-6-29 09:24
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
2565
在线时间
271 小时
注册时间
2017-9-27
帖子
34
3
 楼主| 发表于 2020-6-29 09:42:47 | 只看该作者
本帖最后由 银河拱门 于 2020-6-28 17:45 编辑
MOG_ATB
MOG_ATB_Schala

是用到的ATB脚本↑

点评

不对啊… 就算这么说也应该是18:45…  发表于 2020-6-29 10:25
哈哈哈哈哈我是时差党!看来它读的是我这里的当地时间.jpg  发表于 2020-6-29 10:24
本帖最后由 银河拱门 于 2020-6-28 17:45 编辑 ?????  发表于 2020-6-29 10:19
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
6934
在线时间
638 小时
注册时间
2012-7-29
帖子
173
4
发表于 2020-6-29 16:02:53 | 只看该作者
根据3楼贴出来的脚本,我无脑查找了一下“hp”这个关键词,就找到了这一系列脚本片段......

以下列出我认为需要修改的片段。

脚本作者没有使用一个统一的方法判断角色是否死亡,这导致以下每个方法都要修改。

以下片段是从3楼脚本中复制出来的,尚未修改。

评分

参与人数 2+2 收起 理由
银河拱门 + 1 这还真是令人头大啊www
KB.Driver + 1 我很赞同

查看全部评分

回复 支持 反对

使用道具 举报

Lv4.逐梦者

「Pemercyia」


Urhurrenna

梦石
0
星屑
9335
在线时间
2745 小时
注册时间
2008-9-5
帖子
3540

开拓者短篇八RM组冠军短篇九导演组亚军白银编剧

5
发表于 2020-6-29 17:36:16 | 只看该作者
处理hp=0时将角色设置为死亡状态的地方在Game_BattlerBase的refresh里,
如果要弄成1血不死的话,也许可以这样做……
  1. class Game_BattlerBase
  2.   #--------------------------------------------------------------------------
  3.   # ● 刷新
  4.   #--------------------------------------------------------------------------
  5.   def refresh
  6.     state_resist_set.each {|state_id| erase_state(state_id) }
  7.     @hp = [[@hp, mhp].min, 0].max
  8.     @mp = [[@mp, mmp].min, 0].max
  9.     if self.actor? and self.id == 1 # 各种条件,精确判定到指定角色身上
  10.         @hp = 1 if @hp == 0
  11.     else
  12.       @hp == 0 ? add_state(death_state_id) : remove_state(death_state_id)
  13.     end
  14.   end
  15. end
复制代码

评分

参与人数 1+1 收起 理由
银河拱门 + 1 我很赞同

查看全部评分

回复 支持 1 反对 0

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
2565
在线时间
271 小时
注册时间
2017-9-27
帖子
34
6
 楼主| 发表于 2020-7-1 08:16:36 | 只看该作者
cinderelmini 发表于 2020-6-29 01:36
处理hp=0时将角色设置为死亡状态的地方在Game_BattlerBase的refresh里,
如果要弄成1血不死的话,也许可以这 ...

呜哇… 这好厉害!谢谢你><!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-4-25 11:37

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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