Jari Vanhatupa

Ai-koneet pois Aircraft kansiosta? Fs2004

8 viestiä aiheessa

Eli tuossahan se kysymys oli otsikossa, eli onnistuisikohan tuo mitenkään siirtää niitä johonkin toiseen Aircraft kansioon . . . esim. Aircraft2 tms, jota simu suostuisi lukemaan. Noita Ai-koneita kertyy huomaamatta suuria määriä, jotka sitten hidastavat Aircraft valikon aukeamista ja muutenkin ovat siellä Aircraft kansiossa sekoittamassa jo ennestään suurta konemäärää.

 

Onko mitenkään mahdollista luoda useita erillisiä, Aircraft kansioita joita simu sitten kävisi lukemassa. Voisiko tätä toteuttaa esim. kansion nimeen liitettävällä merkinnällä.

 

Kuinka pääsen käsiksi koodiin jossa määritellään minkänimisiä kansioita simu käy lukemassa?

 

Haluaisin lajitella koneet tyypin mukaan, Props, Jet, Military, Helicopters jne. Mieluimmin jopa omiin Aircraft kansioihin. Onko tälläiseen lajitteluun olemassa mitään valmista softaa joka pyörisi simussa taustalla?

Kuinka se on toteutettu kun valikossa esim."Cessna" nimen alta aukeavat useammat Cessnan konetyypit.

 

Tuota simun konevalikkosysteemiä ei selvästikään ole suunniteltu sellaisille konemäärille, mitä nykyään käytetään ja sille pitäisi kyllä päästä tekemään jotakin.

No tulipahan taas kyseltyä . . . toivottavasti joku osaa vastata tai antaa hyviä vinkkejä. :)

Jaa viesti


Link to post
Jaa muulla sivustolla

En ole kuullut tuollaisen kansiojaottelun olevan mahdollista, mutta jos sellainen onnistuu niin mielelläni kuulisin minäkin siitä lisää. AI-koneet saa kyllä piilotettua simun lentokonevalikosta, se onnistuu kätevästi esim. ilmaisella BBQ Hide AI -ohjelmalla.

 

