Jump to content

"All Items Can Be Sold" Modlet


Amineri

Recommended Posts

I've seen a few people around asking for this type of functionality, or something similar, so I finally got around to making a modlet that makes it happen.

 

This turned out to be a pretty straightforward hex change, although it requires some significant re-configuration of of the ItemBalance entries in the DGC.ini.

The mod allows the sale of any item in the game with the following exclusions:

  • Items with 0 or negative cash price. This includes the starter items, captives, and various other items. Basically if you can build it you can sell it.
  • Vehicles. SHIVs, Interceptors, Firestorms, and your Skyranger. There are dismiss buttons for these, except your Skyranger. I think selling your Skyranger could lead to problems....
  • The Skeleton Key item
  • Interception consumables ... the vanilla code had them in so I just left them in

 

The mod rescales prices so that the list prices for all items in the DGC.ini is the sale price. It does this by making the Cost to manufacture scale from the sale price to +100% of the sale price. This prevents the exploit of manufacturing items to sell on the gray market. Items are always sold at a loss, although with many, many engineers it is possible to come close to breaking even.

 

Note that if the DGC.ini item prices are not adjusted, this mod will double the price to manufacture all items. What the mod does is the following two things:

  1. Allow any non-vehicle item with a positive cash price in the DGC.ini to be sold (with exclusions as described above)
  2. Adjusts the Engineering price scaling function to scale costs to from 100% to 200% of the DGC.ini iCash value, based on number of Engineers. This was much much simpler than trying to alter the code in the gray market area.

Items that are not bought through Engineering should not be altered. This is basically just the regular Interceptor, I think.

 

Note that since Plasma weapons are really expensive, this makes capturing aliens to sell their weapon quite profitable. I'm not quite sure how this could be balanced out... maybe make them cheaper cash-wise but use more alloys/elerium? Not sure. If necessary I could put restrictions preventing the sale of plasma weapons on the gray market. Maybe there is some form of Arms Control oversight body that prevents XCOM from selling them? I know in the OG selling off extra weapons was a noticable source of income.

 

Here's the hex changes... both of them to XComStrategyGame >> XGItemTree :

 

 

 

XGItemTree.CanBeSold

original hex:
header:
DD 35 00 00 AB 1F 00 00 00 00 00 00 DA 35 00 00 00 00 00 00 00 00 00 00 DD 35 00 00 00 00 00 00 47 03 00 00 7F B8 00 00 0D 01 00 00 BD 00 00 00

body:
0F 00 DB 35 00 00 1B 09 15 00 00 00 00 00 00 00 DD 35 00 00 4A 16 07 8C 00 84 84 9A 35 B9 02 00 00 C8 02 00 00 00 00 00 DB 35 00 00 26 16 18 21 00 9A 35 B9 02 00 00 C8 02 00 00 00 00 00 DB 35 00 00 2C 02 16 16 18 21 00 9A 35 B9 02 00 00 C8 02 00 00 00 00 00 DB 35 00 00 2C 03 16 16 04 28 07 D4 00 84 84 84 9A 00 DD 35 00 00 2C C0 16 18 0E 00 9A 00 DD 35 00 00 2C 87 16 16 18 0E 00 9A 00 DD 35 00 00 2C 85 16 16 18 0E 00 9A 00 DD 35 00 00 2C 86 16 16 04 28 04 99 35 C4 02 00 00 C8 02 00 00 00 00 10 00 DD 35 00 00 01 66 35 00 00 1D 01 00 00 00 16 04 3A DC 35 00 00 53


new hex: (virtual 0xF1)
header:
DD 35 00 00 AB 1F 00 00 00 00 00 00 DA 35 00 00 00 00 00 00 00 00 00 00 DD 35 00 00 00 00 00 00 47 03 00 00 7F B8 00 00 F1 00 00 00 BD 00 00 00

body:
0F 00 DB 35 00 00 1B 09 15 00 00 00 00 00 00 00 DD 35 00 00 4A 16 07 42 00 82 99 00 DD 35 00 00 2C 66 16 18 0E 00 98 00 DD 35 00 00 2C 6C 16 16 04 28 07 8A 00 84 84 84 9A 00 DD 35 00 00 2C C0 16 18 0E 00 9A 00 DD 35 00 00 2C 87 16 16 18 0E 00 9A 00 DD 35 00 00 2C 85 16 16 18 0E 00 9A 00 DD 35 00 00 2C 86 16 16 04 28 04 99 35 C4 02 00 00 C8 02 00 00 00 00 10 00 DD 35 00 00 01 66 35 00 00 1D 01 00 00 00 16 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 04 3A DC 35 00 00 53


-----------------------------

XGItemTree.ScaleCost

original hex:
header:
9A 35 00 00 AB 1F 00 00 00 00 00 00 97 35 00 00 00 00 00 00 00 00 00 00 9A 35 00 00 00 00 00 00 2D 02 00 00 B0 97 00 00 4A 01 00 00 DA 00 00 00 

body:
07 28 00 9A 35 C0 02 00 00 C8 02 00 00 00 00 48 9A 35 00 00 1D FF FF FF FF 16 04 0B 0F 00 98 35 00 00 38 3F 19 1B 75 0B 00 00 00 00 00 00 16 0A 00 56 29 00 00 00 1B C1 0F 00 00 00 00 00 00 16 07 47 01 B3 00 98 35 00 00 38 3F 35 C0 02 00 00 C8 02 00 00 00 00 48 9A 35 00 00 16 0F 00 99 35 00 00 AC 38 3F 35 C0 02 00 00 C8 02 00 00 00 00 48 9A 35 00 00 00 98 35 00 00 16 0F 00 99 35 00 00 AB AE 00 99 35 00 00 38 3F 26 16 1E 00 00 00 3F 16 9F 35 C4 02 00 00 C8 02 00 00 00 01 48 9A 35 00 00 00 99 35 00 00 16 9F 35 C2 02 00 00 C8 02 00 00 00 01 48 9A 35 00 00 00 99 35 00 00 16 9F 35 C3 02 00 00 C8 02 00 00 00 01 48 9A 35 00 00 00 99 35 00 00 16 04 0B 53 


new hex: (virtual 0x146) (scale from +40% to +100% of sell price)
header:
9A 35 00 00 AB 1F 00 00 00 00 00 00 97 35 00 00 00 00 00 00 00 00 00 00 9A 35 00 00 00 00 00 00 2D 02 00 00 B0 97 00 00 46 01 00 00 DA 00 00 00 

