找回密码
 点一下
查看: 863|回复: 9

在我的努力下,这个问题破了一半,还有一半我实在没辙了

[复制链接]
发表于 2011-10-6 01:45:58 | 显示全部楼层 |阅读模式
QQ截图20111006013626.jpg
如图所示,我的选择英雄的触发器。
我的逻辑是,
选中A单位一次,判断变量{鼠标点击},初始为1,小于2,执行第一个动作组
再次选中A单位,判断变量,上一个动作为变量+1了,所以此时不小于2,执行第二个动作组
创建英雄为刚才触发的单位

这时候有个问题我百思不解,
就是我有A,B,C三个单位,我无论选择A多少次,
都无法选择A当英雄,只能选择B,C。
就是说当{鼠标点击}这个变量不小于2之后
“创建触发的单位”这句 不将起始选择的单位当作触发条件,
只将起始没有被点击的单位当作触发条件。

举例:设想,我点了一下A,显示文字,再点A一下,创建A为我的单位。
            实际,我点了一下A,显示文字,再点A一下,无反应,无论点多少下,无反应,此时点一下B或者C,创建了B或者C为我的单位
                       或,我点B一下,显示文字,再点B一下,无反应,无论点多少下,无反应,,此时点一下A或者C,创建了A或者C为我的单位
发表于 2011-10-6 01:58:09 | 显示全部楼层
这样做也可以,但是没有双击的效果了,不过能达到要求就好。

要解决现在的bug,在执行显示文字的时候,让玩家取消选择当前单位就可以了。

不过接下来就有另外的bug了,可以稍后再说。
回复

使用道具 举报

发表于 2011-10-6 02:02:27 | 显示全部楼层
还是说了吧,一会可能我就睡觉了。

接下来的情况是,你点击单位A,会显示A的描述,再点击A会创建单位A。但是如果接下来不选择单位A而是别的单位,那么就会直接创建这个单位。

解决办法是,再使用一个变量来记录当前选择的单位类型,如果下次点击选择的单位与记录不同,你懂的
回复

使用道具 举报

 楼主| 发表于 2011-10-6 02:19:29 | 显示全部楼层

回 1楼(cccty1l) 的帖子

cccty1l:这样做也可以,但是没有双击的效果了,不过能达到要求就好。

要解决现在的bug,在执行显示文字的时候,让玩家取消选择当前单位就可以了。

不过接下来就有另外的bug了,可以稍后再说。 (2011-10-06 01:58) 
我在文字显示后面加一个取消框选单位的动作
结果点一下,显示文字,框选取消,再点,显示文字,取消,循环,不能创建单位了
回复

使用道具 举报

发表于 2011-10-6 02:26:41 | 显示全部楼层
抱歉,我之前想当然了。

你这个触发写的不对,第一个是事件,进行触发的单位 和进行触发的玩家 是在触发器被触发之后使用的,所以现在的写法是错的。

第二,用于递增的变量是局部变量,变量在每次触发器触发时都是其初始值。

你现在将“鼠标点击”修改为全局变量试试。
回复

使用道具 举报

发表于 2011-10-6 09:57:44 | 显示全部楼层
你需要用”任意单位被选择“
然后在条件和动作中进行判断
回复

使用道具 举报

发表于 2011-10-6 11:11:37 | 显示全部楼层
我做了个参考图      
       汇报下BUG       1、  要先选择单位后双击才有效   2、  选择单位后在地图上任意的地方双击都有效  3、 双击时尽量点快一点 越快越好  0.3秒刷新一次    4、双击要的是双击 连续点3下是没有效的(触发器没调好 -  理由来的)    供LZ 参考
测试双击.SC2Map (36 KB, 下载次数: 8)
回复

使用道具 举报

发表于 2011-10-6 11:57:29 | 显示全部楼层
楼主试试如下触发器。其中很多都需要楼主自行探索,也算是锻炼吧。
在使用之前注意做如下准备工作:
1. 找到你的每个可以选择的英雄,将它们的“单位:标旗”属性打开,并将“无法被点击”标旗前的勾去掉。该标旗会英雄本触发器的使用。
2. 在触发器外新建全局变量数组:玩家已选英雄[8],布尔类型。其中8为四夕水默认的游戏玩家数。能选英雄的玩家从一到几,这里就需要几。
 这个变量的作用是记录玩家是否已选择英雄。

[trigger]
双击选英雄
    事件
        单位框选 -任意单位被玩家任意玩家点击
    局部变量
        ------- 双击时间常量:(单位:秒)决定“双击”与“两次单击”的时间分界线。点击同一单位的时间间隔小于该常量则任务进行了一次双击。
        双击时间常量 = 0.25 <实数 (常数)>
        ------- 自定义值常量:决定使用单位的哪个自定义值作为点击次数记录
        ------- 可以选择其他的自定义值,但是要保证该自定义值在选英雄的时间段不会被其它触发器使用。
        自定义值常量 = 0 <整数 (常数)>
        ------- 其它相关变量
        选择单位 = (进行触发的单位) <单位>
        选择玩家 = (进行触发的玩家) <整数>
    条件
        ------- 判断玩家还未选择英雄
        玩家已选英雄[选择玩家]==假
        ------- 在这条注释下面填写判断被点击单位确实为候选英雄的条件。以下为示例。
        (选择单位的所有者)==0
        ((选择单位的单位类型)是英雄*)==真
        ------- 示例结束。
    动作
        综合 -If (条件) then do (动作) else do (动作)
            If
                ------- 该单位的自定义值使用思路:
                ------- 初始为0,当单位被点击是短暂设置为1;
                ------- 当单位被点击时该值为1(即大于0),则认为进行了一次“双击”
                (选择单位的自定义值自定义值常量)>0.0
            Then
                ------- 判断为单位被双击,进行创建英雄的相关动作。
                ------- 在这条注释下面填写为玩家创建英雄及相关设置(或跳转至相关触发器)的动作。以下为示例。
                单位 -为玩家选择玩家 在((实用地图区域)的中心)创建1个面向270.0度(无选项)的(选择单位的单位类型)
                ------- 示例结束。
                ------- 该玩家已选择英雄
                变量 -设置玩家已选英雄[选择玩家] = 真
                ------- 一种常用的触发器排版方法。
                综合 -跳过剩余的动作
            Else
        ------- 若判断为单位被双击,则此时触发器已中断。若触发器能运行至此,则判断结果为单位被单击,经行单位属性说明。
        单位 -将选择单位的自定义值自定义值常量设为1.0
        ------- 在这条注释下面填写屏幕显示英雄属性的相关动作。以下为示例。
        UI -为(玩家组(选择玩家))将"英雄:四夕水<n/>描述:万能的无敌英雄,尤其擅长使用弹幕攻击。"显示到聊天区域
        ------- 示例结束。
        ------- 指定时间过后如果该单位没有被再次点击,则恢复初始状态。
        综合 -等待双击时间常量游戏时间秒
        单位 -将选择单位的自定义值自定义值常量设为0.0
[/trigger]

有其它问题再提问。
回复

使用道具 举报

发表于 2011-10-6 13:09:59 | 显示全部楼层
哇 那么长   - -
回复

使用道具 举报

发表于 2011-10-6 22:02:11 | 显示全部楼层
主要是注释写多了……既然是楼主需要注释的话……
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-28 04:13 , Processed in 0.231767 second(s), 21 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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