gm剧情制作问题
gamemaker吧
全部回复
仅看楼主
level 1
(可能是作为新手最后一次的疑问了,所以并不想在新人贴里问
现在需要开始搞剧情了
有没有比较好的编程逻辑思路?
2021年10月02日 22点10分 1
level 1
话说应该没有人以为我在问剧情内容吧?
2021年10月02日 22点10分 2
level 4
问一个无关的问题。请问,房间跳转有什么需要注意的吗?为什么我写入room goto next后按下按键没有反应
2021年10月08日 02点10分 3
这个函数的next room好像是看你asset browser房间编号,对我来说很不方便,房间跳转不用它的吧,我用的是room goto 房名
2021年10月24日 15点10分
level 15
是rpg类型么
2021年10月08日 10点10分 4
是的
2021年10月24日 15点10分
吧务
level 13
剧情逻辑么……
能把这两件事关键起来的,是一组变量,用来标记“剧情相关事件的状态”,甚至可以叫做flag。
场景内的摆放、NPC是否出现、是否强制剧情动画/对话、特定NPC对话内容及是否出现选项,都由这些flag决定,同时玩家决策会影响这些flag值。至于编程方面大约就是赋值和if的事。
2021年10月09日 06点10分 5
我好像没搞啥flag,但设置了一个房间进入计数器,如果没进这个房间(为0)就触发某剧情
2021年10月24日 15点10分
@待到_花落时 能实现,但以后扩展性不如flag模式。毕竟有些场景的情况并不只有“首次进入”和“以前来过”两种情况。
2021年10月25日 02点10分
@q糖豆p 你忘了还能计数,至于更加其它的情况,直接判断就好了
2021年10月25日 09点10分
@待到_花落时 突然想起了之前把“flag”集中管理的目的,是存档/读档方便。存档文件数据就分成了队伍/人物/装备和物品/flag几大块。首次进入房间触发剧情用flag就足够了,计数的话一般是为了“第X次进入”/“进入数大于Y”之类的情况使用,可以认为是鼓励或防止玩家不停进门出门的方法。
2021年11月08日 00点11分
level 15
正好我也有一个未完成的ARPG工程,可以拿来参考。
针对这个问题,首先是设置一个全局变量process,用来记录主线剧情的进度,比如0是初始,5000是结束,而中间的过程就是介于二者之间了。而且这个值不需要连续,比如100之后就跟着150,这样方便以后插入剧情。
除了主线剧情的进度,还有一个数组来表示支线进度。支线进度和主线是无关的。在这里,我用了64个支线进度,实际中可能用得更少。
GM可以设置在进入房间时执行的命令,这个时候就可以根据进度值来决定改变NPC的位置、删除NPC了。
对话命令写在scripts中。每一个脚本的底层是一个switch语句,根据输入的编号来执行不同的命令。脚本中可以设置任何方法,包括显示对话框、改变进程、创建怪物、传送等。
使用不同脚本的原因是房间、NPC很多,如果全写一起的话这个脚本会过于庞大,也不便于编号分配。通常一个房间用一个脚本,但也可以几个小的房间共用一个。此外对于一些特殊对话(比如存档人、商店),可以设置一个专用的脚本。
对话则是在各个NPC上设置的,包括两个属性talk_script和talk_index。前者表示对话命令的脚本,后者表示脚本中的对话编号。NPC可以是碰撞触发,也可以是接近后按下对话键触发。
而根据当前对话框的状态,也可以用和开始对话相似的方法设置一句话结束后接续的命令。——即如果当前没有对话框,则进入第一句对话,否则进入当前对话编号对应的下一句。这种方式也可以用于做出选择时,不同选项的结果。
对于杀怪行为,我们在创建了boss的生命条后,也会为其设置talk_script和talk_index,可以在对应敌人的生命值耗完后触发命令。
顺带一提、我这里的对话文本都是写在ini里面的,通过编号进行调用。而这些数据在游戏开始时读取一次,然后保存在了list数据中,这样就不会在存档时连文本也存进去了。
2021年10月25日 03点10分 6
我觉得似乎弄个统计记录表会方便更多,无论是作为判断依据还是保存写入都很方便,后期还可以用于数据分析(大数据doge
2021年10月25日 09点10分
虽然我之前也考虑过用剧本,但是后来觉得这样自由度不高了,如果又分主线支线,就更不自由了
2021年10月25日 09点10分
@待到_花落时 统计表内容是啥[托腮]
2021年10月25日 09点10分
@开不了车 就是你游戏的各种记录,比如进入过什么房间,进了几次,和谁对过话,对了几次,做了哪些对话选择(便于分析性格),拿过那些道具,其它更复杂的等等
2021年10月25日 09点10分
1