body:
07 28 00 9A 35 C0 02 00 00 C8 02 00 00 00 00 48 9A 35 00 00 1D FF FF FF FF 16 04 0B 0F 00 98 35 00 00 38 3F 19 1B 75 0B 00 00 00 00 00 00 16 0A 00 56 29 00 00 00 1B C1 0F 00 00 00 00 00 00 16 07 43 01 B3 00 98 35 00 00 38 3F 35 C0 02 00 00 C8 02 00 00 00 00 48 9A 35 00 00 16 0F 00 99 35 00 00 AB 1E 9A 99 19 3F AC 38 3F 35 C0 02 00 00 C8 02 00 00 00 00 48 9A 35 00 00 00 98 35 00 00 16 16 B8 00 99 35 00 00 1E 33 33 B3 3F 16 0B 0B 0B 0B 9F 35 C4 02 00 00 C8 02 00 00 00 01 48 9A 35 00 00 00 99 35 00 00 16 9F 35 C2 02 00 00 C8 02 00 00 00 01 48 9A 35 00 00 00 99 35 00 00 16 9F 35 C3 02 00 00 C8 02 00 00 00 01 48 9A 35 00 00 00 99 35 00 00 16 04 0B 53 

new hex: (virtual 0x146) (scale from +0% to +100% of sell price)
header:
9A 35 00 00 AB 1F 00 00 00 00 00 00 97 35 00 00 00 00 00 00 00 00 00 00 9A 35 00 00 00 00 00 00 2D 02 00 00 B0 97 00 00 46 01 00 00 DA 00 00 00 

body:
07 28 00 9A 35 C0 02 00 00 C8 02 00 00 00 00 48 9A 35 00 00 1D FF FF FF FF 16 04 0B 0F 00 98 35 00 00 38 3F 19 1B 75 0B 00 00 00 00 00 00 16 0A 00 56 29 00 00 00 1B C1 0F 00 00 00 00 00 00 16 07 43 01 B3 00 98 35 00 00 38 3F 35 C0 02 00 00 C8 02 00 00 00 00 48 9A 35 00 00 16 0F 00 99 35 00 00 AB 1E 00 00 80 3F AC 38 3F 35 C0 02 00 00 C8 02 00 00 00 00 48 9A 35 00 00 00 98 35 00 00 16 16 B8 00 99 35 00 00 1E 00 00 80 3F 16 0B 0B 0B 0B 9F 35 C4 02 00 00 C8 02 00 00 00 01 48 9A 35 00 00 00 99 35 00 00 16 9F 35 C2 02 00 00 C8 02 00 00 00 01 48 9A 35 00 00 00 99 35 00 00 16 9F 35 C3 02 00 00 C8 02 00 00 00 01 48 9A 35 00 00 00 99 35 00 00 16 04 0B 53 

 

 

 

I included two versions. One that scales from +0% to +100%, like in vanilla, and one that scales from +40% to +100%, which makes Engineers a little less effective and items generally a little more expensive. At best the item can be sold for a noticable loss.

 

 

------------------------------

 

My intention when making this mod was to make the early item choices a bit more attractive. As it is you spend resources on building items like laser rifles, nanofiber vests, carapace armor, etc. Eventually your tech moves on to better gear, which is needed in order to survive the later tougher aliens.

 

