www.ClassicTW.com
https://mail.black-squirrel.com/

MSL / Fed Liner
https://mail.black-squirrel.com/viewtopic.php?f=15&t=30544
Page 1 of 1

Author:  Promethius [ Thu Nov 04, 2010 10:46 pm ]
Post subject:  MSL / Fed Liner

This is an older script that I cleaned up a bit - probably should have rewrote entirely, but it is as it is.

The purpose is to line the MSLs and Fed with a fighter wall in games that you are locking down due to a sysOp not rebanging a game or whatever reason you have. Not a lot of safeties and it will leave the wall fighters around dock sectors that are in the MSLs. The MSLs will have 1 fighter, but sometimes an errant drop will be made. Make sure you have plenty of cash because it will refurb fighters and there will be a lot of sectors to wall off. Check the file it creates when it does not wall off one-way sectors - yes, you can code around that - I didn't bother.

Code:
# msl tunnel / fed liner

setVar $numFigs "1"
setVar $attackFigs "100"
setVar $figString "f" & $numFigs & "*cd"

echo ANSI_11 "**Enter the number of fighters used to line the msl*"
getConsoleInput $mslLinerFigs

getword currentline $prompt 1

if (CURRENTSECTOR <> STARDOCK) or ($prompt <> "Command")
   echo ansi_12 "**-- You must start at the sector prompt at Stardock!!"
   halt
end

getTime $mslStart "hh:mm:ss am/pm"


# get ship fighter wave
send "c;"
waitfor "TransWarp Drive:"
getText CURRENTLINE $figWave "Per Attack:" "TransWarp Drive:"
stripText $figWave " "
send "q"


setVar $rylos RYLOS
setVar $alphaCentauri ALPHACENTAURI


if ($rylos = 0)
   echo ANSI_12 "*The sector for Rylos was not found!!!*"
   echo ANSI_12 "Enter the sector for Rylos or 0 to halt!*"
   getConsoleInput $rylos
   if ($rylos = 0)
      halt
   end
end

if ($alphaCentauri = 0)
   echo ANSI_12 "*The sector for Alpha Centauri was not found!!!*"
   echo ANSI_12 "Enter the sector for Alpha Centauri or 0 to halt!*"
   getConsoleInput $alphaCentauri
   if ($alphaCentauri = 0)
      halt
   end
end

:begin
  # dock to rylos to alpha centauri to dock
   setVar $mowstring  $rylos & " " & $alphaCentauri & " " & STARDOCK & " "
   setVar $mowstring $mowString & $alphaCentauri & " " & $rylos & " " & STARDOCK & " "
   setVar $mowstring $mowString & "1 2 3 4 5 6 7 8 9 10 1 " & STARDOCK & " "


:beginScript
  killtrigger endIt
  setTextOutTrigger endit :endIt "!"
  setVar $routePath ""
  setVar $path ""
  getword $mowString $mow 1
  isnumber $test $mow
  if ($test = 0)
     echo ansi_12 $mow " is not a valid number"
     halt
  end
  setVar $counter 1

:getCF
   killalltriggers
   # insert photon and interdictor triggers
   if ($mow = CURRENTSECTOR)
      add $counter 1
      getword $mowString $mow $counter
   end
   setVar $path ""
   send "*  cf*" $mow "*"
   setTextLineTrigger start :getCfHops "The shortest path"
   setTextTrigger noPath :noPath "No route within"
   pause
   :getCfHops
   killtrigger noPath
   getword CURRENTLINE $hops 4
   striptext $hops "("
   add $hops 1
   setarray $moveArray $hops
   :startgp
   setTextTrigger doneLines :doneLines "Computer command"
   setTextLineTrigger path :path ""
   pause
   :nopath
     send "nq"
     echo "***" ANSI_12 "-------- No Path --------***"
     add $counter 1
     getword $mowString $mow $counter
      if ($mow <> 0)
         goto :getCF
      else
        goto :beginScript
     end
   :path
      killtrigger doneLines
      setVar $path $path & CURRENTLINE
      goto :startgp
    :doneLines
      killtrigger doneLines
      killtrigger path
      striptext $path ">"
      striptext $path "("
      striptext $path ")"
      setVar $icnt 2
      while ($icnt <= $hops)
         getword $path $tmp $icnt
         setVar $moveArray[$icnt] $tmp
         add $icnt 1
      end
      send "q"
      setVar $i 1
      while ($i < $hops)
         add $i 1
         if ($moveArray[$i] > 10) and ($moveArray[$i] <> STARDOCK)
            send "m " $moveArray[$i]  "*z  a9999*z  * " $figString "*"
            if ($moveArray[$i] = $rylos) or ($moveArray[$i] = $alphacentauri)
               send "pt"
               setTextLineTrigger getFigs :getFigs "B  Fighters        :"
               pause
               :getFigs
               getword currentline $getFigs 8
               send "b" $getFigs "*q"
            end
         else
            send "m  " $moveArray[$i] & "*"
            if ($moveArray[$i] = STARDOCK)
                send "p s g y g q s p"
                setTextLineTrigger dockFig :dockFig "B  Fighters        :"
                pause
                :dockFig
                getword currentline $getFigs 8
                send "b" $getFigs "*qqq"
            end

         end
         waitfor "[" & $moveArray[$i] & "] ("
         gosub :surround
      end
      add $counter 1
      getword $mowString $mow $counter
      if ($mow > 0)
         goto :getCF
      end
      killalltriggers
      getTime $mslEnd "hh:mm:ss am/pm"
    halt


