OGame Automizer Development Forum

Please login or register.

Login with username, password and session length
Advanced search  

News:

Welcome on the OGame Automizer Development/Support Forum

If this is your first visit, be sure to check out the
http://ogameautomizer.com/doc/manual.html : A guide written by OA users with consultation of OA author (En)

http://ogameautomizer.com/doc/manual_de.html : A guide written by OA users with consultation of OA author (Benutzerschnittstellenhandbuch) (GE)

http://ogameautomizer.com/doc/scripting_manual.html : OA Scripting Manual (En)

Pages: 1 2 [3] 4 5 6

Author Topic: Easiest way to scan moons with OA Scripting  (Read 30024 times)

0 Members and 1 Guest are viewing this topic.

kuite

  • Guest
Re: Easiest way to scan moons with OA Scripting
« Reply #30 on: September 22, 2012, 12:50:40 PM »

Thanks, i delete this line at it worked, but I have another problem :

Code: [Select]
//Definition of function to print a player info
def printPlayer = { player ->
  printOut player.playerID + "|" + player.playerName + "|" + player.planetName + "\t" +
    player.rank + "\t" +
    player.galaxy + ":" + player.system + ":" + player.planet + " " + player.isMoon + "\t" +
    player.globalActivityStatus + "\t" +  //OGamePlayerAbstract.ACTIVE_ACTIVITY_STATUS, INACTIVE_ACTIVITY_STATUS, LONGINACTIVE_ACTIVITY_STATUS, NOOB_ACTIVITY_STATUS, VACATION_ACTIVITY_STATUS, STRONG_ACTIVITY_STATUS, BANNED_ACTIVITY_STATUS, UNKNOWN_ACTIVITY_STATUS
    player.metalDebris + "\t" +
    player.crystalDebris + "\t" +
    (player.allianceID == 0 ? "No_Ally" : player.allianceID + "|" + player.allianceName + "|" + player.allianceRank);
}

def coord = Coordinates.getCoordinates("[x:xxx:x]")
def radius = 80
def spy2send = 5
def iter = getPlayers().iterator()
while(iter.hasNext()){
  def player = iter.next()
 if(player.galaxy==coord.galaxy && player.system>=coord.system-radius && player.system<=coord.system+radius && player.rank>=550){
    //print it
    printPlayer player
    //wait till have needed spies
    while(getNumberOf('ESPIONAGEPROBE', coord) < spy2send || !hasAvailableFleetSlot()){
      printOut "waiting for spies or free fleet slots..."
      printOut "Has Available Fleet slots: " + hasAvailableFleetSlot()
      printOut "ESPIONAGE PROBEs on planet: " + getNumberOf('ESPIONAGEPROBE', coord)
      sleep 30000
    }
    //Send a spy ...
    def sent = sendFleet(  //sendFleet function returns a boolean [true,false], Groovy infers the type of 'sent' variable at compile time
      getPlanetFromCoordinates(coord).name,  //Planet Name: "Main Planet"
     new Coordinates(player.galaxy,player.system,player.planet,(player.isMoon ? Coordinates.MOON_TYPE : Coordinates.PLANET_TYPE)),     //Target Coordinates (yours or enemy)
      FleetMission.ESPIONAGE_MISSION,  //Missions: ATTACK_MISSION, TRANSPORT_MISSION, DEPLOYMENT_MISSION, ESPIONAGE_MISSION, COLONIZATION_MISSION, RECYCLE_MISSION, EXPEDITION_MISSION
      100,          //Speed [10-100] means 10%-100%, speed step is 10% => 10,20,30,...,100
      [ESPIONAGEPROBE : spy2send]  //SMALLCARGO, LARGECARGO, LIGHTFIGHTER, HEAVYFIGHTER, CRUISER, BATTLESHIP, COLONYSHIP, RECYCLER, ESPIONAGEPROBE, BOMBER, DESTROYER, DEATHSTAR, BATTLECRUISER
    );
    if(sent) printOut "Fleet sent !"
    else printOut "Fleet sent failed !"
  }
}

Well, I am trying using diffrent scripts (like the first one mentioned in topic) but all of them spying players and Idlers, is it way to stop OA from spying idlers in this scripts ?

E : Nvm, I solved problem myself (somebody post command in this topic before)
« Last Edit: September 22, 2012, 09:04:43 PM by kuite »
Logged

