Freelancer Path Generator *Alpha*
-
-
You mean illegal, there’s no gate - so it’s a jumphole, but I agree - it’s an oversight I made, took all of 2 seconds to see it
I think it’s a simple-ish fix.
I’ve hashed the name whilst it’s in lower case - gives a different hash value.
The issue of mismatching case was one i came across from my own lame assed modding Since it now reports errors, I can remove those transforms - just get it to report case mismatch between things like universe.ini and any reference to a system…
Remember, it’d find all such errors before path construction… so with errors being found before constructing paths, if any exist - should it exit and inform you?? or carry on, construct the erroneous paths and then inform you of errors? -
Actually, CRC Calc is case insensitive, but FL is case sensitive. LS has released a new CRC app that is case sensitive to fix that issue.
http://digitalbrilliance.com/Downloader/index.php?action=downloads&id=33
-
Uhh…
Famous last words.
After decrypting St03b and rerunning the generator…
Still no crashes, :-
but…
No Best Path from any system to anywhere I tried, even to the next system which I had already visited.I can’t see a way to attach the files to this post to send them to you pal.
Initial look-see with my ini editor shows the entries are not in the same order, so although the same first few gates are listed in both, the second file has out-of-order entries and so the whole file is difficult to compare…
Here’s the second (No Best Path) shortest_legal_path.ini…
[SystemConnections]
Path = br07, br07, br07
Path = br07, bw05, br07, bw05
Path = br07, ku04, br07, bw05, ku04
Path = br07, rh04, br07, bw05, rh04
Path = br07, bw07, br07, bw05, ku04, bw07
Path = br07, ku01, br07, bw05, ku04, ku01
Path = br07, rh01, br07, bw05, rh04, rh01
Path = br07, bw06, br07, bw05, ku04, bw07, bw06
Path = br07, ku03, br07, bw05, ku04, ku01, ku03
Path = br07, ku05, br07, bw05, ku04, ku01, ku05
Path = br07, ku02, br07, bw05, ku04, ku01, ku02
Path = br07, rh03, br07, bw05, rh04, rh01, rh03
Path = br07, rh02, br07, bw05, rh04, rh01, rh02
Path = br07, rh05, br07, bw05, rh04, rh01, rh05
Path = br07, br08, br07, bw05, ku04, bw07, bw06, br08
Path = br07, ce01, br07, bw05, ku04, ku01, ku03, ce01
Path = br07, bw09, br07, bw05, ku04, ku01, ku03, bw09
Path = br07, iw05, br07, bw05, ku04, ku01, ku02, iw05
Path = br07, iw06, br07, bw05, ku04, ku01, ku02, iw06
Path = br07, bw04, br07, bw05, rh04, rh01, rh03, bw04
Path = br07, bw03, br07, bw05, rh04, rh01, rh03, bw03
Path = br07, iw01, br07, bw05, rh04, rh01, rh02, iw01
Path = br07, iw02, br07, bw05, rh04, rh01, rh02, iw02
Path = br07, bw10, br07, bw05, ku04, ku01, ku03, bw09, bw10
Path = br07, li03, br07, bw05, ku04, ku01, ku02, iw05, li03
Path = br07, fr01, br07, bw05, ku04, ku01, ku02, iw05, fr01
Path = br07, rw03, br07, bw05, ku04, ku01, ku02, iw06, rw03
Path = br07, bw01, br07, bw05, rh04, rh01, rh03, bw03, bw01
Path = br07, li04, br07, bw05, rh04, rh01, rh02, iw01, li04
Path = br07, bw08, br07, bw05, ku04, ku01, ku03, bw09, bw10, bw08
Path = br07, br04, br07, bw05, ku04, ku01, ku03, bw09, bw10, br04
Path = br07, li01, br07, bw05, ku04, ku01, ku02, iw05, li03, li01
Path = br07, ea03, br07, bw05, ku04, ku01, ku02, iw06, rw03, ea03
Path = br07, br03, br07, bw05, rh04, rh01, rh03, bw03, bw01, br03
Path = br07, ha01, br07, bw05, rh04, rh01, rh03, bw03, bw01, ha01
Path = br07, br01, br07, bw05, ku04, ku01, ku03, bw09, bw10, br04, br01
Path = br07, rw02, br07, bw05, ku04, ku01, ku03, bw09, bw10, br04, rw02
Path = br07, br06, br07, bw05, ku04, ku01, ku03, bw09, bw10, br04, br06
Path = br07, li02, br07, bw05, ku04, ku01, ku02, iw05, li03, li01, li02
Path = br07, li05, br07, bw05, ku04, ku01, ku02, iw05, li03, li01, li05
Path = br07, iw03, br07, bw05, ku04, ku01, ku02, iw05, li03, li01, iw03
Path = br07, ea02, br07, bw05, ku04, ku01, ku02, iw06, rw03, ea03, ea02
Path = br07, br02, br07, bw05, ku04, ku01, ku03, bw09, bw10, br04, br01, br02
Path = br07, br05, br07, bw05, ku04, ku01, ku03, bw09, bw10, br04, br01, br05
Path = br07, iw04, br07, bw05, ku04, ku01, ku02, iw05, li03, li01, li02, iw04
Path = br07, ea01, br07, bw05, ku04, ku01, ku02, iw06, rw03, ea03, ea02, ea01
Path = br07, br09, br07, bw05, ku04, ku01, ku03, bw09, bw10, br04, br01, br05, br09Here’s the first (Good path) shortest_legal_path.ini…
[SystemConnections]
Path = br07, br07, br07
Path = br07, bw05, br07, bw05
Path = br07, rh04, br07, bw05, rh04
Path = br07, ku04, br07, bw05, ku04
Path = br07, rh01, br07, bw05, rh04, rh01
Path = br07, bw07, br07, bw05, ku04, bw07
Path = br07, ku01, br07, bw05, ku04, ku01
Path = br07, rh02, br07, bw05, rh04, rh01, rh02
Path = br07, rh05, br07, bw05, rh04, rh01, rh05
Path = br07, rh03, br07, bw05, rh04, rh01, rh03
Path = br07, bw06, br07, bw05, ku04, bw07, bw06
Path = br07, ku03, br07, bw05, ku04, ku01, ku03
Path = br07, ku05, br07, bw05, ku04, ku01, ku05
Path = br07, ku02, br07, bw05, ku04, ku01, ku02
Path = br07, iw01, br07, bw05, rh04, rh01, rh02, iw01
Path = br07, iw02, br07, bw05, rh04, rh01, rh02, iw02
Path = br07, bw03, br07, bw05, rh04, rh01, rh03, bw03
Path = br07, bw04, br07, bw05, rh04, rh01, rh03, bw04
Path = br07, br08, br07, bw05, ku04, bw07, bw06, br08
Path = br07, ce01, br07, bw05, ku04, ku01, ku03, ce01
Path = br07, bw09, br07, bw05, ku04, ku01, ku03, bw09
Path = br07, iw05, br07, bw05, ku04, ku01, ku02, iw05
Path = br07, iw06, br07, bw05, ku04, ku01, ku02, iw06
Path = br07, li04, br07, bw05, rh04, rh01, rh02, iw01, li04
Path = br07, bw01, br07, bw05, rh04, rh01, rh03, bw03, bw01
Path = br07, bw10, br07, bw05, ku04, ku01, ku03, bw09, bw10
Path = br07, fr01, br07, bw05, ku04, ku01, ku02, iw05, fr01
Path = br07, li03, br07, bw05, ku04, ku01, ku02, iw05, li03
Path = br07, rw03, br07, bw05, ku04, ku01, ku02, iw06, rw03
Path = br07, li01, br07, bw05, rh04, rh01, rh02, iw01, li04, li01
Path = br07, br03, br07, bw05, rh04, rh01, rh03, bw03, bw01, br03
Path = br07, ha01, br07, bw05, rh04, rh01, rh03, bw03, bw01, ha01
Path = br07, bw08, br07, bw05, ku04, ku01, ku03, bw09, bw10, bw08
Path = br07, br04, br07, bw05, ku04, ku01, ku03, bw09, bw10, br04
Path = br07, ea03, br07, bw05, ku04, ku01, ku02, iw06, rw03, ea03
Path = br07, li05, br07, bw05, rh04, rh01, rh02, iw01, li04, li01, li05
Path = br07, iw03, br07, bw05, rh04, rh01, rh02, iw01, li04, li01, iw03
Path = br07, li02, br07, bw05, rh04, rh01, rh02, iw01, li04, li01, li02
Path = br07, br01, br07, bw05, rh04, rh01, rh03, bw03, bw01, br03, br01
Path = br07, rw02, br07, bw05, ku04, ku01, ku03, bw09, bw10, br04, rw02
Path = br07, br06, br07, bw05, ku04, ku01, ku03, bw09, bw10, br04, br06
Path = br07, ea02, br07, bw05, ku04, ku01, ku02, iw06, rw03, ea03, ea02
Path = br07, br02, br07, bw05, rh04, rh01, rh02, iw01, li04, li01, iw03, br02
Path = br07, iw04, br07, bw05, rh04, rh01, rh02, iw01, li04, li01, li02, iw04
Path = br07, br05, br07, bw05, rh04, rh01, rh03, bw03, bw01, br03, br01, br05
Path = br07, ea01, br07, bw05, ku04, ku01, ku02, iw06, rw03, ea03, ea02, ea01
Path = br07, br09, br07, bw05, rh04, rh01, rh03, bw03, bw01, br03, br01, br05, br09And interestingly when opening either file with notepad, Notepad does not interpret the end of line correctly and glues all lines together into one VERY long line with a square character in between each! Difficult as hell to read with Notepad!
But this forum does interpret eol correctly so it shows normally below so I can’t show you what I see…
[SystemConnections]
Path = br07, br07, br07
Path = br07, bw05, br07, bw05
Path = br07, rh04, br07, bw05, rh04
Path = br07, ku04, br07, bw05, ku04
Path = br07, rh01, br07, bw05, rh04, rh01
Path = br07, bw07, br07, bw05, ku04, bw07
Path = br07, ku01, br07, bw05, ku04, ku01
Path = br07, rh02, br07, bw05, rh04, rh01, rh02
…Can you sort the entries for each system at all? Then it will be a doddle to compare different runs.
Thanks Chips.
<dreams of=“” pinning=“” another=“” diamond=“” against=“” jumpgate=“”></dreams>
-
Chips, do you look for archetypes or goto lines in the file?
I’m asking this, because I have jump-objects with custom archetypes; and yes, I’m too lazy to test it out at the momentIn systems_shortest it does take into account my jump-object, but in shortest_legal and shortest_illegal, it is in neither. This might be the cause of some of my ‘no best path’ issues. If relevant, can you create an external list, like a txt file of what archetypes are being looked for, and are treated as legal/illegal? The app could then parse for those archetypes, and this problem would be universally solved.
Edit: Just corrected some early morning typos and horrid grammar mistakes.
-
Chips, do you look for archetypes or goto lines in the file?
I’m asking this, because I have jump-objects with custom archetypes; and yes, I’m too lazy to test it out at the momentIn systems_shortest it does take into account my jump-object, but in shortest_legal and shortest_illegal, it is in neither. This might be the cause of some of my ‘no best path’ issues. If relevant, can you create an external list, like a txt file of what archetypes are being looked for, and are treated as legal/illegal? The app could then parse for those archetypes, and this problem would be universally solved.
Edit: Just corrected some early morning typos and horrid grammar mistakes.
Can you attach an example of your jump objects from the systems file please mate?
It does work on the principle of a goto = line, but it checks teh archetype of the jump object against the solararch.ini file first… if it’s not there already (defined by type = JUMP or something!), then it’ll log as an error.Sadly uni removed my emailed code as having a virus attached (bini.exe was included, whattamistakatomaka) so haven’t worked on it today during the day, and I got home a short while ago… it’s 9.10pm, and I have to get up at 6am… yet to eat dinner.
Fraid it may be either tomorrow or Friday before I can have a butchers hook at what’s going wrong with various aspects.
Quick question, are the things in order as they appear in the universe.ini file? The systems should appear as they do in that (so first entry in systems_shortest_path should be the paths for the first system listed in universe.ini file).If anyone wants to zip up their files, all i need are the system files in their systems folder, the initial_world.ini, solararch.ini and universe.ini files Just zip them up, use something like yousendit.com or rapidshare.de or something (file hosting sites) and post a link up here.
I’ll try my best to look over, but this is kinda the worst time due to starting work, and for June my weekends are packed with being away each weekend or a majority of the time.
I’ll see whether I can fit it in around working at uni, or free evenings (if there are any) at weekends.
-
Here is the info you requested:
SOLARARCH
[Solar]
nickname = hypergate_jumppoint
ids_name = 60211
ids_info = 66146
type = JUMP_HOLE
DA_archetype = solar\dockable\jump_hole.3db
material_library = solar\Solar_mat_misc02.mat
mass = 10000.000000
jump_out_hp = Hporient
solar_radius = 600
shape_name = NAV_jumphole
docking_sphere = jump, HpDockMountA, 150
hit_pts = 999999961690316250000000000000000000.000000
phantom_physics = trueST03B
[Object]
nickname = St03b_to_Io01_hyper
ids_name = 261383
pos = -18412, 9500, 18955
rotate = 0, 140, 0
archetype = hypergate_jumppoint
msg_id_prefix = gcs_refer_system_St03b
jump_effect = jump_effect_hyper
ids_info = 130311
visit = 0
goto = Io01, Io01_to_St03b_hyper, gate_tunnel_hyperIO01
[Object]
nickname = Io01_to_St03b_hyper
ids_name = 261383
pos = -35000, 9500, 40000
rotate = 0, 140, 0
archetype = hypergate_jumppoint
msg_id_prefix = gcs_refer_system_St03b
jump_effect = jump_effect_hyper
ids_info = 130311
visit = 0
goto = St03b, St03b_to_Io01_hyper, gate_tunnel_hyperexample from SHORTEST_ILLEGAL
[SystemConnections]
Path = io01, io01, io01
Path = io01, st03b, io01, st03b
Path = io01, io03, io01, io03
Path = io01, io02, io01, io02(as you can see io01 does connect to st03b, but NOT to the rest of the world - it seems that nomad gates are “legal” entries)
example from SHORTEST_LEGAL
[SystemConnections]
Path = io02, io02, io02
Path = io02, io04, io02, io04
Path = io02, io05, io02, io04, io05
Path = io02, io06, io02, io04, io05, io06(seems to be ok, tho it still doesn’t connect to the rest of the world. Makes sense tho, jump holes are not “legal”. The hypergate jumppoint has a jump_hole type, so it is righfully treated as “illegal”. Btw, there is a jump hole connection between Io01 and Io02 - also, Io01 does not appear in the shortest_legal file at all.)
in SYSTEMS_SHORTEST all these systems DO connect to the rest of the world.
It appears that the “hypergate_jumppoint” is automatically treated as an “illegal” way of travelling. Whereas I have no clue exactly how FL chooses the file to base its path calculations on, I get a no best path when trying to plot a route from, for example, Io01 to Li01. (makes sense for the fact that there is no “legal” jump possibility - it appears that shortest_legal is used.)CONCLUSION: The primary problem with this is that some systems, like Omega-41, even in 1.0, have path information, whereas the only way to travel through them is via “illegal” means. In case of the files generated by the app, Omega-41 gives a “no best path” error too, and everything “beyond” it, which is “unreachable via legal means”. This is not a fault of the path generator, the 1.0 shortest_legal, for example, does not contain Ew03 at all - but then, why does it work there, and why doesn’t it work here? ???
(My question on jump objects has been answered:p it is the solararch entry for them that determines legality. Nice touch ;))
Edit: Oh, you said you lost your bini.exe - well, I do have a bini.exe and an unbini.exe; if you are interested. They work perfect, except for probaly the only thing that unbini.exe decodes the files in a way that strings are marked with " " and paths use \ as delimeter - and bini.exe expects that format as well.
-
Thanks for the bini, but it’s going to be shelved No point working on decrypting stuff when it’s not working ordinarily, so that can be left on the shelf whilst other issues sorted.
Sadly this isn’t the only thing going wrong, had bugs appear in 3rd party software I use as part of my work - so until I solve that, this may be on the burner for a while
-
I am surprised that my first run worked and seemed very good, so I don’t think you are very far away Chips.
The second run with unencrypted ST03b may have incurred errors after the first path that included St03b perhaps?
I’ll zip up my files and post them somewhere and give you the link here, but need some time as my upload is very slow.
thanks pal.
-
I didn’t want to drive you down either, was just trying to help spot a possible cause for no-best-path…
No driving down mate, tis all good.
Managed to find the bug that was causing me loads of trouble at uni, so that’s nearly solved there… but am away all day tomorrow, so hopefully Sunday I shall get around to sorting out any issues with this program insteadALL is welcome, whether it’s criticism, feedback or attempts to help troubleshoot/solve what may be the issue
I would post up the source code if parts of it weren’t so… hacked together in a brutally ugly fashion -
Sorry, not even had a chance to glance at this yet, and not sure when i will. If I haven’t by this weekend, then I’ll probably release the source code incase someone else can program with Java, is familiar with OOP and wants to take it over
its not pretty though
-
Chips,
I sincerely hope you will continue with this, bud, I’m waiting on your success.
It’s nearly there, as I said the first run, with St03b still accidentally encrypted, gave me good paths from a totally remote system that I had not visited back to the systems I had visited, and it was generating good paths from anywhere to anywhere. And I’m running it on my mod, with many new systems.
The second run after I decrypted St03b gave me always “No Best Path” even to the next system, and even between adjacent systems that I had already visited.
I spent a couple of days writing a sort macro (in Excel, its the only way I am capable) and sorted the path files from both runs to look for differences - but there are hundreds!! So I can’t see the wood for the trees!
Even from the first system, Br07, to Br01, the first (good paths) run took the following path (valid):
Path = br07, br01, br07, bw05, rh04, rh01, rh03, bw03, bw01, br03, br01The second run took the following route (also valid):
Path = br07, br01, br07, bw05, ku04, ku01, ku03, bw09, bw10, br04, br01and other paths to other systems showed the same bias, good paths went via Rh04 and faulty paths via Ku04.
What mechanism decides which of two equally valid paths will be followed? Both paths have the same number of system jumps in each case.
I really hope you will continue, but I do understand RL gets in the way, I’m a prime case! lol
Whereas I could and am very willing to spend time to pick up some of the pieces, I doubt if I will understand enough to design the method to continue it to a conclusion any time soon.
-
-
Chips,
I sincerely hope you will continue with this, bud, I’m waiting on your success.
It’s nearly there, as I said the first run, with St03b still accidentally encrypted, gave me good paths from a totally remote system that I had not visited back to the systems I had visited, and it was generating good paths from anywhere to anywhere. And I’m running it on my mod, with many new systems.
The second run after I decrypted St03b gave me always “No Best Path” even to the next system, and even between adjacent systems that I had already visited.
I spent a couple of days writing a sort macro (in Excel, its the only way I am capable) and sorted the path files from both runs to look for differences - but there are hundreds!! So I can’t see the wood for the trees!
Even from the first system, Br07, to Br01, the first (good paths) run took the following path (valid):
Path = br07, br01, br07, bw05, rh04, rh01, rh03, bw03, bw01, br03, br01The second run took the following route (also valid):
Path = br07, br01, br07, bw05, ku04, ku01, ku03, bw09, bw10, br04, br01and other paths to other systems showed the same bias, good paths went via Rh04 and faulty paths via Ku04.
What mechanism decides which of two equally valid paths will be followed? Both paths have the same number of system jumps in each case.
I really hope you will continue, but I do understand RL gets in the way, I’m a prime case! lol
Whereas I could and am very willing to spend time to pick up some of the pieces, I doubt if I will understand enough to design the method to continue it to a conclusion any time soon.
Sounds like I must have used a set somewhere, as therefore it can’t garuntee the order from which it’s elements are returned (simplest explanation for it to be honest).
If I manage to sneak any opportunity at all, i’ll take a look. -
Just a note here that Chips has released a Beta version of this path generator with fixes for some of my problems.
So please follow that thread from now.