Jump to content

Scripting with UDK


wghost81

Recommended Posts

Welcome back, Amineri!

 

You can easily disable a mutator by commenting it out in DefaultGame.ini. Mutators are coded so they're not affecting anything if not active. This is the main principle and it means, you don't have to disable any of mutator-related upk patches to disable the mod. And you don't need to delete any of the mod files. UT mutators work in similar manner, only difference is UTMutator class already have all the necessary support coded in to allow for different types of mods, even for UI mods. And XComMutator project tries to do the same thing for XCOM.

 

DLC mechanic is slightly different. But I think you're right and we can try to use it for mutators. Everything inside DLC folder gets processed for EU, but I'm not sure same thing applies to EW. I'm also not sure any non-standard folders gets processed. Needs more R&D.

Link to comment
Share on other sites

  • Replies 61
  • Created
  • Last Reply

Top Posters In This Topic

  • 6 months later...

So has research into scripting with the UDK stopped or...? I don't know much about any of this and I'm kinda sad to have missed all of the action, but I'm going to start looking into this myself. At the very least thanks for getting the ball rolling.

Edited by KiddieGrinder
Link to comment
Share on other sites

So has research into scripting with the UDK stopped or...? I don't know much about any of this and I'm kinda sad to have missed all of the action, but I'm going to start looking into this myself. At the very least thanks for getting the ball rolling.

The whole XCOM Randomized mod, which is also included in LW, is build using UDK. Here's my github project: https://github.com/wghost/XCOM-Mutators It also has wiki pages, describing how to set up UDK and how to create dummy scripts.

Link to comment
Share on other sites

  • 2 months later...

So... tried to learn this. It isn't working. Granted, I don't know much about the UDK, but every time I try to compile the scripts it says "C:\UDK\UDK-2011-09\Development\Src\XComMutator\Classes\XComMutatorLoader.uc(11) : Error, Unrecognized type 'XComGameInfo'".

 

 

What am I missing and doing wrong stupidly?

Link to comment
Share on other sites

You're probably missing XComGameInfo class. Mutators project doesn't have any of the original XCOM source files needed to compile the code. As very short wiki explains, you need to create dummy classes with stub functions. Here's a collection of dummy classes I already created for myself while scripting with UDK: https://github.com/wghost/UDK-EW They are incomplete as I add only classes, member variables and functions I currently need.

Link to comment
Share on other sites

You guys have done a lot of progress in XCOM modding! I haven't used UDK since Rainbow SIx: Raven Shield, but I got interested. I'll start reading the wiki, and even if I just make a really simple pointless mod I'll be really happy!

Edited by MadXav
Link to comment
Share on other sites

* CheckReplacement - the most important function. It allows to replace one class with another class whenever an exemplar of a class is spawned. In other words, it allows to "mutate" a class into different class.

And couple of other functions. Since Mutator is a child of Actor, it can also use and modify all the existing Actor class functions.

I've looked over the "Modding with UDK" wiki page and this stuff is still fairly over my head at the moment, but this point in particular has me interested. So essentially is this saying that I can create a function so that when (IsOptionEnabled(My TechTreeAlt)) the function will call for a new class of my own creation?

 

This would be amazing if it's what the statement is saying. I could develop my entire mod through UDK(once I figure that beast out) and then just Hex Edit a function to call for my mod if the 2nd Wave option is selected...correct?

Link to comment
Share on other sites

CheckReplacement is not usable for XCOM because of all the back references. What I finally came to is inserting Mutate call before an object spawn code, pass a bunch of params to it as text (as it only accepts text) and then spawn the new object with mutator depending on these params. After that I add another check in the original code, which confirms if an object is spawned (its reference is not equal to 'none') and if not, executes vanilla code to spawn vanilla class.

Link to comment
Share on other sites

  • Recently Browsing   0 members

    • No registered users viewing this page.

×
×
  • Create New...