123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220 |
- # Copyright (C) 2005 Remco Mulder
- #
- # This program is free software; you can redistribute it and/or modify
- # it under the terms of the GNU General Public License as published by
- # the Free Software Foundation; either version 2 of the License, or
- # (at your option) any later version.
- #
- # This program is distributed in the hope that it will be useful,
- # but WITHOUT ANY WARRANTY; without even the implied warranty of
- # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- # GNU General Public License for more details.
- #
- # You should have received a copy of the GNU General Public License
- # along with this program; if not, write to the Free Software
- # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- #
- # For source notes please refer to Notes.txt
- # For license terms please refer to GPL.txt.
- #
- # These files should be stored in the root of the compression you
- # received this source in.
- # TWX Script Pack 1: Port pair trading script
- # Author : Xide
- # Description : Trades between two sectors with ports, buying and
- # selling products between them.
- # Haggles with a variable markup/markdown.
- # First docking is at the CURRENT sector of the player.
- # Trigger Point : Sector command prompt
- # Warnings : Ports must have enough products on board to make
- # this script worthwhile. Ideally trading should stop
- # once a port hits below 20%. This script assumes
- # there are no one-way warps between ports and that
- # they are adjacent to eachother. Be
- # sure there are no obstructions in either sector.
- # Other : I wouldn't try learning the script language here,
- # this script is quite complex and basically goes all
- # over the damn place :)
- # check if we can run it from here
- cutText CURRENTLINE $location 1 12
- if ($location <> "Command [TL=")
- clientMessage "This script must be run from the command prompt"
- halt
- end
- logging off
- # show script banner
- echo "**" ANSI_3 " --" ANSI_11 "===| " ANSI_15 "Port Pair Trading v2.00" ANSI_11 " |===" ANSI_3 "--**"
- echo ANSI_7 "No registration is required to use this script,*it is completely open source and can be opened*in notepad."
- echo "**" ANSI_15 "For your own safety, please read the warnings*written at the top of the script before*using it!*"
- # get user input
- getinput $sector2 "Enter sector to trade to" 0
- getinput $timesLeft "Enter times to execute script" 0
- getinput $percent "Enter markup/markdown percentage" 5
- # get the current sector
- send "d"
- setTextLineTrigger 1 :getSectorNumber "Sector : "
- pause
- :getSectorNumber
- getWord CURRENTLINE $sector1 3
- setVar $thisSector $sector1
- :sub_Trade
- killTrigger 0
- killTrigger 1
- killTrigger 2
- killTrigger 3
- killTrigger 4
- send "pt"
- waitfor "-----"
- getSector $thisSector $thisSect
- if ($thisSector = $sector1)
- getSector $sector2 $otherSect
- else
- getSector $sector1 $otherSect
- end
- if ($thisSect.Port.Class = 3) or ($thisSect.Port.Class = 4) or ($thisSect.Port.Class = 5) or ($thisSect.Class = 7)
- setVar $portStage 0
- end
- if ($thisSect.Port.Class = 2) or ($thisSect.Port.Class = 6)
- setVar $portStage 1
- else
- setVar $portStage 2
- end
- # haggle it!
- setTextLineTrigger 1 :selectHoldsSell "We are buying up to"
- setTextLineTrigger 2 :selectHoldsBuy "We are selling up to"
- setTextTrigger 3 :done "Command [TL="
- setTextTrigger 4 :sub_Trade "We're not interested."
- pause
- :selectHoldsSell
- send "*"
- setTextLineTrigger 1 :Haggle_Sell "We'll buy them for"
- pause
- :Haggle_Sell
- getWord CURRENTLINE $startPrice 5
- stripText $startPrice ","
- setVar $sellPerc (100 + $percent)
- :sub_Sell
- killTrigger 1
- killTrigger 0
- setVar $price $startPrice
- multiply $price $sellPerc
- divide $price 100
- send $price "*"
- subtract $sellPerc 1
- setTextLineTrigger 1 :sub_Sell "We'll buy them for"
- setTextLineTrigger 0 :sub_Sell "Our final offer"
- pause
- :selectHoldsBuy
- killTrigger 1
- killTrigger 0
- # see if we should buy this stuff - there might be a more profitable
- # thing to buy here
- # first see what we're trading
- setTextTrigger 2 :getTradeType "How many holds of"
- pause
- :getTradeType
- getWord CURRENTLINE $tradeType 5
- if ($tradeType = "Fuel")
- if (($thisSect.Port.Class = 5) or ($thisSect.Port.Class = 7)) and (($otherSect.Port.Class = 2) or ($otherSect.Port.Class = 3) or ($otherSect.Port.Class = 4) or ($otherSect.Port.Class = 8))
- # can buy equipment - fuel ore is worthless.
- send "0*"
- setTextLineTrigger 2 :selectHoldsBuy "We are selling up to"
- pause
- end
- if (($thisSect.Port.Class = 4) or ($thisSect.Port.Class = 7)) and (($otherSect.Port.Class = 1) or ($otherSect.Port.Class = 3) or ($otherSect.Port.Class = 5) or ($otherSect.Port.Class = 8))
- # can buy organics - fuel ore is worthless.
- send "0*"
- setTextLineTrigger 2 :selectHoldsBuy "We are selling up to"
- pause
- end
- if (($thisSect.Port.Class = 4) or ($thisSect.Port.Class = 7) or ($thisSect.Port.Class = 3) or ($thisSect.Port.Class = 5)) and (($otherSect.Port.Class = 3) or ($otherSect.Port.Class = 4) or ($otherSect.Port.Class = 5) or ($otherSect.Port.Class = 7))
- # no point buying fuel if it can't be sold
- send "0*"
- setTextLineTrigger 2 :selectHoldsBuy "We are selling up to"
- pause
- end
- end
- if ($tradeType = "Organics")
- if (($thisSect.Port.Class = 6) or ($thisSect.Port.Class = 7)) and (($otherSect.Port.Class = 2) or ($otherSect.Port.Class = 3) or ($otherSect.Port.Class = 4) or ($otherSect.Port.Class = 8))
- # can buy equipment - organics is worthless.
- send "0*"
- setTextLineTrigger 2 :selectHoldsBuy "We are selling up to"
- pause
- end
- if (($thisSect.Port.Class = 2) or ($thisSect.Port.Class = 4) or ($thisSect.Port.Class = 6) or ($thisSect.Port.Class = 7)) and (($otherSect.Port.Class = 2) or ($otherSect.Port.Class = 4) or ($otherSect.Port.Class = 6) or ($otherSect.Port.Class = 7))
- # no point buying organics if it can't be sold
- send "0*"
- setTextLineTrigger 2 :selectHoldsBuy "We are selling up to"
- pause
- end
- end
- if ($tradeType = "Equipment")
- if (($otherSect.Port.Class = 1) or ($otherSect.Port.Class = 5) or ($otherSect.Port.Class = 6) or ($otherSect.Port.Class = 7))
- # no point buying equipment if it can't be sold
- send "0*"
- setTextLineTrigger 2 :selectHoldsBuy "We are selling up to"
- pause
- end
- end
- send "*"
- setTextLineTrigger 2 :Haggle_Buy "We'll sell them for"
- pause
- :Haggle_Buy
- getWord CURRENTLINE $startPrice 5
- stripText $startPrice ","
- setVar $buyPerc (100 - $percent)
-
- :sub_Buy
- killTrigger 1
- killTrigger 0
- setVar $price (($startPrice * $buyPerc) / 100)
- send $price "*"
- add $buyPerc 1
- setTextLineTrigger 1 :sub_Buy "We'll sell them for"
- setTextLineTrigger 0 :sub_Buy "Our final offer"
- pause
- :done
- if ($thisSector = $sector1)
- send $sector2 "*"
- setVar $thisSector $sector2
- else
- subtract $timesLeft 1
- if ($timesLeft <= 0)
- halt
- end
- send $sector1 "*"
- setVar $thisSector $sector1
- end
- waitfor "Sector : "
- goto :sub_Trade
|