Dev's Limit Breaking 101 Techniques
-
All right, I made the edits to freelancer.exe (changed 100000000f to 10000000000f)
and server.dll (changed 086AF0 from 25000000f to 2500000000f and 086AF4 from 100000000f to 10000000000f) which should make players visible out to 50k and groups out to 100k. And it does…But, even a player without the edits can now see anyone 50k away.
I have the following two scanners:
[Scanner]
nickname = ge_s_scanner_01
ids_name = 263750
ids_info = 264750
volume = 0
mass = 10
range = 2500
cargo_scan_range = 4000
lootable = false[Scanner]
nickname = ge_s_scanner_02
ids_name = 263751
ids_info = 264751
volume = 0
mass = 10
range = 50000
cargo_scan_range = 50000
lootable = falseThe ge_s_scanner_02 is intended for admin use, but even ge_s_scanner_01 can see a player out to 50k, they just can’t select the player.
Is there a way to make ONLY ge_s_scanner_02 have the increased range or is it an all or nothing deal.
-
Scanners do not affect player visibility.
-
What I’m trying to do is take the second scanner in the files and dedicate it for use by admins. I’d like it to have a range of at least 50k, but just changing the range of the scanner didn’t make it see any farther.
I thought the edits to freelancer.exe and server.dll would make it so that the scanner range could be increased and then the edits to the scanner would take advantage of that range increase.
I suppose I might expect the ge_s_scanner_01 to need an edit to reduce its range, but even though it’s significantly lower than scanner_02, it still sees the same distance, so reducing its scan range won’t help.
-
robo, did you read what I said? Player visibility ranges are universal, no matter what scanner you use or what’s the range given. As long as the player is within the range, he’ll be visible. Whether he is selectable depends on I think object visibility ranges, but again scanners do NOT affect players in any way.
-
Yeah, I read what you said, but due to its limited content I didn’t understand its meaning.
It looks to me like it’s a dirty fix, but it really doesn’t tell the player anything they wouldn’t see by looking at the chat list to see who’s in the system with them, so I guess it would work. They can’t select the person so they don’t really know where he or she is, they just know they’re in there somewhere.
-
Well, I know from SWWT that people would use the distance in the radar list to quickly home in. Just move by a few Ks and as long as your target is stationary and/or moving in a stable pattern you’ll know where to look for him. Sure, it’s not as easy as selecting the target and hitting F2, but you really shouldn’t assume that just because people can’t select a target, they can’t know where he is.
-
I can see that…
I don’t really like how it’s not working as intended. I don’t believe I’ll be incorporating it in the mod after all.Thanks for the advice and input.
-
Here’s a plugin to do what you want; install to dacomsrv.ini. If a player has ge_s_scanner_02, they will see other players at 50k and group members at 100k. Haven’t done any configuration, but search for the nickname and you’ll find the square of the distances before it. Let me know how configurable it should be…
-
Nice 1.
Any chance to get cloaked players @ that admin scanner? -
Awesome. And it works just as I had hoped.
Now, let’s say I wanted to increase the range of the scanner. Let’s say I wanted to be able to see where a player was in the system, no matter how far out. Is that possible?I see you (Adoxa) say to “search for the nickname and you’ll find the square of the distances before it.” Are you speaking of the plugin? I searched the plugin using tiny hexer but it didn’t come up with anything for ge_s_scanner_02.
edit: And that’s because I was doing it wrong… Now I find it and am experimenting with distances.
All hail Adoxa!
-
This is truly amazing, Adoxa.
I haven’t checked out the source just yet, but tell me: do you know whether this will be affected by interference values on zones? If so, it could add an entire new layer of gameplay to the game and make scout-type ships truly have a purpose.
-
I’m looking at cloak now, but I’m gonna have to stop and go to bed. Looks like cloak has to be done client-side, so if I find a solution, I’ll put it in the private section.
I didn’t include source this time (I was just going to attach, but decided to put it on my site, anyway), but all the plugin does is dynamically change the server offsets, so any interference will remain. Should be able to hook that too, although I’m not sure if it’ll be client or server.
I was almost going to make the ranges based on the scanner, but robocop wanted different values (range & cargo were both 50k, players at 50k, but groups at 100k). I could use range for player and cargo for group, or just add a ‘command line’ or ini setting. What about the scanner itself? Different values for different scanners?
-
The logical thing would be to make a multiplier, so that group range is X times player range, with X being a float. Could be per-scanner or global, depending on how hard it is to implement.
If I get it right, at the moment the plugin makes player/group ranges 50k/100k if you have ge_s_scanner_02 mounted and uses the default values otherwise?
-
actually, as i’m only planning on using it as an admin-only item, the group settings aren’t that important to me. I just knew they were typically twice that of the ungrouped player.
I set the plugin to detect at 500k atm. We’ll see how that works.
-
The setting has nothing to do with the scanner, so not only doesn’t it need to be mounted, it could be any piece of equipment. Or even a ship in general. And if you really want no range, I’ll do a different hack to bypass the test altogether.
Interference is client-side (at least as far as the Contact List goes). If that doesn’t bother you, let me know how you’d like it to work and I’ll whip something up.
Showing cloaked ships has been added to the private section.
-
Isn’t interference already just a multiplier of the scanner range? If the same behavior can be kept, it would be ideal.
-
As it works now, real_scanner_range = scanner_range * (1 - interference). For example, if scanner_range is 5000 and interference is 0.4, then real_scanner_range = 5000 * 0.6 = 3000. The way I was thinking was to add something like a sensitivity setting: real_scanner_range = scanner_range * (1 - interference * (1 - sensitivity)); thus a sensitivity of 1 (forced max value) sees through all interference. For example, if sensitivity = 0.3, then real_scanner_range = 5000 * (1 - 0.4 * 0.7) = 5000 * 0.72 = 3600; if sensitivity = 0.7, then real_scanner_range = 5000 * (1 - 0.4 * 0.3) = 5000 * 0.88 = 4400.
-
Thanks to the wonderful tutorial on this, I was already able to change quite some nice stuff in the mod. But now, when attempting to remove the cruise speed display limit of 300, I came across something strange.
Looking at the relevant part from the Limit Breaking 101 offsets file:
freelancer.exe 0D5936 0F85->90E9 = remove cruise speed display limit of 300 ~Unknown
Now, if I have a look at offset 0D5936, I see this:
(Decoding Hexadecimal)
byte = f signed byte = f word = 850f signed word = fff,850f double word = ff75,850f signed double word = ff75,850f quad = d8dd,ffff,ff75,850f float = -3.26351738686e+038 double = -1.21042962905e+120 word motorola = f85 double word motorola = f85,75ff quad motorola = f85,75ff,ffff,ddd8
Note that there is no ‘0F85’ in there to be found. There are a lot of similar values, but nothing identical. Changing any one of these ‘similar’ values causes the game to ctd as soon as I charge cruise engines, so obviously something’s wrong.
All other edits I did went fine and without any hitch.
I am doing exactly what the tutorial says, and tried it several times. Why can I not see ‘0F85’, like the tutorial and the offsets list describes? I’m obviously overlooking something here… Any help?