A script-Assistant for explorers

Hello everyone! I decided to make my humble contribution to the world of Elite Dangerous.
In case someone asks me a question: You only have one jump while researching. Which system will you choose: discovered or nondiscovered? I will, of course, choose NonDiscovered!
Another example. You are a explorer and looking for interesting systems. On the way, you have a system with a black hole. You do not yet know if anyone else has visited this system. To do this, you need to either visit it, or write it down name on a piece of paper (because there is no way to put it on the clipboard). Then, go to EDSM or EDDB and manually type the text. Agree that this is very long and inconvenient. This is especially useful in regions with high traffic: Inner Orion Spur, nebulae, regions with Guardians, etc.
But this can be done in one click! For this, I created this script on AutoHotKey.
The principle is as follows: When you are on the Gala-Map, check the box on a target in the system of interest (no matter how far away it is, even at the edge of the galaxy). But only in this case you need to hold down the LShift key.
SmartMap.jpg
The script extracts the system name from your log and sends a request to the EDSM API. According to the result (whether there is such a system in the database or not), it issues a voice message. Also, just in case, the name of the system is placed on the clipboard.
In a ZIP archive: source code in AHK, EXE file (who does not have AHK installed), two voice mp3 files (they will need to be placed in the folder with logs, by default: C:\Users\User_Name\Saved Games\Frontier Developments\Elite Dangerous). There is also a SoundBank folder with various En/Ru voices. They will need to be renamed to "Discovered" or "New System" and replace the corresponding file in the logs folder.
Note: Sometimes, upon arrival in a "new" system, objects immediately appear on the radar. Well, sometimes there are such cases. Rarely. But there are. This means that the system has already been visited before, but is not described in EDSM.

Good Luck!

PS) If necessary, the hotkey in the script can be changed to a different combination. It is necessary to replace the line ~<+LButton:: with ~NewKey:: In this case, be guided by the following document: https://www.autohotkey.com/docs/KeyList.htm#toc
PPS) Tested and used in Horizons. I did not check it in the Odyssey. But it probably should work too, if the method of building log files has not changed there.
 

Attachments

  • SmartMap.zip
    730.7 KB · Views: 190
Last edited:
Useful....but.

I jump into everything because first not everything that has been explored is in the EDSM database, so you will still hit explored systems even with this system, and second many explored systems were explored a long time ago, before new features were added and quite often before it was even possible to land on planets, so it's quite possible a previously explored system already in EDSM may have something interesting in, NSP's, Guardian Ruins and etc.
 
Useful....but.

I jump into everything because first not everything that has been explored is in the EDSM database, so you will still hit explored systems even with this system, and second many explored systems were explored a long time ago, before new features were added and quite often before it was even possible to land on planets, so it's quite possible a previously explored system already in EDSM may have something interesting in, NSP's, Guardian Ruins and etc.
This, plus : right now I have no Artemis suit or bio sampling thingy, being way out in the black. So I am finding all sorts of bio indications but can't do much with them. All the systems I've mapped recently might appear fully mapped on EDSM, but it ain't exactly so.
 
Hi, all! It's been almost a year. Did a lot of research. I realized that what was missing was a new systems search mode, next to CMDR.
So, the new version. Added option: "search in nearest".
It looks like this: menu 1 (Navigation) displays all systems within a radius of 20LY (if I remember correctly). But, not more than 50 pcs. I.e. if the region is very dense, only the 50 closest systems will be displayed.
So, let's go into "Navigation". Choose the first system. Press the "space bar" to enter it. Let me remind you that I used the default settings: move down "S", select "Space".
Map1.jpg
Next, check "Lock Destination". But, not just by space, but by holding Control {Ctrl+Space}.
Map2.jpg
The script sequentially goes through all systems and checks them against EDSM. If such a system already exists, the script moves on to the next line. And so until all the systems on the list are checked. Or until it finds a new system (which is not in the EDSM database). In the 1st case, we need to fly away some distance (1.5-2 times the search radius) and start searching again. In the second case, the script will stop, produce a voice message "New system" and select this system as the target (and write it to the clipboard). In this case we have two choices.
1: Go there at once to explore it and start a new search.
2: Go to the galaxy map, put a marker on that system, then go back to navigation screen and continue the search.
In case something goes wrong, the script has a Shift+ESC to escape.
 

