|
1.1.0总算加入了效果事件,这是本补丁最大的改进,也是SC2 beta以来最大的一项改进。
现在终于可以捕捉效果了,而且还不仅仅是可以捕捉到事件,还可以捕捉到更详细的一些数据。新一代的触发器+XML混合技能的曙光在此!
这里简单地列举一下我们能从效果事件中捕捉到的数据。我给每个函数作了注解。
======================
native void TriggerAddEventPlayerEffectUsed (trigger t, int player, string inEffect);
//这个新函数用来注册效果事件。
======================
native string EventPlayerEffectUsed ();
//用来获得触发效果的id,也就是效果的模板名。
======================
native point EventPlayerEffectUsedPoint (int inLocation);
//获得触发效果的 施法者点\源点\目标点\第三方点\起始点。
native unit EventPlayerEffectUsedUnit (int inLocation);
//获得触发效果的 施法者\源单位\目标单位\第三方单位\起始单位。
native int EventPlayerEffectUsedUnitOwner (int inLocation);
//获得触发效果的 施法者所属玩家\源单位所属玩家\目标单位玩家\第三方单位玩家\起始单位所属玩家。
native string EventPlayerEffectUsedUnitType (int inLocation);
//获得触发效果的 施法者单位类型\源单位类型\目标单位类型\第三方单位类型\起始单位类型。
======================
其中参数(int inLocation)可以填写
const int c_effectLocationCasterUnit = 0; //施法单位
const int c_effectLocationCasterPoint = 1; //施法者点
const int c_effectLocationCasterUnitOrPoint = 2; //施法单位或施法者点
const int c_effectLocationSourceUnit = 3; //源单位
const int c_effectLocationSourcePoint = 4; //源点
const int c_effectLocationSourceUnitOrPoint = 5; 源//单位或源点
const int c_effectLocationTargetUnit = 6; //目标单位
const int c_effectLocationTargetPoint = 7; //目标点
const int c_effectLocationTargetUnitOrPoint = 8; //目标单位或目标点
const int c_effectLocationOuterUnit = 9; //第三方单位
const int c_effectLocationOuterPoint = 10; //第三方点
const int c_effectLocationOuterUnitOrPoint = 11; //第三方单位或第三方点
const int c_effectLocationOriginUnit = 12; //起始单位
const int c_effectLocationOriginPoint = 13; //起始点
const int c_effectLocationOriginUnitOrPoint = 14; //起始单位或起始点
======================
native int EventPlayerEffectUsedAmountInt (int inAmount, bool total);
native fixed EventPlayerEffectUsedAmountFixed (int inAmount, bool total);
//获得触发效果的 吸收\伤害\闪避\搜得\治疗\杀人\溅射 数量。
第一个参数(int inAmount) 可以是
const int c_effectAmountAbsorbed = 0; //吸收
const int c_effectAmountDamaged = 1; //伤害
const int c_effectAmountDodged = 2; //闪避
const int c_effectAmountFound = 3; //找到的数量
const int c_effectAmountHealed = 4; //治疗
const int c_effectAmountKilled = 5; //杀死
const int c_effectAmountSplashed = 6; //溅射
第二个参数(bool total) 决定是取总数还是取单次数量。
======================
这些东西简直就是太好用了,这才像话啊Galaxy同学,此前你的表现完全都称不上Galaxy这个名字都,现在总算是伟大了一把了。 |
|