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

Project1

 找回密码
 注册会员
搜索
查看: 7466|回复: 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.捕梦者

梦石
0
星屑
36367
在线时间
10781 小时
注册时间
2009-3-15
帖子
4813
2
发表于 2021-1-10 19:45:32 | 只看该作者
本帖最后由 soulsaga 于 2021-1-10 20:23 编辑

看了一下.好像逻辑没理对呢

一个技能、触发公共事件
公共事件是判断变量是否满足,希望达到的效果是,如果变量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
  中断事件
  结束
结束
  如果变量B>0
   如果变量C>0
    强制战斗行动:主角,技能B
   中断事件
   结束
  结束
如果变量A>0
如果变量B==0
  如果变量C==0
   强制战斗行动:主角,技能C
中断事件
  结束
结束
结束
如果变量A==0
如果变量B>0
  如果变量C==0
   强制战斗行动:主角,技能C
中断事件
  结束
结束
结束
如果变量A==0
如果变量B==0
  如果变量C>0
   强制战斗行动:主角,技能C
中断事件
  结束
结束
结束
  强制战斗行动:主角,技能D

还有..>1跟>0是不同的..别搞到我这么混乱..
回复 支持 反对

使用道具 举报

Lv5.捕梦者

梦石
0
星屑
36367
在线时间
10781 小时
注册时间
2009-3-15
帖子
4813
3
发表于 2021-1-10 19:53:29 | 只看该作者
不小心连帖.求删
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
305
在线时间
20 小时
注册时间
2020-11-1
帖子
37
4
 楼主| 发表于 2021-1-11 09:33:10 | 只看该作者
soulsaga 发表于 2021-1-10 19:45
看了一下.好像逻辑没理对呢

一个技能、触发公共事件

那个==0是啥意思?>1和>0不同我知道啊,然后你写的我也没看明白啊……
你的意思是单单量判断时,需要先判断另两个变量为0?
那在逻辑里不做另外2个的判断不是一样的吗?

点评

>0  发表于 2021-1-11 12:36
你上面写>1 下面>.0 是想写两种吗  发表于 2021-1-11 12:35
等於0的意思  发表于 2021-1-11 12:15
回复 支持 反对

使用道具 举报

Lv5.捕梦者

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

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

使用道具 举报

Lv5.捕梦者

梦石
0
星屑
22923
在线时间
8637 小时
注册时间
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
回复 支持 反对

使用道具 举报

Lv2.观梦者

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

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

使用道具 举报

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
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
这样标一下数字来梳理不同变量的对应关系就可以轻松的控制触发方向和条件了

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

使用道具 举报

Lv5.捕梦者

梦石
10
星屑
39587
在线时间
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
    结束
  结束
结束

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

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-10 21:36

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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