This creates a tendency (even in me!) to not want to "waste" resources on those early items so that more can be spent on later items. With this mod at least some of the cash spent on creating items can later be recovered by selling the items on the gray market (for those items that don't end up with FC Requests).

 

I'll be interested to see what people do with it, though ...

Link to comment
Share on other sites

NOTE :

 

I just thought of something quite critical.

 

The above mod will only work if some of the changes in the "New Item Mod" are also added. Specifically, the changes to the claim system have to be included.

 

------

 

This is because the old system kept equipped items marked in storage, but checked them off against a 'claimed item' array. This will allow items that are currently equipped to soldiers to be sold in the gray market, and the items will continue to be usable by the soldier. Once the item is released, the item will not be able to be re-equipped unless there are sufficient items remaining.

 

The new system in the "New Item Mod" removes the claim array and simply removes claimed items from storage. This prevents items which soldiers have equipped from being sold in the Gray Market.

 

The general "new item mod" is here : http://wiki.tesnexus.com/index.php/Additional_Items_Mod_XCOM:EU_-_2012 -- It's still somewhat of a WIP overall.

 

The particular part that has to be installed for this to work is : http://wiki.tesnexus.com/index.php/Claim_and_Perk_File_Changes_Additional_Items_Mod_XCOM:EU_-_2012

 

The hex changes 1 - 4 should be installed if working with a vanilla game. (Change 5 assumes some other changes made to the BuildItems function, and is used to set the perk that a given item will grant the soldier upon claiming).

These changes will alter the claim system but not enable the "perk-granting item" feature -- that requires additional hex changes.

Link to comment
Share on other sites

A somewhat semi-related question, just out of curiosity...

 

Do you think it is possible in a future mod to limit engineers to respect some basic principles?

* Building different items in parallell is not faster.

* Building multiple copies of an item takes longer time than building a single one.

* More engineers can build faster than few (I think that one is already in there for some items, or is it only cost reduction?).

 

A crude, probably not so fun, way to achive this would be to basically disable the build queue while something else than buildings is already in there and lock the number of units to build to 1.

 

In addition it would also be necessary to modify and re-balance all build times.

Edited by Bertilsson
Link to comment
Share on other sites

As I recall, Apocalypse had this sort of idea in mind. Each item took a number of "engineer-hours" to complete. Each item could only be assigned to be built in one workshop. Each workshop had a limit to the number of Engineers assigned (I think 10 for normal and 20 for the large one later unlockable). Each workshop had its own build queue of items (multiples of the same item were queue one at a time).

 

While a decent model it added a fair bit of micromanagement which has been streamlined away in the curren version. Engineers provide a completely different benefit (required number to build, reduction in cash / alloy / elerium costs).

 

I think that in general there really should be some sort of limit placed on the number of engineers that can build an item. "Nine women can't make a baby in a month". However, the current interface really doesn't allow this at all. There are some remnant clues that the engineer build system used to be different (a note about item-building stalling because of lack of engineers).

 

I think that it used to be that the number of engineers was how many would be assigned from the pool to work on item / foundry project being built. They would then take the specified amount of time. The limit on the number of projects was the number of engineers you had, plus how many engineers each of those projects required. I'm not sure if this system. I'm referencing this line of localization text:

 

 

m_strNoteBuildStalled="Item manufacturing is currently stalled, as there are no engineers available to work on new items."

 

It might be possible to re-build this functionality, but I feel like some thought is in order as to how it should work before I dive into the code.

Link to comment
Share on other sites

So based on some feedback I'm making some changes to this mod.

 

Adding one additional hex change to XGItemTree.GetItemSellPrice.

 

This allows for installation of the mod without making any changes to the DGC.ini BalanceItem entries.

 

Item manufacture prices are scaled to 50% to 100% of the DGC iCash values (or 70% to 100% if preferred), consistent with the vanilla setting.

 

Manufactured items (items with iTime != -1) can be sold for 50% of the DGC iCash value (so always less than manufactured).

 

Collected artifacts (items with iTime == -1) are sold for 100% of the DGC iCash value (consistent with the vanilla DGC values and the vanilla code for the gray market)

 

Collectable plasma weapons have a special exception that allows for a further reduction in sale price for these items. Default is set to 50% (so total 25% of DGC iCash value).

 

-----------------

 

New hex code:

 

 

All Items Sellable Hex

---------------------------------------------------


XGItemTree.ScaleCost

original hex:
header:
9A 35 00 00 AB 1F 00 00 00 00 00 00 97 35 00 00 00 00 00 00 00 00 00 00 9A 35 00 00 00 00 00 00 2D 02 00 00 B0 97 00 00 4A 01 00 00 DA 00 00 00 

body:
07 28 00 9A 35 C0 02 00 00 C8 02 00 00 00 00 48 9A 35 00 00 1D FF FF FF FF 16 04 0B 0F 00 98 35 00 00 38 3F 19 1B 75 0B 00 00 00 00 00 00 16 0A 00 56 29 00 00 00 1B C1 0F 00 00 00 00 00 00 16 07 47 01 B3 00 98 35 00 00 38 3F 35 C0 02 00 00 C8 02 00 00 00 00 48 9A 35 00 00 16 0F 00 99 35 00 00 AC 38 3F 35 C0 02 00 00 C8 02 00 00 00 00 48 9A 35 00 00 00 98 35 00 00 16 0F 00 99 35 00 00 AB AE 00 99 35 00 00 38 3F 26 16 1E 00 00 00 3F 16 9F 35 C4 02 00 00 C8 02 00 00 00 01 48 9A 35 00 00 00 99 35 00 00 16 9F 35 C2 02 00 00 C8 02 00 00 00 01 48 9A 35 00 00 00 99 35 00 00 16 9F 35 C3 02 00 00 C8 02 00 00 00 01 48 9A 35 00 00 00 99 35 00 00 16 04 0B 53 


new hex: (virtual 0x146) (scale from 70% to 100% of DGC iCash field)
header:
9A 35 00 00 AB 1F 00 00 00 00 00 00 97 35 00 00 00 00 00 00 00 00 00 00 9A 35 00 00 00 00 00 00 2D 02 00 00 B0 97 00 00 46 01 00 00 DA 00 00 00 

body:
07 28 00 9A 35 C0 02 00 00 C8 02 00 00 00 00 48 9A 35 00 00 1D FF FF FF FF 16 04 0B 0F 00 98 35 00 00 38 3F 19 1B 75 0B 00 00 00 00 00 00 16 0A 00 56 29 00 00 00 1B C1 0F 00 00 00 00 00 00 16 07 43 01 B3 00 98 35 00 00 38 3F 35 C0 02 00 00 C8 02 00 00 00 00 48 9A 35 00 00 16 0F 00 99 35 00 00 AB 1E 9A 99 99 3E AC 38 3F 35 C0 02 00 00 C8 02 00 00 00 00 48 9A 35 00 00 00 98 35 00 00 16 16 B8 00 99 35 00 00 1E 34 33 33 3F 16 0B 0B 0B 0B 9F 35 C4 02 00 00 C8 02 00 00 00 01 48 9A 35 00 00 00 99 35 00 00 16 9F 35 C2 02 00 00 C8 02 00 00 00 01 48 9A 35 00 00 00 99 35 00 00 16 9F 35 C3 02 00 00 C8 02 00 00 00 01 48 9A 35 00 00 00 99 35 00 00 16 04 0B 53 


new hex: (virtual 0x146) (scale from 50% to 100% of DGC iCash field)
header:
9A 35 00 00 AB 1F 00 00 00 00 00 00 97 35 00 00 00 00 00 00 00 00 00 00 9A 35 00 00 00 00 00 00 2D 02 00 00 B0 97 00 00 46 01 00 00 DA 00 00 00 

body:
07 28 00 9A 35 C0 02 00 00 C8 02 00 00 00 00 48 9A 35 00 00 1D FF FF FF FF 16 04 0B 0F 00 98 35 00 00 38 3F 19 1B 75 0B 00 00 00 00 00 00 16 0A 00 56 29 00 00 00 1B C1 0F 00 00 00 00 00 00 16 07 43 01 B3 00 98 35 00 00 38 3F 35 C0 02 00 00 C8 02 00 00 00 00 48 9A 35 00 00 16 0F 00 99 35 00 00 AB 1E 00 00 00 3F AC 38 3F 35 C0 02 00 00 C8 02 00 00 00 00 48 9A 35 00 00 00 98 35 00 00 16 16 B8 00 99 35 00 00 1E 00 00 00 3F 16 0B 0B 0B 0B 9F 35 C4 02 00 00 C8 02 00 00 00 01 48 9A 35 00 00 00 99 35 00 00 16 9F 35 C2 02 00 00 C8 02 00 00 00 01 48 9A 35 00 00 00 99 35 00 00 16 9F 35 C3 02 00 00 C8 02 00 00 00 01 48 9A 35 00 00 00 99 35 00 00 16 04 0B 53 


-----------------------------------------------------


XGItemTree.GetItemSellPrice

original hex:
header:
E4 35 00 00 AB 1F 00 00 00 00 00 00 E1 35 00 00 00 00 00 00 00 00 00 00 E4 35 00 00 00 00 00 00 64 03 00 00 02 BD 00 00 DA 00 00 00 96 00 00 00 

body:
07 5B 00 9A 35 C1 02 00 00 C8 02 00 00 00 00 10 38 3A 00 E4 35 00 00 01 66 35 00 00 1D FF FF FF FF 16 04 35 C4 02 00 00 C8 02 00 00 00 00 10 38 3A 00 E4 35 00 00 01 66 35 00 00 07 7D 00 9A 38 3A 00 E4 35 00 00 38 3A 24 AC 16 04 1B 7F 0E 00 00 00 00 00 00 16 06 93 00 07 93 00 9A 38 3A 00 E4 35 00 00 38 3A 24 69 16 04 25 0F 00 E2 35 00 00 35 C4 02 00 00 C8 02 00 00 00 00 10 38 3A 00 E4 35 00 00 01 66 35 00 00 04 00 E2 35 00 00 04 3A E3 35 00 00 53 

original hex: (virtual 0xD6)
header:
E4 35 00 00 AB 1F 00 00 00 00 00 00 E1 35 00 00 00 00 00 00 00 00 00 00 E4 35 00 00 00 00 00 00 64 03 00 00 02 BD 00 00 D6 00 00 00 96 00 00 00 

body:
0F 00 E2 35 00 00 35 C4 02 00 00 C8 02 00 00 00 00 10 38 3A 00 E4 35 00 00 01 66 35 00 00 07 74 00 9B 35 C1 02 00 00 C8 02 00 00 00 00 10 38 3A 00 E4 35 00 00 01 66 35 00 00 1D FF FF FF FF 16 9F 00 E2 35 00 00 1E 00 00 00 3F 16 07 BE 00 84 82 99 38 3A 00 E4 35 00 00 2C 0D 16 18 10 00 98 38 3A 00 E4 35 00 00 2C 0F 16 16 18 10 00 9A 38 3A 00 E4 35 00 00 2C 11 16 16 9F 00 E2 35 00 00 1E 00 00 00 3F 16 04 00 E2 35 00 00 0B 0B 0B 04 3A E3 35 00 00 53 

--------------------------------

XGItemTree.CanBeSold

original hex:
header:
DD 35 00 00 AB 1F 00 00 00 00 00 00 DA 35 00 00 00 00 00 00 00 00 00 00 DD 35 00 00 00 00 00 00 47 03 00 00 7F B8 00 00 0D 01 00 00 BD 00 00 00 

body:
0F 00 DB 35 00 00 1B 09 15 00 00 00 00 00 00 00 DD 35 00 00 4A 16 07 8C 00 84 84 9A 35 B9 02 00 00 C8 02 00 00 00 00 00 DB 35 00 00 26 16 18 21 00 9A 35 B9 02 00 00 C8 02 00 00 00 00 00 DB 35 00 00 2C 02 16 16 18 21 00 9A 35 B9 02 00 00 C8 02 00 00 00 00 00 DB 35 00 00 2C 03 16 16 04 28 07 D4 00 84 84 84 9A 00 DD 35 00 00 2C C0 16 18 0E 00 9A 00 DD 35 00 00 2C 87 16 16 18 0E 00 9A 00 DD 35 00 00 2C 85 16 16 18 0E 00 9A 00 DD 35 00 00 2C 86 16 16 04 28 04 99 35 C4 02 00 00 C8 02 00 00 00 00 10 00 DD 35 00 00 01 66 35 00 00 1D 01 00 00 00 16 04 3A DC 35 00 00 53 


new hex: (virtual 0xF1)
header:
DD 35 00 00 AB 1F 00 00 00 00 00 00 DA 35 00 00 00 00 00 00 00 00 00 00 DD 35 00 00 00 00 00 00 47 03 00 00 7F B8 00 00 F1 00 00 00 BD 00 00 00 

body:
0F 00 DB 35 00 00 1B 09 15 00 00 00 00 00 00 00 DD 35 00 00 4A 16 07 42 00 82 99 00 DD 35 00 00 2C 66 16 18 0E 00 98 00 DD 35 00 00 2C 6C 16 16 04 28 07 8A 00 84 84 84 9A 00 DD 35 00 00 2C C0 16 18 0E 00 9A 00 DD 35 00 00 2C 87 16 16 18 0E 00 9A 00 DD 35 00 00 2C 85 16 16 18 0E 00 9A 00 DD 35 00 00 2C 86 16 16 04 28 04 99 35 C4 02 00 00 C8 02 00 00 00 00 10 00 DD 35 00 00 01 66 35 00 00 1D 01 00 00 00 16 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 04 3A DC 35 00 00 53  

 

 

 

Decompiled functions :

 

XGItemTree.CanBeSold:

 

 

function bool CanBeSold(int iItem)
{
    local TItem kItem;

    kItem = Item(iItem);
    if((iItem >= 102) && iItem <= 108)
    {
        return false;
    }
    if((((iItem == 192) || iItem == 135) || iItem == 133) || iItem == 134)
    {
        return false;
    }
    return m_arrItems[iItem].iCash >= 1;       
    //return ReturnValue;    
}

 

 

 

 

XGItemTree.ScaleCost:

 

 

function ScaleCost(out TItem kItem)
{
    local float fScale, fEngineers;

    if(kItem.iMaxEngineers == -1)
    {
        return;
    }
    fEngineers = float(ENGINEERING().GetNumEngineersAvailable());
    if(fEngineers >= float(kItem.iMaxEngineers))
    {
        fScale = 0.50 * (float(kItem.iMaxEngineers) / fEngineers);
        fScale += 0.50;                                
        kItem.iCash *= fScale;
        kItem.iAlloy *= fScale;
        kItem.iElerium *= fScale;
    }
    //return;    
}

 

 

 

 

XGItemTree.GetItemSalePrice:

 

 

function int GetItemSalePrice(XComGame.XGGameData.EItemType eItem)
{
    local int iManufactureCost;

    iManufactureCost = m_arrItems[eItem].iCash;
    if(m_arrItems[eItem].iHours != -1)
    {
        iManufactureCost *= 0.50;
    }
    if(((eItem >= 13) && eItem <= 15) || eItem == 17)
    {
        iManufactureCost *= 0.50;
    }
    return iManufactureCost;            
    //return ReturnValue;    
}

 

 

Link to comment
Share on other sites

  • 2 weeks later...

So, there is a slight glitch in the game in that the UpdateList() call doesn't get made except during Init (so when loading a game or returning from a tactical mission) and after an item is sold.

 

Manufacturing new items and unequipping items doesn't update the list. So, immediately after manufacturing an item, it will not appear in the Gray Market list. Likewise, if all items of a type are equipped to soldiers when the game is loaded (or when returning from a mission), then the item will not appear in the gray market item list.

 

Workarounds:

1) Save and reload the game to refresh the list

