Hero Finder – by Sericom

If you are not familar with NEAT Bot for Evony then head over to the NEAT Bot section of Evony Hookups to learn a bit more about and acquire the BEST Evony Bot yet!

Here’s two nice scripts to help you find good heroes in the inn to hire…


This will find the number of heroes with base that you specify. Make sure any current heroes in the city are not marching or will be sent out while script is running, or there’s a slim chance that they could be fired. You tell it how many of each type of hero you want it to find, not the total amount you want to end up with (It’s currently set to get you 4 more attack heroes and 1 pol hero). Script will reset your goals when ran, and will load goals in position 0 when finished. Be careful if you plan to fill the feasting hall and you have a travelling training hero, the bot may fire one of your heroes. Good for those new cities.


//------------------------Hero Finder------------------------//
//This will find the number of heroes with base that you
//specify. Make sure any current heroes in the city are
//not marching or will be sent out while script is running,
//or there's a slim chance that they could be fired.
//You tell it how many of each type of hero you want it to
//find, not the total amount you want to end up with (It's
//currently set to get you 4 more attack heroes and 1 pol hero).
//Script will reset your goals when ran, and will load goals
//in position 0 when finished.
//Be careful if you plan to fill the feasting hall and you have
//a travelling training hero, the bot may fire one of your heroes.
//-----------------------------------------------------------//

MIN_BASE = 65
ATTACK_HEROES = 4
INTEL_HEROES = 0
POL_HEROES = 1

//---------------nothing to alter below here-----------------//
resetgoals
config nomayor:1
startHeroCount = city.heroes.length
currHeroCount = startHeroCount
if startHeroCount = 0 goto getNext
currentNames = []
tempNames = [ "aa", "bb", "cc", "dd", "ee", "ff", "gg", "hh", "ii" ]
i = 0
label renameNext
currentNames = currentNames.concat(city.heroes[i].name)
execute "renamehero " + currentNames[i] + " " + tempNames[i]
i = i + 1
if i < startHeroCount goto renameNext

label getNext
if city.innHeroes.length < 1 goto getNext getspamhero setfocus label retry if city.heroes.length = currHeroCount goto retry if ((city.heroes[currHeroCount].base >= MIN_BASE ) * (ATTACK_HEROES > 0) * (city.heroes[currHeroCount].typeName="Att")) + ((city.heroes[currHeroCount].base >= MIN_BASE) * (POL_HEROES > 0) * (city.heroes[currHeroCount].typeName="Pol")) + ((city.heroes[currHeroCount].base >= MIN_BASE) * (INTEL_HEROES > 0) * (city.heroes[currHeroCount].typeName="Int")) goto gotOne
execute "firehero " + city.heroes[currHeroCount].name
label retry2
if city.heroes.length = currHeroCount goto getNext
goto retry2

label gotOne
if (city.heroes[currHeroCount].typeName="Att") ATTACK_HEROES = ATTACK_HEROES - 1
if (city.heroes[currHeroCount].typeName="Int") INTEL_HEROES = INTEL_HEROES - 1
if (city.heroes[currHeroCount].typeName="Pol") POL_HEROES = POL_HEROES - 1
currHeroCount = currHeroCount + 1
if (ATTACK_HEROES = 0) * (INTEL_HEROES = 0) * (POL_HEROES = 0) goto setOriginalHeroNames
goto getNext

label setOriginalHeroNames
if startHeroCount = 0 goto allDone
j = 0
label renameNext2
execute "renamehero " + tempNames[j] + " " + currentNames[j]
j = j + 1
if j < startHeroCount goto renameNext2
label allDone
echo "All Done"
config nomayor:0
loadgoals 0

The following variation uses the true base (what it will be after you water hero). Heroes get renamed with the true base tacked on the end. (good idea JB :))
NB. This will currently only work with level 1 Inns.


MIN_BASE = 50
ATTACK_HEROES = 6
INTEL_HEROES = 0
POL_HEROES = 1
//---------------nothing to alter below here-----------------//
resetgoals
config nomayor:1
startHeroCount = city.heroes.length
currHeroCount = startHeroCount
if startHeroCount = 0 goto getNext
currentNames = []
tempNames = [ "aa", "bb", "cc", "dd", "ee", "ff", "gg", "hh", "ii" ]
i = 0

