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

Project1

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

[有事请教] 关于公共事件分歧条件的问题

[复制链接]

Lv2.观梦者

梦石
0
星屑
305
在线时间
20 小时
注册时间
2020-11-1
帖子
37
跳转到指定楼层
1
发表于 2021-1-10 19:37:51 | 只看该作者 回帖奖励 |正序浏览 |阅读模式

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

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

x
一个技能、触发公共事件
公共事件是判断变量是否满足,希望达到的效果是,如果变量ABC>1,则触发技能A,如果变量AB&BC>1,则触发技能B,如果变量A&B&C只有一种>1,则触发技能C,都<1,则触发技能D
现在的写法是:
如果变量A>0
如果变量B>0
  如果变量C>0
   强制战斗行动:主角,技能A
  结束
结束
否则
如果变量B>0
  如果变量A>0
   强制战斗行动:主角,技能B
  否则
   强制战斗行动:主角,技能C
  结束
否则
  如果变量A>0
   如果变量C>0
    强制战斗行动:主角,技能B
   否则
    强制战斗行动:主角,技能C
   结束
  否则
   如果变量C>0
    如果变量B>0
     强制战斗行动:主角,技能B
    否则
     强制战斗行动:主角,技能C
    结束
   否则
  强制战斗行动:主角,技能D
  结束
结束
结束
现在的情况是,什么都不会发生……

Lv5.捕梦者

梦石
10
星屑
39597
在线时间
1920 小时
注册时间
2010-11-14
帖子
3320

R考场第七期纪念奖

13
发表于 2021-1-16 13:24:40 | 只看该作者
阿步abu 发表于 2021-1-16 10:58
确实有效呃……
算是学习到了……
不过在写代码逻辑的时候,你这样会显得很笨……会增加后台读 ...

对于一个多人合作的项目来说,读代码的时间往往是写代码的2倍以上。
怎么写得让读的人容易看懂,比写得效率高但不易看懂要更重要。
人不是神,写的越多错的越多,如果错了回头排查的时候看不懂,会消耗更多的时间。
相比之下,一两条指令带来的读取时间可以忽略不计。
做RM游戏又不需要高并发,不用在乎这几微秒的优化。

点评

打错..是赞同..  发表于 2021-1-16 14:37
质同大佬  发表于 2021-1-16 13:47
用头画头像,用脚写脚本
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
305
在线时间
20 小时
注册时间
2020-11-1
帖子
37
12
 楼主| 发表于 2021-1-16 10:58:11 | 只看该作者
KB.Driver 发表于 2021-1-15 20:43
这样虽然你现在理清楚了,后续维护的人可就头疼了。
条件复杂的情况下,尽量做到扁平化

确实有效呃……
算是学习到了……
不过在写代码逻辑的时候,你这样会显得很笨……会增加后台读取时间……如果你之后从事程序开发行业的话,会明白的……

点评

我给你的例子就差不多是这样的..你的要求不适合用太多否则..很烦..  发表于 2021-1-16 12:22
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
305
在线时间
20 小时
注册时间
2020-11-1
帖子
37
11
 楼主| 发表于 2021-1-16 08:50:06 | 只看该作者
KB.Driver 发表于 2021-1-15 20:43
这样虽然你现在理清楚了,后续维护的人可就头疼了。
条件复杂的情况下,尽量做到扁平化

逐条罗列是可以依序判定触发的吗?我等会试一下再回来回复你……
然后就是为了不使用脚本才这样的……
回复 支持 反对

使用道具 举报

Lv5.捕梦者

梦石
10
星屑
39597
在线时间
1920 小时
注册时间
2010-11-14
帖子
3320

R考场第七期纪念奖

10
发表于 2021-1-15 20:43:21 | 只看该作者
本帖最后由 KB.Driver 于 2021-1-15 20:45 编辑
阿步abu 发表于 2021-1-15 18:27
……OK,还是我自己搞定了……遇到多分歧的时候,拿出纸笔就好了……
这个问题中,涉及到3种变量,共8种不 ...


这样虽然你现在理清楚了,后续维护的人可就头疼了。
条件复杂的情况下,尽量做到扁平化

用脚本的话方法就很多了,但是对于纯事件,一个技巧就是“合理控制流程、减少条件嵌套”


如果 A > 0
  如果 B > 0
    如果C > 0
      // 结果1 必要时可在里面最后一句加上"中止事件处理"用于防止后面的代码被误触发
    结束
  结束
结束

如果 A > 0
  如果 B > 0
    如果C < 0
      // 结果2
    结束
  结束
结束

