Jump to content

Archived

This topic is now archived and is closed to further replies.

basys

Mission - Job - Inhibiting generation at a small airport

Recommended Posts

Hi Folks

 

I'm working on a mission/job for the airport's Job Boards.

 

I need to inhibit my job

from being generated at small airports with short runways

 

 

 

I've populated GeneratedAirport - GeneratedAirport_Current

with an appropriate MinRunwayLength value.

 

Unfortunately that's not inhibiting my job's generation at small airports.

 

Guessing that only the SimMissionUI.ScenarioMetadata and Career.CareerMissionMetadata

are evaluated by the Job Board's script.

 

 

 

I also had a brief play with / guess at a LUA script,

in Career.CareerMissionMetadata - DisplayRequirements

<CareerRequirements>return ( get_runway_length('{8D625BDF-2FF3-4583-9CC7-B70707AE5816}')  >= 2743 ) </CareerRequirements>
 

 

For test purposes -

I've forced an increased frequency of generation.

by temporarily raising the Career.CareerMissionMetadata - TemplateWeight to 5000.

 

 

 

I also noticed a couple of unexpected aspects -

- Very small airports consistently generate my jobs as a high proportion of total, whilst larger airports, (blue), only generate one or two.

- Some specific airports consistently generate an unusually high number of these jobs. (e.g. Hoonah 7 or 8)

 

 

 

Any pointers/tips would be much appreciated.

 

Either by reply, or if required, PM me.

 

 

 

ATB

Paul

Share this post


Link to post
Share on other sites

Hi Folks

Forgot to say -

If anyone has left-over mission code,     :wink:
or already has any works in progress,

then please let me know, soonest.

 

I'd hate to discover I'd been reinventing the wheel.

Which I am in a way.       :lol:

 

ATB
Paul

Share this post


Link to post
Share on other sites

Hey Paul, 
 
     Looks like you are up to an ambitious workload. Creating Missions through XML Schema is very difficult.
 
     I also attempted to create some missions by adjusting some of the current missions but I could only create Landing Challenges because they were easier to adjust than the other missions and challenges!
 
     I'm intrigued as to what missions you are going to attempt...I couldn't think of any missions to add to the job board!
 
     On the technical note, the airports which you depart from and arrive at are generated randomly, so I don't there is a way of adjusting that.
 
However, I have found the code snippet which may be of some use:

<MissionTemplate.GeneratedAirport InstanceId="{A917CDC9-5DDB-47F7-B8D4-BCD571FD386D}">
      <Descr>GeneratedAirport_Destination</Descr>
      <MinRunways>1</MinRunways>
      <MinRunwayLength>600</MinRunwayLength>   #you have already changed this
      <MinParking>1</MinParking>
      <AllowedParkingTypes>
        <ParkingType>Ramp_GA</ParkingType>
        <ParkingType>Ramp_GA_Small</ParkingType>
        <ParkingType>Ramp_GA_Medium</ParkingType>
        <ParkingType>Ramp_GA_Large</ParkingType>
        <ParkingType>Ramp_Cargo</ParkingType>
      </AllowedParkingTypes>
      <DistanceFrom>
        <MinDistance>50</MinDistance>
        <MaxDistance>500</MaxDistance>
        <AttachedWorldObject>
          <ObjectReference InstanceId="{221CBB7C-EBF3-46CD-B6CD-A31C774342C1}" />
        </AttachedWorldObject>
      </DistanceFrom>
      <AllowedRunwayTypes> --!---#Alter the allowed runway types, preferably Tarmac for large airports--
        <RunwayType>Concrete</RunwayType>
        <RunwayType>Grass</RunwayType>
        <RunwayType>Grass_Bumpy</RunwayType>
        <RunwayType>Asphalt</RunwayType>
        <RunwayType>Short_Grass</RunwayType>
        <RunwayType>Long_Grass</RunwayType>
        <RunwayType>Hard_Turf</RunwayType>
        <RunwayType>Snow</RunwayType>
        <RunwayType>Ice</RunwayType>
        <RunwayType>Urban</RunwayType>
        <RunwayType>Forest</RunwayType>
        <RunwayType>Dirt</RunwayType>
        <RunwayType>Coral</RunwayType>
        <RunwayType>Gravel</RunwayType>
        <RunwayType>Oil_Treated</RunwayType>
        <RunwayType>Steel_Mats</RunwayType>
        <RunwayType>Bituminus</RunwayType>
        <RunwayType>Brick</RunwayType>
        <RunwayType>Macadam</RunwayType>
        <RunwayType>Planks</RunwayType>
        <RunwayType>Sand</RunwayType>
        <RunwayType>Shale</RunwayType>
        <RunwayType>Tarmac</RunwayType>
      </AllowedRunwayTypes>
    </MissionTemplate.GeneratedAirport>