wulf3010

  • Sr. Member
  • ****
  • Offline Offline
  • Posts: 447
    • View Profile
Re: Easiest way to scan moons with OA Scripting
« Reply #31 on: September 29, 2012, 05:15:41 PM »

Quote
wheere i have to put my koordinates from where i want to scan the moons ?

Code: [Select]
def coord = getPlanets().get(0).coordinatesreplace the line above by the following one:
Code: [Select]
def coord = Coordinates.getCoordinates("[X:Y:Z]")
Regards,

1. He is not seeing correctly my avaliable slots. I have 1 occupied and 14 free, he says none free
http://screenpresso.com/=Im9tb

2. how can i tell the script that it should scan from Moon if moon is avaliable not from planet. If you dont have spy probes on planet, he dont start.

newest public OA version on server 2008 and newest java
« Last Edit: September 29, 2012, 05:18:55 PM by wulf3010 »
Logged

LOGAN

  • Newbie
  • *
  • Offline Offline
  • Gender: Female
  • Posts: 20
    • View Profile
Re: Easiest way to scan moons with OA Scripting
« Reply #32 on: March 16, 2013, 01:26:46 PM »

They could put the whole script complete, already tried and failed
Logged

div

  • Newbie
  • *
  • Offline Offline
  • Posts: 1
    • View Profile
Re: Easiest way to scan moons with OA Scripting
« Reply #33 on: May 16, 2013, 08:42:43 PM »

Could some one show me the code line of scripts which is responsible for spying allies? I do not know what should i copy and where to stop doing that.
Logged

LOGAN

  • Newbie
  • *
  • Offline Offline
  • Gender: Female
  • Posts: 20
    • View Profile
Re: Easiest way to scan moons with OA Scripting
« Reply #34 on: May 30, 2013, 06:41:51 PM »

ERROR on script


Quote
//Definition of function to print a player info
def printPlayer = { player ->
  printOut player.playerID + "|" + player.playerName + "|" + player.planetName + "\t" +
    player.rank + "\t" +
    player.galaxy + ":" + player.system + ":" + player.planet + " " + player.isMoon + "\t" +
    player.globalActivityStatus + "\t" +  //OGamePlayerAbstract.ACTIVE_ACTIVITY_STATUS, INACTIVE_ACTIVITY_STATUS, LONGINACTIVE_ACTIVITY_STATUS, NOOB_ACTIVITY_STATUS, VACATION_ACTIVITY_STATUS, STRONG_ACTIVITY_STATUS, BANNED_ACTIVITY_STATUS, UNKNOWN_ACTIVITY_STATUS
    player.metalDebris + "\t" +
    player.crystalDebris + "\t" +
    (player.allianceID == 0 ? "No_Ally" : player.allianceID + "|" + player.allianceName + "|" + player.allianceRank);
}

def coord = Coordinates.getCoordinates("[X:XXX:X]")
def radius = 80
def spy2send = 6
//++++++++
@ClassesDefinitionStart
class CoordComparator implements Comparator {
  public int compare(Object o1, Object o2){
    return o1.getCoordinates().compareTo(o2.getCoordinates())
  }
}
@ClassesDefinitionEnd

def p = getPlayers()
Collections.sort(p, new CoordComparator())
def iter = p.iterator()

