TranceaddicT Posted July 7, 2020 Share Posted July 7, 2020 42 minutes ago, nightingale said: OR is ||. Looks like the wiki is a bit messed up, I'll fix it. So, it works in a WHERE()? Quote Link to comment Share on other sites More sharing options...
nightingale Posted July 7, 2020 Author Share Posted July 7, 2020 Just now, TranceaddicT said: So, it works in a WHERE()? Yup. Quote Link to comment Share on other sites More sharing options...
Tonas1997 Posted July 7, 2020 Share Posted July 7, 2020 (edited) I've just launched my RealAgencies mod and someone brought to my attention a possible problem with the agent parser in CC version 1.28.2 (1.28.1 seems to work fine): Here are two logs for the same contract but on different versions of Contract Configurator. I took the liberty of highlighting the relevant lines: 1.28.1 (works fine) Spoiler Debug information for CONTRACT_TYPE 'roverDione': Configuration: CONTRACT_TYPE { name = roverDione title = Dione Rover group = Rovers agent = [NASA, ESA, JAXA, Roscosmos, ISRO].Random() description = Design and send a rover to the surface of Dione and visit the different areas marked by our scientists.&br;&br;We suggest landing your rover as close as possible to the first marker. synopsis = Send a rover to explore the surface of Dione completedMessage = Congratulations, our rover has returned important scientific data. sortKey = 1308 cancellable = true declinable = true autoAccept = false minExpiry = 0 maxExpiry = 0 maxCompletions = 1 maxSimultaneous = 1 deadline = 5475 targetBody = Dione prestige = Significant advanceFunds = 554600 / ContractMultiplier() rewardScience = 0.15 rewardReputation = 50 rewardFunds = @advanceFunds * 3.0 failureReputation = 35 failureFunds = @advanceFunds * 1.9 PARAMETER { name = VesselGroup type = VesselParameterGroup title = Uncrewed Landing on Dione define = ProbeDione targetBody = @/targetBody PARAMETER { name = NewVessel type = NewVessel title = Launch a New Vessel hideChildren = true targetBody = @/targetBody } PARAMETER { name = Crewmembers type = HasCrew minCrew = 0 maxCrew = 0 title = Uncrewed hideChildren = true targetBody = @/targetBody } PARAMETER { name = WaypointAlpha type = VisitWaypoint index = 0 distance = 100.0 disableOnStateChange = true title = Safely Land near Rover Site Alpha on Dione hideChildren = true showMessages = true targetBody = @/targetBody } PARAMETER { name = WaypointBeta type = VisitWaypoint index = 0 distance = 100.0 disableOnStateChange = true title = Visit Rover Site Beta hideChildren = true showMessages = true targetBody = @/targetBody } PARAMETER { name = WaypointCharlie type = VisitWaypoint index = 0 distance = 100.0 disableOnStateChange = true title = Visit Rover Site Charlie hideChildren = true showMessages = true targetBody = @/targetBody } PARAMETER { name = SurfaceScience type = CollectScience situation = SrfLanded recoveryMethod = Transmit title = Transmit Science from the Surface hideChildren = true targetBody = @/targetBody } } BEHAVIOUR { name = WaypointGenerator type = WaypointGenerator RANDOM_WAYPOINT { name = Rover Site Alpha hidden = false count = 1 icon = marker altitude = 0.0 waterAllowed = false forceEquatorial = false targetBody = @/targetBody } RANDOM_WAYPOINT_NEAR { name = Rover Site Beta parameter = WaypointAlpha hidden = false count = 1 icon = marker altitude = 0.0 waterAllowed = false nearIndex = 0 minDistance = 500.0 maxDistance = 1000.0 targetBody = @/targetBody } RANDOM_WAYPOINT_NEAR { name = Rover Site Charlie parameter = WaypointBeta hidden = false count = 1 icon = marker altitude = 0.0 waterAllowed = false nearIndex = 1 minDistance = 500.0 maxDistance = 2000.0 targetBody = @/targetBody } } } Data Nodes: roverDione Rovers:name = Rovers, deterministic = True Rovers:displayName = Rover Contracts, deterministic = True Rovers:minVersion = 1.22.2, deterministic = True Rovers:maxCompletions = 0, deterministic = True Rovers:maxSimultaneous = 0, deterministic = True Rovers:disabledContractType = [ BaseContract, CollectScience, ExploreBody, ExplorationContract, GrandTour, ISRUContract, RecordTrackContract, PartTest, PlantFlag, RecoverAsset, SatelliteContract, StationContract, SurveyContract, TourismContract, WorldFirstContract, RemoteTech, WBIResearchContract, ScanSatOfficial, CrossBelt, CrossHeliopause, MannedOrbit, SpaceAnalysis, SpaceHarvest ], deterministic = True Rovers:agent = Exploration, deterministic = True Rovers:sortKey = 130, deterministic = True Rovers:tip = , deterministic = True name = roverDione, deterministic = True trace = False, deterministic = True title = Dione Rover, deterministic = True tag = , deterministic = True description = Design and send a rover to the surface of Dione and visit the different areas marked by our scientists. We suggest landing your rover as close as possible to the first marker., deterministic = True topic = , deterministic = True subject = , deterministic = True notes = null, deterministic = True synopsis = Send a rover to explore the surface of Dione, deterministic = True completedMessage = Congratulations, our rover has returned important scientific data., deterministic = True agent = JAXA, deterministic = False minExpiry = 0, deterministic = True maxExpiry = 0, deterministic = True deadline = 5475, deterministic = True cancellable = True, deterministic = True declinable = True, deterministic = True autoAccept = False, deterministic = True prestige = [ Significant ], deterministic = True targetBody = null, deterministic = True maxCompletions = 1, deterministic = True maxSimultaneous = 1, deterministic = True rewardFunds = 1663800, deterministic = False rewardReputation = 50, deterministic = True rewardScience = 0.15, deterministic = True failureFunds = 1053740, deterministic = False failureReputation = 35, deterministic = True advanceFunds = 554600, deterministic = False genericTitle = Dione Rover, deterministic = True genericDescription = Design and send a rover to the surface of Dione and visit the different areas marked by our scientists. We suggest landing your rover as close as possible to the first marker., deterministic = True sortKey = 1308, deterministic = True VesselGroup type = VesselParameterGroup, deterministic = True name = VesselGroup, deterministic = True targetBody = null, deterministic = True rewardFunds = 0, deterministic = True rewardReputation = 0, deterministic = True rewardScience = 0, deterministic = True failureFunds = 0, deterministic = True failureReputation = 0, deterministic = True optional = False, deterministic = True disableOnStateChange = null, deterministic = True completeInSequence = False, deterministic = True hidden = False, deterministic = True hideChildren = False, deterministic = True title = Uncrewed Landing on Dione, deterministic = True notes = null, deterministic = True completedMessage = null, deterministic = True duration = 00:00:00, deterministic = True define = ProbeDione, deterministic = True defineList = null, deterministic = True vessel = [], deterministic = True dissassociateVesselsOnContractFailure = True, deterministic = True dissassociateVesselsOnContractCompletion = False, deterministic = True hideVesselName = False, deterministic = True NewVessel type = NewVessel, deterministic = True name = NewVessel, deterministic = True targetBody = null, deterministic = True rewardFunds = 0, deterministic = True rewardReputation = 0, deterministic = True rewardScience = 0, deterministic = True failureFunds = 0, deterministic = True failureReputation = 0, deterministic = True optional = False, deterministic = True disableOnStateChange = null, deterministic = True completeInSequence = False, deterministic = True hidden = False, deterministic = True hideChildren = True, deterministic = True title = Launch a New Vessel, deterministic = True notes = null, deterministic = True completedMessage = null, deterministic = True Crewmembers type = HasCrew, deterministic = True name = Crewmembers, deterministic = True targetBody = null, deterministic = True rewardFunds = 0, deterministic = True rewardReputation = 0, deterministic = True rewardScience = 0, deterministic = True failureFunds = 0, deterministic = True failureReputation = 0, deterministic = True optional = False, deterministic = True disableOnStateChange = null, deterministic = True completeInSequence = False, deterministic = True hidden = False, deterministic = True hideChildren = True, deterministic = True title = Uncrewed, deterministic = True notes = null, deterministic = True completedMessage = null, deterministic = True trait = null, deterministic = True minExperience = 0, deterministic = True maxExperience = 5, deterministic = True minCrew = 0, deterministic = True maxCrew = 0, deterministic = True kerbal = [], deterministic = True excludeKerbal = [], deterministic = True WaypointAlpha type = VisitWaypoint, deterministic = True name = WaypointAlpha, deterministic = True targetBody = null, deterministic = True rewardFunds = 0, deterministic = True rewardReputation = 0, deterministic = True rewardScience = 0, deterministic = True failureFunds = 0, deterministic = True failureReputation = 0, deterministic = True optional = False, deterministic = True disableOnStateChange = True, deterministic = True completeInSequence = False, deterministic = True hidden = False, deterministic = True hideChildren = True, deterministic = True title = Safely Land near Rover Site Alpha on Dione, deterministic = True notes = null, deterministic = True completedMessage = null, deterministic = True index = 0, deterministic = True distance = 100, deterministic = True horizontalDistance = 0, deterministic = True hideOnCompletion = True, deterministic = True showMessages = True, deterministic = True WaypointBeta type = VisitWaypoint, deterministic = True name = WaypointBeta, deterministic = True targetBody = null, deterministic = True rewardFunds = 0, deterministic = True rewardReputation = 0, deterministic = True rewardScience = 0, deterministic = True failureFunds = 0, deterministic = True failureReputation = 0, deterministic = True optional = False, deterministic = True disableOnStateChange = True, deterministic = True completeInSequence = False, deterministic = True hidden = False, deterministic = True hideChildren = True, deterministic = True title = Visit Rover Site Beta, deterministic = True notes = null, deterministic = True completedMessage = null, deterministic = True index = 0, deterministic = True distance = 100, deterministic = True horizontalDistance = 0, deterministic = True hideOnCompletion = True, deterministic = True showMessages = True, deterministic = True WaypointCharlie type = VisitWaypoint, deterministic = True name = WaypointCharlie, deterministic = True targetBody = null, deterministic = True rewardFunds = 0, deterministic = True rewardReputation = 0, deterministic = True rewardScience = 0, deterministic = True failureFunds = 0, deterministic = True failureReputation = 0, deterministic = True optional = False, deterministic = True disableOnStateChange = True, deterministic = True completeInSequence = False, deterministic = True hidden = False, deterministic = True hideChildren = True, deterministic = True title = Visit Rover Site Charlie, deterministic = True notes = null, deterministic = True completedMessage = null, deterministic = True index = 0, deterministic = True distance = 100, deterministic = True horizontalDistance = 0, deterministic = True hideOnCompletion = True, deterministic = True showMessages = True, deterministic = True SurfaceScience type = CollectScience, deterministic = True name = SurfaceScience, deterministic = True targetBody = null, deterministic = True rewardFunds = 0, deterministic = True rewardReputation = 0, deterministic = True rewardScience = 0, deterministic = True failureFunds = 0, deterministic = True failureReputation = 0, deterministic = True optional = False, deterministic = True disableOnStateChange = null, deterministic = True completeInSequence = False, deterministic = True hidden = False, deterministic = True hideChildren = True, deterministic = True title = Transmit Science from the Surface, deterministic = True notes = null, deterministic = True completedMessage = null, deterministic = True biome = null, deterministic = True situation = SrfLanded, deterministic = True location = null, deterministic = True experiment = [], deterministic = True recoveryMethod = Transmit, deterministic = True subject = [], deterministic = True WaypointGenerator type = WaypointGenerator, deterministic = True name = WaypointGenerator, deterministic = True targetBody = null, deterministic = True WAYPOINT_0 type = RANDOM_WAYPOINT, deterministic = True targetBody = null, deterministic = True name = [ Rover Site Alpha ], deterministic = True altitude = 0, deterministic = True parameter = [], deterministic = True hidden = False, deterministic = True icon = marker, deterministic = True underwater = False, deterministic = True clustered = False, deterministic = True waterAllowed = False, deterministic = True forceEquatorial = False, deterministic = True count = 1, deterministic = True WAYPOINT_1 type = RANDOM_WAYPOINT_NEAR, deterministic = True targetBody = null, deterministic = True name = [ Rover Site Beta ], deterministic = True altitude = 0, deterministic = True parameter = [ WaypointAlpha ], deterministic = True hidden = False, deterministic = True icon = marker, deterministic = True underwater = False, deterministic = True clustered = False, deterministic = True waterAllowed = False, deterministic = True nearIndex = 0, deterministic = True chained = False, deterministic = True count = 1, deterministic = True minDistance = 500, deterministic = True maxDistance = 1000, deterministic = True WAYPOINT_2 type = RANDOM_WAYPOINT_NEAR, deterministic = True targetBody = null, deterministic = True name = [ Rover Site Charlie ], deterministic = True altitude = 0, deterministic = True parameter = [ WaypointBeta ], deterministic = True hidden = False, deterministic = True icon = marker, deterministic = True underwater = False, deterministic = True clustered = False, deterministic = True waterAllowed = False, deterministic = True nearIndex = 1, deterministic = True chained = False, deterministic = True count = 1, deterministic = True minDistance = 500, deterministic = True maxDistance = 2000, deterministic = True Output log: [INFO] ContractConfigurator.ContractType: Loading CONTRACT_TYPE: 'roverDione' [INFO] ContractConfigurator.ContractType: Successfully loaded CONTRACT_TYPE 'roverDione' 1.28.2 (not working): Spoiler Debug information for CONTRACT_TYPE 'roverDione': Configuration: CONTRACT_TYPE { name = roverDione title = Dione Rover group = Rovers agent = [NASA, ESA, JAXA, Roscosmos, ISRO].Random() description = Design and send a rover to the surface of Dione and visit the different areas marked by our scientists.&br;&br;We suggest landing your rover as close as possible to the first marker. synopsis = Send a rover to explore the surface of Dione completedMessage = Congratulations, our rover has returned important scientific data. sortKey = 1308 cancellable = true declinable = true autoAccept = false minExpiry = 0 maxExpiry = 0 maxCompletions = 1 maxSimultaneous = 1 deadline = 5475 targetBody = Dione prestige = Significant advanceFunds = 554600 / ContractMultiplier() rewardScience = 0.15 rewardReputation = 50 rewardFunds = @advanceFunds * 3.0 failureReputation = 35 failureFunds = @advanceFunds * 1.9 PARAMETER { name = VesselGroup type = VesselParameterGroup title = Uncrewed Landing on Dione define = ProbeDione targetBody = @/targetBody PARAMETER { name = NewVessel type = NewVessel title = Launch a New Vessel hideChildren = true targetBody = @/targetBody } PARAMETER { name = Crewmembers type = HasCrew minCrew = 0 maxCrew = 0 title = Uncrewed hideChildren = true targetBody = @/targetBody } PARAMETER { name = WaypointAlpha type = VisitWaypoint index = 0 distance = 100.0 disableOnStateChange = true title = Safely Land near Rover Site Alpha on Dione hideChildren = true showMessages = true targetBody = @/targetBody } PARAMETER { name = WaypointBeta type = VisitWaypoint index = 0 distance = 100.0 disableOnStateChange = true title = Visit Rover Site Beta hideChildren = true showMessages = true targetBody = @/targetBody } PARAMETER { name = WaypointCharlie type = VisitWaypoint index = 0 distance = 100.0 disableOnStateChange = true title = Visit Rover Site Charlie hideChildren = true showMessages = true targetBody = @/targetBody } PARAMETER { name = SurfaceScience type = CollectScience situation = SrfLanded recoveryMethod = Transmit title = Transmit Science from the Surface hideChildren = true targetBody = @/targetBody } } BEHAVIOUR { name = WaypointGenerator type = WaypointGenerator RANDOM_WAYPOINT { name = Rover Site Alpha hidden = false count = 1 icon = marker altitude = 0.0 waterAllowed = false forceEquatorial = false targetBody = @/targetBody } RANDOM_WAYPOINT_NEAR { name = Rover Site Beta parameter = WaypointAlpha hidden = false count = 1 icon = marker altitude = 0.0 waterAllowed = false nearIndex = 0 minDistance = 500.0 maxDistance = 1000.0 targetBody = @/targetBody } RANDOM_WAYPOINT_NEAR { name = Rover Site Charlie parameter = WaypointBeta hidden = false count = 1 icon = marker altitude = 0.0 waterAllowed = false nearIndex = 1 minDistance = 500.0 maxDistance = 2000.0 targetBody = @/targetBody } } } Data Nodes: roverDione Rovers:name = Rovers, deterministic = True Rovers:displayName = Rover Contracts, deterministic = True Rovers:minVersion = 1.22.2, deterministic = True Rovers:maxCompletions = 0, deterministic = True Rovers:maxSimultaneous = 0, deterministic = True Rovers:disabledContractType = [ BaseContract, CollectScience, ExploreBody, ExplorationContract, GrandTour, ISRUContract, RecordTrackContract, PartTest, PlantFlag, RecoverAsset, SatelliteContract, StationContract, SurveyContract, TourismContract, WorldFirstContract, RemoteTech, WBIResearchContract, ScanSatOfficial, CrossBelt, CrossHeliopause, MannedOrbit, SpaceAnalysis, SpaceHarvest ], deterministic = True Rovers:agent = Exploration, deterministic = True Rovers:sortKey = 130, deterministic = True Rovers:tip = , deterministic = True name = roverDione, deterministic = True trace = False, deterministic = True title = Dione Rover, deterministic = True tag = , deterministic = True description = Design and send a rover to the surface of Dione and visit the different areas marked by our scientists. We suggest landing your rover as close as possible to the first marker., deterministic = True topic = , deterministic = True subject = , deterministic = True notes = null, deterministic = True synopsis = Send a rover to explore the surface of Dione, deterministic = True completedMessage = Congratulations, our rover has returned important scientific data., deterministic = True agent = null, deterministic = False minExpiry = 0, deterministic = True maxExpiry = 0, deterministic = True deadline = 5475, deterministic = True cancellable = True, deterministic = True declinable = True, deterministic = True autoAccept = False, deterministic = True prestige = [ Significant ], deterministic = True targetBody = null, deterministic = True maxCompletions = 1, deterministic = True maxSimultaneous = 1, deterministic = True rewardFunds = 1663800, deterministic = False rewardReputation = 50, deterministic = True rewardScience = 0.15, deterministic = True failureFunds = 1053740, deterministic = False failureReputation = 35, deterministic = True advanceFunds = 554600, deterministic = False genericTitle = Dione Rover, deterministic = True genericDescription = Design and send a rover to the surface of Dione and visit the different areas marked by our scientists. We suggest landing your rover as close as possible to the first marker., deterministic = True sortKey = 1308, deterministic = True VesselGroup type = VesselParameterGroup, deterministic = True name = VesselGroup, deterministic = True targetBody = null, deterministic = True rewardFunds = 0, deterministic = True rewardReputation = 0, deterministic = True rewardScience = 0, deterministic = True failureFunds = 0, deterministic = True failureReputation = 0, deterministic = True optional = False, deterministic = True disableOnStateChange = null, deterministic = True completeInSequence = False, deterministic = True hidden = False, deterministic = True hideChildren = False, deterministic = True title = Uncrewed Landing on Dione, deterministic = True notes = null, deterministic = True completedMessage = null, deterministic = True duration = 00:00:00, deterministic = True define = ProbeDione, deterministic = True defineList = null, deterministic = True vessel = [], deterministic = True dissassociateVesselsOnContractFailure = True, deterministic = True dissassociateVesselsOnContractCompletion = False, deterministic = True hideVesselName = False, deterministic = True NewVessel type = NewVessel, deterministic = True name = NewVessel, deterministic = True targetBody = null, deterministic = True rewardFunds = 0, deterministic = True rewardReputation = 0, deterministic = True rewardScience = 0, deterministic = True failureFunds = 0, deterministic = True failureReputation = 0, deterministic = True optional = False, deterministic = True disableOnStateChange = null, deterministic = True completeInSequence = False, deterministic = True hidden = False, deterministic = True hideChildren = True, deterministic = True title = Launch a New Vessel, deterministic = True notes = null, deterministic = True completedMessage = null, deterministic = True Crewmembers type = HasCrew, deterministic = True name = Crewmembers, deterministic = True targetBody = null, deterministic = True rewardFunds = 0, deterministic = True rewardReputation = 0, deterministic = True rewardScience = 0, deterministic = True failureFunds = 0, deterministic = True failureReputation = 0, deterministic = True optional = False, deterministic = True disableOnStateChange = null, deterministic = True completeInSequence = False, deterministic = True hidden = False, deterministic = True hideChildren = True, deterministic = True title = Uncrewed, deterministic = True notes = null, deterministic = True completedMessage = null, deterministic = True trait = null, deterministic = True minExperience = 0, deterministic = True maxExperience = 5, deterministic = True minCrew = 0, deterministic = True maxCrew = 0, deterministic = True kerbal = [], deterministic = True excludeKerbal = [], deterministic = True WaypointAlpha type = VisitWaypoint, deterministic = True name = WaypointAlpha, deterministic = True targetBody = null, deterministic = True rewardFunds = 0, deterministic = True rewardReputation = 0, deterministic = True rewardScience = 0, deterministic = True failureFunds = 0, deterministic = True failureReputation = 0, deterministic = True optional = False, deterministic = True disableOnStateChange = True, deterministic = True completeInSequence = False, deterministic = True hidden = False, deterministic = True hideChildren = True, deterministic = True title = Safely Land near Rover Site Alpha on Dione, deterministic = True notes = null, deterministic = True completedMessage = null, deterministic = True index = 0, deterministic = True distance = 100, deterministic = True horizontalDistance = 0, deterministic = True hideOnCompletion = True, deterministic = True showMessages = True, deterministic = True WaypointBeta type = VisitWaypoint, deterministic = True name = WaypointBeta, deterministic = True targetBody = null, deterministic = True rewardFunds = 0, deterministic = True rewardReputation = 0, deterministic = True rewardScience = 0, deterministic = True failureFunds = 0, deterministic = True failureReputation = 0, deterministic = True optional = False, deterministic = True disableOnStateChange = True, deterministic = True completeInSequence = False, deterministic = True hidden = False, deterministic = True hideChildren = True, deterministic = True title = Visit Rover Site Beta, deterministic = True notes = null, deterministic = True completedMessage = null, deterministic = True index = 0, deterministic = True distance = 100, deterministic = True horizontalDistance = 0, deterministic = True hideOnCompletion = True, deterministic = True showMessages = True, deterministic = True WaypointCharlie type = VisitWaypoint, deterministic = True name = WaypointCharlie, deterministic = True targetBody = null, deterministic = True rewardFunds = 0, deterministic = True rewardReputation = 0, deterministic = True rewardScience = 0, deterministic = True failureFunds = 0, deterministic = True failureReputation = 0, deterministic = True optional = False, deterministic = True disableOnStateChange = True, deterministic = True completeInSequence = False, deterministic = True hidden = False, deterministic = True hideChildren = True, deterministic = True title = Visit Rover Site Charlie, deterministic = True notes = null, deterministic = True completedMessage = null, deterministic = True index = 0, deterministic = True distance = 100, deterministic = True horizontalDistance = 0, deterministic = True hideOnCompletion = True, deterministic = True showMessages = True, deterministic = True SurfaceScience type = CollectScience, deterministic = True name = SurfaceScience, deterministic = True targetBody = null, deterministic = True rewardFunds = 0, deterministic = True rewardReputation = 0, deterministic = True rewardScience = 0, deterministic = True failureFunds = 0, deterministic = True failureReputation = 0, deterministic = True optional = False, deterministic = True disableOnStateChange = null, deterministic = True completeInSequence = False, deterministic = True hidden = False, deterministic = True hideChildren = True, deterministic = True title = Transmit Science from the Surface, deterministic = True notes = null, deterministic = True completedMessage = null, deterministic = True biome = null, deterministic = True situation = SrfLanded, deterministic = True location = null, deterministic = True experiment = [], deterministic = True recoveryMethod = Transmit, deterministic = True subject = [], deterministic = True WaypointGenerator type = WaypointGenerator, deterministic = True name = WaypointGenerator, deterministic = True targetBody = null, deterministic = True WAYPOINT_0 type = RANDOM_WAYPOINT, deterministic = True targetBody = null, deterministic = True name = [ Rover Site Alpha ], deterministic = True altitude = 0, deterministic = True parameter = [], deterministic = True hidden = False, deterministic = True icon = marker, deterministic = True underwater = False, deterministic = True clustered = False, deterministic = True waterAllowed = False, deterministic = True forceEquatorial = False, deterministic = True count = 1, deterministic = True WAYPOINT_1 type = RANDOM_WAYPOINT_NEAR, deterministic = True targetBody = null, deterministic = True name = [ Rover Site Beta ], deterministic = True altitude = 0, deterministic = True parameter = [ WaypointAlpha ], deterministic = True hidden = False, deterministic = True icon = marker, deterministic = True underwater = False, deterministic = True clustered = False, deterministic = True waterAllowed = False, deterministic = True nearIndex = 0, deterministic = True chained = False, deterministic = True count = 1, deterministic = True minDistance = 500, deterministic = True maxDistance = 1000, deterministic = True WAYPOINT_2 type = RANDOM_WAYPOINT_NEAR, deterministic = True targetBody = null, deterministic = True name = [ Rover Site Charlie ], deterministic = True altitude = 0, deterministic = True parameter = [ WaypointBeta ], deterministic = True hidden = False, deterministic = True icon = marker, deterministic = True underwater = False, deterministic = True clustered = False, deterministic = True waterAllowed = False, deterministic = True nearIndex = 1, deterministic = True chained = False, deterministic = True count = 1, deterministic = True minDistance = 500, deterministic = True maxDistance = 2000, deterministic = True Output log: [INFO] ContractConfigurator.ContractType: Loading CONTRACT_TYPE: 'roverDione' [INFO] ContractConfigurator.ContractType: Successfully loaded CONTRACT_TYPE 'roverDione' As you can see, the "agent" line on the data nodes for the secong log file appears as null. P.S. the problem with the incoherent HasResource nodes I mentioned on the previous page keeps happening; the configs I posted there should help with diagnosing the bug. The contract itself has these two lines: minQuantity = Round((Pow(Random(0.5,1.5) * (0.3 + UnlockedTech().Count() / 100),2)*2500)/2,100) * 8 title = Have a ComSatPayload of at least @minQuantity units on the craft In what situation could minQuantity present different values on these two lines? Now that I think of it, I only ever saw this happening on contracts with more than one simultaneous instance... Edited July 7, 2020 by Tonas1997 Removed line break Quote Link to comment Share on other sites More sharing options...
GlitchHound Posted July 8, 2020 Share Posted July 8, 2020 (edited) On 7/7/2020 at 5:25 PM, Tonas1997 said: P.S. the problem with the incoherent HasResource nodes I mentioned on the previous page keeps happening; the configs I posted there should help with diagnosing the bug. The contract itself has these two lines: minQuantity = Round((Pow(Random(0.5,1.5) * (0.3 + UnlockedTech().Count() / 100),2)*2500)/2,100) * 8 title = Have a ComSatPayload of at least @minQuantity units on the craft In what situation could minQuantity present different values on these two lines? Now that I think of it, I only ever saw this happening on contracts with more than one simultaneous instance... I can't speak for whether or not it's intended/expected behavior, but I'd wager that minQuantity having a call to Random in it is your issue - probably the title is re-evaluating the expression (including generating another random number) whenever you reference minQuantity, rather than calculating a single value for the contract. You could test this by NOT specifying the title (the wiki says a requirement will typically get a default value) and seeing if there's still an issue. That may not resolve the problem in a satisfactory way, but it would at least narrow it down. Edit: Well, actually that doesn't really test it, but it works around it. TESTING it would be perhaps by using @minQuantity more than once in the title, or using it in yet another field, and seeing if that makes it pick 3 distinct values. Edited July 9, 2020 by GlitchHound correction Quote Link to comment Share on other sites More sharing options...
HawkEngineer Posted July 12, 2020 Share Posted July 12, 2020 Is there a way to generate a list of Biomes for a given body? I have using the code below but the variable "biomelist" is always null. Any help would be very appreciated. DATA { type = List<CelestialBody> biomelist = @/targetBody.Biomes() title = Find Planet's Biomes } Quote Link to comment Share on other sites More sharing options...
Morphisor Posted July 12, 2020 Share Posted July 12, 2020 17 minutes ago, HawkEngineer said: Is there a way to generate a list of Biomes for a given body? I have using the code below but the variable "biomelist" is always null. Any help would be very appreciated. DATA { type = List<CelestialBody> biomelist = @/targetBody.Biomes() title = Find Planet's Biomes } I'm pretty sure your node type should be list<biome> instead of celestialbody. Quote Link to comment Share on other sites More sharing options...
HawkEngineer Posted July 12, 2020 Share Posted July 12, 2020 33 minutes ago, Morphisor said: I'm pretty sure your node type should be list<biome> instead of celestialbody. Thanks, I made the change and it works. Appreciate the help. Quote Link to comment Share on other sites More sharing options...
HawkEngineer Posted July 12, 2020 Share Posted July 12, 2020 One more request for help which I have been trying to figure out for the last several hours. In the contract example below, I am able to select the biome randomly but when I use the @/targetBiome in the reach state parameter and collect science parameter, I keep getting a parsing error. Any help or thoughts would be appreciated. //=========================================================================================================================== DATA { type = List<Biome> targetBiome = @/targetBody.Biomes().Random() title = Find Planet's Biomes and select target biome } PARAMETER { name = ProbeLander type = VesselParameterGroup title = Probe Lander define = ProbeLander PARAMETER { name = Crewmembers type = HasCrew minCrew = 0 maxCrew = 0 title = Uncrewed hideChildren = true } PARAMETER { name = LandOnPlanet type = ReachState situation = LANDED situation = SPLASHED title = Land on @/targetBody targetBody = @/targetBody biome = @/tbiome PARAMETER { name = CollectScience type = CollectScience targetBody = @/targetBody biome = @/targetBiome situation = SrfLanded situation = SrfSplashed recoveryMethod = Transmit title = Gather Science from the surface and transmit home } } } Quote Link to comment Share on other sites More sharing options...
TranceaddicT Posted July 12, 2020 Share Posted July 12, 2020 Shouldn't it be targetBiome = @/targetBody.Biome Quote Link to comment Share on other sites More sharing options...
Morphisor Posted July 12, 2020 Share Posted July 12, 2020 @HawkEngineer Without the CC debug info it's hard to tell what exactly is being the problem; a complete overview of the contract would also help, since now we can only assume there's a proper targetbody definition in there, for instance. That said, it seems this part may be in error: Quote biome = @/tbiome My guess is that it should be the same as the biome reference in the collectscience parameter? Quote Link to comment Share on other sites More sharing options...
TranceaddicT Posted July 12, 2020 Share Posted July 12, 2020 (edited) 1 hour ago, HawkEngineer said: PARAMETER { name = LandOnPlanet type = ReachState situation = LANDED situation = SPLASHED title = Land on @/targetBody targetBody = @/targetBody biome = @/tbiome } Also, this should be biome = @/targetBiome Edited July 12, 2020 by TranceaddicT @Morphisor beat me to it Quote Link to comment Share on other sites More sharing options...
nightingale Posted July 12, 2020 Author Share Posted July 12, 2020 (edited) On 7/7/2020 at 3:25 PM, Tonas1997 said: I've just launched my RealAgencies mod and someone brought to my attention a possible problem with the agent parser in CC version 1.28.2 (1.28.1 seems to work fine): Yeah, I was way overzealous in fixing the previous agency parsing bug and allowed a bunch of special characters (including commas). I've made a fix to disallow commas in agency names. There should be no reason for that to be needed in the name since it's not used in stock agencies and the name is just an identifier (the title can have anything you want in it still). Can you test out this quick patch and let me know if it works for you? Just replace the ContractConfigurator.dll with the linked one. Quote P.S. the problem with the incoherent HasResource nodes I mentioned on the previous page keeps happening; the configs I posted there should help with diagnosing the bug. The contract itself has these two lines: minQuantity = Round((Pow(Random(0.5,1.5) * (0.3 + UnlockedTech().Count() / 100),2)*2500)/2,100) * 8 title = Have a ComSatPayload of at least @minQuantity units on the craft In what situation could minQuantity present different values on these two lines? Now that I think of it, I only ever saw this happening on contracts with more than one simultaneous instance... I'll have a look, it could be a number of things. It could be that it's somehow not treating the title as non-deterministic (ie. keeping the same value forever). It could be a scoping issue (picking up the minQuantity from another parameter). None of these things *should* happen though, the way you've done it is supposed to work. Just curious - if you put minQuantity as a variable in a DATA node instead, does that still misbehave? 1 hour ago, HawkEngineer said: One more request for help which I have been trying to figure out for the last several hours. In the contract example below, I am able to select the biome randomly but when I use the @/targetBiome in the reach state parameter and collect science parameter, I keep getting a parsing error. Any help or thoughts would be appreciated. I think your problem is that targetBiome is a List<Biome>. So you have a list of one biome, but the parameter needs one single Biome. So change the type to just Biome, and I think it will work (and @TranceaddicT makes a good point about the variable name - you need to fix that too). For everyone else, just want to say that I'm still around and working towards a KSP 1.9 release. I just need to figure out the vessel spawning stuff, which has always been one of the most annoying things in to get right in KSP. Edited July 12, 2020 by nightingale Quote Link to comment Share on other sites More sharing options...
HawkEngineer Posted July 12, 2020 Share Posted July 12, 2020 55 minutes ago, nightingale said: Yeah, I was way overzealous in fixing the previous agency parsing bug and allowed a bunch of special characters (including commas). I've made a fix to disallow commas in agency names. There should be no reason for that to be needed in the name since it's not used in stock agencies and the name is just an identifier (the title can have anything you want in it still). Can you test out this quick patch and let me know if it works for you? Just replace the ContractConfigurator.dll with the linked one. I'll have a look, it could be a number of things. It could be that it's somehow not treating the title as non-deterministic (ie. keeping the same value forever). It could be a scoping issue (picking up the minQuantity from another parameter). None of these things *should* happen though, the way you've done it is supposed to work. Just curious - if you put minQuantity as a variable in a DATA node instead, does that still misbehave? I think your problem is that targetBiome is a List<Biome>. So you have a list of one biome, but the parameter needs one single Biome. So change the type to just Biome, and I think it will work (and @TranceaddicT makes a good point about the variable name - you need to fix that too). For everyone else, just want to say that I'm still around and working towards a KSP 1.9 release. I just need to figure out the vessel spawning stuff, which has always been one of the most annoying things in to get right in KSP. Thanks for everyone's one, changing the type from list to just Biome fixed the error as well as fixing the variable reference. Quote Link to comment Share on other sites More sharing options...
oniontrain Posted July 26, 2020 Share Posted July 26, 2020 One of the older contract packs, I can't remember which, had contracts for you to visit shipwrecks it would place underwater, and to deploy weather buoys in the ocean. It might have been two different ones? Does anybody remember which packs these were, and if they've been maintained by anyone since? Quote Link to comment Share on other sites More sharing options...
pap1723 Posted July 29, 2020 Share Posted July 29, 2020 Hello all! I am looking for a solution to the following situation. I want to pay an amount of funds based on how much of a resource was delivered to a specific orbit. This isn't something that can be set in the contract beforehand, it all depends on what the player does. Basically it works as a BONUS payout. So there will be the regular reward in the contract, and then based on how much resources there are, it is paid out in addition. I am almost positive I have made contracts with bonus payouts before, but cannot remember the syntax on it. Thanks! Quote Link to comment Share on other sites More sharing options...
nightingale Posted July 30, 2020 Author Share Posted July 30, 2020 21 hours ago, pap1723 said: Hello all! I am looking for a solution to the following situation. I want to pay an amount of funds based on how much of a resource was delivered to a specific orbit. This isn't something that can be set in the contract beforehand, it all depends on what the player does. Basically it works as a BONUS payout. So there will be the regular reward in the contract, and then based on how much resources there are, it is paid out in addition. I am almost positive I have made contracts with bonus payouts before, but cannot remember the syntax on it. Thanks! Right now the only way to do any kind of sliding scale is using a tier system with optional parameters (set optional=true on a parameter). Each tier would be a separate parameter: PARAMETER { type=HasResource resource = LiquidFuel minQuantity = 100.0 rewardFunds = 1000.0 optional=true } PARAMETER { type=HasResource resource = LiquidFuel minQuantity = 200.0 rewardFunds = 2000.0 optional=true } ... etc You may also want a "hold for 5 seconds" type parameter as well - otherwise I'm not sure what order KSP will look at the parameters in and it may not register all the tier parameters. Quote Link to comment Share on other sites More sharing options...
severedsolo Posted August 2, 2020 Share Posted August 2, 2020 (edited) @nightingale - welcome back! Seeing an issue where a DATA node using CelestialBody (and possibly also due to it using SelectUnique()) is not "locking" the contracts on a successful roll and is reevaluating and withdrawing the contract instead if another body in the list of candidates can't satisfy the REQUIREMENT. Contract that reproduces the issue (used PasteBin as I'm about to hide the issue in E+ by adding another parameter to the list) https://pastebin.com/JWyyKWLH Test Case: Mun has been orbited and a return from orbit has been completed, Minmus has been orbited but not returned from. Expected Behaviour: A "return from Minmus" contract should be offered and not withdrawn. Actual Behaviour: Although a "return from Minmus" contract is offered, it's withdrawn when the DATA node is re-evaluated. My suspicion is this is because the DATA node contains two candidates, Mun and Minmus - but only one of them satisfies the requirement node: You can see the Body is being switched to Mun in Mission Control as the requirement test changes to "Must not have returned from orbit of Mun" OrbitedBodies().Where(b => !b.IsHomeWorld()).SelectUnique() REQUIREMENT { name = ReturnFromOrbit type = ReturnFromOrbit targetBody = @/targetBody1 invertRequirement = true } What I believe should happen, is once a contract has successfully generated, it should be left alone (ie CC should consider offering a new contract if Mun also meets the requirements, rather than re-evaluating the Minmus one) Suspected Root Cause: The List<CelestialBody> contains two valid candidates, but only one of them satisfies the REQUIREMENT node. Presumably this will get worse as the player reaches more and more bodies, as the ratio of "good" candidates vs "bad" candidates will get slimmer and slimmer. Workarounds: Make it so the List<> can only have candidates that satisfy the requirements. Ideally of course, I'd like a "HaveReturnedFromOrbit" method for CelestialBody() but this will hide the issue, rather than fixing it. Log: https://www.dropbox.com/s/kx7gh1e88mhggmj/KSP.log?dl=0 Edited August 2, 2020 by severedsolo Quote Link to comment Share on other sites More sharing options...
TranceaddicT Posted August 2, 2020 Share Posted August 2, 2020 (edited) @severedsolo In the initial CONTRACT_TYPE definition you set CONTRACT_TYPE { name = ExplorationPlus-Gemini ... targetBody = @/targetBody1 ... } Once it's set, should you not use targetBody in the remaining PARAMETER nodes to lock in that value? Why does this not work? PARAMETER { name = ReturnerDefine ... PARAMETER { ... title = Orbit @targetBody } Isn't that why when the contract is reevaluated everything goes wonky! Because you continue referencing a procedurally generated variable, @/targettBody1 instead of the initialized variable targetBody . Edited August 2, 2020 by TranceaddicT Quote Link to comment Share on other sites More sharing options...
severedsolo Posted August 2, 2020 Share Posted August 2, 2020 1 hour ago, TranceaddicT said: Once it's set, should you not use targetBody in the remaining PARAMETER nodes to lock in that value? Appreciate the attempt to help - in theory doing this is exactly the same as referencing @/targetBody1 (just tested and got same behaviour, in case it was a workaround). The DATA node shouldn't really be re-evaluated at all if it scores a "hit" - usual behaviour would be for CC to evaluate the DATA node to see if it can generate a *new* contract, rather than re-evaluating an already generated one. Quote Link to comment Share on other sites More sharing options...
Morphisor Posted August 2, 2020 Share Posted August 2, 2020 @nightingale In case you want to further investigate the issue presented by @severedsolo, I have witnessed similar behaviour within your own Field Research contracts: contracts suddenly generating, then being retracted almost as quickly. This isn't a new thing either. The main thing in common is target selection using data nodes and selection from a larger pool of possible targets; both contract sets use select.unique to do so, though I'm unsure if the problem is within that syntax or with data nodes as whole. Quote Link to comment Share on other sites More sharing options...
nightingale Posted August 4, 2020 Author Share Posted August 4, 2020 @severedsolo - Yeah, that's an old bug, but your post gave me enough hints that I think I finally know what's going on. The requirement nodes get "soft-copied" from the contract type to the contract instance when the contract is created. So in a sense the contract and contract type are "sharing" the requirement node, and when there is a new check for a generating a different contract of the same type, the value in the requirement gets change,d invalidating the original contract. I think this used to work because the contract generator used to create a copy of the contract and I changed how that worked when redoing the mission control screen. I should be able to fix this, but I'll need to do some tests. Quote Link to comment Share on other sites More sharing options...
nightingale Posted August 4, 2020 Author Share Posted August 4, 2020 Okay, hopefully this is the last release against KSP 1.8, and should be stable. Next up I'm going to try to solve all the vessel spawning issues against KSP 1.9, then move on to KSP 1.10. Contract Configurator 1.28.3 More changes to AgentParser, now commas are disallowed as part of agent names (thanks Tonas1997). Fixed requirements being regenerated incorrectly on some contracts, resolves issues with "flickering" of contracts in mission control (thanks severedsolo). Quote Link to comment Share on other sites More sharing options...
nightingale Posted August 5, 2020 Author Share Posted August 5, 2020 I've fixed the vessel spawning issues, and this release is looking good on KSP 1.9. I've smoke tested against KSP 1.10 and it seems okay there too. However, I'm going to do a formal release against KSP 1.10 soon too (but in the meantime let me know if this one has issues). Contract Configurator 1.29.0 Recompile against KSP 1.9.1. Fixed various vessel spawning issues. Quote Link to comment Share on other sites More sharing options...
theonegalen Posted August 6, 2020 Share Posted August 6, 2020 @nightingale you amazing person! And just in time for my new install on my new computer too! Quote Link to comment Share on other sites More sharing options...
Phoenix13 Posted August 7, 2020 Share Posted August 7, 2020 une excellente mise à jour en date du 6.08.2020 qui fait planter les jeux. disparition de la barre d'acces des batiments impossible d'acceder aux batiments une partie de 300h de jeux qui passe a la poubelle merci Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.