-
Posts
83 -
Joined
-
Last visited
Nexus Mods Profile
About eXecator

eXecator's Achievements
Enthusiast (6/14)
0
Reputation
-
Yes, I'm using Win10 and I do have VS15 installed if thats important. Are you using Windows 10? What is your system specs? Alex just updated the file on Saturday to include additional DLL, so we're ready for another round of testing!
- 100 replies
-
Jesus Christ! For this I will deal with the pain of switching my color scheme to dark. did as I was told to do in OP typed a variable name and a dot burst into tears Very nice, thanks a lot.
- 100 replies
-
same here...
-
I'm far from having perfect knowledge on this one, but I can offer this much: In general:Templates are used to create StateObjects (derived from XComGameState_BaseObject). These StateObjects are what you encounter in the game. But:There are Templates which will not get used that way, they will get used on their own (for instance: X2CountryTemplate).There are StateObjects which will not get generated by Templates (for instance: XComGameState_Effect)There are Classes like X2Abilty which are derived from X2DataSet. Despite their misleading names these are nothing more than toolboxes which help to define corresponding Templates. The game engine will go ahead and call CreateTemplates() at some early point and thereby create the Template objects, which will be used until you close the game. If you want to have abilities behave different then they do in vanilla, you could do one ofmodify the X2DataSet's that will end up providing the game with Template objects in the first place modify the Template objects at some point after they got created (but preferably early) modify the XComGameState_Ability that will get generated from one of the Templates 1) as far as I understand class overrides cannot be used for native classes, so you would have to do a total conversion for this. (Is that correct?)3) might be a complex task, since you have to do your modification whenever some ability gets created Imho this leaves the second option as the way to do this. Allthough keep in mind, that StateObjects will get saved when the player saves the game. So anything that was created before you modifed the template will not be affected ever.
-
How can I add another ability to DefaultAbilitySet
eXecator replied to raistca's topic in XCOM's XCOM 2
It's actually going off even before the shell ;) -
How can I add another ability to DefaultAbilitySet
eXecator replied to raistca's topic in XCOM's XCOM 2
Or you could use my mod to do this, hurrey. http://steamcommunity.com/sharedfiles/filedetails/?id=633686087 -
It is done. I was able to access and modify templates for all the difficulties during application startup (even pre-TemplateValidation, which is kinda nice). Convincing XCom to accept CampaignSettings that early was like running through a game crash minefield for me though. This is what finaly worked for me. local XComGameStateHistory History; local XComGameStateContext_StrategyGameRule StrategyStartContext; local XComGameState StartState; local XComGameState_CampaignSettings Settings; local X2CharacterTemplateManager Characters; local X2CharacterTemplate soldier; local int DifficultyIndex; Characters = class'X2CharacterTemplateManager'.static.GetCharacterTemplateManager(); History = `XCOMHISTORY; StrategyStartContext = XComGameStateContext_StrategyGameRule(class'XComGameStateContext_StrategyGameRule'.static.CreateXComGameStateContext()); StrategyStartContext.GameRuleType = eStrategyGameRule_StrategyGameStart; StartState = History.CreateNewGameState(false, StrategyStartContext); History.AddGameStateToHistory(StartState); Settings = new class'XComGameState_CampaignSettings'; // Do not use CreateStateObject() here StartState.AddStateObject(Settings); for( DifficultyIndex = `MIN_DIFFICULTY_INDEX; DifficultyIndex <= `MAX_DIFFICULTY_INDEX; ++DifficultyIndex ) { Settings.SetDifficulty(DifficultyIndex); `log("Difficulty:"@string(class'XComGameState_CampaignSettings'.static.GetDifficultyFromSettings())); soldier = Characters.FindCharacterTemplate('Soldier'); soldier.CharacterBaseStats[eStat_HP] = 10 + DifficultyIndex; } History.ResetHistory(); // yeah, lets do that, nothing happend anyway... The key parts here are newing up the Settings instead of asking kindly for StateObject creation, since that always ended in proccess termination for me. And of course as Amineri mentioned, we have to mop up the History aferwards. We do not want anybody downstream to ask serious questions about that house of cards we build here to fool the TemplateManagers.
-
Agreed on the dangerous/risky part. But I realy want those Templates! ;) /// <summary> /// Removes all information related to the last Count states from the history. /// </summary> /// <param name="Count">Number of states to pop from the history.</param> native final function ObliterateGameStatesFromHistory(optional int Count = 1);What about that badboy? It claims to obliterate game states from history of all things. That has to deal some serious damage. Is it just me, or is that a ridiculously funny name for a method? :D As an afterthought: I realy like that they made this one final. Nice touch.
-
after hotfix, some sdk uc files don't compile !?
eXecator replied to davidlallen's topic in XCOM's XCOM 2
I dont know. Haven't done anything in the UI yet. Instead of changing the actual choosing-function maybe you can get away with being faster and having already promoted that rook using 'XComGameState_Unit'.RankUpSoldier( - , 'classOfYourChoosing' ). This might work if you can identify the leveling-up early enough. -
after hotfix, some sdk uc files don't compile !?
eXecator replied to davidlallen's topic in XCOM's XCOM 2
Sounds about right. Of course there are different levels of dangerous. And while we are long march away from an ideal API, we are still in a comparatively save spot to what other modding endeavours might have faced. I suspect that many of the things that we want to change will get 'best practice' solutions in the near future. -
after hotfix, some sdk uc files don't compile !?
eXecator replied to davidlallen's topic in XCOM's XCOM 2
I'm not an unrealscript-beast, but I would see the native specifier as a strong discouragement to modify a classes behaviour. In general class overriding seems to be asking for trouble. I will always look for a way to extend and not modify in the first place. Hopefully most stuff can be achieved by adding/modifying Template instances. -
after hotfix, some sdk uc files don't compile !?
eXecator replied to davidlallen's topic in XCOM's XCOM 2
Native classes are declared with the native specifier like this: class XComGameState_CampaignSettings extends XComGameState_BaseObject native(Core); From the unrealscript reference: Native Indicates that "this class uses behind-the-scenes C++ support". -
Since AbilityTemplates defaultproperties dont change bShouldCreateDifficultyVariants it should be "false". This would imply that abilities in fact will not differ with difficulty. Do not despair good Sir. As I understand SDK updates are thought about. Its two weeks past release, things will only get better. =)
-
Has anyone tried to create a fresh XComGameState_CampaignSettings with the desired difficulty set before querying TemplateManagers while in the shell or anywhere else during startup? local XComGameState StartState; local XComGameState_CampaignSettings Settings; local X2CharacterTemplateManager CharTemplateMgr; local X2CharacterTemplate LegendarySoldier; local int LegendaryDifficulty; LegendaryDifficulty = 3; StartState = History.GetStartState(); Settings = XComGameState_CampaignSettings(StartState.CreateStateObject(class'XComGameState_CampaignSettings')); StartState.AddStateObject(Settings); Settings.SetDifficulty(LegendaryDifficulty); CharTemplateMgr = class'X2CharacterTemplateManager'.static.GetCharacterTemplateManager(); LegendarySoldier = CharTemplateMgr.FindCharacterTemplate(DataTemplateName); I imagine this could work if TemplateManger implementations use 'XComGameState_CampaignSettings'.static.GetDifficultyFromSettings().
-
So sad I am... :sad: