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

Project1

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

[有事请教] 请问能不能做一个假的GAMEOVER,如果能怎么做

[复制链接]

Lv2.观梦者

梦石
0
星屑
942
在线时间
64 小时
注册时间
2021-7-15
帖子
24
跳转到指定楼层
1
发表于 2021-7-19 18:34:11 | 只看该作者 |只看大图 回帖奖励 |正序浏览 |阅读模式

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

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

x
本帖最后由 xuexizhanghao 于 2021-7-19 20:12 编辑

对不起,大家说我写的太混乱了,于是我重新写一遍吧
总之先从第一个问题开始
有没有办法做到
先显示GAMEOVER图片(就是那个GAMEOVER界面的那个图)同时播放GAMEOVER的音乐,然后再回到标题界面,以此造成GAMEOVER的假象
其实在显示图片的时候完成移动到另一张地图并自动存档的操作
然后此后在标题界面打开继续游戏选项,进入那个存档,就会从那个前面提到的那个另一张地图继续游戏
以上这些用事件能否写出来
我自己写的倒是能自动存档,不过进去之后进行的内容是:那张图片还在,音乐也在播放,过一会标题界面了
总之就是,怎么弄才能在,从继续游戏的存档那里进去的时候,之前为了假装GAMEOVER而做的那一部分不进行了
……就是……剧情杀?
不知道我这次说清没有


后边是最开始发帖时写的,因为有人看过了我就不删了

就是一顿操作之后,显示GAMEOVER的图和GAMEOVER音乐,之后直接进标题界面
在显示图的期间自动存档,然后下次点继续游戏进这个自动存档的时候直接在一个新的地图继续游戏。
我的构思是从第二周目开始,每个周目最开始的时候把人移到一个专门的地图,然后在这个图里选本周目的操作角色,根据选的人不同,会进行完全不同的剧情。然后大概每周目结尾都会进行类似的操作(只不过是正经的结局ppt)
我看有一个yep的newgame+插件,不过我看形容好像是继承绝大部分数据,然后正常从头开始,感觉和我想做的不太一样
我这个应该是绝大部分都不继承,而且一周目和别的周目是完全不一样的(起始地点都不一样),还是说,做成如果是一周目直接跳到另一个地图开始?
不过我这个周目是不是和传统意义上说的几周目不太一样啊……另外,如果可能的话我还真的确实希望之后各个周目都是从继续游戏进去,啊不过要是是在难只要不是从“开始游戏”进去就行,(因为那个选项我想做成会重置游戏的,哦,对了,如果用了插件,我这个要怎么写,我会写1~20号存档删除,就这个就行了吗?还是还要加别的)

另外还有一件事,我要是想GAMEOVER(正常的GAMEOVER)之后,得到某个物品,然后再打开GAMEOVER之前读取的那个存档的时候直接放进包里,是要怎么做?插件吗?

就是这样,我的问题有点多,我表达还不好,如果我有哪里说的不清楚或者说了不好的话请告诉我,我先说句对不起。谢谢大家

Lv2.观梦者

梦石
0
星屑
942
在线时间
64 小时
注册时间
2021-7-15
帖子
24
20
 楼主| 发表于 2021-7-20 16:00:44 | 只看该作者
本帖最后由 xuexizhanghao 于 2021-7-20 16:01 编辑
开关关 发表于 2021-7-20 15:22
我在7楼发的方法不会受到DataManager.maxSaveFiles的限制,放心用就行。

怕冲突,试试不就知道了。我用 ...


谢谢,多谢二位的教导终于成功了,感谢我这么蠢你们还耐心教我。

顺便问一句,按我一楼所说的,正常死亡后如果我想在再再读档的时候获得某个物品是不是也是类似的思路?
就是比如说,人物摔死了,就StorageManager.save(10,"摔死"),
完后每个存档点的的事件的“打开存档画面”的下一行写“如果StorageManager.load(10)=="摔死"就“增加物品:小心坠崖”“然后删掉这个存档10
如果StorageManager.load(10)=="吃得太多"就增加物品:饱腹之余,然后删掉存档10
之类的,我的思路对吗(我系统设置那里设的菜单上没有存档选项,只能用存档点,然后特殊物品当做成就列表用)

QQ截图20210720160121.png (49.06 KB, 下载次数: 10)

QQ截图20210720160121.png
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
7570
在线时间
665 小时
注册时间
2012-7-29
帖子
174
19
发表于 2021-7-20 15:22:37 | 只看该作者
本帖最后由 开关关 于 2021-7-20 15:41 编辑
xuexizhanghao 发表于 2021-7-20 14:51
这个倒是可以,但是GAMEOVER以后要是重启游戏再进1号存档就会aaa is not defind
话说我忽然想到 ...


我在7楼发的方法不会受到DataManager.maxSaveFiles的限制,放心用就行。

怕冲突,试试不就知道了。我用的工程存档上限是20,测试用存档判定,存档编号是12345,照样没问题。

$gameSystem.onBeforeSave() 是存档的步骤之一,你可以去掉试试,看看报不报错。什么都是可以试出来的。
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
942
在线时间
64 小时
注册时间
2021-7-15
帖子
24
18
 楼主| 发表于 2021-7-20 14:51:31 | 只看该作者
xuexizhanghao 发表于 2021-7-20 13:39
我把所有的“变量17=1”改成了“脚本:aaa==1”然后进游戏测试,他说aaa is not defind
之后我试着在自动 ...