2) Sell a single item (e.g. sectoid corpse, weapon fragment)

 

I'll work on adding some additional calls to UpdateList() so that it refreshes the list more frequently.

 

-------------------------

 

Poking around at grey market stuff, I discovered that there is a 5th option at least partially coded into the Engineering Build UI

 

In XGEngineeringUI.UpdateMainMenu is the code that builds the Build Item / Build Facility / Foundry options :

    if(Game().m_bDebugStart || ENGINEERING().m_bCanBuildItems)
    {
        m_arrMenuOptions.AddItem(1);
    }
    if(Game().m_bDebugStart || ENGINEERING().m_bCanBuildFacilities)
    {
        m_arrMenuOptions.AddItem(2);
    }
    if(HQ().HasFacility(11))
    {
        m_arrMenuOptions.AddItem(4);
    }

Build Items is option 1

Build Facilities is option 2

Foundry is option 4

 

However, later on in the option scanning portion is the code:

            if(m_arrMenuOptions[iMenuOption] == 5)
            {
                kOption.strText = m_strOptGreyMarket;
                kOption.iState = 0;
                kOption.strHelp = m_strHelpGreyMarket;
            }

This is an 5th option (and I have no idea what option 3 was supposed to be)

 

The localization text for these two strings is still in the game:

 

