• My Pages
  • Comments
  • Add Link
  • Subscribe
  • Subscribe User
  • 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

    // TELEPORT v0.04 (c) 2014 NeatPortal.com
    // This script will check if all your cities are in the specified state, and do nothing if they are.
    // Otherwise it will prepare and teleport cities as needed.
    // Once all cities are in the right state the script with close the bot (allowing for clean restart by the director).
    //
    // Usage example: To teleport all cities to Tuscany run bot with these custom command line parameters:
    //    -runscript Teleport.txt -teleport tuscany
    
    if Config.teleport == null goto finish
    state = Config.teleport.toUpperCase()
    
    if state == GetZoneName(city.fieldId).toUpperCase() goto finish
    
    config wartown:2,comfort:1
    recallall
    
    sleep 30
    
    // sort by reachTime, descending
    label checkArmies
    army = city.selfArmies.toArray().sortOn("reachTime", 18)[0]
    if army == null goto teleport
    
    secondsLeft = ceil(TimeDiff(army.reachTime) / 1000) // time left in seconds, rounded up
    if secondsLeft > 0 echo "Waiting for armies to return for " + secondsLeft + " seconds"
    if secondsLeft > 0 execute "sleep " + secondsLeft
    
    if city.selfArmies.length > 0 say "Still have armies"
    if city.selfArmies.length > 0 goto checkArmies
    
    label teleport
    try = 0
    say "Trying to teleport " + city.name + " to " + state
    sleep 10
    
    label tryteleport
    try = try + 1
    execute "teleport " + state
    if !$error goto finalcheck
    if try >= 5 goto giveup
    say "Can't teleport " + city.name + " to " + state + ", will retry in 5 minutes"
    sleep 5:00
    goto tryteleport
    
    label finalcheck
    x = 0
    label checkCities
    if GetZoneName(cities[x].cityManager.fieldId).toUpperCase() != state goto continue
    x = x + 1
    if x < cities.length goto checkCities
    say "All cities are now in " + state + ", will close in 10 seconds"
    sleep 10
    
    // assuming the director will restart the bot
    exit
    
    label giveup
    say "Can't teleport " + city.name + " to " + state
    
    label continue
    loadgoals
    
    label finish


    ScriptExamples

    AutoTeleporter (last edited 2014-03-18 17:00:03 by Inanna)