这个倒是可以,但是GAMEOVER以后要是重启游戏再进1号存档就会aaa is not defind
话说我忽然想到onbeforesave那句其实是不是没啥用……

QQ截图20210720143136.png (51.16 KB, 下载次数: 14)

QQ截图20210720143136.png
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
942
在线时间
64 小时
注册时间
2021-7-15
帖子
24
17
 楼主| 发表于 2021-7-20 14:48:32 | 只看该作者
本帖最后由 xuexizhanghao 于 2021-7-20 14:58 编辑
小怪兽奇奇侠 发表于 2021-7-20 13:57
...var声明变量会让变量变成局部变量。注意一个等号两个等号的区分后,不用var还出现not defined的话,可以 ...


对,对不起
其实我只是担心用存档判定和我存档上限1是不是冲突
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
11175
在线时间
2066 小时
注册时间
2013-6-10
帖子
1516
16
发表于 2021-7-20 13:57:41 | 只看该作者
本帖最后由 小怪兽奇奇侠 于 2021-7-20 14:15 编辑

...var声明变量会让变量变成局部变量。注意一个等号两个等号的区分后,不用var还出现not defined的话,可以在本页事件头部定义aaa=0。


开关关同志说的问题其实也是真实存在的,一旦销毁窗口变量也会跟着销毁,实在不想用存档判定的话...你自己想办法吧。。。

回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
942
在线时间
64 小时
注册时间
2021-7-15
帖子
24
15
 楼主| 发表于 2021-7-20 13:39:04 | 只看该作者
开关关 发表于 2021-7-20 12:50
11楼截图中的执行内容大致没问题,不过出了点小偏差。6楼说的是用脚本新建一个变量,名字叫“aaa”,而不 ...

我把所有的“变量17=1”改成了“脚本:aaa==1”然后进游戏测试,他说aaa is not defind
之后我试着在自动保存那句之前加了一句
var aaa
aaa=0
但是还是报这个错,我想试着全都写进一个脚本,但是貌似有行数限制
对不起我不太会编程,请问我是哪里落了什么吗

QQ截图20210720133834.png (173.75 KB, 下载次数: 12)

QQ截图20210720133834.png

点评

看到小怪兽奇奇侠同志在16楼的说法,我发现刚刚回复的搞错了。_(:з」∠)_ 自动保存之前那句应该去掉第一行,直接改成“aaa = 0”。  发表于 2021-7-20 14:07
var会让变量变成局部变量,js不要求分号,具体办法看下一楼  发表于 2021-7-20 14:05
解决方法:把第一段脚本改成“var aaa = 0;” 就像文字的句号,脚本每一句的句末应该加个分号“;”。如果只有一句,就可以省略分号。  发表于 2021-7-20 13:59
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
7570
在线时间
665 小时
注册时间
2012-7-29
帖子
174
14
发表于 2021-7-20 12:50:24 | 只看该作者
本帖最后由 开关关 于 2021-7-20 13:03 编辑
xuexizhanghao 发表于 2021-7-20 12:07
我看了你和七楼,请问是这么写吗?
我试了一下,从自动存档进去之后还是GAMEOVER图,然后回标题画面 ...


11楼截图中的执行内容大致没问题,不过出了点小偏差。6楼说的是用脚本新建一个变量,名字叫“aaa”,而不是用事件里的变量。13楼也说得很清楚了。

只需稍微改一下,就是6楼说的方案。


“变量操作:#0017已播放结局 = 1”
改成
“脚本:aaa = 1”


“如果:已播放结局 = 1”
改成
“如果:脚本:aaa == 1”

要注意赋值的时候用单个等号“=”,条件判断要用两个等号“==”哦。
改完了,运行下试试。O(∩_∩)O

另外,我在7楼之所以不用全局变量,而是用写入硬盘的存档,是考虑到一个问题。如果不写入硬盘,重启游戏会导致全局变量直接清空。
玩家如果打完假结局,回到了标题,还没读档,就直接退出了游戏,那么下次进入游戏的时候,全局变量就没了,此时读档就会再进一次假结局。这会造成玩家误以为没有真结局。换做用存档来记录是否已经通过了假结局,就可以保证即使重启游戏,也不会出问题。
7楼截图的事件是测试无误的。
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
11175
在线时间
2066 小时
注册时间
2013-6-10
帖子
1516
13
发表于 2021-7-20 12:14:25 | 只看该作者
xuexizhanghao 发表于 2021-7-20 12:07
我看了你和七楼,请问是这么写吗?
我试了一下,从自动存档进去之后还是GAMEOVER图,然后回标题画面 ...

我说的变量,不是用事件设置的变量。我一直在说事件脚本,就是你设置自动存档用的事件脚本,在那里边写aaa=1,替换掉你的变量操作#0017=1,条件分歧的条件改成脚本aaa==1,这样子就可以了。
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
942
在线时间
64 小时
注册时间
2021-7-15
帖子
24
12
 楼主| 发表于 2021-7-20 12:10:47 | 只看该作者
开关关 发表于 2021-7-19 23:59
这是我的实现方法:

我因为想完全做好游戏之后在开头的时候
DataManager.maxSavefiles = function() {
     return 1;
};
我怕冲突所以用的变量,但是好像不太行(11楼),或者是我没理解你们的意思还是没写对吗

点评

我在7楼发的方法不会受到DataManager.maxSaveFiles的限制,放心用就行。  发表于 2021-7-20 12:33
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-18 09:22

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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