Jump to content

Teykn

Members
  • Posts

    18
  • Joined

  • Last visited

Posts posted by Teykn

  1. Heyo, wondering if anyone has knowledge on nested ALL parameters.

    Have a contract that is structured like this:

    PARAMETER
      		{
        			name = OrbitWrapper
           			title = Complete both orbits
    	  		type = All
    	  		notes = These orbits can be completed in any order.
         			completeInSequence = true
    			
    			PARAMETER
    			{
    				name = Orbit1Wrapper
    				title = Complete orbit 1
    				type = All
    				disableOnStateChange = true
    	
    				PARAMETER
    				{
    					name = Orbit
    					type = Orbit
    					minPeA = @/startPeA
    					minApA = @/startApA
    					maxApA = @minApA + 100000
    					targetBody = HomeWorld()
    				}
    	
    				PARAMETER
    				{
    					name = Duration
    					type = Duration
    					duration =  @/FirstDuration
    					preWaitText = Stay in specified orbit for
    					waitingText = Orbiting...
    					completionText = Orbits completed, you may alter your orbit now.
    				}
    			}
    	
    			PARAMETER
    			{
    				name = Orbit2Wrapper
    				title = Complete orbit 2
    				type = All
    				disableOnStateChange = true
    			
    				PARAMETER
    				{
    					name = Orbit2
    					type = Orbit
    					minPeA = @/startPeA
    					minApA = @/endApA
    					maxApA = @minApA + 200000
    					targetBody = HomeWorld()
    				}
    				
    				PARAMETER
    				{
    					name = Duration2
    					type = Duration
    					duration =  @/SecondDuration
    					preWaitText = Stay in specified orbit for
    					waitingText = Orbiting...
    					completionText = Orbits completed, you may fire retros when ready.
    				}
    			}
    		}

     However, in game, I've noticed that the Orbit parameters do not display the requirements for completing the parameter. CC debug menu says that hideChildren is set to false, so I am not sure what else could cause the orbital requirements to hide beside it being a nested ALL parameter. Any idea what could cause this?

  2. Heyo, is there anyway to create a list from 2+ other lists in CC?

    What I'm trying to do is something like:

    Quote

    DATA
        {
            type = List<Vessel>
            requiredValue = true
            validVesselList = $stationList + $highOrbitList
            title = Must have a valid vessel 
        }

    where stationList and highOrbitList are both lists of vessels. I doubt this is the correct syntax though, since + is used mostly for numbers afaik. What should I use here?

  3. Ok, with further testing, it seems the issue is NOT in the HasCrew parameter, but with how CC updates i think. If VPG #1 defines a vessel and there is a VPG #2 that uses the vessel, then whenever VPG #1 completes, which changes the state of the vessel, all of VPG #2’s child parameters are satisfied no matter what.

     

    EDIT: Issue has been fixed. Turns out completeInSequence = true is needed for child parameters as well to ensure they don't break. I'm... not sure why they're needed or how that fixes it but I'm not going to question why. 

  4. On 1/28/2022 at 5:36 PM, Teykn said:

    Question regarding the HasCrew Parameter, and overall how CC tracks and updates parameters:

    I've been experimenting with the parameter in a contract, specifically in a VesselParameterGroup. Currently having trouble within 2 VPGs. See below:

    VPG #1, which defines the vessel "spaceStation": 

      Reveal hidden contents

        PARAMETER
        {
            name = vesselGroupLaunch
            type = VesselParameterGroup
            title = Put your first Space Station in Orbit
            notes = The station must include at least 1 Docking Port and support for at least 3 Crew
            define = spaceStation
            defineList = spaceStationsEarth

            PARAMETER
            {
                name = NewVessel
                type = NewVessel
                title = Launch a New Station
                hideChildren = true
            }
            PARAMETER
            {
                name = Crewmembers
                type = HasCrew
                minCrew = 0
                maxCrew = 0
                title = Uncrewed
                hideChildren = true
            }
            PARAMETER
            {
                name = HasCapacity
                type = HasCrewCapacity
                minCapacity = 3
                title = Space for at least 3 crew
                hideChildren = true
            }
            PARAMETER
            {
                name = DockingPort
                type = PartValidation
                partModule = ModuleDockingNode
                minCount = 1
                title = Have at least 1 Docking Ports
                hideChildren = true
            }
            PARAMETER
            {
                name = Orbit
                type = Orbit
                minPeA = 250000
                maxApA = 2000000
                targetBody = HomeWorld()
                title = Reach Orbit with a Perigee greater than 250 km and an Apogee less than 2,000 km
                hideChildren = true
            }
            disableOnStateChange = true
        }

    VPG #2, which comes after VPG #1, and uses "spaceStation":

      Reveal hidden contents

        PARAMETER
        {
            name = stayOnStation
            type = VesselParameterGroup
            title = Keep at least 2 crew aboard the station for 30 days.
            vessel = spaceStation

            completeInSequence = true

            PARAMETER 
            {
                name = CrewmembersDuration
                type = HasCrew
                minCrew = 2
                title = Have at least 2 crewmembers on board
                hideChildren = true
            }
            PARAMETER
            {
                name = OrbitDuration
                type = Orbit
                minPeA = 250000
                maxApA = 2000000
                targetBody = HomeWorld()
                disableOnStateChange = true
                title = Remain in a Stable Orbit
            }    
            PARAMETER
            {
                name = Duration
                type = Duration
                duration =  30d
                startCriteria = PARAMETER_COMPLETION
                parameter = OrbitDuration
                parameter = CrewmembersDuration
                preWaitText = Transfer to the station in the specified orbit.
                waitingText = Orbiting...
                completionText = Stay completed, you may return home now.
            }
        }

    When testing, I sent a station up with 0 crew first, and it satisfied the HasCrew parameter in VPG #1. No problems so far.
    What I did notice however, was that the uncrewed Station was satisfying the HasCrew parameter in VPG #2, which requires a minimum of 2 Crew members be on board.

    This has led me to question how CC saves the properties of vessels for VPG parameters. I'm not sure how a 0 crew vessel is satisfying a 2 crew parameter, which is really bad, because I don't want the Duration parameter in VPG #2 to start until it has crew.

    Any ideas?

    Ok, did some more testing, here's what I found and I am very confused about it.

    Launched a new station, blah blah, VPG #1 is satisfied. Under VPG #2, HasCrew is satisfied and so is Orbit, but the Duration did not start. I thought it was a visual bug
    I decided to go back to the space center, to the tracking station, and back to the station, to see if anything changed.
    HasCrew became unsatisfied, which I thought was good, but the Duration started, when it shouldn't be, since the 2 parameters needed weren't satisfied.

    I am now 200% more confused.

  5. Question regarding the HasCrew Parameter, and overall how CC tracks and updates parameters:

    I've been experimenting with the parameter in a contract, specifically in a VesselParameterGroup. Currently having trouble within 2 VPGs. See below:

    VPG #1, which defines the vessel "spaceStation": 

    Spoiler

        PARAMETER
        {
            name = vesselGroupLaunch
            type = VesselParameterGroup
            title = Put your first Space Station in Orbit
            notes = The station must include at least 1 Docking Port and support for at least 3 Crew
            define = spaceStation
            defineList = spaceStationsEarth

            PARAMETER
            {
                name = NewVessel
                type = NewVessel
                title = Launch a New Station
                hideChildren = true
            }
            PARAMETER
            {
                name = Crewmembers
                type = HasCrew
                minCrew = 0
                maxCrew = 0
                title = Uncrewed
                hideChildren = true
            }
            PARAMETER
            {
                name = HasCapacity
                type = HasCrewCapacity
                minCapacity = 3
                title = Space for at least 3 crew
                hideChildren = true
            }
            PARAMETER
            {
                name = DockingPort
                type = PartValidation
                partModule = ModuleDockingNode
                minCount = 1
                title = Have at least 1 Docking Ports
                hideChildren = true
            }
            PARAMETER
            {
                name = Orbit
                type = Orbit
                minPeA = 250000
                maxApA = 2000000
                targetBody = HomeWorld()
                title = Reach Orbit with a Perigee greater than 250 km and an Apogee less than 2,000 km
                hideChildren = true
            }
            disableOnStateChange = true
        }

    VPG #2, which comes after VPG #1, and uses "spaceStation":

    Spoiler

        PARAMETER
        {
            name = stayOnStation
            type = VesselParameterGroup
            title = Keep at least 2 crew aboard the station for 30 days.
            vessel = spaceStation

            completeInSequence = true

            PARAMETER 
            {
                name = CrewmembersDuration
                type = HasCrew
                minCrew = 2
                title = Have at least 2 crewmembers on board
                hideChildren = true
            }
            PARAMETER
            {
                name = OrbitDuration
                type = Orbit
                minPeA = 250000
                maxApA = 2000000
                targetBody = HomeWorld()
                disableOnStateChange = true
                title = Remain in a Stable Orbit
            }    
            PARAMETER
            {
                name = Duration
                type = Duration
                duration =  30d
                startCriteria = PARAMETER_COMPLETION
                parameter = OrbitDuration
                parameter = CrewmembersDuration
                preWaitText = Transfer to the station in the specified orbit.
                waitingText = Orbiting...
                completionText = Stay completed, you may return home now.
            }
        }

    When testing, I sent a station up with 0 crew first, and it satisfied the HasCrew parameter in VPG #1. No problems so far.
    What I did notice however, was that the uncrewed Station was satisfying the HasCrew parameter in VPG #2, which requires a minimum of 2 Crew members be on board.

    This has led me to question how CC saves the properties of vessels for VPG parameters. I'm not sure how a 0 crew vessel is satisfying a 2 crew parameter, which is really bad, because I don't want the Duration parameter in VPG #2 to start until it has crew.

    Any ideas?

  6. 2 hours ago, Caerfinon said:

    The data node is convenient for only having to define the key once in a contract and then just use the variable in all other VPG in the contract. I find that having the duration in the VPG where the vessel is defined seems to work better. But I don't really know why it does.  

     

    Hmm, there's not a lot of cases where I would have a duration in the same VPG where vessel is also defined. Afaik defined vessels can be used across different CONTRACT_TYPEs in the same .cfg file, which is what I am currently doing. However, this does not allow for tracking in different scenes besides flying the vessel directly. Would having a vessel DATA node be set to the vessel defined in the VPG in the first CONTRACT_TYPE  allow for better tracking to occur with VPGs in the second CONTRACT_TYPE?

  7. On 5/26/2021 at 3:10 AM, Caerfinon said:

    This is possible, but the duration parameter needs to be nested in the VesselParameterGroup. The following example from one of my contracts has a 3 day timer that persists through Scene changes and stays associated with the defined Vessel. 

      Reveal hidden contents
    
    
    // The unique vesselID
    	DATA
    	{
    		type = string
    		craft = "KSRGAPKGOCampsite"
    		hidden = true
    	}
    
    
    // The VesselParameterGroup with the duration timer
    	PARAMETER
    	{
    		name = CampSite
    		type = VesselParameterGroup
    		title = Create a Camp within 500 meters of the marker  
    		define = @/craft
    		
    		PARAMETER
    		{
    			Title = in your Rover Camper 
    			name = VesselIsType
    			type = VesselIsType
    			vesselType = Rover
    		}
    		
    		PARAMETER
    		{
    			name = HasCrewCapacity
    			type = HasCrewCapacity
    			title = have total crew capacity for 4 kerbals
    			minCapacity = 4
    			completeInSequence = true
    			disableOnStateChange = false
    		}
    
    		PARAMETER
    		{
    			name = HasCrew
    			type = HasCrew
    			title = have a pilot
    			trait = Pilot
    			minCrew = 1
    			hideChildren = true
    			disableOnStateChange = false
    		}
    	
    		
    		PARAMETER
    		{
    			title = Have @/scientistKerbalName on board
    			name = HasPassengers
    			type = HasPassengers
    			kerbal = @/kerbalScientist.ElementAt(0)
    		}
    	
    		PARAMETER
    		{
    			name = VisitWaypoint
    			type = VisitWaypoint
    			index = 0
    			distance = 500
    			showMessages = true
    			hideOnCompletion = true
    			targetBody = @/targetBody
    		}
    		
    		PARAMETER
    		{
    			name = ReachState
    			type = ReachState
    			title = Stop and set up camp
    			targetBody = Kerbin
    			situation = LANDED
    			maxSpeed = 0.0
    			hideChildren = true
    		}
    		
    		PARAMETER
    		{
    			name = CampSite
    			type = Duration
    			duration = 3d
    			preWaitText = Waiting to establish camp 
    			waitingText = Camping at site for: 
    			completionText = Camping Completed! 
    			disableOnStateChange = true
    		}	
    	}

     

     

    Hmm, I'm guessing that having the Vessel stored in a DATA node allows it to be tracked across all flight scenes? I've tried it with just a regular "define = targetVessel" in one VesselParameterGroup and have it be "vessel  = targetVessel" in another VPG, which is the one where i'm wanting to track the vessel duration.

  8. Heyo,

    Just wondering if there were/are plans on changing how vessels are tracked, if possible, or if it's possible to change how it's tracked via extending nodes like parameters? I discovered recently that, with a vesselParameterGroup with a specific vessel and a time requirement (e.g. stay in orbit for 30d) that CC only tracks it while in flight or in the Tracking Station (i think). I'd like CC to track the vessel (and the contract parameters pertaining to said vessel) across different scenes, but I'm presuming that this functionality hasn't been added due to KSP limitations or something? 

  9. After doing some more editing, I think I've figured most of the things out, however there's something that I find odd and I don't know why CC is working this way:

    I have an int DATA node in the Groups.cfg for a funds multiplier like this:

    DATA
    {
    	type = int
    	title = Fund Modifier
    	fundModifier = 1
    }

    and in a CONTRACT_TYPE, I have this:

    advanceFunds = 10000 * @localMod
    rewardFunds = 5000 * @localMod
    
    DATA
    {
    	type = int
    	localMod = $fundModifier
    }
    
    BEHAVIOUR
    {
    	name = NoFailureProfit
    	type = Expression
    	
    	CONTRACT_COMPLETED_SUCCESS
    	{
    		$fundModifier = 0
    	}
    }

    Now, my intention with this is for Contract 1 to be completed once with a >0 advance and reward fund. And imo this should, in theory work. However, CC seems to register localMod as 0, even though $fundModifier hasn't been, or shouldn't've been affected by the BEHAVIOUR node.

    Is there any way to fix this problem? Any alternate solution I should use?

  10. Sorry for even more questions lol

     

    What might cause the HasCrew parameter to break? I have such a parameter that detects if a vessel has 3 crew members on board, yet whilst the vessel is uncrewed, it satisfies this parameter somehow

    Are you able to use BEHAVIOUR nodes to adjust data created by another BEHAVIOUR node in another contract? E.g. Contract 1 creates "TestValue" by a BEHAVIOUR. Contract 2 wants to edit "TestValue" with a BEHAVIOUR.  

    Is there any way to deduct funds if a vessel is terminated from the Tracking Station? A VesselNotDestroyed  PARAMETER does not work when a vessel is terminated sadly.

    What is the priority between PARAMETERs, BEHAVIOURs, and REQUIREMENTs with checkOnActiveContract = true?

  11. 23 hours ago, Caerfinon said:

    You could set up a parameter that if it failed would subtract failureFunds

    
        // The various parameter-level rewards and penalties.
        //
        // Type:      float
        // Required:  No
        //
        rewardScience = 100.0
        rewardReputation = 20.0
        rewardFunds = 100000.0
        failureReputation = 10.0
        failureFunds = 10000.0
    

    Regarding this, my main goal is to have something that can detect if a vessel exists that can ALSO subtract funds if it doesn't exist. So regarding this, would it be possible to make a Parameter that checks if a vessel exists? 

  12. On 11/22/2020 at 8:13 AM, YaBoyShredderson said:

    Any contract packs supported by ro and rp1 that add plane contracts? Like a giving aircraft a purpose kind of thing? Because beyond x planes at the start of a career theres not much point in them, and GAP is a must for my career modes as designing and flying planes is one of the most fun bit of ksp for me.

    There aren't any contract packs for Rp1. If you want more xplane contracts, please go to the Rp1 github and/or discord (in #rp1-feedback), and suggest so. I believe the devs think the current quantity of contracts is sufficient, but idk.

    On 10/13/2020 at 10:48 PM, Сквайр said:

    Hello. Are there plans to add support for the KSP Interstellar Extended mod and contracts for it?

    Do note that it is Realistic Progression 1. The methods of propulsion in the game have a basis in reality (whether it be flown or theoretical engines). Interstellar travel is impossibly difficult with what is in game, thus KSPIE is most likely not going to be supported.

    On 2/1/2021 at 4:13 PM, RP1IsSuperior said:

    can you build self sufficient bases? I want to combine this with KSPI to visit some exoplanets

    With what's currently in ROKerbalism, I don't think so.  ISRU stuff is in development though iirc. Feel free to check the rp1 discord in #rp1-kerbalism. Refer above for info about KSPIE.

  13. A LOT of progress has been accomplished. Presented are 4 mission report highlights of a Lunar flyby/impactor, a Lunar Orbiter, an Entry, Descent, Landing Bio Package (EDLBP), and a Venus Flyby!

    Presented first is Chang'e's Beryl Tiger, a Tiger-Class LV.  

    Spoiler

    The LV stands proudly on the launchpad Striped Tiger (which is limited to rockets that are 60t or below)

    oyUvFXD.png

    Nominal Ignition!

    NQyemS6.png

    Liftoff!

    sXLs9pX.png

    TGansn6.png

    SXW0XQK.png

    oaA7Iqz.png

    The Lr79 first stage burnout complete, and the 2nd stage decouples fine. It coasts for around a minute (not captured. The Japanese interfered). Shown here is the Aj10-37 engine ignition if it fails you're fired

    C05JH8e.png

    After a nominal burn out ok you're getting a raise the Impactor's antenna extends, and LEO is achieved.

    v8TSVCl.png

    mGETmmt.png

    zb2fv6l.png

    TLI stage, featuring a XASR Aerobee (Spacebees are love, Spacebees are life). Shown here is the Ignition.

    MzOItfU.png

    With a nominal burnout, the probe is on it's way to murder a Lunarian. The moon-dwellers be damned.

    qGr2Rir.png

    niIhWOC.png

    vkXLvov.png

    Terra, Luna, Sol, and the stars. Space is quite magnificant isn't it except for those damned Lunarians.

    fpUSJ9F.png

    Approaching the Moon. One murdered Lunarian coming right up!

    0Q64A7n.png

    This is a gorgeous shot of the moon, don't you agree Chang'e?

    4ytaV1V.png

    Falling

    9073etN.png

    aBWqWQq.png

    A Lunarian be damned! A successful hunt! A Lunarian and his rabbit have been successfully exterminated. Mission Success, Impact achieved. 2 more shall suffer.

    HqtmGIU.png

    Presented next is Chang'e's Beryl Tiger Eye, so we can keep a track on the Lunarians' population. They must be eradicated. The mission is to send a scientific probe into orbit of the moon.

    Spoiler

    Lunar Orbit is harder than murdering a Lunarian so presented is a stronger LV, with an uprated Lr79 and an Aj10-42.

    z6zopGw.png

    fDa1fUv.png

    cO0kiGN.png

    7pThsv4.png

    Burnout of the S-3D Lr79 and stage seperation

    ZMO8Ydv.png

    Ignition of the AJ10-42

    pEIIbtM.png

    PFYsT8d.png

    Burnout successful. LEO achieved

    MTDsxtQ.png

    Due to some horrible negligance you're under arrest for sabotage , There're no images of the Aj10-27 aerobee TLI stage. What's presented next is after the burn was completed and the orbiter was seperated.

    6Zt1dG9.png

    voZnTs6.png

    Arriving to spy on the Lunarians

    3Q2jiwx.png

    After a successful burn (unluckily not captured due to the negligance by the employee that shall be executed soon for treason), Chang'e's Beryl Tiger Eye now spies upon the evil Lunarians.

    lhV5RJy.png

     

    The EDL mission, launched on the uprated LV used for the Lunar Orbiter, has not been properly documented due to the importance of dealing with the Lunarians. The EDL also occured during the night, which makes for a horrible missionreport. What's presented next is very poor, something China's pride would never allow. Nevertheless, here is the EDL mission:

    Spoiler

    xzjxdE7.png

    gSz3Aqp.png

    pdWREUM.png

    kbHsqPn.png

    FdxEGIL.png

    R1ij3iS.png

    2Z5aTaj.png

    UQuQCVf.png

    poTB38I.png

    Successful landing.

    0UMZZWC.png

    Finally, the mission China has the most pride in so far: The Venus flyby, with advances in Communication and Solar technology, and the necessary advance in Avionics technology, since we can know fully control probe beyond Earth. The Probe was launched on a new LV: Leaping Rabbit. 

    Spoiler

    Leaping Rabbit on the pad. First stage composes of 3 Single-Chamber Lr87s, burning Kerosene and LOX.

    yuLYhua.png

    Ignition!

    PCem0we.png

    hvoKDBs.png

    RGQlZJz.png

    For the first time in a LV past the Sounding Rocket Era, the 2nd stage Lr91 necessitates the usage of hot-staging, due to the lack of power from the RCS. Nominal Ignition is shown here.

    YK1nTik.png

    FIhDVCJ.png

    HMYYP5E.png

    3OB1aEu.png

    LEO successful. 

    DNtdfrn.png

    Seperation of the TVI stage. The engine being used is one someone found from the scrapyard. It is the Xlr81 Agena engine. Our tests show that it has a worse failure rate than the aj10-37, which is notorious for being an unreliable engine. Despite this, use of it was necessary due to the lack of power from the Aj10 engine series.

    KBPhfdx.png

    Successful ignition!

    a4jufnq.png

    Burn Complete. This Scrap engine will never be used again, until it no longer is scrap.

    B8JTaBm.png

    Probe seperation. The 2 solar panels shown are the first solar panels to be flown into space. What's also new is the better antenna, running on the new S-Band. This new band is a lot more efficient, but is solely for Beyond-LEO missions only.

    Jo6KOBg.png

    The probe in front of the sun. It is on a 160d transfer to Venus.

    FoEAkO1.png

    After time passed, the probe arrived at Venus, and completed it's mission of a flyby. Interestingly enough, this probe, if it survives, will encounter Venus in the next 6.5 to 7 years.

    rqPzOAz.png

     

    I hope you guys are enjoying this RiS. While there've been spots that have been demotivating, it's certainly been interesting learning new things. This is my first time playing Rp-1 on ROKerbalism and RealAntennas. Hopefully I don't drop out.

  14. Hello, Teykn here, with two mission report highlights. As soundnfury said above, my launch site is in Xichang, China. You'll see a rocket that reflects the location of where it came from.

    First up, the 3Mm Downrange contract. (Launch month and year lost due to a launch failure. This is the 2nd attempt. China don't censor me! incompetency.) 

    Spoiler

    Downrange Rocket HeR-1 stands on the pad. The 1st stage is a standard, tried and true RD-101 engine borrowed from the Soviets and a XASR Aerobee 2nd stage stolen from the Americans.

    K3JLqIR.png

    Nominal ignition and burn so far.

    Zd5GkIU.png

    JjTLpj2.png

    2nd stage ignition 

    rFISDZG.png

    From this point, the contract was complete. The aerobee stage will proceed to blow up. It is currently reentering the atmosphere.

    X6XDmNb.png

    Big explosion!

    oxByakY.png

    Last up is the First Orbit contract, completed in October of 1954.

    Spoiler

    Ox-Class Prideful Needle ignites on the new 60T pad, using improved technology developed locally, featuring an RD-103 engine 1st stage again borrowed from the Soviets. Stop covering me up!, 2 Aj10-27 Aerobee engine 2nd stage, and the Last stage consisting of the XASR Aerobee Yes I understand that you love the Aerobee engine series but we need to be honest.

    UPiRyx9.png

    Nominal flight so far

    dUlu0M3.png
    fb6Fyc6.png

    Stage Separation of the 1st stage. The RCS quads ignite to provide control and ullage, due to the Aerobee's lack of gimbal.

    pf7KiK6.png

    Nominal ignition of the 2nd stage.

    CgmSbEC.png

    2nd stage burn has completed, and the 2nd stage hangs on for a little longer in order to spin stabilize the final stage.

    fYYGBrG.png

    Final stage ignition. This is the final burn before Low Earth Orbit is achieved.

    Qb2GQW0.png

    Orbit successful! This Ox-Class Launch Vehicle (OCLV) is the first of its kind, but it will be short-lived. A few more missions are planned, including a Scientific Orbit with advanced science instruments.

    RgtSvDo.png



     

×
×
  • Create New...