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

Project1

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

[推荐问答] 避免套娃!使用事件系统“条件分歧”指令的小技巧

[复制链接]

Lv5.捕梦者 (版主)

遠航の猫咪

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

开拓者

跳转到指定楼层
1
发表于 2020-6-13 17:15:34 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

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

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

x
本帖最后由 SailCat 于 2020-6-13 17:30 编辑

其实一直想写一下这个FAQ,自己遇到过这样的问题,也被提问过这样的问题,昨天看R叔的考场7解说有感而发,就整理一下吧。

RM的“条件分歧”指令(Conditional branch)是所有RM通用的基础指令,也是非常重要的一个。因为只有有了这个指令,我们才可以在事件执行列表中避开顺序结构,实现分支结构。当然,自带分支结构的指令如“显示选择项”“战斗处理”就不多说了。
但是这个指令的局限性很大,主要原因是,除非使用条件分歧里的脚本,否则一个“条件分歧”指令只能判定一项内容,并且对于除了金钱、步数、计时器以外的其他游戏对象数值性的判断,没有直接接口,只有“变量”这一个选择。
这就要求在使用条件分歧时,不得不用临时变量代入要判断的数值,然后再去判断,本来这也没什么。
但是如果是两个游戏对象数值相比较呢?(用两个变量就是了)
但是如果是两组游戏对象数值相比较呢?比如角色的X、Y,事件的X、Y(用四个变量就是了)
但是如果有多个条件要同时满足呢?
但是如果有多个条件要满足一个呢?
但是如果有多个条件对应多个分支呢?
这些要求都是挺常见的吧,但是如果没有技巧,就很容易写出套娃指令。
套娃指令一个是逻辑不好管理,另一个是套的层数多了以后,缩进多了,在编辑器里显示不完整了,这非常要命。

诚然变量5K个是用不完的,但是变量太多不利用工程管理,而且一个变量用完就扔也很浪费。
因此在这里,介绍一个使用“条件分歧”指令的技巧。说是使用这个指令的技巧,但是其实大部分技巧性内容和“条件分歧”这条指令本身没有任何关系,是使用其他相关指令的技巧为“条件分歧”来服务。
用到的指令主要有:变量操作、标签、标签跳转、中断事件处理
我自己在R7考场中使用了下面技巧中的部分,逐一解说一下:

1. 利用“加法原理”实现多重判断

2. 利用“乘法原理”实现多重判断(多个满足所有)

3. 利用变量复用技巧减少变量的使用数目

4. 卫语句处理,减少缩进

5. 多标签实现switch-case型判断(多分支)


好了,以上就是给大家分享的事件系统中使用“条件分歧”指令的小技巧,希望有用。

评分

参与人数 19星屑 +100 +19 收起 理由
ghostboy + 1 我很赞同
鑫の尘埃 + 1 我很赞同
miantouchi + 1 精品文章
冥墨幽 + 1 塞糖
涅炎 + 1 实践出真知
zyf722 + 1 精品文章
enghao_lim + 1 塞糖
Six_Fish + 1 赞美猫姐
ssrwkx + 1 精品文章
89444640 + 1 塞糖

查看全部评分

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

Lv4.逐梦者

梦石
1
星屑
14164
在线时间
5206 小时
注册时间
2017-2-18
帖子
390
2
发表于 2020-6-13 18:05:09 | 只看该作者
来学习了
回复 支持 反对

使用道具 举报

Lv5.捕梦者 (暗夜天使)

只有笨蛋才会看到

梦石
1
星屑
21666
在线时间
9418 小时
注册时间
2012-6-19
帖子
7118

开拓者短篇九导演组冠军

3
发表于 2020-6-13 23:44:44 | 只看该作者


我直接写了个脚本来处理嵌套地狱……

https://rpg.blue/home.php?mod=sp ... o=blog&id=13466

点评

VA有command_108是吧……XP默认系统没有,这就很扯了……  发表于 2020-6-14 23:30
回复 支持 2 反对 0

使用道具 举报

Lv5.捕梦者

梦石
0
星屑
35186
在线时间
4169 小时
注册时间
2007-12-15
帖子
10067
4
发表于 2020-6-14 08:51:12 | 只看该作者
1、2加朝向那个,现在是明白,撂爪就忘ORZ
3判断坐标我还真是4个一起ORZ,不过由于xp是先有坐标变化后有位移,模拟动作游戏的感觉极差,敌人没碰到就掉血,按照周围坐标来判断,敌人大小又不是矩形,无法做像素级别判断,所以放弃了。
4的住宿就是,分歧套很长,每次找都麻烦,以后换这个方法了,写好的就不折腾了。
5的那个根据变量去分歧,确实是好方法,菜刀给我的也是这个方法,把以前很多一两句话的公用事件,放在一起了。这样所有的道具调用公用事件全在这里,找起来方便多了
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
4598
在线时间
484 小时
注册时间
2017-7-7
帖子
139

R考场第七期纪念奖

5
发表于 2020-6-14 11:31:37 | 只看该作者
使用条件分歧避免套娃是怎么回事?条件分歧相信大家都很熟悉了,但是使用条件分歧避免套娃是怎么回事?下面就让小编带大家了解一下吧。使用条件分歧避免套娃,其实就是利用“加法”“乘法”原理实现多重判断、变量复用减少变量数目、卫语句减少缩进、多标签实现switch-case型判断的技巧,大家可能很惊讶,小编也非常惊讶呢。这就是关于使用条件分歧避免套娃的事情了,大家有什么想法呢,欢迎和小编一起讨论哦!
-
咳咳,开个玩笑
其实现在一看到,发现技巧都是会的,在很多地方看过,甚至标签跳转大法还是自己无师自通的
然鹅一转头这些都给忘了,一看就会一做就废好像就是用来形容我的
果然基本功不行,用得多不至于忘的,是自己过于怠惰了
总之赞美猫姐,然后对自己说声加油吧…
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
7981
在线时间
1183 小时
注册时间
2007-7-29
帖子
2055
6
发表于 2020-6-14 14:06:51 | 只看该作者
虽然自个儿用不上不过这个对很多新手中新手帮助很大,顶上去。
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
2
星屑
6687
在线时间
501 小时
注册时间
2018-3-23
帖子
533

R考场第七期银奖

7
发表于 2020-6-14 15:16:16 | 只看该作者
是真大佬!
(虽然我坑麻烦的流程都丢给脚本了23333
祝好。
回复 支持 反对

使用道具 举报

Lv5.捕梦者 (版主)

梦石
22
星屑
11957
在线时间
7455 小时
注册时间
2011-7-2
帖子
397

极短24评委极短23评委极短22评委R考场第七期纪念奖开拓者

8
发表于 2020-6-14 21:31:27 | 只看该作者
感谢分享!这是通过做工程的积累才能获得的可贵经验了。
【探索解谜游戏】《NULL》
-------------------------------------------------------------
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
14616
在线时间
2196 小时
注册时间
2019-1-24
帖子
1123

R考场第七期纪念奖

9
发表于 2020-6-14 22:44:58 | 只看该作者
哈哈,新手的想法是,眼睁睁看着大家套娃,看着也不得劲的样子,确无力反抗,只能用这套娃,因为不会别的!
这下好了,列出了这么多办法,如果以后遇到类似情况,应定要试试上面的方法!
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
3251
在线时间
181 小时
注册时间
2020-8-9
帖子
119
10
发表于 2021-7-20 22:51:24 | 只看该作者
判断某人和npc是否在一起那里为啥要乘512呀,如果判断标准是x,y坐标都相同的话,那不乘不是也可以得到相同的结果嘛
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-22 19:44

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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