[v1.20] Tutorial 01 - The Basics
A step by step tutorial to create a simple mission
Hello,
The following tutorial will discuss how to create a simple mission, the basic assumption is that you read or have the designer guide in order to get more detail info ( if needed ).
The tutorial will cover the following topics:
The following tutorial will discuss how to create a simple mission, the basic assumption is that you read or have the designer guide in order to get more detail info ( if needed ).
The tutorial will cover the following topics:
- Scenario Draft ( story line ).
- Gather info.
- Test Locations in X-Plane.
- Write the Scenario as a set of instructions.
- Check if the Mission-X plugin can execute all instruction as intended.
- Write Basic mission-file.
- Test.
Scenario Draft
The first step for any mission creation is to decide on the story line. It can be a simple short scenario or complex with accuracy in mind.
I for instance, prefer the fun factor but if I can find a flight plan that can help newbies or veterans to practice an element of flight then I'll try to convert it to the Mission-X plugin.
In the current tutorial, we will design a simple mission on an area that everyone should have. We will start at LOWI airport, and search for other airports or locations that will participate in this short trip.
I for instance, prefer the fun factor but if I can find a flight plan that can help newbies or veterans to practice an element of flight then I'll try to convert it to the Mission-X plugin.
In the current tutorial, we will design a simple mission on an area that everyone should have. We will start at LOWI airport, and search for other airports or locations that will participate in this short trip.
Gathering Info
First we will search for a route. We can use the local map view in X-Plane or Google Maps or other means.
We can see that the route is a simple one. It is along the length of a valley, We can use the topography to direct the simmer to fly along it.
Route description: Start at LOWI airport head 60 deg pass the LOIK airport and continue with the valley north to EDNV airport.
The length of the route is ~60nm, more or less, and it is suited for a prop airplane.
Route description: Start at LOWI airport head 60 deg pass the LOIK airport and continue with the valley north to EDNV airport.
The length of the route is ~60nm, more or less, and it is suited for a prop airplane.
Test Locations in X-Plane
Not everything in x-plane scenery is perfect, to say the least. I mean, there are places with good detail and more or less accurate environment, but then again there are places where you just scratch your head in puzzlement thinking "what the heck am I doing here" or "How this thing has arrived here"..... you get the idea.
In this step, we will first check the locations in X-Plane just to see if the area and airports are... satisfying in their quality.
If we are not satisfied then we can search the internet for custom scenarios or make our own modifications/scenarios.
Here are some images of the airports locations we just defined in the suggested route. The images are from x-plane and google maps.
In this step, we will first check the locations in X-Plane just to see if the area and airports are... satisfying in their quality.
If we are not satisfied then we can search the internet for custom scenarios or make our own modifications/scenarios.
Here are some images of the airports locations we just defined in the suggested route. The images are from x-plane and google maps.
The image gallery of the locations, shows the difference between x-plane and the real thing. We can easily locate staggering differences between the real locations images and the ones from X-Plane. This is why the option of making our own custom scenery to some of the airports or at least search for custom scenarios for them doesn't seem that bad idea anymore.
Write the Scenario as a set of instructions
The simplest or complex of mission, should be converted to a set of instructions that we can later write down in our mission data file.
Here is an example of our route as a set of instructions:
That was a simple exercise of extracting our suggested route into steps. we can also vision the flight, and it also look/sound coherent on paper.
We are ready to start and write our mission in a file, but first we should consult the Designer Guide if the plugin holds enough features to allow us to write such a mission. In our case the answer is yes. this is why we will Skip the step of: "Check if the Mission-X plugin can execute all instruction as intended"
Here is an example of our route as a set of instructions:
- Take off from LOWI airport - Starting Location
- Fly east heading ~70 deg over the valley until you reach LOIK airport.
- Continue with the valley until the river starts to bend North, heading ~334 deg.
- Once you are out of the valley and mountains area, head ~4 deg until you reach EDNV.
You can use the local map for orientation. - Land in EDNV airport - Mission Ends
That was a simple exercise of extracting our suggested route into steps. we can also vision the flight, and it also look/sound coherent on paper.
We are ready to start and write our mission in a file, but first we should consult the Designer Guide if the plugin holds enough features to allow us to write such a mission. In our case the answer is yes. this is why we will Skip the step of: "Check if the Mission-X plugin can execute all instruction as intended"
Write Basic mission-file
If you read my first post: "First Steps to write your own Mission File" you are already aware that the mission file is based on XML rules, and the mission file itself is divided into sections that represents the whole mission.
The sections we will define are:
In each section there might be sub sections, but we will get there in a minute.
The sections we will define are:
- Header
- Briefer
- Objectives
In each section there might be sub sections, but we will get there in a minute.
Header:
First we define the Missions Header.
The element <MISSION> will define the missions version and compatibility, name, and title name.
The name will effect the "save/load" file name, and the title will be displayed on the Mission Briefer Window.
First we define the Missions Header.
The element <MISSION> will define the missions version and compatibility, name, and title name.
The name will effect the "save/load" file name, and the title will be displayed on the Mission Briefer Window.
<?xml version="1.0" encoding="utf-8"?>
<MISSION version="120" name="Tutorial_v120" title="Tutorial 01 - Simple Mission Creation" >
<Header copyright="snagar"/>
<GlobalSettings>
<Time days="230" hours="8" min="0" sec="0" />
<Map dirName="missionx_tutorials" fileName="tutorial01Map.bmp" width="606" height="581" />
</GlobalSettings>
<MISSION version="120" name="Tutorial_v120" title="Tutorial 01 - Simple Mission Creation" >
<Header copyright="snagar"/>
<GlobalSettings>
<Time days="230" hours="8" min="0" sec="0" />
<Map dirName="missionx_tutorials" fileName="tutorial01Map.bmp" width="606" height="581" />
</GlobalSettings>
<GlobalSettings> Element: It is always good to define Time of the mission and add an image that represent the path/area of the mission. If you read the Designer guide, you already know that you can define different map to each Objective, so the GlobalSettings map is relevant if there is no map image defined under an Objective. Think of it as a default map, or fallback option.
The map element defines directory where the images will be stored ( {X-Plane Dir}/Custom Scenery/missionx/{dirName} ). It is important to remember that image file names are case sensitive in some OSes.
Width and Height should represent the real image size you want to display. It should be no more then 1024x512. ( see the designer guide for more info)
In our mission, we define a starting date:
230 days since January the 1st, Nine o'clock in the morning ( meaning, a day mission ).
Our next step will be the briefer.
The map element defines directory where the images will be stored ( {X-Plane Dir}/Custom Scenery/missionx/{dirName} ). It is important to remember that image file names are case sensitive in some OSes.
Width and Height should represent the real image size you want to display. It should be no more then 1024x512. ( see the designer guide for more info)
In our mission, we define a starting date:
230 days since January the 1st, Nine o'clock in the morning ( meaning, a day mission ).
Our next step will be the briefer.
Briefer
The briefer is the "Prologue" of the mission.
The information in the briefer should contain sufficient info regarding the Mission's objectives (leaving special events behind), the type of plane we recommend, how to set weather and time of mission, are there any special rendering rules etc...
Apart from the mission description, we also define in the briefer, the starting location of the mission. We should define an ICAO as our starting point, and if needed, we can adjust the location, relative to the area the ICAO is located.
Here is a snippet of our tutorial mission:
<Briefer id="1" lat="47.260227" long="11.343968" elev="1909.8" icao="LOWI" locationAdjust="0" >
<Desc><![CDATA[Welcome to Tutorial No. 1;;In this tutorial we are going to fly from LOWI airport, cruising east at 5000 feet until we reach LOIK airport as our first checkpoint;;From LOIK we will continue with the river north until we leave the valley. Once we are outside the Valley, navigate to EDNV airport.;;Special Directives:;===========;;*Cruise no more then 6000 feet.;*Fly along the valley, do not ascend above the mountains ridges.;;X-Plane Settings:;=======;;Turn of METAR, under weather settings.;;____;Enjoy your flight;;Snagar]]></Desc>
</Briefer>
<Desc><![CDATA[Welcome to Tutorial No. 1;;In this tutorial we are going to fly from LOWI airport, cruising east at 5000 feet until we reach LOIK airport as our first checkpoint;;From LOIK we will continue with the river north until we leave the valley. Once we are outside the Valley, navigate to EDNV airport.;;Special Directives:;===========;;*Cruise no more then 6000 feet.;*Fly along the valley, do not ascend above the mountains ridges.;;X-Plane Settings:;=======;;Turn of METAR, under weather settings.;;____;Enjoy your flight;;Snagar]]></Desc>
</Briefer>
In this mission the ICAO will be LOWI.We do not need location adjustment, but it is a good practice to fill in the Lat,Long and elev attributes of the starting location. For that I use the "Flight Gauge".
If you are using the designer plugin build (win.des.xpl renamed to win.xpl), the "Flight Gauge" will display a more accurate values of the plane coordination. So all you need is to move your plane to the starting location, open the "Flight Gauge" and copy the values under: lat/long/elev fields.
Use this technic in any place you need exact location.
The second part of the Briefer element, is the mission's description. Write down as much information as you can get regarding the mission. The ";" character, means "new line".
Once we define the Briefer, it is time to fill in the Objectives.
From the instructions we just made, we can see that the first step of the mission has already been defined by the Briefer, meaning the "Starting Location".
We now need to decide what will represent the first, second... etc objectives.
In the current mission we can describe two main objectives:
first: pass over LOIK airport.
second: land in EDNV.
This is all good, but our storyline points on route heading changes.
First heading Change: once we pass the LOKI airfield.
Second Change: Once we fly out of the valley and leave the mountains ridges.
For that we need a means to inform the pilot that it is about time to change course to the new heading, this way the simmer will know that he/she is on track. This is an optional information the designer can decide he/she wants to implement or not.
In the tutorial, we will add two feedback regarding the heading changes, but it is possible that the simmer will miss them if he choose other path then the one planed for him.The only way we can restrict the simmer, for now, is to create Objectives that he/she must accomplish but this is a designer decision.
Now that we decided what should be incorporate in the mission file, lets start and define the OBJECTIVES.
If you are using the designer plugin build (win.des.xpl renamed to win.xpl), the "Flight Gauge" will display a more accurate values of the plane coordination. So all you need is to move your plane to the starting location, open the "Flight Gauge" and copy the values under: lat/long/elev fields.
Use this technic in any place you need exact location.
The second part of the Briefer element, is the mission's description. Write down as much information as you can get regarding the mission. The ";" character, means "new line".
Once we define the Briefer, it is time to fill in the Objectives.
From the instructions we just made, we can see that the first step of the mission has already been defined by the Briefer, meaning the "Starting Location".
We now need to decide what will represent the first, second... etc objectives.
In the current mission we can describe two main objectives:
first: pass over LOIK airport.
second: land in EDNV.
This is all good, but our storyline points on route heading changes.
First heading Change: once we pass the LOKI airfield.
Second Change: Once we fly out of the valley and leave the mountains ridges.
For that we need a means to inform the pilot that it is about time to change course to the new heading, this way the simmer will know that he/she is on track. This is an optional information the designer can decide he/she wants to implement or not.
In the tutorial, we will add two feedback regarding the heading changes, but it is possible that the simmer will miss them if he choose other path then the one planed for him.The only way we can restrict the simmer, for now, is to create Objectives that he/she must accomplish but this is a designer decision.
Now that we decided what should be incorporate in the mission file, lets start and define the OBJECTIVES.
<OBJECTIVES>
<!-- First Objective: Fly over LOIK airport -->
<Objective id="1" >
<Targets>
<StaticTarget id="1" lat="47.564991" long="12.127969" elev="3000" needToLand="0" tolerateDistance="1" tolerateElev="3000" />
</Targets>
<Desc>
<![CDATA[Take off from LOWI airport, and fly east about ~70 degrees;You should fly over LOIK airport while your elevation do not exceed 6000 when you pass it;]]>
</Desc>
<Weight>
<Payload id="1" weight="16" operation="0" isTotal="1" isPercent="1" />
<Fuel id="1" weight="50" operation="0" isTotal="1" isPercent="1" />
<Fuel id="2" weight="50" operation="0" isTotal="1" isPercent="1" />
</Weight>
<Forces>
<Weather id="1" lat="47.260227" long="11.343968" useRealWeather="0">
<WeatherZone id="1" outerBoundsNm="2" innerBoundsNm="0" visInMeters="15000" rateOfWeatherChange="0.0" rainPercent="0.0" thunderStormPercent="0" >
<Cloud layer="0" type="0" cloudBase="7900" cloudTops="7900" />
<Cloud layer="1" type="0" cloudBase="12000" cloudTops="12000" />
<Cloud layer="2" type="0" cloudBase="20000" cloudTops="20000" />
</WeatherZone>
</Weather>
</Forces>
</Objective>
<!-- First Objective: Fly over LOIK airport -->
<Objective id="1" >
<Targets>
<StaticTarget id="1" lat="47.564991" long="12.127969" elev="3000" needToLand="0" tolerateDistance="1" tolerateElev="3000" />
</Targets>
<Desc>
<![CDATA[Take off from LOWI airport, and fly east about ~70 degrees;You should fly over LOIK airport while your elevation do not exceed 6000 when you pass it;]]>
</Desc>
<Weight>
<Payload id="1" weight="16" operation="0" isTotal="1" isPercent="1" />
<Fuel id="1" weight="50" operation="0" isTotal="1" isPercent="1" />
<Fuel id="2" weight="50" operation="0" isTotal="1" isPercent="1" />
</Weight>
<Forces>
<Weather id="1" lat="47.260227" long="11.343968" useRealWeather="0">
<WeatherZone id="1" outerBoundsNm="2" innerBoundsNm="0" visInMeters="15000" rateOfWeatherChange="0.0" rainPercent="0.0" thunderStormPercent="0" >
<Cloud layer="0" type="0" cloudBase="7900" cloudTops="7900" />
<Cloud layer="1" type="0" cloudBase="12000" cloudTops="12000" />
<Cloud layer="2" type="0" cloudBase="20000" cloudTops="20000" />
</WeatherZone>
</Weather>
</Forces>
</Objective>
Lets take a closer look at the first Objective we just wrote.First: our objective has one "static target". The target coordinates were taken from x-plane using the "Flight Gauge" ( see the gallery images ).
The location I chose, is the middle of the runway at LOIK. Since we do not want our simmer to land, we need to define the radius of success and the elevation the plane needs to be in order for the objective to be accomplished.For that we have defined two important things. First, the objectives target is set at elevation of 3000ft and not on ground, and second we filled in the attributes: needToLand="0" tolerateDistance="1" tolerateElev="3000" which defines the additional rules for target success.
In this objective, the simmer needs to be in 1nm radius from the targets coordinate but also in elevation that will not exceed the targets elevation + tolerateElev, which interpreted to: 3000ft + 3000ft = 6000ft. The simmer needs to be in elevation between 0ft to 6000ft. The tolerateElev attribute is calculated as the radius of the center which represented as the targets elevation. This is a simple way to calculate area of success.
To sum it up, for finishing the first objective successfully the simmers plane needs to be in:
Only if all these three rules will take place the Objective will succeed and the mission will move on to the next objective.
There are other things that we can define under the objective element, and I strongly encourage you to do so for the sake of consistency:
Fuel: we defined the fuel capacity for each tank. We define the total fuel as 50% percentage of the max allowed fuel in each tank.
Payload: we define the payload as 16% percentage of the total allowed payload.
Weather: Using the weather element, we defined calm weather. Clear skies, no wind, rain or turbulence. We defined the center of the weather area to be on same coordinates as our starting point, that way it will take effect immediately on start of the mission.
To conclude the first Objective, we have defined the first target the simmer needs to reach, the scenario in which the simmer will fly: weather and payload. Now, we can move to the next Objective and the last one too, which asks the simmer to land on EDNV airport.
The location I chose, is the middle of the runway at LOIK. Since we do not want our simmer to land, we need to define the radius of success and the elevation the plane needs to be in order for the objective to be accomplished.For that we have defined two important things. First, the objectives target is set at elevation of 3000ft and not on ground, and second we filled in the attributes: needToLand="0" tolerateDistance="1" tolerateElev="3000" which defines the additional rules for target success.
In this objective, the simmer needs to be in 1nm radius from the targets coordinate but also in elevation that will not exceed the targets elevation + tolerateElev, which interpreted to: 3000ft + 3000ft = 6000ft. The simmer needs to be in elevation between 0ft to 6000ft. The tolerateElev attribute is calculated as the radius of the center which represented as the targets elevation. This is a simple way to calculate area of success.
To sum it up, for finishing the first objective successfully the simmers plane needs to be in:
- the air.
- 1nm radius from the "static target" location.
- elevation 0 - 6000ft
Only if all these three rules will take place the Objective will succeed and the mission will move on to the next objective.
There are other things that we can define under the objective element, and I strongly encourage you to do so for the sake of consistency:
- Plane payload&fuel when starting the mission.
- Weather on the start location of the mission.
Fuel: we defined the fuel capacity for each tank. We define the total fuel as 50% percentage of the max allowed fuel in each tank.
Payload: we define the payload as 16% percentage of the total allowed payload.
Weather: Using the weather element, we defined calm weather. Clear skies, no wind, rain or turbulence. We defined the center of the weather area to be on same coordinates as our starting point, that way it will take effect immediately on start of the mission.
To conclude the first Objective, we have defined the first target the simmer needs to reach, the scenario in which the simmer will fly: weather and payload. Now, we can move to the next Objective and the last one too, which asks the simmer to land on EDNV airport.
<!-- Second Objective: Land at EDNV airport -->
<Objective id="2" >
<Targets>
<StaticTarget id="1" lat="47.945999" long="12.204670" elev="1539" needToLand="1" tolerateDistance="0.8" tolerateElev="0" />
</Targets>
<Desc>
<![CDATA[Continue eastwards from LOIK airport, and follow the river north until you reach the end of the valley.;Once there, head to EDNV airport and land there to complete the flight plan.;;Good Luck;]]>
</Desc>
</Objective>
<Objective id="2" >
<Targets>
<StaticTarget id="1" lat="47.945999" long="12.204670" elev="1539" needToLand="1" tolerateDistance="0.8" tolerateElev="0" />
</Targets>
<Desc>
<![CDATA[Continue eastwards from LOIK airport, and follow the river north until you reach the end of the valley.;Once there, head to EDNV airport and land there to complete the flight plan.;;Good Luck;]]>
</Desc>
</Objective>
As you can see, the second Objective is much simpler and shorter. There are no Weather definitions or weight changes. All we need is to define is the target coordinates and the rules to accomplish the objective. In this mission case, the simmer needs to land on the EDNV airport, while the radius for success is 0.8nm, should be enough.
The description part explains in simple and clear instructions how to accomplish this objective.
There are no special restrictions this time.
The last element that is missing to conclude the OBJECTIVES part is the closing objective.
The closing objective is always the last objective that the simmer does not need to fulfill, it is there because of plugin design and was not altered yet.
The rules for the closing Objective are:
The simplest way to create it, is to copy the last Objective you defined prior to the closing Objective, modify the Objective id to 99, remove all targets except for one and rewrite the description part to reflect the designers last words for the simmer.
Here is an example of the closing Objective for our tutorial mission:
The description part explains in simple and clear instructions how to accomplish this objective.
There are no special restrictions this time.
The last element that is missing to conclude the OBJECTIVES part is the closing objective.
The closing objective is always the last objective that the simmer does not need to fulfill, it is there because of plugin design and was not altered yet.
The rules for the closing Objective are:
- Its objective id is always 99
- It just need one dummy target and the description part.
The simplest way to create it, is to copy the last Objective you defined prior to the closing Objective, modify the Objective id to 99, remove all targets except for one and rewrite the description part to reflect the designers last words for the simmer.
Here is an example of the closing Objective for our tutorial mission:
<!-- Closing Objective: after landing in EDNV airport -->
<Objective id="99" >
<Targets>
<StaticTarget id="1" lat="47.945999" long="12.204670" elev="1539" needToLand="1" tolerateDistance="0.8" tolerateElev="0" />
</Targets>
<Desc>
<![CDATA[You have ended the tutorial.;Hope you enjoyed it.;;Written by Snagar;]]>
</Desc>
</Objective>
</OBJECTIVES>
As you can see, the Closing Objective is a copy of the last Objective ( objective two ). We modified the objective ID and Description. All other information is skipped by the plugin, but we still need their present ( <targets> and <Staticarget> elements ).
We can now close the Mission file with the following lines:
</MISSION>
Our Skeleton Mission is complete.
We can copy the snippet of codes to a simple editor, and save it under the missionx/data directory with the extension of ".xml".
For example: "Tutorial01_v120.xml".
Open X-Plane and test your build. Check if the plugin can load the file, do some simple tests to check if the objectives are accomplished correctly.
After we test the skeleton mission, it is time to add more options to make the mission flaw better.
In this part of the tutorial we will add Feedbacks to the simmer. One feedback will be triggered after the plane passes LOIK airfield. the second feedback will be when the plane reaches the end of the valley and the last feedback will be triggered when plane will reach ~8nm from EDNV airfield. This will make the simmer more aware of his surrounding, since the airfield is not that big and quite hard to find.
Since all Feedbacks are on the second objective, we will add all new info under it.
First, Modify <Targets> Element of "second" Objective:
<Objective id="2" >
<Targets>
<StaticTarget id="1" lat="47.945999" long="12.204670" elev="1539" needToLand="1" tolerateDistance="0.8" tolerateElev="0" />
<!-- just after LOIK airfield -->
<StaticTarget id="2" lat="47.564991" long="12.127969" elev="3000" needToLand="0" tolerateDistance="1" tolerateElev="5000" optional="1" />
<!-- end of valley -->
<StaticTarget id="3" lat="47.758482" long="12.130899" elev="3000" needToLand="0" tolerateDistance="2" tolerateElev="5000" optional="1" />
</Targets>
Secondly, Add Feedbacks that are linked to the targets, through the "subTarget" attribute.
<Feedbacks>
<Broadcast id="1" subTarget="2" distanceToBroadcast="4" ><![CDATA[Remember to follow the river north.]]></Broadcast>
<Broadcast id="2" subTarget="3" distanceToBroadcast="3" ><![CDATA[You are nearing the end of the valley. Remember to head ~4 degrees to reach EDNV airfield.;You can use the local map too.;]]></Broadcast>
<Broadcast id="3" subTarget="1" distanceToBroadcast="8" ><![CDATA[You are nearing EDNV airfield;]]></Broadcast>
</Feedbacks>
<Objective id="2" >
<Targets>
<StaticTarget id="1" lat="47.945999" long="12.204670" elev="1539" needToLand="1" tolerateDistance="0.8" tolerateElev="0" />
<!-- just after LOIK airfield -->
<StaticTarget id="2" lat="47.564991" long="12.127969" elev="3000" needToLand="0" tolerateDistance="1" tolerateElev="5000" optional="1" />
<!-- end of valley -->
<StaticTarget id="3" lat="47.758482" long="12.130899" elev="3000" needToLand="0" tolerateDistance="2" tolerateElev="5000" optional="1" />
</Targets>
Secondly, Add Feedbacks that are linked to the targets, through the "subTarget" attribute.
<Feedbacks>
<Broadcast id="1" subTarget="2" distanceToBroadcast="4" ><![CDATA[Remember to follow the river north.]]></Broadcast>
<Broadcast id="2" subTarget="3" distanceToBroadcast="3" ><![CDATA[You are nearing the end of the valley. Remember to head ~4 degrees to reach EDNV airfield.;You can use the local map too.;]]></Broadcast>
<Broadcast id="3" subTarget="1" distanceToBroadcast="8" ><![CDATA[You are nearing EDNV airfield;]]></Broadcast>
</Feedbacks>
There is more then one way to broadcast message to the simmer. In this tutorial I use the simplest technique which is easy to understand and implement. On other tutorials, we will change the broadcast and use a more sophisticated element.
In a nutshell, We need to define a message trigger relative to location. The locations are only defined under the targets element. You can see that I added two StaticTargets that are optional. This is crucial, since optional means the simmer does not need to reach them in order to complete the Objective, but we need them to help us define relative trigger points.
Finishing Words
That concludes our first tutorial. As you realized, I hope, creating a mission is not to complicated after you start to fit the pieces together. It does take some time to get use to it, but there is no reason to hurry and use advanced techniques before you understood the basics.
Remember, do a short research on the mission locations, keep your mission file indent and clean from unneeded comments. Use the designer Guide, especially the Appendix part, it will help validating your syntax. Test your mission in order to verify it behaves as planned.
If in any case you got stuck, you can e-mail me.
( If you find mistakes, any kind, please e-mail it to my mailbox )
Snagar
Remember, do a short research on the mission locations, keep your mission file indent and clean from unneeded comments. Use the designer Guide, especially the Appendix part, it will help validating your syntax. Test your mission in order to verify it behaves as planned.
If in any case you got stuck, you can e-mail me.
( If you find mistakes, any kind, please e-mail it to my mailbox )
Snagar