有关触发器和Jass的问题
触发(Trigger) - 根据字面意思可以理解为: 事件A 发生后会直接或者间接的导致 事件B 发生的过程~~
关于触发的工作原理,举例如下:
动物踩上地雷,地雷就BOOMMMMMMM!:)~~
以上这就是一个触发,踩地雷 是 事件A ,我们称它为 事件(EVENT)~~而 地雷爆炸 则对应 事件B ,我们称他为 行为(ACTION)~~大家还可能考虑到,如果踩上地雷的不是人,而是质量很小的昆虫,则不可能发生爆炸,于是我们引入一个概念,就是 条件(CONDITON)~~它决定了 事件 发生后是不是会导致连带的结果,即 行为 的实施~~
一个触发分为三个状态:就绪状态、工作状态、屏蔽状态。其基本状态是 就绪状态。
就绪状态:处于就绪状态的触发可以接收其相应的 事件,只要 事件 发生,则此触发建立一个单独的进程进入工作状态,这个接收事件转入工作状态的过程称为 响应(RESPONSE)~~
工作状态:从就绪到工作,首先进行 条件(CONDITON)检测 ,如果通过就开始 行为的实施 ,从检测到实施完毕的整个过程为工作状态(无论是否通过检测)。需要注意的是,一个处于工作状态的触发是一个单独的进程~~一个触发可以同时或者异步响应 N次 。
屏蔽状态:处于屏蔽状态的触发不能 响应 任何事件,但是可以通过 调用行为 进行调用,调用后直接进入 工作状态。在调用的时候可以选择是否跳过 条件检测。
注]:同一个触发中的多个 事件 之间是 OR 关系,满足其中之一则触发响应;多个 条件 之间为 AND 关系,全部满足才通过检测;而多个 行为 的执行是按照顺序进行从上到下的处理。
Q:触发器的里各语句的位置有影响么/能换么?
不能换。Trigger 的执行顺序是从上到下依次执行的。
不过 Category 的先后顺序则无关紧要。
Q:天龙八部私服玩家的初始金钱和木材在那里改?
在地图初始化的触发里选择 Set Property .就可以更改金钱和木材了。
Q:如何更改英雄取得经验的比例?
ACTION - HERO - HERO EXPERIENCE RATE,设成多少百分比看自己的情况决定咯。
Q:怎么去掉单位身上的那些默认按钮啊?~~比如攻击~~集结点什么什么的~~
通常用 UNIT - REMOVE ABILITY 可以用来去掉一些按钮~~
REMOVE UNKNOWN (Aatk) 可以去掉攻击~~
REMOVE UNKNOWN (Amov) 可以去掉移动/巡逻/停止~~
REMOVE UNKNOWN (Aral) 可以去掉集结点
…………
Q:Letterbox 和 Cinematic 有什么区别啊?似乎都是打开影片模式哦
Letterbox 不会改变可视度~~没有被探索的地方也同样不会显现~~Cinematic 反之~~
Q:怎么可以实现物品栏里每一个格子只能放一类物品,且同类道具只能放有一个呢?
这个问题会涉及到变量的使用还有 TRIGGER 。
首先你需要创建一个变量数组(VAR ARRAY),命名为 IF,类型为 布尔(BOOLEAN),容量为 7(因为下标是从0开始的,所以要对应6个道具栏一般就设置为7比较好操作)。
然后在 ITEM EDITOR 里面为不同类型的道具设定相同的等级,比如武器就是 L1,头盔就是 L2,等等。
最后就是写 TEIGGER 了:
E - 单位拣到道具
C -
A -
+暂时关闭此触发
+如果以道具等级为下标的变量 IF 值为假,则
- 把物品栏的第 N 格道具丢弃,N 的值为拣到的道具等级
- 把刚拣到的道具放到第 N 格
- 把刚才丢弃的道具放置到第 M 格,M 的的值为此道具等级
- 设置以道具等级为下标的变量 IF 值为真,则
+否则如果以道具等级为下标的变量 IF 值为真,则
- 丢弃这个被捡道具
+打开此触发
这个是捡道具的步骤,同样的你需要写一个丢弃道具的 TRIGGER ,内容就是将 以丢弃的道具等级为下标的 IF 设置为假。
Q:怎么做一个自动刷兵的效果呢?
一般是要定时刷新的~~所以EVENT用PERIODIC TIME EVENT(周期性时间事件)~~间隔时间自己决定~~
刷兵总得有个限制~~否则一直刷下去你打的完吗?所以在CONDITION中~~用INTEGER COMPRAISON - UNIT - COUNT UNIT IN UNIT GROUP(计算组内单位的数量,具体组的设定自己解决……)来比较你希望的一个数量~~如果小于这个数量~~则执行下面的 ACTIONS ~
出兵最简单~~ ACTION - UNIT - CREATE UNIT~~种类、所属自己选~~位置就放在你要刷的地方~~一般是你要求刷出兵的建筑附近~~
PS:以上就是最基本的刷兵了,至于其他的,例如什么时候开始刷,什么时候停止刷,EVENT自己决定吧,用ACTION - TRIGGER - TURN ON/OFF TRIGGER来开关触发器。
Q:在对战地图中,杀死对方的兵是不会获得金钱的,如何在战役中,可以获得金钱?
在 TRIGGER EDITOR 里面用 Player - Turn Player Flag ON/OFF 开启金钱奖励~~
在 UNIT EDITOR 里面用 Stats - Bounty Awarded - 来修改某杀死某单位后的金钱数量