I have no access to that function. However, the log lines led me to `modules/campain_lib.py:462, class ClearFactionRecord`, which is called when buying a record wipe from Roman Lynch at Basque in the Pyrenees star system. The effect seems capped at "2.0". Which seems sensible for a value which by right has only a range of 2.0. Experimenting with the inputs to `VS.AdjustRelation(..)` led me to no simple single-call solution. As it stands, not even Mr. Lynch could repair my very bad reputation. Paying him twice made at least the merchants friendly again, from which one can reliably run away using a fast ship, not being tempted to murder them all the time.
So while unable to get to the real bug, I at least can offer a workaround fix for Mr. Lynch. Introducing the following into the code will set all effected factions to "neutral (0)", which seems sensible for a general "rm -rf burrows/offenses/" done by a Gemini hacker for the expense of 200k Credits.
Code: Select all
class ClearFactionRecord(Script):
def __init__(self,fac,newrelation,nextscript=None):
Script.__init__(self,nextscript)
self.faction=fac
self.newval=newrelation
def __call__(self,room,subnodes):
Script.__call__(self,room,subnodes)
import VS
c=100
while (c>0) or VS.GetRelation(self.faction,"privateer")<0.0:
c -= 1
rel=VS.GetRelation(self.faction,"privateer")
nv = self.newval if rel < -1.0 else 0.0
VS.AdjustRelation(self.faction,"privateer",nv-rel,1.0)
# [This second half turns the attitudes from 0 up to 100. Won't do. Deactivated it. Is it necessary?]
# rel=VS.GetRelation("privateer",self.faction)
# VS.AdjustRelation("privateer",self.faction,self.newval-rel,1.0)
P.P.S.: Checking my digital watch tells me, we have 2023 already. I think it is cool, that this forum still exists!