Since you're bumping, I might as well add these -
<Effect name="Damage Units in User Defined Area">
<Param name="PlayerID" dispName="$$22301$$Player" VarType="string">1</Param>
<Param name="PN" dispName="$$22434$$ProtoName" varType="protounit">Anubite</Param>
<Param name="AmtDamage" dispName="Damage Amount" varType="float">1</Param>
<Param name="Location" dispName="" varType="area">0,0,0</Param>
<Param name="Location2" dispName="" varType="area">0,0,0</Param>
<Command>for(q=0;>1){} for(w=0;>1){} for(a=0;>1){} for(s=0;>1){}</Command>
<Command>for(Qid=0;>1){}for(id=0;>1){}for(x=0;>1){} for(y=0;>1){}</Command>
<Command>q=xsVectorGetX(vector(%Location%));w=xsVectorGetZ(vector(%Location%));</Command>
<Command>a=xsVectorGetX(vector(%Location2%));s=xsVectorGetZ(vector(%Location2%));</Command>
<Command>xsSetContextPlayer(%PlayerID%);kbLookAtAllUnitsOnMap();</Command>
<Command>Qid=kbUnitQueryCreate("QDA_%PlayerID%_%PN%");</Command>
<Command>kbUnitQuerySetPlayerID(Qid, %PlayerID%, true);</Command>
<Command>kbUnitQuerySetUnitType(Qid, kbGetProtoUnitID("%PN%"));</Command>
<Command>kbUnitQuerySetState(Qid, 2);</Command>
<Command>trUnitSelectClear();</Command>
<Command>for(i=kbUnitQueryExecute(Qid)-1;>-1){</Command>
<Command>id = kbUnitQueryGetResult(Qid,i);x=xsVectorGetX(kbUnitGetPosition(id));y=xsVectorGetZ(kbUnitGetPosition(id));</Command>
<Command>if(((w>=y)!=true||(y>=s)!=true||(x>=q)!=true||(a>=x)!=true)!=true){trUnitSelectByID(id);}}</Command>
<Command>trDamageUnit(%AmtDamage%);</Command>
</Effect>
<Effect name="Damage Units Percent in User Defined Area">
<Param name="PlayerID" dispName="$$22301$$Player" VarType="string">1</Param>
<Param name="PN" dispName="$$22434$$ProtoName" varType="protounit">Anubite</Param>
<Param name="PctDamage" dispName="$$23762$$DamagePct" varType="float">1</Param>
<Param name="Location" dispName="" varType="area">0,0,0</Param>
<Param name="Location2" dispName="" varType="area">0,0,0</Param>
<Command>for(q=0;>1){} for(w=0;>1){} for(a=0;>1){} for(s=0;>1){}</Command>
<Command>for(Qid=0;>1){}for(id=0;>1){}for(x=0;>1){} for(y=0;>1){}</Command>
<Command>q=xsVectorGetX(vector(%Location%));w=xsVectorGetZ(vector(%Location%));</Command>
<Command>a=xsVectorGetX(vector(%Location2%));s=xsVectorGetZ(vector(%Location2%));</Command>
<Command>xsSetContextPlayer(%PlayerID%);kbLookAtAllUnitsOnMap();</Command>
<Command>Qid=kbUnitQueryCreate("QDA_%PlayerID%_%PN%");</Command>
<Command>kbUnitQuerySetPlayerID(Qid, %PlayerID%, true);</Command>
<Command>kbUnitQuerySetUnitType(Qid, kbGetProtoUnitID("%PN%"));</Command>
<Command>kbUnitQuerySetState(Qid, 2);</Command>
<Command>trUnitSelectClear();</Command>
<Command>for(i=kbUnitQueryExecute(Qid)-1;>-1){</Command>
<Command>id = kbUnitQueryGetResult(Qid,i);x=xsVectorGetX(kbUnitGetPosition(id));y=xsVectorGetZ(kbUnitGetPosition(id));</Command>
<Command>if(((w>=y)!=true||(y>=s)!=true||(x>=q)!=true||(a>=x)!=true)!=true){trUnitSelectByID(id);}}</Command>
<Command>trDamageUnitPercent(%PctDamage%);</Command>
</Effect>
They're based off invent00r's Kill Units in User Defined Area.