Attachments

  • SmartMap_V1.2.zip
    731.1 KB · Views: 161
Hello to all the explorers.
I recently discovered an awesome program called EDJP! One of its useful "features" - it allows you to determine in real time - whether this system is in the EDSM database. This is a very useful feature. But, sometimes it is not always convenient. Especially when almost everything around us has already been explored. Point the marker at some system - you get "is already in EDSM". Point to another system - again "is already in EDSM". And so on. Sometimes, it can be exhausting. What if everything is really explored there? Or is it not?
I revised my script a little bit. Removed reaction to "LShift+Mouse", since this function is successfully executed by EDJP. Now the script only works for searches in the "nearest" 50 systems (or within 20LY). If the search is successful, it creates a Nearest.txt file in the journal folder.
Dir.png
You just need to open it and copy the 1st line. Then switch back to ED and on the "Route" tab, paste (Ctrl+V) into the address bar. Click "Jump" and put a marker on it.
Map1.png
Then, in notepad, select the following line ... etc.
I highly recommend that you choose one system as your reference. And lay a route to it. Then you can estimate your deviation from your target center.
You'll end up with something like this:
Map.png
Good luck with your research!
PS) I did not compile this script into an .EXE file. I posted the open source code.
PPS) Script.ahk:
;=========== (C) [PYRO] CDD_Juriy ================================
#NoEnv
#IfWinActive ahk_class FrontierDevelopmentsAppWinClass
RegRead, OutputVar, HKEY_CURRENT_USER, SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders, {4C5C32FF-BB9D-43B0-B5B4-2D72E54EAAA4}
OutputVar:=OutputVar "\Frontier Developments\Elite Dangerous"
SetWorkingDir %OutputVar%
setkeydelay, 30, 50 ; Pause, Press
;==================================================
~^Space::
n := 0
Gosub List
sysprev :=
start:
Sleep 400
Gosub Last
{ n := n+1
sys%n% = %sys%
}
if sys <> %sysprev%
{
send {s}
Sleep 70
send {space}
Sleep 70
send {space}
sysprev := sys
goto start
}
sys1 =
loop %n%
{
StringLen, len, sys%A_Index%
if len > 3
sys1 := sys1 sys%A_Index% "`n"
}
FileDelete Nearest.txt
Loop, parse, sys1, `n
{ StringLen, len, A_LoopField
if len > 3
{
sys := A_LoopField
Gosub Req
if request = []
FileAppend, %sys%`n, Nearest.txt
}
}
Return
;---------- Sorting and determining the last journal file (log files) --------
List:
FileList =
Loop, jour*.log, 1
FileList = %FileList%%A_LoopFileTimeModified%`t%A_LoopFileName%`n
Sort, FileList, R ;Sort by date in reverse order.
Loop, parse, FileList, %A_Tab%`n
{
FileItem := A_LoopField
if A_Index = 2 ; The second field is ours
break ; Exit Loop
}
return
;---------- Analyzing the last line of the current journal file --------
Last:
Loop, read, %FileItem%
last_line := A_LoopReadLine
if last_line not contains FSDTarget then return
StringTrimLeft, last_line, last_line, 2
StringTrimRight, last_line, last_line, 2
StringReplace, last_line, last_line, ", , All
Loop, parse, last_line, `, ;,
{
if A_Index = 3
{
sys = %A_LoopField%
StringReplace, sys, sys, name:, , All
clipboard = %sys%
break
}
}
Return
;---------- Request to EDSM ---------------------------------------
Req:
url := "https://www.edsm.net/api-v1/system?systemName=" sys
whr := ComObjCreate("MSXML2.XMLHTTP.6.0")
whr.Open("GET", url, false)
whr.Send()
request := whr.ResponseText
Return
~<+ESC:: exitApp
PPS)You can install the AHK environment yourself.
 
Last edited:
Even if the system is in the data base , does it tell you if the system was scanned or if it was just a 'honk and jump ' and scanned nothing. plus many do not use EDSM , so telling you the system isn't in the data base is meaningless.
 
Let me put it this way. As practice shows - about one out of 100 systems is completely scanned by someone before. And 2-3 are under-scanned. The other 97% are clean, unvisited. You can see this as soon as you arrived a system - there's nothing on the radar. If there are already bodies on the radar, it means you are not the first person to visit that system.
 
Back
Top Bottom