Frage: Ölbindemittel begrenzen und Fahrzeuge je nach Tageszeit unterschiedlich besetzt ( Zufall ) ausrücken lassen.

  • Frage: Ölbindemittel begrenzen und Fahrzeuge je nach Tageszeit unterschiedlich besetzt ( Zufall ) ausrücken lassen.

    Hallöchen.
    Meine Fragen stehen ja quasi in der Überschrift.
    Wo kann ich das Ölbindemittel auf den Fahrzeugen begrenzen? Im "get Bindemittel Script"?

    Die zweite Frage ist welches Alarmscript benötige ich um die Fahrzeuge je nach Tageszeit unterschiedlich zu besetzen? Und wo ist es dort geregelt?

    Vielen Dank.
  • Ich weiß nicht ob das so erlaubt ist. Ich möchte eine bestehende Modifikation für mich abändern. Ich hänge das Alarmscript mal an. Sollte der Ersteller der Mod das nicht wollen, bitte PN.
    ( Es sind insgesamt 3 Scripts - Stichwörter - ich hänge aber nur das B3 Script an )
    Könntest du dann evtl kurz beschreiben was wo geändert wurde? Das würde ich dann bei den anderen Scripts auch ändern.

    Spoiler anzeigen
    //////////////////////////////////////////////////////////////////////////////////////////////////////////
    // Freeplay Alarm TLF - Script v1.0 //
    // ************************************************ //
    // //
    // 1.0| PCmdFPAlarmTLF //
    // //
    // _____________________ //
    // a-rescue und Magicman mŸssen in der Readme genannt werden & der Kommentar muss so bleiben. //
    // Sonst freie Nutzung fŸr alle. //
    //////////////////////////////////////////////////////////////////////////////////////////////////////////


    const char IMG_ICON[] = "B3"; // Name des Icons
    const char IMG_CURSOR[] = "sendto"; // Name des Cursors

    const char COMMANDABLE_TRUE[] = "DUMMYSetCommandableTrue";
    const char COMMANDABLE_FALSE[] = "DUMMYSetCommandableFalse";

    const char FREEFORALERT_TRUE[] = "DUMMYFPSetFreeForAlertTrue";
    const char FREEFORALERT_FALSE[] = "DUMMYFPSetFreeForAlertFalse";
    const char FREEFORALERT[] = "DUMMYFPIsFreeForAlert";

    const char INBASE_TRUE[] = "DUMMYFPSetInBaseTrue";
    const char INBASE_FALSE[] = "DUMMYFPSetInBaseFalse";
    const char INBASE[] = "DUMMYFPIsInBase";

    // 1.0
    object rufe_b3 : CommandScript //Name des Commands
    {
    rufe_b3() //Name des Commands
    {
    SetIcon(IMG_ICON);
    SetCursor(IMG_CURSOR);
    SetValidTargets(ACTOR_FLOOR | ACTOR_STREET);
    }
    bool CheckPossible(GameObject *Caller)
    {
    GameObjectList ol;
    GameObject *o;
    ol = Game::GetGameObjects("20_11_01"); //Name des zu alarmierenden Fahrzeuges
    o = *ol.GetObject(0);
    Vehicle v(o);

    if (!v.HasCommand(FREEFORALERT))
    return false;

    return true;
    }
    bool CheckTarget(GameObject *Caller, Actor *Target, int childID)
    {
    if (Caller->GetID() == Target->GetID())
    return false;

    return true;
    }
    void PushActions(GameObject *Caller, Actor *Target, int childID)
    {
    GameObjectList ol;
    GameObject *o;
    ActorList al;
    Actor spawnpoint;
    Vector spawnpos;
    float rot[9];
    float childRot[9];
    Vector tpos;
    PersonList pl;
    Person p;
    ActorList al;
    Actor spawnpoint;
    Vector spawnpos;

    ol = Game::GetGameObjects("20_11_01"); //Name des zu alarmierenden Fahrzeuges
    o = *ol.GetObject(0);
    Vehicle v(o);

    if (v.IsDestroyed())
    {
    Mission::PlayHint("Fahrzeug wurde zerstoert und steht deshalb nicht mehr zur Verfuegung.");
    return;
    }

    if (!v.HasCommand(FREEFORALERT))
    {
    Mission::PlayHint("Fahrzeug befindet sich bereits im Einsatz.");
    return;
    }
    else
    {
    Mission::PlayHint("Alst1*b2* Zugalarm"); //Alarmmeldung die angezeigt werden soll
    //Audio::PlaySample("mod:Audio/FX/Alarm/lz1.wav"); //Pfad zum Alarmsound der abspielt werden soll
    Game::ExecuteCommand("alarm_b3_LF16",Caller,Target); //Hier Alarm Commands der weiteren Fahrzeuge einfügen
    Game::ExecuteCommand("alarm_b3_DLK",Caller,Target);
    Game::ExecuteCommand("alarm_b3_LF8",Caller,Target);
    Game::ExecuteCommand("alarm_b3_TLF",Caller,Target);
    Game::ExecuteCommand("alarm_b3_RW",Caller,Target);
    Game::ExecuteCommand("alarm_b3_TSF",Caller,Target);
    Game::ExecuteCommand("alarm_ELW2",Caller,Target);
    //Um weitere Fahrzeuge in einen Lšschzug zu alarmieren, Commands hier einfŸgen..

    v.PushActionExecuteCommand(ACTION_NEWLIST, FREEFORALERT_FALSE, &v, 1, true);

    al=Game::GetActors("Personal_OST"); //Name des viruelles Objektes wo die EinsatzkrŠfte erstellt werden soll
    if(al.GetNumActors() > 0)
    {
    spawnpoint = *al.GetActor(0);
    spawnpos = spawnpoint.GetPosition();
    }
    else
    {
    Mission::PlayHint("Kann Eingang fuer Personal nicht finden!");
    return;
    }

    bool ob_personal = false;
    pl = v.GetPassengers();
    for(int i=0; i < pl.GetNumPersons(); i++)
    {
    if (pl.GetPerson(i)->HasCommand("entercar"))
    {
    ob_personal = true;
    }
    }

    bool vinbase = false;
    if(v.HasCommand(INBASE))
    {
    vinbase = true;
    }


    if (vinbase)
    {
    Person p = Game::CreatePerson("mod:Prototypes/Persons/Feuerwehr Hammerstadt/EL.e4p", "20_11_01"); //Pfad zum Prototyp der Einsatzkraft & Name der Einsatzkraft (wie Fahrzeug)
    v.AddPassenger(&p);
    Person p = Game::CreatePerson("mod:Prototypes/Persons/Feuerwehr Hammerstadt/FWM.e4p", "20_11_01"); //Pfad zum Prototyp der Einsatzkraft & Name der Einsatzkraft (wie Fahrzeug)
    v.AddPassenger(&p);
    Person p = Game::CreatePerson("mod:Prototypes/Persons/Feuerwehr Hammerstadt/FWM.e4p", "20_11_01"); //Pfad zum Prototyp der Einsatzkraft & Name der Einsatzkraft (wie Fahrzeug)
    v.AddPassenger(&p);
    Person p = Game::CreatePerson("mod:Prototypes/Persons/Feuerwehr Hammerstadt/FWM.e4p", "20_11_01"); //Pfad zum Prototyp der Einsatzkraft & Name der Einsatzkraft (wie Fahrzeug)
    v.AddPassenger(&p);

    //FŸr weitere EinsatzkrŠfte einfach zwei neue Zeilen kopieren
    }

    bool ready = false;
    if (ob_personal)
    {
    ready= true;
    }

    if (vinbase)
    {
    Caller->PushActionExecuteCommand(ACTION_APPEND, "Durchsagen", NULL, 2);
    Caller->PushActionExecuteCommand(ACTION_APPEND, "Sirene", NULL, 1);
    Caller->PushActionExecuteCommand(ACTION_APPEND, "Sirene", NULL, 2);
    Caller->PushActionExecuteCommand(ACTION_APPEND, "Sirene", NULL, 3);
    Caller->PushActionExecuteCommand(ACTION_APPEND, "Sirene", NULL, 4);
    Caller->PushActionExecuteCommand(ACTION_APPEND, "Sirene", NULL, 5);
    Caller->PushActionExecuteCommand(ACTION_APPEND, "Sirene", NULL, 6);
    Caller->PushActionExecuteCommand(ACTION_APPEND, "Sirene", NULL, 7);
    Caller->PushActionExecuteCommand(ACTION_APPEND, "Sirene", NULL, 8);
    Caller->PushActionExecuteCommand(ACTION_APPEND, "Sirene", NULL, 9);
    Caller->PushActionExecuteCommand(ACTION_APPEND, "Sirene", NULL, 10);
    Caller->PushActionExecuteCommand(ACTION_APPEND, "Sirene", NULL, 11);
    Caller->PushActionExecuteCommand(ACTION_APPEND, "Sirene", NULL, 12);
    Caller->PushActionExecuteCommand(ACTION_APPEND, "Sirene", NULL, 13);
    v.PushActionWait(ACTION_APPEND, 1.0); //Zeit bevor Tor aufgeht
    v.PushActionExecuteCommand(ACTION_APPEND, "OpenGate", &v, 1, true);
    v.PushActionWait(ACTION_APPEND, 13.0); //Zeit bis Fahrzeug fŠhrt nachdem das Tor offen ist
    }

    if (!ready && !vinbase))
    {
    Mission::PlayHint("Ohne Personal, Einsatz nicht moeglich!");
    }

    v.PushActionExecuteCommand(ACTION_APPEND, COMMANDABLE_TRUE, &v, 1, true);

    if(!v.HasCommand("DUMMYHasSiren"))
    {
    v.PushActionExecuteCommand(ACTION_APPEND, "VCmdSiren", o, 0, false);
    }

    v.PushActionExecuteCommand(ACTION_APPEND, INBASE_FALSE, &v, 1, true);

    if (ready && !vinbase))
    {
    if(!v.HasCommand("DUMMYHasSiren"))
    {
    v.PushActionExecuteCommand(ACTION_APPEND, "VCmdSiren", o, 0, false);
    }
    }

    tpos = Game::GetCommandPos();
    v.PushActionMove(ACTION_APPEND, tpos);
    }
    }
    };

    object alarm_b3_LF16 : CommandScript //Name des Commands (muss mit oben Ÿbereinstimmen!)
    {
    alarm_b3_LF16() //Name des Commands
    {
    SetIcon(IMG_ICON);
    SetCursor(IMG_CURSOR);
    SetValidTargets(ACTOR_FLOOR | ACTOR_STREET);
    }
    bool CheckPossible(GameObject *Caller)
    {
    GameObjectList ol;
    GameObject *o;
    ol = Game::GetGameObjects("20_48_01"); //Name des zu alarmierenden Fahrzeuges
    o = *ol.GetObject(0);
    Vehicle v(o);

    if (!v.HasCommand(FREEFORALERT))
    return false;

    return true;
    }
    bool CheckTarget(GameObject *Caller, Actor *Target, int childID)
    {
    if (Caller->GetID() == Target->GetID())
    return false;

    return true;
    }
    void PushActions(GameObject *Caller, Actor *Target, int childID)
    {
    GameObjectList ol;
    GameObject *o;
    ActorList al;
    Actor spawnpoint;
    Vector spawnpos;
    float rot[9];
    float childRot[9];
    Vector tpos;
    PersonList pl;
    Person p;
    ActorList al;
    Actor spawnpoint;
    Vector spawnpos;

    ol = Game::GetGameObjects("20_48_01"); //Name des zu alarmierenden Fahrzeuges
    o = *ol.GetObject(0);
    Vehicle v(o);

    if (v.IsDestroyed())
    {
    Mission::PlayHint("Fahrzeug wurde zerstoert und steht deshalb nicht mehr zur Verfuegung.");
    return;
    }

    if (!v.HasCommand(FREEFORALERT))
    {
    Mission::PlayHint("Fahrzeug befindet sich bereits im Einsatz.");
    return;
    }
    else
    {
    v.PushActionExecuteCommand(ACTION_NEWLIST, FREEFORALERT_FALSE, &v, 1, true);

    al=Game::GetActors("Personal_OST"); //Name des viruelles Objektes wo die Einsatzkrˆfte erstellt werden soll
    if(al.GetNumActors() > 0)
    {
    spawnpoint = *al.GetActor(0);
    spawnpos = spawnpoint.GetPosition();
    }
    else
    {
    Mission::PlayHint("Kann Eingang fuer Personal nicht finden!");
    return;
    }

    bool ob_personal = false;
    pl = v.GetPassengers();
    for(int i=0; i < pl.GetNumPersons(); i++)
    {
    if (pl.GetPerson(i)->HasCommand("entercar"))
    {
    ob_personal = true;
    }
    }

    bool vinbase = false;
    if(v.HasCommand(INBASE))
    {
    vinbase = true;
    }

    if (vinbase)
    {
    Person p = Game::CreatePerson("mod:Prototypes/Persons/Feuerwehr Hammerstadt/GF.e4p", "20_48_01"); //Pfad zum Prototyp der Einsatzkraft & Name der Einsatzkraft (wie Fahrzeug)
    v.AddPassenger(&p);
    Person p = Game::CreatePerson("mod:Prototypes/Persons/Feuerwehr Hammerstadt/FWM.e4p", "20_48_01"); //Pfad zum Prototyp der Einsatzkraft & Name der Einsatzkraft (wie Fahrzeug)
    v.AddPassenger(&p);
    Person p = Game::CreatePerson("mod:Prototypes/Persons/Feuerwehr Hammerstadt/FWM.e4p", "20_48_01"); //Pfad zum Prototyp der Einsatzkraft & Name der Einsatzkraft (wie Fahrzeug)
    v.AddPassenger(&p);
    Person p = Game::CreatePerson("mod:Prototypes/Persons/Feuerwehr Hammerstadt/FWM.e4p", "20_48_01"); //Pfad zum Prototyp der Einsatzkraft & Name der Einsatzkraft (wie Fahrzeug)
    v.AddPassenger(&p);
    Person p = Game::CreatePerson("mod:Prototypes/Persons/Feuerwehr Hammerstadt/FWM.e4p", "20_48_01"); //Pfad zum Prototyp der Einsatzkraft & Name der Einsatzkraft (wie Fahrzeug)
    v.AddPassenger(&p);
    Person p = Game::CreatePerson("mod:Prototypes/Persons/Feuerwehr Hammerstadt/FWM.e4p", "20_48_01"); //Pfad zum Prototyp der Einsatzkraft & Name der Einsatzkraft (wie Fahrzeug)
    v.AddPassenger(&p);
    Person p = Game::CreatePerson("mod:Prototypes/Persons/Feuerwehr Hammerstadt/FWM.e4p", "20_48_01"); //Pfad zum Prototyp der Einsatzkraft & Name der Einsatzkraft (wie Fahrzeug)
    v.AddPassenger(&p);
    Person p = Game::CreatePerson("mod:Prototypes/Persons/Feuerwehr Hammerstadt/FWM.e4p", "20_48_01"); //Pfad zum Prototyp der Einsatzkraft & Name der Einsatzkraft (wie Fahrzeug)
    v.AddPassenger(&p);
    Person p = Game::CreatePerson("mod:Prototypes/Persons/Feuerwehr Hammerstadt/FWM.e4p", "20_48_01"); //Pfad zum Prototyp der Einsatzkraft & Name der Einsatzkraft (wie Fahrzeug)
    v.AddPassenger(&p);
    //FŸr weitere EinsatzkrŠfte einfach zwei neue Zeilen kopieren
    }


    bool ready = false;
    if (ob_personal)
    {
    ready= true;
    }

    if (vinbase)
    {
    v.PushActionWait(ACTION_APPEND, 14.0); //Zeit bevor Tor aufgeht
    v.PushActionExecuteCommand(ACTION_APPEND, "OpenGate", &v, 1, true);
    v.PushActionWait(ACTION_APPEND, 13.0); //Zeit bis Fahrzeug fŠhrt nachdem das Tor offen ist
    }

    if (!ready && !vinbase))
    {
    Mission::PlayHint("Ohne Personal, Einsatz nicht moeglich!");
    }

    v.PushActionExecuteCommand(ACTION_APPEND, COMMANDABLE_TRUE, &v, 1, true);

    if(!v.HasCommand("DUMMYHasSiren"))
    {
    v.PushActionExecuteCommand(ACTION_APPEND, "VCmdSiren", o, 0, false);
    }

    v.PushActionExecuteCommand(ACTION_APPEND, INBASE_FALSE, &v, 1, true);
    v.PushActionExecuteCommand(ACTION_APPEND, "PCmd_AGT", o, 0, false);

    if (ready && !vinbase))
    {
    if(!v.HasCommand("DUMMYHasSiren"))
    {
    v.PushActionExecuteCommand(ACTION_APPEND, "VCmdSiren", o, 0, false);
    }
    }

    tpos = Game::GetCommandPos();
    v.PushActionMove(ACTION_APPEND, tpos);
    }
    }
    };

    object alarm_b3_DLK : CommandScript //Name des Commands (muss mit oben Ÿbereinstimmen!)
    {
    alarm_b3_DLK() //Name des Commands
    {
    SetIcon(IMG_ICON);
    SetCursor(IMG_CURSOR);
    SetValidTargets(ACTOR_FLOOR | ACTOR_STREET);
    }
    bool CheckPossible(GameObject *Caller)
    {
    GameObjectList ol;
    GameObject *o;
    ol = Game::GetGameObjects("20_30_01"); //Name des zu alarmierenden Fahrzeuges
    o = *ol.GetObject(0);
    Vehicle v(o);

    if (!v.HasCommand(FREEFORALERT))
    return false;

    return true;
    }
    bool CheckTarget(GameObject *Caller, Actor *Target, int childID)
    {
    if (Caller->GetID() == Target->GetID())
    return false;

    return true;
    }
    void PushActions(GameObject *Caller, Actor *Target, int childID)
    {
    GameObjectList ol;
    GameObject *o;
    ActorList al;
    Actor spawnpoint;
    Vector spawnpos;
    float rot[9];
    float childRot[9];
    Vector tpos;
    PersonList pl;
    Person p;
    ActorList al;
    Actor spawnpoint;
    Vector spawnpos;

    ol = Game::GetGameObjects("20_30_01"); //Name des zu alarmierenden Fahrzeuges
    o = *ol.GetObject(0);
    Vehicle v(o);

    if (v.IsDestroyed())
    {
    Mission::PlayHint("Fahrzeug wurde zerstoert und steht deshalb nicht mehr zur Verfuegung.");
    return;
    }

    if (!v.HasCommand(FREEFORALERT))
    {
    Mission::PlayHint("Fahrzeug befindet sich bereits im Einsatz.");
    return;
    }
    else
    {
    v.PushActionExecuteCommand(ACTION_NEWLIST, FREEFORALERT_FALSE, &v, 1, true);

    al=Game::GetActors("Personal_OST"); //Name des viruelles Objektes wo die Einsatzkrˆfte erstellt werden soll
    if(al.GetNumActors() > 0)
    {
    spawnpoint = *al.GetActor(0);
    spawnpos = spawnpoint.GetPosition();
    }
    else
    {
    Mission::PlayHint("Kann Eingang fuer Personal nicht finden!");
    return;
    }

    bool ob_personal = false;
    pl = v.GetPassengers();
    for(int i=0; i < pl.GetNumPersons(); i++)
    {
    if (pl.GetPerson(i)->HasCommand("entercar"))
    {
    ob_personal = true;
    }
    }

    bool vinbase = false;
    if(v.HasCommand(INBASE))
    {
    vinbase = true;
    }

    if (vinbase)
    {
    Person p = Game::CreatePerson("mod:Prototypes/Persons/Feuerwehr Hammerstadt/GF.e4p", "20_30_01"); //Pfad zum Prototyp der Einsatzkraft & Name der Einsatzkraft (wie Fahrzeug)
    v.AddPassenger(&p);
    Person p = Game::CreatePerson("mod:Prototypes/Persons/Feuerwehr Hammerstadt/FWM.e4p", "20_30_01"); //Pfad zum Prototyp der Einsatzkraft & Name der Einsatzkraft (wie Fahrzeug)
    v.AddPassenger(&p);
    Person p = Game::CreatePerson("mod:Prototypes/Persons/Feuerwehr Hammerstadt/FWM.e4p", "20_30_01"); //Pfad zum Prototyp der Einsatzkraft & Name der Einsatzkraft (wie Fahrzeug)
    v.AddPassenger(&p);
    //FŸr weitere EinsatzkrŠfte einfach zwei neue Zeilen kopieren
    }


    bool ready = false;
    if (ob_personal)
    {
    ready= true;
    }

    if (vinbase)
    {
    v.PushActionWait(ACTION_APPEND, 25.0); //Zeit bevor Tor aufgeht
    v.PushActionExecuteCommand(ACTION_APPEND, "OpenGate", &v, 1, true);
    v.PushActionWait(ACTION_APPEND, 9.0); //Zeit bis Fahrzeug fŠhrt nachdem das Tor offen ist
    }

    if (!ready && !vinbase))
    {
    Mission::PlayHint("Ohne Personal, Einsatz nicht moeglich!");
    }

    v.PushActionExecuteCommand(ACTION_APPEND, COMMANDABLE_TRUE, &v, 1, true);

    if(!v.HasCommand("DUMMYHasSiren"))
    {
    v.PushActionExecuteCommand(ACTION_APPEND, "VCmdSiren", o, 0, false);
    }

    v.PushActionExecuteCommand(ACTION_APPEND, INBASE_FALSE, &v, 1, true);

    if (ready && !vinbase))
    {
    if(!v.HasCommand("DUMMYHasSiren"))
    {
    v.PushActionExecuteCommand(ACTION_APPEND, "VCmdSiren", o, 0, false);
    }
    }

    tpos = Game::GetCommandPos();
    v.PushActionMove(ACTION_APPEND, tpos);
    }
    }
    };

    object alarm_b3_LF8 : CommandScript //Name des Commands (muss mit oben Ÿbereinstimmen!)
    {
    alarm_b3_LF8() //Name des Commands
    {
    SetIcon(IMG_ICON);
    SetCursor(IMG_CURSOR);
    SetValidTargets(ACTOR_FLOOR | ACTOR_STREET);
    }
    bool CheckPossible(GameObject *Caller)
    {
    GameObjectList ol;
    GameObject *o;
    ol = Game::GetGameObjects("20_43_01"); //Name des zu alarmierenden Fahrzeuges
    o = *ol.GetObject(0);
    Vehicle v(o);

    if (!v.HasCommand(FREEFORALERT))
    return false;

    return true;
    }
    bool CheckTarget(GameObject *Caller, Actor *Target, int childID)
    {
    if (Caller->GetID() == Target->GetID())
    return false;

    return true;
    }
    void PushActions(GameObject *Caller, Actor *Target, int childID)
    {
    GameObjectList ol;
    GameObject *o;
    ActorList al;
    Actor spawnpoint;
    Vector spawnpos;
    float rot[9];
    float childRot[9];
    Vector tpos;
    PersonList pl;
    Person p;
    ActorList al;
    Actor spawnpoint;
    Vector spawnpos;

    ol = Game::GetGameObjects("20_43_01"); //Name des zu alarmierenden Fahrzeuges
    o = *ol.GetObject(0);
    Vehicle v(o);

    if (v.IsDestroyed())
    {
    Mission::PlayHint("Fahrzeug wurde zerstoert und steht deshalb nicht mehr zur Verfuegung.");
    return;
    }

    if (!v.HasCommand(FREEFORALERT))
    {
    Mission::PlayHint("Fahrzeug befindet sich bereits im Einsatz.");
    return;
    }
    else
    {
    v.PushActionExecuteCommand(ACTION_NEWLIST, FREEFORALERT_FALSE, &v, 1, true);

    al=Game::GetActors("Personal_OST"); //Name des viruelles Objektes wo die Einsatzkrˆfte erstellt werden soll
    if(al.GetNumActors() > 0)
    {
    spawnpoint = *al.GetActor(0);
    spawnpos = spawnpoint.GetPosition();
    }
    else
    {
    Mission::PlayHint("Kann Eingang fuer Personal nicht finden!");
    return;
    }

    bool ob_personal = false;
    pl = v.GetPassengers();
    for(int i=0; i < pl.GetNumPersons(); i++)
    {
    if (pl.GetPerson(i)->HasCommand("entercar"))
    {
    ob_personal = true;
    }
    }

    bool vinbase = false;
    if(v.HasCommand(INBASE))
    {
    vinbase = true;
    }

    if (vinbase)
    {
    Person p = Game::CreatePerson("mod:Prototypes/Persons/Feuerwehr Hammerstadt/GF.e4p", "20_43_01"); //Pfad zum Prototyp der Einsatzkraft & Name der Einsatzkraft (wie Fahrzeug)
    v.AddPassenger(&p);
    Person p = Game::CreatePerson("mod:Prototypes/Persons/Feuerwehr Hammerstadt/FWM.e4p", "20_43_01"); //Pfad zum Prototyp der Einsatzkraft & Name der Einsatzkraft (wie Fahrzeug)
    v.AddPassenger(&p);
    Person p = Game::CreatePerson("mod:Prototypes/Persons/Feuerwehr Hammerstadt/FWM.e4p", "20_43_01"); //Pfad zum Prototyp der Einsatzkraft & Name der Einsatzkraft (wie Fahrzeug)
    v.AddPassenger(&p);
    Person p = Game::CreatePerson("mod:Prototypes/Persons/Feuerwehr Hammerstadt/FWM.e4p", "20_43_01"); //Pfad zum Prototyp der Einsatzkraft & Name der Einsatzkraft (wie Fahrzeug)
    v.AddPassenger(&p);
    Person p = Game::CreatePerson("mod:Prototypes/Persons/Feuerwehr Hammerstadt/FWM.e4p", "20_43_01"); //Pfad zum Prototyp der Einsatzkraft & Name der Einsatzkraft (wie Fahrzeug)
    v.AddPassenger(&p);
    Person p = Game::CreatePerson("mod:Prototypes/Persons/Feuerwehr Hammerstadt/FWM.e4p", "20_43_01"); //Pfad zum Prototyp der Einsatzkraft & Name der Einsatzkraft (wie Fahrzeug)
    v.AddPassenger(&p);
    Person p = Game::CreatePerson("mod:Prototypes/Persons/Feuerwehr Hammerstadt/FWM.e4p", "20_43_01"); //Pfad zum Prototyp der Einsatzkraft & Name der Einsatzkraft (wie Fahrzeug)
    v.AddPassenger(&p);
    Person p = Game::CreatePerson("mod:Prototypes/Persons/Feuerwehr Hammerstadt/FWM.e4p", "20_43_01"); //Pfad zum Prototyp der Einsatzkraft & Name der Einsatzkraft (wie Fahrzeug)
    v.AddPassenger(&p);
    Person p = Game::CreatePerson("mod:Prototypes/Persons/Feuerwehr Hammerstadt/FWM.e4p", "20_43_01"); //Pfad zum Prototyp der Einsatzkraft & Name der Einsatzkraft (wie Fahrzeug)
    v.AddPassenger(&p);
    //FŸr weitere EinsatzkrŠfte einfach zwei neue Zeilen kopieren
    }


    bool ready = false;
    if (ob_personal)
    {
    ready= true;
    }

    if (vinbase)
    {
    v.PushActionWait(ACTION_APPEND, 34.0); //Zeit bevor Tor aufgeht
    v.PushActionExecuteCommand(ACTION_APPEND, "OpenGate", &v, 1, true);
    v.PushActionWait(ACTION_APPEND, 18.0); //Zeit bis Fahrzeug fŠhrt nachdem das Tor offen ist
    }

    if (!ready && !vinbase))
    {
    Mission::PlayHint("Ohne Personal, Einsatz nicht moeglich!");
    }

    v.PushActionExecuteCommand(ACTION_APPEND, COMMANDABLE_TRUE, &v, 1, true);

    if(!v.HasCommand("DUMMYHasSiren"))
    {
    v.PushActionExecuteCommand(ACTION_APPEND, "VCmdSiren", o, 0, false);
    }

    v.PushActionExecuteCommand(ACTION_APPEND, INBASE_FALSE, &v, 1, true);
    v.PushActionExecuteCommand(ACTION_APPEND, "PCmd_AGT", o, 0, false);

    if (ready && !vinbase))
    {
    if(!v.HasCommand("DUMMYHasSiren"))
    {
    v.PushActionExecuteCommand(ACTION_APPEND, "VCmdSiren", o, 0, false);
    }
    }

    tpos = Game::GetCommandPos();
    v.PushActionMove(ACTION_APPEND, tpos);
    }
    }
    };

    object alarm_b3_TLF : CommandScript //Name des Commands (muss mit oben Ÿbereinstimmen!)
    {
    alarm_b3_TLF() //Name des Commands
    {
    SetIcon(IMG_ICON);
    SetCursor(IMG_CURSOR);
    SetValidTargets(ACTOR_FLOOR | ACTOR_STREET);
    }
    bool CheckPossible(GameObject *Caller)
    {
    GameObjectList ol;
    GameObject *o;
    ol = Game::GetGameObjects("20_23_01"); //Name des zu alarmierenden Fahrzeuges
    o = *ol.GetObject(0);
    Vehicle v(o);

    if (!v.HasCommand(FREEFORALERT))
    return false;

    return true;
    }
    bool CheckTarget(GameObject *Caller, Actor *Target, int childID)
    {
    if (Caller->GetID() == Target->GetID())
    return false;

    return true;
    }
    void PushActions(GameObject *Caller, Actor *Target, int childID)
    {
    GameObjectList ol;
    GameObject *o;
    ActorList al;
    Actor spawnpoint;
    Vector spawnpos;
    float rot[9];
    float childRot[9];
    Vector tpos;
    PersonList pl;
    Person p;
    ActorList al;
    Actor spawnpoint;
    Vector spawnpos;

    ol = Game::GetGameObjects("20_23_01"); //Name des zu alarmierenden Fahrzeuges
    o = *ol.GetObject(0);
    Vehicle v(o);

    if (v.IsDestroyed())
    {
    Mission::PlayHint("Fahrzeug wurde zerstoert und steht deshalb nicht mehr zur Verfuegung.");
    return;
    }

    if (!v.HasCommand(FREEFORALERT))
    {
    Mission::PlayHint("Fahrzeug befindet sich bereits im Einsatz.");
    return;
    }
    else
    {
    v.PushActionExecuteCommand(ACTION_NEWLIST, FREEFORALERT_FALSE, &v, 1, true);

    al=Game::GetActors("Personal_OST"); //Name des viruelles Objektes wo die Einsatzkrˆfte erstellt werden soll
    if(al.GetNumActors() > 0)
    {
    spawnpoint = *al.GetActor(0);
    spawnpos = spawnpoint.GetPosition();
    }
    else
    {
    Mission::PlayHint("Kann Eingang fuer Personal nicht finden!");
    return;
    }

    bool ob_personal = false;
    pl = v.GetPassengers();
    for(int i=0; i < pl.GetNumPersons(); i++)
    {
    if (pl.GetPerson(i)->HasCommand("entercar"))
    {
    ob_personal = true;
    }
    }

    bool vinbase = false;
    if(v.HasCommand(INBASE))
    {
    vinbase = true;
    }

    if (vinbase)
    {
    Person p = Game::CreatePerson("mod:Prototypes/Persons/Feuerwehr Hammerstadt/GF.e4p", "20_23_01"); //Pfad zum Prototyp der Einsatzkraft & Name der Einsatzkraft (wie Fahrzeug)
    v.AddPassenger(&p);
    Person p = Game::CreatePerson("mod:Prototypes/Persons/Feuerwehr Hammerstadt/FWM.e4p", "20_23_01"); //Pfad zum Prototyp der Einsatzkraft & Name der Einsatzkraft (wie Fahrzeug)
    v.AddPassenger(&p);
    Person p = Game::CreatePerson("mod:Prototypes/Persons/Feuerwehr Hammerstadt/FWM.e4p", "20_23_01"); //Pfad zum Prototyp der Einsatzkraft & Name der Einsatzkraft (wie Fahrzeug)
    v.AddPassenger(&p);
    Person p = Game::CreatePerson("mod:Prototypes/Persons/Feuerwehr Hammerstadt/FWM.e4p", "20_23_01"); //Pfad zum Prototyp der Einsatzkraft & Name der Einsatzkraft (wie Fahrzeug)
    v.AddPassenger(&p);
    Person p = Game::CreatePerson("mod:Prototypes/Persons/Feuerwehr Hammerstadt/FWM.e4p", "20_23_01"); //Pfad zum Prototyp der Einsatzkraft & Name der Einsatzkraft (wie Fahrzeug)
    v.AddPassenger(&p);
    Person p = Game::CreatePerson("mod:Prototypes/Persons/Feuerwehr Hammerstadt/FWM.e4p", "20_23_01"); //Pfad zum Prototyp der Einsatzkraft & Name der Einsatzkraft (wie Fahrzeug)
    v.AddPassenger(&p);

    //FŸr weitere EinsatzkrŠfte einfach zwei neue Zeilen kopieren
    }


    bool ready = false;
    if (ob_personal)
    {
    ready= true;
    }

    if (vinbase)
    {
    v.PushActionWait(ACTION_APPEND, 50.0); //Zeit bevor Tor aufgeht
    v.PushActionExecuteCommand(ACTION_APPEND, "OpenGate", &v, 1, true);
    v.PushActionWait(ACTION_APPEND, 12.0); //Zeit bis Fahrzeug fŠhrt nachdem das Tor offen ist
    }

    if (!ready && !vinbase))
    {
    Mission::PlayHint("Ohne Personal, Einsatz nicht moeglich!");
    }

    v.PushActionExecuteCommand(ACTION_APPEND, COMMANDABLE_TRUE, &v, 1, true);

    if(!v.HasCommand("DUMMYHasSiren"))
    {
    v.PushActionExecuteCommand(ACTION_APPEND, "VCmdSiren", o, 0, false);
    }

    v.PushActionExecuteCommand(ACTION_APPEND, INBASE_FALSE, &v, 1, true);
    v.PushActionExecuteCommand(ACTION_APPEND, "PCmd_AGT", o, 0, false);

    if (ready && !vinbase))
    {
    if(!v.HasCommand("DUMMYHasSiren"))
    {
    v.PushActionExecuteCommand(ACTION_APPEND, "VCmdSiren", o, 0, false);
    }
    }

    tpos = Game::GetCommandPos();
    v.PushActionMove(ACTION_APPEND, tpos);
    }
    }
    };
    object alarm_b3_RW : CommandScript //Name des Commands (muss mit oben Ÿbereinstimmen!)
    {
    alarm_b3_RW() //Name des Commands
    {
    SetIcon(IMG_ICON);
    SetCursor(IMG_CURSOR);
    SetValidTargets(ACTOR_FLOOR | ACTOR_STREET);
    }
    bool CheckPossible(GameObject *Caller)
    {
    GameObjectList ol;
    GameObject *o;
    ol = Game::GetGameObjects("20_51_01"); //Name des zu alarmierenden Fahrzeuges
    o = *ol.GetObject(0);
    Vehicle v(o);

    if (!v.HasCommand(FREEFORALERT))
    return false;

    return true;
    }
    bool CheckTarget(GameObject *Caller, Actor *Target, int childID)
    {
    if (Caller->GetID() == Target->GetID())
    return false;

    return true;
    }
    void PushActions(GameObject *Caller, Actor *Target, int childID)
    {
    GameObjectList ol;
    GameObject *o;
    ActorList al;
    Actor spawnpoint;
    Vector spawnpos;
    float rot[9];
    float childRot[9];
    Vector tpos;
    PersonList pl;
    Person p;
    ActorList al;
    Actor spawnpoint;
    Vector spawnpos;

    ol = Game::GetGameObjects("20_51_01"); //Name des zu alarmierenden Fahrzeuges
    o = *ol.GetObject(0);
    Vehicle v(o);

    if (v.IsDestroyed())
    {
    Mission::PlayHint("Fahrzeug wurde zerstoert und steht deshalb nicht mehr zur Verfuegung.");
    return;
    }

    if (!v.HasCommand(FREEFORALERT))
    {
    Mission::PlayHint("Fahrzeug befindet sich bereits im Einsatz.");
    return;
    }
    else
    {
    v.PushActionExecuteCommand(ACTION_NEWLIST, FREEFORALERT_FALSE, &v, 1, true);

    al=Game::GetActors("Personal_OST"); //Name des viruelles Objektes wo die Einsatzkrˆfte erstellt werden soll
    if(al.GetNumActors() > 0)
    {
    spawnpoint = *al.GetActor(0);
    spawnpos = spawnpoint.GetPosition();
    }
    else
    {
    Mission::PlayHint("Kann Eingang fuer Personal nicht finden!");
    return;
    }

    bool ob_personal = false;
    pl = v.GetPassengers();
    for(int i=0; i < pl.GetNumPersons(); i++)
    {
    if (pl.GetPerson(i)->HasCommand("entercar"))
    {
    ob_personal = true;
    }
    }

    bool vinbase = false;
    if(v.HasCommand(INBASE))
    {
    vinbase = true;
    }

    if (vinbase)
    {
    Person p = Game::CreatePerson("mod:Prototypes/Persons/Feuerwehr Hammerstadt/GF.e4p", "20_51_01"); //Pfad zum Prototyp der Einsatzkraft & Name der Einsatzkraft (wie Fahrzeug)
    v.AddPassenger(&p);
    Person p = Game::CreatePerson("mod:Prototypes/Persons/Feuerwehr Hammerstadt/FWM.e4p", "20_51_01"); //Pfad zum Prototyp der Einsatzkraft & Name der Einsatzkraft (wie Fahrzeug)
    v.AddPassenger(&p);
    Person p = Game::CreatePerson("mod:Prototypes/Persons/Feuerwehr Hammerstadt/FWM.e4p", "20_51_01"); //Pfad zum Prototyp der Einsatzkraft & Name der Einsatzkraft (wie Fahrzeug)
    v.AddPassenger(&p);

    //FŸr weitere EinsatzkrŠfte einfach zwei neue Zeilen kopieren
    }


    bool ready = false;
    if (ob_personal)
    {
    ready= true;
    }

    if (vinbase)
    {
    v.PushActionWait(ACTION_APPEND, 60.0); //Zeit bevor Tor aufgeht
    v.PushActionExecuteCommand(ACTION_APPEND, "OpenGate", &v, 1, true);
    v.PushActionWait(ACTION_APPEND, 5.0); //Zeit bis Fahrzeug fŠhrt nachdem das Tor offen ist
    }

    if (!ready && !vinbase))
    {
    Mission::PlayHint("Ohne Personal, Einsatz nicht moeglich!");
    }

    v.PushActionExecuteCommand(ACTION_APPEND, COMMANDABLE_TRUE, &v, 1, true);

    if(!v.HasCommand("DUMMYHasSiren"))
    {
    v.PushActionExecuteCommand(ACTION_APPEND, "VCmdSiren", o, 0, false);
    }

    v.PushActionExecuteCommand(ACTION_APPEND, INBASE_FALSE, &v, 1, true);

    if (ready && !vinbase))
    {
    if(!v.HasCommand("DUMMYHasSiren"))
    {
    v.PushActionExecuteCommand(ACTION_APPEND, "VCmdSiren", o, 0, false);
    }
    }

    tpos = Game::GetCommandPos();
    v.PushActionMove(ACTION_APPEND, tpos);
    }
    }
    };
    object alarm_b3_TSF : CommandScript //Name des Commands (muss mit oben Ÿbereinstimmen!)
    {
    alarm_b3_TSF() //Name des Commands
    {
    SetIcon(IMG_ICON);
    SetCursor(IMG_CURSOR);
    SetValidTargets(ACTOR_FLOOR | ACTOR_STREET);
    }
    bool CheckPossible(GameObject *Caller)
    {
    GameObjectList ol;
    GameObject *o;
    ol = Game::GetGameObjects("20_40_05"); //Name des zu alarmierenden Fahrzeuges
    o = *ol.GetObject(0);
    Vehicle v(o);

    if (!v.HasCommand(FREEFORALERT))
    return false;

    return true;
    }
    bool CheckTarget(GameObject *Caller, Actor *Target, int childID)
    {
    if (Caller->GetID() == Target->GetID())
    return false;

    return true;
    }
    void PushActions(GameObject *Caller, Actor *Target, int childID)
    {
    GameObjectList ol;
    GameObject *o;
    ActorList al;
    Actor spawnpoint;
    Vector spawnpos;
    float rot[9];
    float childRot[9];
    Vector tpos;
    PersonList pl;
    Person p;
    ActorList al;
    Actor spawnpoint;
    Vector spawnpos;

    ol = Game::GetGameObjects("20_40_05"); //Name des zu alarmierenden Fahrzeuges
    o = *ol.GetObject(0);
    Vehicle v(o);

    if (v.IsDestroyed())
    {
    Mission::PlayHint("Fahrzeug wurde zerstoert und steht deshalb nicht mehr zur Verfuegung.");
    return;
    }

    if (!v.HasCommand(FREEFORALERT))
    {
    Mission::PlayHint("Fahrzeug befindet sich bereits im Einsatz.");
    return;
    }
    else
    {
    v.PushActionExecuteCommand(ACTION_NEWLIST, FREEFORALERT_FALSE, &v, 1, true);

    al=Game::GetActors("Personal_OST"); //Name des viruelles Objektes wo die Einsatzkrˆfte erstellt werden soll
    if(al.GetNumActors() > 0)
    {
    spawnpoint = *al.GetActor(0);
    spawnpos = spawnpoint.GetPosition();
    }
    else
    {
    Mission::PlayHint("Kann Eingang fuer Personal nicht finden!");
    return;
    }

    bool ob_personal = false;
    pl = v.GetPassengers();
    for(int i=0; i < pl.GetNumPersons(); i++)
    {
    if (pl.GetPerson(i)->HasCommand("entercar"))
    {
    ob_personal = true;
    }
    }

    bool vinbase = false;
    if(v.HasCommand(INBASE))
    {
    vinbase = true;
    }

    if (vinbase)
    {
    Person p = Game::CreatePerson("mod:Prototypes/Persons/Feuerwehr Hammerstadt/GF.e4p", "20_40_05"); //Pfad zum Prototyp der Einsatzkraft & Name der Einsatzkraft (wie Fahrzeug)
    v.AddPassenger(&p);
    Person p = Game::CreatePerson("mod:Prototypes/Persons/Feuerwehr Hammerstadt/FWM.e4p", "20_40_05"); //Pfad zum Prototyp der Einsatzkraft & Name der Einsatzkraft (wie Fahrzeug)
    v.AddPassenger(&p);
    Person p = Game::CreatePerson("mod:Prototypes/Persons/Feuerwehr Hammerstadt/FWM.e4p", "20_40_05"); //Pfad zum Prototyp der Einsatzkraft & Name der Einsatzkraft (wie Fahrzeug)
    v.AddPassenger(&p);
    Person p = Game::CreatePerson("mod:Prototypes/Persons/Feuerwehr Hammerstadt/FWM.e4p", "20_40_05"); //Pfad zum Prototyp der Einsatzkraft & Name der Einsatzkraft (wie Fahrzeug)
    v.AddPassenger(&p);
    Person p = Game::CreatePerson("mod:Prototypes/Persons/Feuerwehr Hammerstadt/FWM.e4p", "20_40_05"); //Pfad zum Prototyp der Einsatzkraft & Name der Einsatzkraft (wie Fahrzeug)
    v.AddPassenger(&p);
    Person p = Game::CreatePerson("mod:Prototypes/Persons/Feuerwehr Hammerstadt/FWM.e4p", "20_40_05"); //Pfad zum Prototyp der Einsatzkraft & Name der Einsatzkraft (wie Fahrzeug)
    v.AddPassenger(&p);

    //FŸr weitere EinsatzkrŠfte einfach zwei neue Zeilen kopieren
    }


    bool ready = false;
    if (ob_personal)
    {
    ready= true;
    }

    if (vinbase)
    {
    Caller->PushActionExecuteCommand(ACTION_APPEND, "Durchsagen", NULL, 3);
    v.PushActionWait(ACTION_APPEND, 10.0); //Zeit bevor Tor aufgeht
    v.PushActionExecuteCommand(ACTION_APPEND, "OpenGate", &v, 1, true);
    v.PushActionWait(ACTION_APPEND, 30.0); //Zeit bis Fahrzeug fŠhrt nachdem das Tor offen ist
    v.Show();
    }

    if (!ready && !vinbase))
    {
    Mission::PlayHint("Ohne Personal, Einsatz nicht moeglich!");
    }

    v.PushActionExecuteCommand(ACTION_APPEND, COMMANDABLE_TRUE, &v, 1, true);

    if(!v.HasCommand("DUMMYHasSiren"))
    {
    v.PushActionExecuteCommand(ACTION_APPEND, "VCmdSiren", o, 0, false);
    }

    v.PushActionExecuteCommand(ACTION_APPEND, INBASE_FALSE, &v, 1, true);

    if (ready && !vinbase))
    {
    if(!v.HasCommand("DUMMYHasSiren"))
    {
    v.PushActionExecuteCommand(ACTION_APPEND, "VCmdSiren", o, 0, false);
    }
    }

    tpos = Game::GetCommandPos();
    v.PushActionMove(ACTION_APPEND, tpos);
    }
    }
    };
    object alarm_ELW2 : CommandScript //Name des Commands (muss mit oben Ÿbereinstimmen!)
    {
    alarm_ELW2() //Name des Commands
    {
    SetIcon(IMG_ICON);
    SetCursor(IMG_CURSOR);
    SetValidTargets(ACTOR_FLOOR | ACTOR_STREET);
    }
    bool CheckPossible(GameObject *Caller)
    {
    GameObjectList ol;
    GameObject *o;
    ol = Game::GetGameObjects("21_12_01"); //Name des zu alarmierenden Fahrzeuges
    o = *ol.GetObject(0);
    Vehicle v(o);

    if (!v.HasCommand(FREEFORALERT))
    return false;

    return true;
    }
    bool CheckTarget(GameObject *Caller, Actor *Target, int childID)
    {
    if (Caller->GetID() == Target->GetID())
    return false;

    return true;
    }
    void PushActions(GameObject *Caller, Actor *Target, int childID)
    {
    GameObjectList ol;
    GameObject *o;
    ActorList al;
    Actor spawnpoint;
    Vector spawnpos;
    float rot[9];
    float childRot[9];
    Vector tpos;
    PersonList pl;
    Person p;
    ActorList al;
    Actor spawnpoint;
    Vector spawnpos;

    ol = Game::GetGameObjects("21_12_01"); //Name des zu alarmierenden Fahrzeuges
    o = *ol.GetObject(0);
    Vehicle v(o);

    if (v.IsDestroyed())
    {
    Mission::PlayHint("Fahrzeug wurde zerstoert und steht deshalb nicht mehr zur Verfuegung.");
    return;
    }

    if (!v.HasCommand(FREEFORALERT))
    {
    Mission::PlayHint("Fahrzeug befindet sich bereits im Einsatz.");
    return;
    }
    else
    {
    v.PushActionExecuteCommand(ACTION_NEWLIST, FREEFORALERT_FALSE, &v, 1, true);

    al=Game::GetActors("Personal_OST"); //Name des viruelles Objektes wo die Einsatzkrˆfte erstellt werden soll
    if(al.GetNumActors() > 0)
    {
    spawnpoint = *al.GetActor(0);
    spawnpos = spawnpoint.GetPosition();
    }
    else
    {
    Mission::PlayHint("Kann Eingang fuer Personal nicht finden!");
    return;
    }

    bool ob_personal = false;
    pl = v.GetPassengers();
    for(int i=0; i < pl.GetNumPersons(); i++)
    {
    if (pl.GetPerson(i)->HasCommand("entercar"))
    {
    ob_personal = true;
    }
    }

    bool vinbase = false;
    if(v.HasCommand(INBASE))
    {
    vinbase = true;
    }

    if (vinbase)
    {
    Person p = Game::CreatePerson("mod:Prototypes/Persons/Feuerwehr Hammerstadt/GF.e4p", "21_12_01"); //Pfad zum Prototyp der Einsatzkraft & Name der Einsatzkraft (wie Fahrzeug)
    v.AddPassenger(&p);
    Person p = Game::CreatePerson("mod:Prototypes/Persons/Feuerwehr Hammerstadt/FWM.e4p", "21_12_01"); //Pfad zum Prototyp der Einsatzkraft & Name der Einsatzkraft (wie Fahrzeug)
    v.AddPassenger(&p);
    Person p = Game::CreatePerson("mod:Prototypes/Persons/Feuerwehr Hammerstadt/FWM.e4p", "21_12_01"); //Pfad zum Prototyp der Einsatzkraft & Name der Einsatzkraft (wie Fahrzeug)
    v.AddPassenger(&p);
    Person p = Game::CreatePerson("mod:Prototypes/Persons/Feuerwehr Hammerstadt/FWM.e4p", "21_12_01"); //Pfad zum Prototyp der Einsatzkraft & Name der Einsatzkraft (wie Fahrzeug)
    v.AddPassenger(&p);
    Person p = Game::CreatePerson("mod:Prototypes/Persons/Feuerwehr Hammerstadt/FWM.e4p", "21_12_01"); //Pfad zum Prototyp der Einsatzkraft & Name der Einsatzkraft (wie Fahrzeug)
    v.AddPassenger(&p);
    Person p = Game::CreatePerson("mod:Prototypes/Persons/Feuerwehr Hammerstadt/FWM.e4p", "21_12_01"); //Pfad zum Prototyp der Einsatzkraft & Name der Einsatzkraft (wie Fahrzeug)
    v.AddPassenger(&p);

    //FŸr weitere EinsatzkrŠfte einfach zwei neue Zeilen kopieren
    }


    bool ready = false;
    if (ob_personal)
    {
    ready= true;
    }

    if (vinbase)
    {
    Caller->PushActionExecuteCommand(ACTION_APPEND, "Durchsagen", NULL, 22);
    v.PushActionWait(ACTION_APPEND, 8.0); //Zeit bevor Tor aufgeht
    v.PushActionExecuteCommand(ACTION_APPEND, "OpenGate", &v, 1, true);
    v.PushActionWait(ACTION_APPEND, 80.0); //Zeit bis Fahrzeug fŠhrt nachdem das Tor offen ist
    v.Show();
    }

    if (!ready && !vinbase))
    {
    Mission::PlayHint("Ohne Personal, Einsatz nicht moeglich!");
    }

    v.PushActionExecuteCommand(ACTION_APPEND, COMMANDABLE_TRUE, &v, 1, true);

    if(!v.HasCommand("DUMMYHasSiren"))
    {
    v.PushActionExecuteCommand(ACTION_APPEND, "VCmdSiren", o, 0, false);
    }

    v.PushActionExecuteCommand(ACTION_APPEND, INBASE_FALSE, &v, 1, true);

    if (ready && !vinbase))
    {
    if(!v.HasCommand("DUMMYHasSiren"))
    {
    v.PushActionExecuteCommand(ACTION_APPEND, "VCmdSiren", o, 0, false);
    }
    }

    tpos = Game::GetCommandPos();
    v.PushActionMove(ACTION_APPEND, tpos);
    }
    }
    };

  • Ist eigentlich ganz einfach: In den Scripts musst du nur nach

    C-Quellcode

    1. if (!v.HasCommand(FREEFORALERT))
    2. {
    3. Mission::PlayHint("Fahrzeug befindet sich bereits im Einsatz.");
    4. return;
    5. }
    6. else
    7. {
    eine Abfrage für die Uhrzeit erstellen. Die sieht z.B. so aus:

    C-Quellcode

    1. Game::GetTime(h,m,s);
    2. if (h < 7 || h > 17)
    3. {
    4. Caller->PushActionExecuteCommand(ACTION_INSERT, "alarm_b3_LF8", Target, 1);
    5. }
    Das hat dann zur Folge, dass zwischen 18 und 7 Uhr das LF8 mit alarmiert wird.

    Das "get Bindemittel" Script müsstest du dann auch noch anhängen :saint:
  • Erstmal Danke. :)
    Ich glaube wir hatten aneinander vorbei geredet. Ich meinte mit unterschiedlicher Mannschaftsstärke. Da Tagsüber ja oft weniger Einsatzkräfte zur Verfügung stehen.
    Also das ein Fahrzeug mal mit 2, mal mit 9 Kräften ausrückt. Das ist ja in Germershein gut umgesetzt. Bin nur anscheinend zu blöd die entsprechenden Einträge zu finden.

    Das mit dem Bindemittel ist soweit ich das verstehe nicht in dem "get Bindemittel" Script geregelt. Ich glaube das hat etwas mit dem Fahrzeug zu tun bzw Dummy Command. So ganz verstanden habe ich das nicht.

    Spoiler anzeigen
    object GetBindemittel : CommandScript
    {
    Vector pos;

    GetBindemittel()
    {
    SetCursor("sendto");
    SetIcon("oelbinder");
    SetGroupLeader(false);
    SetGroupID(CGROUP_GETEQUIPMENT);
    SetValidTargets(ACTOR_VEHICLE);
    //SetRestrictions(RESTRICT_NOTDESTROYED | RESTRICT_NOTBURNING );
    }

    bool CheckTarget(GameObject *Caller, Actor *Target, int childID)
    {

    Vehicle v(Target);
    if (v.HasCommand("ICH_HABE_BINDEMITTEL"))
    {
    return true;
    }
    return false;
    }

    void PushActions(GameObject *Caller, Actor *Target, int childID)
    {
    Person p(Caller);
    Vehicle v(Target);

    if (childID == 0)
    {

    System::Log("Gehe zu FZ");
    pos = v.GetPosition();
    p.PushActionMove(ACTION_NEWLIST,pos);
    p.PushActionTurnTo(ACTION_APPEND, Target);
    p.PushActionExecuteCommand(ACTION_APPEND, "GetBindemittel", Target, 1, false);
    }

    if (childID == 1)
    {
    System::Log("Hole Binder heraus");
    p.PushActionWait(ACTION_APPEND, 0.6f);
    v.PlayAnimOpenDoor(DAT_SPECIAL, 0.6f, 0);
    p.SetCommandable(false);

    p.PushActionSwitchAnim(ACTION_APPEND, "treatinjured2");
    p.PushActionWait(ACTION_APPEND, 2.0);

    p.PushActionExecuteCommand(ACTION_APPEND, "GetBindemittel", Target, 2, false);
    }

    if (childID == 2)
    {

    p.SetCommandable(true);
    p.PushActionSwitchAnim(ACTION_APPEND, "idle");
    p.AssignCommand("abstreuen");
    p.AssignCommand("ICH_HABE_BINDEMITTEL");
    p.AssignCommand("RemoveEquipment");
    p.AssignCommand("RemoveBindemittel");
    //p.AssignCommand("NotfallkofferAblegen");
    p.RemoveCommand("GetBindemittel");

    p.PushActionExecuteCommand(ACTION_APPEND, "Gebe_Bindemittel", Target, 0, false);
    }
    }
    };

    object ICH_HABE_BINDEMITTEL : CommandScript
    {
    ICH_HABE_BINDEMITTEL()
    {
    SetGroupID(20);
    }

    bool CheckGroupVisibility(GameObject *Caller)
    {
    return false;
    }

    void PushActions(GameObject *Caller, Actor *Target, int childID)
    {
    }
    };
    object Gebe_Bindemittel : CommandScript
    {
    Gebe_Bindemittel()
    {
    SetGroupID(20);
    }
    bool CheckTarget(GameObject *Caller, Actor *Target, int childID)
    {
    return false;
    }
    void PushActions(GameObject *Caller, Actor *Target, int childID)
    {
    Person p(Caller);
    p.PlaceObjectInRightHand("mod:Models/Objects/Equipment/constr_cementbag01.v3o");
    }
    };
  • Boehmi79 schrieb:

    Also das ein Fahrzeug mal mit 2, mal mit 9 Kräften ausrückt.
    Achso, das funktioniert aber genauso:

    C-Quellcode

    1. if (vinbase)
    2. {
    3. int h,m,s;
    4. Game::GetTime(h,m,s);
    5. if (h < 7 || h > 17)
    6. {
    7. Person p = Game::CreatePerson("mod:Prototypes/Persons/Feuerwehr Hammerstadt/EL.e4p", "20_11_01"); //Pfad zum Prototyp der Einsatzkraft & Name der Einsatzkraft (wie Fahrzeug)
    8. v.AddPassenger(&p);
    9. Person p = Game::CreatePerson("mod:Prototypes/Persons/Feuerwehr Hammerstadt/FWM.e4p", "20_11_01"); //Pfad zum Prototyp der Einsatzkraft & Name der Einsatzkraft (wie Fahrzeug)
    10. v.AddPassenger(&p);
    11. Person p = Game::CreatePerson("mod:Prototypes/Persons/Feuerwehr Hammerstadt/FWM.e4p", "20_11_01"); //Pfad zum Prototyp der Einsatzkraft & Name der Einsatzkraft (wie Fahrzeug)
    12. v.AddPassenger(&p);
    13. Person p = Game::CreatePerson("mod:Prototypes/Persons/Feuerwehr Hammerstadt/FWM.e4p", "20_11_01"); //Pfad zum Prototyp der Einsatzkraft & Name der Einsatzkraft (wie Fahrzeug)
    14. v.AddPassenger(&p);
    15. //FŸr weitere EinsatzkrŠfte einfach zwei neue Zeilen kopieren
    16. }
    17. else
    18. {
    19. Person p = Game::CreatePerson("mod:Prototypes/Persons/Feuerwehr Hammerstadt/EL.e4p", "20_11_01"); //Pfad zum Prototyp der Einsatzkraft & Name der Einsatzkraft (wie Fahrzeug)
    20. v.AddPassenger(&p);
    21. Person p = Game::CreatePerson("mod:Prototypes/Persons/Feuerwehr Hammerstadt/FWM.e4p", "20_11_01"); //Pfad zum Prototyp der Einsatzkraft & Name der Einsatzkraft (wie Fahrzeug)
    22. v.AddPassenger(&p);
    23. }
    24. }
    Alles anzeigen
    Wie auch oben in dem Beispiel habe ich wieder den Zeitraum zwischen 18 und 7 Uhr gewählt. Dort rücken auf dem ELW 4 Mann aus, sonst nur 2. Das ganze kannst du dann auch mit anderen bzw. weiteren Uhrzeiten machen.
    Im Übrigen ist das Besetzen der Fahrzeuge viel schöner und einfacher folgendermaßen geregelt:

    C-Quellcode

    1. if (vinbase)
    2. {
    3. int h,m,s;
    4. Game::GetTime(h,m,s);
    5. if (h < 7 || h > 17)
    6. {
    7. Person p = Game::CreatePerson("mod:Prototypes/Persons/Feuerwehr Hammerstadt/EL.e4p", "20_11_01"); //Pfad zum Prototyp der Einsatzkraft & Name der Einsatzkraft (wie Fahrzeug)
    8. v.AddPassenger(&p);
    9. for (int i=0; i<3; i++)
    10. {
    11. v.AddPassenger(Game::CreatePerson("mod:Prototypes/Persons/Feuerwehr Hammerstadt/FWM.e4p", "20_11_01"));
    12. }
    13. }
    14. }
    Alles anzeigen
    Hier ist einfach eine Zähler-Schleife eingebaut, die in diesem Fall zu dem GF noch 3 normale FWM erzeugt. Die Anzahl lässt sich über "for (int i=0; i<3; i++)" einstellen. In meinem Beispiel habe ich auch gleich den Befehlt noch gekürzt (Wie sagte noBlubb mal? "Anti-Clusterfuck"?). (Ja ihr Scripting-Experten, "Warum nicht auch beim GF?" Hatte bei mir so nicht funktioniert :hmm: )

    Das Dummy-Command beim Bindemittel wird benutzt, um einem Fahrzeug bzw. der Person generell Bindemittel zur Verfügung zu stellen. Beim Einschränken kann ich dir doch nicht helfen, ich entsinne mich dass es verschiedene Ansätze dafür gibt, ich selbst wollte das auch schon umsetzen, konnte mich aber och nicht einarbeiten)

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von DerWeiseler ()