Ship visibility (Long range visibility)
-
You need to alter the LODRanges in the INI files for this, plus a few hex addresses if you really want to make them visible from far away.
250000f in freelancer.exe, 0x210534 = far plane of view frustum (nothing will be drawn beyond this)
0x210534 = 1.1
20000f in freelancer.exe, 0x1c8910 = max distance at which ships can be seen (even if lodranges specify a higher distance)
0x1c8910 = 1.1
6250000f in server.dll, 0x84adc = square of NPC disappear distance in MP
0x86aec = 1.1
25000000f in server.dll, 0x84ae0 = square of player disappear distance in MP
0x86af0 = 1.1
100000000f in server.dll, 0x84ae4 = square of grouped player disappear distance in MP
0x86af4 = 1.1
1775d in content.dll, 0x11ac80 = initial NPC max spawn distance in SP and MP (such as after respawn)
0x11bc80 = 1.1
2500d in content.dll, 0x11ac68 = NPC max spawn distance in SP and MP
0x11bc68 = 1.1
2500f in content.dll, 0xd3b06 = maximum distance that NPCs will persist in SP ~fox
0xd3c36 = 1.1
2500f in content.dll, 0xd3c3e = maximum distance that NPCs will persist in MP
0xd3d6e = 1.1Agreed, that’s a lot of hex addresses, but remember that if you want to get ships visible from afar you need to do two things:
-Make sure the ships are actually visible (ships have additional entries, see above)
-Make sure NPCs will spawn at that range (otherwise you would technically be able to see the NPCs, but they would never BE there)Hope this helps
-
shiparch.ini… example… osiris
nickname = or_osiris
LODranges = 0, 600, 800, 1000, 1500, 2000, 3000, 20000solararch.ini… example largestation1
nickname = largestation1
LODranges = 0, 2000, 3000, 4000, 7000, 40000note these are vanilla params… for custom ships and stations we normaly use
LODranges = 0, 9999
or for the big’ns
LODranges = 0, 99999
hope this helped
-
Specify all the parameters for the ships: 99999, 99999, 99999, 99999, 9999
-
Actually, you always need to put 0, XXX, XXX, etc. for every LODRange you have. For example, if you have five different LODs (Levels Of Detail) within your CMP/3DB file, then you need to put 0, XXX, XXX, XXX, XXX, XXX. Putting more LODRanges than you have usually only leads to problems.
Custom CMPs and 3DBs rarely have more than a single LOD; thus, you’d use 0, XXX.
-
Actually, you always need to put 0, XXX, XXX, etc. for every LODRange you have. For example, if you have five different LODs (Levels Of Detail) within your CMP/3DB file, then you need to put 0, XXX, XXX, XXX, XXX, XXX. Putting more LODRanges than you have usually only leads to problems.
Custom CMPs and 3DBs rarely have more than a single LOD; thus, you’d use 0, XXX.
Am I interpreting your quote correctly?
In the vanilla game, each ship has 3 layers if you will, that refer to how much detail of the ships you see at a set distance. This is the LOD, the Level of Detail. So in the ini reference to the LOD, you would have 3 sets of numbers after the “0,” reference, which is IYF. (In Your Face) Each Number after the 0, tell the game how much of the ship to show at set distances. The larger the number, the less detail you see. (Cuz it’s further away)
Now custom ships specific to our respective mods…they only have 1 layer to them, So we only need one number reference after the 0, declaration. 0, 9999 or 0, 99999 (when applicable) in our case is all we really need. I did some comparing in the utf editor of a vanilla Pirate VHF and one of my custom ships to come to this conclusion.
Do I understand you correctly?Fus
-
Yep, that’s it. Basically, your number of values in LODRanges should be one more than the number of LODs in your model, since 0 is always there by default.
Do make sure you only have one LOD in your model(s) before assuming it’s 0, 9999, though, otherwise you’re wasting the work of the modeler who added more LODs while not taking advantage of the boost in performance
-
Well, making ships and objects appear in certain distance is now clear, but how to make explosions, gun trails and missile trails appear at a certain range.
I want to make shootouts visible from far out and it has been done already but as far as I see until now none of those were willing to share this “secret”
So how to make it?
-
–------ Effects --------
6250000f in server.dll, 0x84adc = square of maximum effect draw distance (vis_beam) ~FriendlyFire
0x86aec = 1.1eft_explosion_large (limited duration):
100f in freelancer.exe, 0x212af0 - on-screen radius of effects, affects size-on-screen-based cutoff (make larger to increase cutoff range)
0x212af0 - 1.1
15f in freelancer.exe, 0x212af8 - max run time of effects
 0x212af8 - 1.1
100f in freelancer.exe, 0x212b00 - unknown, likely the first value of pbubble
0x212b00 - 1.1
500f in freelancer.exe, 0x212b04 - visual cutoff range of effects (second value of pbubble)
0x212b04 - 1.1eft_weapon_large_proj (infinite duration):
50f in freelancer.exe, 0x212c58 - on-screen radius of effects
 0x212c58 - 1.1
-1f in freelancer.exe, 0x212c60 - max run time of effects
 0x212c60 - 1.1
100f in freelancer.exe, 0x212c68 - unknown, likely the first value of pbubble
0x212c68 - 1.1
500f in freelancer.exe, 0x212c6c - visual cutoff range of effects (second value of pbubble)
0x212c6c - 1.1
15f in freelancer.exe, 0x213158 - on-screen radius of vis_beam effects
 0x213158 - 1.1
100f in freelancer.exe, 0x213168 - unknown, likely the first value of pbubble for vis_beam
0x213168 - 1.1
500f in freelancer.exe, 0x21316c - default vis_beam cutoff range (second value of pbubble for vis_beam)
0x21316c - 1.1eft_damage_large_smoke (infinite duration):
20f in freelancer.exe, 0x212de8 - on-screen radius of effects
 0x212de8 - 1.1
-1f in freelancer.exe, 0x212df0 - max run time of effects
 0x212df0 - 1.1
100f in freelancer.exe, 0x212df8 - unknown, likely the first value of pbubble
0x212df8 - 1.1
500f in freelancer.exe, 0x212dfc - visual cutoff range of effects (second value of pbubble)
0x212dfc - 1.1It’s all about the haxx0rs. Just remember that hacking these values circumvents the use of the effects_types.ini. And remember that with whatever value you replace in the effect types, change the corresponding effect you want to see in the effects.ini file.
eg.
[Effect]
nickname = ion-pulse_missile_impact
effect_type = EFT_EXPLOSION_SHIP;EFT_EXPLOSION_LARGE
snd_effect = asteroid_explosion
vis_effect = ion-pulse_missile_impact