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

Project1

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

[已经解决] HP或者其它变量归零后返家事件怎么做

[复制链接]

Lv4.逐梦者

梦石
1
星屑
4688
在线时间
362 小时
注册时间
2011-5-11
帖子
503
跳转到指定楼层
1
发表于 2017-10-16 18:21:11 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
本帖最后由 zmj945 于 2017-10-16 18:45 编辑

我知道这个问题很弱,但我真的解决不了(摊手)


就是主角在HP归零,或者另一个变量为0(比如设定为体力值)的时候自动移动到某地图点(住宅)。这个事件怎么做?

我的想法是用公共事件。
加个分歧条件:≤0场所移动到家;其它不管



触发条件为:并行处理....但是,一测试就卡到动不了。然后换成自动执行,也是卡到动不了...
额,还有个问题,就是设置并行处理还是自动执行呢?但无论是并行还是自动它后面还要选一个开关...不知道设置什么开关啊



就...不知道怎么写了...

哈喽,这里画师/配音立绘/UI/像素/l2d,美术相关均可做的。有偿画画免费配音中(^o^)❤来找我喔Q:397911742
参与游戏《除灵》《寻迹》《丽丽公主》《旅行恋恋》《余烬之中》《绽于枝垂樱下》《幻侠奇缘录》等
画图作品——>点我   
无偿配音——>点我

Lv4.逐梦者

梦石
0
星屑
7427
在线时间
948 小时
注册时间
2017-9-27
帖子
583
2
发表于 2017-10-16 18:33:05 | 只看该作者
  1. BattleManager.updateBattleEnd = function() {
  2.     if (this.isBattleTest()) {
  3.         AudioManager.stopBgm();
  4.         SceneManager.exit();
  5.     } else if (!this._escaped && $gameParty.isAllDead()) {
  6.         if (this._canLose) {
  7.             $gameParty.reviveBattleMembers();
  8.             SceneManager.pop();
  9.         } else {
  10.             SceneManager.goto(Scene_Gameover);
  11.         }
  12.     } else {
  13.         SceneManager.pop();
  14.     }
  15.     this._phase = null;
  16. };
复制代码

这一段是控制战斗结束后的流程的,你把它重定义一下就能随意控制战败后的去向。

点评

非常谢谢解答。但是1.我是程序小白.不会重定义(掩面)..;2.这个并不特指是战斗后,而是人物在任何时间地图点触发(比如走路会减体力,体力为0)  发表于 2017-10-16 18:37
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
12157
在线时间
4435 小时
注册时间
2014-4-11
帖子
5955

开拓者

3
发表于 2017-10-16 18:39:29 | 只看该作者
本帖最后由 yang1zhi 于 2017-10-16 18:40 编辑

卡到动不了。是因为,一直在执行这个内容。你可以在前面加个判断间隔,加个等待。
比如等待60自动执行是不行的,自动执行会一直在那执行,不可以操作的。
并行可以同时操作

点评

非常感谢!确实是这个思路,就是去实际操作以后又碰到问题了,啊哈哈  发表于 2017-10-16 18:46
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
7427
在线时间
948 小时
注册时间
2017-9-27
帖子
583
4
发表于 2017-10-16 21:40:08 | 只看该作者
  1. Scene_Base.prototype.checkGameover = function() {
  2.     if ($gameParty.isAllDead()) {
  3.         SceneManager.goto(Scene_Gameover);
  4.     }
  5. };
复制代码

这一段是通用的,你把那个Scene_Gameover改成任意别的场景就能实现自定义跳转。
重定义方法也不难,基本套路就是先给原方法另取一个名字保存起来,然后改写原方法的实现代码。这个你参考一下那些插件的代码就知道该怎么写了。
如果实在不愿/不会写,那就干脆用现成的插件吧。我知道的有俩可以自定义gameover行为。
Kath_GameOver.rar (3.46 KB, 下载次数: 68) SRD_GameOverCore.rar (4.82 KB, 下载次数: 83)

点评

非常感谢还特地找代码,辛苦了!真的不是伸手党,我专攻美术,美术相关都OK。程序的话你觉得可能很简单,但那种if啊{}啊这种东西对我来说真看不懂...  发表于 2017-10-17 09:42

评分

参与人数 2星屑 +50 +1 收起 理由
余烬之中 + 50 认可答案
zmj945 + 1 认可答案

查看全部评分

回复 支持 1 反对 0

使用道具 举报

Lv5.捕梦者 (版主)

遠航の猫咪

梦石
3
星屑
23206
在线时间
2387 小时
注册时间
2005-10-15
帖子
1166

开拓者

5
发表于 2017-10-17 00:54:19 | 只看该作者
这需求居然需要上脚本?

1. 将你的分歧里的内容设置为公共事件A,没有执行条件
2. 游戏开始时打开某开关(设为0100),然后设置另一个公共事件B:并行处理,条件为开关0100,内容如下
条件分歧:体力值 <= 0
    开关0100关闭
    公共事件:A
    开关0100打开
分歧结束
等待60帧

完了。

自动执行会卡住是因为本来自动执行就会阻塞所有其他不自动执行的东西
并行处理会卡住是因为你执行的脚本太长,需要处理时间,但这个区间超过了1帧(默认1帧刷一次公共事件条件),而处理过程中没有让他不刷新的开关,结果陷入了无穷刷新呗

点评

非常感谢!正点!而且解释了卡住的原因,很棒!  发表于 2017-10-17 09:39

评分

参与人数 5星屑 +75 +4 收起 理由
余烬之中 + 75 认可答案
ggmmookk + 1 我喜欢你这样的人,把问题说的明明白白.
zmj945 + 1 认可答案
世界第一中二 + 1 塞糖
574656549 + 1 塞糖

查看全部评分

SailCat (小猫子·要开心一点) 共上站 24 次,发表过 11 篇文章 上 次 在: [2006年01月28日11:41:18 星期六] 从 [162.105.120.91] 到本站一游。
回复 支持 3 反对 0

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-12-2 14:36

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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