WCM - Das österreichische Computer Magazin Forenübersicht
 

Zurück   WCM Forum > Rat & Tat > Simulationen > Designer Forum

Designer Forum Treffpunkt für Gedankenaustausch von Simmern, die selbst

Microsoft KARRIERECAMPUS

Antwort
 
Themen-Optionen Ansicht
Alt 07.08.2007, 22:13   #1
Taddie
bitte Mailadresse prüfen!
 
Registriert seit: 25.04.2007
Alter: 33
Beiträge: 88


Taddie eine Nachricht über ICQ schicken
Frage "Die Adventure- Funktion" im FS2004

Hallo,
vor ein paar Tagen bin ich auf das Icon für die Fluglehrerstation des FS2004 gestoßen, dass ich lange Zeit aufgrund mangelhafter Internetverbindung (Modem) nicht beachtet habe. Durch den letzten Start der Software erinnerte ich mich an eine Stelle in der FlightXPress 9/07.

Auf S.59 unten steht dort folgender Satz über Navigationswettbewerbe: "Ich habe mir vor einiger Zeit erlaubt, einen solchen Flug mit der Adventure Funktion zu programmieren."

Wenn ich das richtig verstanden habe, dient die Fluglehrerstation nur zum Überwachen der Flugschüler, was ist also mit der Adventure- Funktion gemeint, die sich im Text sehr nach "FS 2004- Standart" anhört? Ermöglicht diese das Programmieren von Missionen ähnlich wie im FSX?
Taddie ist offline   Mit Zitat antworten
Alt 07.08.2007, 22:40   #2
Arne-Bruchpilot
Veteran
 
Registriert seit: 19.10.2006
Alter: 33
Beiträge: 449


Standard

Ich glaube das ist gemeint. Wenn du auf den punkt "Flug Auswählen" klickst dann bekommst du ähnlich wie im FSX Flüge angezeigt.
Allerdings gibt es keine Belohnungen und du kannst nicht scheitern. Vllt ist das gemeint.
____________________________________
@Ivao: EDDH_TWR
oder: HAM010

greetz. Arne
Arne-Bruchpilot ist offline   Mit Zitat antworten
Alt 08.08.2007, 10:32   #3
Andragar
Inventar
 
Registriert seit: 19.04.2001
Alter: 55
Beiträge: 3.606


Andragar eine Nachricht über ICQ schicken
Standard

Im Prinzip schon.

im FS9, FS2002 und auch im FS2000 ist eine Art Skriptsprache eingebaut. Diese (das sind die .abl Files) sind mit Flügen (.flt) verknüpft und erlauben eine Überwachung und Steuerung des Fluges sammt Ausgabe von Text und Sound.

Ein entsprechendes SDK gibt es auch.

Die besten Beispiele findest du in der Flugschule.

Ein wenig programieren muss man schon können.
Andragar ist offline   Mit Zitat antworten
Alt 08.08.2007, 10:44   #4
Andragar
Inventar
 
Registriert seit: 19.04.2001
Alter: 55
Beiträge: 3.606


Andragar eine Nachricht über ICQ schicken
Standard

Hier mal ein Áuszug aus dem Script:

PHP-Code:
//---------------------------------------------------------------------------
// MODULE:  Navigation.ABL
//
// Version: 1.0
// Author:  Michael Garbers
//
// Beschreibung: 
//
// Dies ist das ABL Script zu einer Navigationsaufgabe in der Schweiz.
// 
//---------------------------------------------------------------------------

module sample;

//#debug_on
//#print_on

const
    
#include "script\lib\STDKonstants.abl";
    #include "messages\lib\tolerances.msg";

    
CheckPointCount 9;

    
SPTimeEstimated 100// Sec from start until pass SP (always the same)

    
Speed70 0;
    
Speed75 1;
    
Speed80 2;
    
Speed85 3;
    
Speed90 4;
    
Speed95 5;
    
Speed100 6;

var

    static 
number choosenSpeed;

    static 
