Dev's Limit Breaking 101 Techniques
-
viper wrote:
Thank you very very much adoxa I tried it long time but all I got was crash on unmount ^^ …Any hint how to disable unmounting of a single equipment piece
without client crash?ATM i m going to have a HP, which can’t be accessed
together with no good for the item, which shouldn’t
be traded or transfered to an other ship. -
0x75->0xEB in freelancer.exe, 0xB88A4, 0xB88A4 = disable "Select Ship" ship dealer button ~adoxa ```The button will still appear valid, but won't have any affect. I thought if there's no good, the equipment isn't listed? Doesn't that take care of everything? Assuming, of course, that it comes with the ship…
-
Viper… what are you doing? 8-)
Curiosity at full… im seriously interested in why you’d do that…
-
…@F!R
Isnt their a way to add item like engines to an ship but dont show it?
Why u dont use this way. The Item will be on the ship but its unmoutableThat’s the basic result, of what i described above
- but different from the engines, cause the item will just not show,
while you are docked.
Why i am not satisfied with that?
I 'd want to allow the player to mount other weapons on that 2 ship slots
(not wanting to add some slots 4 balance reasons) but i d not want the
players to collect 10 of those guns (by buying 5 of those ships) and
mount it on an other one (also 4 balance reasons).The 2 possible - not really - ‘sollutions’ i found:
– client crashes, when unmounting those babys cause of missing [good]
– weapons of ship can’t be changed - but different from the engines, cause the item will just not show,
-
@F!R
Ah ok whats about to make those guns to high level like 11, (dont know if its possible to make weaponslots with an level above 10) and only to slots of the ship to this level?@Xarian_Prime
I just want to prevent any changes on a char in some circumstances -
-
The market files contain what we all presumed to be the number of items in stock, but it was never honoured. Turns out if it’s not zero, it’s set to 0x7f000000. Here’s two hexedits to either set the explicit stock count, or honour the file setting.
0x7f000000 in freelancer.exe, 0x37ECF, 0x37ECF = number of items in stock ~adoxa 0xC74424440000007F->0x894424448D642400 in freelancer.exe, 0x37ECB, 0x37ECB = market files control items in stock ~adoxa ```Of course, since there's an instantaneous restock (launch, turn around, dock), it's more of a hassle than a real restriction.
-
viper wrote:
@F!R
Ah ok whats about to make those guns to high level like 11, (dont know if its possible to make weaponslots with an level above 10) and only to slots of the ship to this level? …AFAIK it will work, as if no level is set.
Maybe a job for adoxa to create a ‘only-pre-mounted-stuff’ Hp.
(So now it’s up from 2001 additional Hps to 2002.)
-
F!R wrote:
Any hint how to disable unmounting of a single equipment piece
without client crash?Give it a large volume. Mounted items don’t occupy any cargo space, but unmounted items do, so a mounted item that has a volume larger than the cargo hold cannot be unmounted. Don’t think that helps with transfer, though.
-
…. but unmounted items do…
Even mounted internal equipment does
- that’s how i tried to balance our capital reactors, armor etc.
before you came out with your Hp-hack.
…. that would have safed me a nice bunch of work …
- that’s how i tried to balance our capital reactors, armor etc.
-
-
True… @ F!R… I just finished phase 1 of intergrating the engines/power into X… might have saved you a ton of work… but it makes a ton more m8 especially when the ship-counts are high like in our mods…
and yes… a small side effect adoxa… but only a tiny one as long as all the ships are “leveled” it shouldn’t be a issue (trading powerplants between chars… ect…)
Oh and a final note here… when re-coding your mods to work with Adoxa’s engclass.dll… Don’t pull ye hair out when getting to your loadouts… the game don’t care what NPC mounts what ENG/PWR…
as they’ll never need to unmount and remount in space…That should save ye’s about a day or 2… just add the HP its attached to though… (just like a gun or shield) although i dont think that is even needed in the loadouts… but safe to have it there as Lancers-FLEC sees it as a loadout error if not there…
Hehe… anyone done all this and actually ran the FLEC… I have…
-
Depends what you’re trying to find. For example, the bat/bot HUD limit I found by simply searching for 000003E7 (999), plus knowing how it recognises bats & bots. Disabling buttons is also not that difficult, since button creation uses text strings as identifiers. So to disable the “Select Ship” button, I searched for the resource string (0000039A), which led me to the “ShipTraderBuyButton”, which is stored at offset “[esi+0380]”, so searching for “+0380]” takes me to “cmp edi, [esi+0380] / jne”. Change “jne” to “jmp” and bye-bye “Select Ship”. The same technique will work to disable any button.
-
0xC74424440000007F->0x8944248D642400 in freelancer.exe, 0x37ECB, 0x37ECB = market files control items in stock ~adoxa
This didn’t work for me - it just prevented any items from showing up at the commodity/equipment dealer. Here’s what worked for me:
C74424440000007F->0x8944244490909090 in freelancer.exe, 0x37ECB, 0x37ECB = market files control items in stock ```The value used is the second unknown value in the MarketGood entries, so the format is
MarketGood = , <required level=“”>, <required rep=“”>, <unknown>, <stock>, <sell>,</sell></stock></unknown></required></required>
-
Oops, I left out a byte; fixed the original post.
The unknown value looks to be the minimum in stock - retrieved by pub::Market::GetMinInventory as part of a function in content.dll. That function suggests a dynamic economy was planned, but not fully implemented.
For those unaware of it, bases also have a “price_variance = float” value as part of [BaseInfo]. It picks a random number between (1 - price_variance) and (1 + price_variance) to adjust the cost of each good (equipment and commodities).
That section also contains “ship_repair_cost = float” (default 0.33). This affects the repair value of the ship and its groups, but not equipment. The formula is: repair_cost = (1 - damage) * hit_pts * ship_repair_cost. Damage is the fractional health value (75/100 = 0.75).
-
That’s 100% correct. This price randomizer feature was something Cold Void came across a few years back and only seems to work in SP. I played around with this and it works wonderfully in SP but not in MP as it causes crashes. I wrote a little tutorial explaining the functions of this a while back as well but can’t find it on here so here it is again for those interested.
The example here is for the Battleship Missouri. You need to add the variance line to every base to see it work properly.
This code needs to go into you base ini files. DATA\UNIVERSE\SYSTEMS\LI01\BASES
[BaseInfo]
nickname = Li01_03_Base
start_room = Deck
price_variance = 0.001[Room]
nickname = Bar
file = Universe\Systems\Li01\Bases\Rooms\Li01_03_Bar.ini[Room]
nickname = Deck
file = Universe\Systems\Li01\Bases\Rooms\Li01_03_Deck.iniWhat this does is vary the prices of any commodity, weapon or ship sold on a base each time you land. The lowest number you can have is 0.001. I’ve been messing around using 0.1 giving varying prices of between 10 and 1000+ per item depending on initial commodity price. In mods that have high prices for items i’d keep the variance a lot lower.
While not a totally dynamic economy, as it is not dependant on other items being present to affect the price, as in say X3, it gives the impression of a working dynamic economy and is a vast improvement over the pricing structure in the original game.
Here are some number variables and their meaning
price_variance = 0.001 - gives a 0.1% difference in price
price_variance = 0.01 - gives a 1% difference in price (not the most realistic but no abuse)
price_variance = 0.1 - gives a 10% difference in price (most realistic and open to abuse)There is room for abuse by players here with people no doubt docking and undocking to try and get a better price so try to keep the variance number reasonably low. I personally wouldn’t use anything bigger than 0.01 (1%) but i will be experimenting with this to try different values.
-
… but not in MP as it causes crashes…
Can’t confirm, it causes crashes,
but player who sell or buy stuff on such a base,
will have a very high chance to get banned,
cause server + client won’t have the same price. -
d8aaf in content.dll v1.1 1400i - distance from the disrupted tlr that tradelaneattackers are created.
d3d93 in content.dll v1.1 4000f - distance from the last tradelane ring that patrol path npcs created when you enter tradelane will still exist.
A little explanation: once you enter tradelane freelancer immediately generates npcs in the zones that the last tradelane ring(of the direction you travel to) falls into or is within a 2000f( in content.dll v1.1 0xBB1DA) distance. They will persist until you leave tradelane.
If patrol_path encounters are generated further than 4000(if formations are edited for example), they will not exist until you change this offset.
set your scanner range and MP npc detection distance to 100k and you’ll see what I am talking about.11bb58 in content.dll v1.1 1200f - distance from the last tradelane ring that patrol path npcs are created. 2750 and more - no npcs are created
A request: there is a short period of time that npcs that are beyond max npc persistance range will still exist, looks like it’s 3 seconds, anybody could find it??