Svenska 3D-Tåg - Forum

Svenska 3D-Tåg - Forum (http://www.e-buzz.se/forum/index.php)
-   3D-design - Trainz (http://www.e-buzz.se/forum/forumdisplay.php?f=12)
-   -   C20 Till TRS 2006!? (http://www.e-buzz.se/forum/showthread.php?t=11076)

Daniel 2006-08-24 19:05

Förarbordet.

Nu har jag fattat, Glöm mina inlägg

SVoyager 2006-08-29 04:03

Citat:

Ursprungligen postat av Sparkfot
Grymt.:)
Finns det något preliminärt realease datum för v0.6?:)

Förlåt för att inte svarat omedelbart för jag har inte fått nån epost när det fanns mer ämne här, vet inte varför. Ändå, v0.6 om en vecka kanske två veckor. Nästa veckan om allt går bra!

SV

SVoyager 2006-08-29 08:44

senaste dagars arbete:

http://www.svoyager.com/files/manuelldorr.mpg

nu ska dörrarna inte öppna när man köra tåget men passagerarna ska stiger in/av ändå. Ska arbeta på det igen men nu är det bättre än förut ;).

Har tåg bort motornsljud. Trodde att det var lite bättre än vad det redan fanns. Ska skapa ny ljud filer i framtiden.

Också ska mikrofonen vara högre.

SV

svenolov 2006-08-29 09:14

SVoyager,
här är ett utdrag ur koden från min dörrkontroll för att förhindra att passagerarna stiger av/på vid en station.

Kod:

// Set passengers enabled

  void SetPassengersEnabled(Train train, bool enable)
  {
    int i;
    Vehicle[] vehicles = train.GetVehicles();

    for(i=0; i<vehicles.size(); i++)
    {
      if (enable)
      {
        vehicles[i].SetProductRestriction(null);
      }
      else
      {
        vehicles[i].SetProductDisabled();
      }
    }
  }


Sparkfot 2006-08-29 15:27

Citat:

Ursprungligen postat av SVoyager
Förlåt för att inte svarat omedelbart för jag har inte fått nån epost när det fanns mer ämne här, vet inte varför. Ändå, v0.6 om en vecka kanske två veckor. Nästa veckan om allt går bra!

SV

Ingen fara, Jag väntar med spänning på den nya versionen då:)

Arre 2006-08-29 16:26

Hej
Jag tittade på filmen och blev imponerad!
Varje film du visar ger en något man blir lite extra imponerad av!
:tumupp: :tumupp: :tumupp: :tumupp: :tumupp:

SVoyager 2006-08-29 17:19

PerformMassStopped en gång till?
 
Citat:

Ursprungligen postat av svenolov
SVoyager,
här är ett utdrag ur koden från min dörrkontroll för att förhindra att passagerarna stiger av/på vid en station.

Kod:

// Set passengers enabled

  void SetPassengersEnabled(Train train, bool enable)
  {
    int i;
    Vehicle[] vehicles = train.GetVehicles();

    for(i=0; i<vehicles.size(); i++)
    {
      if (enable)
      {
        vehicles[i].SetProductRestriction(null);
      }
      else
      {
        vehicles[i].SetProductDisabled();
      }
    }
  }


Stort tack svenolov för rådet!! Det är jättebra. Jag här tyckte på den där fix som du har skrivit. Det där är perfekt med det finns en problem till som jag har inte hittat nån fix på. När tåget är stoppad vid en station, ska stationen försöker automatisk att tillåta passagerarna in/av tåget (PerformMassStopped). Jag vet inte hur att göra "PerformMassStopped" igen när tågets dörrarna är öppen. Har du nån sätt att göra det?? Eller finns det nån andra sätt för att tillåta passagerarna in/av tåget manuelt??

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.).

SV

SVoyager 2006-08-29 21:13

Woops. Det ser som min länk till v0.5 hade en problem i ämnen några sidor sen.

Jag har "upgraded" min webspace och det ser som min webserver är mer strikt med länkar. Stort bokstaver vs små bokstaver var problemet...

