![]() |
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. |
|
Registrera | Members Area | FAQ | Medlemslista | Community-ware/Modell-shop | Sök | Dagens inlägg | Markera forum som lästa |
|
Ämnesverktyg | Visningsalternativ |
![]() |
#11 | |
Medlem
Reg.datum: Apr 2004
Ort: Lom - Norway
Inlägg: 1 272
|
![]() Citat:
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: . . . Kod:
msStation.SetPassengersEnabled(ourTrain, ourStation, true); // remove passengers restriction msStation.PerformMassStoppedLoad(ourTrain, ourStation, triggerName, msStation.LOADING); 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. |
|
![]() |
![]() |
Ämnesverktyg | |
Visningsalternativ | |
|
|