游戏精英
 
- 贡献度
- 496
- 金元
- 21012
- 积分
- 4085
- 精华
- 0
- 注册时间
- 2008-9-8
|
Protoss0文件最前面加入
static bool ChronoBoost(int player, int CTown, string aliasUnitType, string type) {
unitgroup scanGroup;
int scanCount;
aifilter filter;
unit u = AIGrabUnit(player, c_PB_Nexus, c_prioScriptControlled, AIGetTownLocation (player, CTown));
order o;
order ord;
if (u) {
o = AICreateOrder(player, "TimeWarp", 0);
ord = AICreateOrder(player, "TimeWarp", 0);
if (!UnitOrderIsValid(u, ord)) {
return false;
}
scanGroup = AIFindUnits(player, aliasUnitType, UnitGetPosition(u),
AIUnitFixed(player, c_PB_Nexus, c_fieldRadius)
+ AIAbilityFixed(player, "TimeWarp", c_fieldRange0),
c_noMaxCount
);
filter = AIFilter(player);
AISetFilterBits(filter, UnitFilterStr(AIAbilityStr(player, "TimeWarp", c_fieldTargetFilters)));
AISetFilterBehaviorCount(filter, c_noBehaviorMin, c_noBehaviorMax, type);
scanGroup = AIGetFilterGroup (filter, scanGroup);
o = AIUnitGroupGetValidOrder(scanGroup, ord, u, c_backwards);
//OrderSetTargetUnit(o, u);
if (UnitOrderIsValid(u, o)) {
//DebugOutput("TimeWarp", false);
AICast(u, o, c_noMarker, c_castHold);
return true;
}
}
return false;
}
然后在每段建造代码前后加入下面代码即可(可以可以做一些if判断什么的)
ChronoBoost(player, 1, c_PB_Nexus ,"TimeWarpProduction");
c_PB_Nexus 是建筑物函数,自己参照换。1,是个指定函数,可改可不改
最然不是智能型的,但总比没有强。这是我在iai上扣下来的。iai作者也说这是别人给他写的
再举个如果判断的例子吧
if (AITechCount(player, c_PU_Probe, c_techCountQueuedOnly ) > 0)
{
ChronoBoost(player, 1, c_PB_Nexus, "TimeWarpProduction");
}
意思就是如果probe探测机 大于0,那么对星核实施超时空加速。
再说下player, 1这个1的意思就是第二个建筑,比如你有2个兵营 0就是第一个兵营,1就是第二个 |
|