linuxgurugamer Posted December 30, 2015 Share Posted December 30, 2015 (edited) somewhat related, in Waypoint Manager, while the distance to the waypoint was correct, the heading to it was totally off. I'm comparing it to the heading in the navball when I'm heading to a waypoint. For example, while the navball said I was heading at 267 degrees, the Waypoint Manager said the heading to the waypoint was 12 degrees Waypoint manager version 2.4.4 Contract Configurator 1.9.1 Edited December 30, 2015 by linuxgurugamer Quote Link to comment Share on other sites More sharing options...
nightingale Posted December 30, 2015 Author Share Posted December 30, 2015 5 hours ago, linuxgurugamer said: 1. In the mission control, where you select the missions, all parts of the mission are visible before Can you post a screenshot with details? 5 hours ago, linuxgurugamer said: 2. Waypoint manager did not pick up the second waypoint when it became visible in the contract window. Also, didn't see the icon anywhere on screen. Did saving and loading make it show up? Or did it just never show up? Please raise a GitHub issue with details. 5 hours ago, linuxgurugamer said: 3. I just noticed that the Contracts + window is working properly, but the stock contract window is not. See this screenshot: Usually indicates an exception. Check logs and let me know what you see. This could likely be affecting #2 as well. Quote Link to comment Share on other sites More sharing options...
linuxgurugamer Posted December 30, 2015 Share Posted December 30, 2015 (edited) Did you miss my follow-up message? #3 was solved when I removed the "hidden = true" line. re. Waypoint manager saving/loading, do you want me to totally exit the game and then reenter it? Did you see this comment, after I removed the "hidden = true" line: The Waypoint Manager now showed 5 waypoints (the contract has 5 parts, but only uses a certain number of them). Here is a picture inside the Mission Control: https://www.dropbox.com/s/vweyu25adwh3jus/screenshot_2015-12-30--15-31-54.png?dl=0 I see the following exception in the log, after loading: ArgumentException: Getting control 0's position in a group with only 0 controls when doing Repaint Aborting at UnityEngine.GUILayoutGroup.GetNext () [0x00000] in <filename unknown>:0 at UnityEngine.GUILayoutUtility.BeginLayoutGroup (UnityEngine.GUIStyle style, UnityEngine.GUILayoutOption[] options, System.Type LayoutType) [0x00000] in <filename unknown>:0 at UnityEngine.GUILayout.BeginVertical (UnityEngine.GUIContent content, UnityEngine.GUIStyle style, UnityEngine.GUILayoutOption[] options) [0x00000] in <filename unknown>:0 at UnityEngine.GUILayout.BeginVertical (UnityEngine.GUILayoutOption[] options) [0x00000] in <filename unknown>:0 at ContractsWindow.contractsWindow.DrawWindow (Int32 id) [0x00000] in <filename unknown>:0 at ContractsWindow.DMC_MBW.DrawWindowInternal (Int32 id) [0x00000] in <filename unknown>:0 at UnityEngine.GUILayout+LayoutedWindow.DoWindow (Int32 windowID) [0x00000] in <filename unknown>:0 at UnityEngine.GUI.CallWindowDelegate (UnityEngine.WindowFunction func, Int32 id, UnityEngine.GUISkin _skin, Int32 forceRect, Single width, Single height, UnityEngine.GUIStyle style) [0x00000] in <filename unknown>:0 Edited December 30, 2015 by linuxgurugamer Quote Link to comment Share on other sites More sharing options...
linuxgurugamer Posted December 30, 2015 Share Posted December 30, 2015 :-( Sad face. I just found another problem: Each contract has 5 main PARAMETERS inside a Sequence PARAMETER. Data node: DATA { hasTherm = @/targetVessel.Parts().Where(p => p == sensorThermometer).Count() > 0 } Each paramter has the following sub parameter: PARAMETER { name = Location1AllResearch type = All title = Conduct research at the @/a1 PARAMETER { name = Location1TemperatureScan type = CollectScience experiment = temperatureScan recoveryMethod = None rewardScience = 0.25 REQUIREMENT { name = Location1TemperatureScanRequirement type = Expression expression = @/hasTherm } } Only difference is that the @/a1 is a2/a3/a4/a5 for each succeeding, the name is Location[12345]TemperatureScan It only requires the temperature to be collected at the first waypoint Here is a link to the complete contract: https://www.dropbox.com/s/46osmqtic1gbo7i/RoverMissions.cfg?dl=0 Quote Link to comment Share on other sites More sharing options...
linuxgurugamer Posted December 30, 2015 Share Posted December 30, 2015 So, I'm trying to make this a little simpler (ha) by using Iterators instead of generating the entire thing in one large file. I can't figure out the following: DATA { type = int numWaypoints = Random(1, 5) } DATA { type = List<int> nums = [ 1,2,3,4,5,6,7,8,9,10] } The following is throwing an error. I've tried the following lines: id = nums.Where(b +> b <= @/numWaypoints) id = nums.Where(b +> b() <= @/numWaypoints) id = nums.Where(b +> b.int() <= @/numWaypoints) ITERATOR { type = int id = nums.Where (b => b <= @/numWaypoints) } From the error log: NotSupportedException: Can't parse identifier for type System.Int32 in class ContractConfigurator.ExpressionParser.NumericValueExpressionParser`1[System.Int32] - not supported! at ContractConfigurator.ExpressionParser.ExpressionParser`1[System.Int32].ParseIdentifier (ContractConfigurator.ExpressionParser.Token token) [0x00000] in <filename unknown>:0 at ContractConfigurator.ExpressionParser.NumericValueExpressionParser`1[System.Int32].ParseIdentifier (ContractConfigurator.ExpressionParser.Token token) [0x00000] in <filename unknown>:0 at ContractConfigurator.ExpressionParser.ExpressionParser`1[System.Int32].ParseVarOrIdentifier (ContractConfigurator.ExpressionParser.Token token) [0x00000] in <filename unknown>:0 at ContractConfigurator.ExpressionParser.ExpressionParser`1[System.Int32].ParseSimpleStatement[Int32] () [0x00000] in <filename unknown>:0 Rethrow as Exception: Error parsing statement. Error occurred near '*': nums.Where (i => i <= @/numWayPoints) ....* <-- HERE Quote Link to comment Share on other sites More sharing options...
linuxgurugamer Posted December 31, 2015 Share Posted December 31, 2015 Is there any way an Iterator value can be used as a data value, like this: PARAMETER { type = ReachState ITERATOR { type = CelestialBody targetBody = AllBodies().Where(cb => cb.IsPlanet()) } } PARAMETER { name = Location Arrival type = VisitWaypoint index = 1 title = test title referencing @..targetBody } I'm actually trying to use it with a list of ints, but can't seem to reference the value defined inside the Iterator Quote Link to comment Share on other sites More sharing options...
nightingale Posted December 31, 2015 Author Share Posted December 31, 2015 7 hours ago, linuxgurugamer said: Did you miss my follow-up message? #3 was solved when I removed the "hidden = true" line. Yup, missed the stuff after the page break, as the last posted user on the thread matched the last post on the page,so didn't think to look for a second page. 7 hours ago, linuxgurugamer said: ArgumentException: Getting control 0's position in a group with only 0 controls when doing Repaint Aborting at UnityEngine.GUILayoutGroup.GetNext () [0x00000] in <filename unknown>:0 at UnityEngine.GUILayoutUtility.BeginLayoutGroup (UnityEngine.GUIStyle style, UnityEngine.GUILayoutOption[] options, System.Type LayoutType) [0x00000] in <filename unknown>:0 at UnityEngine.GUILayout.BeginVertical (UnityEngine.GUIContent content, UnityEngine.GUIStyle style, UnityEngine.GUILayoutOption[] options) [0x00000] in <filename unknown>:0 at UnityEngine.GUILayout.BeginVertical (UnityEngine.GUILayoutOption[] options) [0x00000] in <filename unknown>:0 at ContractsWindow.contractsWindow.DrawWindow (Int32 id) [0x00000] in <filename unknown>:0 at ContractsWindow.DMC_MBW.DrawWindowInternal (Int32 id) [0x00000] in <filename unknown>:0 at UnityEngine.GUILayout+LayoutedWindow.DoWindow (Int32 windowID) [0x00000] in <filename unknown>:0 at UnityEngine.GUI.CallWindowDelegate (UnityEngine.WindowFunction func, Int32 id, UnityEngine.GUISkin _skin, Int32 forceRect, Single width, Single height, UnityEngine.GUIStyle style) [0x00000] in <filename unknown>:0 This is an exception from Contracts Window+, and I'm going to assume it's the problem until I hear otherwise. 39 minutes ago, linuxgurugamer said: Is there any way an Iterator value can be used as a data value, like this: PARAMETER { type = ReachState ITERATOR { type = CelestialBody targetBody = AllBodies().Where(cb => cb.IsPlanet()) } } PARAMETER { name = Location Arrival type = VisitWaypoint index = 1 title = test title referencing @..targetBody } I'm actually trying to use it with a list of ints, but can't seem to reference the value defined inside the Iterator You're looking at it the wrong way. You can't reference stuff that's happening in the iterator outside the iterator's parent node, because the iteration isn't happening there. In that node, there is no @targetBody value. If you change your ReachState to something like an All, and put the VisitWaypoint underneath it, then it will work better for you. Quote Link to comment Share on other sites More sharing options...
linuxgurugamer Posted December 31, 2015 Share Posted December 31, 2015 This is what happens when I don't do a cutnpaste, because I actually did it that way, just screwed up in making the post. To be clearer, here is a fragment of code: DATA { type = List<int> nums = [1,2,3,4,5] } .... PARAMETER { name = Sequence type = Sequence completeInSequence = true PARAMETER { name = ReachState type = ReachState failWhenUnmet = true maxTerrainAltitude = 1000 } PARAMETER { name = PARAM1 type = All ITERATOR { type = int id = @/nums } PARAMETER { name = Sequence type = Sequence disableOnStateChange = false title = Investigate @/currentLocs.ElementAt(@..id) hiddenParameter = Location @/currentLocs.ElementAt(@..id) AllResearch and this is from the error log: ContractConfigurator.SequenceFactory: CONTRACT_TYPE 'RoverExplore', PARAMETER 'Sequence' of type 'Sequence': Error parsing title (Filename: C:/buildslave/unity/build/artifacts/StandalonePlayerGenerated/UnityEngineDebug.cpp Line: 56) Exception: Unknown identifier '@/Sequence/PARAM1/Sequence/'. I did try the following alternative, with the same error: title = @/currentLocs.ElementAt(@..id) Quote Link to comment Share on other sites More sharing options...
nightingale Posted December 31, 2015 Author Share Posted December 31, 2015 2 hours ago, linuxgurugamer said: This is what happens when I don't do a cutnpaste, because I actually did it that way, just screwed up in making the post. To be clearer, here is a fragment of code: DATA { type = List<int> nums = [1,2,3,4,5] } .... PARAMETER { name = Sequence type = Sequence completeInSequence = true PARAMETER { name = ReachState type = ReachState failWhenUnmet = true maxTerrainAltitude = 1000 } PARAMETER { name = PARAM1 type = All ITERATOR { type = int id = @/nums } PARAMETER { name = Sequence type = Sequence disableOnStateChange = false title = Investigate @/currentLocs.ElementAt(@..id) hiddenParameter = Location @/currentLocs.ElementAt(@..id) AllResearch and this is from the error log: ContractConfigurator.SequenceFactory: CONTRACT_TYPE 'RoverExplore', PARAMETER 'Sequence' of type 'Sequence': Error parsing title (Filename: C:/buildslave/unity/build/artifacts/StandalonePlayerGenerated/UnityEngineDebug.cpp Line: 56) Exception: Unknown identifier '@/Sequence/PARAM1/Sequence/'. I did try the following alternative, with the same error: title = @/currentLocs.ElementAt(@..id) It's like a path - you need a slash: @../id Quote Link to comment Share on other sites More sharing options...
linuxgurugamer Posted December 31, 2015 Share Posted December 31, 2015 3 hours ago, nightingale said: It's like a path - you need a slash: @../id I had tried that, but did again, here is the first error in the log file: ContractConfigurator.VisitWaypointFactory: CONTRACT_TYPE 'RoverExplore', PARAMETER 'Location @/currentLocs.ElementAt(@../id) Arrival' of type 'VisitWaypoint': Error parsing name (Filename: C:/buildslave/unity/build/artifacts/StandalonePlayerGenerated/UnityEngineDebug.cpp Line: 56) Exception: Unknown identifier '@/Sequence/PARAM1/Sequence/id'. UnityEngine.Debug:Internal_LogException(Exception, Object) UnityEngine.Debug:LogException(Exception) ContractConfigurator.LoggingUtil:LogException(Exception) ContractConfigurator.ConfigNodeUtil:ParseValue(ConfigNode, String, Action`1, IContractConfiguratorFactory, String, Func`2) ContractConfigurator.ConfigNodeUtil:ParseValue(ConfigNode, String, Action`1, IContractConfiguratorFactory, Func`2) ContractConfigurator.DeferredLoadUtil:ExecuteLoad(DeferredLoadObject`1) System.Reflection.MonoMethod:InternalInvoke(Object, Object[], Exception&) System.Reflection.MonoMethod:Invoke(Object, BindingFlags, Binder, Object[], CultureInfo) System.Reflection.MethodBase:Invoke(Object, Object[]) ContractConfigurator.ConfigNodeUtil:ExecuteDeferredLoads() ContractConfigurator.ContractType:Load(ConfigNode) ContractConfigurator.<LoadContractConfig>d__1e:MoveNext() ContractConfigurator.ContractConfigurator:Update() Quote Link to comment Share on other sites More sharing options...
nightingale Posted December 31, 2015 Author Share Posted December 31, 2015 1 hour ago, linuxgurugamer said: I had tried that, but did again, here is the first error in the log file: ContractConfigurator.VisitWaypointFactory: CONTRACT_TYPE 'RoverExplore', PARAMETER 'Location @/currentLocs.ElementAt(@../id) Arrival' of type 'VisitWaypoint': Error parsing name (Filename: C:/buildslave/unity/build/artifacts/StandalonePlayerGenerated/UnityEngineDebug.cpp Line: 56) Exception: Unknown identifier '@/Sequence/PARAM1/Sequence/id'. UnityEngine.Debug:Internal_LogException(Exception, Object) UnityEngine.Debug:LogException(Exception) ContractConfigurator.LoggingUtil:LogException(Exception) ContractConfigurator.ConfigNodeUtil:ParseValue(ConfigNode, String, Action`1, IContractConfiguratorFactory, String, Func`2) ContractConfigurator.ConfigNodeUtil:ParseValue(ConfigNode, String, Action`1, IContractConfiguratorFactory, Func`2) ContractConfigurator.DeferredLoadUtil:ExecuteLoad(DeferredLoadObject`1) System.Reflection.MonoMethod:InternalInvoke(Object, Object[], Exception&) System.Reflection.MonoMethod:Invoke(Object, BindingFlags, Binder, Object[], CultureInfo) System.Reflection.MethodBase:Invoke(Object, Object[]) ContractConfigurator.ConfigNodeUtil:ExecuteDeferredLoads() ContractConfigurator.ContractType:Load(ConfigNode) ContractConfigurator.<LoadContractConfig>d__1e:MoveNext() ContractConfigurator.ContractConfigurator:Update() Looks to me you need another ../ for where you are in the tree. Quote Link to comment Share on other sites More sharing options...
linuxgurugamer Posted December 31, 2015 Share Posted December 31, 2015 I tried that: PARAMETER { name = Sequence type = Sequence completeInSequence = true PARAMETER { name = ReachState type = ReachState failWhenUnmet = true maxTerrainAltitude = 1000 } PARAMETER { name = PARAM1 @id type = All ITERATOR { type = int id = @/nums } PARAMETER { name = Sequence type = Sequence disableOnStateChange = false title = Investigate @/currentLocs.ElementAt(@../../id) hiddenParameter = Location @/currentLocs.ElementAt(@../../id) AllResearch and I got: ContractConfigurator.SequenceFactory: CONTRACT_TYPE 'RoverExplore', PARAMETER 'Sequence' of type 'Sequence': Error parsing title (Filename: C:/buildslave/unity/build/artifacts/StandalonePlayerGenerated/UnityEngineDebug.cpp Line: 56) Exception: Unknown identifier '@/Sequence/id' I'm curious about your suggesting the double .., since as I read this, with the ../ is the current paraneter, and one ../ is the immediate parent. The id is defined in the immediate parent. According to your docs: Identifiers created in a ITERATOR node are accessed as if they were a part of the parent node (by referencing them as @<identifier> within that node). You can see that I added @id to the PARAM1 and that didn't generate an error, but inside any of the child parameters, it doesn't seem to be accessable Quote Link to comment Share on other sites More sharing options...
nightingale Posted December 31, 2015 Author Share Posted December 31, 2015 Every time you post the contract seems to be vastly different. Post the whole thing and I will look at it tonight. Also, I would recommend against using an expression for a name - I probably should make it more explicitly not supported. Quote Link to comment Share on other sites More sharing options...
linuxgurugamer Posted December 31, 2015 Share Posted December 31, 2015 I did post it earlier, but to make it easier to debug, I'm going to make a minimal contract to show the problem. I'll have it up later. If you don't want an expression for a name, then, inside an iterative parameter, there will be multiple names with the same value. I suppose it's ok, but can get confusing when debugging Quote Link to comment Share on other sites More sharing options...
linuxgurugamer Posted December 31, 2015 Share Posted December 31, 2015 (edited) I'm very embarrassed. I've been programming for more than 40 years. In that time, I've learned many lessons, one of which I totally forgot. I made a minimal contract, and immediately the syntax error I was doing was obvious. I'm sorry for the past several posts, all I can say is that I'm out of practice, having been in system administration for the past 10 years. Let me say that I went down the ITERATOR path after the problems with the massive script-built set of contracts, in the hope it would solve some of the problems I was having. Instead it caused a whole bunch of problem, mostly my fault. I would like to thank you for your patience and the answers, some of them were very useful. I would like to request that you continue to allow an expression for a name, for the following reason: If the names aren't unique, then there would be no way to reference it in the Random_waypoint_near section in the parameter = line Now that it compiles, I can test. The issues I raised on github were raised by a contract (which I can send you if you like) which did not do any iteration. I'll update them with the results from my next set of tests. LGG Edited December 31, 2015 by linuxgurugamer Quote Link to comment Share on other sites More sharing options...
linuxgurugamer Posted January 1, 2016 Share Posted January 1, 2016 I'm not sure if this is possible yet: when generating a RANDOM_WAYPOINT, I'd like the name to be unique for each. I have a number of strings in a list, which I'd like to use for this Also. the "parameter =", would be useful if it could refer to a generated parameter name, so that a number of waypoints can be generated, each dependent on a different parameter. Finally, the nearIndex, would be nice if, instead of all the waypoints being near a single one, if each could be near the previous one. This isn't critical, for now I'm just putting in 5 RANDOM_WAYPOINT seconds, but would be nice if I could make that smaller. Quote Link to comment Share on other sites More sharing options...
nightingale Posted January 1, 2016 Author Share Posted January 1, 2016 @linuxgurugamer - Your argument makes sense, and since it seems to work anyway, I'll keep the expressions in names stuff. What you're looking for is very similar to #401 in spirit (adding support for lists in attributes of WaypointGenerator in this case, rather than SpawnKerbal). Can you raise enhancements for the following: Support for list of names in RANDOM_WAYPOINT (and similar nodes) in WaypointGenerator Support for "chained" waypoints in RANDOM_WAYPOINT_NEAR (where they are near one after the other, rather than near a single one). I can't do anything directly for referring to a generated name, but if you use a numeric identifier like you're currently doing it's probably going to be the best solution. Quote Link to comment Share on other sites More sharing options...
ToneStack Posted January 1, 2016 Share Posted January 1, 2016 I Noticed that in the Seti Probe first tech tree, there is a point where the Inline cockpit is unlocked and usable, but the command pod is not. Would there possibly be a way in CC to set it up so that If they were to use the Inline cockpit as part of a rocket/spaceplane, and the command pod has not yet been unlocked, When the inline cockpit leaves the atmosphere, If it does not return to the atmosphere within 2 minutes, the kerbal onboard the Inline cockpit dies? But If the command pod has already been unlocked, then there are no restrictions. Quote Link to comment Share on other sites More sharing options...
nightingale Posted January 1, 2016 Author Share Posted January 1, 2016 7 hours ago, ToneStack said: I Noticed that in the Seti Probe first tech tree, there is a point where the Inline cockpit is unlocked and usable, but the command pod is not. Would there possibly be a way in CC to set it up so that If they were to use the Inline cockpit as part of a rocket/spaceplane, and the command pod has not yet been unlocked, When the inline cockpit leaves the atmosphere, If it does not return to the atmosphere within 2 minutes, the kerbal onboard the Inline cockpit dies? But If the command pod has already been unlocked, then there are no restrictions. This could be done by a mod, but it has nothing to do with Contract Configurator. Quote Link to comment Share on other sites More sharing options...
linuxgurugamer Posted January 1, 2016 Share Posted January 1, 2016 11 hours ago, nightingale said: @linuxgurugamer - Your argument makes sense, and since it seems to work anyway, I'll keep the expressions in names stuff. What you're looking for is very similar to #401 in spirit (adding support for lists in attributes of WaypointGenerator in this case, rather than SpawnKerbal). Can you raise enhancements for the following: Support for list of names in RANDOM_WAYPOINT (and similar nodes) in WaypointGenerator Support for "chained" waypoints in RANDOM_WAYPOINT_NEAR (where they are near one after the other, rather than near a single one). I can't do anything directly for referring to a generated name, but if you use a numeric identifier like you're currently doing it's probably going to be the best solution. Done, & Thanks Quote Link to comment Share on other sites More sharing options...
linuxgurugamer Posted January 1, 2016 Share Posted January 1, 2016 Ok. I've made a lot of good progress, but am stuck. Here are the issues: in the RandomWaypointNear, the parameter doesn't seem to work, I've tried a number of permutations. Probably as a result of the above, Waypoint Manager shows all waypoints, and on the map, will show them until they have been investigated Experiments seem to only be complete-able one time. After completing an experiment at the first location, it appears to be fulfilled when going to the next location This isn't a problem, just wondering if there is a better way: I'm using the following line to make sure that unused waypoints aren't shown at all: hidden = @/numWaypoints >= 5? false:true When in the middle of a contract, I see by using the alt-F10, that the parameter line looks correct, but it always says "deterministic = true". See the screenshot in the zip file which also has the contract for an example. The RANDOM_WAYPOINT_NEAR nodes in the posted contract show three different attempts to get the parameter to work, none of them do. Here is a link to the zip file which contains the rover contract and the 3 screenshots I took: https://www.dropbox.com/s/xkcdpmdy1do2cdu/RoverContract.zip?dl=0 Quote Link to comment Share on other sites More sharing options...
inigma Posted January 1, 2016 Share Posted January 1, 2016 (edited) How would I set a ReachState to fail a contract entirely if maximum G force of 4Gs were exceed by the player during a regular air flight? maxAccelleration = 4.0 failWhenUnmet = false ? im not able to test atm. Edited January 1, 2016 by inigma Quote Link to comment Share on other sites More sharing options...
nightingale Posted January 2, 2016 Author Share Posted January 2, 2016 Okay, finally got a chance to really dig in, and I can see why you were having issues, there were some nasty bugs that was really messing this up. I recommend you grab the dev version, as it actually works for what you're doing (and is the reason why the answers to the questions below may be things you previously tried. 4 hours ago, linuxgurugamer said: in the RandomWaypointNear, the parameter doesn't seem to work, I've tried a number of permutations. Just the parameter name, so something like "parameter = PARAM1 0" in your case. This was one of the very broken things though. 8 hours ago, linuxgurugamer said: 2. Probably as a result of the above, Waypoint Manager shows all waypoints, and on the map, will show them until they have been investigated Also fixed. 8 hours ago, linuxgurugamer said: 3. Experiments seem to only be complete-able one time. After completing an experiment at the first location, it appears to be fulfilled when going to the next location Normally, this is where you'd want to use disableOnStateChange = false, but there's not state change back to incomplete for the experiment ones. What you need to do is set it with VisitWaypointFirst, then CollectScience with completeInSequence = true. This will prevent the CollectScience from being able to fire unless you're at the waypoint. 8 hours ago, linuxgurugamer said: 4. This isn't a problem, just wondering if there is a better way: I'm using the following line to make sure that unused waypoints aren't shown at all: hidden = @/numWaypoints >= 5? false:true Since the ternary expression is using a boolean to get a boolean, you can just do: hidden = @/numWaypoints < 5 5 hours ago, inigma said: How would I set a ReachState to fail a contract entirely if maximum G force of 4Gs were exceed by the player during a regular air flight? maxAccelleration = 4.0 failWhenUnmet = false ? im not able to test atm. Close, but it's the other way around - you want failWhenUnmet = true Quote Link to comment Share on other sites More sharing options...
inigma Posted January 2, 2016 Share Posted January 2, 2016 (edited) BEHAVIOUR { name = SpawnVessel type = SpawnVessel deferVesselCreation = false VESSEL { name = KSS Rix craftURL = ContractPacks/GAP/Assets/Sea/Inigma Class Carrier.craft vesselType = Ship owned = false targetBody = Kerbin lat = @/carrierLat lon = @/carrierLon alt = -1 heading = 90 CREW { name = NewKerbal( Male , "Adm. Redbiertje Kerman" , "Pilot") addToRoster = false } } } this is not giving me a male Adm. Redbiertje Kerman consistently. neither is CREW { name =Adm. Redbiertje Kerman gender = Male addToRoster = false } as the exception comes back saying that gender is not a recognized attribute for Crew. Edited January 2, 2016 by inigma Quote Link to comment Share on other sites More sharing options...
inigma Posted January 2, 2016 Share Posted January 2, 2016 2 hours ago, nightingale said: Close, but it's the other way around - you want failWhenUnmet = true I have this parameter in a contract: PARAMETER { name = ReachState type = ReachState maxAcceleration = 2.0 failWhenUnmet = true } This parameter shows with green completed check mark as expected. But when you exceed 2 gees, the parameter loses its green completed check mark, and it doesn't fail the contract, but instead when the craft goes back under 2 gees, the parameter goes back to complete with a green check mark. Is this working as designed, or is this attribute supposed to fail the contract outright? 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.