Ändå, det är bättre nu för webservern kör nästan 3 gånger snabbare (omkring 750k/sec mot 250k/sec förut) och nu kan jag länka direkt till .cdp filen (förut behövde jag att göra .zip filer för webservern kunde inte göra .cdp filer).

Nya länk
http://www.svoyager.com/files/c20_v05.cdp

Nej det var inte v0.6 hehe. nästa veckan ;)

Om ni ser mer fel länker nånstans, tack för att skicka ett medelande till mig och jag ska fixa omedelbart.
SV

svenolov 2006-08-29 22:47

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.

SVoyager 2006-08-29 23:59

Priceless!!

Otrolig bra. Det ska ta mig några timmar för att kunna förstår allt men jag ser logisk på det. Very very very useful!

Jag har också läste mer om din DC. Bra jobbat!! Mycket intressant, man har mycket kontroll över dörrarna med din rule! wow!

Tyvärr har jag "scrapped" din DC support med v0.5 av min C20. När jag skripta nånting anväder jag inte alltid "standards". Min logisk kan vara fel eller det kan finnas lättare sätt att göra samma saker som finns i min skript. För jag är fortfarande en nybörjare, förstår jag inte allt om skripts, så skriptar jag så bäst som jag förstår. När jag ser att vad jag behöver att göra fungerar, frågar jag inte om koden var det bästa. För jag ändrar ofta min kod är det möjligt att andra skripter ska inte fungerar. Om du ser felen på koden kan du skicka ett medelande så ska jag fixa det om det är möjligt!!

Tack igen för hjälpen och jag hoppas att nästa versionen ska inte göra en stort problem med din DC :o :o ;)

SV

svenolov 2006-08-30 00:55

Missed something in my code above...
You must call msStation.SetPassengersEnabled() with a 'true' parameter (to allow loading) before you call msStation.PerformMassStoppedLoad().

SVoyager 2006-08-30 05:25

Lyckades!
 
Fungerar! :D

http://www.svoyager.com/files/passagerarna.mpg

Stort tack svenolov!! Jag var inte säkert att kunna göra det någon gång och nu blir det möjligt tack till dig! Ingen behövs av special stationer liksom dem på U-Bahns, bara 10 linje av kod på min skript tack till svenolov och sin skript som gör allt som behövs! Kan forfarande inte tro på det... Jag kan nu glömma på många många timmar av "head banging"... wow... kul... party!!! hehe

en sak till som jag gjorde ikväll

http://www.svoyager.com/files/start.mpg

Det här är bara en först steg. Ska göra mycket mer med start sekvenser på tåget. I framtiden ska det vara svårare att köra tåget omdelebart. Ni ska göra som en ricktig förare. :D

Tack igen svenolov, jag ska lägga till ditt namn på "contributors" listan! (om du vill förstås). Vill också ser vad jag kan göra med DC compatibilitet. (kan tyvärr inte lova men ska försöka!)

SV

svenolov 2006-08-30 09:29

Citat:

Ursprungligen postat av SVoyager
Fungerar!

Tack igen svenolov, jag ska lägga till ditt namn på "contributors" listan! (om du vill förstås). Vill också ser vad jag kan göra med DC compatibilitet. (kan tyvärr inte lova men ska försöka!)
SV

Jag är lika glad som du ;) Det är bara roligt när man kan bidra med något.

SVoyager 2006-09-01 05:51

Dagens arbete.

Nu ska hytten "spara" informationer (t.ex. hyttens ljus, vagnens ljus, om tåget är startat eller inte, osv.). Förut om ni clickade på en annan vagn, sen gick tillbacka till hytten var allt "reset", inte nu. Finns mycket mer att göra på det.

Just nu sparar informationen bara för hytter på "each end" av tåget. (to the cab at each ends of the train). Jag ska arbeta mer för att kunna spara informationer för alla hytter.

Mer om det om några dagar.
SV

Sparkfot 2006-09-01 14:46

Det finns typ en bugg som gör att mellanvagnarnas hyttdörrar typ åker upp när man öppnar sin egen och sen måste man gå till respektive hytt för att stänga dom? Känner du till problemet SVoyager?:)


Alla tider är GMT +2. Klockan är nu 07:32.

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