m_strOptGreyMarket=Visit the Gray Market

m_strHelpGreyMarket=Sell surplus items to the Council Countries

 

Am digging into adding the Gray Market back in to the Engineering Build UI, just so there is a second place to access it from.

 

Will post more as I get the details figured out.

Link to comment
Share on other sites

Here is version 2 of the modlet.

 

  1. Fixes issue where newly built or newly unequipped items do not show up in Gray Market
  2. Adds access to Gray Market from Engineering Main Menu -- Gray Market can be accessed through either Engineering or the Situation Room

 

Here is the complete set of hex changes to implement the modlet :

 

 

 

All Items Sellable Hex

---------------------------------------------------


XGItemTree.ScaleCost

original hex:
header:
9A 35 00 00 AB 1F 00 00 00 00 00 00 97 35 00 00 00 00 00 00 00 00 00 00 9A 35 00 00 00 00 00 00 2D 02 00 00 B0 97 00 00 4A 01 00 00 DA 00 00 00 

body:
07 28 00 9A 35 C0 02 00 00 C8 02 00 00 00 00 48 9A 35 00 00 1D FF FF FF FF 16 04 0B 0F 00 98 35 00 00 38 3F 19 1B 75 0B 00 00 00 00 00 00 16 0A 00 56 29 00 00 00 1B C1 0F 00 00 00 00 00 00 16 07 47 01 B3 00 98 35 00 00 38 3F 35 C0 02 00 00 C8 02 00 00 00 00 48 9A 35 00 00 16 0F 00 99 35 00 00 AC 38 3F 35 C0 02 00 00 C8 02 00 00 00 00 48 9A 35 00 00 00 98 35 00 00 16 0F 00 99 35 00 00 AB AE 00 99 35 00 00 38 3F 26 16 1E 00 00 00 3F 16 9F 35 C4 02 00 00 C8 02 00 00 00 01 48 9A 35 00 00 00 99 35 00 00 16 9F 35 C2 02 00 00 C8 02 00 00 00 01 48 9A 35 00 00 00 99 35 00 00 16 9F 35 C3 02 00 00 C8 02 00 00 00 01 48 9A 35 00 00 00 99 35 00 00 16 04 0B 53 



Long War 1.9 beta hex:
header:
9A 35 00 00 AB 1F 00 00 00 00 00 00 97 35 00 00 00 00 00 00 00 00 00 00 9A 35 00 00 00 00 00 00 2D 02 00 00 B0 97 00 00 4A 01 00 00 DA 00 00 00 

body:
07 28 00 9A 35 C0 02 00 00 C8 02 00 00 00 00 48 9A 35 00 00 1D FF FF FF FF 16 04 0B 0F 00 98 35 00 00 38 3F 19 1B 75 0B 00 00 00 00 00 00 16 0A 00 56 29 00 00 00 1B C1 0F 00 00 00 00 00 00 16 07 47 01 B3 00 98 35 00 00 38 3F 35 C0 02 00 00 C8 02 00 00 00 00 48 9A 35 00 00 16 0F 00 99 35 00 00 AC 38 3F 35 C0 02 00 00 C8 02 00 00 00 00 48 9A 35 00 00 00 98 35 00 00 16 0F 00 99 35 00 00 AB AE 00 99 35 00 00 38 3F 26 16 1E 1F 85 32 3F 16 9F 35 C4 02 00 00 C8 02 00 00 00 01 48 9A 35 00 00 00 99 35 00 00 16 9F 35 C2 02 00 00 C8 02 00 00 00 01 48 9A 35 00 00 00 99 35 00 00 16 9F 35 C3 02 00 00 C8 02 00 00 00 01 48 9A 35 00 00 00 99 35 00 00 16 04 0B 53 

new hex: (virtual 0x146) (scale from 70% to 100% of DGC iCash field)
header:
9A 35 00 00 AB 1F 00 00 00 00 00 00 97 35 00 00 00 00 00 00 00 00 00 00 9A 35 00 00 00 00 00 00 2D 02 00 00 B0 97 00 00 46 01 00 00 DA 00 00 00 

body:
07 28 00 9A 35 C0 02 00 00 C8 02 00 00 00 00 48 9A 35 00 00 1D FF FF FF FF 16 04 0B 0F 00 98 35 00 00 38 3F 19 1B 75 0B 00 00 00 00 00 00 16 0A 00 56 29 00 00 00 1B C1 0F 00 00 00 00 00 00 16 07 43 01 B3 00 98 35 00 00 38 3F 35 C0 02 00 00 C8 02 00 00 00 00 48 9A 35 00 00 16 0F 00 99 35 00 00 AB 1E 9A 99 99 3E AC 38 3F 35 C0 02 00 00 C8 02 00 00 00 00 48 9A 35 00 00 00 98 35 00 00 16 16 B8 00 99 35 00 00 1E 34 33 33 3F 16 0B 0B 0B 0B 9F 35 C4 02 00 00 C8 02 00 00 00 01 48 9A 35 00 00 00 99 35 00 00 16 9F 35 C2 02 00 00 C8 02 00 00 00 01 48 9A 35 00 00 00 99 35 00 00 16 9F 35 C3 02 00 00 C8 02 00 00 00 01 48 9A 35 00 00 00 99 35 00 00 16 04 0B 53 


new hex: (virtual 0x146) (scale from 50% to 100% of DGC iCash field)
header:
9A 35 00 00 AB 1F 00 00 00 00 00 00 97 35 00 00 00 00 00 00 00 00 00 00 9A 35 00 00 00 00 00 00 2D 02 00 00 B0 97 00 00 46 01 00 00 DA 00 00 00 

body:
07 28 00 9A 35 C0 02 00 00 C8 02 00 00 00 00 48 9A 35 00 00 1D FF FF FF FF 16 04 0B 0F 00 98 35 00 00 38 3F 19 1B 75 0B 00 00 00 00 00 00 16 0A 00 56 29 00 00 00 1B C1 0F 00 00 00 00 00 00 16 07 43 01 B3 00 98 35 00 00 38 3F 35 C0 02 00 00 C8 02 00 00 00 00 48 9A 35 00 00 16 0F 00 99 35 00 00 AB 1E 00 00 00 3F AC 38 3F 35 C0 02 00 00 C8 02 00 00 00 00 48 9A 35 00 00 00 98 35 00 00 16 16 B8 00 99 35 00 00 1E 00 00 00 3F 16 0B 0B 0B 0B 9F 35 C4 02 00 00 C8 02 00 00 00 01 48 9A 35 00 00 00 99 35 00 00 16 9F 35 C2 02 00 00 C8 02 00 00 00 01 48 9A 35 00 00 00 99 35 00 00 16 9F 35 C3 02 00 00 C8 02 00 00 00 01 48 9A 35 00 00 00 99 35 00 00 16 04 0B 53 


