Request: an easier way to implement paths (no idea whether this is even possible)
-
adoxa wrote:
I’ve had the thought of using a separate file, allowing all your custom patrol paths and trade lanes to be stored in a single file (per system), The tool would then take that file and generate the equivalent FL version, which you would then (manually, possibly automatically) insert into the system file.
Sounds great, I suppose, but I do not fully comprehend.
-
I’m not entirely sure of exactly how I’ll format it, but given something like:
[PathPatrol] nickname = Zone_Li01_path_navy6 ; underscore & number appended automatically sort = 99 toughness = 2 ; etc ; path_label, if absent, could be based on nickname, taking everything after "path_" pos = <begin point="">pos = <next point="">attack_ids = 24 ; specific to this leg pos = ... [PathPatrol] ... [TradeLane] ; normal common stuff start = <number of="" first="" ring="">begin = <point of="" first="" ring="">end = <point of="" last="" ring="">; still haven't decided how to handle ring-specific values [TradeLane] ...</point></point></number></next></begin>
you would end up with a file (or maybe stdout or clipboard) containing the proper Freelancer zones/objects.
-
adoxa wrote:
[…]you would end up with a file (or maybe stdout or clipboard) containing the proper Freelancer zones/objects.
That’d certainly be nice!!
However, attack patrols aimed at trade lanes, can imho only be made after the trade lane rings are already in place, because it seems like they need to be aimed at an individual trade lane ring to trigger the “lane interrupted” event.
So, to me it makes sense to first create the physical setup of a System, including trade lanes, and only then generate the paths.
-
Here’s the first version of Tracks, a program to generate complete FL definitions of trade lanes and patrol (or trade) paths given abridged definitions. For example, this will generate the first trade lane found in [c]Li01.ini[/c]:
[Settings] system = Li01 reputation = li_p_grp loadout = trade_lane_ring_li_01 [TradeLane] number = 16 ; nickname number, not number of rings first = 3628, 0, -52369, 196776 last = -11163, 0, -78469, 261658 zone = 839, 3 ; size (both width & height) and nickname number sort = 14 toughness = 1 density = 6 ...
and this will generate a patrol path found in [c]Br01.ini[/c]:
[Settings] system = Br01 [Path] name = molleys, 7 pos = -71115, 0, 27545 pos = -52152, 0, 9177, return pos = -40132, 0, 12130, return pos = 7661, 0, 26736 pos = -9684, 0, 46240 tradelane_attack = 10 pos = -40162, 0, 12415 tradelane_attack = 10 sort = 99 toughness = 7 density = 3 ...
There’s a [c]readme.txt[/c] that describes the format; hopefully that’s sufficient documentation, along with the program’s own help.
Current limitations:
[olist]* it’s 2D - Y is ignored (could do with examples if this is desired);
- there’s no provision for individual trade lane rings having a different loadout;
- only writes to file (options for stdout or clipboard shouldn’t be a problem);
- it’s intended that a single file has a single system, but could add extra housekeeping if you’d like multiple systems in a single file.[/olist]
-
Great work Adoxa! It looks very promising!
A few questions though:
[olist]* First of all: how to even use this? When I double-click tracks.exe, it opens and closes within a tenth of the blink of an eye, where I had expected to be asked for a specific text file, or maybe a text interface, or otherwise a dialog to point to the proper directory.
-
Second: when you say that [c]lane_id[/c], [c]tradelane_down[/c] and [c]attack_ids[/c] are not used, do you mean not at all, not ever, in vanilla? Or, by tracks.exe (implying that one has to manually add these after the code is generated)?
-
Btw I presume (but never gave it much consideration actually) that [c]tradelane_attack =[/c] is a 1-divided-by-value (meaning that the smaller the number, the bigger the chance) rather than a percentage-ish-type value (meaning: the higher the value, the bigger the chance). Do you know how this is treated?
-
-
1. It’s a console program, so ideally you’d run it from Command Prompt. Running it from Explorer should display the help and wait for a key (it does for me on 7). Drop a file on it (say [c]tracks.ini[/c]), it’ll open & close, and you should end up with the output file ([c]tracks-fl.ini[/c]). … Ah, in testing on 10 I realized I forgot to mention that it expects Freelancer to be installed (I use its ini-reading code). If that’s not the case copy [c]common.dll dacom.dll dalib.dll zlib.dll[/c] to subdirectory [c]EXE[/c] (or point [c]HKLM\SOFTWARE\Wow6432Node\Microsoft\Microsoft Games\Freelancer\1.0\AppPath[/c] to where you installed FL).
2. Not at all - Freelancer does not read them (same with [c]difficulty_level[/c] and [c]pilot[/c] in [c][Object][/c]s).
3. I know it’s apparently treated as a percentage (the value is divided by 100), so presumably higher means more likely.
With regards my point 4: I need to do that anyway, as it should work with multiple files. And with point 3: I’ll test if output is redirected and send it there if so; piping to [c]clip[/c] will then put it on the clipboard.
-
I can only write a very short reply because my time is pressed!
adoxa wrote:
1. It’s a console program, so ideally you’d run it from Command Prompt. Running it from Explorer should display the help and wait for a key (it does for me on 7). Drop a file on it (say [c]tracks.ini[/c]), it’ll open & close, and you should end up with the output file ([c]tracks-fl.ini[/c]). … Ah, in testing on 10 I realized I forgot to mention that it expects Freelancer to be installed (I use its ini-reading code). If that’s not the case copy [c]common.dll dacom.dll dalib.dll zlib.dll[/c] to subdirectory [c]EXE[/c] (or point [c]HKLM\SOFTWARE\Wow6432Node\Microsoft\Microsoft Games\Freelancer\1.0\AppPath[/c] to where you installed FL).Hmm… I’d prefer to point it to my mod, instead of Freelancer directly, also because at some point I have multiple installations of Freelancer. (Btw I haven’t installed Freelancer from an installation disk for years, naybe well over a decade. So, how could there be a register entry for it?)
About tracks.exe: I imagine a GUI like your XML->UTF tool would be excellent: in XML->UTF the user can enter an input and an output folder (and it also helps with my, admittedly irrational, aversion against console programs). But I have no idea how this would complicate your task, and/or how much work that would be.
Gotta run!
-
A minor update is now available on my site: settings are reset for each file, but I’ve decided to leave them be within a file; redirected output is detected, writing there instead of to file; fixed the flashing window if the DLL couldn’t be loaded.
-
Dromedary wrote:
FL Explorer is the easiest way of doing paths. You just need to be very very careful when doing them, especially with path numbers which must be consecutive. There’s a lot of editing after doing them with Explorer. If you’re careful, no issuesBack in time when i’ve a done a mod, i used FL Explorer to do paths. It makes it much more easier, copy/paste the ini text generated in the actual system i wanted to edit.
Those paths, tricky as hell, isn’t it!