Vorige onderwerp :: Volgende onderwerp |
Auteur |
Bericht |
Edwin
Geregistreerd op: 27 Aug 2020 Berichten: 106
|
Geplaatst: 24 Dec 2020 20:23:10 Onderwerp: Scripten -> vragen en antwoorden |
|
|
Hoi iedereen,
Ik weet dat er niet veel zijn die kunnen scripten of zich er mee bezig houden, ik doe dat inmiddels al een tijdje wel en heb al veel voor elkaar kunnen krijgen. Soms loop ik echter vast, omdat (vind ik) heel slecht gedocumenteerd is, er zijn wel wat dingen op internet te vinden, maar verder ben ik afhankelijk van het afkijken van scripts van anderen, als ze al openbaar te bekijken zijn. Ik weet niet of er misschien iemand is die eventueel nog documentatie heeft uit het aller eerste begin van Trainz, want volgens mij bestond er toen wel documentatie over scripten?
Mijn scripts zijn dat in ieder geval wel, zodat anderen ervan kunnen leren.
Ik heb dit topic gestart zodat we elkaar misschien kunnen helpen.
Mijn vraag op dit moment is: kan ik de actuele datum uit een sessie krijgen? Ik gebruik bijvoorbeeld world.getgametime om te tijd uit de sessie te krijgen en zo te bepalen of onze wagens sluitborden (overdag) of sluitseinen ('s nachts) moet voeren. Nu wil ik iets afhankelijk maken van of het zomer of winter is, dus afhankelijk van de datum, maar ik kan niet vinden of er iets bestaat als world.getgamedate ofzo. Hopelijk kan iemand helpen.
Groeten Edwin. |
|
Terug naar boven |
|
|
|
Geplaatst: 24 Dec 2020 20:23:10 Onderwerp: |
|
|
|
|
Terug naar boven |
|
|
gm99999
Geregistreerd op: 15 Aug 2020 Berichten: 475
|
Geplaatst: 24 Dec 2020 22:28:24 Onderwerp: |
|
|
heb het ook nog niet gevonden, maar het spel weet het wel
vandaar dat je season kan doen.
Heb je mailtje gestuurd met wat oude info, reference.txt en cabinscripting |
|
Terug naar boven |
|
|
Edwin
Geregistreerd op: 27 Aug 2020 Berichten: 106
|
Geplaatst: 25 Dec 2020 12:31:25 Onderwerp: |
|
|
Hoe bedoel je precies dat je season kan doen? In-game of bedoel je dat je die in een script op kan roepen, want als dat zo zou zijn, zou ik al geholpen zijn.
Groeten Edwin. |
|
Terug naar boven |
|
|
gm99999
Geregistreerd op: 15 Aug 2020 Berichten: 475
|
Geplaatst: 27 Dec 2020 14:27:57 Onderwerp: |
|
|
Gevonden Edwin, zit in "world"
//! Return the current game season, based on date and hemisphere
// (ranges from 0 to 1, where 0 = mid-summer, 0.5 = mid-winter)
public native float GetGameSeason(void); |
|
Terug naar boven |
|
|
Edwin
Geregistreerd op: 27 Aug 2020 Berichten: 106
|
Geplaatst: 27 Dec 2020 21:44:26 Onderwerp: |
|
|
Wouw super GM! Het moest er zijn zo'n gevoel had ik al, maar had over gezocht op 'date' maar kwam niks bruikbaars tegen.
Super bedankt!
Groeten Edwin. |
|
Terug naar boven |
|
|
Edwin
Geregistreerd op: 27 Aug 2020 Berichten: 106
|
Geplaatst: 28 Dec 2020 00:16:55 Onderwerp: |
|
|
Nogmaals bedankt GM, nu ik dit regeltje wist, was binnen een kwartier gescript wat ik wilde scripten en werkte het ook nog eens gelijk!
Groeten Edwin. |
|
Terug naar boven |
|
|
Rutger
Geregistreerd op: 21 Aug 2020 Berichten: 191 Woonplaats: Voorburg
|
|
Terug naar boven |
|
|
Edwin
Geregistreerd op: 27 Aug 2020 Berichten: 106
|
Geplaatst: 24 Feb 2021 22:46:00 Onderwerp: |
|
|
Ik heb weer een nieuw vraagje.
Zoals jullie weten maken we stoomlocomotieven en die hebben vaak een loc en een tender. Nu wil ik in de locomotief een aantal opties scripten, die je via het properties menu kan aanpassen, dat is verder geen probleem, maar ik wil graag dat de tender zich automatisch gedraagt naar de ingestelde properties van de loc. Ik weet wel dat de loc daarvoor een message moet sturen die de tender kan ontvangen. Echter lukt het me nog niet om succesvol te zenden en ontvangen tussen twee 'vehicles'.
GM heeft als het goed is ook zo'n link in o.a. de DM'90, want als je in een van de twee het uiterlijk veranderd, veranderd de andere bak mee.
Kan iemand mij helpen aan een stukje voorbeeld?
Groeten Edwin. _________________ https://www.facebook.com/WerkspoorTrainz
|
|
Terug naar boven |
|
|
gm99999
Geregistreerd op: 15 Aug 2020 Berichten: 475
|
Geplaatst: 25 Feb 2021 00:14:25 Onderwerp: |
|
|
ik doe het zelf niet met een msg, maar zou ook kunnen
Zo doe ik het meestal:
Een loc en tender, zijn beide "vehicles" en onderdeel van een "train"
je kunt een vehicle array op vragen
Vehicle[] va = mytrain.GetVehicles();
Vehicle myloc=va[0]; is de loc
Vehicle myten=va[1]; is de tender;
wel check qua richting nodig uiteraard
er zijn ook andere manieren om tender te vinden, vele wegen leiden naar... |
|
Terug naar boven |
|
|
Edwin
Geregistreerd op: 27 Aug 2020 Berichten: 106
|
Geplaatst: 25 Feb 2021 07:56:31 Onderwerp: |
|
|
Ook een optie inderdaad, alleen vraag ik mij af of dat dan ook werkt als ik tender voor rijd, of in voorspan, want dan werkt dit niet voor de tweede loc, aangezien dat dan 2 en 3 zijn.
Ik wil eigenlijk een messages sturen en een string table variabel eraan hangen, bijvoorbeeld locnummer “3816”, waardoor de tender alleen op zijn bijhorende loc reageert. Onze locs zijn allemaal uniek qua mesh ook (daarom kunnen we niet zo gemakkelijk met texture replacement werken.
Groeten Edwin. _________________ https://www.facebook.com/WerkspoorTrainz
|
|
Terug naar boven |
|
|
gm99999
Geregistreerd op: 15 Aug 2020 Berichten: 475
|
Geplaatst: 25 Feb 2021 13:45:38 Onderwerp: |
|
|
ja dat zeg ik een richting check
maar 2 en 3 zijn een ander duo, die wil je misschien niet veranderen toch?
met GetVehicleTypeFlags(); kun je opvragen wat een loco of tender is
en dan if statements gebruiken voor specifieke functies |
|
Terug naar boven |
|
|
Jeroen
Geregistreerd op: 12 Sep 2020 Berichten: 155
|
Geplaatst: 4 Mrt 2021 18:45:21 Onderwerp: |
|
|
Ik zou graag willen weten hoe je bij een loc met vier pantografen deze onafhankelijk kan bedienen.
Dus pantograaf 1,2,3 en 4 afzonderlijk in plaats van of 1 of 2 of 1 en 2
Bedankt |
|
Terug naar boven |
|
|
gm99999
Geregistreerd op: 15 Aug 2020 Berichten: 475
|
Geplaatst: 4 Mrt 2021 19:53:07 Onderwerp: |
|
|
Dat kan wel, maar dan moet we weg stappen van de standaard in trainz
standaard kent Trainz 4 "states"
0 alles neer
1 panto 1 op
2 panto 2 op
3 beide op
wat we kunnen doen is 0, 1, 2 en 3 gebruiken voor panto 1 en 2
dan panto 3 en 4, niet als panto maar gewoon met een mesh/animatie, die je dan in "view-details" op/neer kunt doen
als je dan onder AI gaat rijden, zal wel panto 1 of 2 automatisch omhoog gaan.
Nog een stapje verder, alle 4 panto's zijn geen trains panto's, maar een mesh/animatie
die je dan in "view-details" zelf moet sturen en volledig gescript.
Als je een loc stuurt die je zo zou willen, kan ik een poging wagen. |
|
Terug naar boven |
|
|
Edwin
Geregistreerd op: 27 Aug 2020 Berichten: 106
|
Geplaatst: 16 Mrt 2021 19:09:49 Onderwerp: |
|
|
Nieuwe vraag. Ik ben bezig met richting afhankelijke plaatsing van lantaarn meshes en corona's op onze stoomlocs, ik had dit heel ver werkend, maar kwam een bug tegen, waar ik mijn script op had gebaseerd, de br218 van hadotwe, heeft na testen ook deze bug helaas. Heb het helaas niet kunnen oplossen en ben toen op een andere manier proberen te scripten. Om het simpel te houden ben ik nu eerst even aan het testen met te wisselen tussen meshes, een machinist in vooruit rijdende houding en een machinist in achteruit rijdende houding. Wat ik nu heb geprobeerd is te kijken naar GetEngineSetting("reverser"), is dat forward dan machinist vooruit, is dat reverse dan machinist achteruit, even simpel gezegd. Dit werkt als ik de sessie start, dan staan de machinisten in de goede richting, maar ik krijg het niet voor elkaar dit actief te monitoren. Ben al vijf dagen bezig..
Nu had ik Olaf's RhB loc gedownload en de draaiende driver doet eigenlijk exact wat ik nodig heb in mijn script. Dus GM, puppy oogjes, kan je mij helpen?
Groeten Edwin. _________________ https://www.facebook.com/WerkspoorTrainz
|
|
Terug naar boven |
|
|
gm99999
Geregistreerd op: 15 Aug 2020 Berichten: 475
|
Geplaatst: 18 Mrt 2021 19:16:12 Onderwerp: |
|
|
Ja, dat kan lastig zijn
dat draaiend driver script had ik in 2004 gemaakt voor de meeste AM locs
omdat dat payware is kan ik dat niet letterlijk open verspreiden
wat heb je nodig (heel algemeen)
-een thread die richting uitzoekt, dit kan oa met:
GetVelocity(), GetTrainVelocity(), GetSmoothedVelocity() of GetFrontmostLocomotive()
zet die thread niet te laag, kost cpu tijd, dus bijv elke 10 seconde
-een bool (schakelaar) die veranderd als het veranderd is
-een bool (schakelaar) die veranderd als het voorruit of achteruit is
-een functie, die daarna wat doet, afhankelijk van de schakelaars,
dit kan een animatie(richting) veranderen/start/stop zijn, of mesh/corona aan/uit zijn.
koste mij 3 uur om een tekst met een & character te filteren, scripten is soms erg lastig.
maar als het dan lukt, yippie ! |
|
Terug naar boven |
|
|
|
Geplaatst: 18 Mrt 2021 19:16:12 Onderwerp: |
|
|
|
|
Terug naar boven |
|
|
|