• My Pages
  • Comments
  • Add Link
  • Subscribe
  • Subscribe User
  • Edit (GUI)
  • Edit (Text)
  • Rename Page
  • Copy Page
  • Load Page
  • Save Page
  • Delete Page
  • Attachments
  • Check Spelling
  • Diffs
  • Info
  • Revert to this revision
  • XML
  • Render as Docbook
  • Print View
  • Raw Text
  • Delete Cache
  • Like Pages
  • Local Site Map
  • Remove Spam
  • Package Pages
  • Sync Pages
    • Diff for "CategoryAllGoals"
    Differences between revisions 7 and 8
    Revision 7 as of 2012-08-21 02:45:47
    Size: 10871
    Editor: Inanna
    Comment:
    Revision 8 as of 2012-08-21 02:51:15
    Size: 10900
    Editor: Inanna
    Comment:
    Deletions are marked like this. Additions are marked like this.
    Line 1: Line 1:
    <<Navigation(children)>>

    How to write your goals

    Goals are the bread and butter of your bot's ability to manage your account. Unlike scripts, goals are "end result" actions to work towards, meaning you tell the bot what you want, and it will work on achieving that as it performs it's tasks. The thing to remember about goals is that they are not performed line by line in order. You can write most goals in any order you like and they will function the same. For example:

    config comfort:1 
    config npc:5 
    npcheroes farmer1,farmer2

    The above goals would work the same if you wrote them as:

    config npc:5
    npcheroes farmer1,farmer2
    config comfort:1

    Config goals (those with config whatever:[value] formats) can be combined one one line as well:

    config npc:5,comfort:1
    npcheroes farmer2,farmer1

    Notice in the above example, the npcheroes goal was not combined to the line with the config goals. While both types are goals, they will not work on the same line. The different types of goals are: Directives, Policies, and Config. As shown in the above examples, config goals can be joined together with a comma. Directives must be listed one per line, with the parameters after it. For example:

    npcheroes farmer1,farmer2
    herofirelimit 120
    excludelist 123,456 234,567

    Policies must also be listed one per line. The formatting you will use for the parameters of a policy depend on the goal itself. For example:

    tradepolicy /type:food /min:2d /max:20d /allowselltomin
    comfortpolicy 15 20 popraise
    rallypolicy n:5 v:5

    It is important to notice that in policies and directives, that you must have a space between each type, as shown above. Typing it as /type:food/min:2d will not work! Whereas with config goals, it is just the opposite. Typing it as config npc: 1 will not work, because of the space after npc:

    Certain config goals in the bot can be turned on and off with a 0 or 1. Still others have a 2 or higher number as an option. Each configuation goal will be explained in the guide later, but for general knowledge:

    • 0 means off/no/false
    • 1 means on/yes/true

    To be sure you are typing your goals correctly, view the usage and examples in this wiki, and write them exactly as you see them as far as spacing and symbols go.

    Syntax Highlighting

    You will notice the words you type in are colored. These colors are to guide you through proper goals writing. Some things you type will show up in red. Normally this means you have typed something invalid into your goals and should fix it, but sometimes it can also be a valid line that just isn't added to the bot's internal syntax highlighting list yet. New features may show up red for awhile until they are added.

    Notes and Comments

    You may "comment" out certain lines by adding a // or # at the beginning of the line. The bot will not perform any goals written on a commented line. This is a good way to remind yourself what a line does, eg:

    // Tell my bot not to fire any hero I capture of lvl 100 or higher
    capturedfirelimit 100
    // Tell my bot to farm lvl 5 npcs
    config npc:5

    or a good way to temporarily turn off a feature in your goals, eg:

    // Disable the next line temporarily until I get around to porting it...
    #keepresource AnotherTown w:20000000,i:20000000 5000000

    Errors in Goals

    Sometimes when you save changes and set goals, the log window will show you an error. I have found that MOST users will read only the last line of the error, rather than the entire error showing them the problem. For example:

    21:05:16 (City) - setting goals
    21:05:16 (City) - SENDTROOPS: Invalid parameters: asdf
    21:05:16 (City) - expected: sendtroops coords trooptype local_min remote_min quantity
    21:05:16 (City) - examples: sendtroops 50,50 archer 500k 100k 100k
    21:05:16 (City) -           sendtroops 50,50 scout  200k 100k -1
    21:05:16 (City) - comfort policy set to: popraise  in every 15 to 18 minutes
    21:05:16 (City) - Config: hero:1, buildnpc:20, keepatthome:1, reservedbarrack:1, troopsusepopmax:1, valley:10, comfort:1, troopqueuetime:2, npc:5
    21:05:16 (City) - ERROR IN GOALS, please check!!!

    The error in this case is not "21:05:16 (City) - ERROR IN GOALS, please check!!!" but instead the error is is "21:05:16 (City) - SENDTROOPS: Invalid parameters: asdf"

    How to debug your Goals

    Anytime you post on the forum requesting help, we're going to ask you for the debug log. This many sound like jibberish, but it's not too hard. Let's pretend you have config hunting:5 in your goals, but the bot is not attacking valleys for medals and you have no idea why. First step, go to the city with the problem. Now click on the "Debug Settings" tab near the top, it will be next to the "Goal" and "Script" tabs. In this window you will see the individual features of the bot listed out:

    Once there, check Normal, Verbose, and Valley. Normal because that's probably already on. Verbose because you want to check this ALWAYS for EVERY debug log no matter what the issue is. And finally Valley because your problem is with the bot not hitting valleys. If your bot was failing to attack npcs instead, you'd select Normal, Verbose, and Npc Farming instead. If your bot wasn't trading properly, you'd select Normal, Verbose, and Trading instead.... so on and so forth.

    Now patiently sit and wait until that city gets focus. Focus occurs in one city at a time, down the row from left to right, as the bot performs it's tasks. Just like a real player would in game, the bot will only "click" on one city at a time to do things in. You will know when your debug city gets focus because it will say something like "City receives focus" followed by a ton of spam in the logging window at the bottom. Let this run for about a minute, then turn off Verbose and Valley debugging by unchecking those boxes.

    Now click on CITY LOG so that you can only see the logging output for the city in question and not all the others.Scroll up to the start where you saw "City receives focus" and copy it all the way down. Go to your forum post and paste the debug log along with your goals for that city and an explanation of your problem.

    If you're feeling adventurous, you can read all that spam and probably figure out your own problem. For example, you may see "HUNTING: Error - not enough troops!" and know that it's not attacking valleys because you don't have enough troops there. Or you may see "HUNTING: Error - all rally slots are full!" and know that it's not attacking valleys because your npc farmers or transports or something is hogging all your rally slots. Most errors are in understandable wording. If you can't figure it out, we're happy to help on the forum.

    Hero Strings in Goals

    Many places in the bot will allow you to specify heroes. The selection or list of heroes to be used will be referred to as the hero-string in various other places in this wiki.


    You may list hero names individually, and/or exclude heroes with '!name', and/or include all heroes with 'any' or even use no hero at all with 'none'. For example,

    • valleyheroes Biggy this would allow only hero Biggy to attack valleys & flats

    • npcheroes any,!Smarty,!Biggy this would allow any hero except Smarty and except Biggy to hit npcs

    • npcheroes 10 Biggy,Polly,Smarty this would allow heroes Biggy, Polly, and Smarty to hit npc10s

    • reinforce 123,456 none c:100000 this would allow you to reinforce 123,456 with cav but not to include a hero


    You may also use advanced filters in hero strings in the format of hero:filter. The hero name list (or 'any') must be stated first, followed by the filter(s). Any filters listed will apply to the entire line. For example,

    • valleyheroes any:attack>180 this would allow any hero with an attack over 180 to attack valleys & flats

    • valleyheroes any:politics<200 this would allow any hero with politics under 200 to attack valleys & flats

    • npcheroes 8 any:politics=best this would allow the best politics hero to hit npc8s

    • npcheroes 10 any:attack>300,base>60 this would allow any attack hero with both an attack over 300 AND a base over 60 to hit npc10s

    • attack 111,222 !Biggy,any:attack>180 c:99k,s:1k this would attack coordinates 111,222 with any hero over 180 attack other than hero Biggy with 99k cavs, 1k scouts

    • attack 111,222 !Polly,any:attack<100 w:5k this would attack coordinates 111,222 with any hero under 100 attack other than hero Polly with 5k warriors


    If you wish to apply seperate filters to seperate heroes, use multiple lines. For example,

    • npcheroes 5 any:base>60

    • npcheroes 5 any:attack<300

    The above lines mean that npc5s can be farmed with any hero that has greater than 60 base, OR any hero that has less than 300 attack.

    Multiple lines can be concatenated into a single line with the | symbol. For example,

    • npcheroes 5 any:base>60|any:attack<300

    The above line means exactly the same thing as the 2 before it.

    • npcheroes 5 any:base>60,attack<300

    If you were to instead use the line above, it would mean npc5s can be farmed with any hero that has both greater than 60 base, AND is less than 300 attack.


    All possible filters for use in hero strings are:

    • attack or att
    • politics or pol
    • intel or int
    • loyalty or loy
    • level or lvl
    • experience or exp points or pts
    • base or bse

    All possible comparisons to use in filters are:

    • < (less than)

    • > (greater than)

    • = (equal to)
    • != (not equal to)
    • <> (not equal to)

    • <= (less than or equal to)

    • >= (greater than or equal to)

    "Best" and "Worst" can be used in place of values for comparisons, example:

    • npcheroes 10 any:attack=best would allow npc10s to be farmed with the best attack hero.

    • npcheroes 5 any:attack<best would allow npc5s to be farmed with any hero lower than the best attack hero.

    Stats can be compared to other stats in place of values, example:

    • npcheroes 5 any:attack>politics would allow any hero with an attack score greater than it's politics score.

    • npcheroes 5 any:politics>level would allow any hero with a politics score greater than it's level.

    Wildcards can be used for the hero list. * will represent 1 or more characters, ? will represent 1 character. For example,

    • npcheroes 5 att*:attack>200 would allow npc5s to be farmed with any hero over 200 attack that has att in it's name.

    • npcheroes 5 *:base>60 would allow npc5s to be farmed with any hero that has a base over 60.


    CategoryGoals

    CategoryAllGoals (last edited 2012-09-26 23:34:58 by Romulus)