# Script Name : The Cabal's Secondary Tripple SDT Script (_01_3_Secondary_SDT.ts) # Author : Traitor # Description : SDT money making script for reds. # What it does : This script is an advanced SDT script. # : This script runs two reds at the same time through a 3 sector SDT field # : with bust clearing. Makes tons of cash fast. # How to run it : The script is started first, then the Cabal's Secondary Tripple SDT script # : must be started by the other Red. # : The Red's name is case sensitive, and you must enter the whole name. # : This helps prevent spoofing. The script will then x-port you to the # : THIRD ship and wait for the first red to bust. Then you start your SDT. # : When you bust, it will auto kill the furb, and then tell # : the other red what sector you busted in, and he will SDT until he busts, # : or runs low on turns. This script will run until you get low on turns, # : or when you run out of furbs. # Notes : Requires The Cabal's Primary Tripple SDT script to be run by another # : Red in your corp. # : This script needs the following things setup before you can run this script: # : 1) You need 3 XXB ports and you need a colt and a planet in each sector. # : The ports must ALL be within range of the x-porters on the colts, # : or you will end up NOT x-porting, and fake busting!! # : 2) You need to make sure that the ports are pre-upgraded. The script # : doesn't care or check how much you upgrade them, but I recommend # : that it there are at least 1000 units of EQ available on each port. # : 3) You need to be sure that there are 20-30 figs on each COLT so they have # : enough figs to kill the furbs. # : 4) You need to be sure that there are plenty of shields on the colts, since # : this script creates Hazz when it furbs. If you get disconnected for # : some reason, you want to have the shields on the colt to take a Hazz # : hit when you log back in again. # : 5) There should only be 1 planet in each sector. Also, make sure that there # : are no planet scanners in the COLTS. I may fix this later. Now, if # : there is more than one planet, or planet scanners in the colts, the # : script will hang. # : Requires that there be furbs available in the sectors. I recommend at least # : 1 per sector for each 100 turns per day. So if you have 1000 turns per day, # : then you will want 10 furbs at each sector. You PROBABLY won't use all the # : furbs, but I have seen cases where both reds kept busting in the SAME sector, # : and ended up using 10 furbs in 1000 turns, even though they only had 5 busts # : each, which is not bad, really. # : Each red must start in their own ship, and be ready to x-port into the COLTS. # : This script assumes that you have full holds in each COLT. # : If you do not have enough experience to steal full holds, it will steal # : as much as your experience allows. It checks your experience at the start # : and after every sell-off and after busts. It assumes that you are playing # : in MBBS mode, and uses the $stealfactor variable to calculate the maximum # : number of holds you can safely steal. It's default is 22 (for a bit of # : safty incase of bad rounding) but you may need to change that if you are # : playing in a non-mbbs game. Check the settings and change the variable # : located in line 116 if you need too. # : # ----====[ Prompt Check! ]====---- # Checks to make sure you are starting at the Command Prompt cutText CURRENTLINE $location 1 7 if ($location <> "Command") echo ANSI_12 "Must be run from the command menu, moron!" halt end # ----====[ Turn off Logging ]====---- # Turning off TWX logging logging off # ----====[ Get Timestamp Info ]====---- getdate $date gettime $time replacetext $date "/" "-" write bustfile2.txt $date & " " & $time # ----====[ show EGO banner :-) ]====---- echo "**" ANSI_1 " --" ANSI_9 "===| " ANSI_11 "The Cabal's Secondary Tripple SDT Script v1.1.0" ANSI_9 " |===" ANSI_1 "--*" echo ANSI_1 " --" ANSI_9 "===| " ANSI_11 "Last edited March 31, 2003" ANSI_9 " |===" ANSI_1 "--*" echo ANSI_1 " --" ANSI_9 "===| " ANSI_11 "By " ANSI_12 "Traitor" ANSI_9 " |===" ANSI_1 "--**" echo ANSI_10 " This script is " ANSI_12 "not " ANSI_10 "freeware and may " ANSI_12 "not " ANSI_10 "be distributed*" echo ANSI_10 " or revised without written permission from the author.*" echo "*" ANSI_13 "!! Please read the Notes and Warnings at the top of the script before using !!***" echo "*" ANSI_12 " !!! IF YOU ARE RUNNING SWATH, TURN OFF THE HELPER NOW !!!***" ANSI_10 # ====[ Getting data from Red 1 ]==== echo "**Remember, the names are CASE SENSITIVE!!!*" getinput $red1name "Enter the name of the PRIMARY red: " 0 getlength $red1name $rednamelen echo ANSI_10 "**Waiting for Red 1 to start script**" ANSI_7 :getdata settextlinetrigger 10 :getinfored1 "transmission from" pause :getinfored1 killtrigger 10 cuttext CURRENTLINE $tempname 28 $rednamelen if $tempname = $red1name settextlinetrigger 31 :setupred1vars "You are Red 2" pause :setupred1vars killtrigger 31 settextlinetrigger 33 :getcurrshipnum "You get into ship" pause :getcurrshipnum killtrigger 33 getword CURRENTLINE $tempship1 5 echo "**My ship number: " $tempship1 "**" settextlinetrigger 32 :getallshipnums "All Ship Numbers:" pause :getallshipnums killtrigger 32 getword CURRENTLINE $colt1num 4 getword CURRENTLINE $colt2num 5 getword CURRENTLINE $colt3num 6 settextlinetrigger 35 :getstealsetting "Stealfactor is" pause :getstealsetting killtrigger 35 getword CURRENTLINE $stealfactor 3 settextlinetrigger 34 :furberinfo "Furber" pause :furberinfo getword CURRENTLINE $furbstate 2 if $furbstate = "ON" gettext CURRENTLINE $furbername "Furber ON " " :::" setvar $isfurber "y" else setvar $isfurber "n" end goto :othervars else killalltriggers echo "*Name Mismatch, ignoring" echo "**tempname " $tempname echo "**red1name " $red1name goto :getdata end goto :othervars # ----====[ Get Other Variables ]====---- # Setting up the other variables here :othervars # These variables are here to keep track of the Asking Price Multiplier (APM) # of each port. setvar $ship1APM 134 setvar $ship2APM 134 setvar $ship3APM 134 # This line sets up which ship to get into. setvar $currship $tempship1 send "x" $currship "*q" send "=" $red1name "*" send "I am in ship " & $currship "**" echo "**Waiting for Red 1 to send me bust info...**" :checkforred1 settextlinetrigger 30 :Red1sends "transmission from" pause :Red1sends killtrigger 30 cuttext currentline $tempname 28 $rednamelen if $tempname = $red1name settextlinetrigger 31 :red1busts "I busted in ship" pause :red1busts killtrigger 31 getword CURRENTLINE $tempship2 5 echo "**this is my other ship" $tempship2 setvar $currship $tempship1 setvar $lastship $tempship2 goto :start else killalltriggers echo "*Name Mismatch, ignoring" echo "**tempname " $tempname echo "**red1name " $red1name goto :checkforred1 end # ----====[ MAIN Routine ]====---- # This is the main routine # ====[ Start ]==== :start gosub :turnsandexp goto :robcycle halt # ----====[ Subroutines ]====---- # ====[ Rob Cycle Subroutine ]==== :robcycle killalltriggers send "pr s" settextlinetrigger 5 :checkavaileq1 "Equipment Buying" pause :checkavaileq1 getword CURRENTLINE $eqondock 4 setvar $holds $experience divide $holds $stealfactor if $holds > 250 setvar $holds 250 end subtract $eqondock $holds if $eqondock < $holds setvar $sell1flag 1 end send "3" $holds "*" settexttrigger 1 :nobust "Success!" settexttrigger 2 :busted "Suddenly you're Busted!" settexttrigger 6 :notenougheq1 "There aren't that many holds of Equipment" pause # [ Not Enough EQ on port! ] :notenougheq1 killalltriggers gosub :planettrade goto :robcycle # [ Busted! At First Port ] :busted killalltriggers gettime $time write bustfile2.txt $time & " Busted: " & $currship if $isfurber = "y" gosub :hailfurb else gosub :refurb end send "x" $lastship "*q" gosub :planettrade goto :makeRed1active # [ Not Busted At First Port ] :nobust killtrigger 2 gettime $time write bustfile2.txt $time & " Success: " & $currship send "ltnl3*q" waitfor "Blasting off from" if $sell1flag = 1 setvar $sell1flag 0 gosub :planettrade gosub :turnsandexp end send "x" $lastship "*q" setvar $lastship $tempship1 setvar $currship $tempship2 goto :robcyclepart2 # [ Part 2 of Robcycle ] :robcyclepart2 send "pr s" settextlinetrigger 8 :checkavaileq2 "Equipment Buying" pause :checkavaileq2 getword CURRENTLINE $eqondock 4 setvar $holds $experience divide $holds $stealfactor if $holds > 250 setvar $holds 250 end subtract $eqondock $holds if $eqondock < $holds setvar $sell2flag 1 end send "3" $holds "*" settexttrigger 3 :nobust2 "Success!" settexttrigger 4 :busted2 "Suddenly you're Busted!" settexttrigger 7 :notenougheq2 "There aren't that many holds of Equipment" pause # [ Not Enough EQ on port! ] :notenougheq2 killalltriggers gosub :planettrade goto :robcyclepart2 # [ Busted! At Second Port ] :busted2 killalltriggers gettime $time write bustfile2.txt $time & " Busted: " & $currship if $isfurber = "y" gosub :hailfurb else gosub :refurb end send "x" $lastship "*q" gosub :planettrade goto :makeRed1active # [ Not Busted At Second Port ] :nobust2 killtrigger 4 gettime $time write bustfile2.txt $time & " Success: " & $currship send "ltnl3*q" waitfor "Blasting off from" if $sell2flag = 1 setvar $sell2flag 0 gosub :planettrade gosub :turnsandexp end send "x" $lastship "*q" setvar $lastship $tempship2 setvar $currship $tempship1 if $turnsleft = "Unlimited" goto :robcycle elseif $turnsleft < 16 goto :cloakout else subtract $turnsleft 4 goto :robcycle end # ====[ Make Red 1 Active and wait for Red 1 to bust ]==== :makeRed1active killalltriggers echo "**At Make Red 1 Active" echo "*Current ship: " $currship echo "*Last Ship: " $lastship setvar $lastbust $currship setvar $currship $lastship setvar $tempship1 $currship echo "*New Current ship: " $currship send "=" & $red1name & "*" send "I busted in ship " & $lastbust "*" send "Waiting for you to bust**" settextlinetrigger 50 :waitforredbust "transmission from" pause :waitforredbust killtrigger 50 cuttext currentline $tempname 28 $rednamelen if $tempname = $red1name settextlinetrigger 51 :getnewshipnum "I busted in ship " settextlinetrigger 52 :otherlowturns "I am low on turns" pause :getnewshipnum killtrigger 51 killtrigger 52 getword CURRENTLINE $lastship 5 setvar $tempship2 $lastship goto :start else echo "*Name Mismatch, ignoring" echo "**tempname " $tempname echo "**red1name " $red1name goto :waitforredbust end # ====[ Selloff Suboutine ]==== :selloff killalltriggers gosub :planettrade send "x" $lastship "*q" gosub :planettrade setvar $lastship $tempship2 setvar $currship $tempship1 gosub :turnsandexp goto :robcycle # ====[ Furbing Subroutine ]==== :refurb send "d" settexttrigger 40 :furbthere "Merchant Freighter" settexttrigger 41 :nofurbsthere "Warps to Sector(s)" pause :furbthere killalltriggers send "a" waitfor "unmanned Merchant Freighter" send "y9*" settexttrigger 42 :gotfurb "salvaged these cargo holds:" pause :gotfurb return :nofurbsthere echo ANSI_12 "****There are no more furbs!!! Halting script!!!***" halt # ====[ Call for Furb ]==== :hailfurb send "=" & $furbername & "*" send "I busted in ship " & $currship "**" settexttrigger 70 :furbergone "ship vanishes from scanners" pause :furbergone killalltriggers send "a" settexttrigger 72 :checkiffurb "(Y/N)" pause :checkiffurb killalltriggers gettext CURRENTLINE $testiffurb "unmanned " " (" if $testiffurb = "Merchant Freighter" send "y9*" settexttrigger 71 :gotfurb2 "salvaged these cargo holds:" pause :gotfurb2 killalltriggers return else send "n" settexttrigger 72 :checkiffurb "(Y/N)" pause end # ====[ Need more furbs Subroutine ]==== :needmorefurb echo ANSI_12 "***BUSTED!! You need a furb! Stopping Script!!!***" halt # ====[ Check Turns and Experience Subroutine ]==== :turnsandexp send "i" waitfor "" settexttrigger 20 :getexp "Rank and Exp" pause :getexp killalltriggers getword CURRENTLINE $experience 5 striptext $experience "," waitfor "Corp" settexttrigger 21 :getturns "Turns left" pause :getturns killalltriggers getword CURRENTLINE $turnsleft 4 if $turnsleft = "Unlimited" return end if $turnsleft > 15 return else goto :cloakout end # ====[ Out Of Turns Subroutine ]==== :cloakout killalltriggers send "=" & $red1name & "*" send "I am low on turns**" if $isfurber = "y" send "=" & $furbername & "*" send "I am low on turns**" end echo ANSI_12 "***LOW ON TURNS!! STOPPING SCRIPT***" ANSI_7 halt :otherlowturns killalltriggers echo ANSI_10 "***Other Red low on turns. Stopping script!***" ANSI_7 halt # ----====[ NEW IMPROVED PLANET TRADE SUBROUTINE ]====---- # ====[ Grab Port's Asking Price Multiplier (APM) values ]==== # This part checks for the ship number, and associates it # with a port's APM :planettrade killalltriggers if $currship = $colt1num setvar $APMvar $ship1APM elseif $currship = $colt2num setvar $APMvar $ship2APM else setvar $APMvar $ship3APM end :dockatport # This is where you dock at the port and start negociation send "pn" waitfor "Registry#" settextlinetrigger 90 :planetid "." pause :planetid # this is where you grab the planet number killtrigger 90 gettext CURRENTLINE $planetnum "<" ">" send $planetnum "*" # these triggers determine if there is any product on the port # if there is, it grabs starting credits settexttrigger 91 :getstartcreds "credits." settexttrigger 92 :nonetobuy "You don't have anything on that planet they want to buy" pause :nonetobuy # The planet has nothing on it, so the script goes back killtrigger 91 killtrigger 92 echo "**NONE TO BUY!!! Returning!!**" return :getstartcreds # this picks up your starting credits killtrigger 91 killtrigger 92 getword CURRENTLINE $startcreds 3 # this checks to see if you have anything to sell on the planet settextlinetrigger 93 :howmanybuy "We are buying up to" pause :howmanybuy # this grabs the number of units the port is buying, and how many you can sell killtrigger 93 getword CURRENTLINE $portbuyqty 6 getword CURRENTLINE $planetqty 9 settexttrigger 94 :howmanysell "]?" pause :howmanysell killtrigger 94 gettext CURRENTLINE $wesellqty "[" "]" send "*" # this part grabs the price the port is offering settextlinetrigger 95 :haggle "We'll buy them for" pause :haggle killtrigger 95 getword CURRENTLINE $portoffer1 5 # this part removes the extra characters from the variables. striptext $portoffer1 "," striptext $portbuyqty "." striptext $startcreds "," # this is the overly complicated math part :) # I'm basically figuring out the per unit cost, then # multiplying that by the APM variable, then multiplying # that by the total number of holds you are selling. # then sending that offer to the port setvar $perunitcost $portoffer1 divide $perunitcost $wesellqty setvar $ouroffer1 $perunitcost multiply $ouroffer1 $APMvar divide $ouroffer1 100 multiply $ouroffer1 $wesellqty send $ouroffer1 & "*" :counteroffer # This part waits for the response from the port to see if # the port takes my initial offer. settextlinetrigger 96 :haggle2 "We'll buy them for" settextlinetrigger 97 :finaloffer "Our final offer is" settextlinetrigger 98 :tradedone "You have" pause :haggle2 # The port didn't take my offer, but it's still willing to haggle # So, I'm dropping my price some. I am taking the difference between # their first offer, and their second offer, multiplying it by .6, # then subtracting whatever is left from my first offer. # i.e. 1st offer is 90,000 creds, 2nd offer is 100,000 creds, # I take 100,000 - 90,000 = 10,000. 10,000 * .6 = 6,000 # I drop my offer by 6,000. # Then setting up the variables to keep track of their last offer, # so I can compare that to their NEXT offer. # then I'm sending my offer to them again killtrigger 96 killtrigger 97 killtrigger 98 getword CURRENTLINE $portoffer2 5 striptext $portoffer2 "," setvar $oldoffer $portoffer2 subtract $portoffer2 $portoffer1 multiply $portoffer2 6 divide $portoffer2 10 subtract $ouroffer1 $portoffer2 send $ouroffer1 & "*" setvar $portoffer1 $oldoffer goto :counteroffer :finaloffer # The port didn't take my offer, and is offering it's final price. # Now, I'm dropping my price as above, but buy 2.5 times the difference # i.e. 1st offer is 90,000 creds, 2nd offer is 100,000 creds, # I take 100,000 - 90,000 = 10,000. 10,000 * 2.5 = 25,000 # I drop my offer by 25,000. # Trust me, this works! killtrigger 96 killtrigger 97 killtrigger 98 getword CURRENTLINE $portoffer2 5 striptext $portoffer2 "," setvar $oldoffer $portoffer2 subtract $portoffer2 $portoffer1 multiply $portoffer2 25 divide $portoffer2 10 subtract $ouroffer1 $portoffer2 send $ouroffer1 & "*" setvar $portoffer1 $oldoffer goto :counteroffer :tradedone # Well, they either took my last offer, or totally rejected it. # I compare the amount of starting cash and compare that to the # amount of ending cash. If they are the same, then they didn't # take my offers at all, and I redo the port trade. # BUT, I now lower the APM by 1. killtrigger 96 killtrigger 97 killtrigger 98 getword CURRENTLINE $endcreds 3 striptext $endcreds "," subtract $endcreds $startcreds if $endcreds > 0 gettime $time # This is another file write! Tracks profit. write bustfile2.txt $time & " Profit from trade: " & $endcreds & " ship #: " & $currship goto :setnewAPM halt else subtract $APMvar 1 goto :dockatport end :setnewAPM # here is where I set the APM numbers in case there was a change. # So the next time it does a trade, it will use the number that works, # and not waste turns. if $currship = $colt1num setvar $ship1APM $APMvar elseif $currship = $colt2num setvar $ship2APM $APMvar else setvar $ship3APM $APMvar end return halt