- Joined
- Aug 13, 2007
- Messages
- 309
I want to create an ability that does nothing but casts itself at intervals every x seconds. Everything else in this post is irrelevant and is just here to show you what I'd be doing with said ability if I had it.
I'd be using it as a timer to make units check for potential mates every once in awhile & auto-mate if there's a female that is not pregnant in the vicinity. That would be scripted based on the event.
i.e.
Edit 2: I also need an ability that can be toggled on or off and does nothing at all, but for my stamina system.
I'd be using it as a timer to make units check for potential mates every once in awhile & auto-mate if there's a female that is not pregnant in the vicinity. That would be scripted based on the event.
i.e.
-
Auto-mate
-

Events
-


Unit - Any Unit uses Action - Mate at Generic6 - Complete stage (Ignore shared abilities)
-
-

Local Variables
-


u = No Unit <Unit>
-


u 2 = No Unit <Unit>
-


cv = 0 <Integer>
-


cv 2 = 0 <Integer>
-


ug = (Empty unit group) <Unit Group>
-


ut = No Game Link <Game Link - Unit>
-


pt = No Point <Point>
-


r = No Region <Region>
-


gender = false <Boolean>
-


------- Constants
-


radius = 15.0 <Real (Constant)>
-


uf = Required: Biological; Excluded: Missile, Dead, Hidden <Unit Filter>
-
-

Conditions
-

Actions
-


General - Custom Script: lv_u = EventUnit();...
-
-
JASS:
lv_u = EventUnit();
lv_cv = FixedToInt(UnitGetCustomValue(lv_u, gv_CVS));
if (!gv_mature[lv_cv]) {
return true;
}
lv_ut = UnitGetType(lv_u);
lv_pt = UnitGetPosition(lv_u);
lv_r = RegionCircle(lv_pt, lv_radius);
lv_ug = UnitGroup(null, c_playerAny, lv_r, lv_uf, 0);
UnitGroupLoopBegin(lv_ug);
while (!UnitGroupLoopDone()) {
lv_u2 = UnitGroupLoopCurrent();
lv_cv2 = FixedToInt(UnitGetCustomValue(lv_u2, gv_CVS));
if (UnitGetType(lv_u2) == lv_ut) {
if (gv_mature[lv_cv2]) {
if (gv_gender[lv_cv] != gv_gender[lv_cv2]) {
if ((!gv_pregnant[lv_cv]) && (!gv_pregnant[lv_cv2])) { // The other 'pregnancy' check actually checks the males fertility.
UnitIssueOrder(lv_u, OrderTargetingUnit(AbilityCommand("Mate", 0), lv_u2), c_orderQueueAddToEnd);
if (!gv_gender[lv_cv]) {
UnitGroupLoopEnd();
}
}
}
}
}
UnitGroupLoopStep();
}
UnitGroupLoopEnd();
UnitIssueOrder(lv_u, Order(AbilityCommand("stop", 0)), c_orderQueueAddToEnd);
Last edited:

For that I just need to make my sprint ability toggle on/off like that one ability in Warcraft III that burns every unit within a certain radius around the unit while draining mana. Illidan has said ability in Footman Frenzy. I don't want my ability to drain mana or burn anything though, I just need it to toggle on/off and do nothing.

