Visa ett inlägg
Gammal 2024-02-20, 17:34   #22
blomsson
Medlem
 
Reg.datum: Jul 2011
Ort: Vingåker
Inlägg: 343
Standard Nyheter!

Sedan några månader tillbaka har jag ägt TRS22PE (Premium Edition) beroende på att jag fick något som kallades för "lojalitets rabatt", även fast jag fortfarande tycker att det är för dyrt så slog jag till efter mycket vånda! Framtiden får väl utvisa ifall det blir ett tillräckligt bra köp eller ej!
Beroende på att programmet krävde en nyare systemversion än vad jag hade installerad och jag dessutom höll på med signalsystemet så tog det tid att påbörja felsökningen av problemen med vägskyddet.

Nu har jag lyckats lösa problemet med att vägskyddssignalerna kraschar spelet, dock har jag inte lyckats återskapa mazters tredje problem!
Ifall det är någon som är intresserad av felsökning och lösning av problemet så beskrivs det i slutet av texten!

Jag har skickat PM till mazter, men det har inte blivit läst och eftersom jag gärna vill att alla problem ska fixas innan en uppgradering släpps så tänkte jag skicka ut en allmän förfrågan till användarna här!

Problemet yttrar sig som i quoteringen nedan:
Citat:
Ursprungligen postat av mazter Visa inlägg
Varje gång jag klickar "Edit Properties" så kommer en liten ruta upp i högra övre hörnet som säger "Script failure: Kuid2:60940..." resten av numret ser jag inte. Det spelar ingen roll vilken av alla HB-prylar jag gör så med, det blir samma svar från alla.

Troligen varkar det vara vägkuren som felar eftersom jag kollade "session errors" i menyn. Det var en hel felmeddelanden som löd likadant.

Felet verkar vara line -1 och line 1054 i den. Men vad vet jag?
Så här ser alla meddelandet ut.

: GameObject::Sniff> Target object is null (file gs.gs)
: Script class: HB_Vsk
: MeshObject: <kuid2:609407:101295:1> "HB X Vägkur (Osynlig)"
: Script callstack
: function $void@GameObject::Sniff(GameObject,string,string,b ool), line -1
: function $void@HB_Vsk::vskMainThread(), line 1054
Dessutom så skriver han i ett senare inlägg att det även gäller alla(!) objekt från andra tillverkare som är Trackside och mina som är Scenery, om jag förstod honom rätt!

Eftersom det är ett tag sedan detta felanmäldes så kan det ju tänkas att upphovet till problemet har blivit "löst" med nyare versioner av TRS22, i TRS22PE har i varje fall inte jag lyckats få fram något scriptfel. Varken i surveyour classic eller S2.0.

Frågan blir därför tredelad:
  1. Är det några fler som får fram samma felmeddelande som beskrivs ovan?
  2. Vilken version av TRS22 använder du (TRS22, TRS22PE, TRS22+)?
  3. Hur ser man scriptfel i S2.0, i classic finns ju den röda lusen (med nästan oläsbar mörk text på mörk bakgrund, så korkat)?

Felsökning och lösning på krascherna av Vägskyddssignalerna
Hos Vägskyddssignalen(VS) och den osynliga varianten (VSO) så har jag skapat en funktion som gör en sökning utefter spåret för att upptäcka felaktiga objekt eller felaktiga avstånd. Funna felaktigheter ger en felkod som visas med ett felmeddelande i propertyrutan, för att kunna göra detta så returnerar funktionen ett boolskt värde (sant/falskt) vid avslutad sökning.

När användaren väljer mellan enkelriktad/dubbelriktad signal hos VS anropas spårsökningen och då kraschade spelet. Hos VSO så kraschade spelet direkt, hos mig räckte det att det syntes som "thumbnail", här anropas spårsökningen direkt i Init (funktion som anropas när objekt skapas). Jag var ganska övertygad om att felet hade med spårsökfunktionen att göra! Frågorna blev, är det hos VS/VSO eller något yttre objekt? Varför i TRS22 och inte i tidigare versioner?

Först i spårsökfunktionen finns en koll på ifall det finns en länkad vägkur till VS/VSO, ifall den saknas så returneras false, sedan finns det en koll på ifall VS är dubbelriktad om så är fallet returneras true!
Felsökningen i listform:
  1. Ta bort eller ignorera anrop till spårsökningen -> Ingen krasch (Bekräftar misstanke).
  2. Återställ, ta bort anrop till yttre objekt -> Krasch.
  3. Återställ, ta bort anrop till signalfunktioner -> Krasch.
  4. Återställ, ta bort koll på länkad vägkur hos spårsökfunktionen -> Ingen krasch (Andra fel pga ingen länkad vägkur).
  5. Återställ, returnera true direkt i spårsökfunktionen -> Ingen krasch.
  6. Återställ, returnera false direkt i spårsökfunktionen -> Krasch.
Kan väl säga att det gjordes några fler tester än vad som redovisas ovan, är ju lite tidskrävande när hela programmet kraschar hela tiden!
Nu var jag i det läget, att beroende på vilket boolsk värde som spårsökfunktionen returnerar så kraschar spelet! Ganska orimligt kan tyckas, så vad kan åstadkomma detta nu, men inte i tidigare versioner?

Det returnerade boolska värdet bör ju användas till något, kanske ställa in en variabel, vilket det gör i detta fall! Variabeln används till att tala om ifall en VS/VSO är korrekt eller ej och då också vilken signalbild som ska visas.
För att ställa in en signalbild, mera korrekt kanske "ge Trainz information om vilken signalstatus jag tycker att signalen ska ha" används en funktion hos signalklassen som anropas av den inbyggda delen av Trainz, när den tycker att det känns bra(!), vilket ibland är för sällan, det går också att anropa funktionen själv. Funktionen returnerar en databas som innehåller signalens status och orsaken till statusen.

Signalens status är ett heltalsvärde där noll är stopp och positiva värden är olika grader av kör, man kan även ha -1 som värde som då talar om att signalen är "automatisk".
Jag har använt mig av större negativa tal för att tala om när en signal inte är korrekt kan detta orsaka problemet? I koden var det det enda som jag kunde se som var plausibelt att orsaka en krasch, men inte kan väl N3V vara så korkade att en förändring till att inte tillåta lägre tal än -1 orskar en krasch av hela programmet?
Byte till värde 0 (stopp) och inga krascher mer!
Så, jodå det kunde dom!

Upptäckten av detta skapade ju lite ändringsjobb hos signalsystemet där jag använde mig flitigt av negativa tal, de är nu ersatta av specifik variabel istället!

När släpps uppdateringen?
Tanken är att släppa den nyss! Men jag vill att det eventuella tredje problemet löses först och sedan så funderar jag på att göra iordning och släppa några tidiga objekt, men det får jag se om det blir av, vet inte hur mycket jobb det är att få de till samma status som de övriga har!
När släpp sker meddelas detta i lämpliga forumtrådar!

mvh
Håkan
__________________
Fd. signalreparatör på Banverket. Sjukpensionär bla pga Aspergers syndrom.
Använder numera T:ANE på en iMac (Retina, 27", -15), 24GB, OSX Sierra 10.12.6 (25/9-17)
Hemsida för nedladdning av mina objekt: https://blomsson4073.se/index.html
blomsson besöker forumet just nu   Svara med citat