Jump to content

FireFightersKid

Members
  • Posts

    373
  • Joined

  • Last visited

Posts posted by FireFightersKid

  1. Set a high fire resistance for your fire trucks in the Traits menu (EM4 Editor). To make the fires spread slower, you must go to your emitters.xml file (correct me if I'm wrong) and set the spread rate to a lower value.

     

    That will only make the fires spread equaly faster and it will mess with the buildings

     

    Thank you for the fast response!  :happy:

  2. I've got a problem with my mod. 

    I've downloaded the expanded freeplaymap v1.4 and put it in my own mod. But when i have a fire, the fire spread rapidly. 

    And if I send to the fire my firetrucks then they explode..

    How can I fix this?

  3. The site has alot of North American members and most probably prefer N.American style of units as you would expect the opposite for our European members.

    Regardless,it's a skinning contest, not a what countries emergency vehicle is more popular contest...the best skin no matter what country it's from, will and should win.

    Yeah, ok that's the truth, but you know, just like me, that an ordaniry fire truck from belgium will never win from one of the american trucks. They should say for the contest a subject and place. Then we got all the same.

    Example: fire truck from iraq or ambulance from china :D

  4. I don't think this will work, because for my ladder truck it was already 0 and 1 in the front and 2 and 3 in the back. But he still parks not as it must be.

    This is the go to station command script.

    //////////////////////////////////////////////////////////////////////////////////////////////////////////

    // Freeplay GoHome - Script v1.3 //

    // ******************************************** //

    // //

    // 1.0| VCmdFPGoHome //

    // | //

    // 2.0| DUMMYFPGoHome //

    // | | //

    // | |- Zu parkende Einheiten sind durch Kommentarzeilen (//) in Bloecke unterteilt. //

    // | | Jeder von ihnen kann entfernt werden, ohne dass das Skript unbrauchbar wird. //

    // | | //

    // | '- Die mit einem Stern (*) markierten Zeilen muessen angepasst werden. //

    // | Mehrere Sterne bedeuten lediglich mehrere Anpassungen in einer Zeile. //

    // | Dabei gilt: Zwei Sterne entsprechen zwei Anpassungen, und so weiter. //

    // | //

    // 2.1| DUMMYFPGoHomePersonal //

    // | //

    // |- Ausgangspunkte fuer das Fahrzeug-Personal sind durch Kommentarzeilen (//) in Bloecke //

    // | unterteilt. Jeder von ihnen kann entfernt werden, ohne dass das Skript unbrauchbar //

    // | wird. //

    // | //

    // '- Die mit einem Stern (*) markierten Zeilen muessen angepasst werden. //

    // Mehrere Sterne bedeuten lediglich mehrere Anpassungen in einer Zeile. //

    // Dabei gilt: Zwei Sterne entsprechen zwei Anpassungen, und so weiter. //

    // //

    // _____________________ //

    // 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[] = "gohome"; // Name des Icons

    const char IMG_CURSOR[] = "gohome"; // Name des Cursors

    const char DUMMYGOHOME_V[] = "DUMMYFPGoHome2";

    const char DUMMYGOHOME_P[] = "DUMMYFPGoHomePersonal2";

    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";

    int DummyGroup = "90";

    // 1.0

    object VCmdFPGoHome2 : CommandScript

    {

    VCmdFPGoHome2()

    {

    SetIcon(IMG_ICON);

    SetCursor(IMG_CURSOR);

    SetValidTargets(ACTOR_VEHICLE);

    SetRestrictions(RESTRICT_SELFEXECUTE);

    SetPossibleCallers(ACTOR_VEHICLE);

    SetGroupID(DummyGroup);

    }

    bool CheckGroupVisibility(GameObject *Caller)

    {

    /*Vehicle v(Caller);

    PersonList pl = v.GetPassengers();

    PersonList tl = v.GetTransports();

    if (pl.GetNumPersons() > 0 && tl.GetNumPersons() == 0)

    return true;

    return false;*/

    return true;

    }

    bool CheckPossible(GameObject *Caller)

    {

    if (!Caller->IsValid() || Caller->GetType() != ACTOR_VEHICLE)

    return false;

    Vehicle v(Caller);

    PersonList pl = v.GetPassengers();

    PersonList tl = v.GetTransports();

    if (v.IsValid() && !v.IsDestroyed() /*&& pl.GetNumPersons() > 0*/ && tl.GetNumPersons() == 0)

    {

    return true;

    }

    return false;

    }

    bool CheckTarget(GameObject *Caller, Actor *Target, int ChildID)

    {

    if (!Caller->IsValid() || !Target->IsValid() || Caller->GetID() != Target->GetID())

    return false;

    Vehicle v(Caller);

    PersonList pl = v.GetPassengers();

    PersonList tl = v.GetTransports();

    if (v.IsValid() && !v.IsDestroyed() /*&& pl.GetNumPersons() > 0*/ && tl.GetNumPersons() == 0)

    {

    return true;

    }

    return false;

    }

    void PushActions(GameObject *Caller, Actor *Target, int childID)

    {

    Vehicle v(Caller);

    if (v.IsBlueLightEnabled())

    {

    v.EnableBlueLights(false);

    }

    if (v.HasCommand("DUMMYHasSiren"))

    {

    Game::ExecuteCommand("DUMMYDisableSiren", &v, &v);

    }

    if (v.HasCommand("DUMMYHasAutoSiren"))

    {

    Game::ExecuteCommand("VCmdAutoSirenOff", &v, &v);

    }

    v.PushActionWait(ACTION_NEWLIST, 0.1);

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

    }

    };

    // 2.0

    object DUMMYFPGoHome2 : CommandScript

    {

    DUMMYFPGoHome2()

    {

    SetGroupID(DummyGroup);

    }

    bool CheckPossible(GameObject *Caller)

    {

    return true;

    }

    bool CheckTarget(GameObject *Caller, Actor *Target, int ChildID)

    {

    return true;

    }

    void PushActions(GameObject *Caller, Actor *Target, int childID)

    {

    Vehicle v(Caller);

    ActorList al;

    Actor parkplatz;

    Vector parkpos;

    Vector anfahrpos;

    Vector wendepos;

    PersonList pl;

    /////// gwtv /////////////////////////////////////////////////////////////////////////////////////////////////////////////

    if (v.HasName("snip")) // Fahrzeugname

    {

    al=Game::GetActors("snip_p"); // Name des virtuellen Objektes wo das Fahrzeug parken soll

    anfahrpos = Vector (0,-300,0); // siehe parken.txt

    wendepos = Vector (0,-600,0); // siehe parken.txt

    }

    else

    /////// kdowv /////////////////////////////////////////////////////////////////////////////////////////////////////////////

    if (v.HasName("amb1")) // Fahrzeugname

    {

    al=Game::GetActors("amb1_p"); // Name des virtuellen Objektes wo das Fahrzeug parken soll

    anfahrpos = Vector (0,-300,0); // siehe parken.txt

    wendepos = Vector (0,-600,0); // siehe parken.txt

    }

    else

    /////// lfv /////////////////////////////////////////////////////////////////////////////////////////////////////////////

    if (v.HasName("a1")) // Fahrzeugname

    {

    al=Game::GetActors("a1_p"); // Name des virtuellen Objektes wo das Fahrzeug parken soll

    anfahrpos = Vector (0,-300,0); // siehe parken.txt

    wendepos = Vector (0,-600,0); // siehe parken.txt

    }

    else

    /////// dlkv /////////////////////////////////////////////////////////////////////////////////////////////////////////////

    if (v.HasName("l1")) // Fahrzeugname

    {

    al=Game::GetActors("l1_p"); // Name des virtuellen Objektes wo das Fahrzeug parken soll

    anfahrpos = Vector (0,-300,0); // siehe parken.txt

    wendepos = Vector (0,-600,0); // siehe parken.txt

    }

    else

    /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

    //Weitere Fahrzeugblšcke hier einfŸgen

    {

    Mission::PlayHint("Fuer dieses Fahrzeug konnte kein Parkplatz gefunden werden! Code 1");

    return;

    }

    if(al.GetNumActors() > 0)

    {

    parkplatz = *al.GetActor(0);

    parkpos = parkplatz.GetPosition();

    }

    else

    {

    Mission::PlayHint("Fuer dieses Fahrzeug konnte kein Parkplatz gefunden werden! Code 2");

    return;

    }

    bool vready = true;

    if (v.GetNumPassengers() == 0)

    {

    vready = false;

    }

    pl = v.GetPassengers();

    for(int i=0; i < pl.GetNumPersons(); i++)

    {

    if (pl.GetPerson(i)->GetLife() < pl.GetPerson(i)->GetMaxLife())

    {

    vready = false;

    }

    }

    if (vready)

    {

    Game::ExecuteCommand(FREEFORALERT_TRUE, &v, &v);

    }

    Game::FindFreePosition(&v, parkpos);

    v.PushActionmove(ACTION_NEWLIST, parkpos+anfahrpos);

    v.PushActionTurnTo(ACTION_APPEND, parkpos+wendepos);

    v.PushActionmove(ACTION_APPEND, parkpos);

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

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

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

    v.PushActionExecuteCommand(ACTION_APPEND, "CloseGate", Caller, 1, true);

    }

    };

    // 2.1

    object DUMMYFPGoHomePersonal2 : CommandScript

    {

    DUMMYFPGoHomePersonal2()

    {

    SetGroupID(DummyGroup);

    }

    bool CheckPossible(GameObject *Caller)

    {

    return true;

    }

    bool CheckTarget(GameObject *Caller, Actor *Target, int ChildID)

    {

    return true;

    }

    void PushActions(GameObject *Caller, Actor *Target, int childID)

    {

    Vehicle v(Caller);

    PersonList pl = v.GetPassengers();

    for(int i=0; i < pl.GetNumPersons(); i++)

    {

    Person p = pl.GetPerson(i);

    v.RemovePassenger(&p);

    p.PushActionDeleteOwner(ACTION_NEWLIST);

    }

    }

    };

    What do they mean with:

    Game::FindFreePosition(&v, parkpos);

    v.PushActionmove(ACTION_NEWLIST, parkpos+anfahrpos);

    v.PushActionTurnTo(ACTION_APPEND, parkpos+wendepos);

    v.PushActionmove(ACTION_APPEND, parkpos);

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

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

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

    v.PushActionExecuteCommand(ACTION_APPEND, "CloseGate", Caller, 1, true);

  5. Ok, now I have stations in my map. But the problem now is, when i send them to the base, they often park backwards in the station. With the rear at the gate. But I want them with the front at the gate.

    How can i fix this? I work with the scripts of the Vierheim modification

×
×
  • Create New...