一、穷举法
意思就是不要使用循环触发,根据玩家的杀敌数一条一条地手动写下来,例如: Current Player kills at least100Zergling
Modify resources for Current Player: Add 资源数量资源类型 Current Player kills at least200Zergling
Modify resources for Current Player: Add 资源数量资源类型
……
这种方法适用于每批量杀敌数是比较大数字的地图,如果是小数字,会累死人,优点是比较精确,缺点是这种方法无法写到无穷大
很多老图中见过这种写法
二、分数法
分数是以前流行的解决杀敌加钱的常用方法
原理是用分数大致代替杀敌数,因为分数是可以在动作触发里设置减少的
星际单位的分数是星际自带的,具体请看帖子: http://www.scrpg.net/thread-431-1-1.html
分数法的触发写法是 Current Player total score is at least分数
Modify score for Current Player: Set to0 total
Modify resources for Current Player: Add 资源数量资源类型
Preserve trigger
直接用分数代替杀敌数的好处是基本解决了问题,但是存在误差,因为不同单位的分数可能相同,分数与杀敌数不是一一对应的关系
三、分数+Deaths计数+加速触发
这种方法是普通触发下近乎完美的解决方案,老鼠发明的
原理是,排除玩家造兵产生的分数并且在游戏开始将玩家的分数清0以后,当玩家的分数增加时,可以认定玩家杀死了单位
那么具体分数加了多少可以忽略,只要分数增加,就表示玩家有了杀敌数,于是我们写出这样的触发 Current Player total score is at least1
Modify score for Current Player: Set to0 total
Modify resources for Current Player: Add 资源数量资源类型
Preserve trigger
这就表示,玩家至少每杀死1个单位时,增加多少钱
那么,如果要做到每杀死k个单位,如何实现呢
这时用利用Deaths计数的变量属性,于是我们写出这样的触发
触发1(设置Deaths): Current Player total score is at least1
Modify score for Current Player: Set to0 total
Modify death counts for Current Player: Add 1 for 单位名称
Preserve trigger
触发2(使用Deaths): Current Player has suffered at least 单位数量 deaths of 单位名称
Modify death counts for Current Player: Set to 0 for 单位名称
Modify resources for Current Player: Add 资源数量资源类型
Preserve trigger
这样做完了以后,还需要加上加速触发,为了防止单位杀敌过快,而触发运行速度跟不上节奏的BUG
同理,如果单位的攻击方式带有AOE的,则这种方法会产生一定的误差
老鼠的解决方法是根据单位分数的分级多写几条触发
比如分数大于10000的写一条,之后再写一条大于5000,再写一条3000,再写最小单位分数的触发。从上到下触发。这样AOE伤害死掉的分数也可以计算进去。如果被杀单位单一的话,可以用它的分数的倍数来写,但还是无法做到完美