//*******def iter = getPlayers().iterator()
while(iter.hasNext()){
  def player = iter.next()
 if(player.galaxy==coord.galaxy && player.system>=coord.system-radius && player.system<=coord.system+radius && player.rank>=150 && player.isMoon){
    //print it
    printPlayer player
    //wait till have needed spies
    while(getNumberOf('ESPIONAGEPROBE', coord) < spy2send || !hasAvailableFleetSlot()){
      printOut "waiting for spies or free fleet slots..."
      printOut "Has Available Fleet slots: " + hasAvailableFleetSlot()
      printOut "ESPIONAGE PROBEs on planet: " + getNumberOf('ESPIONAGEPROBE', coord)
      sleep 30000
    }
    //Send a spy ...
    def sent = sendFleet(  //sendFleet function returns a boolean [true,false], Groovy infers the type of 'sent' variable at compile time
      getPlanetFromCoordinates(coord).name,  //Planet Name: "Main Planet"
     new Coordinates(player.galaxy,player.system,player.planet,(player.isMoon ? Coordinates.MOON_TYPE : Coordinates.PLANET_TYPE)),     //Target Coordinates (yours or enemy)
      FleetMission.ESPIONAGE_MISSION,  //Missions: ATTACK_MISSION, TRANSPORT_MISSION, DEPLOYMENT_MISSION, ESPIONAGE_MISSION, COLONIZATION_MISSION, RECYCLE_MISSION, EXPEDITION_MISSION
      100,          //Speed [10-100] means 10%-100%, speed step is 10% => 10,20,30,...,100
      [ESPIONAGEPROBE : spy2send]  //SMALLCARGO, LARGECARGO, LIGHTFIGHTER, HEAVYFIGHTER, CRUISER, BATTLESHIP, COLONYSHIP, RECYCLER, ESPIONAGEPROBE, BOMBER, DESTROYER, DEATHSTAR, BATTLECRUISER
    );
    if(sent) printOut "Fleet sent !"
    else printOut "Fleet sent failed !"
  }
}




error script

Quote
The script will be restarted...    517:36:38 : Script Espia Luas has been stopped, Throwable: Comparison method violates its general contract!
17:36:38 : Below full stack trace:
17:36:38 :
17:36:38 : java.lang.IllegalArgumentException: Comparison method violates its general contract!
17:36:38 :    at Espia Luas.run(Espia Luas:25)



I do not want spy inactive, how do this?

Script tries to send spies to players on vacation, you should not do this, how to solve?
Logged

omnia2

  • Newbie
  • *
  • Offline Offline
  • Posts: 3
    • View Profile
Re: Easiest way to scan moons with OA Scripting
« Reply #35 on: August 19, 2013, 11:10:00 PM »

Code: [Select]
//Definition of function to print a player info
def printPlayer = { player ->
  printOut player.playerID + "|" + player.playerName + "|" + player.planetName + "\t" +
    player.rank + "400" +
    player.galaxy + ":" + player.system + ":" + player.planet + " " + player.isMoon + "\t" +
    player.globalActivityStatus + "ACTIVE_ACTIVITY_STATUS" +
    player.isInAvoidAttackList + "INACTIVE_ACTIVITY_STATUS" + "LONGINACTIVE_ACTIVITY_STATUS" + "NOOB_ACTIVITY_STATUS" + "VACATION_ACTIVITY_STATUS" + "BANNED_ACTIVITY_STATUS" + "UNKNOWN_ACTIVITY_STATUS"
    player.metalDebris + "\t" +
    player.crystalDebris + "\t" +
    (player.allianceID == 0 ? "No_Ally" : player.allianceID + "|" + player.allianceName + "|" + player.allianceRank);
}

def coord = Coordinates.getCoordinates("[g:s:p]")
def radius = 30
def spy2send = 7
//++++++++
@ClassesDefinitionStart
class CoordComparator implements Comparator {
  public int compare(Object o1, Object o2){
    return o1.getCoordinates().compareTo(o2.getCoordinates())
  }
}
@ClassesDefinitionEnd

def p = getPlayers()
Collections.sort(p, new CoordComparator())
def iter = p.iterator()

//*******def iter = getPlayers().iterator()
while(iter.hasNext()){
  def player = iter.next()
 if(player.galaxy==coord.galaxy && player.system>=coord.system-radius && player.system<=coord.system+radius && player.rank>=150 && player.isMoon){
    //print it
    printPlayer player
    //wait till have needed spies
    while(getNumberOf('ESPIONAGEPROBE', coord) < spy2send || !hasAvailableFleetSlot()){
      printOut "waiting for spies or free fleet slots..."
      printOut "Has Available Fleet slots: " + hasAvailableFleetSlot()
      printOut "ESPIONAGE PROBEs on planet: " + getNumberOf('ESPIONAGEPROBE', coord)
      sleep 10000
    }
    //Send a spy ...
    def sent = sendFleet(  //sendFleet function returns a boolean [true,false], Groovy infers the type of 'sent' variable at compile time
      getPlanetFromCoordinates(coord).name,  //Planet Name: "Main Planet"
     new Coordinates(player.galaxy,player.system,player.planet,(player.isMoon ? Coordinates.MOON_TYPE : Coordinates.PLANET_TYPE)),     //Target Coordinates (yours or enemy)
      FleetMission.ESPIONAGE_MISSION,  //Missions: ATTACK_MISSION, TRANSPORT_MISSION, DEPLOYMENT_MISSION, ESPIONAGE_MISSION, COLONIZATION_MISSION, RECYCLE_MISSION, EXPEDITION_MISSION
      100,          //Speed [10-100] means 10%-100%, speed step is 10% => 10,20,30,...,100
      [ESPIONAGEPROBE : spy2send]  //SMALLCARGO, LARGECARGO, LIGHTFIGHTER, HEAVYFIGHTER, CRUISER, BATTLESHIP, COLONYSHIP, RECYCLER, ESPIONAGEPROBE, BOMBER, DESTROYER, DEATHSTAR, BATTLECRUISER
    );
    if(sent) printOut "Fleet sent !"
    else printOut "Fleet sent failed !"
  }
}
Hi to all, I have a problem with the script, i have setup it but spy only player in (v) or I Why?? Where is the error?? thnks in advance sorry for bad english =D
« Last Edit: August 19, 2013, 11:24:30 PM by omnia2 »
Logged

