找回密码
 点一下
查看: 1097|回复: 6

关于t中相同物品的判定

[复制链接]
发表于 2011-2-5 22:57:17 | 显示全部楼层 |阅读模式
请问我在"WorldEdit触发器(Trigger)浅析(不再更新)!"这贴中看到的相同物品的判定

条件:
(被操作物品) 不等于 ((触发单位) 所持有的 ((被操作物品) 的类型))

为什么是不等于呢,我的理解是等于,但实际操作也发现只有不等于才能成功.
发表于 2011-2-5 23:58:55 | 显示全部楼层
没有看函数,仅仅是猜想。

触发单位所持有的物品是
通过依次检查单位的1-6个物品栏,从中选取符合被操作物品类型的物品。

假如我获得了物品I000-1(每一个物品都有独自的内存地址),在检查时

物品是I000-1,【因为I000-1等于I000-1】,所以条件不满足。
物品是I000-2,【由于I000-1不等于I000-2】,所以这个条件成立。

这里的判断是“物品A”和“所持有的物品B”的判断,不是“物品A”和“物品A”的判断。

别忘了一个是“被操作物品”,另一个是“所持有的被操作物品类型物品
回复

使用道具 举报

发表于 2011-2-5 23:59:21 | 显示全部楼层
用“不等于”很好理解,如果单位拥有“不等于”被拾取的物品 的 其他物品 的话,那不就是有两个相同的物品了?

然而这个触发是错误的,实际上它并不能都正确判断单位是否有两个相同的物品,所以就不要深究了,跳过就行。

正确的触发如下:
[trigger]ShiQu
    事件
        单位 - 任意单位 获得物品
    条件
    动作
        For I 从 1 到 6, 做动作
            Loop - 动作
                如果所有条件成立则做动作1,否则做动作2
                    If - 条件
                        (((触发单位) 物品栏第 I 格的物品) 的类型) 等于 ((被操作物品) 的类型)
                        ((触发单位) 物品栏第 I 格的物品) 不等于 (被操作物品)
                    Then - 动作
                        英雄 - 丢弃 (被操作物品) ,从 (触发单位) 身上
                        游戏 - 对 (所有玩家) 发送文本信息: 你不能携带两...
                    Else - 动作
[/trigger]
回复

使用道具 举报

 楼主| 发表于 2011-2-6 13:26:20 | 显示全部楼层
多谢耐心解答,我再研究研究.
回复

使用道具 举报

发表于 2011-2-6 14:43:24 | 显示全部楼层
触发是没错的,其实他依然是使用循环判断的。

这就造成了,如果同类型的物品在身上,而在这个物品前面的物品栏有空。

那么就会先判断捡到的物品,因为已经填到那个空里去了。

所以这是一个比较省略的方式,用循环更精确一些。
回复

使用道具 举报

发表于 2011-2-6 15:26:24 | 显示全部楼层
就是因为此函数会优先获得前面的物品,所以才并不能正确判断物品是否有重复。
这已经不是省略了,而是根本无法达到想要的效果。
你还是修改下吧……
回复

使用道具 举报

发表于 2011-2-6 16:16:06 | 显示全部楼层
最近很忙……正式版的内容太多,忙得晕头转向的,再说修改也不容易。

演示这玩意就是提供思路的,我有些演示的思路比较特立独行吧,看懂了就好。

前几天顺手做了个演示,都是属于省略型的。

不受限制拾取叠加物品.w3x

15 KB, 下载次数: 13

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 点一下

本版积分规则

Archiver|移动端|小黑屋|地精研究院

GMT+8, 2024-11-24 17:43 , Processed in 0.077154 second(s), 21 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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