像这样罗列,虽然总体长度增加,但是每一种结果都能看得很清楚。
用头画头像,用脚写脚本
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
305
在线时间
20 小时
注册时间
2020-11-1
帖子
37
9
 楼主| 发表于 2021-1-15 18:27:30 | 只看该作者
……OK,还是我自己搞定了……遇到多分歧的时候,拿出纸笔就好了……
这个问题中,涉及到3种变量,共8种不同的分歧结果,变量分别为ABC
如果A>0——No.1
  如果B>0——No.2
    如果C>0——No.3
      强制发生战斗(或所需效果)//这里=ABC同时生效的技能或情况——结果1
    否则//(这里=AB>0,但C≯0)——No.3
      强制发生战斗(或所需效果)//这里=AB同时生效的技能或情况——结果2
    结束——No.3
  否则//这里=(A>0,但BC≯0)——No.2
    强制强制发生战斗(或所需效果)//这里=A生效的技能或情况——结果3
  结束——No.2
否则——No.1
  如果B>0——No.4
    如果C>0——No.5
      强制强制发生战斗(或所需效果)//这里=BC同时生效的技能或情况——结果4
    否则//这里=(B>0,但C≯0)——No.5
      强制发生战斗(或所需效果)//这里=B生效的技能或情况——结果5
    结束——No.5
  否则//这里=(B≯0)——No.4
    如果C>0——No.6
      如果A>0——No.7
        强制强制发生战斗(或所需效果)//这里=AC同时生效的技能或情况——结果6
      否则//这里=C>0,但A≯0)——No.7
        强制强制发生战斗(或所需效果)//这里=C生效的技能或情况——结果7
      结束——No.7
    否则//这里=(C≯0)——No.6
      强制强制发生战斗(或所需效果)//这里=ABC都不生效时触发的技能或情况——结果8
    结束——No.6
  结束——No.4
结束——No.1
这样标一下数字来梳理不同变量的对应关系就可以轻松的控制触发方向和条件了

希望对做多分歧的小伙伴有所帮助
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
305
在线时间
20 小时
注册时间
2020-11-1
帖子
37
8
 楼主| 发表于 2021-1-11 18:52:43 | 只看该作者

大佬……那个……
公共事件里怎么写公式……?
而且公式成立之后……技能的触发要怎么挂啊……?
=。。= 我需要在游戏进程中通过操作来叠加ABC这3种变量……当变量>0时有效,但>0并不是要=1呃……也可能在变量等于100之后再触发该技能……
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
305
在线时间
20 小时
注册时间
2020-11-1
帖子
37
7
 楼主| 发表于 2021-1-11 18:46:46 | 只看该作者
soulsaga 发表于 2021-1-11 12:14
你不做另外两个的判断那不管是0还是1都符合了..

写错了,都>0就好……
回复 支持 反对

使用道具 举报

Lv5.捕梦者

梦石
0
星屑
23068
在线时间
8648 小时
注册时间
2011-12-31
帖子
3367
6
发表于 2021-1-11 14:21:45 | 只看该作者
本帖最后由 tseyik 于 2021-1-11 14:38 编辑


X=0
X=X+(A>0)*1
X=X+(B>0)*2
X=X+(C>0)*3
如果变量ABC都是>1,那X會6
若如果变量A&B&C只有一种>1,那X是1/2/3
都<1,那X會是0
但变量AB&BC>1,X會3或5,AB>1會和C>0一様
為了避免這樣把X=X+(C>0)*3改成X=X+(C>0)*2.5

X=0
X=X+(A>0)*1
X=X+(B>0)*2
X=X+(C>0)*2.5
如果变量ABC都是>1,那X會5.5
若如果变量A&B&C只有一种>1,那X是1/2/2.5
都<1,那X會是0
变量AB&BC>1,X會3或4.5
最後就可用X判断
X=0,ABC都不成立,
X>0&X<3就是变量ABC只有一种成立
X=3&X<4.5,变量AB&BC其中一种成立(AC成立是3.5,也包括了)
X=5.5,变量ABC都成立

点评

喔喔...没事了, 当我没点评过好了~~  发表于 2021-1-11 14:45
纯事件那来的小数??  发表于 2021-1-11 14:43
回复 支持 反对

使用道具 举报

Lv5.捕梦者

梦石
0
星屑
36596
在线时间
10834 小时
注册时间
2009-3-15
帖子
4817
5
发表于 2021-1-11 12:14:58 | 只看该作者
阿步abu 发表于 2021-1-11 09:33
那个==0是啥意思?>1和>0不同我知道啊,然后你写的我也没看明白啊……
你的意思是单单量判断时,需要先 ...

你不做另外两个的判断那不管是0还是1都符合了..
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-12-25 00:25

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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