omnia2

  • Newbie
  • *
  • Offline Offline
  • Posts: 3
    • View Profile
Re: Easiest way to scan moons with OA Scripting
« Reply #36 on: August 20, 2013, 04:03:15 PM »

No help for me?? Pls =(
Logged

LOGAN

  • Newbie
  • *
  • Offline Offline
  • Gender: Female
  • Posts: 20
    • View Profile
Re: Easiest way to scan moons with OA Scripting
« Reply #37 on: October 14, 2013, 03:10:57 PM »

Code: [Select]
//Definition of function to print a player info
def printPlayer = { player ->
  printOut player.playerID + "|" + player.playerName + "|" + player.planetName + "\t" +
    player.rank + "400" +
    player.galaxy + ":" + player.system + ":" + player.planet + " " + player.isMoon + "\t" +
    player.globalActivityStatus + "ACTIVE_ACTIVITY_STATUS" +
    player.isInAvoidAttackList + "INACTIVE_ACTIVITY_STATUS" + "LONGINACTIVE_ACTIVITY_STATUS" + "NOOB_ACTIVITY_STATUS" + "VACATION_ACTIVITY_STATUS" + "BANNED_ACTIVITY_STATUS" + "UNKNOWN_ACTIVITY_STATUS"
    player.metalDebris + "\t" +
    player.crystalDebris + "\t" +
    (player.allianceID == 0 ? "No_Ally" : player.allianceID + "|" + player.allianceName + "|" + player.allianceRank);
}

def coord = Coordinates.getCoordinates("[g:s:p]")
def radius = 30
def spy2send = 7
//++++++++
@ClassesDefinitionStart
class CoordComparator implements Comparator {
  public int compare(Object o1, Object o2){
    return o1.getCoordinates().compareTo(o2.getCoordinates())
  }
}
@ClassesDefinitionEnd

def p = getPlayers()
Collections.sort(p, new CoordComparator())
def iter = p.iterator()

//*******def iter = getPlayers().iterator()
while(iter.hasNext()){
  def player = iter.next()
 if(player.galaxy==coord.galaxy && player.system>=coord.system-radius && player.system<=coord.system+radius && player.rank>=150 && player.isMoon){
    //print it
    printPlayer player
    //wait till have needed spies
    while(getNumberOf('ESPIONAGEPROBE', coord) < spy2send || !hasAvailableFleetSlot()){
      printOut "waiting for spies or free fleet slots..."
      printOut "Has Available Fleet slots: " + hasAvailableFleetSlot()
      printOut "ESPIONAGE PROBEs on planet: " + getNumberOf('ESPIONAGEPROBE', coord)
      sleep 10000
    }
    //Send a spy ...
    def sent = sendFleet(  //sendFleet function returns a boolean [true,false], Groovy infers the type of 'sent' variable at compile time
      getPlanetFromCoordinates(coord).name,  //Planet Name: "Main Planet"
     new Coordinates(player.galaxy,player.system,player.planet,(player.isMoon ? Coordinates.MOON_TYPE : Coordinates.PLANET_TYPE)),     //Target Coordinates (yours or enemy)
      FleetMission.ESPIONAGE_MISSION,  //Missions: ATTACK_MISSION, TRANSPORT_MISSION, DEPLOYMENT_MISSION, ESPIONAGE_MISSION, COLONIZATION_MISSION, RECYCLE_MISSION, EXPEDITION_MISSION
      100,          //Speed [10-100] means 10%-100%, speed step is 10% => 10,20,30,...,100
      [ESPIONAGEPROBE : spy2send]  //SMALLCARGO, LARGECARGO, LIGHTFIGHTER, HEAVYFIGHTER, CRUISER, BATTLESHIP, COLONYSHIP, RECYCLER, ESPIONAGEPROBE, BOMBER, DESTROYER, DEATHSTAR, BATTLECRUISER
    );
    if(sent) printOut "Fleet sent !"
    else printOut "Fleet sent failed !"
  }
}
Hi to all, I have a problem with the script, i have setup it but spy only player in (v) or I Why?? Where is the error?? thnks in advance sorry for bad english =D


Urgent:

The script works well, but is trying to spy moons of players who are on vacation.

How to change the script to fix this??

Logged

Devil's Hand

  • Administrator
  • Hero Member
  • *****
  • Offline Offline
  • Posts: 2,523
    • View Profile
Re: Easiest way to scan moons with OA Scripting
« Reply #38 on: October 14, 2013, 08:18:51 PM »

Your if condition doesn't limit selection to any particular player status

Code: [Select]
if(player.galaxy==coord.galaxy && player.system>=coord.system-radius && player.system<=coord.system+radius && player.rank>=150 && player.isMoon)
so introduce the limit.

Code: [Select]
if(player.galaxy==coord.galaxy && player.system>=coord.system-radius && player.system<=coord.system+radius && player.rank>=150 && player.isMoon && player.globalActivityStatus == OGamePlayerAbstract.ACTIVE_ACTIVITY_STATUS){
Regards,
Logged

LOGAN

  • Newbie
  • *
  • Offline Offline
  • Gender: Female
  • Posts: 20
    • View Profile
Re: Easiest way to scan moons with OA Scripting
« Reply #39 on: October 17, 2013, 07:29:58 PM »

18:27:58 : SPIEMOON: Script stopped
18:28:00 : SPIEMOON: Script started
18:28:00 : SPIEMOON: Script stopped
18:28:00 : SPIEMOON: Script started
18:28:00 : SPIEMOON: Script stopped
18:28:01 : SPIEMOON: Script started


You always give this error ... I think I'll give up ...
Logged

LOGAN

  • Newbie
  • *
  • Offline Offline
  • Gender: Female
  • Posts: 20
    • View Profile
Re: Easiest way to scan moons with OA Scripting
« Reply #40 on: October 25, 2013, 05:44:01 PM »


the script works only after the spy bot galaxies ... if you have not spied nothing the script does not spying moons ....

how to solve this??
Logged

Auto

  • Newbie
  • *
  • Offline Offline
  • Posts: 11
    • View Profile
Re: Easiest way to scan moons with OA Scripting
« Reply #41 on: October 28, 2013, 02:47:50 PM »

 ;D ;D ;D ;D ;D ;D ;D ;D

Mine is working there way.

Logan is so clean in many capella? hahahahah
Logged

TheMann

  • Newbie
  • *
  • Offline Offline
  • Posts: 29
    • View Profile
Re: Easiest way to scan moons with OA Scripting
« Reply #42 on: November 30, 2013, 08:53:45 PM »

Code: [Select]
//Definition of function to print a player info
def printPlayer = { player ->
  printOut player.playerID + "|" + player.playerName + "|" + player.planetName + "\t" +
    player.rank + "\t" +
    player.galaxy + "" + player.system + ":" + player.planet + " " + player.isMoon + "\t" +
    player.globalActivityStatus + "/t" +  //OGamePlayerAbstract.ACTIVE_ACTIVITY_STATUS, INACTIVE_ACTIVITY_STATUS, LONGINACTIVE_ACTIVITY_STATUS, NOOB_ACTIVITY_STATUS, VACATION_ACTIVITY_STATUS, STRONG_ACTIVITY_STATUS, BANNED_ACTIVITY_STATUS, UNKNOWN_ACTIVITY_STATUS
    player.metalDebris + "\t" +
    player.crystalDebris + "\t" +
    (player.allianceID == 0 ? "No_Ally" : player.allianceID + "|" + player.allianceName + "|" + player.allianceRank);
}

def coord = getPlanets().get(0).coordinates
def radius = 50
def spy2send = 30
@ClassesDefinitionStart
class CoordComparator implements Comparator {
  public int compare(Object o1, Object o2){
    return o1.getCoordinates().compareTo(o2.getCoordinates())
  }
}
@ClassesDefinitionEnd
def p = getPlayers()
Collections.sort(p, new CoordComparator())
def iter = p.iterator()
while(iter.hasNext()){
  def player = iter.next()
if(player.galaxy==coord.galaxy && player.system>=coord.system-radius && player.system<=coord.system+radius && player.rank>=150 && player.isMoon && player.globalActivityStatus == ACTIVE_ACTIVITY_STATUS){ /*&& player.playerName.equals("Player Name") && player.rank>=XXX*/){
    //print it
    printPlayer player
    //wait till have needed spies
    while(getNumberOf('ESPIONAGEPROBE', coord) < spy2send || !hasAvailableFleetSlot()){
      printOut "waiting for spies or free fleet slots..."
      printOut "Has Available Fleet slots: " + hasAvailableFleetSlot()
      printOut "ESPIONAGE PROBEs on planet: " + getNumberOf('ESPIONAGEPROBE', coord)
      sleep 30000
    }
    //Send a spy ...
    def sent = sendFleet(  //sendFleet function returns a boolean [true,false], Groovy infers the type of 'sent' variable at compile time
      getPlanetFromCoordinates(coord).name,  //Planet Name: "Main Planet"
      new Coordinates(player.galaxy,player.system,player.planet,(player.isMoon ? Coordinates.MOON_TYPE : Coordinates.PLANET_TYPE)),     //Target Coordinates (yours or enemy)
      FleetMission.ESPIONAGE_MISSION,  //Missions: ATTACK_MISSION, TRANSPORT_MISSION, DEPLOYMENT_MISSION, ESPIONAGE_MISSION, COLONIZATION_MISSION, RECYCLE_MISSION, EXPEDITION_MISSION
      100,          //Speed [10-100] means 10%-100%, speed step is 10% => 10,20,30,...,100
      [ESPIONAGEPROBE : spy2send]  //SMALLCARGO, LARGECARGO, LIGHTFIGHTER, HEAVYFIGHTER, CRUISER, BATTLESHIP, COLONYSHIP, RECYCLER, ESPIONAGEPROBE, BOMBER, DESTROYER, DEATHSTAR, BATTLECRUISER
    );
    if(sent) printOut "Fleet sent !"
    else printOut "Fleet sent failed !"
  }
}

Hey guys this is the code i have got for the moon spy i have a couple of problems if u may be able to help me and thanks in advance if you can...

1.Global activity status at the top i remove the /t and put in "ACTIVIE_ACTIVITY_STATUS" is this correct to limit it to pick active players moons?
2
.i Keep getting this error message from code iv added in from a post on here for active players.
Code: [Select]
Script Moon Spy has compilation errors:
startup failed:
Moon Spy: 27: unexpected token: { @ line 27, column 202.
   tus == ACTIVE_ACTIVITY_STATUS){ /*&& pla
                                 ^

1 error

Line 27 is the If statement and the active_activity_status at the end its not liking it...
3. The script seems to be picking the players and moons its also saying its sending fleet and spies but it does send em like twice then after it doesnt send any probes and i have enough probes...
Logged

TheMann

  • Newbie
  • *
  • Offline Offline
  • Posts: 29
    • View Profile
Re: Easiest way to scan moons with OA Scripting
« Reply #43 on: December 02, 2013, 10:00:57 PM »

Is there a way to filter out ally friends from the selection?
Logged

wulf3010

  • Sr. Member
  • ****
  • Offline Offline
  • Posts: 447
    • View Profile
Re: Easiest way to scan moons with OA Scripting
« Reply #44 on: December 06, 2013, 02:25:20 PM »

If i try to runt he script:

Script Spy Moons has compilation errors:
startup failed:
Spy Moons: 27: unexpected token: { @ line 27, column 202.
   tus == ACTIVE_ACTIVITY_STATUS){ /*&& pla
                                 ^

1 error
Logged
Pages: 1 2 [3] 4 5 6
 

Page created in 0.084 seconds with 20 queries.