Perhaps this code is a bit of overkill for just grabbing the prompt, but here it is anyway. This is a modified quikstats sub-routine that I use all the time now. The only place it will stall is in the middle of a chat prompt I believe. The list of variables at the top is mostly for reference purposes.
Well, the usefulness of it can be determined by the reader.
MD
Code:
#Author: Mind Dagger
#Gets player stats from the hitting the / key. Also grabs the current prompt that you are at.
#The only prompt this will stall on is in the middle of chatting
#gotStats routine by Dynarri/Singularity
# ============================ START QUIKSTAT VARIABLES ==========================
setVar $CURRENT_PROMPT "Undefined"
setVar $PSYCHIC_PROBE "NO"
setVar $PLANET_SCANNER "NO"
setVar $SCAN_TYPE "NONE"
setVar $CURRENT_SECTOR 0
setVar $TURNS 0
setVar $CREDITS 0
setVar $FIGHTERS 0
setVar $SHIELDS 0
setVar $TOTAL_HOLDS 0
setVar $ORE_HOLDS 0
setVar $ORGANIC_HOLDS 0
setVar $EQUIPMENT_HOLDS 0
setVar $COLONIST_HOLDS 0
setVar $PHOTONS 0
setVar $ARMIDS 0
setVar $LIMPETS 0
setVar $GENESIS 0
setVar $TWARP_TYPE 0
setVar $CLOAKS 0
setVar $BEACONS 0
setVar $ATOMIC 0
setVar $CORBO 0
setVar $EPROBES 0
setVar $MINE_DISRUPTORS 0
setVar $ALIGNMENT 0
setVar $EXPERIENCE 0
setVar $CORP 0
setVar $SHIP_NUMBER 0
setVar $TURNS_PER_WARP 0
setVar $COMMAND_PROMPT "Command"
setVar $COMPUTER_PROMPT "Computer"
setVar $CITADEL_PROMPT &nb sp; "Citadel"
setVar $PLANET_PROMPT &nbs p; "Planet"
setVar $CORPORATE_PROMPT "Corporate"
setVar $STARDOCK_PROMPT "<Stardock>"
setVar $HARDWARE_PROMPT "<Hardware"
setVar $SHIPYARD_PROMPT "<Shipyard>"
setVar $TERRA_PROMPT "Terra"
# ============================ END QUIKSTAT VARIABLES ==========================
:quikstats
setVar $CURRENT_PROMPT "Undefined"
killtrigger noprompt
killtrigger prompt1
killtrigger prompt2
killtrigger prompt3
killtrigger prompt4
killtrigger statlinetrig
killtrigger getLine2
setTextTrigger prompt1 rimaryPrompts "(?="
setTextLineTrigger prompt2 :secondaryPrompts "(?)"
setTextLineTrigger statlinetrig :statStart #179
setTextTrigger &nbs p; prompt3 &nb sp; :terraPrompts   ; "Do you wish to (L)eave or (T)ake Colonists?"
setTextTrigger &nbs p; prompt4 &nb sp; :terraPrompts   ; "How many groups of Colonists do you want to take ("
send "^Q/"
pause
rimaryPrompts
getWord currentansiline $checkPrompt 1
getWord currentline $tempPrompt 1
getWordPos $checkPrompt $pos #27&"[35m"
if ($pos > 0)
setVar $CURRENT_PROMPT $tempPrompt
end
setTextLineTrigger prompt1 rimaryPrompts "(?=" & nbsp;
pause
:secondaryPrompts
getWord currentansiline $checkPrompt 1
getWord currentline $tempPrompt 1
getWordPos $checkPrompt $pos #27&"[35m"
if ($pos > 0)
setVar $CURRENT_PROMPT $tempPrompt
end
setTextLineTrigger prompt2 :secondaryPrompts "(?)" & nbsp;
pause
:terraPrompts
killtrigger prompt3
killtrigger prompt4
getWord currentansiline $checkPrompt 1
getWordPos $checkPrompt $pos #27&"[35m"
if ($pos > 0)
setVar $CURRENT_PROMPT "Terra"
end
setTextTrigger &nbs p; prompt3 &nb sp; :terraPrompts   ; "Do you wish to (L)eave or (T)ake Colonists?"
setTextTrigger &nbs p; prompt4 &nb sp; :terraPrompts   ; "How many groups of Colonists do you want to take ("
pause
:statStart
killtrigger prompt1
killtrigger prompt2
killtrigger prompt3
killtrigger prompt4
killtrigger noprompt
setVar $stats ""
setVar $wordy ""
:statsline
killtrigger statlinetrig
killtrigger getLine2
setVar $line2 CURRENTLINE
replacetext $line2 #179 " "
striptext $line2 ","
setVar $stats $stats & $line2
getWordPos $line2 $pos "Ship"
if ($pos > 0)
goto :gotStats
else
setTextLineTrigger getLine2 :statsline
pause
end
:gotStats
setVar $stats $stats & " @@@"
setVar $current_word 0
while ($wordy <> "@@@")
if ($wordy = "Sect")
getWord $stats $CURRENT_SECTOR &nb sp;($current_word + 1)
elseif ($wordy = "Turns")
getWord $stats $TURNS ($current_word + 1)
elseif ($wordy = "Creds")
getWord $stats $CREDITS ($current_word + 1)
elseif ($wordy = "Figs")
getWord $stats $FIGHTERS ($current_word + 1)
elseif ($wordy = "Shlds")
getWord $stats $SHIELDS ($current_word + 1)
elseif ($wordy = "Hlds")
getWord $stats $TOTAL_HOLDS ($current_word + 1)
elseif ($wordy = "Ore")
getWord $stats $ORE_HOLDS ($current_word + 1)
elseif ($wordy = "Org")
getWord $stats $ORGANIC_HOLDS &nbs p; ($current_word + 1)
elseif ($wordy = "Equ")
getWord $stats $EQUIPMENT_HOLDS &n bsp; ($current_word + 1)
elseif ($wordy = "Col")
getWord $stats $COLONIST_HOLDS &nb sp; ($current_word + 1)
elseif ($wordy = "Phot")
getWord $stats $PHOTONS ($current_word + 1)
elseif ($wordy = "Armd")
getWord $stats $ARMIDS ($current_word + 1)
elseif ($wordy = "Lmpt")
getWord $stats $LIMPETS ($current_word + 1)
elseif ($wordy = "GTorp")
getWord $stats $GENESIS ($current_word + 1)
elseif ($wordy = "TWarp")
getWord $stats $TWARP_TYPE ($current_word + 1)
elseif ($wordy = "Clks")
getWord $stats $CLOAKS ($current_word + 1)
elseif ($wordy = "Beacns")
getWord $stats $BEACONS ($current_word + 1)
elseif ($wordy = "AtmDt")
getWord $stats $ATOMIC ($current_word + 1)
elseif ($wordy = "Corbo")
getWord $stats $CORBO ($current_word + 1)
elseif ($wordy = "EPrb")
getWord $stats $EPROBES ($current_word + 1)
elseif ($wordy = "MDis")
getWord $stats $MINE_DISRUPTORS &n bsp;($current_word + 1)
elseif ($wordy = "PsPrb")
getWord $stats $PSYCHIC_PROBE ($current_word + 1)
elseif ($wordy = "PlScn")
getWord $stats $PLANET_SCANNER ($current_word + 1)
elseif ($wordy = "LRS")
getWord $stats $SCAN_TYPE ($current_word + 1)
elseif ($wordy = "Aln")
getWord $stats $ALIGNMENT ($current_word + 1)
elseif ($wordy = "Exp")
getWord $stats $EXPERIENCE ($current_word + 1)
elseif ($wordy = "Corp")
getWord $stats $CORP ($current_word + 1)
elseif ($wordy = "Ship")
getWord $stats $SHIP_NUMBER ($current_word + 1)
end
add $current_word 1
getWord $stats $wordy $current_word
end
oneQuikstats
killtrigger prompt1
killtrigger prompt2
killtrigger prompt3
killtrigger prompt4
killtrigger statlinetrig
killtrigger getLine2
return
# ============================== END QUICKSTATS SUB==============================