-----------------------------------------------------


XGItemTree.GetItemSellPrice

original hex:
header:
E4 35 00 00 AB 1F 00 00 00 00 00 00 E1 35 00 00 00 00 00 00 00 00 00 00 E4 35 00 00 00 00 00 00 64 03 00 00 02 BD 00 00 DA 00 00 00 96 00 00 00 

body:
07 5B 00 9A 35 C1 02 00 00 C8 02 00 00 00 00 10 38 3A 00 E4 35 00 00 01 66 35 00 00 1D FF FF FF FF 16 04 35 C4 02 00 00 C8 02 00 00 00 00 10 38 3A 00 E4 35 00 00 01 66 35 00 00 07 7D 00 9A 38 3A 00 E4 35 00 00 38 3A 24 AC 16 04 1B 7F 0E 00 00 00 00 00 00 16 06 93 00 07 93 00 9A 38 3A 00 E4 35 00 00 38 3A 24 69 16 04 25 0F 00 E2 35 00 00 35 C4 02 00 00 C8 02 00 00 00 00 10 38 3A 00 E4 35 00 00 01 66 35 00 00 04 00 E2 35 00 00 04 3A E3 35 00 00 53 

original hex: (virtual 0xD6)
header:
E4 35 00 00 AB 1F 00 00 00 00 00 00 E1 35 00 00 00 00 00 00 00 00 00 00 E4 35 00 00 00 00 00 00 64 03 00 00 02 BD 00 00 D6 00 00 00 96 00 00 00 

body:
0F 00 E2 35 00 00 35 C4 02 00 00 C8 02 00 00 00 00 10 38 3A 00 E4 35 00 00 01 66 35 00 00 07 74 00 9B 35 C1 02 00 00 C8 02 00 00 00 00 10 38 3A 00 E4 35 00 00 01 66 35 00 00 1D FF FF FF FF 16 9F 00 E2 35 00 00 1E 00 00 00 3F 16 07 BE 00 84 82 99 38 3A 00 E4 35 00 00 2C 0D 16 18 10 00 98 38 3A 00 E4 35 00 00 2C 0F 16 16 18 10 00 9A 38 3A 00 E4 35 00 00 2C 11 16 16 9F 00 E2 35 00 00 1E 00 00 00 3F 16 04 00 E2 35 00 00 0B 0B 0B 04 3A E3 35 00 00 53 

--------------------------------

XGItemTree.CanBeSold

original hex:
header:
DD 35 00 00 AB 1F 00 00 00 00 00 00 DA 35 00 00 00 00 00 00 00 00 00 00 DD 35 00 00 00 00 00 00 47 03 00 00 7F B8 00 00 0D 01 00 00 BD 00 00 00 

body:
0F 00 DB 35 00 00 1B 09 15 00 00 00 00 00 00 00 DD 35 00 00 4A 16 07 8C 00 84 84 9A 35 B9 02 00 00 C8 02 00 00 00 00 00 DB 35 00 00 26 16 18 21 00 9A 35 B9 02 00 00 C8 02 00 00 00 00 00 DB 35 00 00 2C 02 16 16 18 21 00 9A 35 B9 02 00 00 C8 02 00 00 00 00 00 DB 35 00 00 2C 03 16 16 04 28 07 D4 00 84 84 84 9A 00 DD 35 00 00 2C C0 16 18 0E 00 9A 00 DD 35 00 00 2C 87 16 16 18 0E 00 9A 00 DD 35 00 00 2C 85 16 16 18 0E 00 9A 00 DD 35 00 00 2C 86 16 16 04 28 04 99 35 C4 02 00 00 C8 02 00 00 00 00 10 00 DD 35 00 00 01 66 35 00 00 1D 01 00 00 00 16 04 3A DC 35 00 00 53 


new hex: (virtual 0xF1)
header:
DD 35 00 00 AB 1F 00 00 00 00 00 00 DA 35 00 00 00 00 00 00 00 00 00 00 DD 35 00 00 00 00 00 00 47 03 00 00 7F B8 00 00 F1 00 00 00 BD 00 00 00 

body:
0F 00 DB 35 00 00 1B 09 15 00 00 00 00 00 00 00 DD 35 00 00 4A 16 07 42 00 82 99 00 DD 35 00 00 2C 66 16 18 0E 00 98 00 DD 35 00 00 2C 6C 16 16 04 28 07 8A 00 84 84 84 9A 00 DD 35 00 00 2C C0 16 18 0E 00 9A 00 DD 35 00 00 2C 87 16 16 18 0E 00 9A 00 DD 35 00 00 2C 85 16 16 18 0E 00 9A 00 DD 35 00 00 2C 86 16 16 04 28 04 99 35 C4 02 00 00 C8 02 00 00 00 00 10 00 DD 35 00 00 01 66 35 00 00 1D 01 00 00 00 16 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 04 3A DC 35 00 00 53 


-------------------------------------

UIGreyMarket.OnReceiveFocus to re-build item list and reset view to 0

original hex:
header:
F0 0A 00 00 AB 1F 00 00 00 00 00 00 EF 0A 00 00 00 00 00 00 00 00 00 00 F0 0A 00 00 00 00 00 00 29 01 00 00 7A 24 00 00 4C 03 00 00 54 02 00 00 