:surround
setArray $adjacent 7
gettext currentline $curSector "]:[" "] ("

send "sh"
waitfor "Select (H)olo Scan"
setTextlineTrigger adjSector :adjSector "Sector  :"
    setTextLineTrigger fighters :fighters "Fighters: "
    setTextLineTrigger planet :planet "Planets :"
    setTextTrigger cmdLine :startSurround "Command [TL"
pause

:adjSector
    getword currentline $sector 3
    setTextlineTrigger adjSector :adjSector "Sector  :"
    pause

    :fighters
    setTextLineTrigger fighters :fighters "Fighters: "
    pause

    :planet
      setTextLineTrigger planet :planet "Planets :"
      if ($sector > 10) and ($sector <> STARDOCK)
      setVar $secAvoid[$sector] TRUE
      write gamename & "tunnelMissed.txt" $adjacent[$s]
      end
    pause

:startsurround
killalltriggers

setVar $warps sector.warpcount[$curSector]

setVar $x 1
WHILE ($x <= $warps)
   setVar $adjacent[$x] SECTOR.Warps[$curSector][$x]
   add $x 1
end
setVar $s 1
setVar $burst ""
setVar $path $path & " "
:moveSector
   while ($s <= $warps)
#     if (SECTOR.WARPS[$curSector][$s] > 0)
        getdistance $dist $adjacent[$s] $curSector
        if ($dist = 1) and ($adjacent[$s] > 10) and ($secAvoid[$adjacent[$s]] <> TRUE)
             if ($adjacent[$s] <> STARDOCK)
                getwordpos $path $inMow " " & $adjacent[$s] & " "
                if ($inMow = 0) and ($adjacent[$s] <> RYLOS) and ($adjacent[$s] <> alphacentauri)
                   setVar $burst $burst & "m" & $adjacent[$s] & "*  z  a9999*znf  " & $mslLinerFigs & "* cd<*  "
                else
                   setVar $burst $burst & "m" & $adjacent[$s] & "*  z  a9999*znf  1* cd<*  "
                end
                setSectorparameter $adjacent[$s] "FigSec" TRUE
             end
        elseif ($dist < 1) or ($dist > 1)
             if ($adjacent[$s] <> STARDOCK) and ($adjacent[$s] > 10)
             send "cf"  $adjacent[$s] "*" $curSector "*q"
             setTextTrigger getit :getIt "from sector " & $adjacent[$s]
             pause
             :getIt
             getword currentline $check 4
             stripText $check "("
             if ($check = 1)
                setVar $dist 1
                setVar $burst $burst & "m" & $adjacent[$s] & "*  z  a9999*znf  " & $mslLinerFigs & "* cd<*  "
                setSectorparameter $adjacent[$s] "FigSec" TRUE
             end
             end
        end
        if ($dist > 1)
             echo "**" ANSI_12 "One way warp: " $adjacent[$s] " distance is " $dist
            if ($adjacent[$s] > 10) and ($adjacent[$s] <> STARDOCK)
               write gamename & "tunnelMissed.txt" $adjacent[$s]
            end
        end
#     end
     add $s 1
   end
   send $burst
   return


Author:  Parrothead [ Fri Nov 05, 2010 12:05 am ]
Post subject:  Re: MSL / Fed Liner

AKA Amtrak

Author:  Promethius [ Fri Nov 05, 2010 1:01 am ]
Post subject:  Re: MSL / Fed Liner

Parrothead wrote:
AKA Amtrak


Yep, but the one I had by supG did singles only and it was something to do. I wanted single figs in the MSLs and a "wall" surrounding. I hate babysitting games, and while in some edits they can still break through, it will take a while esp if you blow the ports up. I think the way this one is written could be improved a lot. There was a script challenge a while back on amtrak that was interesting.

Author:  Parrothead [ Fri Nov 05, 2010 1:08 am ]
Post subject:  Re: MSL / Fed Liner

i just do a msl list (which is used to load a msl echo array for my bot)
then i do adj sectors from that list and adj sectors to fed...filter dupes and make an amtrak list which i can then feed into twarp grid.

Page 1 of 1 All times are UTC - 5 hours
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/