Jump to content

R&D XCOM Map Alterations


Amineri

Recommended Posts

  • Replies 473
  • Created
  • Last Reply

Top Posters In This Topic

LiQuiD911, you can do almost anything with the scripts. :smile: However, it's not just a matter of moving an object, it's a matter of figuring out where to move a hundred of objects.

 

Let's take a capture-and-hold mission for example. It has a trigger zones, located near relays. Those triggers are used by WaveSystem, embedded in the map, to send a waves of reinforcements. Each wave has 10-20 origin and destination points, which depend on trigger volume location. It's a very complex system to change. We either need to re-write an entire stream file to create alternative streams, or get rid of that file and place all the volumes and other related objects with some complex script. In both cases this will require a lot of R&D and scripting.

Edited by wghost81
Link to comment
Share on other sites

I already cataloged a CNH stream a while ago. I'll catalog the exalt spawn points.

You could just move around the exalt spawn volumes, walk-in remain walk-in and chopper drop-downs remain drop-downs but with new location. Are you sure there are other kinds of trigger volumes? I'll recheck.

At least those are moddable without trouble :

 

 

Map Comercial Restaurant CNH

decoderBIG
TheWorld.PersistentLevel.XComCapturePointVolume_0
decoderSMALL
TheWorld.PersistentLevel.XComRebuildWorldDataVolume_9


trasmiterBiG
TheWorld.PersistentLevel.XComCapturePointVolume_1
TheWorld.PersistentLevel.XComRebuildWorldDataVolume_1


encoder actor
TheWorld.PersistentLevel.XComCapturePointActor_14

trasmiter actor
TheWorld.PersistentLevel.XComCapturePointActor_15

array actors
TheWorld.PersistentLevel.XComRadarArrayActor_12
TheWorld.PersistentLevel.XComRadarArrayActor_13
TheWorld.PersistentLevel.XComRadarArrayActor_14
TheWorld.PersistentLevel.XComRadarArrayActor_15

 

the array actors move with them their triggers and cover

 

 

The first wave of exalts are 2 units, who come from 2 spawngroups.

These are the final positions of the units who come from spawngroup 1. I'm pretty sure it chooses one of those points at random.

XComSpawnPoint_Alien_30
XComSpawnPoint_Alien_4
XComSpawnPoint_Alien_5
XComSpawnPoint_Alien_6
XComSpawnPoint_Alien_10
XComSpawnPoint_Alien_12

 

The other unit ends up in one of those:

XComSpawnPoint_Alien_18
XComSpawnPoint_Alien_16
XComSpawnPoint_Alien_13
XComSpawnPoint_Alien_14
XComSpawnPoint_Alien_20
XComSpawnPoint_Alien_22

 

The first group's units are created (and then walk-in ) in

XComSpawnPoint_Alien_31
XComSpawnPoint_Alien_8
XComSpawnPoint_Alien_2
XComSpawnPoint_Alien_9
XComSpawnPoint_Alien_11
XComSpawnPoint_Alien_0

 

and the other group starts at

 

XComSpawnPoint_Alien_19
XComSpawnPoint_Alien_17
XComSpawnPoint_Alien_7
XComSpawnPoint_Alien_15
XComSpawnPoint_Alien_21
XComSpawnPoint_Alien_23

 

all those locations are reused in following waves (but in the final more units spawn).

 

also there are the chopper dropdowns

 

 

all this stuff is nicely packed in XcomWaveSystem

 

If tracking all the spawnpoint names in the various streams is a problem, a single stream could be mapped and then copy-pasted for all maps.

There's also the option not to reveal spawned units ( I haven't tested if it wokrs) if someone wants evil-er exalt missions xD

Edited by LiQuiD911
Link to comment
Share on other sites

Wave system for all the maps is documented here: http://forums.nexusmods.com/index.php?/topic/1231530-modding-exalt/?p=11281033

 

The biggest problem with CNH missions is the map size: there's not enough space to move transmitter to.

 

Let's take a look at Commercial Restaurant map:

http://i.imgur.com/1wuKJCt.jpg

 

Where can we move transmitter/encoder to? Only option I see is to switch their placement and move LZ to terror position.

 

I'm thinking about trashing those streams and creating our own special missions with scripting only. I'm experimenting with escort an rescue missions now.

Link to comment
Share on other sites

My idea was to "exalt" the other maps since there are only 10 per mission type

Sorry, I misunderstood you then. But still it's a loot of manual work.

 

Actually, I don't like exalt missions at all, so I started with Council missions. :smile: But yes, if I'll be able to script escort/rescue mission, I'll start working on exalt missions.

Link to comment
Share on other sites

  • 2 weeks later...

This post is based off tracktwo discoveries in sound replacement topic. Just some general thoughts I decided to share. :smile:

 

So, it seems like both engine and licensee package numbers affect serialization process. As far as I understand the matter from UDN articles, each time developers change serialization code, they should increase version number, because this affects how packages are saved and loaded. But this seems to be the case for UE developers, not for game developers, using paid UE version.

 

Free UDK has licensee number set to zero. It uses pure engine-version matching serialization code to read/write packages and rejects any packages with non-zero licensee number.

 

Game developers have their own non-zero licensee numbers, which are different for every game. And when they make their own serialization code changes, they do not increase engine version number (which is logical), but tie that new code to their unique licensee number instead. This results in game being able to read both packages with zero licensee number and game specific packages with corresponding licensee number.

 

I think, it's the one of the reasons why we can't open XCOM maps and other packages with UDK: when we try to use those as they are, UDK says licensee number is wrong, and when we hex edit those to set licensee number to zero, UDK crashes, most probably because of the unexpected XCOM specific serialized data.

 

This fact prevents us from modding existing packages, but we can also use it to our advantage, as we did with voice packages: we can use UDK to create common engine-version dependent part and handle XCOM-specific part inside a script (when it is possible).

Edited by wghost81
Link to comment
Share on other sites

Oh my god :smile: This seems to be true for materials as well.

 

Licensee 00 - default material used

[0048.45] Log: Material CrapMat has outdated uniform expressions; regenerating.
[0048.45] Log: Can't compile CrapMat with seekfree loading path on console, will attempt to use default material instead
[0048.45] Warning: Warning, Failed to compile Material D79TestPackage.CrapMat for platform PC-D3D-SM3, Default Material will be used in game.

Licensee 40 - the game crashes

[0071.45] Critical: appError called: Material D79TestPackage.CrapMat: Serial size mismatch: Got 232, Expected 208
Edited by Drakous79
Link to comment
Share on other sites

  • Recently Browsing   0 members

    • No registered users viewing this page.

×
×
  • Create New...