body:
19 19 2E 87 20 00 00 19 01 16 FB FF FF 09 00 B2 FA FF FF 00 01 B2 FA FF FF 09 00 99 1E 00 00 00 01 99 1E 00 00 0A 00 00 00 00 00 00 1B C0 05 00 00 00 00 00 00 16 19 19 2E 87 20 00 00 19 01 16 FB FF FF 09 00 B2 FA FF FF 00 01 B2 FA FF FF 09 00 99 1E 00 00 00 01 99 1E 00 00 1D 00 00 00 00 00 00 1B 87 24 00 00 00 00 00 00 43 05 20 00 00 00 00 00 00 00 00 00 00 4A 4A 16 07 49 03 97 36 19 1B 91 0F 00 00 00 00 00 00 16 09 00 41 31 00 00 00 01 41 31 00 00 25 16 0F 00 F0 0A 00 00 19 19 2E 87 20 00 00 19 01 16 FB FF FF 09 00 B2 FA FF FF 00 01 B2 FA FF FF 09 00 99 1E 00 00 00 01 99 1E 00 00 09 00 10 18 00 00 00 01 10 18 00 00 07 5E 02 19 01 15 FB FF FF 0A 00 88 FF FF FF 00 1B 98 14 00 00 00 00 00 00 16 19 00 F0 0A 00 00 18 00 00 00 00 00 00 1B B4 23 00 00 00 00 00 00 1F 58 43 6F 6D 42 75 74 74 6F 6E 50 43 00 16 19 00 F0 0A 00 00 9E 00 00 00 00 00 00 1B 90 00 00 00 00 00 00 00 EB 35 E1 F9 FF FF 6F FA FF FF 00 00 35 34 31 00 00 35 31 00 00 00 00 19 1B 91 0F 00 00 00 00 00 00 16 09 00 40 31 00 00 00 01 40 31 00 00 16 1F 00 43 E8 1F 00 00 00 00 00 00 00 00 00 00 9A 38 3A 35 33 31 00 00 35 31 00 00 00 00 19 1B 91 0F 00 00 00 00 00 00 16 09 00 40 31 00 00 00 01 40 31 00 00 38 3A 24 01 16 16 19 00 F0 0A 00 00 0C 00 00 00 00 00 00 1B B4 23 00 00 00 00 00 00 1F 00 16 06 49 03 19 00 F0 0A 00 00 D6 00 00 00 00 00 00 1B 90 00 00 00 00 00 00 00 12 20 A1 FE FF FF 86 00 22 FA FF FF 00 1B 55 0F 00 00 00 00 00 00 EB 35 E1 F9 FF FF 6F FA FF FF 00 00 35 34 31 00 00 35 31 00 00 00 00 19 1B 91 0F 00 00 00 00 00 00 16 09 00 40 31 00 00 00 01 40 31 00 00 16 38 3A 35 33 31 00 00 35 31 00 00 00 00 19 1B 91 0F 00 00 00 00 00 00 16 09 00 40 31 00 00 00 01 40 31 00 00 4A 16 12 20 B4 FE FF FF 0A 00 48 FA FF FF 00 1B 76 0E 00 00 00 00 00 00 16 43 E8 1F 00 00 00 00 00 00 00 00 00 00 4A 16 04 0B 53 


new hex:
header:
F0 0A 00 00 AB 1F 00 00 00 00 00 00 EF 0A 00 00 00 00 00 00 00 00 00 00 F0 0A 00 00 00 00 00 00 29 01 00 00 7A 24 00 00 4C 03 00 00 54 02 00 00 

body:
19 19 2E 87 20 00 00 19 01 16 FB FF FF 09 00 B2 FA FF FF 00 01 B2 FA FF FF 09 00 99 1E 00 00 00 01 99 1E 00 00 0A 00 00 00 00 00 00 1B C0 05 00 00 00 00 00 00 16 19 19 2E 87 20 00 00 19 01 16 FB FF FF 09 00 B2 FA FF FF 00 01 B2 FA FF FF 09 00 99 1E 00 00 00 01 99 1E 00 00 1D 00 00 00 00 00 00 1B 87 24 00 00 00 00 00 00 43 05 20 00 00 00 00 00 00 00 00 00 00 4A 4A 16 19 1B 91 0F 00 00 00 00 00 00 16 0A 00 00 00 00 00 00 1B E2 2B 00 00 00 00 00 00 16 0F 01 9C 0A 00 00 25 0B 0B 07 49 03 97 36 19 1B 91 0F 00 00 00 00 00 00 16 09 00 41 31 00 00 00 01 41 31 00 00 25 16 0F 00 F0 0A 00 00 19 19 2E 87 20 00 00 19 01 16 FB FF FF 09 00 B2 FA FF FF 00 01 B2 FA FF FF 09 00 99 1E 00 00 00 01 99 1E 00 00 09 00 10 18 00 00 00 01 10 18 00 00 07 5E 02 19 01 15 FB FF FF 0A 00 88 FF FF FF 00 1B 98 14 00 00 00 00 00 00 16 19 00 F0 0A 00 00 9E 00 00 00 00 00 00 1B 90 00 00 00 00 00 00 00 EB 35 E1 F9 FF FF 6F FA FF FF 00 00 35 34 31 00 00 35 31 00 00 00 00 19 1B 91 0F 00 00 00 00 00 00 16 09 00 40 31 00 00 00 01 40 31 00 00 16 1F 00 43 E8 1F 00 00 00 00 00 00 00 00 00 00 9A 38 3A 35 33 31 00 00 35 31 00 00 00 00 19 1B 91 0F 00 00 00 00 00 00 16 09 00 40 31 00 00 00 01 40 31 00 00 38 3A 24 01 16 16 19 00 F0 0A 00 00 0C 00 00 00 00 00 00 1B B4 23 00 00 00 00 00 00 1F 00 16 06 49 03 19 00 F0 0A 00 00 D6 00 00 00 00 00 00 1B 90 00 00 00 00 00 00 00 12 20 A1 FE FF FF 86 00 22 FA FF FF 00 1B 55 0F 00 00 00 00 00 00 EB 35 E1 F9 FF FF 6F FA FF FF 00 00 35 34 31 00 00 35 31 00 00 00 00 19 1B 91 0F 00 00 00 00 00 00 16 09 00 40 31 00 00 00 01 40 31 00 00 16 38 3A 35 33 31 00 00 35 31 00 00 00 00 19 1B 91 0F 00 00 00 00 00 00 16 09 00 40 31 00 00 00 01 40 31 00 00 4A 16 12 20 B4 FE FF FF 0A 00 48 FA FF FF 00 1B 76 0E 00 00 00 00 00 00 16 43 E8 1F 00 00 00 00 00 00 00 00 00 00 4A 16 04 0B 53 


-------------------------------------

XComHQPresentationLayer.state'GreyMarket'.Activate to invoke the Grey Market in view state 1 instead of 0

change:
m_kGreyMarket.Init(XComPlayerController(Owner), GetHUD(), 0)
19 01 AC 1E 00 00 27 00 00 00 00 00 00 1B FC 12 00 00 00 00 00 00 2E 83 FE FF FF 01 44 FB FF FF 1B 56 0F 00 00 00 00 00 00 16 25 16 

to:
m_kGreyMarket.Init(XComPlayerController(Owner), GetHUD(), 1)
19 01 AC 1E 00 00 27 00 00 00 00 00 00 1B FC 12 00 00 00 00 00 00 2E 83 FE FF FF 01 44 FB FF FF 1B 56 0F 00 00 00 00 00 00 16 26 16 

-------------------------------------