Se, minkä valmistajanimen alle koneet tulevat simun valikossa, määritellään kone-/maalauskohtaisesti jokaisen koneen Aircraft.cfg -tiedostossa, [fltsim.#]-osiossa. Siellä huomioitavat rivit ovat:

 

ui_manufacturer = Raytheon/Beech   

ui_type = King Air 300

ui_variation =  D-IBER

 

Toinen esimerkki:

 

ui_manufacturer = Sud Aviation SE-210

ui_type = Caravelle III

ui_variation = Finnair OH-LEC "Sininuoli"

 

Noita rivejä muokkaamalla koneita voi niputtaa haluamallaan tavalla. Jos vaikkapa tuo ui_manufacturer -rivin arvo on parilla eri koneella "Cessna", niin koneet näkyvät silloin "Cessna"-otsakkeen alla vaikka kumallakin koneella olisi oma aircraft.cfg.

 

-Esa

Jaa viesti


Link to post
Jaa muulla sivustolla

Tunnetusti Microsoftin koodi on suljettua, joten arvelen ettei moista keinoa edes ole. Jos olisikin, niin siitä tuskin saisi tietoa MS:lta edes pyytämällä. Jos kiven läpi ei pääse, pitää se kiertää.

 

Ongelma on mahdollista kiertää sopivalla komentojonolla (näitä piti ennenwanhaan DOS-aikaan nysvätä, jotta hommat ylipäätään sai toimimaan). En ole 20 vuoteen DOSsia pahemmin tarvinnut, joten olen sen suhteen vähän ruosteessa, mutta jotensakin näin homma voisi mennä (kahdelle kansiolle se on jopa naurettavan helppoa):

 

@echo off ;ei välttämätön komento - poistaa vain turhat tekstit ruudulta

rename aircraft aircraft.temp ;nimeää kansion aircraft kansioksi aircraft.temp

rename aircraft.x aircraft

rename aircraft.temp aircraft.y ;nyt kansiossa aircraft on kansion aircraft.x sisältö ja aircraft.y:ssä aircrafti:in sisältö

fs9 ;käynnistää simun

 

Jonon voi kirjoittaa vaikka notepadillä ja se pitää tallentaa tiedostoksi, jonka pääte on bat (batch = komentojono)

 

Edellinen on kirjoitettu olettamalla (yksinkertaisuuden vuoksi), että komentojono on simun pääkansiossa. Muussa tapauksessa koko kansiopolku pitää lisätä komentoihin mukaan. CALL-komennolla voi kutsua toista jonoa toisen sisältä eli sen avulla käynnistyskomennon saa minne tahansa eikä noita polkuja tarvitse noihin kaikkiin kirjoitella.

 

Jos kansioita on kolme tai enemmän, homma mutkistuu. Silloin pitää testata esimerkiksi IF [NOT] EXIST tiedosto/kansio [komento]  komennolla mikä kansio toimittaa aircraft-kansion virkaa sillä hetkellä, kun komentojono ajetaan.

 

Esimerkiksi:

 

IF NOT EXIST aircraft.x  palauttaa totuusarvon TRUE, jos aircraft-kansiona on aircraft.x (eli aircraft.x-kansiota ei löydy). Tällöin suoritetaan komento, joka nimeää aircraft-kansion aircraft.x-kansioksi ja sitten edelleen aircraft-kansioksi se kansio, joka sinne halutaan. Jos näitä kansioita on useita kaikki täytyy testata tuolla IF-komennolla.

 

Nuo kaikki komennot selityksineen ovat koottuina jossain, mutta en muista enää missä (ehkä netistäkin löytyy?). Yksittäisen komennon merkityksen ja parametrit saa selville komentotilasta (Käynnistä -> Suorita -> CMD) kirjoittamalla komennon ja sen perään /?. Esimerkiksi komentotilassa IF /? antaa tietoa kaikista IF-alkuisista komennoista. Jos haluaa selitykset talteen, voi ne uudelleenohjata vaikkapa tekstitiedostoon laittamalla tuohon perään > IF.txt . Siis IF /? > IF.txt tekee tiedoston IF.txt, jossa selitykset ovat. Jos haluaa kaikki selitykset samaan tiedostoon, voi seuraavat ohjata sinne >> merkillä (>:n sijasta).

 

Pekka

 

P.S. Komentojen toimintaa kannattaa ensin kokeilla jossain tilapäiskansiossa ettei tule pysyvää vahinkoa.

 

Edit: Netistä löytyi nopealla haulla muutama hyvä sivu aiheesta komentojonot:

 

http://www.ohjelmointiputka.net/opas.php?tunnus=msdkj

http://appro.mit.jyu.fi/doc/komentojonot/index4.html'>http://appro.mit.jyu.fi/doc/komentojonot/index4.html

http://appro.mit.jyu.fi/doc/komentojonot/

 

 

Jaa viesti


Link to post
Jaa muulla sivustolla

Hienoa, taas pääsee pykälän eteenpäin . . Pekan ohje vaikuttaa tehokkaalta, saa nähdä olenko tarpeeksi terävä sitä toteuttamaan . . . jäi aikoinaan tuo Dos vaihe välistä kun siihen aikaan touhusin Amigan kanssa. Mutta voisihan tuota yrittää!

 

Jaa viesti


Link to post
Jaa muulla sivustolla

Eli periaatteessa FSX:ssä kannattaa luoda oma AI kansio ja määrittää se kansio sinne FSX.cfg:hen.

Empä ole tuota ennen tajunnut, täytyypä siivota varsinainen airplanes kansio AI koneista ja siirtää ne omaan paikkaan.

Jaa viesti


Link to post
Jaa muulla sivustolla

@echo off ;ei välttämätön komento - poistaa vain turhat tekstit ruudulta

rename aircraft aircraft.temp ;nimeää kansion aircraft kansioksi aircraft.temp

rename aircraft.x aircraft

rename aircraft.temp aircraft.vara ;nyt kansiossa aircraft on kansion aircraft.x sisältö ja aircraft.vara:ssa aircrafti:in sisältö

fs9 ;käynnistää simun

 

Jos tuo IF [NOT] EXIST [kohde] [komento] rakenne tuntuu hankalalta käyttää niin tuon voisi hoitaa selvemminkin. Tehdään erillinen lentox.bat, lentoy.bat, jne. jokaiselle kansiolle, jossa käytetään nimen perässä olevaa aircraft-kansiota. Itse simu käynnistetään noiden jonojen sisältä kutsumalla CALL-kutsulla komentojonoa (esimerkiksi) fs.bat, jonka sisällä on vain simun käynnistävä komento (komentojonon nimi ei saa olla sama kuin fs9.exe-tiedostolla, jos ne ovat samassa kansiossa, sillä exe:llä on prioriteettiajo-oikeus. Kun simuilu lopetetaan pitäisi simua kutsuneen jonon palata sitä kutsuneeseen komentojonoon, jolloin kansiot voidaan palauttaa lähtötilanteeseen. Esimerkki yllä olevan lainauksen lainauksen tapauksessa (jatkoa siihen).

 

...

CALL fs.bat ;korvaa viimeisen rivin yllä - fs.bat sisältää fs9.exe:ä kutsuvan komennon - polku mukaan, jos fs.bat on eri kansiossa kuin fs9.exe

rename  aircraft  aircraft.temp ; tähän palataan kun simuilu lopetetaan

rename  aircraft.vara  aircraft

rename  aircraft.temp  aircraft.x  ;huomaa välit - yksi välilyönti riittää, mutta korostin niitä toisella

 

Kaikki on jälleen samoin kuin ennen komentojonon ajoa.

 

Pekka

Jaa viesti


Link to post
Jaa muulla sivustolla

Luo uusi käyttäjätunnus tai kirjaudu sisään

Sinun täytyy olla jäsen osallistuaksesi keskusteluun

Luo käyttäjätili

Rekisteröi uusi käyttäjätili helposti ja nopeasti!


Luo uusi käyttäjätili

Kirjaudu sisään

Sinulla on jo käyttäjätili?


Kirjaudu sisään