; EVEBot - Alpha 0.2 7/5/07 ; Skeleton taken from Fuergrissa and fixed by Tehtsuo ; Expanded upon and further bugfixed/documented by Stealthy ; Note: You may want to add additional possible cargohold pixels yourself. Using my exmaples, ; it's not hard to do. If you're stuck trying to drag cargo that isn't there, this is most likely ; your problem. #include ./core/functions.iss function DeclareState() { if ${Me.ToEntity.Mode}==3 { Return "WARP" } if ${Me.InStation} && (${Me.Ship.UsedCargoCapacity}==0) && !${WasTargeted} { Return "UNDOCK" } if !(${Me.Ship.UsedCargoCapacity}==0) && ${Entity[ID,${station}].Distance}<1000 { Return "DOCK" } if ${WasTargeted} && ${Me.InStation} { Return "ENDSCRIPT" } if ((!${Me.Ship.UsedCargoCapacity}==0)||${WasTargeted}) && ${Entity[ID,${station}].Distance}>50000 { Return "STATIONWARP" } if ((!${Me.Ship.UsedCargoCapacity}==0)||${WasTargeted}) && ${Entity[ID,${station}].Distance}<=50000 { return "APPROACHSTATION" } if (${Me.Ship.UsedCargoCapacity}==0) && ${Entity[ID,${belt}].Distance}>50000 && UseBookmark == 0 { Return "BELTWARP" } if (${Me.Ship.UsedCargoCapacity}==0) && ${Math.Distance[BookmarkX,BookmarkY,BookmarkZ,${Me.ToEntity.X},${Me.ToEntity.Y},${Me.ToEntity.Z}]} > 50000 && UseBookmark == 1 { Return "BOOKWARP" } if (${Me.Ship.UsedCargoCapacity} == 0) && ${roid}==0 && ((${Entity[ID,${belt}].Distance}<=50000 && UseBookmark == 0) || (UseBookmark == 1 && ${Math.Distance[BookmarkX,BookmarkY,BookmarkZ,${Me.ToEntity.X},${Me.ToEntity.Y},${Me.ToEntity.Z}]} <= 50000)) || !${Entity[ID,${AsteroidID}].ID} > 0 { Return "SELECTROID" } if (${Me.Ship.UsedCargoCapacity}==0) && !${roid}==0 && (${Entity[ID,${belt}].Distance}<=50000 && UseBookmark == 0) || (${Math.Distance[BookmarkX,BookmarkY,BookmarkZ,${Me.ToEntity.X},${Me.ToEntity.Y},${Me.ToEntity.Z}]} <= 50000 && UseBookmark == 1) && ${Entity[ID,${roid}].Distance}>9000 { Return "APPROACHROID" } if (${Me.Ship.UsedCargoCapacity}==0) && !${roid}==0 && (${Entity[ID,${belt}].Distance}<=50000 && UseBookmark == 0) || (${Math.Distance[BookmarkX,BookmarkY,BookmarkZ,${Me.ToEntity.X},${Me.ToEntity.Y},${Me.ToEntity.Z}]} <= 50000 && UseBookmark == 1) && ${Entity[ID,${roid}].Distance}<=9000 { Return "MINEROID" } Return "NONE" } function main() { declare station int script ${Entity[CategoryID,3].ID} declare belt int script ${Entity[GroupID,9].ID} declare roid int script declare botstate string declare WasTargeted bool script variable bool AsteroidID call LoadCoordinates While ${botstate.NotEqual[END]} { call DeclareState botstate:Set[${Return}] echo ${botstate} Switch ${botstate} { case ENDSCRIPT endscript evebot case WARP waitframe break case UNDOCK call DragToHangar call StackAll Me:Undock do { wait 10 } while ${Me.InStation} wait 100 belt:Set[${Entity[GroupID,9].ID}] break case DOCK Entity[ID,${station}]:Dock do { wait 10 } while !${Me.InStation} wait 50 break case STATIONWARP Entity[ID,${station}]:WarpTo do { wait 10 } while !${Me.ToEntity.Mode}==3 break case APPROACHSTATION Entity[ID,${station}]:Approach do { wait 10 } while ${Entity[ID,${station}].Distance} > 100 break case BELTWARP wait 50 Entity[ID,${belt}]:WarpTo do { wait 10 } while !${Me.ToEntity.Mode}==3 break case BOOKWARP wait 50 call BookmarkWarp do { wait 10 } while !${Me.ToEntity.Mode}==3 break case SELECTROID roid:Set[${Entity[CategoryID,25].ID}] AsteroidID:Set[${Entity[ID,${roid}].ID}] echo ${roid} selected break case APPROACHROID Entity[ID,${roid}]:Orbit do { wait 10 } while !${Entity[ID,${roid}].Distance}<=9000 break case MINEROID call MineRoid ${roid} roid:Set[0] break case NONE waitframe break } } }