In UIGreyMarket.GetMgr to force GetMgr to always be invoked with view 0 instead of current view

change:
04 2E 6B 31 00 00 19 2E 87 20 00 00 19 01 16 FB FF FF 09 00 B2 FA FF FF 00 01 B2 FA FF FF 27 00 65 20 00 00 00 1B 91 0F 00 00 00 00 00 00 20 6B 31 00 00 52 BE FE FF FF 17 01 9C 0A 00 00 4A 16 04 3A A1 0A 00 00 


to:
04 2E 6B 31 00 00 19 2E 87 20 00 00 19 01 16 FB FF FF 09 00 B2 FA FF FF 00 01 B2 FA FF FF 27 00 65 20 00 00 00 1B 91 0F 00 00 00 00 00 00 20 6B 31 00 00 52 BE FE FF FF 17 25 4A 16 01 9C 0A 00 00 01 9C 0A 00 00


-------------------------------------

XGEngineeringUI.UpdateMainMenu -- add Gray Market option to Engineering Build Main Menu

original hex: (virtual 0x398)
07 6C 00 84 19 1B 4C 0E 00 00 00 00 00 00 16 0A 00 15 41 00 00 00 2D 01 15 41 00 00 18 21 00 19 1B 75 0B 00 00 00 00 00 00 16 0A 00 0F 29 00 00 00 2D 01 0F 29 00 00 16 55 01 F7 26 00 00 02 00 26 16 07 C3 00 84 19 1B 4C 0E 00 00 00 00 00 00 16 0A 00 15 41 00 00 00 2D 01 15 41 00 00 18 21 00 19 1B 75 0B 00 00 00 00 00 00 16 0A 00 0E 29 00 00 00 2D 01 0E 29 00 00 16 55 01 F7 26 00 00 03 00 2C 02 16 07 F7 00 19 1B 5C 11 00 00 00 00 00 00 16 0C 00 FC 32 00 00 00 1B 0D 11 00 00 00 00 00 00 2C 0B 16 55 01 F7 26 00 00 03 00 2C 04 16 

new hex:
07 6C 00 19 1B 75 0B 00 00 00 00 00 00 16 0A 00 0F 29 00 00 00 2D 01 0F 29 00 00 55 01 F7 26 00 00 02 00 26 16 55 01 F7 26 00 00 03 00 2C 05 16 0B 0B 0B 0B 0B 00 22 27 00 00 0B 0B 0B 0B 0B 0B 0B 0B 07 C3 00 84 19 1B 4C 0E 00 00 00 00 00 00 16 0A 00 15 41 00 00 00 2D 01 15 41 00 00 18 21 00 19 1B 75 0B 00 00 00 00 00 00 16 0A 00 0E 29 00 00 00 2D 01 0E 29 00 00 16 55 01 F7 26 00 00 03 00 2C 02 16 07 F7 00 19 1B 5C 11 00 00 00 00 00 00 16 0C 00 FC 32 00 00 00 1B 0D 11 00 00 00 00 00 00 2C 0B 16 55 01 F7 26 00 00 03 00 2C 04 16 

-------------------------------------

XGEngineeringUI.OnMainMenuOption -- to cause Gray Market Menu item to invoke Gray Market UI

original hex:
header:
00 27 00 00 AB 1F 00 00 00 00 00 00 FE 26 00 00 00 00 00 00 00 00 00 00 00 27 00 00 00 00 00 00 C5 00 00 00 66 14 00 00 67 01 00 00 0F 01 00 00 

body:
07 61 00 9A 35 56 FB FF FF 6A FA FF FF 00 00 10 00 00 27 00 00 35 C4 FF FF FF 6B FA FF FF 00 00 35 C7 26 00 00 C8 26 00 00 00 00 01 FC 26 00 00 26 16 1B C3 21 00 00 00 00 00 00 16 04 0B 06 64 01 1C AA FD FF FF 20 5C FA FF FF 27 4A 4A 4A 4A 16 0F 00 FF 26 00 00 10 00 00 27 00 00 01 F7 26 00 00 07 C9 00 9A 00 FF 26 00 00 2C 02 16 19 1B 12 22 00 00 00 00 00 00 16 0A 00 00 00 00 00 00 1B C3 2A 00 00 00 00 00 00 16 06 5A 01 07 47 01 9A 00 FF 26 00 00 2C 04 16 19 1B 12 22 00 00 00 00 00 00 16 0A 00 00 00 00 00 00 1B EC 2A 00 00 00 00 00 00 16 19 19 19 1B 12 22 00 00 00 00 00 00 16 0A 00 C8 1E 00 00 00 1B 61 10 00 00 00 00 00 00 16 09 00 0E 18 00 00 00 01 0E 18 00 00 0A 00 00 00 00 00 00 1B 76 22 00 00 00 00 00 00 16 06 5A 01 1B EA 10 00 00 00 00 00 00 00 FF 26 00 00 16 1B DD 21 00 00 00 00 00 00 16 04 0B 53 

new hex: (virtual 0x15B)
header:
00 27 00 00 AB 1F 00 00 00 00 00 00 FE 26 00 00 00 00 00 00 00 00 00 00 00 27 00 00 00 00 00 00 C5 00 00 00 66 14 00 00 5B 01 00 00 0F 01 00 00 

body:
07 5F 00 9A 35 56 FB FF FF 6A FA FF FF 00 00 10 00 00 27 00 00 35 C4 FF FF FF 6B FA FF FF 00 00 35 C7 26 00 00 C8 26 00 00 00 00 01 FC 26 00 00 26 16 1B C3 21 00 00 00 00 00 00 16 06 42 01 1C AA FD FF FF 20 5C FA FF FF 27 4A 4A 4A 4A 16 0F 00 FF 26 00 00 10 00 00 27 00 00 01 F7 26 00 00 05 FF 26 00 00 00 00 FF 26 00 00 0A CF 00 2C 02 19 1B 12 22 00 00 00 00 00 00 16 0A 00 00 00 00 00 00 1B C3 2A 00 00 00 00 00 00 16 06 38 01 0A F7 00 2C 04 19 1B 12 22 00 00 00 00 00 00 16 0A 00 00 00 00 00 00 1B EC 2A 00 00 00 00 00 00 16 06 38 01 0A 1F 01 2C 05 19 1B 12 22 00 00 00 00 00 00 16 0A 00 00 00 00 00 00 1B F4 2A 00 00 00 00 00 00 16 06 38 01 0A FF FF 1B EA 10 00 00 00 00 00 00 00 FF 26 00 00 16 06 38 01 1B DD 21 00 00 00 00 00 00 16 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 04 0B 53 
 

 

 

Link to comment
Share on other sites

  • 2 weeks later...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...