Svenska 3D-Tåg - Forum  
 

Om det här är ditt första besök, se till att gå till vår FAQ (finns även länk till FAQ i navigeringsmenyn ovan). Du kan behöva att registrera dig innan du kan posta (finns även en länk till registrering i navigeringsmenyn ovan). För att titta på inlägg, välj det forum som du vill besöka från de som är listade nedan.

Gå tillbaka   Svenska 3D-Tåg - Forum > N3V Trainz > 3D-design - Trainz

 
 
Ämnesverktyg Visningsalternativ
Gammal 2006-08-29, 22:47   #11
svenolov
Medlem
 
Reg.datum: Apr 2004
Ort: Lom - Norway
Inlägg: 1 272
Standard

Citat:
Ursprungligen postat av SVoyager
To be able to call again "PerformMassStopped" once the doors are opened is the problem! Do you know how to do that?? or is there another way to make the station load/unload even after the train was fully stopped for a few seconds (förlåt för engelska.).
Du behöver inte ursäkta att du skriver på engelska. Jag personligen tycker bättre om engelska, när det gäller programmering. Det är min vardag.

Ja, jag har lösningen till detta. Denna funktion finns i ett object (static class) som följer med min dörrkontoll (MSL Door Control). Tyvärr kan jag inte publicera källkoden för denna funktion här på forumet på grund av att en del av koden i denna class är copyright-skyddad. Men du kan använda funktionen ändå om du inkluderar filen i ditt script. Filen heter msCommonStation.gse. Gör något liknande som nedan:

Kod:
include "GenericPassengerStation.gs"
include "msCommonStation.gs"
.
.
.
    Train ourTrain;
//  assign your train here to ourTrain variable
    .
    .
    .
    GenericPassengerStation ourStation; // the station which this train has stopped at

    Vehicle[] ourVehicles = ourTrain.GetVehicles();

    string triggerName; // current scenery trigger name at the station

    int platformIndex; // platform index for this trigger (not really used here)

 // Add a message handler to our loco so we can receive object-specific messages
 // ------------------------------------------------------------------------------------
    Sniff(ourVehicles[0], "SceneryTrigger", "", true); // vehicle[0] are always the loco

    Message msg;
    .
    .
    .
    wait()
    {
      on "SceneryTrigger", "Enter", msg:
      {
        ourStation = cast<GenericPassengerStation>msg.src;
          
        if (ourStation)
        {
       // Set passenger restriction, until we open the doors
       // ------------------------------------------------------------
          msStation.SetPassengersEnabled(ourTrain, ourStation, false);

       // Get the name of the trigger
       // ----------------------------------------------------------------------------------
          triggerName = ourStation.FindTriggerContainingNode(ourVehicles[0].GetId(), false);

       // Get information about the station based on the trigger
       // To update msStation object, we must call this function on every trigger event
       // -----------------------------------------------------------------------------
          platformIndex = msStation.GetPlatformIndex(triggerName);

        }
        continue;
      }
      on "SceneryTrigger", "Stopped", msg:
      .
      .
      .
När du känner till ourStation och triggerName kan du anropa dessa funktioner när du vill att passagerarna ska kliva ombord.
Kod:
    msStation.SetPassengersEnabled(ourTrain, ourStation, true); // remove passengers restriction
    msStation.PerformMassStoppedLoad(ourTrain, ourStation, triggerName, msStation.LOADING);
msStation.LOADING är en konstant som betyder 'UNLOAD and then LOAD'.

Titta gärna på min sourcecode för MSL Door Control. Du får med min tillåtelse använda msCommonStation för din C20 och du kan få all information vad denna class innehåller och hur du skall använda den.

Du kan ladda ner MSL Door Control här: http://217.197.57.186/forum/showthread.php?t=13225

Edit: You must call msStation.SetPassengersEnabled() before msStation.PerformMassStoppedLoad() to allow loading.
__________________
svenolov

I Trainz vet man att det omöjliga är möjligt (bevingade ord myntade av Nisse).

Senast redigerad av svenolov den 2006-08-30 klockan 00:48.
svenolov besöker inte forumet just nu   Svara med citat
 

Ämnesverktyg
Visningsalternativ

Regler för att posta
Du får inte posta nya ämnen
Du får inte posta svar
Du får inte posta bifogade filer
Du får inte redigera dina inlägg

BB-kod är
Smilies är
[IMG]-kod är
HTML-kod är av
Forumhopp



Alla tider är GMT +2. Klockan är nu 01:34.


Powered by vBulletin® Version 3.7.5
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson
© Svenska 3D-Tåg 2001-2009