![]() |
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. |
|
![]() |
|
Ämnesverktyg | Visningsalternativ |
|
![]() |
#1 | |
Medlem
Reg.datum: Apr 2004
Ort: Lom - Norway
Inlägg: 1 272
|
![]() Citat:
2. Eller att tåg b redan har stannat på triggern innan du ger instruktionen att tåg a ska vänta. Rätt? Om något av ovanstående påståenden är rätt så måste triggern sända ett meddelande efter det att tåg a får instruktionen att vänta. Och det gör den inte. Triggern sänder sitt meddelande när lok b stannar, så tåg a måste ligga i "vänteläge" just i det ögonblicket. Så svaret på din fråga är nej, om man inte ger den instruktionen att göra så (i ett skript). En trigger (som namnet antyder) triggar på dynamiska händelser, den ligger inte och sänder meddelanden hela tiden. Det är tre händelser som en trigger känner av. Meddelandet sänds endast en gång per händelse. 1. Enter. Sänder ett meddelande när ett tåg kommmer innanför triggerns radie. 2. Stopped. Sänder ett meddelande när ett tåg stannar och befinner sig innanför radien. Om tåget rör sig efter denna händelse och stannar igen utan att ha lämnat triggern, så sänds meddelandet på nytt. 3. Leave. Sänder ett meddelande när ett tåg lämnar triggerns radie. EDIT: En sak till som är bra att känna till när det gäller en trigger. En triggers avkänningsområde är en cirkel (anges med en radie). Det betyder att den känner av ett område, snarare än en sträcka på spåret. Den kan alltså känna av flera spår, om spåren ligger inom samma cirkel (radie). Om man bara är intresserad av vad som händer på ett visst spår, ska man använda en Trackmark istället. Avkänningsområdet för en Trackmark anges också med en radie, men den känner bara av spåret som den är placerad på. En Trackmark känner också av rikningen i förhållande till ett tåg, medan en Trigger inte är riktningskänslig.
__________________
svenolov I Trainz vet man att det omöjliga är möjligt (bevingade ord myntade av Nisse). Senast redigerad av svenolov den 2011-01-21 klockan 15:16. |
|
![]() |
![]() |
![]() |
#2 | |
Medlem
Reg.datum: Oct 2005
Ort: Sävsjö
Inlägg: 16
|
![]() Citat:
Ditt andra påstående är rätt att tåg b redan står på trigger c när instruktionen för tåg a att han skall vänta på att tåg b skall trigga trigger c. Är det lätt att ändra i scriptet så han ligger å sänder hela tiden då ett tåg befinner sig på en trigger? Tack på förhand ![]() |
|
![]() |
![]() |
![]() |
#3 | |
Medlem
Reg.datum: Apr 2004
Ort: Lom - Norway
Inlägg: 1 272
|
![]() Citat:
__________________
svenolov I Trainz vet man att det omöjliga är möjligt (bevingade ord myntade av Nisse). |
|
![]() |
![]() |
![]() |
#4 | |
Medlem
Reg.datum: Oct 2005
Ort: Sävsjö
Inlägg: 16
|
![]() Citat:
Jag använder mig utav "WaitForTrigger" <KUID2:57344:80001:2> Ha de så bra ![]() |
|
![]() |
![]() |
![]() |
#5 |
Medlem
Reg.datum: Apr 2004
Ort: Lom - Norway
Inlägg: 1 272
|
![]()
Ok, jag ska titta på den och återkommer med ett bättre svar.
__________________
svenolov I Trainz vet man att det omöjliga är möjligt (bevingade ord myntade av Nisse). |
![]() |
![]() |
![]() |
#6 | |
Medlem
Reg.datum: Apr 2004
Ort: Lom - Norway
Inlägg: 1 272
|
![]() Citat:
Komandot testar nu om det redan står ett tåg på triggern. Om det står ett tåg där så händer detta. 1. Om man valt "Any Train" så avslutas kommandot direkt. 2. Om man har angett ett visst lok, och loket överenstämmer med tågets lok, så avslutas kommandot. Komandot uppför sig alltså precis likadant, som om/när tåget anländer till triggern. Ingenting av originalkoden är ändrad. Det är bara två tillägg som behöver göras. 1. Klona kommandot först, så att det får din kuid. 2. Redigera filen waitfortriggerschedulecommand.gs enligt nedan. Efter raden Message msg; och före raden wait() lägger du in följande rad. Markerad med röd text. Kod:
Message msg; train.PostMessage(train, "Train", "CheckTrigger", 2.0); // added by Sven wait() { Obs! De två första och de två sista raderna i nedanstående kod, är från originalkoden. Kod:
wait() { // Check trigger added 110121 by Sven // ======================================================================================= on "Train", "CheckTrigger": { MapObject nextItem = null; Vehicle vehicle = null; GSTrackSearch gst = trig.BeginTrackSearch(true); int distance = gst.GetDistance(); while (!vehicle and (distance < 5)) { nextItem = gst.SearchNext(); distance = gst.GetDistance(); if (nextItem) vehicle = cast<Vehicle>nextItem; } if (!vehicle) { gst = trig.BeginTrackSearch(false); distance = gst.GetDistance(); while (!vehicle and (distance < 5)) { nextItem = gst.SearchNext(); distance = gst.GetDistance(); if (nextItem) vehicle = cast<Vehicle>nextItem; } } if (vehicle) { Train v_train = vehicle.GetMyTrain(); if (v_train and v_train.IsStopped()) { Locomotive loco = v_train.GetFrontmostLocomotive(); if (loco and (loco.GetName() == trainId)) { Interface.Print(loco.GetName()+" has entered trigger ''" +trig.GetName()+"''"); break; } else if (trainId == "") { Interface.Print("A train has entered trigger ''" +trig.GetName()+"''"); break; } } } train.PostMessage(train, "Train", "CheckTrigger", 2.0); continue; } // Check trigger end. // ======================================================================================= on "Object", "Enter", msg: {
__________________
svenolov I Trainz vet man att det omöjliga är möjligt (bevingade ord myntade av Nisse). Senast redigerad av svenolov den 2011-01-22 klockan 03:34. |
|
![]() |
![]() |
![]() |
#7 | |
Medlem
Reg.datum: Oct 2005
Ort: Sävsjö
Inlägg: 16
|
![]() Citat:
Hej Det fungerade jättebra ![]() Tack så oerhört mycket ![]() Hälsningar Robin |
|
![]() |
![]() |