On the above code snippet, try changing the <AllowedRunwayTypes> so that only Tarmac or Concrete Airports will be generated as a destination.This is what I believe could reduce the pool of generated airports to ensure that an airport with a specific runway will be chosen.

 

 

Good Luck!

P.S. I have not tried this out myself... so this is a shot in the dark! Code snippet taken from GenMission_LightCargo-Animals


Kavinda J.D  ^_^

Share this post


Link to post
Share on other sites

Hi Folks

 

Cheers Kavinda for your suggestions.

 

 

 

I'm looking primarily to control Departure airports.

 

 

 

In this case -

Use of RunwayType and/or ParkingType is/are not appropriate parameters to filter on.

(Using ParkingType has returned some surprising omissions).

 

Controlling this Job's generation by filtering on runway length

is the essential Go / No Go, for implementing this mission type.

 

 

 

For Jobs -

 

Destination airports are randomly generated,

and subject to certain parameters, (related to those you'd listed).

 

Departure airports are not randomly generated.

Its the parameter passed, when you click that specific airport's Jobs Board.

 

MinRunwayLength doesn't appear to be honoured for departure.

 

 

 

Thanks again.

 

 

 

HTH

ATB
Paul

Share this post


Link to post
Share on other sites

Ahhh.. right! So, you want to change the Departure airport and not the Destination Airport!

Sorry, I misunderstood what was being asked! :o
 
     Just to be clear, you are aiming to set the departure airports which you would like your job to be shown on? If that is the case, I have searched for jobs which appear at specific airports and found the Biplane Tour Mission as an example:
 

    <Career.CareerMissionMetadata>
      <Title _id="{BECA0285-199E-4856-A729-0D0EBCD3A347}">Hawaii Biplane Tour</Title>
      <OrderingSequence>2</OrderingSequence>
      <MissionType>Job</MissionType>
      <DepartureAirport>DepartureAirport</DepartureAirport>
      <DestinationAirport>DepartureAirport</DestinationAirport>
      <BaseXPScript>return 100</BaseXPScript>
      <ThumbnailAssetID>{0BB06AEE-806C-43B6-9F18-FC7E5C8192CD}</ThumbnailAssetID>
      <ImageAssetID>{872DA6DE-F1C2-406F-9356-8C95651D3A98}</ImageAssetID>
      <TemplateWeight>500</TemplateWeight>
      <ContainerAssetID>{6160B426-C1B7-41F5-8145-5CD5C92AF45C}</ContainerAssetID>
      <SimObjectFlagName>Biplane, Tour</SimObjectFlagName>
      <DisplayRequirements>
        <CareerRequirements>                      --!--  --!--  --!--  --!--  --!-  --!-- --!-- --!-- --!-- --!--
                local ident = (varget('C:CAREER:AirportIdent'))
                 return (ident == 'PHLI' or
                 ident == 'HI01' or
                 ident == 'PHPA' or
                 ident == 'PHDH' or
                 ident == 'PHJR' or
                 ident == 'PHMK' or
                 ident == 'PHNY' or
                 ident == 'PHJH' or
                 ident == 'PHLU' or
                 ident == 'PHOG' or
                 ident == 'PHHN' or
                 ident == 'PHUP' or
                 ident == 'PHMU' or
                 ident == 'PHKO' or
                 ident == 'PHTO' or
                 ident == 'HI23')
                </CareerRequirements>                  --!-- --!-- --!-- --!-- --!- --!-- --!-- --!-- --!-- --!--
        <DataPointsPresent>
          <MissionDataPointType>Landmark</MissionDataPointType>
          <Count>3</Count>
          <MaxDistance>70</MaxDistance>
        </DataPointsPresent>
      </DisplayRequirements>

The above code snippet (from the tag <CareerRequirements>) allows you to set the airport(s) where you would like to see your job. The job will only appear on the airports which have been set by you.

 

 

I hope that helps,


Kavinda J.D  ^_^

Share this post


Link to post
Share on other sites

Try something like this in the CareerRequirements script:

 

return (varget('C:CAREER:LongestRunway')) > 2000

 

Other possible variables you could use besides LongestRunway and AirportIdent:

NumParking
NumRunways
Towered

Share this post


Link to post
Share on other sites

Do you mean "MinParking" and "MinRunwayLength"?  NumParking doesn't exist in the Propdef!  :blink:
 
Also, I'm not sure about the "LongestRunway" variable:

<PropertyDef
            name        = "GeneratedRunwayType"
            id          = "{7A6BA8FC-D533-4343-8685-DA0DB4E75A10}"
            type        = "ENUM"
            default     = "Longest"
            descr       = "Indicates how to interpret other properties of generated runway object.">
          <EnumDef symbolprefix="GENRUNWAY_TYPE">
            <EnumVal name="LONGEST" xml_name="Longest"/> <!-- Longest runway that matches criteria, heading upwind -->
            <!--<EnumVal name="CLEARED" xml_name="ClearedTo"/>   Runway user is currently cleared to land on or taxi to (if any) -->
          </EnumDef>
        </PropertyDef>

Kavinda J.D  ^_^

Share this post


Link to post
Share on other sites

KavindaJD: You're looking at propdefs. Stonelance is referring to simulation variables.

Share this post


Link to post
Share on other sites

What's the exact difference? Could you explain what the propdefs are used for?

 

 

Many Thanks,


Kavinda J.D  ^_^

Share this post


Link to post
Share on other sites

PropDefs describe Sim-Prop Binary files. Simulation variables are variables used by the simulator. The former are found in Microsoft Flight Simulator X\propdefs. The latter are accessible in FSX through the Panel and Gauges SDK or SimConnect API.

Share this post


Link to post
Share on other sites

Hi Folks

 

Steve -

Thankyou for that code sample.

 

It worked 'out of the box'

inhibiting job generation at airports with runways shorter than XXXX.

 

 

 

Unfortunately

it applies to both Departure and Destination runways.    

 

 

 

What I'm attempting to do is -

 

Permit - Loaded takeoff from long runway to short runway.

 

Inhibit - Loaded takeoff from short runway.

 

 

 

Pseudocode equivalent -

 

IF Departure.LongestRunway > 2000

OR

IF Destination.LongestRunway > 1000

 

Is there a way of achieving that ?

 

 

 

Many thanks

ATB
Paul

 

 

EDIT - Removed extraneous distracting info.

Share this post


Link to post
Share on other sites

Hi Gents

 

My apologies for asking so many questions.

 

Rather than me asking for issue by issue assistance,

do any of you perchance have lists of -

- Simvars available in Flight.

- Any known LUA script functions/parameters, e.g. generated_string('GeneratedAirport_Current')

- \Core\SceneryObjects\ and their related .spb.meta GUIDs.

 

If so, copies would be very much appreciated.    :smile:

 

No urgency,

please just let me know if its possible by PM or email.

 

Many thanks

ATB
Paul

Share this post


Link to post
Share on other sites

I don't know why that setting would control both.  Make sure your DestinationAirport in the CareerMissionMetadata is not set to the same airport as the departure.  Also make sure the settings for the destination airport make sense.

 

I can try to get a list of VARs and functions when I get home, but there is a very large number and they are spread out in different places.

 

I think Orion has a tool that makes it easy to get a list of assets of different types.  I think he may have already formatted it into a easy to read list too.

Share this post


Link to post
Share on other sites

Hi Paul,

 

I was given that list of default objects as extracted with the said tool. Here are the lists formatted for use in SBuilderX:

 

http://1drv.ms/1vRjLMw

 

Place them in the LibObjects directory in SBuilderX. Be sure to add the following to your objects.txt:

 

include=Flight_Landmarks_Hawaii.txt
include=Flight_Landmarks_Alaska.txt
include=Flight_Vehicles_Air.txt
include=Flight_Vehicles_Airport.txt
include=Flight_Vehicles_Autogen.txt
include=Flight_Vehicles_Land.txt
include=Flight_Vehicles_Water.txt
include=Flight_Buildings_Autogen.txt
include=Flight_Buildings_Generic.txt
include=Flight_Autogen.txt
include=Flight_airport_objects.txt
include=Flight_NaturalObjects.txt
include=Flight_Generic.txt
include=Flight_Hazards.txt
include=Flight_MissionObjects.txt
include=Flight_Procedural.txt
include=Flight_TempContent.txt

 

 

Here is the list as given to me:

 

http://1drv.ms/1vRjBF7

 

 

There are about 900 default objects in this list, but alas! no floatplanes. I haven't seen Steve's irrigator in the lists either, yet, so I am not certain that they are complete.

 

Best regards.

Luis


do.png Hot, humid Caribbean paradise!

Share this post


Link to post
Share on other sites

  • Tom Allensworth,
    Founder of AVSIM Online


  • Flight Simulation's Premier Resource!

    AVSIM is a free service to the flight simulation community. AVSIM is staffed completely by volunteers and all funds donated to AVSIM go directly back to supporting the community. Your donation here helps to pay our bandwidth costs, emergency funding, and other general costs that crop up from time to time. Thank you for your support!

    Click here for more information and to see all donations year to date.
  • Donation Goals

    AVSIM's 2020 Fundraising Goal

    Donate to our annual general fundraising goal. This donation keeps our doors open and providing you service 24 x 7 x 365. Your donation here helps to pay our bandwidth costs, emergency funding, and other general costs that crop up from time to time. We reset this goal every new year for the following year's goal.


    18%
    $4,710.00 of $25,000.00 Donate Now
×
×
  • Create New...