dmxayjn 发表于 2022-12-21 16:07

c++判断求助!!!!!!!!

本帖最后由 dmxayjn 于 2022-12-21 17:35 编辑

                if (!pUser->HasBuff(BUFF_ITEM2,II_SYS_SYS_SCR_DOUPOCQNGQ))
                {
                        pUser->AddText("未检测到BUFF,禁止使用");
                        return;
                }


以上代码可以正常判断道具buff ,有BUFF就跳过,没有BUFF就禁止使用
这个BUFF道具是30天的



我又给加了1个7天道具BUFF ,然后把7天的BUFF道具也加进去后,代码就不行了,
                if (!pUser->HasBuff(BUFF_ITEM2,II_SYS_SYS_SCR_DOUPOCQNGQ) || !pUser->HasBuff(BUFF_ITEM2,II_SYS_SYS_SCR_DOUPOCQNGQ7) )
                {
                        pUser->AddText("未检测到BUFF,禁止使用");
                        return;
                }





谢谢各位大神回答

2楼的代码应该是正确的,但是问题还是没解决,应该是我添加的7天的这个道具buff有问题,暂时先这样吧,谢谢各位大佬回答

Broadm 发表于 2022-12-21 16:25

两个都没有才跳过的话 , 要用 &&
if (!pUser->HasBuff(BUFF_ITEM2,II_SYS_SYS_SCR_DOUPOCQNGQ) && !pUser->HasBuff(BUFF_ITEM2,II_SYS_SYS_SCR_DOUPOCQNGQ7) )
                {
                        pUser->AddText("未检测到BUFF,禁止使用");
                        return;
                }

Beliven 发表于 2022-12-21 16:26

代码不行是什么意思,逻辑和预期不符吗?你预期应该是怎样的?

dmxayjn 发表于 2022-12-21 16:26

Broadm 发表于 2022-12-21 16:25
两个都没有才跳过的话 , 要用 &&
if (!pUser->HasBuff(BUFF_ITEM2,II_SYS_SYS_SCR_ ...

我的意思是,这30天的 和 这个7 天的,只要有其中1个buff ,就跳过

Broadm 发表于 2022-12-21 16:31

只要有一个就跳过的话,应该这样
        if (pUser->HasBuff(BUFF_ITEM2, II_SYS_SYS_SCR_DOUPOCQNGQ) || pUser->HasBuff(BUFF_ITEM2, II_SYS_SYS_SCR_DOUPOCQNGQ7))
        {
                pUser->AddText("已经有一个buf了");
                return;
        }

dmxayjn 发表于 2022-12-21 16:35

Broadm 发表于 2022-12-21 16:25
两个都没有才跳过的话 , 要用 &&
if (!pUser->HasBuff(BUFF_ITEM2,II_SYS_SYS_SCR_ ...

用且的话,就2个必须都要有了。。

DuSuCyy 发表于 2022-12-21 16:37

那就是用或啊,两个一起判断,有其中一个就跳过

dmxayjn 发表于 2022-12-21 16:37

Broadm 发表于 2022-12-21 16:31
只要有一个就跳过的话,应该这样
        if (pUser->HasBuff(BUFF_ITEM2, II_SYS_SYS_SCR_ ...

大哥,这样改的话,有1个就执行这个返回了。。。是想让他跳过这个返回

Broadm 发表于 2022-12-21 16:40

dmxayjn 发表于 2022-12-21 16:37
大哥,这样改的话,有1个就执行这个返回了。。。是想让他跳过这个返回

我的意思是,这30天的 和 这个7 天的,只要有其中1个buff ,就跳过
这个代码就是这个意思. 所以你的意思不是这个?

dmxayjn 发表于 2022-12-21 16:42

DuSuCyy 发表于 2022-12-21 16:37
那就是用或啊,两个一起判断,有其中一个就跳过

我就是写了 或, 然后不行
页: [1] 2 3
查看完整版本: c++判断求助!!!!!!!!