label renameNext
currentNames = currentNames.concat(city.heroes[i].name)
execute "renamehero " + currentNames[i] + " " + tempNames[i]
i = i + 1
if i < startHeroCount goto renameNext
label getNext
label recheck
setfocus
sleep 2
if city.innHeroes.length < 1 goto recheck trueBase = max(city.innHeroes[0].power,city.innHeroes[0].stratagem,city.innHeroes[0].management) - city.innHeroes[0].heroWithBaseToString.split(">")[4].split(max(city.innHeroes[0].power,city.innHeroes[0].stratagem,city.innHeroes[0].management))[1].replace("]","").split("-")[1].split(" ")[0]*1
getspamhero
setfocus
label retry
if city.heroes.length = currHeroCount goto retry
if ((trueBase >= MIN_BASE ) * (ATTACK_HEROES > 0) * (city.heroes[currHeroCount].typeName="Att")) + ((trueBase >= MIN_BASE) * (POL_HEROES > 0) * (city.heroes[currHeroCount].typeName="Pol")) + ((trueBase >= MIN_BASE) * (INTEL_HEROES > 0) * (city.heroes[currHeroCount].typeName="Int")) goto gotOne
execute "firehero " + city.heroes[currHeroCount].name
label retry2
if city.heroes.length = currHeroCount goto getNext
goto retry2

label gotOne
if (city.heroes[currHeroCount].typeName="Att") ATTACK_HEROES = ATTACK_HEROES - 1
if (city.heroes[currHeroCount].typeName="Int") INTEL_HEROES = INTEL_HEROES - 1
if (city.heroes[currHeroCount].typeName="Pol") POL_HEROES = POL_HEROES - 1
execute "renamehero " + city.heroes[currHeroCount].name + " Base" + trueBase
currHeroCount = currHeroCount + 1
if (ATTACK_HEROES = 0) * (INTEL_HEROES = 0) * (POL_HEROES = 0) goto setOriginalHeroNames
goto getNext

label setOriginalHeroNames
if startHeroCount = 0 goto allDone
j = 0
label renameNext2
execute "renamehero " + tempNames[j] + " " + currentNames[j]
j = j + 1
if j < startHeroCount goto renameNext2
label allDone
echo "All Done"
config nomayor:0
loadgoals 0

Source: Sericom

Automatic Level 10 NPC Farming Script – by EHU

Here is an Automatic Level 10 NPC Farming Script for NEAT bot.. no need to change anything except the "set minarchers" value which is currently set to 120k, you could also change the troops and heroname if you are comfortable with NEAT scripting!! Have fun watching food pile up.. ;)

Also, if you have an insta-archer hero running on this script you may want to make some of the delays in this script longer, otherwise your hero will burn through your archers/population/resources too fast making insta-archers while farming lvl 10 npcs! You will see… then adjust as needed. If you are not familar with NEAT Bot for Evony then head over to the NEAT Bot section of Evony Hookups to learn a bit more about and acquire the BEST Evony Bot yet!


label autorun //-- The Auto-Run --//
sleep 300 //-- Delay for bot to stabilize, and map. --//

set heroname any:att=best //-- Hero Variables --//
set troops a:88k,t:2k,s:3k,w:7k //-- Troop Variables --//
set sleepcycle 300 //-- Inter-script sleep Delay --//
set minarchers 88k //-- Minimum Archers for Farming --//

type="npc" //-- What to Farm.. --//
distance=6 //-- Distance of NPCs to farm --//
level=10 //-- Level of NPCs to farm --//

//-- Don't Touch Below!! --// 

list=FindField(city.x, city.y, distance, GetFieldType(type), level)
echo "Found " + list.length + " level " + level + " " + type + "(s)" 
ind=0

label farming
ifgoto (ind==list.length) wait
ifgoto ( m_city.cityManager.troop.archer < %minarchers% ) wait
xy=list[ind]
echo "attack "+FieldIdToCoords(xy)+" %heroname% %troops%"
execute "attack "+FieldIdToCoords(xy)+" %heroname% %troops%"
ind=ind+1
loop farming

//Method wait
label wait
ind=0
sleep %sleepcycle%
goto farming
//End of Method Wait

EnoughFood
goto EOS

label EOS
echo "All done farming lvl 10 NPCs with feeders for now!!"

Valley Capturing and Medal Farming Section

Here is a good Evony Neat Bot goal section that is the standard setup for faster Valley Capturing and Medal Farming.

///---------------------------------------
/// Valley Capturing and Valley Medal Farming
///---------------------------------------
config hunting:4
config valley:10
valleyfarming 10 0 10 0 0 0
valleylimit a:120k
valleytroops 10 w:300,s:1,p:1,sw:1,a:25k
valleytroops 9 w:200,s:1,p:1,sw:1,a:20k