Jump to content

Need help fixing scripts in CWO for myself


MrTissueBox

Recommended Posts

I came across a list of bugs in the scripts from reddit user inmundano as you can see here: https://www.reddit.com/r/skyrimmods/comments/3sh2ah/how_do_you_install_civil_war_overhaul_nowadays/cwy543r/

 

He already fixed them on his own, but I'm attempting to fix them myself for my own use, however I have next to no scripting knowledge, so if any of you can help, I'd appreciate it.

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

As for the first issue, he says: Reinforcements don't apply to minor capital sieges, due to SetPoolAttackerOnCWReinforcementScript/SetPoolDefenderOnCWReinforcementScript not being called in the "elseif" it should have been called.

 

CWSiegeScript contains these variables, however I do not know where I need to add them to be "called" in the "elseif" in order for minor holds to have reinforcements. Any clue as to where this needs to be changed? So far, I've found that the CWscript contains information for the minor hold battles such as Falkreath, however I don't know if SetPoolAttackerOnetc.etc. needs to be added somewhere in there?

 

 

Link to comment
Share on other sites

These aren't variables, these are functions. No need to quote the word "called", they are called.

 

So you need to find a place in scripts such that the code looks roughly like this

if (...) 
  SetPoolAttackerOnCWReinforcementScript(...)
  SetPoolDefenderOnCWReinforcementScript(...)
  ...
elseif (...)
  ...
endif

How many such places can you find?

Link to comment
Share on other sites

These aren't variables, these are functions. No need to quote the word "called", they are called.

 

So you need to find a place in scripts such that the code looks roughly like this

 

How many such places can you find?

 

I combed through several scripts, and I only found two scripts that contained "SetPoolAttackerOnCWReinforcementScript" and "SetPoolDefender...". They were CWSiegeScript and QF_CWSiege_etc.etc. Unfortunately, I didn't find any instances where it contained any "if"s or "elseif"s.

http://imgur.com/VS1wQFu

 

http://imgur.com/toLz9jg

Link to comment
Share on other sites

I see. The "elseif" is a keyword of Papyrus language, it is used in source files (.psc).

 

In assembler (.pas) it will be something like

  ... 
  ; code to evaluate the condition by "if"
  JumpF ::temp23 _label101:
  ... 
  ; code before "elseif"
  Jump _label102:
_label101:
  ...
  ; code to evaluate the condition by "ifelse"
  JumpF ::temp37 _label102:
  ...
  ; code before "endif"
_label102:
  ... 
  ; code after "endif" goes here

but you can see why it might be difficult to tell apart from other conditional code.

 

Anyway, please check your files, because I found the text "SetPoolAttackerOnCWReinforcementScript" in 4 .pex files in CWO (the two you mentioned and QF_CWFortSiegeFort, QF_CWFortSiege).

Link to comment
Share on other sites

I see. The "elseif" is a keyword of Papyrus language, it is used in source files (.psc).

 

In assembler (.pas) it will be something like

but you can see why it might be difficult to tell apart from other conditional code.

 

Anyway, please check your files, because I found the text "SetPoolAttackerOnCWReinforcementScript" in 4 .pex files in CWO (the two you mentioned and QF_CWFortSiegeFort, QF_CWFortSiege).

As for the other two I missed (QF_CWFortSiegeFort, QF_CWFortSiege), is there anything resembling what you posted earlier about the "elseif"s?

Link to comment
Share on other sites

Let's also go back to the first part of the clue. It says "Reinforcements don't apply to minor capital sieges" because something is not in elseif. So we need to look for a condition expression that is related to minor capital sieges.

 

By searching for text "minorcapital" I found that there is a keyword CWFortSiegeMinorCapitalStart which is used in CWScript (not on our suspect list) and CWFortSiegeMissionScript, just before setting a property SpecialCapitalResolutionFortSiege to 1 (to indicate a minor capital) - this is so in vanilla scripts.

 

And searching for text "SpecialCapitalResolutionFortSiege" yields two hits: QF_CWFortSiegeFort and QF_CWFortSiege.

 

But you know what? I realized that reddit user inmundano probably did not have original CWO source code and simply decompiled it with Champollion. That can clear up a lot.

Link to comment
Share on other sites

  • Recently Browsing   0 members

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