number [CheckPointCountaLat;
    static 
number [CheckPointCountaLng;
    static 
number [CheckPointCountaLat2;
    static 
number [CheckPointCountaLng2;
    static 
number [CheckPointCountaHeading;

    static 
number [7,CheckPointCountaTimes;

    static 
number [CheckPointCountdtTimeRecord;

    
//Current Checkpoint to fly to
    
static number nCurrentCheckpoint;

    static 
number dtStartZeit

    static 
number nCountTooLow;
    static 
number nCountHeadingError;

    
// temp vars
    
static number nEntfernung;
    static 
number nRichtung;

    
string strTemp//Temp-String for Printing Messages

    
static number bTooLow;
    static 
number bBackcourse;
    
    
#include "script\lib\STDVars.abl";
    #include "script\lib\StringFns.abl";
    #include "script\lib\Math.abl";
    #include "script\lib\Messages.abl";
    #include "script\lib\Throttle.abl";
    #include "script\lib\SimQueue.abl";
    #include "script\lib\STDChkTolerances.abl";

    #include "script\lib\fnUserEvents.abl";

    

//---------------------------------------------------------------------------
// FUNCTION : init - One-time per-script init.
//
// SYNOPSIS : initializes variables
//---------------------------------------------------------------------------
function init;
var

code

    
#include "script\lib\STDInit";  

    
fnNormalMsg("So, gleich geht es los. Nach dem Start müssen Sie genau nach 100 Sekunden den SP überquert haben.");

    
//Set the target speed;
    
choosenSpeed aton(fltThisFlight.getScriptState("Speed"));
    
    
AP.Master FALSE;
    
nDoneFlag 1//set flag to indicate did not successfully complete lesson
    
bCrashCheck FALSE;

    
nCountHeadingError 0;
    
nCountTooLow 0;


    
//SP
    
aLat[0] = 47.17216667;
    
aLng[0] = 7.42116667;
    
aLat2[0] = 47.17186667;
    
aLng2[0] = 7.42136667;
:
:
:
:
    
// Setze maximale Strafpunktzahl bevor es max gibt
    
dtTimeRecord[0] = 100;
    
dtTimeRecord[1] = aTimes[choosenSpeed,1] + 152;
    
dtTimeRecord[2] = aTimes[choosenSpeed,2] + 152;
    
dtTimeRecord[3] = aTimes[choosenSpeed,3] + 152;
    
dtTimeRecord[4] = aTimes[choosenSpeed,4] + 152;
    
dtTimeRecord[5] = aTimes[choosenSpeed,5] + 152;
    
dtTimeRecord[6] = aTimes[choosenSpeed,6] + 152;
    
dtTimeRecord[7] = aTimes[choosenSpeed,7] + 152;
    
dtTimeRecord[8] = aTimes[choosenSpeed,8] + 152;

    
Writeln ("Finished with Init");

endfunction;

function 
checkGround(): NUMBER;
var
    
number nRet;
code
    nRet 
0;
    if (
nAltAGL    500then
        
if (bTooLow    == FALSEthen
            nCountTooLow 
nCountTooLow 1;
            
nRet 1;
        endif;
        
bTooLow    TRUE;
    else
        
bTooLow    FALSE;
    endif;
    return(
nRet);
endfunction;

function 
checkHeadingSoll(number nHeadingSoll): NUMBER;
var
    
number nRet;
code
    nRet 
0;

    if ((
diff360(nYaw,nHeadingSoll)) > 90then
        
if (bBackcourse    == FALSEthen
            nCountHeadingError 
nCountHeadingError 1;
            
nRet 1;
        endif;
        
bBackcourse    TRUE;
    else
        
bBackcourse    FALSE;
    endif;
    return(
nRet);
endfunction;

:
:
:

//================================================================
code

    
#include "script\lib\STDHousekeeping.abl";

    //strTemp = "Heading nach CP6: ";
    //Concat (strTemp,ntoa(posHere.BearingTo(aLat[6], aLng[6])));
    //print(strTemp);

    //strTemp = "Entfernung nach CP6: ";
    //Concat (strTemp,ntoa(posHere.DistanceTo(aLat[6], aLng[6])));
    //print(strTemp);

    
switch (nState)
        
#include "script\lib\STDCases.abl";
        
case CaseTalk1:
            
fnSQ_NormalMsg("Jetzt aber! Wir haben Startfreigabe.",0);
               
fnSQ_ChangeState(100);
            
fnSQ_Synchronize;
        
endcase;
        case 
100//Abflug, Abhebezeit
            
if (bWOW == FALSEthen
                nCountTooLow 
0;
                
nCountHeadingError 0;
                
dtStartZeit nElapsedTime// Merke Startzeit
                
nEntfernung 0.464//Setze Messradius
                
bCrashCheck TRUE//Turn Crash Check on

                
nCurrentCheckpoint 0;

                
fnSQ_NormalMsg("Ab jetzt zählts, drück auf die Stoppuhr!",0);
                   
fnSQ_ChangeState(110);
                
fnSQ_Synchronize;
            endif;
        
endcase;
        case 
110//Test bis SP
            
if (navTest(nCurrentCheckpoint) == 1then 
                    
                    strTemp 
"Wir haben den ";
                    if (
nCurrentCheckpoint == 0then
                        Concat 
(strTemp,"SP");
                    else
                        
Concat (strTemp,"CP");
                        
Concat (strTemp,ntoa(nCurrentCheckpoint));
                    endif;
                    
Concat (strTemp," erreicht, ich habe ");
                    
Concat (strTemp,ntoa(round(dtTimeRecord[nCurrentCheckpoint])));
                    
Concat (strTemp," Sekunden gemessen.");
                    
fnSQ_NormalMsg(strTemp,5);

                
nCurrentCheckpoint nCurrentCheckpoint 1;
                
nEntfernung 0.464//Setze Messradius

                
if (CheckPointCount == nCurrentCheckpointthen
                    fnSQ_ChangeState
(500);
                endif;
                
fnSQ_Synchronize;
            endif;
        
endcase;

        case 
500//End it all

                
bCrashCheck FALSE//Turn Crash Check off

                
strTemp calculateReport;

                
fnSQ_NormalMsg(strTemp,30);
                
fnSQ_ChangeState(510);
                
fnSQ_Synchronize;
        
endcase;
    endswitch;

    
fnMsgDisplay;

endmodule
Andragar ist offline   Mit Zitat antworten
Alt 08.08.2007, 10:48   #5
Taddie
bitte Mailadresse prüfen!
 
Registriert seit: 25.04.2007
Alter: 33
Beiträge: 88


Taddie eine Nachricht über ICQ schicken
Standard

Na ja,
das ist mir ein wenig zu hoch. Gibt es vielleicht gute Programme, die das Erstellen von Missionen erleichtern?
Taddie ist offline   Mit Zitat antworten
Alt 08.08.2007, 10:52   #6
Andragar
Inventar
 
Registriert seit: 19.04.2001
Alter: 55
Beiträge: 3.606


Andragar eine Nachricht über ICQ schicken
Standard

Nicht das ich wüßte.
Ich denke mal abgesehen davon, dass die alte Adventure-Engine nicht gerade performant läuft, ist das einer der Gründe warum es im FSX jetzt die Missions-Engine samt grafische Klickoberfläche gibt.
Andragar ist offline   Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist an.

Gehe zu


Alle Zeitangaben in WEZ +2. Es ist jetzt 00:28 Uhr.


Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Forum SEO by Zoints
© 2009 FSL Verlag