Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Func Impossible_go()
- WinActivate("Star Wars™: The Old Republic™")
- Impossible_Main()
- EndFunc
- Func Impossible_Main()
- $rdelay=280
- $mdelay=15
- $mission_name="Impossible Sector "
- Global $coll=0, $imcheck, $imposs = 1, $evadedelay, $mission_secs=486, $mission_start
- SelectMission(371, 277, 405, 281)
- $result=WaitForStartImage($mission_name,22000)
- $img_tolerance=$img_tolerance + 1
- if $result = 0 then
- sleep(1000)
- Send("{ESCAPE 1}")
- space_ende()
- return 0
- EndIf
- $result=WaitForMissionTimerInit($mission_name & " 8:00 " ,"pictures/space_hydian00.png",7000)
- $mission_secs = 480 ; (8:00)
- if $result = 0 then
- $result=WaitForMissionTimerInit($mission_name & " 7:57 " ,"pictures/space_polith.png",3000)
- $mission_secs = 477 ; (7:57)
- Endif
- if $result = 0 then
- $result=WaitForMissionTimerInit($mission_name & " 7:55 " ,"pictures/space_hydian55.png",3000)
- $mission_secs = 475 ; (7:55)
- Endif
- If $result=0 Then
- Send("{ESCAPE 1}")
- space_ende()
- return 0
- EndIf
- dmsg($mission_name & " - active.")
- $mission_start=TimerInit()
- sleep(500)
- mission_skew($mission_name)
- sleep(500)
- evader_on()
- barrel_on()
- Impossible("7:44", False, 1, 1, 0, 0, 0, 150, 100, 750, 600)
- Send("{4 1}") ; boom 7:44
- shield_mover("7:36")
- collision()
- MouseMove(130, 446, 2)
- shield_evader("7:29")
- collision()
- MouseMove(50, 750, 1) ; 7:27
- sleep(4000)
- collision()
- MouseMove(865, 738, 2) ; 7:24 right under
- sleep(2300)
- collision()
- MouseMove(635, 115, 5) ; 7:21 right above
- Sleep(300)
- Mousemove(302, 110, 5) ; then dodge left
- Sleep(50)
- wait_until("7:15")
- MouseMove(270, 372, 2)
- Impossible("7:07", False, 1, 1, 0, 0, 0, 80, 50, 700, 560)
- Send("{3 1}") ; shielding
- Impossible("6:55", False, 1, 1, 0, 0, 0, 220, 50, 700, 520)
- shield_mover("6:54")
- MouseMove(510, 442, 2)
- sleep(2000)
- MouseMove(310, 442, 2)
- shield_mover(7200)
- collision()
- MouseMove(96, 646) ; 6:37
- sleep(3200)
- collision()
- wait_until("6:30")
- MouseMove(875, 698, 2) ; 6:29 right under
- Sleep(2400)
- barrel_off()
- collision()
- MouseMove(50, 450, 1) ; 6:27 go to left
- Sleep(2400)
- shield_evader(2200)
- barrel_on()
- collision()
- wait_until("6:20")
- MouseMove(835, 698, 1) ; 6:19 right under
- Sleep(2000)
- MouseMove(835, 598, 2)
- shield_evader("6:07")
- If $psx_bonus = 1 Then
- ;==============Fighter Tender Engines Bonus=================
- Impossible("5:59", True, 0, 0, 0, 0, 1, 625, 30, 230, 255) ; upper right to lower left
- ImpossibleX("5:57", True, 0, 0, 0, 0, 1, 568, 70, 408, 400)
- ImpossibleX("5:52", True, 0, 0, 0, 0, 1, 542, 225, 362, 460)
- ImpossibleX("5:41", True, 0, 0, 0, 0, 1, 602, 220, 362, 470)
- ImpossibleX("5:38", True, 0, 0, 0, 0, 1, 402, 100, 210, 280)
- ;===========================================================
- Else
- shield_mover("5:45")
- EndIf
- shield_evader("5:35")
- collision()
- MouseMove(835, 598, 2) ; 5:34
- wait_until("5:33")
- Sleep(1000)
- MouseMove(120, 332, 1) ; 5:31 go to left
- Sleep(2100)
- collision()
- MouseMove(520, 688, 1) ; 5:29
- Sleep(1700)
- collision()
- wait_until("5:20")
- MouseMove(142, 105, 1) ; 5:19 go up and left
- Sleep(1900)
- collision()
- MouseMove(685, 102, 1) ; 5:17 go back right
- Sleep(1200)
- MouseMove(360, 312, 1) ; 5:15 shift left
- collision()
- wait_until("5:11")
- MouseMove(985, 698, 2) ; 5:09 right under
- Sleep(2000)
- MouseMove(218, 380, 2) ; 5:07 go right around rock
- barrel_off()
- wait_until("5:04")
- MouseMove(150, 820, 1) ; 5:02
- Sleep(300)
- MouseMove(682, 360, 1) ; 5:01
- wait_until("4:56")
- MouseMove(510, 120, 1) ; 4:55
- Sleep(2000)
- MouseMove(470, 120, 1) ; 4:52
- barrel_on()
- Sleep(1500)
- Impossible("4:45", False, 0, 1, 1, 0, 0, 450, 100, 950, 600)
- shield_mover("4:11")
- Send("{3 1}") ; extra shielding should help here
- shield_mover("4:01")
- MouseMove(640, 630, 2)
- shield_mover("3:36")
- MouseMove(740, 506, 2) ; 3:35
- wait_until("3:32")
- MouseMove(510, 506, 2) ; 3:31
- Sleep(500)
- MouseMove(780, 520, 2) ; 3:30
- Sleep(500)
- MouseMove(510, 400, 2) ; 3:29
- Sleep(500)
- MouseMove(675, 680, 2) ; 3:28
- wait_until("3:26")
- MouseMove(440, 140, 2) ; 3:25
- wait_until("3:17")
- MouseMove(670, 650, 2) ; 3:17
- wait_until("3:15")
- Sleep(300)
- MouseMove(338, 360, 2) ; 3:14
- barrel_off()
- wait_until("3:13")
- MouseMove(420, 172, 1) ; 3:12
- Sleep(800)
- MouseMove(825, 140, 1) ; 3:11
- wait_until("3:10")
- Sleep(350)
- MouseMove(260, 660, 1) ; 3:09.5 Move fast here!
- Sleep(1700)
- MouseMove(660, 320, 2) ; 3:07
- barrel_on()
- shield_mover("3:04")
- ;=========================Get mines=========================
- Impossible("2:59", False, 1, 1, 0, 0, 0, 375, 25, 990, 580) ; top middle and right
- Impossible("2:56", False, 1, 1, 0, 0, 0, 375, 25, 675, 580) ; top middle
- Impossible("2:53", False, 1, 1, 0, 0, 0, 150, 25, 375, 580) ; top left
- ;===========================================================
- shield_mover("2:36")
- ;=========================Get mines=========================
- Impossible("2:29", False, 1, 1, 0, 0, 0, 15, 15, 420, 580) ; top left
- ;===========================================================
- shield_mover("2:26")
- MouseMove(640, 530, 2)
- if $psx_bonus = 1 Then
- ;==============Fighter Tender Engines Bonus=================
- Impossible("2:23", True, 0, 0, 0, 0, 1, 325, 260, 700, 560) ; upper left to lower right
- ImpossibleX("2:20", True, 0, 0, 0, 0, 1, 565, 500, 910, 112) ; lower left to upper right
- ImpossibleX("2:16", True, 0, 0, 0, 0, 1, 400, 50, 794, 600) ; upper left to lower right
- ;===========================================================
- Else
- shield_mover("2:16")
- EndIf
- shield_mover("2:02")
- if $psx_bonus = 1 Then
- ;==============Fighter Tender Engines Bonus=================
- Impossible("1:59", True, 0, 0, 0, 0, 1, 505, 30, 260, 585) ; upper right to lower left
- ImpossibleX("1:57", True, 0, 0, 0, 0, 1, 500, 320, 50, 755)
- ;===========================================================
- Else
- shield_mover("1:57")
- EndIf
- shield_mover("1:37")
- MouseMove(170, 200, 2) ; 1:36
- shield_mover("1:29")
- MouseMove(450, 700, 2) ; 1:28 lower
- Sleep(1000)
- MouseMove(350, 100, 2) ; 1:26 to 1:19 higher
- wait_until("1:20")
- ;=========================Get mines=======================
- Impossible("1:16", True, 1, 1, 1, 0, 0, 20, 20, 735, 700) ; last chance at mines
- ;=========================================================
- ;=====================SHOW TIME=========================== ; destroy the Minelayer's bay and engines
- Send("{3 1}") ; last shielding
- Impossible("1:12", True, 0, 0, 1, 0, 0, 392, 443, 530, 275) ; searches bottom to top, left to right
- ImpossibleX("1:08", True, 0, 0, 1, 0, 0, 400, 370, 530, 252) ; hitting engines first
- ImpossibleX("1:06", True, 0, 0, 1, 0, 0, 375, 400, 485, 270) ; and avoiding yellow top label
- ImpossibleX("1:01", True, 0, 0, 1, 0, 0, 352, 490, 520, 270)
- Send("{4 1}") ; last boom
- ImpossibleX("0:59", True, 0, 0, 1, 1, 0, 112, 612, 455, 150)
- ImpossibleX("0:57", True, 0, 0, 1, 1, 0, 10, 555, 400, 30)
- shield_mover("0:38")
- ImpossibleX("0:27", True, 0, 0, 1, 1, 0, 820, 680, 50, 40)
- shield_mover("0:20")
- ImpossibleX("0:17", True, 0, 0, 1, 1, 0, 665, 30, 562, 138) ; top right to botton left, avoid the sun
- ImpossibleX("0:15", True, 0, 0, 1, 1, 0, 660, 30, 493, 248)
- ImpossibleX("0:12", True, 0, 0, 1, 1, 0, 800, 30, 500, 245)
- ;=========================================================
- barrel_off()
- collision()
- MouseMove(966, 653)
- shield_mover("0:01")
- AdlibUnRegister("Scam")
- AdlibUnRegister("EMP")
- dmsg("Impossible Mission done ...")
- space_ende()
- $imposs = 0
- EndFunc
- ; ================================== Impossible =========================================
- ;
- ; This is the attack function
- ;
- ; $msec can be a string or an integer:
- ;
- ; if integer, $msec = attack length in milliseconds (1000 ms = 1 second)
- ; if string, $msec = time at which attack should stop, i.e. "3:40"
- ;
- ; $r = True for missiles, False for autofire
- ;
- ; Optional Parameters
- ;
- ; $mines, $ships, $yellow, $green, and $tender = 0 for no target (default) or 1 for target
- ; $x1 and $y1 are the top left kill box coordinates
- ; $x2 and $y2 are the lower right kill box coordinates
- ;
- ; Calling only ships as targets would look something like this:
- ; Impossible(5000, True, 0, 1, 0, 0)
- ;
- ; Calling only ships as targets in a specific kill box would look something like this:
- ; Impossible(5000, True, 0, 1, 0, 0, 150, 200, 610, 500)
- ;
- ;=========================================================================================
- Func Impossible($msec, $r, $mines = 0, $ships = 0, $yellow = 0, $green = 0, $tender = 0, $x1 = 100, $y1 = 50, $x2 = 924, $y2 = 690)
- Local $script_start = TimerInit(), $m = 16, $evadeDelay = 0
- blaster()
- If IsString($msec) Then
- dmsg($mission_name & " attack -> " & $msec)
- $min = Number(StringMid($msec,1,1)) ; minutes
- $sec = Number(StringMid($msec,3,2)) ; secs
- $mt = $min * 60 + $sec
- $rt = $mission_secs - $mt
- $ms = $rt * 1000
- $script_start = $mission_start
- Else
- dmsg($mission_name & " attack for " & $msec & "ms")
- $ms = $msec
- EndIf
- evader()
- If $r = False Then ; if no missiles, auto fire at everything
- MouseDown("left")
- EndIf
- Do
- $evadeDelay =+ 1
- ; attack mines
- If $mines = 1 Then
- $targ = PixelSearch($x1, $y1, $x2, $y2, 0x89756A, 10) ; mines, gray at center
- If Not @Error Then
- If $r = False Then
- MouseMove($targ[0], $targ[1], 1)
- Else
- MouseMove($targ[0], $targ[1], 0) ; if missiles, then search again for red targetting crosshair
- $targ2 = PixelSearch($targ[0] - $m, $targ[1] - $m, $targ[0] + $m, $targ[1] + $m, 0xA04A3D, 24)
- If Not @Error Then
- mmove($targ, $r, 5)
- EndIf
- EndIf
- EndIf
- $targ = PixelSearch($x1, $y1, $x2, $y2, 0xF0B164, 10) ; mines, orange on one beam
- If Not @Error Then
- If $r = False Then
- MouseMove($targ[0], $targ[1], 1)
- Else
- MouseMove($targ[0], $targ[1], 0) ; if missiles, then search again for red targetting crosshair
- $targ2 = PixelSearch($targ[0] - $m, $targ[1] - $m, $targ[0] + $m, $targ[1] + $m, 0xA04A3D, 24)
- If Not @Error Then
- mmove($targ, $r)
- EndIf
- EndIf
- EndIf
- EndIf
- ; attack ships
- If $ships = 1 Then
- $targ = PixelSearch($x1, $y1, $x2, $y2, 0xB5FFFF, 10) ; ships
- If Not @Error Then
- If $r = False Then
- MouseMove($targ[0], $targ[1], 1)
- Else
- MouseMove($targ[0], $targ[1], 0)
- $targ2 = PixelSearch($targ[0] - $m, $targ[1] - $m, $targ[0] + $m, $targ[1] + $m, 0xA04A3D, 24)
- If Not @Error Then
- mmove($targ, $r, 5)
- EndIf
- EndIf
- EndIf
- EndIf
- ; attack yellow targets
- If $yellow = 1 Then
- $targ = PixelSearch($x1, $y1, $x2, $y2, 0xFDFF89, 10) ; one yellow
- If Not @Error Then
- If $r = False Then
- MouseMove($targ[0], $targ[1], 1)
- Else
- MouseMove($targ[0], $targ[1], 0)
- $targ2 = PixelSearch($targ[0] - $m, $targ[1] - $m, $targ[0] + $m, $targ[1] + $m, 0xA04A3D, 24)
- If Not @Error Then
- mmove($targ, $r, 5)
- EndIf
- EndIf
- EndIf
- $targ = PixelSearch($x1, $y1, $x2, $y2, 0xFFFF1D, 10) ; another yellow
- If Not @Error Then
- If $r = False Then
- MouseMove($targ[0], $targ[1], 1)
- Else
- MouseMove($targ[0], $targ[1], 0)
- $targ2 = PixelSearch($targ[0] - $m, $targ[1] - $m, $targ[0] + $m, $targ[1] + $m, 0xA04A3D, 24)
- If Not @Error Then
- mmove($targ, $r, 5)
- EndIf
- EndIf
- EndIf
- $targ = PixelSearch($x1, $y1, $x2, $y2, 0xBFA829, 10) ; darker yellow
- If Not @Error Then
- If $r = False Then
- MouseMove($targ[0], $targ[1], 1)
- Else
- MouseMove($targ[0], $targ[1], 0)
- $targ2 = PixelSearch($targ[0] - $m, $targ[1] - $m, $targ[0] + $m, $targ[1] + $m, 0xA04A3D, 24)
- If Not @Error Then
- mmove($targ, $r, 5)
- EndIf
- EndIf
- EndIf
- EndIf
- ; attack green targets
- If $green = 1 Then
- $targ = PixelSearch($x1, $y1, $x2, $y2, 0x86B088, 10, 1) ; green
- If Not @Error Then
- If $r = False Then
- MouseMove($targ[0], $targ[1], 1)
- Else
- MouseMove($targ[0], $targ[1], 0)
- $targ2 = PixelSearch($targ[0] - $m, $targ[1] - $m, $targ[0] + $m, $targ[1] + $m, 0xA04A3D, 24)
- If Not @Error Then
- mmove($targ, $r, 5)
- EndIf
- EndIf
- EndIf
- EndIf
- If $tender = 1 Then
- $targ = PixelSearch($x1, $y1, $x2, $y2, 0xFF913B, 5, 1) ; orange
- If Not @Error Then
- If $r = False Then
- MouseMove($targ[0], $targ[1], 1)
- Else
- MouseMove($targ[0], $targ[1], 0)
- $targ2 = PixelSearch($targ[0] - $m, $targ[1] - $m, $targ[0] + $m, $targ[1] + $m, 0xA04A3D, 24)
- If Not @Error Then
- mmove($targ, $r, 5)
- EndIf
- EndIf
- EndIf
- $targ = PixelSearch($x1, $y1, $x2, $y2, 0xFFFF60, 16) ; yellow
- If Not @Error Then
- If $r = False Then
- MouseMove($targ[0], $targ[1], 1)
- Else
- MouseMove($targ[0], $targ[1], 0)
- $targ2 = PixelSearch($targ[0] - $m, $targ[1] - $m, $targ[0] + $m, $targ[1] + $m, 0xA04A3D, 24)
- If Not @Error Then
- mmove($targ, $r, 5)
- EndIf
- EndIf
- EndIf
- EndIf
- If $evadeDelay = 4 Then ; call evader() once every 4 loop cycles
- evader()
- $evadeDelay = 0
- EndIf
- evader_off()
- Until TimerDiff( $script_start ) > $ms
- If $r == False Then ; if no missiles, stop autofire
- MouseUp("left")
- EndIf
- EndFunc
- ; ================================== ImpossibleX ========================================
- ;
- ; This is the attack function for closer, larger targets, similar to Impossible()
- ; Missile targets ($r = True) are just right and left clicked
- ; Non-missile targets ($r = False) receive autofire
- ;
- ;=========================================================================================
- Func ImpossibleX($msec, $r = True, $mines = 0, $ships = 0, $yellow = 0, $green = 0, $tender = 0, $x1 = 100, $y1 = 50, $x2 = 924, $y2 = 690) ; For closer targets, move mouse and fire
- blaster()
- Local $script_start = TimerInit(), $m = 180, $evadeDelay = 0
- If IsString($msec) Then
- dmsg($mission_name & " attack -> " & $msec)
- $min = Number(StringMid($msec,1,1)) ; minutes
- $sec = Number(StringMid($msec,3,2)) ; secs
- $mt = $min * 60 + $sec
- $rt = $mission_secs - $mt
- $ms = $rt * 1000
- $script_start = $mission_start
- Else
- dmsg($mission_name & " attack for " & $msec & "ms")
- $ms = $msec
- EndIf
- evader()
- If $r = False Then ; if no missiles, auto fire at everything
- MouseDown("left")
- EndIf
- Do
- $evadeDelay =+ 1
- ; attack mines
- If $mines = 1 Then
- $targ = PixelSearch($x1, $y1, $x2, $y2, 0x544545, 10) ; mines
- If Not @Error Then
- If $r = False Then
- MouseMove($targ[0], $targ[1], 1)
- Else
- $targ2 = PixelSearch($targ[0] - $m, $targ[1] - $m, $targ[0] + $m, $targ[1] + $m, 0xA04A3D, 24)
- If Not @Error Then
- MouseMove($targ[0], $targ[1], 1)
- MouseClick("left")
- Sleep(10)
- MouseClick("right")
- EndIf
- EndIf
- EndIf
- EndIf
- ; attack ships
- If $ships = 1 Then
- $targ = PixelSearch($x1, $y1, $x2, $y2, 0xB5FFFF, 10) ; ships
- If Not @Error Then
- If $r = False Then
- MouseMove($targ[0], $targ[1], 1)
- Else
- $targ2 = PixelSearch($targ[0] - $m, $targ[1] - $m, $targ[0] + $m, $targ[1] + $m, 0xA04A3D, 24)
- If Not @Error Then
- MouseMove($targ[0], $targ[1], 1)
- MouseClick("left")
- Sleep(10)
- MouseClick("right")
- EndIf
- EndIf
- EndIf
- EndIf
- ; attack yellow targets
- If $yellow = 1 Then
- $targ = PixelSearch($x1, $y1, $x2, $y2, 0xFDFF89, 8) ; one yellow
- If Not @Error Then
- If $r = False Then
- MouseMove($targ[0], $targ[1], 1)
- Else
- $targ2 = PixelSearch($targ[0] - $m, $targ[1] - $m, $targ[0] + $m, $targ[1] + $m, 0xA04A3D, 24)
- If Not @Error Then
- MouseMove($targ[0], $targ[1], 1)
- MouseClick("left")
- Sleep(10)
- MouseClick("right")
- EndIf
- EndIf
- EndIf
- $targ = PixelSearch($x1, $y1, $x2, $y2, 0xFFFF1D, 10) ; another yellow
- If Not @Error Then
- If $r = False Then
- MouseMove($targ[0], $targ[1], 1)
- Else
- $targ2 = PixelSearch($targ[0] - $m, $targ[1] - $m, $targ[0] + $m, $targ[1] + $m, 0xA04A3D, 24)
- If Not @Error Then
- MouseMove($targ[0], $targ[1], 1)
- MouseClick("left")
- Sleep(10)
- MouseClick("right")
- EndIf
- EndIf
- EndIf
- $targ = PixelSearch($x1, $y1, $x2, $y2, 0xBFA829, 10) ; darker yellow
- If Not @Error Then
- If $r = False Then
- MouseMove($targ[0], $targ[1], 1)
- Else
- $targ2 = PixelSearch($targ[0] - $m, $targ[1] - $m, $targ[0] + $m, $targ[1] + $m, 0xA04A3D, 24)
- If Not @Error Then
- MouseMove($targ[0], $targ[1], 1)
- MouseClick("left")
- Sleep(10)
- MouseClick("right")
- EndIf
- EndIf
- EndIf
- EndIf
- ; attack green targets
- If $green = 1 Then
- $targ = PixelSearch($x1, $y1, $x2, $y2, 0x86B088, 10, 1) ; green
- If Not @Error Then
- If $r = False Then
- MouseMove($targ[0], $targ[1], 1)
- Else
- $targ2 = PixelSearch($targ[0] - $m, $targ[1] - $m, $targ[0] + $m, $targ[1] + $m, 0xA04A3D, 24)
- If Not @Error Then
- MouseMove($targ[0], $targ[1], 1)
- MouseClick("left")
- Sleep(10)
- MouseClick("right")
- EndIf
- EndIf
- EndIf
- EndIf
- If $tender = 1 Then
- $targ = PixelSearch($x1, $y1, $x2, $y2, 0xFF913B, 5, 1) ; orange
- If Not @Error Then
- If $r = False Then
- MouseMove($targ[0], $targ[1], 1)
- Else
- $targ2 = PixelSearch($targ[0] - $m, $targ[1] - $m, $targ[0] + $m, $targ[1] + $m, 0xA04A3D, 24)
- If Not @Error Then
- MouseMove($targ[0], $targ[1], 1)
- MouseClick("left")
- Sleep(10)
- MouseClick("right")
- EndIf
- EndIf
- EndIf
- $targ = PixelSearch($x1, $y1, $x2, $y2, 0xFFFF60, 16) ; yellow
- If Not @Error Then
- If $r = False Then
- MouseMove($targ[0], $targ[1], 1)
- Else
- $targ2 = PixelSearch($targ[0] - $m, $targ[1] - $m, $targ[0] + $m, $targ[1] + $m, 0xA04A3D, 24)
- If Not @Error Then
- MouseMove($targ[0], $targ[1], 1)
- MouseClick("left")
- Sleep(10)
- MouseClick("right")
- EndIf
- EndIf
- EndIf
- EndIf
- If $evadeDelay = 4 Then ; call evader() once every 4 loop cycles
- evader()
- $evadeDelay = 0
- EndIf
- Until TimerDiff( $script_start ) > $ms
- If $r = False Then ; if no missiles, stop autofire
- MouseUp("left")
- EndIf
- evader_off()
- EndFunc
Advertisement
Add Comment
Please, Sign In to add comment