You can create amazing factors looping it (see the video!)
This is the code:
<Effect name="Army Deploy everywhere in area (objects)">
<Param name="SrcArmy" dispName="$$22348$$Army" VarType="group"> default< /Param>
<Param name="ProtoName" dispName="$$22434$$ProtoName" varType="protounit"> Villager< /Param>
<Param name="SrcObject" dispName="Object 1" varType="unit"> default< /Param>
<Param name="SrcObjectt" dispName="Object 2" varType="unit"> default< /Param>
<Param name="Count" dispName="$$22435$$Count" varType="long"> 0< /Param>
<Param name="Heading" dispName="$$22432$$Heading" varType="long"> 0< /Param>
<Param name="Clear" dispName="$$22464$$Clear Existing Units:" varType="bool"> true< /Param>
<Command> trQuestVarSet("lostrolastplayerxD", xsGetContextPlayer());< /Command>
<Command> xsSetContextPlayer(0);< /Command>
<Command> kbLookAtAllUnitsOnMap();< /Command>
<Command> trQuestVarSet("lostroasdiosfvnaoisnaiosdfvX", xsVectorGetX(kbGetBlockPosition("%SrcObject%")));< /Command>
<Command> trQuestVarSet("lostroasdiosfvnaoisnaiosdfvXX", xsVectorGetX(kbGetBlockPosition("%SrcObjectt%")));< /Command>
<Command> trQuestVarSet("lostroasdiosfvnaoisnaiosdfvZ", xsVectorGetZ(kbGetBlockPosition("%SrcObject%")));< /Command>
<Command> trQuestVarSet("lostroasdiosfvnaoisnaiosdfvZZ", xsVectorGetZ(kbGetBlockPosition("%SrcObjectt%")));< /Command>
<Command> if(trQuestVarGet("lostroasdiosfvnaoisnaiosdfvXX")> =trQuestVarGet("lostroasdiosfvnaoisnaiosdfvX"))trQuestVarSetFromRand("lostro MetresXlol", trQuestVarGet("lostroasdiosfvnaoisnaiosdfvX"), trQuestVarGet("lostroasdiosfvnaoisnaiosdfvXX"), false);< /Command>
<Command> if(trQuestVarGet("lostroasdiosfvnaoisnaiosdfvX")> =trQuestVarGet("lostroasdiosfvnaoisnaiosdfvXX"))trQuestVarSetFromRand("lostr oMetresXlol", trQuestVarGet("lostroasdiosfvnaoisnaiosdfvXX"), trQuestVarGet("lostroasdiosfvnaoisnaiosdfvX"), false);< /Command>
<Command> if(trQuestVarGet("lostroasdiosfvnaoisnaiosdfvZZ")> =trQuestVarGet("lostroasdiosfvnaoisnaiosdfvZ"))trQuestVarSetFromRand("lostro MetresZlol", trQuestVarGet("lostroasdiosfvnaoisnaiosdfvZ"), trQuestVarGet("lostroasdiosfvnaoisnaiosdfvZZ"), false);< /Command>
<Command> if(trQuestVarGet("lostroasdiosfvnaoisnaiosdfvZ")> =trQuestVarGet("lostroasdiosfvnaoisnaiosdfvZZ"))trQuestVarSetFromRand("lostr oMetresZlol", trQuestVarGet("lostroasdiosfvnaoisnaiosdfvZZ"), trQuestVarGet("lostroasdiosfvnaoisnaiosdfvZ"), false);< /Command>
<Command> trArmyDispatch("%SrcArmy%", "%ProtoName%", %Count%, trQuestVarGet("lostroMetresXlol"),0,trQuestVarGet("lostroMetresZlol"), %Heading%, %Clear%);< /Command>
<Command> xsSetContextPlayer(trQuestVarGet("lostrolastplayerxD"));< /Command>
</Effect>
<Effect name="Army Deploy random unit everywhere in area (objects)">
<Param name="SrcArmy" dispName="$$22348$$Army" VarType="group"> default< /Param>
<Param name="SrcObject" dispName="Object 1" varType="unit"> default< /Param>
<Param name="SrcObjectt" dispName="Object 2" varType="unit"> default< /Param>
<Param name="Count" dispName="$$22435$$Count" varType="long"> 0< /Param>
<Param name="Heading" dispName="$$22432$$Heading" varType="long"> 0< /Param>
<Param name="Clear" dispName="$$22464$$Clear Existing Units:" varType="bool"> true< /Param>
<Command> trQuestVarSet("lostrolastplayerxD", xsGetContextPlayer());< /Command>
<Command> xsSetContextPlayer(0);< /Command>
<Command> kbLookAtAllUnitsOnMap();< /Command>
<Command> trQuestVarSet("lostroasdiosfvnaoisnaiosdfvX", xsVectorGetX(kbGetBlockPosition("%SrcObject%")));< /Command>
<Command> trQuestVarSet("lostroasdiosfvnaoisnaiosdfvXX", xsVectorGetX(kbGetBlockPosition("%SrcObjectt%")));< /Command>
<Command> trQuestVarSet("lostroasdiosfvnaoisnaiosdfvZ", xsVectorGetZ(kbGetBlockPosition("%SrcObject%")));< /Command>
<Command> trQuestVarSet("lostroasdiosfvnaoisnaiosdfvZZ", xsVectorGetZ(kbGetBlockPosition("%SrcObjectt%")));< /Command>
<Command> if(trQuestVarGet("lostroasdiosfvnaoisnaiosdfvXX")> =trQuestVarGet("lostroasdiosfvnaoisnaiosdfvX"))trQuestVarSetFromRand("lostro MetresXlol", trQuestVarGet("lostroasdiosfvnaoisnaiosdfvX"), trQuestVarGet("lostroasdiosfvnaoisnaiosdfvXX"), false);< /Command>
<Command> if(trQuestVarGet("lostroasdiosfvnaoisnaiosdfvX")> =trQuestVarGet("lostroasdiosfvnaoisnaiosdfvXX"))trQuestVarSetFromRand("lostr oMetresXlol", trQuestVarGet("lostroasdiosfvnaoisnaiosdfvXX"), trQuestVarGet("lostroasdiosfvnaoisnaiosdfvX"), false);< /Command>
<Command> if(trQuestVarGet("lostroasdiosfvnaoisnaiosdfvZZ")> =trQuestVarGet("lostroasdiosfvnaoisnaiosdfvZ"))trQuestVarSetFromRand("lostro MetresZlol", trQuestVarGet("lostroasdiosfvnaoisnaiosdfvZ"), trQuestVarGet("lostroasdiosfvnaoisnaiosdfvZZ"), false);< /Command>
<Command> if(trQuestVarGet("lostroasdiosfvnaoisnaiosdfvZ")> =trQuestVarGet("lostroasdiosfvnaoisnaiosdfvZZ"))trQuestVarSetFromRand("lostr oMetresZlol", trQuestVarGet("lostroasdiosfvnaoisnaiosdfvZZ"), trQuestVarGet("lostroasdiosfvnaoisnaiosdfvZ"), false);< /Command>
<Command> trQuestVarSetFromRand("lostrozzabcdlolrand",1,800,true);< /Command>
<Command> trArmyDispatch("%SrcArmy%", ""+kbGetProtoUnitName(trQuestVarGet("lostrozzabcdlolrand")), %Count%, trQuestVarGet("lostroMetresXlol"),0,trQuestVarGet("lostroMetresZlol"), %Heading%, %Clear%);< /Command>
<Command> xsSetContextPlayer(trQuestVarGet("lostrolastplayerxD"));< /Command>
</Effect>
The code:
<Effect name="Invoke God Power everywhere in area (objects)">
<Param name="Player" dispName="Player" varType="player"> 0< /Param>
<Param name="Power" dispName="Power" varType="godpower"> default< /Param>
<Param name="SrcObject" dispName="Object 1" varType="unit"> default< /Param>
<Param name="SrcObjectt" dispName="Object 2" varType="unit"> default< /Param>
<Command> trQuestVarSet("lostrolastplayerxD", xsGetContextPlayer());< /Command>
<Command> xsSetContextPlayer(0);< /Command>
<Command> kbLookAtAllUnitsOnMap();< /Command>
<Command> trQuestVarSet("lostroasdiosfvnaoisnaiosdfvX", xsVectorGetX(kbGetBlockPosition("%SrcObject%")));< /Command>
<Command> trQuestVarSet("lostroasdiosfvnaoisnaiosdfvXX", xsVectorGetX(kbGetBlockPosition("%SrcObjectt%")));< /Command>
<Command> trQuestVarSet("lostroasdiosfvnaoisnaiosdfvZ", xsVectorGetZ(kbGetBlockPosition("%SrcObject%")));< /Command>
<Command> trQuestVarSet("lostroasdiosfvnaoisnaiosdfvZZ", xsVectorGetZ(kbGetBlockPosition("%SrcObjectt%")));< /Command>
<Command> if(trQuestVarGet("lostroasdiosfvnaoisnaiosdfvXX")> =trQuestVarGet("lostroasdiosfvnaoisnaiosdfvX"))trQuestVarSetFromRand("lostro MetresXlol", trQuestVarGet("lostroasdiosfvnaoisnaiosdfvX"), trQuestVarGet("lostroasdiosfvnaoisnaiosdfvXX"), false);< /Command>
<Command> if(trQuestVarGet("lostroasdiosfvnaoisnaiosdfvX")> =trQuestVarGet("lostroasdiosfvnaoisnaiosdfvXX"))trQuestVarSetFromRand("lostr oMetresXlol", trQuestVarGet("lostroasdiosfvnaoisnaiosdfvXX"), trQuestVarGet("lostroasdiosfvnaoisnaiosdfvX"), false);< /Command>
<Command> if(trQuestVarGet("lostroasdiosfvnaoisnaiosdfvZZ")> =trQuestVarGet("lostroasdiosfvnaoisnaiosdfvZ"))trQuestVarSetFromRand("lostro MetresZlol", trQuestVarGet("lostroasdiosfvnaoisnaiosdfvZ"), trQuestVarGet("lostroasdiosfvnaoisnaiosdfvZZ"), false);< /Command>
<Command> if(trQuestVarGet("lostroasdiosfvnaoisnaiosdfvZ")> =trQuestVarGet("lostroasdiosfvnaoisnaiosdfvZZ"))trQuestVarSetFromRand("lostr oMetresZlol", trQuestVarGet("lostroasdiosfvnaoisnaiosdfvZZ"), trQuestVarGet("lostroasdiosfvnaoisnaiosdfvZ"), false);< /Command>
<Command> trQuestVarSet("lostroasdiosfvnaoisnaiosdfvX2", xsVectorGetX(kbGetBlockPosition("%SrcObject%")));< /Command>
<Command> trQuestVarSet("lostroasdiosfvnaoisnaiosdfvXX2", xsVectorGetX(kbGetBlockPosition("%SrcObjectt%")));< /Command>
<Command> trQuestVarSet("lostroasdiosfvnaoisnaiosdfvZ2", xsVectorGetZ(kbGetBlockPosition("%SrcObject%")));< /Command>
<Command> trQuestVarSet("lostroasdiosfvnaoisnaiosdfvZZ2", xsVectorGetZ(kbGetBlockPosition("%SrcObjectt%")));< /Command>
<Command> if(trQuestVarGet("lostroasdiosfvnaoisnaiosdfvXX2")> =trQuestVarGet("lostroasdiosfvnaoisnaiosdfvX2"))trQuestVarSetFromRand("lostr oMetresXlol2", trQuestVarGet("lostroasdiosfvnaoisnaiosdfvX2"), trQuestVarGet("lostroasdiosfvnaoisnaiosdfvXX2"), false);< /Command>
<Command> if(trQuestVarGet("lostroasdiosfvnaoisnaiosdfvX2")> =trQuestVarGet("lostroasdiosfvnaoisnaiosdfvXX2"))trQuestVarSetFromRand("lost roMetresXlol2", trQuestVarGet("lostroasdiosfvnaoisnaiosdfvXX2"), trQuestVarGet("lostroasdiosfvnaoisnaiosdfvX2"), false);< /Command>
<Command> if(trQuestVarGet("lostroasdiosfvnaoisnaiosdfvZZ2")> =trQuestVarGet("lostroasdiosfvnaoisnaiosdfvZ2"))trQuestVarSetFromRand("lostr oMetresZlol2", trQuestVarGet("lostroasdiosfvnaoisnaiosdfvZ2"), trQuestVarGet("lostroasdiosfvnaoisnaiosdfvZZ2"), false);< /Command>
<Command> if(trQuestVarGet("lostroasdiosfvnaoisnaiosdfvZ2")> =trQuestVarGet("lostroasdiosfvnaoisnaiosdfvZZ2"))trQuestVarSetFromRand("lost roMetresZlol2", trQuestVarGet("lostroasdiosfvnaoisnaiosdfvZZ2"), trQuestVarGet("lostroasdiosfvnaoisnaiosdfvZ2"), false);< /Command>
<Command> trTechInvokeGodPower(%Player%, "%Power%", xsVectorSet(trQuestVarGet("lostroMetresXlol"), 1, trQuestVarGet("lostroMetresZlol")), xsVectorSet(trQuestVarGet("lostroMetresXlol2"), 1, trQuestVarGet("lostroMetresZlol2")));< /Command>
<Command> xsSetContextPlayer(trQuestVarGet("lostrolastplayerxD"));< /Command>
</Effect>
<Effect name="Army Deploy in perimeter of area (objects)">
<Param name="SrcArmy" dispName="$$22348$$Army" VarType="group"> default< /Param>
<Param name="ProtoName" dispName="$$22434$$ProtoName" varType="protounit"> Villager Greek< /Param>
<Param name="SrcObject" dispName="Object 1" varType="unit"> default< /Param>
<Param name="SrcObjectt" dispName="Object 2" varType="unit"> default< /Param>
<Param name="Step" dispName="Step size" varType="string"> 1< /Param>
<Param name="Heading" dispName="$$22432$$Heading" varType="string"> 0< /Param>
<Param name="Clear" dispName="$$22464$$Clear Existing Units:" varType="bool"> true< /Param>
<Command> trQuestVarSet("lostrolastplayerxD", xsGetContextPlayer());< /Command>
<Command> xsSetContextPlayer(0);< /Command>
<Command> kbLookAtAllUnitsOnMap();< /Command>
<Command> trQuestVarSet("lostroasdiosfvnaoisnaiosdfvX", xsVectorGetX(kbGetBlockPosition("%SrcObject%")));< /Command>
<Command> trQuestVarSet("lostroasdiosfvnaoisnaiosdfvXX", xsVectorGetX(kbGetBlockPosition("%SrcObjectt%")));< /Command>
<Command> trQuestVarSet("lostroasdiosfvnaoisnaiosdfvZ", xsVectorGetZ(kbGetBlockPosition("%SrcObject%")));< /Command>
<Command> trQuestVarSet("lostroasdiosfvnaoisnaiosdfvZZ", xsVectorGetZ(kbGetBlockPosition("%SrcObjectt%")));< /Command>
<Command> < ![ CDATA[ if((trQuestVarGet("lostroasdiosfvnaoisnaiosdfvXX")> =trQuestVarGet("lostroasdiosfvnaoisnaiosdfvX"))&&(trQuestVarGet("lostroasdio sfvnaoisnaiosdfvZZ")> =trQuestVarGet("lostroasdiosfvnaoisnaiosdfvZ"))){] ] > < /Command>
<Command> while(trQuestVarGet("lostroasdiosfvnaoisnaiosdfvXX")> =trQuestVarGet("lostroasdiosfvnaoisnaiosdfvX")){< /Command>
<Command> trArmyDispatch("%SrcArmy%", "%ProtoName%", 1, trQuestVarGet("lostroasdiosfvnaoisnaiosdfvX"),0,trQuestVarGet("lostroasdios fvnaoisnaiosdfvZ"), %Heading%, %Clear%);< /Command>
<Command> trQuestVarSet("lostroasdiosfvnaoisnaiosdfvX", trQuestVarGet("lostroasdiosfvnaoisnaiosdfvX")+%Step%);}< /Command>
<Command> while(trQuestVarGet("lostroasdiosfvnaoisnaiosdfvZZ")> =trQuestVarGet("lostroasdiosfvnaoisnaiosdfvZ")){< /Command>
<Command> trArmyDispatch("%SrcArmy%", "%ProtoName%", 1, trQuestVarGet("lostroasdiosfvnaoisnaiosdfvX"),0,trQuestVarGet("lostroasdios fvnaoisnaiosdfvZ"), %Heading%, %Clear%);< /Command>
<Command> trQuestVarSet("lostroasdiosfvnaoisnaiosdfvZ", trQuestVarGet("lostroasdiosfvnaoisnaiosdfvZ")+%Step%);}< /Command>
<Command> trQuestVarSet("lostroasdiosfvnaoisnaiosdfvX", xsVectorGetX(kbGetBlockPosition("%SrcObject%")));< /Command>
<Command> trQuestVarSet("lostroasdiosfvnaoisnaiosdfvZ", xsVectorGetZ(kbGetBlockPosition("%SrcObject%")));< /Command>
<Command> while(trQuestVarGet("lostroasdiosfvnaoisnaiosdfvZZ")> =trQuestVarGet("lostroasdiosfvnaoisnaiosdfvZ")){< /Command>
<Command> trArmyDispatch("%SrcArmy%", "%ProtoName%", 1, trQuestVarGet("lostroasdiosfvnaoisnaiosdfvX"),0,trQuestVarGet("lostroasdios fvnaoisnaiosdfvZ"), %Heading%, %Clear%);< /Command>
<Command> trQuestVarSet("lostroasdiosfvnaoisnaiosdfvZ", trQuestVarGet("lostroasdiosfvnaoisnaiosdfvZ")+%Step%);}< /Command>
<Command> while(trQuestVarGet("lostroasdiosfvnaoisnaiosdfvXX")> =trQuestVarGet("lostroasdiosfvnaoisnaiosdfvX")){< /Command>
<Command> trArmyDispatch("%SrcArmy%", "%ProtoName%", 1, trQuestVarGet("lostroasdiosfvnaoisnaiosdfvX"),0,trQuestVarGet("lostroasdios fvnaoisnaiosdfvZ"), %Heading%, %Clear%);< /Command>
<Command> trQuestVarSet("lostroasdiosfvnaoisnaiosdfvX", trQuestVarGet("lostroasdiosfvnaoisnaiosdfvX")+%Step%);}< /Command>
<Command> }< /Command>
<Command> < ![ CDATA[ if((trQuestVarGet("lostroasdiosfvnaoisnaiosdfvX")> =trQuestVarGet("lostroasdiosfvnaoisnaiosdfvXX"))&&(trQuestVarGet("lostroasdi osfvnaoisnaiosdfvZ")> =trQuestVarGet("lostroasdiosfvnaoisnaiosdfvZZ"))){] ] > < /Command>
<Command> while(trQuestVarGet("lostroasdiosfvnaoisnaiosdfvX")> =trQuestVarGet("lostroasdiosfvnaoisnaiosdfvXX")){< /Command>
<Command> trArmyDispatch("%SrcArmy%", "%ProtoName%", 1, trQuestVarGet("lostroasdiosfvnaoisnaiosdfvXX"),0,trQuestVarGet("lostroasdio sfvnaoisnaiosdfvZZ"), %Heading%, %Clear%);< /Command>
<Command> trQuestVarSet("lostroasdiosfvnaoisnaiosdfvXX", trQuestVarGet("lostroasdiosfvnaoisnaiosdfvXX")+%Step%);}< /Command>
<Command> while(trQuestVarGet("lostroasdiosfvnaoisnaiosdfvZ")> =trQuestVarGet("lostroasdiosfvnaoisnaiosdfvZZ")){< /Command>
<Command> trArmyDispatch("%SrcArmy%", "%ProtoName%", 1, trQuestVarGet("lostroasdiosfvnaoisnaiosdfvXX"),0,trQuestVarGet("lostroasdio sfvnaoisnaiosdfvZZ"), %Heading%, %Clear%);< /Command>
<Command> trQuestVarSet("lostroasdiosfvnaoisnaiosdfvZZ", trQuestVarGet("lostroasdiosfvnaoisnaiosdfvZZ")+%Step%);}< /Command>
<Command> trQuestVarSet("lostroasdiosfvnaoisnaiosdfvXX", xsVectorGetX(kbGetBlockPosition("%SrcObjectt%")));< /Command>
<Command> trQuestVarSet("lostroasdiosfvnaoisnaiosdfvZZ", xsVectorGetZ(kbGetBlockPosition("%SrcObjectt%")));< /Command>
<Command> while(trQuestVarGet("lostroasdiosfvnaoisnaiosdfvZ")> =trQuestVarGet("lostroasdiosfvnaoisnaiosdfvZZ")){< /Command>
<Command> trArmyDispatch("%SrcArmy%", "%ProtoName%", 1, trQuestVarGet("lostroasdiosfvnaoisnaiosdfvXX"),0,trQuestVarGet("lostroasdio sfvnaoisnaiosdfvZZ"), %Heading%, %Clear%);< /Command>
<Command> trQuestVarSet("lostroasdiosfvnaoisnaiosdfvZZ", trQuestVarGet("lostroasdiosfvnaoisnaiosdfvZZ")+%Step%);}< /Command>
<Command> while(trQuestVarGet("lostroasdiosfvnaoisnaiosdfvX")> =trQuestVarGet("lostroasdiosfvnaoisnaiosdfvXX")){< /Command>
<Command> trArmyDispatch("%SrcArmy%", "%ProtoName%", 1, trQuestVarGet("lostroasdiosfvnaoisnaiosdfvXX"),0,trQuestVarGet("lostroasdio sfvnaoisnaiosdfvZZ"), %Heading%, %Clear%);< /Command>
<Command> trQuestVarSet("lostroasdiosfvnaoisnaiosdfvXX", trQuestVarGet("lostroasdiosfvnaoisnaiosdfvXX")+%Step%);}< /Command>
<Command> }< /Command>
<Command> < ![ CDATA[ if((trQuestVarGet("lostroasdiosfvnaoisnaiosdfvX")> =trQuestVarGet("lostroasdiosfvnaoisnaiosdfvXX"))&&(trQuestVarGet("lostroasdi osfvnaoisnaiosdfvZ")< =trQuestVarGet("lostroasdiosfvnaoisnaiosdfvZZ"))){] ] > < /Command>
<Command> while(trQuestVarGet("lostroasdiosfvnaoisnaiosdfvX")> =trQuestVarGet("lostroasdiosfvnaoisnaiosdfvXX")){< /Command>
<Command> trArmyDispatch("%SrcArmy%", "%ProtoName%", 1, trQuestVarGet("lostroasdiosfvnaoisnaiosdfvXX"),0,trQuestVarGet("lostroasdio