![]() |
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: Dec 2002
Ort: , , .
Inlägg: 109
|
![]()
Har laddat ner vovven47:s fina ånglok men har tyvärr lite problem med flera av den..
Tex G5 - får blinkande rödlampa när loket backas med följande text: SJCabin: Thread Exception: ER_Divide By Zero, line 412, file sjtendersteamcabin.gse(1417) SJCabin: Thread Exception: ER_null Reference, line 263, file sjtendersteamcabin.gse(1) Klickar man på "more"-knappen kommer följande text: Stuck dump: kuid2:448495:50510:1 "SJ Tender lok_interiör" funktion:§void@SJCabin::Update 0, line -1. Loket går att köra men rödlampan visar väl att det är något som inte är som det ska...... Går det att åtgärda? tacksam för lite "råd och dåd" Jag kör Trainz 2010.... Goran |
![]() |
![]() |
![]() |
#2 | |
Medlem
Reg.datum: Jun 2010
Ort: Yxlan, Norrtälje
Inlägg: 1 336
|
![]() Citat:
Felet gäller även TS12. Vad gäller TS9 så vet jag inte. Fann ut att även andra ånglokshytter skapade av andra personer fick samma symptom, så jag drog slutsatsen att problemet ligger i Aurans mjukvara! Symptomet i mina ånglokshytter är att visaren för ångtryck slutar arbeta, men övriga funktionaliteter fungerar. MEN: Den röda fel indikatorn går EJ att släcka! Tänkte så småningom lägga in lite nya funktionaliteter i ånglokshytten för S1 och då tänkte jag samtidigt lägga ned lite mer kräm även på problemet "divide by zero", som tyder på en divisions problem, vilket jag överhuvudtaget inte använder i mitt hytt skript. Tyvärr så visar loggen för lite info....... Så det är bara att åka vidare......och stå ut med röda indikatorn nere i hörnet. |
|
![]() |
![]() |
![]() |
#3 |
Medlem
Reg.datum: Dec 2002
Ort: , , .
Inlägg: 109
|
![]()
Hej Vovven47!
Tack för svaret - då är det "bara å åk" - trodde rödlampan sinkade simulatorn på nåt sätt.... Ett STORT tack för det fina jobbet ni alla gör som tar fram material som vi "vanliga" inte kan bygga MEN får tillgång till!!!!!! Goran |
![]() |
![]() |
![]() |
#4 |
Medlem
Reg.datum: Jan 2008
Ort: Uppland, Sverige
Inlägg: 2 727
|
![]()
Båda felen uppstår i dina script, så då måste du ju kunna backtracea dem? Vad finns på och i närheten av raderna 412 och 263 till att börja med? Om du lägger upp hela funktionen SJCabin::Update, samt den där det andra felet uppstår så kan jag titta och se om jag hittar något.
Med tanke på att det är ångtrycksmätaren som slutar att fungera, dividerar du inte några tal med varandra eller skickar in något tal för att uppdatera visaren i hytten? Annars så kan ju själva felen komma från Aurans underliggande kod där man får ett Division by zero exception som man inte hanterar som skickas upp till din nivå och när du inte tar hand om det så kraschar ditt script. Men troligtvis är det du som råkar skicka in en nolla någonstans som Aurans script försöker att dela med. Null pointern är nog lättare att fixa, bara att kolla på raden som kraschade och klura på om någon av pekarna som avrefereras där kan vara null.
__________________
-k- |
![]() |
![]() |
![]() |
#5 |
Medlem
Reg.datum: Jun 2010
Ort: Yxlan, Norrtälje
Inlägg: 1 336
|
![]()
Korvtiger:
Som jag nämnde har jag inte lagt ned så mycket tid på detta, eftersom även andras ånglokshytter kraschar med "divide by zero" => därav min slutsats. MEN: Jag tog mig lite tid nu innan jag sticker iväg med en snabbtitt i koden och rad 412 (Fet stil): if (firebox) { firebox.SetNamedValue("amount-burning-coal", loco.GetEngineParam("coal-mass") / maxCoalMass); if(fire_plates) { firebox.SetNamedValue("door-open", fire_plates.GetValue()); } firebox.SetNamedValue("fire-life", loco.GetEngineParam("fire-temperature") / maxFireTemperature); firebox.SetNamedValue("steam-piston-cycle", loco.GetEngineParam("steam-piston-cycle")); } Mycket riktigt så är det en division och värdet max CoalMass hämtas från maxCoalMass = loco.GetEngineParam("max-coal-mass"); Borde kolla att värdet max-coal-mass är skiljt från 0..........innan jag anropar ovan fetstilta metod! Men: Detta är Aurans egen kod som jag "knyckt" ! |
![]() |
![]() |
![]() |
#6 |
Medlem
Reg.datum: Jan 2008
Ort: Uppland, Sverige
Inlägg: 2 727
|
![]()
(Är inte så jätteinläst på Trainz programkod vad det gäller hur hytter, lok och engines hänger ihop, så du får ursäkta eventuella förvirringar)
Är det här kod som uppdaterar Coal: xxx% som syns i HUDen (alltså bränslemängden på rosten)? Borde inte detta redan skötas av Aurans underliggande kod? När och hur anropas denna kodsnutt? Uppstår felet alltid, eller bara under vissa förutsättningar? Har kört ganska mycket med ånglok i Trainz (TS2010) själv och jag har aldrig upplevt samma fel! Hämtas värdet på maxCoalMass bara en gång när loket initialiseras (alltså att det är en konstant)? Om det är en konstant och det verkar som att den misslyckas med att hämtas ibland med GetEngineParam() så skulle du ju kunna göra en fullösning och definiera detta värde i string-table i configen och parsa det till en float därifrån, eventuellt hämta ut det själv ur engineconfigen (vilket blir mer dynamiskt) genom att slå upp engineconfigens kuid och hämta värdet därur. (Använd [code] -taggar när du citerar programkod här på forumet, så fungerar indenteringen som den ska! ![]()
__________________
-k- Senast redigerad av korvtiger den 2015-02-12 klockan 18:34. |
![]() |
![]() |