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

关于重置商店商品CD的问题

[复制链接]
发表于 2009-9-12 19:35:34 | 显示全部楼层 |阅读模式
[trigger]
shandianshu
    事件
    条件
        ((被操作物品) 的类型) 等于 |cffC8B582闪电术|R
    动作
        如果所有条件成立则做动作1,否则做动作2
            If - 条件
                ((触发单位) 的类型) 等于 兔子
            Then - 动作
                玩家 - 增加 100 ((触发单位) 的所有者) 的 现有黄金
                游戏 - 对 (转换 ((触发单位) 的所有者) 为玩家组) 发送文本信息: 不是英雄请不...
            Else - 动作
                如果所有条件成立则做动作1,否则做动作2
                    If - 条件
                        AJN1_shandian[(((触发单位) 的所有者) 的玩家索引号)] 等于 0
                        AJN_heronum[(((触发单位) 的所有者) 的玩家索引号)] 小于 2
                    Then - 动作
                        设置 AJN_heronum[(((触发单位) 的所有者) 的玩家索引号)] = (AJN_heronum[(((触发单位) 的所有者) 的玩家索引号)] + 1)
                        单位 - 添加 闪电术  给 (触发单位)
                        设置 AJN1_shandian[(((触发单位) 的所有者) 的玩家索引号)] = 1
                    Else - 动作
                        如果所有条件成立则做动作1,否则做动作2
                            If - 条件
                                AJN1_shandian[(((触发单位) 的所有者) 的玩家索引号)] 等于 1
                            Then - 动作
                                单位 - 提升 闪电术  等级对 (操作物品的单位)
                                设置 AJN1_shandian[(((触发单位) 的所有者) 的玩家索引号)] = 2
                            Else - 动作
                                如果所有条件成立则做动作1,否则做动作2
                                    If - 条件
                                        AJN1_shandian[(((触发单位) 的所有者) 的玩家索引号)] 等于 2
                                    Then - 动作
                                        单位 - 提升 闪电术  等级对 (操作物品的单位)
                                        设置 AJN1_shandian[(((触发单位) 的所有者) 的玩家索引号)] = 3
                                    Else - 动作
                                        如果所有条件成立则做动作1,否则做动作2
                                            If - 条件
                                                AJN1_shandian[(((触发单位) 的所有者) 的玩家索引号)] 等于 3
                                            Then - 动作
                                                单位 - 提升 闪电术  等级对 (操作物品的单位)
                                                设置 AJN1_shandian[(((触发单位) 的所有者) 的玩家索引号)] = 4
                                            Else - 动作
                                                如果所有条件成立则做动作1,否则做动作2
                                                    If - 条件
                                                        AJN1_shandian[(((触发单位) 的所有者) 的玩家索引号)] 等于 4
                                                    Then - 动作
                                                        玩家 - 增加 100 ((操作物品的单位) 的所有者) 的 现有黄金
                                                        游戏 - 对 (转换 ((操作物品的单位) 的所有者) 为玩家组) 发送文本信息: 您的技能到顶...
                                                    Else - 动作
                                                        玩家 - 增加 100 ((触发单位) 的所有者) 的 现有黄金
                                                        游戏 - 对 (转换 ((操作物品的单位) 的所有者) 为玩家组) 发送文本信息: 您只能在此处...
                                                        中立建筑 - 删除 |cffC8B582闪电术|R 从 (贩卖者)
                                                        中立建筑 - 添加 |cffC8B582闪电术|R 到 (贩卖者) 并设置库存量: 1 最大库存量: 1
[/trigger]
如图(注册事件的T我就不贴了,都知道是咋回事),我想达到的目的是一个商店只能贩卖给同一个玩家的英雄两个技能(当然,这个图一个玩家只能有一个英雄)。当此处学习的技能达到两个,商店就会说:你只能在此处学习两个技能。并且不出售给英雄技能。而原有技能继续通过购买升级则没有问题。这本来已经基本实现了这些功能。只是我发现在玩家购买第三个技能时,虽然金钱不会减少(也就是最后一个ELSE里增加金钱的动作执行了),游戏也会提示:您只能在此处学习两个技能(也就是第二个动作也执行了),但是物品会处于CD状态(我为了略作限制,一个玩家学习了技能,该技能物品就会处于CD状态),这下不是乱套了么?想象一个恶意玩家自己学习了技能,然后把所有技能乱点一通,这下谁都学不到了。于是我想通过删除和添加物品的方式来结束这个CD。

于是我知道只有触发器添加的物品才能删除,我也知道该商店单位必须具有“出售物品”技能。这些方面我全部以及确定都注意了。但是最后一个ELSE的最后两个动作还是无法顺利触发。为何物品无法删除?

我尝试过:当物品是商店本来就具有的时候,似乎能正常添加
                    删去了最后一个添加的动作,物品并不会被删除,也就是说并不是已经添加删除了,只是CD不会因此消失的原因。

那么我就郁闷了。难道删除某类型的物品出售,不是只注意物品必须是触发器添加的、商店必须具有“出售物品”技能着两点么?难道还有其他的因素制约了这个动作的执行?

----------------------
刚刚还测试了:将删除的动作设置为“删除所有商店”的物品,可以正确删除,是否能正确添加待测试。
---------------------
经测试,将动作设置为“添加物品到所有商店”,物品可添加,但是CD依然在(我也知道这样写会添加给那些我不想添加的商店,但是就是试试这个办法能否重置CD,看来不行)。我该如何才能达到重置CD的目的呢?。。。
发表于 2009-9-13 10:06:11 | 显示全部楼层
确认商店有出售物品技能的话,删除应该是不会有问题的

你可以用输出文本语句来调试看看是否正确执行到你所要的分支
回复

使用道具 举报

 楼主| 发表于 2009-9-13 15:04:19 | 显示全部楼层
恩,诚如所言,可以正确添加删除。不过CD会很遗憾的保留沿用。无法达到我希望的重置物品CD的效果。。。
回复

使用道具 举报

发表于 2009-9-13 15:31:45 | 显示全部楼层
不能吗??
那么就用两个物品吧,一个无CD一个有CD
要消除CD就用无CD的
要重置CD就用有CD的
回复

使用道具 举报

 楼主| 发表于 2009-9-13 15:54:51 | 显示全部楼层
我初步想像了一下这个方法:当一个玩家恶意点击其他自己无法学习的技能,这些技能触发了替换物品的动作,于是这些物品实际上被替换成了另外一个无CD的同名物品。然后其他玩家(还未学满两个技能的)学习此技能(也就是购买此物品)后,是否就不会出现物品CD了呢?因为我只是想防止别人恶意点击,正常的CD还是想保留的。
回复

使用道具 举报

发表于 2009-9-13 16:20:28 | 显示全部楼层
当其他玩家(还未学满两个技能的)学习此技能(也就是购买此物品)后,替换此技能为有CD的技能,并建立马甲单位购买此技能(为了建立CD)
也就是说有CD的物品其实是马甲物品它只是为了显示CD,CD一到就替换它为无CD技能。。。

真麻烦啊 不知道有没有别的方法
回复

使用道具 举报

 楼主| 发表于 2009-9-13 16:46:42 | 显示全部楼层
恩,似乎你这样虽然麻烦,但是可以达到要求。。。。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-25 21:15 , Processed in 0.033320 second(s), 18 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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